<?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>222986</bug_id>
          
          <creation_ts>2021-03-09 10:30:21 -0800</creation_ts>
          <short_desc>Stop using callOnMainThread() / isMainThread() in WebKit2</short_desc>
          <delta_ts>2021-03-09 20:44:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223015</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>hi</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1737646</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-09 10:30:21 -0800</bug_when>
    <thetext>Stop using callOnMainThread() / isMainThread() is WebKit2 and enforce this rule via the style checker. callOnMainRunLoop() / isMainRunLoop() are safer alternatives in WebKit2 because they do the right thing even if an app uses both WebKit2 and WebKit1 (with WebThread) on iOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737650</commentid>
    <comment_count>1</comment_count>
      <attachid>422724</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-09 10:37:26 -0800</bug_when>
    <thetext>Created attachment 422724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737656</commentid>
    <comment_count>2</comment_count>
      <attachid>422727</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-09 10:45:22 -0800</bug_when>
    <thetext>Created attachment 422727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737659</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-03-09 10:46:18 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737685</commentid>
    <comment_count>4</comment_count>
      <attachid>422737</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-09 11:52:38 -0800</bug_when>
    <thetext>Created attachment 422737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737751</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-09 14:07:07 -0800</bug_when>
    <thetext>Committed r274174: &lt;https://commits.webkit.org/r274174&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422737.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737752</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-09 14:08:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/75234452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737925</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-09 20:44:20 -0800</bug_when>
    <thetext>Follow-up in &lt;https://commits.webkit.org/r274194&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422724</attachid>
            <date>2021-03-09 10:37:26 -0800</date>
            <delta_ts>2021-03-09 10:45:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222986-20210309103725.patch</filename>
            <type>text/plain</type>
            <size>84008</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzZjQxNzAzNTA4MTVjNWU4YzdmMDIw
Mzc3ODZmZjRlMmQyZDVkNTAuLjg2ZDA4NzcyMDNiNDUzYTgyMGRmYjIyYjM3Nzg5NzkzMDM4N2Jl
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDMtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIGNhbGxPbk1haW5UaHJlYWQoKSAvIGlz
TWFpblRocmVhZCgpIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKwogMjAyMS0wMy0wOCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHF1aXJrcyBmb3IgdGhl
IG5vIGxvbmdlciBzdXBwb3J0ZWQgaUFkIFByb2R1Y2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0NDYxNmM4ODYw
MWQyN2NhNjAwNDk5NmNiODk0ZDY1Y2VmN2NlYjIuLjM4NWU4NTFlMGM5NDgzMTkyN2NkOWU3OTRl
YjBjYzdhNDdmNTVkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTc0IEBACisyMDIxLTAzLTA5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2luZyBjYWxs
T25NYWluVGhyZWFkKCkgLyBpc01haW5UaHJlYWQoKSBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5ODYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgY2FsbE9uTWFpblJ1bkxvb3Ao
KSAvIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdCgpIC8gaXNNYWluUnVuTG9vcCgpIGluIFdlYktp
dDIKKyAgICAgICAgaW5zdGVhZCBvZiBjYWxsT25NYWluVGhyZWFkKCkgLyBjYWxsT25NYWluVGhy
ZWFkQW5kV2FpdCgpIC8gaXNNYWluVGhyZWFkKCkuCisgICAgICAgIFVzaW5nIHRoZSAiTWFpblRo
cmVhZCIgdmFyaWFudHMgZG9lc24ndCBkbyB0aGUgcmlnaHQgdGhpbmcgaW4gdGhlIFVJUHJvY2Vz
cyB3aGVuCisgICAgICAgIGFuIGlPUyBhcHAgaXMgdXNpbmcgYm90aCBXSzEgKHdpdGggV2ViVGhy
ZWFkKSBhbmQgV0syLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb246OnJlbmRlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVh
dGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI6OnJlbGVhc2VMYXllcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmNhbmNlbCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3RhTWFuYWdlcik6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2FjaGVTdG9yYWdlOjpnZXREaXJlY3RvcnlTaXplKToKKyAgICAgICAgKFdlYktpdDo6Q2Fj
aGVTdG9yYWdlOjpFbmdpbmU6OmRpc2tVc2FnZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza0NvY29hOjpyZXN1bWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtNYW5hZ2VyV3Jh
cHBlcjo6b25OZXR3b3Jrc0NoYW5nZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJv
dmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVSZXNvbHZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6c3RvcFJlc29sdmVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAgICAgICAqIFBsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjppbml0aWFsaXplQ29u
bmVjdGlvbik6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZv
cm1hdFJlYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpzdGFy
dE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpwYXJz
ZUJ5dGVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRlcjo6ZGlkUGFy
c2VUcmFja3MpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRlcjo6ZGlkUHJvdmlk
ZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2Ft
cGxlQnl0ZVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVCeXRlUmFuZ2U6
Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVRyYWNr
UmVhZGVyOjpNZWRpYVRyYWNrUmVhZGVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFUcmFja1Jl
YWRlcjo6YWRkU2FtcGxlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFUcmFja1JlYWRlcjo6Zmlu
aXNoUGFyc2luZyk6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRp
YVRyYWNrUmVhZGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Okljb25EYXRhYmFzZTo6SWNvbkRhdGFiYXNlKToKKyAg
ICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjp+SWNvbkRhdGFiYXNlKToKKyAgICAgICAgKFdl
YktpdDo6SWNvbkRhdGFiYXNlOjpjcmVhdGVUYWJsZXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJL
aXQ6Okljb25EYXRhYmFzZTo6cG9wdWxhdGVQYWdlVVJMVG9JY29uVVJMTWFwKToKKyAgICAgICAg
KFdlYktpdDo6SWNvbkRhdGFiYXNlOjpjbGVhclN0YXRlbWVudHMpOgorICAgICAgICAoV2ViS2l0
OjpJY29uRGF0YWJhc2U6OnBydW5lVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Okljb25E
YXRhYmFzZTo6c3RhcnRQcnVuZVRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNl
OjpjbGVhckxvYWRlZEljb25zVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Okljb25EYXRh
YmFzZTo6c3RhcnRDbGVhckxvYWRlZEljb25zVGltZXIpOgorICAgICAgICAoV2ViS2l0OjpJY29u
RGF0YWJhc2U6Omljb25JREZvckljb25VUkwpOgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJh
c2U6OnNldEljb25JREZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6
Omljb25EYXRhKToKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjphZGRJY29uKToKKyAg
ICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjp1cGRhdGVJY29uVGltZXN0YW1wKToKKyAgICAg
ICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjpkZWxldGVJY29uKToKKyAgICAgICAgKFdlYktpdDo6
SWNvbkRhdGFiYXNlOjpjaGVja0ljb25VUkxBbmRTZXRQYWdlVVJMSWZOZWVkZWQpOgorICAgICAg
ICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6OmxvYWRJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChX
ZWJLaXQ6Okljb25EYXRhYmFzZTo6aWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0
OjpJY29uRGF0YWJhc2U6OnNldEljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6SWNv
bkRhdGFiYXNlOjpjbGVhcik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlz
c2lvblV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6cmVxdWVzdEFWQ2FwdHVyZUFjY2Vz
c0ZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25BY2Nl
c3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW06Cisg
ICAgICAgICgtW1dLVXNlckRlZmF1bHRzIF9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1
ZXNGb3JLZXlzOnRvVmFsdWVzRm9yS2V5czpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bm9uQnJvd3NlclNlcnZp
Y2VzKToKKyAgICAgICAgKFdlYktpdDo6YWd4Q29tcGlsZXJDbGFzc2VzKToKKyAgICAgICAgKFdl
YktpdDo6YWd4Q29tcGlsZXJTZXJ2aWNlcyk6CisgICAgICAgIChXZWJLaXQ6OmRpYWdub3N0aWNT
ZXJ2aWNlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW5zcGVjdG9yQ2xpZW50
OjpzZW5kV2ViSW5zcGVjdG9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbnNwZWN0
b3JDbGllbnQ6OmRpZENsb3NlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5OjpkaWRSZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdwdUlPS2l0Q2xhc3Nlcyk6
CisgICAgICAgIChXZWJLaXQ6OmdwdU1hY2hTZXJ2aWNlcyk6CisgICAgICAgIChXZWJLaXQ6Om1l
ZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcyk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZp
ZXcubW06CisgICAgICAgICgtW1dLUERGVmlldyB3ZWJfc2V0Q29udGVudFByb3ZpZGVyRGF0YTpz
dWdnZXN0ZWRGaWxlbmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdW
aWV3Lm1tOgorICAgICAgICAoLVtXS1ByaW50aW5nVmlldyBkZWFsbG9jXSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6fldlYkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6d2Fp
dEZvckRpZEZsdXNoT25TZWNvbmRhcnlUaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJRdWFudHVtKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNs
b3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJB
VkYuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZUZy
YW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpzZXRDYWxs
YmFja3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmZhaWxlZERlY29kaW5n
KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRW5jb2RpbmcpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENSZXNvbHZlcjo6c2VuZE9uTWFpblRocmVhZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRl
U2VydmVyVGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9y
eTo6Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFj
dG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYlJUQ01vbml0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENNb25p
dG9yOjpzZW5kT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpwZGZMb2cpOgorICAg
ICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmxvZ1N0cmVhbUxvYWRlcik6CisgICAgICAgIChXZWJL
aXQ6OlBERlBsdWdpbjo6dmVyYm9zZUxvZyk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6
cmVjZWl2ZWROb25MaW5lYXJpemVkUERGU2VudGluZWwpOgorICAgICAgICAoV2ViS2l0OjpkYXRh
UHJvdmlkZXJHZXRCeXRlc0F0UG9zaXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OmRh
dGFQcm92aWRlckdldEJ5dGVSYW5nZXNDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OmRhdGFQ
cm92aWRlclJlbGVhc2VJbmZvQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46
OnRocmVhZEVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpnZXRSZXNvdXJjZUJ5
dGVzQXRQb3NpdGlvbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46Omdl
dFJlc291cmNlQnl0ZXNBdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjph
ZG9wdEJhY2tncm91bmRUaHJlYWREb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdp
bjo6aW5zdGFsbFBERkRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjp0cnlS
dW5TY3JpcHRzSW5QREZEb2N1bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6ZGlkTWF0Y2hSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0Ns
aWVudENvbm5lY3Rpb246OmRpZEdldFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVGb3JtRGF0YUFuZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmNsZWFudXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9G
aW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpkcmF3
UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjplbGVtZW50RGlkQmx1cik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpo
YW5kbGVTeW50aGV0aWNDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEZpbmlz
aENvbnRlbnRDaGFuZ2VPYnNlcnZpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRh
dGVJbnB1dENvbnRleHRBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnRJZk5lZWRlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtGaXJl
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0QmFzZS5tbToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dEJhc2UgYXhPYmplY3RDYWNoZV0pOgorICAgICAgICAoLVtXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0QmFzZSBhY2Nlc3NpYmlsaXR5UGx1Z2luT2JqZWN0XSk6CisgICAgICAgICgtW1dLQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIHNldFdlYlBhZ2U6XSk6CisgICAgICAgICgtW1dL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIHNldEhhc01haW5GcmFtZVBsdWdpbjpdKToK
KyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2Ugc2V0UmVtb3RlUGFy
ZW50Ol0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNvbm5lY3Rpb24pOgorCiAyMDIxLTAzLTA5ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10g
QWRkIGEgd2F5IHRvIHRyaWdnZXIgd2VicGFnZSB0cmFuc2xhdGlvbiB2aWEgdGhlIGNvbnRleHQg
bWVudQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oIGIvU291cmNlL1dU
Ri93dGYvTWFpblRocmVhZC5oCmluZGV4IDA2OGY2YmFhYzZlODk4ZTMzMzY3NzcxNmQyMDE0ODc0
OWU3OWNmMmQuLjVjMzJkMTg1MGUzMzNiZjExYzNiMWI2ZmYyMGUyYzllMzkwNDRlYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9N
YWluVGhyZWFkLmgKQEAgLTgwLDYgKzgwLDcgQEAgdXNpbmcgV1RGOjpjYWxsT25NYWluVGhyZWFk
QW5kV2FpdDsKIHVzaW5nIFdURjo6Y2FsbE9uTWFpblJ1bkxvb3A7CiB1c2luZyBXVEY6OmNhbGxP
bk1haW5SdW5Mb29wQW5kV2FpdDsKIHVzaW5nIFdURjo6Y2FuQ3VycmVudFRocmVhZEFjY2Vzc1Ro
cmVhZExvY2FsRGF0YTsKK3VzaW5nIFdURjo6aXNNYWluUnVuTG9vcDsKIHVzaW5nIFdURjo6aXNN
YWluVGhyZWFkOwogdXNpbmcgV1RGOjppc01haW5UaHJlYWRPckdDVGhyZWFkOwogdXNpbmcgV1RG
Ojppc1VJVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKaW5kZXggMjEyNjRhNzk2OTNj
NGI0N2QzZmFhOWExM2E0OGYxZGI1NTQyYWUyNi4uMzY3YWJmZDYzNzFiNTZlNTExNmViODE5OWMw
NWQ0ZjIxYjVhZTBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCkBAIC0yMzEsMTAgKzIz
MSwxMCBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRp
YShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQogICAgICAgICAgICAgcGl4ZWxCdWZmZXIg
PSBtZWRpYVBsYXllci0+cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGltZSgpOwogICAgIH07CiAKLSAg
ICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgaWYgKGlzTWFpblJ1bkxvb3AoKSkKICAgICAgICAg
Z2V0UGl4ZWxCdWZmZXIoKTsKICAgICBlbHNlCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWRBbmRX
YWl0KFdURk1vdmUoZ2V0UGl4ZWxCdWZmZXIpKTsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3BB
bmRXYWl0KFdURk1vdmUoZ2V0UGl4ZWxCdWZmZXIpKTsKIAogICAgIGlmICghcGl4ZWxCdWZmZXIp
IHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
TWFuYWdlci5jcHAKaW5kZXggZjdhMWFmMmRmN2FlY2RjNzMyNTcxMjIxZTM0YjdkYWNjYzBhOWIx
Yi4uODM5ZmU5M2EyMWJiMjVmNWJjZmJjNTM4N2FhYzg1Mjc3MTA5YzE4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0ZToKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBPU1N0YXR1cyByZW5kZXIoZG91YmxlIHNhbXBsZVRpbWUsIHVp
bnQ2NF90IGhvc3RUaW1lLCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMsIEF1ZGlvQnVmZmVyTGlzdCog
aW9EYXRhKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgICAg
IEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgICAgICBPU1N0YXR1cyBzdGF0dXMgPSAt
MTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2UuY3BwCmluZGV4IGZjM2QwNDhjOTA3YmU4ZDdiMmY4YjNiYjY5YWViMjNjM2Q0
NmIwYmUuLmQzZTYxNjFiZDJiZGNmOGVhZjMwMTA3YzUzNmJlZDRiMjdlMDljMDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVtb3RlTWVkaWFSZXNvdXJjZTo6UmVtb3RlTWVkaWFS
ZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWEKIAogUmVtb3Rl
TWVkaWFSZXNvdXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UoKQogewotICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgc3RvcCgpOwog
ICAgIGlmICghbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKICAgICAgICAgcmV0dXJuOwpA
QCAtNzYsNyArNzYsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2
ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvbwogCiAgICAgbV9kaWRQYXNz
QWNjZXNzQ29udHJvbENoZWNrID0gZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjazsKICAgICBtX2Ns
aWVudC0+cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2UsIFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgICAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICAgICAg
aWYgKHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlUG9saWN5Q2hlY2s6Ok5vKQogICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3RvcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA0YmFlZjQ4ZGVhYjQ0NWYwYmMzNzM3NTY3
NzFiNWY5MmY0NmYzNWQ3Li5hNGQ0YjU3OGEzMjAwOTc1MGFkOWYzYTI0MTc3YzAwYzZkM2UzNGQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHAKQEAg
LTU4LDcgKzU4LDcgQEAgdm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
OjpjbG9zZSgpCiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5yZW1v
dmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbbGF5ZXJzID0gV1RGTW92ZSht
X2xheWVycyldIHsgfSk7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtsYXllcnMgPSBXVEZN
b3ZlKG1fbGF5ZXJzKV0geyB9KTsKICAgICB9KTsKIH0KIApAQCAtODAsMTEgKzgwLDExIEBAIGJv
b2wgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6ZGlzcGF0Y2hNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29uCiAKIHZvaWQgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlzcGxheUxheWVySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwg
TGF5ZXJDcmVhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgY2FsbE9uTWFpblRocmVh
ZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBoaWRl
Um9vdExheWVyLCBzaXplLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUg
eworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGlkZW50aWZpZXIsIGhpZGVSb290TGF5ZXIsIHNpemUsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbGF5ZXIgPSBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShpZGVudGlmaWVyLCBtX2Nvbm5lY3Rpb24uY29w
eVJlZigpKTsKICAgICAgICAgYXV0byYgbGF5ZXJSZWZlcmVuY2UgPSAqbGF5ZXI7CiAgICAgICAg
IGxheWVyUmVmZXJlbmNlLmluaXRpYWxpemUoaGlkZVJvb3RMYXllciwgc2l6ZSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KSwgaWRlbnRpZmllciwgbGF5ZXIgPSBXVEZNb3ZlKGxheWVyKV0oYXV0byBsYXllcklkKSBtdXRh
YmxlIHsKLSAgICAgICAgICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBp
ZGVudGlmaWVyLCBsYXllciA9IFdURk1vdmUobGF5ZXIpLCBsYXllcklkID0gV1RGTW92ZShsYXll
cklkKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKSwgaWRlbnRpZmllciwgbGF5ZXIgPSBXVEZNb3ZlKGxheWVyKSwgbGF5ZXJJZCA9
IFdURk1vdmUobGF5ZXJJZCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFt
X2xheWVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CiAgICAgICAgICAgICAgICAgbV9sYXllcnMu
YWRkKGlkZW50aWZpZXIsIFdURk1vdmUobGF5ZXIpKTsKICAgICAgICAgICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKGxheWVySWQpKTsKQEAgLTk1LDEwICs5NSwxMCBAQCB2b2lkIFJlbW90ZVNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVyKFNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllcgogCiB2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OnJl
bGVhc2VMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBpZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXJdKCkgbXV0YWJs
ZSB7CiAgICAgICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZN
b3ZlKHByb3RlY3RlZFRoaXMpLCBpZGVudGlmaWVyXSB7CiAgICAgICAgICAgICBBU1NFUlQobV9s
YXllcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbbGF5ZXIgPSBtX2xheWVycy50YWtlKGlkZW50aWZpZXIpXSB7IH0pOworICAgICAgICAgICAg
Y2FsbE9uTWFpblJ1bkxvb3AoW2xheWVyID0gbV9sYXllcnMudGFrZShpZGVudGlmaWVyKV0geyB9
KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXggOGY5MjE0YWVkYmY4NTkxNTg3
NjhhMDhmNDVjYmFkYzcwZWY1MjlkYS4uMTIwZGQ4ZWFmODYyZWYyMTQwM2UzYzQ0OWFmMzcxYTNk
MDZhYzkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmNwcApAQCAtODcsNyArODcsNyBAQCBEb3dubG9hZDo6fkRvd25sb2FkKCkK
IAogdm9pZCBEb3dubG9hZDo6Y2FuY2VsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIsIElnbm9yZURpZEZhaWxDYWxs
YmFjayBpZ25vcmVEaWRGYWlsQ2FsbGJhY2spCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICAv
LyBVUkxTZXNzaW9uOnRhc2s6ZGlkQ29tcGxldGVXaXRoRXJyb3I6IGlzIHN0aWxsIGNhbGxlZCBh
ZnRlciBjYW5jZWxCeVByb2R1Y2luZ1Jlc3VtZURhdGEncyBjb21wbGV0aW9uSGFuZGxlci4KICAg
ICAvLyBJZiB0aGlzIGNhbmNlbCByZXF1ZXN0IGNhbWUgZnJvbSB0aGUgQVBJLCB3ZSBkbyBub3Qg
d2FudCB0byBzZW5kIERvd25sb2FkUHJveHk6OkRpZEZhaWwgYmVjYXVzZSB0aGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZmE4YzI0
NDE2MmI4MWJhZTY4YmVmZGUwODcyOTc5Y2M4OGIyMGFhNi4uMjM0N2ZkMjM2ZmFkNGI0OTg0ZWUy
ZTA5NmMzMDI5ZmMzMDlmOTJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI1MDUsNyArMjUwNSw3IEBAIFJlZlB0cjxTdG9yYWdl
UXVvdGFNYW5hZ2VyPiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNl
c3Npb25JRCBzCiAgICAgaWRiUm9vdFBhdGggPSBzZXNzaW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+
aWRiUm9vdFBhdGgoKTsKICNlbmRpZgogICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OlVzYWdlR2V0
dGVyIHVzYWdlR2V0dGVyID0gW2NhY2hlUm9vdFBhdGggPSBzZXNzaW9uU3RvcmFnZVF1b3RhTWFu
YWdlci0+Y2FjaGVSb290UGF0aCgpLmlzb2xhdGVkQ29weSgpLCBpZGJSb290UGF0aCA9IGlkYlJv
b3RQYXRoLmlzb2xhdGVkQ29weSgpLCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCldKCkg
ewotICAgICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsgICAgCisgICAgICAgIEFTU0VSVCgh
aXNNYWluUnVuTG9vcCgpKTsKIAogICAgICAgICB1aW50NjRfdCB1c2FnZSA9IENhY2hlU3RvcmFn
ZTo6RW5naW5lOjpkaXNrVXNhZ2UoY2FjaGVSb290UGF0aCwgb3JpZ2luKTsKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKQEAgLTI1MTUsNyArMjUxNSw3IEBAIFJlZlB0cjxTdG9yYWdlUXVv
dGFNYW5hZ2VyPiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3RhTWFuYWdlcihQQUw6OlNlc3Np
b25JRCBzCiAgICAgICAgIHJldHVybiB1c2FnZTsKICAgICB9OwogICAgIFN0b3JhZ2VRdW90YU1h
bmFnZXI6OlF1b3RhSW5jcmVhc2VSZXF1ZXN0ZXIgcXVvdGFJbmNyZWFzZVJlcXVlc3RlciA9IFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgc2Vzc2lvbklELCBvcmlnaW5dICh1
aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRTcGFjZSwgdWludDY0X3QgcmVx
dWVzdGVkSW5jcmVhc2UsIGF1dG8mJiBjYWxsYmFjaykgewotICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgICAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgIGNhbGxiYWNrKHsgfSk7CiAgICAgICAgIHJlcXVlc3RT
dG9yYWdlU3BhY2Uoc2Vzc2lvbklELCBvcmlnaW4sIGN1cnJlbnRRdW90YSwgY3VycmVudFNwYWNl
LCByZXF1ZXN0ZWRJbmNyZWFzZSwgV1RGTW92ZShjYWxsYmFjaykpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3Bw
CmluZGV4IDVkY2Q3Yjk4Y2Q1YTcwNjU2ODQ2NzEzZjM2MWQ4MzAzZjIxNjFhOWUuLjk5YTIyNjJi
ODQ0ZWNkMmIxMjhiNWFiZjcwMmEwZWJjZWUyMzg5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAg
LTE5OSw3ICsxOTksNyBAQCB2b2lkIEVuZ2luZTo6Y2xlYXJDYWNoZXNGb3JPcmlnaW4oTmV0d29y
a1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25JRAogCiBzdGF0aWMgdWludDY0
X3QgZ2V0RGlyZWN0b3J5U2l6ZShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeVBhdGgpCiB7Ci0gICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwog
CiAgICAgdWludDY0X3QgZGlyZWN0b3J5U2l6ZSA9IDA7CiAgICAgRGVxdWU8U3RyaW5nPiBwYXRo
czsKQEAgLTIyNyw3ICsyMjcsNyBAQCBzdGF0aWMgdWludDY0X3QgZ2V0RGlyZWN0b3J5U2l6ZShj
b25zdCBTdHJpbmcmIGRpcmVjdG9yeVBhdGgpCiAKIHVpbnQ2NF90IEVuZ2luZTo6ZGlza1VzYWdl
KGNvbnN0IFN0cmluZyYgcm9vdFBhdGgsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3Jp
Z2luKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWlu
UnVuTG9vcCgpKTsKIAogICAgIGlmIChyb290UGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZjU5NDQyMzk3Yzk5OWVhMjI0ZGQ3MGRhODZl
MTlhZWViYzU2OWRiYi4uZDA5ZWEwMTViMzAwYmExNDU1M2IyY2Y1N2M3YTBjZDcyYzcwOWE4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC02MjMsNyArNjIzLDcgQEAgdm9pZCBOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6cmVzdW1lKCkKICAgICBhdXRvJiBjb2NvYVNlc3Npb24gPSBzdGF0aWNfY2Fz
dDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oKm1fc2Vzc2lvbik7CiAgICAgaWYgKGNvY29hU2Vzc2lv
bi5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgpICYmIG1faXNGb3JNYWluUmVz
b3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpIHsKICAgICAgICAgYXV0byBkaWREZXRlcm1pbmVE
ZXZpY2VSZXN0cmljdGlvblBvbGljeUZvclVSTCA9IG1ha2VCbG9ja1B0cihbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShCT09MIGlzQmxvY2tlZCkgbXV0YWJsZSB7Ci0gICAg
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKSwgaXNCbG9ja2VkXSB7CisgICAgICAgICAgICBjYWxsT25NYWluUnVuTG9v
cChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGlzQmxvY2tl
ZF0gewogICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrZWQpIHsKICAgICAgICAgICAgICAgICAg
ICAgc2NoZWR1bGVGYWlsdXJlKFJlc3RyaWN0ZWRVUkxGYWlsdXJlKTsKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ01vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IuY3BwCmluZGV4IGVjODAwMzg1ZGZhMmY4YTliZTBh
YzEwZWYxZWIxZjYyYmNlZWFlNWIuLmE5ODVmNWQyZTg2NjcxNmNkNzY5YWIwZDI4NDc4M2IxNWI1
Y2QzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIE5ldHdv
cmtNYW5hZ2VyV3JhcHBlcjo6b25OZXR3b3Jrc0NoYW5nZWQoKQogICAgIFJUQ05ldHdvcms6OklQ
QWRkcmVzcyBpcHY2OwogICAgIG1fbWFuYWdlci0+R2V0RGVmYXVsdExvY2FsQWRkcmVzcyhBRl9J
TkVUNiwgJmlwdjYudmFsdWUpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgbmV0d29y
a0xpc3QgPSBXVEZNb3ZlKG5ldHdvcmtMaXN0KSwgaXB2NCA9IFdURk1vdmUoaXB2NCksIGlwdjYg
PSBXVEZNb3ZlKGlwdjYpXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlz
LCBuZXR3b3JrTGlzdCA9IFdURk1vdmUobmV0d29ya0xpc3QpLCBpcHY0ID0gV1RGTW92ZShpcHY0
KSwgaXB2NiA9IFdURk1vdmUoaXB2NildKCkgbXV0YWJsZSB7CiAgICAgICAgIG1fZGlkUmVjZWl2
ZVJlc3VsdHMgPSB0cnVlOwogCiAgICAgICAgIG1fbmV0d29ya0xpc3QgPSBXVEZNb3ZlKG5ldHdv
cmtMaXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCmluZGV4IDBhNmIxNTZmNGNiODhlODViZjBmY2Vh
OGFjMzcyMGRkNjIxNDQwMDUuLjQwNzc1MTM2NDM0NzI1YzQzM2ViYWNmZmU0YmNkOGU0NWVlYjg5
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdv
cmtSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJy
dGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgTmV0d29y
a1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjCiB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlU2VydmVyVENQU29j
a2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgUlRDTmV0d29y
azo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWluUG9ydCwgdWludDE2X3QgbWF4
UG9ydCwgaW50IG9wdGlvbnMpCiB7CiAgICAgQVNTRVJUKG1fcnRjTmV0d29ya1RocmVhZC5Jc0N1
cnJlbnQoKSk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRp
b25zXSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgaWRlbnRpZmllciwgYWRkcmVzcywgbWluUG9ydCwgbWF4UG9ydCwgb3B0aW9u
c10gewogICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMTcwLDcgKzE3MCw3IEBAIHJ0Yzo6UHJveHlJbmZvIE5ldHdvcmtSVENQcm92aWRlcjo6cHJv
eHlJbmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29ja2V0CiAKIHZvaWQgTmV0d29y
a1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoTGliV2ViUlRDU29ja2V0SWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzJiBsb2NhbEFk
ZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MmIHJlbW90ZUFkZHJlc3MsIFN0
cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBsb2NhbEFk
ZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29s
YXRlZENvcHkoKSwgb3B0aW9uc10oKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBsb2NhbEFk
ZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHVzZXJBZ2VudCA9IFdURk1vdmUodXNlckFnZW50KS5pc29s
YXRlZENvcHkoKSwgb3B0aW9uc10oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2Nvbm5lY3Rp
b24pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTI2MCw4ICsyNjAsOCBAQCB2b2lkIE5ldHdv
cmtSVENQcm92aWRlcjo6ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJh
Y2spCiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVSZXNvbHZlcihMaWJXZWJSVENS
ZXNvbHZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgYWRkcmVzcykKIHsKLSAgICBp
ZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwgYWRkcmVzcyA9IFdURk1v
dmUoYWRkcmVzcykuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAgaWYgKCFpc01haW5S
dW5Mb29wKCkpIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwgYWRkcmVzcyA9IFdURk1vdmUoYWRkcmVz
cykuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIW1fY29ubmVj
dGlvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBjcmVhdGVSZXNvbHZl
cihpZGVudGlmaWVyLCBXVEZNb3ZlKGFkZHJlc3MpKTsKQEAgLTI5OCw4ICsyOTgsOCBAQCB2b2lk
IE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlUmVzb2x2ZXIoTGliV2ViUlRDUmVzb2x2ZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIsCiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpzdG9wUmVzb2x2
ZXIoTGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKCFp
c01haW5UaHJlYWQoKSkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXJdIHsKKyAgICBpZiAoIWlzTWFpblJ1
bkxvb3AoKSkgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyXSB7CiAgICAgICAgICAgICBpZiAoIW1fY29u
bmVjdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBzdG9wUmVzb2x2
ZXIoaWRlbnRpZmllcik7CkBAIC0zMTYsNyArMzE2LDcgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlk
ZXI6OnN0b3BSZXNvbHZlcihMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
IAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNsb3NlTGlzdGVuaW5nU29ja2V0cyhGdW5jdGlv
bjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBpZiAoIW1faXNMaXN0ZW5p
bmdTb2NrZXRBdXRob3JpemVkKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6
Y2xvc2VMaXN0ZW5pbmdTb2NrZXRzKEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZAog
ICAgICAgICBmb3IgKGF1dG8gaWQgOiBsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVycykKICAgICAg
ICAgICAgIG1fc29ja2V0cy5nZXQoaWQpLT5jbG9zZSgpOwogCi0gICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoW3Byb3ZpZGVyID0gbWFrZVJlZigqdGhpcyksIGxpc3RlbmluZ1NvY2tldElkZW50aWZp
ZXJzID0gV1RGTW92ZShsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVycyksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW3Byb3ZpZGVyID0gbWFrZVJlZigqdGhpcyksIGxpc3RlbmluZ1NvY2tldElkZW50aWZp
ZXJzID0gV1RGTW92ZShsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVycyksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKICAgICAgICAgICAgIGlmIChwcm92
aWRlci0+bV9jb25uZWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgZm9yIChhdXRvIGlkZW50aWZp
ZXIgOiBsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVycykKICAgICAgICAgICAgICAgICAgICAgcHJv
dmlkZXItPm1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkxpYldlYlJU
Q05ldHdvcms6OlNpZ25hbENsb3NlKGlkZW50aWZpZXIsIEVDT05OQUJPUlRFRCksIDApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAppbmRleCA4NmVjZGRkN2Y2ZTNi
MWFkN2NjN2IxZDBiYWRiNDNiZGZjMjMyM2JiLi4zZGUxMTQ1NWJhYjQ4N2RkZjZkYWEyMWFkMDBm
MzNjMGNjNDBiNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cApAQCAtNDMyLDcgKzQzMiw3IEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Uoc3RkOjp1
bmlxdWVfcHRyPEVuY29kZXI+IGVuY29kZXIsIE9wdGlvblNldDxTZW5kT3B0CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgaWYgKGlzTWFp
blRocmVhZCgpKSB7CisgICAgaWYgKGlzTWFpblJ1bkxvb3AoKSkgewogICAgICAgICBib29sIGhh
c0RlYWRPYnNlcnZlcnMgPSBmYWxzZTsKICAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlcldlYWtQ
dHIgOiBtX21lc3NhZ2VPYnNlcnZlcnMpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBvYnNlcnZl
ciA9IG9ic2VydmVyV2Vha1B0ci5nZXQoKSkKQEAgLTQ0NSw3ICs0NDUsNyBAQCBib29sIENvbm5l
Y3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNvZGVyPiBlbmNvZGVyLCBPcHRp
b25TZXQ8U2VuZE9wdAogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKGlzTWFpblRocmVhZCgpICYm
IG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWRUb1VzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVz
dGluZyAmJiAhZW5jb2Rlci0+aXNTeW5jTWVzc2FnZSgpICYmICEoZW5jb2Rlci0+bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IFJlY2VpdmVyTmFtZTo6SVBDKSAmJiAhc2VuZE9wdGlvbnMuY29udGFp
bnMoU2VuZE9wdGlvbjo6SWdub3JlRnVsbHlTeW5jaHJvbm91c01vZGUpKSB7CisgICAgaWYgKGlz
TWFpblJ1bkxvb3AoKSAmJiBtX2luRGlzcGF0Y2hNZXNzYWdlTWFya2VkVG9Vc2VGdWxseVN5bmNo
cm9ub3VzTW9kZUZvclRlc3RpbmcgJiYgIWVuY29kZXItPmlzU3luY01lc3NhZ2UoKSAmJiAhKGVu
Y29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBSZWNlaXZlck5hbWU6OklQQykgJiYgIXNl
bmRPcHRpb25zLmNvbnRhaW5zKFNlbmRPcHRpb246Oklnbm9yZUZ1bGx5U3luY2hyb25vdXNNb2Rl
KSkgewogICAgICAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEOwogICAgICAgICBhdXRvIHdyYXBw
ZWRNZXNzYWdlID0gY3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKE1lc3NhZ2VOYW1lOjpXcmFwcGVk
QXN5bmNNZXNzYWdlRm9yVGVzdGluZywgZW5jb2Rlci0+ZGVzdGluYXRpb25JRCgpLCBzeW5jUmVx
dWVzdElEKTsKICAgICAgICAgd3JhcHBlZE1lc3NhZ2UtPnNldEZ1bGx5U3luY2hyb25vdXNNb2Rl
Rm9yVGVzdGluZygpOwpAQCAtOTk0LDcgKzk5NCw3IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlzcGF0
Y2hNZXNzYWdlKERlY29kZXImIGRlY29kZXIpCiAgICAgfQogCiAjaWYgRU5BQkxFKElQQ19URVNU
SU5HX0FQSSkKLSAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAgICBpZiAoaXNNYWluUnVuTG9v
cCgpKSB7CiAgICAgICAgIGJvb2wgaGFzRGVhZE9ic2VydmVycyA9IGZhbHNlOwogICAgICAgICBm
b3IgKGF1dG8mIG9ic2VydmVyV2Vha1B0ciA6IG1fbWVzc2FnZU9ic2VydmVycykgewogICAgICAg
ICAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gb2JzZXJ2ZXJXZWFrUHRyLmdldCgpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vY29jb2EvQXV0aGVudGlj
YXRpb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlv
bi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbQppbmRleCA4NjkwY2ViOWVlOGRk
MWNkZjY0MGYxNzU2YzhmNzRlYWM4NGI1ZmNkLi45MTJmNDI5NjdjMzA0OTA5NzdkMGQzNmM1ZmQ0
M2U2OTcyN2YwNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2Nv
YS5tbQpAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBBdXRoZW50
aWNhdGlvbk1hbmFnZXI6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbikKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgUkVM
RUFTRV9BU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghY29ubmVjdGlvbiB8fCAh
Y29ubmVjdGlvbi0+eHBjQ29ubmVjdGlvbigpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtNTAsOCArNTAsOCBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6aW5pdGlh
bGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKQogICAgIC8vIFRoZSBm
b2xsb3dpbmcgeHBjIGV2ZW50IGhhbmRsZXIgb3ZlcndyaXRlcyB0aGUgYm9vc3RyYXAgZXZlbnQg
aGFuZGxlciBhbmQgaXMgb25seSB1c2VkCiAgICAgLy8gdG8gY2FwdHVyZSBjbGllbnQgY2VydGlm
aWNhdGUgY3JlZGVudGlhbC4KICAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihj
b25uZWN0aW9uLT54cGNDb25uZWN0aW9uKCksIF4oeHBjX29iamVjdF90IGV2ZW50KSB7Ci0gICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW2V2ZW50ID0gT1NPYmplY3RQdHIoZXZlbnQpLCB3ZWFrVGhp
cyA9IHdlYWtUaGlzXSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtldmVudCA9IE9TT2JqZWN0UHRyKGV2ZW50
KSwgd2Vha1RoaXMgPSB3ZWFrVGhpc10geworICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXNN
YWluUnVuTG9vcCgpKTsKIAogICAgICAgICAgICAgeHBjX3R5cGVfdCB0eXBlID0geHBjX2dldF90
eXBlKGV2ZW50LmdldCgpKTsKICAgICAgICAgICAgIGlmICh0eXBlID09IFhQQ19UWVBFX0VSUk9S
IHx8ICF3ZWFrVGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCmluZGV4IGU3MDI4
Yzc5NzBlYWQxOWU0YTQ2NDFmZjczYzA0MjVkMGRiMjJhNDUuLmI4OGY4ODM5MzAyYTlhMDJiMzY2
OGYxODNlNzdjYzhlZTVkNDRiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21h
Yy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcApA
QCAtODIsMTIgKzgyLDEyIEBAIE1lZGlhRm9ybWF0UmVhZGVyOjpNZWRpYUZvcm1hdFJlYWRlcihB
bGxvY2F0b3ImJiBhbGxvY2F0b3IpCiAKIHZvaWQgTWVkaWFGb3JtYXRSZWFkZXI6OnN0YXJ0T25N
YWluVGhyZWFkKE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291cmNlKQogewotICAgIGlmIChp
c01haW5UaHJlYWQoKSkgeworICAgIGlmIChpc01haW5SdW5Mb29wKCkpIHsKICAgICAgICAgcGFy
c2VCeXRlU291cmNlKFdURk1vdmUoYnl0ZVNvdXJjZSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBieXRlU291cmNlID0gcmV0YWluUHRyKGJ5dGVTb3VyY2UpXSgpIG11dGFibGUgewor
ICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGJ5dGVTb3VyY2UgPSByZXRhaW5QdHIoYnl0ZVNvdXJjZSldKCkgbXV0YWJsZSB7CiAgICAg
ICAgIHBhcnNlQnl0ZVNvdXJjZShXVEZNb3ZlKGJ5dGVTb3VyY2UpKTsKICAgICB9KTsKIH0KQEAg
LTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgV29ya1F1ZXVlJiByZWFkZXJRdWV1ZSgpCiAKIHZvaWQg
TWVkaWFGb3JtYXRSZWFkZXI6OnBhcnNlQnl0ZVNvdXJjZShSZXRhaW5QdHI8TVRQbHVnaW5CeXRl
U291cmNlUmVmPiYmIGJ5dGVTb3VyY2UpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxDb250ZW50VHlwZT4gY29udGVudFR5cGUoInZpZGVvL3dlYm0iX3MpOwogICAgIGF1dG8gcGFy
c2VyID0gU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6Y3JlYXRlKGNvbnRlbnRUeXBlKTsKQEAgLTE1
Miw3ICsxNTIsNyBAQCB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpwYXJzZUJ5dGVTb3VyY2UoUmV0
YWluUHRyPE1UUGx1Z2luQnl0ZVNvdXJjZVJlZj4mJiBieXRlUwogCiB2b2lkIE1lZGlhRm9ybWF0
UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFs
aXphdGlvblNlZ21lbnQmJiBzZWdtZW50LCB1aW50NjRfdCBlcnJvckNvZGUpCiB7Ci0gICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BhcnNlVHJhY2tzTG9jayk7CiAgICAgQVNTRVJU
KCFtX3BhcnNlVHJhY2tzU3RhdHVzKTsKQEAgLTE5NSw3ICsxOTUsNyBAQCB2b2lkIE1lZGlhRm9y
bWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0
aWFsaXphdGlvbgogCiB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpkaWRQcm92aWRlTWVkaWFEYXRh
KFJlZjxNZWRpYVNhbXBsZT4mJiBtZWRpYVNhbXBsZSwgdWludDY0X3QgdHJhY2tJRCwgY29uc3Qg
U3RyaW5nJikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlz
TWFpblJ1bkxvb3AoKSk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcGFyc2VUcmFj
a3NMb2NrKTsKICAgICBhdXRvIHRyYWNrSW5kZXggPSBtX3RyYWNrUmVhZGVycy5maW5kTWF0Y2hp
bmcoWyZdKGF1dG8mIHRyYWNrKSB7CkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBNZWRpYUZvcm1h
dFJlYWRlcjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFTYW1wbGU+JiYgbWVkaWFTYW1w
bGUsIHVpbnQKIAogdm9pZCBNZWRpYUZvcm1hdFJlYWRlcjo6ZmluaXNoUGFyc2luZyhSZWY8U291
cmNlQnVmZmVyUGFyc2VyPiYmIHBhcnNlcikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSKTsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wYXJzZVRyYWNrc0xvY2sp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAKaW5kZXggZGMyZWQzOGE2Mjdl
YWIyNjJhMTkzZWJmYTVjNGVkNzU4YzNiYWVhNS4uZDgzZWZjZjQ3NzVjZTk2YjEyYTg3NjBmOGQx
NzIzNGFiMGYxZWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlh
Rm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1wbGVCeXRlUmFuZ2UuY3BwCkBA
IC00NSw3ICs0NSw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpNZWRpYVNhbXBsZUJ5dGVSYW5n
ZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3VyCiAgICAgLCBtX2J5dGVTb3Vy
Y2UoYnl0ZVNvdXJjZSkKICAgICAsIG1fZmxhZ3Moc2FtcGxlLmZsYWdzKCkpCiB7Ci0gICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAg
IEFTU0VSVChtX2RlY29kZVRpbWUgPT0gbV9wcmVzZW50YXRpb25UaW1lIHx8IG1fZGVjb2RlVGlt
ZSA9PSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpOwogICAgIGF1dG8gcGxhdGZvcm1TYW1wbGUg
PSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKTsKICAgICBzd2l0Y2ggKHBsYXRmb3JtU2FtcGxlLnR5
cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJl
YWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcAppbmRleCBjNjRjYjEwM2NkNjJhMmUz
NGM4Y2RkNDZmMWI5MTkwZmUzOGM4NTgzLi5iMmY5ZWRjMjhmYzdiM2UzZDczZmYzZmZiYzk1NjA5
ZmM1NzQ0ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3Jt
YXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
bWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwCkBAIC03OCw3ICs3OCw3
IEBAIE1lZGlhVHJhY2tSZWFkZXI6Ok1lZGlhVHJhY2tSZWFkZXIoQWxsb2NhdG9yJiYgYWxsb2Nh
dG9yLCBjb25zdCBNZWRpYUZvcm1hdFJlYWRlCiAgICAgLCBtX2xvZ2dlcihmb3JtYXRSZWFkZXIu
bG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoZm9ybWF0UmVhZGVyLm5leHRUcmFja1Jl
YWRlckxvZ0lkZW50aWZpZXIodHJhY2tJRCkpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCBtZWRpYVR5cGVTdHJpbmcoKSwgIiAiLCB0cmFja0lEKTsKICAgICBpZiAoZW5h
YmxlZCkKQEAgLTk3LDcgKzk3LDcgQEAgTWVkaWFUaW1lIE1lZGlhVHJhY2tSZWFkZXI6OmdyZWF0
ZXN0UHJlc2VudGF0aW9uVGltZSgpIGNvbnN0CiAKIHZvaWQgTWVkaWFUcmFja1JlYWRlcjo6YWRk
U2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBi
eXRlU291cmNlKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCgh
aXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc2FtcGxlU3Rv
cmFnZUxvY2spOwogICAgIGlmICghbV9zYW1wbGVTdG9yYWdlKQogICAgICAgICBtX3NhbXBsZVN0
b3JhZ2UgPSBtYWtlVW5pcXVlPFNhbXBsZVN0b3JhZ2U+KCk7CkBAIC0xMjYsNyArMTI2LDcgQEAg
dm9pZCBNZWRpYVRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlKEZ1bmN0aW9uPGJvb2woU2FtcGxl
TWFwJiwgYm9vbCk+JiYgcHJlZGljYXQKIAogdm9pZCBNZWRpYVRyYWNrUmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlz
TWFpblJ1bkxvb3AoKSk7CiAKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9yYWdlTG9jayk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRl
ci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJh
Y2tSZWFkZXIuaAppbmRleCA3MTI2MDZkMDBhYTZlNTJkMTdjZTA2MzU4ODk1OTk3MTM0NjM1YmU2
Li4wMzNlNzQ1MjVmMmQ1NDdjMThjMDMxODMzNTg3NzAzMDY3Yzg2YmExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRp
YVRyYWNrUmVhZGVyLmgKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0cnVjdCBT
YW1wbGVTdG9yYWdlIHsKICAgICAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwot
ICAgICAgICB+U2FtcGxlU3RvcmFnZSgpIHsgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7IH0KKyAg
ICAgICAgflNhbXBsZVN0b3JhZ2UoKSB7IEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsgfQogICAg
ICAgICBXZWJDb3JlOjpTYW1wbGVNYXAgc2FtcGxlTWFwOwogICAgICAgICBib29sIGhhc0FsbFNh
bXBsZXMgeyBmYWxzZSB9OwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAppbmRleCAzMWMzOGYzNjEzYjM2YjUxZGVjMGZlZGEx
YjdiYzE3Nzc5ZGYwZDZlLi45MWZmYjIzM2JlODg2MWQyYTc3ODlkNjhmNzQ3MDkzODIxMzM0NmRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgSWNvbkRhdGFiYXNlOjpJY29uRGF0YWJhc2UoY29uc3Qg
U3RyaW5nJiBwYXRoLCBBbGxvd0RhdGFiYXNlV3JpdGUgYWxsb3dEYXRhYmFzZVcKICAgICAsIG1f
YWxsb3dEYXRhYmFzZVdyaXRlKGFsbG93RGF0YWJhc2VXcml0ZSkKICAgICAsIG1fY2xlYXJMb2Fk
ZWRJY29uc1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkljb25EYXRhYmFzZTo6Y2xlYXJM
b2FkZWRJY29uc1RpbWVyRmlyZWQpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAg
ICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBtX2NsZWFyTG9hZGVkSWNvbnNUaW1lci5z
ZXRQcmlvcml0eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OlJlbGVhc2VVbnVzZWRSZXNvdXJjZXNU
aW1lcik7CiAKICAgICAvLyBXZSBpbml0aWFsaXplIHRoZSBkYXRhYmFzZSBzeW5jaHJvbm91c2x5
LCBpdCdzIGhvcGVmdWxseSBmYXN0IGVub3VnaCBiZWNhdXNlIGl0IG1ha2VzCkBAIC0xMDgsNyAr
MTA4LDcgQEAgSWNvbkRhdGFiYXNlOjpJY29uRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBwYXRoLCBB
bGxvd0RhdGFiYXNlV3JpdGUgYWxsb3dEYXRhYmFzZVcKIAogSWNvbkRhdGFiYXNlOjp+SWNvbkRh
dGFiYXNlKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01h
aW5SdW5Mb29wKCkpOwogCiAgICAgQmluYXJ5U2VtYXBob3JlIHNlbWFwaG9yZTsKICAgICBtX3dv
cmtRdWV1ZS0+ZGlzcGF0Y2goWyZdIHsKQEAgLTEyNCw3ICsxMjQsNyBAQCBJY29uRGF0YWJhc2U6
On5JY29uRGF0YWJhc2UoKQogCiBib29sIEljb25EYXRhYmFzZTo6Y3JlYXRlVGFibGVzSWZOZWVk
ZWQoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWlu
UnVuTG9vcCgpKTsKIAogICAgIGlmIChtX2RiLnRhYmxlRXhpc3RzKCJJY29uSW5mbyIpICYmIG1f
ZGIudGFibGVFeGlzdHMoIkljb25EYXRhIikgJiYgbV9kYi50YWJsZUV4aXN0cygiUGFnZVVSTCIp
ICYmIG1fZGIudGFibGVFeGlzdHMoIkljb25EYXRhYmFzZUluZm8iKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtMTgyLDcgKzE4Miw3IEBAIGJvb2wgSWNvbkRhdGFiYXNlOjpjcmVhdGVUYWJs
ZXNJZk5lZWRlZCgpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpwb3B1bGF0ZVBhZ2VVUkxUb0ljb25V
UkxNYXAoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNN
YWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghbV9kYi5pc09wZW4oKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwb3B1bGF0ZVBhZ2VVUkxU
b0ljb25VUkxNYXAoKQogCiB2b2lkIEljb25EYXRhYmFzZTo6Y2xlYXJTdGF0ZW1lbnRzKCkKIHsK
LSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3Ao
KSk7CiAgICAgQVNTRVJUKG1fZGIuaXNPcGVuKCkpOwogCiAgICAgbV9pY29uSURGb3JJY29uVVJM
U3RhdGVtZW50ID0gbnVsbHB0cjsKQEAgLTIyMyw3ICsyMjMsNyBAQCB2b2lkIEljb25EYXRhYmFz
ZTo6Y2xlYXJTdGF0ZW1lbnRzKCkKIAogdm9pZCBJY29uRGF0YWJhc2U6OnBydW5lVGltZXJGaXJl
ZCgpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5S
dW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsKIAogICAgIGlmICghbV9wcnVu
ZUljb25zU3RhdGVtZW50KSB7CkBAIC0yNTMsNyArMjUzLDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6
OnBydW5lVGltZXJGaXJlZCgpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpzdGFydFBydW5lVGltZXIo
KQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWluUnVu
TG9vcCgpKTsKIAogICAgIGlmICghbV9wcnVuZVRpbWVyIHx8ICFtX2RiLmlzT3BlbigpKQogICAg
ICAgICByZXR1cm47CkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OnN0YXJ0
UHJ1bmVUaW1lcigpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpjbGVhckxvYWRlZEljb25zVGltZXJG
aXJlZCgpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKIAogICAgIExvY2tIb2xkZXIgbG9ja0hvbGRlcihtX2xvYWRlZEljb25zTG9j
ayk7CiAgICAgYXV0byBub3cgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKQEAgLTI4NCw3ICsyODQs
NyBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2xlYXJMb2FkZWRJY29uc1RpbWVyRmlyZWQoKQogCiB2
b2lkIEljb25EYXRhYmFzZTo6c3RhcnRDbGVhckxvYWRlZEljb25zVGltZXIoKQogewotICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAKICAg
ICBpZiAobV9jbGVhckxvYWRlZEljb25zVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzdGFydENsZWFyTG9hZGVk
SWNvbnNUaW1lcigpCiAKIE9wdGlvbmFsPGludDY0X3Q+IEljb25EYXRhYmFzZTo6aWNvbklERm9y
SWNvblVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGJvb2wmIGV4cGlyZWQpCiB7Ci0gICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAg
IEFTU0VSVChtX2RiLmlzT3BlbigpKTsKIAogICAgIGlmICghbV9pY29uSURGb3JJY29uVVJMU3Rh
dGVtZW50KSB7CkBAIC0zMjMsNyArMzIzLDcgQEAgT3B0aW9uYWw8aW50NjRfdD4gSWNvbkRhdGFi
YXNlOjppY29uSURGb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgYm9vbCYgZXgKIAog
Ym9vbCBJY29uRGF0YWJhc2U6OnNldEljb25JREZvclBhZ2VVUkwoaW50NjRfdCBpY29uSUQsIGNv
bnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAg
ICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fZGIuaXNPcGVuKCkpOwog
ICAgIEFTU0VSVChtX2FsbG93RGF0YWJhc2VXcml0ZSA9PSBBbGxvd0RhdGFiYXNlV3JpdGU6Olll
cyk7CiAKQEAgLTM1MSw3ICszNTEsNyBAQCBib29sIEljb25EYXRhYmFzZTo6c2V0SWNvbklERm9y
UGFnZVVSTChpbnQ2NF90IGljb25JRCwgY29uc3QgU3RyaW5nJiBwYWdlVVJMKQogCiBWZWN0b3I8
Y2hhcj4gSWNvbkRhdGFiYXNlOjppY29uRGF0YShpbnQ2NF90IGljb25JRCkKIHsKLSAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAg
QVNTRVJUKG1fZGIuaXNPcGVuKCkpOwogCiAgICAgaWYgKCFtX2ljb25EYXRhU3RhdGVtZW50KSB7
CkBAIC0zNzgsNyArMzc4LDcgQEAgVmVjdG9yPGNoYXI+IEljb25EYXRhYmFzZTo6aWNvbkRhdGEo
aW50NjRfdCBpY29uSUQpCiAKIE9wdGlvbmFsPGludDY0X3Q+IEljb25EYXRhYmFzZTo6YWRkSWNv
bihjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFZlY3RvcjxjaGFyPiYgaWNvbkRhdGEpCiB7
Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29w
KCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsKICAgICBBU1NFUlQobV9hbGxvd0RhdGFi
YXNlV3JpdGUgPT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpZZXMpOwogCkBAIC00MjEsNyArNDIxLDcg
QEAgT3B0aW9uYWw8aW50NjRfdD4gSWNvbkRhdGFiYXNlOjphZGRJY29uKGNvbnN0IFN0cmluZyYg
aWNvblVSTCwgY29uc3QgVmVjdG9yPGNoYXIKIAogdm9pZCBJY29uRGF0YWJhc2U6OnVwZGF0ZUlj
b25UaW1lc3RhbXAoaW50NjRfdCBpY29uSUQsIGludDY0X3QgdGltZXN0YW1wKQogewotICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAg
ICBBU1NFUlQobV9kYi5pc09wZW4oKSk7CiAgICAgQVNTRVJUKG1fYWxsb3dEYXRhYmFzZVdyaXRl
ID09IEFsbG93RGF0YWJhc2VXcml0ZTo6WWVzKTsKIApAQCAtNDQ1LDcgKzQ0NSw3IEBAIHZvaWQg
SWNvbkRhdGFiYXNlOjp1cGRhdGVJY29uVGltZXN0YW1wKGludDY0X3QgaWNvbklELCBpbnQ2NF90
IHRpbWVzdGFtcCkKIAogdm9pZCBJY29uRGF0YWJhc2U6OmRlbGV0ZUljb24oaW50NjRfdCBpY29u
SUQpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5S
dW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsKICAgICBBU1NFUlQobV9hbGxv
d0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpZZXMpOwogCkBAIC00OTIsNyAr
NDkyLDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OmRlbGV0ZUljb24oaW50NjRfdCBpY29uSUQpCiAK
IHZvaWQgSWNvbkRhdGFiYXNlOjpjaGVja0ljb25VUkxBbmRTZXRQYWdlVVJMSWZOZWVkZWQoY29u
c3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkwsIEFsbG93RGF0YWJhc2VX
cml0ZSBhbGxvd0RhdGFiYXNlV3JpdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIG1fd29ya1F1ZXVlLT5kaXNwYXRj
aChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpY29uVVJMID0gaWNvblVS
TC5pc29sYXRlZENvcHkoKSwgcGFnZVVSTCA9IHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCksIGFsbG93
RGF0YWJhc2VXcml0ZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKQEAgLTU0NSw3
ICs1NDUsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2hlY2tJY29uVVJMQW5kU2V0UGFnZVVSTElm
TmVlZGVkKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29ucwogCiB2b2lkIEljb25EYXRhYmFzZTo6
bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgQWxsb3dEYXRhYmFzZVdy
aXRlIGFsbG93RGF0YWJhc2VXcml0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQbGF0Zm9ybUlt
YWdlUHRyJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICBtX3dvcmtRdWV1ZS0+
ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFnZVVSTCA9
IHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCksIGFsbG93RGF0YWJhc2VXcml0ZSwgdGltZXN0YW1wID0g
V2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIE9wdGlvbmFs
PGludDY0X3Q+IGljb25JRDsKQEAgLTYwNyw3ICs2MDcsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6
bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCwgQWxsb3dEYXRhYmFzZVdy
aXRlCiAKIFN0cmluZyBJY29uRGF0YWJhc2U6Omljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmlu
ZyYgcGFnZVVSTCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChp
c01haW5SdW5Mb29wKCkpOwogCiAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1fcGFnZVVSTFRv
SWNvblVSTE1hcExvY2spOwogICAgIHJldHVybiBtX3BhZ2VVUkxUb0ljb25VUkxNYXAuZ2V0KHBh
Z2VVUkwpOwpAQCAtNjE1LDcgKzYxNSw3IEBAIFN0cmluZyBJY29uRGF0YWJhc2U6Omljb25VUkxG
b3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIAogdm9pZCBJY29uRGF0YWJhc2U6OnNl
dEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgdW5zaWduZWQgY2hh
ciogaWNvbkRhdGEsIHNpemVfdCBpY29uRGF0YVNpemUsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCwg
QWxsb3dEYXRhYmFzZVdyaXRlIGFsbG93RGF0YWJhc2VXcml0ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgLy8gSWYgZGF0YWJh
c2Ugd3JpdGUgaXMgbm90IGFsbG93ZWQgbG9hZCB0aGUgaWNvbiB0byBjYWNoZSBpdCBpbiBtZW1v
cnkgb25seS4KICAgICBpZiAobV9hbGxvd0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dEYXRhYmFzZVdy
aXRlOjpObyB8fCBhbGxvd0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpObykg
ewpAQCAtNjc3LDcgKzY3Nyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRm9yUGFnZVVS
TChjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IHVuc2lnbmVkIGNoYXIqCiAKIHZvaWQgSWNv
bkRhdGFiYXNlOjpjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKIAogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrSG9sZGVyKG1fbG9h
ZGVkSWNvbnNMb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L01lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL01lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbQppbmRleCBhNzViMjY3MDRhMzhhNTRjNjdi
YTljMzkxMTMxNTBhZmUzYmE0OTI0Li5kMTI1MjRiNTM5ZmRhNDZiYTFmZmRmZGMwN2RlOGI0MjU4
ZDg5NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVBl
cm1pc3Npb25VdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tCkBAIC0yMTIsNyArMjEyLDcgQEAgdm9pZCBhbGVy
dEZvclBlcm1pc3Npb24oV2ViUGFnZVByb3h5JiBwYWdlLCBNZWRpYVBlcm1pc3Npb25SZWFzb24g
cmVhc29uLCBPcHRpb24KIAogdm9pZCByZXF1ZXN0QVZDYXB0dXJlQWNjZXNzRm9yVHlwZShNZWRp
YVBlcm1pc3Npb25UeXBlIHR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBhdXRob3Jp
emVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgQVZNZWRpYVR5cGUgbWVkaWFU
eXBlID0gdHlwZSA9PSBNZWRpYVBlcm1pc3Npb25UeXBlOjpBdWRpbyA/IEFWTWVkaWFUeXBlQXVk
aW8gOiBBVk1lZGlhVHlwZVZpZGVvOwogICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJs
b2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShC
T09MIGF1dGhvcml6ZWQpIG11dGFibGUgewpAQCAtMjQwLDcgKzI0MCw3IEBAIE1lZGlhUGVybWlz
c2lvblJlc3VsdCBjaGVja0FWQ2FwdHVyZUFjY2Vzc0ZvclR5cGUoTWVkaWFQZXJtaXNzaW9uVHlw
ZSB0eXBlKQogCiB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvbkFjY2VzcyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wgYXV0aG9yaXplZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsK
IAogICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTRlNwZWVjaFJlY29nbml6ZXJBdXRo
b3JpemF0aW9uU3RhdHVzIHN0YXR1cykgbXV0YWJsZSB7CiAgICAgICAgIGJvb2wgYXV0aG9yaXpl
ZCA9IHN0YXR1cyA9PSBTRlNwZWVjaFJlY29nbml6ZXJBdXRob3JpemF0aW9uU3RhdHVzQXV0aG9y
aXplZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVu
Y2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ByZWZlcmVuY2VP
YnNlcnZlci5tbQppbmRleCBlZWZlZDFhMDc5ZGU3OTk2ODAxZTdjMmYzNzA2YjFjOTY5NjU3NmIw
Li4zMGUyMGNmZDk1NTBiMWE0NTUzZjAyNTlmMDRjNzY1MDdlNjg2MjEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5jZU9ic2VydmVyLm1tCkBAIC04
OSw3ICs4OSw3IEBAIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0Zv
cktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4KIHsKICAgICBbc3VwZXIgX25vdGlm
eU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6b2xkVmFsdWVzIHRvVmFsdWVzRm9y
S2V5czpuZXdWYWx1ZXNdOwogCi0gICAgaWYgKCFpc01haW5UaHJlYWQoKSkgeworICAgIGlmICgh
aXNNYWluUnVuTG9vcCgpKSB7CiAgICAgICAgIFtzZWxmIGZpbmRQcmVmZXJlbmNlQ2hhbmdlc0Fu
ZE5vdGlmeUZvcktleXM6b2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5czpuZXdWYWx1ZXNdOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggMGMyOTYxMDE3NTY4ZTUzODlhODQzZDEw
NGY3ZmU4OWQwM2JjNWQ4Ni4uZGIwMDlhZDI4MmZiYzA3NDQ5YjIxMjU3MTA3NjkyNDIwM2FmMTk1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UG9vbENvY29hLm1tCkBAIC0yMjQsNyArMjI0LDcgQEAgc3RhdGljIGJvb2wgaXNJbnRlcm5hbElu
c3RhbGwoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBzdGF0aWMgY29uc3QgVmVjdG9yPEFT
Q0lJTGl0ZXJhbD4mIG5vbkJyb3dzZXJTZXJ2aWNlcygpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBzdGF0aWMgY29uc3Qg
YXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7
CiAgICAgICAgICJjb20uYXBwbGUubHNkLm9wZW4iX3MsCiAgICAgICAgICJjb20uYXBwbGUuaWNv
bnNlcnZpY2VzIl9zLApAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8QVND
SUlMaXRlcmFsPiYgbm9uQnJvd3NlclNlcnZpY2VzKCkKIAogc3RhdGljIGNvbnN0IFZlY3RvcjxB
U0NJSUxpdGVyYWw+JiBhZ3hDb21waWxlckNsYXNzZXMoKQogewotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgc3RhdGljIGNvbnN0
IGF1dG8gaW9raXRDbGFzc2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxBU0NJSUxpdGVy
YWw+IHsKICAgICAgICAgIkFHWENvbW1hbmRRdWV1ZSJfcywKICAgICAgICAgIkFHWERldmljZSJf
cywKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4m
IGFneENvbXBpbGVyQ2xhc3NlcygpCiAjaWYgUExBVEZPUk0oSU9TKQogc3RhdGljIGNvbnN0IFZl
Y3RvcjxBU0NJSUxpdGVyYWw+JiBhZ3hDb21waWxlclNlcnZpY2VzKCkKIHsKLSAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIHN0YXRp
YyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxBU0NJSUxp
dGVyYWw+IHsKICAgICAgICAgImNvbS5hcHBsZS5BR1hDb21waWxlclNlcnZpY2UiX3MsCiAgICAg
ICAgICJjb20uYXBwbGUuQUdYQ29tcGlsZXJTZXJ2aWNlLVMyQTgiX3MKQEAgLTI2Nyw3ICsyNjcs
NyBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGFneENvbXBpbGVyU2Vydmlj
ZXMoKQogCiBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGRpYWdub3N0aWNTZXJ2
aWNlcygpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKICAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRl
c3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7CiAgICAgICAgICJjb20uYXBwbGUuZGlhZ25v
c3RpY2QiX3MsCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5zcGVj
dG9yQ2xpZW50LmNwcAppbmRleCAyMWRiMTEzZTRjOGYxYWY4YzBkMzgyOGZlYjEzMWE2NTg0ZTBm
NGM0Li42ZjY5ODYxNWIzZWYwYzViMzRjNTA2ZDdiODM5NmQzOTI3NGQ2MTVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivc29ja2V0L1JlbW90ZUluc3BlY3Rv
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3NvY2tl
dC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgUmVtb3RlSW5z
cGVjdG9yQ2xpZW50Ojp+UmVtb3RlSW5zcGVjdG9yQ2xpZW50KCkKIAogdm9pZCBSZW1vdGVJbnNw
ZWN0b3JDbGllbnQ6OnNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25zdCBTdHJpbmcmIGV2ZW50KQog
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3Ao
KSk7CiAgICAgQVNTRVJUKG1fY29ubmVjdGlvbklELmhhc1ZhbHVlKCkpOwogICAgIGF1dG8gbWVz
c2FnZSA9IGV2ZW50LnV0ZjgoKTsKICAgICBzZW5kKG1fY29ubmVjdGlvbklELnZhbHVlKCksIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG1lc3NhZ2UuZGF0YSgpKSwgbWVzc2FnZS5s
ZW5ndGgoKSk7CkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBSZW1vdGVJbnNwZWN0b3JDbGllbnQ6
OmNvbm5lY3Rpb25DbG9zZWQoKQogCiB2b2lkIFJlbW90ZUluc3BlY3RvckNsaWVudDo6ZGlkQ2xv
c2UoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRwb2ludCYsIENvbm5lY3Rpb25J
RCkKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7CisgICAgY2FsbE9uTWFpblJ1bkxv
b3AoW3RoaXNdIHsKICAgICAgICAgY29ubmVjdGlvbkNsb3NlZCgpOwogICAgIH0pOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eS5jcHAKaW5kZXggMDFhMWFjZmVhNjMxNTQyYzBlYWJiMThjOGI1ZjAxZGVlMTUwMWJjZC4u
ZGFiMzJlMDQ5M2U2YTZlYzdhMTU1NjU5MDQyMzBhZDVjY2Q5NjMwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpkaWRS
ZWNlaXZlQXBwQm91bmREb21haW5SZXN1bHQoT3B0aW9uYWw8TmF2aWdhCiAKIHZvaWQgV2ViRnJh
bWVQb2xpY3lMaXN0ZW5lclByb3h5OjpkaWRSZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyhSZWZQ
dHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5nKQogewotICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAg
QVNTRVJUKCFtX3NhZmVCcm93c2luZ1dhcm5pbmcpOwogICAgIGlmIChtX3BvbGljeVJlc3VsdCAm
JiBtX2lzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pIHsKICAgICAgICAgaWYgKG1fcmVwbHkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5MTljNjEzMjUx
MmRlMjc2NmEwYjljMGMzNTU2YmY4Y2ZkN2U3MTQ2Li42NjY1OTBiOGYzZDIzOTEwNmVmMGRmZjE2
NmU2YWJlM2YwZGFiZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTc2NjEsNyArNzY2MSw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFs
PiYgYXR0YWNobWVudEVsZW1lbnRTZXJ2aWNlcygpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiBzdGF0
aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGdwdUlPS2l0Q2xhc3NlcygpCiB7Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAg
ICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8
QVNDSUlMaXRlcmFsPiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgIkFHWERl
dmljZVVzZXJDbGllbnQiX3MsCkBAIC03NjkzLDcgKzc2OTMsNyBAQCBzdGF0aWMgY29uc3QgVmVj
dG9yPEFTQ0lJTGl0ZXJhbD4mIGdwdUlPS2l0Q2xhc3NlcygpCiAKIHN0YXRpYyBjb25zdCBWZWN0
b3I8QVNDSUlMaXRlcmFsPiYgZ3B1TWFjaFNlcnZpY2VzKCkKIHsKLSAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIHN0YXRpYyBjb25z
dCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZlY3RvcjxBU0NJSUxpdGVyYWw+
IHsKICAgICAgICAgImNvbS5hcHBsZS5NVExDb21waWxlclNlcnZpY2UiX3MsCiAjaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTc3MDYsNyArNzcwNiw3IEBAIHN0
YXRpYyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgZ3B1TWFjaFNlcnZpY2VzKCkKIC8vIEZJ
WE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0aGUgR1BV
IHByb2Nlc3MgaXMgY29tcGxldGUuCiBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4m
IG1lZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcygpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBzdGF0aWMgY29uc3QgYXV0byBz
ZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7CiAgICAg
ICAgICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRQcmVmcyJfcywgImNvbS5hcHBsZS5h
dWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciJfcywKICAgICAgICAgImNvbS5hcHBsZS5hdWRp
by5BdWRpb1F1ZXVlU2VydmVyIl9zLCAiY29tLmFwcGxlLmNvcmVtZWRpYS5lbmRwb2ludC54cGMi
X3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbQppbmRleCA0NjNmYTMz
YTVjNTUxOTA5NGNiMDI0MzMxMTliZmYyODQ0ZDczNjAzLi4wMjJjZGM3ZmY0Mzg4NmVlNWUzYzhl
YjZiY2Y0NGM5MjdjNDgwNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlZp
ZXcubW0KQEAgLTEzNiw3ICsxMzYsNyBAQCAtICh2b2lkKXdlYl9zZXRDb250ZW50UHJvdmlkZXJE
YXRhOihOU0RhdGEgKilkYXRhIHN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKQogICAgIF9z
dWdnZXN0ZWRGaWxlbmFtZSA9IGFkb3B0TlMoW2ZpbGVuYW1lIGNvcHldKTsKIAogICAgIFtQREZI
b3N0Vmlld0NvbnRyb2xsZXIgY3JlYXRlSG9zdFZpZXc6W3NlbGYsIHdlYWtTZWxmID0gV2Vha09i
akNQdHI8V0tQREZWaWV3PihzZWxmKV0oUERGSG9zdFZpZXdDb250cm9sbGVyICpob3N0Vmlld0Nv
bnRyb2xsZXIpIHsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgQVNT
RVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICAgICAgV0tQREZWaWV3ICphdXRvcmVsZWFzZWRT
ZWxmID0gd2Vha1NlbGYuZ2V0QXV0b3JlbGVhc2VkKCk7CiAgICAgICAgIGlmICghYXV0b3JlbGVh
c2VkU2VsZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50
aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5t
bQppbmRleCAwNTVjNjAxZmU3ZmQ4NTdlOTMzMTUyNDM3OTM2NjkwYzQxYzFjYzcyLi4zM2JkZGM1
MzVhZTdhN2U5ZDBhODBkYjg0OWYzZDljZjg3MjYwZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBAIC02Myw3ICs2Myw3IEBAIC0gKGlkKWlu
aXRXaXRoRnJhbWVQcm94eTooV2ViS2l0OjpXZWJGcmFtZVByb3h5JilmcmFtZSB2aWV3OihOU1Zp
ZXcgKil3a1ZpZXcKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChb
ZnJhbWUgPSBXVEZNb3ZlKF93ZWJGcmFtZSksIHByZXZpZXdzID0gV1RGTW92ZShfcGFnZVByZXZp
ZXdzKV0geworICAgIGNhbGxPbk1haW5SdW5Mb29wKFtmcmFtZSA9IFdURk1vdmUoX3dlYkZyYW1l
KSwgcHJldmlld3MgPSBXVEZNb3ZlKF9wYWdlUHJldmlld3MpXSB7CiAgICAgICAgIC8vIERlYWxs
b2NhdGUgdGhlc2Ugb24gdGhlIG1haW4gdGhyZWFkLCBub3QgdGhlIGN1cnJlbnQgdGhyZWFkLCBz
aW5jZSB0aGUKICAgICAgICAgLy8gcmVmZXJlbmNlIGNvdW50aW5nIGFuZCB0aGUgZGVzdHJ1Y3Rv
cnMgYXJlbid0IHRocmVhZHNhZmUuCiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5k
ZXggNzY1MzM5MmIxOTM0YTJjYWI5ZTMwZjFlMzk4OTRmNGM2NjgxNzlmNS4uNzBjNGY4MjNmM2Jm
NjYyNWQ1NTNjODc5MzIzYWY5ZTMxZjJkMDBkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApA
QCAtNDcsNyArNDcsNyBAQCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpXZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uKFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyJiBwcgogCiBXZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjp+V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIH0KIAogSVBD
OjpDb25uZWN0aW9uJiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjb25uZWN0aW9uKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMTdhZDEwMzZkNGFiZjg4MTAzNWMzOGM0MmI3
OTRmZjIwNGYyMzg4YS4uODk0ZDlkZDE5OGNhYzUyMGRkM2E0MjU3YjUwNGNhMWM3ODRkOGZlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCB3YWl0Rm9yRGlkRmx1c2hPblNlY29uZGFyeVRocmVhZChXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIHRhcmdldEZsdXNoSWRlbnRpZmllcikKICAgICB7Ci0g
ICAgICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAgICBBU1NFUlQoIWlzTWFpblJ1
bkxvb3AoKSk7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9yZWNlaXZlZEZsdXNo
SWRlbnRpZmllckxvY2spOwogICAgICAgICBtX3JlY2VpdmVkRmx1c2hJZGVudGlmaWVyQ2hhbmdl
ZENvbmRpdGlvbi53YWl0KG1fcmVjZWl2ZWRGbHVzaElkZW50aWZpZXJMb2NrLCBbJl0gewogICAg
ICAgICAgICAgcmV0dXJuIG1fcmVjZWl2ZWRGbHVzaElkZW50aWZpZXIgPT0gdGFyZ2V0Rmx1c2hJ
ZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDk3ZjdhZGEzY2Ex
MjllMzhhMzU1YWY5MzM2MTc1NmZjZTBlYmNjNzUuLjQ3MzA0ZjA0ODMxZGMzYjhiYzBlZWVmYzJm
YjlhMDViZTVlODBmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTY3MCw3
ICs2NzAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZChjb25zdCBVUkwm
IHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IHRoaXNdIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigq
dGhpcyksIHRoaXNdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVy
bjsKIApAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjps
b2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYgY29udGVudFR5CiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2FkKE1l
ZGlhU3RyZWFtUHJpdmF0ZSYpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykK
ICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJveHkuY3Bw
CmluZGV4IDAyODMzMDU0YWUwZGY4MjllMjcxYmJiZjQ4YjM4YjMzODY0ODRhNTkuLjAxOWVjYzFl
NzRmZDlkMDVmYmU2ZDY0OGNjNGEzMjY0NDUyYmIzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eS5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25Qcm94eTo6c3RvcFJlbmRlcmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
CiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJRdWFudHVtKCkKIHsK
LSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3Ao
KSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX2F1ZGlvQnVmZmVyTGlzdC0+c2V0U2Ft
cGxlQ291bnQoV2ViQ29yZTo6QXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50dW1TaXplKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9T
b3VyY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCmluZGV4IGYwYzMwNDhjZjZjMDMyZGQwNDE5NGEy
NDNlYmZiNDVjYWU3ZDYwNTQuLmFiOTkzNTA0YTdiNzRhYjM1ODQxZjU1Y2Q0ZWFkY2RjYTBjYWYw
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
QXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcApAQCAtNTYsNyArNTYsNyBAQCBS
ZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyKE1lZGlh
UGxheWVySWRlbnRpZmllciBpZGVudAogICAgICwgbV9sb2dJZGVudGlmaWVyKGhlbHBlci5sb2dJ
ZGVudGlmaWVyKCkpCiAjZW5kaWYKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIFVOVVNFRF9QQVJBTShoZWxwZXIpOwogCiAj
aWYgRU5BQkxFKFdFQl9BVURJTykKQEAgLTcwLDcgKzcwLDcgQEAgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlcjo6flJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoKQogCiB2b2lkIFJlbW90ZUF1ZGlv
U291cmNlUHJvdmlkZXI6OmNsb3NlKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIGlmIChtX2dwdVByb2Nlc3NDb25uZWN0
aW9uKQogICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5hdWRpb1NvdXJjZVByb3ZpZGVy
TWFuYWdlcigpLnJlbW92ZVByb3ZpZGVyKG1faWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2Rl
ckFWRi5jcHAKaW5kZXggMGUzNjBjMGMyYTUxODg5NGM1NmJkMmNmN2RkNTk1Y2NkMzViZDMwMS4u
Mjg3ODNiMjIwYjg4OGUzZjExYzdlZDg1YWE1YzUyNmY3OWJhYmJjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNv
ZGVyQVZGLmNwcApAQCAtMTYzLDEwICsxNjMsMTAgQEAgUGxhdGZvcm1JbWFnZVB0ciBSZW1vdGVJ
bWFnZURlY29kZXJBVkY6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRleCwgU3UK
ICAgICAgICAgcmV0dXJuIG1fZnJhbWVJbWFnZXMuZ2V0KGluZGV4KTsKIAogICAgIC8vIFRoaXMg
ZnVuY3Rpb24gbWlnaHQgYmUgY2FsbGVkIGluIHRoZSBtYWluIHRocmVhZCB0byBydW4gdGhlIGRl
Y29kZXIgc3luY2hyb25vdXNseQotICAgIGlmIChpc01haW5UaHJlYWQoKSkKKyAgICBpZiAoaXNN
YWluUnVuTG9vcCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGNhbGxPbk1haW5U
aHJlYWRBbmRXYWl0KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGluZGV4
XSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGluZGV4XSB7CiAgICAgICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVj
dGlvbikKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggODI2MjI1NDU5
MTdmMTkzNzg0NWE1ZjliNGNhMTJjYWMyYTgyZmY0Mi4uZWIzY2JiMjg2M2IzMjdiZDJjNTM0MDcx
N2QyZjBiMDhjZDJkNjc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0xODQsNyArMTg0LDcgQEAgTGli
V2ViUlRDQ29kZWNzOjp+TGliV2ViUlRDQ29kZWNzKCkKIAogdm9pZCBMaWJXZWJSVENDb2RlY3M6
OnNldENhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nlc3MpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghdXNlR1BV
UHJvY2VzcykgewogICAgICAgICB3ZWJydGM6OnNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyKTsKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lk
IExpYldlYlJUQ0NvZGVjczo6cmVnaXN0ZXJEZWNvZGVGcmFtZUNhbGxiYWNrKERlY29kZXImIGRl
Y29kZXIsIHZvaWQqIGRlY29kZQogCiB2b2lkIExpYldlYlJUQ0NvZGVjczo6ZmFpbGVkRGVjb2Rp
bmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIpCiB7Ci0gICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAgICAg
aWYgKGF1dG8qIGRlY29kZXIgPSBtX2RlY29kZXJzLmdldChkZWNvZGVySWRlbnRpZmllcikpCiAg
ICAgICAgIGRlY29kZXItPmhhc0Vycm9yID0gdHJ1ZTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lk
IExpYldlYlJUQ0NvZGVjczo6ZmFpbGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVj
b2RlcklkZW50aWZpZXIpCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGlu
ZyhSVENEZWNvZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0
YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKIHsKLSAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAK
ICAgICAvLyBGSVhNRTogRG8gZXJyb3IgbG9nZ2luZy4KICAgICBhdXRvKiBkZWNvZGVyID0gbV9k
ZWNvZGVycy5nZXQoZGVjb2RlcklkZW50aWZpZXIpOwpAQCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQg
TGliV2ViUlRDQ29kZWNzOjpzZXRFbmNvZGVSYXRlcyhFbmNvZGVyJiBlbmNvZGVyLCB1aW50MzJf
dCBiaXRSYXRlLCB1aW50MzJfCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNv
ZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2Um
JiBkYXRhLCBjb25zdCB3ZWJydGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8mIGluZm8pCiB7Ci0g
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkp
OwogCiAgICAgLy8gRklYTUU6IERvIGVycm9yIGxvZ2dpbmcuCiAgICAgYXV0byogZW5jb2RlciA9
IG1fZW5jb2RlcnMuZ2V0KGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5jcHAKaW5k
ZXggYjVmMGVhY2JlNTg5MGNiZDM0OTA1MDEyOGNkNjNjM2JkMjBlODllZC4uMzUwOWZlYWU4MDgx
YTk4M2VhMjIyY2I1YWMxZDQ5OWQ4YjE3YzdhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIExpYldlYlJUQ1Jl
c29sdmVyOjpzZW5kT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+
JiYgY2FsbGJhY2spCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0oKSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2NhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKCkgewogICAgICAgICBjYWxsYmFjayhXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpOwogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCmluZGV4IDY3ZmE0NjYyZjZm
MjI3ZDJlYTM5NzcyNjNjNGQyYzdkNzhlNzMyZWUuLmQ4OTdiYjNmMjg0NjY1YzZjMDMwNDg1Nzk1
NDJiYmM5M2JhMTNkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAg
LTc0LDcgKzc0LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFj
dG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHZvaWQKICAgICBpZiAobV9jb25uZWN0
aW9uKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92
aWRlcjo6Q3JlYXRlU2VydmVyVENQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zKSwg
MCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICBj
YWxsT25NYWluUnVuTG9vcChbXSB7CiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgfSk7CiAgICAgICAg
IG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50
aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1p
blBvcnQsIG1heFBvcnQsIG9wdGlvbnNdKGF1dG8mIGNvbm5lY3Rpb24pIHsKQEAgLTkyLDcgKzky
LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3Jl
YXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2sKICAgICBpZiAobV9jb25uZWN0aW9uKQogICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3Jl
YXRlVURQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0KSwgMCk7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbXSB7CiAg
ICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKICAgICAgICAgfSk7CiAgICAgICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5h
cHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnRdKGF1dG8mIGNv
bm5lY3Rpb24pIHsKQEAgLTExNCw3ICsxMTQsNyBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZAog
ICAgIGlmIChtX2Nvbm5lY3Rpb24pCiAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoc29ja2V0LT5pZGVu
dGlmaWVyKCksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3Mo
bG9jYWxBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1f
ZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0aW9ucy5vcHRz
KSwgMCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAg
ICBjYWxsT25NYWluUnVuTG9vcChbXSB7CiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgfSk7CiAgICAg
ICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlk
ZW50aWZpZXIoKSwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVw
YXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zKSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBh
cmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0cyA9IG9wdGlvbnMub3B0c10oYXV0byYgY29ubmVjdGlv
bikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L1dlYlJUQ01vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL1dlYlJUQ01vbml0b3IuY3BwCmluZGV4IGNhOTdhZjMwM2U3YmUyYjAzNDA4MGZjZTRmZTlh
NWZiMWMzYTRiYzMuLjI0MzM2ZjA2ODkwNTU4MmFmMGQwZWEwNTI2MTYzMTE3Mjk0YTVhZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENN
b25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDTW9uaXRvci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHZvaWQgV2ViUlRDTW9uaXRvcjo6c2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6
Q29ubmVjdGlvbiYpPiYmIGNhbGxiYWNrKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFtjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIHsKICAgICAgICAgY2FsbGJhY2soV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDZiYTBmNTVmMTI0MWZhMDc3NTBlYTRlMTQ4MDAzOWJk
MTk2Nzk2ZDAuLmYxZjQwZmZjNWY0Y2Q2MWU0YmIyMjBjNWJkYmI3Y2VmZWEzMzdhNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpA
QCAtNjU1LDggKzY1NSw4IEBAIFBERlBsdWdpbjo6flBERlBsdWdpbigpCiAjaWYgIUxPR19ESVNB
QkxFRAogdm9pZCBQREZQbHVnaW46OnBkZkxvZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0g
ICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1lc3NhZ2UgPSBtZXNzYWdlLmlzb2xh
dGVkQ29weSgpXSB7CisgICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsKKyAgICAgICAgY2FsbE9u
TWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWVzc2Fn
ZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgICAgIHBkZkxvZyhtZXNzYWdl
KTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTY2OSw3ICs2NjksNyBAQCB2b2lk
IFBERlBsdWdpbjo6cGRmTG9nKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAogdm9pZCBQREZQbHVn
aW46OmxvZ1N0cmVhbUxvYWRlcihXVEY6OlRleHRTdHJlYW0mIHN0cmVhbSwgV2ViQ29yZTo6TmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXImIGxvYWRlcikKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgYXV0byogcmVxdWVz
dCA9IGJ5dGVSYW5nZVJlcXVlc3RGb3JMb2FkZXIobG9hZGVyKTsKICAgICBzdHJlYW0gPDwgIigi
OwpAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgUERGUGx1Z2luOjpsb2dTdHJlYW1Mb2FkZXIoV1RG
OjpUZXh0U3RyZWFtJiBzdHJlYW0sIFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luCiAKIHZvaWQgUERG
UGx1Z2luOjp2ZXJib3NlTG9nKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgVGV4dFN0cmVhbSBzdHJlYW07CiAgICAg
c3RyZWFtIDw8ICJcbiI7CkBAIC03MTcsMTEgKzcxNywxMSBAQCB2b2lkIFBERlBsdWdpbjo6cmVj
ZWl2ZWROb25MaW5lYXJpemVkUERGU2VudGluZWwoKQogICAgIGlmIChtX2hhc0JlZW5EZXN0cm95
ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKKyAgICBp
ZiAoIWlzTWFpblJ1bkxvb3AoKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgcGRmTG9n
KCJEaXNhYmxpbmcgaW5jcmVtZW50YWwgUERGIGxvYWRpbmcgb24gYmFja2dyb3VuZCB0aHJlYWQi
KTsKICNlbmRpZgotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICAgICAgcmVjZWl2ZWROb25M
aW5lYXJpemVkUERGU2VudGluZWwoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTc0OCw3ICs3NDgsNyBAQCBzdGF0aWMgc2l6ZV90IGRhdGFQcm92aWRlckdldEJ5dGVzQXRQb3Np
dGlvbkNhbGxiYWNrKHZvaWQqIGluZm8sIHZvaWQqIGJ1ZmZlciwgbwogewogICAgIFJlZjxQREZQ
bHVnaW4+IHBsdWdpbiA9ICooKFBERlBsdWdpbiopaW5mbyk7CiAKLSAgICBpZiAoaXNNYWluVGhy
ZWFkKCkpIHsKKyAgICBpZiAoaXNNYWluUnVuTG9vcCgpKSB7CiAjaWYgIUxPR19ESVNBQkxFRAog
ICAgICAgICBwbHVnaW4tPnBkZkxvZyhtYWtlU3RyaW5nKCJIYW5kbGluZyByZXF1ZXN0IGZvciAi
LCBjb3VudCwgIiBieXRlcyBhdCBwb3NpdGlvbiAiLCBwb3NpdGlvbiwgIiBzeW5jaHJvbm91c2x5
IG9uIHRoZSBtYWluIHRocmVhZCIpKTsKICNlbmRpZgpAQCAtNzk5LDcgKzc5OSw3IEBAIHN0YXRp
YyBzaXplX3QgZGF0YVByb3ZpZGVyR2V0Qnl0ZXNBdFBvc2l0aW9uQ2FsbGJhY2sodm9pZCogaW5m
bywgdm9pZCogYnVmZmVyLCBvCiAKIHN0YXRpYyB2b2lkIGRhdGFQcm92aWRlckdldEJ5dGVSYW5n
ZXNDYWxsYmFjayh2b2lkKiBpbmZvLCBDRk11dGFibGVBcnJheVJlZiBidWZmZXJzLCBjb25zdCBD
RlJhbmdlKiByYW5nZXMsIHNpemVfdCBjb3VudCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICNpZiAhTE9HX0RJU0FCTEVE
CiAgICAgUmVmPFBERlBsdWdpbj4gZGVidWdQbHVnaW5SZWYgPSAqKChQREZQbHVnaW4qKWluZm8p
OwpAQCAtODQ2LDcgKzg0Niw3IEBAIHN0YXRpYyB2b2lkIGRhdGFQcm92aWRlckdldEJ5dGVSYW5n
ZXNDYWxsYmFjayh2b2lkKiBpbmZvLCBDRk11dGFibGVBcnJheVJlZiBidWZmCiAKIHN0YXRpYyB2
b2lkIGRhdGFQcm92aWRlclJlbGVhc2VJbmZvQ2FsbGJhY2sodm9pZCogaW5mbykKIHsKLSAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAg
ICAgYWRvcHRSZWYoKFBERlBsdWdpbiopaW5mbyk7CiB9CiAKQEAgLTg3MSw3ICs4NzEsNyBAQCB2
b2lkIFBERlBsdWdpbjo6dGhyZWFkRW50cnkoUmVmPFBERlBsdWdpbj4mJiBwcm90ZWN0ZWRQbHVn
aW4pCiAgICAgYXV0byBzY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFtwcm90ZWN0ZWRQbHVnaW4g
PSBXVEZNb3ZlKHByb3RlY3RlZFBsdWdpbildICgpIG11dGFibGUgewogICAgICAgICAvLyBLZWVw
IHRoZSBQREZQbHVnaW4gYWxpdmUgdW50aWwgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uIGFuZCB0
aGUgZW5kCiAgICAgICAgIC8vIG9mIHRoZSBsYXN0IG1haW4gdGhyZWFkIHRhc2sgc3VibWl0dGVk
IGJ5IHRoaXMgZnVuY3Rpb24uCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFBs
dWdpbiA9IFdURk1vdmUocHJvdGVjdGVkUGx1Z2luKV0geyB9KTsKKyAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW3Byb3RlY3RlZFBsdWdpbiA9IFdURk1vdmUocHJvdGVjdGVkUGx1Z2luKV0geyB9
KTsKICAgICB9KTsKIAogICAgIC8vIEJhbGFuY2VkIGJ5IGEgZGVyZWYgaW5zaWRlIG9mIHRoZSBk
YXRhUHJvdmlkZXJSZWxlYXNlSW5mb0NhbGxiYWNrCkBAIC04OTksNyArODk5LDcgQEAgdm9pZCBQ
REZQbHVnaW46OnRocmVhZEVudHJ5KFJlZjxQREZQbHVnaW4+JiYgcHJvdGVjdGVkUGx1Z2luKQog
CiAgICAgW21fYmFja2dyb3VuZFRocmVhZERvY3VtZW50IHByZWxvYWREYXRhT2ZQYWdlc0luUmFu
Z2U6TlNNYWtlUmFuZ2UoMCwgMSkgb25RdWV1ZTpmaXJzdFBhZ2VRdWV1ZS0+ZGlzcGF0Y2hRdWV1
ZSgpIGNvbXBsZXRpb246WyZmaXJzdFBhZ2VTZW1hcGhvcmUsIHRoaXNdIChOU0luZGV4U2V0ICop
IG11dGFibGUgewogICAgICAgICBpZiAobV9pbmNyZW1lbnRhbFBERkxvYWRpbmdFbmFibGVkKSB7
Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7CisgICAgICAgICAgICBjYWxs
T25NYWluUnVuTG9vcChbdGhpc10gewogICAgICAgICAgICAgICAgIGFkb3B0QmFja2dyb3VuZFRo
cmVhZERvY3VtZW50KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSBlbHNlCkBAIC05MjQs
NyArOTI0LDcgQEAgdm9pZCBQREZQbHVnaW46OnVuY29uZGl0aW9uYWxDb21wbGV0ZU91dHN0YW5k
aW5nUmFuZ2VSZXF1ZXN0cygpCiAKIHNpemVfdCBQREZQbHVnaW46OmdldFJlc291cmNlQnl0ZXNB
dFBvc2l0aW9uTWFpblRocmVhZCh2b2lkKiBidWZmZXIsIG9mZl90IHBvc2l0aW9uLCBzaXplX3Qg
Y291bnQpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9kb2N1bWVudEZpbmlzaGVkTG9hZGluZyk7CiAgICAg
QVNTRVJUKHBvc2l0aW9uID49IDApOwogCkBAIC05NDMsNyArOTQzLDcgQEAgc2l6ZV90IFBERlBs
dWdpbjo6Z2V0UmVzb3VyY2VCeXRlc0F0UG9zaXRpb25NYWluVGhyZWFkKHZvaWQqIGJ1ZmZlciwg
b2ZmX3QgcG9zaXQKIAogdm9pZCBQREZQbHVnaW46OmdldFJlc291cmNlQnl0ZXNBdFBvc2l0aW9u
KHNpemVfdCBjb3VudCwgb2ZmX3QgcG9zaXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgdWludDhfdCosIHNpemVfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsgCisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNT
RVJUKHBvc2l0aW9uID49IDApOwogCiAgICAgQnl0ZVJhbmdlUmVxdWVzdCByZXF1ZXN0ID0geyBz
dGF0aWNfY2FzdDx1aW50NjRfdD4ocG9zaXRpb24pLCBjb3VudCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikgfTsKQEAgLTEwMDIsNyArMTAwMiw3IEBAIHZvaWQgUERGUGx1Z2luOjphZG9wdEJh
Y2tncm91bmRUaHJlYWREb2N1bWVudCgpCiAKICAgICBBU1NFUlQoIW1fcGRmRG9jdW1lbnQpOwog
ICAgIEFTU0VSVChtX2JhY2tncm91bmRUaHJlYWREb2N1bWVudCk7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogI2lmICFMT0dfRElT
QUJMRUQKICAgICBwZGZMb2coIkFkb3B0aW5nIFBERkRvY3VtZW50IGZyb20gYmFja2dyb3VuZCB0
aHJlYWQiKTsKQEAgLTE2MTAsNyArMTYxMCw3IEBAIHZvaWQgUERGUGx1Z2luOjpkb2N1bWVudERh
dGFEaWRGaW5pc2hMb2FkaW5nKCkKIHZvaWQgUERGUGx1Z2luOjppbnN0YWxsUERGRG9jdW1lbnQo
KQogewogICAgIEFTU0VSVChtX3BkZkRvY3VtZW50KTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIExPRyhJbmNyZW1lbnRhbFBE
RiwgIkluc3RhbGxpbmcgUERGIGRvY3VtZW50Iik7CiAKICAgICBpZiAobV9oYXNCZWVuRGVzdHJv
eWVkKQpAQCAtMTc2MCw3ICsxNzYwLDcgQEAgdm9pZCBQREZQbHVnaW46Om1hbnVhbFN0cmVhbURp
ZEZhaWwoYm9vbCkKIAogdm9pZCBQREZQbHVnaW46OnRyeVJ1blNjcmlwdHNJblBERkRvY3VtZW50
KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5M
b29wKCkpOwogCiAgICAgaWYgKCFtX3BkZkRvY3VtZW50IHx8ICFtX2RvY3VtZW50RmluaXNoZWRM
b2FkaW5nKQogICAgICAgICByZXR1cm47CkBAIC0xNzgxLDEyICsxNzgxLDEyIEBAIHZvaWQgUERG
UGx1Z2luOjp0cnlSdW5TY3JpcHRzSW5QREZEb2N1bWVudCgpCiAgICAgYXV0byYgcmF3UXVldWUg
PSBzY3JpcHRVdGlsaXR5UXVldWUuZ2V0KCk7CiAgICAgUmV0YWluUHRyPENHUERGRG9jdW1lbnRS
ZWY+IGRvY3VtZW50ID0gW21fcGRmRG9jdW1lbnQgZG9jdW1lbnRSZWZdOwogICAgIHJhd1F1ZXVl
LmRpc3BhdGNoKFtzY3JpcHRVdGlsaXR5UXVldWUgPSBXVEZNb3ZlKHNjcmlwdFV0aWxpdHlRdWV1
ZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGRvY3Vt
ZW50ID0gV1RGTW92ZShkb2N1bWVudCldICgpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKKyAgICAgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAgICAg
ICAgIFZlY3RvcjxSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+PiBzY3JpcHRzOwogICAgICAgICBnZXRB
bGxTY3JpcHRzSW5QREZEb2N1bWVudChkb2N1bWVudC5nZXQoKSwgc2NyaXB0cyk7CiAKLSAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2NyaXB0cyA9IFdURk1vdmUoc2NyaXB0cyldICgpIG11dGFibGUgeworICAg
ICAgICBjYWxsT25NYWluUnVuTG9vcChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2NyaXB0cyA9IFdURk1vdmUoc2NyaXB0cyldICgpIG11dGFibGUgewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzY3JpcHRzKSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNWJkZjk0MTQyMmU0ZjM1NTkw
M2Q4ODEzZDg4ZTgzZjFkNTFiMmZjMy4uMTNmM2I5NjY1ZTgzNWU5NjRlYmQwZTI2NGJmNDcwMjE1
M2ExMWNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCkKIAogdm9p
ZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmRpZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1h
dGNoaW5nUmVxdWVzdCwgT3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYg
cmVzdWx0KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CiAKICAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1fb25nb2lu
Z01hdGNoUmVnaXN0cmF0aW9uVGFza3MudGFrZShtYXRjaGluZ1JlcXVlc3QpKQogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIHZv
aWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRNYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBt
YXRjaGluZ1JlcXVlc3QsIE9wdGlvCiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRH
ZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IG1hdGNoaW5nUmVxdWVzdCwgVmVjdG9yPFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmIHJlZ2lzdHJhdGlvbnMpCiB7Ci0gICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmIChh
dXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbV9vbmdvaW5nR2V0UmVnaXN0cmF0aW9uc1Rhc2tzLnRh
a2UobWF0Y2hpbmdSZXF1ZXN0KSkKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShy
ZWdpc3RyYXRpb25zKSk7CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OmRpZEdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgbWF0Y2hpbmdSZXF1ZXN0LCBWZWN0
b3IKIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKFNlY3Vy
aXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJh
dGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghbWF5SGF2ZVNlcnZpY2VX
b3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKHRvcE9yaWdpbikpIHsKICAgICAgICAgY2FsbGJhY2so
V1RGOjpudWxsb3B0KTsKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6c2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQoRG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50
SQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhTZWN1cml0
eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3Ry
YXRpb25zQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgaWYgKCFtYXlIYXZlU2Vydmlj
ZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4odG9wT3JpZ2luKSkgewogICAgICAgICBjYWxsYmFj
ayh7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCA5MTA1
YTMxMWU1ZmFhMmFlYmI5NDcxNGIzZDBjYzA5NjNhYzE3OGMwLi4yNmZjNmM1ODE3MDQ3ZDgyZWRi
Mjk5NmI1MDg0YjljOTBkMjY0MmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50LmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGJsb2JVUkwgPSBibG9iVVJMLmlzb2xhdGVkQ29weSgp
XSAoKSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgYmxvYlVSTCA9IGJsb2JVUkwuaXNvbGF0ZWRDb3B5KCldICgpIHsKICAgICAg
ICAgYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2lu
Z2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KG1fc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpOwogICAgICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewogICAgICAgICAg
ICAgZGlkRmFpbChpbnRlcm5hbEVycm9yKGJsb2JVUkwpKTsKQEAgLTIyMiw4ICsyMjIsOCBAQCB2
b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNsZWFudXAoKQogewogICAgIG1f
Y29ubmVjdGlvbiA9IG51bGxwdHI7CiAKLSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkg
eworICAgIGlmICghaXNNYWluUnVuTG9vcCgpKSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29w
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIHsKICAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPmNsZWFudXAoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApp
bmRleCBiOGMwN2I4YzI1NDA2MmRhZmJmZDNjYzY4NDIyNzFmYWRmNzYxMzI1Li4wMDkwMTRhNTM2
YmY5ZDY4ZGZiZTVkYTE0MGRkYjUxN2FlYWNkMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC01NDIsNyArNTQyLDcg
QEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkmLCBHcmFwaGljc0Nv
bnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY28KIAogICAgICAgICBpZiAoZmluZEluZGljYXRvclJl
Y3QgIT0gbV9maW5kSW5kaWNhdG9yUmVjdCkgewogICAgICAgICAgICAgLy8gV2UgYXJlIHVuZGVy
bmVhdGggcGFpbnRpbmcsIHNvIGl0J3Mgbm90IHNhZmUgdG8gbXV0YXRlIHRoZSBsYXllciB0cmVl
IHN5bmNocm9ub3VzbHkuCi0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrV2ViUGFn
ZSA9IG1ha2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFt3ZWFrV2ViUGFnZSA9IG1ha2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKICAgICAgICAgICAg
ICAgICBpZiAoIXdlYWtXZWJQYWdlKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgICAgd2Vha1dlYlBhZ2UtPmZpbmRDb250cm9sbGVyKCkuZGlkU2Nyb2xsQWZmZWN0
aW5nRmluZEluZGljYXRvclBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDQzOTRjYzU3NjJmOTViZWI4MGYwMzcwYzNmMTg2MDBk
NjdkZDU1OGQuLmZmZTc5YWM2MzlkOTMwOTA1MWZkY2MxM2RkNmZhYThiNzNlZWUxNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01OTE1LDcg
KzU5MTUsNyBAQCB2b2lkIFdlYlBhZ2U6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQpCiB7CiAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgPT0gJmVsZW1lbnQpIHsKICAg
ICAgICAgbV9yZWNlbnRseUJsdXJyZWRFbGVtZW50ID0gV1RGTW92ZShtX2ZvY3VzZWRFbGVtZW50
KTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
dGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmUHRyKHRoaXMpXSB7CiAgICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9yZWNlbnRs
eUJsdXJyZWRFbGVtZW50KSB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVsZW1lbnRE
aWRCbHVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQppbmRleCA1MmQ4ZjFkOTE3YTk3ZjliOTNhNmU1MWM3YjJjYmIxMWY4Njgw
YmIzLi5hNWE1MGQyOWRiMDcxMDVmOWQwODQ3NzA1Zjc0ZjE3MTA5MzJlMGM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAt
NzkwLDcgKzc5MCw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSYg
bm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgY29udGVudENoYW5nZU9ic2VydmVyLnN0b3BDb250ZW50T2JzZXJ2YXRpb24o
KTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlz
KSwgdGFyZ2V0Tm9kZSA9IFJlZjxOb2RlPihub2RlUmVzcG9uZGluZ1RvQ2xpY2spLCBsb2NhdGlv
biwgbW9kaWZpZXJzLCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UsIHBvaW50ZXJJZF0geworICAgIGNh
bGxPbk1haW5SdW5Mb29wKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGFyZ2V0
Tm9kZSA9IFJlZjxOb2RlPihub2RlUmVzcG9uZGluZ1RvQ2xpY2spLCBsb2NhdGlvbiwgbW9kaWZp
ZXJzLCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UsIHBvaW50ZXJJZF0gewogICAgICAgICBpZiAocHJv
dGVjdGVkVGhpcy0+bV9pc0Nsb3NlZCB8fCAhcHJvdGVjdGVkVGhpcy0+Y29yZVBhZ2UoKSkKICAg
ICAgICAgICAgIHJldHVybjsKIApAQCAtODExLDcgKzgxMSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
RmluaXNoQ29udGVudENoYW5nZU9ic2VydmluZyhXS0NvbnRlbnRDaGFuZ2Ugb2JzZXJ2ZWRDb250
ZW50Q2hhCiAgICAgTE9HX1dJVEhfU1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8
ICJkaWRGaW5pc2hDb250ZW50Q2hhbmdlT2JzZXJ2aW5nOiBwZW5kaW5nIHRhcmdldCBub2RlKCIg
PDwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlIDw8ICIpIik7CiAgICAgaWYgKCFtX3BlbmRp
bmdTeW50aGV0aWNDbGlja05vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBjYWxsT25NYWluVGhy
ZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGFyZ2V0Tm9kZSA9IFJlZjxO
b2RlPigqbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlKSwgb3JpZ2luYWxEb2N1bWVudCA9IG1h
a2VXZWFrUHRyKG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZS0+ZG9jdW1lbnQoKSksIG9ic2Vy
dmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja0xvY2F0
aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlmaWVycywgcG9pbnRl
cklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWRdIHsKKyAgICBjYWxsT25NYWlu
UnVuTG9vcChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRhcmdldE5vZGUgPSBS
ZWY8Tm9kZT4oKm1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSksIG9yaWdpbmFsRG9jdW1lbnQg
PSBtYWtlV2Vha1B0cihtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUtPmRvY3VtZW50KCkpLCBv
YnNlcnZlZENvbnRlbnRDaGFuZ2UsIGxvY2F0aW9uID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tM
b2NhdGlvbiwgbW9kaWZpZXJzID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMsIHBv
aW50ZXJJZCA9IG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrUG9pbnRlcklkXSB7CiAgICAgICAgIGlm
IChwcm90ZWN0ZWRUaGlzLT5tX2lzQ2xvc2VkIHx8ICFwcm90ZWN0ZWRUaGlzLT5jb3JlUGFnZSgp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoIW9yaWdpbmFsRG9jdW1lbnQgfHwg
JnRhcmdldE5vZGUtPmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudCkKQEAgLTEyMzgsNyAr
MTIzOCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlSW5wdXRDb250ZXh0QWZ0ZXJCbHVycmluZ0Fu
ZFJlZm9jdXNpbmdFbGVtZW50SWZOZWVkZWQoRWxlbWVuCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1faGFzUGVuZGluZ0lucHV0Q29udGV4dFVwZGF0ZUFmdGVyQmx1cnJpbmdBbmRSZWZvY3VzaW5n
RWxlbWVudCA9IHRydWU7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWZQdHIodGhpcyldIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyldIHsKICAgICAgICAgaWYgKG1faGFzUGVuZGlu
Z0lucHV0Q29udGV4dFVwZGF0ZUFmdGVyQmx1cnJpbmdBbmRSZWZvY3VzaW5nRWxlbWVudCkKICAg
ICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VXBkYXRlSW5wdXRDb250ZXh0
QWZ0ZXJCbHVycmluZ0FuZFJlZm9jdXNpbmdFbGVtZW50KCkpOwogICAgICAgICBtX2hhc1BlbmRp
bmdJbnB1dENvbnRleHRVcGRhdGVBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnQgPSBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9E
cmF3aW5nQXJlYU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
RHJhd2luZ0FyZWFNYWMuY3BwCmluZGV4IDc4YzI5M2Q4MGFmNjQ3N2Q0OTZhMGY5N2YyN2NiY2Nm
OTQyMzExZTMuLjAzMDAyYTAxMTZkMGI5NTA0NGIzNDVjZjA2MmIzYzVhMjg2MTM3ZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1h
Yy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdB
cmVhTWFjLmNwcApAQCAtOTMsNyArOTMsNyBAQCBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yzo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpCiAKIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIGlmICghbV9maXJzdENhbGxiYWNrSW5D
dXJyZW50UnVubG9vcCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZmlyc3RDYWxsYmFja0luQ3Vy
cmVudFJ1bmxvb3AgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0QmFzZS5tbQppbmRleCBiZGYwYjQ4NTVkNDI5OTk1YTE4MDYxN2VjNjZlZTFlYTYyNjE4MmNi
Li44NzFhNzM0MDM4MzU5MDAzZDkxOWQwYjA4MzMxYTgxMDExMmRhNGVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdEJhc2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tCkBAIC00OCw3ICs0OCw3IEBAIEBp
bXBsZW1lbnRhdGlvbiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZQogCiAtIChOYWtl
ZFB0cjxXZWJDb3JlOjpBWE9iamVjdENhY2hlPilheE9iamVjdENhY2hlCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlm
ICghbV9wYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTY2LDcgKzY2LDcgQEAgLSAo
TmFrZWRQdHI8V2ViQ29yZTo6QVhPYmplY3RDYWNoZT4pYXhPYmplY3RDYWNoZQogCiAtIChpZClh
Y2Nlc3NpYmlsaXR5UGx1Z2luT2JqZWN0CiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIHJldHJpZXZlQmxvY2sgPSBb
JnNlbGZdKCkgLT4gaWQgewogICAgICAgICBpZCBheFBsdWdpbiA9IG5pbDsKICAgICAgICAgYXV0
byBkaXNwYXRjaEJsb2NrID0gWyZheFBsdWdpbiwgJnNlbGZdIHsKQEAgLTc0LDEwICs3NCwxMCBA
QCAtIChpZClhY2Nlc3NpYmlsaXR5UGx1Z2luT2JqZWN0CiAgICAgICAgICAgICAgICAgYXhQbHVn
aW4gPSBzZWxmLT5tX3BhZ2UtPmFjY2Vzc2liaWxpdHlPYmplY3RGb3JNYWluRnJhbWVQbHVnaW4o
KTsKICAgICAgICAgfTsKIAotICAgICAgICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgIGlm
IChpc01haW5SdW5Mb29wKCkpCiAgICAgICAgICAgICBkaXNwYXRjaEJsb2NrKCk7CiAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZkaXNwYXRjaEJs
b2NrXSB7CisgICAgICAgICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZkaXNwYXRjaEJs
b2NrXSB7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hCbG9jaygpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0KQEAgLTEwNyw3ICsxMDcsNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdE9i
amVjdFdyYXBwZXIKIAogLSAodm9pZClzZXRXZWJQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBh
Z2U+KXBhZ2UKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01h
aW5SdW5Mb29wKCkpOwogCiAgICAgbV9wYWdlID0gcGFnZTsKIApAQCAtMTI0LDEzICsxMjQsMTMg
QEAgLSAodm9pZClzZXRXZWJQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2U+KXBhZ2UKIAog
LSAodm9pZClzZXRIYXNNYWluRnJhbWVQbHVnaW46KGJvb2wpaGFzUGx1Z2luCiB7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBt
X2hhc01haW5GcmFtZVBsdWdpbiA9IGhhc1BsdWdpbjsKIH0KIAogLSAodm9pZClzZXRSZW1vdGVQ
YXJlbnQ6KGlkKXBhcmVudAogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNT
RVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgbV9wYXJlbnQgPSBwYXJlbnQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcAppbmRleCA1OTY0OTFkMDY4NWM4NmMxYjc3NjJhYTUwYWE0ZmY0YjMx
ZTVlYjI0Li4zYjJkZGZhMjgzN2FkZDE2NzhmNjA5YjE0MWE3MWFhMWJlMjQ2NmY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWEKIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpyZW1vdGVBdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzaXplKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNN
YWluUnVuTG9vcCgpKTsKICAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgZGF0YSwgZGVz
Y3JpcHRpb24sIHNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCmlu
ZGV4IDhmYWVkYjU2NDQ5NGRmMTZkZmQ3MWY2MDgyNGIxNTRkNTU3ZjVhZGQuLjk1YmJkNTQ4M2Nm
ZWExN2M5MTJlZDViNWYxM2Y0MzFmYWUzNzEyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHkuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSgpCiAKIElQQzo6Q29ubmVjdGlvbiog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojpjb25uZWN0aW9uKCkKIHsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQog
ICAgICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBhY2IzMjg0NTJhMjM1OTZhZjExYjg3ZmFjMjZjZWY5YWY3
OTEwNjIuLjczN2I4YzE3Yjc3NTRjODQyOGQ3OTRmZTA0ODM1MGRkZGZlNTEyNjMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAyMS0wMy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFN0b3AgdXNpbmcgY2FsbE9uTWFpblRocmVhZCgpIC8gaXNNYWluVGhyZWFkKCkgaW4gV2ViS2l0
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNv
cnJlc3BvbmRpbmcgc3R5bGUgY2hlY2tlciBydWxlcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXJzL2NwcC5weToKKyAgICAgICAgKGNoZWNrX25vX2NhbGxvbm1haW50aHJlYWQpOgor
ICAgICAgICAoY2hlY2tfbm9faXNtYWludGhyZWFkKToKKyAgICAgICAgKGNoZWNrX3N0eWxlKToK
KyAgICAgICAgKENwcENoZWNrZXIpOgorCiAyMDIxLTAzLTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXVtXZWJSVENdIFZpZGVv
RW5jb2RlciBzdGlsbCBkb2Vzbid0IGNvbXBseSB3aXRoIFdlYktpdCBzdHlsZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IDNmNGU4N2Q3YmY4NDdmY2EwMWZjZTMw
MjlmZjEzZjAzYjAwNzYwMWMuLmE2ODc1NzJlMzY0ZWY3MDQ5MzJmN2EwMDhhYjFjNjA2NGI5NjFi
MjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTI0Miw2ICsy
NDIsMTggQEAgX1BBVEhfUlVMRVNfU1BFQ0lGSUVSID0gWwogICAgICBbIi1yZWFkYWJpbGl0eS9u
YW1pbmciLAogICAgICAgIi1yZWFkYWJpbGl0eS9lbnVtX2Nhc2luZyJdKSwKIAorICAgICMgV2Ug
c2hvdWxkIGJlIHVzaW5nIGNhbGxPbk1haW5SdW5Mb29wKCkgaW5zdGVhZCBvZiBjYWxsT25NYWlu
VGhyZWFkKCkgaW4gU291cmNlL1dlYktpdC4KKyAgICAoW29zLnBhdGguam9pbignU291cmNlJywg
J1RoaXJkUGFydHknKSwKKyAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dURicpLAorICAg
ICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViQ29yZScpLAorICAgICAgb3MucGF0aC5qb2lu
KCdTb3VyY2UnLCAnV2ViRHJpdmVyJyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdX
ZWJJbnNwZWN0b3JVSScpLAorICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0TGVn
YWN5JyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdibWFsbG9jJyksCisgICAgICAn
VG9vbHMnXSwKKyAgICAgWyItcnVudGltZS9ub19jYWxsb25tYWludGhyZWFkIiwKKyAgICAgICIt
cnVudGltZS9ub19pc21haW50aHJlYWQiXSksCisKICAgICAjIEZvciB0aGlyZC1wYXJ0eSBjb2Rl
LCBrZWVwIG9ubHkgdGhlIGZvbGxvd2luZyBjaGVja3MtLQogICAgICMKICAgICAjICAgTm8gdGFi
czogdG8gYXZvaWQgaGF2aW5nIHRvIHNldCB0aGUgU1ZOIGFsbG93LXRhYnMgcHJvcGVydHkuCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CmluZGV4IDQ0NzRi
YjAyNDFjNGExZDkyYWZjYWFjNWY2NGU4ZWFiNzJmNWNiMWMuLjdmNzUyMWNiNTM2N2MzZjZkZjll
Y2Y4ZTMzNjdhNDU0ZGQ3MDVjOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvY3BwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvY3BwLnB5CkBAIC0yNzIzLDYgKzI3MjMsNDUgQEAgZGVmIGNoZWNrX3d0Zl9vcHRp
b25hbChjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUsIGVycm9yKToKICAgICBl
cnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvd3RmX29wdGlvbmFsJywgNCwgIlVzZSAnV1RGOjpP
cHRpb25hbDw+JyBpbnN0ZWFkIG9mICdzdGQ6Om9wdGlvbmFsPD4nLiIpCiAKIAorZGVmIGNoZWNr
X25vX2NhbGxvbm1haW50aHJlYWQoY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRl
LCBlcnJvcik6CisgICAgIiIiTG9va3MgZm9yIHVzZSBvZiAnY2FsbE9uTWFpblRocmVhZCgpJyB3
aGljaCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCAnY2FsbE9uTWFpblJ1bkxvb3AoKScuCisKKyAg
ICBBcmdzOgorICAgICAgY2xlYW5fbGluZXM6IEEgQ2xlYW5zZWRMaW5lcyBpbnN0YW5jZSBjb250
YWluaW5nIHRoZSBmaWxlLgorICAgICAgbGluZV9udW1iZXI6IFRoZSBudW1iZXIgb2YgdGhlIGxp
bmUgdG8gY2hlY2suCisgICAgICBmaWxlX3N0YXRlOiBBIF9GaWxlU3RhdGUgaW5zdGFuY2Ugd2hp
Y2ggbWFpbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0CisgICAgICAgICAgICAgICAgICB0aGUgc3Rh
dGUgb2YgdGhpbmdzIGluIHRoZSBmaWxlLgorICAgICAgZXJyb3I6IFRoZSBmdW5jdGlvbiB0byBj
YWxsIHdpdGggYW55IGVycm9ycyBmb3VuZC4KKyAgICAiIiIKKworICAgIGxpbmUgPSBjbGVhbl9s
aW5lcy5lbGlkZWRbbGluZV9udW1iZXJdICAjIEdldCByaWQgb2YgY29tbWVudHMgYW5kIHN0cmlu
Z3MuCisgICAgdXNpbmdfY2FsbG9ubWFpbnRocmVhZCA9IHNlYXJjaChyJ1xiY2FsbE9uTWFpblRo
cmVhZFxzKlwoJywgbGluZSkKKyAgICBpZiB1c2luZ19jYWxsb25tYWludGhyZWFkOgorICAgICAg
ICBlcnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvbm9fY2FsbG9ubWFpbnRocmVhZCcsIDQsICJV
c2UgJ2NhbGxPbk1haW5SdW5Mb29wKCknIGluc3RlYWQgb2YgJ2NhbGxPbk1haW5UaHJlYWQoKScg
aW4gU291cmNlL1dlYktpdC4iKQorICAgIHVzaW5nX2NhbGxvbm1haW50aHJlYWRhbmR3YWl0ID0g
c2VhcmNoKHInXGJjYWxsT25NYWluVGhyZWFkQW5kV2FpdFxzKlwoJywgbGluZSkKKyAgICBpZiB1
c2luZ19jYWxsb25tYWludGhyZWFkYW5kd2FpdDoKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIs
ICdydW50aW1lL25vX2NhbGxvbm1haW50aHJlYWQnLCA0LCAiVXNlICdjYWxsT25NYWluUnVuTG9v
cEFuZFdhaXQoKScgaW5zdGVhZCBvZiAnY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoKScgaW4gU291
cmNlL1dlYktpdC4iKQorCisKK2RlZiBjaGVja19ub19pc21haW50aHJlYWQoY2xlYW5fbGluZXMs
IGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJvcik6CisgICAgIiIiTG9va3MgZm9yIHVzZSBv
ZiAnaXNNYWluVGhyZWFkKCknIHdoaWNoIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoICdpc01haW5S
dW5Mb29wKCknLgorCisgICAgQXJnczoKKyAgICAgIGNsZWFuX2xpbmVzOiBBIENsZWFuc2VkTGlu
ZXMgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgZmlsZS4KKyAgICAgIGxpbmVfbnVtYmVyOiBUaGUg
bnVtYmVyIG9mIHRoZSBsaW5lIHRvIGNoZWNrLgorICAgICAgZmlsZV9zdGF0ZTogQSBfRmlsZVN0
YXRlIGluc3RhbmNlIHdoaWNoIG1haW50YWlucyBpbmZvcm1hdGlvbiBhYm91dAorICAgICAgICAg
ICAgICAgICAgdGhlIHN0YXRlIG9mIHRoaW5ncyBpbiB0aGUgZmlsZS4KKyAgICAgIGVycm9yOiBU
aGUgZnVuY3Rpb24gdG8gY2FsbCB3aXRoIGFueSBlcnJvcnMgZm91bmQuCisgICAgIiIiCisKKyAg
ICBsaW5lID0gY2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVtYmVyXSAgIyBHZXQgcmlkIG9mIGNv
bW1lbnRzIGFuZCBzdHJpbmdzLgorICAgIHVzaW5nX2lzbWFpbnRocmVhZCA9IHNlYXJjaChyJ1xi
aXNNYWluVGhyZWFkXHMqXCgnLCBsaW5lKQorICAgIGlmIG5vdCB1c2luZ19pc21haW50aHJlYWQ6
CisgICAgICAgIHJldHVybgorCisgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL25vX2lz
bWFpbnRocmVhZCcsIDQsICJVc2UgJ2lzTWFpblJ1bkxvb3AoKScgaW5zdGVhZCBvZiAnaXNNYWlu
VGhyZWFkKCknIGluIFNvdXJjZS9XZWJLaXQuIikKKworCiBkZWYgY2hlY2tfd3RmX21ha2VfdW5p
cXVlKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgogICAgICIi
Ikxvb2tzIGZvciB1c2Ugb2YgJ3N0ZDo6bWFrZV91bmlxdWU8Picgd2hpY2ggc2hvdWxkIGJlIHJl
cGxhY2VkIHdpdGggJ1dURjo6bWFrZVVuaXF1ZTw+Jy4KIApAQCAtMzM1Miw2ICszMzkxLDggQEAg
ZGVmIGNoZWNrX3N0eWxlKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9leHRlbnNpb24s
IGNsYXNzX3N0YXRlLCBmaWxlX3N0YXQKICAgICBjaGVja193dGZfY2hlY2tlZF9zaXplKGNsZWFu
X2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpCiAgICAgY2hlY2tfd3RmX21v
dmUoY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJvcikKICAgICBjaGVj
a193dGZfb3B0aW9uYWwoY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJv
cikKKyAgICBjaGVja19ub19jYWxsb25tYWludGhyZWFkKGNsZWFuX2xpbmVzLCBsaW5lX251bWJl
ciwgZmlsZV9zdGF0ZSwgZXJyb3IpCisgICAgY2hlY2tfbm9faXNtYWludGhyZWFkKGNsZWFuX2xp
bmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpCiAgICAgY2hlY2tfd3RmX21ha2Vf
dW5pcXVlKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpCiAgICAg
Y2hlY2tfd3RmX25ldmVyX2Rlc3Ryb3llZChjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVf
c3RhdGUsIGVycm9yKQogICAgIGNoZWNrX2xvY2tfZ3VhcmQoY2xlYW5fbGluZXMsIGxpbmVfbnVt
YmVyLCBmaWxlX3N0YXRlLCBlcnJvcikKQEAgLTQ1NTksNiArNDYwMCw4IEBAIGNsYXNzIENwcENo
ZWNrZXIob2JqZWN0KToKICAgICAgICAgJ3J1bnRpbWUvbG9ja19ndWFyZCcsCiAgICAgICAgICdy
dW50aW1lL21heF9taW5fbWFjcm9zJywKICAgICAgICAgJ3J1bnRpbWUvbWVtc2V0JywKKyAgICAg
ICAgJ3J1bnRpbWUvbm9fY2FsbG9ubWFpbnRocmVhZCcsCisgICAgICAgICdydW50aW1lL25vX2lz
bWFpbnRocmVhZCcsCiAgICAgICAgICdydW50aW1lL29uY2VfZmxhZycsCiAgICAgICAgICdydW50
aW1lL3ByaW50ZicsCiAgICAgICAgICdydW50aW1lL3ByaW50Zl9mb3JtYXQnLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422727</attachid>
            <date>2021-03-09 10:45:22 -0800</date>
            <delta_ts>2021-03-09 11:52:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222986-20210309104521.patch</filename>
            <type>text/plain</type>
            <size>83951</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzZjQxNzAzNTA4MTVjNWU4YzdmMDIw
Mzc3ODZmZjRlMmQyZDVkNTAuLjg2ZDA4NzcyMDNiNDUzYTgyMGRmYjIyYjM3Nzg5NzkzMDM4N2Jl
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDMtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIGNhbGxPbk1haW5UaHJlYWQoKSAvIGlz
TWFpblRocmVhZCgpIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKwogMjAyMS0wMy0wOCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHF1aXJrcyBmb3IgdGhl
IG5vIGxvbmdlciBzdXBwb3J0ZWQgaUFkIFByb2R1Y2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwYmIxNGViNzhm
MmU4Y2JmOTcyOGMwZDJkNDZhODgzZDRkNmY1NDkuLjI5ODMxMTc5MDdmNGVkYzE4ZDJhYjgyZWU5
N2UwNzkxYzgzZGY2NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTc0IEBACisyMDIxLTAzLTA5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2luZyBjYWxs
T25NYWluVGhyZWFkKCkgLyBpc01haW5UaHJlYWQoKSBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5ODYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgY2FsbE9uTWFpblJ1bkxvb3Ao
KSAvIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdCgpIC8gaXNNYWluUnVuTG9vcCgpIGluIFdlYktp
dDIKKyAgICAgICAgaW5zdGVhZCBvZiBjYWxsT25NYWluVGhyZWFkKCkgLyBjYWxsT25NYWluVGhy
ZWFkQW5kV2FpdCgpIC8gaXNNYWluVGhyZWFkKCkuCisgICAgICAgIFVzaW5nIHRoZSAiTWFpblRo
cmVhZCIgdmFyaWFudHMgZG9lc24ndCBkbyB0aGUgcmlnaHQgdGhpbmcgaW4gdGhlIFVJUHJvY2Vz
cyB3aGVuCisgICAgICAgIGFuIGlPUyBhcHAgaXMgdXNpbmcgYm90aCBXSzEgKHdpdGggV2ViVGhy
ZWFkKSBhbmQgV0syLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb246OnJlbmRlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVh
dGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI6OnJlbGVhc2VMYXllcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmNhbmNlbCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3RhTWFuYWdlcik6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2FjaGVTdG9yYWdlOjpnZXREaXJlY3RvcnlTaXplKToKKyAgICAgICAgKFdlYktpdDo6Q2Fj
aGVTdG9yYWdlOjpFbmdpbmU6OmRpc2tVc2FnZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza0NvY29hOjpyZXN1bWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtNYW5hZ2VyV3Jh
cHBlcjo6b25OZXR3b3Jrc0NoYW5nZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJv
dmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVSZXNvbHZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6c3RvcFJlc29sdmVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAgICAgICAqIFBsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjppbml0aWFsaXplQ29u
bmVjdGlvbik6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZv
cm1hdFJlYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpzdGFy
dE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpwYXJz
ZUJ5dGVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRlcjo6ZGlkUGFy
c2VUcmFja3MpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRlcjo6ZGlkUHJvdmlk
ZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2Ft
cGxlQnl0ZVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVCeXRlUmFuZ2U6
Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVRyYWNr
UmVhZGVyOjpNZWRpYVRyYWNrUmVhZGVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFUcmFja1Jl
YWRlcjo6YWRkU2FtcGxlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFUcmFja1JlYWRlcjo6Zmlu
aXNoUGFyc2luZyk6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRp
YVRyYWNrUmVhZGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Okljb25EYXRhYmFzZTo6SWNvbkRhdGFiYXNlKToKKyAg
ICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjp+SWNvbkRhdGFiYXNlKToKKyAgICAgICAgKFdl
YktpdDo6SWNvbkRhdGFiYXNlOjpjcmVhdGVUYWJsZXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJL
aXQ6Okljb25EYXRhYmFzZTo6cG9wdWxhdGVQYWdlVVJMVG9JY29uVVJMTWFwKToKKyAgICAgICAg
KFdlYktpdDo6SWNvbkRhdGFiYXNlOjpjbGVhclN0YXRlbWVudHMpOgorICAgICAgICAoV2ViS2l0
OjpJY29uRGF0YWJhc2U6OnBydW5lVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Okljb25E
YXRhYmFzZTo6c3RhcnRQcnVuZVRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNl
OjpjbGVhckxvYWRlZEljb25zVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Okljb25EYXRh
YmFzZTo6c3RhcnRDbGVhckxvYWRlZEljb25zVGltZXIpOgorICAgICAgICAoV2ViS2l0OjpJY29u
RGF0YWJhc2U6Omljb25JREZvckljb25VUkwpOgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJh
c2U6OnNldEljb25JREZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6
Omljb25EYXRhKToKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjphZGRJY29uKToKKyAg
ICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjp1cGRhdGVJY29uVGltZXN0YW1wKToKKyAgICAg
ICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjpkZWxldGVJY29uKToKKyAgICAgICAgKFdlYktpdDo6
SWNvbkRhdGFiYXNlOjpjaGVja0ljb25VUkxBbmRTZXRQYWdlVVJMSWZOZWVkZWQpOgorICAgICAg
ICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6OmxvYWRJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChX
ZWJLaXQ6Okljb25EYXRhYmFzZTo6aWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0
OjpJY29uRGF0YWJhc2U6OnNldEljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6SWNv
bkRhdGFiYXNlOjpjbGVhcik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlz
c2lvblV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6cmVxdWVzdEFWQ2FwdHVyZUFjY2Vz
c0ZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25BY2Nl
c3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW06Cisg
ICAgICAgICgtW1dLVXNlckRlZmF1bHRzIF9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1
ZXNGb3JLZXlzOnRvVmFsdWVzRm9yS2V5czpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bm9uQnJvd3NlclNlcnZp
Y2VzKToKKyAgICAgICAgKFdlYktpdDo6YWd4Q29tcGlsZXJDbGFzc2VzKToKKyAgICAgICAgKFdl
YktpdDo6YWd4Q29tcGlsZXJTZXJ2aWNlcyk6CisgICAgICAgIChXZWJLaXQ6OmRpYWdub3N0aWNT
ZXJ2aWNlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW5zcGVjdG9yQ2xpZW50
OjpzZW5kV2ViSW5zcGVjdG9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbnNwZWN0
b3JDbGllbnQ6OmRpZENsb3NlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5OjpkaWRSZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdwdUlPS2l0Q2xhc3Nlcyk6
CisgICAgICAgIChXZWJLaXQ6OmdwdU1hY2hTZXJ2aWNlcyk6CisgICAgICAgIChXZWJLaXQ6Om1l
ZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcyk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZp
ZXcubW06CisgICAgICAgICgtW1dLUERGVmlldyB3ZWJfc2V0Q29udGVudFByb3ZpZGVyRGF0YTpz
dWdnZXN0ZWRGaWxlbmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdW
aWV3Lm1tOgorICAgICAgICAoLVtXS1ByaW50aW5nVmlldyBkZWFsbG9jXSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6fldlYkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6d2Fp
dEZvckRpZEZsdXNoT25TZWNvbmRhcnlUaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJRdWFudHVtKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNs
b3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJB
VkYuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZUZy
YW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpzZXRDYWxs
YmFja3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmZhaWxlZERlY29kaW5n
KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRW5jb2RpbmcpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENSZXNvbHZlcjo6c2VuZE9uTWFpblRocmVhZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRl
U2VydmVyVGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9y
eTo6Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFj
dG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYlJUQ01vbml0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENNb25p
dG9yOjpzZW5kT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpwZGZMb2cpOgorICAg
ICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmxvZ1N0cmVhbUxvYWRlcik6CisgICAgICAgIChXZWJL
aXQ6OlBERlBsdWdpbjo6dmVyYm9zZUxvZyk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6
cmVjZWl2ZWROb25MaW5lYXJpemVkUERGU2VudGluZWwpOgorICAgICAgICAoV2ViS2l0OjpkYXRh
UHJvdmlkZXJHZXRCeXRlc0F0UG9zaXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OmRh
dGFQcm92aWRlckdldEJ5dGVSYW5nZXNDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OmRhdGFQ
cm92aWRlclJlbGVhc2VJbmZvQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46
OnRocmVhZEVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpnZXRSZXNvdXJjZUJ5
dGVzQXRQb3NpdGlvbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46Omdl
dFJlc291cmNlQnl0ZXNBdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjph
ZG9wdEJhY2tncm91bmRUaHJlYWREb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdp
bjo6aW5zdGFsbFBERkRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjp0cnlS
dW5TY3JpcHRzSW5QREZEb2N1bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6ZGlkTWF0Y2hSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0Ns
aWVudENvbm5lY3Rpb246OmRpZEdldFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVGb3JtRGF0YUFuZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmNsZWFudXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9G
aW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpkcmF3
UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjplbGVtZW50RGlkQmx1cik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpo
YW5kbGVTeW50aGV0aWNDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEZpbmlz
aENvbnRlbnRDaGFuZ2VPYnNlcnZpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRh
dGVJbnB1dENvbnRleHRBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnRJZk5lZWRlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtGaXJl
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0QmFzZS5tbToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dEJhc2UgYXhPYmplY3RDYWNoZV0pOgorICAgICAgICAoLVtXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0QmFzZSBhY2Nlc3NpYmlsaXR5UGx1Z2luT2JqZWN0XSk6CisgICAgICAgICgtW1dLQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIHNldFdlYlBhZ2U6XSk6CisgICAgICAgICgtW1dL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIHNldEhhc01haW5GcmFtZVBsdWdpbjpdKToK
KyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2Ugc2V0UmVtb3RlUGFy
ZW50Ol0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNvbm5lY3Rpb24pOgorCiAyMDIxLTAzLTA5ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFRlc3QgZmFz
dC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0Lmh0bWwgdGltZXMgb3V0IHdoZW4gbWVkaWEgaW4g
R1BVIFByb2Nlc3MgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFpblRo
cmVhZC5oIGIvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oCmluZGV4IDA2OGY2YmFhYzZlODk4
ZTMzMzY3NzcxNmQyMDE0ODc0OWU3OWNmMmQuLjVjMzJkMTg1MGUzMzNiZjExYzNiMWI2ZmYyMGUy
YzllMzkwNDRlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmgKQEAgLTgwLDYgKzgwLDcgQEAgdXNpbmcgV1RG
OjpjYWxsT25NYWluVGhyZWFkQW5kV2FpdDsKIHVzaW5nIFdURjo6Y2FsbE9uTWFpblJ1bkxvb3A7
CiB1c2luZyBXVEY6OmNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdDsKIHVzaW5nIFdURjo6Y2FuQ3Vy
cmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YTsKK3VzaW5nIFdURjo6aXNNYWluUnVuTG9v
cDsKIHVzaW5nIFdURjo6aXNNYWluVGhyZWFkOwogdXNpbmcgV1RGOjppc01haW5UaHJlYWRPckdD
VGhyZWFkOwogdXNpbmcgV1RGOjppc1VJVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAK
aW5kZXggMjEyNjRhNzk2OTNjNGI0N2QzZmFhOWExM2E0OGYxZGI1NTQyYWUyNi4uMzY3YWJmZDYz
NzFiNTZlNTExNmViODE5OWMwNWQ0ZjIxYjVhZTBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
Y3BwCkBAIC0yMzEsMTAgKzIzMSwxMCBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpj
b3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQogICAgICAg
ICAgICAgcGl4ZWxCdWZmZXIgPSBtZWRpYVBsYXllci0+cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGlt
ZSgpOwogICAgIH07CiAKLSAgICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgaWYgKGlzTWFpblJ1
bkxvb3AoKSkKICAgICAgICAgZ2V0UGl4ZWxCdWZmZXIoKTsKICAgICBlbHNlCi0gICAgICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFdURk1vdmUoZ2V0UGl4ZWxCdWZmZXIpKTsKKyAgICAgICAg
Y2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoZ2V0UGl4ZWxCdWZmZXIpKTsKIAogICAg
IGlmICghcGl4ZWxCdWZmZXIpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5kZXggZjdhMWFmMmRmN2FlY2RjNzMyNTcx
MjIxZTM0YjdkYWNjYzBhOWIxYi4uODM5ZmU5M2EyMWJiMjVmNWJjZmJjNTM4N2FhYzg1Mjc3MTA5
YzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC0xMTYsNyArMTE2LDcg
QEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPU1N0YXR1cyByZW5kZXIoZG91
YmxlIHNhbXBsZVRpbWUsIHVpbnQ2NF90IGhvc3RUaW1lLCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMs
IEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7CisgICAgICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgICAgICBP
U1N0YXR1cyBzdGF0dXMgPSAtMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCmluZGV4IGZjM2QwNDhjOTA3YmU4ZDdi
MmY4YjNiYjY5YWViMjNjM2Q0NmIwYmUuLmQzZTYxNjFiZDJiZGNmOGVhZjMwMTA3YzUzNmJlZDRi
MjdlMDljMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVtb3RlTWVkaWFSZXNv
dXJjZTo6UmVtb3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVt
b3RlTWVkaWEKIAogUmVtb3RlTWVkaWFSZXNvdXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UoKQog
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3Ao
KSk7CiAgICAgc3RvcCgpOwogICAgIGlmICghbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikK
ICAgICAgICAgcmV0dXJuOwpAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUmVzb3Vy
Y2U6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJv
bwogCiAgICAgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrID0gZGlkUGFzc0FjY2Vzc0NvbnRy
b2xDaGVjazsKICAgICBtX2NsaWVudC0+cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2Us
IFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgewot
ICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBBU1NFUlQoaXNNYWluUnVu
TG9vcCgpKTsKICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlUG9s
aWN5Q2hlY2s6Ok5vKQogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3RvcCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA0YmFlZjQ4
ZGVhYjQ0NWYwYmMzNzM3NTY3NzFiNWY5MmY0NmYzNWQ3Li5hNGQ0YjU3OGEzMjAwOTc1MGFkOWYz
YTI0MTc3YzAwYzZkM2UzNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyOjpjbG9zZSgpCiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
bGF5ZXJzID0gV1RGTW92ZShtX2xheWVycyldIHsgfSk7CisgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFtsYXllcnMgPSBXVEZNb3ZlKG1fbGF5ZXJzKV0geyB9KTsKICAgICB9KTsKIH0KIApAQCAt
ODAsMTEgKzgwLDExIEBAIGJvb2wgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cjo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29uCiAKIHZvaWQgUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNv
cmU6OkludFNpemUgc2l6ZSwgTGF5ZXJDcmVhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0g
ICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBpZGVudGlmaWVyLCBoaWRlUm9vdExheWVyLCBzaXplLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIsIGhpZGVSb290TGF5ZXIsIHNpemUs
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8g
bGF5ZXIgPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShpZGVudGlmaWVy
LCBtX2Nvbm5lY3Rpb24uY29weVJlZigpKTsKICAgICAgICAgYXV0byYgbGF5ZXJSZWZlcmVuY2Ug
PSAqbGF5ZXI7CiAgICAgICAgIGxheWVyUmVmZXJlbmNlLmluaXRpYWxpemUoaGlkZVJvb3RMYXll
ciwgc2l6ZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKSwgaWRlbnRpZmllciwgbGF5ZXIgPSBXVEZNb3ZlKGxheWVyKV0o
YXV0byBsYXllcklkKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRpc3BhdGNoVG9UaHJlYWQoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spLCBpZGVudGlmaWVyLCBsYXllciA9IFdURk1vdmUobGF5ZXIpLCBsYXll
cklkID0gV1RGTW92ZShsYXllcklkKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNhbGxPbk1h
aW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgaWRlbnRpZmllciwgbGF5ZXIgPSBXVEZNb3Zl
KGxheWVyKSwgbGF5ZXJJZCA9IFdURk1vdmUobGF5ZXJJZCldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgQVNTRVJUKCFtX2xheWVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CiAgICAgICAg
ICAgICAgICAgbV9sYXllcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUobGF5ZXIpKTsKICAgICAg
ICAgICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKGxheWVySWQpKTsKQEAgLTk1LDEwICs5NSwxMCBA
QCB2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVy
KFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcgogCiB2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI6OnJlbGVhc2VMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgIGNh
bGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlk
ZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBpZGVudGlmaWVyXSB7CiAgICAg
ICAgICAgICBBU1NFUlQobV9sYXllcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgICAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChbbGF5ZXIgPSBtX2xheWVycy50YWtlKGlkZW50aWZpZXIpXSB7
IH0pOworICAgICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2xheWVyID0gbV9sYXllcnMudGFr
ZShpZGVudGlmaWVyKV0geyB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXgg
OGY5MjE0YWVkYmY4NTkxNTg3NjhhMDhmNDVjYmFkYzcwZWY1MjlkYS4uMTIwZGQ4ZWFmODYyZWYy
MTQwM2UzYzQ0OWFmMzcxYTNkMDZhYzkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAtODcsNyArODcsNyBAQCBEb3du
bG9hZDo6fkRvd25sb2FkKCkKIAogdm9pZCBEb3dubG9hZDo6Y2FuY2VsKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIs
IElnbm9yZURpZEZhaWxDYWxsYmFjayBpZ25vcmVEaWRGYWlsQ2FsbGJhY2spCiB7Ci0gICAgUkVM
RUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblJ1
bkxvb3AoKSk7CiAKICAgICAvLyBVUkxTZXNzaW9uOnRhc2s6ZGlkQ29tcGxldGVXaXRoRXJyb3I6
IGlzIHN0aWxsIGNhbGxlZCBhZnRlciBjYW5jZWxCeVByb2R1Y2luZ1Jlc3VtZURhdGEncyBjb21w
bGV0aW9uSGFuZGxlci4KICAgICAvLyBJZiB0aGlzIGNhbmNlbCByZXF1ZXN0IGNhbWUgZnJvbSB0
aGUgQVBJLCB3ZSBkbyBub3Qgd2FudCB0byBzZW5kIERvd25sb2FkUHJveHk6OkRpZEZhaWwgYmVj
YXVzZSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKaW5kZXggZmE4YzI0NDE2MmI4MWJhZTY4YmVmZGUwODcyOTc5Y2M4OGIyMGFhNi4uMjM0
N2ZkMjM2ZmFkNGI0OTg0ZWUyZTA5NmMzMDI5ZmMzMDlmOTJjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI1MDUsNyArMjUwNSw3
IEBAIFJlZlB0cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1
b3RhTWFuYWdlcihQQUw6OlNlc3Npb25JRCBzCiAgICAgaWRiUm9vdFBhdGggPSBzZXNzaW9uU3Rv
cmFnZVF1b3RhTWFuYWdlci0+aWRiUm9vdFBhdGgoKTsKICNlbmRpZgogICAgIFN0b3JhZ2VRdW90
YU1hbmFnZXI6OlVzYWdlR2V0dGVyIHVzYWdlR2V0dGVyID0gW2NhY2hlUm9vdFBhdGggPSBzZXNz
aW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+Y2FjaGVSb290UGF0aCgpLmlzb2xhdGVkQ29weSgpLCBp
ZGJSb290UGF0aCA9IGlkYlJvb3RQYXRoLmlzb2xhdGVkQ29weSgpLCBvcmlnaW4gPSBvcmlnaW4u
aXNvbGF0ZWRDb3B5KCldKCkgewotICAgICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsgICAg
CisgICAgICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgICAgICB1aW50NjRfdCB1
c2FnZSA9IENhY2hlU3RvcmFnZTo6RW5naW5lOjpkaXNrVXNhZ2UoY2FjaGVSb290UGF0aCwgb3Jp
Z2luKTsKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTI1MTUsNyArMjUxNSw3IEBA
IFJlZlB0cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3Rh
TWFuYWdlcihQQUw6OlNlc3Npb25JRCBzCiAgICAgICAgIHJldHVybiB1c2FnZTsKICAgICB9Owog
ICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OlF1b3RhSW5jcmVhc2VSZXF1ZXN0ZXIgcXVvdGFJbmNy
ZWFzZVJlcXVlc3RlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgc2Vz
c2lvbklELCBvcmlnaW5dICh1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRT
cGFjZSwgdWludDY0X3QgcmVxdWVzdGVkSW5jcmVhc2UsIGF1dG8mJiBjYWxsYmFjaykgewotICAg
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBBU1NFUlQoaXNNYWluUnVuTG9v
cCgpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIGNhbGxiYWNrKHsgfSk7
CiAgICAgICAgIHJlcXVlc3RTdG9yYWdlU3BhY2Uoc2Vzc2lvbklELCBvcmlnaW4sIGN1cnJlbnRR
dW90YSwgY3VycmVudFNwYWNlLCByZXF1ZXN0ZWRJbmNyZWFzZSwgV1RGTW92ZShjYWxsYmFjaykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDVkY2Q3Yjk4Y2Q1YTcwNjU2ODQ2NzEzZjM2MWQ4MzAz
ZjIxNjFhOWUuLjk5YTIyNjJiODQ0ZWNkMmIxMjhiNWFiZjcwMmEwZWJjZWUyMzg5ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZS5jcHAKQEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIEVuZ2luZTo6Y2xlYXJDYWNo
ZXNGb3JPcmlnaW4oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25J
RAogCiBzdGF0aWMgdWludDY0X3QgZ2V0RGlyZWN0b3J5U2l6ZShjb25zdCBTdHJpbmcmIGRpcmVj
dG9yeVBhdGgpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFp
c01haW5SdW5Mb29wKCkpOwogCiAgICAgdWludDY0X3QgZGlyZWN0b3J5U2l6ZSA9IDA7CiAgICAg
RGVxdWU8U3RyaW5nPiBwYXRoczsKQEAgLTIyNyw3ICsyMjcsNyBAQCBzdGF0aWMgdWludDY0X3Qg
Z2V0RGlyZWN0b3J5U2l6ZShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeVBhdGgpCiAKIHVpbnQ2NF90
IEVuZ2luZTo6ZGlza1VzYWdlKGNvbnN0IFN0cmluZyYgcm9vdFBhdGgsIGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYgb3JpZ2luKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmIChyb290UGF0aC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZjU5NDQyMzk3
Yzk5OWVhMjI0ZGQ3MGRhODZlMTlhZWViYzU2OWRiYi4uZDA5ZWEwMTViMzAwYmExNDU1M2IyY2Y1
N2M3YTBjZDcyYzcwOWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC02MjMsNyArNjIzLDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6cmVzdW1lKCkKICAgICBhdXRvJiBjb2NvYVNl
c3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oKm1fc2Vzc2lvbik7CiAg
ICAgaWYgKGNvY29hU2Vzc2lvbi5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgp
ICYmIG1faXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpIHsKICAgICAgICAg
YXV0byBkaWREZXRlcm1pbmVEZXZpY2VSZXN0cmljdGlvblBvbGljeUZvclVSTCA9IG1ha2VCbG9j
a1B0cihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShCT09MIGlzQmxvY2tl
ZCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgaXNCbG9ja2VkXSB7CisgICAgICAgICAg
ICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyksIGlzQmxvY2tlZF0gewogICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrZWQpIHsK
ICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVGYWlsdXJlKFJlc3RyaWN0ZWRVUkxGYWlsdXJl
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IuY3BwCmluZGV4IGVj
ODAwMzg1ZGZhMmY4YTliZTBhYzEwZWYxZWIxZjYyYmNlZWFlNWIuLmE5ODVmNWQyZTg2NjcxNmNk
NzY5YWIwZDI4NDc4M2IxNWI1Y2QzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5jcHAKQEAgLTExNSw3ICsx
MTUsNyBAQCB2b2lkIE5ldHdvcmtNYW5hZ2VyV3JhcHBlcjo6b25OZXR3b3Jrc0NoYW5nZWQoKQog
ICAgIFJUQ05ldHdvcms6OklQQWRkcmVzcyBpcHY2OwogICAgIG1fbWFuYWdlci0+R2V0RGVmYXVs
dExvY2FsQWRkcmVzcyhBRl9JTkVUNiwgJmlwdjYudmFsdWUpOwogCi0gICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgbmV0d29ya0xpc3QgPSBXVEZNb3ZlKG5ldHdvcmtMaXN0KSwgaXB2NCA9IFdU
Rk1vdmUoaXB2NCksIGlwdjYgPSBXVEZNb3ZlKGlwdjYpXSgpIG11dGFibGUgeworICAgIGNhbGxP
bk1haW5SdW5Mb29wKFt0aGlzLCBuZXR3b3JrTGlzdCA9IFdURk1vdmUobmV0d29ya0xpc3QpLCBp
cHY0ID0gV1RGTW92ZShpcHY0KSwgaXB2NiA9IFdURk1vdmUoaXB2NildKCkgbXV0YWJsZSB7CiAg
ICAgICAgIG1fZGlkUmVjZWl2ZVJlc3VsdHMgPSB0cnVlOwogCiAgICAgICAgIG1fbmV0d29ya0xp
c3QgPSBXVEZNb3ZlKG5ldHdvcmtMaXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCmluZGV4IDBhNmIx
NTZmNGNiODhlODViZjBmY2VhOGFjMzcyMGRkNjIxNDQwMDUuLjQwNzc1MTM2NDM0NzI1YzQzM2Vi
YWNmZmU0YmNkOGU0NWVlYjg5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcApAQCAtMTQ1LDcgKzE0
NSw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjCiB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6
Y3JlYXRlU2VydmVyVENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7CiAgICAgQVNTRVJUKG1fcnRj
TmV0d29ya1RocmVhZC5Jc0N1cnJlbnQoKSk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Q
b3J0LCBtYXhQb3J0LCBvcHRpb25zXSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwgYWRkcmVzcywgbWluUG9y
dCwgbWF4UG9ydCwgb3B0aW9uc10gewogICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAg
ICAgICAgIHJldHVybjsKIApAQCAtMTcwLDcgKzE3MCw3IEBAIHJ0Yzo6UHJveHlJbmZvIE5ldHdv
cmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29j
a2V0CiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mm
IHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCiB7Ci0gICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBp
ZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHVzZXJBZ2VudCA9IFdURk1v
dmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSBtdXRhYmxlIHsKKyAgICBj
YWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBp
ZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHVzZXJBZ2VudCA9IFdURk1v
dmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTI2MCw4ICsy
NjAsOCBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlv
bjx2b2lkKCk+JiYgY2FsbGJhY2spCiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVS
ZXNvbHZlcihMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYg
YWRkcmVzcykKIHsKLSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmll
ciwgYWRkcmVzcyA9IFdURk1vdmUoYWRkcmVzcykuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7
CisgICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3Ao
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwgYWRkcmVz
cyA9IFdURk1vdmUoYWRkcmVzcykuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICBjcmVhdGVSZXNvbHZlcihpZGVudGlmaWVyLCBXVEZNb3ZlKGFkZHJlc3MpKTsKQEAgLTI5
OCw4ICsyOTgsOCBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlUmVzb2x2ZXIoTGli
V2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAKIHZvaWQgTmV0d29ya1JUQ1By
b3ZpZGVyOjpzdG9wUmVzb2x2ZXIoTGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7Ci0gICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewotICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXJdIHsK
KyAgICBpZiAoIWlzTWFpblJ1bkxvb3AoKSkgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyXSB7CiAgICAg
ICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICBzdG9wUmVzb2x2ZXIoaWRlbnRpZmllcik7CkBAIC0zMTYsNyArMzE2LDcgQEAgdm9p
ZCBOZXR3b3JrUlRDUHJvdmlkZXI6OnN0b3BSZXNvbHZlcihMaWJXZWJSVENSZXNvbHZlcklkZW50
aWZpZXIgaWRlbnRpZmllcikKIAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNsb3NlTGlzdGVu
aW5nU29ja2V0cyhGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAg
ICBpZiAoIW1faXNMaXN0ZW5pbmdTb2NrZXRBdXRob3JpemVkKSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIE5l
dHdvcmtSVENQcm92aWRlcjo6Y2xvc2VMaXN0ZW5pbmdTb2NrZXRzKEZ1bmN0aW9uPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZAogICAgICAgICBmb3IgKGF1dG8gaWQgOiBsaXN0ZW5pbmdTb2NrZXRJ
ZGVudGlmaWVycykKICAgICAgICAgICAgIG1fc29ja2V0cy5nZXQoaWQpLT5jbG9zZSgpOwogCi0g
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3ZpZGVyID0gbWFrZVJlZigqdGhpcyksIGxpc3Rl
bmluZ1NvY2tldElkZW50aWZpZXJzID0gV1RGTW92ZShsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVy
cyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKKyAg
ICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3Byb3ZpZGVyID0gbWFrZVJlZigqdGhpcyksIGxpc3Rl
bmluZ1NvY2tldElkZW50aWZpZXJzID0gV1RGTW92ZShsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVy
cyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKICAg
ICAgICAgICAgIGlmIChwcm92aWRlci0+bV9jb25uZWN0aW9uKSB7CiAgICAgICAgICAgICAgICAg
Zm9yIChhdXRvIGlkZW50aWZpZXIgOiBsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVycykKICAgICAg
ICAgICAgICAgICAgICAgcHJvdmlkZXItPm1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OkxpYldlYlJUQ05ldHdvcms6OlNpZ25hbENsb3NlKGlkZW50aWZpZXIsIEVDT05O
QUJPUlRFRCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApp
bmRleCA4NmVjZGRkN2Y2ZTNiMWFkN2NjN2IxZDBiYWRiNDNiZGZjMjMyM2JiLi4zZGUxMTQ1NWJh
YjQ4N2RkZjZkYWEyMWFkMDBmMzNjMGNjNDBiNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcApAQCAtNDMyLDcgKzQzMiw3IEBAIGJvb2wgQ29ubmVjdGlvbjo6
c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+IGVuY29kZXIsIE9wdGlvblNldDxT
ZW5kT3B0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShJUENfVEVTVElOR19B
UEkpCi0gICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgaWYgKGlzTWFpblJ1bkxvb3AoKSkg
ewogICAgICAgICBib29sIGhhc0RlYWRPYnNlcnZlcnMgPSBmYWxzZTsKICAgICAgICAgZm9yIChh
dXRvJiBvYnNlcnZlcldlYWtQdHIgOiBtX21lc3NhZ2VPYnNlcnZlcnMpIHsKICAgICAgICAgICAg
IGlmIChhdXRvKiBvYnNlcnZlciA9IG9ic2VydmVyV2Vha1B0ci5nZXQoKSkKQEAgLTQ0NSw3ICs0
NDUsNyBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNv
ZGVyPiBlbmNvZGVyLCBPcHRpb25TZXQ8U2VuZE9wdAogICAgIH0KICNlbmRpZgogCi0gICAgaWYg
KGlzTWFpblRocmVhZCgpICYmIG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWRUb1VzZUZ1bGx5U3lu
Y2hyb25vdXNNb2RlRm9yVGVzdGluZyAmJiAhZW5jb2Rlci0+aXNTeW5jTWVzc2FnZSgpICYmICEo
ZW5jb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IFJlY2VpdmVyTmFtZTo6SVBDKSAmJiAh
c2VuZE9wdGlvbnMuY29udGFpbnMoU2VuZE9wdGlvbjo6SWdub3JlRnVsbHlTeW5jaHJvbm91c01v
ZGUpKSB7CisgICAgaWYgKGlzTWFpblJ1bkxvb3AoKSAmJiBtX2luRGlzcGF0Y2hNZXNzYWdlTWFy
a2VkVG9Vc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcgJiYgIWVuY29kZXItPmlzU3lu
Y01lc3NhZ2UoKSAmJiAhKGVuY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBSZWNlaXZl
ck5hbWU6OklQQykgJiYgIXNlbmRPcHRpb25zLmNvbnRhaW5zKFNlbmRPcHRpb246Oklnbm9yZUZ1
bGx5U3luY2hyb25vdXNNb2RlKSkgewogICAgICAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEOwog
ICAgICAgICBhdXRvIHdyYXBwZWRNZXNzYWdlID0gY3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKE1l
c3NhZ2VOYW1lOjpXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZywgZW5jb2Rlci0+ZGVzdGlu
YXRpb25JRCgpLCBzeW5jUmVxdWVzdElEKTsKICAgICAgICAgd3JhcHBlZE1lc3NhZ2UtPnNldEZ1
bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygpOwpAQCAtOTk0LDcgKzk5NCw3IEBAIHZvaWQg
Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKERlY29kZXImIGRlY29kZXIpCiAgICAgfQogCiAj
aWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAg
ICBpZiAoaXNNYWluUnVuTG9vcCgpKSB7CiAgICAgICAgIGJvb2wgaGFzRGVhZE9ic2VydmVycyA9
IGZhbHNlOwogICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyV2Vha1B0ciA6IG1fbWVzc2FnZU9i
c2VydmVycykgewogICAgICAgICAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gb2JzZXJ2ZXJXZWFr
UHRyLmdldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRp
b24vY29jb2EvQXV0aGVudGljYXRpb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbQpp
bmRleCA4NjkwY2ViOWVlOGRkMWNkZjY0MGYxNzU2YzhmNzRlYWM4NGI1ZmNkLi45MTJmNDI5Njdj
MzA0OTA5NzdkMGQzNmM1ZmQ0M2U2OTcyN2YwNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50
aWNhdGlvbk1hbmFnZXJDb2NvYS5tbQpAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmluaXRpYWxpemVDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlm
ICghY29ubmVjdGlvbiB8fCAhY29ubmVjdGlvbi0+eHBjQ29ubmVjdGlvbigpKSB7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTAsOCArNTAsOCBAQCB2b2lkIEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQogICAgIC8vIFRoZSBmb2xsb3dpbmcgeHBjIGV2ZW50IGhhbmRsZXIgb3ZlcndyaXRlcyB0
aGUgYm9vc3RyYXAgZXZlbnQgaGFuZGxlciBhbmQgaXMgb25seSB1c2VkCiAgICAgLy8gdG8gY2Fw
dHVyZSBjbGllbnQgY2VydGlmaWNhdGUgY3JlZGVudGlhbC4KICAgICB4cGNfY29ubmVjdGlvbl9z
ZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLT54cGNDb25uZWN0aW9uKCksIF4oeHBjX29iamVj
dF90IGV2ZW50KSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2V2ZW50ID0gT1NPYmplY3RQ
dHIoZXZlbnQpLCB3ZWFrVGhpcyA9IHdlYWtUaGlzXSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtldmVudCA9
IE9TT2JqZWN0UHRyKGV2ZW50KSwgd2Vha1RoaXMgPSB3ZWFrVGhpc10geworICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgICAgICAgICAgeHBjX3R5cGVf
dCB0eXBlID0geHBjX2dldF90eXBlKGV2ZW50LmdldCgpKTsKICAgICAgICAgICAgIGlmICh0eXBl
ID09IFhQQ19UWVBFX0VSUk9SIHx8ICF3ZWFrVGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFk
ZXIuY3BwCmluZGV4IGU3MDI4Yzc5NzBlYWQxOWU0YTQ2NDFmZjczYzA0MjVkMGRiMjJhNDUuLmI4
OGY4ODM5MzAyYTlhMDJiMzY2OGYxODNlNzdjYzhlZTVkNDRiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlh
Rm9ybWF0UmVhZGVyLmNwcApAQCAtODIsMTIgKzgyLDEyIEBAIE1lZGlhRm9ybWF0UmVhZGVyOjpN
ZWRpYUZvcm1hdFJlYWRlcihBbGxvY2F0b3ImJiBhbGxvY2F0b3IpCiAKIHZvaWQgTWVkaWFGb3Jt
YXRSZWFkZXI6OnN0YXJ0T25NYWluVGhyZWFkKE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291
cmNlKQogewotICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgIGlmIChpc01haW5SdW5Mb29w
KCkpIHsKICAgICAgICAgcGFyc2VCeXRlU291cmNlKFdURk1vdmUoYnl0ZVNvdXJjZSkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBieXRlU291cmNlID0gcmV0YWluUHRyKGJ5dGVTb3Vy
Y2UpXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGJ5dGVTb3VyY2UgPSByZXRhaW5QdHIoYnl0ZVNvdXJjZSld
KCkgbXV0YWJsZSB7CiAgICAgICAgIHBhcnNlQnl0ZVNvdXJjZShXVEZNb3ZlKGJ5dGVTb3VyY2Up
KTsKICAgICB9KTsKIH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgV29ya1F1ZXVlJiByZWFk
ZXJRdWV1ZSgpCiAKIHZvaWQgTWVkaWFGb3JtYXRSZWFkZXI6OnBhcnNlQnl0ZVNvdXJjZShSZXRh
aW5QdHI8TVRQbHVnaW5CeXRlU291cmNlUmVmPiYmIGJ5dGVTb3VyY2UpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxDb250ZW50VHlwZT4gY29udGVudFR5cGUoInZpZGVvL3dlYm0i
X3MpOwogICAgIGF1dG8gcGFyc2VyID0gU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6Y3JlYXRlKGNv
bnRlbnRUeXBlKTsKQEAgLTE1Miw3ICsxNTIsNyBAQCB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpw
YXJzZUJ5dGVTb3VyY2UoUmV0YWluUHRyPE1UUGx1Z2luQnl0ZVNvdXJjZVJlZj4mJiBieXRlUwog
CiB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQmJiBzZWdtZW50LCB1aW50NjRfdCBlcnJv
ckNvZGUpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01h
aW5SdW5Mb29wKCkpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BhcnNlVHJhY2tz
TG9jayk7CiAgICAgQVNTRVJUKCFtX3BhcnNlVHJhY2tzU3RhdHVzKTsKQEAgLTE5NSw3ICsxOTUs
NyBAQCB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvbgogCiB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpk
aWRQcm92aWRlTWVkaWFEYXRhKFJlZjxNZWRpYVNhbXBsZT4mJiBtZWRpYVNhbXBsZSwgdWludDY0
X3QgdHJhY2tJRCwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fcGFyc2VUcmFja3NMb2NrKTsKICAgICBhdXRvIHRyYWNrSW5kZXggPSBtX3RyYWNr
UmVhZGVycy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIHRyYWNrKSB7CkBAIC0yMDgsNyArMjA4LDcg
QEAgdm9pZCBNZWRpYUZvcm1hdFJlYWRlcjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFT
YW1wbGU+JiYgbWVkaWFTYW1wbGUsIHVpbnQKIAogdm9pZCBNZWRpYUZvcm1hdFJlYWRlcjo6Zmlu
aXNoUGFyc2luZyhSZWY8U291cmNlQnVmZmVyUGFyc2VyPiYmIHBhcnNlcikKIHsKLSAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9wYXJzZVRyYWNrc0xvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAK
aW5kZXggZGMyZWQzOGE2MjdlYWIyNjJhMTkzZWJmYTVjNGVkNzU4YzNiYWVhNS4uZDgzZWZjZjQ3
NzVjZTk2YjEyYTg3NjBmOGQxNzIzNGFiMGYxZWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1w
bGVCeXRlUmFuZ2UuY3BwCkBAIC00NSw3ICs0NSw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpN
ZWRpYVNhbXBsZUJ5dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3Vy
CiAgICAgLCBtX2J5dGVTb3VyY2UoYnl0ZVNvdXJjZSkKICAgICAsIG1fZmxhZ3Moc2FtcGxlLmZs
YWdzKCkpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01h
aW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RlY29kZVRpbWUgPT0gbV9wcmVzZW50YXRpb25U
aW1lIHx8IG1fZGVjb2RlVGltZSA9PSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpOwogICAgIGF1
dG8gcGxhdGZvcm1TYW1wbGUgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKTsKICAgICBzd2l0Y2gg
KHBsYXRmb3JtU2FtcGxlLnR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcAppbmRl
eCBjNjRjYjEwM2NkNjJhMmUzNGM4Y2RkNDZmMWI5MTkwZmUzOGM4NTgzLi5iMmY5ZWRjMjhmYzdi
M2UzZDczZmYzZmZiYzk1NjA5ZmM1NzQ0ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIu
Y3BwCkBAIC03OCw3ICs3OCw3IEBAIE1lZGlhVHJhY2tSZWFkZXI6Ok1lZGlhVHJhY2tSZWFkZXIo
QWxsb2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBNZWRpYUZvcm1hdFJlYWRlCiAgICAgLCBtX2xv
Z2dlcihmb3JtYXRSZWFkZXIubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoZm9ybWF0
UmVhZGVyLm5leHRUcmFja1JlYWRlckxvZ0lkZW50aWZpZXIodHJhY2tJRCkpCiB7Ci0gICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYVR5cGVTdHJpbmcoKSwgIiAiLCB0cmFj
a0lEKTsKICAgICBpZiAoZW5hYmxlZCkKQEAgLTk3LDcgKzk3LDcgQEAgTWVkaWFUaW1lIE1lZGlh
VHJhY2tSZWFkZXI6OmdyZWF0ZXN0UHJlc2VudGF0aW9uVGltZSgpIGNvbnN0CiAKIHZvaWQgTWVk
aWFUcmFja1JlYWRlcjo6YWRkU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIE1UUGx1
Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291cmNlKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fc2FtcGxlU3RvcmFnZUxvY2spOwogICAgIGlmICghbV9zYW1wbGVTdG9yYWdlKQog
ICAgICAgICBtX3NhbXBsZVN0b3JhZ2UgPSBtYWtlVW5pcXVlPFNhbXBsZVN0b3JhZ2U+KCk7CkBA
IC0xMjYsNyArMTI2LDcgQEAgdm9pZCBNZWRpYVRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlKEZ1
bmN0aW9uPGJvb2woU2FtcGxlTWFwJiwgYm9vbCk+JiYgcHJlZGljYXQKIAogdm9pZCBNZWRpYVRy
YWNrUmVhZGVyOjpmaW5pc2hQYXJzaW5nKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIpOwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9yYWdlTG9j
ayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFUcmFja1JlYWRlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuaAppbmRleCA3MTI2MDZkMDBhYTZlNTJkMTdjZTA2
MzU4ODk1OTk3MTM0NjM1YmU2Li4wMzNlNzQ1MjVmMmQ1NDdjMThjMDMxODMzNTg3NzAzMDY3Yzg2
YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFUcmFja1JlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmgKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0
ZToKIAogICAgIHN0cnVjdCBTYW1wbGVTdG9yYWdlIHsKICAgICAgICAgV1RGX01BS0VfU1RSVUNU
X0ZBU1RfQUxMT0NBVEVEOwotICAgICAgICB+U2FtcGxlU3RvcmFnZSgpIHsgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7IH0KKyAgICAgICAgflNhbXBsZVN0b3JhZ2UoKSB7IEFTU0VSVCghaXNNYWlu
UnVuTG9vcCgpKTsgfQogICAgICAgICBXZWJDb3JlOjpTYW1wbGVNYXAgc2FtcGxlTWFwOwogICAg
ICAgICBib29sIGhhc0FsbFNhbXBsZXMgeyBmYWxzZSB9OwogICAgIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAppbmRleCAzMWMzOGYz
NjEzYjM2YjUxZGVjMGZlZGExYjdiYzE3Nzc5ZGYwZDZlLi45MWZmYjIzM2JlODg2MWQyYTc3ODlk
NjhmNzQ3MDkzODIxMzM0NmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL0ljb25EYXRhYmFzZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgSWNvbkRhdGFiYXNlOjpJ
Y29uRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBwYXRoLCBBbGxvd0RhdGFiYXNlV3JpdGUgYWxsb3dE
YXRhYmFzZVcKICAgICAsIG1fYWxsb3dEYXRhYmFzZVdyaXRlKGFsbG93RGF0YWJhc2VXcml0ZSkK
ICAgICAsIG1fY2xlYXJMb2FkZWRJY29uc1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJklj
b25EYXRhYmFzZTo6Y2xlYXJMb2FkZWRJY29uc1RpbWVyRmlyZWQpCiB7Ci0gICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBtX2NsZWFy
TG9hZGVkSWNvbnNUaW1lci5zZXRQcmlvcml0eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OlJlbGVh
c2VVbnVzZWRSZXNvdXJjZXNUaW1lcik7CiAKICAgICAvLyBXZSBpbml0aWFsaXplIHRoZSBkYXRh
YmFzZSBzeW5jaHJvbm91c2x5LCBpdCdzIGhvcGVmdWxseSBmYXN0IGVub3VnaCBiZWNhdXNlIGl0
IG1ha2VzCkBAIC0xMDgsNyArMTA4LDcgQEAgSWNvbkRhdGFiYXNlOjpJY29uRGF0YWJhc2UoY29u
c3QgU3RyaW5nJiBwYXRoLCBBbGxvd0RhdGFiYXNlV3JpdGUgYWxsb3dEYXRhYmFzZVcKIAogSWNv
bkRhdGFiYXNlOjp+SWNvbkRhdGFiYXNlKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgQmluYXJ5U2VtYXBob3JlIHNl
bWFwaG9yZTsKICAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2goWyZdIHsKQEAgLTEyNCw3ICsxMjQs
NyBAQCBJY29uRGF0YWJhc2U6On5JY29uRGF0YWJhc2UoKQogCiBib29sIEljb25EYXRhYmFzZTo6
Y3JlYXRlVGFibGVzSWZOZWVkZWQoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmIChtX2RiLnRhYmxlRXhpc3Rz
KCJJY29uSW5mbyIpICYmIG1fZGIudGFibGVFeGlzdHMoIkljb25EYXRhIikgJiYgbV9kYi50YWJs
ZUV4aXN0cygiUGFnZVVSTCIpICYmIG1fZGIudGFibGVFeGlzdHMoIkljb25EYXRhYmFzZUluZm8i
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTgyLDcgKzE4Miw3IEBAIGJvb2wgSWNvbkRh
dGFiYXNlOjpjcmVhdGVUYWJsZXNJZk5lZWRlZCgpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpwb3B1
bGF0ZVBhZ2VVUkxUb0ljb25VUkxNYXAoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghbV9kYi5pc09wZW4o
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
Ojpwb3B1bGF0ZVBhZ2VVUkxUb0ljb25VUkxNYXAoKQogCiB2b2lkIEljb25EYXRhYmFzZTo6Y2xl
YXJTdGF0ZW1lbnRzKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NF
UlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fZGIuaXNPcGVuKCkpOwogCiAgICAg
bV9pY29uSURGb3JJY29uVVJMU3RhdGVtZW50ID0gbnVsbHB0cjsKQEAgLTIyMyw3ICsyMjMsNyBA
QCB2b2lkIEljb25EYXRhYmFzZTo6Y2xlYXJTdGF0ZW1lbnRzKCkKIAogdm9pZCBJY29uRGF0YWJh
c2U6OnBydW5lVGltZXJGaXJlZCgpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cisg
ICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsK
IAogICAgIGlmICghbV9wcnVuZUljb25zU3RhdGVtZW50KSB7CkBAIC0yNTMsNyArMjUzLDcgQEAg
dm9pZCBJY29uRGF0YWJhc2U6OnBydW5lVGltZXJGaXJlZCgpCiAKIHZvaWQgSWNvbkRhdGFiYXNl
OjpzdGFydFBydW5lVGltZXIoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAg
IEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghbV9wcnVuZVRpbWVyIHx8ICFt
X2RiLmlzT3BlbigpKQogICAgICAgICByZXR1cm47CkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnN0YXJ0UHJ1bmVUaW1lcigpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpjbGVh
ckxvYWRlZEljb25zVGltZXJGaXJlZCgpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIExvY2tIb2xkZXIgbG9ja0hvbGRl
cihtX2xvYWRlZEljb25zTG9jayk7CiAgICAgYXV0byBub3cgPSBNb25vdG9uaWNUaW1lOjpub3co
KTsKQEAgLTI4NCw3ICsyODQsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2xlYXJMb2FkZWRJY29u
c1RpbWVyRmlyZWQoKQogCiB2b2lkIEljb25EYXRhYmFzZTo6c3RhcnRDbGVhckxvYWRlZEljb25z
VGltZXIoKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CiAKICAgICBpZiAobV9jbGVhckxvYWRlZEljb25zVGltZXIuaXNBY3RpdmUo
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpzdGFydENsZWFyTG9hZGVkSWNvbnNUaW1lcigpCiAKIE9wdGlvbmFsPGludDY0X3Q+IEljb25E
YXRhYmFzZTo6aWNvbklERm9ySWNvblVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGJvb2wmIGV4
cGlyZWQpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01h
aW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsKIAogICAgIGlmICghbV9p
Y29uSURGb3JJY29uVVJMU3RhdGVtZW50KSB7CkBAIC0zMjMsNyArMzIzLDcgQEAgT3B0aW9uYWw8
aW50NjRfdD4gSWNvbkRhdGFiYXNlOjppY29uSURGb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgaWNv
blVSTCwgYm9vbCYgZXgKIAogYm9vbCBJY29uRGF0YWJhc2U6OnNldEljb25JREZvclBhZ2VVUkwo
aW50NjRfdCBpY29uSUQsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKLSAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJU
KG1fZGIuaXNPcGVuKCkpOwogICAgIEFTU0VSVChtX2FsbG93RGF0YWJhc2VXcml0ZSA9PSBBbGxv
d0RhdGFiYXNlV3JpdGU6Olllcyk7CiAKQEAgLTM1MSw3ICszNTEsNyBAQCBib29sIEljb25EYXRh
YmFzZTo6c2V0SWNvbklERm9yUGFnZVVSTChpbnQ2NF90IGljb25JRCwgY29uc3QgU3RyaW5nJiBw
YWdlVVJMKQogCiBWZWN0b3I8Y2hhcj4gSWNvbkRhdGFiYXNlOjppY29uRGF0YShpbnQ2NF90IGlj
b25JRCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFp
blJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fZGIuaXNPcGVuKCkpOwogCiAgICAgaWYgKCFtX2lj
b25EYXRhU3RhdGVtZW50KSB7CkBAIC0zNzgsNyArMzc4LDcgQEAgVmVjdG9yPGNoYXI+IEljb25E
YXRhYmFzZTo6aWNvbkRhdGEoaW50NjRfdCBpY29uSUQpCiAKIE9wdGlvbmFsPGludDY0X3Q+IElj
b25EYXRhYmFzZTo6YWRkSWNvbihjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFZlY3Rvcjxj
aGFyPiYgaWNvbkRhdGEpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNT
RVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsKICAgICBB
U1NFUlQobV9hbGxvd0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpZZXMpOwog
CkBAIC00MjEsNyArNDIxLDcgQEAgT3B0aW9uYWw8aW50NjRfdD4gSWNvbkRhdGFiYXNlOjphZGRJ
Y29uKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgVmVjdG9yPGNoYXIKIAogdm9pZCBJY29u
RGF0YWJhc2U6OnVwZGF0ZUljb25UaW1lc3RhbXAoaW50NjRfdCBpY29uSUQsIGludDY0X3QgdGlt
ZXN0YW1wKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNN
YWluUnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9kYi5pc09wZW4oKSk7CiAgICAgQVNTRVJUKG1f
YWxsb3dEYXRhYmFzZVdyaXRlID09IEFsbG93RGF0YWJhc2VXcml0ZTo6WWVzKTsKIApAQCAtNDQ1
LDcgKzQ0NSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjp1cGRhdGVJY29uVGltZXN0YW1wKGludDY0
X3QgaWNvbklELCBpbnQ2NF90IHRpbWVzdGFtcCkKIAogdm9pZCBJY29uRGF0YWJhc2U6OmRlbGV0
ZUljb24oaW50NjRfdCBpY29uSUQpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cisg
ICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsK
ICAgICBBU1NFUlQobV9hbGxvd0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpZ
ZXMpOwogCkBAIC00OTIsNyArNDkyLDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OmRlbGV0ZUljb24o
aW50NjRfdCBpY29uSUQpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpjaGVja0ljb25VUkxBbmRTZXRQ
YWdlVVJMSWZOZWVkZWQoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHBhZ2VV
UkwsIEFsbG93RGF0YWJhc2VXcml0ZSBhbGxvd0RhdGFiYXNlV3JpdGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIG1f
d29ya1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBpY29uVVJMID0gaWNvblVSTC5pc29sYXRlZENvcHkoKSwgcGFnZVVSTCA9IHBhZ2VVUkwuaXNv
bGF0ZWRDb3B5KCksIGFsbG93RGF0YWJhc2VXcml0ZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYm9vbCByZXN1bHQg
PSBmYWxzZTsKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2hlY2tJY29u
VVJMQW5kU2V0UGFnZVVSTElmTmVlZGVkKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29ucwogCiB2
b2lkIEljb25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVS
TCwgQWxsb3dEYXRhYmFzZVdyaXRlIGFsbG93RGF0YWJhc2VXcml0ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChQbGF0Zm9ybUltYWdlUHRyJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAK
ICAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgcGFnZVVSTCA9IHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCksIGFsbG93RGF0YWJhc2VX
cml0ZSwgdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7
CiAgICAgICAgIE9wdGlvbmFsPGludDY0X3Q+IGljb25JRDsKQEAgLTYwNyw3ICs2MDcsNyBAQCB2
b2lkIEljb25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVS
TCwgQWxsb3dEYXRhYmFzZVdyaXRlCiAKIFN0cmluZyBJY29uRGF0YWJhc2U6Omljb25VUkxGb3JQ
YWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgTG9ja0hvbGRlciBsb2Nr
SG9sZGVyKG1fcGFnZVVSTFRvSWNvblVSTE1hcExvY2spOwogICAgIHJldHVybiBtX3BhZ2VVUkxU
b0ljb25VUkxNYXAuZ2V0KHBhZ2VVUkwpOwpAQCAtNjE1LDcgKzYxNSw3IEBAIFN0cmluZyBJY29u
RGF0YWJhc2U6Omljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIAogdm9p
ZCBJY29uRGF0YWJhc2U6OnNldEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwg
Y29uc3QgdW5zaWduZWQgY2hhciogaWNvbkRhdGEsIHNpemVfdCBpY29uRGF0YVNpemUsIGNvbnN0
IFN0cmluZyYgcGFnZVVSTCwgQWxsb3dEYXRhYmFzZVdyaXRlIGFsbG93RGF0YWJhc2VXcml0ZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwog
CiAgICAgLy8gSWYgZGF0YWJhc2Ugd3JpdGUgaXMgbm90IGFsbG93ZWQgbG9hZCB0aGUgaWNvbiB0
byBjYWNoZSBpdCBpbiBtZW1vcnkgb25seS4KICAgICBpZiAobV9hbGxvd0RhdGFiYXNlV3JpdGUg
PT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpObyB8fCBhbGxvd0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dE
YXRhYmFzZVdyaXRlOjpObykgewpAQCAtNjc3LDcgKzY3Nyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpzZXRJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IHVuc2lnbmVk
IGNoYXIqCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIHsKICAgICAgICAgTG9ja0hvbGRl
ciBsb2NrSG9sZGVyKG1fbG9hZGVkSWNvbnNMb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbQppbmRleCBh
NzViMjY3MDRhMzhhNTRjNjdiYTljMzkxMTMxNTBhZmUzYmE0OTI0Li5kMTI1MjRiNTM5ZmRhNDZi
YTFmZmRmZGMwN2RlOGI0MjU4ZDg5NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9NZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tCkBAIC0yMTIsNyAr
MjEyLDcgQEAgdm9pZCBhbGVydEZvclBlcm1pc3Npb24oV2ViUGFnZVByb3h5JiBwYWdlLCBNZWRp
YVBlcm1pc3Npb25SZWFzb24gcmVhc29uLCBPcHRpb24KIAogdm9pZCByZXF1ZXN0QVZDYXB0dXJl
QWNjZXNzRm9yVHlwZShNZWRpYVBlcm1pc3Npb25UeXBlIHR5cGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCBhdXRob3JpemVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAg
QVZNZWRpYVR5cGUgbWVkaWFUeXBlID0gdHlwZSA9PSBNZWRpYVBlcm1pc3Npb25UeXBlOjpBdWRp
byA/IEFWTWVkaWFUeXBlQXVkaW8gOiBBVk1lZGlhVHlwZVZpZGVvOwogICAgIGF1dG8gZGVjaXNp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShCT09MIGF1dGhvcml6ZWQpIG11dGFibGUgewpAQCAtMjQwLDcgKzI0
MCw3IEBAIE1lZGlhUGVybWlzc2lvblJlc3VsdCBjaGVja0FWQ2FwdHVyZUFjY2Vzc0ZvclR5cGUo
TWVkaWFQZXJtaXNzaW9uVHlwZSB0eXBlKQogCiB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlv
bkFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYXV0aG9yaXplZCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQo
aXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2Nr
UHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTRlNw
ZWVjaFJlY29nbml6ZXJBdXRob3JpemF0aW9uU3RhdHVzIHN0YXR1cykgbXV0YWJsZSB7CiAgICAg
ICAgIGJvb2wgYXV0aG9yaXplZCA9IHN0YXR1cyA9PSBTRlNwZWVjaFJlY29nbml6ZXJBdXRob3Jp
emF0aW9uU3RhdHVzQXV0aG9yaXplZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQppbmRleCBlZWZlZDFhMDc5ZGU3OTk2ODAxZTdj
MmYzNzA2YjFjOTY5NjU3NmIwLi4zMGUyMGNmZDk1NTBiMWE0NTUzZjAyNTlmMDRjNzY1MDdlNjg2
MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNl
T2JzZXJ2ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5j
ZU9ic2VydmVyLm1tCkBAIC04OSw3ICs4OSw3IEBAIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09m
Q2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4KIHsK
ICAgICBbc3VwZXIgX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6b2xk
VmFsdWVzIHRvVmFsdWVzRm9yS2V5czpuZXdWYWx1ZXNdOwogCi0gICAgaWYgKCFpc01haW5UaHJl
YWQoKSkgeworICAgIGlmICghaXNNYWluUnVuTG9vcCgpKSB7CiAgICAgICAgIFtzZWxmIGZpbmRQ
cmVmZXJlbmNlQ2hhbmdlc0FuZE5vdGlmeUZvcktleXM6b2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5
czpuZXdWYWx1ZXNdOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggMGMyOTYx
MDE3NTY4ZTUzODlhODQzZDEwNGY3ZmU4OWQwM2JjNWQ4Ni4uZGIwMDlhZDI4MmZiYzA3NDQ5YjIx
MjU3MTA3NjkyNDIwM2FmMTk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0yMjQsNyArMjI0LDcgQEAgc3RhdGlj
IGJvb2wgaXNJbnRlcm5hbEluc3RhbGwoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBzdGF0
aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIG5vbkJyb3dzZXJTZXJ2aWNlcygpCiB7Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsK
ICAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0
b3I8QVNDSUlMaXRlcmFsPiB7CiAgICAgICAgICJjb20uYXBwbGUubHNkLm9wZW4iX3MsCiAgICAg
ICAgICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIl9zLApAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRp
YyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgbm9uQnJvd3NlclNlcnZpY2VzKCkKIAogc3Rh
dGljIGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBhZ3hDb21waWxlckNsYXNzZXMoKQogewot
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7
CiAgICAgc3RhdGljIGNvbnN0IGF1dG8gaW9raXRDbGFzc2VzID0gbWFrZU5ldmVyRGVzdHJveWVk
KFZlY3RvcjxBU0NJSUxpdGVyYWw+IHsKICAgICAgICAgIkFHWENvbW1hbmRRdWV1ZSJfcywKICAg
ICAgICAgIkFHWERldmljZSJfcywKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdGF0aWMgY29uc3QgVmVj
dG9yPEFTQ0lJTGl0ZXJhbD4mIGFneENvbXBpbGVyQ2xhc3NlcygpCiAjaWYgUExBVEZPUk0oSU9T
KQogc3RhdGljIGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBhZ3hDb21waWxlclNlcnZpY2Vz
KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5M
b29wKCkpOwogICAgIHN0YXRpYyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJv
eWVkKFZlY3RvcjxBU0NJSUxpdGVyYWw+IHsKICAgICAgICAgImNvbS5hcHBsZS5BR1hDb21waWxl
clNlcnZpY2UiX3MsCiAgICAgICAgICJjb20uYXBwbGUuQUdYQ29tcGlsZXJTZXJ2aWNlLVMyQTgi
X3MKQEAgLTI2Nyw3ICsyNjcsNyBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4m
IGFneENvbXBpbGVyU2VydmljZXMoKQogCiBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJh
bD4mIGRpYWdub3N0aWNTZXJ2aWNlcygpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2
aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7CiAgICAgICAg
ICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiX3MsCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3Rl
SW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAyMWRiMTEzZTRjOGYxYWY4YzBk
MzgyOGZlYjEzMWE2NTg0ZTBmNGM0Li42ZjY5ODYxNWIzZWYwYzViMzRjNTA2ZDdiODM5NmQzOTI3
NGQ2MTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivc29j
a2V0L1JlbW90ZUluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0xMjEsNyAr
MTIxLDcgQEAgUmVtb3RlSW5zcGVjdG9yQ2xpZW50Ojp+UmVtb3RlSW5zcGVjdG9yQ2xpZW50KCkK
IAogdm9pZCBSZW1vdGVJbnNwZWN0b3JDbGllbnQ6OnNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25z
dCBTdHJpbmcmIGV2ZW50KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNT
RVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fY29ubmVjdGlvbklELmhhc1ZhbHVl
KCkpOwogICAgIGF1dG8gbWVzc2FnZSA9IGV2ZW50LnV0ZjgoKTsKICAgICBzZW5kKG1fY29ubmVj
dGlvbklELnZhbHVlKCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG1lc3NhZ2Uu
ZGF0YSgpKSwgbWVzc2FnZS5sZW5ndGgoKSk7CkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBSZW1v
dGVJbnNwZWN0b3JDbGllbnQ6OmNvbm5lY3Rpb25DbG9zZWQoKQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3RvckNsaWVudDo6ZGlkQ2xvc2UoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRw
b2ludCYsIENvbm5lY3Rpb25JRCkKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7Cisg
ICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXNdIHsKICAgICAgICAgY29ubmVjdGlvbkNsb3NlZCgp
OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJh
bWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZy
YW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggMDFhMWFjZmVhNjMxNTQyYzBlYWJiMThj
OGI1ZjAxZGVlMTUwMWJjZC4uZGFiMzJlMDQ5M2U2YTZlYzdhMTU1NjU5MDQyMzBhZDVjY2Q5NjMw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGlj
eUxpc3RlbmVyUHJveHkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5OjpkaWRSZWNlaXZlQXBwQm91bmREb21haW5SZXN1bHQoT3B0aW9uYWw8TmF2
aWdhCiAKIHZvaWQgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpkaWRSZWNlaXZlU2FmZUJy
b3dzaW5nUmVzdWx0cyhSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdX
YXJuaW5nKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKCFtX3NhZmVCcm93c2luZ1dhcm5pbmcpOwogICAgIGlm
IChtX3BvbGljeVJlc3VsdCAmJiBtX2lzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pIHsKICAg
ICAgICAgaWYgKG1fcmVwbHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCA4YmI3OWQ3ZDAyZmQyMTQ4MjM0NmM0ZTQ0ZTM2ZWNhZWQ0MmY4YTU2Li5iZThjMjI2
OGMzZDM3OTIwZjEzZTU4MTQxNGY0NDlkN2NkNzc4OGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc2NjUsNyArNzY2NSw3IEBAIHN0YXRpYyBjb25zdCBW
ZWN0b3I8QVNDSUlMaXRlcmFsPiYgYXR0YWNobWVudEVsZW1lbnRTZXJ2aWNlcygpCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGdwdUlPS2l0
Q2xhc3NlcygpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNN
YWluUnVuTG9vcCgpKTsKICAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZl
ckRlc3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICAgICAgIkFHWERldmljZVVzZXJDbGllbnQiX3MsCkBAIC03Njk3LDcgKzc2OTcsNyBA
QCBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGdwdUlPS2l0Q2xhc3NlcygpCiAK
IHN0YXRpYyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgZ3B1TWFjaFNlcnZpY2VzKCkKIHsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkp
OwogICAgIHN0YXRpYyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZl
Y3RvcjxBU0NJSUxpdGVyYWw+IHsKICAgICAgICAgImNvbS5hcHBsZS5NVExDb21waWxlclNlcnZp
Y2UiX3MsCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTc3
MTAsNyArNzcxMCw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgZ3B1TWFj
aFNlcnZpY2VzKCkKIC8vIEZJWE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJl
bW92ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCiBzdGF0aWMgY29uc3QgVmVj
dG9yPEFTQ0lJTGl0ZXJhbD4mIG1lZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcygpCiB7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBz
dGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8QVND
SUlMaXRlcmFsPiB7CiAgICAgICAgICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRQcmVm
cyJfcywgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciJfcywKICAgICAg
ICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb1F1ZXVlU2VydmVyIl9zLCAiY29tLmFwcGxlLmNvcmVt
ZWRpYS5lbmRwb2ludC54cGMiX3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmll
dy5tbQppbmRleCA0NjNmYTMzYTVjNTUxOTA5NGNiMDI0MzMxMTliZmYyODQ0ZDczNjAzLi4wMjJj
ZGM3ZmY0Mzg4NmVlNWUzYzhlYjZiY2Y0NGM5MjdjNDgwNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTEzNiw3ICsxMzYsNyBAQCAtICh2b2lkKXdlYl9z
ZXRDb250ZW50UHJvdmlkZXJEYXRhOihOU0RhdGEgKilkYXRhIHN1Z2dlc3RlZEZpbGVuYW1lOihO
U1N0cmluZyAqKQogICAgIF9zdWdnZXN0ZWRGaWxlbmFtZSA9IGFkb3B0TlMoW2ZpbGVuYW1lIGNv
cHldKTsKIAogICAgIFtQREZIb3N0Vmlld0NvbnRyb2xsZXIgY3JlYXRlSG9zdFZpZXc6W3NlbGYs
IHdlYWtTZWxmID0gV2Vha09iakNQdHI8V0tQREZWaWV3PihzZWxmKV0oUERGSG9zdFZpZXdDb250
cm9sbGVyICpob3N0Vmlld0NvbnRyb2xsZXIpIHsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICAgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICAgICAgV0tQREZW
aWV3ICphdXRvcmVsZWFzZWRTZWxmID0gd2Vha1NlbGYuZ2V0QXV0b3JlbGVhc2VkKCk7CiAgICAg
ICAgIGlmICghYXV0b3JlbGVhc2VkU2VsZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1ByaW50aW5nVmlldy5tbQppbmRleCAwNTVjNjAxZmU3ZmQ4NTdlOTMzMTUyNDM3OTM2Njkw
YzQxYzFjYzcyLi4zM2JkZGM1MzVhZTdhN2U5ZDBhODBkYjg0OWYzZDljZjg3MjYwZDI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBAIC02Myw3
ICs2Myw3IEBAIC0gKGlkKWluaXRXaXRoRnJhbWVQcm94eTooV2ViS2l0OjpXZWJGcmFtZVByb3h5
JilmcmFtZSB2aWV3OihOU1ZpZXcgKil3a1ZpZXcKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAg
Y2FsbE9uTWFpblRocmVhZChbZnJhbWUgPSBXVEZNb3ZlKF93ZWJGcmFtZSksIHByZXZpZXdzID0g
V1RGTW92ZShfcGFnZVByZXZpZXdzKV0geworICAgIGNhbGxPbk1haW5SdW5Mb29wKFtmcmFtZSA9
IFdURk1vdmUoX3dlYkZyYW1lKSwgcHJldmlld3MgPSBXVEZNb3ZlKF9wYWdlUHJldmlld3MpXSB7
CiAgICAgICAgIC8vIERlYWxsb2NhdGUgdGhlc2Ugb24gdGhlIG1haW4gdGhyZWFkLCBub3QgdGhl
IGN1cnJlbnQgdGhyZWFkLCBzaW5jZSB0aGUKICAgICAgICAgLy8gcmVmZXJlbmNlIGNvdW50aW5n
IGFuZCB0aGUgZGVzdHJ1Y3RvcnMgYXJlbid0IHRocmVhZHNhZmUuCiAgICAgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5jcHAKaW5kZXggNzY1MzM5MmIxOTM0YTJjYWI5ZTMwZjFlMzk4OTRmNGM2Njgx
NzlmNS4uNzBjNGY4MjNmM2JmNjYyNWQ1NTNjODc5MzIzYWY5ZTMxZjJkMDBkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcApAQCAtNDcsNyArNDcsNyBAQCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyJiBw
cgogCiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp+V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bigpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVu
TG9vcCgpKTsKIH0KIAogSVBDOjpDb25uZWN0aW9uJiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpjb25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMTdhZDEwMzZk
NGFiZjg4MTAzNWMzOGM0MmI3OTRmZjIwNGYyMzg4YS4uODk0ZDlkZDE5OGNhYzUyMGRkM2E0MjU3
YjUwNGNhMWM3ODRkOGZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTgxLDcg
KzgxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB3YWl0Rm9yRGlkRmx1c2hPblNlY29uZGFyeVRo
cmVhZChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIHRhcmdldEZsdXNoSWRl
bnRpZmllcikKICAgICB7Ci0gICAgICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAg
ICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9yZWNlaXZlZEZsdXNoSWRlbnRpZmllckxvY2spOwogICAgICAgICBtX3JlY2VpdmVkRmx1
c2hJZGVudGlmaWVyQ2hhbmdlZENvbmRpdGlvbi53YWl0KG1fcmVjZWl2ZWRGbHVzaElkZW50aWZp
ZXJMb2NrLCBbJl0gewogICAgICAgICAgICAgcmV0dXJuIG1fcmVjZWl2ZWRGbHVzaElkZW50aWZp
ZXIgPT0gdGFyZ2V0Rmx1c2hJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
CmluZGV4IDk3ZjdhZGEzY2ExMjllMzhhMzU1YWY5MzM2MTc1NmZjZTBlYmNjNzUuLjQ3MzA0ZjA0
ODMxZGMzYjhiYzBlZWVmYzJmYjlhMDViZTVlODBmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6bG9hZChjb25zdCBVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykK
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYg
Y29udGVudFR5CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiB7Ci0gICAgY2FsbE9uTWFpblRo
cmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKKyAgICBjYWxsT25N
YWluUnVuTG9vcChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuY3BwCmluZGV4IDAyODMzMDU0YWUwZGY4MjllMjcxYmJiZjQ4YjM4YjMz
ODY0ODRhNTkuLjAxOWVjYzFlNzRmZDlkMDVmYmU2ZDY0OGNjNGEzMjY0NDUyYmIzNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lk
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcFJlbmRlcmluZyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmCiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojpy
ZW5kZXJRdWFudHVtKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NF
UlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX2F1ZGlv
QnVmZmVyTGlzdC0+c2V0U2FtcGxlQ291bnQoV2ViQ29yZTo6QXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCmluZGV4IGYwYzMw
NDhjZjZjMDMyZGQwNDE5NGEyNDNlYmZiNDVjYWU3ZDYwNTQuLmFiOTkzNTA0YTdiNzRhYjM1ODQx
ZjU1Y2Q0ZWFkY2RjYTBjYWYwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcApA
QCAtNTYsNyArNTYsNyBAQCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudAogICAgICwgbV9sb2dJZGVu
dGlmaWVyKGhlbHBlci5sb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKIHsKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIFVOVVNFRF9Q
QVJBTShoZWxwZXIpOwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKQEAgLTcwLDcgKzcwLDcgQEAg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6flJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoKQog
CiB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNsb3NlKCkKIHsKLSAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIGlmICht
X2dwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5h
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigpLnJlbW92ZVByb3ZpZGVyKG1faWRlbnRpZmllcik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAKaW5kZXggNWJkYzI2NGQxODE5Zjk3NmJlMjk3MGM0
ZTIwOTNjNzI1OTIwYWJiOC4uN2RkYzA0ZjcxNGQ1OThjNGY2YTBhZjM3NThiNTlmYjMxNjdhZmVh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJ
bWFnZURlY29kZXJBVkYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcApAQCAtMTgzLDEwICsxODMsMTAgQEAgUGxhdGZv
cm1JbWFnZVB0ciBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4
KHNpemVfdCBpbmRleCwgU3UKICAgICAgICAgICAgIG1fZnJhbWVJbWFnZXMuYWRkKGluZGV4LCBp
bWFnZSk7CiAgICAgfTsKIAotICAgIGlmIChpc01haW5UaHJlYWQoKSkKKyAgICBpZiAoaXNNYWlu
UnVuTG9vcCgpKQogICAgICAgICBjcmVhdGVGcmFtZUltYWdlKCk7CiAgICAgZWxzZQotICAgICAg
ICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChXVEZNb3ZlKGNyZWF0ZUZyYW1lSW1hZ2UpKTsKKyAg
ICAgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoY3JlYXRlRnJhbWVJbWFnZSkp
OwogCiAgICAgaWYgKG1fZnJhbWVJbWFnZXMuY29udGFpbnMoaW5kZXgpKQogICAgICAgICByZXR1
cm4gbV9mcmFtZUltYWdlcy5nZXQoaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggODI2MjI1NDU5
MTdmMTkzNzg0NWE1ZjliNGNhMTJjYWMyYTgyZmY0Mi4uZWIzY2JiMjg2M2IzMjdiZDJjNTM0MDcx
N2QyZjBiMDhjZDJkNjc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0xODQsNyArMTg0LDcgQEAgTGli
V2ViUlRDQ29kZWNzOjp+TGliV2ViUlRDQ29kZWNzKCkKIAogdm9pZCBMaWJXZWJSVENDb2RlY3M6
OnNldENhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nlc3MpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghdXNlR1BV
UHJvY2VzcykgewogICAgICAgICB3ZWJydGM6OnNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyKTsKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lk
IExpYldlYlJUQ0NvZGVjczo6cmVnaXN0ZXJEZWNvZGVGcmFtZUNhbGxiYWNrKERlY29kZXImIGRl
Y29kZXIsIHZvaWQqIGRlY29kZQogCiB2b2lkIExpYldlYlJUQ0NvZGVjczo6ZmFpbGVkRGVjb2Rp
bmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIpCiB7Ci0gICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAgICAg
aWYgKGF1dG8qIGRlY29kZXIgPSBtX2RlY29kZXJzLmdldChkZWNvZGVySWRlbnRpZmllcikpCiAg
ICAgICAgIGRlY29kZXItPmhhc0Vycm9yID0gdHJ1ZTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lk
IExpYldlYlJUQ0NvZGVjczo6ZmFpbGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVj
b2RlcklkZW50aWZpZXIpCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGlu
ZyhSVENEZWNvZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0
YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKIHsKLSAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAK
ICAgICAvLyBGSVhNRTogRG8gZXJyb3IgbG9nZ2luZy4KICAgICBhdXRvKiBkZWNvZGVyID0gbV9k
ZWNvZGVycy5nZXQoZGVjb2RlcklkZW50aWZpZXIpOwpAQCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQg
TGliV2ViUlRDQ29kZWNzOjpzZXRFbmNvZGVSYXRlcyhFbmNvZGVyJiBlbmNvZGVyLCB1aW50MzJf
dCBiaXRSYXRlLCB1aW50MzJfCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNv
ZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2Um
JiBkYXRhLCBjb25zdCB3ZWJydGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8mIGluZm8pCiB7Ci0g
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkp
OwogCiAgICAgLy8gRklYTUU6IERvIGVycm9yIGxvZ2dpbmcuCiAgICAgYXV0byogZW5jb2RlciA9
IG1fZW5jb2RlcnMuZ2V0KGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5jcHAKaW5k
ZXggYjVmMGVhY2JlNTg5MGNiZDM0OTA1MDEyOGNkNjNjM2JkMjBlODllZC4uMzUwOWZlYWU4MDgx
YTk4M2VhMjIyY2I1YWMxZDQ5OWQ4YjE3YzdhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIExpYldlYlJUQ1Jl
c29sdmVyOjpzZW5kT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+
JiYgY2FsbGJhY2spCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0oKSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2NhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKCkgewogICAgICAgICBjYWxsYmFjayhXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpOwogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCmluZGV4IDY3ZmE0NjYyZjZm
MjI3ZDJlYTM5NzcyNjNjNGQyYzdkNzhlNzMyZWUuLmQ4OTdiYjNmMjg0NjY1YzZjMDMwNDg1Nzk1
NDJiYmM5M2JhMTNkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAg
LTc0LDcgKzc0LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFj
dG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHZvaWQKICAgICBpZiAobV9jb25uZWN0
aW9uKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92
aWRlcjo6Q3JlYXRlU2VydmVyVENQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zKSwg
MCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICBj
YWxsT25NYWluUnVuTG9vcChbXSB7CiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgfSk7CiAgICAgICAg
IG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50
aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1p
blBvcnQsIG1heFBvcnQsIG9wdGlvbnNdKGF1dG8mIGNvbm5lY3Rpb24pIHsKQEAgLTkyLDcgKzky
LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3Jl
YXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2sKICAgICBpZiAobV9jb25uZWN0aW9uKQogICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3Jl
YXRlVURQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0KSwgMCk7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbXSB7CiAg
ICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKICAgICAgICAgfSk7CiAgICAgICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5h
cHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnRdKGF1dG8mIGNv
bm5lY3Rpb24pIHsKQEAgLTExNCw3ICsxMTQsNyBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZAog
ICAgIGlmIChtX2Nvbm5lY3Rpb24pCiAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoc29ja2V0LT5pZGVu
dGlmaWVyKCksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3Mo
bG9jYWxBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1f
ZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0aW9ucy5vcHRz
KSwgMCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAg
ICBjYWxsT25NYWluUnVuTG9vcChbXSB7CiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgfSk7CiAgICAg
ICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlk
ZW50aWZpZXIoKSwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVw
YXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zKSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBh
cmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0cyA9IG9wdGlvbnMub3B0c10oYXV0byYgY29ubmVjdGlv
bikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L1dlYlJUQ01vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL1dlYlJUQ01vbml0b3IuY3BwCmluZGV4IGNhOTdhZjMwM2U3YmUyYjAzNDA4MGZjZTRmZTlh
NWZiMWMzYTRiYzMuLjI0MzM2ZjA2ODkwNTU4MmFmMGQwZWEwNTI2MTYzMTE3Mjk0YTVhZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENN
b25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDTW9uaXRvci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHZvaWQgV2ViUlRDTW9uaXRvcjo6c2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6
Q29ubmVjdGlvbiYpPiYmIGNhbGxiYWNrKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFtjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIHsKICAgICAgICAgY2FsbGJhY2soV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDZiYTBmNTVmMTI0MWZhMDc3NTBlYTRlMTQ4MDAzOWJk
MTk2Nzk2ZDAuLmYxZjQwZmZjNWY0Y2Q2MWU0YmIyMjBjNWJkYmI3Y2VmZWEzMzdhNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpA
QCAtNjU1LDggKzY1NSw4IEBAIFBERlBsdWdpbjo6flBERlBsdWdpbigpCiAjaWYgIUxPR19ESVNB
QkxFRAogdm9pZCBQREZQbHVnaW46OnBkZkxvZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0g
ICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1lc3NhZ2UgPSBtZXNzYWdlLmlzb2xh
dGVkQ29weSgpXSB7CisgICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsKKyAgICAgICAgY2FsbE9u
TWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWVzc2Fn
ZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgICAgIHBkZkxvZyhtZXNzYWdl
KTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTY2OSw3ICs2NjksNyBAQCB2b2lk
IFBERlBsdWdpbjo6cGRmTG9nKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAogdm9pZCBQREZQbHVn
aW46OmxvZ1N0cmVhbUxvYWRlcihXVEY6OlRleHRTdHJlYW0mIHN0cmVhbSwgV2ViQ29yZTo6TmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXImIGxvYWRlcikKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgYXV0byogcmVxdWVz
dCA9IGJ5dGVSYW5nZVJlcXVlc3RGb3JMb2FkZXIobG9hZGVyKTsKICAgICBzdHJlYW0gPDwgIigi
OwpAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgUERGUGx1Z2luOjpsb2dTdHJlYW1Mb2FkZXIoV1RG
OjpUZXh0U3RyZWFtJiBzdHJlYW0sIFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luCiAKIHZvaWQgUERG
UGx1Z2luOjp2ZXJib3NlTG9nKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgVGV4dFN0cmVhbSBzdHJlYW07CiAgICAg
c3RyZWFtIDw8ICJcbiI7CkBAIC03MTcsMTEgKzcxNywxMSBAQCB2b2lkIFBERlBsdWdpbjo6cmVj
ZWl2ZWROb25MaW5lYXJpemVkUERGU2VudGluZWwoKQogICAgIGlmIChtX2hhc0JlZW5EZXN0cm95
ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKKyAgICBp
ZiAoIWlzTWFpblJ1bkxvb3AoKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgcGRmTG9n
KCJEaXNhYmxpbmcgaW5jcmVtZW50YWwgUERGIGxvYWRpbmcgb24gYmFja2dyb3VuZCB0aHJlYWQi
KTsKICNlbmRpZgotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICAgICAgcmVjZWl2ZWROb25M
aW5lYXJpemVkUERGU2VudGluZWwoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTc0OCw3ICs3NDgsNyBAQCBzdGF0aWMgc2l6ZV90IGRhdGFQcm92aWRlckdldEJ5dGVzQXRQb3Np
dGlvbkNhbGxiYWNrKHZvaWQqIGluZm8sIHZvaWQqIGJ1ZmZlciwgbwogewogICAgIFJlZjxQREZQ
bHVnaW4+IHBsdWdpbiA9ICooKFBERlBsdWdpbiopaW5mbyk7CiAKLSAgICBpZiAoaXNNYWluVGhy
ZWFkKCkpIHsKKyAgICBpZiAoaXNNYWluUnVuTG9vcCgpKSB7CiAjaWYgIUxPR19ESVNBQkxFRAog
ICAgICAgICBwbHVnaW4tPnBkZkxvZyhtYWtlU3RyaW5nKCJIYW5kbGluZyByZXF1ZXN0IGZvciAi
LCBjb3VudCwgIiBieXRlcyBhdCBwb3NpdGlvbiAiLCBwb3NpdGlvbiwgIiBzeW5jaHJvbm91c2x5
IG9uIHRoZSBtYWluIHRocmVhZCIpKTsKICNlbmRpZgpAQCAtNzk5LDcgKzc5OSw3IEBAIHN0YXRp
YyBzaXplX3QgZGF0YVByb3ZpZGVyR2V0Qnl0ZXNBdFBvc2l0aW9uQ2FsbGJhY2sodm9pZCogaW5m
bywgdm9pZCogYnVmZmVyLCBvCiAKIHN0YXRpYyB2b2lkIGRhdGFQcm92aWRlckdldEJ5dGVSYW5n
ZXNDYWxsYmFjayh2b2lkKiBpbmZvLCBDRk11dGFibGVBcnJheVJlZiBidWZmZXJzLCBjb25zdCBD
RlJhbmdlKiByYW5nZXMsIHNpemVfdCBjb3VudCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICNpZiAhTE9HX0RJU0FCTEVE
CiAgICAgUmVmPFBERlBsdWdpbj4gZGVidWdQbHVnaW5SZWYgPSAqKChQREZQbHVnaW4qKWluZm8p
OwpAQCAtODQ2LDcgKzg0Niw3IEBAIHN0YXRpYyB2b2lkIGRhdGFQcm92aWRlckdldEJ5dGVSYW5n
ZXNDYWxsYmFjayh2b2lkKiBpbmZvLCBDRk11dGFibGVBcnJheVJlZiBidWZmCiAKIHN0YXRpYyB2
b2lkIGRhdGFQcm92aWRlclJlbGVhc2VJbmZvQ2FsbGJhY2sodm9pZCogaW5mbykKIHsKLSAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAg
ICAgYWRvcHRSZWYoKFBERlBsdWdpbiopaW5mbyk7CiB9CiAKQEAgLTg3MSw3ICs4NzEsNyBAQCB2
b2lkIFBERlBsdWdpbjo6dGhyZWFkRW50cnkoUmVmPFBERlBsdWdpbj4mJiBwcm90ZWN0ZWRQbHVn
aW4pCiAgICAgYXV0byBzY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFtwcm90ZWN0ZWRQbHVnaW4g
PSBXVEZNb3ZlKHByb3RlY3RlZFBsdWdpbildICgpIG11dGFibGUgewogICAgICAgICAvLyBLZWVw
IHRoZSBQREZQbHVnaW4gYWxpdmUgdW50aWwgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uIGFuZCB0
aGUgZW5kCiAgICAgICAgIC8vIG9mIHRoZSBsYXN0IG1haW4gdGhyZWFkIHRhc2sgc3VibWl0dGVk
IGJ5IHRoaXMgZnVuY3Rpb24uCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFBs
dWdpbiA9IFdURk1vdmUocHJvdGVjdGVkUGx1Z2luKV0geyB9KTsKKyAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW3Byb3RlY3RlZFBsdWdpbiA9IFdURk1vdmUocHJvdGVjdGVkUGx1Z2luKV0geyB9
KTsKICAgICB9KTsKIAogICAgIC8vIEJhbGFuY2VkIGJ5IGEgZGVyZWYgaW5zaWRlIG9mIHRoZSBk
YXRhUHJvdmlkZXJSZWxlYXNlSW5mb0NhbGxiYWNrCkBAIC04OTksNyArODk5LDcgQEAgdm9pZCBQ
REZQbHVnaW46OnRocmVhZEVudHJ5KFJlZjxQREZQbHVnaW4+JiYgcHJvdGVjdGVkUGx1Z2luKQog
CiAgICAgW21fYmFja2dyb3VuZFRocmVhZERvY3VtZW50IHByZWxvYWREYXRhT2ZQYWdlc0luUmFu
Z2U6TlNNYWtlUmFuZ2UoMCwgMSkgb25RdWV1ZTpmaXJzdFBhZ2VRdWV1ZS0+ZGlzcGF0Y2hRdWV1
ZSgpIGNvbXBsZXRpb246WyZmaXJzdFBhZ2VTZW1hcGhvcmUsIHRoaXNdIChOU0luZGV4U2V0ICop
IG11dGFibGUgewogICAgICAgICBpZiAobV9pbmNyZW1lbnRhbFBERkxvYWRpbmdFbmFibGVkKSB7
Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7CisgICAgICAgICAgICBjYWxs
T25NYWluUnVuTG9vcChbdGhpc10gewogICAgICAgICAgICAgICAgIGFkb3B0QmFja2dyb3VuZFRo
cmVhZERvY3VtZW50KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSBlbHNlCkBAIC05MjQs
NyArOTI0LDcgQEAgdm9pZCBQREZQbHVnaW46OnVuY29uZGl0aW9uYWxDb21wbGV0ZU91dHN0YW5k
aW5nUmFuZ2VSZXF1ZXN0cygpCiAKIHNpemVfdCBQREZQbHVnaW46OmdldFJlc291cmNlQnl0ZXNB
dFBvc2l0aW9uTWFpblRocmVhZCh2b2lkKiBidWZmZXIsIG9mZl90IHBvc2l0aW9uLCBzaXplX3Qg
Y291bnQpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9kb2N1bWVudEZpbmlzaGVkTG9hZGluZyk7CiAgICAg
QVNTRVJUKHBvc2l0aW9uID49IDApOwogCkBAIC05NDMsNyArOTQzLDcgQEAgc2l6ZV90IFBERlBs
dWdpbjo6Z2V0UmVzb3VyY2VCeXRlc0F0UG9zaXRpb25NYWluVGhyZWFkKHZvaWQqIGJ1ZmZlciwg
b2ZmX3QgcG9zaXQKIAogdm9pZCBQREZQbHVnaW46OmdldFJlc291cmNlQnl0ZXNBdFBvc2l0aW9u
KHNpemVfdCBjb3VudCwgb2ZmX3QgcG9zaXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgdWludDhfdCosIHNpemVfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsgCisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNT
RVJUKHBvc2l0aW9uID49IDApOwogCiAgICAgQnl0ZVJhbmdlUmVxdWVzdCByZXF1ZXN0ID0geyBz
dGF0aWNfY2FzdDx1aW50NjRfdD4ocG9zaXRpb24pLCBjb3VudCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikgfTsKQEAgLTEwMDIsNyArMTAwMiw3IEBAIHZvaWQgUERGUGx1Z2luOjphZG9wdEJh
Y2tncm91bmRUaHJlYWREb2N1bWVudCgpCiAKICAgICBBU1NFUlQoIW1fcGRmRG9jdW1lbnQpOwog
ICAgIEFTU0VSVChtX2JhY2tncm91bmRUaHJlYWREb2N1bWVudCk7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogI2lmICFMT0dfRElT
QUJMRUQKICAgICBwZGZMb2coIkFkb3B0aW5nIFBERkRvY3VtZW50IGZyb20gYmFja2dyb3VuZCB0
aHJlYWQiKTsKQEAgLTE2MTAsNyArMTYxMCw3IEBAIHZvaWQgUERGUGx1Z2luOjpkb2N1bWVudERh
dGFEaWRGaW5pc2hMb2FkaW5nKCkKIHZvaWQgUERGUGx1Z2luOjppbnN0YWxsUERGRG9jdW1lbnQo
KQogewogICAgIEFTU0VSVChtX3BkZkRvY3VtZW50KTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIExPRyhJbmNyZW1lbnRhbFBE
RiwgIkluc3RhbGxpbmcgUERGIGRvY3VtZW50Iik7CiAKICAgICBpZiAobV9oYXNCZWVuRGVzdHJv
eWVkKQpAQCAtMTc2MCw3ICsxNzYwLDcgQEAgdm9pZCBQREZQbHVnaW46Om1hbnVhbFN0cmVhbURp
ZEZhaWwoYm9vbCkKIAogdm9pZCBQREZQbHVnaW46OnRyeVJ1blNjcmlwdHNJblBERkRvY3VtZW50
KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5M
b29wKCkpOwogCiAgICAgaWYgKCFtX3BkZkRvY3VtZW50IHx8ICFtX2RvY3VtZW50RmluaXNoZWRM
b2FkaW5nKQogICAgICAgICByZXR1cm47CkBAIC0xNzgxLDEyICsxNzgxLDEyIEBAIHZvaWQgUERG
UGx1Z2luOjp0cnlSdW5TY3JpcHRzSW5QREZEb2N1bWVudCgpCiAgICAgYXV0byYgcmF3UXVldWUg
PSBzY3JpcHRVdGlsaXR5UXVldWUuZ2V0KCk7CiAgICAgUmV0YWluUHRyPENHUERGRG9jdW1lbnRS
ZWY+IGRvY3VtZW50ID0gW21fcGRmRG9jdW1lbnQgZG9jdW1lbnRSZWZdOwogICAgIHJhd1F1ZXVl
LmRpc3BhdGNoKFtzY3JpcHRVdGlsaXR5UXVldWUgPSBXVEZNb3ZlKHNjcmlwdFV0aWxpdHlRdWV1
ZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGRvY3Vt
ZW50ID0gV1RGTW92ZShkb2N1bWVudCldICgpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKKyAgICAgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAgICAg
ICAgIFZlY3RvcjxSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+PiBzY3JpcHRzOwogICAgICAgICBnZXRB
bGxTY3JpcHRzSW5QREZEb2N1bWVudChkb2N1bWVudC5nZXQoKSwgc2NyaXB0cyk7CiAKLSAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2NyaXB0cyA9IFdURk1vdmUoc2NyaXB0cyldICgpIG11dGFibGUgeworICAg
ICAgICBjYWxsT25NYWluUnVuTG9vcChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2NyaXB0cyA9IFdURk1vdmUoc2NyaXB0cyldICgpIG11dGFibGUgewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzY3JpcHRzKSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNWJkZjk0MTQyMmU0ZjM1NTkw
M2Q4ODEzZDg4ZTgzZjFkNTFiMmZjMy4uMTNmM2I5NjY1ZTgzNWU5NjRlYmQwZTI2NGJmNDcwMjE1
M2ExMWNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCkKIAogdm9p
ZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmRpZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1h
dGNoaW5nUmVxdWVzdCwgT3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYg
cmVzdWx0KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CiAKICAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1fb25nb2lu
Z01hdGNoUmVnaXN0cmF0aW9uVGFza3MudGFrZShtYXRjaGluZ1JlcXVlc3QpKQogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIHZv
aWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRNYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBt
YXRjaGluZ1JlcXVlc3QsIE9wdGlvCiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRH
ZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IG1hdGNoaW5nUmVxdWVzdCwgVmVjdG9yPFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmIHJlZ2lzdHJhdGlvbnMpCiB7Ci0gICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmIChh
dXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbV9vbmdvaW5nR2V0UmVnaXN0cmF0aW9uc1Rhc2tzLnRh
a2UobWF0Y2hpbmdSZXF1ZXN0KSkKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShy
ZWdpc3RyYXRpb25zKSk7CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OmRpZEdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgbWF0Y2hpbmdSZXF1ZXN0LCBWZWN0
b3IKIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKFNlY3Vy
aXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJh
dGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghbWF5SGF2ZVNlcnZpY2VX
b3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKHRvcE9yaWdpbikpIHsKICAgICAgICAgY2FsbGJhY2so
V1RGOjpudWxsb3B0KTsKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6c2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQoRG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50
SQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhTZWN1cml0
eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3Ry
YXRpb25zQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgaWYgKCFtYXlIYXZlU2Vydmlj
ZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4odG9wT3JpZ2luKSkgewogICAgICAgICBjYWxsYmFj
ayh7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCA5MTA1
YTMxMWU1ZmFhMmFlYmI5NDcxNGIzZDBjYzA5NjNhYzE3OGMwLi4yNmZjNmM1ODE3MDQ3ZDgyZWRi
Mjk5NmI1MDg0YjljOTBkMjY0MmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50LmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGJsb2JVUkwgPSBibG9iVVJMLmlzb2xhdGVkQ29weSgp
XSAoKSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgYmxvYlVSTCA9IGJsb2JVUkwuaXNvbGF0ZWRDb3B5KCldICgpIHsKICAgICAg
ICAgYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2lu
Z2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KG1fc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpOwogICAgICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewogICAgICAgICAg
ICAgZGlkRmFpbChpbnRlcm5hbEVycm9yKGJsb2JVUkwpKTsKQEAgLTIyMiw4ICsyMjIsOCBAQCB2
b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNsZWFudXAoKQogewogICAgIG1f
Y29ubmVjdGlvbiA9IG51bGxwdHI7CiAKLSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkg
eworICAgIGlmICghaXNNYWluUnVuTG9vcCgpKSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29w
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIHsKICAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPmNsZWFudXAoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApp
bmRleCBiOGMwN2I4YzI1NDA2MmRhZmJmZDNjYzY4NDIyNzFmYWRmNzYxMzI1Li4wMDkwMTRhNTM2
YmY5ZDY4ZGZiZTVkYTE0MGRkYjUxN2FlYWNkMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC01NDIsNyArNTQyLDcg
QEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkmLCBHcmFwaGljc0Nv
bnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY28KIAogICAgICAgICBpZiAoZmluZEluZGljYXRvclJl
Y3QgIT0gbV9maW5kSW5kaWNhdG9yUmVjdCkgewogICAgICAgICAgICAgLy8gV2UgYXJlIHVuZGVy
bmVhdGggcGFpbnRpbmcsIHNvIGl0J3Mgbm90IHNhZmUgdG8gbXV0YXRlIHRoZSBsYXllciB0cmVl
IHN5bmNocm9ub3VzbHkuCi0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrV2ViUGFn
ZSA9IG1ha2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFt3ZWFrV2ViUGFnZSA9IG1ha2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKICAgICAgICAgICAg
ICAgICBpZiAoIXdlYWtXZWJQYWdlKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgICAgd2Vha1dlYlBhZ2UtPmZpbmRDb250cm9sbGVyKCkuZGlkU2Nyb2xsQWZmZWN0
aW5nRmluZEluZGljYXRvclBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDQzOTRjYzU3NjJmOTViZWI4MGYwMzcwYzNmMTg2MDBk
NjdkZDU1OGQuLmZmZTc5YWM2MzlkOTMwOTA1MWZkY2MxM2RkNmZhYThiNzNlZWUxNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01OTE1LDcg
KzU5MTUsNyBAQCB2b2lkIFdlYlBhZ2U6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQpCiB7CiAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgPT0gJmVsZW1lbnQpIHsKICAg
ICAgICAgbV9yZWNlbnRseUJsdXJyZWRFbGVtZW50ID0gV1RGTW92ZShtX2ZvY3VzZWRFbGVtZW50
KTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
dGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmUHRyKHRoaXMpXSB7CiAgICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9yZWNlbnRs
eUJsdXJyZWRFbGVtZW50KSB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVsZW1lbnRE
aWRCbHVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQppbmRleCA1MmQ4ZjFkOTE3YTk3ZjliOTNhNmU1MWM3YjJjYmIxMWY4Njgw
YmIzLi5hNWE1MGQyOWRiMDcxMDVmOWQwODQ3NzA1Zjc0ZjE3MTA5MzJlMGM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAt
NzkwLDcgKzc5MCw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSYg
bm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgY29udGVudENoYW5nZU9ic2VydmVyLnN0b3BDb250ZW50T2JzZXJ2YXRpb24o
KTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlz
KSwgdGFyZ2V0Tm9kZSA9IFJlZjxOb2RlPihub2RlUmVzcG9uZGluZ1RvQ2xpY2spLCBsb2NhdGlv
biwgbW9kaWZpZXJzLCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UsIHBvaW50ZXJJZF0geworICAgIGNh
bGxPbk1haW5SdW5Mb29wKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGFyZ2V0
Tm9kZSA9IFJlZjxOb2RlPihub2RlUmVzcG9uZGluZ1RvQ2xpY2spLCBsb2NhdGlvbiwgbW9kaWZp
ZXJzLCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UsIHBvaW50ZXJJZF0gewogICAgICAgICBpZiAocHJv
dGVjdGVkVGhpcy0+bV9pc0Nsb3NlZCB8fCAhcHJvdGVjdGVkVGhpcy0+Y29yZVBhZ2UoKSkKICAg
ICAgICAgICAgIHJldHVybjsKIApAQCAtODExLDcgKzgxMSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
RmluaXNoQ29udGVudENoYW5nZU9ic2VydmluZyhXS0NvbnRlbnRDaGFuZ2Ugb2JzZXJ2ZWRDb250
ZW50Q2hhCiAgICAgTE9HX1dJVEhfU1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8
ICJkaWRGaW5pc2hDb250ZW50Q2hhbmdlT2JzZXJ2aW5nOiBwZW5kaW5nIHRhcmdldCBub2RlKCIg
PDwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlIDw8ICIpIik7CiAgICAgaWYgKCFtX3BlbmRp
bmdTeW50aGV0aWNDbGlja05vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBjYWxsT25NYWluVGhy
ZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGFyZ2V0Tm9kZSA9IFJlZjxO
b2RlPigqbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlKSwgb3JpZ2luYWxEb2N1bWVudCA9IG1h
a2VXZWFrUHRyKG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZS0+ZG9jdW1lbnQoKSksIG9ic2Vy
dmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja0xvY2F0
aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlmaWVycywgcG9pbnRl
cklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWRdIHsKKyAgICBjYWxsT25NYWlu
UnVuTG9vcChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRhcmdldE5vZGUgPSBS
ZWY8Tm9kZT4oKm1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSksIG9yaWdpbmFsRG9jdW1lbnQg
PSBtYWtlV2Vha1B0cihtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUtPmRvY3VtZW50KCkpLCBv
YnNlcnZlZENvbnRlbnRDaGFuZ2UsIGxvY2F0aW9uID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tM
b2NhdGlvbiwgbW9kaWZpZXJzID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMsIHBv
aW50ZXJJZCA9IG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrUG9pbnRlcklkXSB7CiAgICAgICAgIGlm
IChwcm90ZWN0ZWRUaGlzLT5tX2lzQ2xvc2VkIHx8ICFwcm90ZWN0ZWRUaGlzLT5jb3JlUGFnZSgp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoIW9yaWdpbmFsRG9jdW1lbnQgfHwg
JnRhcmdldE5vZGUtPmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudCkKQEAgLTEyMzgsNyAr
MTIzOCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlSW5wdXRDb250ZXh0QWZ0ZXJCbHVycmluZ0Fu
ZFJlZm9jdXNpbmdFbGVtZW50SWZOZWVkZWQoRWxlbWVuCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1faGFzUGVuZGluZ0lucHV0Q29udGV4dFVwZGF0ZUFmdGVyQmx1cnJpbmdBbmRSZWZvY3VzaW5n
RWxlbWVudCA9IHRydWU7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWZQdHIodGhpcyldIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyldIHsKICAgICAgICAgaWYgKG1faGFzUGVuZGlu
Z0lucHV0Q29udGV4dFVwZGF0ZUFmdGVyQmx1cnJpbmdBbmRSZWZvY3VzaW5nRWxlbWVudCkKICAg
ICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VXBkYXRlSW5wdXRDb250ZXh0
QWZ0ZXJCbHVycmluZ0FuZFJlZm9jdXNpbmdFbGVtZW50KCkpOwogICAgICAgICBtX2hhc1BlbmRp
bmdJbnB1dENvbnRleHRVcGRhdGVBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnQgPSBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9E
cmF3aW5nQXJlYU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
RHJhd2luZ0FyZWFNYWMuY3BwCmluZGV4IDc4YzI5M2Q4MGFmNjQ3N2Q0OTZhMGY5N2YyN2NiY2Nm
OTQyMzExZTMuLjAzMDAyYTAxMTZkMGI5NTA0NGIzNDVjZjA2MmIzYzVhMjg2MTM3ZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1h
Yy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdB
cmVhTWFjLmNwcApAQCAtOTMsNyArOTMsNyBAQCBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yzo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpCiAKIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIGlmICghbV9maXJzdENhbGxiYWNrSW5D
dXJyZW50UnVubG9vcCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZmlyc3RDYWxsYmFja0luQ3Vy
cmVudFJ1bmxvb3AgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0QmFzZS5tbQppbmRleCBiZGYwYjQ4NTVkNDI5OTk1YTE4MDYxN2VjNjZlZTFlYTYyNjE4MmNi
Li44NzFhNzM0MDM4MzU5MDAzZDkxOWQwYjA4MzMxYTgxMDExMmRhNGVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdEJhc2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tCkBAIC00OCw3ICs0OCw3IEBAIEBp
bXBsZW1lbnRhdGlvbiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZQogCiAtIChOYWtl
ZFB0cjxXZWJDb3JlOjpBWE9iamVjdENhY2hlPilheE9iamVjdENhY2hlCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlm
ICghbV9wYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTY2LDcgKzY2LDcgQEAgLSAo
TmFrZWRQdHI8V2ViQ29yZTo6QVhPYmplY3RDYWNoZT4pYXhPYmplY3RDYWNoZQogCiAtIChpZClh
Y2Nlc3NpYmlsaXR5UGx1Z2luT2JqZWN0CiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIHJldHJpZXZlQmxvY2sgPSBb
JnNlbGZdKCkgLT4gaWQgewogICAgICAgICBpZCBheFBsdWdpbiA9IG5pbDsKICAgICAgICAgYXV0
byBkaXNwYXRjaEJsb2NrID0gWyZheFBsdWdpbiwgJnNlbGZdIHsKQEAgLTc0LDEwICs3NCwxMCBA
QCAtIChpZClhY2Nlc3NpYmlsaXR5UGx1Z2luT2JqZWN0CiAgICAgICAgICAgICAgICAgYXhQbHVn
aW4gPSBzZWxmLT5tX3BhZ2UtPmFjY2Vzc2liaWxpdHlPYmplY3RGb3JNYWluRnJhbWVQbHVnaW4o
KTsKICAgICAgICAgfTsKIAotICAgICAgICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgIGlm
IChpc01haW5SdW5Mb29wKCkpCiAgICAgICAgICAgICBkaXNwYXRjaEJsb2NrKCk7CiAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZkaXNwYXRjaEJs
b2NrXSB7CisgICAgICAgICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZkaXNwYXRjaEJs
b2NrXSB7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hCbG9jaygpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0KQEAgLTEwNyw3ICsxMDcsNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdE9i
amVjdFdyYXBwZXIKIAogLSAodm9pZClzZXRXZWJQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBh
Z2U+KXBhZ2UKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01h
aW5SdW5Mb29wKCkpOwogCiAgICAgbV9wYWdlID0gcGFnZTsKIApAQCAtMTI0LDEzICsxMjQsMTMg
QEAgLSAodm9pZClzZXRXZWJQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2U+KXBhZ2UKIAog
LSAodm9pZClzZXRIYXNNYWluRnJhbWVQbHVnaW46KGJvb2wpaGFzUGx1Z2luCiB7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBt
X2hhc01haW5GcmFtZVBsdWdpbiA9IGhhc1BsdWdpbjsKIH0KIAogLSAodm9pZClzZXRSZW1vdGVQ
YXJlbnQ6KGlkKXBhcmVudAogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNT
RVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgbV9wYXJlbnQgPSBwYXJlbnQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcAppbmRleCA1OTY0OTFkMDY4NWM4NmMxYjc3NjJhYTUwYWE0ZmY0YjMx
ZTVlYjI0Li4zYjJkZGZhMjgzN2FkZDE2NzhmNjA5YjE0MWE3MWFhMWJlMjQ2NmY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWEKIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpyZW1vdGVBdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzaXplKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNN
YWluUnVuTG9vcCgpKTsKICAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgZGF0YSwgZGVz
Y3JpcHRpb24sIHNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCmlu
ZGV4IDhmYWVkYjU2NDQ5NGRmMTZkZmQ3MWY2MDgyNGIxNTRkNTU3ZjVhZGQuLjk1YmJkNTQ4M2Nm
ZWExN2M5MTJlZDViNWYxM2Y0MzFmYWUzNzEyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHkuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSgpCiAKIElQQzo6Q29ubmVjdGlvbiog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojpjb25uZWN0aW9uKCkKIHsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQog
ICAgICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBhY2IzMjg0NTJhMjM1OTZhZjExYjg3ZmFjMjZjZWY5YWY3
OTEwNjIuLjczN2I4YzE3Yjc3NTRjODQyOGQ3OTRmZTA0ODM1MGRkZGZlNTEyNjMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAyMS0wMy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFN0b3AgdXNpbmcgY2FsbE9uTWFpblRocmVhZCgpIC8gaXNNYWluVGhyZWFkKCkgaW4gV2ViS2l0
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNv
cnJlc3BvbmRpbmcgc3R5bGUgY2hlY2tlciBydWxlcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXJzL2NwcC5weToKKyAgICAgICAgKGNoZWNrX25vX2NhbGxvbm1haW50aHJlYWQpOgor
ICAgICAgICAoY2hlY2tfbm9faXNtYWludGhyZWFkKToKKyAgICAgICAgKGNoZWNrX3N0eWxlKToK
KyAgICAgICAgKENwcENoZWNrZXIpOgorCiAyMDIxLTAzLTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXVtXZWJSVENdIFZpZGVv
RW5jb2RlciBzdGlsbCBkb2Vzbid0IGNvbXBseSB3aXRoIFdlYktpdCBzdHlsZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CmluZGV4IDNmNGU4N2Q3YmY4NDdmY2EwMWZjZTMw
MjlmZjEzZjAzYjAwNzYwMWMuLmE2ODc1NzJlMzY0ZWY3MDQ5MzJmN2EwMDhhYjFjNjA2NGI5NjFi
MjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKQEAgLTI0Miw2ICsy
NDIsMTggQEAgX1BBVEhfUlVMRVNfU1BFQ0lGSUVSID0gWwogICAgICBbIi1yZWFkYWJpbGl0eS9u
YW1pbmciLAogICAgICAgIi1yZWFkYWJpbGl0eS9lbnVtX2Nhc2luZyJdKSwKIAorICAgICMgV2Ug
c2hvdWxkIGJlIHVzaW5nIGNhbGxPbk1haW5SdW5Mb29wKCkgaW5zdGVhZCBvZiBjYWxsT25NYWlu
VGhyZWFkKCkgaW4gU291cmNlL1dlYktpdC4KKyAgICAoW29zLnBhdGguam9pbignU291cmNlJywg
J1RoaXJkUGFydHknKSwKKyAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dURicpLAorICAg
ICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViQ29yZScpLAorICAgICAgb3MucGF0aC5qb2lu
KCdTb3VyY2UnLCAnV2ViRHJpdmVyJyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdX
ZWJJbnNwZWN0b3JVSScpLAorICAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0TGVn
YWN5JyksCisgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdibWFsbG9jJyksCisgICAgICAn
VG9vbHMnXSwKKyAgICAgWyItcnVudGltZS9ub19jYWxsb25tYWludGhyZWFkIiwKKyAgICAgICIt
cnVudGltZS9ub19pc21haW50aHJlYWQiXSksCisKICAgICAjIEZvciB0aGlyZC1wYXJ0eSBjb2Rl
LCBrZWVwIG9ubHkgdGhlIGZvbGxvd2luZyBjaGVja3MtLQogICAgICMKICAgICAjICAgTm8gdGFi
czogdG8gYXZvaWQgaGF2aW5nIHRvIHNldCB0aGUgU1ZOIGFsbG93LXRhYnMgcHJvcGVydHkuCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CmluZGV4IDQ0NzRi
YjAyNDFjNGExZDkyYWZjYWFjNWY2NGU4ZWFiNzJmNWNiMWMuLjdmNzUyMWNiNTM2N2MzZjZkZjll
Y2Y4ZTMzNjdhNDU0ZGQ3MDVjOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvY3BwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvY3BwLnB5CkBAIC0yNzIzLDYgKzI3MjMsNDUgQEAgZGVmIGNoZWNrX3d0Zl9vcHRp
b25hbChjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUsIGVycm9yKToKICAgICBl
cnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvd3RmX29wdGlvbmFsJywgNCwgIlVzZSAnV1RGOjpP
cHRpb25hbDw+JyBpbnN0ZWFkIG9mICdzdGQ6Om9wdGlvbmFsPD4nLiIpCiAKIAorZGVmIGNoZWNr
X25vX2NhbGxvbm1haW50aHJlYWQoY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRl
LCBlcnJvcik6CisgICAgIiIiTG9va3MgZm9yIHVzZSBvZiAnY2FsbE9uTWFpblRocmVhZCgpJyB3
aGljaCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCAnY2FsbE9uTWFpblJ1bkxvb3AoKScuCisKKyAg
ICBBcmdzOgorICAgICAgY2xlYW5fbGluZXM6IEEgQ2xlYW5zZWRMaW5lcyBpbnN0YW5jZSBjb250
YWluaW5nIHRoZSBmaWxlLgorICAgICAgbGluZV9udW1iZXI6IFRoZSBudW1iZXIgb2YgdGhlIGxp
bmUgdG8gY2hlY2suCisgICAgICBmaWxlX3N0YXRlOiBBIF9GaWxlU3RhdGUgaW5zdGFuY2Ugd2hp
Y2ggbWFpbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0CisgICAgICAgICAgICAgICAgICB0aGUgc3Rh
dGUgb2YgdGhpbmdzIGluIHRoZSBmaWxlLgorICAgICAgZXJyb3I6IFRoZSBmdW5jdGlvbiB0byBj
YWxsIHdpdGggYW55IGVycm9ycyBmb3VuZC4KKyAgICAiIiIKKworICAgIGxpbmUgPSBjbGVhbl9s
aW5lcy5lbGlkZWRbbGluZV9udW1iZXJdICAjIEdldCByaWQgb2YgY29tbWVudHMgYW5kIHN0cmlu
Z3MuCisgICAgdXNpbmdfY2FsbG9ubWFpbnRocmVhZCA9IHNlYXJjaChyJ1xiY2FsbE9uTWFpblRo
cmVhZFxzKlwoJywgbGluZSkKKyAgICBpZiB1c2luZ19jYWxsb25tYWludGhyZWFkOgorICAgICAg
ICBlcnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvbm9fY2FsbG9ubWFpbnRocmVhZCcsIDQsICJV
c2UgJ2NhbGxPbk1haW5SdW5Mb29wKCknIGluc3RlYWQgb2YgJ2NhbGxPbk1haW5UaHJlYWQoKScg
aW4gU291cmNlL1dlYktpdC4iKQorICAgIHVzaW5nX2NhbGxvbm1haW50aHJlYWRhbmR3YWl0ID0g
c2VhcmNoKHInXGJjYWxsT25NYWluVGhyZWFkQW5kV2FpdFxzKlwoJywgbGluZSkKKyAgICBpZiB1
c2luZ19jYWxsb25tYWludGhyZWFkYW5kd2FpdDoKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIs
ICdydW50aW1lL25vX2NhbGxvbm1haW50aHJlYWQnLCA0LCAiVXNlICdjYWxsT25NYWluUnVuTG9v
cEFuZFdhaXQoKScgaW5zdGVhZCBvZiAnY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoKScgaW4gU291
cmNlL1dlYktpdC4iKQorCisKK2RlZiBjaGVja19ub19pc21haW50aHJlYWQoY2xlYW5fbGluZXMs
IGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJvcik6CisgICAgIiIiTG9va3MgZm9yIHVzZSBv
ZiAnaXNNYWluVGhyZWFkKCknIHdoaWNoIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoICdpc01haW5S
dW5Mb29wKCknLgorCisgICAgQXJnczoKKyAgICAgIGNsZWFuX2xpbmVzOiBBIENsZWFuc2VkTGlu
ZXMgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgZmlsZS4KKyAgICAgIGxpbmVfbnVtYmVyOiBUaGUg
bnVtYmVyIG9mIHRoZSBsaW5lIHRvIGNoZWNrLgorICAgICAgZmlsZV9zdGF0ZTogQSBfRmlsZVN0
YXRlIGluc3RhbmNlIHdoaWNoIG1haW50YWlucyBpbmZvcm1hdGlvbiBhYm91dAorICAgICAgICAg
ICAgICAgICAgdGhlIHN0YXRlIG9mIHRoaW5ncyBpbiB0aGUgZmlsZS4KKyAgICAgIGVycm9yOiBU
aGUgZnVuY3Rpb24gdG8gY2FsbCB3aXRoIGFueSBlcnJvcnMgZm91bmQuCisgICAgIiIiCisKKyAg
ICBsaW5lID0gY2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVtYmVyXSAgIyBHZXQgcmlkIG9mIGNv
bW1lbnRzIGFuZCBzdHJpbmdzLgorICAgIHVzaW5nX2lzbWFpbnRocmVhZCA9IHNlYXJjaChyJ1xi
aXNNYWluVGhyZWFkXHMqXCgnLCBsaW5lKQorICAgIGlmIG5vdCB1c2luZ19pc21haW50aHJlYWQ6
CisgICAgICAgIHJldHVybgorCisgICAgZXJyb3IobGluZV9udW1iZXIsICdydW50aW1lL25vX2lz
bWFpbnRocmVhZCcsIDQsICJVc2UgJ2lzTWFpblJ1bkxvb3AoKScgaW5zdGVhZCBvZiAnaXNNYWlu
VGhyZWFkKCknIGluIFNvdXJjZS9XZWJLaXQuIikKKworCiBkZWYgY2hlY2tfd3RmX21ha2VfdW5p
cXVlKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgogICAgICIi
Ikxvb2tzIGZvciB1c2Ugb2YgJ3N0ZDo6bWFrZV91bmlxdWU8Picgd2hpY2ggc2hvdWxkIGJlIHJl
cGxhY2VkIHdpdGggJ1dURjo6bWFrZVVuaXF1ZTw+Jy4KIApAQCAtMzM1Miw2ICszMzkxLDggQEAg
ZGVmIGNoZWNrX3N0eWxlKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9leHRlbnNpb24s
IGNsYXNzX3N0YXRlLCBmaWxlX3N0YXQKICAgICBjaGVja193dGZfY2hlY2tlZF9zaXplKGNsZWFu
X2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpCiAgICAgY2hlY2tfd3RmX21v
dmUoY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJvcikKICAgICBjaGVj
a193dGZfb3B0aW9uYWwoY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBmaWxlX3N0YXRlLCBlcnJv
cikKKyAgICBjaGVja19ub19jYWxsb25tYWludGhyZWFkKGNsZWFuX2xpbmVzLCBsaW5lX251bWJl
ciwgZmlsZV9zdGF0ZSwgZXJyb3IpCisgICAgY2hlY2tfbm9faXNtYWludGhyZWFkKGNsZWFuX2xp
bmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpCiAgICAgY2hlY2tfd3RmX21ha2Vf
dW5pcXVlKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpCiAgICAg
Y2hlY2tfd3RmX25ldmVyX2Rlc3Ryb3llZChjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVf
c3RhdGUsIGVycm9yKQogICAgIGNoZWNrX2xvY2tfZ3VhcmQoY2xlYW5fbGluZXMsIGxpbmVfbnVt
YmVyLCBmaWxlX3N0YXRlLCBlcnJvcikKQEAgLTQ1NTksNiArNDYwMCw4IEBAIGNsYXNzIENwcENo
ZWNrZXIob2JqZWN0KToKICAgICAgICAgJ3J1bnRpbWUvbG9ja19ndWFyZCcsCiAgICAgICAgICdy
dW50aW1lL21heF9taW5fbWFjcm9zJywKICAgICAgICAgJ3J1bnRpbWUvbWVtc2V0JywKKyAgICAg
ICAgJ3J1bnRpbWUvbm9fY2FsbG9ubWFpbnRocmVhZCcsCisgICAgICAgICdydW50aW1lL25vX2lz
bWFpbnRocmVhZCcsCiAgICAgICAgICdydW50aW1lL29uY2VfZmxhZycsCiAgICAgICAgICdydW50
aW1lL3ByaW50ZicsCiAgICAgICAgICdydW50aW1lL3ByaW50Zl9mb3JtYXQnLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422737</attachid>
            <date>2021-03-09 11:52:38 -0800</date>
            <delta_ts>2021-03-09 14:07:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222986-20210309115237.patch</filename>
            <type>text/plain</type>
            <size>83474</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkzZjQxNzAzNTA4MTVjNWU4YzdmMDIw
Mzc3ODZmZjRlMmQyZDVkNTAuLjg2ZDA4NzcyMDNiNDUzYTgyMGRmYjIyYjM3Nzg5NzkzMDM4N2Jl
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDMtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIGNhbGxPbk1haW5UaHJlYWQoKSAvIGlz
TWFpblRocmVhZCgpIGluIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKwogMjAyMS0wMy0wOCAgU2FtIFdl
aW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHF1aXJrcyBmb3IgdGhl
IG5vIGxvbmdlciBzdXBwb3J0ZWQgaUFkIFByb2R1Y2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIwYmIxNGViNzhm
MmU4Y2JmOTcyOGMwZDJkNDZhODgzZDRkNmY1NDkuLjI5ODMxMTc5MDdmNGVkYzE4ZDJhYjgyZWU5
N2UwNzkxYzgzZGY2NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTc0IEBACisyMDIxLTAzLTA5ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2luZyBjYWxs
T25NYWluVGhyZWFkKCkgLyBpc01haW5UaHJlYWQoKSBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5ODYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgY2FsbE9uTWFpblJ1bkxvb3Ao
KSAvIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdCgpIC8gaXNNYWluUnVuTG9vcCgpIGluIFdlYktp
dDIKKyAgICAgICAgaW5zdGVhZCBvZiBjYWxsT25NYWluVGhyZWFkKCkgLyBjYWxsT25NYWluVGhy
ZWFkQW5kV2FpdCgpIC8gaXNNYWluVGhyZWFkKCkuCisgICAgICAgIFVzaW5nIHRoZSAiTWFpblRo
cmVhZCIgdmFyaWFudHMgZG9lc24ndCBkbyB0aGUgcmlnaHQgdGhpbmcgaW4gdGhlIFVJUHJvY2Vz
cyB3aGVuCisgICAgICAgIGFuIGlPUyBhcHAgaXMgdXNpbmcgYm90aCBXSzEgKHdpdGggV2ViVGhy
ZWFkKSBhbmQgV0syLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMOjpjb3B5VGV4dHVyZUZyb21NZWRpYSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUF1ZGlvRGVzdGluYXRpb246OnJlbmRlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y2xvc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOjpjcmVh
dGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI6OnJlbGVhc2VMYXllcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OmNhbmNlbCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3RhTWFuYWdlcik6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q2FjaGVTdG9yYWdlOjpnZXREaXJlY3RvcnlTaXplKToKKyAgICAgICAgKFdlYktpdDo6Q2Fj
aGVTdG9yYWdlOjpFbmdpbmU6OmRpc2tVc2FnZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtE
YXRhVGFza0NvY29hOjpyZXN1bWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrUlRDTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtNYW5hZ2VyV3Jh
cHBlcjo6b25OZXR3b3Jrc0NoYW5nZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJv
dmlkZXI6OmNyZWF0ZVNlcnZlclRDUFNvY2tldCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
VENQcm92aWRlcjo6Y3JlYXRlQ2xpZW50VENQU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVSZXNvbHZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSVENQcm92aWRlcjo6c3RvcFJlc29sdmVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JU
Q1Byb3ZpZGVyOjpjbG9zZUxpc3RlbmluZ1NvY2tldHMpOgorICAgICAgICAqIFBsYXRmb3JtL0lQ
Qy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE1lc3NhZ2Up
OgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpkaXNwYXRjaE1lc3NhZ2UpOgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjppbml0aWFsaXplQ29u
bmVjdGlvbik6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZv
cm1hdFJlYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpzdGFy
dE9uTWFpblRocmVhZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpwYXJz
ZUJ5dGVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRlcjo6ZGlkUGFy
c2VUcmFja3MpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRlcjo6ZGlkUHJvdmlk
ZU1lZGlhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpmaW5pc2hQ
YXJzaW5nKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2Ft
cGxlQnl0ZVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTYW1wbGVCeXRlUmFuZ2U6
Ok1lZGlhU2FtcGxlQnl0ZVJhbmdlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVRyYWNr
UmVhZGVyOjpNZWRpYVRyYWNrUmVhZGVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFUcmFja1Jl
YWRlcjo6YWRkU2FtcGxlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFUcmFja1JlYWRlcjo6Zmlu
aXNoUGFyc2luZyk6CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRp
YVRyYWNrUmVhZGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFz
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Okljb25EYXRhYmFzZTo6SWNvbkRhdGFiYXNlKToKKyAg
ICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjp+SWNvbkRhdGFiYXNlKToKKyAgICAgICAgKFdl
YktpdDo6SWNvbkRhdGFiYXNlOjpjcmVhdGVUYWJsZXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJL
aXQ6Okljb25EYXRhYmFzZTo6cG9wdWxhdGVQYWdlVVJMVG9JY29uVVJMTWFwKToKKyAgICAgICAg
KFdlYktpdDo6SWNvbkRhdGFiYXNlOjpjbGVhclN0YXRlbWVudHMpOgorICAgICAgICAoV2ViS2l0
OjpJY29uRGF0YWJhc2U6OnBydW5lVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Okljb25E
YXRhYmFzZTo6c3RhcnRQcnVuZVRpbWVyKToKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNl
OjpjbGVhckxvYWRlZEljb25zVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6Okljb25EYXRh
YmFzZTo6c3RhcnRDbGVhckxvYWRlZEljb25zVGltZXIpOgorICAgICAgICAoV2ViS2l0OjpJY29u
RGF0YWJhc2U6Omljb25JREZvckljb25VUkwpOgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJh
c2U6OnNldEljb25JREZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6
Omljb25EYXRhKToKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjphZGRJY29uKToKKyAg
ICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjp1cGRhdGVJY29uVGltZXN0YW1wKToKKyAgICAg
ICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjpkZWxldGVJY29uKToKKyAgICAgICAgKFdlYktpdDo6
SWNvbkRhdGFiYXNlOjpjaGVja0ljb25VUkxBbmRTZXRQYWdlVVJMSWZOZWVkZWQpOgorICAgICAg
ICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6OmxvYWRJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChX
ZWJLaXQ6Okljb25EYXRhYmFzZTo6aWNvblVSTEZvclBhZ2VVUkwpOgorICAgICAgICAoV2ViS2l0
OjpJY29uRGF0YWJhc2U6OnNldEljb25Gb3JQYWdlVVJMKToKKyAgICAgICAgKFdlYktpdDo6SWNv
bkRhdGFiYXNlOjpjbGVhcik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlz
c2lvblV0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYktpdDo6cmVxdWVzdEFWQ2FwdHVyZUFjY2Vz
c0ZvclR5cGUpOgorICAgICAgICAoV2ViS2l0OjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25BY2Nl
c3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNlT2JzZXJ2ZXIubW06Cisg
ICAgICAgICgtW1dLVXNlckRlZmF1bHRzIF9ub3RpZnlPYnNlcnZlcnNPZkNoYW5nZUZyb21WYWx1
ZXNGb3JLZXlzOnRvVmFsdWVzRm9yS2V5czpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6bm9uQnJvd3NlclNlcnZp
Y2VzKToKKyAgICAgICAgKFdlYktpdDo6YWd4Q29tcGlsZXJDbGFzc2VzKToKKyAgICAgICAgKFdl
YktpdDo6YWd4Q29tcGlsZXJTZXJ2aWNlcyk6CisgICAgICAgIChXZWJLaXQ6OmRpYWdub3N0aWNT
ZXJ2aWNlcyk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3RlSW5z
cGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW5zcGVjdG9yQ2xpZW50
OjpzZW5kV2ViSW5zcGVjdG9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbnNwZWN0
b3JDbGllbnQ6OmRpZENsb3NlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5OjpkaWRSZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdwdUlPS2l0Q2xhc3Nlcyk6
CisgICAgICAgIChXZWJLaXQ6OmdwdU1hY2hTZXJ2aWNlcyk6CisgICAgICAgIChXZWJLaXQ6Om1l
ZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcyk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZp
ZXcubW06CisgICAgICAgICgtW1dLUERGVmlldyB3ZWJfc2V0Q29udGVudFByb3ZpZGVyRGF0YTpz
dWdnZXN0ZWRGaWxlbmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdW
aWV3Lm1tOgorICAgICAgICAoLVtXS1ByaW50aW5nVmlldyBkZWFsbG9jXSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6fldlYkNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6d2Fp
dEZvckRpZEZsdXNoT25TZWNvbmRhcnlUaHJlYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5OjpyZW5kZXJRdWFudHVtKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6UmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNs
b3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJB
VkYuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZUZy
YW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpzZXRDYWxs
YmFja3MpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmZhaWxlZERlY29kaW5n
KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRW5jb2RpbmcpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENSZXNvbHZlcjo6c2VuZE9uTWFpblRocmVhZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0
b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3JlYXRl
U2VydmVyVGNwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFjdG9y
eTo6Y3JlYXRlVWRwU29ja2V0KToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDU29ja2V0RmFj
dG9yeTo6Y3JlYXRlQ2xpZW50VGNwU29ja2V0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYlJUQ01vbml0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENNb25p
dG9yOjpzZW5kT25NYWluVGhyZWFkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpwZGZMb2cpOgorICAg
ICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmxvZ1N0cmVhbUxvYWRlcik6CisgICAgICAgIChXZWJL
aXQ6OlBERlBsdWdpbjo6dmVyYm9zZUxvZyk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6
cmVjZWl2ZWROb25MaW5lYXJpemVkUERGU2VudGluZWwpOgorICAgICAgICAoV2ViS2l0OjpkYXRh
UHJvdmlkZXJHZXRCeXRlc0F0UG9zaXRpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OmRh
dGFQcm92aWRlckdldEJ5dGVSYW5nZXNDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OmRhdGFQ
cm92aWRlclJlbGVhc2VJbmZvQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46
OnRocmVhZEVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpnZXRSZXNvdXJjZUJ5
dGVzQXRQb3NpdGlvbk1haW5UaHJlYWQpOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46Omdl
dFJlc291cmNlQnl0ZXNBdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjph
ZG9wdEJhY2tncm91bmRUaHJlYWREb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdp
bjo6aW5zdGFsbFBERkRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjp0cnlS
dW5TY3JpcHRzSW5QREZEb2N1bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6ZGlkTWF0Y2hSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0Ns
aWVudENvbm5lY3Rpb246OmRpZEdldFJlZ2lzdHJhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVGb3JtRGF0YUFuZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmNsZWFudXApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9G
aW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpkcmF3
UmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjplbGVtZW50RGlkQmx1cik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpo
YW5kbGVTeW50aGV0aWNDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEZpbmlz
aENvbnRlbnRDaGFuZ2VPYnNlcnZpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRh
dGVJbnB1dENvbnRleHRBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnRJZk5lZWRlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1hYy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hYzo6ZGlzcGxheUxpbmtGaXJl
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0QmFzZS5tbToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dEJhc2UgYXhPYmplY3RDYWNoZV0pOgorICAgICAgICAoLVtXS0FjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0QmFzZSBhY2Nlc3NpYmlsaXR5UGx1Z2luT2JqZWN0XSk6CisgICAgICAgICgtW1dLQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIHNldFdlYlBhZ2U6XSk6CisgICAgICAgICgtW1dL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIHNldEhhc01haW5GcmFtZVBsdWdpbjpdKToK
KyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2Ugc2V0UmVtb3RlUGFy
ZW50Ol0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnJl
bW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlUHJveHk6OmNvbm5lY3Rpb24pOgorCiAyMDIxLTAzLTA5ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFRlc3QgZmFz
dC9pbWFnZXMvYW5pbWF0ZWQtaW1hZ2UtbXA0Lmh0bWwgdGltZXMgb3V0IHdoZW4gbWVkaWEgaW4g
R1BVIFByb2Nlc3MgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWFpblRo
cmVhZC5oIGIvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oCmluZGV4IDA2OGY2YmFhYzZlODk4
ZTMzMzY3NzcxNmQyMDE0ODc0OWU3OWNmMmQuLjVjMzJkMTg1MGUzMzNiZjExYzNiMWI2ZmYyMGUy
YzllMzkwNDRlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmgKQEAgLTgwLDYgKzgwLDcgQEAgdXNpbmcgV1RG
OjpjYWxsT25NYWluVGhyZWFkQW5kV2FpdDsKIHVzaW5nIFdURjo6Y2FsbE9uTWFpblJ1bkxvb3A7
CiB1c2luZyBXVEY6OmNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdDsKIHVzaW5nIFdURjo6Y2FuQ3Vy
cmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2FsRGF0YTsKK3VzaW5nIFdURjo6aXNNYWluUnVuTG9v
cDsKIHVzaW5nIFdURjo6aXNNYWluVGhyZWFkOwogdXNpbmcgV1RGOjppc01haW5UaHJlYWRPckdD
VGhyZWFkOwogdXNpbmcgV1RGOjppc1VJVGhyZWFkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAK
aW5kZXggMjEyNjRhNzk2OTNjNGI0N2QzZmFhOWExM2E0OGYxZGI1NTQyYWUyNi4uMzY3YWJmZDYz
NzFiNTZlNTExNmViODE5OWMwNWQ0ZjIxYjVhZTBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
Y3BwCkBAIC0yMzEsMTAgKzIzMSwxMCBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpj
b3B5VGV4dHVyZUZyb21NZWRpYShXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZQogICAgICAg
ICAgICAgcGl4ZWxCdWZmZXIgPSBtZWRpYVBsYXllci0+cGl4ZWxCdWZmZXJGb3JDdXJyZW50VGlt
ZSgpOwogICAgIH07CiAKLSAgICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgaWYgKGlzTWFpblJ1
bkxvb3AoKSkKICAgICAgICAgZ2V0UGl4ZWxCdWZmZXIoKTsKICAgICBlbHNlCi0gICAgICAgIGNh
bGxPbk1haW5UaHJlYWRBbmRXYWl0KFdURk1vdmUoZ2V0UGl4ZWxCdWZmZXIpKTsKKyAgICAgICAg
Y2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoZ2V0UGl4ZWxCdWZmZXIpKTsKIAogICAg
IGlmICghcGl4ZWxCdWZmZXIpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAKaW5kZXggZjdhMWFmMmRmN2FlY2RjNzMyNTcx
MjIxZTM0YjdkYWNjYzBhOWIxYi4uODM5ZmU5M2EyMWJiMjVmNWJjZmJjNTM4N2FhYzg1Mjc3MTA5
YzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZUF1
ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXIuY3BwCkBAIC0xMTYsNyArMTE2LDcg
QEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPU1N0YXR1cyByZW5kZXIoZG91
YmxlIHNhbXBsZVRpbWUsIHVpbnQ2NF90IGhvc3RUaW1lLCBVSW50MzIgbnVtYmVyT2ZGcmFtZXMs
IEF1ZGlvQnVmZmVyTGlzdCogaW9EYXRhKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7CisgICAgICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgICAgICBP
U1N0YXR1cyBzdGF0dXMgPSAtMTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCmluZGV4IGZjM2QwNDhjOTA3YmU4ZDdi
MmY4YjNiYjY5YWViMjNjM2Q0NmIwYmUuLmQzZTYxNjFiZDJiZGNmOGVhZjMwMTA3YzUzNmJlZDRi
MjdlMDljMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVtb3RlTWVkaWFSZXNv
dXJjZTo6UmVtb3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVt
b3RlTWVkaWEKIAogUmVtb3RlTWVkaWFSZXNvdXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UoKQog
ewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3Ao
KSk7CiAgICAgc3RvcCgpOwogICAgIGlmICghbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikK
ICAgICAgICAgcmV0dXJuOwpAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUmVzb3Vy
Y2U6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJv
bwogCiAgICAgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrID0gZGlkUGFzc0FjY2Vzc0NvbnRy
b2xDaGVjazsKICAgICBtX2NsaWVudC0+cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2Us
IFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgewot
ICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBBU1NFUlQoaXNNYWluUnVu
TG9vcCgpKTsKICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlUG9s
aWN5Q2hlY2s6Ok5vKQogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3RvcCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA0YmFlZjQ4
ZGVhYjQ0NWYwYmMzNzM3NTY3NzFiNWY5MmY0NmYzNWQ3Li5hNGQ0YjU3OGEzMjAwOTc1MGFkOWYz
YTI0MTc3YzAwYzZkM2UzNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxh
eWVyTWFuYWdlci5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBSZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyOjpjbG9zZSgpCiAgICAgbV9jb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKS5yZW1vdmVUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90
ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBt
X2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKICAgICBkaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
bGF5ZXJzID0gV1RGTW92ZShtX2xheWVycyldIHsgfSk7CisgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFtsYXllcnMgPSBXVEZNb3ZlKG1fbGF5ZXJzKV0geyB9KTsKICAgICB9KTsKIH0KIApAQCAt
ODAsMTEgKzgwLDExIEBAIGJvb2wgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cjo6ZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29uCiAKIHZvaWQgUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjo6Y3JlYXRlTGF5ZXIoU2FtcGxlQnVmZmVyRGlz
cGxheUxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGhpZGVSb290TGF5ZXIsIFdlYkNv
cmU6OkludFNpemUgc2l6ZSwgTGF5ZXJDcmVhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0g
ICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBpZGVudGlmaWVyLCBoaWRlUm9vdExheWVyLCBzaXplLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIsIGhpZGVSb290TGF5ZXIsIHNpemUs
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8g
bGF5ZXIgPSBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI6OmNyZWF0ZShpZGVudGlmaWVy
LCBtX2Nvbm5lY3Rpb24uY29weVJlZigpKTsKICAgICAgICAgYXV0byYgbGF5ZXJSZWZlcmVuY2Ug
PSAqbGF5ZXI7CiAgICAgICAgIGxheWVyUmVmZXJlbmNlLmluaXRpYWxpemUoaGlkZVJvb3RMYXll
ciwgc2l6ZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKSwgaWRlbnRpZmllciwgbGF5ZXIgPSBXVEZNb3ZlKGxheWVyKV0o
YXV0byBsYXllcklkKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGRpc3BhdGNoVG9UaHJlYWQoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spLCBpZGVudGlmaWVyLCBsYXllciA9IFdURk1vdmUobGF5ZXIpLCBsYXll
cklkID0gV1RGTW92ZShsYXllcklkKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNhbGxPbk1h
aW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgaWRlbnRpZmllciwgbGF5ZXIgPSBXVEZNb3Zl
KGxheWVyKSwgbGF5ZXJJZCA9IFdURk1vdmUobGF5ZXJJZCldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgQVNTRVJUKCFtX2xheWVycy5jb250YWlucyhpZGVudGlmaWVyKSk7CiAgICAgICAg
ICAgICAgICAgbV9sYXllcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUobGF5ZXIpKTsKICAgICAg
ICAgICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKGxheWVySWQpKTsKQEAgLTk1LDEwICs5NSwxMCBA
QCB2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI6OmNyZWF0ZUxheWVy
KFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcgogCiB2b2lkIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXI6OnJlbGVhc2VMYXllcihTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgIGNh
bGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlk
ZW50aWZpZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIGRpc3BhdGNoVG9UaHJlYWQoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBpZGVudGlmaWVyXSB7CiAgICAg
ICAgICAgICBBU1NFUlQobV9sYXllcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgICAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChbbGF5ZXIgPSBtX2xheWVycy50YWtlKGlkZW50aWZpZXIpXSB7
IH0pOworICAgICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2xheWVyID0gbV9sYXllcnMudGFr
ZShpZGVudGlmaWVyKV0geyB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAKaW5kZXgg
OGY5MjE0YWVkYmY4NTkxNTg3NjhhMDhmNDVjYmFkYzcwZWY1MjlkYS4uMTIwZGQ4ZWFmODYyZWYy
MTQwM2UzYzQ0OWFmMzcxYTNkMDZhYzkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAtODcsNyArODcsNyBAQCBEb3du
bG9hZDo6fkRvd25sb2FkKCkKIAogdm9pZCBEb3dubG9hZDo6Y2FuY2VsKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik+JiYgY29tcGxldGlvbkhhbmRsZXIs
IElnbm9yZURpZEZhaWxDYWxsYmFjayBpZ25vcmVEaWRGYWlsQ2FsbGJhY2spCiB7Ci0gICAgUkVM
RUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblJ1
bkxvb3AoKSk7CiAKICAgICAvLyBVUkxTZXNzaW9uOnRhc2s6ZGlkQ29tcGxldGVXaXRoRXJyb3I6
IGlzIHN0aWxsIGNhbGxlZCBhZnRlciBjYW5jZWxCeVByb2R1Y2luZ1Jlc3VtZURhdGEncyBjb21w
bGV0aW9uSGFuZGxlci4KICAgICAvLyBJZiB0aGlzIGNhbmNlbCByZXF1ZXN0IGNhbWUgZnJvbSB0
aGUgQVBJLCB3ZSBkbyBub3Qgd2FudCB0byBzZW5kIERvd25sb2FkUHJveHk6OkRpZEZhaWwgYmVj
YXVzZSB0aGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKaW5kZXggZmE4YzI0NDE2MmI4MWJhZTY4YmVmZGUwODcyOTc5Y2M4OGIyMGFhNi4uMjM0
N2ZkMjM2ZmFkNGI0OTg0ZWUyZTA5NmMzMDI5ZmMzMDlmOTJjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI1MDUsNyArMjUwNSw3
IEBAIFJlZlB0cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1
b3RhTWFuYWdlcihQQUw6OlNlc3Npb25JRCBzCiAgICAgaWRiUm9vdFBhdGggPSBzZXNzaW9uU3Rv
cmFnZVF1b3RhTWFuYWdlci0+aWRiUm9vdFBhdGgoKTsKICNlbmRpZgogICAgIFN0b3JhZ2VRdW90
YU1hbmFnZXI6OlVzYWdlR2V0dGVyIHVzYWdlR2V0dGVyID0gW2NhY2hlUm9vdFBhdGggPSBzZXNz
aW9uU3RvcmFnZVF1b3RhTWFuYWdlci0+Y2FjaGVSb290UGF0aCgpLmlzb2xhdGVkQ29weSgpLCBp
ZGJSb290UGF0aCA9IGlkYlJvb3RQYXRoLmlzb2xhdGVkQ29weSgpLCBvcmlnaW4gPSBvcmlnaW4u
aXNvbGF0ZWRDb3B5KCldKCkgewotICAgICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsgICAg
CisgICAgICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgICAgICB1aW50NjRfdCB1
c2FnZSA9IENhY2hlU3RvcmFnZTo6RW5naW5lOjpkaXNrVXNhZ2UoY2FjaGVSb290UGF0aCwgb3Jp
Z2luKTsKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTI1MTUsNyArMjUxNSw3IEBA
IFJlZlB0cjxTdG9yYWdlUXVvdGFNYW5hZ2VyPiBOZXR3b3JrUHJvY2Vzczo6c3RvcmFnZVF1b3Rh
TWFuYWdlcihQQUw6OlNlc3Npb25JRCBzCiAgICAgICAgIHJldHVybiB1c2FnZTsKICAgICB9Owog
ICAgIFN0b3JhZ2VRdW90YU1hbmFnZXI6OlF1b3RhSW5jcmVhc2VSZXF1ZXN0ZXIgcXVvdGFJbmNy
ZWFzZVJlcXVlc3RlciA9IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgc2Vz
c2lvbklELCBvcmlnaW5dICh1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRT
cGFjZSwgdWludDY0X3QgcmVxdWVzdGVkSW5jcmVhc2UsIGF1dG8mJiBjYWxsYmFjaykgewotICAg
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBBU1NFUlQoaXNNYWluUnVuTG9v
cCgpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIGNhbGxiYWNrKHsgfSk7
CiAgICAgICAgIHJlcXVlc3RTdG9yYWdlU3BhY2Uoc2Vzc2lvbklELCBvcmlnaW4sIGN1cnJlbnRR
dW90YSwgY3VycmVudFNwYWNlLCByZXF1ZXN0ZWRJbmNyZWFzZSwgV1RGTW92ZShjYWxsYmFjaykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IDVkY2Q3Yjk4Y2Q1YTcwNjU2ODQ2NzEzZjM2MWQ4MzAz
ZjIxNjFhOWUuLjk5YTIyNjJiODQ0ZWNkMmIxMjhiNWFiZjcwMmEwZWJjZWUyMzg5ZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5n
aW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZS5jcHAKQEAgLTE5OSw3ICsxOTksNyBAQCB2b2lkIEVuZ2luZTo6Y2xlYXJDYWNo
ZXNGb3JPcmlnaW4oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBQQUw6OlNlc3Npb25J
RAogCiBzdGF0aWMgdWludDY0X3QgZ2V0RGlyZWN0b3J5U2l6ZShjb25zdCBTdHJpbmcmIGRpcmVj
dG9yeVBhdGgpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFp
c01haW5SdW5Mb29wKCkpOwogCiAgICAgdWludDY0X3QgZGlyZWN0b3J5U2l6ZSA9IDA7CiAgICAg
RGVxdWU8U3RyaW5nPiBwYXRoczsKQEAgLTIyNyw3ICsyMjcsNyBAQCBzdGF0aWMgdWludDY0X3Qg
Z2V0RGlyZWN0b3J5U2l6ZShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeVBhdGgpCiAKIHVpbnQ2NF90
IEVuZ2luZTo6ZGlza1VzYWdlKGNvbnN0IFN0cmluZyYgcm9vdFBhdGgsIGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYgb3JpZ2luKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmIChyb290UGF0aC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZjU5NDQyMzk3
Yzk5OWVhMjI0ZGQ3MGRhODZlMTlhZWViYzU2OWRiYi4uZDA5ZWEwMTViMzAwYmExNDU1M2IyY2Y1
N2M3YTBjZDcyYzcwOWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC02MjMsNyArNjIzLDcg
QEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6cmVzdW1lKCkKICAgICBhdXRvJiBjb2NvYVNl
c3Npb24gPSBzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvbkNvY29hJj4oKm1fc2Vzc2lvbik7CiAg
ICAgaWYgKGNvY29hU2Vzc2lvbi5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxlZCgp
ICYmIG1faXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUpIHsKICAgICAgICAg
YXV0byBkaWREZXRlcm1pbmVEZXZpY2VSZXN0cmljdGlvblBvbGljeUZvclVSTCA9IG1ha2VCbG9j
a1B0cihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShCT09MIGlzQmxvY2tl
ZCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgaXNCbG9ja2VkXSB7CisgICAgICAgICAg
ICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVj
dGVkVGhpcyksIGlzQmxvY2tlZF0gewogICAgICAgICAgICAgICAgIGlmIChpc0Jsb2NrZWQpIHsK
ICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVGYWlsdXJlKFJlc3RyaWN0ZWRVUkxGYWlsdXJl
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0b3IuY3BwCmluZGV4IGVj
ODAwMzg1ZGZhMmY4YTliZTBhYzEwZWYxZWIxZjYyYmNlZWFlNWIuLmE5ODVmNWQyZTg2NjcxNmNk
NzY5YWIwZDI4NDc4M2IxNWI1Y2QzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5jcHAKQEAgLTExNSw3ICsx
MTUsNyBAQCB2b2lkIE5ldHdvcmtNYW5hZ2VyV3JhcHBlcjo6b25OZXR3b3Jrc0NoYW5nZWQoKQog
ICAgIFJUQ05ldHdvcms6OklQQWRkcmVzcyBpcHY2OwogICAgIG1fbWFuYWdlci0+R2V0RGVmYXVs
dExvY2FsQWRkcmVzcyhBRl9JTkVUNiwgJmlwdjYudmFsdWUpOwogCi0gICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgbmV0d29ya0xpc3QgPSBXVEZNb3ZlKG5ldHdvcmtMaXN0KSwgaXB2NCA9IFdU
Rk1vdmUoaXB2NCksIGlwdjYgPSBXVEZNb3ZlKGlwdjYpXSgpIG11dGFibGUgeworICAgIGNhbGxP
bk1haW5SdW5Mb29wKFt0aGlzLCBuZXR3b3JrTGlzdCA9IFdURk1vdmUobmV0d29ya0xpc3QpLCBp
cHY0ID0gV1RGTW92ZShpcHY0KSwgaXB2NiA9IFdURk1vdmUoaXB2NildKCkgbXV0YWJsZSB7CiAg
ICAgICAgIG1fZGlkUmVjZWl2ZVJlc3VsdHMgPSB0cnVlOwogCiAgICAgICAgIG1fbmV0d29ya0xp
c3QgPSBXVEZNb3ZlKG5ldHdvcmtMaXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCmluZGV4IDBhNmIx
NTZmNGNiODhlODViZjBmY2VhOGFjMzcyMGRkNjIxNDQwMDUuLjQwNzc1MTM2NDM0NzI1YzQzM2Vi
YWNmZmU0YmNkOGU0NWVlYjg5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcApAQCAtMTQ1LDcgKzE0
NSw3IEBAIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVVRFBTb2NrZXQoTGliV2ViUlRD
U29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjCiB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6
Y3JlYXRlU2VydmVyVENQU29ja2V0KExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyYgYWRkcmVzcywgdWludDE2X3QgbWlu
UG9ydCwgdWludDE2X3QgbWF4UG9ydCwgaW50IG9wdGlvbnMpCiB7CiAgICAgQVNTRVJUKG1fcnRj
TmV0d29ya1RocmVhZC5Jc0N1cnJlbnQoKSk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBhZGRyZXNzLCBtaW5Q
b3J0LCBtYXhQb3J0LCBvcHRpb25zXSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwgYWRkcmVzcywgbWluUG9y
dCwgbWF4UG9ydCwgb3B0aW9uc10gewogICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAg
ICAgICAgIHJldHVybjsKIApAQCAtMTcwLDcgKzE3MCw3IEBAIHJ0Yzo6UHJveHlJbmZvIE5ldHdv
cmtSVENQcm92aWRlcjo6cHJveHlJbmZvRnJvbVNlc3Npb24oY29uc3QgUlRDTmV0d29yazo6U29j
a2V0CiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVDbGllbnRUQ1BTb2NrZXQoTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBSVENOZXR3b3JrOjpTb2Nr
ZXRBZGRyZXNzJiBsb2NhbEFkZHJlc3MsIGNvbnN0IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3Mm
IHJlbW90ZUFkZHJlc3MsIFN0cmluZyYmIHVzZXJBZ2VudCwgaW50IG9wdGlvbnMpCiB7Ci0gICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBp
ZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHVzZXJBZ2VudCA9IFdURk1v
dmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSBtdXRhYmxlIHsKKyAgICBj
YWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBp
ZGVudGlmaWVyLCBsb2NhbEFkZHJlc3MsIHJlbW90ZUFkZHJlc3MsIHVzZXJBZ2VudCA9IFdURk1v
dmUodXNlckFnZW50KS5pc29sYXRlZENvcHkoKSwgb3B0aW9uc10oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTI2MCw4ICsy
NjAsOCBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6ZGlzcGF0Y2hUb1RocmVhZChGdW5jdGlv
bjx2b2lkKCk+JiYgY2FsbGJhY2spCiAKIHZvaWQgTmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVS
ZXNvbHZlcihMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYg
YWRkcmVzcykKIHsKLSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmll
ciwgYWRkcmVzcyA9IFdURk1vdmUoYWRkcmVzcykuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7
CisgICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3Ao
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciwgYWRkcmVz
cyA9IFdURk1vdmUoYWRkcmVzcykuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICBjcmVhdGVSZXNvbHZlcihpZGVudGlmaWVyLCBXVEZNb3ZlKGFkZHJlc3MpKTsKQEAgLTI5
OCw4ICsyOTgsOCBAQCB2b2lkIE5ldHdvcmtSVENQcm92aWRlcjo6Y3JlYXRlUmVzb2x2ZXIoTGli
V2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAKIHZvaWQgTmV0d29ya1JUQ1By
b3ZpZGVyOjpzdG9wUmVzb2x2ZXIoTGliV2ViUlRDUmVzb2x2ZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiB7Ci0gICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewotICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXJdIHsK
KyAgICBpZiAoIWlzTWFpblJ1bkxvb3AoKSkgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyXSB7CiAgICAg
ICAgICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICBzdG9wUmVzb2x2ZXIoaWRlbnRpZmllcik7CkBAIC0zMTYsNyArMzE2LDcgQEAgdm9p
ZCBOZXR3b3JrUlRDUHJvdmlkZXI6OnN0b3BSZXNvbHZlcihMaWJXZWJSVENSZXNvbHZlcklkZW50
aWZpZXIgaWRlbnRpZmllcikKIAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNsb3NlTGlzdGVu
aW5nU29ja2V0cyhGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAg
ICBpZiAoIW1faXNMaXN0ZW5pbmdTb2NrZXRBdXRob3JpemVkKSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIE5l
dHdvcmtSVENQcm92aWRlcjo6Y2xvc2VMaXN0ZW5pbmdTb2NrZXRzKEZ1bmN0aW9uPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZAogICAgICAgICBmb3IgKGF1dG8gaWQgOiBsaXN0ZW5pbmdTb2NrZXRJ
ZGVudGlmaWVycykKICAgICAgICAgICAgIG1fc29ja2V0cy5nZXQoaWQpLT5jbG9zZSgpOwogCi0g
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3ZpZGVyID0gbWFrZVJlZigqdGhpcyksIGxpc3Rl
bmluZ1NvY2tldElkZW50aWZpZXJzID0gV1RGTW92ZShsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVy
cyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKKyAg
ICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3Byb3ZpZGVyID0gbWFrZVJlZigqdGhpcyksIGxpc3Rl
bmluZ1NvY2tldElkZW50aWZpZXJzID0gV1RGTW92ZShsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVy
cyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIHsKICAg
ICAgICAgICAgIGlmIChwcm92aWRlci0+bV9jb25uZWN0aW9uKSB7CiAgICAgICAgICAgICAgICAg
Zm9yIChhdXRvIGlkZW50aWZpZXIgOiBsaXN0ZW5pbmdTb2NrZXRJZGVudGlmaWVycykKICAgICAg
ICAgICAgICAgICAgICAgcHJvdmlkZXItPm1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OkxpYldlYlJUQ05ldHdvcms6OlNpZ25hbENsb3NlKGlkZW50aWZpZXIsIEVDT05O
QUJPUlRFRCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApp
bmRleCA4NmVjZGRkN2Y2ZTNiMWFkN2NjN2IxZDBiYWRiNDNiZGZjMjMyM2JiLi4zZGUxMTQ1NWJh
YjQ4N2RkZjZkYWEyMWFkMDBmMzNjMGNjNDBiNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcApAQCAtNDMyLDcgKzQzMiw3IEBAIGJvb2wgQ29ubmVjdGlvbjo6
c2VuZE1lc3NhZ2Uoc3RkOjp1bmlxdWVfcHRyPEVuY29kZXI+IGVuY29kZXIsIE9wdGlvblNldDxT
ZW5kT3B0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShJUENfVEVTVElOR19B
UEkpCi0gICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgaWYgKGlzTWFpblJ1bkxvb3AoKSkg
ewogICAgICAgICBib29sIGhhc0RlYWRPYnNlcnZlcnMgPSBmYWxzZTsKICAgICAgICAgZm9yIChh
dXRvJiBvYnNlcnZlcldlYWtQdHIgOiBtX21lc3NhZ2VPYnNlcnZlcnMpIHsKICAgICAgICAgICAg
IGlmIChhdXRvKiBvYnNlcnZlciA9IG9ic2VydmVyV2Vha1B0ci5nZXQoKSkKQEAgLTQ0NSw3ICs0
NDUsNyBAQCBib29sIENvbm5lY3Rpb246OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxFbmNv
ZGVyPiBlbmNvZGVyLCBPcHRpb25TZXQ8U2VuZE9wdAogICAgIH0KICNlbmRpZgogCi0gICAgaWYg
KGlzTWFpblRocmVhZCgpICYmIG1faW5EaXNwYXRjaE1lc3NhZ2VNYXJrZWRUb1VzZUZ1bGx5U3lu
Y2hyb25vdXNNb2RlRm9yVGVzdGluZyAmJiAhZW5jb2Rlci0+aXNTeW5jTWVzc2FnZSgpICYmICEo
ZW5jb2Rlci0+bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IFJlY2VpdmVyTmFtZTo6SVBDKSAmJiAh
c2VuZE9wdGlvbnMuY29udGFpbnMoU2VuZE9wdGlvbjo6SWdub3JlRnVsbHlTeW5jaHJvbm91c01v
ZGUpKSB7CisgICAgaWYgKGlzTWFpblJ1bkxvb3AoKSAmJiBtX2luRGlzcGF0Y2hNZXNzYWdlTWFy
a2VkVG9Vc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcgJiYgIWVuY29kZXItPmlzU3lu
Y01lc3NhZ2UoKSAmJiAhKGVuY29kZXItPm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBSZWNlaXZl
ck5hbWU6OklQQykgJiYgIXNlbmRPcHRpb25zLmNvbnRhaW5zKFNlbmRPcHRpb246Oklnbm9yZUZ1
bGx5U3luY2hyb25vdXNNb2RlKSkgewogICAgICAgICB1aW50NjRfdCBzeW5jUmVxdWVzdElEOwog
ICAgICAgICBhdXRvIHdyYXBwZWRNZXNzYWdlID0gY3JlYXRlU3luY01lc3NhZ2VFbmNvZGVyKE1l
c3NhZ2VOYW1lOjpXcmFwcGVkQXN5bmNNZXNzYWdlRm9yVGVzdGluZywgZW5jb2Rlci0+ZGVzdGlu
YXRpb25JRCgpLCBzeW5jUmVxdWVzdElEKTsKICAgICAgICAgd3JhcHBlZE1lc3NhZ2UtPnNldEZ1
bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZygpOwpAQCAtOTk0LDcgKzk5NCw3IEBAIHZvaWQg
Q29ubmVjdGlvbjo6ZGlzcGF0Y2hNZXNzYWdlKERlY29kZXImIGRlY29kZXIpCiAgICAgfQogCiAj
aWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKKyAg
ICBpZiAoaXNNYWluUnVuTG9vcCgpKSB7CiAgICAgICAgIGJvb2wgaGFzRGVhZE9ic2VydmVycyA9
IGZhbHNlOwogICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyV2Vha1B0ciA6IG1fbWVzc2FnZU9i
c2VydmVycykgewogICAgICAgICAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gb2JzZXJ2ZXJXZWFr
UHRyLmdldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRp
b24vY29jb2EvQXV0aGVudGljYXRpb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5tbQpp
bmRleCA4NjkwY2ViOWVlOGRkMWNkZjY0MGYxNzU2YzhmNzRlYWM4NGI1ZmNkLi45MTJmNDI5Njdj
MzA0OTA5NzdkMGQzNmM1ZmQ0M2U2OTcyN2YwNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50aWNhdGlvbk1hbmFnZXJDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9jb2NvYS9BdXRoZW50
aWNhdGlvbk1hbmFnZXJDb2NvYS5tbQpAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmluaXRpYWxpemVDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIHsKLSAgICBSRUxFQVNFX0FTU0VSVChpc01haW5U
aHJlYWQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlm
ICghY29ubmVjdGlvbiB8fCAhY29ubmVjdGlvbi0+eHBjQ29ubmVjdGlvbigpKSB7CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNTAsOCArNTAsOCBAQCB2b2lkIEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKQogICAgIC8vIFRoZSBmb2xsb3dpbmcgeHBjIGV2ZW50IGhhbmRsZXIgb3ZlcndyaXRlcyB0
aGUgYm9vc3RyYXAgZXZlbnQgaGFuZGxlciBhbmQgaXMgb25seSB1c2VkCiAgICAgLy8gdG8gY2Fw
dHVyZSBjbGllbnQgY2VydGlmaWNhdGUgY3JlZGVudGlhbC4KICAgICB4cGNfY29ubmVjdGlvbl9z
ZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLT54cGNDb25uZWN0aW9uKCksIF4oeHBjX29iamVj
dF90IGV2ZW50KSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2V2ZW50ID0gT1NPYmplY3RQ
dHIoZXZlbnQpLCB3ZWFrVGhpcyA9IHdlYWtUaGlzXSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFtldmVudCA9
IE9TT2JqZWN0UHRyKGV2ZW50KSwgd2Vha1RoaXMgPSB3ZWFrVGhpc10geworICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgICAgICAgICAgeHBjX3R5cGVf
dCB0eXBlID0geHBjX2dldF90eXBlKGV2ZW50LmdldCgpKTsKICAgICAgICAgICAgIGlmICh0eXBl
ID09IFhQQ19UWVBFX0VSUk9SIHx8ICF3ZWFrVGhpcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFk
ZXIuY3BwCmluZGV4IGU3MDI4Yzc5NzBlYWQxOWU0YTQ2NDFmZjczYzA0MjVkMGRiMjJhNDUuLmI4
OGY4ODM5MzAyYTlhMDJiMzY2OGYxODNlNzdjYzhlZTVkNDRiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlh
Rm9ybWF0UmVhZGVyLmNwcApAQCAtODIsMTIgKzgyLDEyIEBAIE1lZGlhRm9ybWF0UmVhZGVyOjpN
ZWRpYUZvcm1hdFJlYWRlcihBbGxvY2F0b3ImJiBhbGxvY2F0b3IpCiAKIHZvaWQgTWVkaWFGb3Jt
YXRSZWFkZXI6OnN0YXJ0T25NYWluVGhyZWFkKE1UUGx1Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291
cmNlKQogewotICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgIGlmIChpc01haW5SdW5Mb29w
KCkpIHsKICAgICAgICAgcGFyc2VCeXRlU291cmNlKFdURk1vdmUoYnl0ZVNvdXJjZSkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBieXRlU291cmNlID0gcmV0YWluUHRyKGJ5dGVTb3Vy
Y2UpXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGJ5dGVTb3VyY2UgPSByZXRhaW5QdHIoYnl0ZVNvdXJjZSld
KCkgbXV0YWJsZSB7CiAgICAgICAgIHBhcnNlQnl0ZVNvdXJjZShXVEZNb3ZlKGJ5dGVTb3VyY2Up
KTsKICAgICB9KTsKIH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgV29ya1F1ZXVlJiByZWFk
ZXJRdWV1ZSgpCiAKIHZvaWQgTWVkaWFGb3JtYXRSZWFkZXI6OnBhcnNlQnl0ZVNvdXJjZShSZXRh
aW5QdHI8TVRQbHVnaW5CeXRlU291cmNlUmVmPiYmIGJ5dGVTb3VyY2UpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxDb250ZW50VHlwZT4gY29udGVudFR5cGUoInZpZGVvL3dlYm0i
X3MpOwogICAgIGF1dG8gcGFyc2VyID0gU291cmNlQnVmZmVyUGFyc2VyV2ViTTo6Y3JlYXRlKGNv
bnRlbnRUeXBlKTsKQEAgLTE1Miw3ICsxNTIsNyBAQCB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpw
YXJzZUJ5dGVTb3VyY2UoUmV0YWluUHRyPE1UUGx1Z2luQnl0ZVNvdXJjZVJlZj4mJiBieXRlUwog
CiB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZmZXJQcml2
YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQmJiBzZWdtZW50LCB1aW50NjRfdCBlcnJv
ckNvZGUpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01h
aW5SdW5Mb29wKCkpOwogCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3BhcnNlVHJhY2tz
TG9jayk7CiAgICAgQVNTRVJUKCFtX3BhcnNlVHJhY2tzU3RhdHVzKTsKQEAgLTE5NSw3ICsxOTUs
NyBAQCB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZmZXJQ
cml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvbgogCiB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpk
aWRQcm92aWRlTWVkaWFEYXRhKFJlZjxNZWRpYVNhbXBsZT4mJiBtZWRpYVNhbXBsZSwgdWludDY0
X3QgdHJhY2tJRCwgY29uc3QgU3RyaW5nJikKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fcGFyc2VUcmFja3NMb2NrKTsKICAgICBhdXRvIHRyYWNrSW5kZXggPSBtX3RyYWNr
UmVhZGVycy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIHRyYWNrKSB7CkBAIC0yMDgsNyArMjA4LDcg
QEAgdm9pZCBNZWRpYUZvcm1hdFJlYWRlcjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFT
YW1wbGU+JiYgbWVkaWFTYW1wbGUsIHVpbnQKIAogdm9pZCBNZWRpYUZvcm1hdFJlYWRlcjo6Zmlu
aXNoUGFyc2luZyhSZWY8U291cmNlQnVmZmVyUGFyc2VyPiYmIHBhcnNlcikKIHsKLSAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9wYXJzZVRyYWNrc0xvY2spOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5jcHAK
aW5kZXggZGMyZWQzOGE2MjdlYWIyNjJhMTkzZWJmYTVjNGVkNzU4YzNiYWVhNS4uZDgzZWZjZjQ3
NzVjZTk2YjEyYTg3NjBmOGQxNzIzNGFiMGYxZWU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1w
bGVCeXRlUmFuZ2UuY3BwCkBAIC00NSw3ICs0NSw3IEBAIE1lZGlhU2FtcGxlQnl0ZVJhbmdlOjpN
ZWRpYVNhbXBsZUJ5dGVSYW5nZShNZWRpYVNhbXBsZSYgc2FtcGxlLCBNVFBsdWdpbkJ5dGVTb3Vy
CiAgICAgLCBtX2J5dGVTb3VyY2UoYnl0ZVNvdXJjZSkKICAgICAsIG1fZmxhZ3Moc2FtcGxlLmZs
YWdzKCkpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01h
aW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RlY29kZVRpbWUgPT0gbV9wcmVzZW50YXRpb25U
aW1lIHx8IG1fZGVjb2RlVGltZSA9PSBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpOwogICAgIGF1
dG8gcGxhdGZvcm1TYW1wbGUgPSBzYW1wbGUucGxhdGZvcm1TYW1wbGUoKTsKICAgICBzd2l0Y2gg
KHBsYXRmb3JtU2FtcGxlLnR5cGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmNwcAppbmRl
eCBjNjRjYjEwM2NkNjJhMmUzNGM4Y2RkNDZmMWI5MTkwZmUzOGM4NTgzLi5iMmY5ZWRjMjhmYzdi
M2UzZDczZmYzZmZiYzk1NjA5ZmM1NzQ0ZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFUcmFja1JlYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIu
Y3BwCkBAIC03OCw3ICs3OCw3IEBAIE1lZGlhVHJhY2tSZWFkZXI6Ok1lZGlhVHJhY2tSZWFkZXIo
QWxsb2NhdG9yJiYgYWxsb2NhdG9yLCBjb25zdCBNZWRpYUZvcm1hdFJlYWRlCiAgICAgLCBtX2xv
Z2dlcihmb3JtYXRSZWFkZXIubG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIoZm9ybWF0
UmVhZGVyLm5leHRUcmFja1JlYWRlckxvZ0lkZW50aWZpZXIodHJhY2tJRCkpCiB7Ci0gICAgQVNT
RVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYVR5cGVTdHJpbmcoKSwgIiAiLCB0cmFj
a0lEKTsKICAgICBpZiAoZW5hYmxlZCkKQEAgLTk3LDcgKzk3LDcgQEAgTWVkaWFUaW1lIE1lZGlh
VHJhY2tSZWFkZXI6OmdyZWF0ZXN0UHJlc2VudGF0aW9uVGltZSgpIGNvbnN0CiAKIHZvaWQgTWVk
aWFUcmFja1JlYWRlcjo6YWRkU2FtcGxlKFJlZjxNZWRpYVNhbXBsZT4mJiBzYW1wbGUsIE1UUGx1
Z2luQnl0ZVNvdXJjZVJlZiBieXRlU291cmNlKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fc2FtcGxlU3RvcmFnZUxvY2spOwogICAgIGlmICghbV9zYW1wbGVTdG9yYWdlKQog
ICAgICAgICBtX3NhbXBsZVN0b3JhZ2UgPSBtYWtlVW5pcXVlPFNhbXBsZVN0b3JhZ2U+KCk7CkBA
IC0xMjYsNyArMTI2LDcgQEAgdm9pZCBNZWRpYVRyYWNrUmVhZGVyOjp3YWl0Rm9yU2FtcGxlKEZ1
bmN0aW9uPGJvb2woU2FtcGxlTWFwJiwgYm9vbCk+JiYgcHJlZGljYXQKIAogdm9pZCBNZWRpYVRy
YWNrUmVhZGVyOjpmaW5pc2hQYXJzaW5nKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIpOwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zYW1wbGVTdG9yYWdlTG9j
ayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFUcmFja1JlYWRlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhVHJhY2tSZWFkZXIuaAppbmRleCA3MTI2MDZkMDBhYTZlNTJkMTdjZTA2
MzU4ODk1OTk3MTM0NjM1YmU2Li4wMzNlNzQ1MjVmMmQ1NDdjMThjMDMxODMzNTg3NzAzMDY3Yzg2
YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFUcmFja1JlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVRyYWNrUmVhZGVyLmgKQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0
ZToKIAogICAgIHN0cnVjdCBTYW1wbGVTdG9yYWdlIHsKICAgICAgICAgV1RGX01BS0VfU1RSVUNU
X0ZBU1RfQUxMT0NBVEVEOwotICAgICAgICB+U2FtcGxlU3RvcmFnZSgpIHsgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7IH0KKyAgICAgICAgflNhbXBsZVN0b3JhZ2UoKSB7IEFTU0VSVCghaXNNYWlu
UnVuTG9vcCgpKTsgfQogICAgICAgICBXZWJDb3JlOjpTYW1wbGVNYXAgc2FtcGxlTWFwOwogICAg
ICAgICBib29sIGhhc0FsbFNhbXBsZXMgeyBmYWxzZSB9OwogICAgIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAppbmRleCAzMWMzOGYz
NjEzYjM2YjUxZGVjMGZlZGExYjdiYzE3Nzc5ZGYwZDZlLi45MWZmYjIzM2JlODg2MWQyYTc3ODlk
NjhmNzQ3MDkzODIxMzM0NmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL0ljb25EYXRhYmFzZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgSWNvbkRhdGFiYXNlOjpJ
Y29uRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBwYXRoLCBBbGxvd0RhdGFiYXNlV3JpdGUgYWxsb3dE
YXRhYmFzZVcKICAgICAsIG1fYWxsb3dEYXRhYmFzZVdyaXRlKGFsbG93RGF0YWJhc2VXcml0ZSkK
ICAgICAsIG1fY2xlYXJMb2FkZWRJY29uc1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJklj
b25EYXRhYmFzZTo6Y2xlYXJMb2FkZWRJY29uc1RpbWVyRmlyZWQpCiB7Ci0gICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBtX2NsZWFy
TG9hZGVkSWNvbnNUaW1lci5zZXRQcmlvcml0eShSdW5Mb29wU291cmNlUHJpb3JpdHk6OlJlbGVh
c2VVbnVzZWRSZXNvdXJjZXNUaW1lcik7CiAKICAgICAvLyBXZSBpbml0aWFsaXplIHRoZSBkYXRh
YmFzZSBzeW5jaHJvbm91c2x5LCBpdCdzIGhvcGVmdWxseSBmYXN0IGVub3VnaCBiZWNhdXNlIGl0
IG1ha2VzCkBAIC0xMDgsNyArMTA4LDcgQEAgSWNvbkRhdGFiYXNlOjpJY29uRGF0YWJhc2UoY29u
c3QgU3RyaW5nJiBwYXRoLCBBbGxvd0RhdGFiYXNlV3JpdGUgYWxsb3dEYXRhYmFzZVcKIAogSWNv
bkRhdGFiYXNlOjp+SWNvbkRhdGFiYXNlKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgQmluYXJ5U2VtYXBob3JlIHNl
bWFwaG9yZTsKICAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2goWyZdIHsKQEAgLTEyNCw3ICsxMjQs
NyBAQCBJY29uRGF0YWJhc2U6On5JY29uRGF0YWJhc2UoKQogCiBib29sIEljb25EYXRhYmFzZTo6
Y3JlYXRlVGFibGVzSWZOZWVkZWQoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmIChtX2RiLnRhYmxlRXhpc3Rz
KCJJY29uSW5mbyIpICYmIG1fZGIudGFibGVFeGlzdHMoIkljb25EYXRhIikgJiYgbV9kYi50YWJs
ZUV4aXN0cygiUGFnZVVSTCIpICYmIG1fZGIudGFibGVFeGlzdHMoIkljb25EYXRhYmFzZUluZm8i
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTgyLDcgKzE4Miw3IEBAIGJvb2wgSWNvbkRh
dGFiYXNlOjpjcmVhdGVUYWJsZXNJZk5lZWRlZCgpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpwb3B1
bGF0ZVBhZ2VVUkxUb0ljb25VUkxNYXAoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghbV9kYi5pc09wZW4o
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
Ojpwb3B1bGF0ZVBhZ2VVUkxUb0ljb25VUkxNYXAoKQogCiB2b2lkIEljb25EYXRhYmFzZTo6Y2xl
YXJTdGF0ZW1lbnRzKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NF
UlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fZGIuaXNPcGVuKCkpOwogCiAgICAg
bV9pY29uSURGb3JJY29uVVJMU3RhdGVtZW50ID0gbnVsbHB0cjsKQEAgLTIyMyw3ICsyMjMsNyBA
QCB2b2lkIEljb25EYXRhYmFzZTo6Y2xlYXJTdGF0ZW1lbnRzKCkKIAogdm9pZCBJY29uRGF0YWJh
c2U6OnBydW5lVGltZXJGaXJlZCgpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cisg
ICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsK
IAogICAgIGlmICghbV9wcnVuZUljb25zU3RhdGVtZW50KSB7CkBAIC0yNTMsNyArMjUzLDcgQEAg
dm9pZCBJY29uRGF0YWJhc2U6OnBydW5lVGltZXJGaXJlZCgpCiAKIHZvaWQgSWNvbkRhdGFiYXNl
OjpzdGFydFBydW5lVGltZXIoKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAg
IEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghbV9wcnVuZVRpbWVyIHx8ICFt
X2RiLmlzT3BlbigpKQogICAgICAgICByZXR1cm47CkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBJ
Y29uRGF0YWJhc2U6OnN0YXJ0UHJ1bmVUaW1lcigpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpjbGVh
ckxvYWRlZEljb25zVGltZXJGaXJlZCgpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIExvY2tIb2xkZXIgbG9ja0hvbGRl
cihtX2xvYWRlZEljb25zTG9jayk7CiAgICAgYXV0byBub3cgPSBNb25vdG9uaWNUaW1lOjpub3co
KTsKQEAgLTI4NCw3ICsyODQsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2xlYXJMb2FkZWRJY29u
c1RpbWVyRmlyZWQoKQogCiB2b2lkIEljb25EYXRhYmFzZTo6c3RhcnRDbGVhckxvYWRlZEljb25z
VGltZXIoKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CiAKICAgICBpZiAobV9jbGVhckxvYWRlZEljb25zVGltZXIuaXNBY3RpdmUo
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpzdGFydENsZWFyTG9hZGVkSWNvbnNUaW1lcigpCiAKIE9wdGlvbmFsPGludDY0X3Q+IEljb25E
YXRhYmFzZTo6aWNvbklERm9ySWNvblVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGJvb2wmIGV4
cGlyZWQpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01h
aW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsKIAogICAgIGlmICghbV9p
Y29uSURGb3JJY29uVVJMU3RhdGVtZW50KSB7CkBAIC0zMjMsNyArMzIzLDcgQEAgT3B0aW9uYWw8
aW50NjRfdD4gSWNvbkRhdGFiYXNlOjppY29uSURGb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgaWNv
blVSTCwgYm9vbCYgZXgKIAogYm9vbCBJY29uRGF0YWJhc2U6OnNldEljb25JREZvclBhZ2VVUkwo
aW50NjRfdCBpY29uSUQsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKLSAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJU
KG1fZGIuaXNPcGVuKCkpOwogICAgIEFTU0VSVChtX2FsbG93RGF0YWJhc2VXcml0ZSA9PSBBbGxv
d0RhdGFiYXNlV3JpdGU6Olllcyk7CiAKQEAgLTM1MSw3ICszNTEsNyBAQCBib29sIEljb25EYXRh
YmFzZTo6c2V0SWNvbklERm9yUGFnZVVSTChpbnQ2NF90IGljb25JRCwgY29uc3QgU3RyaW5nJiBw
YWdlVVJMKQogCiBWZWN0b3I8Y2hhcj4gSWNvbkRhdGFiYXNlOjppY29uRGF0YShpbnQ2NF90IGlj
b25JRCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFp
blJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fZGIuaXNPcGVuKCkpOwogCiAgICAgaWYgKCFtX2lj
b25EYXRhU3RhdGVtZW50KSB7CkBAIC0zNzgsNyArMzc4LDcgQEAgVmVjdG9yPGNoYXI+IEljb25E
YXRhYmFzZTo6aWNvbkRhdGEoaW50NjRfdCBpY29uSUQpCiAKIE9wdGlvbmFsPGludDY0X3Q+IElj
b25EYXRhYmFzZTo6YWRkSWNvbihjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFZlY3Rvcjxj
aGFyPiYgaWNvbkRhdGEpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNT
RVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsKICAgICBB
U1NFUlQobV9hbGxvd0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpZZXMpOwog
CkBAIC00MjEsNyArNDIxLDcgQEAgT3B0aW9uYWw8aW50NjRfdD4gSWNvbkRhdGFiYXNlOjphZGRJ
Y29uKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgVmVjdG9yPGNoYXIKIAogdm9pZCBJY29u
RGF0YWJhc2U6OnVwZGF0ZUljb25UaW1lc3RhbXAoaW50NjRfdCBpY29uSUQsIGludDY0X3QgdGlt
ZXN0YW1wKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNN
YWluUnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9kYi5pc09wZW4oKSk7CiAgICAgQVNTRVJUKG1f
YWxsb3dEYXRhYmFzZVdyaXRlID09IEFsbG93RGF0YWJhc2VXcml0ZTo6WWVzKTsKIApAQCAtNDQ1
LDcgKzQ0NSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjp1cGRhdGVJY29uVGltZXN0YW1wKGludDY0
X3QgaWNvbklELCBpbnQ2NF90IHRpbWVzdGFtcCkKIAogdm9pZCBJY29uRGF0YWJhc2U6OmRlbGV0
ZUljb24oaW50NjRfdCBpY29uSUQpCiB7Ci0gICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cisg
ICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogICAgIEFTU0VSVChtX2RiLmlzT3BlbigpKTsK
ICAgICBBU1NFUlQobV9hbGxvd0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpZ
ZXMpOwogCkBAIC00OTIsNyArNDkyLDcgQEAgdm9pZCBJY29uRGF0YWJhc2U6OmRlbGV0ZUljb24o
aW50NjRfdCBpY29uSUQpCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpjaGVja0ljb25VUkxBbmRTZXRQ
YWdlVVJMSWZOZWVkZWQoY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHBhZ2VV
UkwsIEFsbG93RGF0YWJhc2VXcml0ZSBhbGxvd0RhdGFiYXNlV3JpdGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIG1f
d29ya1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBpY29uVVJMID0gaWNvblVSTC5pc29sYXRlZENvcHkoKSwgcGFnZVVSTCA9IHBhZ2VVUkwuaXNv
bGF0ZWRDb3B5KCksIGFsbG93RGF0YWJhc2VXcml0ZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYm9vbCByZXN1bHQg
PSBmYWxzZTsKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6Y2hlY2tJY29u
VVJMQW5kU2V0UGFnZVVSTElmTmVlZGVkKGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29ucwogCiB2
b2lkIEljb25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVS
TCwgQWxsb3dEYXRhYmFzZVdyaXRlIGFsbG93RGF0YWJhc2VXcml0ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChQbGF0Zm9ybUltYWdlUHRyJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAK
ICAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgcGFnZVVSTCA9IHBhZ2VVUkwuaXNvbGF0ZWRDb3B5KCksIGFsbG93RGF0YWJhc2VX
cml0ZSwgdGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7
CiAgICAgICAgIE9wdGlvbmFsPGludDY0X3Q+IGljb25JRDsKQEAgLTYwNyw3ICs2MDcsNyBAQCB2
b2lkIEljb25EYXRhYmFzZTo6bG9hZEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVS
TCwgQWxsb3dEYXRhYmFzZVdyaXRlCiAKIFN0cmluZyBJY29uRGF0YWJhc2U6Omljb25VUkxGb3JQ
YWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgTG9ja0hvbGRlciBsb2Nr
SG9sZGVyKG1fcGFnZVVSTFRvSWNvblVSTE1hcExvY2spOwogICAgIHJldHVybiBtX3BhZ2VVUkxU
b0ljb25VUkxNYXAuZ2V0KHBhZ2VVUkwpOwpAQCAtNjE1LDcgKzYxNSw3IEBAIFN0cmluZyBJY29u
RGF0YWJhc2U6Omljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIAogdm9p
ZCBJY29uRGF0YWJhc2U6OnNldEljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYgaWNvblVSTCwg
Y29uc3QgdW5zaWduZWQgY2hhciogaWNvbkRhdGEsIHNpemVfdCBpY29uRGF0YVNpemUsIGNvbnN0
IFN0cmluZyYgcGFnZVVSTCwgQWxsb3dEYXRhYmFzZVdyaXRlIGFsbG93RGF0YWJhc2VXcml0ZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwog
CiAgICAgLy8gSWYgZGF0YWJhc2Ugd3JpdGUgaXMgbm90IGFsbG93ZWQgbG9hZCB0aGUgaWNvbiB0
byBjYWNoZSBpdCBpbiBtZW1vcnkgb25seS4KICAgICBpZiAobV9hbGxvd0RhdGFiYXNlV3JpdGUg
PT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpObyB8fCBhbGxvd0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dE
YXRhYmFzZVdyaXRlOjpObykgewpAQCAtNjc3LDcgKzY3Nyw3IEBAIHZvaWQgSWNvbkRhdGFiYXNl
OjpzZXRJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IHVuc2lnbmVk
IGNoYXIqCiAKIHZvaWQgSWNvbkRhdGFiYXNlOjpjbGVhcihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIHsKICAgICAgICAgTG9ja0hvbGRl
ciBsb2NrSG9sZGVyKG1fbG9hZGVkSWNvbnNMb2NrKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhUGVybWlzc2lvblV0aWxpdGllcy5tbQppbmRleCBh
NzViMjY3MDRhMzhhNTRjNjdiYTljMzkxMTMxNTBhZmUzYmE0OTI0Li5kMTI1MjRiNTM5ZmRhNDZi
YTFmZmRmZGMwN2RlOGI0MjU4ZDg5NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9NZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tCkBAIC0yMTIsNyAr
MjEyLDcgQEAgdm9pZCBhbGVydEZvclBlcm1pc3Npb24oV2ViUGFnZVByb3h5JiBwYWdlLCBNZWRp
YVBlcm1pc3Npb25SZWFzb24gcmVhc29uLCBPcHRpb24KIAogdm9pZCByZXF1ZXN0QVZDYXB0dXJl
QWNjZXNzRm9yVHlwZShNZWRpYVBlcm1pc3Npb25UeXBlIHR5cGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCBhdXRob3JpemVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAg
QVZNZWRpYVR5cGUgbWVkaWFUeXBlID0gdHlwZSA9PSBNZWRpYVBlcm1pc3Npb25UeXBlOjpBdWRp
byA/IEFWTWVkaWFUeXBlQXVkaW8gOiBBVk1lZGlhVHlwZVZpZGVvOwogICAgIGF1dG8gZGVjaXNp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXShCT09MIGF1dGhvcml6ZWQpIG11dGFibGUgewpAQCAtMjQwLDcgKzI0
MCw3IEBAIE1lZGlhUGVybWlzc2lvblJlc3VsdCBjaGVja0FWQ2FwdHVyZUFjY2Vzc0ZvclR5cGUo
TWVkaWFQZXJtaXNzaW9uVHlwZSB0eXBlKQogCiB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlv
bkFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgYXV0aG9yaXplZCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQo
aXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2Nr
UHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTRlNw
ZWVjaFJlY29nbml6ZXJBdXRob3JpemF0aW9uU3RhdHVzIHN0YXR1cykgbXV0YWJsZSB7CiAgICAg
ICAgIGJvb2wgYXV0aG9yaXplZCA9IHN0YXR1cyA9PSBTRlNwZWVjaFJlY29nbml6ZXJBdXRob3Jp
emF0aW9uU3RhdHVzQXV0aG9yaXplZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1ByZWZlcmVuY2VPYnNlcnZlci5tbQppbmRleCBlZWZlZDFhMDc5ZGU3OTk2ODAxZTdj
MmYzNzA2YjFjOTY5NjU3NmIwLi4zMGUyMGNmZDk1NTBiMWE0NTUzZjAyNTlmMDRjNzY1MDdlNjg2
MjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QcmVmZXJlbmNl
T2JzZXJ2ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUHJlZmVyZW5j
ZU9ic2VydmVyLm1tCkBAIC04OSw3ICs4OSw3IEBAIC0gKHZvaWQpX25vdGlmeU9ic2VydmVyc09m
Q2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4KIHsK
ICAgICBbc3VwZXIgX25vdGlmeU9ic2VydmVyc09mQ2hhbmdlRnJvbVZhbHVlc0ZvcktleXM6b2xk
VmFsdWVzIHRvVmFsdWVzRm9yS2V5czpuZXdWYWx1ZXNdOwogCi0gICAgaWYgKCFpc01haW5UaHJl
YWQoKSkgeworICAgIGlmICghaXNNYWluUnVuTG9vcCgpKSB7CiAgICAgICAgIFtzZWxmIGZpbmRQ
cmVmZXJlbmNlQ2hhbmdlc0FuZE5vdGlmeUZvcktleXM6b2xkVmFsdWVzIHRvVmFsdWVzRm9yS2V5
czpuZXdWYWx1ZXNdOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggMGMyOTYx
MDE3NTY4ZTUzODlhODQzZDEwNGY3ZmU4OWQwM2JjNWQ4Ni4uZGIwMDlhZDI4MmZiYzA3NDQ5YjIx
MjU3MTA3NjkyNDIwM2FmMTk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0yMjQsNyArMjI0LDcgQEAgc3RhdGlj
IGJvb2wgaXNJbnRlcm5hbEluc3RhbGwoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBzdGF0
aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIG5vbkJyb3dzZXJTZXJ2aWNlcygpCiB7Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsK
ICAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0
b3I8QVNDSUlMaXRlcmFsPiB7CiAgICAgICAgICJjb20uYXBwbGUubHNkLm9wZW4iX3MsCiAgICAg
ICAgICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIl9zLApAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRp
YyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgbm9uQnJvd3NlclNlcnZpY2VzKCkKIAogc3Rh
dGljIGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBhZ3hDb21waWxlckNsYXNzZXMoKQogewot
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7
CiAgICAgc3RhdGljIGNvbnN0IGF1dG8gaW9raXRDbGFzc2VzID0gbWFrZU5ldmVyRGVzdHJveWVk
KFZlY3RvcjxBU0NJSUxpdGVyYWw+IHsKICAgICAgICAgIkFHWENvbW1hbmRRdWV1ZSJfcywKICAg
ICAgICAgIkFHWERldmljZSJfcywKQEAgLTI1Niw3ICsyNTYsNyBAQCBzdGF0aWMgY29uc3QgVmVj
dG9yPEFTQ0lJTGl0ZXJhbD4mIGFneENvbXBpbGVyQ2xhc3NlcygpCiAjaWYgUExBVEZPUk0oSU9T
KQogc3RhdGljIGNvbnN0IFZlY3RvcjxBU0NJSUxpdGVyYWw+JiBhZ3hDb21waWxlclNlcnZpY2Vz
KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5M
b29wKCkpOwogICAgIHN0YXRpYyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJv
eWVkKFZlY3RvcjxBU0NJSUxpdGVyYWw+IHsKICAgICAgICAgImNvbS5hcHBsZS5BR1hDb21waWxl
clNlcnZpY2UiX3MsCiAgICAgICAgICJjb20uYXBwbGUuQUdYQ29tcGlsZXJTZXJ2aWNlLVMyQTgi
X3MKQEAgLTI2Nyw3ICsyNjcsNyBAQCBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4m
IGFneENvbXBpbGVyU2VydmljZXMoKQogCiBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJh
bD4mIGRpYWdub3N0aWNTZXJ2aWNlcygpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2
aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7CiAgICAgICAg
ICJjb20uYXBwbGUuZGlhZ25vc3RpY2QiX3MsCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9zb2NrZXQvUmVtb3Rl
SW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9z
b2NrZXQvUmVtb3RlSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAyMWRiMTEzZTRjOGYxYWY4YzBk
MzgyOGZlYjEzMWE2NTg0ZTBmNGM0Li42ZjY5ODYxNWIzZWYwYzViMzRjNTA2ZDdiODM5NmQzOTI3
NGQ2MTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivc29j
a2V0L1JlbW90ZUluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0xMjEsNyAr
MTIxLDcgQEAgUmVtb3RlSW5zcGVjdG9yQ2xpZW50Ojp+UmVtb3RlSW5zcGVjdG9yQ2xpZW50KCkK
IAogdm9pZCBSZW1vdGVJbnNwZWN0b3JDbGllbnQ6OnNlbmRXZWJJbnNwZWN0b3JFdmVudChjb25z
dCBTdHJpbmcmIGV2ZW50KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNT
RVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKG1fY29ubmVjdGlvbklELmhhc1ZhbHVl
KCkpOwogICAgIGF1dG8gbWVzc2FnZSA9IGV2ZW50LnV0ZjgoKTsKICAgICBzZW5kKG1fY29ubmVj
dGlvbklELnZhbHVlKCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG1lc3NhZ2Uu
ZGF0YSgpKSwgbWVzc2FnZS5sZW5ndGgoKSk7CkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBSZW1v
dGVJbnNwZWN0b3JDbGllbnQ6OmNvbm5lY3Rpb25DbG9zZWQoKQogCiB2b2lkIFJlbW90ZUluc3Bl
Y3RvckNsaWVudDo6ZGlkQ2xvc2UoSW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3JTb2NrZXRFbmRw
b2ludCYsIENvbm5lY3Rpb25JRCkKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7Cisg
ICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXNdIHsKICAgICAgICAgY29ubmVjdGlvbkNsb3NlZCgp
OwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJh
bWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZy
YW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHAKaW5kZXggMDFhMWFjZmVhNjMxNTQyYzBlYWJiMThj
OGI1ZjAxZGVlMTUwMWJjZC4uZGFiMzJlMDQ5M2U2YTZlYzdhMTU1NjU5MDQyMzBhZDVjY2Q5NjMw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGlj
eUxpc3RlbmVyUHJveHkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5OjpkaWRSZWNlaXZlQXBwQm91bmREb21haW5SZXN1bHQoT3B0aW9uYWw8TmF2
aWdhCiAKIHZvaWQgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpkaWRSZWNlaXZlU2FmZUJy
b3dzaW5nUmVzdWx0cyhSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdX
YXJuaW5nKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CiAgICAgQVNTRVJUKCFtX3NhZmVCcm93c2luZ1dhcm5pbmcpOwogICAgIGlm
IChtX3BvbGljeVJlc3VsdCAmJiBtX2lzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pIHsKICAg
ICAgICAgaWYgKG1fcmVwbHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCA4YmI3OWQ3ZDAyZmQyMTQ4MjM0NmM0ZTQ0ZTM2ZWNhZWQ0MmY4YTU2Li5iZThjMjI2
OGMzZDM3OTIwZjEzZTU4MTQxNGY0NDlkN2NkNzc4OGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc2NjUsNyArNzY2NSw3IEBAIHN0YXRpYyBjb25zdCBW
ZWN0b3I8QVNDSUlMaXRlcmFsPiYgYXR0YWNobWVudEVsZW1lbnRTZXJ2aWNlcygpCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGdwdUlPS2l0
Q2xhc3NlcygpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNN
YWluUnVuTG9vcCgpKTsKICAgICBzdGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZl
ckRlc3Ryb3llZChWZWN0b3I8QVNDSUlMaXRlcmFsPiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICAgICAgIkFHWERldmljZVVzZXJDbGllbnQiX3MsCkBAIC03Njk3LDcgKzc2OTcsNyBA
QCBzdGF0aWMgY29uc3QgVmVjdG9yPEFTQ0lJTGl0ZXJhbD4mIGdwdUlPS2l0Q2xhc3NlcygpCiAK
IHN0YXRpYyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgZ3B1TWFjaFNlcnZpY2VzKCkKIHsK
LSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkp
OwogICAgIHN0YXRpYyBjb25zdCBhdXRvIHNlcnZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFZl
Y3RvcjxBU0NJSUxpdGVyYWw+IHsKICAgICAgICAgImNvbS5hcHBsZS5NVExDb21waWxlclNlcnZp
Y2UiX3MsCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKQEAgLTc3
MTAsNyArNzcxMCw3IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8QVNDSUlMaXRlcmFsPiYgZ3B1TWFj
aFNlcnZpY2VzKCkKIC8vIEZJWE1FKDIwNzcxNik6IFRoZSBmb2xsb3dpbmcgc2hvdWxkIGJlIHJl
bW92ZWQgd2hlbiB0aGUgR1BVIHByb2Nlc3MgaXMgY29tcGxldGUuCiBzdGF0aWMgY29uc3QgVmVj
dG9yPEFTQ0lJTGl0ZXJhbD4mIG1lZGlhUmVsYXRlZE1hY2hTZXJ2aWNlcygpCiB7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBz
dGF0aWMgY29uc3QgYXV0byBzZXJ2aWNlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChWZWN0b3I8QVND
SUlMaXRlcmFsPiB7CiAgICAgICAgICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRQcmVm
cyJfcywgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciJfcywKICAgICAg
ICAgImNvbS5hcHBsZS5hdWRpby5BdWRpb1F1ZXVlU2VydmVyIl9zLCAiY29tLmFwcGxlLmNvcmVt
ZWRpYS5lbmRwb2ludC54cGMiX3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmll
dy5tbQppbmRleCA0NjNmYTMzYTVjNTUxOTA5NGNiMDI0MzMxMTliZmYyODQ0ZDczNjAzLi4wMjJj
ZGM3ZmY0Mzg4NmVlNWUzYzhlYjZiY2Y0NGM5MjdjNDgwNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTEzNiw3ICsxMzYsNyBAQCAtICh2b2lkKXdlYl9z
ZXRDb250ZW50UHJvdmlkZXJEYXRhOihOU0RhdGEgKilkYXRhIHN1Z2dlc3RlZEZpbGVuYW1lOihO
U1N0cmluZyAqKQogICAgIF9zdWdnZXN0ZWRGaWxlbmFtZSA9IGFkb3B0TlMoW2ZpbGVuYW1lIGNv
cHldKTsKIAogICAgIFtQREZIb3N0Vmlld0NvbnRyb2xsZXIgY3JlYXRlSG9zdFZpZXc6W3NlbGYs
IHdlYWtTZWxmID0gV2Vha09iakNQdHI8V0tQREZWaWV3PihzZWxmKV0oUERGSG9zdFZpZXdDb250
cm9sbGVyICpob3N0Vmlld0NvbnRyb2xsZXIpIHsKLSAgICAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICAgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAKICAgICAgICAgV0tQREZW
aWV3ICphdXRvcmVsZWFzZWRTZWxmID0gd2Vha1NlbGYuZ2V0QXV0b3JlbGVhc2VkKCk7CiAgICAg
ICAgIGlmICghYXV0b3JlbGVhc2VkU2VsZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS1ByaW50aW5nVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1ByaW50aW5nVmlldy5tbQppbmRleCAwNTVjNjAxZmU3ZmQ4NTdlOTMzMTUyNDM3OTM2Njkw
YzQxYzFjYzcyLi4zM2JkZGM1MzVhZTdhN2U5ZDBhODBkYjg0OWYzZDljZjg3MjYwZDI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tQcmludGluZ1ZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLUHJpbnRpbmdWaWV3Lm1tCkBAIC02Myw3
ICs2Myw3IEBAIC0gKGlkKWluaXRXaXRoRnJhbWVQcm94eTooV2ViS2l0OjpXZWJGcmFtZVByb3h5
JilmcmFtZSB2aWV3OihOU1ZpZXcgKil3a1ZpZXcKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAg
Y2FsbE9uTWFpblRocmVhZChbZnJhbWUgPSBXVEZNb3ZlKF93ZWJGcmFtZSksIHByZXZpZXdzID0g
V1RGTW92ZShfcGFnZVByZXZpZXdzKV0geworICAgIGNhbGxPbk1haW5SdW5Mb29wKFtmcmFtZSA9
IFdURk1vdmUoX3dlYkZyYW1lKSwgcHJldmlld3MgPSBXVEZNb3ZlKF9wYWdlUHJldmlld3MpXSB7
CiAgICAgICAgIC8vIERlYWxsb2NhdGUgdGhlc2Ugb24gdGhlIG1haW4gdGhyZWFkLCBub3QgdGhl
IGN1cnJlbnQgdGhyZWFkLCBzaW5jZSB0aGUKICAgICAgICAgLy8gcmVmZXJlbmNlIGNvdW50aW5n
IGFuZCB0aGUgZGVzdHJ1Y3RvcnMgYXJlbid0IHRocmVhZHNhZmUuCiAgICAgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5jcHAKaW5kZXggNzY1MzM5MmIxOTM0YTJjYWI5ZTMwZjFlMzk4OTRmNGM2Njgx
NzlmNS4uNzBjNGY4MjNmM2JmNjYyNWQ1NTNjODc5MzIzYWY5ZTMxZjJkMDBkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcApAQCAtNDcsNyArNDcsNyBAQCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyJiBw
cgogCiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjp+V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bigpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVu
TG9vcCgpKTsKIH0KIAogSVBDOjpDb25uZWN0aW9uJiBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpjb25uZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMTdhZDEwMzZk
NGFiZjg4MTAzNWMzOGM0MmI3OTRmZjIwNGYyMzg4YS4uODk0ZDlkZDE5OGNhYzUyMGRkM2E0MjU3
YjUwNGNhMWM3ODRkOGZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKQEAgLTgxLDcg
KzgxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB3YWl0Rm9yRGlkRmx1c2hPblNlY29uZGFyeVRo
cmVhZChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyIHRhcmdldEZsdXNoSWRl
bnRpZmllcikKICAgICB7Ci0gICAgICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgICAg
ICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9yZWNlaXZlZEZsdXNoSWRlbnRpZmllckxvY2spOwogICAgICAgICBtX3JlY2VpdmVkRmx1
c2hJZGVudGlmaWVyQ2hhbmdlZENvbmRpdGlvbi53YWl0KG1fcmVjZWl2ZWRGbHVzaElkZW50aWZp
ZXJMb2NrLCBbJl0gewogICAgICAgICAgICAgcmV0dXJuIG1fcmVjZWl2ZWRGbHVzaElkZW50aWZp
ZXIgPT0gdGFyZ2V0Rmx1c2hJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
CmluZGV4IDk3ZjdhZGEzY2ExMjllMzhhMzU1YWY5MzM2MTc1NmZjZTBlYmNjNzUuLjQ3MzA0ZjA0
ODMxZGMzYjhiYzBlZWVmYzJmYjlhMDViZTVlODBmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5jcHAKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6bG9hZChjb25zdCBVUkwmIHVybCwgY29uc3QgQ29udGVudFR5cGUmIGNvbnRlbnRUeQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1Ro
aXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykK
ICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDb250ZW50VHlwZSYg
Y29udGVudFR5CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlOjpsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpCiB7Ci0gICAgY2FsbE9uTWFpblRo
cmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKKyAgICBjYWxsT25N
YWluUnVuTG9vcChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHRoaXNdIHsKICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rlc3RpbmF0aW9uUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uUHJveHkuY3BwCmluZGV4IDAyODMzMDU0YWUwZGY4MjllMjcxYmJiZjQ4YjM4YjMz
ODY0ODRhNTkuLjAxOWVjYzFlNzRmZDlkMDVmYmU2ZDY0OGNjNGEzMjY0NDUyYmIzNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9EZXN0
aW5hdGlvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eS5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lk
IFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6c3RvcFJlbmRlcmluZyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmCiAKIHZvaWQgUmVtb3RlQXVkaW9EZXN0aW5hdGlvblByb3h5Ojpy
ZW5kZXJRdWFudHVtKCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NF
UlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBtX2F1ZGlv
QnVmZmVyTGlzdC0+c2V0U2FtcGxlQ291bnQoV2ViQ29yZTo6QXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIuY3BwCmluZGV4IGYwYzMw
NDhjZjZjMDMyZGQwNDE5NGEyNDNlYmZiNDVjYWU3ZDYwNTQuLmFiOTkzNTA0YTdiNzRhYjM1ODQx
ZjU1Y2Q0ZWFkY2RjYTBjYWYwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyLmNwcApA
QCAtNTYsNyArNTYsNyBAQCBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyOjpSZW1vdGVBdWRpb1Nv
dXJjZVByb3ZpZGVyKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudAogICAgICwgbV9sb2dJZGVu
dGlmaWVyKGhlbHBlci5sb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKIHsKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIFVOVVNFRF9Q
QVJBTShoZWxwZXIpOwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKQEAgLTcwLDcgKzcwLDcgQEAg
UmVtb3RlQXVkaW9Tb3VyY2VQcm92aWRlcjo6flJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXIoKQog
CiB2b2lkIFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXI6OmNsb3NlKCkKIHsKLSAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIGlmICht
X2dwdVByb2Nlc3NDb25uZWN0aW9uKQogICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5h
dWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcigpLnJlbW92ZVByb3ZpZGVyKG1faWRlbnRpZmllcik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZUltYWdlRGVjb2RlckFWRi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAKaW5kZXggNWJkYzI2NGQxODE5Zjk3NmJlMjk3MGM0
ZTIwOTNjNzI1OTIwYWJiOC4uN2RkYzA0ZjcxNGQ1OThjNGY2YTBhZjM3NThiNTlmYjMxNjdhZmVh
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJ
bWFnZURlY29kZXJBVkYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNwcApAQCAtMTgzLDEwICsxODMsMTAgQEAgUGxhdGZv
cm1JbWFnZVB0ciBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4
KHNpemVfdCBpbmRleCwgU3UKICAgICAgICAgICAgIG1fZnJhbWVJbWFnZXMuYWRkKGluZGV4LCBp
bWFnZSk7CiAgICAgfTsKIAotICAgIGlmIChpc01haW5UaHJlYWQoKSkKKyAgICBpZiAoaXNNYWlu
UnVuTG9vcCgpKQogICAgICAgICBjcmVhdGVGcmFtZUltYWdlKCk7CiAgICAgZWxzZQotICAgICAg
ICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChXVEZNb3ZlKGNyZWF0ZUZyYW1lSW1hZ2UpKTsKKyAg
ICAgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFdURk1vdmUoY3JlYXRlRnJhbWVJbWFnZSkp
OwogCiAgICAgaWYgKG1fZnJhbWVJbWFnZXMuY29udGFpbnMoaW5kZXgpKQogICAgICAgICByZXR1
cm4gbV9mcmFtZUltYWdlcy5nZXQoaW5kZXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggODI2MjI1NDU5
MTdmMTkzNzg0NWE1ZjliNGNhMTJjYWMyYTgyZmY0Mi4uZWIzY2JiMjg2M2IzMjdiZDJjNTM0MDcx
N2QyZjBiMDhjZDJkNjc1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0xODQsNyArMTg0LDcgQEAgTGli
V2ViUlRDQ29kZWNzOjp+TGliV2ViUlRDQ29kZWNzKCkKIAogdm9pZCBMaWJXZWJSVENDb2RlY3M6
OnNldENhbGxiYWNrcyhib29sIHVzZUdQVVByb2Nlc3MpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghdXNlR1BV
UHJvY2VzcykgewogICAgICAgICB3ZWJydGM6OnNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyKTsKQEAgLTI1OSw3ICsyNTksNyBAQCB2b2lk
IExpYldlYlJUQ0NvZGVjczo6cmVnaXN0ZXJEZWNvZGVGcmFtZUNhbGxiYWNrKERlY29kZXImIGRl
Y29kZXIsIHZvaWQqIGRlY29kZQogCiB2b2lkIExpYldlYlJUQ0NvZGVjczo6ZmFpbGVkRGVjb2Rp
bmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIpCiB7Ci0gICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAgICAg
aWYgKGF1dG8qIGRlY29kZXIgPSBtX2RlY29kZXJzLmdldChkZWNvZGVySWRlbnRpZmllcikpCiAg
ICAgICAgIGRlY29kZXItPmhhc0Vycm9yID0gdHJ1ZTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lk
IExpYldlYlJUQ0NvZGVjczo6ZmFpbGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVj
b2RlcklkZW50aWZpZXIpCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGlu
ZyhSVENEZWNvZGVySWRlbnRpZmllciBkZWNvZGVySWRlbnRpZmllciwgdWludDMyX3QgdGltZVN0
YW1wLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmIHJlbW90ZVNhbXBsZSkKIHsKLSAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAK
ICAgICAvLyBGSVhNRTogRG8gZXJyb3IgbG9nZ2luZy4KICAgICBhdXRvKiBkZWNvZGVyID0gbV9k
ZWNvZGVycy5nZXQoZGVjb2RlcklkZW50aWZpZXIpOwpAQCAtNDMwLDcgKzQzMCw3IEBAIHZvaWQg
TGliV2ViUlRDQ29kZWNzOjpzZXRFbmNvZGVSYXRlcyhFbmNvZGVyJiBlbmNvZGVyLCB1aW50MzJf
dCBiaXRSYXRlLCB1aW50MzJfCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNv
ZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2Um
JiBkYXRhLCBjb25zdCB3ZWJydGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8mIGluZm8pCiB7Ci0g
ICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkp
OwogCiAgICAgLy8gRklYTUU6IERvIGVycm9yIGxvZ2dpbmcuCiAgICAgYXV0byogZW5jb2RlciA9
IG1fZW5jb2RlcnMuZ2V0KGlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5jcHAKaW5k
ZXggYjVmMGVhY2JlNTg5MGNiZDM0OTA1MDEyOGNkNjNjM2JkMjBlODllZC4uMzUwOWZlYWU4MDgx
YTk4M2VhMjIyY2I1YWMxZDQ5OWQ4YjE3YzdhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Jlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUmVzb2x2ZXIuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIExpYldlYlJUQ1Jl
c29sdmVyOjpzZW5kT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoSVBDOjpDb25uZWN0aW9uJik+
JiYgY2FsbGJhY2spCiB7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0oKSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW2NhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKCkgewogICAgICAgICBjYWxsYmFjayhXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkpOwogICAgIH0p
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ1NvY2tldEZhY3RvcnkuY3BwCmluZGV4IDY3ZmE0NjYyZjZm
MjI3ZDJlYTM5NzcyNjNjNGQyYzdkNzhlNzMyZWUuLmQ4OTdiYjNmMjg0NjY1YzZjMDMwNDg1Nzk1
NDJiYmM5M2JhMTNkMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENTb2NrZXRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDU29ja2V0RmFjdG9yeS5jcHAKQEAg
LTc0LDcgKzc0LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFj
dG9yeTo6Y3JlYXRlU2VydmVyVGNwU29ja2V0KGNvbnN0IHZvaWQKICAgICBpZiAobV9jb25uZWN0
aW9uKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92
aWRlcjo6Q3JlYXRlU2VydmVyVENQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0LCBvcHRpb25zKSwg
MCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICBj
YWxsT25NYWluUnVuTG9vcChbXSB7CiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgfSk7CiAgICAgICAg
IG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50
aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1p
blBvcnQsIG1heFBvcnQsIG9wdGlvbnNdKGF1dG8mIGNvbm5lY3Rpb24pIHsKQEAgLTkyLDcgKzky
LDcgQEAgcnRjOjpBc3luY1BhY2tldFNvY2tldCogTGliV2ViUlRDU29ja2V0RmFjdG9yeTo6Y3Jl
YXRlVWRwU29ja2V0KGNvbnN0IHZvaWQqIHNvY2sKICAgICBpZiAobV9jb25uZWN0aW9uKQogICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSVENQcm92aWRlcjo6Q3Jl
YXRlVURQU29ja2V0KHNvY2tldC0+aWRlbnRpZmllcigpLCBSVENOZXR3b3JrOjpTb2NrZXRBZGRy
ZXNzKGFkZHJlc3MpLCBtaW5Qb3J0LCBtYXhQb3J0KSwgMCk7CiAgICAgZWxzZSB7Ci0gICAgICAg
IGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbXSB7CiAg
ICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKICAgICAgICAgfSk7CiAgICAgICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5h
cHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlkZW50aWZpZXIoKSwgYWRkcmVzcyA9IFJUQ05l
dHdvcms6OlNvY2tldEFkZHJlc3MoYWRkcmVzcyksIG1pblBvcnQsIG1heFBvcnRdKGF1dG8mIGNv
bm5lY3Rpb24pIHsKQEAgLTExNCw3ICsxMTQsNyBAQCBydGM6OkFzeW5jUGFja2V0U29ja2V0KiBM
aWJXZWJSVENTb2NrZXRGYWN0b3J5OjpjcmVhdGVDbGllbnRUY3BTb2NrZXQoY29uc3Qgdm9pZAog
ICAgIGlmIChtX2Nvbm5lY3Rpb24pCiAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpDcmVhdGVDbGllbnRUQ1BTb2NrZXQoc29ja2V0LT5pZGVu
dGlmaWVyKCksIFJUQ05ldHdvcms6OlNvY2tldEFkZHJlc3MocHJlcGFyZVNvY2tldEFkZHJlc3Mo
bG9jYWxBZGRyZXNzLCBtX2Rpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucykpLCBSVENOZXR3
b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBhcmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1f
ZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0aW9ucy5vcHRz
KSwgMCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW10geworICAgICAg
ICBjYWxsT25NYWluUnVuTG9vcChbXSB7CiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICAgICAgfSk7CiAgICAg
ICAgIG1fcGVuZGluZ01lc3NhZ2VUYXNrcy5hcHBlbmQoW2lkZW50aWZpZXIgPSBzb2NrZXQtPmlk
ZW50aWZpZXIoKSwgbG9jYWxBZGRyZXNzID0gUlRDTmV0d29yazo6U29ja2V0QWRkcmVzcyhwcmVw
YXJlU29ja2V0QWRkcmVzcyhsb2NhbEFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zKSksIHJlbW90ZUFkZHJlc3MgPSBSVENOZXR3b3JrOjpTb2NrZXRBZGRyZXNzKHByZXBh
cmVTb2NrZXRBZGRyZXNzKHJlbW90ZUFkZHJlc3MsIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zKSksIHVzZXJBZ2VudCwgb3B0cyA9IG9wdGlvbnMub3B0c10oYXV0byYgY29ubmVjdGlv
bikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L1dlYlJUQ01vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL1dlYlJUQ01vbml0b3IuY3BwCmluZGV4IGNhOTdhZjMwM2U3YmUyYjAzNDA4MGZjZTRmZTlh
NWZiMWMzYTRiYzMuLjI0MzM2ZjA2ODkwNTU4MmFmMGQwZWEwNTI2MTYzMTE3Mjk0YTVhZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJSVENN
b25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
V2ViUlRDTW9uaXRvci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHZvaWQgV2ViUlRDTW9uaXRvcjo6c2VuZE9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKElQQzo6
Q29ubmVjdGlvbiYpPiYmIGNhbGxiYWNrKQogewotICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFtjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIHsKICAgICAgICAgY2FsbGJhY2soV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDZiYTBmNTVmMTI0MWZhMDc3NTBlYTRlMTQ4MDAzOWJk
MTk2Nzk2ZDAuLmYxZjQwZmZjNWY0Y2Q2MWU0YmIyMjBjNWJkYmI3Y2VmZWEzMzdhNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpA
QCAtNjU1LDggKzY1NSw4IEBAIFBERlBsdWdpbjo6flBERlBsdWdpbigpCiAjaWYgIUxPR19ESVNB
QkxFRAogdm9pZCBQREZQbHVnaW46OnBkZkxvZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0g
ICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG1lc3NhZ2UgPSBtZXNzYWdlLmlzb2xh
dGVkQ29weSgpXSB7CisgICAgaWYgKCFpc01haW5SdW5Mb29wKCkpIHsKKyAgICAgICAgY2FsbE9u
TWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWVzc2Fn
ZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldIHsKICAgICAgICAgICAgIHBkZkxvZyhtZXNzYWdl
KTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTY2OSw3ICs2NjksNyBAQCB2b2lk
IFBERlBsdWdpbjo6cGRmTG9nKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIAogdm9pZCBQREZQbHVn
aW46OmxvZ1N0cmVhbUxvYWRlcihXVEY6OlRleHRTdHJlYW0mIHN0cmVhbSwgV2ViQ29yZTo6TmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXImIGxvYWRlcikKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgYXV0byogcmVxdWVz
dCA9IGJ5dGVSYW5nZVJlcXVlc3RGb3JMb2FkZXIobG9hZGVyKTsKICAgICBzdHJlYW0gPDwgIigi
OwpAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgUERGUGx1Z2luOjpsb2dTdHJlYW1Mb2FkZXIoV1RG
OjpUZXh0U3RyZWFtJiBzdHJlYW0sIFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luCiAKIHZvaWQgUERG
UGx1Z2luOjp2ZXJib3NlTG9nKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAg
IEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgVGV4dFN0cmVhbSBzdHJlYW07CiAgICAg
c3RyZWFtIDw8ICJcbiI7CkBAIC03MTcsMTEgKzcxNywxMSBAQCB2b2lkIFBERlBsdWdpbjo6cmVj
ZWl2ZWROb25MaW5lYXJpemVkUERGU2VudGluZWwoKQogICAgIGlmIChtX2hhc0JlZW5EZXN0cm95
ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKKyAgICBp
ZiAoIWlzTWFpblJ1bkxvb3AoKSkgewogI2lmICFMT0dfRElTQUJMRUQKICAgICAgICAgcGRmTG9n
KCJEaXNhYmxpbmcgaW5jcmVtZW50YWwgUERGIGxvYWRpbmcgb24gYmFja2dyb3VuZCB0aHJlYWQi
KTsKICNlbmRpZgotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICAgICAgcmVjZWl2ZWROb25M
aW5lYXJpemVkUERGU2VudGluZWwoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTc0OCw3ICs3NDgsNyBAQCBzdGF0aWMgc2l6ZV90IGRhdGFQcm92aWRlckdldEJ5dGVzQXRQb3Np
dGlvbkNhbGxiYWNrKHZvaWQqIGluZm8sIHZvaWQqIGJ1ZmZlciwgbwogewogICAgIFJlZjxQREZQ
bHVnaW4+IHBsdWdpbiA9ICooKFBERlBsdWdpbiopaW5mbyk7CiAKLSAgICBpZiAoaXNNYWluVGhy
ZWFkKCkpIHsKKyAgICBpZiAoaXNNYWluUnVuTG9vcCgpKSB7CiAjaWYgIUxPR19ESVNBQkxFRAog
ICAgICAgICBwbHVnaW4tPnBkZkxvZyhtYWtlU3RyaW5nKCJIYW5kbGluZyByZXF1ZXN0IGZvciAi
LCBjb3VudCwgIiBieXRlcyBhdCBwb3NpdGlvbiAiLCBwb3NpdGlvbiwgIiBzeW5jaHJvbm91c2x5
IG9uIHRoZSBtYWluIHRocmVhZCIpKTsKICNlbmRpZgpAQCAtNzk5LDcgKzc5OSw3IEBAIHN0YXRp
YyBzaXplX3QgZGF0YVByb3ZpZGVyR2V0Qnl0ZXNBdFBvc2l0aW9uQ2FsbGJhY2sodm9pZCogaW5m
bywgdm9pZCogYnVmZmVyLCBvCiAKIHN0YXRpYyB2b2lkIGRhdGFQcm92aWRlckdldEJ5dGVSYW5n
ZXNDYWxsYmFjayh2b2lkKiBpbmZvLCBDRk11dGFibGVBcnJheVJlZiBidWZmZXJzLCBjb25zdCBD
RlJhbmdlKiByYW5nZXMsIHNpemVfdCBjb3VudCkKIHsKLSAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAKICNpZiAhTE9HX0RJU0FCTEVE
CiAgICAgUmVmPFBERlBsdWdpbj4gZGVidWdQbHVnaW5SZWYgPSAqKChQREZQbHVnaW4qKWluZm8p
OwpAQCAtODQ2LDcgKzg0Niw3IEBAIHN0YXRpYyB2b2lkIGRhdGFQcm92aWRlckdldEJ5dGVSYW5n
ZXNDYWxsYmFjayh2b2lkKiBpbmZvLCBDRk11dGFibGVBcnJheVJlZiBidWZmCiAKIHN0YXRpYyB2
b2lkIGRhdGFQcm92aWRlclJlbGVhc2VJbmZvQ2FsbGJhY2sodm9pZCogaW5mbykKIHsKLSAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CiAg
ICAgYWRvcHRSZWYoKFBERlBsdWdpbiopaW5mbyk7CiB9CiAKQEAgLTg3MSw3ICs4NzEsNyBAQCB2
b2lkIFBERlBsdWdpbjo6dGhyZWFkRW50cnkoUmVmPFBERlBsdWdpbj4mJiBwcm90ZWN0ZWRQbHVn
aW4pCiAgICAgYXV0byBzY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFtwcm90ZWN0ZWRQbHVnaW4g
PSBXVEZNb3ZlKHByb3RlY3RlZFBsdWdpbildICgpIG11dGFibGUgewogICAgICAgICAvLyBLZWVw
IHRoZSBQREZQbHVnaW4gYWxpdmUgdW50aWwgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uIGFuZCB0
aGUgZW5kCiAgICAgICAgIC8vIG9mIHRoZSBsYXN0IG1haW4gdGhyZWFkIHRhc2sgc3VibWl0dGVk
IGJ5IHRoaXMgZnVuY3Rpb24uCi0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFBs
dWdpbiA9IFdURk1vdmUocHJvdGVjdGVkUGx1Z2luKV0geyB9KTsKKyAgICAgICAgY2FsbE9uTWFp
blJ1bkxvb3AoW3Byb3RlY3RlZFBsdWdpbiA9IFdURk1vdmUocHJvdGVjdGVkUGx1Z2luKV0geyB9
KTsKICAgICB9KTsKIAogICAgIC8vIEJhbGFuY2VkIGJ5IGEgZGVyZWYgaW5zaWRlIG9mIHRoZSBk
YXRhUHJvdmlkZXJSZWxlYXNlSW5mb0NhbGxiYWNrCkBAIC04OTksNyArODk5LDcgQEAgdm9pZCBQ
REZQbHVnaW46OnRocmVhZEVudHJ5KFJlZjxQREZQbHVnaW4+JiYgcHJvdGVjdGVkUGx1Z2luKQog
CiAgICAgW21fYmFja2dyb3VuZFRocmVhZERvY3VtZW50IHByZWxvYWREYXRhT2ZQYWdlc0luUmFu
Z2U6TlNNYWtlUmFuZ2UoMCwgMSkgb25RdWV1ZTpmaXJzdFBhZ2VRdWV1ZS0+ZGlzcGF0Y2hRdWV1
ZSgpIGNvbXBsZXRpb246WyZmaXJzdFBhZ2VTZW1hcGhvcmUsIHRoaXNdIChOU0luZGV4U2V0ICop
IG11dGFibGUgewogICAgICAgICBpZiAobV9pbmNyZW1lbnRhbFBERkxvYWRpbmdFbmFibGVkKSB7
Ci0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7CisgICAgICAgICAgICBjYWxs
T25NYWluUnVuTG9vcChbdGhpc10gewogICAgICAgICAgICAgICAgIGFkb3B0QmFja2dyb3VuZFRo
cmVhZERvY3VtZW50KCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSBlbHNlCkBAIC05MjQs
NyArOTI0LDcgQEAgdm9pZCBQREZQbHVnaW46OnVuY29uZGl0aW9uYWxDb21wbGV0ZU91dHN0YW5k
aW5nUmFuZ2VSZXF1ZXN0cygpCiAKIHNpemVfdCBQREZQbHVnaW46OmdldFJlc291cmNlQnl0ZXNB
dFBvc2l0aW9uTWFpblRocmVhZCh2b2lkKiBidWZmZXIsIG9mZl90IHBvc2l0aW9uLCBzaXplX3Qg
Y291bnQpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWlu
UnVuTG9vcCgpKTsKICAgICBBU1NFUlQobV9kb2N1bWVudEZpbmlzaGVkTG9hZGluZyk7CiAgICAg
QVNTRVJUKHBvc2l0aW9uID49IDApOwogCkBAIC05NDMsNyArOTQzLDcgQEAgc2l6ZV90IFBERlBs
dWdpbjo6Z2V0UmVzb3VyY2VCeXRlc0F0UG9zaXRpb25NYWluVGhyZWFkKHZvaWQqIGJ1ZmZlciwg
b2ZmX3QgcG9zaXQKIAogdm9pZCBQREZQbHVnaW46OmdldFJlc291cmNlQnl0ZXNBdFBvc2l0aW9u
KHNpemVfdCBjb3VudCwgb2ZmX3QgcG9zaXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgdWludDhfdCosIHNpemVfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsgCisgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgQVNT
RVJUKHBvc2l0aW9uID49IDApOwogCiAgICAgQnl0ZVJhbmdlUmVxdWVzdCByZXF1ZXN0ID0geyBz
dGF0aWNfY2FzdDx1aW50NjRfdD4ocG9zaXRpb24pLCBjb3VudCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikgfTsKQEAgLTEwMDIsNyArMTAwMiw3IEBAIHZvaWQgUERGUGx1Z2luOjphZG9wdEJh
Y2tncm91bmRUaHJlYWREb2N1bWVudCgpCiAKICAgICBBU1NFUlQoIW1fcGRmRG9jdW1lbnQpOwog
ICAgIEFTU0VSVChtX2JhY2tncm91bmRUaHJlYWREb2N1bWVudCk7Ci0gICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogI2lmICFMT0dfRElT
QUJMRUQKICAgICBwZGZMb2coIkFkb3B0aW5nIFBERkRvY3VtZW50IGZyb20gYmFja2dyb3VuZCB0
aHJlYWQiKTsKQEAgLTE2MTAsNyArMTYxMCw3IEBAIHZvaWQgUERGUGx1Z2luOjpkb2N1bWVudERh
dGFEaWRGaW5pc2hMb2FkaW5nKCkKIHZvaWQgUERGUGx1Z2luOjppbnN0YWxsUERGRG9jdW1lbnQo
KQogewogICAgIEFTU0VSVChtX3BkZkRvY3VtZW50KTsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIExPRyhJbmNyZW1lbnRhbFBE
RiwgIkluc3RhbGxpbmcgUERGIGRvY3VtZW50Iik7CiAKICAgICBpZiAobV9oYXNCZWVuRGVzdHJv
eWVkKQpAQCAtMTc2MCw3ICsxNzYwLDcgQEAgdm9pZCBQREZQbHVnaW46Om1hbnVhbFN0cmVhbURp
ZEZhaWwoYm9vbCkKIAogdm9pZCBQREZQbHVnaW46OnRyeVJ1blNjcmlwdHNJblBERkRvY3VtZW50
KCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5M
b29wKCkpOwogCiAgICAgaWYgKCFtX3BkZkRvY3VtZW50IHx8ICFtX2RvY3VtZW50RmluaXNoZWRM
b2FkaW5nKQogICAgICAgICByZXR1cm47CkBAIC0xNzgxLDEyICsxNzgxLDEyIEBAIHZvaWQgUERG
UGx1Z2luOjp0cnlSdW5TY3JpcHRzSW5QREZEb2N1bWVudCgpCiAgICAgYXV0byYgcmF3UXVldWUg
PSBzY3JpcHRVdGlsaXR5UXVldWUuZ2V0KCk7CiAgICAgUmV0YWluUHRyPENHUERGRG9jdW1lbnRS
ZWY+IGRvY3VtZW50ID0gW21fcGRmRG9jdW1lbnQgZG9jdW1lbnRSZWZdOwogICAgIHJhd1F1ZXVl
LmRpc3BhdGNoKFtzY3JpcHRVdGlsaXR5UXVldWUgPSBXVEZNb3ZlKHNjcmlwdFV0aWxpdHlRdWV1
ZSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGRvY3Vt
ZW50ID0gV1RGTW92ZShkb2N1bWVudCldICgpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoIWlz
TWFpblRocmVhZCgpKTsKKyAgICAgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOwogCiAgICAg
ICAgIFZlY3RvcjxSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+PiBzY3JpcHRzOwogICAgICAgICBnZXRB
bGxTY3JpcHRzSW5QREZEb2N1bWVudChkb2N1bWVudC5nZXQoKSwgc2NyaXB0cyk7CiAKLSAgICAg
ICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2NyaXB0cyA9IFdURk1vdmUoc2NyaXB0cyldICgpIG11dGFibGUgeworICAg
ICAgICBjYWxsT25NYWluUnVuTG9vcChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2NyaXB0cyA9IFdURk1vdmUoc2NyaXB0cyldICgpIG11dGFibGUgewog
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzY3JpcHRzKSk7CiAgICAgICAg
IH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNWJkZjk0MTQyMmU0ZjM1NTkw
M2Q4ODEzZDg4ZTgzZjFkNTFiMmZjMy4uMTNmM2I5NjY1ZTgzNWU5NjRlYmQwZTI2NGJmNDcwMjE1
M2ExMWNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNDcsNyArMTQ3LDcgQEAgdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCkKIAogdm9p
ZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmRpZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1h
dGNoaW5nUmVxdWVzdCwgT3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYg
cmVzdWx0KQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzTWFp
blJ1bkxvb3AoKSk7CiAKICAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1fb25nb2lu
Z01hdGNoUmVnaXN0cmF0aW9uVGFza3MudGFrZShtYXRjaGluZ1JlcXVlc3QpKQogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIHZv
aWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRNYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBt
YXRjaGluZ1JlcXVlc3QsIE9wdGlvCiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRH
ZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IG1hdGNoaW5nUmVxdWVzdCwgVmVjdG9yPFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmIHJlZ2lzdHJhdGlvbnMpCiB7Ci0gICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmIChh
dXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbV9vbmdvaW5nR2V0UmVnaXN0cmF0aW9uc1Rhc2tzLnRh
a2UobWF0Y2hpbmdSZXF1ZXN0KSkKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShy
ZWdpc3RyYXRpb25zKSk7CkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OmRpZEdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgbWF0Y2hpbmdSZXF1ZXN0LCBWZWN0
b3IKIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKFNlY3Vy
aXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJh
dGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlmICghbWF5SGF2ZVNlcnZpY2VX
b3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKHRvcE9yaWdpbikpIHsKICAgICAgICAgY2FsbGJhY2so
V1RGOjpudWxsb3B0KTsKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6c2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQoRG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50
SQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhTZWN1cml0
eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3Ry
YXRpb25zQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogCiAgICAgaWYgKCFtYXlIYXZlU2Vydmlj
ZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4odG9wT3JpZ2luKSkgewogICAgICAgICBjYWxsYmFj
ayh7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCA5MTA1
YTMxMWU1ZmFhMmFlYmI5NDcxNGIzZDBjYzA5NjNhYzE3OGMwLi4yNmZjNmM1ODE3MDQ3ZDgyZWRi
Mjk5NmI1MDg0YjljOTBkMjY0MmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50LmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGJsb2JVUkwgPSBibG9iVVJMLmlzb2xhdGVkQ29weSgp
XSAoKSB7CisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgYmxvYlVSTCA9IGJsb2JVUkwuaXNvbGF0ZWRDb3B5KCldICgpIHsKICAgICAg
ICAgYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2lu
Z2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KG1fc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpOwogICAgICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewogICAgICAgICAg
ICAgZGlkRmFpbChpbnRlcm5hbEVycm9yKGJsb2JVUkwpKTsKQEAgLTIyMiw4ICsyMjIsOCBAQCB2
b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNsZWFudXAoKQogewogICAgIG1f
Y29ubmVjdGlvbiA9IG51bGxwdHI7CiAKLSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gKCkg
eworICAgIGlmICghaXNNYWluUnVuTG9vcCgpKSB7CisgICAgICAgIGNhbGxPbk1haW5SdW5Mb29w
KFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldICgpIHsKICAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPmNsZWFudXAoKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApp
bmRleCBiOGMwN2I4YzI1NDA2MmRhZmJmZDNjYzY4NDIyNzFmYWRmNzYxMzI1Li4wMDkwMTRhNTM2
YmY5ZDY4ZGZiZTVkYTE0MGRkYjUxN2FlYWNkMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC01NDIsNyArNTQyLDcg
QEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkmLCBHcmFwaGljc0Nv
bnRleHQmIGdyYXBoaWNzQ29udGV4dCwgY28KIAogICAgICAgICBpZiAoZmluZEluZGljYXRvclJl
Y3QgIT0gbV9maW5kSW5kaWNhdG9yUmVjdCkgewogICAgICAgICAgICAgLy8gV2UgYXJlIHVuZGVy
bmVhdGggcGFpbnRpbmcsIHNvIGl0J3Mgbm90IHNhZmUgdG8gbXV0YXRlIHRoZSBsYXllciB0cmVl
IHN5bmNocm9ub3VzbHkuCi0gICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrV2ViUGFn
ZSA9IG1ha2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFt3ZWFrV2ViUGFnZSA9IG1ha2VXZWFrUHRyKG1fd2ViUGFnZSldIHsKICAgICAgICAgICAg
ICAgICBpZiAoIXdlYWtXZWJQYWdlKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICAgICAgd2Vha1dlYlBhZ2UtPmZpbmRDb250cm9sbGVyKCkuZGlkU2Nyb2xsQWZmZWN0
aW5nRmluZEluZGljYXRvclBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDQzOTRjYzU3NjJmOTViZWI4MGYwMzcwYzNmMTg2MDBk
NjdkZDU1OGQuLmZmZTc5YWM2MzlkOTMwOTA1MWZkY2MxM2RkNmZhYThiNzNlZWUxNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01OTE1LDcg
KzU5MTUsNyBAQCB2b2lkIFdlYlBhZ2U6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQpCiB7CiAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgPT0gJmVsZW1lbnQpIHsKICAg
ICAgICAgbV9yZWNlbnRseUJsdXJyZWRFbGVtZW50ID0gV1RGTW92ZShtX2ZvY3VzZWRFbGVtZW50
KTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
dGhpcyldIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmUHRyKHRoaXMpXSB7CiAgICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9yZWNlbnRs
eUJsdXJyZWRFbGVtZW50KSB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAgICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVsZW1lbnRE
aWRCbHVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQppbmRleCA1MmQ4ZjFkOTE3YTk3ZjliOTNhNmU1MWM3YjJjYmIxMWY4Njgw
YmIzLi5hNWE1MGQyOWRiMDcxMDVmOWQwODQ3NzA1Zjc0ZjE3MTA5MzJlMGM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAt
NzkwLDcgKzc5MCw3IEBAIHZvaWQgV2ViUGFnZTo6aGFuZGxlU3ludGhldGljQ2xpY2soTm9kZSYg
bm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3JlOjpGCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgY29udGVudENoYW5nZU9ic2VydmVyLnN0b3BDb250ZW50T2JzZXJ2YXRpb24o
KTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlz
KSwgdGFyZ2V0Tm9kZSA9IFJlZjxOb2RlPihub2RlUmVzcG9uZGluZ1RvQ2xpY2spLCBsb2NhdGlv
biwgbW9kaWZpZXJzLCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UsIHBvaW50ZXJJZF0geworICAgIGNh
bGxPbk1haW5SdW5Mb29wKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGFyZ2V0
Tm9kZSA9IFJlZjxOb2RlPihub2RlUmVzcG9uZGluZ1RvQ2xpY2spLCBsb2NhdGlvbiwgbW9kaWZp
ZXJzLCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UsIHBvaW50ZXJJZF0gewogICAgICAgICBpZiAocHJv
dGVjdGVkVGhpcy0+bV9pc0Nsb3NlZCB8fCAhcHJvdGVjdGVkVGhpcy0+Y29yZVBhZ2UoKSkKICAg
ICAgICAgICAgIHJldHVybjsKIApAQCAtODExLDcgKzgxMSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
RmluaXNoQ29udGVudENoYW5nZU9ic2VydmluZyhXS0NvbnRlbnRDaGFuZ2Ugb2JzZXJ2ZWRDb250
ZW50Q2hhCiAgICAgTE9HX1dJVEhfU1RSRUFNKENvbnRlbnRPYnNlcnZhdGlvbiwgc3RyZWFtIDw8
ICJkaWRGaW5pc2hDb250ZW50Q2hhbmdlT2JzZXJ2aW5nOiBwZW5kaW5nIHRhcmdldCBub2RlKCIg
PDwgbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlIDw8ICIpIik7CiAgICAgaWYgKCFtX3BlbmRp
bmdTeW50aGV0aWNDbGlja05vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBjYWxsT25NYWluVGhy
ZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGFyZ2V0Tm9kZSA9IFJlZjxO
b2RlPigqbV9wZW5kaW5nU3ludGhldGljQ2xpY2tOb2RlKSwgb3JpZ2luYWxEb2N1bWVudCA9IG1h
a2VXZWFrUHRyKG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZS0+ZG9jdW1lbnQoKSksIG9ic2Vy
dmVkQ29udGVudENoYW5nZSwgbG9jYXRpb24gPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja0xvY2F0
aW9uLCBtb2RpZmllcnMgPSBtX3BlbmRpbmdTeW50aGV0aWNDbGlja01vZGlmaWVycywgcG9pbnRl
cklkID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tQb2ludGVySWRdIHsKKyAgICBjYWxsT25NYWlu
UnVuTG9vcChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRhcmdldE5vZGUgPSBS
ZWY8Tm9kZT4oKm1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrTm9kZSksIG9yaWdpbmFsRG9jdW1lbnQg
PSBtYWtlV2Vha1B0cihtX3BlbmRpbmdTeW50aGV0aWNDbGlja05vZGUtPmRvY3VtZW50KCkpLCBv
YnNlcnZlZENvbnRlbnRDaGFuZ2UsIGxvY2F0aW9uID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tM
b2NhdGlvbiwgbW9kaWZpZXJzID0gbV9wZW5kaW5nU3ludGhldGljQ2xpY2tNb2RpZmllcnMsIHBv
aW50ZXJJZCA9IG1fcGVuZGluZ1N5bnRoZXRpY0NsaWNrUG9pbnRlcklkXSB7CiAgICAgICAgIGlm
IChwcm90ZWN0ZWRUaGlzLT5tX2lzQ2xvc2VkIHx8ICFwcm90ZWN0ZWRUaGlzLT5jb3JlUGFnZSgp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBpZiAoIW9yaWdpbmFsRG9jdW1lbnQgfHwg
JnRhcmdldE5vZGUtPmRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudCkKQEAgLTEyMzgsNyAr
MTIzOCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlSW5wdXRDb250ZXh0QWZ0ZXJCbHVycmluZ0Fu
ZFJlZm9jdXNpbmdFbGVtZW50SWZOZWVkZWQoRWxlbWVuCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1faGFzUGVuZGluZ0lucHV0Q29udGV4dFVwZGF0ZUFmdGVyQmx1cnJpbmdBbmRSZWZvY3VzaW5n
RWxlbWVudCA9IHRydWU7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWZQdHIodGhpcyldIHsKKyAgICBjYWxsT25NYWluUnVuTG9vcChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyldIHsKICAgICAgICAgaWYgKG1faGFzUGVuZGlu
Z0lucHV0Q29udGV4dFVwZGF0ZUFmdGVyQmx1cnJpbmdBbmRSZWZvY3VzaW5nRWxlbWVudCkKICAg
ICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VXBkYXRlSW5wdXRDb250ZXh0
QWZ0ZXJCbHVycmluZ0FuZFJlZm9jdXNpbmdFbGVtZW50KCkpOwogICAgICAgICBtX2hhc1BlbmRp
bmdJbnB1dENvbnRleHRVcGRhdGVBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnQgPSBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9E
cmF3aW5nQXJlYU1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
RHJhd2luZ0FyZWFNYWMuY3BwCmluZGV4IDc4YzI5M2Q4MGFmNjQ3N2Q0OTZhMGY5N2YyN2NiY2Nm
OTQyMzExZTMuLjAzMDAyYTAxMTZkMGI5NTA0NGIzNDVjZjA2MmIzYzVhMjg2MTM3ZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9EcmF3aW5nQXJlYU1h
Yy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0RyYXdpbmdB
cmVhTWFjLmNwcApAQCAtOTMsNyArOTMsNyBAQCBib29sIERpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yzo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpCiAKIHZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9y
TWFjOjpkaXNwbGF5TGlua0ZpcmVkKCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwor
ICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogICAgIGlmICghbV9maXJzdENhbGxiYWNrSW5D
dXJyZW50UnVubG9vcCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZmlyc3RDYWxsYmFja0luQ3Vy
cmVudFJ1bmxvb3AgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0QmFzZS5tbQppbmRleCBiZGYwYjQ4NTVkNDI5OTk1YTE4MDYxN2VjNjZlZTFlYTYyNjE4MmNi
Li44NzFhNzM0MDM4MzU5MDAzZDkxOWQwYjA4MzMxYTgxMDExMmRhNGVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdEJhc2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tCkBAIC00OCw3ICs0OCw3IEBAIEBp
bXBsZW1lbnRhdGlvbiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZQogCiAtIChOYWtl
ZFB0cjxXZWJDb3JlOjpBWE9iamVjdENhY2hlPilheE9iamVjdENhY2hlCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIAogICAgIGlm
ICghbV9wYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTY2LDcgKzY2LDcgQEAgLSAo
TmFrZWRQdHI8V2ViQ29yZTo6QVhPYmplY3RDYWNoZT4pYXhPYmplY3RDYWNoZQogCiAtIChpZClh
Y2Nlc3NpYmlsaXR5UGx1Z2luT2JqZWN0CiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBhdXRvIHJldHJpZXZlQmxvY2sgPSBb
JnNlbGZdKCkgLT4gaWQgewogICAgICAgICBpZCBheFBsdWdpbiA9IG5pbDsKICAgICAgICAgYXV0
byBkaXNwYXRjaEJsb2NrID0gWyZheFBsdWdpbiwgJnNlbGZdIHsKQEAgLTc0LDEwICs3NCwxMCBA
QCAtIChpZClhY2Nlc3NpYmlsaXR5UGx1Z2luT2JqZWN0CiAgICAgICAgICAgICAgICAgYXhQbHVn
aW4gPSBzZWxmLT5tX3BhZ2UtPmFjY2Vzc2liaWxpdHlPYmplY3RGb3JNYWluRnJhbWVQbHVnaW4o
KTsKICAgICAgICAgfTsKIAotICAgICAgICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgIGlm
IChpc01haW5SdW5Mb29wKCkpCiAgICAgICAgICAgICBkaXNwYXRjaEJsb2NrKCk7CiAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZkaXNwYXRjaEJs
b2NrXSB7CisgICAgICAgICAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZkaXNwYXRjaEJs
b2NrXSB7CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hCbG9jaygpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0KQEAgLTEwNyw3ICsxMDcsNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdE9i
amVjdFdyYXBwZXIKIAogLSAodm9pZClzZXRXZWJQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBh
Z2U+KXBhZ2UKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01h
aW5SdW5Mb29wKCkpOwogCiAgICAgbV9wYWdlID0gcGFnZTsKIApAQCAtMTI0LDEzICsxMjQsMTMg
QEAgLSAodm9pZClzZXRXZWJQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2U+KXBhZ2UKIAog
LSAodm9pZClzZXRIYXNNYWluRnJhbWVQbHVnaW46KGJvb2wpaGFzUGx1Z2luCiB7Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKICAgICBt
X2hhc01haW5GcmFtZVBsdWdpbiA9IGhhc1BsdWdpbjsKIH0KIAogLSAodm9pZClzZXRSZW1vdGVQ
YXJlbnQ6KGlkKXBhcmVudAogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNT
RVJUKGlzTWFpblJ1bkxvb3AoKSk7CiAgICAgbV9wYXJlbnQgPSBwYXJlbnQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcAppbmRleCA1OTY0OTFkMDY4NWM4NmMxYjc3NjJhYTUwYWE0ZmY0YjMx
ZTVlYjI0Li4zYjJkZGZhMjgzN2FkZDE2NzhmNjA5YjE0MWE3MWFhMWJlMjQ2NmY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgdm9pZCBSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWEKIAogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpyZW1vdGVBdWRpb1NhbXBs
ZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0
YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIHNpemVf
dCBzaXplKQogewotICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghaXNN
YWluUnVuTG9vcCgpKTsKICAgICBhdWRpb1NhbXBsZXNBdmFpbGFibGUodGltZSwgZGF0YSwgZGVz
Y3JpcHRpb24sIHNpemUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCmlu
ZGV4IDhmYWVkYjU2NDQ5NGRmMTZkZmQ3MWY2MDgyNGIxNTRkNTU3ZjVhZGQuLjk1YmJkNTQ4M2Nm
ZWExN2M5MTJlZDViNWYxM2Y0MzFmYWUzNzEyNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
UHJveHkuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eTo6flJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSgpCiAKIElQQzo6Q29ubmVjdGlvbiog
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5Ojpjb25uZWN0aW9uKCkKIHsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQog
ICAgICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBhY2IzMjg0NTJhMjM1OTZhZjExYjg3ZmFjMjZjZWY5YWY3
OTEwNjIuLjE5NWY5ZTI1NjZmZjZjMWZlYjk2M2JlYmI0ZTNlN2I2N2QxZTRlNTUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAyMS0wMy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFN0b3AgdXNpbmcgY2FsbE9uTWFpblRocmVhZCgpIC8gaXNNYWluVGhyZWFkKCkgaW4gV2ViS2l0
MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTg2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNv
cnJlc3BvbmRpbmcgc3R5bGUgY2hlY2tlciBydWxlcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5OgorICAgICAgICAoY2hlY2tfbm9fY2FsbG9ubWFp
bnRocmVhZCk6CisgICAgICAgIChjaGVja19ub19pc21haW50aHJlYWQpOgorICAgICAgICAoY2hl
Y2tfc3R5bGUpOgorICAgICAgICAoQ3BwQ2hlY2tlcik6CisKIDIwMjEtMDMtMDkgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW1dl
YlJUQ10gVmlkZW9FbmNvZGVyIHN0aWxsIGRvZXNuJ3QgY29tcGx5IHdpdGggV2ViS2l0IHN0eWxl
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CmluZGV4IDQ0
NzRiYjAyNDFjNGExZDkyYWZjYWFjNWY2NGU4ZWFiNzJmNWNiMWMuLjVjOWUxMTU1ODlkZWJiZDQw
ZjllNDk4NGZiZjQwZWIxY2U5YTY1YjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvY3BwLnB5CkBAIC0yNzIzLDYgKzI3MjMsNTMgQEAgZGVmIGNoZWNrX3d0Zl9v
cHRpb25hbChjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUsIGVycm9yKToKICAg
ICBlcnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvd3RmX29wdGlvbmFsJywgNCwgIlVzZSAnV1RG
OjpPcHRpb25hbDw+JyBpbnN0ZWFkIG9mICdzdGQ6Om9wdGlvbmFsPD4nLiIpCiAKIAorZGVmIGNo
ZWNrX2NhbGxvbm1haW50aHJlYWQoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwg
ZmlsZV9zdGF0ZSwgZXJyb3IpOgorICAgICIiIkxvb2tzIGZvciB1c2Ugb2YgJ2NhbGxPbk1haW5U
aHJlYWQoKScgd2hpY2ggc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggJ2NhbGxPbk1haW5SdW5Mb29w
KCknLgorCisgICAgQXJnczoKKyAgICAgIGZpbGVuYW1lOiBUaGUgY3VycmVudCBmaWxlIGNwcF9z
dHlsZSBpcyBydW5uaW5nIG92ZXIuCisgICAgICBjbGVhbl9saW5lczogQSBDbGVhbnNlZExpbmVz
IGluc3RhbmNlIGNvbnRhaW5pbmcgdGhlIGZpbGUuCisgICAgICBsaW5lX251bWJlcjogVGhlIG51
bWJlciBvZiB0aGUgbGluZSB0byBjaGVjay4KKyAgICAgIGZpbGVfc3RhdGU6IEEgX0ZpbGVTdGF0
ZSBpbnN0YW5jZSB3aGljaCBtYWludGFpbnMgaW5mb3JtYXRpb24gYWJvdXQKKyAgICAgICAgICAg
ICAgICAgIHRoZSBzdGF0ZSBvZiB0aGluZ3MgaW4gdGhlIGZpbGUuCisgICAgICBlcnJvcjogVGhl
IGZ1bmN0aW9uIHRvIGNhbGwgd2l0aCBhbnkgZXJyb3JzIGZvdW5kLgorICAgICIiIgorCisgICAg
aWYgbm90IF9pc193ZWJraXQyX2ZpbGUoZmlsZW5hbWUpOgorICAgICAgICByZXR1cm4KKworICAg
IGxpbmUgPSBjbGVhbl9saW5lcy5lbGlkZWRbbGluZV9udW1iZXJdICAjIEdldCByaWQgb2YgY29t
bWVudHMgYW5kIHN0cmluZ3MuCisgICAgdXNpbmdfY2FsbG9ubWFpbnRocmVhZCA9IHNlYXJjaChy
J1xiY2FsbE9uTWFpblRocmVhZFxzKlwoJywgbGluZSkKKyAgICBpZiB1c2luZ19jYWxsb25tYWlu
dGhyZWFkOgorICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3J1bnRpbWUvY2FsbG9ubWFpbnRo
cmVhZCcsIDQsICJVc2UgJ2NhbGxPbk1haW5SdW5Mb29wKCknIGluc3RlYWQgb2YgJ2NhbGxPbk1h
aW5UaHJlYWQoKScgaW4gU291cmNlL1dlYktpdC4iKQorICAgIHVzaW5nX2NhbGxvbm1haW50aHJl
YWRhbmR3YWl0ID0gc2VhcmNoKHInXGJjYWxsT25NYWluVGhyZWFkQW5kV2FpdFxzKlwoJywgbGlu
ZSkKKyAgICBpZiB1c2luZ19jYWxsb25tYWludGhyZWFkYW5kd2FpdDoKKyAgICAgICAgZXJyb3Io
bGluZV9udW1iZXIsICdydW50aW1lL2NhbGxvbm1haW50aHJlYWQnLCA0LCAiVXNlICdjYWxsT25N
YWluUnVuTG9vcEFuZFdhaXQoKScgaW5zdGVhZCBvZiAnY2FsbE9uTWFpblRocmVhZEFuZFdhaXQo
KScgaW4gU291cmNlL1dlYktpdC4iKQorCisKK2RlZiBjaGVja19pc21haW50aHJlYWQoZmlsZW5h
bWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgorICAgICIi
Ikxvb2tzIGZvciB1c2Ugb2YgJ2lzTWFpblRocmVhZCgpJyB3aGljaCBzaG91bGQgYmUgcmVwbGFj
ZWQgd2l0aCAnaXNNYWluUnVuTG9vcCgpJy4KKworICAgIEFyZ3M6CisgICAgICBmaWxlbmFtZTog
VGhlIGN1cnJlbnQgZmlsZSBjcHBfc3R5bGUgaXMgcnVubmluZyBvdmVyLgorICAgICAgY2xlYW5f
bGluZXM6IEEgQ2xlYW5zZWRMaW5lcyBpbnN0YW5jZSBjb250YWluaW5nIHRoZSBmaWxlLgorICAg
ICAgbGluZV9udW1iZXI6IFRoZSBudW1iZXIgb2YgdGhlIGxpbmUgdG8gY2hlY2suCisgICAgICBm
aWxlX3N0YXRlOiBBIF9GaWxlU3RhdGUgaW5zdGFuY2Ugd2hpY2ggbWFpbnRhaW5zIGluZm9ybWF0
aW9uIGFib3V0CisgICAgICAgICAgICAgICAgICB0aGUgc3RhdGUgb2YgdGhpbmdzIGluIHRoZSBm
aWxlLgorICAgICAgZXJyb3I6IFRoZSBmdW5jdGlvbiB0byBjYWxsIHdpdGggYW55IGVycm9ycyBm
b3VuZC4KKyAgICAiIiIKKworICAgIGlmIG5vdCBfaXNfd2Via2l0Ml9maWxlKGZpbGVuYW1lKToK
KyAgICAgICAgcmV0dXJuCisKKyAgICBsaW5lID0gY2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVt
YmVyXSAgIyBHZXQgcmlkIG9mIGNvbW1lbnRzIGFuZCBzdHJpbmdzLgorICAgIHVzaW5nX2lzbWFp
bnRocmVhZCA9IHNlYXJjaChyJ1xiaXNNYWluVGhyZWFkXHMqXCgnLCBsaW5lKQorICAgIGlmIG5v
dCB1c2luZ19pc21haW50aHJlYWQ6CisgICAgICAgIHJldHVybgorCisgICAgZXJyb3IobGluZV9u
dW1iZXIsICdydW50aW1lL2lzbWFpbnRocmVhZCcsIDQsICJVc2UgJ2lzTWFpblJ1bkxvb3AoKScg
aW5zdGVhZCBvZiAnaXNNYWluVGhyZWFkKCknIGluIFNvdXJjZS9XZWJLaXQuIikKKworCiBkZWYg
Y2hlY2tfd3RmX21ha2VfdW5pcXVlKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0
ZSwgZXJyb3IpOgogICAgICIiIkxvb2tzIGZvciB1c2Ugb2YgJ3N0ZDo6bWFrZV91bmlxdWU8Picg
d2hpY2ggc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggJ1dURjo6bWFrZVVuaXF1ZTw+Jy4KIApAQCAt
MzQ5MSw2ICszNTM4LDEwIEBAIGRlZiBfaXNfamF2YXNjcmlwdGNvcmVfZmlsZShmaWxlbmFtZSk6
CiAgICAgcmV0dXJuIGZpbGVuYW1lLnN0YXJ0c3dpdGgoJ1NvdXJjZS9KYXZhU2NyaXB0Q29yZS8n
KQogCiAKK2RlZiBfaXNfd2Via2l0Ml9maWxlKGZpbGVuYW1lKToKKyAgICByZXR1cm4gZmlsZW5h
bWUuc3RhcnRzd2l0aCgnU291cmNlL1dlYktpdC8nKQorCisKIGRlZiBjaGVja19pbmNsdWRlX2xp
bmUoZmlsZW5hbWUsIGZpbGVfZXh0ZW5zaW9uLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGlu
Y2x1ZGVfc3RhdGUsIGVycm9yKToKICAgICAiIiJDaGVjayBydWxlcyB0aGF0IGFyZSBhcHBsaWNh
YmxlIHRvICNpbmNsdWRlIGxpbmVzLgogCkBAIC00NDMxLDYgKzQ0ODIsOCBAQCBkZWYgcHJvY2Vz
c19saW5lKGZpbGVuYW1lLCBmaWxlX2V4dGVuc2lvbiwKICAgICBjaGVja19wb3NpeF90aHJlYWRp
bmcoY2xlYW5fbGluZXMsIGxpbmUsIGVycm9yKQogICAgIGNoZWNrX2ludmFsaWRfaW5jcmVtZW50
KGNsZWFuX2xpbmVzLCBsaW5lLCBlcnJvcikKICAgICBjaGVja19vc192ZXJzaW9uX2NoZWNrcyhm
aWxlbmFtZSwgY2xlYW5fbGluZXMsIGxpbmUsIGVycm9yKQorICAgIGNoZWNrX2NhbGxvbm1haW50
aHJlYWQoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lLCBmaWxlX3N0YXRlLCBlcnJvcikKKyAg
ICBjaGVja19pc21haW50aHJlYWQoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lLCBmaWxlX3N0
YXRlLCBlcnJvcikKIAogCiBjbGFzcyBfSW5saW5lQVNNU3RhdGUob2JqZWN0KToKQEAgLTQ1NDcs
NiArNDYwMCw3IEBAIGNsYXNzIENwcENoZWNrZXIob2JqZWN0KToKICAgICAgICAgJ3JlYWRhYmls
aXR5L3V0ZjgnLAogICAgICAgICAncnVudGltZS9hcnJheXMnLAogICAgICAgICAncnVudGltZS9i
aXRmaWVsZHMnLAorICAgICAgICAncnVudGltZS9jYWxsb25tYWludGhyZWFkJywKICAgICAgICAg
J3J1bnRpbWUvY2FzdGluZycsCiAgICAgICAgICdydW50aW1lL2N0eXBlX2Z1bmN0aW9uJywKICAg
ICAgICAgJ3J1bnRpbWUvZGlzcGF0Y2hfc2V0X3RhcmdldF9xdWV1ZScsCkBAIC00NTU1LDYgKzQ2
MDksNyBAQCBjbGFzcyBDcHBDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICdydW50aW1lL2luaXQn
LAogICAgICAgICAncnVudGltZS9pbnQnLAogICAgICAgICAncnVudGltZS9pbnZhbGlkX2luY3Jl
bWVudCcsCisgICAgICAgICdydW50aW1lL2lzbWFpbnRocmVhZCcsCiAgICAgICAgICdydW50aW1l
L2xlYWt5X3BhdHRlcm4nLAogICAgICAgICAncnVudGltZS9sb2NrX2d1YXJkJywKICAgICAgICAg
J3J1bnRpbWUvbWF4X21pbl9tYWNyb3MnLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>