<?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>203048</bug_id>
          
          <creation_ts>2019-10-16 11:57:06 -0700</creation_ts>
          <short_desc>Rename PageCache to BackForwardCache</short_desc>
          <delta_ts>2019-10-16 18:45:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202293</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>annulen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tommyw</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1580613</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-16 11:57:06 -0700</bug_when>
    <thetext>Rename PageCache to BackForwardCache for clarity and consistency with the UIProcess&apos;s WebBackForwardCache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580693</commentid>
    <comment_count>1</comment_count>
      <attachid>381111</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-16 14:48:00 -0700</bug_when>
    <thetext>Created attachment 381111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580694</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-10-16 14:48:41 -0700</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 http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580709</commentid>
    <comment_count>3</comment_count>
      <attachid>381117</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-16 15:00:12 -0700</bug_when>
    <thetext>Created attachment 381117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580744</commentid>
    <comment_count>4</comment_count>
      <attachid>381126</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-16 15:53:11 -0700</bug_when>
    <thetext>Created attachment 381126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580766</commentid>
    <comment_count>5</comment_count>
      <attachid>381132</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-16 16:30:05 -0700</bug_when>
    <thetext>Created attachment 381132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580798</commentid>
    <comment_count>6</comment_count>
      <attachid>381132</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-10-16 17:41:09 -0700</bug_when>
    <thetext>Comment on attachment 381132
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Rename PageCache to BackForwardCache for clarity and consistency with the UIProcess&apos;s WebBackForwardCache.

And Chromium!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580802</commentid>
    <comment_count>7</comment_count>
      <attachid>381143</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-10-16 17:59:39 -0700</bug_when>
    <thetext>Created attachment 381143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580809</commentid>
    <comment_count>8</comment_count>
      <attachid>381143</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-16 18:44:29 -0700</bug_when>
    <thetext>Comment on attachment 381143
Patch

Clearing flags on attachment: 381143

Committed r251220: &lt;https://trac.webkit.org/changeset/251220&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580810</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-16 18:44:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580811</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-16 18:45:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/56355134&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381111</attachid>
            <date>2019-10-16 14:48:00 -0700</date>
            <delta_ts>2019-10-16 15:00:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203048-20191016144759.patch</filename>
            <type>text/plain</type>
            <size>384934</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdhYjk2MWQyYzMzZmMx
YWI5YmU2NmE4YThhMDg1NzUzMGYwZGE0Yi4uZjk4YWRjYmQwOTNjYTdjOTRkOTExMmRjZTliNTk2
ZjA2NDNkZGE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxOCBAQAorMjAxOS0xMC0xNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUg
dG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFy
aXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENh
Y2hlLgorCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlcjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6
OnN1c3BlbmQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3Vt
ZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvV2luZG93UHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93UHJveHk6OmNsZWFySlNXaW5kb3dQcm94aWVz
Tm90TWF0Y2hpbmdET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
Lmg6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjppbnZhbGlkYXRlTWF0Y2hlZFByb3BlcnRpZXNDYWNoZUFuZEZvcmNlU3R5
bGVSZWNhbGMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZVJlbmRlclRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZEJlY29tZUN1cnJlbnREb2N1bWVudElu
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmF0dGFjaFRvQ2FjaGVkRnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaEZyb21DYWNoZWRGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGp1c3RGb2N1c2VkTm9kZU9uTm9kZVJlbW92YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93RnJvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXN1bWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRvcERvY3VtZW50IGNvbnN0KToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpiYWNrRm9y
d2FyZENhY2hlU3RhdGUgY29uc3QpOgorICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbHNj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRG
dWxsc2NyZWVuKToKKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKToK
KyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwLgorICAgICAgICAoV2ViQ29yZTo6bG9n
QmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpjYW5DYWNoZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhY2hlUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24pOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRDYWNoZTo6QmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJhY2tGb3J3YXJkQ2FjaGU6OmNhbkNhY2hlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJh
Y2tGb3J3YXJkQ2FjaGU6OnBydW5lVG9TaXplTm93KToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tG
b3J3YXJkQ2FjaGU6OnNldE1heFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6QmFja0ZvcndhcmRD
YWNoZTo6ZnJhbWVDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENh
Y2hlOjptYXJrUGFnZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ29udGVudHNTaXplQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjptYXJrUGFnZXNGb3JDYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hl
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjp0YWtlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUFsbEl0ZW1zRm9yUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpnZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3
YXJkQ2FjaGU6OnBydW5lKToKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmguCisgICAgICAg
ICogaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGcmFt
ZUJhc2U6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRnJhbWU6OkNhY2hlZEZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRGcmFtZTo6ZGVzdHJveSk6CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRG
cmFtZVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldENhY2hlZFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldFVSTCk6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5
SXRlbS5oOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmlzSW5CYWNrRm9yd2FyZENh
Y2hlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZUVsZW1lbnQ6OnN1c3BlbmQpOgor
ICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRvcGxheVBlcm1pdHRlZCBjb25zdCk6CisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjphZGRTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmNsb3NlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjbGVhcik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRl
dGFjaEZyb21QYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlY2VpdmVk
TWFpblJlc291cmNlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnNob3Vs
ZFBlcmZvcm1GcmFnbWVudE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmRpc3BhdGNoVW5sb2FkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3
U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJlc3Rv
cmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5
Q29udHJvbGxlcjo6aW52YWxpZGF0ZUN1cnJlbnRJdGVtQ2FjaGVkUGFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6dXBkYXRlRm9yUmVsb2FkKToKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5CYWNrRm9yd2FyZENhY2hlKToKKyAg
ICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaDoKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJz
Q291bnQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3dFeHRlbnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RXh0ZW5zaW9u
OjpzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dFeHRlbnNpb246OnJlc3VtZUZyb21CYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvd0V4dGVuc2lvbi5oOgorICAgICAgICAqIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0Zv
cndhcmRDYWNoZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmJhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlS2V5KToKKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRTb3VyY2U6OnNjaGVkdWxlUmVjb25uZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50U291cmNlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291
cmNlOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpk
aWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjphYm9ydENvbm5lY3Rpb25B
dHRlbXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpzdXNwZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRTb3VyY2U6OmRpc3BhdGNoTWVzc2FnZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50U291
cmNlLmg6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZTo6c2V0Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2V0RG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZFJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldENvbnRl
bnRzU2l6ZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5
b3V0Q29udGV4dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENv
bnRleHQ6OnNjaGVkdWxlTGF5b3V0KToKKyAgICAgICAgKiBwYWdlL01lbW9yeVJlbGVhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OnJlbGVhc2VNZW1vcnkpOgorICAgICAgICAqIHBhZ2UvTWVtb3J5UmVsZWFzZS5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp+UGFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaWV3U2NhbGVGYWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VHcm91cDo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5n
OjptZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nc0Jhc2U6OnVzZXNCYWNrRm9yd2FyZENhY2hlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9T
ZXR0aW5nc0Jhc2UuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OnNldE5lZWRzU3R5bGVSZWNhbGMp
OgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFu
aW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Fu
aW1hdGlvbkNvbnRyb2xsZXI6OmNhbmNlbEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTQW5pbWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyk6CisgICAgICAgICogcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1w
bGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQpOgorICAgICAgICAqIHBhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
QW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp3aWxsUmVtb3ZlU2Nyb2xsaW5nTGF5ZXJXaXRoQmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRpZEFkZFNj
cm9sbGluZ0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9TaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlTGluZUxheW91dDo6Y29sbGVjdE5vbkVtcHR5TGVhZlJlbmRlckJsb2NrRmxvd3NGb3JDdXJy
ZW50UGFnZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBk
YXRlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmNsZWFyQmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OmJhY2tGb3J3YXJkQ2FjaGVTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6cHJldmVudERvY3VtZW50Rm9yRW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmlkbDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3Q6OnN1c3BlbmQpOgorCiAyMDE5LTEwLTE2ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBkdW1waW5nIGZvciBC
b3JkZXJEYXRhIGFuZCBTdHlsZUJhY2tncm91bmREYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmZmNlYmJlMjMy
NzQzNzEyYzhjYjkzMmM5YjE3MDdmNWFhMjM2NGYuLjI3MzZjNjllMTBmZTAwNGJkY2FkOWMwOGEx
NDM1ZjUwOTAyZmUyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTktMTAtMTYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hl
IHRvIEJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZSBmb3IgY2xh
cml0eSBhbmQgY29uc2lzdGVuY3kgd2l0aCB0aGUgVUlQcm9jZXNzJ3MgV2ViQmFja0ZvcndhcmRD
YWNoZS4KKworICAgICAgICAqIFNoYXJlZC9DYWNoZU1vZGVsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FsY3VsYXRlTWVtb3J5Q2FjaGVTaXplcyk6CisgICAgICAgICogU2hhcmVkL0NhY2hlTW9k
ZWwuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6TmF2aWdh
dGlvbkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6
OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hl
RW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0UGFnZUNhY2hlRW5hYmxlZCk6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKToKKyAgICAg
ICAgKFdLUHJlZmVyZW5jZXNHZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0VXNlc1BhZ2VDYWNoZTpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBf
dXNlc1BhZ2VDYWNoZV0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRQYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnM6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3BhZ2VDYWNoZVN1
cHBvcnRzUGx1Z2luc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24gcGFnZUNhY2hlRW5hYmxlZF0pOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gc2V0UGFnZUNhY2hlRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9l
bmFibGVfcGFnZV9jYWNoZSk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9w
YWdlX2NhY2hlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OndpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5h
dmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdh
dGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkQ29tbWl0TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkKToKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGaW5p
c2hOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50OjpkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6
Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkUmVhY2hNYWluRnJhbWVM
b2FkVGVybWluYWxTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvdWxkVXNlQmFja0ZvcndhcmRDYWNo
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
b21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZp
bmlzaERvY3VtZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZEZhaWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJ
bkJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6dG9CYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6V2ViRnJhbWVMb2FkZXJDbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0Nv
bW1pdHRlZEZyb21DYWNoZWRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRl
ckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZv
cmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnJlbW92ZUl0ZW0pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6c3VzcGVuZEZvclByb2Nlc3NTd2FwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldENhY2hlTW9kZWwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyQ2FjaGVkUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmg6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbV0syXSBIYW5kbGUgYmFjay9mb3J3YXJkIGNhY2hlIGVudHJ5IGV4
cGlyYXRpb24gaW4gdGhlIFVJUHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBXZWJQcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggMDc4OTkwMzJlM2NkMWYyMmY5NTE3ZTcyYWZlYWNl
ZGJjN2I1Y2RmNS4uZDI1ZWYzZGI2Y2M2YTIxNzdiM2RjM2JjNzhlZDMwMGQyMzc4YjEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTE2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNo
ZSB0byBCYWNrRm9yd2FyZENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hlIHRvIEJhY2tGb3J3YXJkQ2FjaGUgZm9yIGNs
YXJpdHkgYW5kIGNvbnNpc3RlbmN5IHdpdGggdGhlIFVJUHJvY2VzcydzIFdlYkJhY2tGb3J3YXJk
Q2FjaGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaDoKKwogMjAxOS0x
MC0wOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVt
b3ZlIHJlZHVuZGFudCB1c2VzIG9mIFVTRShVSUtJVF9FRElUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IDA2MWFlMWI0YWRmYmIzNjYyNGI0Y2I5NmY0YzQ5NWRkZTFkODFmODEu
LjI1ZDdhYmVlMTMwZmQyZTg0YzQyYmJkZDk0ZTMyNDY2MWQ1ZjllNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0Zv
cndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBj
b25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisg
ICAgICAgICogSGlzdG9yeS9CYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgIChCYWNrRm9yd2Fy
ZExpc3Q6OmFkZEl0ZW0pOgorICAgICAgICAoQmFja0ZvcndhcmRMaXN0OjpzZXRDYXBhY2l0eSk6
CisgICAgICAgICogSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgICgtW1dl
YkJhY2tGb3J3YXJkTGlzdCBwYWdlQ2FjaGVTaXplXSk6CisgICAgICAgICogSGlzdG9yeS9XZWJI
aXN0b3J5SXRlbS5tbToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJpdmF0ZS5o
OgorICAgICAgICAqIE1pc2MvV2ViQ2FjaGUubW06CisgICAgICAgICogTWlzYy9XZWJDb3JlU3Rh
dGlzdGljcy5tbToKKyAgICAgICAgKCtbV2ViQ29yZVN0YXRpc3RpY3MgY2FjaGVkUGFnZUNvdW50
XSk6CisgICAgICAgICgrW1dlYkNvcmVTdGF0aXN0aWNzIGNhY2hlZEZyYW1lQ291bnRdKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUp
OgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0Zvcndh
cmRDYWNoZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5t
bToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBsYXlvdXRUb01pbmltdW1QYWdlV2lkdGg6aGVpZ2h0Om9yaWdpbmFsUGFnZVdpZHRoOm9y
aWdpbmFsUGFnZUhlaWdodDptYXhpbXVtU2hyaW5rUmF0aW86YWRqdXN0aW5nVmlld1NpemU6XSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNldE5lZWRzTGF5b3V0Ol0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBzZXROZWVkc1RvQXBwbHlTdHlsZXM6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jbG9zZV0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisgICAgICAgICgrW1dlYlZpZXcgX3NldENhY2hl
TW9kZWw6XSk6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBNb3ZlIGJhY2svZm9yd2FyZCBjYWNoZSBlbnRyeSBleHBpcmF0aW9u
IGZyb20gdGhlIFdlYlByb2Nlc3MgdG8gdGhlIFVJUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IDM0OTdlNDhjYTlmMzY1MWI3ZjhjOTIwY2NlMjFmOTFiZjExOTc4MWEuLmFh
ZjE2YTBhMmQ0NzgwZjBhZTY2ZmExMDc1NjBkYWY1MTlhY2RiODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0Zvcndh
cmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25z
aXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAg
ICAgICogQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKEJhY2tGb3J3YXJkTGlzdDo6YWRk
SXRlbSk6CisgICAgICAgIChCYWNrRm9yd2FyZExpc3Q6OnNldENhcGFjaXR5KToKKyAgICAgICAg
KiBXZWJDb3JlU3RhdGlzdGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlU3RhdGlzdGljczo6Y2Fj
aGVkUGFnZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmVTdGF0aXN0aWNzOjpjYWNoZWRGcmFtZUNv
dW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21CYWNrRm9yd2Fy
ZENhY2hlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAg
ICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjphY2Nlc3NpYmxlIGNvbnN0
KToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnNldENhY2hlTW9k
ZWwpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAx
OS0xMC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OOiBlZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtaW50ZXJmYWNl
cy5odG1sIGlzIGZhaWxpbmcgaW4gV2ViS2l0MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCAxZWM3MzZmYjhiZWM4Mjc1ZWQ0
ZGY4NzhmODBkY2JlOTViNGEwNzUxLi5hY2RhZjc5ZTNlMTMzY2NlZDVlNDdiOGE1NjU5YmIyNDQx
ZjE5NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIGJvb2wgR2VvbG9jYXRpb246OmNhblN1
c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogICAgIAogdm9pZCBHZW9sb2NhdGlv
bjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIHsKLSAgICBpZiAocmVhc29u
ID09IFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VDYWNoZSkgeworICAgIGlmIChyZWFzb24gPT0g
UmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICBzdG9wKCk7
CiAgICAgICAgIG1fcmVzZXRPblJlc3VtZSA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCmluZGV4
IGQ1YWZkNDQ1OTcxYTg0NTBhYjM4NWE1MDAyMGViNmUyMTk2MTI5MmYuLjZjMTZmYmM5MmRjYTgy
MDcxZjIyZGM1YjYwZmY5MzZkZDFlODE2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKQEAgLTEwNiw3ICsxMDYs
NyBAQCBjb25zdCBjaGFyKiBNZWRpYVJlY29yZGVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKIAogYm9vbCBNZWRpYVJlY29yZGVyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9u
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7IC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gYmV0
dGVyIGhlcmUgYXMgdGhpcyBwcmV2ZW50cyBlbnRlcmluZyBQYWdlQ2FjaGUuCisgICAgcmV0dXJu
IGZhbHNlOyAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvIGJldHRlciBoZXJlIGFzIHRoaXMgcHJldmVu
dHMgZW50ZXJpbmcgQmFja0ZvcndhcmRDYWNoZS4KIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTWVk
aWFSZWNvcmRlcjo6c3RhcnRSZWNvcmRpbmcoT3B0aW9uYWw8aW50PiB0aW1lc2xpY2UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uY3BwCmluZGV4IDgwNjlkNTJhMDU2ZjA1N2NiYTE2ZDExMDQ5OTMxYzFhZGI0OWI0NzQu
LmZkMTIwZmE5MmI0YmUyN2NmZDY0NTIxY2Q4NzZhYTQ0MzAzZGViYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24u
Y3BwCkBAIC01MDYsNyArNTA2LDcgQEAgYm9vbCBSVENQZWVyQ29ubmVjdGlvbjo6Y2FuU3VzcGVu
ZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246
OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiB7Ci0gICAgaWYgKHJlYXNvbiAh
PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKHJlYXNvbiAhPSBSZWFz
b25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3Nob3VsZERlbGF5VGFza3MgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCAzMDM4YTk3ZDU5NTIzOGMwNDMwOTJmMDRl
OWM2NWZhZDBlMDExMWEwLi5iMzJiZjk4YjI1OGRjZWMzOTg4ZWE1YThhMzRiN2JlYzU4MzNmMzk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cApAQCAtNTA4LDcgKzUwOCw3IEBAIHZvaWQgV2ViU29ja2V0OjpzdXNwZW5kKFJlYXNvbkZvclN1
c3BlbnNpb24gcmVhc29uKQogICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyA9IHRydWU7CiAK
ICAgICBpZiAobV9jaGFubmVsKSB7Ci0gICAgICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3Vz
cGVuc2lvbjo6UGFnZUNhY2hlKSB7CisgICAgICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3Vz
cGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGNh
dXNlIGRpZENsb3NlKCkgdG8gYmUgY2FsbGVkLgogICAgICAgICAgICAgbV9jaGFubmVsLT5mYWls
KCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiIpOwogICAgICAgICB9IGVs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggZDliYjlhZjE5YWMxYzYyMzY5NDk0ZTFlYjFkMmQ1N2JhYjNm
NTQ1My4uZmZiZGE5NjIzMGQ2MWY1OGM5YzEyNWU0ZjU3OTRhZWE0YTlmZGIxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTEwODUsMTEgKzEwODUsMTEgQEAgZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5jcHAK
IGZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKIGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdp
c3RyeS5jcHAKIAoraGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcAogaGlzdG9yeS9CYWNrRm9y
d2FyZENvbnRyb2xsZXIuY3BwCiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAogaGlzdG9yeS9DYWNo
ZWRQYWdlLmNwcAogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKLWhpc3RvcnkvUGFnZUNhY2hlLmNw
cAogCiBodG1sL0F1dG9maWxsLmNwcAogaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDNiMzY2NzkxNGU2ZDBmYTdmZmRjYjdlZWI4MGY0OWVmODcwZjYxMTIuLjkxNTU0ODM1OTgwY2Iz
MDIxMjE4MDliZmU0NGY0ODMwYjRmYzA4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxMCw3ICs0MTAsNyBAQAogCQkxNDMy
RTg0NzBDNTE0OTM4MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDMyRTg0NjBDNTE0OTM4MDBCMTUwMEYgLyog
R0NDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFBNzE1REM0QkIx
MDAzMDVEQjIgLyogV3JpdGluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxNDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFj
a0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9OwotCQkxNDc3
RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFn
ZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMTQ3N0U3NzcwQkY0MTM0QTAwMTUyODcyIC8qIEJhY2tGb3J3YXJkQ2FjaGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzdFNzc1MEJGNDEzNEEw
MDE1Mjg3MiAvKiBCYWNrRm9yd2FyZENhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ3OUZBRUUxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRl
clJ1YnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NzlGQUU2MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmggKi87IH07CiAJCTE0NzlGQUYw
MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3OUZBRTgxMDlBRTM3NTAwREVENjU1IC8qIFJl
bmRlclJ1YnlCYXNlLmggKi87IH07CiAJCTE0NzlGQUYyMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5k
ZXJSdWJ5UnVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDc5RkFFQTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieVJ1bi5oICovOyB9OwpAQCAt
NTkxNyw4ICs1OTE3LDggQEAKIAkJMTQ0NzZBQTcxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdN
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRpbmdNb2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBK
U0NhbGxiYWNrRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NhbGxi
YWNrRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ5RTI4NjEwN0Q0REI0
MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8qIEJhY2tGb3J3
YXJkQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tG
b3J3YXJkQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNDc3RTc3NTBC
RjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmFja0ZvcndhcmRDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxNDc5RkFFNTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJSdWJ5LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3OUZBRTYxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1
YnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyUnVieS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc5RkFFNzEwOUFFMzc1MDBERUQ2NTUgLyogUmVu
ZGVyUnVieUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVu
ZGVyUnVieUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg4NzQsNiAr
MTg4NzQsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1MTYw
RjQ5MjBCMEFBNzE1MDBDMUQyQUYgLyogbWFjICovLAorCQkJCTE0NzdFNzc0MEJGNDEzNEEwMDE1
Mjg3MiAvKiBCYWNrRm9yd2FyZENhY2hlLmNwcCAqLywKKwkJCQkxNDc3RTc3NTBCRjQxMzRBMDAx
NTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oICovLAogCQkJCTUxNzQxRDBCMEIwNzI1OUEwMEVE
NDQyQyAvKiBCYWNrRm9yd2FyZENsaWVudC5oICovLAogCQkJCUJDQThDODFEMTFFM0QzNjkwMDgx
MkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwICovLAogCQkJCUJDQThDODFDMTFFM0Qz
NjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCAqLywKQEAgLTE4ODg1LDggKzE4
ODg3LDYgQEAKIAkJCQk1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oICov
LAogCQkJCTUxNzQxRDBFMEIwNzI1OUEwMEVENDQyQyAvKiBIaXN0b3J5SXRlbS5jcHAgKi8sCiAJ
CQkJNTE3NDFEMEQwQjA3MjU5QTAwRUQ0NDJDIC8qIEhpc3RvcnlJdGVtLmggKi8sCi0JCQkJMTQ3
N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgKi8sCi0JCQkJMTQ3N0U3NzUw
QkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBoaXN0
b3J5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4NzM0LDYgKzI4NzM0LDcgQEAK
IAkJCQlGNDVDMjMxRTE5OTVCNzNCMDBBNkUyRTMgLyogQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIzODBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RD
YWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFY
VGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDc3RTc3NzBCRjQx
MzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3
NDFEMEYwQjA3MjU5QTAwRUQ0NDJDIC8qIEJhY2tGb3J3YXJkQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0E4QzgxRTExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUExQjg3RDIwODdDNEMwMDA5NzlBNzUgLyogQmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTIxOCw3ICszMTIxOSw2
IEBACiAJCQkJMzc3NEFCQTUwRkEyMUVCNDAwQUQ3REU5IC8qIE92ZXJsYXBUZXN0UmVxdWVzdENs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVBMjE0NjgwOTdBMzI5MTAwQjkwNTBBIC8qIFBh
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxMjc4RDVFMjFERURBRDYwMEI1NzE4NCAvKiBQYWdl
QXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQ3N0U3NzcwQkY0MTM0QTAwMTUyODcy
IC8qIFBhZ2VDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q1RTVCNUYxQTE1Q0U1NDAwMEM2
MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDMjFG
QUE0NEJDMDAzN0QxRTYgLyogUGFnZUNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
REFFRDIwMzExNkYyNDQ0ODAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKaW5kZXggMzE5
NGIzMjc0NzVmZjE2ZTlhZGQxMTQyOWM2OGUwZTU1YmFlNDFmZi4uNWYwYzkwMDNkZmY3N2UwNzE3
ZDZkOGY1YmU2OTY4NjIwZmI1MmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5jcHAKQEAgLTExNjEsNyArMTE2MSw3IEBAIGJvb2wgV2ViQW5pbWF0aW9uOjpjYW5T
dXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKICAgICAvLyBVc2UgdGhlIGJh
c2UgY2xhc3MncyBpbXBsZW1lbnRhdGlvbiBvZiBoYXNQZW5kaW5nQWN0aXZpdHkoKSBzaW5jZSB3
ZSB3b3VsZG4ndCB3YW50IHRoZSBjdXN0b20gaW1wbGVtZW50YXRpb24KICAgICAvLyBpbiB0aGlz
IGNsYXNzIGRlc2lnbmVkIHRvIGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUgdG8gaW50ZXJmZXJlIHdp
dGggdGhlIGFiaWxpdHkgZm9yIGEgcGFnZSB1c2luZyBhbmltYXRpb25zCi0gICAgLy8gdG8gZW50
ZXIgdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZS4KICAgICByZXR1cm4gIUFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcAppbmRleCAwMmUz
YzcyNGYxNjFjZmRiZGE3NWJhN2ViMDA1NzA1NDJlY2NmZDE3Li5kZTBiZjg4NzlmODNiOTY1ZmZi
YWZiOWQyMDkwM2EyMGJhNGFmZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2lu
ZG93UHJveHkuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgSlNXaW5kb3dQcm94eSYgV2luZG93UHJv
eHk6OmNyZWF0ZUpTV2luZG93UHJveHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQoRE9NV3JhcHBlclcK
ICAgICByZXR1cm4gd2luZG93UHJveHk7CiB9CiAKLXZvaWQgV2luZG93UHJveHk6OmNsZWFySlNX
aW5kb3dQcm94aWVzTm90TWF0Y2hpbmdET01XaW5kb3coQWJzdHJhY3RET01XaW5kb3cqIG5ld0RP
TVdpbmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpCit2b2lkIFdpbmRvd1Byb3h5OjpjbGVh
ckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9NV2luZG93KiBu
ZXdET01XaW5kb3csIGJvb2wgZ29pbmdJbnRvQmFja0ZvcndhcmRDYWNoZSkKIHsKICAgICBpZiAo
bV9qc1dpbmRvd1Byb3hpZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNDYsNyAr
MTQ2LDcgQEAgdm9pZCBXaW5kb3dQcm94eTo6Y2xlYXJKU1dpbmRvd1Byb3hpZXNOb3RNYXRjaGlu
Z0RPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyogbmUKIAogICAgIC8vIEl0J3MgbGlrZWx5IHRo
YXQgcmVzZXR0aW5nIG91ciB3aW5kb3dzIGNyZWF0ZWQgYSBsb3Qgb2YgZ2FyYmFnZSwgdW5sZXNz
CiAgICAgLy8gaXQgd2VudCBpbiBhIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICBpZiAoIWdvaW5n
SW50b1BhZ2VDYWNoZSkKKyAgICBpZiAoIWdvaW5nSW50b0JhY2tGb3J3YXJkQ2FjaGUpCiAgICAg
ICAgIGNvbGxlY3RHYXJiYWdlQWZ0ZXJXaW5kb3dQcm94eURlc3RydWN0aW9uKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5oCmluZGV4IDQ3MjJlNDkzYjA2MDlk
OTExNzZhNjJhZDM1Nzg0MGVkMGQ3N2RlODMuLjJjODA4YmRjNzljNzI3MzdlMTVhMWJhNDE3MTA1
NTNhZWZjMjhhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRv
d1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93UHJveHkuaApA
QCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KERPTVdyYXBwZXJXb3JsZCYpOwogCi0gICAgdm9pZCBjbGVh
ckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9NV2luZG93Kiwg
Ym9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOworICAgIHZvaWQgY2xlYXJKU1dpbmRvd1Byb3hpZXNO
b3RNYXRjaGluZ0RPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyosIGJvb2wgZ29pbmdJbnRvQmFj
a0ZvcndhcmRDYWNoZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERPTVdpbmRvdyhB
YnN0cmFjdERPTVdpbmRvdyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0
aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKaW5k
ZXggODU3OTk4YWZmNmYyMzcwMGE2YTYyZjVhMWZhMDI3NjM4OTlkM2VlYS4uNmI4Yjk4NmYzNzk2
Yzc0ODlkMGFmMmM5NTc1M2NiYjY5MGRjMjY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0FjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01P
YmplY3QuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBEb2N1bWVudDsKIGVudW0gY2xhc3MgUmVh
c29uRm9yU3VzcGVuc2lvbiB7CiAgICAgSmF2YVNjcmlwdERlYnVnZ2VyUGF1c2VkLAogICAgIFdp
bGxEZWZlckxvYWRpbmcsCi0gICAgUGFnZUNhY2hlLAorICAgIEJhY2tGb3J3YXJkQ2FjaGUsCiAg
ICAgUGFnZVdpbGxCZVN1c3BlbmRlZCwKIH07CiAKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgog
CiAgICAgLy8gVGhlc2UgdGhyZWUgZnVuY3Rpb25zIG11c3Qgbm90IGhhdmUgYSBzaWRlIGVmZmVj
dCBvZiBjcmVhdGluZyBvciBkZXN0cm95aW5nCiAgICAgLy8gYW55IEFjdGl2ZURPTU9iamVjdC4g
VGhhdCBtZWFucyB0aGV5IG11c3Qgbm90IHJlc3VsdCBpbiBjYWxscyB0byBhcmJpdHJhcnkgSmF2
YVNjcmlwdC4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lv
bigpIGNvbnN0ID0gMDsgLy8gUmV0dXJuaW5nIGZhbHNlIGluIGNhblN1c3BlbmRGb3JEb2N1bWVu
dFN1c3BlbnNpb24oKSB3aWxsIHByZXZlbnQgdGhlIHBhZ2UgZnJvbSBlbnRlcmluZyB0aGUgUGFn
ZUNhY2hlLgorICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9u
KCkgY29uc3QgPSAwOyAvLyBSZXR1cm5pbmcgZmFsc2UgaW4gY2FuU3VzcGVuZEZvckRvY3VtZW50
U3VzcGVuc2lvbigpIHdpbGwgcHJldmVudCB0aGUgcGFnZSBmcm9tIGVudGVyaW5nIHRoZSBCYWNr
Rm9yd2FyZENhY2hlLgogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNp
b24pOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggNTg2MzI0YmMxNDNiMDMwNGNiYmFhOGJiMjQ2ZTYwMzM3Y2MzYjkzNi4uNGQ0MGM0MGI3
YzMyNzI5NDM1MzA3YWVlOTcyNjhmZTAzZjI2YzFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC02MjMsNyArNjIzLDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgcmVtb3ZlRnJv
bUNvbnRleHRzTWFwKCk7CiAKICAgICBBU1NFUlQoIXJlbmRlclZpZXcoKSk7Ci0gICAgQVNTRVJU
KG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChtX2JhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSAhPSBJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIEFTU0VSVChtX3Jhbmdl
cy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9wYXJlbnRUcmVlU2NvcGUpOwogICAgIEFTU0VS
VCghbV9kaXNhYmxlZEZpZWxkc2V0RWxlbWVudHNDb3VudCk7CkBAIC0xODI4LDcgKzE4MjgsNyBA
QCB2b2lkIERvY3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKCkKIHsKICAgICBBU1NFUlQoIW1f
cmVuZGVyVmlldyB8fCAhaW5IaXRUZXN0aW5nKCkpOwogCi0gICAgaWYgKG1fc3R5bGVSZWNhbGNU
aW1lci5pc0FjdGl2ZSgpIHx8IHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUpCisg
ICAgaWYgKG1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8IGJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSgpICE9IE5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
QVNTRVJUKGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IG1fbmVlZHNGdWxsU3R5bGVSZWJ1aWxk
KTsKQEAgLTIwMDksNyArMjAwOSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRleHRSZW5kZXJl
cihUZXh0JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5zCiAKIGJvb2wg
RG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdAogewotICAgIGlmIChwYWdlQ2FjaGVT
dGF0ZSgpICE9IE5vdEluUGFnZUNhY2hlKQorICAgIGlmIChiYWNrRm9yd2FyZENhY2hlU3RhdGUo
KSAhPSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGlmIChtX25lZWRzRnVsbFN0eWxlUmVidWlsZCkKQEAgLTIyOTUsNyArMjI5NSw3IEBAIHZvaWQg
RG9jdW1lbnQ6OmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0NhY2hlQW5kRm9yY2VTdHlsZVJl
Y2FsYygpCiB7CiAgICAgaWYgKGF1dG8qIHJlc29sdmVyID0gc3R5bGVTY29wZSgpLnJlc29sdmVy
SWZFeGlzdHMoKSkKICAgICAgICAgcmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGll
c0NhY2hlKCk7Ci0gICAgaWYgKHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUgfHwg
IXJlbmRlclZpZXcoKSkKKyAgICBpZiAoYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gTm90SW5C
YWNrRm9yd2FyZENhY2hlIHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVybjsKICAgICBz
Y2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQoKTsKIH0KQEAgLTIzMTQsNyArMjMxNCw3IEBAIHZvaWQg
RG9jdW1lbnQ6OnNldElzUmVzb2x2aW5nVHJlZVN0eWxlKGJvb2wgdmFsdWUpCiB2b2lkIERvY3Vt
ZW50OjpjcmVhdGVSZW5kZXJUcmVlKCkKIHsKICAgICBBU1NFUlQoIXJlbmRlclZpZXcoKSk7Ci0g
ICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVCht
X2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSAhPSBJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIEFTU0VS
VCghbV9heE9iamVjdENhY2hlIHx8IHRoaXMgIT0gJnRvcERvY3VtZW50KCkpOwogCiAgICAgaWYg
KG1faXNOb25SZW5kZXJlZFBsYWNlaG9sZGVyKQpAQCAtMjM1NCw3ICsyMzU0LDcgQEAgdm9pZCBE
b2N1bWVudDo6ZGlkQmVjb21lQ3VycmVudERvY3VtZW50SW5GcmFtZSgpCiAKICAgICAvLyBFbnN1
cmUgdGhhdCB0aGUgc2NoZWR1bGVkIHRhc2sgc3RhdGUgb2YgdGhlIGRvY3VtZW50IG1hdGNoZXMg
dGhlIERPTSBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBmcmFtZS4gSXQgY2FuCiAgICAgLy8gYmUg
b3V0IG9mIHN5bmMgaWYgdGhlIERPTSBzdXNwZW5zaW9uIHN0YXRlIGNoYW5nZWQgd2hpbGUgdGhl
IGRvY3VtZW50IHdhcyBub3QgaW4gdGhlIGZyYW1lIChwb3NzaWJseSBpbiB0aGUKLSAgICAvLyBw
YWdlIGNhY2hlLCBvciBzaW1wbHkgbmV3bHkgY3JlYXRlZCkuCisgICAgLy8gYmFjay9mb3J3YXJk
IGNhY2hlLCBvciBzaW1wbHkgbmV3bHkgY3JlYXRlZCkuCiAgICAgaWYgKG1fZnJhbWUtPmFjdGl2
ZURPTU9iamVjdHNBbmRBbmltYXRpb25zU3VzcGVuZGVkKCkpIHsKICAgICAgICAgaWYgKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQW5pbWF0aW9uc0NTU0ludGVn
cmF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogdGltZWxpbmUgPSBleGlz
dGluZ1RpbWVsaW5lKCkpCkBAIC0yMzk3LDcgKzIzOTcsNyBAQCB2b2lkIERvY3VtZW50OjphdHRh
Y2hUb0NhY2hlZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCiB7CiAgICAgUkVM
RUFTRV9BU1NFUlQoY2FjaGVkRnJhbWUuZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAgICBBU1NFUlQo
Y2FjaGVkRnJhbWUudmlldygpKTsKLSAgICBBU1NFUlQobV9wYWdlQ2FjaGVTdGF0ZSA9PSBEb2N1
bWVudDo6SW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9
PSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKTsKICAgICBvYnNlcnZlRnJhbWUoJmNhY2hl
ZEZyYW1lLnZpZXcoKS0+ZnJhbWUoKSk7CiB9CiAKQEAgLTI0MDYsNyArMjQwNiw3IEBAIHZvaWQg
RG9jdW1lbnQ6OmRldGFjaEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZUJhc2UmIGNhY2hlZEZy
YW1lKQogICAgIEFTU0VSVF9VTlVTRUQoY2FjaGVkRnJhbWUsIGNhY2hlZEZyYW1lLnZpZXcoKSk7
CiAgICAgUkVMRUFTRV9BU1NFUlQoY2FjaGVkRnJhbWUuZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAg
ICBBU1NFUlQobV9mcmFtZSA9PSAmY2FjaGVkRnJhbWUudmlldygpLT5mcmFtZSgpKTsKLSAgICBB
U1NFUlQobV9wYWdlQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAgIEFT
U0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENh
Y2hlKTsKICAgICBkZXRhY2hGcm9tRnJhbWUoKTsKIH0KIApAQCAtMjU2OSwxMCArMjU2OSwxMCBA
QCB2b2lkIERvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogCiAgICAgbV9oYXNQcmVw
YXJlZEZvckRlc3RydWN0aW9uID0gdHJ1ZTsKIAotICAgIC8vIE5vdGUgdGhhdCBtX3BhZ2VDYWNo
ZVN0YXRlIGNhbiBiZSBEb2N1bWVudDo6QWJvdXRUb0VudGVyUGFnZUNhY2hlIGlmIG91ciBmcmFt
ZQorICAgIC8vIE5vdGUgdGhhdCBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBjYW4gYmUgRG9jdW1l
bnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUgaWYgb3VyIGZyYW1lCiAgICAgLy8gd2Fz
IHJlbW92ZWQgaW4gYW4gb25wYWdlaGlkZSBldmVudCBoYW5kbGVyIGZpcmVkIHdoZW4gdGhlIHRv
cC1sZXZlbCBmcmFtZSBpcwotICAgIC8vIGFib3V0IHRvIGVudGVyIHRoZSBwYWdlIGNhY2hlLgot
ICAgIFJFTEVBU0VfQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gRG9jdW1lbnQ6OkluUGFnZUNh
Y2hlKTsKKyAgICAvLyBhYm91dCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorICAg
IFJFTEVBU0VfQVNTRVJUKG1fYmFja0ZvcndhcmRDYWNoZVN0YXRlICE9IERvY3VtZW50OjpJbkJh
Y2tGb3J3YXJkQ2FjaGUpOwogfQogCiB2b2lkIERvY3VtZW50OjpyZW1vdmVBbGxFdmVudExpc3Rl
bmVycygpCkBAIC00MDUzLDcgKzQwNTMsNyBAQCBzdGF0aWMgYm9vbCBpc05vZGVJblN1YnRyZWUo
Tm9kZSYgbm9kZSwgTm9kZSYgY29udGFpbmVyLCBEb2N1bWVudDo6Tm9kZVJlbW92YWwgbgogCiB2
b2lkIERvY3VtZW50OjphZGp1c3RGb2N1c2VkTm9kZU9uTm9kZVJlbW92YWwoTm9kZSYgbm9kZSwg
Tm9kZVJlbW92YWwgbm9kZVJlbW92YWwpCiB7Ci0gICAgaWYgKCFtX2ZvY3VzZWRFbGVtZW50IHx8
IHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUpIC8vIElmIHRoZSBkb2N1bWVudCBp
cyBpbiB0aGUgcGFnZSBjYWNoZSwgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNsZWFyIG91dCB0aGUg
Zm9jdXNlZCBub2RlLgorICAgIGlmICghbV9mb2N1c2VkRWxlbWVudCB8fCBiYWNrRm9yd2FyZENh
Y2hlU3RhdGUoKSAhPSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpIC8vIElmIHRoZSBkb2N1bWVudCBp
cyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gY2xlYXIg
b3V0IHRoZSBmb2N1c2VkIG5vZGUuCiAgICAgICAgIHJldHVybjsKIAogICAgIEVsZW1lbnQqIGZv
Y3VzZWRFbGVtZW50ID0gbm9kZS50cmVlU2NvcGUoKS5mb2N1c2VkRWxlbWVudEluU2NvcGUoKTsK
QEAgLTQxMjEsNyArNDEyMSw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KEVs
ZW1lbnQqIGVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jCiAgICAgaWYgKG1f
Zm9jdXNlZEVsZW1lbnQgPT0gbmV3Rm9jdXNlZEVsZW1lbnQpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCi0gICAgaWYgKHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUpCisgICAgaWYg
KGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IE5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBmb2N1c0NoYW5nZUJsb2NrZWQgPSBmYWxzZTsK
QEAgLTQ1NjEsNyArNDU2MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRha2VET01XaW5kb3dGcm9tKERv
Y3VtZW50JiBkb2N1bWVudCkKICAgICBBU1NFUlQoIW1fZG9tV2luZG93KTsKICAgICBBU1NFUlQo
ZG9jdW1lbnQubV9kb21XaW5kb3cpOwogICAgIC8vIEEgdmFsaWQgRE9NV2luZG93IGlzIG5lZWRl
ZCBieSBDYWNoZWRGcmFtZSBmb3IgaXRzIGRvY3VtZW50cy4KLSAgICBBU1NFUlQocGFnZUNhY2hl
U3RhdGUoKSA9PSBOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKGJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSgpID09IE5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBtX2RvbVdpbmRvdyA9IFdU
Rk1vdmUoZG9jdW1lbnQubV9kb21XaW5kb3cpOwogICAgIG1fZG9tV2luZG93LT5kaWRTZWN1cmVU
cmFuc2l0aW9uVG8oKnRoaXMpOwpAQCAtNTA4MywyMSArNTA4MywyMSBAQCBVUkwgRG9jdW1lbnQ6
OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVybiBjb21wbGV0
ZVVSTCh1cmwsIG1fYmFzZVVSTCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnNldFBhZ2VDYWNoZVN0
YXRlKFBhZ2VDYWNoZVN0YXRlIHN0YXRlKQordm9pZCBEb2N1bWVudDo6c2V0QmFja0ZvcndhcmRD
YWNoZVN0YXRlKEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBzdGF0ZSkKIHsKLSAgICBpZiAobV9wYWdl
Q2FjaGVTdGF0ZSA9PSBzdGF0ZSkKKyAgICBpZiAobV9iYWNrRm9yd2FyZENhY2hlU3RhdGUgPT0g
c3RhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZUNhY2hlU3RhdGUgPSBzdGF0ZTsK
KyAgICBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9IHN0YXRlOwogCiAgICAgRnJhbWVWaWV3KiB2
ID0gdmlldygpOwogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAKICAgICBzd2l0Y2gg
KHN0YXRlKSB7Ci0gICAgY2FzZSBJblBhZ2VDYWNoZToKKyAgICBjYXNlIEluQmFja0ZvcndhcmRD
YWNoZToKICAgICAgICAgaWYgKHYpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBz
b21lIHNjcm9sbGluZyByZWxhdGVkIHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4gd2hlbmV2ZXIg
YSBwYWdlIGdvZXMgaW50byB0aGUKLSAgICAgICAgICAgIC8vIHBhZ2UgY2FjaGUgYW5kIHNpbWls
YXIgd29yayB0aGF0IG5lZWRzIHRvIG9jY3VyIHdoZW4gaXQgY29tZXMgb3V0LiBUaGlzIGlzIHdo
ZXJlIHdlIGRvIHRoZSB3b3JrCisgICAgICAgICAgICAvLyBiYWNrL2ZvcndhcmQgY2FjaGUgYW5k
IHNpbWlsYXIgd29yayB0aGF0IG5lZWRzIHRvIG9jY3VyIHdoZW4gaXQgY29tZXMgb3V0LiBUaGlz
IGlzIHdoZXJlIHdlIGRvIHRoZSB3b3JrCiAgICAgICAgICAgICAvLyB0aGF0IG5lZWRzIHRvIGhh
cHBlbiB3aGVuIHdlIGVudGVyLCBhbmQgdGhlIHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4gd2hl
biB3ZSBleGl0IGlzIGluCiAgICAgICAgICAgICAvLyBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9y
ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkuIEl0IGNhbid0IGJlIGhlcmUgYmVjYXVzZSB0
aGlzIGZ1bmN0aW9uIGlzCiAgICAgICAgICAgICAvLyBjYWxsZWQgdG9vIGVhcmx5IG9uIGluIHRo
ZSBwcm9jZXNzIG9mIGEgcGFnZSBleGl0aW5nIHRoZSBjYWNoZSBmb3IgdGhhdCB3b3JrIHRvIGJl
IHBvc3NpYmxlIGluIHRoaXMKQEAgLTUxMjEsMTEgKzUxMjEsMTEgQEAgdm9pZCBEb2N1bWVudDo6
c2V0UGFnZUNhY2hlU3RhdGUoUGFnZUNhY2hlU3RhdGUgc3RhdGUpCiAKICAgICAgICAgY2xlYXJT
aGFyZWRPYmplY3RQb29sKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTm90SW5QYWdlQ2Fj
aGU6CisgICAgY2FzZSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAgICAgIGlmIChjaGlsZE5l
ZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAgICAgIHNjaGVkdWxlU3R5bGVSZWNhbGMoKTsKICAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBYm91dFRvRW50ZXJQYWdlQ2FjaGU6CisgICAgY2FzZSBB
Ym91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOgogICAgICAgICBicmVhazsKICAgICB9CiB9CkBA
IC01MTQ4LDcgKzUxNDgsNyBAQCB2b2lkIERvY3VtZW50OjpzdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb24gcmVhc29uKQogCiAjaWZuZGVmIE5ERUJVRwogICAgIC8vIENsZWFyIHRoZSB1cGRhdGUg
ZmxhZyB0byBiZSBhYmxlIHRvIGNoZWNrIGlmIHRoZSB2aWV3cG9ydCBhcmd1bWVudHMgdXBkYXRl
Ci0gICAgLy8gaXMgZGlzcGF0Y2hlZCwgYWZ0ZXIgdGhlIGRvY3VtZW50IGlzIHJlc3RvcmVkIGZy
b20gdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gaXMgZGlzcGF0Y2hlZCwgYWZ0ZXIgdGhlIGRvY3Vt
ZW50IGlzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBtX2RpZERp
c3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCA9IGZhbHNlOwogI2VuZGlmCiAKQEAgLTUx
NjksNyArNTE2OSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lv
biByZWFzb24pCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5h
YmxlZCgpICYmIHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2VydmljZVdvcmtl
ckVuYWJsZWQoKSAmJiByZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRD
YWNoZSkKICAgICAgICAgc2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24obnVsbHB0cik7CiAjZW5k
aWYKIApAQCAtNTIxNCw3ICs1MjE0LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzdW1lKFJlYXNvbkZv
clN1c3BlbnNpb24gcmVhc29uKQogICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgpICYmIHJlYXNvbiA9PSBSZWFzb25G
b3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiByZWFzb24gPT0gUmVh
c29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgc2V0U2VydmljZVdv
cmtlckNvbm5lY3Rpb24oU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5leGlzdGlu
Z1NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCkpOwogI2VuZGlmCiB9CkBAIC01NTM0LDcgKzU1MzQs
NyBAQCBEb2N1bWVudCYgRG9jdW1lbnQ6OnRvcERvY3VtZW50KCkgY29uc3QKIHsKICAgICAvLyBG
SVhNRTogVGhpcyBzcGVjaWFsLWNhc2luZyBhdm9pZHMgaW5jb3JyZWN0bHkgZGV0ZXJtaW5lZCB0
b3AgZG9jdW1lbnRzIGR1cmluZyB0aGUgcHJvY2VzcwogICAgIC8vIG9mIEFYT2JqZWN0Q2FjaGUg
dGVhcmRvd24gb3Igbm90aWZpY2F0aW9uIHBvc3RpbmcgZm9yIGNhY2hlZCBvciBiZWluZy1kZXN0
cm95ZWQgZG9jdW1lbnRzLgotICAgIGlmIChwYWdlQ2FjaGVTdGF0ZSgpID09IE5vdEluUGFnZUNh
Y2hlICYmICFtX3JlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCkgeworICAgIGlmIChiYWNrRm9yd2Fy
ZENhY2hlU3RhdGUoKSA9PSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgJiYgIW1fcmVuZGVyVHJlZUJl
aW5nRGVzdHJveWVkKSB7CiAgICAgICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgICAgIHJldHVy
biBjb25zdF9jYXN0PERvY3VtZW50Jj4oKnRoaXMpOwogICAgICAgICAvLyBUaGlzIHNob3VsZCBh
bHdheXMgYmUgbm9uLW51bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc1MzE1ZmU1MWMwNGI3
MzMwMGI4ZDQ1MzYyZmQ1NjYwMDczMDUyYTcuLjk4NmY5YjcxOTI5Y2JiODc3ZDk1OGI1ZDU4YTU5
OTVlODYxNjQ4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDczLDEwICsxMDczLDEwIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgZmluaXNoZWRQYXJzaW5nKCk7CiAKLSAgICBlbnVtIFBhZ2VD
YWNoZVN0YXRlIHsgTm90SW5QYWdlQ2FjaGUsIEFib3V0VG9FbnRlclBhZ2VDYWNoZSwgSW5QYWdl
Q2FjaGUgfTsKKyAgICBlbnVtIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdEluQmFja0Zvcndh
cmRDYWNoZSwgQWJvdXRUb0VudGVyQmFja0ZvcndhcmRDYWNoZSwgSW5CYWNrRm9yd2FyZENhY2hl
IH07CiAKLSAgICBQYWdlQ2FjaGVTdGF0ZSBwYWdlQ2FjaGVTdGF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnZUNhY2hlU3RhdGU7IH0KLSAgICB2b2lkIHNldFBhZ2VDYWNoZVN0YXRlKFBhZ2VDYWNo
ZVN0YXRlKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgYmFja0ZvcndhcmRDYWNoZVN0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV9iYWNrRm9yd2FyZENhY2hlU3RhdGU7IH0KKyAgICB2b2lkIHNl
dEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShCYWNrRm9yd2FyZENhY2hlU3RhdGUpOwogCiAgICAgdm9p
ZCByZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50Jik7CiAgICAg
dm9pZCB1bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKEVsZW1lbnQmKTsK
QEAgLTE5NTAsNyArMTk1MCw3IEBAIHByaXZhdGU6CiAgICAgSW5oZXJpdGVkQm9vbCBtX2Rlc2ln
bk1vZGUgeyBpbmhlcml0IH07CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1f
bWVkaWFTdGF0ZSB7IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyB9OwogICAgIGJvb2wgbV91
c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgeyBmYWxzZSB9OwotICAgIFBhZ2VDYWNo
ZVN0YXRlIG1fcGFnZUNhY2hlU3RhdGUgeyBOb3RJblBhZ2VDYWNoZSB9OworICAgIEJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdEluQmFja0ZvcndhcmRD
YWNoZSB9OwogICAgIE9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVycmVyUG9saWN5Owog
ICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKaW5kZXggODVjNzhhODcyMzY1ZDg5MDM4Njk2NWZl
MDAyMjEyOWUxZjJlNGZmZS4uMWU0Mjg3MWJjMmIyM2NmOThhZTBkMjI3Y2Y1YTcwNWU3NDY2Yjg3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBAIC0zNjMsNyAr
MzYzLDcgQEAgc3RhdGljIHZvaWQgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKFJlbmRlckZ1bGxT
Y3JlZW4qIGZ1bGxzY3JlZW5SZW5kZXJlciwgRWxlbWUKIAogdm9pZCBGdWxsc2NyZWVuTWFuYWdl
cjo6d2lsbEVudGVyRnVsbHNjcmVlbihFbGVtZW50JiBlbGVtZW50KQogewotICAgIGlmICghZG9j
dW1lbnQoKS5oYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0
ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoIWRvY3VtZW50KCkuaGFz
TGl2aW5nUmVuZGVyVHJlZSgpIHx8IGRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgLy8gUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIGNhbGxlZCBhZnRlciB0aGUgZG9jdW1lbnQgaGFz
IGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwYWdlLgpAQCAtNDE3LDcgKzQxNyw3IEBAIHZvaWQgRnVs
bHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiAgICAgaWYgKCFtX2Z1bGxzY3Jl
ZW5FbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRy
ZWUoKSB8fCBwYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAg
ICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAh
PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX2Z1bGxzY3JlZW5FbGVtZW50LT5kaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpOwpAQCAt
NDI5LDcgKzQyOSw3IEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVl
bigpCiAgICAgaWYgKCFmdWxsc2NyZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgcGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVu
dDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgYmFj
a0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgZnVsbHNjcmVlbkVsZW1lbnQtPndpbGxTdG9wQmVpbmdG
dWxsc2NyZWVuRWxlbWVudCgpOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHZvaWQgRnVsbHNjcmVlbk1h
bmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKCkKICAgICBpZiAoIWZ1bGxzY3JlZW5FbGVtZW50KQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBwYWdl
Q2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoIWhhc0xp
dmluZ1JlbmRlclRyZWUoKSB8fCBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6
Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm47CiAgICAgZnVsbHNjcmVlbkVs
ZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJh
bWVCb3VuZGFyaWVzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1
bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIu
aAppbmRleCBlMjczNDE4ZmI1ZThiNmU0YTIwNDFhZGVlZTM5MmE3YzBjNzgyYTIxLi5iZmQyMTdm
ZDExOTVhMGM5ZjEzMTA3ZWJkZjdmM2I5YTAwNzNkZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVs
bHNjcmVlbk1hbmFnZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgRnJhbWUqIGZy
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5mcmFtZSgpOyB9CiAgICAgRWxlbWVudCog
ZG9jdW1lbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQoKTsgfQogICAgIGJvb2wgaGFzTGl2aW5nUmVuZGVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZG9jdW1lbnQuaGFzTGl2aW5nUmVuZGVyVHJlZSgpOyB9Ci0gICAgRG9jdW1lbnQ6OlBhZ2VDYWNo
ZVN0YXRlIHBhZ2VDYWNoZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5wYWdlQ2Fj
aGVTdGF0ZSgpOyB9CisgICAgRG9jdW1lbnQ6OkJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBiYWNrRm9y
d2FyZENhY2hlU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSgpOyB9CiAgICAgdm9pZCBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQoKSB7IG1fZG9j
dW1lbnQuc2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7IH0KIAogICAgIC8vIFczQyBGdWxsc2Ny
ZWVuIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
CmluZGV4IDAwMTAzODc5ODc4YTBmZTdjN2ZlY2ZlYzU3MWEzNDFlZTVkMjU0OTAuLjNlYTliMzhk
ZDIzMzgwNWU3NjU0ZjQ0NGMxMjliMjdjN2VmYjMwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lkIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKFJlYXNvbkZvclN1
c3BlbnNpb24gd2h5KQogICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKIAogICAgIGlmIChtX2FjdGl2
ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQpIHsKLSAgICAgICAgLy8gQSBwYWdlIG1heSBzdWJzZXF1
ZW50bHkgc3VzcGVuZCBET00gb2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50ZXJpbmcgdGhlIHBh
Z2UgY2FjaGUsIGFmdGVyIHRoZSBlbWJlZGRpbmcKKyAgICAgICAgLy8gQSBwYWdlIG1heSBzdWJz
ZXF1ZW50bHkgc3VzcGVuZCBET00gb2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50ZXJpbmcgdGhl
IGJhY2svZm9yd2FyZCBjYWNoZSwgYWZ0ZXIgdGhlIGVtYmVkZGluZwogICAgICAgICAvLyBjbGll
bnQgcmVxdWVzdGVkIHRoZSBwYWdlIGJlIHN1c3BlbmRlZC4gV2UgaWdub3JlIHN1Y2ggcmVxdWVz
dHMgc28gbG9uZyBhcyB0aGUgZW1iZWRkaW5nIGNsaWVudCByZXF1ZXN0ZWQKICAgICAgICAgLy8g
dGhlIHN1c3BlbnNpb24gZmlyc3QuIFNlZSA8cmRhcjovL3Byb2JsZW0vMTM3NTQ4OTY+IGZvciBt
b3JlIGRldGFpbHMuCiAgICAgICAgIEFTU0VSVChtX3JlYXNvbkZvclN1c3BlbmRpbmdBY3RpdmVE
T01PYmplY3RzID09IFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VXaWxsQmVTdXNwZW5kZWQpOwpA
QCAtMzA4LDggKzMwOCw4IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVzdW1lQWN0
aXZlRE9NT2JqZWN0cyhSZWFzb25Gb3JTdXNwZW5zaW9uIHdoeSkKICAgICAgICAgcmV0dXJuIFNo
b3VsZENvbnRpbnVlOjpZZXM7CiAgICAgfSk7CiAKLSAgICAvLyBJbiBjYXNlIHRoZXJlIHdlcmUg
cGVuZGluZyBtZXNzYWdlcyBhdCB0aGUgdGltZSB0aGUgc2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0
IGVudGVyZWQgUGFnZUNhY2hlLAotICAgIC8vIG1ha2Ugc3VyZSB0aG9zZSBnZXQgZGlzcGF0Y2hl
ZCBzaG9ydGx5IGFmdGVyIHJlc3RvcmluZyBmcm9tIFBhZ2VDYWNoZS4KKyAgICAvLyBJbiBjYXNl
IHRoZXJlIHdlcmUgcGVuZGluZyBtZXNzYWdlcyBhdCB0aGUgdGltZSB0aGUgc2NyaXB0IGV4ZWN1
dGlvbiBjb250ZXh0IGVudGVyZWQgdGhlIEJhY2tGb3J3YXJkQ2FjaGUsCisgICAgLy8gbWFrZSBz
dXJlIHRob3NlIGdldCBkaXNwYXRjaGVkIHNob3J0bHkgYWZ0ZXIgcmVzdG9yaW5nIGZyb20gdGhl
IEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgcHJvY2Vzc01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzU29v
bigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJk
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MzczNTNmODNjY2ViZGM0NDIzODlhYTJhNDNjYzFiYTNjZGM3MGE2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNw
cApAQCAtMCwwICsxLDU1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNCwgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQmFj
a0ZvcndhcmRDYWNoZS5oIgorCisjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKKyNp
bmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRQYWdlLmgi
CisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxl
ci5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUg
IkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5o
IgorI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5j
bHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2lu
Y2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhpc3RvcnlDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmgiCisjaW5jbHVk
ZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTY3JpcHREaXNhbGxv
d2VkU2NvcGUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN1YmZyYW1lTG9h
ZGVyLmgiCisjaW5jbHVkZSA8cGFsL0xvZ2dpbmcuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVk
ZSA8d3RmL1NldEZvclNjb3BlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworI2RlZmluZSBQQ0xPRyguLi4pIExPRyhCYWNrRm9yd2FyZENhY2hlLCAiJSpzJXMiLCBp
bmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgpLmRhdGEoKSkK
Kworc3RhdGljIGlubGluZSB2b2lkIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3Rp
Y01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiBy
ZWFzb24pCit7CisgICAgY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dn
aW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUZhaWx1cmVLZXkoKSwgcmVhc29uLCBTaG91bGRTYW1w
bGU6Ok5vKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCit7
CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBsb2dCYWNrRm9yd2FyZENh
Y2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
KCksIHJlYXNvbik7Cit9CisKK3N0YXRpYyBib29sIGNhbkNhY2hlRnJhbWUoRnJhbWUmIGZyYW1l
LCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIHVuc2ln
bmVkIGluZGVudExldmVsKQoreworICAgIFBDTE9HKCIrLS0tIik7CisgICAgRnJhbWVMb2FkZXIm
IGZyYW1lTG9hZGVyID0gZnJhbWUubG9hZGVyKCk7CisKKyAgICAvLyBQcmV2ZW50IHBhZ2UgY2Fj
aGluZyBpZiBhIHN1YmZyYW1lIGlzIHN0aWxsIGluIHByb3Zpc2lvbmFsIGxvYWQgc3RhZ2UuCisg
ICAgLy8gV2Ugb25seSBkbyB0aGlzIGNoZWNrIGZvciBzdWJmcmFtZXMgYmVjYXVzZSB0aGUgbWFp
biBmcmFtZSBpcyByZXVzZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2UuCisgICAgaWYg
KCFmcmFtZS5pc01haW5GcmFtZSgpICYmIGZyYW1lTG9hZGVyLnN0YXRlKCkgPT0gRnJhbWVTdGF0
ZVByb3Zpc2lvbmFsKSB7CisgICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgaW4gcHJvdmlzaW9u
YWwgbG9hZCBzdGFnZSIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdu
b3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnByb3Zpc2lvbmFsTG9hZEtleSgpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpICYmIGZyYW1lTG9hZGVyLnN0YXRlTWFjaGlu
ZSgpLmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkpIHsKKyAgICAgICAgUENMT0co
IiAgIC1NYWluRnJhbWUgaXMgZGlzcGxheWluZyBpbml0aWFsIGVtcHR5IGRvY3VtZW50Iik7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWZyYW1lLmRvY3VtZW50KCkp
IHsKKyAgICAgICAgUENMT0coIiAgIC1GcmFtZSBoYXMgbm8gZG9jdW1lbnQiKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghZnJhbWUuZG9jdW1lbnQoKS0+ZnJhbWUo
KSkgeworICAgICAgICBQQ0xPRygiICAgLURvY3VtZW50IGlzIGRldGFjaGVkIGZyb20gZnJhbWUi
KTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZUxvYWRl
ci5kb2N1bWVudExvYWRlcigpOworICAgIGlmICghZG9jdW1lbnRMb2FkZXIpIHsKKyAgICAgICAg
UENMT0coIiAgIC1UaGVyZSBpcyBubyBEb2N1bWVudExvYWRlciBvYmplY3QiKTsKKyAgICAgICAg
bG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0RvY3VtZW50TG9hZGVyS2V5KCkp
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgVVJMIGN1cnJlbnRVUkwgPSBk
b2N1bWVudExvYWRlci0+dXJsKCk7CisgICAgVVJMIG5ld1VSTCA9IGZyYW1lTG9hZGVyLnByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA/IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRM
b2FkZXIoKS0+dXJsKCkgOiBVUkwoKTsKKyAgICBpZiAoIW5ld1VSTC5pc0VtcHR5KCkpCisgICAg
ICAgIFBDTE9HKCIgRGV0ZXJtaW5pbmcgaWYgZnJhbWUgY2FuIGJlIGNhY2hlZCBuYXZpZ2F0aW5n
IGZyb20gKCIsIGN1cnJlbnRVUkwuc3RyaW5nKCksICIpIHRvICgiLCBuZXdVUkwuc3RyaW5nKCks
ICIpOiIpOworICAgIGVsc2UKKyAgICAgICAgUENMT0coIiBEZXRlcm1pbmluZyBpZiBzdWJmcmFt
ZSB3aXRoIFVSTCAoIiwgY3VycmVudFVSTC5zdHJpbmcoKSwgIikgY2FuIGJlIGNhY2hlZDoiKTsK
KworICAgIGJvb2wgaXNDYWNoZWFibGUgPSB0cnVlOworICAgIC8vIERvIG5vdCBjYWNoZSBlcnJv
ciBwYWdlcyAodGhlc2UgY2FuIGJlIHJlY29nbml6ZWQgYXMgcGFnZXMgd2l0aCBzdWJzdGl0dXRl
IGRhdGEgb3IgdW5yZWFjaGFibGUgVVJMcykuCisgICAgaWYgKGRvY3VtZW50TG9hZGVyLT5zdWJz
dGl0dXRlRGF0YSgpLmlzVmFsaWQoKSAmJiAhZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRh
KCkuZmFpbGluZ1VSTCgpLmlzRW1wdHkoKSkgeworICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGlz
IGFuIGVycm9yIHBhZ2UiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFn
bm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjppc0Vycm9yUGFnZUtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAg
ICB9CisgICAgaWYgKGZyYW1lTG9hZGVyLnN1YmZyYW1lTG9hZGVyKCkuY29udGFpbnNQbHVnaW5z
KCkgJiYgIWZyYW1lLnBhZ2UoKS0+c2V0dGluZ3MoKS5iYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQ
bHVnaW5zKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1GcmFtZSBjb250YWlucyBwbHVnaW5zIik7
CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aGFzUGx1Z2luc0tl
eSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAgaWYgKGZyYW1l
LmlzTWFpbkZyYW1lKCkgJiYgIWZyYW1lTG9hZGVyLmhpc3RvcnkoKS5jdXJyZW50SXRlbSgpKSB7
CisgICAgICAgIFBDTE9HKCIgICAtTWFpbiBmcmFtZSBoYXMgbm8gY3VycmVudCBoaXN0b3J5IGl0
ZW0iKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2Fn
ZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0N1cnJl
bnRIaXN0b3J5SXRlbUtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9
CisgICAgaWYgKGZyYW1lTG9hZGVyLnF1aWNrUmVkaXJlY3RDb21pbmcoKSkgeworICAgICAgICBQ
Q0xPRygiICAgLVF1aWNrIHJlZGlyZWN0IGlzIGNvbWluZyIpOworICAgICAgICBsb2dCYWNrRm9y
d2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnF1aXJrUmVkaXJlY3RDb21pbmdLZXkoKSk7CisgICAg
ICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgfQorICAgIGlmIChkb2N1bWVudExvYWRlci0+
aXNMb2FkaW5nKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudExvYWRlciBpcyBzdGls
bCBsb2FkaW5nIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3Rp
Y01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
aXNMb2FkaW5nS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKyAg
ICBpZiAoZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSkgeworICAgICAgICBQQ0xPRygiICAg
LURvY3VtZW50TG9hZGVyIGlzIGluIHRoZSBtaWRkbGUgb2Ygc3RvcHBpbmciKTsKKyAgICAgICAg
bG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkb2N1bWVudExvYWRlclN0b3BwaW5n
S2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKworICAgIFZlY3Rv
cjxBY3RpdmVET01PYmplY3QqPiB1bnN1c3BlbmRhYmxlT2JqZWN0czsKKyAgICBpZiAoZnJhbWUu
ZG9jdW1lbnQoKSAmJiAhZnJhbWUuZG9jdW1lbnQoKS0+Y2FuU3VzcGVuZEFjdGl2ZURPTU9iamVj
dHNGb3JEb2N1bWVudFN1c3BlbnNpb24oJnVuc3VzcGVuZGFibGVPYmplY3RzKSkgeworICAgICAg
ICBQQ0xPRygiICAgLVRoZSBkb2N1bWVudCBjYW5ub3Qgc3VzcGVuZCBpdHMgYWN0aXZlIERPTSBP
YmplY3RzIik7CisgICAgICAgIGZvciAoYXV0byogYWN0aXZlRE9NT2JqZWN0IDogdW5zdXNwZW5k
YWJsZU9iamVjdHMpIHsKKyAgICAgICAgICAgIFBDTE9HKCIgICAgLSBVbnN1c3BlbmRhYmxlOiAi
LCBhY3RpdmVET01PYmplY3QtPmFjdGl2ZURPTU9iamVjdE5hbWUoKSk7CisgICAgICAgICAgICBk
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnVuc3VzcGVuZGFibGVET01PYmplY3RLZXkoKSwgYWN0aXZlRE9NT2JqZWN0LT5h
Y3RpdmVET01PYmplY3ROYW1lKCksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICAgICAgVU5V
U0VEX1BBUkFNKGFjdGl2ZURPTU9iamVjdCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nQmFja0Zv
cndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tl
eSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIGludmVzdGlnYXRpbmcgY2FjaGluZyBmcmFtZXMgdGhhdCBoYXZlIGFuIGFz
c29jaWF0ZWQKKyAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9ibGVtLzU5MTc4
OTk+IHRyYWNrcyB0aGF0IHdvcmsuCisgICAgaWYgKCFkb2N1bWVudExvYWRlci0+YXBwbGljYXRp
b25DYWNoZUhvc3QoKS5jYW5DYWNoZUluQmFja0ZvcndhcmRDYWNoZSgpKSB7CisgICAgICAgIFBD
TE9HKCIgICAtVGhlIERvY3VtZW50TG9hZGVyIHVzZXMgYW4gYXBwbGljYXRpb24gY2FjaGUiKTsK
KyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphcHBsaWNhdGlvbkNh
Y2hlS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKyAgICBpZiAo
IWZyYW1lTG9hZGVyLmNsaWVudCgpLmNhbkNhY2hlUGFnZSgpKSB7CisgICAgICAgIFBDTE9HKCIg
ICAtVGhlIGNsaWVudCBzYXlzIHRoaXMgZnJhbWUgY2Fubm90IGJlIGNhY2hlZCIpOworICAgICAg
ICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmRlbmllZEJ5Q2xpZW50S2V5KCkp
OworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKworICAgIGZvciAoRnJhbWUq
IGNoaWxkID0gZnJhbWUudHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
PnRyZWUoKS5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICghY2FuQ2FjaGVGcmFtZSgqY2hp
bGQsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRMZXZlbCArIDEpKQorICAgICAgICAg
ICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAgUENMT0coaXNDYWNoZWFi
bGUgPyAiIEZyYW1lIENBTiBiZSBjYWNoZWQiIDogIiBGcmFtZSBDQU5OT1QgYmUgY2FjaGVkIik7
CisgICAgUENMT0coIistLS0iKTsKKyAgICAKKyAgICByZXR1cm4gaXNDYWNoZWFibGU7Cit9CisK
K3N0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQYWdlJiBwYWdlKQoreworICAgIFJFTEVBU0VfQVNT
RVJUKCFwYWdlLmlzUmVzdG9yaW5nQ2FjaGVkUGFnZSgpKTsKKworICAgIHVuc2lnbmVkIGluZGVu
dExldmVsID0gMDsKKyAgICBQQ0xPRygiLS0tLS0tLS1cbiBEZXRlcm1pbmluZyBpZiBwYWdlIGNh
biBiZSBjYWNoZWQ6Iik7CisKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgYm9v
bCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJhbWUocGFnZS5tYWluRnJhbWUoKSwgZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVsICsgMSk7CisKKyAgICBpZiAoIXBhZ2Uuc2V0dGlu
Z3MoKS51c2VzQmFja0ZvcndhcmRDYWNoZSgpIHx8IHBhZ2UuaXNSZXNvdXJjZUNhY2hpbmdEaXNh
YmxlZEJ5V2ViSW5zcGVjdG9yKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1QYWdlIHNldHRpbmdz
IHNheXMgYi9mIGNhY2hlIGRpc2FibGVkIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVG
YWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6aXNEaXNhYmxlZEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBm
YWxzZTsKKyAgICB9CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQo
JnBhZ2UpKSB7CisgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VNb3Rpb24i
KTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShk
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkZXZpY2VNb3Rp
b25LZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgfQorICAgIGlmIChE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7CisgICAgICAg
IFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOworICAgICAgICBs
b2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmRldmljZU9yaWVudGF0aW9uS2V5KCkp
OworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKyNlbmRpZgorCisgICAgRnJh
bWVMb2FkVHlwZSBsb2FkVHlwZSA9IHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkubG9hZFR5cGUo
KTsKKyAgICBzd2l0Y2ggKGxvYWRUeXBlKSB7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWxv
YWQ6CisgICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhlIGNhY2hlIG9uIGEgcmVsb2Fk
LCBzaW5jZSB3ZSB3aWxsIGp1c3Qgd3JpdGUgb3ZlciBpdCBhZ2FpbiB3aGVuIHdlIGxlYXZlIHRo
YXQgcGFnZS4KKyAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5cGUgaXM6IFJlbG9hZCIpOworICAg
ICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlbG9hZEtleSgpKTsKKyAg
ICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGcmFt
ZUxvYWRUeXBlOjpTYW1lOiAvLyB1c2VyIGxvYWRzIHNhbWUgVVJMIGFnYWluIChidXQgbm90IHJl
bG9hZCBidXR0b24pCisgICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhlIGNhY2hlIG9u
IGEgc2FtZSBsb2FkLCBzaW5jZSB3ZSB3aWxsIGp1c3Qgd3JpdGUgb3ZlciBpdCBhZ2FpbiB3aGVu
IHdlIGxlYXZlIHRoYXQgcGFnZS4KKyAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5cGUgaXM6IFNh
bWUiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2Fn
ZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzYW1lTG9h
ZEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q6
CisgICAgICAgIC8vIERvbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUgbWlkZGxlIG9m
IGEgcmVkaXJlY3QsIHNpbmNlIHdlIHdpbGwgd2FudCB0byBzdG9yZSB0aGUgZmluYWwgcGFnZSB3
ZSBlbmQgdXAgb24uCisgICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWRpcmVjdFdp
dGhMb2NrZWRCYWNrRm9yd2FyZExpc3QiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZh
aWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpyZWRpcmVjdEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxz
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZXBsYWNlOgorICAg
ICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHJlcGxhY2UsIHNpbmNl
IHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdl
LgorICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVwbGFjZSIpOworICAgICAgICBs
b2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlcGxhY2VLZXkoKSk7CisgICAgICAg
IGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRnJhbWVMb2Fk
VHlwZTo6UmVsb2FkRnJvbU9yaWdpbjogeworICAgICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRv
IHRoZSBjYWNoZSBvbiBhIHJlbG9hZCwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRlIG92ZXIgaXQg
YWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0IHBhZ2UuCisgICAgICAgIFBDTE9HKCIgICAtTG9hZCB0
eXBlIGlzOiBSZWxvYWRGcm9tT3JpZ2luIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVG
YWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6cmVsb2FkRnJvbU9yaWdpbktleSgpKTsKKyAgICAgICAgaXNDYWNoZWFi
bGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgRnJhbWVMb2FkVHlw
ZTo6UmVsb2FkRXhwaXJlZE9ubHk6IHsKKyAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0
aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFn
YWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgorICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlw
ZSBpczogUmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZCIpOworICAgICAgICBsb2dCYWNrRm9yd2Fy
ZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlbG9hZFJldmFsaWRhdGluZ0V4cGlyZWRLZXkoKSk7Cisg
ICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBj
YXNlIEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkOgorICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6QmFj
azoKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQ6CisgICAgY2FzZSBGcmFtZUxvYWRU
eXBlOjpJbmRleGVkQmFja0ZvcndhcmQ6IC8vIGEgbXVsdGktaXRlbSBob3AgaW4gdGhlIGJhY2tm
b3J3YXJkIGxpc3QKKyAgICAgICAgLy8gQ2FjaGVhYmxlLgorICAgICAgICBicmVhazsKKyAgICB9
CisgICAgCisgICAgaWYgKGlzQ2FjaGVhYmxlKQorICAgICAgICBQQ0xPRygiIFBhZ2UgQ0FOIGJl
IGNhY2hlZFxuLS0tLS0tLS0iKTsKKyAgICBlbHNlCisgICAgICAgIFBDTE9HKCIgUGFnZSBDQU5O
T1QgYmUgY2FjaGVkXG4tLS0tLS0tLSIpOworCisgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQu
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFj
a0ZvcndhcmRDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhbkNhY2hlS2V5KCks
IGlzQ2FjaGVhYmxlID8gRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzIDogRGlhZ25vc3RpY0xv
Z2dpbmdSZXN1bHRGYWlsLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICByZXR1cm4gaXNDYWNoZWFi
bGU7Cit9CisKK0JhY2tGb3J3YXJkQ2FjaGUmIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEJhY2tGb3J3YXJkQ2FjaGU+IGdsb2JhbEJh
Y2tGb3J3YXJkQ2FjaGU7CisgICAgcmV0dXJuIGdsb2JhbEJhY2tGb3J3YXJkQ2FjaGU7Cit9CisK
K0JhY2tGb3J3YXJkQ2FjaGU6OkJhY2tGb3J3YXJkQ2FjaGUoKQoreworICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewor
ICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hv
d0JhY2tGb3J3YXJkQ2FjaGUiLCBbXSB7CisgICAgICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpz
aW5nbGV0b24oKS5kdW1wKCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2b2lkIEJhY2tG
b3J3YXJkQ2FjaGU6OmR1bXAoKSBjb25zdAoreworICAgIFdURkxvZ0Fsd2F5cygiQmFjay9Gb3J3
YXJkIENhY2hlOiIpOworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKKyAgICAgICAg
Q2FjaGVkUGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiICBQYWdlICVwLCBkb2N1bWVudCAlcCAlcyIsICZjYWNoZWRQYWdlLnBhZ2Uo
KSwgY2FjaGVkUGFnZS5kb2N1bWVudCgpLCBjYWNoZWRQYWdlLmRvY3VtZW50KCkgPyBjYWNoZWRQ
YWdlLmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CisgICAg
fQorfQorCitib29sIEJhY2tGb3J3YXJkQ2FjaGU6OmNhbkNhY2hlKFBhZ2UmIHBhZ2UpIGNvbnN0
Cit7CisgICAgaWYgKCFtX21heFNpemUpIHsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZh
aWx1cmVEaWFnbm9zdGljTWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppc0Rp
c2FibGVkS2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVByZXNzdXJlKCkp
IHsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSgm
cGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmRlck1lbW9yeVByZXNzdXJlS2V5KCkpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHJldHVybiBjYW5DYWNoZVBh
Z2UocGFnZSk7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmVUb1NpemVOb3codW5z
aWduZWQgc2l6ZSwgUHJ1bmluZ1JlYXNvbiBwcnVuaW5nUmVhc29uKQoreworICAgIFNldEZvclNj
b3BlPHVuc2lnbmVkPiBjaGFuZ2UobV9tYXhTaXplLCBzaXplKTsKKyAgICBwcnVuZShwcnVuaW5n
UmVhc29uKTsKK30KKwordm9pZCBCYWNrRm9yd2FyZENhY2hlOjpzZXRNYXhTaXplKHVuc2lnbmVk
IG1heFNpemUpCit7CisgICAgbV9tYXhTaXplID0gbWF4U2l6ZTsKKyAgICBwcnVuZShQcnVuaW5n
UmVhc29uOjpOb25lKTsKK30KKwordW5zaWduZWQgQmFja0ZvcndhcmRDYWNoZTo6ZnJhbWVDb3Vu
dCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMuc2l6ZSgpOwor
ICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKKyAgICAgICAgQVNTRVJUKGl0ZW0tPm1f
Y2FjaGVkUGFnZSk7CisgICAgICAgIGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNoZWRQYWdlLT5j
YWNoZWRNYWluRnJhbWUoKS0+ZGVzY2VuZGFudEZyYW1lQ291bnQoKTsKKyAgICB9CisgICAgCisg
ICAgcmV0dXJuIGZyYW1lQ291bnQ7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6bWFya1Bh
Z2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKFBhZ2UmIHBhZ2UpCit7CisgICAgZm9yIChh
dXRvJiBpdGVtIDogbV9pdGVtcykgeworICAgICAgICBDYWNoZWRQYWdlJiBjYWNoZWRQYWdlID0g
Kml0ZW0tPm1fY2FjaGVkUGFnZTsKKyAgICAgICAgaWYgKCZwYWdlLm1haW5GcmFtZSgpID09ICZj
YWNoZWRQYWdlLmNhY2hlZE1haW5GcmFtZSgpLT52aWV3KCktPmZyYW1lKCkpCisgICAgICAgICAg
ICBjYWNoZWRQYWdlLm1hcmtGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoKTsKKyAgICB9Cit9
CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ29udGVudHNTaXplQ2hhbmdl
ZChQYWdlJiBwYWdlKQoreworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKKyAgICAg
ICAgQ2FjaGVkUGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7CisgICAgICAg
IGlmICgmcGFnZS5tYWluRnJhbWUoKSA9PSAmY2FjaGVkUGFnZS5jYWNoZWRNYWluRnJhbWUoKS0+
dmlldygpLT5mcmFtZSgpKQorICAgICAgICAgICAgY2FjaGVkUGFnZS5tYXJrRm9yQ29udGVudHNT
aXplQ2hhbmdlZCgpOworICAgIH0KK30KKworI2lmIEVOQUJMRShWSURFT19UUkFDSykKK3ZvaWQg
QmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgp
Cit7CisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9pdGVtcykgeworICAgICAgICBBU1NFUlQoaXRl
bS0+bV9jYWNoZWRQYWdlKTsKKyAgICAgICAgaXRlbS0+bV9jYWNoZWRQYWdlLT5tYXJrRm9yQ2Fw
dGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOworICAgIH0KK30KKyNlbmRpZgorCitzdGF0aWMgU3Ry
aW5nIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KFBydW5pbmdSZWFzb24gcHJ1
bmluZ1JlYXNvbikKK3sKKyAgICBzd2l0Y2ggKHBydW5pbmdSZWFzb24pIHsKKyAgICBjYXNlIFBy
dW5pbmdSZWFzb246Ok1lbW9yeVByZXNzdXJlOgorICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpwcnVuZWREdWVUb01lbW9yeVByZXNzdXJlS2V5KCk7CisgICAgY2FzZSBQcnVu
aW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOgorICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpwcnVuZWREdWVUb1Byb2Nlc3NTdXNwZW5kZWQoKTsKKyAgICBjYXNlIFBydW5p
bmdSZWFzb246OlJlYWNoZWRNYXhTaXplOgorICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpwcnVuZWREdWVUb01heFNpemVSZWFjaGVkKCk7CisgICAgY2FzZSBQcnVuaW5nUmVh
c29uOjpOb25lOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldEJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZShQYWdlJiBwYWdlLCBEb2N1bWVudDo6QmFja0ZvcndhcmRDYWNoZVN0
YXRlIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkKK3sKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZw
YWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4
dCgpKSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQor
ICAgICAgICAgICAgZG9jdW1lbnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShCYWNrRm9yd2Fy
ZENhY2hlU3RhdGUpOworICAgIH0KK30KKworLy8gV2hlbiBlbnRlcmluZyBiYWNrL2ZvcndhcmQg
Y2FjaGUsIHRlYXIgZG93biB0aGUgcmVuZGVyIHRyZWUgYmVmb3JlIHNldHRpbmcgdGhlIGluLWNh
Y2hlIGZsYWcuCisvLyBUaGlzIG1haW50YWlucyB0aGUgaW52YXJpYW50IHRoYXQgcmVuZGVyIHRy
ZWVzIGFyZSBuZXZlciBwcmVzZW50IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisvLyBOb3Rl
IHRoYXQgZGVzdHJ1Y3Rpb24gaGFwcGVucyBib3R0b20tdXAgc28gdGhhdCB0aGUgbWFpbiBmcmFt
ZSdzIHRyZWUgZGllcyBsYXN0Lgorc3RhdGljIHZvaWQgZGVzdHJveVJlbmRlclRyZWUoRnJhbWUm
IG1haW5GcmFtZSkKK3sKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZS50cmVlKCku
dHJhdmVyc2VQcmV2aW91cyhDYW5XcmFwOjpZZXMpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlUHJldmlvdXMoQ2FuV3JhcDo6Tm8pKSB7CisgICAgICAgIGlmICghZnJhbWUt
PmRvY3VtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgZG9jdW1l
bnQgPSAqZnJhbWUtPmRvY3VtZW50KCk7CisgICAgICAgIGlmIChkb2N1bWVudC5oYXNMaXZpbmdS
ZW5kZXJUcmVlKCkpCisgICAgICAgICAgICBkb2N1bWVudC5kZXN0cm95UmVuZGVyVHJlZSgpOwor
ICAgIH0KK30KKworc3RhdGljIHZvaWQgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNpdmVseShGcmFt
ZSYgZnJhbWUpCit7CisgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpOworICAg
IGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIHN0b3BMb2FkaW5nKCkg
d2lsbCBmaXJlIHRoZSBwYWdlaGlkZSBldmVudCBpbiBlYWNoIHN1YmZyYW1lIGFuZCB0aGUgSFRN
TCBzcGVjaWZpY2F0aW9uIHN0YXRlcworICAgIC8vIHRoYXQgdGhlIHBhcmVudCBkb2N1bWVudCdz
IGlnbm9yZS1vcGVucy1kdXJpbmctdW5sb2FkIGNvdW50ZXIgc2hvdWxkIGJlIGluY3JlbWVudGVk
IHdoaWxlIHRoZQorICAgIC8vIHBhZ2VoaWRlIGV2ZW50IGlzIGJlaW5nIGZpcmVkIGluIGl0cyBz
dWJmcmFtZXM6CisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
YnJvd3NlcnMuaHRtbCN1bmxvYWQtYS1kb2N1bWVudAorICAgIElnbm9yZU9wZW5zRHVyaW5nVW5s
b2FkQ291bnRJbmNyZW1lbnRlciBpZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50
ZXIoZG9jdW1lbnQpOworCisgICAgZnJhbWUubG9hZGVyKCkuc3RvcExvYWRpbmcoVW5sb2FkRXZl
bnRQb2xpY3lVbmxvYWRBbmRQYWdlSGlkZSk7CisKKyAgICBmb3IgKFJlZlB0cjxGcmFtZT4gY2hp
bGQgPSBmcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJl
ZSgpLm5leHRTaWJsaW5nKCkpCisgICAgICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZlbHko
KmNoaWxkKTsKK30KKworYm9vbCBCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hlYWJsZShIaXN0
b3J5SXRlbSYgaXRlbSwgUGFnZSogcGFnZSkKK3sKKyAgICBpZiAoaXRlbS5pc0luQmFja0Zvcndh
cmRDYWNoZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLnN0b3BG
b3JCYWNrRm9yd2FyZENhY2hlKCk7CisKKyAgICBpZiAoIWNhbkNhY2hlKCpwYWdlKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghcGFnZS0+aXNVdGls
aXR5UGFnZSgpLCAiVXRpbGl0eSBwYWdlcyBzdWNoIGFzIFNWR0ltYWdlIHBhZ2VzIHNob3VsZCBu
ZXZlciBnbyBpbnRvIEJhY2tGb3J3YXJkQ2FjaGUiKTsKKworICAgIHNldEJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSgqcGFnZSwgRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUpOwor
CisgICAgLy8gRm9jdXMgdGhlIG1haW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1c2VkIHN1YmZy
YW1lIChpZiB3ZSBoYXZlIG9uZSkuIFdlIGRvIHRoaXMgaGVyZSwKKyAgICAvLyBiZWZvcmUgdGhl
IHBhZ2UgZW50ZXJzIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIHdoaWxlIHdlIHN0aWxsIGNhbiBk
aXNwYXRjaCBET00gYmx1ci9mb2N1cyBldmVudHMuCisgICAgaWYgKHBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLmZvY3VzZWRGcmFtZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5z
ZXRGb2N1c2VkRnJhbWUoJnBhZ2UtPm1haW5GcmFtZSgpKTsKKworICAgIC8vIEZpcmUgdGhlIHBh
Z2VoaWRlIGV2ZW50IGluIGFsbCBmcmFtZXMuCisgICAgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNp
dmVseShwYWdlLT5tYWluRnJhbWUoKSk7CisKKyAgICBkZXN0cm95UmVuZGVyVHJlZShwYWdlLT5t
YWluRnJhbWUoKSk7CisKKyAgICAvLyBTdG9wIGFsbCBsb2FkcyBhZ2FpbiBiZWZvcmUgY2hlY2tp
bmcgaWYgd2UgY2FuIHN0aWxsIGNhY2hlIHRoZSBwYWdlIGFmdGVyIGZpcmluZyB0aGUgcGFnZWhp
ZGUKKyAgICAvLyBldmVudCwgc2luY2UgdGhlIHBhZ2UgbWF5IGhhdmUgc3RhcnRlZCBwaW5nIGxv
YWRzIGluIGl0cyBwYWdlaGlkZSBldmVudCBoYW5kbGVyLgorICAgIHBhZ2UtPm1haW5GcmFtZSgp
LmxvYWRlcigpLnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisKKyAgICAvLyBDaGVjayB0aGF0
IHRoZSBwYWdlIGlzIHN0aWxsIHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0aGUgcGFnZWhp
ZGUgZXZlbnQuIFRoZSBKUyBldmVudCBoYW5kbGVycworICAgIC8vIGNvdWxkIGhhdmUgYWx0ZXJl
ZCB0aGUgcGFnZSBpbiBhIHdheSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4KKyAgICBpZiAo
IWNhbkNhY2hlKCpwYWdlKSkgeworICAgICAgICBzZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUoKnBh
Z2UsIERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgc2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKCpwYWdlLCBEb2N1bWVu
dDo6SW5CYWNrRm9yd2FyZENhY2hlKTsKKworICAgIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdl
IGRvbid0IGZpcmUgYW55IEpTIGV2ZW50cyBpbiB0aGlzIHNjb3BlLgorICAgICAgICBTY3JpcHRE
aXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZCBzY3JpcHREaXNhbGxvd2VkU2NvcGU7CisKKyAg
ICAgICAgaXRlbS5zZXRDYWNoZWRQYWdlKG1ha2VVbmlxdWU8Q2FjaGVkUGFnZT4oKnBhZ2UpKTsK
KyAgICAgICAgaXRlbS5tX3BydW5pbmdSZWFzb24gPSBQcnVuaW5nUmVhc29uOjpOb25lOworICAg
ICAgICBtX2l0ZW1zLmFkZCgmaXRlbSk7CisgICAgfQorICAgIHBydW5lKFBydW5pbmdSZWFzb246
OlJlYWNoZWRNYXhTaXplKTsKKworICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJC
YWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hlYWJsZSBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIs
IGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpLCBt
YXhTaXplKCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxDYWNo
ZWRQYWdlPiBCYWNrRm9yd2FyZENhY2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBw
YWdlKQoreworICAgIGlmICghaXRlbS5tX2NhY2hlZFBhZ2UpIHsKKyAgICAgICAgaWYgKGl0ZW0u
bV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCisgICAgICAgICAgICBsb2dC
YWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIHBydW5pbmdSZWFz
b25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KGl0ZW0ubV9wcnVuaW5nUmVhc29uKSk7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIG1faXRlbXMucmVtb3ZlKCZpdGVtKTsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IGl0ZW0udGFrZUNhY2hl
ZFBhZ2UoKTsKKworICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJCYWNrRm9yd2Fy
ZENhY2hlOjp0YWtlIGl0ZW06ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5pZGVudGlmaWVyKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7CisKKyAgICBp
ZiAoY2FjaGVkUGFnZS0+aGFzRXhwaXJlZCgpIHx8IChwYWdlICYmIHBhZ2UtPmlzUmVzb3VyY2VD
YWNoaW5nRGlzYWJsZWRCeVdlYkluc3BlY3RvcigpKSkgeworICAgICAgICBMT0coQmFja0Zvcndh
cmRDYWNoZSwgIk5vdCByZXN0b3JpbmcgcGFnZSBmb3IgJXMgZnJvbSBiYWNrL2ZvcndhcmQgY2Fj
aGUgYmVjYXVzZSBjYWNoZSBlbnRyeSBoYXMgZXhwaXJlZCIsIGl0ZW0udXJsKCkuc3RyaW5nKCku
YXNjaWkoKS5kYXRhKCkpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdu
b3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtleSgpKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGNhY2hlZFBhZ2U7
Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQYWdlKFBhZ2Um
IHBhZ2UpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uo
IW1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSwgIldlIHNob3VsZCBub3QgcmVlbnRlciB0aGlz
IG1ldGhvZCIpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVtb3ZlQWxsSXRlbXNGb3JQYWdl
U2NvcGUgeyBtX2lzSW5SZW1vdmVBbGxJdGVtc0ZvclBhZ2UsIHRydWUgfTsKKyNlbmRpZgorCisg
ICAgZm9yIChhdXRvIGl0ID0gbV9pdGVtcy5iZWdpbigpOyBpdCAhPSBtX2l0ZW1zLmVuZCgpOykg
eworICAgICAgICAvLyBJbmNyZW1lbnQgaXRlcmF0b3IgZmlyc3Qgc28gaXQgc3RheXMgdmFsaWQg
YWZ0ZXIgdGhlIHJlbW92YWwuCisgICAgICAgIGF1dG8gY3VycmVudCA9IGl0OworICAgICAgICAr
K2l0OworICAgICAgICBpZiAoJigqY3VycmVudCktPm1fY2FjaGVkUGFnZS0+cGFnZSgpID09ICZw
YWdlKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhCYWNrRm9yd2FyZENhY2hlLCAiQmFja0Zv
cndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQYWdlIHJlbW92aW5nIGl0ZW06ICVzLCBzaXpl
OiAldSAvICV1IiwgKCpjdXJyZW50KS0+aWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCksIHBhZ2VDb3VudCgpIC0gMSwgbWF4U2l6ZSgpKTsKKyAgICAgICAgICAgICgqY3VycmVudCkt
PnNldENhY2hlZFBhZ2UobnVsbHB0cik7CisgICAgICAgICAgICBtX2l0ZW1zLnJlbW92ZShjdXJy
ZW50KTsKKyAgICAgICAgfQorICAgIH0KK30KKworQ2FjaGVkUGFnZSogQmFja0ZvcndhcmRDYWNo
ZTo6Z2V0KEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQoreworICAgIENhY2hlZFBhZ2Uq
IGNhY2hlZFBhZ2UgPSBpdGVtLm1fY2FjaGVkUGFnZS5nZXQoKTsKKyAgICBpZiAoIWNhY2hlZFBh
Z2UpIHsKKyAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246
Ok5vbmUpCisgICAgICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNN
ZXNzYWdlKHBhZ2UsIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KGl0ZW0ubV9w
cnVuaW5nUmVhc29uKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlm
IChjYWNoZWRQYWdlLT5oYXNFeHBpcmVkKCkgfHwgKHBhZ2UgJiYgcGFnZS0+aXNSZXNvdXJjZUNh
Y2hpbmdEaXNhYmxlZEJ5V2ViSW5zcGVjdG9yKCkpKSB7CisgICAgICAgIExPRyhCYWNrRm9yd2Fy
ZENhY2hlLCAiTm90IHJlc3RvcmluZyBwYWdlIGZvciAlcyBmcm9tIGJhY2svZm9yd2FyZCBjYWNo
ZSBiZWNhdXNlIGNhY2hlIGVudHJ5IGhhcyBleHBpcmVkIiwgaXRlbS51cmwoKS5zdHJpbmcoKS5h
c2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25v
c3RpY01lc3NhZ2UocGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleHBpcmVkS2V5KCkpOwor
ICAgICAgICByZW1vdmUoaXRlbSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAg
ICByZXR1cm4gY2FjaGVkUGFnZTsKK30KKwordm9pZCBCYWNrRm9yd2FyZENhY2hlOjpyZW1vdmUo
SGlzdG9yeUl0ZW0mIGl0ZW0pCit7CisgICAgLy8gU2FmZWx5IGlnbm9yZSBhdHRlbXB0cyB0byBy
ZW1vdmUgaXRlbXMgbm90IGluIHRoZSBjYWNoZS4KKyAgICBpZiAoIWl0ZW0ubV9jYWNoZWRQYWdl
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7CisgICAgaXRl
bS5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOworCisgICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRD
YWNoZSwgIkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZSBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIs
IGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpLCBt
YXhTaXplKCkpOworCit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUoUHJ1bmluZ1Jl
YXNvbiBwcnVuaW5nUmVhc29uKQoreworICAgIHdoaWxlIChwYWdlQ291bnQoKSA+IG1heFNpemUo
KSkgeworICAgICAgICBhdXRvIG9sZGVzdEl0ZW0gPSBtX2l0ZW1zLnRha2VGaXJzdCgpOworICAg
ICAgICBvbGRlc3RJdGVtLT5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOworICAgICAgICBvbGRlc3RJ
dGVtLT5tX3BydW5pbmdSZWFzb24gPSBwcnVuaW5nUmVhc29uOworICAgICAgICBSRUxFQVNFX0xP
RyhCYWNrRm9yd2FyZENhY2hlLCAiQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUgcmVtb3ZpbmcgaXRl
bTogJXMsIHNpemU6ICV1IC8gJXUiLCBvbGRlc3RJdGVtLT5pZGVudGlmaWVyKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7CisgICAgfQorfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0Jh
Y2tGb3J3YXJkQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDYWNo
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFlNGU2MGZhNDZlZWY2ZjYyNGExNDBmMGUyY2UxY2U0M2IwM2NlMTcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2Fj
aGUuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSGlzdG9yeUl0ZW0u
aCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIENhY2hlZFBhZ2U7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7CisKK2VudW0gY2xh
c3MgUHJ1bmluZ1JlYXNvbiB7IE5vbmUsIFByb2Nlc3NTdXNwZW5kZWQsIE1lbW9yeVByZXNzdXJl
LCBSZWFjaGVkTWF4U2l6ZSB9OworCitjbGFzcyBCYWNrRm9yd2FyZENhY2hlIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShCYWNrRm9yd2FyZENhY2hlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhlIGdsb2JhbCBi
YWNrL2ZvcndhcmQgY2FjaGUuCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEJhY2tGb3J3YXJk
Q2FjaGUmIHNpbmdsZXRvbigpOworCisgICAgYm9vbCBjYW5DYWNoZShQYWdlJikgY29uc3Q7CisK
KyAgICAvLyBVc2VkIHdoZW4gbWVtb3J5IGlzIGxvdyB0byBwcnVuZSBzb21lIGNhY2hlZCBwYWdl
cy4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBydW5lVG9TaXplTm93KHVuc2lnbmVkIG1heFNp
emUsIFBydW5pbmdSZWFzb24pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWF4U2l6ZSh1
bnNpZ25lZCk7IC8vIG51bWJlciBvZiBwYWdlcyB0byBjYWNoZS4KKyAgICB1bnNpZ25lZCBtYXhT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhTaXplOyB9CisKKyAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGFkZElmQ2FjaGVhYmxlKEhpc3RvcnlJdGVtJiwgUGFnZSopOyAvLyBQcnVuZXMgaWYgbWF4
U2l6ZSgpIGlzIGV4Y2VlZGVkLgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlKEhpc3Rv
cnlJdGVtJik7CisgICAgQ2FjaGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVtJiwgUGFnZSopOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJdGVtJiwgUGFnZSopOwor
CisgICAgdm9pZCByZW1vdmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYpOworCisgICAgdW5zaWduZWQg
cGFnZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtcy5zaXplKCk7IH0KKyAgICBXRUJDT1JF
X0VYUE9SVCB1bnNpZ25lZCBmcmFtZUNvdW50KCkgY29uc3Q7CisKKyAgICB2b2lkIG1hcmtQYWdl
c0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZChQYWdlJik7CisgICAgdm9pZCBtYXJrUGFnZXNG
b3JDb250ZW50c1NpemVDaGFuZ2VkKFBhZ2UmKTsKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisg
ICAgdm9pZCBtYXJrUGFnZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisjZW5kaWYK
KworcHJpdmF0ZToKKyAgICBCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgfkJhY2tGb3J3YXJkQ2Fj
aGUoKSA9IGRlbGV0ZTsgLy8gTWFrZSBzdXJlIG5vYm9keSBhY2NpZGVudGFsbHkgY2FsbHMgZGVs
ZXRlIC0tIFdlYkNvcmUgZG9lcyBub3QgZGVsZXRlIHNpbmdsZXRvbnMuCisKKyAgICBzdGF0aWMg
Ym9vbCBjYW5DYWNoZVBhZ2VDb250YWluaW5nVGhpc0ZyYW1lKEZyYW1lJik7CisKKyAgICB2b2lk
IHBydW5lKFBydW5pbmdSZWFzb24pOworICAgIHZvaWQgZHVtcCgpIGNvbnN0OworCisgICAgTGlz
dEhhc2hTZXQ8UmVmUHRyPEhpc3RvcnlJdGVtPj4gbV9pdGVtczsKKyAgICB1bnNpZ25lZCBtX21h
eFNpemUgezB9OworCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wgbV9pc0luUmVtb3Zl
QWxsSXRlbXNGb3JQYWdlIHsgZmFsc2UgfTsKKyNlbmRpZgorCisgICAgZnJpZW5kIGNsYXNzIFdU
Rjo6TmV2ZXJEZXN0cm95ZWQ8QmFja0ZvcndhcmRDYWNoZT47Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCmluZGV4IDhmMWU0
ZGEwMzZhNDJiNGI1ZWY3MGFmNWViZDEzYjAzODZlOGYyN2YuLjg3YWIxNzMxM2QzNjJkM2FlZDkw
MzU4MTM2YjhjNzMyOTc0NjI5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rvcnkv
Q2FjaGVkRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUu
Y3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkRnJhbWUuaCIKIAorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJD
U1NBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRnJhbWVQbGF0Zm9ybURh
dGEuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCkBAIC00MSw3ICs0Miw2IEBACiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25EaXNhYmxlci5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQu
aCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6
cmVzdG9yZSgpCiAgICAgICAgIGlmIChtX2RvY3VtZW50LT5zdmdFeHRlbnNpb25zKCkpCiAgICAg
ICAgICAgICBtX2RvY3VtZW50LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkudW5wYXVzZUFuaW1hdGlv
bnMoKTsKIAotICAgICAgICBtX2RvY3VtZW50LT5yZXN1bWUoUmVhc29uRm9yU3VzcGVuc2lvbjo6
UGFnZUNhY2hlKTsKKyAgICAgICAgbV9kb2N1bWVudC0+cmVzdW1lKFJlYXNvbkZvclN1c3BlbnNp
b246OkJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgICAgIC8vIEl0IGlzIG5lY2Vzc2FyeSB0byB1
cGRhdGUgYW55IHBsYXRmb3JtIHNjcmlwdCBvYmplY3RzIGFmdGVyIHJlc3RvcmluZyB0aGUKICAg
ICAgICAgLy8gY2FjaGVkIHBhZ2UuCiAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS51cGRhdGVQbGF0
Zm9ybVNjcmlwdE9iamVjdHMoKTsKIAotICAgICAgICBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCku
ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICAgICAgZnJhbWUtPmxvYWRlcigpLmNsaWVu
dCgpLmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgICAgIHBydW5lRGV0
YWNoZWRDaGlsZEZyYW1lcygpOwogCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBDYWNoZWRGcmFt
ZUJhc2U6OnJlc3RvcmUoKQogICAgIH0KICNlbmRpZgogCi0gICAgZnJhbWUtPnZpZXcoKS0+ZGlk
UmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICBmcmFtZS0+dmlldygpLT5kaWRSZXN0b3JlRnJv
bUJhY2tGb3J3YXJkQ2FjaGUoKTsKIH0KIAogQ2FjaGVkRnJhbWU6OkNhY2hlZEZyYW1lKEZyYW1l
JiBmcmFtZSkKQEAgLTE1MCw3ICsxNTAsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJh
bWUmIGZyYW1lKQogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQobV9kb2N1bWVu
dExvYWRlcik7CiAgICAgQVNTRVJUKG1fdmlldyk7Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQtPnBh
Z2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKTsKKyAgICBBU1NFUlQobV9k
b2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluQmFja0Zvcndh
cmRDYWNoZSk7CiAKICAgICBSRUxFQVNFX0FTU0VSVChtX2RvY3VtZW50LT5kb21XaW5kb3coKSk7
CiAgICAgUkVMRUFTRV9BU1NFUlQobV9kb2N1bWVudC0+ZnJhbWUoKSk7CkBAIC0xNjksMTQgKzE2
OSwxNCBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIFJFTEVB
U0VfQVNTRVJUKG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5mcmFtZSgpKTsKIAogICAgIC8vIEFj
dGl2ZSBET00gb2JqZWN0cyBtdXN0IGJlIHN1c3BlbmRlZCBiZWZvcmUgd2UgY2FjaGUgdGhlIGZy
YW1lIHNjcmlwdCBkYXRhLgotICAgIG1fZG9jdW1lbnQtPnN1c3BlbmQoUmVhc29uRm9yU3VzcGVu
c2lvbjo6UGFnZUNhY2hlKTsKKyAgICBtX2RvY3VtZW50LT5zdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgbV9jYWNoZWRGcmFtZVNjcmlwdERhdGEg
PSBtYWtlVW5pcXVlPFNjcmlwdENhY2hlZEZyYW1lRGF0YT4oZnJhbWUpOwogCi0gICAgbV9kb2N1
bWVudC0+ZG9tV2luZG93KCktPnN1c3BlbmRGb3JQYWdlQ2FjaGUoKTsKKyAgICBtX2RvY3VtZW50
LT5kb21XaW5kb3coKS0+c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKIAogICAgIC8vIENs
ZWFyIEZyYW1lVmlldyB0byByZXNldCBmbGFncyBzdWNoIGFzICdmaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRDYWxsYmFja1BlbmRpbmcnIHNvIHRoYXQgdGhlCi0gICAgLy8gJ0RpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dCcgY2FsbGJhY2sgZ2V0cyBjYWxsZWQgYWdhaW5zdCB3aGVuIHJl
c3RvcmluZyBmcm9tIFBhZ2VDYWNoZS4KKyAgICAvLyAnRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0JyBjYWxsYmFjayBnZXRzIGNhbGxlZCBhZ2FpbnN0IHdoZW4gcmVzdG9yaW5nIGZyb20g
dGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgbV92aWV3LT5yZXNldExheW91dE1pbGVzdG9uZXMo
KTsKIAogICAgIC8vIFRoZSBtYWluIGZyYW1lIGlzIHJldXNlZCBmb3IgdGhlIG5hdmlnYXRpb24g
YW5kIHRoZSBvcGVuZXIgbGluayB0byBpdHMgc2hvdWxkIHRodXMgcGVyc2lzdC4KQEAgLTE4NSwx
MyArMTg1LDEzIEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAKICAg
ICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRGcmFtZSh0
aGlzKTsKIAotICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjYW4gc2V0
IHVwIGEgbGF5b3V0IHRpbWVyIG9uIHRoZSBGcmFtZVZpZXcsIHNvIGNsZWFyIHRpbWVycyBhZnRl
ciB0aGF0LgorICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkg
Y2FuIHNldCB1cCBhIGxheW91dCB0aW1lciBvbiB0aGUgRnJhbWVWaWV3LCBzbyBjbGVhciB0aW1l
cnMgYWZ0ZXIgdGhhdC4KICAgICBmcmFtZS5jbGVhclRpbWVycygpOwogCiAgICAgLy8gRGVjb25z
dHJ1Y3QgdGhlIEZyYW1lVHJlZSwgdG8gcmVzdG9yZSBpdCBsYXRlci4KICAgICAvLyBXZSBkbyB0
aGlzIGZvciB0d28gcmVhc29uczoKICAgICAvLyAxIC0gV2UgcmV1c2UgdGhlIG1haW4gZnJhbWUs
IHNvIHdoZW4gaXQgbmF2aWdhdGVzIHRvIGEgbmV3IHBhZ2UgbG9hZCBpdCBuZWVkcyB0byBzdGFy
dCB3aXRoIGEgYmxhbmsgRnJhbWVUcmVlLgotICAgIC8vIDIgLSBJdCdzIG11Y2ggZWFzaWVyIHRv
IGRlc3Ryb3kgYSBDYWNoZWRGcmFtZSB3aGlsZSBpdCByZXNpZGVzIGluIHRoZSBQYWdlQ2FjaGUg
aWYgaXQgaXMgZGlzY29ubmVjdGVkIGZyb20gaXRzIHBhcmVudC4KKyAgICAvLyAyIC0gSXQncyBt
dWNoIGVhc2llciB0byBkZXN0cm95IGEgQ2FjaGVkRnJhbWUgd2hpbGUgaXQgcmVzaWRlcyBpbiB0
aGUgQmFja0ZvcndhcmRDYWNoZSBpZiBpdCBpcyBkaXNjb25uZWN0ZWQgZnJvbSBpdHMgcGFyZW50
LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNpemUoKTsgKytp
KQogICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQobV9jaGlsZEZyYW1lc1tpXS0+dmll
dygpLT5mcmFtZSgpKTsKIApAQCAtMjM1LDExICsyMzUsMTEgQEAgdm9pZCBDYWNoZWRGcmFtZTo6
Y2xlYXIoKQogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8g
Y2xlYXIoKSBzaG91bGQgb25seSBiZSBjYWxsZWQgZm9yIEZyYW1lcyByZXByZXNlbnRpbmcgZG9j
dW1lbnRzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBjbGVh
cigpIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmb3IgRnJhbWVzIHJlcHJlc2VudGluZyBkb2N1bWVu
dHMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgLy8g
VGhpcyBtZWFucyB0aGUgQ2FjaGVkRnJhbWUgaGFzIGJlZW46CiAgICAgLy8gMSAtIFN1Y2Nlc3Nm
dWxseSByZXN0b3JlKCknZCBieSBnb2luZyBiYWNrL2ZvcndhcmQuCi0gICAgLy8gMiAtIGRlc3Ry
b3koKSdlZCBiZWNhdXNlIHRoZSBQYWdlQ2FjaGUgaXMgcHJ1bmluZyBvciB0aGUgV2ViVmlldyB3
YXMgY2xvc2VkLgotICAgIEFTU0VSVChtX2RvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpID09IERv
Y3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgLy8gMiAtIGRlc3Ryb3koKSdlZCBiZWNhdXNl
IHRoZSBCYWNrRm9yd2FyZENhY2hlIGlzIHBydW5pbmcgb3IgdGhlIFdlYlZpZXcgd2FzIGNsb3Nl
ZC4KKyAgICBBU1NFUlQobV9kb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9j
dW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAg
QVNTRVJUKCFtX2RvY3VtZW50LT5mcmFtZSgpIHx8IG1fZG9jdW1lbnQtPmZyYW1lKCkgPT0gJm1f
dmlldy0+ZnJhbWUoKSk7CiAKQEAgLTI1OSw4ICsyNTksOCBAQCB2b2lkIENhY2hlZEZyYW1lOjpk
ZXN0cm95KCkKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAg
ICAvLyBPbmx5IENhY2hlZEZyYW1lcyB0aGF0IGFyZSBzdGlsbCBpbiB0aGUgUGFnZUNhY2hlIHNo
b3VsZCBiZSBkZXN0cm95ZWQgaW4gdGhpcyBtYW5uZXIKLSAgICBBU1NFUlQobV9kb2N1bWVudC0+
cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAgIC8vIE9ubHkg
Q2FjaGVkRnJhbWVzIHRoYXQgYXJlIHN0aWxsIGluIHRoZSBCYWNrRm9yd2FyZENhY2hlIHNob3Vs
ZCBiZSBkZXN0cm95ZWQgaW4gdGhpcyBtYW5uZXIKKyAgICBBU1NFUlQobV9kb2N1bWVudC0+YmFj
a0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZSk7CiAg
ICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQVNTRVJUKCFtX2RvY3VtZW50LT5mcmFtZSgpKTsKIApA
QCAtMjgxLDExICsyODEsMTEgQEAgdm9pZCBDYWNoZWRGcmFtZTo6ZGVzdHJveSgpCiAKICAgICBt
X3ZpZXctPmZyYW1lKCkuYW5pbWF0aW9uKCkuZGV0YWNoRnJvbURvY3VtZW50KG1fZG9jdW1lbnQu
Z2V0KCkpOwogCi0gICAgLy8gRklYTUU6IFdoeSBkbyB3ZSBuZWVkIHRvIGNhbGwgcmVtb3ZlQWxs
RXZlbnRMaXN0ZW5lcnMgaGVyZT8gV2hlbiB0aGUgZG9jdW1lbnQgaXMgaW4gcGFnZSBjYWNoZSwg
dGhpcyBtZXRob2Qgd29uJ3Qgd29yaworICAgIC8vIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCB0byBj
YWxsIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzIGhlcmU/IFdoZW4gdGhlIGRvY3VtZW50IGlzIGlu
IGJhY2svZm9yd2FyZCBjYWNoZSwgdGhpcyBtZXRob2Qgd29uJ3Qgd29yawogICAgIC8vIGZ1bGx5
IGFueXdheSwgYmVjYXVzZSB0aGUgZG9jdW1lbnQgd29uJ3QgYmUgYWJsZSB0byBhY2Nlc3MgaXRz
IERPTVdpbmRvdyBvYmplY3QgKGR1ZSB0byBiZWluZyBmcmFtZWxlc3MpLgogICAgIG1fZG9jdW1l
bnQtPnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKLSAgICBtX2RvY3VtZW50LT5zZXRQYWdl
Q2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgIG1fZG9jdW1lbnQtPnNl
dEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsK
ICAgICBtX2RvY3VtZW50LT5wcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAgIGNsZWFyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZvcm1E
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZvcm1EYXRhLmgK
aW5kZXggZjk3M2JhNjRjZDQ2NTE4ZGRmY2JkZDY5NDljMzc3YzhkMWY5ZjM1My4uZWE4YzI2MTg3
NDhkMWMwMzhhYzU3NGU5YjFkMzMwNWZmNWZiN2NmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9DYWNoZWRGcmFtZVBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvQ2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEuaApAQCAtMzEsNyArMzEsNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIGdp
dmUgZWFjaCBwbGF0Zm9ybSBhIHZlc3NlbCB0byBzdG9yZSBwbGF0Zm9ybSBkYXRhIHdoZW4gYSBw
YWdlCi0vLyBnb2VzIGludG8gdGhlIEJhY2svRm9yd2FyZCBwYWdlIGNhY2hlLCBhbmQgcGVyZm9y
bSBzb21lIGFjdGlvbiB3aXRoIHRoYXQgZGF0YSB3aGVuIHRoZSBwYWdlIGNvbWVzIG91dC4gIAor
Ly8gZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGFuZCBwZXJmb3JtIHNvbWUgYWN0
aW9uIHdpdGggdGhhdCBkYXRhIHdoZW4gdGhlIHBhZ2UgY29tZXMgb3V0LgogLy8gRWFjaCBwbGF0
Zm9ybSBzaG91bGQgc3ViY2xhc3MgdGhpcyBjbGFzcyBhcyBuZWNjZXNzYXJ5CiAKIGNsYXNzIENh
Y2hlZEZyYW1lUGxhdGZvcm1EYXRhIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5j
cHAKaW5kZXggYTc5MjM0ZGIyYWRiZGVhZmI2NjBkMzdlMjc0NTIyMWY0YmVkZTdlNC4uZDUzNzdh
YjBmN2NjMWYzZTQ3MTk3NWMyMDgwMGJlZTExODUyMTJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9IaXN0b3J5SXRlbS5jcHAKQEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENhY2hl
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUGFnZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiS2V5ZWRDb2RpbmcuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTE3NCw5ICsxNzQsOSBAQCBib29sIEhpc3RvcnlJ
dGVtOjpoYXNDYWNoZWRQYWdlRXhwaXJlZCgpIGNvbnN0CiAKIHZvaWQgSGlzdG9yeUl0ZW06OnNl
dENhY2hlZFBhZ2Uoc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+JiYgY2FjaGVkUGFnZSkKIHsK
LSAgICBib29sIHdhc0luUGFnZUNhY2hlID0gaXNJblBhZ2VDYWNoZSgpOworICAgIGJvb2wgd2Fz
SW5CYWNrRm9yd2FyZENhY2hlID0gaXNJbkJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICBtX2NhY2hl
ZFBhZ2UgPSBXVEZNb3ZlKGNhY2hlZFBhZ2UpOwotICAgIGlmICh3YXNJblBhZ2VDYWNoZSAhPSBp
c0luUGFnZUNhY2hlKCkpCisgICAgaWYgKHdhc0luQmFja0ZvcndhcmRDYWNoZSAhPSBpc0luQmFj
a0ZvcndhcmRDYWNoZSgpKQogICAgICAgICBub3RpZnlDaGFuZ2VkKCk7CiB9CiAKQEAgLTIyMiw3
ICsyMjIsNyBAQCB2b2lkIEhpc3RvcnlJdGVtOjpzZXRVUkxTdHJpbmcoY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcpCiAKIHZvaWQgSGlzdG9yeUl0ZW06OnNldFVSTChjb25zdCBVUkwmIHVybCkKIHsK
LSAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZSgqdGhpcyk7CisgICAgQmFja0Zvcndh
cmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKCp0aGlzKTsKICAgICBzZXRVUkxTdHJpbmcodXJs
LnN0cmluZygpKTsKICAgICBjbGVhckRvY3VtZW50U3RhdGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvSGlzdG9yeUl0ZW0uaAppbmRleCBmODU1MDhmMTIzZGFlMmNkZjliZmJkNTAzZmVlZTNlOTE2
NDc5NDliLi41MmNhYjgzNDQwMzQ5NDczNzRhYjBhZDA0MmUyNzRkOGQyMjc4NWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC01OSw3ICs1OSw3IEBAIGVudW0gY2xhc3Mg
UHJ1bmluZ1JlYXNvbjsKIFdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkICgqbm90aWZ5SGlzdG9y
eUl0ZW1DaGFuZ2VkKShIaXN0b3J5SXRlbSYpOwogCiBjbGFzcyBIaXN0b3J5SXRlbSA6IHB1Ymxp
YyBSZWZDb3VudGVkPEhpc3RvcnlJdGVtPiB7Ci0gICAgZnJpZW5kIGNsYXNzIFBhZ2VDYWNoZTsK
KyAgICBmcmllbmQgY2xhc3MgQmFja0ZvcndhcmRDYWNoZTsKIAogcHVibGljOiAKICAgICBzdGF0
aWMgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGUoKQpAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcoKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3Q7CiAgICAgCi0gICAgYm9v
bCBpc0luUGFnZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRQYWdlLmdldCgpOyB9Cisg
ICAgYm9vbCBpc0luQmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkUGFn
ZS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzQ2FjaGVkUGFnZUV4cGlyZWQo
KSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWx0ZXJuYXRlVGl0bGUoY29u
c3QgU3RyaW5nJik7CkBAIC0yNjYsNyArMjY2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Rm9y
bURhdGE+IG1fZm9ybURhdGE7CiAgICAgU3RyaW5nIG1fZm9ybUNvbnRlbnRUeXBlOwogCi0gICAg
Ly8gUGFnZUNhY2hlIGNvbnRyb2xzIHRoZXNlIGZpZWxkcy4KKyAgICAvLyBCYWNrRm9yd2FyZENh
Y2hlIGNvbnRyb2xzIHRoZXNlIGZpZWxkcy4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFn
ZT4gbV9jYWNoZWRQYWdlOwogICAgIFBydW5pbmdSZWFzb24gbV9wcnVuaW5nUmVhc29uOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNkMWYzODIxMGZmY2EzMTUzMThlNzE3ZDYwNTQwNTVhNmM1MGJmMjQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9QYWdlQ2FjaGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTU2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDcsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgotCi0jaW5jbHVkZSAiQXBwbGlj
YXRpb25DYWNoZUhvc3QuaCIKLSNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKLSNp
bmNsdWRlICJDYWNoZWRQYWdlLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAi
RGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29u
dHJvbGxlci5oIgotI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCi0jaW5jbHVk
ZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgotI2lu
Y2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkhpc3Rv
cnlDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudElu
Y3JlbWVudGVyLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNp
bmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgot
I2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCi0jaW5jbHVkZSA8cGFsL0xvZ2dpbmcuaD4KLSNp
bmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2RlZmluZSBQQ0xPRyguLi4pIExPRyhCYWNrRm9y
d2FyZENhY2hlLCAiJSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FS
R1NfXykudXRmOCgpLmRhdGEoKSkKLQotc3RhdGljIGlubGluZSB2b2lkIGxvZ1BhZ2VDYWNoZUZh
aWx1cmVEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgY2xpZW50LCBj
b25zdCBTdHJpbmcmIHJlYXNvbikKLXsKLSAgICBjbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2Uo
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVGYWlsdXJlS2V5KCksIHJlYXNvbiwgU2hv
dWxkU2FtcGxlOjpObyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBsb2dQYWdlQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCi17
Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBsb2dQYWdlQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSwgcmVh
c29uKTsKLX0KLQotc3RhdGljIGJvb2wgY2FuQ2FjaGVGcmFtZShGcmFtZSYgZnJhbWUsIERpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgdW5zaWduZWQgaW5k
ZW50TGV2ZWwpCi17Ci0gICAgUENMT0coIistLS0iKTsKLSAgICBGcmFtZUxvYWRlciYgZnJhbWVM
b2FkZXIgPSBmcmFtZS5sb2FkZXIoKTsKLQotICAgIC8vIFByZXZlbnQgcGFnZSBjYWNoaW5nIGlm
IGEgc3ViZnJhbWUgaXMgc3RpbGwgaW4gcHJvdmlzaW9uYWwgbG9hZCBzdGFnZS4KLSAgICAvLyBX
ZSBvbmx5IGRvIHRoaXMgY2hlY2sgZm9yIHN1YmZyYW1lcyBiZWNhdXNlIHRoZSBtYWluIGZyYW1l
IGlzIHJldXNlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS4KLSAgICBpZiAoIWZyYW1l
LmlzTWFpbkZyYW1lKCkgJiYgZnJhbWVMb2FkZXIuc3RhdGUoKSA9PSBGcmFtZVN0YXRlUHJvdmlz
aW9uYWwpIHsKLSAgICAgICAgUENMT0coIiAgIC1GcmFtZSBpcyBpbiBwcm92aXNpb25hbCBsb2Fk
IHN0YWdlIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShk
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcm92aXNpb25h
bExvYWRLZXkoKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoZnJh
bWUuaXNNYWluRnJhbWUoKSAmJiBmcmFtZUxvYWRlci5zdGF0ZU1hY2hpbmUoKS5pc0Rpc3BsYXlp
bmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtTWFpbkZyYW1l
IGlzIGRpc3BsYXlpbmcgaW5pdGlhbCBlbXB0eSBkb2N1bWVudCIpOwotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKCFmcmFtZS5kb2N1bWVudCgpKSB7Ci0gICAgICAgIFBD
TE9HKCIgICAtRnJhbWUgaGFzIG5vIGRvY3VtZW50Iik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0KLSAgICBpZiAoIWZyYW1lLmRvY3VtZW50KCktPmZyYW1lKCkpIHsKLSAgICAgICAg
UENMT0coIiAgIC1Eb2N1bWVudCBpcyBkZXRhY2hlZCBmcm9tIGZyYW1lIik7Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAg
RG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWVMb2FkZXIuZG9jdW1lbnRMb2Fk
ZXIoKTsKLSAgICBpZiAoIWRvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtVGhl
cmUgaXMgbm8gRG9jdW1lbnRMb2FkZXIgb2JqZWN0Iik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZh
aWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpub0RvY3VtZW50TG9hZGVyS2V5KCkpOwotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotCi0gICAgVVJMIGN1cnJlbnRVUkwgPSBkb2N1bWVudExvYWRlci0+dXJsKCk7
Ci0gICAgVVJMIG5ld1VSTCA9IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIo
KSA/IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+dXJsKCkgOiBVUkwo
KTsKLSAgICBpZiAoIW5ld1VSTC5pc0VtcHR5KCkpCi0gICAgICAgIFBDTE9HKCIgRGV0ZXJtaW5p
bmcgaWYgZnJhbWUgY2FuIGJlIGNhY2hlZCBuYXZpZ2F0aW5nIGZyb20gKCIsIGN1cnJlbnRVUkwu
c3RyaW5nKCksICIpIHRvICgiLCBuZXdVUkwuc3RyaW5nKCksICIpOiIpOwotICAgIGVsc2UKLSAg
ICAgICAgUENMT0coIiBEZXRlcm1pbmluZyBpZiBzdWJmcmFtZSB3aXRoIFVSTCAoIiwgY3VycmVu
dFVSTC5zdHJpbmcoKSwgIikgY2FuIGJlIGNhY2hlZDoiKTsKLSAgICAgCi0gICAgYm9vbCBpc0Nh
Y2hlYWJsZSA9IHRydWU7Ci0gICAgLy8gRG8gbm90IGNhY2hlIGVycm9yIHBhZ2VzICh0aGVzZSBj
YW4gYmUgcmVjb2duaXplZCBhcyBwYWdlcyB3aXRoIHN1YnN0aXR1dGUgZGF0YSBvciB1bnJlYWNo
YWJsZSBVUkxzKS4KLSAgICBpZiAoZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRhKCkuaXNW
YWxpZCgpICYmICFkb2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5mYWlsaW5nVVJMKCku
aXNFbXB0eSgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgYW4gZXJyb3IgcGFnZSIp
OwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNFcnJvclBhZ2VLZXkoKSk7
Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChmcmFtZUxvYWRl
ci5zdWJmcmFtZUxvYWRlcigpLmNvbnRhaW5zUGx1Z2lucygpICYmICFmcmFtZS5wYWdlKCktPnNl
dHRpbmdzKCkucGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKCkpIHsKLSAgICAgICAgUENMT0coIiAg
IC1GcmFtZSBjb250YWlucyBwbHVnaW5zIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpoYXNQbHVnaW5zS2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwot
ICAgIH0KLSAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSAmJiAhZnJhbWVMb2FkZXIuaGlzdG9y
eSgpLmN1cnJlbnRJdGVtKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1NYWluIGZyYW1lIGhhcyBu
byBjdXJyZW50IGhpc3RvcnkgaXRlbSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlh
Z25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5n
S2V5czo6bm9DdXJyZW50SGlzdG9yeUl0ZW1LZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0g
ZmFsc2U7Ci0gICAgfQotICAgIGlmIChmcmFtZUxvYWRlci5xdWlja1JlZGlyZWN0Q29taW5nKCkp
IHsKLSAgICAgICAgUENMT0coIiAgIC1RdWljayByZWRpcmVjdCBpcyBjb21pbmciKTsKLSAgICAg
ICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnF1aXJrUmVkaXJlY3RDb21pbmdLZXkoKSk7
Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChkb2N1bWVudExv
YWRlci0+aXNMb2FkaW5nKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudExvYWRlciBp
cyBzdGlsbCBsb2FkaW5nIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpp
c0xvYWRpbmdLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAg
IGlmIChkb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAt
RG9jdW1lbnRMb2FkZXIgaXMgaW4gdGhlIG1pZGRsZSBvZiBzdG9wcGluZyIpOwotICAgICAgICBs
b2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZG9jdW1lbnRMb2FkZXJTdG9wcGluZ0tleSgpKTsK
LSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBWZWN0b3I8QWN0aXZl
RE9NT2JqZWN0Kj4gdW5zdXNwZW5kYWJsZU9iamVjdHM7Ci0gICAgaWYgKGZyYW1lLmRvY3VtZW50
KCkgJiYgIWZyYW1lLmRvY3VtZW50KCktPmNhblN1c3BlbmRBY3RpdmVET01PYmplY3RzRm9yRG9j
dW1lbnRTdXNwZW5zaW9uKCZ1bnN1c3BlbmRhYmxlT2JqZWN0cykpIHsKLSAgICAgICAgUENMT0co
IiAgIC1UaGUgZG9jdW1lbnQgY2Fubm90IHN1c3BlbmQgaXRzIGFjdGl2ZSBET00gT2JqZWN0cyIp
OwotICAgICAgICBmb3IgKGF1dG8qIGFjdGl2ZURPTU9iamVjdCA6IHVuc3VzcGVuZGFibGVPYmpl
Y3RzKSB7Ci0gICAgICAgICAgICBQQ0xPRygiICAgIC0gVW5zdXNwZW5kYWJsZTogIiwgYWN0aXZl
RE9NT2JqZWN0LT5hY3RpdmVET01PYmplY3ROYW1lKCkpOwotICAgICAgICAgICAgZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojp1bnN1c3BlbmRhYmxlRE9NT2JqZWN0S2V5KCksIGFjdGl2ZURPTU9iamVjdC0+YWN0aXZlRE9N
T2JqZWN0TmFtZSgpLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICAgICAgICAgIFVOVVNFRF9QQVJB
TShhY3RpdmVET01PYmplY3QpOwotICAgICAgICB9Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1
cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpjYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tleSgpKTsKLSAgICAgICAg
aXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGlu
dmVzdGlnYXRpbmcgY2FjaGluZyBmcmFtZXMgdGhhdCBoYXZlIGFuIGFzc29jaWF0ZWQKLSAgICAv
LyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9ibGVtLzU5MTc4OTk+IHRyYWNrcyB0aGF0
IHdvcmsuCi0gICAgaWYgKCFkb2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5j
YW5DYWNoZUluUGFnZUNhY2hlKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1UaGUgRG9jdW1lbnRM
b2FkZXIgdXNlcyBhbiBhcHBsaWNhdGlvbiBjYWNoZSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVG
YWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6YXBwbGljYXRpb25DYWNoZUtleSgpKTsKLSAgICAgICAgaXNDYWNoZWFi
bGUgPSBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKCFmcmFtZUxvYWRlci5jbGllbnQoKS5jYW5DYWNo
ZVBhZ2UoKSkgewotICAgICAgICBQQ0xPRygiICAgLVRoZSBjbGllbnQgc2F5cyB0aGlzIGZyYW1l
IGNhbm5vdCBiZSBjYWNoZWQiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0
aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmRlbmllZEJ5Q2xpZW50S2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAg
IH0KLQotICAgIGZvciAoRnJhbWUqIGNoaWxkID0gZnJhbWUudHJlZSgpLmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlm
ICghY2FuQ2FjaGVGcmFtZSgqY2hpbGQsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRM
ZXZlbCArIDEpKQotICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0gICAg
Ci0gICAgUENMT0coaXNDYWNoZWFibGUgPyAiIEZyYW1lIENBTiBiZSBjYWNoZWQiIDogIiBGcmFt
ZSBDQU5OT1QgYmUgY2FjaGVkIik7Ci0gICAgUENMT0coIistLS0iKTsKLSAgICAKLSAgICByZXR1
cm4gaXNDYWNoZWFibGU7Ci19Ci0KLXN0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQYWdlJiBwYWdl
KQotewotICAgIFJFTEVBU0VfQVNTRVJUKCFwYWdlLmlzUmVzdG9yaW5nQ2FjaGVkUGFnZSgpKTsK
LQotICAgIHVuc2lnbmVkIGluZGVudExldmVsID0gMDsKLSAgICBQQ0xPRygiLS0tLS0tLS1cbiBE
ZXRlcm1pbmluZyBpZiBwYWdlIGNhbiBiZSBjYWNoZWQ6Iik7Ci0KLSAgICBEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KCk7Ci0gICAgYm9vbCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJhbWUocGFnZS5t
YWluRnJhbWUoKSwgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVsICsgMSk7Ci0K
LSAgICBpZiAoIXBhZ2Uuc2V0dGluZ3MoKS51c2VzUGFnZUNhY2hlKCkgfHwgcGFnZS5pc1Jlc291
cmNlQ2FjaGluZ0Rpc2FibGVkQnlXZWJJbnNwZWN0b3IoKSkgewotICAgICAgICBQQ0xPRygiICAg
LVBhZ2Ugc2V0dGluZ3Mgc2F5cyBiL2YgY2FjaGUgZGlzYWJsZWQiKTsKLSAgICAgICAgbG9nUGFn
ZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OmlzRGlzYWJsZWRLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVh
YmxlID0gZmFsc2U7Ci0gICAgfQotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmICFQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyOjppc0Fj
dGl2ZUF0KCZwYWdlKSkgewotICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcgRGV2aWNl
TW90aW9uIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShk
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkZXZpY2VNb3Rp
b25LZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChE
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7Ci0gICAgICAg
IFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOwotICAgICAgICBs
b2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZGV2aWNlT3JpZW50YXRpb25LZXkoKSk7Ci0gICAg
ICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBGcmFtZUxvYWRU
eXBlIGxvYWRUeXBlID0gcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkVHlwZSgpOwotICAg
IHN3aXRjaCAobG9hZFR5cGUpIHsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZDoKLSAg
ICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNl
IHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdl
LgotICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkIik7Ci0gICAgICAgIGxv
Z1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZWxvYWRLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVh
YmxlID0gZmFsc2U7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6U2Ft
ZTogLy8gdXNlciBsb2FkcyBzYW1lIFVSTCBhZ2FpbiAoYnV0IG5vdCByZWxvYWQgYnV0dG9uKQot
ICAgICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHNhbWUgbG9hZCwg
c2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRlIG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0
IHBhZ2UuCi0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBTYW1lIik7Ci0gICAgICAg
IGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzYW1lTG9hZEtleSgpKTsKLSAgICAgICAgaXND
YWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBGcmFtZUxvYWRUeXBl
OjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q6Ci0gICAgICAgIC8vIERvbid0IHdy
aXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUgbWlkZGxlIG9mIGEgcmVkaXJlY3QsIHNpbmNlIHdl
IHdpbGwgd2FudCB0byBzdG9yZSB0aGUgZmluYWwgcGFnZSB3ZSBlbmQgdXAgb24uCi0gICAgICAg
IFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExp
c3QiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlZGlyZWN0S2V5KCkp
OwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEZyYW1lTG9hZFR5cGU6OlJlcGxhY2U6Ci0gICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8g
dGhlIGNhY2hlIG9uIGEgcmVwbGFjZSwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRlIG92ZXIgaXQg
YWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0IHBhZ2UuCi0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0
eXBlIGlzOiBSZXBsYWNlIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpy
ZXBsYWNlS2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW46IHsKLSAgICAgICAg
Ly8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdp
bGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgotICAg
ICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkRnJvbU9yaWdpbiIpOwotICAgICAg
ICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkRnJvbU9yaWdpbktleSgpKTsKLSAg
ICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNh
c2UgRnJhbWVMb2FkVHlwZTo6UmVsb2FkRXhwaXJlZE9ubHk6IHsKLSAgICAgICAgLy8gTm8gcG9p
bnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdpbGwganVzdCB3
cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgotICAgICAgICBQQ0xP
RygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZCIpOwotICAgICAg
ICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZEtl
eSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQ6Ci0gICAgY2FzZSBGcmFtZUxvYWRU
eXBlOjpCYWNrOgotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZDoKLSAgICBjYXNlIEZy
YW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZDogLy8gYSBtdWx0aS1pdGVtIGhvcCBpbiB0
aGUgYmFja2ZvcndhcmQgbGlzdAotICAgICAgICAvLyBDYWNoZWFibGUuCi0gICAgICAgIGJyZWFr
OwotICAgIH0KLSAgICAKLSAgICBpZiAoaXNDYWNoZWFibGUpCi0gICAgICAgIFBDTE9HKCIgUGFn
ZSBDQU4gYmUgY2FjaGVkXG4tLS0tLS0tLSIpOwotICAgIGVsc2UKLSAgICAgICAgUENMT0coIiBQ
YWdlIENBTk5PVCBiZSBjYWNoZWRcbi0tLS0tLS0tIik7Ci0KLSAgICBkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpwYWdlQ2FjaGVLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5DYWNoZUtleSgp
LCBpc0NhY2hlYWJsZSA/IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcyA6IERpYWdub3N0aWNM
b2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgcmV0dXJuIGlzQ2FjaGVh
YmxlOwotfQotCi1QYWdlQ2FjaGUmIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkKLXsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UGFnZUNhY2hlPiBnbG9iYWxQYWdlQ2FjaGU7Ci0gICAgcmV0dXJu
IGdsb2JhbFBhZ2VDYWNoZTsKLX0KLQotUGFnZUNhY2hlOjpQYWdlQ2FjaGUoKQotewotICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxh
ZywgW10gewotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5X
ZWJLaXQuc2hvd1BhZ2VDYWNoZSIsIFtdIHsKLSAgICAgICAgICAgIFBhZ2VDYWNoZTo6c2luZ2xl
dG9uKCkuZHVtcCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQotdm9pZCBQYWdlQ2FjaGU6
OmR1bXAoKSBjb25zdAotewotICAgIFdURkxvZ0Fsd2F5cygiXG5QYWdlIENhY2hlOiIpOwotICAg
IGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKLSAgICAgICAgQ2FjaGVkUGFnZSYgY2FjaGVk
UGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiICBQYWdl
ICVwLCBkb2N1bWVudCAlcCAlcyIsICZjYWNoZWRQYWdlLnBhZ2UoKSwgY2FjaGVkUGFnZS5kb2N1
bWVudCgpLCBjYWNoZWRQYWdlLmRvY3VtZW50KCkgPyBjYWNoZWRQYWdlLmRvY3VtZW50KCktPnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7Ci0gICAgfQotfQotCi1ib29sIFBhZ2VD
YWNoZTo6Y2FuQ2FjaGUoUGFnZSYgcGFnZSkgY29uc3QKLXsKLSAgICBpZiAoIW1fbWF4U2l6ZSkg
ewotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoJnBhZ2UsIERp
YWdub3N0aWNMb2dnaW5nS2V5czo6aXNEaXNhYmxlZEtleSgpKTsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLQotICAgIGlmIChNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigp
LmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmRlck1lbW9y
eVByZXNzdXJlS2V5KCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIAotICAg
IHJldHVybiBjYW5DYWNoZVBhZ2UocGFnZSk7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjpwcnVuZVRv
U2l6ZU5vdyh1bnNpZ25lZCBzaXplLCBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFzb24pCi17Ci0g
ICAgU2V0Rm9yU2NvcGU8dW5zaWduZWQ+IGNoYW5nZShtX21heFNpemUsIHNpemUpOwotICAgIHBy
dW5lKHBydW5pbmdSZWFzb24pOwotfQotCi12b2lkIFBhZ2VDYWNoZTo6c2V0TWF4U2l6ZSh1bnNp
Z25lZCBtYXhTaXplKQotewotICAgIG1fbWF4U2l6ZSA9IG1heFNpemU7Ci0gICAgcHJ1bmUoUHJ1
bmluZ1JlYXNvbjo6Tm9uZSk7Ci19Ci0KLXVuc2lnbmVkIFBhZ2VDYWNoZTo6ZnJhbWVDb3VudCgp
IGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMuc2l6ZSgpOwotICAg
IGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKLSAgICAgICAgQVNTRVJUKGl0ZW0tPm1fY2Fj
aGVkUGFnZSk7Ci0gICAgICAgIGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNoZWRQYWdlLT5jYWNo
ZWRNYWluRnJhbWUoKS0+ZGVzY2VuZGFudEZyYW1lQ291bnQoKTsKLSAgICB9Ci0gICAgCi0gICAg
cmV0dXJuIGZyYW1lQ291bnQ7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjptYXJrUGFnZXNGb3JEZXZp
Y2VPclBhZ2VTY2FsZUNoYW5nZWQoUGFnZSYgcGFnZSkKLXsKLSAgICBmb3IgKGF1dG8mIGl0ZW0g
OiBtX2l0ZW1zKSB7Ci0gICAgICAgIENhY2hlZFBhZ2UmIGNhY2hlZFBhZ2UgPSAqaXRlbS0+bV9j
YWNoZWRQYWdlOwotICAgICAgICBpZiAoJnBhZ2UubWFpbkZyYW1lKCkgPT0gJmNhY2hlZFBhZ2Uu
Y2FjaGVkTWFpbkZyYW1lKCktPnZpZXcoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNhY2hlZFBh
Z2UubWFya0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCgpOwotICAgIH0KLX0KLQotdm9pZCBQ
YWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckNvbnRlbnRzU2l6ZUNoYW5nZWQoUGFnZSYgcGFnZSkKLXsK
LSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2l0ZW1zKSB7Ci0gICAgICAgIENhY2hlZFBhZ2UmIGNh
Y2hlZFBhZ2UgPSAqaXRlbS0+bV9jYWNoZWRQYWdlOwotICAgICAgICBpZiAoJnBhZ2UubWFpbkZy
YW1lKCkgPT0gJmNhY2hlZFBhZ2UuY2FjaGVkTWFpbkZyYW1lKCktPnZpZXcoKS0+ZnJhbWUoKSkK
LSAgICAgICAgICAgIGNhY2hlZFBhZ2UubWFya0ZvckNvbnRlbnRzU2l6ZUNoYW5nZWQoKTsKLSAg
ICB9Ci19Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi12b2lkIFBhZ2VDYWNoZTo6bWFya1Bh
Z2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCi17Ci0gICAgZm9yIChhdXRvJiBpdGVt
IDogbV9pdGVtcykgewotICAgICAgICBBU1NFUlQoaXRlbS0+bV9jYWNoZWRQYWdlKTsKLSAgICAg
ICAgaXRlbS0+bV9jYWNoZWRQYWdlLT5tYXJrRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgp
OwotICAgIH0KLX0KLSNlbmRpZgotCi1zdGF0aWMgU3RyaW5nIHBydW5pbmdSZWFzb25Ub0RpYWdu
b3N0aWNMb2dnaW5nS2V5KFBydW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKLXsKLSAgICBzd2l0
Y2ggKHBydW5pbmdSZWFzb24pIHsKLSAgICBjYXNlIFBydW5pbmdSZWFzb246Ok1lbW9yeVByZXNz
dXJlOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01l
bW9yeVByZXNzdXJlS2V5KCk7Ci0gICAgY2FzZSBQcnVuaW5nUmVhc29uOjpQcm9jZXNzU3VzcGVu
ZGVkOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb1By
b2Nlc3NTdXNwZW5kZWQoKTsKLSAgICBjYXNlIFBydW5pbmdSZWFzb246OlJlYWNoZWRNYXhTaXpl
OgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01heFNp
emVSZWFjaGVkKCk7Ci0gICAgY2FzZSBQcnVuaW5nUmVhc29uOjpOb25lOgotICAgICAgICBicmVh
azsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldFBhZ2VDYWNoZVN0YXRlKFBhZ2UmIHBhZ2UsIERv
Y3VtZW50OjpQYWdlQ2FjaGVTdGF0ZSBwYWdlQ2FjaGVTdGF0ZSkKLXsKLSAgICBmb3IgKEZyYW1l
KiBmcmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5k
b2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPnNldFBhZ2VDYWNoZVN0YXRlKHBhZ2VD
YWNoZVN0YXRlKTsKLSAgICB9Ci19Ci0KLS8vIFdoZW4gZW50ZXJpbmcgcGFnZSBjYWNoZSwgdGVh
ciBkb3duIHRoZSByZW5kZXIgdHJlZSBiZWZvcmUgc2V0dGluZyB0aGUgaW4tY2FjaGUgZmxhZy4K
LS8vIFRoaXMgbWFpbnRhaW5zIHRoZSBpbnZhcmlhbnQgdGhhdCByZW5kZXIgdHJlZXMgYXJlIG5l
dmVyIHByZXNlbnQgaW4gdGhlIHBhZ2UgY2FjaGUuCi0vLyBOb3RlIHRoYXQgZGVzdHJ1Y3Rpb24g
aGFwcGVucyBib3R0b20tdXAgc28gdGhhdCB0aGUgbWFpbiBmcmFtZSdzIHRyZWUgZGllcyBsYXN0
Lgotc3RhdGljIHZvaWQgZGVzdHJveVJlbmRlclRyZWUoRnJhbWUmIG1haW5GcmFtZSkKLXsKLSAg
ICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZS50cmVlKCkudHJhdmVyc2VQcmV2aW91cyhD
YW5XcmFwOjpZZXMpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlUHJldmlv
dXMoQ2FuV3JhcDo6Tm8pKSB7Ci0gICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50KCkpCi0gICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUtPmRvY3Vt
ZW50KCk7Ci0gICAgICAgIGlmIChkb2N1bWVudC5oYXNMaXZpbmdSZW5kZXJUcmVlKCkpCi0gICAg
ICAgICAgICBkb2N1bWVudC5kZXN0cm95UmVuZGVyVHJlZSgpOwotICAgIH0KLX0KLQotc3RhdGlj
IHZvaWQgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNpdmVseShGcmFtZSYgZnJhbWUpCi17Ci0gICAg
YXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIC8vIHN0b3BMb2FkaW5nKCkgd2lsbCBmaXJlIHRoZSBwYWdl
aGlkZSBldmVudCBpbiBlYWNoIHN1YmZyYW1lIGFuZCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHN0
YXRlcwotICAgIC8vIHRoYXQgdGhlIHBhcmVudCBkb2N1bWVudCdzIGlnbm9yZS1vcGVucy1kdXJp
bmctdW5sb2FkIGNvdW50ZXIgc2hvdWxkIGJlIGluY3JlbWVudGVkIHdoaWxlIHRoZQotICAgIC8v
IHBhZ2VoaWRlIGV2ZW50IGlzIGJlaW5nIGZpcmVkIGluIGl0cyBzdWJmcmFtZXM6Ci0gICAgLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvYnJvd3NlcnMuaHRtbCN1bmxv
YWQtYS1kb2N1bWVudAotICAgIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRl
ciBpZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIoZG9jdW1lbnQpOwotCi0g
ICAgZnJhbWUubG9hZGVyKCkuc3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3lVbmxvYWRBbmRQ
YWdlSGlkZSk7Ci0KLSAgICBmb3IgKFJlZlB0cjxGcmFtZT4gY2hpbGQgPSBmcmFtZS50cmVlKCku
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkp
Ci0gICAgICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZlbHkoKmNoaWxkKTsKLX0KLQotYm9v
bCBQYWdlQ2FjaGU6OmFkZElmQ2FjaGVhYmxlKEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdl
KQotewotICAgIGlmIChpdGVtLmlzSW5QYWdlQ2FjaGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBwYWdlLT5t
YWluRnJhbWUoKS5sb2FkZXIoKS5zdG9wRm9yUGFnZUNhY2hlKCk7Ci0KLSAgICBpZiAoIWNhbkNh
Y2hlKCpwYWdlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSghcGFnZS0+aXNVdGlsaXR5UGFnZSgpLCAiVXRpbGl0eSBwYWdlcyBzdWNoIGFzIFNWR0lt
YWdlIHBhZ2VzIHNob3VsZCBuZXZlciBnbyBpbnRvIFBhZ2VDYWNoZSIpOwotCi0gICAgc2V0UGFn
ZUNhY2hlU3RhdGUoKnBhZ2UsIERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOwotCi0g
ICAgLy8gRm9jdXMgdGhlIG1haW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1c2VkIHN1YmZyYW1l
IChpZiB3ZSBoYXZlIG9uZSkuIFdlIGRvIHRoaXMgaGVyZSwKLSAgICAvLyBiZWZvcmUgdGhlIHBh
Z2UgZW50ZXJzIHRoZSBwYWdlIGNhY2hlLCB3aGlsZSB3ZSBzdGlsbCBjYW4gZGlzcGF0Y2ggRE9N
IGJsdXIvZm9jdXMgZXZlbnRzLgotICAgIGlmIChwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1
c2VkRnJhbWUoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEZy
YW1lKCZwYWdlLT5tYWluRnJhbWUoKSk7Ci0KLSAgICAvLyBGaXJlIHRoZSBwYWdlaGlkZSBldmVu
dCBpbiBhbGwgZnJhbWVzLgotICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZlbHkocGFnZS0+
bWFpbkZyYW1lKCkpOwotCi0gICAgZGVzdHJveVJlbmRlclRyZWUocGFnZS0+bWFpbkZyYW1lKCkp
OwotCi0gICAgLy8gU3RvcCBhbGwgbG9hZHMgYWdhaW4gYmVmb3JlIGNoZWNraW5nIGlmIHdlIGNh
biBzdGlsbCBjYWNoZSB0aGUgcGFnZSBhZnRlciBmaXJpbmcgdGhlIHBhZ2VoaWRlCi0gICAgLy8g
ZXZlbnQsIHNpbmNlIHRoZSBwYWdlIG1heSBoYXZlIHN0YXJ0ZWQgcGluZyBsb2FkcyBpbiBpdHMg
cGFnZWhpZGUgZXZlbnQgaGFuZGxlci4KLSAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5z
dG9wRm9yUGFnZUNhY2hlKCk7Ci0KLSAgICAvLyBDaGVjayB0aGF0IHRoZSBwYWdlIGlzIHN0aWxs
IHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0aGUgcGFnZWhpZGUgZXZlbnQuIFRoZSBKUyBl
dmVudCBoYW5kbGVycwotICAgIC8vIGNvdWxkIGhhdmUgYWx0ZXJlZCB0aGUgcGFnZSBpbiBhIHdh
eSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4KLSAgICBpZiAoIWNhbkNhY2hlKCpwYWdlKSkg
ewotICAgICAgICBzZXRQYWdlQ2FjaGVTdGF0ZSgqcGFnZSwgRG9jdW1lbnQ6Ok5vdEluUGFnZUNh
Y2hlKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHNldFBhZ2VDYWNoZVN0
YXRlKCpwYWdlLCBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOwotCi0gICAgewotICAgICAgICAvLyBN
YWtlIHN1cmUgd2UgZG9uJ3QgZmlyZSBhbnkgSlMgZXZlbnRzIGluIHRoaXMgc2NvcGUuCi0gICAg
ICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRT
Y29wZTsKLQotICAgICAgICBpdGVtLnNldENhY2hlZFBhZ2UobWFrZVVuaXF1ZTxDYWNoZWRQYWdl
PigqcGFnZSkpOwotICAgICAgICBpdGVtLm1fcHJ1bmluZ1JlYXNvbiA9IFBydW5pbmdSZWFzb246
Ok5vbmU7Ci0gICAgICAgIG1faXRlbXMuYWRkKCZpdGVtKTsKLSAgICB9Ci0gICAgcHJ1bmUoUHJ1
bmluZ1JlYXNvbjo6UmVhY2hlZE1heFNpemUpOwotCi0gICAgUkVMRUFTRV9MT0coQmFja0Zvcndh
cmRDYWNoZSwgIlBhZ2VDYWNoZTo6YWRkSWZDYWNoZWFibGUgaXRlbTogJXMsIHNpemU6ICV1IC8g
JXUiLCBpdGVtLmlkZW50aWZpZXIoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBwYWdlQ291bnQo
KSwgbWF4U2l6ZSgpKTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8
Q2FjaGVkUGFnZT4gUGFnZUNhY2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdl
KQotewotICAgIGlmICghaXRlbS5tX2NhY2hlZFBhZ2UpIHsKLSAgICAgICAgaWYgKGl0ZW0ubV9w
cnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCi0gICAgICAgICAgICBsb2dQYWdl
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgcHJ1bmluZ1JlYXNvblRvRGlhZ25v
c3RpY0xvZ2dpbmdLZXkoaXRlbS5tX3BydW5pbmdSZWFzb24pKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgfQotCi0gICAgbV9pdGVtcy5yZW1vdmUoJml0ZW0pOwotICAgIHN0ZDo6dW5p
cXVlX3B0cjxDYWNoZWRQYWdlPiBjYWNoZWRQYWdlID0gaXRlbS50YWtlQ2FjaGVkUGFnZSgpOwot
Ci0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6dGFrZSBpdGVt
OiAlcywgc2l6ZTogJXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCksIHBhZ2VDb3VudCgpLCBtYXhTaXplKCkpOwotCi0gICAgaWYgKGNhY2hlZFBhZ2UtPmhh
c0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdlLT5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkQnlX
ZWJJbnNwZWN0b3IoKSkpIHsKLSAgICAgICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJOb3QgcmVz
dG9yaW5nIHBhZ2UgZm9yICVzIGZyb20gYmFjay9mb3J3YXJkIGNhY2hlIGJlY2F1c2UgY2FjaGUg
ZW50cnkgaGFzIGV4cGlyZWQiLCBpdGVtLnVybCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsK
LSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtleSgpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotCi0gICAgcmV0dXJuIGNhY2hlZFBhZ2U7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjpy
ZW1vdmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYgcGFnZSkKLXsKLSNpZiAhQVNTRVJUX0RJU0FCTEVE
Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc0luUmVtb3ZlQWxsSXRlbXNGb3JQYWdlLCAi
V2Ugc2hvdWxkIG5vdCByZWVudGVyIHRoaXMgbWV0aG9kIik7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gaW5SZW1vdmVBbGxJdGVtc0ZvclBhZ2VTY29wZSB7IG1faXNJblJlbW92ZUFsbEl0ZW1zRm9y
UGFnZSwgdHJ1ZSB9OwotI2VuZGlmCi0KLSAgICBmb3IgKGF1dG8gaXQgPSBtX2l0ZW1zLmJlZ2lu
KCk7IGl0ICE9IG1faXRlbXMuZW5kKCk7KSB7Ci0gICAgICAgIC8vIEluY3JlbWVudCBpdGVyYXRv
ciBmaXJzdCBzbyBpdCBzdGF5cyB2YWxpZCBhZnRlciB0aGUgcmVtb3ZhbC4KLSAgICAgICAgYXV0
byBjdXJyZW50ID0gaXQ7Ci0gICAgICAgICsraXQ7Ci0gICAgICAgIGlmICgmKCpjdXJyZW50KS0+
bV9jYWNoZWRQYWdlLT5wYWdlKCkgPT0gJnBhZ2UpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
KEJhY2tGb3J3YXJkQ2FjaGUsICJQYWdlQ2FjaGU6OnJlbW92ZUFsbEl0ZW1zRm9yUGFnZSByZW1v
dmluZyBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIsICgqY3VycmVudCktPmlkZW50aWZpZXIoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBwYWdlQ291bnQoKSAtIDEsIG1heFNpemUoKSk7Ci0gICAg
ICAgICAgICAoKmN1cnJlbnQpLT5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOwotICAgICAgICAgICAg
bV9pdGVtcy5yZW1vdmUoY3VycmVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLUNhY2hlZFBh
Z2UqIFBhZ2VDYWNoZTo6Z2V0KEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQotewotICAg
IENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBpdGVtLm1fY2FjaGVkUGFnZS5nZXQoKTsKLSAgICBp
ZiAoIWNhY2hlZFBhZ2UpIHsKLSAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBy
dW5pbmdSZWFzb246Ok5vbmUpCi0gICAgICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25v
c3RpY01lc3NhZ2UocGFnZSwgcHJ1bmluZ1JlYXNvblRvRGlhZ25vc3RpY0xvZ2dpbmdLZXkoaXRl
bS5tX3BydW5pbmdSZWFzb24pKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0g
ICAgaWYgKGNhY2hlZFBhZ2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdlLT5pc1Jlc291
cmNlQ2FjaGluZ0Rpc2FibGVkQnlXZWJJbnNwZWN0b3IoKSkpIHsKLSAgICAgICAgTE9HKEJhY2tG
b3J3YXJkQ2FjaGUsICJOb3QgcmVzdG9yaW5nIHBhZ2UgZm9yICVzIGZyb20gYmFjay9mb3J3YXJk
IGNhY2hlIGJlY2F1c2UgY2FjaGUgZW50cnkgaGFzIGV4cGlyZWQiLCBpdGVtLnVybCgpLnN0cmlu
ZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0
aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtleSgpKTsKLSAg
ICAgICAgcmVtb3ZlKGl0ZW0pOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAg
cmV0dXJuIGNhY2hlZFBhZ2U7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjpyZW1vdmUoSGlzdG9yeUl0
ZW0mIGl0ZW0pCi17Ci0gICAgLy8gU2FmZWx5IGlnbm9yZSBhdHRlbXB0cyB0byByZW1vdmUgaXRl
bXMgbm90IGluIHRoZSBjYWNoZS4KLSAgICBpZiAoIWl0ZW0ubV9jYWNoZWRQYWdlKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7Ci0gICAgaXRlbS5zZXRDYWNo
ZWRQYWdlKG51bGxwdHIpOwotCi0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIlBh
Z2VDYWNoZTo6cmVtb3ZlIGl0ZW06ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5pZGVudGlmaWVy
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7Ci0KLX0K
LQotdm9pZCBQYWdlQ2FjaGU6OnBydW5lKFBydW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKLXsK
LSAgICB3aGlsZSAocGFnZUNvdW50KCkgPiBtYXhTaXplKCkpIHsKLSAgICAgICAgYXV0byBvbGRl
c3RJdGVtID0gbV9pdGVtcy50YWtlRmlyc3QoKTsKLSAgICAgICAgb2xkZXN0SXRlbS0+c2V0Q2Fj
aGVkUGFnZShudWxscHRyKTsKLSAgICAgICAgb2xkZXN0SXRlbS0+bV9wcnVuaW5nUmVhc29uID0g
cHJ1bmluZ1JlYXNvbjsKLSAgICAgICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIlBh
Z2VDYWNoZTo6cHJ1bmUgcmVtb3ZpbmcgaXRlbTogJXMsIHNpemU6ICV1IC8gJXUiLCBvbGRlc3RJ
dGVtLT5pZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1h
eFNpemUoKSk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9QYWdlQ2FjaGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTIxMWNjNDU5
ZmVlZmVkZmJmYTk0NDkyNzcyZTg5ZDAzMjAxMTU4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5o
CisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkhp
c3RvcnlJdGVtLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvTGlz
dEhhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBDYWNoZWRQYWdlOwotY2xhc3MgRnJhbWU7Ci1jbGFzcyBQYWdlOwot
Ci1lbnVtIGNsYXNzIFBydW5pbmdSZWFzb24geyBOb25lLCBQcm9jZXNzU3VzcGVuZGVkLCBNZW1v
cnlQcmVzc3VyZSwgUmVhY2hlZE1heFNpemUgfTsKLQotY2xhc3MgUGFnZUNhY2hlIHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ2FjaGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LXB1YmxpYzoKLSAgICAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhlIGdsb2JhbCBwYWdlIGNhY2hl
LgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYWdlQ2FjaGUmIHNpbmdsZXRvbigpOwotCi0g
ICAgYm9vbCBjYW5DYWNoZShQYWdlJikgY29uc3Q7Ci0KLSAgICAvLyBVc2VkIHdoZW4gbWVtb3J5
IGlzIGxvdyB0byBwcnVuZSBzb21lIGNhY2hlZCBwYWdlcy4KLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHBydW5lVG9TaXplTm93KHVuc2lnbmVkIG1heFNpemUsIFBydW5pbmdSZWFzb24pOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWF4U2l6ZSh1bnNpZ25lZCk7IC8vIG51bWJlciBvZiBw
YWdlcyB0byBjYWNoZS4KLSAgICB1bnNpZ25lZCBtYXhTaXplKCkgY29uc3QgeyByZXR1cm4gbV9t
YXhTaXplOyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFkZElmQ2FjaGVhYmxlKEhpc3Rv
cnlJdGVtJiwgUGFnZSopOyAvLyBQcnVuZXMgaWYgbWF4U2l6ZSgpIGlzIGV4Y2VlZGVkLgotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlKEhpc3RvcnlJdGVtJik7Ci0gICAgQ2FjaGVkUGFn
ZSogZ2V0KEhpc3RvcnlJdGVtJiwgUGFnZSopOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQ
YWdlPiB0YWtlKEhpc3RvcnlJdGVtJiwgUGFnZSopOwotCi0gICAgdm9pZCByZW1vdmVBbGxJdGVt
c0ZvclBhZ2UoUGFnZSYpOwotCi0gICAgdW5zaWduZWQgcGFnZUNvdW50KCkgY29uc3QgeyByZXR1
cm4gbV9pdGVtcy5zaXplKCk7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBmcmFtZUNv
dW50KCkgY29uc3Q7Ci0KLSAgICB2b2lkIG1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hh
bmdlZChQYWdlJik7Ci0gICAgdm9pZCBtYXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFuZ2VkKFBh
Z2UmKTsKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgdm9pZCBtYXJrUGFnZXNGb3JDYXB0
aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBQYWdlQ2Fj
aGUoKTsKLSAgICB+UGFnZUNhY2hlKCkgPSBkZWxldGU7IC8vIE1ha2Ugc3VyZSBub2JvZHkgYWNj
aWRlbnRhbGx5IGNhbGxzIGRlbGV0ZSAtLSBXZWJDb3JlIGRvZXMgbm90IGRlbGV0ZSBzaW5nbGV0
b25zLgotCi0gICAgc3RhdGljIGJvb2wgY2FuQ2FjaGVQYWdlQ29udGFpbmluZ1RoaXNGcmFtZShG
cmFtZSYpOwotCi0gICAgdm9pZCBwcnVuZShQcnVuaW5nUmVhc29uKTsKLSAgICB2b2lkIGR1bXAo
KSBjb25zdDsKLQotICAgIExpc3RIYXNoU2V0PFJlZlB0cjxIaXN0b3J5SXRlbT4+IG1faXRlbXM7
Ci0gICAgdW5zaWduZWQgbV9tYXhTaXplIHswfTsKLQotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAg
ICBib29sIG1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSB7IGZhbHNlIH07Ci0jZW5kaWYKLQot
ICAgIGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFBhZ2VDYWNoZT47Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAppbmRleCBjZmVhMjcxZjJmNjAyZDg2YzMyMDk2YjVmMTBjOGI0M2RkZTVjMzM5Li45ZmE3
MzhhYmM3MTEwNmQ3NmFjNDk0YjhkNmU1ZjhiMDc3ZWUwNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU3NTksNyArNTc1OSw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKICAgICBtX3Jl
c3VtZVRhc2tRdWV1ZS5jYW5jZWxUYXNrKCk7CiAKICAgICBzd2l0Y2ggKHJlYXNvbikgewotICAg
IGNhc2UgUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlOgorICAgIGNhc2UgUmVhc29uRm9y
U3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgc3RvcFdpdGhvdXREZXN0cm95
aW5nTWVkaWFQbGF5ZXIoKTsKICAgICAgICAgc2V0QnVmZmVyaW5nUG9saWN5KEJ1ZmZlcmluZ1Bv
bGljeTo6TWFrZVJlc291cmNlc1B1cmdlYWJsZSk7CiAgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5h
ZGRCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVQYWdlQ29u
c2VudFRvUmVzdW1lTWVkaWEpOwpAQCAtNTc4Nyw3ICs1Nzg3LDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpyZXN1bWUoKQogICAgIG1fbWVkaWFTZXNzaW9uLT51cGRhdGVCdWZmZXJpbmdQb2xp
Y3koKTsKIAogICAgIGlmIChtX2Vycm9yICYmIG1fZXJyb3ItPmNvZGUoKSA9PSBNZWRpYUVycm9y
OjpNRURJQV9FUlJfQUJPUlRFRCAmJiAhbV9yZXN1bWVUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2so
KSkgewotICAgICAgICAvLyBSZXN0YXJ0IHRoZSBsb2FkIGlmIGl0IHdhcyBhYm9ydGVkIGluIHRo
ZSBtaWRkbGUgYnkgbW92aW5nIHRoZSBkb2N1bWVudCB0byB0aGUgcGFnZSBjYWNoZS4KKyAgICAg
ICAgLy8gUmVzdGFydCB0aGUgbG9hZCBpZiBpdCB3YXMgYWJvcnRlZCBpbiB0aGUgbWlkZGxlIGJ5
IG1vdmluZyB0aGUgZG9jdW1lbnQgdG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICAgICAg
Ly8gbV9lcnJvciBpcyBvbmx5IGxlZnQgYXQgTUVESUFfRVJSX0FCT1JURUQgd2hlbiB0aGUgZG9j
dW1lbnQgYmVjb21lcyBpbmFjdGl2ZSAoaXQgaXMgc2V0IHRvCiAgICAgICAgIC8vICBNRURJQV9F
UlJfQUJPUlRFRCB3aGlsZSB0aGUgYWJvcnRFdmVudCBpcyBiZWluZyBzZW50LCBidXQgY2xlYXJl
ZCBpbW1lZGlhdGVseSBhZnRlcndhcmRzKS4KICAgICAgICAgLy8gVGhpcyBiZWhhdmlvciBpcyBu
b3Qgc3BlY2lmaWVkIGJ1dCBpdCBzZWVtcyBsaWtlIGEgc2Vuc2libGUgdGhpbmcgdG8gZG8uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCBj
NTZjM2M0ODg1OGI2MzlhZWQzMTljNzI3ZjZmODYyYzVmNjQzZTU4Li44YTFlZTBkMjNjMjZjMjgy
MTM5M2Q4ODJmZmVlMTU2Nzk1YzQyOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTE4NCwxMyArMTg0LDEzIEBAIGJvb2wgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNQbHVnSW4oY29uc3QgU3RyaW5nJiByZWxhdGl2
ZVVSTCwgY29uc3QKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewotICAgIEFTU0VSVChkb2N1
bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAg
ICBBU1NFUlQoZG9jdW1lbnQoKS5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6
Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGlmIChkaXNwbGF5U3RhdGUoKSA+PSBQcmVw
YXJpbmdQbHVnaW5SZXBsYWNlbWVudCkKICAgICAgICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGTW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9u
KTsKIAogICAgIC8vIE9uY2UgYSBwbHVnLWluIGVsZW1lbnQgY3JlYXRlcyBpdHMgcmVuZGVyZXIs
IGl0IG5lZWRzIHRvIGJlIHRvbGQgd2hlbiB0aGUgZG9jdW1lbnQgZ29lcwotICAgIC8vIGluYWN0
aXZlIG9yIHJlYWN0aXZhdGVzIHNvIGl0IGNhbiBjbGVhciB0aGUgcmVuZGVyZXIgYmVmb3JlIGdv
aW5nIGludG8gdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gaW5hY3RpdmUgb3IgcmVhY3RpdmF0ZXMg
c28gaXQgY2FuIGNsZWFyIHRoZSByZW5kZXJlciBiZWZvcmUgZ29pbmcgaW50byB0aGUgYmFjay9m
b3J3YXJkIGNhY2hlLgogICAgIGlmICghbV9uZWVkc0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNr
cykgewogICAgICAgICBtX25lZWRzRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzID0gdHJ1ZTsK
ICAgICAgICAgZG9jdW1lbnQoKS5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNr
cygqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCmluZGV4
IDg4ZWM1YTc2YTYwZWNiZjYwZWNkMjI1ODExY2JmMzMyZmUxMjNiY2EuLmRkNWQ4NWM1NGI5MWZm
YmNmYjIwNGVjZmQ2Yjc0YjRiNDIzZjNhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNv
dXJjZUVsZW1lbnQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBIVE1MU291cmNlRWxlbWVu
dDo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB2b2lkIEhUTUxTb3Vy
Y2VFbGVtZW50OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogewogICAgIC8v
IEZJWE1FOiBTaG91bGRuJ3QgdGhpcyBhbHNvIHN0b3AgdGhlIHRpbWVyIGZvciBQYWdlV2lsbEJl
U3VzcGVuZGVkPwotICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNh
Y2hlKSB7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2Fy
ZENhY2hlKSB7CiAgICAgICAgIG1fc2hvdWxkUmVzY2hlZHVsZUVycm9yRXZlbnRPblJlc3VtZSA9
IG1fZXJyb3JFdmVudFRpbWVyLmlzQWN0aXZlKCk7CiAgICAgICAgIG1fZXJyb3JFdmVudFRpbWVy
LnN0b3AoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxl
bWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmNwcAppbmRleCAyODQwNmZjMmZlZTgxYTFhZWE2ZjRmNDc1ZjVhNWE4ZDk2ZmExM2E2Li4yYTRj
OGY1M2Q5OTVhYjllZGE0NWNkNTBiMzY2Zjk2NzQ4NjU0ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTMxMiw3ICszMTIsNyBAQCBTdWNjZXNz
T3I8TWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJh
Y2tQZXJtaXR0ZWQoKSBjbwogYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRvcGxheVBlcm1p
dHRlZCgpIGNvbnN0CiB7CiAgICAgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV9lbGVtZW50
LmRvY3VtZW50KCk7Ci0gICAgaWYgKGRvY3VtZW50LnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1l
bnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgIGlmIChkb2N1bWVudC5iYWNrRm9yd2FyZENhY2hlU3Rh
dGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKaW5kZXggZmJhMjY2YWVlNmMxYjgwZDdlNWZhYzBlNzMyMzQ2MTE4OTgwNmFlNS4uNWZl
MzA3ZGM1NDdjZGE1MTAzMDMwYjYzMWUyZDEwMGM1YmE3MTA4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xNjU0LDE3ICsxNjU0LDE3IEBAIHZvaWQgRG9j
dW1lbnRMb2FkZXI6OmFkZFN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVyKiBsb2FkZXIp
CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgaWYgKGRvY3VtZW50KCkpIHsKLSAgICAgICAg
c3dpdGNoIChkb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAgIGNhc2UgRG9j
dW1lbnQ6Ok5vdEluUGFnZUNhY2hlOgorICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KCktPmJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgpKSB7CisgICAgICAgIGNhc2UgRG9jdW1lbnQ6Ok5vdEluQmFja0Zv
cndhcmRDYWNoZToKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERvY3VtZW50OjpB
Ym91dFRvRW50ZXJQYWdlQ2FjaGU6IHsKLSAgICAgICAgICAgIC8vIEEgcGFnZSBhYm91dCB0byBl
bnRlciBQYWdlQ2FjaGUgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5nIGxvYWRzLgor
ICAgICAgICBjYXNlIERvY3VtZW50OjpBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOiB7Cisg
ICAgICAgICAgICAvLyBBIHBhZ2UgYWJvdXQgdG8gZW50ZXIgdGhlIEJhY2tGb3J3YXJkQ2FjaGUg
c2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5nIGxvYWRzLgogICAgICAgICAgICAgYXV0
byogY2FjaGVkUmVzb3VyY2UgPSBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVzb3VyY2VGb3JS
ZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpLCBsb2FkZXItPmZyYW1lTG9hZGVyKCktPmZyYW1lKCku
cGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoY2FjaGVkUmVzb3VyY2Ug
JiYgQ2FjaGVkUmVzb3VyY2U6OnNob3VsZFVzZVBpbmdMb2FkKGNhY2hlZFJlc291cmNlLT50eXBl
KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgRG9jdW1l
bnQ6OkluUGFnZUNhY2hlOgotICAgICAgICAgICAgLy8gQSBwYWdlIGluIHRoZSBQYWdlQ2FjaGUg
c2hvdWxkIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRzLgorICAgICAgICBjYXNlIERvY3VtZW50
OjpJbkJhY2tGb3J3YXJkQ2FjaGU6CisgICAgICAgICAgICAvLyBBIHBhZ2UgaW4gdGhlIEJhY2tG
b3J3YXJkQ2FjaGUgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRzLgogICAgICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkZmZlZDQwOGMxZGVhODA3
YjFkYTJiNTQ1OTk0NGE0YjZkZTVjMTdjLi45ZjM4ZjllYjQyMzBjZjVlODM3MGVlODYwNDMzNDVl
YjJiMTgyZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNTM5
LDcgKzUzOSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXZSByZXRhaW4gYWxsIHRoZSByZWNlaXZl
ZCByZXNwb25zZXMgc28gd2UgY2FuIHBsYXkgYmFjayB0aGUKICAgICAvLyBXZWJSZXNvdXJjZUxv
YWREZWxlZ2F0ZSBtZXNzYWdlcyBpZiB0aGUgaXRlbSBpcyBsb2FkZWQgZnJvbSB0aGUKLSAgICAv
LyBwYWdlIGNhY2hlLgorICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBWZWN0b3I8UmVz
b3VyY2VSZXNwb25zZT4gbV9yZXNwb25zZXM7CiAgICAgYm9vbCBtX3N0b3BSZWNvcmRpbmdSZXNw
b25zZXMgeyBmYWxzZSB9OwogICAgIApAQCAtNTc5LDcgKzU3OSw2IEBAIHByaXZhdGU6CiAKICAg
ICBWZWN0b3I8Q3VzdG9tSGVhZGVyRmllbGRzPiBtX2N1c3RvbUhlYWRlckZpZWxkczsKICAgICAK
LSAgICBib29sIG1fc3VicmVzb3VyY2VMb2FkZXJzQXJlUGFnZUNhY2hlQWNjZXB0YWJsZSB7IGZh
bHNlIH07CiAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBtX3Nob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kgeyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RB
bGxvdyB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFwcGxpY2F0aW9uQ2FjaGVIb3N0PiBtX2Fw
cGxpY2F0aW9uQ2FjaGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggZTU5NmZhMDNlMTFjYmZjY2MxNTY2ZGVmZGJmNzc1ZDgyYjVk
Mzk4ZS4uMDljY2Q1YTIyNzc3ZmNiZWIxYTc4ZTFjZTk4OGM2NjQyNjUzNGZmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC00Niw3ICs0
Niw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJs
aWMgRnJhbWVMb2FkZXJDbGllbnQgewogCiAgICAgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oRG9j
dW1lbnRMb2FkZXIqKSBmaW5hbCB7IH0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJv
b2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUo
KSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZv
ck5vbkhUTUwoKSBmaW5hbCB7IH0KIApAQCAtMTY0LDcgKzE2NCw3IEBAIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQg
ewogI2VuZGlmCiAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgZmlu
YWwgeyB9CiAKLSAgICB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmluYWwgeyB9Cisg
ICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbCB7IH0KIAogICAg
IHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbCB7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYzk3M2UxNzUyYjBlN2E5YTBlMTlhMjg2
N2UzNGMxNzFmMTc0ZGJmZi4uYjIwMzc1YTUwZDlhNDVhZDU5MTg5MzlhYTQ0ZWJmZWRlMWY4NzVm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNo
ZUhvc3QuaCIKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiQmFja0Zv
cndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQmVmb3JlVW5sb2FkRXZlbnQuaCIKICNpbmNs
dWRlICJDYWNoZWRQYWdlLmgiCkBAIC05Miw3ICs5Myw2IEBACiAjaW5jbHVkZSAiTmF2aWdhdGlv
blNjaGVkdWxlci5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5j
bHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2lu
Y2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIgpAQCAtNTQ4LDggKzU0OCw4IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmNsb3NlVVJMKCkKICAg
ICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgU1ZHRG9jdW1lbnQgb2YgYW4gU1ZHSW1hZ2UsIG5vIG5l
ZWQgdG8gZGlzcGF0Y2ggZXZlbnRzIG9yIHJlY2FsY1N0eWxlLgogICAgICAgICB1bmxvYWRFdmVu
dFBvbGljeSA9IFVubG9hZEV2ZW50UG9saWN5Tm9uZTsKICAgICB9IGVsc2UgewotICAgICAgICAv
LyBTaG91bGQgb25seSBzZW5kIHRoZSBwYWdlaGlkZSBldmVudCBoZXJlIGlmIHRoZSBjdXJyZW50
IGRvY3VtZW50IGV4aXN0cyBhbmQgaGFzIG5vdCBiZWVuIHBsYWNlZCBpbiB0aGUgcGFnZSBjYWNo
ZS4KLSAgICAgICAgdW5sb2FkRXZlbnRQb2xpY3kgPSBjdXJyZW50RG9jdW1lbnQgJiYgY3VycmVu
dERvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSA/
IFVubG9hZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhpZGUgOiBVbmxvYWRFdmVudFBvbGljeVVu
bG9hZE9ubHk7CisgICAgICAgIC8vIFNob3VsZCBvbmx5IHNlbmQgdGhlIHBhZ2VoaWRlIGV2ZW50
IGhlcmUgaWYgdGhlIGN1cnJlbnQgZG9jdW1lbnQgZXhpc3RzIGFuZCBoYXMgbm90IGJlZW4gcGxh
Y2VkIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgICAgIHVubG9hZEV2ZW50UG9saWN5
ID0gY3VycmVudERvY3VtZW50ICYmIGN1cnJlbnREb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0
YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSA/IFVubG9hZEV2ZW50UG9s
aWN5VW5sb2FkQW5kUGFnZUhpZGUgOiBVbmxvYWRFdmVudFBvbGljeVVubG9hZE9ubHk7CiAgICAg
fQogCiAgICAgc3RvcExvYWRpbmcodW5sb2FkRXZlbnRQb2xpY3kpOwpAQCAtNjM0LDcgKzYzNCw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyKERvY3VtZW50KiBuZXdEb2N1bWVudCwgYm9vbCBj
bGVhcldpbmRvd1Byb3BlcnRpZXMsIGJvb2wKICAgICBib29sIG5lZWRlZENsZWFyID0gbV9uZWVk
c0NsZWFyOwogICAgIG1fbmVlZHNDbGVhciA9IGZhbHNlOwogCi0gICAgaWYgKG5lZWRlZENsZWFy
ICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5Q
YWdlQ2FjaGUpIHsKKyAgICBpZiAobmVlZGVkQ2xlYXIgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5i
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKSB7
CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwogICAgICAgICBt
X2ZyYW1lLmRvY3VtZW50KCktPnN0b3BBY3RpdmVET01PYmplY3RzKCk7CiAgICAgICAgIGJvb2wg
aGFkTGl2aW5nUmVuZGVyVHJlZSA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+aGFzTGl2aW5nUmVuZGVy
VHJlZSgpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyKERvY3Vt
ZW50KiBuZXdEb2N1bWVudCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMsIGJvb2wKICAgICBp
ZiAoY2xlYXJXaW5kb3dQcm9wZXJ0aWVzKSB7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQobV9mcmFtZSwgbV9mcmFtZS5kb2N1bWVudCgpLT5k
b21XaW5kb3coKSk7CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnJl
c2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7Ci0gICAgICAgIG1fZnJh
bWUud2luZG93UHJveHkoKS5jbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93
KG5ld0RvY3VtZW50LT5kb21XaW5kb3coKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVT
dGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOworICAgICAgICBtX2Zy
YW1lLndpbmRvd1Byb3h5KCkuY2xlYXJKU1dpbmRvd1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRv
dyhuZXdEb2N1bWVudC0+ZG9tV2luZG93KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0Zvcndh
cmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUp
OwogCiAgICAgICAgIGlmIChzaG91bGRDbGVhcldpbmRvd05hbWUobV9mcmFtZSwgKm5ld0RvY3Vt
ZW50KSkKICAgICAgICAgICAgIG1fZnJhbWUudHJlZSgpLnNldE5hbWUobnVsbEF0b20oKSk7CkBA
IC0xODE0LDcgKzE4MTQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoT3B0aW9uU2V0PFJl
bG9hZE9wdGlvbj4gb3B0aW9ucykKIAogdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMo
Q2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3ksIFN0
b3BMb2FkaW5nUG9saWN5IHN0b3BMb2FkaW5nUG9saWN5KQogewotICAgIGlmIChtX2ZyYW1lLmRv
Y3VtZW50KCkgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3Vt
ZW50OjpJblBhZ2VDYWNoZSkKKyAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpICYmIG1fZnJhbWUu
ZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluQmFja0Zv
cndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHN0b3BMb2FkaW5nUG9saWN5
ID09IFN0b3BMb2FkaW5nUG9saWN5OjpQcmV2ZW50RHVyaW5nVW5sb2FkRXZlbnRzICYmICFpc1N0
b3BMb2FkaW5nQWxsb3dlZCgpKQpAQCAtMTg1Miw3ICsxODUyLDcgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNp
b25hbEl0ZW0KICAgICBtX2luU3RvcEFsbExvYWRlcnMgPSBmYWxzZTsgICAgCiB9CiAKLXZvaWQg
RnJhbWVMb2FkZXI6OnN0b3BGb3JQYWdlQ2FjaGUoKQordm9pZCBGcmFtZUxvYWRlcjo6c3RvcEZv
ckJhY2tGb3J3YXJkQ2FjaGUoKQogewogICAgIC8vIFN0b3AgcHJvdmlzaW9uYWwgbG9hZHMgaW4g
c3ViZnJhbWVzIChUaGUgb25lIGluIHRoZSBtYWluIGZyYW1lIGlzIGFib3V0IHRvIGJlIGNvbW1p
dHRlZCkuCiAgICAgaWYgKCFtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKQEAgLTE4NjYsNyArMTg2
Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BGb3JQYWdlQ2FjaGUoKQogICAgICAgICBtX2Rv
Y3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwogCiAgICAgZm9yIChSZWZQdHI8RnJhbWU+IGNo
aWxkID0gbV9mcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
dHJlZSgpLm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkLT5sb2FkZXIoKS5zdG9wRm9yUGFn
ZUNhY2hlKCk7CisgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5zdG9wRm9yQmFja0ZvcndhcmRDYWNo
ZSgpOwogCiAgICAgLy8gV2UgY2FuY2VsIHBlbmRpbmcgbmF2aWdhdGlvbnMgJiBwb2xpY3kgY2hl
Y2tzICphZnRlciogY2FuY2VsbGluZyBsb2FkcyBiZWNhdXNlIGNhbmNlbGxpbmcgbG9hZHMgbWln
aHQgZW5kIHVwCiAgICAgLy8gcnVubmluZyBzY3JpcHQsIHdoaWNoIGNvdWxkIHNjaGVkdWxlIG5l
dyBuYXZpZ2F0aW9ucy4KQEAgLTIwMTYsNyArMjAxNiw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNv
bW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4g
Y2FjaGVkUGFnZTsKICAgICBpZiAobV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2UgJiYgaGlzdG9yeSgp
LnByb3Zpc2lvbmFsSXRlbSgpKQotICAgICAgICBjYWNoZWRQYWdlID0gUGFnZUNhY2hlOjpzaW5n
bGV0b24oKS50YWtlKCpoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCksIG1fZnJhbWUucGFnZSgp
KTsKKyAgICAgICAgY2FjaGVkUGFnZSA9IEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnRh
a2UoKmhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSwgbV9mcmFtZS5wYWdlKCkpOwogCiAgICAg
TE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJXZWJDb3JlTG9hZGluZyAlczogQWJvdXQgdG8gY29tbWl0
IHByb3Zpc2lvbmFsIGxvYWQgZnJvbSBwcmV2aW91cyBVUkwgJyVzJyB0byBuZXcgVVJMICclcycg
d2l0aCBjYWNoZWQgcGFnZSAlcCIsIG1fZnJhbWUudHJlZSgpLnVuaXF1ZU5hbWUoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpLAogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCkgPyBtX2ZyYW1lLmRv
Y3VtZW50KCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5k
YXRhKCkgOiAiIiwKQEAgLTIwMjcsNyArMjAyNyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgaWYgKCFtX2ZyYW1lLnRyZWUoKS5wYXJlbnQoKSAmJiBo
aXN0b3J5KCkuY3VycmVudEl0ZW0oKSAmJiBoaXN0b3J5KCkuY3VycmVudEl0ZW0oKSAhPSBoaXN0
b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpIHsKICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHdl
IG5lZWQgdG8gY2FjaGUgdGhlIHBhZ2Ugd2UgYXJlIG5hdmlnYXRpbmcgYXdheSBmcm9tIGludG8g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICAgICAgLy8gV2UgYXJlIGRvaW5nIHRoaXMgaGVy
ZSBiZWNhdXNlIHdlIGtub3cgZm9yIHN1cmUgdGhhdCBhIG5ldyBwYWdlIGlzIGFib3V0IHRvIGJl
IGxvYWRlZC4KLSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5hZGRJZkNhY2hlYWJsZSgq
aGlzdG9yeSgpLmN1cnJlbnRJdGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAgICAgQmFja0Zv
cndhcmRDYWNoZTo6c2luZ2xldG9uKCkuYWRkSWZDYWNoZWFibGUoKmhpc3RvcnkoKS5jdXJyZW50
SXRlbSgpLCBtX2ZyYW1lLnBhZ2UoKSk7CiAgICAgICAgIAogICAgICAgICBXZWJDb3JlOjpqZXR0
aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExldmVsTmF2aWdhdGlvbigpOwogICAgIH0KQEAgLTIx
MDQsMTEgKzIxMDQsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2Fk
KCkKICAgICAgICAgLy8gTm90ZSwgZGlkUmVjZWl2ZURvY1R5cGUgaXMgZXhwZWN0ZWQgdG8gYmUg
Y2FsbGVkIGZvciBjYWNoZWQgcGFnZXMuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTkwNjc1OD4gZm9y
IG1vcmUgZGV0YWlscy4KICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkK
ICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKG1fZnJhbWUpOwot
ICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShSZWFzb25Gb3JTdXNwZW5zaW9uOjpQ
YWdlQ2FjaGUpOworICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShSZWFzb25Gb3JT
dXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgICAgICAvLyBGb3JjZSBhIGxheW91
dCB0byB1cGRhdGUgdmlldyBzaXplIGFuZCB0aGVyZWJ5IHVwZGF0ZSBzY3JvbGxiYXJzLgogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlmICghbV9jbGllbnQuZm9yY2VMYXlvdXRP
blJlc3RvcmVGcm9tUGFnZUNhY2hlKCkpCisgICAgICAgIGlmICghbV9jbGllbnQuZm9yY2VMYXlv
dXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICAgICAgbV9mcmFtZS52
aWV3KCktPmZvcmNlTGF5b3V0KCk7CiAjZWxzZQogICAgICAgICBtX2ZyYW1lLnZpZXcoKS0+Zm9y
Y2VMYXlvdXQoKTsKQEAgLTIzMzAsNyArMjMzMCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Om9wZW4o
Q2FjaGVkRnJhbWVCYXNlJiBjYWNoZWRGcmFtZSkKICAgICBjbGVhcihkb2N1bWVudC5wdHIoKSwg
dHJ1ZSwgdHJ1ZSwgY2FjaGVkRnJhbWUuaXNNYWluRnJhbWUoKSk7CiAKICAgICBkb2N1bWVudC0+
YXR0YWNoVG9DYWNoZWRGcmFtZShjYWNoZWRGcmFtZSk7Ci0gICAgZG9jdW1lbnQtPnNldFBhZ2VD
YWNoZVN0YXRlKERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgZG9jdW1lbnQtPnNldEJh
Y2tGb3J3YXJkQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsKIAog
ICAgIG1fbmVlZHNDbGVhciA9IHRydWU7CiAgICAgbV9pc0NvbXBsZXRlID0gZmFsc2U7CkBAIC0y
MzYwLDcgKzIzNjAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpvcGVuKENhY2hlZEZyYW1lQmFzZSYg
Y2FjaGVkRnJhbWUpCiAgICAgCiAgICAgbV9mcmFtZS5zZXREb2N1bWVudChkb2N1bWVudC5jb3B5
UmVmKCkpOwogCi0gICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5yZXN1bWVGcm9tUGFnZUNhY2hl
KCk7CisgICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5yZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNo
ZSgpOwogCiAgICAgdXBkYXRlRmlyc3RQYXJ0eUZvckNvb2tpZXMoKTsKIApAQCAtMjgyOCw3ICsy
ODI4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZnJhbWVEZXRhY2hlZCgpCiAgICAgICAgIGNoZWNr
Q29tcGxldGVuZXNzTm93KCk7CiAgICAgfQogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+
cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpIHsKKyAgICBpZiAobV9m
cmFtZS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5C
YWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAgIHN0b3BBbGxMb2FkZXJzQW5kQ2hlY2tDb21wbGV0
ZW5lc3MoKTsKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zdG9wQWN0aXZlRE9NT2JqZWN0
cygpOwogICAgIH0KQEAgLTI4NDQsOCArMjg0NCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRldGFj
aEZyb21QYXJlbnQoKQogICAgIGNsb3NlVVJMKCk7CiAgICAgaGlzdG9yeSgpLnNhdmVTY3JvbGxQ
b3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShoaXN0b3J5KCkuY3VycmVudEl0ZW0oKSk7CiAgICAg
ZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVT
dGF0ZSgpICE9IERvY3VtZW50OjpJblBhZ2VDYWNoZSkgewotICAgICAgICAvLyBzdG9wQWxsTG9h
ZGVycygpIG5lZWRzIHRvIGJlIGNhbGxlZCBhZnRlciBkZXRhY2hDaGlsZHJlbigpIGlmIHRoZSBk
b2N1bWVudCBpcyBub3QgaW4gdGhlIHBhZ2UgY2FjaGUsCisgICAgaWYgKG1fZnJhbWUuZG9jdW1l
bnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRD
YWNoZSkgeworICAgICAgICAvLyBzdG9wQWxsTG9hZGVycygpIG5lZWRzIHRvIGJlIGNhbGxlZCBh
ZnRlciBkZXRhY2hDaGlsZHJlbigpIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgaW4gdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZSwKICAgICAgICAgLy8gYmVjYXVzZSBkZXRhY2hlZENoaWxkcmVuKCkgd2ls
bCB0cmlnZ2VyIHRoZSB1bmxvYWQgZXZlbnQgaGFuZGxlcnMgb2YgYW55IGNoaWxkIGZyYW1lcywg
YW5kIHRob3NlIGV2ZW50CiAgICAgICAgIC8vIGhhbmRsZXJzIG1pZ2h0IHN0YXJ0IGEgbmV3IHN1
YnJlc291cmNlIGxvYWQgaW4gdGhpcyBmcmFtZS4KICAgICAgICAgc3RvcEFsbExvYWRlcnMoU2hv
dWxkQ2xlYXJQcm92aXNpb25hbEl0ZW0sIFN0b3BMb2FkaW5nUG9saWN5OjpBbHdheXNTdG9wTG9h
ZGluZyk7CkBAIC0zMTgwLDcgKzMxODAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWNlaXZlZE1h
aW5SZXNvdXJjZUVycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBpZiAo
bV9zdWJtaXR0ZWRGb3JtVVJMID09IG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+b3JpZ2lu
YWxSZXF1ZXN0Q29weSgpLnVybCgpKQogICAgICAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMID0g
VVJMKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBtYWRlIGEgcGFn
ZSBjYWNoZSBpdGVtLCBidXQgbm93IHdlJ3JlIGJhaWxpbmcgb3V0IGR1ZSB0byBhbiBlcnJvciBi
ZWZvcmUgd2UgZXZlcgorICAgICAgICAvLyBXZSBtaWdodCBoYXZlIG1hZGUgYSBiYWNrL2Zvcndh
cmQgY2FjaGUgaXRlbSwgYnV0IG5vdyB3ZSdyZSBiYWlsaW5nIG91dCBkdWUgdG8gYW4gZXJyb3Ig
YmVmb3JlIHdlIGV2ZXIKICAgICAgICAgLy8gdHJhbnNpdGlvbmVkIHRvIHRoZSBuZXcgcGFnZSAo
YmVmb3JlIFdlYkZyYW1lU3RhdGUgPT0gY29tbWl0KS4gIFRoZSBnb2FsIGhlcmUgaXMgdG8gcmVz
dG9yZSBhbnkgc3RhdGUKICAgICAgICAgLy8gc28gdGhhdCB0aGUgZXhpc3RpbmcgdmlldyAodGhh
dCB3ZW5ldmVyIGdvdCBmYXIgZW5vdWdoIHRvIHJlcGxhY2UpIGNhbiBjb250aW51ZSBiZWluZyB1
c2VkLgogICAgICAgICBoaXN0b3J5KCkuaW52YWxpZGF0ZUN1cnJlbnRJdGVtQ2FjaGVkUGFnZSgp
OwpAQCAtMzIzMSw3ICszMjMxLDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxkUGVyZm9ybUZy
YWdtZW50TmF2aWdhdGlvbihib29sIGlzRm9ybVN1Ym1pc3Npb24sIGNvbnN0IFMKICAgICByZXR1
cm4gKCFpc0Zvcm1TdWJtaXNzaW9uIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGh0
dHBNZXRob2QsICJnZXQiKSkKICAgICAgICAgJiYgIWlzUmVsb2FkKGxvYWRUeXBlKQogICAgICAg
ICAmJiBsb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlOjpTYW1lCi0gICAgICAgICYmIG1fZnJhbWUu
ZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUKKyAg
ICAgICAgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBE
b2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlCiAgICAgICAgICYmICFzaG91bGRSZWxvYWQobV9m
cmFtZS5kb2N1bWVudCgpLT51cmwoKSwgdXJsKQogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRv
IGp1c3Qgc2Nyb2xsIGlmIGEgbGluayBmcm9tIHdpdGhpbiBhCiAgICAgICAgIC8vIGZyYW1lc2V0
IGlzIHRyeWluZyB0byByZWxvYWQgdGhlIGZyYW1lc2V0IGludG8gX3RvcC4KQEAgLTMzMTUsMTMg
KzMzMTUsMTMgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hVbmxvYWRFdmVudHMoVW5sb2Fk
RXZlbnRQb2xpY3kgdW5sb2FkRXZlbnRQb2xpY3kpCiAgICAgICAgIGlmIChtX3BhZ2VEaXNtaXNz
YWxFdmVudEJlaW5nRGlzcGF0Y2hlZCA9PSBQYWdlRGlzbWlzc2FsVHlwZTo6Tm9uZSkgewogICAg
ICAgICAgICAgaWYgKHVubG9hZEV2ZW50UG9saWN5ID09IFVubG9hZEV2ZW50UG9saWN5VW5sb2Fk
QW5kUGFnZUhpZGUpIHsKICAgICAgICAgICAgICAgICBtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5n
RGlzcGF0Y2hlZCA9IFBhZ2VEaXNtaXNzYWxUeXBlOjpQYWdlSGlkZTsKLSAgICAgICAgICAgICAg
ICBtX2ZyYW1lLmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50KFBhZ2VUcmFu
c2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucGFnZWhpZGVFdmVudCwgbV9mcmFtZS5k
b2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdl
Q2FjaGUpLCBtX2ZyYW1lLmRvY3VtZW50KCkpOworICAgICAgICAgICAgICAgIG1fZnJhbWUuZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCBtX2ZyYW1lLmRvY3VtZW50KCktPmJh
Y2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJCYWNrRm9yd2Fy
ZENhY2hlKSwgbV9mcmFtZS5kb2N1bWVudCgpKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgLy8gRklYTUU6IHVwZGF0ZSBQYWdlIFZpc2liaWxpdHkgc3RhdGUgaGVyZS4KICAgICAgICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY3NzAKIAot
ICAgICAgICAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSA9PSBE
b2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpIHsKKyAgICAgICAgICAgIGlmIChtX2ZyYW1lLmRvY3Vt
ZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3
YXJkQ2FjaGUpIHsKICAgICAgICAgICAgICAgICBSZWY8RXZlbnQ+IHVubG9hZEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLnVubG9hZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywg
RXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICAgICAgICAgICAgICAvLyBUaGUgRG9jdW1l
bnRMb2FkZXIgKGFuZCB0aHVzIGl0cyBMb2FkVGltaW5nKSBtaWdodCBnZXQgZGVzdHJveWVkCiAg
ICAgICAgICAgICAgICAgLy8gd2hpbGUgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50LCBzbyBwcm90ZWN0
IGl0IHRvIHByZXZlbnQgd3JpdGluZyB0aGUgZW5kCkBAIC0zMzQ1LDcgKzMzNDUsNyBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpkaXNwYXRjaFVubG9hZEV2ZW50cyhVbmxvYWRFdmVudFBvbGljeSB1bmxv
YWRFdmVudFBvbGljeSkKICAgICBpZiAoIW1fZnJhbWUuZG9jdW1lbnQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBE
b2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFj
a0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRG9uJ3QgcmVtb3ZlIGV2ZW50IGxpc3RlbmVycyBm
cm9tIGEgdHJhbnNpdGlvbmFsIGVtcHR5IGRvY3VtZW50IChzZWUgYnVnIDI4NzE2IGZvciBtb3Jl
IGluZm9ybWF0aW9uKS4KQEAgLTM1MDUsMTMgKzM1MDUsMTMgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWUKIAogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUodHlwZSkpIHsKICAgICAgICAg
YXV0byYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtX2ZyYW1lLnBhZ2UoKS0+ZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoKTsKLSAgICAgICAgaWYgKGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0o
KSAmJiBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCktPmlzSW5QYWdlQ2FjaGUoKSkgewotICAg
ICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRo
UmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNhY2hlS2V5KCksIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIERpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcywg
U2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICBpZiAoaGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRl
bSgpICYmIGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKS0+aXNJbkJhY2tGb3J3YXJkQ2FjaGUo
KSkgeworICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtl
eSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFnbm9zdGljTG9n
Z2luZ1Jlc3VsdFBhc3MsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAgIGxvYWRQcm92
aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSgpOwogICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5OiBjYW4ndCBjb250aW51
ZSBsb2FkaW5nIGZyYW1lIGJlY2F1c2UgaXQgd2lsbCBiZSBsb2FkZWQgZnJvbSBjYWNoZSAoZnJh
bWUgPSAlcCwgbWFpbiA9ICVkKSIsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnBhZ2VDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgp
LCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICAg
ICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0
KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpLCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWws
IFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICB9CiAKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZEZyYW1lID0gbWFrZVJlZiht
X2ZyYW1lKV0gKCkgbXV0YWJsZSB7CkBAIC0zNjgwLDcgKzM2ODAsNyBAQCBib29sIEZyYW1lTG9h
ZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9yWEZyYW1lT3B0aW9ucyhjb25zdCBTdHJpbmcmIGNv
bnRlbnQsIGNvbgogdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFByb3Zpc2lvbmFsSXRlbUZyb21DYWNo
ZWRQYWdlKCkKIHsKICAgICBEb2N1bWVudExvYWRlciogcHJvdmlzaW9uYWxMb2FkZXIgPSBwcm92
aXNpb25hbERvY3VtZW50TG9hZGVyKCk7Ci0gICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJXZWJD
b3JlUGFnZUNhY2hlOiBMb2FkaW5nIHByb3Zpc2lvbmFsIERvY3VtZW50TG9hZGVyICVwIHdpdGgg
VVJMICclcycgZnJvbSBDYWNoZWRQYWdlIiwgcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpLCBw
cm92aXNpb25hbERvY3VtZW50TG9hZGVyKCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRU
b0xlbmd0aCgpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhCYWNrRm9yd2FyZENhY2hlLCAiRnJh
bWVMb2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSBMb2FkaW5nIHByb3Zp
c2lvbmFsIERvY3VtZW50TG9hZGVyICVwIHdpdGggVVJMICclcycgZnJvbSBDYWNoZWRQYWdlIiwg
cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpLCBwcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkt
PnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5kYXRhKCkpOwog
CiAgICAgcHJlcGFyZUZvckxvYWRTdGFydCgpOwogCkBAIC0zNzY4LDcgKzM3NjgsNyBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVt
LCBIaXN0b3J5SXRlbSogZnJvbQogCiAgICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0
ZT4gY29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCBzaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZ
ZXMgPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9h
ZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAKLSAgICBpZiAoQ2FjaGVkUGFnZSog
Y2FjaGVkUGFnZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJhbWUucGFn
ZSgpKSkgeworICAgIGlmIChDYWNoZWRQYWdlKiBjYWNoZWRQYWdlID0gQmFja0ZvcndhcmRDYWNo
ZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJhbWUucGFnZSgpKSkgewogICAgICAgICBhdXRv
IGRvY3VtZW50TG9hZGVyID0gY2FjaGVkUGFnZS0+ZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAg
bV9jbGllbnQudXBkYXRlQ2FjaGVkRG9jdW1lbnRMb2FkZXIoKmRvY3VtZW50TG9hZGVyKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBhMzcxNmQ5ZWZiYmE5OGQ0NjRhOWY5
YTM0MThiNDk2NjJjZTkzM2NlLi41YjNhYzEwNDVhMzBjOGI2YjczMjYxMjUxNzQzZGYxODYwOWNi
MTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTQ3LDcgKzE0Nyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHN0b3BBbGxMb2FkZXJzQW5kQ2hlY2tDb21wbGV0ZW5lc3MoKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BBbGxMb2FkZXJzKENsZWFyUHJvdmlzaW9uYWxJ
dGVtUG9saWN5ID0gU2hvdWxkQ2xlYXJQcm92aXNpb25hbEl0ZW0sIFN0b3BMb2FkaW5nUG9saWN5
ID0gU3RvcExvYWRpbmdQb2xpY3k6OlByZXZlbnREdXJpbmdVbmxvYWRFdmVudHMpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3RvcEZvclVzZXJDYW5jZWwoYm9vbCBkZWZlckNoZWNrTG9hZENv
bXBsZXRlID0gZmFsc2UpOwotICAgIHZvaWQgc3RvcEZvclBhZ2VDYWNoZSgpOworICAgIHZvaWQg
c3RvcEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB2b2lkIHN0b3AoKTsKICAgICB2b2lkIHN0
b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9saWN5KTsKICAgICBib29sIGNsb3NlVVJMKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDhjN2YxNzVmMDhjOWQx
NGJkM2ZmMTUyYzI2MzE2MWIwMGVmYmIxYTcuLjk4ZGY5NDVmNTI4N2Q2MTc3NGIzMmQzZmVkOTRj
NGVlYTk3MGZlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNsaWVudCBmb3JjZWQgdGhlIGxheW91dC4KLSAg
ICB2aXJ0dWFsIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBmb3JjZUxheW91dE9uUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hl
KCkgPSAwOwogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9yTm9uSFRNTCgp
ID0gMDsKIApAQCAtMjc4LDcgKzI3OCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHZpcnR1YWwg
dm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
aWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSA9IDA7IC8vIENhbiBjaGFuZ2UgZHVlIHRv
IG5hdmlnYXRpb24gb3IgRE9NIG1vZGlmaWNhdGlvbi4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggMDZhNzE0ZmFiYjNiYTBhN2YxMjVlMDJlM2Yw
NjgwNmNmM2NhMzE4ZC4uNjRmMTkxMzFmYmQzYjA0OGRiNTJmZjkyODgwNWRkYjM3ODU5Y2M5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC0zMSw2
ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUNvbnRyb2xs
ZXIuaCIKIAorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9y
d2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKQEAgLTQ0LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hl
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoLmgiCkBAIC03NCw3
ICs3NCw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZp
ZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRlbSogaXRlbSkKICAgICBpZiAoIWl0ZW0gfHwgIWZyYW1l
VmlldykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFn
ZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKG1fZnJh
bWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdElu
QmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgaXRlbS0+c2V0U2Nyb2xsUG9zaXRpb24oZnJhbWVW
aWV3LT5jYWNoZWRTY3JvbGxQb3NpdGlvbigpKTsKICAgICBlbHNlCiAgICAgICAgIGl0ZW0tPnNl
dFNjcm9sbFBvc2l0aW9uKGZyYW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKSk7CkBAIC0xMzcsOSAr
MTM3LDkgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5k
Vmlld1N0YXRlKCkKICAgICBhdXRvIHZpZXcgPSBtYWtlUmVmUHRyKG1fZnJhbWUudmlldygpKTsK
IAogICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBzb21lIHNjcm9sbGluZyByZWxhdGVkIHdvcmsgdGhh
dCBuZWVkcyB0byBoYXBwZW4gd2hlbmV2ZXIgYSBwYWdlIGdvZXMgaW50byB0aGUKLSAgICAvLyBw
YWdlIGNhY2hlIGFuZCBzaW1pbGFyIHdvcmsgdGhhdCBuZWVkcyB0byBvY2N1ciB3aGVuIGl0IGNv
bWVzIG91dC4gVGhpcyBpcyB3aGVyZSB3ZSBkbyB0aGUgd29yaworICAgIC8vIGJhY2svZm9yd2Fy
ZCBjYWNoZSBhbmQgc2ltaWxhciB3b3JrIHRoYXQgbmVlZHMgdG8gb2NjdXIgd2hlbiBpdCBjb21l
cyBvdXQuIFRoaXMgaXMgd2hlcmUgd2UgZG8gdGhlIHdvcmsKICAgICAvLyB0aGF0IG5lZWRzIHRv
IGhhcHBlbiB3aGVuIHdlIGV4aXQsIGFuZCB0aGUgd29yayB0aGF0IG5lZWRzIHRvIGhhcHBlbiB3
aGVuIHdlIGVudGVyIGlzIGluCi0gICAgLy8gRG9jdW1lbnQ6OnNldElzSW5QYWdlQ2FjaGUoYm9v
bCkuIEl0IHdvdWxkIGJlIG5pY2UgaWYgdGhlcmUgd2FzIG1vcmUgc3ltbWV0cnkgaW4gdGhlc2Ug
c3BvdHMuCisgICAgLy8gRG9jdW1lbnQ6OnNldElzSW5CYWNrRm9yd2FyZENhY2hlKGJvb2wpLiBJ
dCB3b3VsZCBiZSBuaWNlIGlmIHRoZXJlIHdhcyBtb3JlIHN5bW1ldHJ5IGluIHRoZXNlIHNwb3Rz
LgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODY5OAog
ICAgIGlmICh2aWV3KSB7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKQEAg
LTI2MSw4ICsyNjEsOCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlkYXRlQ3VycmVu
dEl0ZW1DYWNoZWRQYWdlKCkKICAgICBpZiAoIWN1cnJlbnRJdGVtKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIC8vIFdoZW4gd2UgYXJlIHByZS1jb21taXQsIHRoZSBjdXJyZW50SXRlbSBpcyB3
aGVyZSBhbnkgcGFnZSBjYWNoZSBkYXRhIHJlc2lkZXMuCi0gICAgc3RkOjp1bmlxdWVfcHRyPENh
Y2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnRha2UoKmN1cnJl
bnRJdGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAvLyBXaGVuIHdlIGFyZSBwcmUtY29tbWl0
LCB0aGUgY3VycmVudEl0ZW0gaXMgd2hlcmUgYW55IGJhY2svZm9yd2FyZCBjYWNoZSBkYXRhIHJl
c2lkZXMuCisgICAgc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBCYWNr
Rm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS50YWtlKCpjdXJyZW50SXRlbSgpLCBtX2ZyYW1lLnBh
Z2UoKSk7CiAgICAgaWYgKCFjYWNoZWRQYWdlKQogICAgICAgICByZXR1cm47CiAKQEAgLTI3Miw3
ICsyNzIsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlkYXRlQ3VycmVudEl0ZW1D
YWNoZWRQYWdlKCkKICAgICAKICAgICBBU1NFUlQoY2FjaGVkUGFnZS0+ZG9jdW1lbnQoKSA9PSBt
X2ZyYW1lLmRvY3VtZW50KCkpOwogICAgIGlmIChjYWNoZWRQYWdlLT5kb2N1bWVudCgpID09IG1f
ZnJhbWUuZG9jdW1lbnQoKSkgewotICAgICAgICBjYWNoZWRQYWdlLT5kb2N1bWVudCgpLT5zZXRQ
YWdlQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgICAgICBjYWNoZWRQ
YWdlLT5kb2N1bWVudCgpLT5zZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUoRG9jdW1lbnQ6Ok5vdElu
QmFja0ZvcndhcmRDYWNoZSk7CiAgICAgICAgIGNhY2hlZFBhZ2UtPmNsZWFyKCk7CiAgICAgfQog
fQpAQCAtMzU1LDcgKzM1NSw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnVwZGF0ZUZvclJl
bG9hZCgpCiAgICAgTE9HKEhpc3RvcnksICJIaXN0b3J5Q29udHJvbGxlciAlcCB1cGRhdGVGb3JS
ZWxvYWQ6IFVwZGF0aW5nIEhpc3RvcnkgZm9yIHJlbG9hZCBpbiBmcmFtZSAlcCAobWFpbiBmcmFt
ZSAlZCkgJXMiLCB0aGlzLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgpLCBtX2ZyYW1l
LmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkgPyBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CiAKICAgICBpZiAobV9j
dXJyZW50SXRlbSkgewotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZSgqbV9j
dXJyZW50SXRlbSk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92
ZSgqbV9jdXJyZW50SXRlbSk7CiAgICAgCiAgICAgICAgIGlmIChtX2ZyYW1lLmxvYWRlcigpLmxv
YWRUeXBlKCkgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkIHx8IG1fZnJhbWUubG9hZGVyKCkubG9h
ZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luKQogICAgICAgICAgICAg
c2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlVG9JdGVtKG1fY3VycmVudEl0ZW0uZ2V0KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlSG9zdC5jcHAKaW5kZXggZTMxMzFjY2RkYmMwNGJlZjJjZTZkMTY2NzE0NjFmNGNlYzg1
ZDhkZS4uODk5Y2JhNGY5NzVlMmNmMGJjZWQyNTk3Yjc0MmU2YWVlMjQ1YmZlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhv
c3QuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5
YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYKICAgICB9
CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5QYWdlQ2FjaGUoKQor
Ym9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Y2FuQ2FjaGVJbkJhY2tGb3J3YXJkQ2FjaGUoKQog
ewogICAgIHJldHVybiAhYXBwbGljYXRpb25DYWNoZSgpICYmICFjYW5kaWRhdGVBcHBsaWNhdGlv
bkNhY2hlR3JvdXAoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKaW5kZXggZTA5NGQwODRlZTk0YWJkODVkNjZkM2E0
ZjRlNTg4MTUzNzE4YTE0MC4uNWIyYWExYzYxYzhjZDZhNzllNzFhZjM3NmQ3ZGRlZDQyOTM3Zjg4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVIb3N0LmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtYXli
ZUxvYWRTeW5jaHJvbm91c2x5KFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlRXJyb3ImLCBSZXNv
dXJjZVJlc3BvbnNlJiwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mKTsKICAgICB2b2lkIG1heWJlTG9h
ZEZhbGxiYWNrU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUVy
cm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFJlZlB0cjxTaGFyZWRCdWZmZXI+Jik7CiAKLSAgICBi
b29sIGNhbkNhY2hlSW5QYWdlQ2FjaGUoKTsKKyAgICBib29sIGNhbkNhY2hlSW5CYWNrRm9yd2Fy
ZENhY2hlKCk7CiAKICAgICBTdGF0dXMgc3RhdHVzKCkgY29uc3Q7CiAgICAgYm9vbCB1cGRhdGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmlu
ZGV4IDRiMTZmNTk3NjFkOGM3NWE2ZjBiYTAyMWRiYzIwMzM0MDg3ZWVlMDkuLjY5NmFkOGI0OWEw
ZGY2NDM0NWJkMWRiNzY3ODI1ZjZkMDhkYTQ3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMTk1LDIzICsxOTUsMjMgQEAgdm9pZCBD
YWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VM
b2FkZXIpCiAgICAgfQogICAgIEZyYW1lJiBmcmFtZSA9ICpjYWNoZWRSZXNvdXJjZUxvYWRlci5m
cmFtZSgpOwogCi0gICAgLy8gUHJldmVudCBuZXcgbG9hZHMgaWYgd2UgYXJlIGluIHRoZSBQYWdl
Q2FjaGUgb3IgYmVpbmcgYWRkZWQgdG8gdGhlIFBhZ2VDYWNoZS4KKyAgICAvLyBQcmV2ZW50IG5l
dyBsb2FkcyBpZiB3ZSBhcmUgaW4gdGhlIEJhY2tGb3J3YXJkQ2FjaGUgb3IgYmVpbmcgYWRkZWQg
dG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgLy8gV2UgcXVlcnkgdGhlIHRvcCBkb2N1bWVu
dCBiZWNhdXNlIG5ldyBmcmFtZXMgbWF5IGJlIGNyZWF0ZWQgaW4gcGFnZWhpZGUgZXZlbnQgaGFu
ZGxlcnMKLSAgICAvLyBhbmQgdGhlaXIgcGFnZUNhY2hlU3RhdGUgd2lsbCBub3QgcmVmbGVjdCB0
aGUgZmFjdCB0aGF0IHRoZXkgYXJlIGFib3V0IHRvIGVudGVyIHBhZ2UKKyAgICAvLyBhbmQgdGhl
aXIgYmFja0ZvcndhcmRDYWNoZVN0YXRlIHdpbGwgbm90IHJlZmxlY3QgdGhlIGZhY3QgdGhhdCB0
aGV5IGFyZSBhYm91dCB0byBlbnRlciBwYWdlCiAgICAgLy8gY2FjaGUuCiAgICAgaWYgKGF1dG8q
IHRvcERvY3VtZW50ID0gZnJhbWUubWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkgewotICAgICAgICBz
d2l0Y2ggKHRvcERvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAgIGNhc2UgRG9j
dW1lbnQ6Ok5vdEluUGFnZUNhY2hlOgorICAgICAgICBzd2l0Y2ggKHRvcERvY3VtZW50LT5iYWNr
Rm9yd2FyZENhY2hlU3RhdGUoKSkgeworICAgICAgICBjYXNlIERvY3VtZW50OjpOb3RJbkJhY2tG
b3J3YXJkQ2FjaGU6CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEb2N1bWVudDo6
QWJvdXRUb0VudGVyUGFnZUNhY2hlOgorICAgICAgICBjYXNlIERvY3VtZW50OjpBYm91dFRvRW50
ZXJCYWNrRm9yd2FyZENhY2hlOgogICAgICAgICAgICAgLy8gQmVhY29ucyBhcmUgYWxsb3dlZCB0
byBnbyB0aHJvdWdoIGluICdwYWdlaGlkZScgZXZlbnQgaGFuZGxlcnMuCiAgICAgICAgICAgICBp
ZiAoc2hvdWxkVXNlUGluZ0xvYWQodHlwZSgpKSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFib3V0IHRvIGVudGVyIHBh
Z2UgY2FjaGUgKGZyYW1lID0gJXApIiwgJmZyYW1lKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImxvYWQ6IEFib3V0IHRvIGVudGVyIGJhY2svZm9yd2FyZCBjYWNoZSAoZnJh
bWUgPSAlcCkiLCAmZnJhbWUpOwogICAgICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CiAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgRG9jdW1lbnQ6OkluUGFnZUNhY2hlOgot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibG9hZDogQWxyZWFkeSBpbiBwYWdl
IGNhY2hlIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CisgICAgICAgIGNhc2UgRG9jdW1lbnQ6Oklu
QmFja0ZvcndhcmRDYWNoZToKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxv
YWQ6IEFscmVhZHkgaW4gYmFjay9mb3J3YXJkIGNhY2hlIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7
CiAgICAgICAgICAgICBmYWlsQmVmb3JlU3RhcnRpbmcoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDRjNTcxZWJmMzg1OTNk
M2ZiODhkZTEwYmE3MDk3YTc3N2IwYWJkNDAuLjBiNmI2MGMxZDVjYTAwNjFjNWJjOGUzZWYwOWU4
Y2FlZjZlNTk4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTU1OCwyNSArNTU4
LDI1IEBAIHZvaWQgRE9NV2luZG93OjpyZXNldFVubGVzc1N1c3BlbmRlZEZvckRvY3VtZW50U3Vz
cGVuc2lvbigpCiAgICAgd2lsbERlc3Ryb3lEb2N1bWVudEluRnJhbWUoKTsKIH0KIAotdm9pZCBE
T01XaW5kb3c6OnN1c3BlbmRGb3JQYWdlQ2FjaGUoKQordm9pZCBET01XaW5kb3c6OnN1c3BlbmRG
b3JCYWNrRm9yd2FyZENhY2hlKCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBpc1N1c3BlbmRp
bmdPYnNlcnZlcnMobV9pc1N1c3BlbmRpbmdPYnNlcnZlcnMsIHRydWUpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKGZyYW1lKCkpOwogCiAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3Rv
cihtX29ic2VydmVycykpIHsKICAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2Vy
dmVyKSkKLSAgICAgICAgICAgIG9ic2VydmVyLT5zdXNwZW5kRm9yUGFnZUNhY2hlKCk7CisgICAg
ICAgICAgICBvYnNlcnZlci0+c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB9CiAg
ICAgUkVMRUFTRV9BU1NFUlQoZnJhbWUoKSk7CiAKICAgICBtX3N1c3BlbmRlZEZvckRvY3VtZW50
U3VzcGVuc2lvbiA9IHRydWU7CiB9CiAKLXZvaWQgRE9NV2luZG93OjpyZXN1bWVGcm9tUGFnZUNh
Y2hlKCkKK3ZvaWQgRE9NV2luZG93OjpyZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAg
ICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycykpIHsKICAg
ICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkKLSAgICAgICAgICAgIG9i
c2VydmVyLT5yZXN1bWVGcm9tUGFnZUNhY2hlKCk7CisgICAgICAgICAgICBvYnNlcnZlci0+cmVz
dW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB9CiAKICAgICBtX3N1c3BlbmRlZEZvckRv
Y3VtZW50U3VzcGVuc2lvbiA9IGZhbHNlOwpAQCAtMjA1Nyw3ICsyMDU3LDcgQEAgdm9pZCBET01X
aW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYgKCEtLW1fc2Nyb2xsRXZlbnRM
aXN0ZW5lckNvdW50ICYmIGRvY3VtZW50ID09ICZkb2N1bWVudC0+dG9wRG9jdW1lbnQoKSkgewog
ICAgICAgICBGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpOwotICAgICAgICBpZiAoZnJhbWUg
JiYgZnJhbWUtPnBhZ2UoKSAmJiBkb2N1bWVudC0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVu
dDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpICYm
IGRvY3VtZW50LT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNr
Rm9yd2FyZENhY2hlKQogICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50
KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKCpmcmFtZSwgZmFsc2UpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDBkYTRmYjAzYjAyNjFjMDhjODc2M2I4YzhlMzVk
NWE3ZDA3NjM4NGUuLmQzNjgyMGFlM2VhYmYzNWM3YmE2OGM3MWVkNDlkZGU1YjJhYjUyYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMTIzLDggKzEyMyw4IEBAIHB1YmxpYzoKICAgICBw
dWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CiAKLSAgICAgICAgdmlydHVh
bCB2b2lkIHN1c3BlbmRGb3JQYWdlQ2FjaGUoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHJl
c3VtZUZyb21QYWdlQ2FjaGUoKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRGb3JC
YWNrRm9yd2FyZENhY2hlKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGcm9tQmFj
a0ZvcndhcmRDYWNoZSgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lHbG9i
YWxPYmplY3RJbkNhY2hlZEZyYW1lKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUdsb2JhbE9iamVjdEluRnJhbWUoKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxE
ZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKSB7IH0KQEAgLTEzNCw4ICsxMzQsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAgIHZvaWQg
cmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JEb2N1bWVudFN1c3BlbnNpb24oKTsKLSAgICB2b2lkIHN1
c3BlbmRGb3JQYWdlQ2FjaGUoKTsKLSAgICB2b2lkIHJlc3VtZUZyb21QYWdlQ2FjaGUoKTsKKyAg
ICB2b2lkIHN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgdm9pZCByZXN1bWVGcm9t
QmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIGZyYW1lKCkg
Y29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmNw
cAppbmRleCAyYjdiOGMzMmFlY2UwZDNhNDc4ZjdmMDNhZDEwMmIxZmJmOTk2ODc2Li41YzgyZTYw
N2I0NWJiMTUzYjhiMDJmZTgyMGU5YTk5OGViZjUzNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3dFeHRlbnNpb24uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIEZyYW1lKiBET01XaW5k
b3dFeHRlbnNpb246OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV93aW5kb3cgPyBtX3dpbmRv
dy0+ZnJhbWUoKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQgRE9NV2luZG93RXh0ZW5zaW9uOjpzdXNw
ZW5kRm9yUGFnZUNhY2hlKCkKK3ZvaWQgRE9NV2luZG93RXh0ZW5zaW9uOjpzdXNwZW5kRm9yQmFj
a0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgLy8gQ2FsbGluZyBvdXQgdG8gdGhlIGNsaWVudCBtaWdo
dCByZXN1bHQgaW4gdGhpcyBET01XaW5kb3dFeHRlbnNpb24gYmVpbmcgZGVzdHJveWVkCiAgICAg
Ly8gd2hpbGUgdGhlcmUgaXMgc3RpbGwgd29yayB0byBkby4KQEAgLTY5LDcgKzY5LDcgQEAgdm9p
ZCBET01XaW5kb3dFeHRlbnNpb246OnN1c3BlbmRGb3JQYWdlQ2FjaGUoKQogICAgIG1fZGlzY29u
bmVjdGVkRnJhbWUgPSBXVEZNb3ZlKGZyYW1lKTsKIH0KIAotdm9pZCBET01XaW5kb3dFeHRlbnNp
b246OnJlc3VtZUZyb21QYWdlQ2FjaGUoKQordm9pZCBET01XaW5kb3dFeHRlbnNpb246OnJlc3Vt
ZUZyb21CYWNrRm9yd2FyZENhY2hlKCkKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgQVNT
RVJUKG1fZGlzY29ubmVjdGVkRnJhbWUgPT0gZnJhbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3dFeHRlbnNpb24uaAppbmRleCA0ODBkOThlZTE3MDM4NTM1NGU4MjhhN2E4ZDM2MzY0
MjU3YjAzNjJmLi45NGVkNmNhZWRjM2E0ZjdjNTQ3Y2ZhNjgzOWM2YmI1MzcxMWQ0YTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmgKQEAgLTQ0LDggKzQ0LDggQEAg
cHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkRPTVdpbmRvd0V4dGVuc2lvbigpOwogCi0g
ICAgdm9pZCBzdXNwZW5kRm9yUGFnZUNhY2hlKCkgZmluYWw7Ci0gICAgdm9pZCByZXN1bWVGcm9t
UGFnZUNhY2hlKCkgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSgp
IGZpbmFsOworICAgIHZvaWQgcmVzdW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbDsKICAg
ICB2b2lkIHdpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5DYWNoZWRGcmFtZSgpIGZpbmFsOwogICAg
IHZvaWQgd2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkgZmluYWw7CiAgICAgdm9pZCB3
aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKaW5kZXggYjllNjE4NjQ4OWQ0OGZhZGZj
YjkzNDViMjJkZjEwNzJhMWI1NjVhOS4uOThiZDBjNzhjZDAwNmNkOWU4NjYwOTZhYjJkOTg3MGQ0
NGI1NTNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0tleXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
LmNwcApAQCAtMjA4LDE0ICsyMDgsMTQgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
bm90SW5NZW1vcnlDYWNoZUtleSgpCiAgICAgcmV0dXJuICJub3RJbk1lbW9yeUNhY2hlIl9zOwog
fQogCi1TdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXkoKQorU3RyaW5n
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpCiB7Ci0gICAgcmV0
dXJuICJwYWdlQ2FjaGUiX3M7CisgICAgcmV0dXJuICJiYWNrRm9yd2FyZENhY2hlIl9zOwogfQog
Ci1TdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVGYWlsdXJlS2V5KCkKK1N0
cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmJhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlS2V5KCkK
IHsKLSAgICByZXR1cm4gInBhZ2VDYWNoZUZhaWx1cmUiX3M7CisgICAgcmV0dXJuICJiYWNrRm9y
d2FyZENhY2hlRmFpbHVyZSJfczsKIH0KIAogU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
bm9Eb2N1bWVudExvYWRlcktleSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rp
YWdub3N0aWNMb2dnaW5nS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9n
Z2luZ0tleXMuaAppbmRleCBkNDU5YzRkMjRmMzE0MTVlMjZkOThlNGRlNTgwMDQ1YmY2NWVjYWZi
Li45NzJhMGRmYjM0NTgxYWEwYTlkZmI2YWIyOTI1YTQ1Y2IwOWI1Y2I2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTExNCw4ICsxMTQsOCBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBub3RJbk1lbW9yeUNhY2hlS2V5KCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBvY2N1cnJlZEtleSgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBTdHJpbmcgb3RoZXJLZXkoKTsKLSAgICBzdGF0aWMgU3RyaW5nIHBhZ2VDYWNo
ZUtleSgpOwotICAgIHN0YXRpYyBTdHJpbmcgcGFnZUNhY2hlRmFpbHVyZUtleSgpOworICAgIHN0
YXRpYyBTdHJpbmcgYmFja0ZvcndhcmRDYWNoZUtleSgpOworICAgIHN0YXRpYyBTdHJpbmcgYmFj
a0ZvcndhcmRDYWNoZUZhaWx1cmVLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHBhZ2VDb250YWlu
c0F0TGVhc3RPbmVNZWRpYUVuZ2luZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcGFnZUNvbnRh
aW5zQXRMZWFzdE9uZVBsdWdpbktleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcGFnZUNvbnRhaW5z
TWVkaWFFbmdpbmVLZXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRT
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKaW5kZXggNzE0
ZTlkYzA4YjIxNTYyNjE3OTgxMWYzMmE5M2U1M2Y3NjZjM2U4Zi4uZjFmNWIzMmIwNjY3NzAzZjIx
MzQzYWZjOGY1Mjc1NzQ2MWFlZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAK
QEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpzY2hlZHVsZUluaXRpYWxDb25u
ZWN0KCkKIAogdm9pZCBFdmVudFNvdXJjZTo6c2NoZWR1bGVSZWNvbm5lY3QoKQogewotICAgIFJF
TEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JQ
YWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
IW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKICAgICBtX3N0YXRlID0gQ09OTkVD
VElORzsKICAgICBtX2Nvbm5lY3RUaW1lci5zdGFydE9uZVNob3QoMV9tcyAqIG1fcmVjb25uZWN0
RGVsYXkpOwogICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOwpAQCAtMTk5LDcgKzE5OSw3IEBAIHZv
aWQgRXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gQ09OTkVDVElO
Ryk7CiAgICAgQVNTRVJUKG1fcmVxdWVzdEluRmxpZ2h0KTsKLSAgICBSRUxFQVNFX0FTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2lzU3VzcGVuZGVkRm9yUGFnZUNhY2hlKTsKKyAg
ICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2lzU3VzcGVuZGVk
Rm9yQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBpZiAoIXJlc3BvbnNlSXNWYWxpZChyZXNwb25z
ZSkpIHsKICAgICAgICAgZG9FeHBsaWNpdExvYWRDYW5jZWxsYXRpb24oKTsKQEAgLTIyMSw3ICsy
MjEsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRh
LCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IE9QRU4pOwogICAgIEFTU0VS
VChtX3JlcXVlc3RJbkZsaWdodCk7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSk7CisgICAgUkVMRUFTRV9BU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJk
Q2FjaGUpOwogCiAgICAgYXBwZW5kKG1fcmVjZWl2ZUJ1ZmZlciwgbV9kZWNvZGVyLT5kZWNvZGUo
ZGF0YSwgbGVuZ3RoKSk7CiAgICAgcGFyc2VFdmVudFN0cmVhbSgpOwpAQCAtMjMxLDcgKzIzMSw3
IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZykKIHsK
ICAgICBBU1NFUlQobV9zdGF0ZSA9PSBPUEVOKTsKICAgICBBU1NFUlQobV9yZXF1ZXN0SW5GbGln
aHQpOwotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNT
dXNwZW5kZWRGb3JQYWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGFw
cGVuZChtX3JlY2VpdmVCdWZmZXIsIG1fZGVjb2Rlci0+Zmx1c2goKSk7CiAgICAgcGFyc2VFdmVu
dFN0cmVhbSgpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZEZhaWwo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgQVNTRVJUKG1fcmVxdWVzdEluRmxpZ2h0
KTsKIAogICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgdGhlIGxvYWQgZ2V0cyBjYW5jZWxs
ZWQgb24gbmF2aWdhdGluZyBhd2F5LiBXZSBvbmx5IGZpcmUgYW4gZXJyb3IgZXZlbnQgYW5kIGF0
dGVtcHQgdG8gcmVjb25uZWN0Ci0gICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcgcmVzdW1lZCBm
cm9tIHBhZ2UgY2FjaGUuCisgICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcgcmVzdW1lZCBmcm9t
IGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSAmJiAh
bV9pc0RvaW5nRXhwbGljaXRDYW5jZWxsYXRpb24pIHsKICAgICAgICAgbV9zaG91bGRSZWNvbm5l
Y3RPblJlc3VtZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdEluRmxpZ2h0ID0gZmFsc2U7CkBA
IC0yNzcsNyArMjc3LDcgQEAgdm9pZCBFdmVudFNvdXJjZTo6ZGlkRmFpbChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKIHZvaWQgRXZlbnRTb3VyY2U6OmFib3J0Q29ubmVjdGlvbkF0dGVtcHQo
KQogewogICAgIEFTU0VSVChtX3N0YXRlID09IENPTk5FQ1RJTkcpOwotICAgIFJFTEVBU0VfQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JQYWdlQ2FjaGUp
OworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNw
ZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGlmIChtX3JlcXVlc3RJbkZsaWdodCkK
ICAgICAgICAgZG9FeHBsaWNpdExvYWRDYW5jZWxsYXRpb24oKTsKQEAgLTQxMCwxOSArNDEwLDE5
IEBAIGJvb2wgRXZlbnRTb3VyY2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBj
b25zdAogCiB2b2lkIEV2ZW50U291cmNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVh
c29uKQogewotICAgIGlmIChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hl
KQorICAgIGlmIChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNo
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSA9IHRy
dWU7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFtX3JlcXVlc3RJbkZsaWdodCwg
IkxvYWRzIGdldCBjYW5jZWxsZWQgYmVmb3JlIGVudGVyaW5nIFBhZ2VDYWNoZS4iKTsKKyAgICBt
X2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSA9IHRydWU7CisgICAgUkVMRUFTRV9BU1NF
UlRfV0lUSF9NRVNTQUdFKCFtX3JlcXVlc3RJbkZsaWdodCwgIkxvYWRzIGdldCBjYW5jZWxsZWQg
YmVmb3JlIGVudGVyaW5nIHRoZSBCYWNrRm9yd2FyZENhY2hlLiIpOwogfQogCiB2b2lkIEV2ZW50
U291cmNlOjpyZXN1bWUoKQogewotICAgIGlmICghbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSkK
KyAgICBpZiAoIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX2lzU3VzcGVuZGVkRm9yUGFnZUNhY2hlID0gZmFsc2U7CisgICAgbV9pc1N1
c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKICAgICBpZiAoc3RkOjpleGNoYW5n
ZShtX3Nob3VsZFJlY29ubmVjdE9uUmVzdW1lLCBmYWxzZSkpIHsKICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBl
bmRpbmdBY3Rpdml0eSgqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CiAgICAgICAg
ICAgICBpZiAoIWlzQ29udGV4dFN0b3BwZWQoKSkKQEAgLTQzMyw3ICs0MzMsNyBAQCB2b2lkIEV2
ZW50U291cmNlOjpyZXN1bWUoKQogCiB2b2lkIEV2ZW50U291cmNlOjpkaXNwYXRjaE1lc3NhZ2VF
dmVudCgpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigh
bV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSk7CisgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNV
UklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUpOwogCiAg
ICAgaWYgKCFtX2N1cnJlbnRseVBhcnNlZEV2ZW50SWQuaXNOdWxsKCkpCiAgICAgICAgIG1fbGFz
dEV2ZW50SWQgPSBXVEZNb3ZlKG1fY3VycmVudGx5UGFyc2VkRXZlbnRJZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50U291cmNlLmgKaW5kZXggZDc4MTAxM2U1OWNiNmY4NjVkZGZiNWQ0ZmIwYzM4NTFkMWVk
NzA4ZS4uMzU1OTE0NGY3ZWQyMjlhYWM1MGYwN2E0YjU0YjU3NDhjZWViMzcwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRTb3VyY2UuaApAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPFVDaGFyPiBtX3JlY2VpdmVCdWZmZXI7CiAgICAgYm9vbCBtX2Rpc2NhcmRUcmFpbGluZ05l
d2xpbmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZXF1ZXN0SW5GbGlnaHQgeyBmYWxzZSB9Owot
ICAgIGJvb2wgbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lz
RG9pbmdFeHBsaWNpdENhbmNlbGxhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFJl
Y29ubmVjdE9uUmVzdW1lIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA2NDY2
YTYwMjI2MmVmNjM2N2ZmMWJlM2M2YTk1MzEyMzE1ZmZmNmJiLi42ZjA3N2M0MGJmOTMyNTUyMDIz
YjdjZDI1ZGE1MTk1NzYyM2ExMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5o
IgorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJDU1NBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCkBAIC03Myw3ICs3NCw2IEBACiAjaW5j
bHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlByb2Nlc3NXYXJtaW5n
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGFibGVDZWxsLmgiCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBGcmFtZTo6c2V0VmlldyhSZWZQ
dHI8RnJhbWVWaWV3PiYmIHZpZXcpCiAgICAgLy8gUHJlcGFyZSBmb3IgZGVzdHJ1Y3Rpb24gbm93
LCBzbyBhbnkgdW5sb2FkIGV2ZW50IGhhbmRsZXJzIGdldCBydW4gYW5kIHRoZSBET01XaW5kb3cg
aXMKICAgICAvLyBub3RpZmllZC4gSWYgd2Ugd2FpdCB1bnRpbCB0aGUgdmlldyBpcyBkZXN0cm95
ZWQsIHRoZW4gdGhpbmdzIHdvbid0IGJlIGhvb2tlZCB1cCBlbm91Z2ggZm9yCiAgICAgLy8gdGhl
c2UgY2FsbHMgdG8gd29yay4KLSAgICBpZiAoIXZpZXcgJiYgbV9kb2MgJiYgbV9kb2MtPnBhZ2VD
YWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKQorICAgIGlmICghdmlldyAmJiBt
X2RvYyAmJiBtX2RvYy0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluQmFj
a0ZvcndhcmRDYWNoZSkKICAgICAgICAgbV9kb2MtPnByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwog
ICAgIAogICAgIGlmIChtX3ZpZXcpCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBGcmFtZTo6c2V0
RG9jdW1lbnQoUmVmUHRyPERvY3VtZW50PiYmIG5ld0RvY3VtZW50KQogICAgIH0KICNlbmRpZgog
Ci0gICAgaWYgKG1fZG9jICYmIG1fZG9jLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpJ
blBhZ2VDYWNoZSkKKyAgICBpZiAobV9kb2MgJiYgbV9kb2MtPmJhY2tGb3J3YXJkQ2FjaGVTdGF0
ZSgpICE9IERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIG1fZG9jLT5wcmVw
YXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAgIG1fZG9jID0gbmV3RG9jdW1lbnQuY29weVJlZigp
OwpAQCAtNzA2LDcgKzcwNiw3IEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdlKCkKICAgICAv
LyAtIFdoZW4gY2FsbGluZyBGcmFtZTo6c2V0VmlldygpIHdpdGggYSBudWxsIEZyYW1lVmlldyou
IFRoaXMgaXMgYWx3YXlzIGRvbmUgYmVmb3JlIGNhbGxpbmcKICAgICAvLyAgIEZyYW1lOjp3aWxs
RGV0YWNoUGFnZSAodGhpcyBmdW5jdGlvbi4pIEhlbmNlIHRoZSBhc3NlcnRpb24gYmVsb3cuCiAg
ICAgLy8KLSAgICAvLyAtIFdoZW4gYWRkaW5nIGEgZG9jdW1lbnQgdG8gdGhlIHBhZ2UgY2FjaGUs
IHRoZSB0cmVlIGlzIHRvcm4gZG93biBiZWZvcmUgaW5zdGFudGlhdGluZworICAgIC8vIC0gV2hl
biBhZGRpbmcgYSBkb2N1bWVudCB0byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0aGUgdHJlZSBp
cyB0b3JuIGRvd24gYmVmb3JlIGluc3RhbnRpYXRpbmcKICAgICAvLyAgIHRoZSBDYWNoZWRQYWdl
K0NhY2hlZEZyYW1lIG9iamVjdCB0cmVlLgogICAgIEFTU0VSVCghZG9jdW1lbnQoKSB8fCAhZG9j
dW1lbnQoKS0+cmVuZGVyVmlldygpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCBiMGEzZTU2NDgxNjUxNGU0ZDAxMjQ3NjZmNmQ1MzY4Y2ZiZTM5YTc5Li43OGMzZGI0NTNjZDk1
NTlkZTg5NzgxMTc0MTI0Y2IyZTQ4MWU5MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKICNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUg
IkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNTU0FuaW1hdGlvbkNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgpAQCAtNjksNyArNzAsNiBAQAogI2luY2x1
ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJFbWJlZGRlZE9iamVjdC5oIgpAQCAtNTUzLDkgKzU1Myw5IEBAIFJlZjxTY3JvbGxiYXI+IEZy
YW1lVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9u
KQogICAgIHJldHVybiBTY3JvbGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIob3JpZW50YXRpb24pOwog
fQogCi12b2lkIEZyYW1lVmlldzo6ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKQordm9pZCBGcmFt
ZVZpZXc6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7Ci0gICAgLy8gV2hlbiBy
ZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLCB0aGUgbWFpbiBmcmFtZSBzdGF5cyBpbiBwbGFjZSB3
aGlsZSBzdWJmcmFtZXMgZ2V0IHN3YXBwZWQgaW4uCisgICAgLy8gV2hlbiByZXN0b3JpbmcgZnJv
bSBiYWNrL2ZvcndhcmQgY2FjaGUsIHRoZSBtYWluIGZyYW1lIHN0YXlzIGluIHBsYWNlIHdoaWxl
IHN1YmZyYW1lcyBnZXQgc3dhcHBlZCBpbi4KICAgICAvLyBXZSB1cGRhdGUgdGhlIHNjcm9sbGFi
bGUgYXJlYSBzZXQgdG8gZW5zdXJlIHRoYXQgc2Nyb2xsaW5nIGRhdGEgc3RydWN0dXJlcyBnZXQg
aW52YWxpZGF0ZWQuCiAgICAgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoKTsKIH0KQEAgLTYwMSw3
ICs2MDEsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Q29udGVudHNTaXplKGNvbnN0IEludFNpemUm
IHNpemUpCiAKICAgICBpZiAoZnJhbWUoKS5pc01haW5GcmFtZSgpKSB7CiAgICAgICAgIHBhZ2Ut
PnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRpZENoYW5nZURvY3VtZW50U2l6ZSgpOwotICAgICAg
ICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckNvbnRlbnRzU2l6ZUNoYW5nZWQo
KnBhZ2UpOworICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5tYXJrUGFnZXNG
b3JDb250ZW50c1NpemVDaGFuZ2VkKCpwYWdlKTsKICAgICB9CiAgICAgbGF5b3V0Q29udGV4dCgp
LmVuYWJsZVNldE5lZWRzTGF5b3V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA0
MDc4ZWVmN2Y4MzhhY2NhMzgzY2MxZDVlNzdlZDhiNTA4NzQzOTVkLi5lZjUxOTQzMmU0MmRiNTNh
OGM1MTI1MzlhYzNkNzU1ZjM2YTVkMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTU1
NCw3ICs1NTQsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBQYWdlIGFuZCBGcmFtZVZpZXcgYm90aCBz
dG9yZSBhIFBhZ2luYXRpb24gdmFsdWUuIFBhZ2U6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBi
eSBBUEksCiAgICAgLy8gYW5kIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIGlzIHNldCBvbmx5IGJ5
IENTUy4gUGFnZTo6cGFnaW5hdGlvbigpIHdpbGwgYWZmZWN0IGFsbAotICAgIC8vIEZyYW1lVmll
d3MgaW4gdGhlIHBhZ2UgY2FjaGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBvbmx5IGFm
ZmVjdHMgdGhlIGN1cnJlbnQKKyAgICAvLyBGcmFtZVZpZXdzIGluIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBvbmx5IGFmZmVjdHMgdGhlIGN1cnJl
bnQKICAgICAvLyBGcmFtZVZpZXcuIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIHdpbGwgcmV0dXJu
IG1fcGFnaW5hdGlvbiBpZiBpdCBoYXMgYmVlbiBzZXQuIE90aGVyd2lzZSwKICAgICAvLyBpdCB3
aWxsIHJldHVybiBQYWdlOjpwYWdpbmF0aW9uKCkgc2luY2UgY3VycmVudGx5IHRoZXJlIGFyZSBu
byBjYWxsZXJzIHRoYXQgbmVlZCB0bwogICAgIC8vIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3
by4KQEAgLTY0Myw3ICs2NDMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZFBsYWNlQmxv
Y2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgZGlk
UmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICB2b2lkIGRpZFJlc3RvcmVGcm9tQmFja0Zvcndh
cmRDYWNoZSgpOwogCiAgICAgdm9pZCB3aWxsRGVzdHJveVJlbmRlclRyZWUoKTsKICAgICB2b2lk
IGRpZERlc3Ryb3lSZW5kZXJUcmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCAzMjJmNjc5N2I5NDZkMWRjOWNkNThmODI4ODYwZGJh
ZGNiZDcxZjQxLi4xYzllMzE1NWFlNjgxYWQ1MGM0NzJmZjliYzEzZWZjMzRmNjEzMWVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTE0
NSw4ICsxNDUsOCBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCgpCiAgICAg
QVNTRVJUKCF2aWV3KCkuaXNQYWludGluZygpKTsKICAgICBBU1NFUlQoZnJhbWUoKS52aWV3KCkg
PT0gJnZpZXcoKSk7CiAgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7Ci0gICAgQVNTRVJU
KGZyYW1lKCkuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5Q
YWdlQ2FjaGUKLSAgICAgICAgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgp
ID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOworICAgIEFTU0VSVChmcmFtZSgp
LmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJh
Y2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5iYWNrRm9yd2Fy
ZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6QWJvdXRUb0VudGVyQmFja0ZvcndhcmRDYWNoZSk7
CiAgICAgaWYgKCFjYW5QZXJmb3JtTGF5b3V0KCkpIHsKICAgICAgICAgTE9HKExheW91dCwgIiAg
aXMgbm90IGFsbG93ZWQsIGJhaWxpbmciKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzM0LDcgKzMz
NCw3IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6ZGlzYWJsZVNldE5lZWRzTGF5b3V0
KCkKIAogdm9pZCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpzY2hlZHVsZUxheW91dCgpCiB7Ci0g
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhlIHBhZ2UgaXMgbm90IGluIHRoZSBwYWdl
IGNhY2hlLCBidXQgdGhhdCBpcyBjYXVzaW5nCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3Nl
cnQgdGhlIHBhZ2UgaXMgbm90IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGJ1dCB0aGF0IGlz
IGNhdXNpbmcKICAgICAvLyB0b28gbWFueSBmYWxzZSBhc3NlcnRpb25zLiBTZWUgPHJkYXI6Ly9w
cm9ibGVtLzcyMTgxMTg+LgogICAgIEFTU0VSVChmcmFtZSgpLnZpZXcoKSA9PSAmdmlldygpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5jcHAKaW5kZXggMGQ3M2U0YjM0MTY0Zjll
NTdlN2ZjMzA1YTdiZmE3MjZkMDdkYzY4OC4uZTZiNGUwNGViZWZjNWI0ZmE1YTRjNzNmOTVhNzE3
MTYyZTU3YWE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3BwCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTWVtb3J5UmVsZWFzZS5o
IgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRTZWxl
Y3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCkBAIC00Miw3ICs0Myw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VD
YWNoZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVGhy
ZWFkLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgpAQCAtNzcsMTIgKzc3LDEyIEBAIHN0YXRp
YyB2b2lkIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeShNYWludGFpbk1lbW9yeUNhY2hlIG1haW50
YWluTWVtb3J5Q2FjaGUpCiAgICAgSW5saW5lU3R5bGVTaGVldE93bmVyOjpjbGVhckNhY2hlKCk7
CiB9CiAKLXN0YXRpYyB2b2lkIHJlbGVhc2VDcml0aWNhbE1lbW9yeShTeW5jaHJvbm91cyBzeW5j
aHJvbm91cywgTWFpbnRhaW5QYWdlQ2FjaGUgbWFpbnRhaW5QYWdlQ2FjaGUsIE1haW50YWluTWVt
b3J5Q2FjaGUgbWFpbnRhaW5NZW1vcnlDYWNoZSkKK3N0YXRpYyB2b2lkIHJlbGVhc2VDcml0aWNh
bE1lbW9yeShTeW5jaHJvbm91cyBzeW5jaHJvbm91cywgTWFpbnRhaW5CYWNrRm9yd2FyZENhY2hl
IG1haW50YWluQmFja0ZvcndhcmRDYWNoZSwgTWFpbnRhaW5NZW1vcnlDYWNoZSBtYWludGFpbk1l
bW9yeUNhY2hlKQogewogICAgIC8vIFJpZ2h0IG5vdywgdGhlIG9ubHkgcmVhc29uIHdlIGNhbGwg
cmVsZWFzZSBjcml0aWNhbCBtZW1vcnkgd2hpbGUgbm90IHVuZGVyIG1lbW9yeSBwcmVzc3VyZSBp
cyBpZiB0aGUgcHJvY2VzcyBpcyBhYm91dCB0byBiZSBzdXNwZW5kZWQuCi0gICAgaWYgKG1haW50
YWluUGFnZUNhY2hlID09IE1haW50YWluUGFnZUNhY2hlOjpObykgeworICAgIGlmIChtYWludGFp
bkJhY2tGb3J3YXJkQ2FjaGUgPT0gTWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlOjpObykgewogICAg
ICAgICBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFzb24gPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpID8gUHJ1bmluZ1JlYXNvbjo6TWVt
b3J5UHJlc3N1cmUgOiBQcnVuaW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOwotICAgICAgICBQ
YWdlQ2FjaGU6OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIHBydW5pbmdSZWFzb24pOwor
ICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBw
cnVuaW5nUmVhc29uKTsKICAgICB9CiAKICAgICBpZiAobWFpbnRhaW5NZW1vcnlDYWNoZSA9PSBN
YWludGFpbk1lbW9yeUNhY2hlOjpObykgewpAQCAtMTE4LDE0ICsxMTgsMTQgQEAgc3RhdGljIHZv
aWQgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KFN5bmNocm9ub3VzIHN5bmNocm9ub3VzLCBNYWludGFp
blBhZ2VDYWNoZSBtYWkKICAgICB9CiB9CiAKLXZvaWQgcmVsZWFzZU1lbW9yeShDcml0aWNhbCBj
cml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMsIE1haW50YWluUGFnZUNhY2hlIG1haW50
YWluUGFnZUNhY2hlLCBNYWludGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCit2
b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNocm9ub3VzIHN5bmNocm9u
b3VzLCBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgbWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlLCBN
YWludGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCiB7CiAgICAgVHJhY2VTY29w
ZSBzY29wZShNZW1vcnlQcmVzc3VyZUhhbmRsZXJTdGFydCwgTWVtb3J5UHJlc3N1cmVIYW5kbGVy
RW5kLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oY3JpdGljYWwpLCBzdGF0aWNfY2FzdDx1aW50NjRf
dD4oc3luY2hyb25vdXMpKTsKIAogICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNhbDo6WWVzKSB7
CiAgICAgICAgIC8vIFJldHVybiB1bnVzZWQgcGFnZXMgYmFjayB0byB0aGUgT1Mgbm93IGFzIHRo
aXMgd2lsbCBsaWtlbHkgZ2l2ZSB1cyBhIGxpdHRsZSBtZW1vcnkgdG8gd29yayB3aXRoLgogICAg
ICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwotICAgICAgICByZWxlYXNl
Q3JpdGljYWxNZW1vcnkoc3luY2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hlLCBtYWludGFpbk1l
bW9yeUNhY2hlKTsKKyAgICAgICAgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KHN5bmNocm9ub3VzLCBt
YWludGFpbkJhY2tGb3J3YXJkQ2FjaGUsIG1haW50YWluTWVtb3J5Q2FjaGUpOwogICAgIH0KIAog
ICAgIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeShtYWludGFpbk1lbW9yeUNhY2hlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKaW5kZXggM2UwNmIzMDQ5Mzc5ZDE2YzA4OGIxZTg3N2Yw
NmQ0ZjMxYmY5NjVhMi4uNmU1ZWJkODg1YzRjNjA3MzI0MjJkZWE3MGI5MWNlYzI0MjQxMGEyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKQEAgLTI5LDEwICsyOSwxMCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgTWFpbnRhaW5QYWdlQ2FjaGUgOiBib29s
IHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgOiBib29s
IHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBNYWludGFpbk1lbW9yeUNhY2hlIDogYm9vbCB7IE5v
LCBZZXMgfTsKIAotV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNlTWVtb3J5KENyaXRpY2FsLCBT
eW5jaHJvbm91cywgTWFpbnRhaW5QYWdlQ2FjaGUgPSBNYWludGFpblBhZ2VDYWNoZTo6Tm8sIE1h
aW50YWluTWVtb3J5Q2FjaGUgPSBNYWludGFpbk1lbW9yeUNhY2hlOjpObyk7CitXRUJDT1JFX0VY
UE9SVCB2b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwsIFN5bmNocm9ub3VzLCBNYWludGFpbkJh
Y2tGb3J3YXJkQ2FjaGUgPSBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6Ok5vLCBNYWludGFpbk1l
bW9yeUNhY2hlID0gTWFpbnRhaW5NZW1vcnlDYWNoZTo6Tm8pOwogdm9pZCBwbGF0Zm9ybVJlbGVh
c2VNZW1vcnkoQ3JpdGljYWwpOwogdm9pZCBqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExl
dmVsTmF2aWdhdGlvbigpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3Rlck1lbW9yeVJlbGVh
c2VOb3RpZnlDYWxsYmFja3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDYzY2I1ZmY2NGQ4NWVi
M2U1YzUxZTc5NDA1MTk1MjU4MmYyZDA1MTQuLjNmMTQ2N2JlMWMwYWVkMjEyNWIzNzc3NWIwYmE1
NTY0NTNhN2VlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1
ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25TdGF0
ZUNoYW5nZUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgi
CisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ1NT
QW5pbWF0aW9uQ29udHJvbGxlci5oIgpAQCAtNzMsNyArNzQsNiBAQAogI2luY2x1ZGUgIkxvd1Bv
d2VyTW9kZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAj
aW5jbHVkZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAi
UGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIlBhZ2VEZWJ1Z2dhYmxlLmgiCkBAIC0zNTksNyArMzU5LDcgQEAgUGFnZTo6flBhZ2Uo
KQogCiAgICAgYmFja0ZvcndhcmQoKS5jbG9zZSgpOwogICAgIGlmICghaXNVdGlsaXR5UGFnZSgp
KQotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZUFsbEl0ZW1zRm9yUGFnZSgq
dGhpcyk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZUFsbEl0
ZW1zRm9yUGFnZSgqdGhpcyk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgcGFnZUNvdW50ZXIuZGVj
cmVtZW50KCk7CkBAIC0xMDcxLDcgKzEwNzEsNyBAQCB2b2lkIFBhZ2U6OnNldFZpZXdTY2FsZUZh
Y3RvcihmbG9hdCBzY2FsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV92aWV3U2NhbGVGYWN0
b3IgPSBzY2FsZTsKLSAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckRldmlj
ZU9yUGFnZVNjYWxlQ2hhbmdlZCgqdGhpcyk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xl
dG9uKCkubWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlzKTsKIH0KIAog
dm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKQEAgLTEw
ODcsNyArMTA4Nyw3IEBAIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2Nh
bGVGYWN0b3IpCiAgICAgc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiAKICAgICBt
YWluRnJhbWUoKS5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSAgICBQYWdlQ2Fj
aGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCgqdGhp
cyk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yRGV2aWNl
T3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlzKTsKIAogICAgIHBhZ2VPdmVybGF5Q29udHJvbGxlcigp
LmRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDk5YTVl
ZWI1ZjRhZjQyOGU4MjQyZTBmMTY3MzkxODk2ZmMzMjFlMDUuLjgzMWYwYTA3YzBmNjRiZDczODlh
N2QxNTM0ZDQxZjQ5YTFlYzcwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC00MTMsNyArNDEzLDcgQEAg
cHVibGljOgogCiAgICAgLy8gUGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3RvcmUgYSBQYWdpbmF0
aW9uIHZhbHVlLiBQYWdlOjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkgQVBJLAogICAgIC8v
IGFuZCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBDU1MuIFBhZ2U6OnBh
Z2luYXRpb24oKSB3aWxsIGFmZmVjdCBhbGwKLSAgICAvLyBGcmFtZVZpZXdzIGluIHRoZSBwYWdl
IGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3RzIHRoZSBjdXJy
ZW50CisgICAgLy8gRnJhbWVWaWV3cyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCBidXQgRnJh
bWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3RzIHRoZSBjdXJyZW50CiAgICAgLy8gRnJh
bWVWaWV3LgogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24oKSBjb25zdCB7IHJldHVy
biBtX3BhZ2luYXRpb247IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBhZ2luYXRpb24o
Y29uc3QgUGFnaW5hdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IDY0YTNk
Mzc4MGI0MjgxZWViYTg5M2FjZTM1N2ZiZWM1OTM5MGM3OTAuLjQ3NGIwMjk1MDcxNGM0MWMyNmVm
YTk1MmY2ZTE2MjMyZDkwMDdmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKQEAgLTI2
LDExICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5o
IgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkRPTVdyYXBwZXJX
b3JsZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5h
bWVzcGFjZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMTA2LDcgKzEwNiw3
IEBAIHZvaWQgUGFnZUdyb3VwOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKIHsKICAgICBm
b3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VzKQogICAgICAgICBwYWdlLT5jYXB0aW9uUHJlZmVyZW5j
ZXNDaGFuZ2VkKCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5tYXJrUGFnZXNGb3JDYXB0
aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9u
KCkubWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwogfQogCiBDYXB0aW9u
VXNlclByZWZlcmVuY2VzJiBQYWdlR3JvdXA6OmNhcHRpb25QcmVmZXJlbmNlcygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKaW5kZXggYjkwNGMyM2VkYmVhYzc0
MTJmMDliMGMzM2I1OWNhMWZjYjI3MDE3ZC4uMzZlMzhkNDc5MTdlM2YyY2RiOWRkYThjMDBiYjJk
NTJhZDRiNjMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxv
Z2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBlcmZv
cm1hbmNlTG9nZ2luZy5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1
ZGUgIkNvbW1vblZNLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKQEAgLTM1LDcgKzM2LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTksOCArNTksOCBAQCBIYXNoTWFwPGNvbnN0
IGNoYXIqLCBzaXplX3Q+IFBlcmZvcm1hbmNlTG9nZ2luZzo6bWVtb3J5VXNhZ2VTdGF0aXN0aWNz
KFNob3VsZEluYwogICAgIHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19oZWFwX2NhcGFjaXR5Iiwg
dm0uaGVhcC5jYXBhY2l0eSgpKTsKICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRfZ2NfaGVhcF9l
eHRyYV9tZW1vcnlfc2l6ZSIsIHZtLmhlYXAuZXh0cmFNZW1vcnlTaXplKCkpOwogCi0gICAgYXV0
byYgcGFnZUNhY2hlID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKTsKLSAgICBzdGF0cy5hZGQoInBh
Z2VjYWNoZV9wYWdlX2NvdW50IiwgcGFnZUNhY2hlLnBhZ2VDb3VudCgpKTsKKyAgICBhdXRvJiBi
YWNrRm9yd2FyZENhY2hlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCk7CisgICAgc3Rh
dHMuYWRkKCJiYWNrZm9yd2FyZF9jYWNoZV9wYWdlX2NvdW50IiwgYmFja0ZvcndhcmRDYWNoZS5w
YWdlQ291bnQoKSk7CiAKICAgICBzdGF0cy5hZGQoImRvY3VtZW50X2NvdW50IiwgRG9jdW1lbnQ6
OmFsbERvY3VtZW50cygpLnNpemUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRl
eCA0N2YwZWQ2YThlZjA4NTVmYTVhNTQyNDQ4YTEzYjIzNjMzOTI0NTBjLi41MGI1ZjM2ZmEwZWQ2
N2E0MjRiMDExMzU2YTkwNWNhZTQwNzIzN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1s
CkBAIC0xNzcsNyArMTc3LDcgQEAgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQ6CiAg
IGluaXRpYWw6IGZhbHNlCiBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0OgogICBpbml0aWFs
OiB0cnVlCi1wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM6CitiYWNrRm9yd2FyZENhY2hlU3VwcG9y
dHNQbHVnaW5zOgogICBpbml0aWFsOiBmYWxzZQogc2hvd3NVUkxzSW5Ub29sVGlwczoKICAgaW5p
dGlhbDogZmFsc2UKQEAgLTcxNiw5ICs3MTYsOSBAQCBwbHVnaW5zRW5hYmxlZDoKICAgZ2V0dGVy
OiBhcmVQbHVnaW5zRW5hYmxlZAogICBvbkNoYW5nZTogcGx1Z2luc0VuYWJsZWRDaGFuZ2VkCiAK
LXVzZXNQYWdlQ2FjaGU6Cit1c2VzQmFja0ZvcndhcmRDYWNoZToKICAgaW5pdGlhbDogZmFsc2UK
LSAgb25DaGFuZ2U6IHVzZXNQYWdlQ2FjaGVDaGFuZ2VkCisgIG9uQ2hhbmdlOiB1c2VzQmFja0Zv
cndhcmRDYWNoZUNoYW5nZWQKIAogZG5zUHJlZmV0Y2hpbmdFbmFibGVkOgogICBpbml0aWFsOiBm
YWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCmluZGV4IDI3ZWVhNmMwYWI5Mzhl
YmM4Zjk2NWRhY2I4MjAzMTE0NDMxNjBiOWEuLmM5ODk5YWRlZjA5M2ZiNGYxYzE1MDg3Y2RjZjdh
MmEzZGJiNGYwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKQEAgLTI3LDYg
KzI3LDcgQEAKICNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKIAogI2luY2x1ZGUgIkF1ZGlvU2Vz
c2lvbi5oIgorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9y
d2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIkNvb2tpZVN0b3JhZ2UuaCIKQEAgLTQwLDcgKzQxLDYgQEAKICNpbmNsdWRlICJGcmFt
ZVZpZXcuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNp
bmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRl
ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAt
MzYyLDEzICszNjIsMTMgQEAgdm9pZCBTZXR0aW5nc0Jhc2U6OnVzZXJTdHlsZVNoZWV0TG9jYXRp
b25DaGFuZ2VkKCkKICAgICAgICAgbV9wYWdlLT51c2VyU3R5bGVTaGVldExvY2F0aW9uQ2hhbmdl
ZCgpOwogfQogCi12b2lkIFNldHRpbmdzQmFzZTo6dXNlc1BhZ2VDYWNoZUNoYW5nZWQoKQordm9p
ZCBTZXR0aW5nc0Jhc2U6OnVzZXNCYWNrRm9yd2FyZENhY2hlQ2hhbmdlZCgpCiB7CiAgICAgaWYg
KCFtX3BhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9wYWdlLT5zZXR0aW5ncygp
LnVzZXNQYWdlQ2FjaGUoKSkKLSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRv
U2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25lKTsKKyAgICBpZiAoIW1fcGFnZS0+c2V0dGlu
Z3MoKS51c2VzQmFja0ZvcndhcmRDYWNoZSgpKQorICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpz
aW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25lKTsKIH0KIAog
dm9pZCBTZXR0aW5nc0Jhc2U6OmRuc1ByZWZldGNoaW5nRW5hYmxlZENoYW5nZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3NCYXNlLmgKaW5kZXggYjg1MDFjYjcxYTk0YzFhYTA3YmYxYTEyZmJmNTkz
NTE3MzZkZGIwZi4uMWQ5ODNhMjBhNzY2NDkzYTk5Njk4OWNlMGNmODBiZmE5Mjc1NjYxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCkBAIC0xODUsNyArMTg1LDcgQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgaW1hZ2VzRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIHBsdWdpbnNFbmFi
bGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgdXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQoKTsK
LSAgICB2b2lkIHVzZXNQYWdlQ2FjaGVDaGFuZ2VkKCk7CisgICAgdm9pZCB1c2VzQmFja0Zvcndh
cmRDYWNoZUNoYW5nZWQoKTsKICAgICB2b2lkIGRuc1ByZWZldGNoaW5nRW5hYmxlZENoYW5nZWQo
KTsKICAgICB2b2lkIHN0b3JhZ2VCbG9ja2luZ1BvbGljeUNoYW5nZWQoKTsKICAgICB2b2lkIGJh
Y2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRleCBkZWNhNmMxYzg1N2E2
MjQzNDVkOGQ5ZGYzMzBmZGFjYjg3MzQxNzg0Li4wYTZhZmY5ZDcxYjRjNWM1OGNmOGQ3YjdjZmFk
YTViNWM4N2ViZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25CYXNlLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnNldE5l
ZWRzU3R5bGVSZWNhbGMoRWxlbWVudCogZWxlbWVudCkKICAgICBpZiAoIWVsZW1lbnQgfHwgZWxl
bWVudC0+ZG9jdW1lbnQoKS5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgQVNTRVJUKGVsZW1lbnQtPmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9
PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChlbGVtZW50LT5kb2N1bWVu
dCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJk
Q2FjaGUpOwogICAgIGVsZW1lbnQtPmludmFsaWRhdGVTdHlsZSgpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCmluZGV4IDEzYzMxZjU3NjRiN2IyMjRhMmI3ZWE1NWFlMzNhNmIzOTg2Yjk2ZDIuLmNhODkw
ZTc3YjA5OWQzMGI5ZjFiYWVlZjY2Njk5ZGM0MjNiNTJhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBA
IC0xNTAsNyArMTUwLDcgQEAgT3B0aW9uYWw8U2Vjb25kcz4gQ1NTQW5pbWF0aW9uQ29udHJvbGxl
clByaXZhdGU6OnVwZGF0ZUFuaW1hdGlvbnMoU2V0Q2hhbmdlZCBjYWwKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgRWxlbWVudCYg
ZWxlbWVudCA9ICpjb21wb3NpdGVBbmltYXRpb24ua2V5OwotICAgICAgICAgICAgICAgIEFTU0VS
VChlbGVtZW50LmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5Q
YWdlQ2FjaGUpOworICAgICAgICAgICAgICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50KCkuYmFj
a0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7
CiAgICAgICAgICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGUoKTsKICAgICAgICAgICAg
ICAgICBjYWxsZWRTZXRDaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KQEAgLTI1NCw3ICsy
NTQsNyBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlz
cGF0Y2goRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQQogdm9pZCBDU1NBbmltYXRpb25Db250cm9s
bGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCkK
IHsKICAgICBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoZWxlbWVudCk7Ci0gICAg
QVNTRVJUKG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5wYWdl
Q2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKG1f
ZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5iYWNrRm9yd2FyZENh
Y2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsKICAgICBzdGFy
dFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CiAKQEAgLTYwOSw3ICs2MDksNyBA
QCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXI6OmNhbmNlbEFuaW1hdGlvbnMoRWxlbWVudCYg
ZWxlbWVudCkKIAogICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkucmVuZGVyVHJlZUJlaW5nRGVz
dHJveWVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoZWxlbWVudC5kb2N1bWVudCgp
LnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICBBU1NF
UlQoZWxlbWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlKCk7
CiB9CiAKQEAgLTYxOSw3ICs2MTksNyBAQCBBbmltYXRpb25VcGRhdGUgQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyhFbGVtZW50JiBlbGVtZW50LCBjb25zdAogICAgIGlm
ICghaGFzT3JIYWRBbmltYXRpb25zKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWYgKGVs
ZW1lbnQuZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VD
YWNoZSkKKyAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgp
ICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICAvLyBEb24ndCBydW4gdHJhbnNpdGlvbnMgd2hlbiBwcmludGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAppbmRl
eCAwNDc3YTllN2QwODVlMjc3N2RhZmIyY2IxY2Y5ZDliMzk5ZGM5NzRjLi44MzI1YTU5MTlhZjhk
YTQwODc4Yjk2NDU1YTQ2MTQ2MThhMWU4MzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0yMTIsNyArMjEyLDcgQEAg
Ym9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9tU3Ry
aW5nJiBldmVudFR5cGUsIGRvdWJsZQogICAgICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGV2ZW50
CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnQgPSBtYWtlUmVmUHRyKHRoaXMtPmVsZW1lbnQoKSk7
CiAKLSAgICAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLnBh
Z2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICAgICAgICAg
IEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgICAgICAgICAg
aWYgKCFlbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmluZGV4
IDlhZjVmMDg0YzUwMTM2NjAzZDUyNGIyMGZiYTE2ZjU5NWJiOTc5ZmEuLmY5MWQzYTU1YzVjOWM3
OTg0YTAyNDYxMjgzOTA3NTdjNDFmNDFlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBi
b29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmlu
ZyYgZXZlbnRUeXBlLCBkb3VibGUgZQogICAgICAgICAvLyBEaXNwYXRjaCB0aGUgZXZlbnQKICAg
ICAgICAgYXV0byBlbGVtZW50ID0gbWFrZVJlZlB0cih0aGlzLT5lbGVtZW50KCkpOwogCi0gICAg
ICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRl
KCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICAgICAgQVNTRVJUKCFlbGVtZW50
IHx8IGVsZW1lbnQtPmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1l
bnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgICAgIGlmICghZWxlbWVudCkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA1ZjBhOTc2
M2U3M2UxNTBkZTA5ZmYwMGQ4MGM4YTQ2YjVjMDI0OTNkLi41NGE5MGUwODVmZmJkZjNlNGE5ZTk0
MmNjYzM5NjMxZTM1MWE2NmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ2LDE0ICsy
NDYsMTQgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9z
aXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIWNvb3JkaW5hdGVzU2Ny
b2xsaW5nRm9yRnJhbWVWaWV3KCpmcmFtZVZpZXcpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBib29sIGluUGFnZUNhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCktPnBh
Z2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOworICAgIGJvb2wgaW5C
YWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCktPmJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGU7CiAgICAg
Ym9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxU
eXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwotICAgIGlmIChpblByb2dyYW1tYXRp
Y1Njcm9sbCB8fCBpblBhZ2VDYWNoZSkKKyAgICBpZiAoaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwg
aW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5
bmNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBTY3JvbGxUeXBl
OjpQcm9ncmFtbWF0aWMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiAKLSAg
ICAvLyBJZiB0aGlzIGZyYW1lIHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQgaW50byB0aGUg
cGFnZSBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCisgICAgLy8gSWYgdGhpcyBm
cmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8gdGhlIGJhY2svZm9yd2FyZCBj
YWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCiAgICAgLy8gbWFpbiBmcmFtZSBzY3Jv
bGwgcG9zaXRpb24uIEp1c3QgbGV0IHRoZSBGcmFtZVZpZXcgdGhpbmsgdGhhdCB3ZSBkaWQuCi0g
ICAgaWYgKGluUGFnZUNhY2hlKQorICAgIGlmIChpbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgYXV0byogc3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlPihtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c3RhdGVOb2RlRm9ySUQo
c2Nyb2xsaW5nTm9kZUlEKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW0KaW5kZXggN2Y0ZTRiZjFlZDlhZmIyMzg3NThhZGNiMGJkZDcyNTFl
NmRhNTgxMS4uZjU5MTc2NzJlZWZkZjFmNTIzY2RmNjkyNDZiMjM4NjA0OTRmYjJhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAt
MTE0MSw3ICsxMTQxLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2hvdWxkU2Nyb2xsYmFy
UGFydGljaXBhdGVJbkhpdFRlc3RpbmcoU2Nyb2xsYmFyKiBzY3JvbGwKIAogdm9pZCBTY3JvbGxB
bmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChjb25zdCBGbG9hdFNpemUmIGRl
bHRhKQogewotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBwYWdlIGlzIGdv
aW5nIGludG8gdGhlIHBhZ2UgY2FjaGUsIGJ1dCB0aGUgcGFnZQorICAgIC8vIFRoaXMgZnVuY3Rp
b24gaXMgY2FsbGVkIHdoZW4gYSBwYWdlIGlzIGdvaW5nIGludG8gdGhlIGJhY2svZm9yd2FyZCBj
YWNoZSwgYnV0IHRoZSBwYWdlCiAgICAgLy8gaXNuJ3QgcmVhbGx5IHNjcm9sbGluZyBpbiB0aGF0
IGNhc2UuIFdlIHNob3VsZCBvbmx5IHBhc3MgdGhlIG1lc3NhZ2Ugb24gdG8gdGhlCiAgICAgLy8g
U2Nyb2xsZXJJbXBQYWlyIHdoZW4gd2UncmUgcmVhbGx5IHNjcm9sbGluZyBvbiBhbiBhY3RpdmUg
cGFnZS4KICAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNM
b2NrZWRdKQpAQCAtMTQxOCw3ICsxNDE4LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6dXBk
YXRlU2Nyb2xsZXJTdHlsZSgpCiAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXItPnNldEZyYW1l
UmVjdChJbnRSZWN0KDAsIDAsIHRoaWNrbmVzcywgdGhpY2tuZXNzKSk7CiAgICAgfQogCi0gICAg
Ly8gSWYgbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGUgaXMgdHJ1ZSwgdGhlbiB0aGUgcGFnZSBp
cyByZXN0b3JpbmcgZnJvbSB0aGUgcGFnZSBjYWNoZSwgYW5kIAorICAgIC8vIElmIG1fbmVlZHNT
Y3JvbGxlclN0eWxlVXBkYXRlIGlzIHRydWUsIHRoZW4gdGhlIHBhZ2UgaXMgcmVzdG9yaW5nIGZy
b20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYW5kCiAgICAgLy8gYSByZWxheW91dCB3aWxsIGhh
cHBlbiBvbiBpdHMgb3duLiBPdGhlcndpc2UsIHdlIG11c3QgaW5pdGlhdGUgYSByZS1sYXlvdXQg
b3Vyc2VsdmVzLgogICAgIHNjcm9sbGFibGVBcmVhKCkuc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKG5l
d1N0eWxlID09IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXkgPyBTY3JvbGxiYXJTdHlsZTo6T3Zlcmxh
eSA6IFNjcm9sbGJhclN0eWxlOjpBbHdheXNWaXNpYmxlLCAhbV9uZWVkc1Njcm9sbGVyU3R5bGVV
cGRhdGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IGUwNzg1ZWM0MzM3ODQxZGI4NTgzMGYxODFmYjA4OWY3NTc3ZjU2YzUuLjIx
NGY2MDk1NzdmOGE4ZjBiNTc1ZmQ1MWFhNTRhMzYzNjQ5ZTMxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yNzgwLDggKzI3ODAs
OCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgIGlmICgocGFpbnRzSW50b1dpbmRvdygp
IHx8IHBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSkgJiYgZ3JhcGhpY3NMYXllci0+cGFp
bnRpbmdQaGFzZSgpICE9IE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4oR3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkNoaWxkQ2xpcHBpbmdNYXNrKSkgewogI2lmICFQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiAhT1MoV0lORE9XUykKICAgICAgICAgLy8gRklYTUU6IExvb2tz
IGxpa2UgdGhlIENBTGF5ZXIgdHJlZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBHcmFwaGljc0xh
eWVyIGhlaXJhcmNoeQotICAgICAgICAvLyB3aGVuIHBhZ2VzIGFyZSByZXN0b3JlZCBmcm9tIHRo
ZSBQYWdlQ2FjaGUuCi0gICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS84NzEyNTg3PiBBU1NFUlQ6
IFdoZW4gR29pbmcgQmFjayB0byBQYWdlIHdpdGggUGx1Z2lucyBpbiBQYWdlQ2FjaGUKKyAgICAg
ICAgLy8gd2hlbiBwYWdlcyBhcmUgcmVzdG9yZWQgZnJvbSB0aGUgQmFja0ZvcndhcmRDYWNoZS4K
KyAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzg3MTI1ODc+IEFTU0VSVDogV2hlbiBHb2luZyBC
YWNrIHRvIFBhZ2Ugd2l0aCBQbHVnaW5zIGluIEJhY2tGb3J3YXJkQ2FjaGUKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBjMGRk
MDYwYjVkMzNjOWVkZGZhMzBmN2Q1MzRkYTdkOTc5MzI4YzQ4Li5mZjlmZWJmYWVkMjBjNmYxN2Zj
MWI1OGM1MDdiZTUwNjU0MzM0N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNzE2LDggKzcxNiw4IEBAIGJvb2wgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1Vw
ZGF0ZVR5cGUgdXBkYXRlCiAKICAgICBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIuc3Rv
cCgpOwogCi0gICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRl
KCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlCi0gICAgICAgIHx8IG1fcmVuZGVyVmlldy5k
b2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlclBhZ2VD
YWNoZSk7CisgICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgfHwg
bV9yZW5kZXJWaWV3LmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1l
bnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIAogICAgIC8vIENvbXBvc2l0
aW5nIGxheWVycyB3aWxsIGJlIHVwZGF0ZWQgaW4gRG9jdW1lbnQ6OnNldFZpc3VhbFVwZGF0ZXNB
bGxvd2VkKGJvb2wpIGlmIHN1cHByZXNzZWQgaGVyZS4KICAgICBpZiAoIW1fcmVuZGVyVmlldy5k
b2N1bWVudCgpLnZpc3VhbFVwZGF0ZXNBbGxvd2VkKCkpCkBAIC00NjUyLDcgKzQ2NTIsNyBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6d2lsbFJlbW92ZVNjcm9sbGluZ0xheWVyV2l0aEJh
Y2tpbmcoUmVuZGVyTGF5ZXImIGxheQogICAgICAgICByZXR1cm47CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgIEFTU0VSVChtX3JlbmRlclZpZXcuZG9jdW1lbnQoKS5wYWdlQ2FjaGVT
dGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKG1fcmVuZGVy
Vmlldy5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJ
bkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIGlmIChtX2xlZ2FjeVNjcm9sbGluZ0xheWVyQ29vcmRp
bmF0b3IpCiAgICAgICAgIG1fbGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29yZGluYXRvci0+cmVtb3Zl
U2Nyb2xsaW5nTGF5ZXIobGF5ZXIsIGJhY2tpbmcpOwogI2Vsc2UKQEAgLTQ2NjgsNyArNDY2OCw3
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRBZGRTY3JvbGxpbmdMYXllcihSZW5k
ZXJMYXllciYgbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICBBU1NFUlQobV9yZW5kZXJWaWV3LmRv
Y3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zv
cndhcmRDYWNoZSk7CiAgICAgaWYgKG1fbGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29yZGluYXRvcikK
ICAgICAgICAgbV9sZWdhY3lTY3JvbGxpbmdMYXllckNvb3JkaW5hdG9yLT5hZGRTY3JvbGxpbmdM
YXllcihsYXllcik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDY1MmQ2MDE1MTJkNmVmMDJmZjU4MDkxNTU3MTNmNjc1
ZThkMDc2NGIuLjA3OGY3OWJhZDAyMzg5M2UyMmQxNjI5MzA4YzdmYjQ0YjQ3ZjU5OWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAg
LTE5Myw3ICsxOTMsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgd2hlbiBz
dGF0ZSBjaGFuZ2VzIGFuZCB3ZSBkbyBub3QgZXhlcGVjdCBhIHN0eWxlIHVwZGF0ZSBvciBsYXlv
dXQgdG8gaGFwcGVuIHNvb24gKGUuZy4gd2hlbgogICAgIC8vIHdlIGRpc2NvdmVyIHRoYXQgYW4g
aWZyYW1lIGlzIG92ZXJsYXBwZWQgZHVyaW5nIHBhaW50aW5nKS4KICAgICB2b2lkIHNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllclVwZGF0ZSgpOwotICAgIC8vIFRoaXMgaXMgdXNlZCB0byBjYW5jZWwg
YW55IHBlbmRpbmcgdXBkYXRlIHRpbWVycyB3aGVuIHRoZSBkb2N1bWVudCBnb2VzIGludG8gcGFn
ZSBjYWNoZS4KKyAgICAvLyBUaGlzIGlzIHVzZWQgdG8gY2FuY2VsIGFueSBwZW5kaW5nIHVwZGF0
ZSB0aW1lcnMgd2hlbiB0aGUgZG9jdW1lbnQgZ29lcyBpbnRvIGJhY2svZm9yd2FyZCBjYWNoZS4K
ICAgICB2b2lkIGNhbmNlbENvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsKIAogICAgIC8vIFVwZGF0
ZSB0aGUgY29tcG9zaXRpbmcgc3RhdGUgb2YgdGhlIGdpdmVuIGxheWVyLiBSZXR1cm5zIHRydWUg
aWYgdGhhdCBzdGF0ZSBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCmluZGV4IGNhYWM1Y2RlMGVkODQ3YmRjMjBlNWNhN2E1ZjFlZDgwMTBjNGJmNWYuLjc2ZTI4
ZDdkZjM0Mjk4MTM5YzI4ZDZiZTM3ZDY3M2I3M2YzYjczOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTcyMyw3ICs3MjMsNyBAQCBwdWJsaWM6CiAgICAgICov
CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGxvY2FsQ2FyZXRSZWN0KElubGluZUJveCosIHVuc2ln
bmVkIGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSBudWxs
cHRyKTsKIAotICAgIC8vIFdoZW4gcGVyZm9ybWluZyBhIGdsb2JhbCBkb2N1bWVudCB0ZWFyLWRv
d24sIG9yIHdoZW4gZ29pbmcgaW50byB0aGUgcGFnZSBjYWNoZSwgdGhlIHJlbmRlcmVyIG9mIHRo
ZSBkb2N1bWVudCBpcyBjbGVhcmVkLgorICAgIC8vIFdoZW4gcGVyZm9ybWluZyBhIGdsb2JhbCBk
b2N1bWVudCB0ZWFyLWRvd24sIG9yIHdoZW4gZ29pbmcgaW50byB0aGUgYmFjay9mb3J3YXJkIGNh
Y2hlLCB0aGUgcmVuZGVyZXIgb2YgdGhlIGRvY3VtZW50IGlzIGNsZWFyZWQuCiAgICAgYm9vbCBy
ZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZGVzdHJveSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRDb3Zl
cmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVy
YWdlLmNwcAppbmRleCBhYzEwOWRiYzM0MmY4Yzc3ODZkYWU3ODVjZmZkOTVjNjAwZmZjODJmLi41
NWY1ZmQzNzA3NmI4MjUzY2UxNTk5ZjcwY2FmZTZjY2RhNWQyMjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmNwcApAQCAt
MjY5LDcgKzI2OSw3IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3ROb25FbXB0eUxlYWZSZW5kZXJCbG9j
a0Zsb3dzKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIEhhCiBzdGF0aWMgdm9pZCBjb2xs
ZWN0Tm9uRW1wdHlMZWFmUmVuZGVyQmxvY2tGbG93c0ZvckN1cnJlbnRQYWdlKEhhc2hTZXQ8Y29u
c3QgUmVuZGVyQmxvY2tGbG93Kj4mIGxlYWZSZW5kZXJlcnMpCiB7CiAgICAgZm9yIChjb25zdCBh
dXRvKiBkb2N1bWVudCA6IERvY3VtZW50OjphbGxEb2N1bWVudHMoKSkgewotICAgICAgICBpZiAo
IWRvY3VtZW50LT5yZW5kZXJWaWV3KCkgfHwgZG9jdW1lbnQtPnBhZ2VDYWNoZVN0YXRlKCkgIT0g
RG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgICAgICBpZiAoIWRvY3VtZW50LT5yZW5kZXJW
aWV3KCkgfHwgZG9jdW1lbnQtPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpO
b3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYg
KCFkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQtPmlzWEhUTUxEb2N1bWVu
dCgpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRy
ZWVSZXNvbHZlci5jcHAKaW5kZXggYTAwZjRmZTBmNGNjYjUyZGQ4MzFhOTRlMjZhNTg2NGU1YzFi
NzkyNy4uMDJhMGUzN2UwY2E5M2JlOGY3ZThjZjRkNWM1OWQ5ZWI1YzE2YTUxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtMjk2LDcgKzI5Niw3IEBA
IEVsZW1lbnRVcGRhdGUgVHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUo
c3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0CiAgICAgICAgIC8vIEZpcnN0LCB3ZSBuZWVkIHRvIG1h
a2Ugc3VyZSB0aGF0IGFueSBuZXcgQ1NTIGFuaW1hdGlvbiBvY2N1cmluZyBvbiB0aGlzIGVsZW1l
bnQgaGFzIGEgbWF0Y2hpbmcgV2ViQW5pbWF0aW9uCiAgICAgICAgIC8vIG9uIHRoZSBkb2N1bWVu
dCB0aW1lbGluZS4gTm90ZSB0aGF0IHdlIGdldCB0aW1lbGluZSgpIG9uIHRoZSBEb2N1bWVudCBo
ZXJlIGJlY2F1c2Ugd2UgbmVlZCBhIHRpbWVsaW5lIGNyZWF0ZWQKICAgICAgICAgLy8gaW4gY2Fz
ZSBubyBXZWIgQW5pbWF0aW9ucyBoYXZlIGJlZW4gY3JlYXRlZCB0aHJvdWdoIHRoZSBKUyBBUEku
Ci0gICAgICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1
bWVudDo6Tm90SW5QYWdlQ2FjaGUgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkt
PnByaW50aW5nKCkpIHsKKyAgICAgICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5iYWNrRm9yd2Fy
ZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlICYmICFlbGVt
ZW50LmRvY3VtZW50KCkucmVuZGVyVmlldygpLT5wcmludGluZygpKSB7CiAgICAgICAgICAgICBp
ZiAob2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5oYXNUcmFuc2l0aW9ucygpIHx8IG5ld1N0eWxlLT5o
YXNUcmFuc2l0aW9ucygpKSkKICAgICAgICAgICAgICAgICBtX2RvY3VtZW50LnRpbWVsaW5lKCku
dXBkYXRlQ1NTVHJhbnNpdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQsICpvbGRTdHlsZSwgKm5ld1N0
eWxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDhmOGM1YzdkOTI3
YzA3OTYyOWQ2N2VkMTVhYzAyMzg1NTZkNDkyOWEuLjRiYzcxMjBjMDE3MjhiY2Q2MzBkYTc0Yzhl
YzI3MWFlYzM5M2VkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogI2luY2x1
ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkF1dG9maWxsLmgiCisjaW5jbHVkZSAiQmFj
a0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5o
IgpAQCAtMTI3LDcgKzEyOCw2IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFEZXZpY2VzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
LSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5oIgogI2luY2x1
ZGUgIlBhdGhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIK
QEAgLTkyMiwxNCArOTIyLDE0IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRHcmlkTWF4VHJhY2tzTGlt
aXQodW5zaWduZWQgbWF4VHJhY2tMaW1pdCkKICAgICBHcmlkUG9zaXRpb246OnNldE1heFBvc2l0
aW9uRm9yVGVzdGluZyhtYXhUcmFja0xpbWl0KTsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OmNsZWFy
UGFnZUNhY2hlKCkKK3ZvaWQgSW50ZXJuYWxzOjpjbGVhckJhY2tGb3J3YXJkQ2FjaGUoKQogewot
ICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNv
bjo6Tm9uZSk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1NpemVO
b3coMCwgUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7CiB9CiAKLXVuc2lnbmVkIEludGVybmFsczo6cGFn
ZUNhY2hlU2l6ZSgpIGNvbnN0Cit1bnNpZ25lZCBJbnRlcm5hbHM6OmJhY2tGb3J3YXJkQ2FjaGVT
aXplKCkgY29uc3QKIHsKLSAgICByZXR1cm4gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5wYWdlQ291
bnQoKTsKKyAgICByZXR1cm4gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucGFnZUNvdW50
KCk7CiB9CiAKIGNsYXNzIFVuc3VzcGVuZGFibGVBY3RpdmVET01PYmplY3QgZmluYWwgOiBwdWJs
aWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxVbnN1c3BlbmRhYmxlQWN0aXZl
RE9NT2JqZWN0PiB7CkBAIC05NDcsNyArOTQ3LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFy
KiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgeyByZXR1cm4gIlVuc3VzcGVuZGFibGVBY3Rp
dmVET01PYmplY3QiOyB9CiB9OwogCi12b2lkIEludGVybmFsczo6cHJldmVudERvY3VtZW50Rm9y
RW50ZXJpbmdQYWdlQ2FjaGUoKQordm9pZCBJbnRlcm5hbHM6OnByZXZlbnREb2N1bWVudEZvckVu
dGVyaW5nQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgaWYgKGF1dG8qIGNvbnRleHQgPSBjb250
ZXh0RG9jdW1lbnQoKSkKICAgICAgICAgbV91bnN1c3BlbmRhYmxlQWN0aXZlRE9NT2JqZWN0ID0g
VW5zdXNwZW5kYWJsZUFjdGl2ZURPTU9iamVjdDo6Y3JlYXRlKCpjb250ZXh0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGJhMmJiOTc0YTkyY2VmMWFjN2UzNDQ3NmViYjEyZWFl
ZGQ3MDdhODkuLjE5Zjc4OWY5MDMwZjlhMjQ4Njg3ZTk1ZjAxZmRhYWRkZTU4NWRkY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTY5LDkgKzE2OSw5IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0R3JpZE1heFRyYWNrc0xpbWl0KHVuc2lnbmVkKTsKIAotICAgIHZvaWQgY2xl
YXJQYWdlQ2FjaGUoKTsKLSAgICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplKCkgY29uc3Q7Ci0gICAg
dm9pZCBwcmV2ZW50RG9jdW1lbnRGb3JFbnRlcmluZ1BhZ2VDYWNoZSgpOworICAgIHZvaWQgY2xl
YXJCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgdW5zaWduZWQgYmFja0ZvcndhcmRDYWNoZVNpemUo
KSBjb25zdDsKKyAgICB2b2lkIHByZXZlbnREb2N1bWVudEZvckVudGVyaW5nQmFja0ZvcndhcmRD
YWNoZSgpOwogCiAgICAgdm9pZCBkaXNhYmxlVGlsZVNpemVVcGRhdGVEZWxheSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMWVlZTNjOWQzYWUzYjI2ZWU3ZjRhZDEy
NzA5ODU1NmJhZGM2MmVjMy4uMDFkYjI0MmQwYmM5OTQyMDYwMTU2NDY1YmY3NzFkMTQyN2RhMmNk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjA3LDkgKzIwNyw5IEBA
IGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIHZvaWQgc2V0T3ZlcnJpZGVSZXNvdXJjZUxv
YWRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSk7CiAgICAgdm9pZCBzZXRT
dHJpY3RSYXdSZXNvdXJjZVZhbGlkYXRpb25Qb2xpY3lEaXNhYmxlZChib29sZWFuIGRpc2FibGVk
KTsKIAotICAgIHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKLSAgICB1bnNpZ25lZCBsb25nIHBhZ2VD
YWNoZVNpemUoKTsKLSAgICB2b2lkIHByZXZlbnREb2N1bWVudEZvckVudGVyaW5nUGFnZUNhY2hl
KCk7CisgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkQ2FjaGUoKTsKKyAgICB1bnNpZ25lZCBsb25n
IGJhY2tGb3J3YXJkQ2FjaGVTaXplKCk7CisgICAgdm9pZCBwcmV2ZW50RG9jdW1lbnRGb3JFbnRl
cmluZ0JhY2tGb3J3YXJkQ2FjaGUoKTsKIAogICAgIENTU1N0eWxlRGVjbGFyYXRpb24gY29tcHV0
ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEVsZW1lbnQgZWxlbWVudCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDdmMGUwMzVjNWY5NTVlNGUxYTBmNzNhNzli
Nzg4NDcwZGU5NjYyZWIuLjUzYzQ4MDcxYmU5NWRjMTViOGNkODAxNzhjODA3YTkyOGUzMmEzNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTE2Myw4ICsxMTYzLDgg
QEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNv
bikKICAgICAgICAgbV9kaXNwYXRjaEVycm9yT25SZXN1bWluZyA9IHRydWU7CiAgICAgfQogCi0g
ICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUgJiYgbV9sb2Fk
ZXIpIHsKLSAgICAgICAgLy8gR29pbmcgaW50byBQYWdlQ2FjaGUsIGFib3J0IHRoZSByZXF1ZXN0
IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcuCisgICAgaWYgKHJlYXNv
biA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlICYmIG1fbG9hZGVyKSB7
CisgICAgICAgIC8vIEdvaW5nIGludG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUsIGFib3J0IHRoZSBy
ZXF1ZXN0IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcuCiAgICAgICAg
IGdlbmVyaWNFcnJvcigpOwogICAgICAgICBtX2Rpc3BhdGNoRXJyb3JPblJlc3VtaW5nID0gdHJ1
ZTsKICAgICAgICAgYm9vbCBhYm9ydGVkID0gaW50ZXJuYWxBYm9ydCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ2FjaGVNb2RlbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9DYWNoZU1vZGVsLmNwcAppbmRleCBmMDllYzZkOGIyNWVhZTQyZjg1ZDA1Yzc1MDI4ZDEwZGYz
MjY3NjQ2Li45Y2JkNmFiOWFjMTA5NTc2ODZiYWRjMDMyMTdkMWQ2MWUyNDhiMTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcApAQCAtMzMsMTQgKzMzLDE0IEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi12b2lkIGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMoQ2FjaGVNb2RlbCBj
YWNoZU1vZGVsLCB1bnNpZ25lZCYgY2FjaGVUb3RhbENhcGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVN
aW5EZWFkQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1heERlYWRDYXBhY2l0eSwgU2Vjb25kcyYg
ZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwgdW5zaWduZWQmIHBhZ2VDYWNoZUNhcGFj
aXR5KQordm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWwgY2FjaGVNb2Rl
bCwgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWluRGVhZENh
cGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIFNlY29uZHMmIGRlYWREZWNv
ZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsIHVuc2lnbmVkJiBiYWNrRm9yd2FyZENhY2hlQ2FwYWNp
dHkpCiB7CiAgICAgdWludDY0X3QgbWVtb3J5U2l6ZSA9IHJhbVNpemUoKSAvIE1COwogCiAgICAg
c3dpdGNoIChjYWNoZU1vZGVsKSB7CiAgICAgY2FzZSBDYWNoZU1vZGVsOjpEb2N1bWVudFZpZXdl
cjogewotICAgICAgICAvLyBQYWdlIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykKLSAgICAgICAg
cGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAvLyBiYWNrL2ZvcndhcmQgY2FjaGUgY2Fw
YWNpdHkgKGluIHBhZ2VzKQorICAgICAgICBiYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHkgPSAwOwog
CiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKICAgICAgICAg
aWYgKG1lbW9yeVNpemUgPj0gMjA0OCkKQEAgLTYwLDEzICs2MCwxMyBAQCB2b2lkIGNhbGN1bGF0
ZU1lbW9yeUNhY2hlU2l6ZXMoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsLCB1bnNpZ25lZCYgY2FjaGVU
b3RhbENhcGFjaQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDYWNoZU1vZGVsOjpE
b2N1bWVudEJyb3dzZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFn
ZXMpCisgICAgICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAg
ICAgICAgIGlmIChtZW1vcnlTaXplID49IDUxMikKLSAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFj
aXR5ID0gMjsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9IDI7CiAgICAg
ICAgIGVsc2UgaWYgKG1lbW9yeVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlQ2Fw
YWNpdHkgPSAxOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAg
ICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMDsKIAogICAgICAgICAvLyBPYmplY3QgY2Fj
aGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXplID49IDIwNDgp
CkBAIC04NiwxMyArODYsMTMgQEAgdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hl
TW9kZWwgY2FjaGVNb2RlbCwgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2kKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgQ2FjaGVNb2RlbDo6UHJpbWFyeVdlYkJyb3dzZXI6IHsKLSAg
ICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIGJhY2sv
Zm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXpl
ID49IDUxMikKLSAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKKyAgICAgICAgICAg
IGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9IDI7CiAgICAgICAgIGVsc2UgaWYgKG1lbW9yeVNp
emUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAxOworICAgICAgICAg
ICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNh
cGFjaXR5ID0gMDsKIAogICAgICAgICAvLyBPYmplY3QgY2FjaGUgY2FwYWNpdGllcyAoaW4gYnl0
ZXMpCiAgICAgICAgIC8vIChUZXN0aW5nIGluZGljYXRlcyB0aGF0IHZhbHVlIC8gTUIgZGVwZW5k
cyBoZWF2aWx5IG9uIGNvbnRlbnQgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9DYWNoZU1vZGVsLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmgKaW5kZXgg
ZjIzOTUzOGU2NzhlYmRmYzA4MTRlZGM3NmJmODYzZTJmM2MyNTdjYS4uY2Q2NDhiNDdiZjNmNWRm
NDczNDQ3ZWY1MjZlZDU5MDEyMjAwNmE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ2FjaGVNb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhY2hlTW9kZWwuaApA
QCAtMzcsNyArMzcsNyBAQCBlbnVtIGNsYXNzIENhY2hlTW9kZWwgOiB1aW50OF90IHsKICAgICBQ
cmltYXJ5V2ViQnJvd3NlcgogfTsKIAotdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENh
Y2hlTW9kZWwsIHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1p
bkRlYWRDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBTZWNvbmRzJiBk
ZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLCB1bnNpZ25lZCYgcGFnZUNhY2hlQ2FwYWNp
dHkpOwordm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWwsIHVuc2lnbmVk
JiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgdW5z
aWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBTZWNvbmRzJiBkZWFkRGVjb2RlZERhdGFEZWxl
dGlvbkludGVydmFsLCB1bnNpZ25lZCYgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KTsKIHZvaWQg
Y2FsY3VsYXRlVVJMQ2FjaGVTaXplcyhDYWNoZU1vZGVsLCB1aW50NjRfdCBkaXNrRnJlZVNpemUs
IHVuc2lnbmVkJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1aW50NjRfdCYgdXJsQ2FjaGVEaXNr
Q2FwYWNpdHkpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDk3NDYxOGY2ZDI2NTQ5MDYzYzgzODhmY2RhZTJlYjRk
NTY3NjFhMDYuLjc5NmIwZTE5NWY1MzBhMTgxNTI1OGQxY2Q3N2Q0YWY5YWI5MGMxN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTU1LDExICsxNTUsMTEg
QEAgTG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZh
dWx0VmFsdWU6IGZhbHNlCiAKLVVzZXNQYWdlQ2FjaGU6CitVc2VzQmFja0ZvcndhcmRDYWNoZToK
ICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIAotUGFnZUNhY2hlU3VwcG9ydHNQ
bHVnaW5zOgorQmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2luczoKICAgdHlwZTogYm9vbAog
ICBkZWZhdWx0VmFsdWU6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggY2QyMmEyNjc2NDY4ZDE4MjM0YTYwODQyZmU5
ZDkxNjcxYjIwYTg3ZC4uMzhjYzc1MGNiMmM0MTgxYzA4ZTAxNjVkZjM2MGQ3NGM4Mjk3YTk1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVu
dC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNvbHZl
V2ViR0xMb2FkUG9saWN5KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RGOjpVUkwmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGNvbnN0IHsgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6V2ViR0xMb2Fk
UG9saWN5OjpXZWJHTEFsbG93Q3JlYXRpb24pOyB9CiAjZW5kaWYKICAgICAKLSAgICB2aXJ0dWFs
IGJvb2wgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBpblBhZ2VDYWNoZSkgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwg
Ym9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTmF2aWdhdGlvbkdlc3R1cmUoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmLCBib29sIHdpbGxOYXZpZ2F0ZSwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGUzNzM5MzRjMjNkZGY1ZDVkOTkz
OWE3NTE5NzlmMDVjOTM1YWMwZTEuLjFlMDBhNWU4OTQzZThlNmFhY2QyYjVjMTc3MWJhNmZjZDA0
NDU1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC02OSw3ICs2OSw3IEBAIFJlZjxQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSgpCiAg
ICAgY29weS0+bV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyID0gdGhpcy0+bV9w
cm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyOwogICAgIGNvcHktPm1faXNBdXRvbWF0
aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudCA9IHRoaXMtPm1faXNBdXRvbWF0aWNQcm9j
ZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudDsKICAgICBjb3B5LT5tX3VzZXNXZWJQcm9jZXNzQ2Fj
aGUgPSB0aGlzLT5tX3VzZXNXZWJQcm9jZXNzQ2FjaGU7Ci0gICAgY29weS0+bV91c2VzUGFnZUNh
Y2hlID0gdGhpcy0+bV91c2VzUGFnZUNhY2hlOworICAgIGNvcHktPm1fdXNlc0JhY2tGb3J3YXJk
Q2FjaGUgPSB0aGlzLT5tX3VzZXNCYWNrRm9yd2FyZENhY2hlOwogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIGNvcHktPm1fc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hh
bmdlID0gdGhpcy0+bV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFu
Z2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCAxZmE3OTAxN2FmODY0ZWM5NmRlMmVm
ODE5ZWE3OWJmMThhMjI4MzJmLi4zOTZmM2U1MzQyYmVhYTY3Y2Y2NzNjYWM1MjY0ZGZhZjk0Njdk
NTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC02OCw4ICs2OCw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGNsaWVudFdvdWxkQmVuZWZpdEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2FybWluZygpIGNv
bnN0IHsgcmV0dXJuIG1fY2xpZW50V291bGRCZW5lZml0RnJvbUF1dG9tYXRpY1Byb2Nlc3NQcmV3
YXJtaW5nOyB9CiAgICAgdm9pZCBzZXRDbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0b21hdGljUHJv
Y2Vzc1ByZXdhcm1pbmcoYm9vbCB2YWx1ZSkgeyBtX2NsaWVudFdvdWxkQmVuZWZpdEZyb21BdXRv
bWF0aWNQcm9jZXNzUHJld2FybWluZyA9IHZhbHVlOyB9CiAKLSAgICB2b2lkIHNldFVzZXNQYWdl
Q2FjaGUoYm9vbCB2YWx1ZSkgeyBtX3VzZXNQYWdlQ2FjaGUgPSB2YWx1ZTsgfQotICAgIGJvb2wg
dXNlc1BhZ2VDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1BhZ2VDYWNoZTsgfQorICAgIHZv
aWQgc2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUoYm9vbCB2YWx1ZSkgeyBtX3VzZXNCYWNrRm9yd2Fy
ZENhY2hlID0gdmFsdWU7IH0KKyAgICBib29sIHVzZXNCYWNrRm9yd2FyZENhY2hlKCkgY29uc3Qg
eyByZXR1cm4gbV91c2VzQmFja0ZvcndhcmRDYWNoZTsgfQogCiAgICAgY29uc3QgV1RGOjpTdHJp
bmcmIGluamVjdGVkQnVuZGxlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRCdW5kbGVQ
YXRoOyB9CiAgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZVBhdGgoY29uc3QgV1RGOjpTdHJpbmcm
IGluamVjdGVkQnVuZGxlUGF0aCkgeyBtX2luamVjdGVkQnVuZGxlUGF0aCA9IGluamVjdGVkQnVu
ZGxlUGF0aDsgfQpAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Byb2Nl
c3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgeyBmYWxzZSB9OwogICAgIE9wdGlvbmFsPGJv
b2w+IG1faXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudDsKICAgICBib29s
IG1fdXNlc1dlYlByb2Nlc3NDYWNoZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3VzZXNQYWdlQ2Fj
aGUgeyB0cnVlIH07CisgICAgYm9vbCBtX3VzZXNCYWNrRm9yd2FyZENhY2hlIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbV9jbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0b21hdGljUHJvY2Vzc1ByZXdhcm1p
bmcgeyBmYWxzZSB9OwogICAgIFdURjo6U3RyaW5nIG1fY3VzdG9tV2ViQ29udGVudFNlcnZpY2VC
dW5kbGVJZGVudGlmaWVyOwogICAgIGJvb2wgbV9zaG91bGRDb25maWd1cmVKU0NGb3JUZXN0aW5n
IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAKaW5kZXggYjM0ZjRiYzc3ZGFkODhkZmVhMDdlODdiYWE2NjM4MTc1YmUzZWI1MC4u
ODg4MDJhMmU4MWJiMzEwNjk3OTFlMGJiM2UyNjY5NDlkNTE3Zjc2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTYxMCwyMiArNjEw
LDIyIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlCiAKIHZvaWQgV0tQcmVmZXJlbmNlc1NldFBh
Z2VDYWNoZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFi
bGVkKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFVzZXNQYWdlQ2FjaGUoZW5h
YmxlZCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0VXNlc0JhY2tGb3J3YXJkQ2Fj
aGUoZW5hYmxlZCk7CiB9CiAKIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNoZUVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+dXNlc1BhZ2VDYWNoZSgpOworICAgIHJldHVybiB0b0ltcGwocHJlZmVy
ZW5jZXNSZWYpLT51c2VzQmFja0ZvcndhcmRDYWNoZSgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5j
ZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZiwgYm9vbCBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpCit2b2lkIFdLUHJlZmVyZW5jZXNT
ZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZiwgYm9vbCBiYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKQogewotICAgIHRvSW1wbChw
cmVmZXJlbmNlc1JlZiktPnNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyhwYWdlQ2FjaGVTdXBw
b3J0c1BsdWdpbnMpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJhY2tGb3J3YXJk
Q2FjaGVTdXBwb3J0c1BsdWdpbnMoYmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyk7CiB9
CiAKIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyhXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5j
ZXNSZWYpLT5wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoKTsKKyAgICByZXR1cm4gdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+YmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucygpOwogfQogCiB2
b2lkIFdLUHJlZmVyZW5jZXNTZXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCAxOTQyNjBlMGMy
ZWNkYzA5ZjRiZmFhOTY2NzU4NzVmYmE1ODJmYjQwLi5jMWE3MzA4ZDNkNTU0OTg3ODE1MzBhZDli
YTJmN2M2MzUzMWM3NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtOTQ0LDIyICs5NDQsMjIgQEAgLSAoQk9PTClfbG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZAogCiAtICh2b2lkKV9zZXRVc2VzUGFnZUNhY2hl
OihCT09MKWVuYWJsZWQKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldFVzZXNQYWdlQ2FjaGUoZW5h
YmxlZCk7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZShlbmFibGVk
KTsKIH0KIAogLSAoQk9PTClfdXNlc1BhZ2VDYWNoZQogewotICAgIHJldHVybiBfcHJlZmVyZW5j
ZXMtPnVzZXNQYWdlQ2FjaGUoKTsKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT51c2VzQmFja0Zv
cndhcmRDYWNoZSgpOwogfQogCiAtICh2b2lkKV9zZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM6
KEJPT0wpZW5hYmxlZAogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0UGFnZUNhY2hlU3VwcG9ydHNQ
bHVnaW5zKGVuYWJsZWQpOworICAgIF9wcmVmZXJlbmNlcy0+c2V0QmFja0ZvcndhcmRDYWNoZVN1
cHBvcnRzUGx1Z2lucyhlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfcGFnZUNhY2hlU3VwcG9ydHNQ
bHVnaW5zCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+cGFnZUNhY2hlU3VwcG9ydHNQbHVn
aW5zKCk7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YmFja0ZvcndhcmRDYWNoZVN1cHBvcnRz
UGx1Z2lucygpOwogfQogCiAtICh2b2lkKV9zZXRTaG91bGRQcmludEJhY2tncm91bmRzOihCT09M
KWVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDg3N2Q1MmNhZDMw
ZTBmZTM4ZjNjOWVhNzNiOTg5MjU3MzhmMjU4ZTMuLjBiNjc3YmNjNGY4MjAyY2UyMzk5NWEwODJi
YmI1YjAzODIwZmM4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMzEz
LDEyICszMTMsMTIgQEAgLSAoQk9PTClwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVy
CiAKIC0gKEJPT0wpcGFnZUNhY2hlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLT51c2VzUGFnZUNhY2hlKCk7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24tPnVzZXNCYWNrRm9yd2FyZENhY2hlKCk7CiB9CiAKIC0gKHZvaWQpc2V0UGFn
ZUNhY2hlRW5hYmxlZDooQk9PTCllbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcm9jZXNzUG9vbENv
bmZpZ3VyYXRpb24tPnNldFVzZXNQYWdlQ2FjaGUoZW5hYmxlZCk7CisgICAgcmV0dXJuIF9wcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFVzZXNCYWNrRm9yd2FyZENhY2hlKGVuYWJsZWQpOwog
fQogCiAtIChCT09MKXVzZXNTaW5nbGVXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggYWUyNzhjNzYyNTA5
M2VjNTUxMTAzYjM4NzFmMGI4YTQ5NjUwOTRmZS4uZTU3MDE2YjM1YzFiMWM1ZjA0Zjc5MmY1ODMx
Mjg3NDJlYTVhOWQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAtMjk4NCw3ICsyOTg0LDcgQEAgZ2Jvb2xlYW4gd2Vi
a2l0X3NldHRpbmdzX2dldF9lbmFibGVfcGFnZV9jYWNoZShXZWJLaXRTZXR0aW5ncyogc2V0dGlu
Z3MpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRp
bmdzKSwgRkFMU0UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcml2LT5wcmVmZXJlbmNlcy0+
dXNlc1BhZ2VDYWNoZSgpOworICAgIHJldHVybiBzZXR0aW5ncy0+cHJpdi0+cHJlZmVyZW5jZXMt
PnVzZXNCYWNrRm9yd2FyZENhY2hlKCk7CiB9CiAKIC8qKgpAQCAtMjk5OSwxMSArMjk5OSwxMSBA
QCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3BhZ2VfY2FjaGUoV2ViS2l0U2V0dGlu
Z3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlbgogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X1NFVFRJTkdTKHNldHRpbmdzKSk7CiAKICAgICBXZWJLaXRTZXR0aW5nc1ByaXZhdGUqIHByaXYg
PSBzZXR0aW5ncy0+cHJpdjsKLSAgICBib29sIGN1cnJlbnRWYWx1ZSA9IHByaXYtPnByZWZlcmVu
Y2VzLT51c2VzUGFnZUNhY2hlKCk7CisgICAgYm9vbCBjdXJyZW50VmFsdWUgPSBwcml2LT5wcmVm
ZXJlbmNlcy0+dXNlc0JhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICBpZiAoY3VycmVudFZhbHVlID09
IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRV
c2VzUGFnZUNhY2hlKGVuYWJsZWQpOworICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRVc2VzQmFj
a0ZvcndhcmRDYWNoZShlbmFibGVkKTsKICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0
dGluZ3MpLCAiZW5hYmxlLXBhZ2UtY2FjaGUiKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCBiM2EzZDZmYmE5Njc0NmFiNDJl
MjQxNTU5MzQzYTQ4OGQ1Y2Y3NjNlLi4wZGZkZTdjOTg2ODAxZDhjMTg1ODJjMmE4YTM1NzkyNWFl
NmMyMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0
aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9u
U3RhdGUuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgICAgICB2b2lkIHdlYkdMTG9hZFBvbGljeShXZWJQYWdlUHJveHkmLCBjb25zdCBVUkwmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+JiYpIGNvbnN0
IGZpbmFsOwogICAgICAgICB2b2lkIHJlc29sdmVXZWJHTExvYWRQb2xpY3koV2ViUGFnZVByb3h5
JiwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJHTExvYWRQ
b2xpY3kpPiYmKSBjb25zdCBmaW5hbDsKLSAgICAgICAgYm9vbCB3aWxsR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW0oV2ViUGFnZVByb3h5JiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYsIGJvb2wgaW5Q
YWdlQ2FjaGUpIGZpbmFsOworICAgICAgICBib29sIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bShXZWJQYWdlUHJveHkmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBpbkJhY2tGb3J3
YXJkQ2FjaGUpIGZpbmFsOwogICAgICAgICBib29sIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW4o
V2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAgIGJvb2wgZGlk
QmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9uYXJ5
JikgZmluYWw7CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXZWJLaXQ6
OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwgQVBJOjpEaWN0
aW9uYXJ5JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQ
b2xpY3ksIGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGZpbmFsOwpAQCAtMjQwLDcgKzI0MCw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0JhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZFJl
bW92ZWQgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRGYWlsVG9Jbml0aWFsaXplUGx1Z0lu
V2l0aEluZm8gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRCbG9ja0luc2VjdXJlUGx1Z2lu
VmVyc2lvbldpdGhJbmZvIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtSW5QYWdlQ2FjaGUgOiAxOworICAgICAgICBib29sIHdlYlZpZXdXaWxsR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW1JbkJhY2tGb3J3YXJkQ2FjaGUgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5J
bmZvQ29tcGxldGlvbkhhbmRsZXIgOiAxOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA2YjE1YzA2YmQ5ZWZhMTlh
ZDYzNmIzMjlhMmE3NmE2YmU4NTVjZGQ4Li45NGFlOWIxMzBmYjg5OTkzOGU5Y2UyNjFiNWU2OGUx
M2U1MmUwMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZp
Z2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdh
dGlvblN0YXRlLm1tCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNl
dE5hdmlnYXRpb25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlKQog
I2lmIFBMQVRGT1JNKE1BQykKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1dlYkdMTG9hZFBvbGljeUZvclVSTCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OndlYkdMTG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhhbmRsZXI6KV07
CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXNvbHZlV2ViR0xMb2Fk
UG9saWN5Rm9yVVJMID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6cmVzb2x2ZVdlYkdMTG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhhbmRsZXI6KV07Ci0g
ICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW1JblBhZ2VDYWNoZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTppblBhZ2VDYWNoZTopXTsK
KyAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbUluQmFja0ZvcndhcmRDYWNoZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTppblBhZ2VD
YWNoZTopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEZhaWxU
b0luaXRpYWxpemVQbHVnSW5XaXRoSW5mbyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRoSW5mbzopXTsK
ICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJsb2NrSW5zZWN1cmVQ
bHVnaW5WZXJzaW9uV2l0aEluZm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlldzpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvOildOwog
ICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QmFja0ZvcndhcmRMaXN0SXRl
bUFkZGVkUmVtb3ZlZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93
ZWJWaWV3OmJhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZDpyZW1vdmVkOildOwpAQCAtNDYyLDE2ICs0
NjIsMTYgQEAgYm9vbCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZENoYW5n
ZUJhY2tGb3J3YXJkTGlzdChXZWJQYWdlUHJveHkmLAogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIGJv
b2wgaW5QYWdlQ2FjaGUpCitib29sIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mIGl0ZW0sIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlKQogewotICAgIGlmICghbV9u
YXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsR29U
b0JhY2tGb3J3YXJkTGlzdEl0ZW1JblBhZ2VDYWNoZSkKKyAgICBpZiAoIW1fbmF2aWdhdGlvblN0
YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtSW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5h
dmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgd2ls
bEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOndyYXBwZXIoaXRlbSkgaW5QYWdlQ2FjaGU6aW5QYWdl
Q2FjaGVdOworICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlv
bkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyB3aWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW06d3JhcHBlcihpdGVtKSBpblBhZ2VDYWNoZTppbkJhY2tGb3J3YXJk
Q2FjaGVdOwogICAgIHJldHVybiB0cnVlOwogfQogI2VuZGlmCkBAIC03NTQsNyArNzU0LDcgQEAg
dm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9u
YWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm8KICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZp
Z2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21l
IG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1
cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZS4KIAogICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uVXNlckluZm8pCiAg
ICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVn
YXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRTdGFydFByb3Zpc2lv
bmFsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pIHVzZXJJbmZvOnVzZXJJbmZvID8gc3Rh
dGljX2Nhc3Q8aWQgPE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWxd
OwpAQCAtNzcxLDcgKzc3MSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xp
ZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hCiAgICAgaWYgKCFu
YXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBj
dXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hl
LgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3Qg
bnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0
aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRl
IHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pXTsKIH0KQEAg
LTgzNCw3ICs4MzQsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0ZUVycm9yV2l0
aFJlY292ZXJ5QXR0ZW1wdGVyKFdLV2ViVmlldyAqd2ViVmlldywgVwogLy8gRklYTUU6IFNob3Vs
ZG4ndCBuZWVkIHRvIHBhc3MgdGhlIFdlYkZyYW1lUHJveHkgaW4gaGVyZS4gQXQgbW9zdCwgYSBG
cmFtZUhhbmRsZS4KIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRG
YWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2Vi
RnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3QqKQogewotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBo
ZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdo
IHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2
aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29t
ZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICAvLyBG
SVhNRTogU2V0IHRoZSBlcnJvciBvbiB0aGUgbmF2aWdhdGlvbiBvYmplY3QuCiAKQEAgLTg3Miw3
ICs4NzIsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ29t
bWl0TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVs
ZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0
IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVs
bCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBi
dXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9u
YXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZENvbW1pdE5hdmlnYXRpb246d3JhcHBlcihuYXZp
Z2F0aW9uKV07CiB9CkBAIC04ODYsNyArODg2LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5h
dmlnYXRpb25DbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9hZChXZWJQYWdlUHJveHkmIHBhZ2UK
ICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8g
RklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUs
IGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhl
IHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0
aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5h
dmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAgIFtzdGF0aWNf
Y2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRl
LmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgbmF2aWdhdGlvbkRp
ZEZpbmlzaERvY3VtZW50TG9hZDp3cmFwcGVyKG5hdmlnYXRpb24pXTsKIH0KQEAgLTkwMCw3ICs5
MDAsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmluaXNo
TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdh
dGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRo
YXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBm
b3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQg
aXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZp
Z2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0
aW9uKV07CiB9CkBAIC05MTYsNyArOTE2LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmln
YXRpb25DbGllbnQ6OmRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYKICAg
ICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1
dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBh
Z2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9u
IGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmln
YXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAgIGF1dG8gZXJyb3JX
aXRoUmVjb3ZlcnlBdHRlbXB0ZXIgPSBjcmVhdGVFcnJvcldpdGhSZWNvdmVyeUF0dGVtcHRlciht
X25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcsIHdlYkZyYW1lUHJveHksIGVycm9yKTsKICAgICBp
ZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
aWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvclVzZXJJbmZvKQpAQCAtOTM0LDcgKzkzNCw3IEBAIHZv
aWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uKFdlYlBhZ2VQcm94eSYsCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdh
dGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJvIGZvciBzb21l
IG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3Mg
Y3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlLgogCiAgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVBy
aXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0
YXRlLm1fd2ViVmlldyBuYXZpZ2F0aW9uOndyYXBwZXIobmF2aWdhdGlvbikgZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbjp0b1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUobmF2aWdhdGlvblR5
cGUpXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXIuY3BwCmluZGV4IGI0ODI3NzI5ZDcyNDIxNTJlYjQ3NTE2YjgwZTRkYTA3NWFmYjc1M2Uu
LjM1NjIzNTU1N2E3ZWM3ZmM0NmEzZGFhMzVlN2M4ZDk4OTI2ZTBhMGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjE3LDcg
KzIxNyw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1haW5GcmFtZUxv
YWRUZXJtaW5hbFN0YXRlKCkKICAgICBpZiAoIW1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5ldmVu
dE9jY3VycmVkKFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6Ok1haW5GcmFtZUxvYWQpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICAvLyBDb21pbmcgYmFjayBmcm9tIHRoZSBwYWdlIGNhY2hlIHdpbGwg
cmVzdWx0IGluIGdldHRpbmcgYSBsb2FkIGV2ZW50LCBidXQgbm8gZmlyc3QgdmlzdWFsbHkgbm9u
LWVtcHR5IGxheW91dC4KKyAgICAvLyBDb21pbmcgYmFjayBmcm9tIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUgd2lsbCByZXN1bHQgaW4gZ2V0dGluZyBhIGxvYWQgZXZlbnQsIGJ1dCBubyBmaXJzdCB2
aXN1YWxseSBub24tZW1wdHkgbGF5b3V0LgogICAgIC8vIFdlYkNvcmUgY29uc2lkZXJzIGEgbG9h
ZGVkIGRvY3VtZW50IGVub3VnaCB0byBiZSBjb25zaWRlcmVkIHZpc3VhbGx5IG5vbi1lbXB0eSwg
c28gdGhhdCdzIGdvb2QKICAgICAvLyBlbm91Z2ggZm9yIHVzIHRvby4KICAgICBtX3NuYXBzaG90
UmVtb3ZhbFRyYWNrZXIuY2FuY2VsT3V0c3RhbmRpbmdFdmVudChTbmFwc2hvdFJlbW92YWxUcmFj
a2VyOjpWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IGIzNzI1NThmZWM3NDBlOTBmMzE3ZmQ3MmQ4OWMwYTk4ZTYzZmVi
NWYuLjJjYzk2OTM2YzcwZDNiYjkzMzljZmJmYTUxOGIyN2RkZWZmYmJmY2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODE1LDcgKzgxNSw3IEBAIFdlYkJh
Y2tGb3J3YXJkQ2FjaGUmIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0CiAK
IGJvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRVc2VCYWNrRm9yd2FyZENhY2hlKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9wcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgpICYmIGJhY2tGb3J3YXJk
Q2FjaGUoKS5jYXBhY2l0eSgpID4gMDsKKyAgICByZXR1cm4gbV9wcmVmZXJlbmNlcy0+dXNlc0Jh
Y2tGb3J3YXJkQ2FjaGUoKSAmJiBiYWNrRm9yd2FyZENhY2hlKCkuY2FwYWNpdHkoKSA+IDA7CiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBzdGQ6OnVuaXF1ZV9wdHI8
RHJhd2luZ0FyZWFQcm94eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYg
bWFpbkZyYW1lKQpAQCAtMTU2NywxMiArMTU2NywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkLCBWZWN0
bwogICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRDYW5Hb0ZvcndhcmQodHJhbnNhY3Rpb24sIG1fYmFj
a0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Ondp
bGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShjb25zdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVy
JiBpdGVtSUQsIGJvb2wgaW5QYWdlQ2FjaGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtKGNvbnN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImIGl0ZW1J
RCwgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBw
cm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIAogICAgIGlmIChhdXRvKiBpdGVtID0gbV9iYWNrRm9y
d2FyZExpc3QtPml0ZW1Gb3JJRChpdGVtSUQpKQotICAgICAgICBtX25hdmlnYXRpb25DbGllbnQt
PndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSgqdGhpcywgKml0ZW0sIGluUGFnZUNhY2hlKTsK
KyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0o
KnRoaXMsICppdGVtLCBpbkJhY2tGb3J3YXJkQ2FjaGUpOwogfQogCiBib29sIFdlYlBhZ2VQcm94
eTo6c2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0mIGl0ZW0pCkBAIC00MDgzLDcgKzQwODMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmCiAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAgICB9CiAKLSAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMg
bm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlv
bnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3Nh
Z2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3Vy
cmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJk
IGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAgaWYg
KGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdhdGlv
biA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsKQEAgLTQxNTAs
NyArNDE1MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8CiAgICAgTUVTU0FHRV9DSEVDSyhw
cm9jZXNzLCBmcmFtZSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocHJvY2VzcywgcmVxdWVzdC51
cmwoKSk7CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZp
Z2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNv
bWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwg
YnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRp
b24gPSBuYXZpZ2F0aW9uSUQgPyBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRp
b25JRCkgOiBudWxscHRyOwogICAgIGlmIChuYXZpZ2F0aW9uKQogICAgICAgICBuYXZpZ2F0aW9u
LT5hcHBlbmRSZWRpcmVjdGlvblVSTChyZXF1ZXN0LnVybCgpKTsKQEAgLTQyNDQsNyArNDI0NCw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwCiAgICAgICAgICAgICBhdXRvbWF0aW9uU2Vzc2lv
bi0+bmF2aWdhdGlvbk9jY3VycmVkRm9yRnJhbWUoKmZyYW1lKTsKICAgICB9CiAKLSAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHpl
cm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhy
b3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hl
Y2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5
IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAgaWYgKGZyYW1l
LT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdhdGlvbiA9IG5h
dmlnYXRpb25TdGF0ZSgpLnRha2VOYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CkBAIC00MzE5LDcg
KzQzMTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZwogICAgIFdlYkZyYW1lUHJveHkqIGZy
YW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgZnJhbWUpOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBtZXNzYWdlIGNoZWNr
IHRoYXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6
ZXJvIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBtZXNzYWdlIGNoZWNrIHRoYXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6
ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmlnYXRpb25zIHRo
cm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9u
PiBuYXZpZ2F0aW9uOwogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9u
SUQgJiYgKG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRp
b25JRCkpKSB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKQEAgLTQ0MzYs
NyArNDQzNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0CiAgICAgICAgICAgICBhdXRvbWF0
aW9uU2Vzc2lvbi0+ZG9jdW1lbnRMb2FkZWRGb3JGcmFtZSgqZnJhbWUpOwogICAgIH0KIAotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBu
b3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9u
cyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2Fn
ZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJy
ZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAo
ZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9u
ID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDQ1NSw3
ICs0NDU1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWcKICAgICBXZWJGcmFtZVByb3h5KiBm
cmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyht
X3Byb2Nlc3MsIGZyYW1lKTsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVj
ayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkg
emVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3Qg
emVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0
aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlv
bj4gbmF2aWdhdGlvbjsKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlv
bklEKQogICAgICAgICBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihu
YXZpZ2F0aW9uSUQpOwpAQCAtNDUwMCw3ICs0NTAwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXQKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBo
ZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdo
IHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0
aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVy
byBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAg
ICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAoZnJhbWUtPmlz
TWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9uID0gbmF2aWdh
dGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDU0Myw3ICs0NTQzLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWkKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vzcywg
ZnJhbWUpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKG1fcHJvY2VzcywgdXJsKTsKIAotICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3Qg
emVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0
aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBj
aGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50
bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2Fj
aGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAoZnJh
bWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9uID0g
bmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3ODVjYzczYzBlNWM2ZDVkNThmYzc4ZGFlMTU0
NWJiMTQyMTNhODk4Li5jNmE0ZmRjZmEzNWVjYjU0MTI5YTk3YjQ1MDg4YTJmYzEwNDczNGVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTU4LDcgKzU1OCw3IEBA
IHB1YmxpYzoKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb1RvQmFja0ZvcndhcmRJdGVt
KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKICAgICB2b2lkIHRyeVJlc3RvcmVTY3JvbGxQb3Np
dGlvbigpOwogICAgIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9yPFJlZjxXZWJCYWNrRm9yd2FyZExpc3RJdGVtPj4m
JiByZW1vdmVkKTsKLSAgICB2b2lkIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShjb25zdCBX
ZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgYm9vbCBpblBhZ2VDYWNoZSk7Cisg
ICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllciYsIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGJv
b2wgc2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDMwNDNlY2U0ZTg1MTkyZjFmYzAyOTg1YWE3ZDY5MWU3MDIz
ZDExN2UuLjdiOWZlMjA4NDJjN2QwODhlNDc4NDJiMGFiYzQxMWZhNzczY2JjMTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIz
MCw3ICsyMzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJhY2tGb3J3YXJk
QmFja0xpc3RDb3VudCgpIC0+ICh1aW50MzJfdCBjb3VudCkgU3luY2hyb25vdXMKICAgICBCYWNr
Rm9yd2FyZEZvcndhcmRMaXN0Q291bnQoKSAtPiAodWludDMyX3QgY291bnQpIFN5bmNocm9ub3Vz
CiAgICAgQmFja0ZvcndhcmRDbGVhcigpCi0gICAgV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
KHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgYm9vbCBp
blBhZ2VDYWNoZSkKKyAgICBXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oc3RydWN0IFdlYkNv
cmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgaXRlbUlELCBib29sIGluQmFja0ZvcndhcmRD
YWNoZSkKIAogICAgICMgVW5kby9SZWRvIG1lc3NhZ2VzCiAgICAgUmVnaXN0ZXJFZGl0Q29tbWFu
ZEZvclVuZG8odWludDY0X3QgY29tbWFuZElELCBTdHJpbmcgbGFiZWwpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYzA2ZDZjNmI3N2E3NGVlN2Q5Mzli
NzU4ZTAxZmNhZTZmY2E2ODEwNy4uMjc4ZTRjNzNmYmRlM2MwOGVmZWRhZjEyMzc4OTAwYjE5YmY2
MDVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAt
MTU3Miw3ICsxNTcyLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJVUkxTY2hlbWVB
c0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYKIAogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6dXBkYXRlQmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KCkKIHsKLSAgICBpZiAoIW1f
Y29uZmlndXJhdGlvbi0+dXNlc1BhZ2VDYWNoZSgpKQorICAgIGlmICghbV9jb25maWd1cmF0aW9u
LT51c2VzQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICB1bnNpZ25l
ZCBkdW1teSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uY3BwCmluZGV4IGQ4ZTNhOWYyMzE4N2VmYjNiNWIwNzY0YTE0YjEyZDVlOGM1MGIy
MDUuLjc3OTg3ODIzMWY5Yzg0MDU1NTRmNGNhYTJjNzE3N2I0ODQ1ZDkxZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCkBAIC02NCw3
ICs2NCw3IEBAIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNUYXJnZXRJdGVtKFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1ib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5QYWdlQ2FjaGUoV0tCdW5kbGVC
YWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCitib29sIFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbUlzSW5CYWNrRm9yd2FyZENhY2hlKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJl
ZiBpdGVtUmVmKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaAppbmRleCBmMDBlYWQ0NjY2MTk4OTU3NWJj
MmI5ZGU3YWM5ZDliMjFkNTU3ZWE2Li5jOWE2MDM1MWY2NWY4NjlmNDI5MWQ2ODUyYjA3OGE4ZmVm
ZTUwMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oCkBAIC00NCw3ICs0NCw3IEBAIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUoV0tCdW5kbGVCYWNrRm9yd2FyZExpCiBXS19FWFBP
UlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRhcmdldChXS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVDQVRFRDsKIFdL
X0VYUE9SVCBib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzVGFyZ2V0SXRlbShXS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVDQVRFRDsKIAot
V0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJblBhZ2VDYWNoZShX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVDQVRFRDsK
K1dLX0VYUE9SVCBib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5CYWNrRm9yd2Fy
ZENhY2hlKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKSBXS19DX0FQSV9ERVBS
RUNBVEVEOwogV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSGFzQ2Fj
aGVkUGFnZUV4cGlyZWQoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0pIFdLX0Nf
QVBJX0RFUFJFQ0FURUQ7CiAKIFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxlQmFja0Zvcndh
cmRMaXN0SXRlbUNvcHlDaGlsZHJlbihXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRl
bSkgV0tfQ19BUElfREVQUkVDQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNw
cAppbmRleCAwZWNhNGMxZDMyMGNlOTBkZWMxY2VhODM1NGZlMjI2ZTcwZjQ0NTMyLi4wMjY5NWQz
ZWI4OWY1ZTY0MDkzODQxNDI0OWU3ZjVjOWY4MmFjNDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0
ZUNvbnZlcnNpb24uY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgQmFja0ZvcndhcmRMaXN0SXRlbVN0
YXRlIHRvQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKGNvbnN0IFdlYkNvcmU6Okhpc3RvcnlJdGVt
JgogICAgIHN0YXRlLnBhZ2VTdGF0ZS5tYWluRnJhbWVTdGF0ZSA9IHRvRnJhbWVTdGF0ZShoaXN0
b3J5SXRlbSk7CiAgICAgc3RhdGUucGFnZVN0YXRlLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kgPSBoaXN0b3J5SXRlbS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCk7CiAgICAgc3Rh
dGUucGFnZVN0YXRlLnNlc3Npb25TdGF0ZU9iamVjdCA9IGhpc3RvcnlJdGVtLnN0YXRlT2JqZWN0
KCk7Ci0gICAgc3RhdGUuaGFzQ2FjaGVkUGFnZSA9IGhpc3RvcnlJdGVtLmlzSW5QYWdlQ2FjaGUo
KTsKKyAgICBzdGF0ZS5oYXNDYWNoZWRQYWdlID0gaGlzdG9yeUl0ZW0uaXNJbkJhY2tGb3J3YXJk
Q2FjaGUoKTsKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IGNjZWQxMWZhYmRlMWViYTkyYmQ2YzdlMGNiMTZiNTc5OTczZDNhNGMuLjc4
ZGE0N2NhOWUxOWNmZTdmZDZlYzcxY2ZhZGU3OTZlZTVkOTU2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpXZWJGcmFtZUxvYWRlckNsaWVudCgpCiAgICAgLCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2lu
VmlldyhmYWxzZSkKICAgICAsIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbihmYWxzZSkKICAg
ICAsIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIoZmFsc2UpCi0gICAgLCBtX2ZyYW1l
Q2FtZUZyb21QYWdlQ2FjaGUoZmFsc2UpCisgICAgLCBtX2ZyYW1lQ2FtZUZyb21CYWNrRm9yd2Fy
ZENhY2hlKGZhbHNlKQogewogfQogCkBAIC0xMjA2LDcgKzEyMDYsNyBAQCBib29sIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0pIGNv
bnN0CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdl
YlBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVtLmlkZW50aWZp
ZXIoKSwgaXRlbS5pc0luUGFnZUNhY2hlKCkpKTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVtLmlkZW50aWZp
ZXIoKSwgaXRlbS5pc0luQmFja0ZvcndhcmRDYWNoZSgpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKQEAgLTE0NjUsNyArMTQ2NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5z
aXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopCiB7CiAgICAgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9h
ZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKTsKICAgICBtX2ZyYW1lSGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyID0gbV9mcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBtX2ZyYW1lLT5wYWdl
KCktPnNob3VsZFVzZUN1c3RvbUNvbnRlbnRQcm92aWRlckZvclJlc3BvbnNlKHJlc3BvbnNlKTsK
LSAgICBtX2ZyYW1lQ2FtZUZyb21QYWdlQ2FjaGUgPSB0cnVlOworICAgIG1fZnJhbWVDYW1lRnJv
bUJhY2tGb3J3YXJkQ2FjaGUgPSB0cnVlOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKQEAgLTE0ODcsNyArMTQ4Nyw3IEBA
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1Bh
Z2UoKQogCiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBtX2ZyYW1lLT5j
b3JlRnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKTsKICAgICBt
X2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyID0gaXNNYWluRnJhbWUgJiYgd2ViUGFnZS0+
c2hvdWxkVXNlQ3VzdG9tQ29udGVudFByb3ZpZGVyRm9yUmVzcG9uc2UocmVzcG9uc2UpOwotICAg
IG1fZnJhbWVDYW1lRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworICAgIG1fZnJhbWVDYW1lRnJvbUJh
Y2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKIAogICAgIFNjcm9sbGJhck1vZGUgZGVmYXVsdFNjcm9s
bGJhck1vZGUgPSBzaG91bGRIaWRlU2Nyb2xsYmFycyA/IFNjcm9sbGJhckFsd2F5c09mZiA6IFNj
cm9sbGJhckF1dG87CiAKQEAgLTE1MzMsOSArMTUzMyw5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogI2VuZGlmCiB9CiAKLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkKK3ZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7
Ci0gICAgbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgICBtX2ZyYW1lQ2FtZUZy
b21CYWNrRm9yd2FyZENhY2hlID0gdHJ1ZTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sIHZhbHVlKQpAQCAtMTU5Niw3ICsxNTk2
LDcgQEAgUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVBsdWdpbihj
b25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW0KICAgICBwYXJhbWV0ZXJzLnZhbHVlcyA9IHBh
cmFtVmFsdWVzOwogICAgIHBhcmFtZXRlcnMubWltZVR5cGUgPSBtaW1lVHlwZTsKICAgICBwYXJh
bWV0ZXJzLmlzRnVsbEZyYW1lUGx1Z2luID0gbG9hZE1hbnVhbGx5OwotICAgIHBhcmFtZXRlcnMu
c2hvdWxkVXNlTWFudWFsTG9hZGVyID0gcGFyYW1ldGVycy5pc0Z1bGxGcmFtZVBsdWdpbiAmJiAh
bV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlOworICAgIHBhcmFtZXRlcnMuc2hvdWxkVXNlTWFudWFs
TG9hZGVyID0gcGFyYW1ldGVycy5pc0Z1bGxGcmFtZVBsdWdpbiAmJiAhbV9mcmFtZUNhbWVGcm9t
QmFja0ZvcndhcmRDYWNoZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBwYXJhbWV0ZXJzLmxh
eWVySG9zdGluZ01vZGUgPSBtX2ZyYW1lLT5wYWdlKCktPmxheWVySG9zdGluZ01vZGUoKTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhZmExN2E0OTY3Y2ZjMDNhNmM5
NDhkYjk5Y2U4MDE0MjVkZWM0N2YxLi42MTFmY2I4NmRiZTYzYWQ3MzNiMTIwMTc1NmExNTJkZGNi
OTM2MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNzEsNyArNzEsNyBAQCBw
cml2YXRlOgogICAgIAogICAgIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGZv
cmNlTGF5b3V0T25SZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIGZpbmFsOworICAgIGJvb2wgZm9yY2VM
YXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogI2VuZGlmCiAgICAg
dm9pZCBmb3JjZUxheW91dEZvck5vbkhUTUwoKSBmaW5hbDsKICAgICAKQEAgLTIwNiw3ICsyMDYs
NyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JO
ZXdQYWdlKCkgZmluYWw7CiAKLSAgICB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmlu
YWw7CisgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbDsKIAog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbDsKIApAQCAtMjgx
LDcgKzI4MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2lu
VmlldzsKICAgICBib29sIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbjsKICAgICBib29sIG1f
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXI7Ci0gICAgYm9vbCBtX2ZyYW1lQ2FtZUZyb21Q
YWdlQ2FjaGU7CisgICAgYm9vbCBtX2ZyYW1lQ2FtZUZyb21CYWNrRm9yd2FyZENhY2hlOwogICAg
IGJvb2wgbV91c2VJY29uTG9hZGluZ0NsaWVudCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKICAgICBPcHRpb25hbDxGcmFtZVNwZWNpZmljU3RvcmFnZUFj
Y2Vzc0lkZW50aWZpZXI+IG1fZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9X
ZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0KaW5kZXggZmNhOWJkZjA2
ZWRhYTNiNDk4N2IxOTg1NGU5MzNjZTZmMzQ3NWNiMS4uOGZhZjMxZWE0YjdiMzBlNTdkYzQ4ZWQy
NjRhYzk2YWEyMTRmZGRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50
SU9TLm1tCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJl
c3RvcmVGcmFtZUhpZXJhcmNoeUZvckNhY2hlZEZyYW1lKCkKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dE9uUmVzdG9yZUZy
b21QYWdlQ2FjaGUoKQorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Zm9yY2VMYXlvdXRPblJl
c3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJs
ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRl
ZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCmluZGV4IDRiYjRlMzQ0MjYyNzI1ODE4YmQ0MDA5MGQ5
ZGFlZWMwZjU2MzI5ZTUuLjJhZGQyMWJiZWU5NDlhMDhkNGJiMmMxMWY4YjY0MzFiNTEwZWI5NTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5r
VGFibGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNs
dWRlICJWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VD
YWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlz
dFByb3h5LmNwcAppbmRleCBkODBkN2Y5NTdhOTYzYmQyYjlkZmI5MmJiZDk1NWI4ZDVkNTI0NDBm
Li45MTc0ZmUxZjk5YzJmYTUzYjkzZDdmOTJkZGUyZGYxZGFiZTQ1NmJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRM
aXN0UHJveHkuY3BwCkBAIC0zNCwxMCArMzQsMTAgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlDb250
cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CkBAIC03OCw3
ICs3OCw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnJlbW92ZUl0ZW0oY29uc3Qg
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYgaXRlbUlECiAgICAgaWYgKCFpdGVtKQogICAgICAg
ICByZXR1cm47CiAgICAgICAgIAotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKCpp
dGVtKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoKml0ZW0pOwog
ICAgIFdlYkNvcmU6OlBhZ2U6OmNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBhZ2VzKGl0ZW0uZ2V0
KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDA4MTc5Mjc2M2JiY2FiMzg1Y2FhMjc1YzM1MGJmNjlkNzc4ZmFjYjAuLmRmOTYxZTQw
OWM1YTgzOWFiMThjZDU1MjdlNmY4NDk2Yzg2NzkzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAKICNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9TYW1wbGluZ1Byb2ZpbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9B
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291
cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9t
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29tbW9uVk0uaD4KQEAgLTE5Miw3ICsxOTMsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BpbmdMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudC5oPgpAQCAtMTQ5MCwxMiArMTQ5MCwxMiBAQCB2b2lkIFdlYlBhZ2U6OnN1
c3BlbmRGb3JQcm9jZXNzU3dhcCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAo
IVBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuYWRkSWZDYWNoZWFibGUoKmN1cnJlbnRIaXN0b3J5SXRl
bSwgY29yZVBhZ2UoKSkpIHsKKyAgICBpZiAoIUJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigp
LmFkZElmQ2FjaGVhYmxlKCpjdXJyZW50SGlzdG9yeUl0ZW0sIGNvcmVQYWdlKCkpKSB7CiAgICAg
ICAgIGZhaWxlZFRvU3VzcGVuZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
UGFnZSBjYWNoZSBkb2VzIG5vdCBicmVhayB0aGUgb3BlbmVyIGxpbmsgZm9yIHRoZSBtYWluIGZy
YW1lIChvbmx5IGRvZXMgc28gZm9yIHRoZSBzdWJmcmFtZXMpIGJlY2F1c2UgdGhlCisgICAgLy8g
QmFjay9mb3J3YXJkIGNhY2hlIGRvZXMgbm90IGJyZWFrIHRoZSBvcGVuZXIgbGluayBmb3IgdGhl
IG1haW4gZnJhbWUgKG9ubHkgZG9lcyBzbyBmb3IgdGhlIHN1YmZyYW1lcykgYmVjYXVzZSB0aGUK
ICAgICAvLyBtYWluIGZyYW1lIGlzIG5vcm1hbGx5IHJlLXVzZWQgZm9yIHRoZSBuYXZpZ2F0aW9u
LiBIb3dldmVyLCBpbiB0aGUgY2FzZSBvZiBwcm9jZXNzLXN3YXBwaW5nLCB0aGUgbWFpbiBmcmFt
ZQogICAgIC8vIGlzIG5vdyBob3N0ZWQgaW4gYW5vdGhlciBwcm9jZXNzIGFuZCB0aGUgb25lIGlu
IHRoaXMgcHJvY2VzcyBpcyBpbiB0aGUgY2FjaGUuCiAgICAgaWYgKG1fbWFpbkZyYW1lICYmIG1f
bWFpbkZyYW1lLT5jb3JlRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCBjNjZjODA1ZDYxZTRjMjUxNmUyNjhhM2VmOTRhZmQ4OGRiNjhlNzU4Li42YzMy
YjQyN2I1ZTgxZjZlN2Y2Mzg2NzZmYmUyYjFhNTY4OGFkYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC04Miw2ICs4Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9BWE9iamVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NQ
VU1vbml0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmg+CkBAIC0xMDcsNyArMTA4LDYg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgpA
QCAtMzA2LDkgKzMwNiw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgICAgICB9
CiAjZW5kaWYKIAotICAgICAgICAgICAgYXV0byBtYWludGFpblBhZ2VDYWNoZSA9IG1faXNTdXNw
ZW5kaW5nID8gV2ViQ29yZTo6TWFpbnRhaW5QYWdlQ2FjaGU6OlllcyA6IFdlYkNvcmU6Ok1haW50
YWluUGFnZUNhY2hlOjpObzsKKyAgICAgICAgICAgIGF1dG8gbWFpbnRhaW5CYWNrRm9yd2FyZENh
Y2hlID0gbV9pc1N1c3BlbmRpbmcgPyBXZWJDb3JlOjpNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6
OlllcyA6IFdlYkNvcmU6Ok1haW50YWluQmFja0ZvcndhcmRDYWNoZTo6Tm87CiAgICAgICAgICAg
ICBhdXRvIG1haW50YWluTWVtb3J5Q2FjaGUgPSBtX2lzU3VzcGVuZGluZyAmJiBtX2hhc1N1c3Bl
bmRlZFBhZ2VQcm94eSA/IFdlYkNvcmU6Ok1haW50YWluTWVtb3J5Q2FjaGU6OlllcyA6IFdlYkNv
cmU6Ok1haW50YWluTWVtb3J5Q2FjaGU6Ok5vOwotICAgICAgICAgICAgV2ViQ29yZTo6cmVsZWFz
ZU1lbW9yeShjcml0aWNhbCwgc3luY2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hlLCBtYWludGFp
bk1lbW9yeUNhY2hlKTsKKyAgICAgICAgICAgIFdlYkNvcmU6OnJlbGVhc2VNZW1vcnkoY3JpdGlj
YWwsIHN5bmNocm9ub3VzLCBtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUsIG1haW50YWluTWVtb3J5
Q2FjaGUpOwogICAgICAgICB9KTsKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV1BFKQogICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0U2hvdWxk
VXNlUGVyaW9kaWNNZW1vcnlNb25pdG9yKHRydWUpOwpAQCAtNDcxLDE1ICs0NzEsNiBAQCB2b2lk
IFdlYlByb2Nlc3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRh
U3RvcmVQYXJhbWV0ZXJzJiYgcAogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
OwogfQogCi1ib29sIFdlYlByb2Nlc3M6Omhhc1BhZ2VSZXF1aXJpbmdQYWdlQ2FjaGVXaGlsZVN1
c3BlbmRlZCgpIGNvbnN0Ci17Ci0gICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVl
cygpKSB7Ci0gICAgICAgIGlmIChwYWdlLT5pc1N1c3BlbmRlZCgpKQotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBXZWJQcm9jZXNz
OjphcmVBbGxQYWdlc1N1c3BlbmRlZCgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBwYWdlIDog
bV9wYWdlTWFwLnZhbHVlcygpKSB7CkBAIC02MzEsMTMgKzYyMiwxMyBAQCB2b2lkIFdlYlByb2Nl
c3M6OnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVuc2lnbmVkIGNh
Y2hlTWluRGVhZENhcGFjaXR5ID0gMDsKICAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBhY2l0
eSA9IDA7CiAgICAgU2Vjb25kcyBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsOwotICAg
IHVuc2lnbmVkIHBhZ2VDYWNoZVNpemUgPSAwOwotICAgIGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6
ZXMoY2FjaGVNb2RlbCwgY2FjaGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRDYXBhY2l0eSwg
Y2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsIHBh
Z2VDYWNoZVNpemUpOworICAgIHVuc2lnbmVkIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMDsKKyAg
ICBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKGNhY2hlTW9kZWwsIGNhY2hlVG90YWxDYXBhY2l0
eSwgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBkZWFkRGVjb2Rl
ZERhdGFEZWxldGlvbkludGVydmFsLCBiYWNrRm9yd2FyZENhY2hlU2l6ZSk7CiAKICAgICBhdXRv
JiBtZW1vcnlDYWNoZSA9IE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKTsKICAgICBtZW1vcnlDYWNo
ZS5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0
eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKICAgICBtZW1vcnlDYWNoZS5zZXREZWFkRGVjb2RlZERh
dGFEZWxldGlvbkludGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwotICAg
IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShwYWdlQ2FjaGVTaXplKTsKKyAgICBC
YWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5zZXRNYXhTaXplKGJhY2tGb3J3YXJkQ2FjaGVT
aXplKTsKIAogICAgIHBsYXRmb3JtU2V0Q2FjaGVNb2RlbChjYWNoZU1vZGVsKTsKIH0KQEAgLTEz
MDksNyArMTMwMCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoT3B0aW9u
U2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywKICAgICBVTlVTRURfUEFSQU0o
bW9kaWZpZWRTaW5jZSk7CiAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJz
aXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRv
bigpLnBydW5lVG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok5vbmUpOworICAgICAgICBCYWNr
Rm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29u
OjpOb25lKTsKICAgICAgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLmV2aWN0UmVzb3VyY2Vz
KHNlc3Npb25JRCgpKTsKIAogICAgICAgICBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hl
OjpzaW5nbGV0b24oKS5jbGVhcigpOwpAQCAtMTc3Niw3ICsxNzY3LDcgQEAgYm9vbCBXZWJQcm9j
ZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSgpIGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0QmFj
a0ZvcndhcmRDYWNoZUNhcGFjaXR5KHVuc2lnbmVkIGNhcGFjaXR5KQogewotICAgIFBhZ2VDYWNo
ZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShjYXBhY2l0eSk7CisgICAgQmFja0ZvcndhcmRDYWNo
ZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShjYXBhY2l0eSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vz
czo6Y2xlYXJDYWNoZWRQYWdlKEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJ
dGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAg
LTE3ODUsNyArMTc3Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJDYWNoZWRQYWdlKEJhY2tG
b3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIENvCiAgICAgaWYgKCFpdGVt
KQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAotICAgIFBhZ2VDYWNoZTo6
c2luZ2xldG9uKCkucmVtb3ZlKCppdGVtKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0
b24oKS5yZW1vdmUoKml0ZW0pOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGRkNjBlOGQ4MWUyZmFlMTI2ZjA0NTk1
N2MxY2JjNmUyMzllZGE5OGIuLjhjMjQ2YWZhNzdmZTE1ZmFmOTk0ZTA4OWU3N2YxM2YzZTUyNjk1
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzkwLDcgKzM5MCw2
IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRv
U3VzcGVuZCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hv
dWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQpOwogCi0gICAgYm9vbCBoYXNQYWdlUmVx
dWlyaW5nUGFnZUNhY2hlV2hpbGVTdXNwZW5kZWQoKSBjb25zdDsKICAgICBib29sIGFyZUFsbFBh
Z2VzU3VzcGVuZGVkKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuc3VyZUF1dG9tYXRpb25TZXNzaW9u
UHJveHkoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCmluZGV4IDk4OTc0NTYz
N2RhM2MxNGQ3OGI5NzJjYTQ1NTYwYzk0YjMwMDk3NmUuLjJkYjczOGZmMDUzZDlmNzU3MDBiNDM2
ZDE5ZWI5ZmQ2OGI2MDdhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dl
YlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dl
YlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCkBAIC04Miw3ICs4Miw3IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFdlYk1lZGlhQ2FwdHVyZVR5cGUpIHsKIC0gKHZvaWQpd2ViVmlldzooV2Vi
VmlldyAqKXdlYlZpZXcgZWxlbWVudERpZEZvY3VzTm9kZTooRE9NTm9kZSAqKW5vZGU7CiAtICh2
b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGVsZW1lbnREaWRCbHVyTm9kZTooRE9NTm9k
ZSAqKW5vZGU7CiAKLS8vIFBhZ2VDYWNoZSBzdXBwb3J0CisvLyBCYWNrRm9yd2FyZENhY2hlIHN1
cHBvcnQKIC0gKHZvaWQpd2ViVmlld0RpZFJlc3RvcmVGcm9tUGFnZUNhY2hlOihXZWJWaWV3ICop
d2ViVmlldzsKIAogLSAoTlNWaWV3ICopd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcGx1Z0lu
Vmlld1dpdGhBcmd1bWVudHM6KE5TRGljdGlvbmFyeSAqKWFyZ3VtZW50cyBmcm9tUGx1Z0luUGFj
a2FnZTooV2ViUGx1Z2luUGFja2FnZSAqKXBhY2thZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9IaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCmluZGV4IGI3MDk1YTdkZTI4Njlm
MWY2ZjU0ZWY1OTlkNThhYTNmMWRhZTI5ZDQuLmQwNTRhMWI5NGQwMDE4ODRhYzQzODQ5YTE0N2Vl
OTZjZDFiMzdjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rvcnkv
QmFja0ZvcndhcmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rvcnkv
QmFja0ZvcndhcmRMaXN0Lm1tCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpbmNsdWRlICJCYWNrRm9y
d2FyZExpc3QuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgQmFja0ZvcndhcmRMaXN0OjphZGRJdGVtKFJlZjxIaXN0
b3J5SXRlbT4mJiBuZXdJdGVtKQogICAgICAgICB3aGlsZSAobV9lbnRyaWVzLnNpemUoKSA+IHRh
cmdldFNpemUpIHsKICAgICAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9IG1fZW50cmll
cy50YWtlTGFzdCgpOwogICAgICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkp
OwotICAgICAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CisgICAg
ICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CiAgICAg
ICAgIH0KICAgICB9CiAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBCYWNrRm9yd2FyZExpc3Q6OmFk
ZEl0ZW0oUmVmPEhpc3RvcnlJdGVtPiYmIG5ld0l0ZW0pCiAgICAgICAgIFJlZjxIaXN0b3J5SXRl
bT4gaXRlbSA9IFdURk1vdmUobV9lbnRyaWVzWzBdKTsKICAgICAgICAgbV9lbnRyaWVzLnJlbW92
ZSgwKTsKICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwotICAgICAgICBQ
YWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFja0ZvcndhcmRD
YWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgICAgICAtLW1fY3VycmVudDsKICAg
ICB9CiAKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6c2V0Q2FwYWNp
dHkoaW50IHNpemUpCiAgICAgd2hpbGUgKHNpemUgPCBzdGF0aWNfY2FzdDxpbnQ+KG1fZW50cmll
cy5zaXplKCkpKSB7CiAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9IG1fZW50cmllcy50
YWtlTGFzdCgpOwogICAgICAgICBtX2VudHJ5SGFzaC5yZW1vdmUoaXRlbS5wdHIoKSk7Ci0gICAg
ICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOworICAgICAgICBCYWNrRm9y
d2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CiAgICAgfQogCiAgICAgaWYgKCFz
aXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJCYWNr
Rm9yd2FyZExpc3QubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tG
b3J3YXJkTGlzdC5tbQppbmRleCBkZjYyZGE5NjZjNzlkM2E2M2ExZmUwNjNiMTA1MDJkODNjZjg5
MDdiLi4xOGYwMTNhMGE4NzViZDM2ZTg5NTU4NjYzNGFiN2Q4YjBhOGIwMmI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5t
bQpAQCAtNDAsOCArNDAsOCBAQAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV2ViVmlld1ByaXZhdGUuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVU
aHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hl
Y2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAgLTMzOSw3ICsz
MzksNyBAQCAtICh2b2lkKXNldFBhZ2VDYWNoZVNpemU6KE5TVUludGVnZXIpc2l6ZQogCiAtIChO
U1VJbnRlZ2VyKXBhZ2VDYWNoZVNpemUKIHsKLSAgICByZXR1cm4gW2NvcmUoc2VsZiktPndlYlZp
ZXcoKSB1c2VzUGFnZUNhY2hlXSA/IFdlYkNvcmU6OlBhZ2VDYWNoZTo6c2luZ2xldG9uKCkubWF4
U2l6ZSgpIDogMDsKKyAgICByZXR1cm4gW2NvcmUoc2VsZiktPndlYlZpZXcoKSB1c2VzUGFnZUNh
Y2hlXSA/IFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLm1heFNpemUoKSA6
IDA7CiB9CiAKIC0gKGludCliYWNrTGlzdENvdW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCBjN2MwMjdiMzQwZDAwYWMyZjAy
ZTg3OThmMTRhNjJhY2U3ODU4ZWVlLi5hOGQzYmMyMDY4ZjJjNzYzZjk1NTdkODFjN2Y1ZGRmMGY1
YjdlMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhp
c3RvcnlJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlz
dG9yeUl0ZW0ubW0KQEAgLTQzLDkgKzQzLDkgQEAKICNpbXBvcnQgIldlYlBsdWdpbkNvbnRyb2xs
ZXIuaCIKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRD
b3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRD
YWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9JbWFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4K
ICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC01OTgsOSArNTk4LDkgQEAgLSAodm9pZClf
c2V0U2Nyb2xsUG9pbnQ6KENHUG9pbnQpc2Nyb2xsUG9pbnQKIAogI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAKLS0gKEJPT0wpX2lzSW5QYWdlQ2FjaGUKKy0gKEJPT0wpX2lzSW5CYWNr
Rm9yd2FyZENhY2hlCiB7Ci0gICAgcmV0dXJuIGNvcmUoX3ByaXZhdGUpLT5pc0luUGFnZUNhY2hl
KCk7CisgICAgcmV0dXJuIGNvcmUoX3ByaXZhdGUpLT5pc0luQmFja0ZvcndhcmRDYWNoZSgpOwog
fQogCiAtIChCT09MKV9oYXNDYWNoZWRQYWdlRXhwaXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1Qcml2YXRlLmgKaW5kZXggOWQw
YWE4ZDE4YWQwOTYxNjgwN2VlMjUyNDkyOGZjYTZiZmY5ODUzOS4uYmE1ZDU1Y2M3NDRkZTk0NjM2
YzI1NmRkYTk5MjU1OTFjMDkyMmU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oCkBAIC03Nyw3ICs3Nyw3IEBA
IGV4dGVybiBOU1N0cmluZyAqV2ViVmlld3BvcnRGaXRDb3ZlclZhbHVlOwogLSAodm9pZClfc2V0
U2Nyb2xsUG9pbnQ6KENHUG9pbnQpc2Nyb2xsUG9pbnQ7CiAjZW5kaWYKIAotLSAoQk9PTClfaXNJ
blBhZ2VDYWNoZTsKKy0gKEJPT0wpX2lzSW5CYWNrRm9yd2FyZENhY2hlOwogLSAoQk9PTClfaGFz
Q2FjaGVkUGFnZUV4cGlyZWQ7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL01pc2MvV2ViQ2FjaGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dl
YkNhY2hlLm1tCmluZGV4IGI1MGIyMWM4NWJjZGJmNzI1OTk0MGM0MzZiMGJlMmUzNjQ0OGZmY2Eu
LjUxMzdlNDFjMjQyZmNhNTVjNGEwOTRiNjQzMzczZTllMGE2ZmVjMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvTWlzYy9XZWJDYWNoZS5tbQpAQCAtNDYsOSArNDYsOSBAQAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaW1wb3J0ICJNZW1vcnlNZWFzdXJlLmgiCiAjaW1wb3J0ICJXZWJG
cmFtZUludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNp
bXBvcnQgPFdlYkNvcmUvQ2FjaGVkSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVU
aHJlYWRSdW4uaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlz
Yy9XZWJDb3JlU3RhdGlzdGljcy5tbQppbmRleCBjODY4NGM0NmM1YjBkMjE1MmJlOWNhYzFkNzgy
YzRlNGZiMGIwNDBjLi40NjY2NjUzNDJhMWVhMzlmNzcwYjc2MDg0YjRiYjJjYzM4ZTUzYmUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3Mu
bW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKICNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvTWVt
b3J5U3RhdGlzdGljcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDYWNoZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgpAQCAtNDAsNyArNDEsNiBAQAogI2ltcG9ydCA8
V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1BhZ2VD
YWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ29uc29sZUNsaWVudC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QcmludENvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4
dC5oPgpAQCAtMjI0LDEyICsyMjQsMTIgQEAgKyAodm9pZClyZXR1cm5GcmVlTWVtb3J5VG9TeXN0
ZW0KIAogKyAoaW50KWNhY2hlZFBhZ2VDb3VudAogewotICAgIHJldHVybiBQYWdlQ2FjaGU6OnNp
bmdsZXRvbigpLnBhZ2VDb3VudCgpOworICAgIHJldHVybiBCYWNrRm9yd2FyZENhY2hlOjpzaW5n
bGV0b24oKS5wYWdlQ291bnQoKTsKIH0KIAogKyAoaW50KWNhY2hlZEZyYW1lQ291bnQKIHsKLSAg
ICByZXR1cm4gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5mcmFtZUNvdW50KCk7CisgICAgcmV0dXJu
IEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLmZyYW1lQ291bnQoKTsKIH0KIAogLy8gRGVw
cmVjYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYzIxYmRjZjcxMDYzOTY5ZTEx
Y2JkYmIwYTViOTNlNWJhYTg2ZDgzNC4uYjRlZTllNjA2YzU3ZmNmNTcyZTExMzg2MzliYzE0NTM0
ZjM3ODkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC02OSw3ICs2OSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqKSBmaW5hbDsKICAgICBib29sIGhhc0hUTUxWaWV3KCkgY29uc3QgZmluYWw7CiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbVBhZ2VD
YWNoZSgpIGZpbmFsOworICAgIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFja0Zvcndh
cmRDYWNoZSgpIGZpbmFsOwogI2VuZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZvck5vbkhUTUwo
KSBmaW5hbDsKIApAQCAtMTg0LDcgKzE4NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lk
IHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKSBmaW5hbDsKIAotICAgIHZvaWQgZGlk
UmVzdG9yZUZyb21QYWdlQ2FjaGUoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlc3RvcmVGcm9tQmFj
a0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogCiAgICAgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KGJvb2wpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDJlMzUz
NzU1NjgxZjM5NWQzOWNjNjkxZjdjYzcwZTVlNWIwMDk0ODQuLmEzZTk4MzM4YjY0ODllYWM5NmI3
YzFkMDk3OWQyNTU2MWZhMGM1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0y
MzksMTAgKzIzOSwxMCBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpoYXNIVE1MVmlldygp
IGNvbnN0CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotYm9vbCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Zm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkKK2Jvb2wgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUo
KQogewogICAgIE5TVmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqdmlldyA9IFttX3dlYkZyYW1lLT5f
cHJpdmF0ZS0+d2ViRnJhbWVWaWV3IGRvY3VtZW50Vmlld107Ci0gICAgLy8gVGhpcyBnZXRzIGNh
bGxlZCB0byBsYXkgb3V0IGEgcGFnZSByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlLgorICAg
IC8vIFRoaXMgZ2V0cyBjYWxsZWQgdG8gbGF5IG91dCBhIHBhZ2UgcmVzdG9yZWQgZnJvbSB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlLgogICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRpbWluZyBwcm9ibGVt
cyB3aXRoIFVJS2l0LCByZXN0b3JlIGZpeGVkIAogICAgIC8vIGxheW91dCBzZXR0aW5ncyBoZXJl
LgogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwpA
QCAtMTQ5NSw3ICsxNDk1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlv
blRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgfQogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKQogewogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5n
ZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJWaXNpdGVkTGlua1N0b3JlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5tbQppbmRleCAwODQ0YjM5ZDM2NzA1NTNhMDkz
MjI3MWNlZGI3MzkwNzBhMTg1YzhiLi5kNTdkY2M1ZDUxMGY5NDA3OTFhYTcwMDE0NWNmOTQ1M2M1
NzUwMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJWaXNpdGVkTGlua1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUubW0KQEAgLTMwLDcgKzMwLDcgQEAKICNp
bXBvcnQgIldlYkhpc3RvcnlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViSGlzdG9yeUludGVybmFs
LmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUNh
Y2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbXBvcnQgPHd0
Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5k
ZXggYmM3NzRkNzY1NjE2YTVhOGM0YTMwMjkxNWRhNzliYjM1MzkzYjAzNy4uYzJlZmI3N2MzZTgz
NDEzZjVhYzNiN2MxOWIwNWJhNWM0YWQ5ZTM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0zMzQyLDcgKzMzNDIsNyBAQCAtICh2b2lk
KWxheW91dFRvTWluaW11bVBhZ2VXaWR0aDooZmxvYXQpbWluUGFnZUxvZ2ljYWxXaWR0aCBoZWln
aHQ6KGZsb2F0KW1pblBhZwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAg
ICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoY29yZUZyYW1lLT5k
b2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50OjpOb3RJblBh
Z2VDYWNoZSkKKyAgICAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgIT0gV2ViQ29yZTo6RG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY29yZUZyYW1lLT5kb2N1bWVudCgpLT51cGRh
dGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgfQpAQCAtMzg1NCw3ICszODU0LDcgQEAgLSAodm9pZClz
ZXROZWVkc0xheW91dDogKEJPT0wpZmxhZwogICAgIGlmICghZmxhZykKICAgICAgICAgcmV0dXJu
OyAvLyBUaGVyZSdzIG5vIHdheSB0byBzYXkgeW91IGRvbid0IG5lZWQgYSBsYXlvdXQuCiAgICAg
aWYgKGF1dG8qIGZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkgewotICAgICAgICBpZiAoZnJh
bWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPnBhZ2VDYWNoZVN0YXRlKCkgIT0g
V2ViQ29yZTo6RG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgICAgICBpZiAoZnJhbWUtPmRv
Y3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9
IFdlYkNvcmU6OkRvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIGlmIChhdXRvKiB2aWV3ID0gZnJhbWUtPnZpZXcoKSkKICAgICAgICAg
ICAgIHZpZXctPnNldE5lZWRzTGF5b3V0QWZ0ZXJWaWV3Q29uZmlndXJhdGlvbkNoYW5nZSgpOwpA
QCAtMzg2Nyw3ICszODY3LDcgQEAgLSAodm9pZClzZXROZWVkc1RvQXBwbHlTdHlsZXM6IChCT09M
KWZsYWcKICAgICBpZiAoIWZsYWcpCiAgICAgICAgIHJldHVybjsgLy8gVGhlcmUncyBubyB3YXkg
dG8gc2F5IHlvdSBkb24ndCBuZWVkIGEgc3R5bGUgcmVjYWxjLgogICAgIGlmIChhdXRvKiBmcmFt
ZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgp
ICYmIGZyYW1lLT5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IFdlYkNvcmU6OkRvY3Vt
ZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZy
YW1lLT5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBXZWJDb3JlOjpEb2N1
bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDQ4ODZjODQ5
MzE3OGViNTFlMWM5NDM4NjlmMTM5NTdmNzZlYTMyN2UuLjRlZWEzMWQ5ZDI5YmQ3Yjk5Y2QwN2Q5
MjRjYjNiMDM3NGE2MmIyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KQEAgLTEzMCw2ICsxMzAsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNW
YWx1ZVJlZi5oPgogI2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2Fy
ZENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oPgpAQCAtMTg1LDcgKzE4
Niw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9Ob3RpZmljYXRpb25Db250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KLSNp
bXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25maWd1
cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QYXRoVXRpbGl0aWVzLmg+CkBAIC0yMzY3LDggKzIzNjcsOCBAQCAtICh2b2lkKV9jbG9zZQog
CiAgICAgX3ByaXZhdGUtPmdyb3VwLT5yZW1vdmVXZWJWaWV3KHNlbGYpOwogCi0gICAgLy8gRGVs
ZXRlaW5nIHRoZSBXZWJDb3JlOjpQYWdlIHdpbGwgY2xlYXIgdGhlIHBhZ2UgY2FjaGUgc28gd2Ug
Y2FsbCBkZXN0cm95IG9uCi0gICAgLy8gYWxsIHRoZSBwbHVnLWlucyBpbiB0aGUgcGFnZSBjYWNo
ZSB0byBicmVhayBhbnkgcmV0YWluIGN5Y2xlcy4KKyAgICAvLyBEZWxldGVpbmcgdGhlIFdlYkNv
cmU6OlBhZ2Ugd2lsbCBjbGVhciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHNvIHdlIGNhbGwgZGVz
dHJveSBvbgorICAgIC8vIGFsbCB0aGUgcGx1Zy1pbnMgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZSB0byBicmVhayBhbnkgcmV0YWluIGN5Y2xlcy4KICAgICAvLyBTZWUgY29tbWVudCBpbiBIaXN0
b3J5SXRlbTo6cmVsZWFzZUFsbFBlbmRpbmdQYWdlQ2FjaGVzKCkgZm9yIG1vcmUgaW5mb3JtYXRp
b24uCiAgICAgYXV0byogcGFnZSA9IF9wcml2YXRlLT5wYWdlOwogICAgIF9wcml2YXRlLT5wYWdl
ID0gbnVsbHB0cjsKQEAgLTI5MTEsOCArMjkxMSw4IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hh
bmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdzLnNldEVkaXRh
YmxlTGlua0JlaGF2aW9yKGNvcmUoW3ByZWZlcmVuY2VzIGVkaXRhYmxlTGlua0JlaGF2aW9yXSkp
OwogICAgIHNldHRpbmdzLnNldFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Io
Y29yZShbcHJlZmVyZW5jZXMgdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcl0p
KTsKICAgICBzZXR0aW5ncy5zZXRET01QYXN0ZUFsbG93ZWQoW3ByZWZlcmVuY2VzIGlzRE9NUGFz
dGVBbGxvd2VkXSk7Ci0gICAgc2V0dGluZ3Muc2V0VXNlc1BhZ2VDYWNoZShbc2VsZiB1c2VzUGFn
ZUNhY2hlXSk7Ci0gICAgc2V0dGluZ3Muc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKFtwcmVm
ZXJlbmNlcyBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnNdKTsKKyAgICBzZXR0aW5ncy5zZXRVc2Vz
QmFja0ZvcndhcmRDYWNoZShbc2VsZiB1c2VzUGFnZUNhY2hlXSk7CisgICAgc2V0dGluZ3Muc2V0
QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhbcHJlZmVyZW5jZXMgcGFnZUNhY2hlU3Vw
cG9ydHNQbHVnaW5zXSk7CiAgICAgc2V0dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNoZUV4cGlyYXRp
b25JbnRlcnZhbChTZWNvbmRzIHsgW3ByZWZlcmVuY2VzIF9iYWNrRm9yd2FyZENhY2hlRXhwaXJh
dGlvbkludGVydmFsXSB9KTsKIAogICAgIHNldHRpbmdzLnNldERldmVsb3BlckV4dHJhc0VuYWJs
ZWQoW3ByZWZlcmVuY2VzIGRldmVsb3BlckV4dHJhc0VuYWJsZWRdKTsKQEAgLTQzNTksNyArNDM1
OSw3IEBAIC0gKE5TQXJyYXkgKilfdG91Y2hFdmVudFJlZ2lvbnMKICNlbmRpZiAvLyBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQogCiAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUg
V2ViQmFja0ZvcndhcmRMaXN0IEFQSSwgd2UgaG9ub3IgYm90aAotLy8gYSBwZXItV2ViVmlldyBh
bmQgYSBwZXItcHJlZmVyZW5jZXMgc2V0dGluZyBmb3Igd2hldGhlciB0byB1c2UgdGhlIHBhZ2Ug
Y2FjaGUuCisvLyBhIHBlci1XZWJWaWV3IGFuZCBhIHBlci1wcmVmZXJlbmNlcyBzZXR0aW5nIGZv
ciB3aGV0aGVyIHRvIHVzZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogCiAtIChCT09MKXVzZXNQ
YWdlQ2FjaGUKIHsKQEAgLTg3OTcsNyArODc5Nyw3IEBAICsgKHZvaWQpX3NldENhY2hlTW9kZWw6
KFdlYkNhY2hlTW9kZWwpY2FjaGVNb2RlbAogCiAgICAgc3dpdGNoIChjYWNoZU1vZGVsKSB7CiAg
ICAgY2FzZSBXZWJDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI6IHsKLSAgICAgICAgLy8gUGFnZSBj
YWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIEJhY2svZm9yd2FyZCBjYWNoZSBj
YXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIHBhZ2VDYWNoZVNpemUgPSAwOwogCiAgICAgICAg
IC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKQEAgLTg4MzMsNyArODgzMyw3
IEBAICsgKHZvaWQpX3NldENhY2hlTW9kZWw6KFdlYkNhY2hlTW9kZWwpY2FjaGVNb2RlbAogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBXZWJDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2Vy
OiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAv
LyBCYWNrL2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICBpZiAobWVt
U2l6ZSA+PSA1MTIpCiAgICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxz
ZSBpZiAobWVtU2l6ZSA+PSAyNTYpCkBAIC04ODg0LDcgKzg4ODQsNyBAQCArICh2b2lkKV9zZXRD
YWNoZU1vZGVsOihXZWJDYWNoZU1vZGVsKWNhY2hlTW9kZWwKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0gICAgICAgIC8v
IFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNrL2ZvcndhcmQg
Y2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICBpZiAobWVtU2l6ZSA+PSA1MTIpCiAg
ICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+
PSAyNTYpCkBAIC04OTY3LDcgKzg5NjcsNyBAQCArICh2b2lkKV9zZXRDYWNoZU1vZGVsOihXZWJD
YWNoZU1vZGVsKWNhY2hlTW9kZWwKICAgICBtZW1vcnlDYWNoZS5zZXRDYXBhY2l0aWVzKGNhY2hl
TWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5
KTsKICAgICBtZW1vcnlDYWNoZS5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRl
YWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwogCi0gICAgYXV0byYgcGFnZUNhY2hlID0g
V2ViQ29yZTo6UGFnZUNhY2hlOjpzaW5nbGV0b24oKTsKKyAgICBhdXRvJiBwYWdlQ2FjaGUgPSBX
ZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKTsKICAgICBwYWdlQ2FjaGUuc2V0
TWF4U2l6ZShwYWdlQ2FjaGVTaXplKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIG5z
dXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IHN0ZDo6bWF4KG5zdXJsQ2FjaGVNZW1vcnlDYXBhY2l0
eSwgW25zdXJsQ2FjaGUgbWVtb3J5Q2FwYWNpdHldKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9CYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IGRhZWExNjFhMTA1YmEyZWI0ZjY3MThiNTI3YjM1
MzRhODg0OTc0OTYuLmIyMDE0OGZkZWQyYTQ2Y2MyNmM0ZDBkZjc5NDI3MThhNmY1OGMyODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQmFja0ZvcndhcmRMaXN0LmNwcApAQCAtMjcsMTIg
KzI3LDEyIEBACiAjaW5jbHVkZSAiV2ViS2l0RExMLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRM
aXN0LmgiCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hp
c3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oPgogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgRGVmYXVsdENhcGFjaXR5ID0gMTAwOwpAQCAt
NjQsNyArNjQsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6YWRkSXRlbShSZWY8SGlzdG9yeUl0
ZW0+JiYgbmV3SXRlbSkKICAgICAgICAgd2hpbGUgKG1fZW50cmllcy5zaXplKCkgPiB0YXJnZXRT
aXplKSB7CiAgICAgICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2VudHJpZXMudGFr
ZUxhc3QoKTsKICAgICAgICAgICAgIG1fZW50cnlIYXNoLnJlbW92ZShpdGVtLnB0cigpKTsKLSAg
ICAgICAgICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOworICAgICAgICAg
ICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgICAgICB9
CiAgICAgfQogCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgQmFja0ZvcndhcmRMaXN0OjphZGRJdGVt
KFJlZjxIaXN0b3J5SXRlbT4mJiBuZXdJdGVtKQogICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0
ZW0gPSBXVEZNb3ZlKG1fZW50cmllc1swXSk7CiAgICAgICAgIG1fZW50cmllcy5yZW1vdmUoMCk7
CiAgICAgICAgIG1fZW50cnlIYXNoLnJlbW92ZShpdGVtLnB0cigpKTsKLSAgICAgICAgUGFnZUNh
Y2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6
OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKICAgICAgICAgLS1tX2N1cnJlbnQ7CiAgICAgfQog
CkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBCYWNrRm9yd2FyZExpc3Q6OnNldENhcGFjaXR5KGlu
dCBzaXplKQogICAgIHdoaWxlIChzaXplIDwgc3RhdGljX2Nhc3Q8aW50PihtX2VudHJpZXMuc2l6
ZSgpKSkgewogICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2VudHJpZXMudGFrZUxh
c3QoKTsKICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwotICAgICAgICBQ
YWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFja0ZvcndhcmRD
YWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgIH0KIAogICAgIGlmICghc2l6ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAppbmRleCA5
MTIwYWNjOGUwYjlmOTVlNTY3OTYxNGMwOTg4MjExZjJlODUzNzcyLi45Yzk2YTY3ZTlkMGMxZjkw
NDQyZjBiNDBjNDQ4MjZiNWM1NmI1YTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN0YXRpc3RpY3MuY3BwCkBAIC0yOSwxMyArMjksMTMgQEAKICNpbmNsdWRlICJDT01Q
cm9wZXJ0eUJhZy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9ET01XaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRDYWNoZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9H
bHlwaFBhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDb25zb2xlQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
aGFyZWRCdWZmZXIuaD4KQEAgLTMyMCw3ICszMjAsNyBAQCBIUkVTVUxUIFdlYkNvcmVTdGF0aXN0
aWNzOjpjYWNoZWRQYWdlQ291bnQoX091dF8gSU5UKiBjb3VudCkKICAgICBpZiAoIWNvdW50KQog
ICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwogCi0gICAgKmNvdW50ID0gUGFnZUNhY2hlOjpzaW5n
bGV0b24oKS5wYWdlQ291bnQoKTsKKyAgICAqY291bnQgPSBCYWNrRm9yd2FyZENhY2hlOjpzaW5n
bGV0b24oKS5wYWdlQ291bnQoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAtMzI5LDYgKzMy
OSw2IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRpc3RpY3M6OmNhY2hlZEZyYW1lQ291bnQoX091dF8g
SU5UKiBjb3VudCkKICAgICBpZiAoIWNvdW50KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwog
Ci0gICAgKmNvdW50ID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5mcmFtZUNvdW50KCk7CisgICAg
KmNvdW50ID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZnJhbWVDb3VudCgpOwogICAg
IHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDI2MjEx
ZmE5Njc4MDZhNDRmYWFkMDY4YTA3OGIxMzYzMThlZTRiMGYuLmFiMGYxZDUxMGZkNDU2MDdkNDVm
NzlkNDM0ODczMzQ1MGE1MzRlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAg
LTk5Miw3ICs5OTIsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9D
b21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBjb3JlKG1fd2ViRnJhbWUpLT5jcmVhdGVWaWV3KGVu
Y2xvc2luZ0ludFJlY3QobG9naWNhbEZyYW1lKS5zaXplKCksIGJhY2tncm91bmRDb2xvciwgLyog
Zml4ZWRMYXlvdXRTaXplICovIHsgfSwgLyogZml4ZWRWaXNpYmxlQ29udGVudFJlY3QgKi8geyB9
KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21QYWdlQ2Fj
aGUoKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21CYWNrRm9yd2Fy
ZENhY2hlKCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggODU2ZjUyNWZk
Y2U5M2RkZjRmZTdmZGVhZmY0MjU1ZTVmZjU0Nzc1MC4uNjc2YThkNjFjNTM4OTBiOTlhNGU0NDc3
ODBlNWZhZDBjOTI5MjY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNzYsNyAr
MTc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwogICAg
IHZvaWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpIG92ZXJyaWRlOwogCi0gICAg
dm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVz
dG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpc3BhdGNo
RGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9y
ZS5jcHAKaW5kZXggMmE1ZTEwNTM2N2EwZmZmNjk1ZjgwNTMxYmM0YjVjN2I5OTk5OWQ3My4uMjAw
YTYzYzZjNWRkZGQ5Mjc4YzA0YjRkMmZkNDEzMTAyNDFhOTc1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExp
bmtTdG9yZS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIldlYkhpc3RvcnkuaCIK
ICNpbmNsdWRlICJXZWJWaWV3LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJGcmFtZS5jcHAKaW5kZXggMWE2YTczYjZlZThlYjA3YWU2NmI5MjVlODY4ODk1OTc1MzAx
ZTIzZi4uYTg3MjYwZjQ1YjY2MjQxNWM1ZWUxZTM3MGY0Yjc4ZTczMjZlMTAzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcApAQCAtMjExOSw3ICsyMTE5LDcgQEAgQ09NUHRyPElB
Y2Nlc3NpYmxlPiBXZWJGcmFtZTo6YWNjZXNzaWJsZSgpIGNvbnN0CiAgICAgZWxzZSBpZiAoIW1f
YWNjZXNzaWJsZSB8fCBtX2FjY2Vzc2libGUtPmRvY3VtZW50KCkgIT0gY3VycmVudERvY3VtZW50
KSB7CiAgICAgICAgIC8vIEVpdGhlciB3ZSd2ZSBuZXZlciBoYWQgYSB3cmFwcGVyIGZvciB0aGlz
IGZyYW1lJ3MgdG9wLWxldmVsIERvY3VtZW50LAogICAgICAgICAvLyB0aGUgRG9jdW1lbnQgcmVu
ZGVyZXIgd2FzIGRlc3Ryb3llZCBhbmQgaXRzIHdyYXBwZXIgd2FzIGRldGFjaGVkLCBvcgotICAg
ICAgICAvLyB0aGUgcHJldmlvdXMgRG9jdW1lbnQgaXMgaW4gdGhlIHBhZ2UgY2FjaGUsIGFuZCB0
aGUgY3VycmVudCBkb2N1bWVudAorICAgICAgICAvLyB0aGUgcHJldmlvdXMgRG9jdW1lbnQgaXMg
aW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYW5kIHRoZSBjdXJyZW50IGRvY3VtZW50CiAgICAg
ICAgIC8vIG5lZWRzIHRvIGJlIHdyYXBwZWQuCiAgICAgICAgIG1fYWNjZXNzaWJsZSA9IG5ldyBB
Y2Nlc3NpYmxlRG9jdW1lbnQoY3VycmVudERvY3VtZW50LCB3ZWJWaWV3KCktPnZpZXdXaW5kb3co
KSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3OTBjMWExYjg5
OGJmNWQwMzE2MGNkMjliYjhmMDcyNDRlNDU2ODYyLi40NmY0ZjQ1N2NiMmFmZjk3ZTBiYjc0YmU1
MzgxZDllNGQ1ZWRhZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtNzks
NiArNzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0JT
dHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQml0
bWFwSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaD4KQEAg
LTEzMSw4ICsxMzIsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29uZmlndXJhdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YXRoVXRpbGl0aWVzLmg+CkBAIC01NDAsMTMgKzUzOSwxMyBAQCB2b2lkIFdlYlZpZXc6OnNldENh
Y2hlTW9kZWwoV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVuc2lnbmVkIGNhY2hlTWF4
RGVhZENhcGFjaXR5ID0gMDsKICAgICBTZWNvbmRzIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50
ZXJ2YWw7CiAKLSAgICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplID0gMDsKKyAgICB1bnNpZ25lZCBi
YWNrRm9yd2FyZENhY2hlU2l6ZSA9IDA7CiAKIAogICAgIHN3aXRjaCAoY2FjaGVNb2RlbCkgewog
ICAgIGNhc2UgV2ViQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOiB7Ci0gICAgICAgIC8vIFBhZ2Ug
Y2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQotICAgICAgICBwYWdlQ2FjaGVTaXplID0gMDsKKyAg
ICAgICAgLy8gQmFjay9mb3J3YXJkIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykKKyAgICAgICAg
YmFja0ZvcndhcmRDYWNoZVNpemUgPSAwOwogCiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBh
Y2l0aWVzIChpbiBieXRlcykKICAgICAgICAgaWYgKG1lbVNpemUgPj0gMjA0OCkKQEAgLTU3MSwx
NSArNTcwLDE1IEBAIHZvaWQgV2ViVmlldzo6c2V0Q2FjaGVNb2RlbChXZWJDYWNoZU1vZGVsIGNh
Y2hlTW9kZWwpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYkNhY2hlTW9kZWxE
b2N1bWVudEJyb3dzZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFn
ZXMpCisgICAgICAgIC8vIEJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAg
ICAgICAgIGlmIChtZW1TaXplID49IDEwMjQpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0g
MzsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMzsKICAgICAgICAgZWxzZSBp
ZiAobWVtU2l6ZSA+PSA1MTIpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKKyAgICAg
ICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBpZiAobWVtU2l6
ZSA+PSAyNTYpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMTsKKyAgICAgICAgICAgIGJh
Y2tGb3J3YXJkQ2FjaGVTaXplID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcGFnZUNh
Y2hlU2l6ZSA9IDA7CisgICAgICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDA7CiAKICAg
ICAgICAgLy8gT2JqZWN0IGNhY2hlIGNhcGFjaXRpZXMgKGluIGJ5dGVzKQogICAgICAgICBpZiAo
bWVtU2l6ZSA+PSAyMDQ4KQpAQCAtNjE3LDE4ICs2MTYsMTggQEAgdm9pZCBXZWJWaWV3OjpzZXRD
YWNoZU1vZGVsKFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbCkKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0gICAgICAgIC8v
IFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNrL2ZvcndhcmQg
Y2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICAvLyAoUmVzZWFyY2ggaW5kaWNhdGVz
IHRoYXQgdmFsdWUgLyBwYWdlIGRyb3BzIHN1YnN0YW50aWFsbHkgYWZ0ZXIgMyBwYWdlcy4pCiAg
ICAgICAgIGlmIChtZW1TaXplID49IDIwNDgpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0g
NTsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gNTsKICAgICAgICAgZWxzZSBp
ZiAobWVtU2l6ZSA+PSAxMDI0KQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDQ7CisgICAg
ICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDQ7CiAgICAgICAgIGVsc2UgaWYgKG1lbVNp
emUgPj0gNTEyKQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDM7CisgICAgICAgICAgICBi
YWNrRm9yd2FyZENhY2hlU2l6ZSA9IDM7CiAgICAgICAgIGVsc2UgaWYgKG1lbVNpemUgPj0gMjU2
KQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDI7CisgICAgICAgICAgICBiYWNrRm9yd2Fy
ZENhY2hlU2l6ZSA9IDI7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBhZ2VDYWNoZVNpemUg
PSAxOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZVNpemUgPSAxOwogCiAgICAgICAgIC8v
IE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKICAgICAgICAgLy8gKFRlc3Rpbmcg
aW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBNQiBkZXBlbmRzIGhlYXZpbHkgb24gY29udGVudCBhbmQK
QEAgLTY4Niw3ICs2ODUsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVN
b2RlbCBjYWNoZU1vZGVsKQogICAgIGF1dG8mIG1lbW9yeUNhY2hlID0gTWVtb3J5Q2FjaGU6OnNp
bmdsZXRvbigpOwogICAgIG1lbW9yeUNhY2hlLnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2Fw
YWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOwogICAgIG1l
bW9yeUNhY2hlLnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWRE
YXRhRGVsZXRpb25JbnRlcnZhbCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5zZXRNYXhT
aXplKHBhZ2VDYWNoZVNpemUpOworICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnNl
dE1heFNpemUoYmFja0ZvcndhcmRDYWNoZVNpemUpOwogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElP
TikKICAgICAvLyBEb24ndCBzaHJpbmsgYSBiaWcgZGlzayBjYWNoZSwgc2luY2UgdGhhdCB3b3Vs
ZCBjYXVzZSBjaHVybi4KQEAgLTUzODUsNyArNTM4NCw3IEBAIEhSRVNVTFQgV2ViVmlldzo6bm90
aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAg
ICBociA9IHByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCZlbmFibGVkKTsKICAgICBpZiAoRkFJ
TEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwotICAgIHNldHRpbmdzLnNldFVzZXNQYWdlQ2Fj
aGUoISFlbmFibGVkKTsKKyAgICBzZXR0aW5ncy5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZSghIWVu
YWJsZWQpOwogCiAgICAgaHIgPSBwcmVmZXJlbmNlcy0+aXNET01QYXN0ZUFsbG93ZWQoJmVuYWJs
ZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDljOWM1MDBhMTMyNjkyZWZmOGJhOTVhZWMwN2RlNDZhYWM5
MzlkNGMuLjJmNDY4MWU0NWNjMzVmNTcyNDYyMThkZjg0M2YyY2QxZThhMTc2MTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBA
QAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9y
d2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3Mn
cyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAob3ZlcnJpZGVQcmVmZXJlbmNlQ2FsbGJhY2spOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAg
KHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldFdlYlByZWZlcmVuY2Vz
VG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9w
dGlvbnMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbkJhc2ljLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6RE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZTo6d2lsbERp
c2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGU6OmRpZFJlY29ubmVjdERPTVdp
bmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVfQnVuZGxlLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkRpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5C
YWNrRm9yd2FyZENhY2hlVGVzdDo6RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3
YXJkQ2FjaGVUZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkRpZFJlbW92ZUZyYW1lRnJv
bUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlVGVzdDo6ZGlkQ3JlYXRlUGFnZSk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250
ZW50SW5GcmFtZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0
U2V0dGluZ3MuY3BwOgorICAgICAgICAodGVzdFdlYktpdFNldHRpbmdzKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OnVw
ZGF0ZVRlc3RPcHRpb25zRnJvbVRlc3RIZWFkZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Omhhc1NhbWVJbml0
aWFsaXphdGlvbk9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIGxsZGIvbGxkYl93ZWJraXQucHk6
CisgICAgICAgIChXZWJDb3JlRnJhbWVfU3VtbWFyeVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkNv
cmVEb2N1bWVudF9TdW1tYXJ5UHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZURvY3VtZW50UHJv
dmlkZXIucGFnZV9jYWNoZV9zdGF0ZSk6CisKIDIwMTktMTAtMTYgIEZ1amlpIEhpcm9ub3JpICA8
SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgRHVtcFJlbmRlclRyZWUgc2hvdWxk
IGNsZWFyIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T25XaXRoQWNjdW11bGF0aW9uIHN0YXRlIHNldCBi
eSB0ZXN0UnVubmVyLmFjY3VtbXVsYXRlTG9nc0ZvckNoYW5uZWwKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RPcHRpb25zLmNwcAppbmRleCAxZmY4NDllMTdhODViNmYyZmRhOGE5MGVhNDBhYWI5Mjk5MzY2
NWFiLi41NTZlZWMyNzY2MzdlODFiOTNmNzdkOTY1OTM3NWNmYzJhNDk1OTU5IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCkBAIC04MSw4ICs4MSw4IEBAIFRlc3RPcHRpb25zOjpU
ZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmlu
ZyYgYWJzb2x1CiAgICAgICAgICAgICBlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHBhcnNl
Qm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAi
dXNlRXBoZW1lcmFsU2Vzc2lvbiIpCiAgICAgICAgICAgICB1c2VFcGhlbWVyYWxTZXNzaW9uID0g
cGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKLSAgICAgICAgZWxzZSBpZiAoa2V5
ID09ICJlbmFibGVQYWdlQ2FjaGUiKQotICAgICAgICAgICAgZW5hYmxlUGFnZUNhY2hlID0gcGFy
c2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09
ICJlbmFibGVCYWNrRm9yd2FyZENhY2hlIikKKyAgICAgICAgICAgIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNl
IGlmIChrZXkgPT0gImVuYWJsZU1lbnVJdGVtRWxlbWVudCIpCiAgICAgICAgICAgICBlbmFibGVN
ZW51SXRlbUVsZW1lbnQgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAg
ICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZUtleWdlbkVsZW1lbnQiKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RPcHRpb25zLmgKaW5kZXggMDk2OWIxODZiZmEwMWIzMDM1MzhmYWNmZTBlOTQ2MjFlZjll
N2U2Ny4uZTUzMzVlODMxMTRlNzllNWI1NGQ4NjFjM2QyM2ZmY2ViYmE3MGEwYiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBUZXN0T3B0aW9u
cyB7CiAgICAgYm9vbCB1c2VBY2NlbGVyYXRlZERyYXdpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wg
ZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgdXNlRXBoZW1l
cmFsU2Vzc2lvbiB7IGZhbHNlIH07Ci0gICAgYm9vbCBlbmFibGVQYWdlQ2FjaGUgeyBmYWxzZSB9
OworICAgIGJvb2wgZW5hYmxlQmFja0ZvcndhcmRDYWNoZSB7IGZhbHNlIH07CiAgICAgYm9vbCBl
bmFibGVNZW51SXRlbUVsZW1lbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlS2V5Z2VuRWxl
bWVudCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIHsgdHJ1
ZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCAxNDdlYjMxZTE4OTk4MDhh
ZmU0ZDlkNjIxY2U0YmJhZWI4NjljMzcwLi4zODEwMDY4OGZkODY3YmY2NjI5NTJiYjU1MzFhNGE2
ZjZlNGQyOTM3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtNTgzLDggKzU4
Myw4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIG92ZXJyaWRlUHJlZmVyZW5jZUNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmCiAgICAgYXV0byB2YWx1ZSA9IGFkb3B0KEpT
VmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRpb24pKTsKICAg
ICBBU1NFUlQoISpleGNlcHRpb24pOwogCi0gICAgLy8gU2hvdWxkIHVzZSBgPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPmAgaW5zdGVhZC4KLSAgICBS
RUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXkuZ2V0KCksICJX
ZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIpKTsKKyAgICAvLyBTaG91bGQgdXNlIGA8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0t
PmAgaW5zdGVhZC4KKyAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhrZXkuZ2V0KCksICJXZWJLaXRVc2VzQmFja0ZvcndhcmRDYWNoZVByZWZlcmVuY2VLZXki
KSk7CiAKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5l
cio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CiAgICAgY29udHJvbGxlci0+b3Zl
cnJpZGVQcmVmZXJlbmNlKGtleS5nZXQoKSwgdmFsdWUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGVjZmE0ODdjMjQ3Y2NmN2EzMWQ1OGZj
NjhiNTJhMDc3ZGQ5MGRjNjQuLjE4ODBiYmU1MzI3N2MwODgwNGVkY2UwZTJkNWY3YjkwMzlkZjFj
YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEw
MzAsNyArMTAzMCw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlv
bnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMucmVxdWVzdElk
bGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJZGxlQ2FsbGJhY2s7CiAg
ICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0gb3B0aW9ucy5lbmFibGVB
c3luY0NsaXBib2FyZEFQSTsKICAgICBwcmVmZXJlbmNlcy5wcml2YXRlQnJvd3NpbmdFbmFibGVk
ID0gb3B0aW9ucy51c2VFcGhlbWVyYWxTZXNzaW9uOwotICAgIHByZWZlcmVuY2VzLnVzZXNQYWdl
Q2FjaGUgPSBvcHRpb25zLmVuYWJsZVBhZ2VDYWNoZTsKKyAgICBwcmVmZXJlbmNlcy51c2VzUGFn
ZUNhY2hlID0gb3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlOwogfQogCiAvLyBDYWxsZWQg
b25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNjg4NDg2YTg5MGRjZTkyMWRkMzEwZmZjNGNlMzBh
MmY4MjE0OGY1NC4uYWFlYzFiZTg5MWZkYjIyZTU3NjlhNzYwM2ZlZjEyNzEzNGY1OTdiNyAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC04NTQsNyAr
ODU0LDcgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVl
cyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIHByZWZzUHJpdmF0ZS0+c2V0RXhw
ZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoRkFMU0UpOwogICAgIHByZWZlcmVuY2VzLT5z
ZXRQbHVnSW5zRW5hYmxlZChUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0VGV4dEFyZWFzQXJl
UmVzaXphYmxlKFRSVUUpOwotICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNhY2hlKEZBTFNF
KTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUoRkFMU0UpOwogCiAg
ICAgcHJlZmVyZW5jZXMtPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoRkFMU0UpOwogICAgIHBy
ZWZzUHJpdmF0ZS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoVFJVRSk7CkBAIC05MTQs
NyArOTE0LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhJ
V2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzLCBjb25zdAogICAgIHByZWZzUHJpdmF0ZS0+c2V0
UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQob3B0aW9ucy5lbmFibGVSZXF1ZXN0SWRsZUNhbGxi
YWNrKTsKICAgICBwcmVmc1ByaXZhdGUtPnNldEFzeW5jQ2xpcGJvYXJkQVBJRW5hYmxlZChvcHRp
b25zLmVuYWJsZUFzeW5jQ2xpcGJvYXJkQVBJKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0UHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZChvcHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb24pOwotICAgIHByZWZl
cmVuY2VzLT5zZXRVc2VzUGFnZUNhY2hlKG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hlKTsKKyAgICBw
cmVmZXJlbmNlcy0+c2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUob3B0aW9ucy5lbmFibGVCYWNrRm9y
d2FyZENhY2hlKTsKIH0KIAogc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbklkKCkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbkJh
c2ljLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVu
c2lvbkJhc2ljLmNwcAppbmRleCAyZDA0MzVjMGUyYTM3MGY4Y2M0Mzc2NjE2MGQ3M2M4YzYxMWQx
Nzc4Li41NWFhMzdlMTMwMmMyNmQyZTk1MDNkMDVhODhiYzcxNDVjZmM2NTM5IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNp
Yy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0
ZW5zaW9uQmFzaWMuY3BwCkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9E
T01XaW5kb3dFeHRlbnNpb25CYXNpYykKICAgICBXS0NvbnRleHRTZXRJbmplY3RlZEJ1bmRsZUNs
aWVudChjb250ZXh0LmdldCgpLCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7CiAgICAgCiAg
ICAgLy8gVGhlIGRlZmF1bHQgY2FjaGUgbW9kZWwgaGFzIGEgY2FwYWNpdHkgb2YgMCwgc28gaXQg
aXMgbmVjZXNzYXJ5IHRvIHN3aXRjaCB0byBhIGNhY2hlCi0gICAgLy8gbW9kZWwgdGhhdCBhY3R1
YWxseSBhbGxvd3MgZm9yIGEgcGFnZSBjYWNoZS4KKyAgICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5
IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0U2V0Q2FjaGVN
b2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyKTsKIAogICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7
CkBAIC0xMjAsNyArMTIwLDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVu
c2lvbkJhc2ljKQogICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOwogICAgIGZpbmlzaGVkID0gZmFs
c2U7CiAKLSAgICAvLyBNYWtlIHN1cmUgdGhlIDIgZGlzY29ubmVjdGVkIGV4dGVuc2lvbnMgaW4g
dGhlIHBhZ2UgY2FjaGUgYW5kIHRoZSA0IGFjdGl2ZSBleHRlbnNpb25zIGFyZSBhbGwgcmVtb3Zl
ZC4KKyAgICAvLyBNYWtlIHN1cmUgdGhlIDIgZGlzY29ubmVjdGVkIGV4dGVuc2lvbnMgaW4gdGhl
IGJhY2svZm9yd2FyZCBjYWNoZSBhbmQgdGhlIDQgYWN0aXZlIGV4dGVuc2lvbnMgYXJlIGFsbCBy
ZW1vdmVkLgogICAgIFdLUGFnZUNsb3NlKHdlYlZpZXcucGFnZSgpKTsKIAogICAgIFV0aWw6OnJ1
bigmZmluaXNoZWQpOwpAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoV2ViS2l0LCBET01XaW5kb3dF
eHRlbnNpb25DcmFzaE9uUmVsb2FkKQogICAgIFdLQ29udGV4dFNldEluamVjdGVkQnVuZGxlQ2xp
ZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsKIAogICAgIC8v
IFRoZSBkZWZhdWx0IGNhY2hlIG1vZGVsIGhhcyBhIGNhcGFjaXR5IG9mIDAsIHNvIGl0IGlzIG5l
Y2Vzc2FyeSB0byBzd2l0Y2ggdG8gYSBjYWNoZQotICAgIC8vIG1vZGVsIHRoYXQgYWN0dWFsbHkg
YWxsb3dzIGZvciBhIHBhZ2UgY2FjaGUuCisgICAgLy8gbW9kZWwgdGhhdCBhY3R1YWxseSBhbGxv
d3MgZm9yIGEgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwo
Y29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7CiAKICAgICBQbGF0
Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5z
aW9uTm9DYWNoZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5k
b3dFeHRlbnNpb25Ob0NhY2hlLmNwcAppbmRleCBiYzUwYjVlMmIwMGM1OTA4NDcwNjE3NjJhZTNk
ZDcwZjRmNTFiOWViLi5lMTY5NmQ1YmQ2NTY5NDcyNzhmOTQ3NDg1MjUzMTcyYmM0OWI3Y2E3IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRl
bnNpb25Ob0NhY2hlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9E
T01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcApAQCAtOTUsNyArOTUsNyBAQCBURVNUKFdlYktp
dCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZSkKIAogICAgIFdLQ29udGV4dFNl
dEluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1bmRsZUNsaWVu
dC5iYXNlKTsKIAotICAgIC8vIERpc2FibGUgdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRGlzYWJs
ZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwoY29u
dGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsKIAogICAgIFBsYXRmb3Jt
V2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25O
b0NhY2hlX0J1bmRsZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01X
aW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAKaW5kZXggNDBiNzdmMWRiMDUxMjY5N2Zm
NTljYzY5ZTZlMDI3OWE4YjYyMDdhNy4uZGMyM2U2N2M2ZjZjMThjZTQ4OGVjNmU3Y2QzN2UyMWJm
YWVhNTZmNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9N
V2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcApAQCAt
MjM1LDEzICsyMzUsMTMgQEAgdm9pZCBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlOjpnbG9iYWxP
YmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYKIAogdm9pZCBET01XaW5k
b3dFeHRlbnNpb25Ob0NhY2hlOjp3aWxsRGlzY29ubmVjdERPTVdpbmRvd0V4dGVuc2lvbkZyb21H
bG9iYWxPYmplY3QoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYgZXh0ZW5zaW9uKQogewot
ICAgIC8vIE5vIGl0ZW1zIHNob3VsZCBiZSBnb2luZyBpbnRvIGEgMC1jYXBhY2l0eSBwYWdlIGNh
Y2hlLgorICAgIC8vIE5vIGl0ZW1zIHNob3VsZCBiZSBnb2luZyBpbnRvIGEgMC1jYXBhY2l0eSBi
YWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKIHZvaWQg
RE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZTo6ZGlkUmVjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9u
VG9HbG9iYWxPYmplY3QoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYpCiB7Ci0gICAgLy8g
Tm8gaXRlbXMgc2hvdWxkIGJlIGNvbWluZyBvdXQgb2YgYSAwLWNhcGFjaXR5IHBhZ2UgY2FjaGUu
CisgICAgLy8gTm8gaXRlbXMgc2hvdWxkIGJlIGNvbWluZyBvdXQgb2YgYSAwLWNhcGFjaXR5IGJh
Y2svZm9yd2FyZCBjYWNoZS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3ZlRnJhbWVGcm9t
SGllYXJjaHlJblBhZ2VDYWNoZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcAppbmRleCAxNThjNjQw
ZGMzOWFjODllMjU2NmY5N2I0NWM5NDIyNjlkNWU3NzAyLi5mZTlmNTQzYzJiZWUzM2U4N2JjMGMz
YjdiMmQ1YWU4OTY1ZmNiMzg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNo
eUluUGFnZUNhY2hlLmNwcApAQCAtNzAsOSArNzAsOSBAQCBzdGF0aWMgdm9pZCBzZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudChXS1BhZ2VSZWYgcGFnZSkKICAgICBXS1BhZ2VTZXRQYWdlSW5qZWN0ZWRC
dW5kbGVDbGllbnQocGFnZSwgJmluamVjdGVkQnVuZGxlQ2xpZW50LmJhc2UpOwogfQogCi1URVNU
KFdlYktpdCwgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZSkKK1RFU1QoV2Vi
S2l0LCBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZSkKIHsKLSAg
ICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0
ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5
SW5QYWdlQ2FjaGUiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBjb250ZXh0ID0g
YWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJEaWRSZW1v
dmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZSIpKTsKICAgICAvLyBFbmFibGUg
dGhlIHBhZ2UgY2FjaGUgc28gd2UgY2FuIHRlc3QgdGhlIFdLQnVuZGxlUGFnZURpZFJlbW92ZUZy
YW1lRnJvbUhpZXJhcmNoeUNhbGxiYWNrIEFQSQogICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwo
Y29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3ZlRnJhbWVGcm9t
SGllYXJjaHlJblBhZ2VDYWNoZV9CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZV9CdW5kbGUuY3Bw
CmluZGV4IDk5MWRlODUwMDRlMDUxZTQxZGIwMDNlMmQxODFkYzA2MmRkZTcxYjUuLjI2YjUyNGVk
ZjRjZWEyODBhZmJlZmM4OThlZDc5N2I1NGJmZjdmNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2Fj
aGVfQnVuZGxlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRS
ZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlX0J1bmRsZS5jcHAKQEAgLTM1LDE0ICsz
NSwxNCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLWNsYXNzIERpZFJlbW92ZUZy
YW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVUZXN0IDogcHVibGljIEluamVjdGVkQnVuZGxlVGVz
dCB7CitjbGFzcyBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRl
c3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKIHB1YmxpYzoKLSAgICBEaWRSZW1vdmVG
cmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRp
Zmllcik7CisgICAgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVU
ZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYpOwogfTsKIAotc3RhdGlj
IEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJ
blBhZ2VDYWNoZVRlc3Q+IHJlZ2lzdHJhcigiRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBh
Z2VDYWNoZSIpOworc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8RGlkUmVtb3Zl
RnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVUZXN0PiByZWdpc3RyYXIoIkRpZFJl
bW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlIik7CiAKIHN0YXRpYyB1bnNp
Z25lZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHlDb3VudDsKIApAQCAtNTYsMTIgKzU2LDEy
IEBAIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2soV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYKICAgICBXS0J1bmRsZVBhZ2VQb3N0TWVzc2FnZShw
YWdlLCBtZXNzYWdlLmdldCgpLCBtZXNzYWdlLmdldCgpKTsKIH0KIAotRGlkUmVtb3ZlRnJhbWVG
cm9tSGllYXJjaHlJblBhZ2VDYWNoZVRlc3Q6OkRpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5Q
YWdlQ2FjaGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorRGlkUmVtb3ZlRnJh
bWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVUZXN0OjpEaWRSZW1vdmVGcmFtZUZyb21I
aWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50aWZp
ZXIpCiAgICAgOiBJbmplY3RlZEJ1bmRsZVRlc3QoaWRlbnRpZmllcikKIHsKIH0KIAotdm9pZCBE
aWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdDo6ZGlkQ3JlYXRlUGFnZShX
S0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKQordm9pZCBEaWRSZW1vdmVG
cmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3Q6OmRpZENyZWF0ZVBhZ2UoV0tC
dW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKIHsKICAgICBXS0J1bmRsZVBh
Z2VMb2FkZXJDbGllbnRWOCBwYWdlTG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgmcGFnZUxvYWRl
ckNsaWVudCwgMCwgc2l6ZW9mKHBhZ2VMb2FkZXJDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0xheW91dE1pbGVzdG9uZXNXaXRoQWxsQ29udGVu
dEluRnJhbWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWls
ZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAKaW5kZXggNTY0NmJkODE5NzVlOGU1ODMy
YTE1NDY5ZmZiYzQxYzhlZGQ1NWM2ZS4uMWE2Y2JiMTUzMGNiNzQzZjMwY2Y4NTUzNjNlZmU0NDU0
MWI2NmM0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5
b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFt
ZS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEFmdGVyUGFnZUNhY2hlUmVzdG9yZSkKIHsKICAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9u
KG51bGxwdHIpKTsKIAotICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwoY29udGV4dC5nZXQoKSwg
a1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsgLy8gRW5hYmxlcyB0aGUgUGFnZSBDYWNo
ZS4KKyAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQuZ2V0KCksIGtXS0NhY2hlTW9k
ZWxQcmltYXJ5V2ViQnJvd3Nlcik7IC8vIEVuYWJsZXMgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4K
IAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9j
ZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBlZTQwMzc4ZTJlZDY1ZTYxMjQwY2Y5MDI0NTdl
Nzc1NjA4NGE0NWE0Li44ZDI0YmJiYTM4NTk3YmJjM2MwMmUxNWRmMDBhNGQyZjNmYjgwMmI2IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI0ODQsNyArMjQ4NCw3IEBAIFRF
U1QoUHJvY2Vzc1N3YXAsIFJldXNlU3VzcGVuZGVkUHJvY2VzcykKIHN0YXRpYyBjb25zdCBjaGFy
KiBmYWlsc1RvRW50ZXJQYWdlQ2FjaGVUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxib2R5
PgogPHNjcmlwdD4KLS8vIFBhZ2VzIHdpdGggZGVkaWNhdGVkIHdvcmtlcnMgZG8gbm90IGdvIGlu
dG8gcGFnZSBjYWNoZS4KKy8vIFBhZ2VzIHdpdGggZGVkaWNhdGVkIHdvcmtlcnMgZG8gbm90IGdv
IGludG8gYmFjay9mb3J3YXJkIGNhY2hlLgogdmFyIG15V29ya2VyID0gbmV3IFdvcmtlcignd29y
a2VyLmpzJyk7CiA8L3NjcmlwdD4KIDwvYm9keT4KQEAgLTM2OTksNyArMzY5OSw3IEBAIFRFU1Qo
UHJvY2Vzc1N3YXAsIFBhZ2VTaG93SGlkZSkKICAgICB9CiB9CiAKLS8vIERpc2FibGluZyB0aGUg
cGFnZSBjYWNoZSBleHBsaWNpdGx5IGlzIChmb3Igc29tZSByZWFzb24pIG5vdCBhdmFpbGFibGUg
b24gaU9TLgorLy8gRGlzYWJsaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgZXhwbGljaXRseSBp
cyAoZm9yIHNvbWUgcmVhc29uKSBub3QgYXZhaWxhYmxlIG9uIGlPUy4KICNpZiAhVEFSR0VUX09T
X0lQSE9ORQogc3RhdGljIGNvbnN0IGNoYXIqIGxvYWRVbmxvYWRCeXRlcyA9IFIiUFNPTlJFU09V
UkNFKAogPHNjcmlwdD4KQEAgLTU3ODIsNyArNTc4Miw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEdv
QmFja1RvU3VzcGVuZGVkUGFnZVdpdGhNYWluRnJhbWVJRFRoYXRJc05vdE9uZSkKICAgICBhdXRv
IHBpZDMgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKICAgICBFWFBF
Q1RfTkUocGlkMSwgcGlkMyk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dhcHBlZC4KIAotICAg
IC8vIE5hdmlnYXRlIGJhY2sgdG8gdGhlIHN1c3BlbmRlZCBwYWdlIChzaG91bGQgdXNlIHRoZSBw
YWdlIGNhY2hlKS4KKyAgICAvLyBOYXZpZ2F0ZSBiYWNrIHRvIHRoZSBzdXNwZW5kZWQgcGFnZSAo
c2hvdWxkIHVzZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlKS4KICAgICBbY3JlYXRlZFdlYlZpZXcg
Z29CYWNrXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7
CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7CkBAIC01ODE5LDcgKzU4MTksNyBAQCBib2R5
IHsKIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KLS8vIFBhZ2VzIHdpdGggZGVkaWNhdGVkIHdv
cmtlcnMgZG8gbm90IGdvIGludG8gcGFnZSBjYWNoZS4KKy8vIFBhZ2VzIHdpdGggZGVkaWNhdGVk
IHdvcmtlcnMgZG8gbm90IGdvIGludG8gYmFjay9mb3J3YXJkIGNhY2hlLgogdmFyIG15V29ya2Vy
ID0gbmV3IFdvcmtlcignd29ya2VyLmpzJyk7CiA8L3NjcmlwdD4KIDxhIGlkPSJ0ZXN0TGluayIg
aHJlZj0icHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIj5UZXN0PC9hPgpAQCAtNTkyNyw3
ICs1OTI3LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRCbG9ja2luZ0FmdGVyUHJvY2Vz
c1N3YXBUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxib2R5PgogPHNjcmlwdD4KIGxldCB3
YXNTdWJmcmFtZUxvYWRlZCA9IGZhbHNlOwotLy8gUGFnZXMgd2l0aCBkZWRpY2F0ZWQgd29ya2Vy
cyBkbyBub3QgZ28gaW50byBwYWdlIGNhY2hlLgorLy8gUGFnZXMgd2l0aCBkZWRpY2F0ZWQgd29y
a2VycyBkbyBub3QgZ28gaW50byBiYWNrL2ZvcndhcmQgY2FjaGUuCiB2YXIgbXlXb3JrZXIgPSBu
ZXcgV29ya2VyKCd3b3JrZXIuanMnKTsKIDwvc2NyaXB0PgogPGlmcmFtZSBzcmM9ImJsb2NrbWUu
aHRtbCI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvVGVzdFdlYktpdFNldHRpbmdzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDNhNDBjMjkzNWIyMDFi
MDU2ZTg5ZWNlYTZhZjJhNDliMGM3YWYyZTkuLjhlOTk0NGFkMWJiZDE0MTZmNjc1ZjlmNmZjNzhi
N2IzN2FmOWJmZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0yNzYsNyArMjc2LDcgQEAg
c3RhdGljIHZvaWQgdGVzdFdlYktpdFNldHRpbmdzKFRlc3QqLCBnY29uc3Rwb2ludGVyKQogICAg
IHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3NpdGVfc3BlY2lmaWNfcXVpcmtzKHNldHRpbmdz
LCBGQUxTRSk7CiAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVf
c2l0ZV9zcGVjaWZpY19xdWlya3Moc2V0dGluZ3MpKTsKIAotICAgIC8vIEJ5IGRlZmF1bHQsIHBh
Z2UgY2FjaGUgaXMgZW5hYmxlZC4KKyAgICAvLyBCeSBkZWZhdWx0LCB0aGUgYmFjay9mb3J3YXJk
IGNhY2hlIGlzIGVuYWJsZWQuCiAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfc2V0dGluZ3NfZ2V0
X2VuYWJsZV9wYWdlX2NhY2hlKHNldHRpbmdzKSk7CiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9l
bmFibGVfcGFnZV9jYWNoZShzZXR0aW5ncywgRkFMU0UpOwogICAgIGdfYXNzZXJ0X2ZhbHNlKHdl
YmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3BhZ2VfY2FjaGUoc2V0dGluZ3MpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmlu
ZGV4IGJhNTk5M2M3YTIyMmZiMzBhN2MwNzU0Y2RiYTc1OTZhMmI4MTM5YmIuLjhlZGExZmQwY2E2
OTRkNjczZTEzOTEyZDVkNDBlYmNmYmNjNmVhYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtODU5LDggKzg1OSw4
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0b0Jvb2woSlNTdHJpbmdSZWYgdmFsdWUpCiB2b2lkIFRl
c3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBwcmVmZXJlbmNlLCBKU1N0
cmluZ1JlZiB2YWx1ZSkKIHsKICAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKTsKLSAgICAvLyBTaG91bGQgdXNlIGA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+YCBpbnN0ZWFkLgotICAgIFJFTEVBU0Vf
QVNTRVJUKCFKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHByZWZlcmVuY2UsICJXZWJLaXRV
c2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIpKTsKKyAgICAvLyBTaG91bGQgdXNlIGA8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPmAgaW5z
dGVhZC4KKyAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhw
cmVmZXJlbmNlLCAiV2ViS2l0VXNlc0JhY2tGb3J3YXJkQ2FjaGVQcmVmZXJlbmNlS2V5IikpOwog
CiAgICAgLy8gRklYTUU6IGhhbmRsZSBub24tYm9vbGVhbiBwcmVmZXJlbmNlcy4KICAgICBXS0J1
bmRsZU92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKGluamVjdGVkQnVuZGxlLmJ1
bmRsZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwgdG9XSyhwcmVmZXJlbmNlKS5nZXQo
KSwgdG9Cb29sKHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGU5ZDQyOGU4MzRmNmRjY2RlOTczZTJlZWU4YjUyMmY4OTM0ZmQwNjEuLmUxN2M0
OTI2MDI1YWU0M2VkYzhkMjQ2MWIwNzRmNjM5YzEwNWM5YzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC04NDYsNyArODQ2LDcgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhjb25zdCBUZXN0T3B0
aW9ucyYgb3B0aW8KICAgICBXS1ByZWZlcmVuY2VzU2V0QWxsb3dDcm9zc09yaWdpblN1YnJlc291
cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMocHJlZmVyZW5jZXMsIG9wdGlvbnMuYWxsb3dDcm9zc09y
aWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMpOwogICAgIFdLUHJlZmVyZW5jZXNT
ZXRDb2xvckZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQ29sb3JGaWx0
ZXIpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRQdW5jaE91dFdoaXRlQmFja2dyb3VuZHNJbkRhcmtN
b2RlKHByZWZlcmVuY2VzLCBvcHRpb25zLnB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5kc0luRGFya01v
ZGUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVFbmFibGVkKHByZWZlcmVuY2VzLCBv
cHRpb25zLmVuYWJsZVBhZ2VDYWNoZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFBhZ2VDYWNoZUVu
YWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNoZSk7CiAgICAg
V0tQcmVmZXJlbmNlc1NldExhenlJbWFnZUxvYWRpbmdFbmFibGVkKHByZWZlcmVuY2VzLCBvcHRp
b25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcpOwogCiAgICAgc3RhdGljIFdLU3RyaW5nUmVmIGRl
ZmF1bHRUZXh0RW5jb2RpbmcgPSBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSVNPLTg4
NTktMSIpOwpAQCAtMTQyOSw4ICsxNDI5LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlVGVzdE9wdGlv
bnNGcm9tVGVzdEhlYWRlcihUZXN0T3B0aW9ucyYgdGVzdE9wdGlvbnMsIGNvbnN0IHN0ZDoKICAg
ICAgICAgICAgIHRlc3RPcHRpb25zLmNvbnRlbnRNb2RlID0geyB2YWx1ZS5jX3N0cigpIH07CiAg
ICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlQXBwTmFwIikKICAgICAgICAgICAgIHRlc3RP
cHRpb25zLmVuYWJsZUFwcE5hcCA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7
Ci0gICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlUGFnZUNhY2hlIikKLSAgICAgICAgICAg
IHRlc3RPcHRpb25zLmVuYWJsZVBhZ2VDYWNoZSA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1
ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZSIpCisgICAgICAgICAgICB0ZXN0T3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlID0gcGFy
c2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09
ICJlbmFibGVMYXp5SW1hZ2VMb2FkaW5nIikKICAgICAgICAgICAgIHRlc3RPcHRpb25zLmVuYWJs
ZUxhenlJbWFnZUxvYWRpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwog
ICAgICAgICBlbHNlIGlmIChrZXkgPT0gImFsbG93c0xpbmtQcmV2aWV3IikKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdE9wdGlvbnMuaAppbmRleCBjYjZhNWQ1NmRmNDVjY2UyZDQ1NWNhMmQ5OGM2NGEy
MzQ1MDY3NjM2Li41MTVkNWJmYmRlMmRiNzlkMWQ1MzhkYmY3MjE1NjM2ZTQwZjljYTc2IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCkBAIC05NCw3ICs5NCw3IEBAIHN0cnVjdCBU
ZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwgeyB0cnVlIH07
CiAgICAgYm9vbCBzaG91bGRQcmVzZW50UG9wb3ZlcnMgeyB0cnVlIH07CiAgICAgYm9vbCBlbmFi
bGVBcHBOYXAgeyBmYWxzZSB9OwotICAgIGJvb2wgZW5hYmxlUGFnZUNhY2hlIHsgZmFsc2UgfTsK
KyAgICBib29sIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5h
YmxlTGF6eUltYWdlTG9hZGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd3NMaW5rUHJldmll
dyB7IHRydWUgfTsKIApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAg
ICAgICAgICAgICB8fCBjb250ZW50SW5zZXRUb3AgIT0gb3B0aW9ucy5jb250ZW50SW5zZXRUb3AK
ICAgICAgICAgICAgIHx8IGNvbnRlbnRNb2RlICE9IG9wdGlvbnMuY29udGVudE1vZGUKICAgICAg
ICAgICAgIHx8IGVuYWJsZUFwcE5hcCAhPSBvcHRpb25zLmVuYWJsZUFwcE5hcAotICAgICAgICAg
ICAgfHwgZW5hYmxlUGFnZUNhY2hlICE9IG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hlCisgICAgICAg
ICAgICB8fCBlbmFibGVCYWNrRm9yd2FyZENhY2hlICE9IG9wdGlvbnMuZW5hYmxlQmFja0Zvcndh
cmRDYWNoZQogICAgICAgICAgICAgfHwgZW5hYmxlTGF6eUltYWdlTG9hZGluZyAhPSBvcHRpb25z
LmVuYWJsZUxhenlJbWFnZUxvYWRpbmcKICAgICAgICAgICAgIHx8IGFsbG93c0xpbmtQcmV2aWV3
ICE9IG9wdGlvbnMuYWxsb3dzTGlua1ByZXZpZXcpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5IGIvVG9vbHMvbGxkYi9sbGRi
X3dlYmtpdC5weQppbmRleCBmNWFlMmMxOTM4YmQ4YTUxNDAxNmIyMGU1NzA1ZjEzZjVlZmYzODM2
Li5kNTgwODk5N2FjNzFkMWEwNTQ5ZGEwZTVhYThkOWIxZTRjOTM1NjM3IDEwMDY0NAotLS0gYS9U
b29scy9sbGRiL2xsZGJfd2Via2l0LnB5CisrKyBiL1Rvb2xzL2xsZGIvbGxkYl93ZWJraXQucHkK
QEAgLTIzOSwxOSArMjM5LDE5IEBAIGRlZiBXZWJDb3JlRnJhbWVfU3VtbWFyeVByb3ZpZGVyKHZh
bG9iaiwgZGljdCk6CiAgICAgaWYgZG9jdW1lbnQ6CiAgICAgICAgIG9yaWdpbiA9IGRvY3VtZW50
Lm9yaWdpbigpCiAgICAgICAgIHVybCA9IGRvY3VtZW50LnVybCgpCi0gICAgICAgIHBhZ2VDYWNo
ZVN0YXRlID0gZG9jdW1lbnQucGFnZV9jYWNoZV9zdGF0ZSgpCisgICAgICAgIGJhY2tGb3J3YXJk
Q2FjaGVTdGF0ZSA9IGRvY3VtZW50LnBhZ2VfY2FjaGVfc3RhdGUoKQogICAgIGVsc2U6CiAgICAg
ICAgIG9yaWdpbiA9ICcnCiAgICAgICAgIHVybCA9ICcnCi0gICAgICAgIHBhZ2VDYWNoZVN0YXRl
ID0gJycKLSAgICByZXR1cm4gJ3sgb3JpZ2luID0gJXMsIHVybCA9ICVzLCBpc01haW5GcmFtZSA9
ICVkLCBwYWdlQ2FjaGVTdGF0ZSA9ICVzIH0nICUgKG9yaWdpbiwgdXJsLCBwcm92aWRlci5pc19t
YWluX2ZyYW1lKCksIHBhZ2VDYWNoZVN0YXRlKQorICAgICAgICBiYWNrRm9yd2FyZENhY2hlU3Rh
dGUgPSAnJworICAgIHJldHVybiAneyBvcmlnaW4gPSAlcywgdXJsID0gJXMsIGlzTWFpbkZyYW1l
ID0gJWQsIGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9ICVzIH0nICUgKG9yaWdpbiwgdXJsLCBwcm92
aWRlci5pc19tYWluX2ZyYW1lKCksIGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkKIAogCiBkZWYgV2Vi
Q29yZURvY3VtZW50X1N1bW1hcnlQcm92aWRlcih2YWxvYmosIGRpY3QpOgogICAgIHByb3ZpZGVy
ID0gV2ViQ29yZURvY3VtZW50UHJvdmlkZXIodmFsb2JqLCBkaWN0KQogICAgIGZyYW1lID0gcHJv
dmlkZXIuZnJhbWUoKQogICAgIGluX21haW5fZnJhbWUgPSAnJWQnICUgZnJhbWUuaXNfbWFpbl9m
cmFtZSgpIGlmIGZyYW1lIGVsc2UgJ0RldGFjaGVkJwotICAgIHJldHVybiAneyBvcmlnaW4gPSAl
cywgdXJsID0gJXMsIGluTWFpbkZyYW1lID0gJXMsIHBhZ2VDYWNoZVN0YXRlID0gJXMgfScgJSAo
cHJvdmlkZXIub3JpZ2luKCksIHByb3ZpZGVyLnVybCgpLCBpbl9tYWluX2ZyYW1lLCBwcm92aWRl
ci5wYWdlX2NhY2hlX3N0YXRlKCkpCisgICAgcmV0dXJuICd7IG9yaWdpbiA9ICVzLCB1cmwgPSAl
cywgaW5NYWluRnJhbWUgPSAlcywgYmFja0ZvcndhcmRDYWNoZVN0YXRlID0gJXMgfScgJSAocHJv
dmlkZXIub3JpZ2luKCksIHByb3ZpZGVyLnVybCgpLCBpbl9tYWluX2ZyYW1lLCBwcm92aWRlci5w
YWdlX2NhY2hlX3N0YXRlKCkpCiAKIAogZGVmIGJ0anMoZGVidWdnZXIsIGNvbW1hbmQsIHJlc3Vs
dCwgaW50ZXJuYWxfZGljdCk6CkBAIC03MjMsNyArNzIzLDcgQEAgY2xhc3MgV2ViQ29yZURvY3Vt
ZW50UHJvdmlkZXI6CiAgICAgICAgIHJldHVybiBXZWJDb3JlU2VjdXJpdHlPcmlnaW5Qcm92aWRl
cihzZWN1cml0eV9vcmlnaW5fcHRyLCBkaWN0KCkpLnRvX3N0cmluZygpCiAKICAgICBkZWYgcGFn
ZV9jYWNoZV9zdGF0ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYudmFsb2JqLkdldENoaWxk
TWVtYmVyV2l0aE5hbWUoJ21fcGFnZUNhY2hlU3RhdGUnKS5HZXRWYWx1ZSgpCisgICAgICAgIHJl
dHVybiBzZWxmLnZhbG9iai5HZXRDaGlsZE1lbWJlcldpdGhOYW1lKCdtX2JhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZScpLkdldFZhbHVlKCkKIAogICAgIGRlZiBmcmFtZShzZWxmKToKICAgICAgICAgZnJh
bWVfcHRyID0gc2VsZi52YWxvYmouR2V0Q2hpbGRNZW1iZXJXaXRoTmFtZSgnbV9mcmFtZScpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggY2Q5ZTFjOGNhNTI4Mjk0YjgyMjkzNjI3NGM4NzljODhkY2E0OTMwZS4uZDJmNjQ0ZDNl
NTY1YTM2NWI1ZmJlZDBkZjg4MjkwYzYyMjFhMGNkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NyBAQAor
MjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJl
bmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2Fy
ZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBX
ZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAgICAgICogYW5pbWF0aW9ucy9yZXN1bWUtYWZ0ZXIt
cGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWxheWVy
cy1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1lcy9wYWdlLWNh
Y2hlLWxheWVyLXRyZWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYWdlLWNhY2hlLWJh
Y2stY3Jhc2guaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9zaG93LWNvbXBvc2l0ZWQtaWZy
YW1lLW9uLWJhY2stYnV0dG9uLmh0bWw6CisgICAgICAgICogZWRpdGluZy9tYWMvaW5wdXQvdW5j
b25maXJtZWQtdGV4dC1uYXZpZ2F0aW9uLXdpdGgtcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAq
IGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAg
ICogZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogZmFzdC9k
b20vRGV2aWNlTW90aW9uL25vLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9E
ZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAq
IGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWw6Cisg
ICAgICAgICogZmFzdC9ldmVudHMvb251bmxvYWQtYmFjay10by1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sOgorICAgICAgICAqIGZh
c3QvZXZlbnRzL3BhZ2VoaWRlLXhoci1vcGVuLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMv
cGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sOgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3N1c3BlbmQtdGltZXJzLmh0bWw6CisgICAgICAgICogZmFz
dC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12YWx1ZS1kb2VzLW5vdC1jbGVh
ci5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNo
ZS5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLXVubG9hZC1uYXZpZ2F0ZS1hbmQt
c2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL3BhZ2Ut
aGlkZS1kb2N1bWVudC1vcGVuLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzdG9yaW5n
LXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2NyaXB0cy12aWEtc3R5bGUtdXBkYXRlLmh0bWw6
CisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1y
dW4tc2NyaXB0cy5odG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNyYXNo
LW9uLWRhdGEtdXJscy5odG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy91c2UtcGFnZS1jYWNo
ZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9iYWNrLWZyb20tcGFnZS13aXRoLWZvY3Vz
ZWQtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8taWZyYW1l
LXdpdGgtcGx1Z2luLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8tb2Jq
ZWN0LXN1YmZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay13
aGlsZS1wZGYtaW4tcGFnZWNhY2hlLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtTWVzc2FnZVBvcnQtcGVuZGluZy1tZXNzYWdlLmh0bWw6CisgICAgICAgICogZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtYWZ0ZXItd2luZG93LW9wZW4uaHRtbDoKKyAgICAgICAgKiBmYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1iYWNrLW5hdmlnYXRpb24tY3Jhc2guaHRtbDoKKyAgICAgICAg
KiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1hZ2VCaXRtYXAuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwtdXNpbmctb3Blbi1wYW5l
bC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZU9iamVjdFVS
TC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWRlc3Ryb3ktZG9jdW1l
bnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1lbGVtZW50LXN0YXRl
LWZvY3VzZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1leGVjdXRl
LXNjcmlwdC1kdXJpbmctcmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVzaG90Lmh0bWw6CisgICAgICAgICogZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi5odG1sOgorICAgICAgICAq
IGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWlmcmFtZS1qcy11cmwuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sOgorICAgICAgICAq
IGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWw6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC0yLmh0bWw6Cisg
ICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC5odG1s
OgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1vcGVuZWQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0ZS1kdXJpbmct
cmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNh
dGlvbi1ub24tc3VzcGVuZGFibGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1yZW1vdmVkLXNvdXJjZS1idWZmZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sOgorICAgICAgICAq
IGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1lcy13aXRoLXByb3Zpc2lvbmFsLWxvYWQu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5kZWQtYXVkaW9j
b250ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJh
c2Utbm8tdHJhbnNhY3Rpb24tZGIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWw6CisgICAgICAgICogZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hp
c3RvcnkvcGFnZWhpZGUtcmVtb3ZlLWlmcmFtZS1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3Qv
aGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJhbWUuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdpdGgtb3Bl
bmVyLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3RpbWVkLXJlZnJlc2gtaW4tY2FjaGVk
LWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXJlc3RvcmVk
LWZyb20tYmZjYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL2ZyYW1lcy13aXRoLXVu
bG9hZC1oYW5kbGVycy1pbi1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogZmFzdC9sb2FkZXIv
aW1hZ2UtaW4tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL2lucHV0LWVs
ZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL25hdmln
YXRlLXdpdGgtbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sOgor
ICAgICAgICAqIGZhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFyZ2V0LWFm
dGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWw6CisgICAgICAgICogZmFzdC9sb2FkZXIv
c2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L2xv
YWRlci9zdGF0ZW9iamVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRvLXN0YXRlbGVzcy1lbnRy
eS13aXRoLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9zdGF0ZW9iamVj
dHMvcG9wc3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogZmFzdC9s
b2FkZXIvdW5zY2hlZHVsZS1yZWxheW91dC1hZnRlci11bmxvYWQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2xvYWRlci93aW5kb3ctcHJvcGVydGllcy1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRt
bDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXBhZ2UtY2Fj
aGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L2hvcml6b250YWwtc2Nyb2xsLWFmdGVy
LWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pZnJhbWUtc2Nyb2xsYWJsZS1h
ZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVu
dHMtYmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93Lmh0bWw6CisgICAgICAgICogZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLmh0bWw6CisgICAgICAgICogZmFz
dC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9sbC1iYWNrLWZvcndhcmQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3Njcm9sbGluZy9wYWdlLWNhY2hlLWJhY2stb3ZlcmZsb3ctc2Nyb2xsLXJl
c3RvcmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9pb3MvdGV4dC1hdXRv
c2l6aW5nLWFmdGVyLWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L3ZpZXdwb3J0L2lvcy92aWV3
cG9ydC1zaHJpbmstdG8tZml0LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWw6CisgICAgICAgICogZmFz
dC92aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvd29y
a2VyLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2NhY2hlL2Rpc3BsYXkt
aW1hZ2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1pbWFnZS1sb2FkLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5lY3RlZC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtcGFnZS1jYWNo
ZS1jb25uZWN0aW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL21haW4tcmVz
b3VyY2UtZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdhdGlvbi5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLWxvYWQtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFj
a3MuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hlZC1tYWluLXJl
c291cmNlLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3ItcGFnZS5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1YmZyYW1lLWluLXBhZ2UtY2Fj
aGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi1w
YWdlaGlkZS1oYW5kbGVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGVzdG9yYWdlLXBlbmRpbmctcHJvbWlz
ZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWZhaWxl
ZC14aHIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1m
b250ZmFjZXNldC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLWZyYWdtZW50LXJlZmVycmVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLW5vLWN1cnJlbnQtaGlzdG9yeUl0ZW0uaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwt
bG9hZC1hc3luYy1kZWxlZ2F0ZXMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRp
b24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9hZC1jYWNoZS1w
YXJ0aXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNo
ZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRp
b24vcGFnZS1jYWNoZS1wZW5kaW5nLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1jcm9zcy1vcmlnaW4uaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmct
bG9hZC1zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9w
YWdlLWNhY2hlLXJlcXVlc3RBbmltYXRpb25GcmFtZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1wYWdlaGlkZS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1jYWNoZS0zLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRs
ZXItc3RhcnRzLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vc3Vi
ZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZDIuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQtc2NyaXB0Lmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9w
ZW4tamF2YXNjcmlwdC11cmwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L25h
dmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1pc3Npb24tZnJvbS1p
bmFjdGl2ZS1kb213aW5kb3cuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hz
cy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdy5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5h
Y3RpdmUtd2luZG93Mi1wc29uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94
c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1p
bmFjdGl2ZS13aW5kb3czLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9jbG9zZWQtd2hlbi1lbnRlcmluZy1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zdG9wLW9uLXJlc3VtZS1pbi1lcnJvci1o
YW5kbGVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50
LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNs
aWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13b3JrZXItcGVuZGluZy1wcm9taXNlLmh0
dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNo
aW5nLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJlYWNvbi1v
bnBhZ2VoaWRlLXdpbmRvdy5odG1sOgorICAgICAgICAqIGxlZ2FjeS1hbmltYXRpb24tZW5naW5l
L2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBsb2Fk
ZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS5odG1sOgorICAgICAgICAqIGxvYWRlci9n
by1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1sOgorICAgICAgICAqIG1lZGlhL2Ny
YXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBsdWdpbi1mYWxsYmFjay5odG1sOgorICAg
ICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNoZS5odG1sOgor
ICAgICAgICAqIG1lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICog
cGxhdGZvcm0vaW9zL2lvcy9maXhlZC9maXhlZC1iYWNrLWZvcndhcmQuaHRtbDoKKyAgICAgICAg
KiBwbHVnaW5zL2NyYXNoLXJlc3RvcmluZy1wbHVnaW4tcGFnZS1mcm9tLXBhZ2UtY2FjaGUuaHRt
bDoKKyAgICAgICAgKiBwbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWw6Cisg
ICAgICAgICogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tcGFnZS1jYWNoZS13b3Jrcy5odG1sOgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNoZS5odG1sOgor
ICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUuaHRt
bDoKKyAgICAgICAgKiBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAg
ICAqIHN3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sOgorICAgICAgICAq
IHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAgICAqIHN3aXBl
L3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWw6Cisg
ICAgICAgICogc3dpcGUvcHVzaHN0YXRlLXdpdGgtbWFudWFsLXNjcm9sbHJlc3RvcmF0aW9uLmh0
bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbnVsbC1wYXJlbnQtYmFjay1j
cmFzaC5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwt
cG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sOgorICAgICAgICAqIHdlYnJ0Yy9k
YXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbDoKKyAgICAgICAgKiB3
ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sOgorCiAyMDE5LTEw
LTE2ICBSdXNzZWxsIEVwc3RlaW4gIDxyZXBzdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29y
cmVjdCBUZXN0RXhwZWN0YXRpb25zIGZyb20gcjI1MTExOS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBhNjYyMmVlMzA4
MTI5MThlNjNkNTZmMjRmM2RlYTU1NDI5MTQ1M2M3Li5lOThjNDk5ZWQ3YjQwMjVmNWI1MDczNGVh
ZDQzYzNkOWUxZjE3ZDI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3Jlc3Vt
ZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9yZXN1
bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzdHlsZT4KIEAtd2Vi
a2l0LWtleWZyYW1lcyBib3VuY2UgewogICAgIGZyb20gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2suaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWxheWVycy1hZnRlci1iYWNrLmh0bWwKaW5k
ZXggM2I2MWE0NGMzYzY1ODUzMDhiMmRkYTVlNWE5NTViYTE2YzE0MTYxZi4uYTVmYmMxNWI0ZTRk
ZDM0OGRjYmZkNWU3NmZjNDEyMTk1MmI0NTNhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvYWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2suaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1sYXllcnMtYWZ0ZXItYmFjay5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNl
QWNjZWxlcmF0ZWREcmF3aW5nPXRydWUgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUFjY2VsZXJhdGVkRHJhd2lu
Zz10cnVlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogCiA8aHRtbD4KIDxoZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9wYWdlLWNhY2hl
LWxheWVyLXRyZWUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcGFnZS1j
YWNoZS1sYXllci10cmVlLmh0bWwKaW5kZXggOTZjNjk4ZjM3NDA4MmU5NjE4M2Y3ZTZhZGZmNzA5
MzczNTM3NmU5Zi4uMDU0YWExODkzZTQxNjMxYjdiY2EyMjQ3MzY5Y2Y4Y2NlNDUyYjhiYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9wYWdlLWNhY2hlLWxheWVy
LXRyZWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3BhZ2UtY2Fj
aGUtbGF5ZXItdHJlZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhZ2UtY2Fj
aGUtYmFjay1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFnZS1jYWNoZS1i
YWNrLWNyYXNoLmh0bWwKaW5kZXggOGY2OGJjZDhmYTk1ZTVjYmQ5YzAzYTBmMzk0MTUzMTMyZmI4
YTBhZS4uYzY3ZjIxNDIwYjg4ZmMwN2IwN2RjMmEyNzVkY2U5Y2MxMzlkYmRjNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFnZS1jYWNoZS1iYWNrLWNyYXNoLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFnZS1jYWNoZS1iYWNrLWNyYXNoLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPHN0eWxlPgogLm91dGVyIHsgcG9zaXRpb246IGZpeGVkOyB9CiAuaW5u
ZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFjay1idXR0b24uaHRtbCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFjay1idXR0b24u
aHRtbAppbmRleCA1Njk1ZTc0ZjMwOWUxNzQwY2E3ZTk4NDhjNGEzYjMyZmMzZjJlYTQzLi4wZTY4
YTNkNTQ1YWE4NjJkNjA3Nzk3NDA3YzVmYjkwZjM5NzI3NjMzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9zaG93LWNvbXBvc2l0ZWQtaWZyYW1lLW9uLWJhY2stYnV0dG9uLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2hvdy1jb21wb3NpdGVkLWlmcmFtZS1v
bi1iYWNrLWJ1dHRvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL2lucHV0L3Vu
Y29uZmlybWVkLXRleHQtbmF2aWdhdGlvbi13aXRoLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvbWFjL2lucHV0L3VuY29uZmlybWVkLXRleHQtbmF2aWdhdGlvbi13aXRoLXBh
Z2UtY2FjaGUuaHRtbAppbmRleCAzODg3N2NiZDBlODI3NmYyY2M0MGM2NGJiNzZmNWUxOTRiZWEz
MDhhLi43YjhkNzkyYzY3M2E3NjVkMGM3ZjQ3OTRlYzBmYjJmNmY5NGQ1MjA0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9pbnB1dC91bmNvbmZpcm1lZC10ZXh0LW5hdmlnYXRp
b24td2l0aC1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9tYWMvaW5w
dXQvdW5jb25maXJtZWQtdGV4dC1uYXZpZ2F0aW9uLXdpdGgtcGFnZS1jYWNoZS5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+VGVzdCB3aGF0IGhhcHBlbnMgd2hl
biBuYXZpZ2F0aW5nIGZyb20gYSBwYWdlIHdpdGggdW5jb25maXJtZWQgaW5saW5lIGlucHV0IHdo
ZW4gdGhlIHBhZ2UgaXMgY2FjaGVhYmxlPC90aXRsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5odG1sCmluZGV4
IGNiYTMyNzkzMTMwZWRhYzU2ZWJjYjIwOTY5NTg4Yjk0YzdjNjg0NmUuLjljN2M4MzdmZDJhODQz
NTM4YzI3MTU1NzU1ODg3NDg0NGM4NWE0NjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHN0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9mb250bG9hZGVyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA3YTIwYTBjMWEyOTI1MjBiNDAy
NTg5NDM3ODY4YzI0NjZiY2RhZjcyLi45ODc5MmNjZTJiNDUxNjYzMzUwNjA3ZmY5YWNlMzFlMzYy
NmYzNDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLXBhZ2Ut
Y2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLXBhZ2UtY2Fj
aGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IWRvY3R5cGUgaHRtbD4KIDxodG1sPgogPHN0eWxl
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlTW90aW9uL25vLXBhZ2Ut
Y2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU1vdGlvbi9uby1wYWdlLWNh
Y2hlLmh0bWwKaW5kZXggNTllNzM4MzE5MTgwZTg4ZWNmZjBkYThjNjY3MzNhNzgzZDY5NTY4ZC4u
ZTZmOWViZTI1MzEyMzgwMTZmNTA3OGQ2OGZlZWNiMjY2NDU0ZTZhYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlTW90aW9uL25vLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VNb3Rpb24vbm8tcGFnZS1jYWNoZS5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2V2ZW50LWFmdGVyLW5hdmlnYXRp
b24uaHRtbAppbmRleCAyMzhiMzcxNGYwMjdiYmQ5ZWI2MzVkZTBiYTgyOTJkZWQ1OWE2Y2Q0Li4z
NjAyNTE4ODk3M2U4YmQyOGY4YTc2ZTE5ZjhmMjA4YTFjZGU3ZTBlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1uYXZpZ2F0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vZXZlbnQt
YWZ0ZXItbmF2aWdhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL25vLXBh
Z2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL25v
LXBhZ2UtY2FjaGUuaHRtbAppbmRleCA2NjUxZjUxNmRlOWY0MTIwNjkyM2Y4YWJkODU5ZjRjZTAz
MWJlOWMzLi41ZWM2NDkxODJmNGY3MjA5OTY2ZjYwYmI4N2Y5N2UyZGI5ZTVhMTM2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1wYWdlLWNhY2hl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tcGFn
ZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlv
bi1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9u
LW5hdmlnYXRpb24tYmFjay5odG1sCmluZGV4IDMwMmE0MjQwYjhkM2MxYjEyNDUxMmYxMTEyNWZk
M2Y2OWY4NmNiMWYuLjJhZWM4NDg2OWRiMTZiMjlkZTYzYTgzODZkYWYyNDBjZDlhNDdkYmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2
aWdhdGlvbi1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3RpbWVy
LXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4K
IDxzY3JpcHQ+CiB2YXIgdGltZW91dFZhbHVlID0gMTAwOyAvL21zCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9vbnVubG9hZC1iYWNrLXRvLXBhZ2UtY2FjaGUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNoZS5odG1sCmlu
ZGV4IGYwMTg0ZjM3YzZiYTA5ZTMwMzIxZTk4MGYyNjY1YzJjYzY1MjJlMDQuLjI0YzBhMWVmNDNm
YTlmNzIxZDVlMzlhOTAwM2RiY2Q3MmVjZDViOGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4K
IDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdl
aGlkZS10aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlaGlkZS10aW1l
b3V0Lmh0bWwKaW5kZXggNDgwMWVlODg2OTE4NTgzN2YxOWU3YzZmMTNhZTljNWFlZDEyMTU2Zi4u
YTE3M2RiMzhhNTU5YTBmYjg5MDVkYzhhNTA1ZDNkZWQzYjBhM2U2ZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXRpbWVvdXQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
aHRtbD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlaGlk
ZS14aHItb3Blbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhpZGUteGhyLW9w
ZW4uaHRtbAppbmRleCBhM2I5YjVjZTM3ZTA0ZWQyODFhYjJkYjUzNmUxOTFjMjNjNzBlM2ZmLi41
MTdmNDFiNjg5OTM4NDA1ZTQzNGViNjkzZGU5MDEwMzI2MDM5MWVhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlaGlkZS14aHItb3Blbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXhoci1vcGVuLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PGh0bWw+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNo
b3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJhbWVz
Lmh0bWwKaW5kZXggNDIxMjg2ZDUwMDA5ODMzZjU1MGZiODE1MDJkYmRmMjJiNmQzMTI4OC4uZjJm
MzIwMTI2ODBlMDJhZWNjZjUxNjRkNzJlYjBiNzc1ZjVkOGFjMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1m
cmFtZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlk
ZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1s
PgogPGJvZHk+CiBUZXN0IHBhZ2VzaG93L3BhZ2VoaWRlIGV2ZW50IGJlaGF2aW9yIHdoZW4gbmF2
aWdhdGluZyBhd2F5IGZyb20gYSBwYWdlIHdpdGggZnJhbWVzLCBwdXR0aW5nIHRoZSBwYWdlIGlu
IHRoZSBwYWdlIGNhY2hlLCB0aGVuIGJhY2sgdG8gaXQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQuaHRt
bAppbmRleCBjZjkyMWJmY2Q4YmYxYzEyOTEwNjcxZGE1ODFmNGQyMjNjOWY4YTJhLi4wY2JiYWFj
NTk1MTYwZDQyOWVlN2U1NWViY2NhODhlYjlhYzhmZmRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVk
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBh
Z2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHA+VGVzdCBwYWdlc2hvdy9wYWdlaGlkZSBldmVudCBi
ZWhhdmlvciB3aGVuIG5hdmlnYXRpbmcgYmFjayB0byBhbiBjYWNoZWQgcGFnZS48L3A+CiA8c2Ny
aXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c3VzcGVuZC10aW1lcnMuaHRtbAppbmRleCAzYzg1ZjQ4MWU0MzY4ZDRmMDMxMzYzZmQzOTIxNWM1
NDk3NTFlOWQ4Li42ZWE4OTgxZjE0YWZjNjQ0NjZlMmQyYTg4ZjI3NGY2NjVkNThkODM1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N1c3BlbmQtdGltZXJzLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12YWx1ZS1kb2Vz
LW5vdC1jbGVhci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2Zm
LXdpdGgtZGVmYXVsdC12YWx1ZS1kb2VzLW5vdC1jbGVhci5odG1sCmluZGV4IGIzZmRkMmFlODVk
YzNkYzU5MTA0MzIyZDAwODI0ZGEzZmE2YWY3MzUuLjQ1NTYwNzEyOGZhOTQ0NGM4NzY3YjE5YjA3
MDk3MWU3N2Y5NGU3NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvYXV0b2Nv
bXBsZXRlLW9mZi13aXRoLWRlZmF1bHQtdmFsdWUtZG9lcy1ub3QtY2xlYXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2F1dG9jb21wbGV0ZS1vZmYtd2l0aC1kZWZhdWx0LXZhbHVl
LWRvZXMtbm90LWNsZWFyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4KIAogaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9m
cmFtZS1jcmFzaC13aXRoLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZyYW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCmluZGV4IGEyOTljZjg1M2YzNzU0YzIz
Nzg2ZGE3NjQwOTYzMDE0NTcwMjViOGEuLjZkZjBlNDJlMWEzMjA2YmQ3Yzg3ZDhkYWQ2ODg2NWZj
MzUzZDQzNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLWNyYXNo
LXdpdGgtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1l
LWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPHNj
cmlwdD4KIHdpbmRvdy5maW5pc2ggPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9mcmFtZS11bmxvYWQtbmF2aWdhdGUtYW5kLXNldFRpbWVvdXQtYXNzZXJ0
LWZhaWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXVubG9hZC1uYXZpZ2F0
ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sCmluZGV4IDM4MzJkNjdkZjUzN2ExYzVi
YmE3Njg4YWNjNTQzZmU5OTk2NTRiODIuLmRlN2ZmZWQ4NTUyMDRmZDA3MTNhMDUyNmM5OTdlYzQ5
ZGM5NzAzMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXVubG9h
ZC1uYXZpZ2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXVubG9hZC1uYXZpZ2F0ZS1hbmQtc2V0VGltZW91dC1hc3Nl
cnQtZmFpbC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3BhZ2UtaGlkZS1kb2N1
bWVudC1vcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9wYWdlLWhpZGUtZG9jdW1l
bnQtb3Blbi5odG1sCmluZGV4IDk1YzE0YWIzYTVlMGFkZDEyYmQwMjQ0ZTNhMWU1ZWRiYTdkNjIz
MmYuLmM1MDQ5MmFhMjc2MzEyZjc3YjgzZTQ3NmE0ZTFlYzY5NzFmNmRkN2MgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3BhZ2UtaGlkZS1kb2N1bWVudC1vcGVuLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcGFnZS1oaWRlLWRvY3VtZW50LW9wZW4uaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIFBhc3NlcyBpZiBpdCBkb2VzIG5vdCBj
cmFzaC4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0
b3JpbmctcGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLXZpYS1zdHlsZS11cGRhdGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3Vs
ZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCmluZGV4IGRiMWQxNGU4NmQx
ZjJmZjgxNjFlYWVlMWFjOWQ4ZjA2MjdmYjBjYmEuLmU0YWE1ZTcyYTIyNzViNDMwYTQ3NjFlZjAy
ZTVhMmU5NjYzNTMxZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3Rv
cmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNo
b3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlw
dHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNo
b3VsZC1ub3QtcnVuLXNjcmlwdHMuaHRtbAppbmRleCBjMTQ1YjUwOTViMDE4ODgwMmMwNTRiMDFm
ZjhjMDNkM2IwZmJkOWU1Li42NzI1ZTY0ZDA3Zjg4NzFiNjNmY2Q1ODRmZTZkZGUxZTI3YWIxMTRj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0b3JpbmctcGFnZS1jYWNo
ZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFt
ZXMvcmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2NyaXB0cy5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNyYXNoLW9uLWRhdGEtdXJscy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3BhZ2UtY2FjaGUtY3Jhc2gtb24tZGF0YS11
cmxzLmh0bWwKaW5kZXggMTE4N2M2MGU1M2Y4ZGFkZjg0YTBhMzM1NmU1MTZiNzMwMWM3MzA4Ni4u
MjE5MWVlZDQ4NDkxOGY4ZDViY2UwYjcxMDY4ZWU5MmM1OGMxZjg0NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3BhZ2UtY2FjaGUtY3Jhc2gtb24tZGF0YS11cmxzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3BhZ2UtY2FjaGUtY3Jhc2gtb24tZGF0YS11
cmxzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJs
ZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8c2NyaXB0Pgogd2luZG93LmZpbmlz
aCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91c2Ut
cGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3VzZS1wYWdlLWNhY2hl
Lmh0bWwKaW5kZXggYTAyM2JjYTkxZDNmMTI1YmZlNTBkNjA1MzgxYTE1NGMxZjY4YWI5NS4uNjA1
NDUyMjMyZTcwZTQxNTc4NWVhODU1ZWQyYzc3MzRiNmQwYmUzNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9oYXJuZXNzL3VzZS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9oYXJuZXNzL3VzZS1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+
CiA8c2NyaXB0Pgogd2luZG93LmZpbmlzaCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaGlzdG9yeS9iYWNrLWZyb20tcGFnZS13aXRoLWZvY3VzZWQtaWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvYmFjay1mcm9tLXBhZ2Utd2l0aC1mb2N1c2Vk
LWlmcmFtZS5odG1sCmluZGV4IDZkM2Y4NGIzNWQ1YzFkOTM2YzdjMWIzOGQxNTVlZTNhZmIxMDll
OGIuLmU4MGU2MmYyYTgyZmU1NGEwYTYyZWY3Mzk4NGExNDgxNzFkNTYyZmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9iYWNrLWZyb20tcGFnZS13aXRoLWZvY3VzZWQtaWZy
YW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2JhY2stZnJvbS1wYWdlLXdp
dGgtZm9jdXNlZC1pZnJhbWUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvZ28t
YmFjay10by1pZnJhbWUtd2l0aC1wbHVnaW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9nby1iYWNrLXRvLWlmcmFtZS13aXRoLXBsdWdpbi5odG1sCmluZGV4IDNjNDRhZDUyNjVmZTJj
NjgwNjkwNTdmNjVkMjYwMTRmZWIyMjQyYWYuLjVkZGFiODNkYmIzYjcxZDY3Njk3NmM1Nzg4NWMz
NDU5ZDk1ZjVlMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9nby1iYWNr
LXRvLWlmcmFtZS13aXRoLXBsdWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9nby1iYWNrLXRvLWlmcmFtZS13aXRoLXBsdWdpbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiAgIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvZ28tYmFjay10by1vYmplY3Qtc3ViZnJhbWUuaHRtbAppbmRleCBmMDhk
MDU2MWQwYzRmNWFlMTdjYzgxZTM2MjI2ODQyMjYzNWM2MGRiLi5hZjA4MzViNTU0MWMxMjZlNjU0
OWJhMDZlMWY2YjdjYjE3Y2M5Y2EwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvZ28tYmFjay10by1vYmplY3Qtc3ViZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvZ28tYmFjay10by1vYmplY3Qtc3ViZnJhbWUuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdoaWxlLXBkZi1pbi1wYWdlY2FjaGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2hpbGUtcGRmLWluLXBhZ2Vj
YWNoZS5odG1sCmluZGV4IDFiNTgxZmE5MWQ0NWRlNGU2YmY2ZjlmYjFhNzlmMjkzNjQ1NTlkNmQu
LmNmYmMwNjc1YmJiMDNhZWY3YjhkMmM2MDM5ODgyY2UzMTJiNjUzMzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2hpbGUtcGRmLWluLXBhZ2VjYWNo
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2hpbGUt
cGRmLWluLXBhZ2VjYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLU1lc3NhZ2VQb3J0LXBlbmRpbmctbWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtTWVzc2FnZVBvcnQtcGVuZGluZy1tZXNzYWdlLmh0bWwKaW5k
ZXggY2VjZjYwNDBiYWMxZDM5OGFhYjI0MjZlMDJjOGRiMDRlZTM2NTYxZC4uYTA4NjU4ZTU1YWUz
NjQxMGQ4ZWUzMmUxY2Q5NTAxNmMwMzNlY2VjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtTWVzc2FnZVBvcnQtcGVuZGluZy1tZXNzYWdlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtTWVzc2FnZVBvcnQtcGVuZGlu
Zy1tZXNzYWdlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4K
IDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
YWZ0ZXItd2luZG93LW9wZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLWFmdGVyLXdpbmRvdy1vcGVuLmh0bWwKaW5kZXggZmNkNWRlNDBkMWZhYjNkNTBkMDZkMGVk
MzQzODUyYWE0ZDVhNjhmOS4uNDg5ZmY4NGMzMTMyNGY5Y2NlZWFmNmE5YTcyNzBiMzcxNjM0YmE4
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtYWZ0ZXIt
d2luZG93LW9wZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1hZnRlci13aW5kb3ctb3Blbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWJhY2stbmF2aWdhdGlvbi1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtYmFjay1uYXZpZ2F0aW9uLWNyYXNoLmh0bWwKaW5kZXggMDJmODE3
MDhiOWYwYjMyZjQ4NzFmMGE3NzZhYWY2ZDJkZGE0YjMwYi4uYzc4ZDUzNmJmN2E2YmUxNTVjOTc4
YTJlMzBhMjY2OTkxYjdkNzRiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtYmFjay1uYXZpZ2F0aW9uLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtYmFjay1uYXZpZ2F0aW9uLWNyYXNoLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmctZXhwZWN0ZWQu
dHh0CmluZGV4IDYyNzlkYTkyNmU4NGQyMjM4NGIyMWQ5MmJkM2IzMmFiZTE0YjkzMjguLjhlNzky
NzFiZWUzMjcxZDBkN2VmNmM5M2IyZDY3MTMyNTIyYmI3NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5nLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBlY3RlZC50eHQK
QEAgLTYsOSArNiw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBwYWdlc2hvdyAtIG5vdCBm
cm9tIGNhY2hlCiBwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCiBwYWdlc2hvdyAtIGZyb20gY2Fj
aGUKLVBBU1Mgd2luZG93LmludGVybmFscy5wYWdlQ2FjaGVTaXplKCkgPiAwIGlzIHRydWUKLXdp
bmRvdy5pbnRlcm5hbHMuY2xlYXJQYWdlQ2FjaGUoKQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnBh
Z2VDYWNoZVNpemUoKSBpcyAwCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYmFja0ZvcndhcmRDYWNo
ZVNpemUoKSA+IDAgaXMgdHJ1ZQord2luZG93LmludGVybmFscy5jbGVhckJhY2tGb3J3YXJkQ2Fj
aGUoKQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmJhY2tGb3J3YXJkQ2FjaGVTaXplKCkgaXMgMAog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmcuaHRtbAppbmRleCA4
YWE5NzJhMmM5NTlmZjUxMTAzNTg3YmM5MjI0YTI2Y2U2OGVlODVjLi5kZjhiNDdiYWUyY2IwOWU3
ZWQyNjY4MzFhNDU0MzhiYThiYzQyMTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5nLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxib2R5PgpAQCAtMTMsOSArMTMsOSBAQCBpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpCiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLCBmdW5jdGlvbihldmVu
dCkgewogICAgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lzdGVkID8gIiIgOiAi
bm90ICIpICsgImZyb20gY2FjaGUiKTsKICAgICBpZiAoZXZlbnQucGVyc2lzdGVkKSB7Ci0gICAg
ICAgIHNob3VsZEJlVHJ1ZSgid2luZG93LmludGVybmFscy5wYWdlQ2FjaGVTaXplKCkgPiAwIik7
Ci0gICAgICAgIGV2YWxBbmRMb2coIndpbmRvdy5pbnRlcm5hbHMuY2xlYXJQYWdlQ2FjaGUoKSIp
OwotICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5wYWdlQ2FjaGVTaXplKCkiLCAi
MCIpOworICAgICAgICBzaG91bGRCZVRydWUoIndpbmRvdy5pbnRlcm5hbHMuYmFja0ZvcndhcmRD
YWNoZVNpemUoKSA+IDAiKTsKKyAgICAgICAgZXZhbEFuZExvZygid2luZG93LmludGVybmFscy5j
bGVhckJhY2tGb3J3YXJkQ2FjaGUoKSIpOworICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVy
bmFscy5iYWNrRm9yd2FyZENhY2hlU2l6ZSgpIiwgIjAiKTsKICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CiAgICAgfQogfSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29udGV4dC5odG1sCmluZGV4IGZmZTVi
Mjk5YTU2YzgyYzIwNmVjZTgzNTM2ZTIzYTQyZmRhN2MwYmMuLmFhYWU1MTBkNTcxMmYxY2RjODNk
NTAzODIwY2Q4YWUyOTRlZmNkN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1hZ2VCaXRtYXAuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZUltYWdlQml0bWFwLmh0
bWwKaW5kZXggOTliNjUxMzY5NmZkNzY5ZGE3ODVlN2NjM2M4NTRkMjgxYzE1MTNlZC4uNjk2ZmRk
YzY3ZmM5OTZiOGU5NTYxMjhlNzAxMDU1NmVmNWRkNmUyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1hZ2VCaXRtYXAuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVJbWFnZUJpdG1hcC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZU9iamVjdFVS
TC11c2luZy1vcGVuLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1jcmVhdGVPYmplY3RVUkwtdXNpbmctb3Blbi1wYW5lbC5odG1sCmluZGV4IGJmY2MyZTlk
YThmOTM2ZTJmZmQ2NWM2YzUwMzY4MWJkNWEwNGJmODEuLmYwZmQ2ZWI3NmQ3MzU1NjRhNmEyNDNk
NjZlZDM5ZDJjZjhkOTFmMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWNyZWF0ZU9iamVjdFVSTC11c2luZy1vcGVuLXBhbmVsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlT2JqZWN0VVJMLXVzaW5nLW9w
ZW4tcGFuZWwuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1j
cmVhdGVPYmplY3RVUkwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWNyZWF0ZU9iamVjdFVSTC5odG1sCmluZGV4IGE2MjhjODJhYzMwODM3YTE4MWI2YTIwNjEyM2Qw
ZTExNDZhNDRhNmYuLjU1NmMxOTUwYzFhODlkYzhhMWU2ZmQyZmQzYmJhYzk2NzJmMzgxNmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZU9iamVj
dFVSTC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0
ZU9iamVjdFVSTC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWRlc3Ryb3ktZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLWRlc3Ryb3ktZG9jdW1lbnQuaHRtbAppbmRleCA2ZDFkN2JmNzMyOGExYzZjMTA0YTQwMjky
NjNlNTQxMmMyYThjYjM1Li45OWQ1ZTUzMTIyNTk3M2Y1NjBkMTg3ZjQ4NTI5M2VkNmQwM2Y4MjNk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1kZXN0cm95
LWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
ZGVzdHJveS1kb2N1bWVudC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1lbGVtZW50LXN0YXRlLWZvY3Vz
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWVsZW1lbnQtc3Rh
dGUtZm9jdXNlZC5odG1sCmluZGV4IGZkZWY1ZWY2M2M5YjM1MjRhNmEwMTc0MGE1NTA2OTM4Nzgw
YThjYjUuLmZjZDkxZTVmNTZiMWZkOGFmZjk0MTZiZmJlMjVlYTQxMzIwZDAzMzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWVsZW1lbnQtc3RhdGUtZm9j
dXNlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWVsZW1l
bnQtc3RhdGUtZm9jdXNlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLWV4ZWN1dGUtc2NyaXB0LWR1cmluZy1yZXN0b3JlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1leGVjdXRlLXNjcmlwdC1kdXJpbmctcmVzdG9yZS5odG1s
CmluZGV4IDJlMzRmNDk2MmM5NGZjMGVlNmQ4OTY3MGZhNmU1ZTIzZmE3ZDM4NGMuLmM0N2M3NGVi
NmRkNTUxNGNmZmQzM2NhNjBkMDkzNDVlY2RkMjg2ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWV4ZWN1dGUtc2NyaXB0LWR1cmluZy1yZXN0b3JlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZXhlY3V0ZS1zY3Jp
cHQtZHVyaW5nLXJlc3RvcmUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtb25lc2hvdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLW9uZXNob3QuaHRtbAppbmRl
eCAwY2U0ODAzOGQ1ZWE5ODA3NjRhMDhhY2Q5NTYwNjZjN2FmOWU0YzYyLi44ZGY5ODA4ZTM0MDc1
ZTY4YmY1YjM0Yjk3ODRlZTgxYmE2MDIyNDEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtb25lc2hvdC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1v
bmVzaG90Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJs
ZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxi
b2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2Vv
bG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS13YXRjaGVyLmh0bWwKaW5kZXggOTRjMDc3MmU0
ZjgwNDllMzVjN2YyNzA5MWJkMjZjY2Y5NjEyYjhlMC4uMzA5MDVjNjQ2YWY2MDk3YmYyNjFkZjE0
OTdhZDgwZWI2ZDg5NTA0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hlci5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi5odG1s
CmluZGV4IDQ4NDZhYjY0NzhmNTQyZGY2Zjc3NzhiNDQ1Yjk4NjMyNDNhMGFkMjQuLjNkMDY0MTY0
NjhmYzUxMWZlYTYxMDI4MTE4YTE0MGJmYzkzZTdmYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24uaHRtbApAQCAtMSw0ICsxLDQg
QEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4K
KzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0g
LS0+CiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtaWZyYW1lLWpzLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtaWZyYW1lLWpzLXVybC5odG1sCmluZGV4IGNjYzZhNTM5ZDAxMDdjZjUwZTU2N2JmOGQzNGYx
MDJjOWM1YTM0NjUuLjQ1ZWMzYTZjODM2ZDBhYzFjY2ZlOGIwYWNlMTYwY2UyODJiNTE3OGUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWlmcmFtZS1qcy11
cmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pZnJhbWUt
anMtdXJsLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJs
ZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxo
ZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5k
ZXhlZC1jbG9zZWQtZGIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWluZGV4ZWQtY2xvc2VkLWRiLmh0bWwKaW5kZXggY2MwOTc2MTVmY2MwMWQyMmEyYjM2MTZiZDE4
NmM0MDRjOTg3ODUxMy4uZDA3NDEyMGE0N2EyNWM1ZTM4OTE2MGYzYjE3NTUxYTkzMWI3NDhjYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1j
bG9zZWQtZGIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1p
bmRleGVkLWNsb3NlZC1kYi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rvcnkv
cGFnZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sCmluZGV4IGNhYTc3Y2JmYTk2ODc1YWM1
ZGZmOWYyYWJjYjNlOTA2N2EwZDY0NTYuLjdkNmJkYjJjMGFmN2NjY2MwNzFmNDMzYTc0ZTRjMTYx
YThiYjA0ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWluZGV4ZWQtb3BlbmVkLWRiLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtaW5kZXhlZC1vcGVuZWQtZGIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2UtY2xvc2VkLTIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1jbG9zZWQtMi5odG1sCmluZGV4
IGQ4ZTNjNGYzMDM1YjNlYTUxNDgzMTZmYTRhYTE0ZTA2YTNlMzZmMzguLmQ1MTYxY2NhMTc1NTNh
MTRhNzJiOGRiMjQwY2I2YThhM2M2MTZhN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1jbG9zZWQtMi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1jbG9zZWQtMi5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1j
bG9zZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNv
dXJjZS1jbG9zZWQuaHRtbAppbmRleCA4MThmMDI2NTJkODI4YzM5M2I0OWYwMWI3MDY2ZTJmMzBi
OTJiZTY3Li4yOGE3YzFmNTFhNTAyODQxYmU5ZjE0MTFjODkzMWFiMmFmZTAwZjU2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2UtY2xv
c2VkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEt
c291cmNlLWNsb3NlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLW1lZGlhLXNvdXJjZS1vcGVuZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1vcGVuZWQuaHRtbAppbmRleCA5NTVhZjk1YjJmMTkxMzY5
OTYxMGVhMjk2YzJkZmExOWNhZTE4ZmUxLi4wYjVmNmFhNTZmYTdlZDFmZjlhOGYwMjcxNGRmNzNm
M2RhODEzNGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1tZWRpYS1zb3VyY2Utb3BlbmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLW9wZW5lZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5hdmlnYXRlLWR1cmluZy1yZXN0b3JlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0ZS1kdXJpbmctcmVzdG9yZS5o
dG1sCmluZGV4IDk3OTY3YWUzOGE5ZGY3MzJlZmM3YzFmZWQ4ZGJiN2Y0YTI1Y2I1YzAuLmY0ODhl
NDVhMzBhZTdmNWJiNWJhZGU0MTcyY2ViMzhkYTBhZjFkZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5hdmlnYXRlLWR1cmluZy1yZXN0b3JlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbmF2aWdhdGUtZHVyaW5n
LXJlc3RvcmUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGJvZHk+CkBAIC0xMyw3ICsxMyw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRl
c3RSdW5uZXIuY2xlYXJCYWNrRm9yd2FyZExpc3QoKTsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBpbnRlcm5hbHMuY2xl
YXJQYWdlQ2FjaGUoKTsKKyAgICBpbnRlcm5hbHMuY2xlYXJCYWNrRm9yd2FyZENhY2hlKCk7CiB9
CiBzZXNzaW9uU3RvcmFnZS50ZXN0U3RhZ2UgPSAnaW5pdGlhbCc7CiBsZXQgcGVyc2lzdGVkID0g
ZmFsc2U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1u
b3RpZmljYXRpb24tbm9uLXN1c3BlbmRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tbm9uLXN1c3BlbmRhYmxlLmh0bWwKaW5kZXggYTYy
ZTk3YjRjOGNjMmRhOTlhM2JmOGY3ZGNkOGRmZDQ0NWExODVmYS4uNTNkYmFjYjRjNjdjMjgyOTYz
MzdlM2MwNGQ1MzZlZTE5NWY0Yjg4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLW5vbi1zdXNwZW5kYWJsZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1ub24tc3VzcGVu
ZGFibGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3Rp
ZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLW5vdGlmaWNhdGlvbi1zdXNwZW5kYWJsZS5odG1sCmluZGV4IDUxY2JhNWQ0YTAxNTBm
MzhkNWQyOGNiZjBkZWYxZjA1MjA2OTAzZTYuLjA0YjdiZDZjZjI4YjczMGE0N2ZhYTE2ZGZiYWE2
MWRjNzVmYjI3YWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLW5vdGlmaWNhdGlvbi1zdXNwZW5kYWJsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1zdXNwZW5kYWJsZS5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXJlbW92ZWQtc291cmNlLWJ1ZmZlci5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcmVtb3ZlZC1zb3VyY2Ut
YnVmZmVyLmh0bWwKaW5kZXggMGUyOGFjZjU0YTQ5YjYyYWI2ZGIxOGI1ODFiZjdhN2FlNmVjNzQ4
Yy4uYmExZGM3NDkzNzI1ODllMzJlNTVkMWI5MDYwN2JmNjVlZGQzYmJlNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcmVtb3ZlZC1zb3VyY2UtYnVmZmVy
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcmVtb3ZlZC1z
b3VyY2UtYnVmZmVyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLXJ1bm5pbmctYXVkaW9jb250ZXh0Lmh0bWwKaW5kZXggNzliNTI1NTZhZjBjNTMz
NWEyYTA5MjJhYTRkNDgwMzcyZDBlNDM4NS4uNDllYWNmZDUzOTljMzZiMjVkYmFjZTRjODViOWZm
NDVkMzg2MTdjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sCkBAIC0xLDQgKzEsNCBAQAot
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4K
IDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1lcy13aXRoLXByb3Zpc2lvbmFsLWxvYWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1lcy13aXRo
LXByb3Zpc2lvbmFsLWxvYWQuaHRtbAppbmRleCBjYjk0NTFmYmQ5NmQzZGRhOTJjY2NlMmJiYzU2
MGNkMDYwZGViNzZiLi4zNmQ1MGZkOTI0NzVlOWQ3ZWI5ZWI3OGVkMjNiZjY3MGU3MDFkMGM5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdWJmcmFtZXMt
d2l0aC1wcm92aXNpb25hbC1sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtc3ViZnJhbWVzLXdpdGgtcHJvdmlzaW9uYWwtbG9hZC5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1c3BlbmRlZC1hdWRpb2NvbnRleHQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1c3BlbmRlZC1hdWRp
b2NvbnRleHQuaHRtbAppbmRleCAzMTU0NDAxY2U5MzI0NjBlMWUwNmY2YjY0ZjhmNmY4YjEwZmY2
ZGMzLi4xN2VjYzBhNDk2NDc2N2EwZWRjMWYwNDVhMjRjYzQ0NmM5ODkyYTIzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5kZWQtYXVkaW9jb250
ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3VzcGVu
ZGVkLWF1ZGlvY29udGV4dC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLXdlYmRhdGFiYXNlLW5vLXRyYW5zYWN0aW9uLWRiLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1uby10cmFuc2FjdGlvbi1kYi5odG1s
CmluZGV4IGE0ZjU2NTU1MDE3MmExYzE3NDgyN2IzNzg5NDYxZDQ3YmMzZmJhMzEuLjJkMTQxNDRi
MWFiMDRjNTlkOTlkNWM1ZjFlNmNjYmQzZGMwNTQ2NzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLW5vLXRyYW5zYWN0aW9uLWRiLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2Ut
bm8tdHJhbnNhY3Rpb24tZGIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9u
Lmh0bWwKaW5kZXggMGVhYjIzZGZiODc4ODI1NWM2YjdlNjdkMzliMTUwMjgwZTk0YTc2My4uNTU5
NjNiY2ZmNDQ5Nzc4YTIyZTgxMDdkZjk3OTJjMWYyMjI2YTE3MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2Fj
dGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRh
dGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS13aXRoLW9wZW5lci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbAppbmRleCBmOGU0MGU0NmZiZjFlZDI3ODc4
ZmM3ZmVmZDQwNDY5NjZhM2NhNzQzLi5hMmZiM2JjY2FkNzc1MWVjMDk4Y2U3ZDQyOTkxNTNlY2Y0
YTUyZWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13
aXRoLW9wZW5lci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LXdpdGgtb3BlbmVyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2VoaWRl
LXJlbW92ZS1pZnJhbWUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
aGlkZS1yZW1vdmUtaWZyYW1lLWNyYXNoLmh0bWwKaW5kZXggNWNjNTE0M2ZjZmUwZjZlNGJlOTJm
MDUzMWY3MjkyMWQzYzllOGYwNi4uODA4NjZkMWYwM2E3OGU2M2ZhYmM5YWE0M2RhOWUzOGFmZDhm
ZGFiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2VoaWRlLXJlbW92
ZS1pZnJhbWUtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZWhp
ZGUtcmVtb3ZlLWlmcmFtZS1jcmFzaC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJhbWUu
aHRtbAppbmRleCBmZDYyYmQzODI4NjY2YTg3NmIwZGVlMWNiNGE1ZDMyMmFkYTc3N2ZiLi40OTQ4
MzViOGJkNjRiMjFhOWQ2ZDE2MGIzMjc5MWExZWYzY2Y4MmIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdpdGgtaWZyYW1l
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hl
LXdpbmRvdy13aXRoLWlmcmFtZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9y
ZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1vcGVuZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1vcGVuZXIuaHRt
bAppbmRleCBiYTYzMDExZjEwMDA0NzA0Y2I1YzNmMTZlNGUyODc4NzE5YjA3NmJiLi4zY2FmMzZl
MGUxZjNjMWUyYzA2ZGYxZGJiZmIyODJhNTU3MjdmY2M1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdpdGgtb3BlbmVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLXdp
bmRvdy13aXRoLW9wZW5lci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS90aW1l
ZC1yZWZyZXNoLWluLWNhY2hlZC1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3RpbWVkLXJlZnJlc2gtaW4tY2FjaGVkLWZyYW1lLmh0bWwKaW5kZXggMjQyODAxNmNhNjZjOTA2
N2EzMjAxMjE3ZTZjNGY3ZjBiMjg0MTk0Ny4uMDMzNDFhYzcwNTczZjBjZjkwNDc0YTZhNjAxYTg1
NTY0MzVlODY3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3RpbWVkLXJl
ZnJlc2gtaW4tY2FjaGVkLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3RpbWVkLXJlZnJlc2gtaW4tY2FjaGVkLWZyYW1lLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGJv
ZHkgb25sb2FkPSJyZWRpcmVjdCgpIj4KIDwhLS0gTmVlZHMgdG8gdGFrZSB0d28gc2Vjb25kcywg
YmVjYXVzZSBhIGZhc3RlciByZWZyZXNoIHdvdWxkIHJlc3VsdCBpbiBub3QgY3JlYXRpbmcgYSBi
L2YgaXRlbSBmb3IgdGhlIG5hdmlnYXRpb24gLS0+CiA8aWZyYW1lIHNyYz0nZGF0YTp0ZXh0L2h0
bWwsPG1ldGEgaHR0cC1lcXVpdj0iUmVmcmVzaCIgY29udGVudD0iMjsgVVJMPWFib3V0OmJsYW5r
Ij48c2NyaXB0PmlmICh3aW5kb3cudGVzdFJ1bm5lcikgeyB3aW5kb3cub25wYWdlaGlkZT1mdW5j
dGlvbihlKXthbGVydCgmYXBvcztwYWdlaGlkZSAmYXBvczsgKyBlLnBlcnNpc3RlZCl9OyB9PC9z
Y3JpcHQ+Jz48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2Fu
aW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJmY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2FuaW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJmY2FjaGUuaHRtbAppbmRleCA4Mjhi
Y2JhYWViYzQ3OTA5OTA1YmRkODg3YTVjOTJkOTk4NGNkY2UzLi42NGIxNTEwNTliZWEyMjI1ZmJj
ZjFlNDg1NmM2YTJkY2E1YzNiZjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXJlc3RvcmVkLWZyb20tYmZjYWNoZS5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9
dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL2ZyYW1lcy13aXRoLXVubG9hZC1oYW5kbGVycy1pbi1wYWdlLWNhY2hlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZXMtd2l0aC11bmxvYWQtaGFuZGxlcnMtaW4t
cGFnZS1jYWNoZS5odG1sCmluZGV4IGI4MWY4NzczYTI4ZTM4ZGU5ZWM1NDJhYTBmOTZjNjA1ZjJl
NTEzN2YuLmEzN2QyN2ViZGRmYjA4MGE4ODY0ZjU2OGI5ZTJlNzY3ZDc3MzFhYTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1lcy13aXRoLXVubG9hZC1oYW5kbGVycy1p
bi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWVzLXdp
dGgtdW5sb2FkLWhhbmRsZXJzLWluLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL2ltYWdlLWluLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2lt
YWdlLWluLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA3ZDQzMTAzYjMzMmMxYzNiOWVjNWZhNWNmMmNl
ZjEyMDc5MTk0MzNjLi45N2M5YmMwMTE0YWEyNWVkZGY4ZTMzY2U2YzA5N2FkMDc3MjYwYzg2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9pbWFnZS1pbi1wYWdlLWNhY2hlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW1hZ2UtaW4tcGFnZS1jYWNoZS5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2lucHV0LWVsZW1lbnQtcGFnZS1jYWNoZS1j
cmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNh
Y2hlLWNyYXNoLmh0bWwKaW5kZXggYzg2YjI1ODljZGUyNjM5ODUzZWVjMTZjN2MzYzMxN2M3ZWUy
NDc2My4uN2YxYmZlM2NiYWIyYWVmMDdkMzYxYTczYmZkMjA5NjIyMzQwZmJmYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNhY2hlLWNyYXNo
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNh
Y2hlLWNyYXNoLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLW5ldy10
YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2
aWdhdGlvbi5odG1sCmluZGV4IGM1OGM3MjZkMGM5YTM0ZTE4MzZjNjdmYWIyZGMzMjVjZTI0NjJl
YzYuLjEwNDdkMDdkZjlkYzE2MDhiOWNmYTFhMDU2YWQ3NjNjMjQwNDk4ZDggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtbmV3LXRhcmdldC1hZnRlci1i
YWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L25hdmlnYXRlLXdpdGgtbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1u
ZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNr
LWZvcndhcmQtbmF2aWdhdGlvbi5odG1sCmluZGV4IDJmYzIzOTU0NDYzOWMxZjE2YzZmN2RkMDll
NzI0ZDU0ZmNmNGI4YzUuLmMyYjcwNTMxMWY1YmY0MTI5NmFlMmVlMGY0ODg4YjQ5MGNkODE0MzIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10
by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJnZXQtYWZ0
ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9zY3JvbGwtcG9zaXRpb24tcmVzdG9yZWQtb24tYmFjay5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbAppbmRleCA3
ODBlYzYwNDA5NTU0NjFjNGU2YzA3MWJhYTgzZGU4NTg2NmI1ZTU3Li4xMTMxNGE1M2YyOGI5ZWVl
MzFjMzlkYzE4YmU3MDQwMzkwNmQ2NmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9zY3JvbGwtcG9zaXRpb24tcmVzdG9yZWQtb24tYmFjay5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL3Njcm9sbC1wb3NpdGlvbi1yZXN0b3JlZC1vbi1iYWNrLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRv
LXN0YXRlbGVzcy1lbnRyeS13aXRoLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL3N0YXRlb2JqZWN0cy9uby1wb3BzdGF0ZS13aGVuLWJhY2stdG8tc3RhdGVsZXNzLWVu
dHJ5LXdpdGgtcGFnZS1jYWNoZS5odG1sCmluZGV4IGJiMDQ2MGIxMTc0ZGIzYjVjYzg5MjJlNTEz
ZDg3NzlmMzVlNDAyMTMuLmYwNDUzODNiNDhiYmQyMjk4YTcyOGI5OGI4ZjRhNmM1NmI0YzVhNDUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9uby1wb3Bz
dGF0ZS13aGVuLWJhY2stdG8tc3RhdGVsZXNzLWVudHJ5LXdpdGgtcGFnZS1jYWNoZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9uby1wb3BzdGF0ZS13aGVu
LWJhY2stdG8tc3RhdGVsZXNzLWVudHJ5LXdpdGgtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wb3BzdGF0ZS1maXJlcy13aXRoLXBhZ2Ut
Y2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wb3BzdGF0
ZS1maXJlcy13aXRoLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA1NDAzYzFmN2Q5NjhjNjMzYjVlZjI1
MzY0ZmNjODc3YTVmODFkZGExLi44ZTQwMzBjNDE1MmQxMDY2NWU5Y2M5MDc3NWU4YzE5YzcwMjFj
NDRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvcG9w
c3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvc3RhdGVvYmplY3RzL3BvcHN0YXRlLWZpcmVzLXdpdGgtcGFnZS1jYWNoZS5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9
dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Vuc2NoZWR1bGUtcmVsYXlvdXQtYWZ0ZXItdW5s
b2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5b3V0LWFm
dGVyLXVubG9hZC5odG1sCmluZGV4IDY5MmM3MDZlYTQ0Yjc5YzQ1YmMyY2YzNzlmMGMzZDU0MjI1
MGUyN2EuLjMxMTBlYWI0MTVlZjkzNjJlYTMxNzk0MmQxNjY2NDExYzAzMDY0NTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Vuc2NoZWR1bGUtcmVsYXlvdXQtYWZ0ZXItdW5s
b2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvdW5zY2hlZHVsZS1yZWxheW91
dC1hZnRlci11bmxvYWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxib2R5PgogPHBy
ZSBpZD0ibG9nIj48L3ByZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3dp
bmRvdy1wcm9wZXJ0aWVzLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvd2luZG93LXByb3BlcnRpZXMtcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hl
Lmh0bWwKaW5kZXggOTM0MzVhNTE3NTlkNDc4ZTVhMWQwMzU2MTVmNTA1MDQ0MDQxZmEwZC4uMzY1
MDZlNmNmOGQyNTU5ZTNhM2MxYmU2Y2IwMDkzMDVjMzkyZjc0YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvd2luZG93LXByb3BlcnRpZXMtcmVzdG9yZWQtZnJvbS1wYWdlLWNh
Y2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvd2luZG93LXByb3BlcnRpZXMt
cmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4K
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1w
YWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBkMmU5M2FhOTYxNTkyYjA5OTM2NTU5Y2E1MjA0
YWNhNTYwNzg2ODA4Li43OGIyODFjZDUzYWNlYjczYzcwYmJkMzM2MGMwNzQ1Yzc3ZWRjNDZkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUg
aHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L292ZXJm
bG93L2hvcml6b250YWwtc2Nyb2xsLWFmdGVyLWJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
b3ZlcmZsb3cvaG9yaXpvbnRhbC1zY3JvbGwtYWZ0ZXItYmFjay5odG1sCmluZGV4IDE0YTdkOWIw
NDQzMzA5MDU5MTQxOWViNmVhN2FhYjMxMjQ4NzdlOWYuLjcwM2NlNjRmNjQ4N2I4MWMxOThiZmRj
NTBkYzc2YTU5N2I2N2ZiMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvb3ZlcmZsb3cv
aG9yaXpvbnRhbC1zY3JvbGwtYWZ0ZXItYmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
b3ZlcmZsb3cvaG9yaXpvbnRhbC1zY3JvbGwtYWZ0ZXItYmFjay5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxodG1sPgogPHNjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaWZyYW1lLXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaWZyYW1lLXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sCmluZGV4IGYwMDY1
ZmQzNmZhY2NkNTk0MmMwMGRiNWFkMTAzZGFiOGIzZmU0ZmQuLjJiODQ3ZDgyMDIxMzdhYzI2OTM1
ZjFhYTk5ZDZmNTc2YTI3NmEyOGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lmcmFtZS1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pZnJhbWUtc2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWFm
dGVyLXBhZ2VzaG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xs
LWV2ZW50cy1iYWNrLWZvcndhcmQtYWZ0ZXItcGFnZXNob3cuaHRtbAppbmRleCA1YTZiZDg5YmFi
NGYwOTNhNjg1NDUwZDI4NWNmN2RlMDUwZWQ4ZTlhLi5kNzEzMzJiOGNhN2ZjMTJhM2U1MTNjNTg5
NGU0NzllYjNlNmUxMjc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQtYWZ0ZXItcGFnZXNob3cuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQt
YWZ0ZXItcGFnZXNob3cuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxo
dG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mv
c2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xs
aW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC5odG1sCmluZGV4IGUyZjk4NjY4NDM1
ZTY5NWQzODdlNmYxMzY3MDg5OTJmMmViN2QzOWUuLmMxMTUxOTZlMDZiNzY0YWIxNWU3ZTI2NDNl
MDg2ZTljOGMzMTYwNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1zY3JvbGwtYmFjay1mb3J3YXJkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvdG91Y2gtc2Nyb2xsLWJhY2stZm9yd2Fy
ZC5odG1sCmluZGV4IDExNjU0NDc1MWYxMmNkOGRiNTY5ZGFiMjJkMDIwZGNkMmUyMzJhMzAuLjFj
ZGEyYmVhM2YxYmFkYWZmNmU3YjA2MjNmMTU0MWJjNGU4OTNmYjEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1zY3JvbGwtYmFjay1mb3J3YXJkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9sbC1iYWNrLWZv
cndhcmQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogICA8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNjcm9sbGFibGUt
YWZ0ZXItYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Ny
b2xsYWJsZS1hZnRlci1iYWNrLmh0bWwKaW5kZXggMDdlMTM1YTkyMzMxZTJhNWI5ZDZjOWVkYjNi
NzE4MmI5YTQ4NWE3Yi4uMWVkZTY2MTQ2Yzg0ZDA5YjRiZDJhZjkxMWFkMWMyYTYwODAzMzc3ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsYWJs
ZS1hZnRlci1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcmZs
b3ctc2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvcGFnZS1jYWNoZS1iYWNrLW92ZXJmbG93LXNjcm9sbC1yZXN0b3JlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9wYWdlLWNhY2hlLWJhY2stb3ZlcmZsb3ctc2Nyb2xsLXJl
c3RvcmUuaHRtbAppbmRleCA2OTE3NmE3ZTgyMzMyZWJkNjY0YjVjN2U0YTUyNDUyMWQ2NTZmNmZj
Li42ZjdkZjA3NmM5YTBiMTk2MGZjZWI2MmQ0ZmYyNGZmYzI0MmQwYWY4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9wYWdlLWNhY2hlLWJhY2stb3ZlcmZsb3ctc2Nyb2xs
LXJlc3RvcmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9wYWdlLWNhY2hl
LWJhY2stb3ZlcmZsb3ctc2Nyb2xsLXJlc3RvcmUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c3R5
bGU+CiAjcHVmZmluIHsKICAgICBmb250OiBBaGVtIDEwcHg7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvdGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2su
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy90ZXh0LWF1dG9zaXpp
bmctYWZ0ZXItYmFjay5odG1sCmluZGV4IGU2MjFjODg1MGQyNmVkZWU4OTI3Mjc1ZGM4YzhlMTQ2
Yzc4OGNhMDcuLmVmZWVlNWZmMWQ5NWQ5NDVkNjgyZDMzMDM5N2NiYzk5YThmNjVjZDYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy90ZXh0LWF1dG9zaXpp
bmctYWZ0ZXItYmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5n
L2lvcy90ZXh0LWF1dG9zaXppbmctYWZ0ZXItYmFjay5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFE
T0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9y
dD10cnVlIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+CiAKIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy92aWV3cG9ydC1zaHJpbmstdG8tZml0LW9uLW5ldy1u
YXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy92aWV3cG9ydC1z
aHJpbmstdG8tZml0LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWwKaW5kZXggOWJiM2Q5YTg1MGI2M2Yw
MWM3YjE2NTBhMzZlNGEwZjZlMjU0Yzk4MC4uZDgxMzdiYTQ3YThhMjRmNTY0Mzc5N2RiOWZlMjUy
Yzc5ZWU2NzkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3Mvdmll
d3BvcnQtc2hyaW5rLXRvLWZpdC1vbi1uZXctbmF2aWdhdGlvbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvdmlld3BvcnQvaW9zL3ZpZXdwb3J0LXNocmluay10by1maXQtb24tbmV3LW5hdmln
YXRpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIHNob3VsZElnbm9yZU1ldGFWaWV3cG9ydD10cnVlIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBz
aG91bGRJZ25vcmVNZXRhVmlld3BvcnQ9dHJ1ZSBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIAogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvdmll
d3BvcnQvdmlld3BvcnQtMTI4Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L3ZpZXdw
b3J0LTEyOC5odG1sCmluZGV4IDNmZWIwMGQ5YTllN2Q5MDZlYmE5YzgwOWZjYjcxZmMzZmNhNWY5
MGYuLjQ2ZTgzODIwMWY4NTg5YTQ2ZWMzMDkwNjg0NmM2ZjQ3OWUwOTY1MjMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvdmlld3BvcnQtMTI4Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC92aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
aHRtbD4KICAgICA8aGVhZD4KICAgICAgICAgPHRpdGxlPlZpZXdwb3J0IG1ldGEgZGF0YSBzdG9y
ZWQgaW4gcGFnZSBjYWNoZS48L3RpdGxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
d29ya2VyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAzNTQyYzM2OTZkM2QzMGQ5YzM1ZTA5MDQ3ZDk2
ZTEzM2NjMmNlZDdjLi4xNDE2MzFlZjYyYzU2Nzc0NGQ5YTg1NzhlNWNlOGRhNGFkMDdjNGRhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2NhY2hlL2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1pbWFnZS1sb2Fk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc3BsYXktaW1hZ2UtdW5zZXQt
YWxsb3dzLWNhY2hlZC1pbWFnZS1sb2FkLmh0bWwKaW5kZXggZmY1ODE1ZTg5N2MxN2VmMWZhZjU4
ODk0YWVhNDE4ZTJlZDY1NzgzZi4uNDcyODIyMmMwNjEzYzBkMjIwYmNjMTE1NmVmZjQ4ZTJiODE1
ODk4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNwbGF5LWlt
YWdlLXVuc2V0LWFsbG93cy1jYWNoZWQtaW1hZ2UtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FjaGUvZGlzcGxheS1pbWFnZS11bnNldC1hbGxvd3MtY2FjaGVkLWltYWdl
LWxvYWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2Ut
cGFnZS1jYWNoZS1jb25uZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRz
b3VyY2UvZXZlbnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0ZWQuaHRtbAppbmRleCBjNjY5ZjJj
MDBhMjE4Y2YwYzgwMjRiMjk1NWU2NTcwNTY5OGRiNmRkLi4yMDVkOWMwMTNjNzhkY2RjZWVlMzlm
YmRiYjA2ZjM2NWEwNDZjZDNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2
ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGVkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNv
bm5lY3RlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8
aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZl
bnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGluZy5odG1sCmlu
ZGV4IGIwNWU0NzRiOTk3YmE2MzAxMjhiZTY5YzA1ZTE5YmRmODM3MzljNTUuLmVkNmZhOTcyYzE4
ZTQyNWQ4NWM4Nzk0NDhhNjQ0OWQxOWVmZTYyNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0aW5nLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1w
YWdlLWNhY2hlLWNvbm5lY3RpbmcuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRt
bD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
YWRpbmcvbWFpbi1yZXNvdXJjZS1kZWxlZ2F0ZXMtb24tYmFjay1uYXZpZ2F0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvbWFpbi1yZXNvdXJjZS1kZWxlZ2F0ZXMtb24t
YmFjay1uYXZpZ2F0aW9uLmh0bWwKaW5kZXggMDQ5NDg3NTliYzk5NGFlMzJhNjFmYTliMjRkNmQw
MGQ2NTE0Yzg5Yi4uZjFlMWY4ZDlhYThjYjE3M2VkZTgyMDAyZWZhMTdiYTE1ZDE0YTJiYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL21haW4tcmVzb3VyY2UtZGVs
ZWdhdGVzLW9uLWJhY2stbmF2aWdhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbG9hZGluZy9tYWluLXJlc291cmNlLWRlbGVnYXRlcy1vbi1iYWNrLW5hdmlnYXRpb24uaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hlZC1sb2FkLWJh
Y2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvYWRpbmcvdW5maW5pc2hlZC1sb2FkLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0
bWwKaW5kZXggY2E1Nzg4ZTA3ODMwMzY0NGRhOGZjMDE4YzNmZjZlZTg4MzBiYzMzMi4uOTRjZmY3
YWE5ZjVkZmM0OTUyODU5MTBmYmRkZjQxZjQ2MDg5NDFhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQtbG9hZC1iYWNrLXRvLWNhY2hlZC1wYWdl
LWNhbGxiYWNrcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91bmZp
bmlzaGVkLWxvYWQtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8c2NyaXB0PgogCiB3aW5kb3cub25wYWdlc2hvdyA9IGZ1bmN0aW9uKGV2dCkgewpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQtbWFp
bi1yZXNvdXJjZS1iYWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQtbWFpbi1yZXNvdXJjZS1iYWNrLXRvLWNh
Y2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sCmluZGV4IGYyYWM2NmFkMWY2OTBlNDEyNjE3MDgxYmYz
NTU3NzUyYjE2YjQ2ZjQuLmQ4OTY1ODA3NDEzOTJkNjc4ZGRjMTU5MmU0YjkyNTc5NTUyMTJkNTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLW1h
aW4tcmVzb3VyY2UtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hlZC1tYWluLXJlc291cmNlLWJhY2st
dG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4K
IAogd2luZG93Lm9ucGFnZXNob3cgPSBmdW5jdGlvbihldnQpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWwKaW5kZXggM2Zl
NjgwMGM4OGNlMDllZDkyOTEwNzZhZjViMDQyMTRlNDE0YWQ4MS4uYTA3YTAzYjM3Mjk4NjJmNGJh
YmMzOWIwYTc3Yzk3NTM3ZjJjMGVjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KICAgICA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVycm9yLXBhZ2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVycm9yLXBhZ2UuaHRtbApp
bmRleCAxOGJkMTM5ZGEwZWZkNTcxNWZjZjFmNDVhNjhhNTc1OWE4ZjgzNGM3Li4xZWZmYzY4OGQ3
NTkxNTUwYzVjOTE5MWRlMTczODI4MzRlYjViOWNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vZ28tYmFjay10by1lcnJvci1wYWdlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3ItcGFnZS5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtaW4tcGFnZS1jYWNoZS5odG1sCmluZGV4IGVlZTli
MjY4N2MzYmZjYWYwZDI0ZDRmOTY0ZTkyN2JjN2YwYTlhZGMuLjNmMDk4Njc1NmJmYWQ5M2JlY2Fh
YTRmMzVmNmI0MzZiNzIwOWU3MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQg
QEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4K
KzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0g
LS0+CiA8c2NyaXB0PgogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1uby1zdG9yZS1zdWJmcmFtZS1p
bi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0
cHMtbm8tc3RvcmUtc3ViZnJhbWUtaW4tcGFnZS1jYWNoZS5odG1sCmluZGV4IDk4MGYyMGI2MDY3
OTUwMWE0NDQzMjhkNTgwNzRlNTBjMjIzZjIwOWUuLjIzZDU4M2QwYzk1MWQ0MjcyYWZmMjM3Njdk
ZDE3MTI2N2NhNmE5ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9odHRwcy1uby1zdG9yZS1zdWJmcmFtZS1pbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1YmZyYW1lLWlu
LXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0PgogCiBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9pbWFnZS1sb2FkLWluLXBhZ2VoaWRlLWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9pbWFnZS1sb2FkLWluLXBhZ2VoaWRlLWhhbmRsZXIuaHRtbApp
bmRleCBmMDk4ZjE0MGM5Y2Q2NTk0ZDA3NTkyZTdhMzZjOWVlZDliN2IyYWE5Li45MDNmOTMzYjI1
MzdmMjM3NWU1YjcyZDkwYzUwMDZhOWIwMTkyOGE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi1wYWdlaGlkZS1oYW5kbGVyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ltYWdlLWxvYWQtaW4tcGFn
ZWhpZGUtaGFuZGxlci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPjxoZWFkPgogPHRpdGxl
PkltYWdlIGxvYWQgaW4gcGFnZWhpZGUgaGFuZGxlcjwvdGl0bGU+CiA8c2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2Fj
aGUtcGVuZGluZy1wcm9taXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2UuaHRtbAppbmRleCBkYmU3NjVk
ZmJhMGJlNTNhNTJhNTYxMDA4ZDYxYzZjYzM4NmZiY2VjLi43NWViZmNlOTcxMzMyYzVkMDNiNzNh
YmY4NTA4Mzc1MDdlYzEwYmE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5k
aW5nLXByb21pc2UuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1s
PgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1kb21jYWNoZXN0b3JhZ2UtcGVuZGluZy1wcm9taXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZXN0b3JhZ2UtcGVu
ZGluZy1wcm9taXNlLmh0bWwKaW5kZXggZDA1ZTVlMDkyMDUyZGRmNzNmZjRmZjAxNzVlOThlMWJk
OTBhMmIxMy4uYzIyM2RkOTYyZWZkMDI5ZWUyZjQxNDI0YzhiYjZhOTI2MWVjNGIyNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2Fj
aGVzdG9yYWdlLXBlbmRpbmctcHJvbWlzZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlc3RvcmFnZS1wZW5kaW5nLXByb21pc2Uu
aHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFn
ZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1m
YWlsZWQteGhyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS1mYWlsZWQteGhyLmh0bWwKaW5kZXggNzJkMGJjOTc2YzA3YjViNDVhNDAyNzcwZGQ2NTBl
MWM3ZWM5NDg3MS4uN2M5MTAzMzJiNTNhOGVlZDY4ZWM3NGJiZjY4MzE3MjFkYTdmY2U0OSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZmFp
bGVkLXhoci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWZhaWxlZC14aHIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vcGFnZS1jYWNoZS1mb250ZmFjZXNldC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbAppbmRleCBlZjlmNWMzMjM4
NjNjY2U4NDg3MmU3MmJjNmYwYzNlYTZkMGZhOGMwLi41ZDYyNDQ1ZmFiNzlhOWM4MTUwMDc3ZGM2
YWI4ZmE3ZDc5YmM1Yjc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vcGFnZS1jYWNoZS1mb250ZmFjZXNldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWZvbnRmYWNlc2V0Lmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZnJhZ21lbnQtcmVmZXJyZXIu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWZyYWdt
ZW50LXJlZmVycmVyLmh0bWwKaW5kZXggMDI2N2U1ZGZiMzNjNTY0ODQzZGM2MDAyNTMyYzM3NmE3
ZjQ1MjlmZC4uM2RkNTA3ZGIwODRhZGY4MmUxNTY0NmYyODYzYWJjYmZkODBjNDQ2NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZnJhZ21l
bnQtcmVmZXJyZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1mcmFnbWVudC1yZWZlcnJlci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1uby1jdXJyZW50LWhpc3RvcnlJdGVt
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJh
bWUtbm8tY3VycmVudC1oaXN0b3J5SXRlbS5odG1sCmluZGV4IGJjODg3NjQ2MGNjYTMyZTExMjgz
NzNkOWM4ZTQ0YWRiY2I5OWQ5Y2YuLjUxZjI0OTVlOGRmMmM5YjdmMDY3M2JiYTZhOGNhYmUyZDVi
ZDMxZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWlmcmFtZS1uby1jdXJyZW50LWhpc3RvcnlJdGVtLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLW5vLWN1cnJlbnQtaGlz
dG9yeUl0ZW0uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0ZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1wcm92aXNp
b25hbC1sb2FkLWFzeW5jLWRlbGVnYXRlcy5odG1sCmluZGV4IDAzOGYwOGEyOTQ1N2E5NmIzYWVj
MzU3Nzg2OTk1OGIyZTc4ZTNmMzUuLmQxNGMzMzcyMjBhM2NkN2VmYWYxMzc4N2EwYWYxMGFhOTU1
MzUzYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWlmcmFtZS1wcm92aXNpb25hbC1sb2FkLWFzeW5jLWRlbGVnYXRlcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1wcm92
aXNpb25hbC1sb2FkLWFzeW5jLWRlbGVnYXRlcy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1wcm92aXNpb25hbC1sb2FkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJv
dmlzaW9uYWwtbG9hZC5odG1sCmluZGV4IDAxZjYzYmRhODQ0MjczYTUwNjE0MWYyMmQwMDFkYjUx
MjQ5OGI2Y2QuLjE4NWVlZGFhNWNmOTYxYmYwYjhlODBkZjhmMjYxODgwMTM4YzcyMTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFt
ZS1wcm92aXNpb25hbC1sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxvYWQuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxv
YWQtY2FjaGUtcGFydGl0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQtY2FjaGUtcGFydGl0aW9uLmh0bWwKaW5k
ZXggNDgwYjFjYmY2NTdlZDgzZmNmNWQ1YTEzNGY3OGNmOWExYjM1OTk1Ny4uZmNjNDdhYzVlYTFj
OGIwYjQ5YTFmM2FiM2ZjYTk2OGI0ZDM2NmEyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1pbWFnZS1sb2FkLWNhY2hlLXBh
cnRpdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9hZC1jYWNoZS1wYXJ0aXRpb24uaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxv
YWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBl
bmRpbmctaW1hZ2UtbG9hZC5odG1sCmluZGV4IDQ1N2UyMTczZTVlNjJiZmFjZGVlZDVlZTkwODli
NzY0MzVmM2M5MWMuLjZkZjk0NmQ2NDZjMjYwYjQzZmM0NWU1ZTNlZjdjNjgyMWY1ZDMwZGQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBl
bmRpbmctaW1hZ2UtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9hZC5odG1sCkBAIC0xLDQgKzEsNCBAQAot
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4K
IDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctbG9hZC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1sb2FkLmh0
bWwKaW5kZXggNDU5NTM3NWQyMTc3ZjM1ZjIwZGFjNGM5Y2RkNGU4ODczZDdiZTAyZC4uMTc2ZjFi
ODJiMzc0YzQ3MjYyYWQ1ZDQ0MzUzNjM3YzBiMmNkZmYwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1sb2FkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1s
b2FkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJs
ZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUtcGVuZGluZy1waW5nLWxvYWQtY3Jvc3Mtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1jcm9zcy1vcmln
aW4uaHRtbAppbmRleCAxM2IwZjkyY2E5NzVjZDFlZDQ0MzYzNTA2YmVmMjAwMzIzOWI1MWRjLi41
MjQ5MGU0Y2Y4YjMwNjQwMDNlMTU3NzUyMGIzMDNmN2U4MGIyMmNlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9h
ZC1jcm9zcy1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1jcm9zcy1vcmlnaW4uaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxib2R5Pgog
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1w
ZW5kaW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtc2FtZS1vcmlnaW4uaHRt
bAppbmRleCAwNTdmYzg5OTZhZmM0MWI3MmMzNzI2OWE5MDU3YjI2MDdkMjY1MjhkLi5lYjg1NzUy
NmU3ZTM5Yzk3NGNiM2IwNjczYTFhNWZiMDBiYTNkNGJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1zYW1l
LW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLXNhbWUtb3JpZ2luLmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0t
PgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcmVxdWVzdEFuaW1hdGlvbkZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1yZXF1
ZXN0QW5pbWF0aW9uRnJhbWUuaHRtbAppbmRleCA2MWNhZjA3ZmZhY2VmMGVjNjRiNmRlNjk4ODM2
YTJiNmIwZTBjMzhmLi42OTlmMGJiYmRmZjM5NTZkMjEzYmY3ZmMyZGQyNDE1YzYzODYwN2ZjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tcGFnZWhpZGUu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1p
bi1wYWdlaGlkZS5odG1sCmluZGV4IDBiMTEzMDFkNzZkZWJhZTQxNTM3YTEyMWUxZTUwNzNmNDdi
OWQ5NWQuLmEyZjFmNGNhZGZjZWFjZWQ4Yjc3MTFkMGI5MmVkZjE3NGFmMWFhMTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1w
YWdlaGlkZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLXhoci1pbi1wYWdlaGlkZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhyLmh0bWwKaW5kZXggNTIyZDc4NzE2MjczN2QwZGNjMmI0
YzkyYTQ0MGJhMDNmMDE2ZDIwZi4uMzczYjU1ZDYzMjEwZmE0ZGRkMThhZGEwNGE2ODdjYzdmOWY4
MjJkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2Ut
Y2FjaGUteGhyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUteGhyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3Jlc291cmNlcy9odHRwcy1pbi1wYWdlLWNhY2hlLTMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1jYWNoZS0zLmh0bWwKaW5k
ZXggN2RmZmYyOGI3NzFmYjBjMDI2ZWQzZWZjNjNlYjRiNDM0ZGYwMWFkOC4uZTgxYTA1Mzc4NDNh
NjBiYzUzZTFhMDUxMDUxMWMwM2I4YmNmMGRhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9odHRwcy1pbi1wYWdlLWNhY2hlLTMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2h0dHBzLWlu
LXBhZ2UtY2FjaGUtMy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzY3JpcHQ+CiB3aW5kb3cub25w
YWdlc2hvdyA9IGZ1bmN0aW9uKGV2dCkgewogCWlmICghZXZ0LnBlcnNpc3RlZCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWJmcmFtZS1wYWdlaGlkZS1o
YW5kbGVyLXN0YXJ0cy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZC5odG1sCmluZGV4IGEzNDRl
MjY3MTUyODg4YWU5YWE5YmE0OWQxMDk3M2E5NmY5YjFjYjQuLmIxMmIxYTI2YjI4ZTQwZTMyMDM5
OWEyNjA4YTJkOGNkYjBmN2M2N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9zdWJmcmFtZS1wYWdlaGlkZS1oYW5kbGVyLXN0YXJ0cy1sb2FkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhh
bmRsZXItc3RhcnRzLWxvYWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRsZXItc3RhcnRz
LWxvYWQyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3ViZnJhbWUt
cGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZDIuaHRtbAppbmRleCBjM2MzNzU1NWIzYzA1NDUy
NTIxODA3OWM4NjQwMTM0MTM3ZWI0NGU0Li42NjY0NzVjZjVhOGY4YTNjYTFmZmVkMWIxMmE5OWI4
NjFmMGZhMDg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
c3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZDIuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFy
dHMtbG9hZDIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9wZW4taW5zZXJ0LXNjcmlwdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9w
ZW4taW5zZXJ0LXNjcmlwdC5odG1sCmluZGV4IDExNjRiNzUwOTRkMTRiNGFiZjEyZWMwOGE3Y2My
OWZmYWIyYjVjZjMuLmFhMDdiMWY0ZWI5Mjk5YzUxZTI5NDUzNDRiMGViMWRkYTdmZjY1OWQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdp
bmRvdy1vcGVuLWluc2VydC1zY3JpcHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQtc2NyaXB0Lmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9w
ZW4tamF2YXNjcmlwdC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3Mtb3JpZ2luLXdpbmRvdy1vcGVuLWphdmFzY3JpcHQtdXJsLmh0bWwKaW5kZXggMjY2YmE5
Y2U5Y2IwMzM3MDUwOGYxN2YxMWIwYzk0ZWQ4NzhhYzdkZC4uYTZiZDQ0MjdjNGE2YjNjM2Y4NTk2
N2Y4MjI3MTY5ZTkxYzQ5NTc1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Bl
bi1qYXZhc2NyaXB0LXVybC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVkLXBhZ2UuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVkLXBhZ2Uu
aHRtbAppbmRleCBiMTFhNGZhOTk2ODkxYzBlNjMxYjgwYTVjMWM3ODFmYjc2NDQ5OTE3Li4wNjQ4
M2NhMGYyYjQ2NGJiYTQ4OTY4MDJiMjJmYmY5YmU3ODQ1ZWE0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1w
YWdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYXZpZ2F0ZS13
aGVuLXJlc3RvcmluZy1jYWNoZWQtcGFnZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzLURFTklFRC1jbGljay1hbmQtZm9ybS1zdWJtaXNzaW9uLWZyb20taW5h
Y3RpdmUtZG9td2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
cy1ERU5JRUQtY2xpY2stYW5kLWZvcm0tc3VibWlzc2lvbi1mcm9tLWluYWN0aXZlLWRvbXdpbmRv
dy5odG1sCmluZGV4IDEzMzE0ZTYxNzVhMTlhYzg2NDVhMDRhMzY2YjBlNGM0ZTQwNTBlNTEuLmZl
NDYzNGQxM2FlNWQyYmUwYzJjODJjZTQwZDFhMjI0NTcwZjg0ZGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jbGljay1hbmQtZm9ybS1zdWJt
aXNzaW9uLWZyb20taW5hY3RpdmUtZG9td2luZG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1pc3Npb24tZnJv
bS1pbmFjdGl2ZS1kb213aW5kb3cuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRt
bD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmpl
Y3QtaW50by1pbmFjdGl2ZS13aW5kb3cuaHRtbAppbmRleCAyOTYxOTc2NTA0MWZmNWEzZjk2ZTg2
NDUwYjEwMDk1YzcxOTZmZjcxLi40ZDBiYmE5OTA3OTA0NzA2Njk0NDM3ODA4YzhiNmM5ZmE4MGQ1
NDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5J
RUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5h
Y3RpdmUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLXBzb24uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0
LWludG8taW5hY3RpdmUtd2luZG93Mi1wc29uLmh0bWwKaW5kZXggNmEzYmQxODM3NTk1MmQ3MTQw
ZWVmY2ExOGIzMmYwZjVkYTE3MzkwMC4uOWM5Mjg1NjgzY2JkYzY3Yzg0YjU0Y2MzYmY5OGMxZWU0
NWJkNDQ5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3Mt
REVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLXBzb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVj
dC1pbnRvLWluYWN0aXZlLXdpbmRvdzItcHNvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbj10cnVlIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD48
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9uPXRy
dWUgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHNj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFj
dGl2ZS13aW5kb3cyLmh0bWwKaW5kZXggODRiYzViZTk4M2ZlMGI2M2M2NWViNWNhMGFjNmM5MGVm
ODY0NzY4OS4uMzFjYTg2NDkwYWVjM2ZlNzA4Mjg3NTVlMmQxOGEyOTA0YzEzZjNkOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1p
bmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5k
b3cyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJs
ZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVE
LXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3czLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZl
LXdpbmRvdzMuaHRtbAppbmRleCA4ZDZiZjJjMzJkMTNlMzBjYWZiMjBmZThiZTI0YjdkMTE0ZjQ3
OGQwLi4zZTFmYWU3YzdkZDk1ZTIzMDlmMDFiMjA2YWRiYzNiOTA0Nzk4ODNkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVj
dC1pbnRvLWluYWN0aXZlLXdpbmRvdzMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzMu
aHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFn
ZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Ns
b3NlZC13aGVuLWVudGVyaW5nLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXdoZW4tZW50ZXJpbmctcGFnZS1jYWNoZS5o
dG1sCmluZGV4IDRlNzE0M2I1ZjhlZTBhMmExMWQ0YmMwYjlkOGYzOGVlNDQ4ZGRmN2UuLmU2ODQy
NDcyYTliYjdmYmU2MzE2Nzg1NTk5OWExOTFhMmJlMGQ5ZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXdoZW4tZW50ZXJpbmct
cGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvY2xvc2VkLXdoZW4tZW50ZXJpbmctcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc3RvcC1vbi1yZXN1bWUtaW4t
ZXJyb3ItaGFuZGxlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9zdG9wLW9uLXJlc3VtZS1pbi1lcnJvci1oYW5kbGVyLmh0bWwKaW5kZXggNGFjMjBj
MDAzZTU1YjdjMzdiNGVlZmZlYjY2YjQwZjg2OTNmY2Y0MS4uMjYwNjc4MGY2MTgxZDYzMDAxZWNm
NDM0YWU5ZTQxY2MwMzk1NWU3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9zdG9wLW9uLXJlc3VtZS1pbi1lcnJvci1oYW5kbGVyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zdG9wLW9u
LXJlc3VtZS1pbi1lcnJvci1oYW5kbGVyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1yZXN0b3JlZC1m
cm9tLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hl
Lmh0bWwKaW5kZXggNWJiMGJlZTFmODE5ZjgxYjE3YWZmYzkxZjNmN2ExZDU0YzFmM2Y5ZC4uNWQ1
ODUzZTNhNDYwMjYyN2U2MTNjOWYwZTQwZjEyZWY2YjAwMDZlZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMt
d2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJlc3Rv
cmVkLWZyb20tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVkLWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdlLWNh
Y2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQt
cmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sCmluZGV4IGJlYzEx
ZWE5MTE4ODFlOGFlYzBlNzA2ZDgwNGI1OWRlODNiNWJjNmUuLmMyMmViNGI0ZmJjZmI3Y2Q1YmY3
MzQ2MmI3NGIxZDZlZmQ2YzQ4NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVkLWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdl
LWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
Y2xpZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbApAQCAt
MSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRy
dWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9wYWdlLWNhY2hlLXNlcnZp
Y2Utd29ya2VyLXBlbmRpbmctcHJvbWlzZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNoZS1zZXJ2aWNlLXdvcmtlci1wZW5kaW5nLXBy
b21pc2UuaHR0cHMuaHRtbAppbmRleCAwOWYwNTY4M2Y3YTlhYzc1Y2VjYmVkMWVlZmE3M2NiODhh
NzIwNzUxLi42ZGI1ZDMwMGZiOTNkYTYzMmJjOTMzNWE0YWJlNjc5YzRlZWY1ODJhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9wYWdlLWNhY2hlLXNl
cnZpY2Utd29ya2VyLXBlbmRpbmctcHJvbWlzZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13b3JrZXItcGVu
ZGluZy1wcm9taXNlLmh0dHBzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvcGFnZS1jYWNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9wYWdlLWNhY2hpbmcuaHRtbAppbmRleCA0ZjI2YWY5MjRlMjNlYWNhOGRj
M2UzNmYyZWRlOWE2NWNiNjMzMjdiLi41MTFlZjg1YmExZTYxYWE1MzkzM2I5Y2Y2MDc0ZDIzY2Nm
ZGIyZDBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9wYWdlLWNhY2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9wYWdlLWNhY2hpbmcuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRt
bD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFj
b24vc3VwcG9ydC9zZW5kQmVhY29uLW9ucGFnZWhpZGUtd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9iZWFjb24vc3VwcG9ydC9zZW5kQmVhY29uLW9ucGFnZWhpZGUtd2luZG93Lmh0
bWwKaW5kZXggY2JlMTk1MDljNTZkZGRhYzA0NmY2ZGE3NWQ0NDBlYTlmNWU1ZDJjOC4uYTM3OGE1
NDhlZjMzMjdiMjkyMzgwNTJmNGNiYTYzOWU2YmM1OGZlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJlYWNvbi1vbnBhZ2VoaWRlLXdpbmRvdy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9zdXBwb3J0L3NlbmRCZWFjb24t
b25wYWdlaGlkZS13aW5kb3cuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sZWdhY3ktYW5pbWF0aW9u
LWVuZ2luZS9hbmltYXRpb25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9sZWdhY3ktYW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL3Jlc3VtZS1hZnRlci1wYWdl
LWNhY2hlLmh0bWwKaW5kZXggZGVkMzg3NTZmMWU3MDFjNjI3MjRmZGU3MWI4OGI0MTE1MjM2N2Q5
Ny4uYjExYzBlYTVkODEwOWI4YWE1MTRhMmRhM2M2OWU4YTA5OTRkMzJmZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbGVnYWN5LWFuaW1hdGlvbi1lbmdpbmUvYW5pbWF0aW9ucy9yZXN1bWUtYWZ0
ZXItcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2xlZ2FjeS1hbmltYXRpb24tZW5n
aW5lL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQg
QEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOldlYkFuaW1hdGlvbnND
U1NJbnRlZ3JhdGlvbkVuYWJsZWQ9ZmFsc2UgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOldlYkFuaW1hdGlvbnNDU1NJbnRl
Z3JhdGlvbkVuYWJsZWQ9ZmFsc2UgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
c3R5bGU+CiBALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsKICAgICBmcm9tIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2xvYWRlci9nby1iYWNrLWNhY2hlZC1tYWluLXJlc291cmNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS5odG1sCmlu
ZGV4IDk4NGY2NDA2YTkwNjMyY2YwODY0MTAyNTgwMzk1N2EzYzg1M2JmZGIuLjM1NTVlY2MxOGRj
NmNhZTE5OTVjMDg1ZTI5YzBlYWEwYzlhOTMzNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2xv
YWRlci9nby1iYWNrLWNhY2hlZC1tYWluLXJlc291cmNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
bG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8aHRtbD4KIDxoZWFkPgogICAgIDx0aXRsZT5UZXN0IHJlc291cmNlIGxvYWQgY2FsbGJhY2tz
IGdvaW5nIGJhY2sgdG8gYSBjYWNoZWQgbWFpbiByZXNvdXJjZTwvdGl0bGU+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRt
bCBiL0xheW91dFRlc3RzL2xvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5o
dG1sCmluZGV4IDU4NDNlN2Y1OGIxZjg2MGFjN2ZlNmQ4MGRlZjA1Yzk5Yzk4NTkzMzMuLjAxNjJi
YWE4ZjliNGUyMDc2ZjQ5Yjk1NmRjZjBhODBiYzA0YzBkNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2xvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2xvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9
dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIDxodG1sPgogPHNjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvY3Jhc2gtY2xvc2luZy1wYWdlLXdpdGgtbWVkaWEtYXMtcGx1Z2luLWZhbGxiYWNr
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9jcmFzaC1jbG9zaW5nLXBhZ2Utd2l0aC1tZWRpYS1h
cy1wbHVnaW4tZmFsbGJhY2suaHRtbAppbmRleCA4MTk1OTFlZGJlNTMwMjRmZDAyOTNiNDI0MzVk
YmIyYTI4ZTE2MTI2Li42ODRhMTQyNGJjNzJjMmEzZmNhNzQxNWJlYzc0NDk3ZjcwZWNmMWI0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9jcmFzaC1jbG9zaW5nLXBhZ2Utd2l0aC1tZWRp
YS1hcy1wbHVnaW4tZmFsbGJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9jcmFzaC1j
bG9zaW5nLXBhZ2Utd2l0aC1tZWRpYS1hcy1wbHVnaW4tZmFsbGJhY2suaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8c2NyaXB0PgogdmFyIGNoaWxkV2luZG93OwogPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXBhZ2UtY2FjaGUu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1j
YWNoZS5odG1sCmluZGV4IDAxMmNlNGFjZDE4MDkzMTBjZTNkMWRiZGZkZGQyM2Y4M2ExZWFmZjMu
LmM4ZGMzNmY2NjI0NzU0OTM4MmNjMmUyZDg0NmM0MmFmMzZkNjExMzUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNoZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1j
YWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVh
ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0b3JlLWZyb20tcGFnZS1jYWNoZS5odG1sCmlu
ZGV4IGU5NTA1MTgzMmI2MmI1NmQ1OWE0ZDQ5NmZkOTQwOTQ4NjE4ZWMzODIuLjFhZDI1NzFhMTU3
MmI4ZGU0ZjY2ZTY4NzE1OTQwZmMzMGJmNGQ1ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
cmVzdG9yZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KICAg
ICA8aGVhZD4KICAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZml4ZWQvZml4ZWQtYmFjay1m
b3J3YXJkLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2ZpeGVkL2ZpeGVkLWJh
Y2stZm9yd2FyZC5odG1sCmluZGV4IGQwNjQwNDMzZDBiNmQxOTAwMTdlYWZlMDUwMWVkYWZlOGZl
YWNhZGUuLjM1NjFlZWUyYjdmZWQ5NDk3YzBlZTZhZDZjMDg1YWIwZmQ5MDUxMGEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZml4ZWQvZml4ZWQtYmFjay1mb3J3YXJk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9maXhlZC9maXhlZC1iYWNr
LWZvcndhcmQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2NyYXNoLXJlc3RvcmluZy1w
bHVnaW4tcGFnZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jh
c2gtcmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1sCmluZGV4IDZmODg0
ZjM1NmM4NzAwNjc2NDBmMDE0MmM4ZTU0YmUxNWNhNGM5MzAuLjdmM2ZhOGI3ODNjNzNhMmFhMTJk
ZWI3ZDM1MTlhODA2N2E4MDExYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jh
c2gtcmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL3BsdWdpbnMvY3Jhc2gtcmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNo
ZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wbHVn
aW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWwKaW5kZXggY2E4NWJkY2I2Mjk3MGQ5
Nzc2ZWMzMThiZDI5MDEyNTZjYjVkYmRhMy4uMDYxMjY2MTYxNDg3NmQxMDI3MTJkNWQ1NDdmMDk5
ZTBhMDMyMTM1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9mcmFtZXNldC13aXRo
LXBsdWdpbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnJhbWVzZXQtd2l0
aC1wbHVnaW4tZnJhbWUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
dWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBhZ2UtY2FjaGUtd29ya3MuaHRtbCBiL0xheW91dFRlc3Rz
L3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBhZ2UtY2FjaGUtd29ya3MuaHRtbAppbmRleCA0Zjgy
MzQxNzZjMGJjY2ZmZTI1MzI3YzNmZmUzMDdiMmEyM2FhMTFiLi4wNzZhYWNlMTFhMGI5OWE5Y2Qx
N2E3OGM5NWJlODViZGEyZGUzNzVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbHVnaW5zL25l
dHNjYXBlLXBsdWdpbi1wYWdlLWNhY2hlLXdvcmtzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGx1
Z2lucy9uZXRzY2FwZS1wbHVnaW4tcGFnZS1jYWNoZS13b3Jrcy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxodG1sPgogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lE
QlJlcXVlc3QtcGFnZS1jYWNoZS5odG1sCmluZGV4IDZkZTgwNjNkZjhkNWNlYTNlYmE1NzVhMGRh
OGY4NDhhMjIxNDRhMmYuLmM3YzU5NGI2MzgzMmVhYmRjN2RhZmNhYWQwMzlhODUzMmEzYTVlNzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFn
ZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVl
c3QtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAyYzg3ODkxZDEzNzI5NGY3
NjgwMWVmY2RiYmE4N2I4Y2VkNDJhZDljLi5iYmQ3YzVkZWNlOTQ0MjFmNjFlYjVjNWI5YzFmOTQz
YzdhM2Q5YjE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJU
cmFuc2FjdGlvbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb24tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3
aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNp
Yy1jYWNoZWQtYmFjay1zd2lwZS5odG1sCmluZGV4IDY1NjViMDc4ZDBkNDU0ZTQ3YTMxYmY1NDgx
YmRlNjkzYzAxZDhlZDQuLmQyZmJhMjM1NWQ4ZTQ3ZTRjNGQwZDRlMWFhZTNmY2JjMmIxNjg4YTQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzdHlsZT4KIGh0bWwgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbAppbmRleCBj
ODFmM2U2NGRmNDNhNjBmZjJmMGMwODIzNWMwODczNTY2ZWZjZjc0Li5iODVhZDFiM2VmM2Q3ZmNk
NWEzYjY0N2I5ZDY2NzIyMzI3Yjc2NGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9t
YWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lw
ZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
aGVhZD4KIDxzdHlsZT4KIGh0bWwgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVz
aFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3Rh
dGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAppbmRleCBhMDExOWYxNjMzMWM2YjUwNDc1ZDdmZGQ2
MzBlYmU4ZDI3OTA4ZTE2Li44M2VkYWI4NjkxZjdkYjkzZTg5NTgwY2FiNmY4M2IzM2Q5NzNjY2Nj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dp
cGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dp
cGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzdHlsZT4KIGh0bWwgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxl
LXN3aXBpbmctY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFt
bWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwKaW5kZXggMDJmZDQ0ZTQxZWMxZjNh
MWYxNGQwYzEwMDMzMGUxNGFlMjRhYmE4Ny4uZDM1NmQyMTdjYTczZjM1N2M1N2QyOTFlZGQyMmMy
ZDA3NWQyNTAwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dy
YW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9z
d2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHN0eWxlPgogaHRtbCB7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zd2lwZS9wdXNoc3RhdGUtd2l0aC1tYW51YWwtc2Nyb2xscmVzdG9yYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hzdGF0ZS13aXRoLW1hbnVhbC1zY3JvbGxyZXN0
b3JhdGlvbi5odG1sCmluZGV4IDFmMWQ3YWUwNzcwNGQ1OWMyZWRmZGMzNTFhZGMzYzkzZWE1MTBm
MzkuLjNmMGFkZjIxMjgzYzRkMDJjZDEyMDU4YTJjZmUzZTYzZDU4ODgwNjggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N3aXBlL3B1c2hzdGF0ZS13aXRoLW1hbnVhbC1zY3JvbGxyZXN0b3JhdGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hzdGF0ZS13aXRoLW1hbnVhbC1zY3Jv
bGxyZXN0b3JhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHN0eWxlPgogaHRt
bCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9udWxs
LXBhcmVudC1iYWNrLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9udWxsLXBhcmVudC1iYWNrLWNyYXNoLmh0bWwKaW5kZXggNzdjM2MwYTg2MmQwNTIxMWI2
M2M1ZmUxMzI1NzBiOWI0MjBhNWI2Yy4uMjMyNTRlNTg2NTgyODAxZDg4YThjNTAxNGE3NmJhN2Vm
MjlkZDI4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
bnVsbC1wYXJlbnQtYmFjay1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL251bGwtcGFyZW50LWJhY2stY3Jhc2guaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9uLXBhZ2UtY2FjaGUt
cmVzdG9yYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2lu
Zy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sCmluZGV4IGJkZDA4
NzUyNWY0NGJjNjU1Y2NjNjMwMzYwMGVmZTRhMzZkYTgxYzQuLmFkOTBjODcxOTA4NTM1NzgxNzRk
YmFhN2I4ZTBhNzY0NTE4MDhmNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdp
bmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwt
cG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbCBiL0xheW91
dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRt
bAppbmRleCA1Zjg0YTIzOWQ5MWMzZGI1NzEzOGI2Y2E3MzIzYTliNmY1ZTNkZGQ3Li5jNGJkNzRm
MDhjNzczMzg5NzEzMmQ2ZDFiNzhhODAxMTA0YWFiZGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1zZW5kLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUt
c2VuZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5l
bC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNo
YW5uZWwtcGFnZS1jYWNoZS5odG1sCmluZGV4IDE3MGJiOWZkZjcxMThhMjdlNjRlY2VjOWVlOGRl
YTg2ZThjOTU2YWMuLmRjZjU3MGRhZTVhNThhNDYzN2EzOThmZDliOGE2MGM1YTc4NTYzZGEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdl
LWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFu
bmVsLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxo
dG1sPgogPGJvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381117</attachid>
            <date>2019-10-16 15:00:12 -0700</date>
            <delta_ts>2019-10-16 15:53:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203048-20191016150011.patch</filename>
            <type>text/plain</type>
            <size>385627</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdhYjk2MWQyYzMzZmMx
YWI5YmU2NmE4YThhMDg1NzUzMGYwZGE0Yi4uZjk4YWRjYmQwOTNjYTdjOTRkOTExMmRjZTliNTk2
ZjA2NDNkZGE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxOCBAQAorMjAxOS0xMC0xNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUg
dG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFy
aXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENh
Y2hlLgorCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlcjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6
OnN1c3BlbmQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3Vt
ZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvV2luZG93UHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93UHJveHk6OmNsZWFySlNXaW5kb3dQcm94aWVz
Tm90TWF0Y2hpbmdET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
Lmg6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjppbnZhbGlkYXRlTWF0Y2hlZFByb3BlcnRpZXNDYWNoZUFuZEZvcmNlU3R5
bGVSZWNhbGMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZVJlbmRlclRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZEJlY29tZUN1cnJlbnREb2N1bWVudElu
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmF0dGFjaFRvQ2FjaGVkRnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaEZyb21DYWNoZWRGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGp1c3RGb2N1c2VkTm9kZU9uTm9kZVJlbW92YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93RnJvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXN1bWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRvcERvY3VtZW50IGNvbnN0KToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpiYWNrRm9y
d2FyZENhY2hlU3RhdGUgY29uc3QpOgorICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbHNj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRG
dWxsc2NyZWVuKToKKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKToK
KyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwLgorICAgICAgICAoV2ViQ29yZTo6bG9n
QmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpjYW5DYWNoZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhY2hlUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24pOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRDYWNoZTo6QmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJhY2tGb3J3YXJkQ2FjaGU6OmNhbkNhY2hlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJh
Y2tGb3J3YXJkQ2FjaGU6OnBydW5lVG9TaXplTm93KToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tG
b3J3YXJkQ2FjaGU6OnNldE1heFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6QmFja0ZvcndhcmRD
YWNoZTo6ZnJhbWVDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENh
Y2hlOjptYXJrUGFnZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ29udGVudHNTaXplQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjptYXJrUGFnZXNGb3JDYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hl
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjp0YWtlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUFsbEl0ZW1zRm9yUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpnZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3
YXJkQ2FjaGU6OnBydW5lKToKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmguCisgICAgICAg
ICogaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGcmFt
ZUJhc2U6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRnJhbWU6OkNhY2hlZEZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRGcmFtZTo6ZGVzdHJveSk6CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRG
cmFtZVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldENhY2hlZFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldFVSTCk6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5
SXRlbS5oOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmlzSW5CYWNrRm9yd2FyZENh
Y2hlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZUVsZW1lbnQ6OnN1c3BlbmQpOgor
ICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRvcGxheVBlcm1pdHRlZCBjb25zdCk6CisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjphZGRTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmNsb3NlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjbGVhcik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRl
dGFjaEZyb21QYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlY2VpdmVk
TWFpblJlc291cmNlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnNob3Vs
ZFBlcmZvcm1GcmFnbWVudE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmRpc3BhdGNoVW5sb2FkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3
U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJlc3Rv
cmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5
Q29udHJvbGxlcjo6aW52YWxpZGF0ZUN1cnJlbnRJdGVtQ2FjaGVkUGFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6dXBkYXRlRm9yUmVsb2FkKToKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5CYWNrRm9yd2FyZENhY2hlKToKKyAg
ICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaDoKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJz
Q291bnQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3dFeHRlbnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RXh0ZW5zaW9u
OjpzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dFeHRlbnNpb246OnJlc3VtZUZyb21CYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvd0V4dGVuc2lvbi5oOgorICAgICAgICAqIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0Zv
cndhcmRDYWNoZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmJhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlS2V5KToKKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRTb3VyY2U6OnNjaGVkdWxlUmVjb25uZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50U291cmNlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291
cmNlOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpk
aWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjphYm9ydENvbm5lY3Rpb25B
dHRlbXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpzdXNwZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRTb3VyY2U6OmRpc3BhdGNoTWVzc2FnZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50U291
cmNlLmg6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZTo6c2V0Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2V0RG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZFJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldENvbnRl
bnRzU2l6ZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5
b3V0Q29udGV4dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENv
bnRleHQ6OnNjaGVkdWxlTGF5b3V0KToKKyAgICAgICAgKiBwYWdlL01lbW9yeVJlbGVhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OnJlbGVhc2VNZW1vcnkpOgorICAgICAgICAqIHBhZ2UvTWVtb3J5UmVsZWFzZS5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp+UGFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaWV3U2NhbGVGYWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VHcm91cDo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5n
OjptZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nc0Jhc2U6OnVzZXNCYWNrRm9yd2FyZENhY2hlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9T
ZXR0aW5nc0Jhc2UuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OnNldE5lZWRzU3R5bGVSZWNhbGMp
OgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFu
aW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Fu
aW1hdGlvbkNvbnRyb2xsZXI6OmNhbmNlbEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTQW5pbWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyk6CisgICAgICAgICogcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1w
bGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQpOgorICAgICAgICAqIHBhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
QW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp3aWxsUmVtb3ZlU2Nyb2xsaW5nTGF5ZXJXaXRoQmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRpZEFkZFNj
cm9sbGluZ0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9TaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlTGluZUxheW91dDo6Y29sbGVjdE5vbkVtcHR5TGVhZlJlbmRlckJsb2NrRmxvd3NGb3JDdXJy
ZW50UGFnZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBk
YXRlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmNsZWFyQmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OmJhY2tGb3J3YXJkQ2FjaGVTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6cHJldmVudERvY3VtZW50Rm9yRW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmlkbDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3Q6OnN1c3BlbmQpOgorCiAyMDE5LTEwLTE2ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBkdW1waW5nIGZvciBC
b3JkZXJEYXRhIGFuZCBTdHlsZUJhY2tncm91bmREYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmZmNlYmJlMjMy
NzQzNzEyYzhjYjkzMmM5YjE3MDdmNWFhMjM2NGYuLjI3MzZjNjllMTBmZTAwNGJkY2FkOWMwOGEx
NDM1ZjUwOTAyZmUyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTktMTAtMTYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hl
IHRvIEJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZSBmb3IgY2xh
cml0eSBhbmQgY29uc2lzdGVuY3kgd2l0aCB0aGUgVUlQcm9jZXNzJ3MgV2ViQmFja0ZvcndhcmRD
YWNoZS4KKworICAgICAgICAqIFNoYXJlZC9DYWNoZU1vZGVsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FsY3VsYXRlTWVtb3J5Q2FjaGVTaXplcyk6CisgICAgICAgICogU2hhcmVkL0NhY2hlTW9k
ZWwuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6TmF2aWdh
dGlvbkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6
OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hl
RW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0UGFnZUNhY2hlRW5hYmxlZCk6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKToKKyAgICAg
ICAgKFdLUHJlZmVyZW5jZXNHZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0VXNlc1BhZ2VDYWNoZTpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBf
dXNlc1BhZ2VDYWNoZV0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRQYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnM6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3BhZ2VDYWNoZVN1
cHBvcnRzUGx1Z2luc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24gcGFnZUNhY2hlRW5hYmxlZF0pOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gc2V0UGFnZUNhY2hlRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9l
bmFibGVfcGFnZV9jYWNoZSk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9w
YWdlX2NhY2hlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OndpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5h
dmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdh
dGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkQ29tbWl0TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkKToKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGaW5p
c2hOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50OjpkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6
Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkUmVhY2hNYWluRnJhbWVM
b2FkVGVybWluYWxTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvdWxkVXNlQmFja0ZvcndhcmRDYWNo
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
b21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZp
bmlzaERvY3VtZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZEZhaWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJ
bkJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6dG9CYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6V2ViRnJhbWVMb2FkZXJDbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0Nv
bW1pdHRlZEZyb21DYWNoZWRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRl
ckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZv
cmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnJlbW92ZUl0ZW0pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6c3VzcGVuZEZvclByb2Nlc3NTd2FwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldENhY2hlTW9kZWwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyQ2FjaGVkUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmg6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbV0syXSBIYW5kbGUgYmFjay9mb3J3YXJkIGNhY2hlIGVudHJ5IGV4
cGlyYXRpb24gaW4gdGhlIFVJUHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBXZWJQcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggMDc4OTkwMzJlM2NkMWYyMmY5NTE3ZTcyYWZlYWNl
ZGJjN2I1Y2RmNS4uZDI1ZWYzZGI2Y2M2YTIxNzdiM2RjM2JjNzhlZDMwMGQyMzc4YjEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTE2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNo
ZSB0byBCYWNrRm9yd2FyZENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hlIHRvIEJhY2tGb3J3YXJkQ2FjaGUgZm9yIGNs
YXJpdHkgYW5kIGNvbnNpc3RlbmN5IHdpdGggdGhlIFVJUHJvY2VzcydzIFdlYkJhY2tGb3J3YXJk
Q2FjaGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaDoKKwogMjAxOS0x
MC0wOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVt
b3ZlIHJlZHVuZGFudCB1c2VzIG9mIFVTRShVSUtJVF9FRElUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IDA2MWFlMWI0YWRmYmIzNjYyNGI0Y2I5NmY0YzQ5NWRkZTFkODFmODEu
LjI1ZDdhYmVlMTMwZmQyZTg0YzQyYmJkZDk0ZTMyNDY2MWQ1ZjllNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0Zv
cndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBj
b25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisg
ICAgICAgICogSGlzdG9yeS9CYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgIChCYWNrRm9yd2Fy
ZExpc3Q6OmFkZEl0ZW0pOgorICAgICAgICAoQmFja0ZvcndhcmRMaXN0OjpzZXRDYXBhY2l0eSk6
CisgICAgICAgICogSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgICgtW1dl
YkJhY2tGb3J3YXJkTGlzdCBwYWdlQ2FjaGVTaXplXSk6CisgICAgICAgICogSGlzdG9yeS9XZWJI
aXN0b3J5SXRlbS5tbToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJpdmF0ZS5o
OgorICAgICAgICAqIE1pc2MvV2ViQ2FjaGUubW06CisgICAgICAgICogTWlzYy9XZWJDb3JlU3Rh
dGlzdGljcy5tbToKKyAgICAgICAgKCtbV2ViQ29yZVN0YXRpc3RpY3MgY2FjaGVkUGFnZUNvdW50
XSk6CisgICAgICAgICgrW1dlYkNvcmVTdGF0aXN0aWNzIGNhY2hlZEZyYW1lQ291bnRdKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUp
OgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0Zvcndh
cmRDYWNoZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5t
bToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBsYXlvdXRUb01pbmltdW1QYWdlV2lkdGg6aGVpZ2h0Om9yaWdpbmFsUGFnZVdpZHRoOm9y
aWdpbmFsUGFnZUhlaWdodDptYXhpbXVtU2hyaW5rUmF0aW86YWRqdXN0aW5nVmlld1NpemU6XSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNldE5lZWRzTGF5b3V0Ol0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBzZXROZWVkc1RvQXBwbHlTdHlsZXM6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jbG9zZV0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisgICAgICAgICgrW1dlYlZpZXcgX3NldENhY2hl
TW9kZWw6XSk6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBNb3ZlIGJhY2svZm9yd2FyZCBjYWNoZSBlbnRyeSBleHBpcmF0aW9u
IGZyb20gdGhlIFdlYlByb2Nlc3MgdG8gdGhlIFVJUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IDM0OTdlNDhjYTlmMzY1MWI3ZjhjOTIwY2NlMjFmOTFiZjExOTc4MWEuLmFh
ZjE2YTBhMmQ0NzgwZjBhZTY2ZmExMDc1NjBkYWY1MTlhY2RiODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0Zvcndh
cmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25z
aXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAg
ICAgICogQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKEJhY2tGb3J3YXJkTGlzdDo6YWRk
SXRlbSk6CisgICAgICAgIChCYWNrRm9yd2FyZExpc3Q6OnNldENhcGFjaXR5KToKKyAgICAgICAg
KiBXZWJDb3JlU3RhdGlzdGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlU3RhdGlzdGljczo6Y2Fj
aGVkUGFnZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmVTdGF0aXN0aWNzOjpjYWNoZWRGcmFtZUNv
dW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21CYWNrRm9yd2Fy
ZENhY2hlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAg
ICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjphY2Nlc3NpYmxlIGNvbnN0
KToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnNldENhY2hlTW9k
ZWwpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAx
OS0xMC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OOiBlZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtaW50ZXJmYWNl
cy5odG1sIGlzIGZhaWxpbmcgaW4gV2ViS2l0MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOWMyYjIw
NDg0YjlmZjQzMTYxNGIwZWU3ZTJjOGY0N2IyZGQ5NDc1ZS4uZTg1ZDllM2Y1Mzc0ZTUyMzVkOTEy
NGEzNzE5NGEzYjI3NDI3OTk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC01MjAsMTMgKzUyMCwx
MyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZmlsZWFwaS9G
aWxlUmVhZGVyTG9hZGVyQ2xpZW50LmgKICAgICBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaAog
CisgICAgaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmgKICAgICBoaXN0b3J5L0JhY2tGb3J3YXJk
Q2xpZW50LmgKICAgICBoaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oCiAgICAgaGlzdG9y
eS9CYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmgKICAgICBoaXN0b3J5L0NhY2hlZEZyYW1lLmgK
ICAgICBoaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZvcm1EYXRhLmgKICAgICBoaXN0b3J5L0hpc3Rv
cnlJdGVtLmgKLSAgICBoaXN0b3J5L1BhZ2VDYWNoZS5oCiAKICAgICBodG1sL0F1dG9jYXBpdGFs
aXplLmgKICAgICBodG1sL0F1dG9jYXBpdGFsaXplVHlwZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCAxZWM3MzZmYjhi
ZWM4Mjc1ZWQ0ZGY4NzhmODBkY2JlOTViNGEwNzUxLi5hY2RhZjc5ZTNlMTMzY2NlZDVlNDdiOGE1
NjU5YmIyNDQxZjE5NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIGJvb2wgR2VvbG9jYXRp
b246OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogICAgIAogdm9pZCBH
ZW9sb2NhdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIHsKLSAgICBp
ZiAocmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VDYWNoZSkgeworICAgIGlmIChy
ZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAg
ICBzdG9wKCk7CiAgICAgICAgIG1fcmVzZXRPblJlc3VtZSA9IHRydWU7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
Y3BwCmluZGV4IGQ1YWZkNDQ1OTcxYTg0NTBhYjM4NWE1MDAyMGViNmUyMTk2MTI5MmYuLjZjMTZm
YmM5MmRjYTgyMDcxZjIyZGM1YjYwZmY5MzZkZDFlODE2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKQEAgLTEw
Niw3ICsxMDYsNyBAQCBjb25zdCBjaGFyKiBNZWRpYVJlY29yZGVyOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKIAogYm9vbCBNZWRpYVJlY29yZGVyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7IC8vIEZJWE1FOiBXZSBzaG91
bGQgZG8gYmV0dGVyIGhlcmUgYXMgdGhpcyBwcmV2ZW50cyBlbnRlcmluZyBQYWdlQ2FjaGUuCisg
ICAgcmV0dXJuIGZhbHNlOyAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvIGJldHRlciBoZXJlIGFzIHRo
aXMgcHJldmVudHMgZW50ZXJpbmcgQmFja0ZvcndhcmRDYWNoZS4KIH0KIAogRXhjZXB0aW9uT3I8
dm9pZD4gTWVkaWFSZWNvcmRlcjo6c3RhcnRSZWNvcmRpbmcoT3B0aW9uYWw8aW50PiB0aW1lc2xp
Y2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgwNjlkNTJhMDU2ZjA1N2NiYTE2ZDExMDQ5OTMxYzFh
ZGI0OWI0NzQuLmZkMTIwZmE5MmI0YmUyN2NmZDY0NTIxY2Q4NzZhYTQ0MzAzZGViYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCkBAIC01MDYsNyArNTA2LDcgQEAgYm9vbCBSVENQZWVyQ29ubmVjdGlvbjo6
Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiAKIHZvaWQgUlRDUGVlckNv
bm5lY3Rpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiB7Ci0gICAgaWYg
KHJlYXNvbiAhPSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKHJlYXNv
biAhPSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX3Nob3VsZERlbGF5VGFza3MgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCAzMDM4YTk3ZDU5NTIzOGMw
NDMwOTJmMDRlOWM2NWZhZDBlMDExMWEwLi5iMzJiZjk4YjI1OGRjZWMzOTg4ZWE1YThhMzRiN2Jl
YzU4MzNmMzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcApAQCAtNTA4LDcgKzUwOCw3IEBAIHZvaWQgV2ViU29ja2V0OjpzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyA9
IHRydWU7CiAKICAgICBpZiAobV9jaGFubmVsKSB7Ci0gICAgICAgIGlmIChyZWFzb24gPT0gUmVh
c29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKSB7CisgICAgICAgIGlmIChyZWFzb24gPT0gUmVh
c29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICAgICAgLy8gVGhp
cyB3aWxsIGNhdXNlIGRpZENsb3NlKCkgdG8gYmUgY2FsbGVkLgogICAgICAgICAgICAgbV9jaGFu
bmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiIpOwogICAg
ICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZDliYjlhZjE5YWMxYzYyMzY5NDk0ZTFlYjFk
MmQ1N2JhYjNmNTQ1My4uZmZiZGE5NjIzMGQ2MWY1OGM5YzEyNWU0ZjU3OTRhZWE0YTlmZGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTEwODUsMTEgKzEwODUsMTEgQEAgZmlsZWFwaS9GaWxlUmVhZGVy
U3luYy5jcHAKIGZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKIGZpbGVhcGkvVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeS5jcHAKIAoraGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcAogaGlzdG9y
eS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwCiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAogaGlz
dG9yeS9DYWNoZWRQYWdlLmNwcAogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKLWhpc3RvcnkvUGFn
ZUNhY2hlLmNwcAogCiBodG1sL0F1dG9maWxsLmNwcAogaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDNiMzY2NzkxNGU2ZDBmYTdmZmRjYjdlZWI4MGY0OWVmODcwZjYxMTIuLjkxNTU0
ODM1OTgwY2IzMDIxMjE4MDliZmU0NGY0ODMwYjRmYzA4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxMCw3ICs0MTAsNyBA
QAogCQkxNDMyRTg0NzBDNTE0OTM4MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDMyRTg0NjBDNTE0OTM4MDBC
MTUwMEYgLyogR0NDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFB
NzE1REM0QkIxMDAzMDVEQjIgLyogV3JpdGluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyog
SlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9
OwotCQkxNDc3RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NTBCRjQxMzRBMDAxNTI4
NzIgLyogUGFnZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMTQ3N0U3NzcwQkY0MTM0QTAwMTUyODcyIC8qIEJhY2tGb3J3YXJkQ2FjaGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzdFNzc1
MEJGNDEzNEEwMDE1Mjg3MiAvKiBCYWNrRm9yd2FyZENhY2hlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ3OUZBRUUxMDlBRTM3NTAwREVENjU1
IC8qIFJlbmRlclJ1YnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NzlGQUU2MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmggKi87IH07CiAJ
CTE0NzlGQUYwMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5QmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3OUZBRTgxMDlBRTM3NTAwREVE
NjU1IC8qIFJlbmRlclJ1YnlCYXNlLmggKi87IH07CiAJCTE0NzlGQUYyMTA5QUUzNzUwMERFRDY1
NSAvKiBSZW5kZXJSdWJ5UnVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDc5RkFFQTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieVJ1bi5oICov
OyB9OwpAQCAtNTkxNyw4ICs1OTE3LDggQEAKIAkJMTQ0NzZBQTcxNURDNEJCMTAwMzA1REIyIC8q
IFdyaXRpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRpbmdN
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NDlFMjRBMTA3RDRBODQwMEI1
NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NhbGxiYWNrRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ5RTI4
NjEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFn
ZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8q
IEJhY2tGb3J3YXJkQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJhY2tGb3J3YXJkQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
NDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja0ZvcndhcmRDYWNoZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDc5RkFFNTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJSdWJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3OUZBRTYxMDlBRTM3NTAwREVENjU1IC8q
IFJlbmRlclJ1YnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyUnVi
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc5RkFFNzEwOUFFMzc1MDBERUQ2
NTUgLyogUmVuZGVyUnVieUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVuZGVyUnVieUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTg4NzQsNiArMTg4NzQsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
IAkJCQk1MTYwRjQ5MjBCMEFBNzE1MDBDMUQyQUYgLyogbWFjICovLAorCQkJCTE0NzdFNzc0MEJG
NDEzNEEwMDE1Mjg3MiAvKiBCYWNrRm9yd2FyZENhY2hlLmNwcCAqLywKKwkJCQkxNDc3RTc3NTBC
RjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oICovLAogCQkJCTUxNzQxRDBCMEIw
NzI1OUEwMEVENDQyQyAvKiBCYWNrRm9yd2FyZENsaWVudC5oICovLAogCQkJCUJDQThDODFEMTFF
M0QzNjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwICovLAogCQkJCUJDQThD
ODFDMTFFM0QzNjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCAqLywKQEAgLTE4
ODg1LDggKzE4ODg3LDYgQEAKIAkJCQk1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVk
UGFnZS5oICovLAogCQkJCTUxNzQxRDBFMEIwNzI1OUEwMEVENDQyQyAvKiBIaXN0b3J5SXRlbS5j
cHAgKi8sCiAJCQkJNTE3NDFEMEQwQjA3MjU5QTAwRUQ0NDJDIC8qIEhpc3RvcnlJdGVtLmggKi8s
Ci0JCQkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgKi8sCi0JCQkJ
MTQ3N0U3NzUwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBoaXN0b3J5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4NzM0LDYgKzI4
NzM0LDcgQEAKIAkJCQlGNDVDMjMxRTE5OTVCNzNCMDBBNkUyRTMgLyogQXhpc1Njcm9sbFNuYXBP
ZmZzZXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIzODBGQkI5QzFEMDA1MTAyOTMgLyog
QVhPYmplY3RDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTFDOUYyRjkxQUUzQkVCMDAwOTVC
NjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDc3
RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE3NDFEMEYwQjA3MjU5QTAwRUQ0NDJDIC8qIEJhY2tGb3J3YXJkQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0E4QzgxRTExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUExQjg3RDIwODdDNEMwMDA5NzlBNzUg
LyogQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTIxOCw3
ICszMTIxOSw2IEBACiAJCQkJMzc3NEFCQTUwRkEyMUVCNDAwQUQ3REU5IC8qIE92ZXJsYXBUZXN0
UmVxdWVzdENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVBMjE0NjgwOTdBMzI5MTAwQjkw
NTBBIC8qIFBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxMjc4RDVFMjFERURBRDYwMEI1NzE4
NCAvKiBQYWdlQXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQ3N0U3NzcwQkY0MTM0
QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q1RTVCNUYxQTE1
Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NUI4MUNDMjFGQUE0NEJDMDAzN0QxRTYgLyogUGFnZUNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJREFFRDIwMzExNkYyNDQ0ODAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAK
aW5kZXggMzE5NGIzMjc0NzVmZjE2ZTlhZGQxMTQyOWM2OGUwZTU1YmFlNDFmZi4uNWYwYzkwMDNk
ZmY3N2UwNzE3ZDZkOGY1YmU2OTY4NjIwZmI1MmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAgLTExNjEsNyArMTE2MSw3IEBAIGJvb2wgV2ViQW5pbWF0
aW9uOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKICAgICAvLyBV
c2UgdGhlIGJhc2UgY2xhc3MncyBpbXBsZW1lbnRhdGlvbiBvZiBoYXNQZW5kaW5nQWN0aXZpdHko
KSBzaW5jZSB3ZSB3b3VsZG4ndCB3YW50IHRoZSBjdXN0b20gaW1wbGVtZW50YXRpb24KICAgICAv
LyBpbiB0aGlzIGNsYXNzIGRlc2lnbmVkIHRvIGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUgdG8gaW50
ZXJmZXJlIHdpdGggdGhlIGFiaWxpdHkgZm9yIGEgcGFnZSB1c2luZyBhbmltYXRpb25zCi0gICAg
Ly8gdG8gZW50ZXIgdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gdG8gZW50ZXIgdGhlIGJhY2svZm9y
d2FyZCBjYWNoZS4KICAgICByZXR1cm4gIUFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2
aXR5KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRv
d1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcApp
bmRleCAwMmUzYzcyNGYxNjFjZmRiZGE3NWJhN2ViMDA1NzA1NDJlY2NmZDE3Li5kZTBiZjg4Nzlm
ODNiOTY1ZmZiYWZiOWQyMDkwM2EyMGJhNGFmZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2luZG93UHJveHkuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgSlNXaW5kb3dQcm94eSYg
V2luZG93UHJveHk6OmNyZWF0ZUpTV2luZG93UHJveHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQoRE9N
V3JhcHBlclcKICAgICByZXR1cm4gd2luZG93UHJveHk7CiB9CiAKLXZvaWQgV2luZG93UHJveHk6
OmNsZWFySlNXaW5kb3dQcm94aWVzTm90TWF0Y2hpbmdET01XaW5kb3coQWJzdHJhY3RET01XaW5k
b3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpCit2b2lkIFdpbmRvd1By
b3h5OjpjbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9N
V2luZG93KiBuZXdET01XaW5kb3csIGJvb2wgZ29pbmdJbnRvQmFja0ZvcndhcmRDYWNoZSkKIHsK
ICAgICBpZiAobV9qc1dpbmRvd1Byb3hpZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBA
IC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBXaW5kb3dQcm94eTo6Y2xlYXJKU1dpbmRvd1Byb3hpZXNO
b3RNYXRjaGluZ0RPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyogbmUKIAogICAgIC8vIEl0J3Mg
bGlrZWx5IHRoYXQgcmVzZXR0aW5nIG91ciB3aW5kb3dzIGNyZWF0ZWQgYSBsb3Qgb2YgZ2FyYmFn
ZSwgdW5sZXNzCiAgICAgLy8gaXQgd2VudCBpbiBhIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICBp
ZiAoIWdvaW5nSW50b1BhZ2VDYWNoZSkKKyAgICBpZiAoIWdvaW5nSW50b0JhY2tGb3J3YXJkQ2Fj
aGUpCiAgICAgICAgIGNvbGxlY3RHYXJiYWdlQWZ0ZXJXaW5kb3dQcm94eURlc3RydWN0aW9uKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5oCmluZGV4IDQ3MjJl
NDkzYjA2MDlkOTExNzZhNjJhZDM1Nzg0MGVkMGQ3N2RlODMuLjJjODA4YmRjNzljNzI3MzdlMTVh
MWJhNDE3MTA1NTNhZWZjMjhhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dpbmRvd1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93
UHJveHkuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KERPTVdyYXBwZXJXb3JsZCYpOwogCi0gICAg
dm9pZCBjbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9N
V2luZG93KiwgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOworICAgIHZvaWQgY2xlYXJKU1dpbmRv
d1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyosIGJvb2wgZ29p
bmdJbnRvQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERP
TVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2Jq
ZWN0LmgKaW5kZXggODU3OTk4YWZmNmYyMzcwMGE2YTYyZjVhMWZhMDI3NjM4OTlkM2VlYS4uNmI4
Yjk4NmYzNzk2Yzc0ODlkMGFmMmM5NTc1M2NiYjY5MGRjMjY3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9B
Y3RpdmVET01PYmplY3QuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBEb2N1bWVudDsKIGVudW0g
Y2xhc3MgUmVhc29uRm9yU3VzcGVuc2lvbiB7CiAgICAgSmF2YVNjcmlwdERlYnVnZ2VyUGF1c2Vk
LAogICAgIFdpbGxEZWZlckxvYWRpbmcsCi0gICAgUGFnZUNhY2hlLAorICAgIEJhY2tGb3J3YXJk
Q2FjaGUsCiAgICAgUGFnZVdpbGxCZVN1c3BlbmRlZCwKIH07CiAKQEAgLTY0LDcgKzY0LDcgQEAg
cHVibGljOgogCiAgICAgLy8gVGhlc2UgdGhyZWUgZnVuY3Rpb25zIG11c3Qgbm90IGhhdmUgYSBz
aWRlIGVmZmVjdCBvZiBjcmVhdGluZyBvciBkZXN0cm95aW5nCiAgICAgLy8gYW55IEFjdGl2ZURP
TU9iamVjdC4gVGhhdCBtZWFucyB0aGV5IG11c3Qgbm90IHJlc3VsdCBpbiBjYWxscyB0byBhcmJp
dHJhcnkgSmF2YVNjcmlwdC4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50
U3VzcGVuc2lvbigpIGNvbnN0ID0gMDsgLy8gUmV0dXJuaW5nIGZhbHNlIGluIGNhblN1c3BlbmRG
b3JEb2N1bWVudFN1c3BlbnNpb24oKSB3aWxsIHByZXZlbnQgdGhlIHBhZ2UgZnJvbSBlbnRlcmlu
ZyB0aGUgUGFnZUNhY2hlLgorICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QgPSAwOyAvLyBSZXR1cm5pbmcgZmFsc2UgaW4gY2FuU3VzcGVuZEZv
ckRvY3VtZW50U3VzcGVuc2lvbigpIHdpbGwgcHJldmVudCB0aGUgcGFnZSBmcm9tIGVudGVyaW5n
IHRoZSBCYWNrRm9yd2FyZENhY2hlLgogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZv
clN1c3BlbnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggNTg2MzI0YmMxNDNiMDMwNGNiYmFhOGJiMjQ2ZTYwMzM3Y2MzYjkzNi4u
NGQ0MGM0MGI3YzMyNzI5NDM1MzA3YWVlOTcyNjhmZTAzZjI2YzFhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC02MjMsNyArNjIzLDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAg
cmVtb3ZlRnJvbUNvbnRleHRzTWFwKCk7CiAKICAgICBBU1NFUlQoIXJlbmRlclZpZXcoKSk7Ci0g
ICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVCht
X2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSAhPSBJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIEFTU0VS
VChtX3Jhbmdlcy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9wYXJlbnRUcmVlU2NvcGUpOwog
ICAgIEFTU0VSVCghbV9kaXNhYmxlZEZpZWxkc2V0RWxlbWVudHNDb3VudCk7CkBAIC0xODI4LDcg
KzE4MjgsNyBAQCB2b2lkIERvY3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKCkKIHsKICAgICBB
U1NFUlQoIW1fcmVuZGVyVmlldyB8fCAhaW5IaXRUZXN0aW5nKCkpOwogCi0gICAgaWYgKG1fc3R5
bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8IHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdl
Q2FjaGUpCisgICAgaWYgKG1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8IGJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpICE9IE5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQVNTRVJUKGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IG1fbmVlZHNGdWxsU3R5
bGVSZWJ1aWxkKTsKQEAgLTIwMDksNyArMjAwOSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRl
eHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5z
CiAKIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdAogewotICAgIGlmIChw
YWdlQ2FjaGVTdGF0ZSgpICE9IE5vdEluUGFnZUNhY2hlKQorICAgIGlmIChiYWNrRm9yd2FyZENh
Y2hlU3RhdGUoKSAhPSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGlmIChtX25lZWRzRnVsbFN0eWxlUmVidWlsZCkKQEAgLTIyOTUsNyArMjI5NSw3
IEBAIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0NhY2hlQW5kRm9y
Y2VTdHlsZVJlY2FsYygpCiB7CiAgICAgaWYgKGF1dG8qIHJlc29sdmVyID0gc3R5bGVTY29wZSgp
LnJlc29sdmVySWZFeGlzdHMoKSkKICAgICAgICAgcmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVk
UHJvcGVydGllc0NhY2hlKCk7Ci0gICAgaWYgKHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdl
Q2FjaGUgfHwgIXJlbmRlclZpZXcoKSkKKyAgICBpZiAoYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
IT0gTm90SW5CYWNrRm9yd2FyZENhY2hlIHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQoKTsKIH0KQEAgLTIzMTQsNyArMjMxNCw3
IEBAIHZvaWQgRG9jdW1lbnQ6OnNldElzUmVzb2x2aW5nVHJlZVN0eWxlKGJvb2wgdmFsdWUpCiB2
b2lkIERvY3VtZW50OjpjcmVhdGVSZW5kZXJUcmVlKCkKIHsKICAgICBBU1NFUlQoIXJlbmRlclZp
ZXcoKSk7Ci0gICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOworICAg
IEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSAhPSBJbkJhY2tGb3J3YXJkQ2FjaGUpOwog
ICAgIEFTU0VSVCghbV9heE9iamVjdENhY2hlIHx8IHRoaXMgIT0gJnRvcERvY3VtZW50KCkpOwog
CiAgICAgaWYgKG1faXNOb25SZW5kZXJlZFBsYWNlaG9sZGVyKQpAQCAtMjM1NCw3ICsyMzU0LDcg
QEAgdm9pZCBEb2N1bWVudDo6ZGlkQmVjb21lQ3VycmVudERvY3VtZW50SW5GcmFtZSgpCiAKICAg
ICAvLyBFbnN1cmUgdGhhdCB0aGUgc2NoZWR1bGVkIHRhc2sgc3RhdGUgb2YgdGhlIGRvY3VtZW50
IG1hdGNoZXMgdGhlIERPTSBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBmcmFtZS4gSXQgY2FuCiAg
ICAgLy8gYmUgb3V0IG9mIHN5bmMgaWYgdGhlIERPTSBzdXNwZW5zaW9uIHN0YXRlIGNoYW5nZWQg
d2hpbGUgdGhlIGRvY3VtZW50IHdhcyBub3QgaW4gdGhlIGZyYW1lIChwb3NzaWJseSBpbiB0aGUK
LSAgICAvLyBwYWdlIGNhY2hlLCBvciBzaW1wbHkgbmV3bHkgY3JlYXRlZCkuCisgICAgLy8gYmFj
ay9mb3J3YXJkIGNhY2hlLCBvciBzaW1wbHkgbmV3bHkgY3JlYXRlZCkuCiAgICAgaWYgKG1fZnJh
bWUtPmFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zU3VzcGVuZGVkKCkpIHsKICAgICAgICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQW5pbWF0aW9u
c0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogdGltZWxp
bmUgPSBleGlzdGluZ1RpbWVsaW5lKCkpCkBAIC0yMzk3LDcgKzIzOTcsNyBAQCB2b2lkIERvY3Vt
ZW50OjphdHRhY2hUb0NhY2hlZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCiB7
CiAgICAgUkVMRUFTRV9BU1NFUlQoY2FjaGVkRnJhbWUuZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAg
ICBBU1NFUlQoY2FjaGVkRnJhbWUudmlldygpKTsKLSAgICBBU1NFUlQobV9wYWdlQ2FjaGVTdGF0
ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKTsKICAgICBvYnNlcnZlRnJh
bWUoJmNhY2hlZEZyYW1lLnZpZXcoKS0+ZnJhbWUoKSk7CiB9CiAKQEAgLTI0MDYsNyArMjQwNiw3
IEBAIHZvaWQgRG9jdW1lbnQ6OmRldGFjaEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZUJhc2Um
IGNhY2hlZEZyYW1lKQogICAgIEFTU0VSVF9VTlVTRUQoY2FjaGVkRnJhbWUsIGNhY2hlZEZyYW1l
LnZpZXcoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoY2FjaGVkRnJhbWUuZG9jdW1lbnQoKSA9PSB0
aGlzKTsKICAgICBBU1NFUlQobV9mcmFtZSA9PSAmY2FjaGVkRnJhbWUudmlldygpLT5mcmFtZSgp
KTsKLSAgICBBU1NFUlQobV9wYWdlQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUp
OworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5CYWNr
Rm9yd2FyZENhY2hlKTsKICAgICBkZXRhY2hGcm9tRnJhbWUoKTsKIH0KIApAQCAtMjU2OSwxMCAr
MjU2OSwxMCBAQCB2b2lkIERvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogCiAgICAg
bV9oYXNQcmVwYXJlZEZvckRlc3RydWN0aW9uID0gdHJ1ZTsKIAotICAgIC8vIE5vdGUgdGhhdCBt
X3BhZ2VDYWNoZVN0YXRlIGNhbiBiZSBEb2N1bWVudDo6QWJvdXRUb0VudGVyUGFnZUNhY2hlIGlm
IG91ciBmcmFtZQorICAgIC8vIE5vdGUgdGhhdCBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBjYW4g
YmUgRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUgaWYgb3VyIGZyYW1lCiAg
ICAgLy8gd2FzIHJlbW92ZWQgaW4gYW4gb25wYWdlaGlkZSBldmVudCBoYW5kbGVyIGZpcmVkIHdo
ZW4gdGhlIHRvcC1sZXZlbCBmcmFtZSBpcwotICAgIC8vIGFib3V0IHRvIGVudGVyIHRoZSBwYWdl
IGNhY2hlLgotICAgIFJFTEVBU0VfQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gRG9jdW1lbnQ6
OkluUGFnZUNhY2hlKTsKKyAgICAvLyBhYm91dCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNh
Y2hlLgorICAgIFJFTEVBU0VfQVNTRVJUKG1fYmFja0ZvcndhcmRDYWNoZVN0YXRlICE9IERvY3Vt
ZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGUpOwogfQogCiB2b2lkIERvY3VtZW50OjpyZW1vdmVBbGxF
dmVudExpc3RlbmVycygpCkBAIC00MDUzLDcgKzQwNTMsNyBAQCBzdGF0aWMgYm9vbCBpc05vZGVJ
blN1YnRyZWUoTm9kZSYgbm9kZSwgTm9kZSYgY29udGFpbmVyLCBEb2N1bWVudDo6Tm9kZVJlbW92
YWwgbgogCiB2b2lkIERvY3VtZW50OjphZGp1c3RGb2N1c2VkTm9kZU9uTm9kZVJlbW92YWwoTm9k
ZSYgbm9kZSwgTm9kZVJlbW92YWwgbm9kZVJlbW92YWwpCiB7Ci0gICAgaWYgKCFtX2ZvY3VzZWRF
bGVtZW50IHx8IHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUpIC8vIElmIHRoZSBk
b2N1bWVudCBpcyBpbiB0aGUgcGFnZSBjYWNoZSwgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNsZWFy
IG91dCB0aGUgZm9jdXNlZCBub2RlLgorICAgIGlmICghbV9mb2N1c2VkRWxlbWVudCB8fCBiYWNr
Rm9yd2FyZENhY2hlU3RhdGUoKSAhPSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpIC8vIElmIHRoZSBk
b2N1bWVudCBpcyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0aGVuIHdlIGRvbid0IG5lZWQg
dG8gY2xlYXIgb3V0IHRoZSBmb2N1c2VkIG5vZGUuCiAgICAgICAgIHJldHVybjsKIAogICAgIEVs
ZW1lbnQqIGZvY3VzZWRFbGVtZW50ID0gbm9kZS50cmVlU2NvcGUoKS5mb2N1c2VkRWxlbWVudElu
U2NvcGUoKTsKQEAgLTQxMjEsNyArNDEyMSw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jCiAg
ICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgPT0gbmV3Rm9jdXNlZEVsZW1lbnQpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgaWYgKHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUp
CisgICAgaWYgKGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IE5vdEluQmFja0ZvcndhcmRDYWNo
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBmb2N1c0NoYW5nZUJsb2NrZWQg
PSBmYWxzZTsKQEAgLTQ1NjEsNyArNDU2MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRha2VET01XaW5k
b3dGcm9tKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBBU1NFUlQoIW1fZG9tV2luZG93KTsKICAg
ICBBU1NFUlQoZG9jdW1lbnQubV9kb21XaW5kb3cpOwogICAgIC8vIEEgdmFsaWQgRE9NV2luZG93
IGlzIG5lZWRlZCBieSBDYWNoZWRGcmFtZSBmb3IgaXRzIGRvY3VtZW50cy4KLSAgICBBU1NFUlQo
cGFnZUNhY2hlU3RhdGUoKSA9PSBOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKGJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpID09IE5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBtX2RvbVdp
bmRvdyA9IFdURk1vdmUoZG9jdW1lbnQubV9kb21XaW5kb3cpOwogICAgIG1fZG9tV2luZG93LT5k
aWRTZWN1cmVUcmFuc2l0aW9uVG8oKnRoaXMpOwpAQCAtNTA4MywyMSArNTA4MywyMSBAQCBVUkwg
RG9jdW1lbnQ6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVy
biBjb21wbGV0ZVVSTCh1cmwsIG1fYmFzZVVSTCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnNldFBh
Z2VDYWNoZVN0YXRlKFBhZ2VDYWNoZVN0YXRlIHN0YXRlKQordm9pZCBEb2N1bWVudDo6c2V0QmFj
a0ZvcndhcmRDYWNoZVN0YXRlKEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBzdGF0ZSkKIHsKLSAgICBp
ZiAobV9wYWdlQ2FjaGVTdGF0ZSA9PSBzdGF0ZSkKKyAgICBpZiAobV9iYWNrRm9yd2FyZENhY2hl
U3RhdGUgPT0gc3RhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZUNhY2hlU3RhdGUg
PSBzdGF0ZTsKKyAgICBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9IHN0YXRlOwogCiAgICAgRnJh
bWVWaWV3KiB2ID0gdmlldygpOwogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAKICAg
ICBzd2l0Y2ggKHN0YXRlKSB7Ci0gICAgY2FzZSBJblBhZ2VDYWNoZToKKyAgICBjYXNlIEluQmFj
a0ZvcndhcmRDYWNoZToKICAgICAgICAgaWYgKHYpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBU
aGVyZSBpcyBzb21lIHNjcm9sbGluZyByZWxhdGVkIHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4g
d2hlbmV2ZXIgYSBwYWdlIGdvZXMgaW50byB0aGUKLSAgICAgICAgICAgIC8vIHBhZ2UgY2FjaGUg
YW5kIHNpbWlsYXIgd29yayB0aGF0IG5lZWRzIHRvIG9jY3VyIHdoZW4gaXQgY29tZXMgb3V0LiBU
aGlzIGlzIHdoZXJlIHdlIGRvIHRoZSB3b3JrCisgICAgICAgICAgICAvLyBiYWNrL2ZvcndhcmQg
Y2FjaGUgYW5kIHNpbWlsYXIgd29yayB0aGF0IG5lZWRzIHRvIG9jY3VyIHdoZW4gaXQgY29tZXMg
b3V0LiBUaGlzIGlzIHdoZXJlIHdlIGRvIHRoZSB3b3JrCiAgICAgICAgICAgICAvLyB0aGF0IG5l
ZWRzIHRvIGhhcHBlbiB3aGVuIHdlIGVudGVyLCBhbmQgdGhlIHdvcmsgdGhhdCBuZWVkcyB0byBo
YXBwZW4gd2hlbiB3ZSBleGl0IGlzIGluCiAgICAgICAgICAgICAvLyBIaXN0b3J5Q29udHJvbGxl
cjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkuIEl0IGNhbid0IGJlIGhlcmUg
YmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzCiAgICAgICAgICAgICAvLyBjYWxsZWQgdG9vIGVhcmx5
IG9uIGluIHRoZSBwcm9jZXNzIG9mIGEgcGFnZSBleGl0aW5nIHRoZSBjYWNoZSBmb3IgdGhhdCB3
b3JrIHRvIGJlIHBvc3NpYmxlIGluIHRoaXMKQEAgLTUxMjEsMTEgKzUxMjEsMTEgQEAgdm9pZCBE
b2N1bWVudDo6c2V0UGFnZUNhY2hlU3RhdGUoUGFnZUNhY2hlU3RhdGUgc3RhdGUpCiAKICAgICAg
ICAgY2xlYXJTaGFyZWRPYmplY3RQb29sKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTm90
SW5QYWdlQ2FjaGU6CisgICAgY2FzZSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAgICAgIGlm
IChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAgICAgIHNjaGVkdWxlU3R5bGVSZWNh
bGMoKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBYm91dFRvRW50ZXJQYWdlQ2FjaGU6Cisg
ICAgY2FzZSBBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOgogICAgICAgICBicmVhazsKICAg
ICB9CiB9CkBAIC01MTQ4LDcgKzUxNDgsNyBAQCB2b2lkIERvY3VtZW50OjpzdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb24gcmVhc29uKQogCiAjaWZuZGVmIE5ERUJVRwogICAgIC8vIENsZWFyIHRo
ZSB1cGRhdGUgZmxhZyB0byBiZSBhYmxlIHRvIGNoZWNrIGlmIHRoZSB2aWV3cG9ydCBhcmd1bWVu
dHMgdXBkYXRlCi0gICAgLy8gaXMgZGlzcGF0Y2hlZCwgYWZ0ZXIgdGhlIGRvY3VtZW50IGlzIHJl
c3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gaXMgZGlzcGF0Y2hlZCwgYWZ0ZXIg
dGhlIGRvY3VtZW50IGlzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAg
ICBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCA9IGZhbHNlOwogI2VuZGlm
CiAKQEAgLTUxNjksNyArNTE2OSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbiByZWFzb24pCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
LSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNl
V29ya2VyRW5hYmxlZCgpICYmIHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2Fj
aGUpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2Vy
dmljZVdvcmtlckVuYWJsZWQoKSAmJiByZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFj
a0ZvcndhcmRDYWNoZSkKICAgICAgICAgc2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24obnVsbHB0
cik7CiAjZW5kaWYKIApAQCAtNTIxNCw3ICs1MjE0LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzdW1l
KFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsK
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgpICYmIHJlYXNvbiA9
PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiByZWFz
b24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgc2V0
U2VydmljZVdvcmtlckNvbm5lY3Rpb24oU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24o
KS5leGlzdGluZ1NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCkpOwogI2VuZGlmCiB9CkBAIC01NTM0
LDcgKzU1MzQsNyBAQCBEb2N1bWVudCYgRG9jdW1lbnQ6OnRvcERvY3VtZW50KCkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRTogVGhpcyBzcGVjaWFsLWNhc2luZyBhdm9pZHMgaW5jb3JyZWN0bHkgZGV0
ZXJtaW5lZCB0b3AgZG9jdW1lbnRzIGR1cmluZyB0aGUgcHJvY2VzcwogICAgIC8vIG9mIEFYT2Jq
ZWN0Q2FjaGUgdGVhcmRvd24gb3Igbm90aWZpY2F0aW9uIHBvc3RpbmcgZm9yIGNhY2hlZCBvciBi
ZWluZy1kZXN0cm95ZWQgZG9jdW1lbnRzLgotICAgIGlmIChwYWdlQ2FjaGVTdGF0ZSgpID09IE5v
dEluUGFnZUNhY2hlICYmICFtX3JlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCkgeworICAgIGlmIChi
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgJiYgIW1fcmVu
ZGVyVHJlZUJlaW5nRGVzdHJveWVkKSB7CiAgICAgICAgIGlmICghbV9mcmFtZSkKICAgICAgICAg
ICAgIHJldHVybiBjb25zdF9jYXN0PERvY3VtZW50Jj4oKnRoaXMpOwogICAgICAgICAvLyBUaGlz
IHNob3VsZCBhbHdheXMgYmUgbm9uLW51bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc1MzE1
ZmU1MWMwNGI3MzMwMGI4ZDQ1MzYyZmQ1NjYwMDczMDUyYTcuLjk4NmY5YjcxOTI5Y2JiODc3ZDk1
OGI1ZDU4YTU5OTVlODYxNjQ4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDczLDEwICsx
MDczLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmluaXNoZWRQYXJzaW5nKCk7CiAKLSAgICBl
bnVtIFBhZ2VDYWNoZVN0YXRlIHsgTm90SW5QYWdlQ2FjaGUsIEFib3V0VG9FbnRlclBhZ2VDYWNo
ZSwgSW5QYWdlQ2FjaGUgfTsKKyAgICBlbnVtIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdElu
QmFja0ZvcndhcmRDYWNoZSwgQWJvdXRUb0VudGVyQmFja0ZvcndhcmRDYWNoZSwgSW5CYWNrRm9y
d2FyZENhY2hlIH07CiAKLSAgICBQYWdlQ2FjaGVTdGF0ZSBwYWdlQ2FjaGVTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZUNhY2hlU3RhdGU7IH0KLSAgICB2b2lkIHNldFBhZ2VDYWNoZVN0YXRl
KFBhZ2VDYWNoZVN0YXRlKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgYmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrRm9yd2FyZENhY2hlU3RhdGU7IH0KKyAg
ICB2b2lkIHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShCYWNrRm9yd2FyZENhY2hlU3RhdGUpOwog
CiAgICAgdm9pZCByZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50
Jik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKEVs
ZW1lbnQmKTsKQEAgLTE5NTAsNyArMTk1MCw3IEBAIHByaXZhdGU6CiAgICAgSW5oZXJpdGVkQm9v
bCBtX2Rlc2lnbk1vZGUgeyBpbmhlcml0IH07CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1fbWVkaWFTdGF0ZSB7IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyB9OwogICAg
IGJvb2wgbV91c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgeyBmYWxzZSB9OwotICAg
IFBhZ2VDYWNoZVN0YXRlIG1fcGFnZUNhY2hlU3RhdGUgeyBOb3RJblBhZ2VDYWNoZSB9OworICAg
IEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdEluQmFj
a0ZvcndhcmRDYWNoZSB9OwogICAgIE9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVycmVy
UG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKaW5kZXggODVjNzhhODcyMzY1ZDg5
MDM4Njk2NWZlMDAyMjEyOWUxZjJlNGZmZS4uMWU0Mjg3MWJjMmIyM2NmOThhZTBkMjI3Y2Y1YTcw
NWU3NDY2Yjg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBA
IC0zNjMsNyArMzYzLDcgQEAgc3RhdGljIHZvaWQgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKFJl
bmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5SZW5kZXJlciwgRWxlbWUKIAogdm9pZCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbHNjcmVlbihFbGVtZW50JiBlbGVtZW50KQogewotICAg
IGlmICghZG9jdW1lbnQoKS5oYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgZG9jdW1lbnQoKS5wYWdl
Q2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoIWRvY3Vt
ZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgpIHx8IGRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNo
ZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIGNhbGxlZCBhZnRlciB0aGUgZG9j
dW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwYWdlLgpAQCAtNDE3LDcgKzQxNyw3IEBA
IHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiAgICAgaWYgKCFt
X2Z1bGxzY3JlZW5FbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWhhc0xpdmlu
Z1JlbmRlclRyZWUoKSB8fCBwYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VD
YWNoZSkKKyAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBiYWNrRm9yd2FyZENhY2hl
U3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2Z1bGxzY3JlZW5FbGVtZW50LT5kaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVu
dCgpOwpAQCAtNDI5LDcgKzQyOSw3IEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0
RnVsbHNjcmVlbigpCiAgICAgaWYgKCFmdWxsc2NyZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgcGFnZUNhY2hlU3RhdGUoKSAh
PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVl
KCkgfHwgYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZnVsbHNjcmVlbkVsZW1lbnQtPndpbGxT
dG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHZvaWQgRnVs
bHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKCkKICAgICBpZiAoIWZ1bGxzY3JlZW5F
bGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUo
KSB8fCBwYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBp
ZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBE
b2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm47CiAgICAgZnVs
bHNjcmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Ny
b3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVl
bk1hbmFnZXIuaAppbmRleCBlMjczNDE4ZmI1ZThiNmU0YTIwNDFhZGVlZTM5MmE3YzBjNzgyYTIx
Li5iZmQyMTdmZDExOTVhMGM5ZjEzMTA3ZWJkZjdmM2I5YTAwNzNkZDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAg
RnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5mcmFtZSgpOyB9CiAgICAg
RWxlbWVudCogZG9jdW1lbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQoKTsgfQogICAgIGJvb2wgaGFzTGl2aW5nUmVuZGVyVHJlZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZG9jdW1lbnQuaGFzTGl2aW5nUmVuZGVyVHJlZSgpOyB9Ci0gICAgRG9jdW1lbnQ6
OlBhZ2VDYWNoZVN0YXRlIHBhZ2VDYWNoZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVu
dC5wYWdlQ2FjaGVTdGF0ZSgpOyB9CisgICAgRG9jdW1lbnQ6OkJhY2tGb3J3YXJkQ2FjaGVTdGF0
ZSBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgpOyB9CiAgICAgdm9pZCBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQo
KSB7IG1fZG9jdW1lbnQuc2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7IH0KIAogICAgIC8vIFcz
QyBGdWxsc2NyZWVuIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCmluZGV4IDAwMTAzODc5ODc4YTBmZTdjN2ZlY2ZlYzU3MWEzNDFlZTVkMjU0OTAu
LjNlYTliMzhkZDIzMzgwNWU3NjU0ZjQ0NGMxMjliMjdjN2VmYjMwZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBA
QCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKFJl
YXNvbkZvclN1c3BlbnNpb24gd2h5KQogICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKIAogICAgIGlm
IChtX2FjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQpIHsKLSAgICAgICAgLy8gQSBwYWdlIG1h
eSBzdWJzZXF1ZW50bHkgc3VzcGVuZCBET00gb2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50ZXJp
bmcgdGhlIHBhZ2UgY2FjaGUsIGFmdGVyIHRoZSBlbWJlZGRpbmcKKyAgICAgICAgLy8gQSBwYWdl
IG1heSBzdWJzZXF1ZW50bHkgc3VzcGVuZCBET00gb2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50
ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYWZ0ZXIgdGhlIGVtYmVkZGluZwogICAgICAg
ICAvLyBjbGllbnQgcmVxdWVzdGVkIHRoZSBwYWdlIGJlIHN1c3BlbmRlZC4gV2UgaWdub3JlIHN1
Y2ggcmVxdWVzdHMgc28gbG9uZyBhcyB0aGUgZW1iZWRkaW5nIGNsaWVudCByZXF1ZXN0ZWQKICAg
ICAgICAgLy8gdGhlIHN1c3BlbnNpb24gZmlyc3QuIFNlZSA8cmRhcjovL3Byb2JsZW0vMTM3NTQ4
OTY+IGZvciBtb3JlIGRldGFpbHMuCiAgICAgICAgIEFTU0VSVChtX3JlYXNvbkZvclN1c3BlbmRp
bmdBY3RpdmVET01PYmplY3RzID09IFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VXaWxsQmVTdXNw
ZW5kZWQpOwpAQCAtMzA4LDggKzMwOCw4IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhSZWFzb25Gb3JTdXNwZW5zaW9uIHdoeSkKICAgICAgICAg
cmV0dXJuIFNob3VsZENvbnRpbnVlOjpZZXM7CiAgICAgfSk7CiAKLSAgICAvLyBJbiBjYXNlIHRo
ZXJlIHdlcmUgcGVuZGluZyBtZXNzYWdlcyBhdCB0aGUgdGltZSB0aGUgc2NyaXB0IGV4ZWN1dGlv
biBjb250ZXh0IGVudGVyZWQgUGFnZUNhY2hlLAotICAgIC8vIG1ha2Ugc3VyZSB0aG9zZSBnZXQg
ZGlzcGF0Y2hlZCBzaG9ydGx5IGFmdGVyIHJlc3RvcmluZyBmcm9tIFBhZ2VDYWNoZS4KKyAgICAv
LyBJbiBjYXNlIHRoZXJlIHdlcmUgcGVuZGluZyBtZXNzYWdlcyBhdCB0aGUgdGltZSB0aGUgc2Ny
aXB0IGV4ZWN1dGlvbiBjb250ZXh0IGVudGVyZWQgdGhlIEJhY2tGb3J3YXJkQ2FjaGUsCisgICAg
Ly8gbWFrZSBzdXJlIHRob3NlIGdldCBkaXNwYXRjaGVkIHNob3J0bHkgYWZ0ZXIgcmVzdG9yaW5n
IGZyb20gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgcHJvY2Vzc01lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzU29vbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0Jh
Y2tGb3J3YXJkQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENh
Y2hlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MzczNTNmODNjY2ViZGM0NDIzODlhYTJhNDNjYzFiYTNjZGM3
MGE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2Fy
ZENhY2hlLmNwcApAQCAtMCwwICsxLDU1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgorCisjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhv
c3QuaCIKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRQYWdlLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9u
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisjaW5jbHVkZSAiRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgorI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhpc3RvcnlDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmgi
CisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTY3Jp
cHREaXNhbGxvd2VkU2NvcGUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN1
YmZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSA8cGFsL0xvZ2dpbmcuaD4KKyNpbmNsdWRlIDx3dGYv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworI2RlZmluZSBQQ0xPRyguLi4pIExPRyhCYWNrRm9yd2FyZENhY2hlLCAi
JSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgp
LmRhdGEoKSkKKworc3RhdGljIGlubGluZSB2b2lkIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJl
RGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGNsaWVudCwgY29uc3Qg
U3RyaW5nJiByZWFzb24pCit7CisgICAgY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUZhaWx1cmVLZXkoKSwgcmVhc29uLCBT
aG91bGRTYW1wbGU6Ok5vKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGxvZ0JhY2tGb3J3YXJk
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBy
ZWFzb24pCit7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBsb2dCYWNr
Rm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPmRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KCksIHJlYXNvbik7Cit9CisKK3N0YXRpYyBib29sIGNhbkNhY2hlRnJhbWUoRnJh
bWUmIGZyYW1lLCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQsIHVuc2lnbmVkIGluZGVudExldmVsKQoreworICAgIFBDTE9HKCIrLS0tIik7CisgICAgRnJh
bWVMb2FkZXImIGZyYW1lTG9hZGVyID0gZnJhbWUubG9hZGVyKCk7CisKKyAgICAvLyBQcmV2ZW50
IHBhZ2UgY2FjaGluZyBpZiBhIHN1YmZyYW1lIGlzIHN0aWxsIGluIHByb3Zpc2lvbmFsIGxvYWQg
c3RhZ2UuCisgICAgLy8gV2Ugb25seSBkbyB0aGlzIGNoZWNrIGZvciBzdWJmcmFtZXMgYmVjYXVz
ZSB0aGUgbWFpbiBmcmFtZSBpcyByZXVzZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2Uu
CisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpICYmIGZyYW1lTG9hZGVyLnN0YXRlKCkgPT0g
RnJhbWVTdGF0ZVByb3Zpc2lvbmFsKSB7CisgICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgaW4g
cHJvdmlzaW9uYWwgbG9hZCBzdGFnZSIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnByb3Zpc2lvbmFsTG9hZEtleSgpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpICYmIGZyYW1lTG9hZGVyLnN0
YXRlTWFjaGluZSgpLmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkpIHsKKyAgICAg
ICAgUENMT0coIiAgIC1NYWluRnJhbWUgaXMgZGlzcGxheWluZyBpbml0aWFsIGVtcHR5IGRvY3Vt
ZW50Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWZyYW1lLmRv
Y3VtZW50KCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1GcmFtZSBoYXMgbm8gZG9jdW1lbnQiKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghZnJhbWUuZG9jdW1lbnQo
KS0+ZnJhbWUoKSkgeworICAgICAgICBQQ0xPRygiICAgLURvY3VtZW50IGlzIGRldGFjaGVkIGZy
b20gZnJhbWUiKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBm
cmFtZUxvYWRlci5kb2N1bWVudExvYWRlcigpOworICAgIGlmICghZG9jdW1lbnRMb2FkZXIpIHsK
KyAgICAgICAgUENMT0coIiAgIC1UaGVyZSBpcyBubyBEb2N1bWVudExvYWRlciBvYmplY3QiKTsK
KyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0RvY3VtZW50TG9h
ZGVyS2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgVVJMIGN1cnJl
bnRVUkwgPSBkb2N1bWVudExvYWRlci0+dXJsKCk7CisgICAgVVJMIG5ld1VSTCA9IGZyYW1lTG9h
ZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA/IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFs
RG9jdW1lbnRMb2FkZXIoKS0+dXJsKCkgOiBVUkwoKTsKKyAgICBpZiAoIW5ld1VSTC5pc0VtcHR5
KCkpCisgICAgICAgIFBDTE9HKCIgRGV0ZXJtaW5pbmcgaWYgZnJhbWUgY2FuIGJlIGNhY2hlZCBu
YXZpZ2F0aW5nIGZyb20gKCIsIGN1cnJlbnRVUkwuc3RyaW5nKCksICIpIHRvICgiLCBuZXdVUkwu
c3RyaW5nKCksICIpOiIpOworICAgIGVsc2UKKyAgICAgICAgUENMT0coIiBEZXRlcm1pbmluZyBp
ZiBzdWJmcmFtZSB3aXRoIFVSTCAoIiwgY3VycmVudFVSTC5zdHJpbmcoKSwgIikgY2FuIGJlIGNh
Y2hlZDoiKTsKKworICAgIGJvb2wgaXNDYWNoZWFibGUgPSB0cnVlOworICAgIC8vIERvIG5vdCBj
YWNoZSBlcnJvciBwYWdlcyAodGhlc2UgY2FuIGJlIHJlY29nbml6ZWQgYXMgcGFnZXMgd2l0aCBz
dWJzdGl0dXRlIGRhdGEgb3IgdW5yZWFjaGFibGUgVVJMcykuCisgICAgaWYgKGRvY3VtZW50TG9h
ZGVyLT5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSAmJiAhZG9jdW1lbnRMb2FkZXItPnN1YnN0
aXR1dGVEYXRhKCkuZmFpbGluZ1VSTCgpLmlzRW1wdHkoKSkgeworICAgICAgICBQQ0xPRygiICAg
LUZyYW1lIGlzIGFuIGVycm9yIHBhZ2UiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZh
aWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjppc0Vycm9yUGFnZUtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBm
YWxzZTsKKyAgICB9CisgICAgaWYgKGZyYW1lTG9hZGVyLnN1YmZyYW1lTG9hZGVyKCkuY29udGFp
bnNQbHVnaW5zKCkgJiYgIWZyYW1lLnBhZ2UoKS0+c2V0dGluZ3MoKS5iYWNrRm9yd2FyZENhY2hl
U3VwcG9ydHNQbHVnaW5zKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1GcmFtZSBjb250YWlucyBw
bHVnaW5zIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01l
c3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aGFz
UGx1Z2luc0tleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAg
aWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgIWZyYW1lTG9hZGVyLmhpc3RvcnkoKS5jdXJyZW50
SXRlbSgpKSB7CisgICAgICAgIFBDTE9HKCIgICAtTWFpbiBmcmFtZSBoYXMgbm8gY3VycmVudCBo
aXN0b3J5IGl0ZW0iKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9z
dGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojpub0N1cnJlbnRIaXN0b3J5SXRlbUtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxz
ZTsKKyAgICB9CisgICAgaWYgKGZyYW1lTG9hZGVyLnF1aWNrUmVkaXJlY3RDb21pbmcoKSkgewor
ICAgICAgICBQQ0xPRygiICAgLVF1aWNrIHJlZGlyZWN0IGlzIGNvbWluZyIpOworICAgICAgICBs
b2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnF1aXJrUmVkaXJlY3RDb21pbmdLZXko
KSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgfQorICAgIGlmIChkb2N1bWVu
dExvYWRlci0+aXNMb2FkaW5nKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudExvYWRl
ciBpcyBzdGlsbCBsb2FkaW5nIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJl
RGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6aXNMb2FkaW5nS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwor
ICAgIH0KKyAgICBpZiAoZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSkgeworICAgICAgICBQ
Q0xPRygiICAgLURvY3VtZW50TG9hZGVyIGlzIGluIHRoZSBtaWRkbGUgb2Ygc3RvcHBpbmciKTsK
KyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkb2N1bWVudExvYWRl
clN0b3BwaW5nS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKwor
ICAgIFZlY3RvcjxBY3RpdmVET01PYmplY3QqPiB1bnN1c3BlbmRhYmxlT2JqZWN0czsKKyAgICBp
ZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiAhZnJhbWUuZG9jdW1lbnQoKS0+Y2FuU3VzcGVuZEFjdGl2
ZURPTU9iamVjdHNGb3JEb2N1bWVudFN1c3BlbnNpb24oJnVuc3VzcGVuZGFibGVPYmplY3RzKSkg
eworICAgICAgICBQQ0xPRygiICAgLVRoZSBkb2N1bWVudCBjYW5ub3Qgc3VzcGVuZCBpdHMgYWN0
aXZlIERPTSBPYmplY3RzIik7CisgICAgICAgIGZvciAoYXV0byogYWN0aXZlRE9NT2JqZWN0IDog
dW5zdXNwZW5kYWJsZU9iamVjdHMpIHsKKyAgICAgICAgICAgIFBDTE9HKCIgICAgLSBVbnN1c3Bl
bmRhYmxlOiAiLCBhY3RpdmVET01PYmplY3QtPmFjdGl2ZURPTU9iamVjdE5hbWUoKSk7CisgICAg
ICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnVuc3VzcGVuZGFibGVET01PYmplY3RLZXkoKSwgYWN0aXZlRE9N
T2JqZWN0LT5hY3RpdmVET01PYmplY3ROYW1lKCksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAg
ICAgICAgVU5VU0VEX1BBUkFNKGFjdGl2ZURPTU9iamVjdCk7CisgICAgICAgIH0KKyAgICAgICAg
bG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5ub3RTdXNwZW5kQWN0aXZlRE9N
T2JqZWN0c0tleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGludmVzdGlnYXRpbmcgY2FjaGluZyBmcmFtZXMgdGhhdCBo
YXZlIGFuIGFzc29jaWF0ZWQKKyAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9i
bGVtLzU5MTc4OTk+IHRyYWNrcyB0aGF0IHdvcmsuCisgICAgaWYgKCFkb2N1bWVudExvYWRlci0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKS5jYW5DYWNoZUluQmFja0ZvcndhcmRDYWNoZSgpKSB7Cisg
ICAgICAgIFBDTE9HKCIgICAtVGhlIERvY3VtZW50TG9hZGVyIHVzZXMgYW4gYXBwbGljYXRpb24g
Y2FjaGUiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVz
c2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphcHBs
aWNhdGlvbkNhY2hlS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0K
KyAgICBpZiAoIWZyYW1lTG9hZGVyLmNsaWVudCgpLmNhbkNhY2hlUGFnZSgpKSB7CisgICAgICAg
IFBDTE9HKCIgICAtVGhlIGNsaWVudCBzYXlzIHRoaXMgZnJhbWUgY2Fubm90IGJlIGNhY2hlZCIp
OworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmRlbmllZEJ5Q2xp
ZW50S2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKworICAgIGZv
ciAoRnJhbWUqIGNoaWxkID0gZnJhbWUudHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICghY2FuQ2FjaGVG
cmFtZSgqY2hpbGQsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRMZXZlbCArIDEpKQor
ICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAgUENMT0co
aXNDYWNoZWFibGUgPyAiIEZyYW1lIENBTiBiZSBjYWNoZWQiIDogIiBGcmFtZSBDQU5OT1QgYmUg
Y2FjaGVkIik7CisgICAgUENMT0coIistLS0iKTsKKyAgICAKKyAgICByZXR1cm4gaXNDYWNoZWFi
bGU7Cit9CisKK3N0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQYWdlJiBwYWdlKQoreworICAgIFJF
TEVBU0VfQVNTRVJUKCFwYWdlLmlzUmVzdG9yaW5nQ2FjaGVkUGFnZSgpKTsKKworICAgIHVuc2ln
bmVkIGluZGVudExldmVsID0gMDsKKyAgICBQQ0xPRygiLS0tLS0tLS1cbiBEZXRlcm1pbmluZyBp
ZiBwYWdlIGNhbiBiZSBjYWNoZWQ6Iik7CisKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7
CisgICAgYm9vbCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJhbWUocGFnZS5tYWluRnJhbWUoKSwg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVsICsgMSk7CisKKyAgICBpZiAoIXBh
Z2Uuc2V0dGluZ3MoKS51c2VzQmFja0ZvcndhcmRDYWNoZSgpIHx8IHBhZ2UuaXNSZXNvdXJjZUNh
Y2hpbmdEaXNhYmxlZEJ5V2ViSW5zcGVjdG9yKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1QYWdl
IHNldHRpbmdzIHNheXMgYi9mIGNhY2hlIGRpc2FibGVkIik7CisgICAgICAgIGxvZ0JhY2tGb3J3
YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNEaXNhYmxlZEtleSgpKTsKKyAgICAgICAgaXNDYWNo
ZWFibGUgPSBmYWxzZTsKKyAgICB9CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXI6Omlz
QWN0aXZlQXQoJnBhZ2UpKSB7CisgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZp
Y2VNb3Rpb24iKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpk
ZXZpY2VNb3Rpb25LZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgfQor
ICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7
CisgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOwor
ICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmRldmljZU9yaWVudGF0
aW9uS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKyNlbmRpZgor
CisgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSA9IHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCku
bG9hZFR5cGUoKTsKKyAgICBzd2l0Y2ggKGxvYWRUeXBlKSB7CisgICAgY2FzZSBGcmFtZUxvYWRU
eXBlOjpSZWxvYWQ6CisgICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhlIGNhY2hlIG9u
IGEgcmVsb2FkLCBzaW5jZSB3ZSB3aWxsIGp1c3Qgd3JpdGUgb3ZlciBpdCBhZ2FpbiB3aGVuIHdl
IGxlYXZlIHRoYXQgcGFnZS4KKyAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5cGUgaXM6IFJlbG9h
ZCIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdl
KGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlbG9hZEtl
eSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBGcmFtZUxvYWRUeXBlOjpTYW1lOiAvLyB1c2VyIGxvYWRzIHNhbWUgVVJMIGFnYWluIChi
dXQgbm90IHJlbG9hZCBidXR0b24pCisgICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhl
IGNhY2hlIG9uIGEgc2FtZSBsb2FkLCBzaW5jZSB3ZSB3aWxsIGp1c3Qgd3JpdGUgb3ZlciBpdCBh
Z2FpbiB3aGVuIHdlIGxlYXZlIHRoYXQgcGFnZS4KKyAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5
cGUgaXM6IFNhbWUiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9z
dGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpzYW1lTG9hZEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9y
d2FyZExpc3Q6CisgICAgICAgIC8vIERvbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUg
bWlkZGxlIG9mIGEgcmVkaXJlY3QsIHNpbmNlIHdlIHdpbGwgd2FudCB0byBzdG9yZSB0aGUgZmlu
YWwgcGFnZSB3ZSBlbmQgdXAgb24uCisgICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBS
ZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3QiKTsKKyAgICAgICAgbG9nQmFja0Zvcndh
cmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZWRpcmVjdEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFi
bGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZXBs
YWNlOgorICAgICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHJlcGxh
Y2UsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUg
dGhhdCBwYWdlLgorICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVwbGFjZSIpOwor
ICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlcGxhY2VLZXkoKSk7
CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbjogeworICAgICAgICAvLyBObyBwb2ludCB3
cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHJlbG9hZCwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRl
IG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0IHBhZ2UuCisgICAgICAgIFBDTE9HKCIg
ICAtTG9hZCB0eXBlIGlzOiBSZWxvYWRGcm9tT3JpZ2luIik7CisgICAgICAgIGxvZ0JhY2tGb3J3
YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkRnJvbU9yaWdpbktleSgpKTsKKyAgICAgICAg
aXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgRnJh
bWVMb2FkVHlwZTo6UmVsb2FkRXhwaXJlZE9ubHk6IHsKKyAgICAgICAgLy8gTm8gcG9pbnQgd3Jp
dGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBv
dmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgorICAgICAgICBQQ0xPRygiICAg
LUxvYWQgdHlwZSBpczogUmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZCIpOworICAgICAgICBsb2dC
YWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlbG9hZFJldmFsaWRhdGluZ0V4cGlyZWRL
ZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkOgorICAgIGNhc2UgRnJhbWVMb2Fk
VHlwZTo6QmFjazoKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQ6CisgICAgY2FzZSBG
cmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQ6IC8vIGEgbXVsdGktaXRlbSBob3AgaW4g
dGhlIGJhY2tmb3J3YXJkIGxpc3QKKyAgICAgICAgLy8gQ2FjaGVhYmxlLgorICAgICAgICBicmVh
azsKKyAgICB9CisgICAgCisgICAgaWYgKGlzQ2FjaGVhYmxlKQorICAgICAgICBQQ0xPRygiIFBh
Z2UgQ0FOIGJlIGNhY2hlZFxuLS0tLS0tLS0iKTsKKyAgICBlbHNlCisgICAgICAgIFBDTE9HKCIg
UGFnZSBDQU5OT1QgYmUgY2FjaGVkXG4tLS0tLS0tLSIpOworCisgICAgZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5n
S2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhbkNh
Y2hlS2V5KCksIGlzQ2FjaGVhYmxlID8gRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzIDogRGlh
Z25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICByZXR1cm4g
aXNDYWNoZWFibGU7Cit9CisKK0JhY2tGb3J3YXJkQ2FjaGUmIEJhY2tGb3J3YXJkQ2FjaGU6OnNp
bmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEJhY2tGb3J3YXJkQ2FjaGU+
IGdsb2JhbEJhY2tGb3J3YXJkQ2FjaGU7CisgICAgcmV0dXJuIGdsb2JhbEJhY2tGb3J3YXJkQ2Fj
aGU7Cit9CisKK0JhY2tGb3J3YXJkQ2FjaGU6OkJhY2tGb3J3YXJkQ2FjaGUoKQoreworICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxh
ZywgW10geworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5X
ZWJLaXQuc2hvd0JhY2tGb3J3YXJkQ2FjaGUiLCBbXSB7CisgICAgICAgICAgICBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5kdW1wKCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2
b2lkIEJhY2tGb3J3YXJkQ2FjaGU6OmR1bXAoKSBjb25zdAoreworICAgIFdURkxvZ0Fsd2F5cygi
QmFjay9Gb3J3YXJkIENhY2hlOiIpOworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsK
KyAgICAgICAgQ2FjaGVkUGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7Cisg
ICAgICAgIFdURkxvZ0Fsd2F5cygiICBQYWdlICVwLCBkb2N1bWVudCAlcCAlcyIsICZjYWNoZWRQ
YWdlLnBhZ2UoKSwgY2FjaGVkUGFnZS5kb2N1bWVudCgpLCBjYWNoZWRQYWdlLmRvY3VtZW50KCkg
PyBjYWNoZWRQYWdlLmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAi
Iik7CisgICAgfQorfQorCitib29sIEJhY2tGb3J3YXJkQ2FjaGU6OmNhbkNhY2hlKFBhZ2UmIHBh
Z2UpIGNvbnN0Cit7CisgICAgaWYgKCFtX21heFNpemUpIHsKKyAgICAgICAgbG9nQmFja0Zvcndh
cmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjppc0Rpc2FibGVkS2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgaWYgKE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVBy
ZXNzdXJlKCkpIHsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmRlck1lbW9yeVByZXNzdXJl
S2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHJldHVybiBj
YW5DYWNoZVBhZ2UocGFnZSk7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmVUb1Np
emVOb3codW5zaWduZWQgc2l6ZSwgUHJ1bmluZ1JlYXNvbiBwcnVuaW5nUmVhc29uKQoreworICAg
IFNldEZvclNjb3BlPHVuc2lnbmVkPiBjaGFuZ2UobV9tYXhTaXplLCBzaXplKTsKKyAgICBwcnVu
ZShwcnVuaW5nUmVhc29uKTsKK30KKwordm9pZCBCYWNrRm9yd2FyZENhY2hlOjpzZXRNYXhTaXpl
KHVuc2lnbmVkIG1heFNpemUpCit7CisgICAgbV9tYXhTaXplID0gbWF4U2l6ZTsKKyAgICBwcnVu
ZShQcnVuaW5nUmVhc29uOjpOb25lKTsKK30KKwordW5zaWduZWQgQmFja0ZvcndhcmRDYWNoZTo6
ZnJhbWVDb3VudCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMu
c2l6ZSgpOworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKKyAgICAgICAgQVNTRVJU
KGl0ZW0tPm1fY2FjaGVkUGFnZSk7CisgICAgICAgIGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNo
ZWRQYWdlLT5jYWNoZWRNYWluRnJhbWUoKS0+ZGVzY2VuZGFudEZyYW1lQ291bnQoKTsKKyAgICB9
CisgICAgCisgICAgcmV0dXJuIGZyYW1lQ291bnQ7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNo
ZTo6bWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKFBhZ2UmIHBhZ2UpCit7Cisg
ICAgZm9yIChhdXRvJiBpdGVtIDogbV9pdGVtcykgeworICAgICAgICBDYWNoZWRQYWdlJiBjYWNo
ZWRQYWdlID0gKml0ZW0tPm1fY2FjaGVkUGFnZTsKKyAgICAgICAgaWYgKCZwYWdlLm1haW5GcmFt
ZSgpID09ICZjYWNoZWRQYWdlLmNhY2hlZE1haW5GcmFtZSgpLT52aWV3KCktPmZyYW1lKCkpCisg
ICAgICAgICAgICBjYWNoZWRQYWdlLm1hcmtGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoKTsK
KyAgICB9Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ29udGVudHNT
aXplQ2hhbmdlZChQYWdlJiBwYWdlKQoreworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMp
IHsKKyAgICAgICAgQ2FjaGVkUGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7
CisgICAgICAgIGlmICgmcGFnZS5tYWluRnJhbWUoKSA9PSAmY2FjaGVkUGFnZS5jYWNoZWRNYWlu
RnJhbWUoKS0+dmlldygpLT5mcmFtZSgpKQorICAgICAgICAgICAgY2FjaGVkUGFnZS5tYXJrRm9y
Q29udGVudHNTaXplQ2hhbmdlZCgpOworICAgIH0KK30KKworI2lmIEVOQUJMRShWSURFT19UUkFD
SykKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2Vz
Q2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9pdGVtcykgeworICAgICAgICBB
U1NFUlQoaXRlbS0+bV9jYWNoZWRQYWdlKTsKKyAgICAgICAgaXRlbS0+bV9jYWNoZWRQYWdlLT5t
YXJrRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOworICAgIH0KK30KKyNlbmRpZgorCitz
dGF0aWMgU3RyaW5nIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KFBydW5pbmdS
ZWFzb24gcHJ1bmluZ1JlYXNvbikKK3sKKyAgICBzd2l0Y2ggKHBydW5pbmdSZWFzb24pIHsKKyAg
ICBjYXNlIFBydW5pbmdSZWFzb246Ok1lbW9yeVByZXNzdXJlOgorICAgICAgICByZXR1cm4gRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01lbW9yeVByZXNzdXJlS2V5KCk7CisgICAg
Y2FzZSBQcnVuaW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOgorICAgICAgICByZXR1cm4gRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb1Byb2Nlc3NTdXNwZW5kZWQoKTsKKyAgICBj
YXNlIFBydW5pbmdSZWFzb246OlJlYWNoZWRNYXhTaXplOgorICAgICAgICByZXR1cm4gRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01heFNpemVSZWFjaGVkKCk7CisgICAgY2FzZSBQ
cnVuaW5nUmVhc29uOjpOb25lOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CisKK3N0YXRpYyB2b2lk
IHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShQYWdlJiBwYWdlLCBEb2N1bWVudDo6QmFja0Zvcndh
cmRDYWNoZVN0YXRlIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkKK3sKKyAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1
bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShC
YWNrRm9yd2FyZENhY2hlU3RhdGUpOworICAgIH0KK30KKworLy8gV2hlbiBlbnRlcmluZyBiYWNr
L2ZvcndhcmQgY2FjaGUsIHRlYXIgZG93biB0aGUgcmVuZGVyIHRyZWUgYmVmb3JlIHNldHRpbmcg
dGhlIGluLWNhY2hlIGZsYWcuCisvLyBUaGlzIG1haW50YWlucyB0aGUgaW52YXJpYW50IHRoYXQg
cmVuZGVyIHRyZWVzIGFyZSBuZXZlciBwcmVzZW50IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUu
CisvLyBOb3RlIHRoYXQgZGVzdHJ1Y3Rpb24gaGFwcGVucyBib3R0b20tdXAgc28gdGhhdCB0aGUg
bWFpbiBmcmFtZSdzIHRyZWUgZGllcyBsYXN0Lgorc3RhdGljIHZvaWQgZGVzdHJveVJlbmRlclRy
ZWUoRnJhbWUmIG1haW5GcmFtZSkKK3sKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFt
ZS50cmVlKCkudHJhdmVyc2VQcmV2aW91cyhDYW5XcmFwOjpZZXMpOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlUHJldmlvdXMoQ2FuV3JhcDo6Tm8pKSB7CisgICAgICAgIGlm
ICghZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0
byYgZG9jdW1lbnQgPSAqZnJhbWUtPmRvY3VtZW50KCk7CisgICAgICAgIGlmIChkb2N1bWVudC5o
YXNMaXZpbmdSZW5kZXJUcmVlKCkpCisgICAgICAgICAgICBkb2N1bWVudC5kZXN0cm95UmVuZGVy
VHJlZSgpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNp
dmVseShGcmFtZSYgZnJhbWUpCit7CisgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIHN0b3BM
b2FkaW5nKCkgd2lsbCBmaXJlIHRoZSBwYWdlaGlkZSBldmVudCBpbiBlYWNoIHN1YmZyYW1lIGFu
ZCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHN0YXRlcworICAgIC8vIHRoYXQgdGhlIHBhcmVudCBk
b2N1bWVudCdzIGlnbm9yZS1vcGVucy1kdXJpbmctdW5sb2FkIGNvdW50ZXIgc2hvdWxkIGJlIGlu
Y3JlbWVudGVkIHdoaWxlIHRoZQorICAgIC8vIHBhZ2VoaWRlIGV2ZW50IGlzIGJlaW5nIGZpcmVk
IGluIGl0cyBzdWJmcmFtZXM6CisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9t
dWx0aXBhZ2UvYnJvd3NlcnMuaHRtbCN1bmxvYWQtYS1kb2N1bWVudAorICAgIElnbm9yZU9wZW5z
RHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlciBpZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50
SW5jcmVtZW50ZXIoZG9jdW1lbnQpOworCisgICAgZnJhbWUubG9hZGVyKCkuc3RvcExvYWRpbmco
VW5sb2FkRXZlbnRQb2xpY3lVbmxvYWRBbmRQYWdlSGlkZSk7CisKKyAgICBmb3IgKFJlZlB0cjxG
cmFtZT4gY2hpbGQgPSBmcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkpCisgICAgICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVj
dXJzaXZlbHkoKmNoaWxkKTsKK30KKworYm9vbCBCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hl
YWJsZShIaXN0b3J5SXRlbSYgaXRlbSwgUGFnZSogcGFnZSkKK3sKKyAgICBpZiAoaXRlbS5pc0lu
QmFja0ZvcndhcmRDYWNoZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRl
cigpLnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisKKyAgICBpZiAoIWNhbkNhY2hlKCpwYWdl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghcGFn
ZS0+aXNVdGlsaXR5UGFnZSgpLCAiVXRpbGl0eSBwYWdlcyBzdWNoIGFzIFNWR0ltYWdlIHBhZ2Vz
IHNob3VsZCBuZXZlciBnbyBpbnRvIEJhY2tGb3J3YXJkQ2FjaGUiKTsKKworICAgIHNldEJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgqcGFnZSwgRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJk
Q2FjaGUpOworCisgICAgLy8gRm9jdXMgdGhlIG1haW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1
c2VkIHN1YmZyYW1lIChpZiB3ZSBoYXZlIG9uZSkuIFdlIGRvIHRoaXMgaGVyZSwKKyAgICAvLyBi
ZWZvcmUgdGhlIHBhZ2UgZW50ZXJzIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIHdoaWxlIHdlIHN0
aWxsIGNhbiBkaXNwYXRjaCBET00gYmx1ci9mb2N1cyBldmVudHMuCisgICAgaWYgKHBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLmZvY3VzZWRGcmFtZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJnBhZ2UtPm1haW5GcmFtZSgpKTsKKworICAgIC8vIEZp
cmUgdGhlIHBhZ2VoaWRlIGV2ZW50IGluIGFsbCBmcmFtZXMuCisgICAgZmlyZVBhZ2VIaWRlRXZl
bnRSZWN1cnNpdmVseShwYWdlLT5tYWluRnJhbWUoKSk7CisKKyAgICBkZXN0cm95UmVuZGVyVHJl
ZShwYWdlLT5tYWluRnJhbWUoKSk7CisKKyAgICAvLyBTdG9wIGFsbCBsb2FkcyBhZ2FpbiBiZWZv
cmUgY2hlY2tpbmcgaWYgd2UgY2FuIHN0aWxsIGNhY2hlIHRoZSBwYWdlIGFmdGVyIGZpcmluZyB0
aGUgcGFnZWhpZGUKKyAgICAvLyBldmVudCwgc2luY2UgdGhlIHBhZ2UgbWF5IGhhdmUgc3RhcnRl
ZCBwaW5nIGxvYWRzIGluIGl0cyBwYWdlaGlkZSBldmVudCBoYW5kbGVyLgorICAgIHBhZ2UtPm1h
aW5GcmFtZSgpLmxvYWRlcigpLnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisKKyAgICAvLyBD
aGVjayB0aGF0IHRoZSBwYWdlIGlzIHN0aWxsIHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0
aGUgcGFnZWhpZGUgZXZlbnQuIFRoZSBKUyBldmVudCBoYW5kbGVycworICAgIC8vIGNvdWxkIGhh
dmUgYWx0ZXJlZCB0aGUgcGFnZSBpbiBhIHdheSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4K
KyAgICBpZiAoIWNhbkNhY2hlKCpwYWdlKSkgeworICAgICAgICBzZXRCYWNrRm9yd2FyZENhY2hl
U3RhdGUoKnBhZ2UsIERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKCpwYWdl
LCBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKTsKKworICAgIHsKKyAgICAgICAgLy8gTWFr
ZSBzdXJlIHdlIGRvbid0IGZpcmUgYW55IEpTIGV2ZW50cyBpbiB0aGlzIHNjb3BlLgorICAgICAg
ICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZCBzY3JpcHREaXNhbGxvd2VkU2Nv
cGU7CisKKyAgICAgICAgaXRlbS5zZXRDYWNoZWRQYWdlKG1ha2VVbmlxdWU8Q2FjaGVkUGFnZT4o
KnBhZ2UpKTsKKyAgICAgICAgaXRlbS5tX3BydW5pbmdSZWFzb24gPSBQcnVuaW5nUmVhc29uOjpO
b25lOworICAgICAgICBtX2l0ZW1zLmFkZCgmaXRlbSk7CisgICAgfQorICAgIHBydW5lKFBydW5p
bmdSZWFzb246OlJlYWNoZWRNYXhTaXplKTsKKworICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJk
Q2FjaGUsICJCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hlYWJsZSBpdGVtOiAlcywgc2l6ZTog
JXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VD
b3VudCgpLCBtYXhTaXplKCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0ZDo6dW5pcXVl
X3B0cjxDYWNoZWRQYWdlPiBCYWNrRm9yd2FyZENhY2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVt
LCBQYWdlKiBwYWdlKQoreworICAgIGlmICghaXRlbS5tX2NhY2hlZFBhZ2UpIHsKKyAgICAgICAg
aWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCisgICAgICAg
ICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIHBy
dW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KGl0ZW0ubV9wcnVuaW5nUmVhc29uKSk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIG1faXRlbXMucmVtb3ZlKCZp
dGVtKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IGl0ZW0u
dGFrZUNhY2hlZFBhZ2UoKTsKKworICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJC
YWNrRm9yd2FyZENhY2hlOjp0YWtlIGl0ZW06ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5pZGVu
dGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7
CisKKyAgICBpZiAoY2FjaGVkUGFnZS0+aGFzRXhwaXJlZCgpIHx8IChwYWdlICYmIHBhZ2UtPmlz
UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRCeVdlYkluc3BlY3RvcigpKSkgeworICAgICAgICBMT0co
QmFja0ZvcndhcmRDYWNoZSwgIk5vdCByZXN0b3JpbmcgcGFnZSBmb3IgJXMgZnJvbSBiYWNrL2Zv
cndhcmQgY2FjaGUgYmVjYXVzZSBjYWNoZSBlbnRyeSBoYXMgZXhwaXJlZCIsIGl0ZW0udXJsKCku
c3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJl
ZEtleSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGNh
Y2hlZFBhZ2U7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQ
YWdlKFBhZ2UmIHBhZ2UpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoIW1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSwgIldlIHNob3VsZCBub3QgcmVl
bnRlciB0aGlzIG1ldGhvZCIpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVtb3ZlQWxsSXRl
bXNGb3JQYWdlU2NvcGUgeyBtX2lzSW5SZW1vdmVBbGxJdGVtc0ZvclBhZ2UsIHRydWUgfTsKKyNl
bmRpZgorCisgICAgZm9yIChhdXRvIGl0ID0gbV9pdGVtcy5iZWdpbigpOyBpdCAhPSBtX2l0ZW1z
LmVuZCgpOykgeworICAgICAgICAvLyBJbmNyZW1lbnQgaXRlcmF0b3IgZmlyc3Qgc28gaXQgc3Rh
eXMgdmFsaWQgYWZ0ZXIgdGhlIHJlbW92YWwuCisgICAgICAgIGF1dG8gY3VycmVudCA9IGl0Owor
ICAgICAgICArK2l0OworICAgICAgICBpZiAoJigqY3VycmVudCktPm1fY2FjaGVkUGFnZS0+cGFn
ZSgpID09ICZwYWdlKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhCYWNrRm9yd2FyZENhY2hl
LCAiQmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQYWdlIHJlbW92aW5nIGl0ZW06
ICVzLCBzaXplOiAldSAvICV1IiwgKCpjdXJyZW50KS0+aWRlbnRpZmllcigpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpIC0gMSwgbWF4U2l6ZSgpKTsKKyAgICAgICAgICAgICgq
Y3VycmVudCktPnNldENhY2hlZFBhZ2UobnVsbHB0cik7CisgICAgICAgICAgICBtX2l0ZW1zLnJl
bW92ZShjdXJyZW50KTsKKyAgICAgICAgfQorICAgIH0KK30KKworQ2FjaGVkUGFnZSogQmFja0Zv
cndhcmRDYWNoZTo6Z2V0KEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQoreworICAgIENh
Y2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBpdGVtLm1fY2FjaGVkUGFnZS5nZXQoKTsKKyAgICBpZiAo
IWNhY2hlZFBhZ2UpIHsKKyAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5p
bmdSZWFzb246Ok5vbmUpCisgICAgICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURp
YWdub3N0aWNNZXNzYWdlKHBhZ2UsIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5
KGl0ZW0ubV9wcnVuaW5nUmVhc29uKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIGlmIChjYWNoZWRQYWdlLT5oYXNFeHBpcmVkKCkgfHwgKHBhZ2UgJiYgcGFnZS0+aXNS
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZEJ5V2ViSW5zcGVjdG9yKCkpKSB7CisgICAgICAgIExPRyhC
YWNrRm9yd2FyZENhY2hlLCAiTm90IHJlc3RvcmluZyBwYWdlIGZvciAlcyBmcm9tIGJhY2svZm9y
d2FyZCBjYWNoZSBiZWNhdXNlIGNhY2hlIGVudHJ5IGhhcyBleHBpcmVkIiwgaXRlbS51cmwoKS5z
dHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleHBpcmVk
S2V5KCkpOworICAgICAgICByZW1vdmUoaXRlbSk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKyAgICByZXR1cm4gY2FjaGVkUGFnZTsKK30KKwordm9pZCBCYWNrRm9yd2FyZENhY2hl
OjpyZW1vdmUoSGlzdG9yeUl0ZW0mIGl0ZW0pCit7CisgICAgLy8gU2FmZWx5IGlnbm9yZSBhdHRl
bXB0cyB0byByZW1vdmUgaXRlbXMgbm90IGluIHRoZSBjYWNoZS4KKyAgICBpZiAoIWl0ZW0ubV9j
YWNoZWRQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7
CisgICAgaXRlbS5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOworCisgICAgUkVMRUFTRV9MT0coQmFj
a0ZvcndhcmRDYWNoZSwgIkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZSBpdGVtOiAlcywgc2l6ZTog
JXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VD
b3VudCgpLCBtYXhTaXplKCkpOworCit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUo
UHJ1bmluZ1JlYXNvbiBwcnVuaW5nUmVhc29uKQoreworICAgIHdoaWxlIChwYWdlQ291bnQoKSA+
IG1heFNpemUoKSkgeworICAgICAgICBhdXRvIG9sZGVzdEl0ZW0gPSBtX2l0ZW1zLnRha2VGaXJz
dCgpOworICAgICAgICBvbGRlc3RJdGVtLT5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOworICAgICAg
ICBvbGRlc3RJdGVtLT5tX3BydW5pbmdSZWFzb24gPSBwcnVuaW5nUmVhc29uOworICAgICAgICBS
RUxFQVNFX0xPRyhCYWNrRm9yd2FyZENhY2hlLCAiQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUgcmVt
b3ZpbmcgaXRlbTogJXMsIHNpemU6ICV1IC8gJXUiLCBvbGRlc3RJdGVtLT5pZGVudGlmaWVyKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7CisgICAgfQor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0Zv
cndhcmRDYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNGU2MGZhNDZlZWY2ZjYyNGExNDBmMGUyY2UxY2U0
M2IwM2NlMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ2FjaGUuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSGlz
dG9yeUl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0
SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIENhY2hlZFBhZ2U7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7CisK
K2VudW0gY2xhc3MgUHJ1bmluZ1JlYXNvbiB7IE5vbmUsIFByb2Nlc3NTdXNwZW5kZWQsIE1lbW9y
eVByZXNzdXJlLCBSZWFjaGVkTWF4U2l6ZSB9OworCitjbGFzcyBCYWNrRm9yd2FyZENhY2hlIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCYWNrRm9yd2FyZENhY2hlKTsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhl
IGdsb2JhbCBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEJh
Y2tGb3J3YXJkQ2FjaGUmIHNpbmdsZXRvbigpOworCisgICAgYm9vbCBjYW5DYWNoZShQYWdlJikg
Y29uc3Q7CisKKyAgICAvLyBVc2VkIHdoZW4gbWVtb3J5IGlzIGxvdyB0byBwcnVuZSBzb21lIGNh
Y2hlZCBwYWdlcy4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBydW5lVG9TaXplTm93KHVuc2ln
bmVkIG1heFNpemUsIFBydW5pbmdSZWFzb24pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
TWF4U2l6ZSh1bnNpZ25lZCk7IC8vIG51bWJlciBvZiBwYWdlcyB0byBjYWNoZS4KKyAgICB1bnNp
Z25lZCBtYXhTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhTaXplOyB9CisKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGFkZElmQ2FjaGVhYmxlKEhpc3RvcnlJdGVtJiwgUGFnZSopOyAvLyBQcnVu
ZXMgaWYgbWF4U2l6ZSgpIGlzIGV4Y2VlZGVkLgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlKEhpc3RvcnlJdGVtJik7CisgICAgQ2FjaGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVtJiwgUGFn
ZSopOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJdGVtJiwg
UGFnZSopOworCisgICAgdm9pZCByZW1vdmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYpOworCisgICAg
dW5zaWduZWQgcGFnZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtcy5zaXplKCk7IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBmcmFtZUNvdW50KCkgY29uc3Q7CisKKyAgICB2b2lk
IG1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZChQYWdlJik7CisgICAgdm9pZCBt
YXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFuZ2VkKFBhZ2UmKTsKKyNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCisgICAgdm9pZCBtYXJrUGFnZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7
CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgfkJhY2tG
b3J3YXJkQ2FjaGUoKSA9IGRlbGV0ZTsgLy8gTWFrZSBzdXJlIG5vYm9keSBhY2NpZGVudGFsbHkg
Y2FsbHMgZGVsZXRlIC0tIFdlYkNvcmUgZG9lcyBub3QgZGVsZXRlIHNpbmdsZXRvbnMuCisKKyAg
ICBzdGF0aWMgYm9vbCBjYW5DYWNoZVBhZ2VDb250YWluaW5nVGhpc0ZyYW1lKEZyYW1lJik7CisK
KyAgICB2b2lkIHBydW5lKFBydW5pbmdSZWFzb24pOworICAgIHZvaWQgZHVtcCgpIGNvbnN0Owor
CisgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEhpc3RvcnlJdGVtPj4gbV9pdGVtczsKKyAgICB1bnNp
Z25lZCBtX21heFNpemUgezB9OworCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wgbV9p
c0luUmVtb3ZlQWxsSXRlbXNGb3JQYWdlIHsgZmFsc2UgfTsKKyNlbmRpZgorCisgICAgZnJpZW5k
IGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8QmFja0ZvcndhcmRDYWNoZT47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0Nh
Y2hlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCmlu
ZGV4IDhmMWU0ZGEwMzZhNDJiNGI1ZWY3MGFmNWViZDEzYjAzODZlOGYyN2YuLjg3YWIxNzMxM2Qz
NjJkM2FlZDkwMzU4MTM2YjhjNzMyOTc0NjI5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2Fj
aGVkRnJhbWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkRnJhbWUuaCIKIAorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNp
bmNsdWRlICJDU1NBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRnJhbWVQ
bGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCkBAIC00MSw3ICs0Miw2IEBA
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25EaXNhYmxlci5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5k
ZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCB2b2lkIENhY2hlZEZy
YW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAgIGlmIChtX2RvY3VtZW50LT5zdmdFeHRlbnNpb25z
KCkpCiAgICAgICAgICAgICBtX2RvY3VtZW50LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkudW5wYXVz
ZUFuaW1hdGlvbnMoKTsKIAotICAgICAgICBtX2RvY3VtZW50LT5yZXN1bWUoUmVhc29uRm9yU3Vz
cGVuc2lvbjo6UGFnZUNhY2hlKTsKKyAgICAgICAgbV9kb2N1bWVudC0+cmVzdW1lKFJlYXNvbkZv
clN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgICAgIC8vIEl0IGlzIG5lY2Vz
c2FyeSB0byB1cGRhdGUgYW55IHBsYXRmb3JtIHNjcmlwdCBvYmplY3RzIGFmdGVyIHJlc3Rvcmlu
ZyB0aGUKICAgICAgICAgLy8gY2FjaGVkIHBhZ2UuCiAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS51
cGRhdGVQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKIAotICAgICAgICBmcmFtZS0+bG9hZGVyKCku
Y2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICAgICAgZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgICAg
IHBydW5lRGV0YWNoZWRDaGlsZEZyYW1lcygpOwogCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBD
YWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogICAgIH0KICNlbmRpZgogCi0gICAgZnJhbWUtPnZp
ZXcoKS0+ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICBmcmFtZS0+dmlldygpLT5kaWRS
ZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKTsKIH0KIAogQ2FjaGVkRnJhbWU6OkNhY2hlZEZy
YW1lKEZyYW1lJiBmcmFtZSkKQEAgLTE1MCw3ICsxNTAsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVk
RnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQo
bV9kb2N1bWVudExvYWRlcik7CiAgICAgQVNTRVJUKG1fdmlldyk7Ci0gICAgQVNTRVJUKG1fZG9j
dW1lbnQtPnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKTsKKyAgICBB
U1NFUlQobV9kb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Oklu
QmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBSRUxFQVNFX0FTU0VSVChtX2RvY3VtZW50LT5kb21X
aW5kb3coKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9kb2N1bWVudC0+ZnJhbWUoKSk7CkBAIC0x
NjksMTQgKzE2OSwxNCBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQog
ICAgIFJFTEVBU0VfQVNTRVJUKG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5mcmFtZSgpKTsKIAog
ICAgIC8vIEFjdGl2ZSBET00gb2JqZWN0cyBtdXN0IGJlIHN1c3BlbmRlZCBiZWZvcmUgd2UgY2Fj
aGUgdGhlIGZyYW1lIHNjcmlwdCBkYXRhLgotICAgIG1fZG9jdW1lbnQtPnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKTsKKyAgICBtX2RvY3VtZW50LT5zdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgbV9jYWNoZWRGcmFtZVNj
cmlwdERhdGEgPSBtYWtlVW5pcXVlPFNjcmlwdENhY2hlZEZyYW1lRGF0YT4oZnJhbWUpOwogCi0g
ICAgbV9kb2N1bWVudC0+ZG9tV2luZG93KCktPnN1c3BlbmRGb3JQYWdlQ2FjaGUoKTsKKyAgICBt
X2RvY3VtZW50LT5kb21XaW5kb3coKS0+c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKIAog
ICAgIC8vIENsZWFyIEZyYW1lVmlldyB0byByZXNldCBmbGFncyBzdWNoIGFzICdmaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRDYWxsYmFja1BlbmRpbmcnIHNvIHRoYXQgdGhlCi0gICAgLy8gJ0Rp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCcgY2FsbGJhY2sgZ2V0cyBjYWxsZWQgYWdhaW5z
dCB3aGVuIHJlc3RvcmluZyBmcm9tIFBhZ2VDYWNoZS4KKyAgICAvLyAnRGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0JyBjYWxsYmFjayBnZXRzIGNhbGxlZCBhZ2FpbnN0IHdoZW4gcmVzdG9y
aW5nIGZyb20gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgbV92aWV3LT5yZXNldExheW91dE1p
bGVzdG9uZXMoKTsKIAogICAgIC8vIFRoZSBtYWluIGZyYW1lIGlzIHJldXNlZCBmb3IgdGhlIG5h
dmlnYXRpb24gYW5kIHRoZSBvcGVuZXIgbGluayB0byBpdHMgc2hvdWxkIHRodXMgcGVyc2lzdC4K
QEAgLTE4NSwxMyArMTg1LDEzIEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJh
bWUpCiAKICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zYXZlUGxhdGZvcm1EYXRhVG9DYWNo
ZWRGcmFtZSh0aGlzKTsKIAotICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUo
KSBjYW4gc2V0IHVwIGEgbGF5b3V0IHRpbWVyIG9uIHRoZSBGcmFtZVZpZXcsIHNvIGNsZWFyIHRp
bWVycyBhZnRlciB0aGF0LgorICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JCYWNrRm9yd2Fy
ZENhY2hlKCkgY2FuIHNldCB1cCBhIGxheW91dCB0aW1lciBvbiB0aGUgRnJhbWVWaWV3LCBzbyBj
bGVhciB0aW1lcnMgYWZ0ZXIgdGhhdC4KICAgICBmcmFtZS5jbGVhclRpbWVycygpOwogCiAgICAg
Ly8gRGVjb25zdHJ1Y3QgdGhlIEZyYW1lVHJlZSwgdG8gcmVzdG9yZSBpdCBsYXRlci4KICAgICAv
LyBXZSBkbyB0aGlzIGZvciB0d28gcmVhc29uczoKICAgICAvLyAxIC0gV2UgcmV1c2UgdGhlIG1h
aW4gZnJhbWUsIHNvIHdoZW4gaXQgbmF2aWdhdGVzIHRvIGEgbmV3IHBhZ2UgbG9hZCBpdCBuZWVk
cyB0byBzdGFydCB3aXRoIGEgYmxhbmsgRnJhbWVUcmVlLgotICAgIC8vIDIgLSBJdCdzIG11Y2gg
ZWFzaWVyIHRvIGRlc3Ryb3kgYSBDYWNoZWRGcmFtZSB3aGlsZSBpdCByZXNpZGVzIGluIHRoZSBQ
YWdlQ2FjaGUgaWYgaXQgaXMgZGlzY29ubmVjdGVkIGZyb20gaXRzIHBhcmVudC4KKyAgICAvLyAy
IC0gSXQncyBtdWNoIGVhc2llciB0byBkZXN0cm95IGEgQ2FjaGVkRnJhbWUgd2hpbGUgaXQgcmVz
aWRlcyBpbiB0aGUgQmFja0ZvcndhcmRDYWNoZSBpZiBpdCBpcyBkaXNjb25uZWN0ZWQgZnJvbSBp
dHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNp
emUoKTsgKytpKQogICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQobV9jaGlsZEZyYW1l
c1tpXS0+dmlldygpLT5mcmFtZSgpKTsKIApAQCAtMjM1LDExICsyMzUsMTEgQEAgdm9pZCBDYWNo
ZWRGcmFtZTo6Y2xlYXIoKQogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gY2xlYXIoKSBzaG91bGQgb25seSBiZSBjYWxsZWQgZm9yIEZyYW1lcyByZXByZXNl
bnRpbmcgZG9jdW1lbnRzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgcGFnZSBjYWNoZS4KKyAg
ICAvLyBjbGVhcigpIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmb3IgRnJhbWVzIHJlcHJlc2VudGlu
ZyBkb2N1bWVudHMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUu
CiAgICAgLy8gVGhpcyBtZWFucyB0aGUgQ2FjaGVkRnJhbWUgaGFzIGJlZW46CiAgICAgLy8gMSAt
IFN1Y2Nlc3NmdWxseSByZXN0b3JlKCknZCBieSBnb2luZyBiYWNrL2ZvcndhcmQuCi0gICAgLy8g
MiAtIGRlc3Ryb3koKSdlZCBiZWNhdXNlIHRoZSBQYWdlQ2FjaGUgaXMgcHJ1bmluZyBvciB0aGUg
V2ViVmlldyB3YXMgY2xvc2VkLgotICAgIEFTU0VSVChtX2RvY3VtZW50LT5wYWdlQ2FjaGVTdGF0
ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgLy8gMiAtIGRlc3Ryb3koKSdl
ZCBiZWNhdXNlIHRoZSBCYWNrRm9yd2FyZENhY2hlIGlzIHBydW5pbmcgb3IgdGhlIFdlYlZpZXcg
d2FzIGNsb3NlZC4KKyAgICBBU1NFUlQobV9kb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRl
KCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgQVNTRVJUKG1fdmll
dyk7CiAgICAgQVNTRVJUKCFtX2RvY3VtZW50LT5mcmFtZSgpIHx8IG1fZG9jdW1lbnQtPmZyYW1l
KCkgPT0gJm1fdmlldy0+ZnJhbWUoKSk7CiAKQEAgLTI1OSw4ICsyNTksOCBAQCB2b2lkIENhY2hl
ZEZyYW1lOjpkZXN0cm95KCkKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICAvLyBPbmx5IENhY2hlZEZyYW1lcyB0aGF0IGFyZSBzdGlsbCBpbiB0aGUgUGFn
ZUNhY2hlIHNob3VsZCBiZSBkZXN0cm95ZWQgaW4gdGhpcyBtYW5uZXIKLSAgICBBU1NFUlQobV9k
b2N1bWVudC0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAg
IC8vIE9ubHkgQ2FjaGVkRnJhbWVzIHRoYXQgYXJlIHN0aWxsIGluIHRoZSBCYWNrRm9yd2FyZENh
Y2hlIHNob3VsZCBiZSBkZXN0cm95ZWQgaW4gdGhpcyBtYW5uZXIKKyAgICBBU1NFUlQobV9kb2N1
bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRD
YWNoZSk7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQVNTRVJUKCFtX2RvY3VtZW50LT5mcmFt
ZSgpKTsKIApAQCAtMjgxLDExICsyODEsMTEgQEAgdm9pZCBDYWNoZWRGcmFtZTo6ZGVzdHJveSgp
CiAKICAgICBtX3ZpZXctPmZyYW1lKCkuYW5pbWF0aW9uKCkuZGV0YWNoRnJvbURvY3VtZW50KG1f
ZG9jdW1lbnQuZ2V0KCkpOwogCi0gICAgLy8gRklYTUU6IFdoeSBkbyB3ZSBuZWVkIHRvIGNhbGwg
cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMgaGVyZT8gV2hlbiB0aGUgZG9jdW1lbnQgaXMgaW4gcGFn
ZSBjYWNoZSwgdGhpcyBtZXRob2Qgd29uJ3Qgd29yaworICAgIC8vIEZJWE1FOiBXaHkgZG8gd2Ug
bmVlZCB0byBjYWxsIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzIGhlcmU/IFdoZW4gdGhlIGRvY3Vt
ZW50IGlzIGluIGJhY2svZm9yd2FyZCBjYWNoZSwgdGhpcyBtZXRob2Qgd29uJ3Qgd29yawogICAg
IC8vIGZ1bGx5IGFueXdheSwgYmVjYXVzZSB0aGUgZG9jdW1lbnQgd29uJ3QgYmUgYWJsZSB0byBh
Y2Nlc3MgaXRzIERPTVdpbmRvdyBvYmplY3QgKGR1ZSB0byBiZWluZyBmcmFtZWxlc3MpLgogICAg
IG1fZG9jdW1lbnQtPnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKLSAgICBtX2RvY3VtZW50
LT5zZXRQYWdlQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgIG1fZG9j
dW1lbnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2Fy
ZENhY2hlKTsKICAgICBtX2RvY3VtZW50LT5wcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAg
IGNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1l
UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZv
cm1EYXRhLmgKaW5kZXggZjk3M2JhNjRjZDQ2NTE4ZGRmY2JkZDY5NDljMzc3YzhkMWY5ZjM1My4u
ZWE4YzI2MTg3NDhkMWMwMzhhYzU3NGU5YjFkMzMwNWZmNWZiN2NmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZVBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEuaApAQCAtMzEsNyArMzEs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNz
IGlzIHRvIGdpdmUgZWFjaCBwbGF0Zm9ybSBhIHZlc3NlbCB0byBzdG9yZSBwbGF0Zm9ybSBkYXRh
IHdoZW4gYSBwYWdlCi0vLyBnb2VzIGludG8gdGhlIEJhY2svRm9yd2FyZCBwYWdlIGNhY2hlLCBh
bmQgcGVyZm9ybSBzb21lIGFjdGlvbiB3aXRoIHRoYXQgZGF0YSB3aGVuIHRoZSBwYWdlIGNvbWVz
IG91dC4gIAorLy8gZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGFuZCBwZXJmb3Jt
IHNvbWUgYWN0aW9uIHdpdGggdGhhdCBkYXRhIHdoZW4gdGhlIHBhZ2UgY29tZXMgb3V0LgogLy8g
RWFjaCBwbGF0Zm9ybSBzaG91bGQgc3ViY2xhc3MgdGhpcyBjbGFzcyBhcyBuZWNjZXNzYXJ5CiAK
IGNsYXNzIENhY2hlZEZyYW1lUGxhdGZvcm1EYXRhIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0
b3J5SXRlbS5jcHAKaW5kZXggYTc5MjM0ZGIyYWRiZGVhZmI2NjBkMzdlMjc0NTIyMWY0YmVkZTdl
NC4uZDUzNzdhYjBmN2NjMWYzZTQ3MTk3NWMyMDgwMGJlZTExODUyMTJlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKQEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAKKyNpbmNsdWRlICJCYWNrRm9y
d2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUGFnZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiS2V5ZWRDb2RpbmcuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTE3NCw5ICsxNzQsOSBAQCBib29s
IEhpc3RvcnlJdGVtOjpoYXNDYWNoZWRQYWdlRXhwaXJlZCgpIGNvbnN0CiAKIHZvaWQgSGlzdG9y
eUl0ZW06OnNldENhY2hlZFBhZ2Uoc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+JiYgY2FjaGVk
UGFnZSkKIHsKLSAgICBib29sIHdhc0luUGFnZUNhY2hlID0gaXNJblBhZ2VDYWNoZSgpOworICAg
IGJvb2wgd2FzSW5CYWNrRm9yd2FyZENhY2hlID0gaXNJbkJhY2tGb3J3YXJkQ2FjaGUoKTsKICAg
ICBtX2NhY2hlZFBhZ2UgPSBXVEZNb3ZlKGNhY2hlZFBhZ2UpOwotICAgIGlmICh3YXNJblBhZ2VD
YWNoZSAhPSBpc0luUGFnZUNhY2hlKCkpCisgICAgaWYgKHdhc0luQmFja0ZvcndhcmRDYWNoZSAh
PSBpc0luQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICBub3RpZnlDaGFuZ2VkKCk7CiB9CiAK
QEAgLTIyMiw3ICsyMjIsNyBAQCB2b2lkIEhpc3RvcnlJdGVtOjpzZXRVUkxTdHJpbmcoY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpCiAKIHZvaWQgSGlzdG9yeUl0ZW06OnNldFVSTChjb25zdCBVUkwm
IHVybCkKIHsKLSAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZSgqdGhpcyk7CisgICAg
QmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKCp0aGlzKTsKICAgICBzZXRVUkxT
dHJpbmcodXJsLnN0cmluZygpKTsKICAgICBjbGVhckRvY3VtZW50U3RhdGUoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCBmODU1MDhmMTIzZGFlMmNkZjliZmJkNTAz
ZmVlZTNlOTE2NDc5NDliLi41MmNhYjgzNDQwMzQ5NDczNzRhYjBhZDA0MmUyNzRkOGQyMjc4NWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC01OSw3ICs1OSw3IEBAIGVu
dW0gY2xhc3MgUHJ1bmluZ1JlYXNvbjsKIFdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkICgqbm90
aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKShIaXN0b3J5SXRlbSYpOwogCiBjbGFzcyBIaXN0b3J5SXRl
bSA6IHB1YmxpYyBSZWZDb3VudGVkPEhpc3RvcnlJdGVtPiB7Ci0gICAgZnJpZW5kIGNsYXNzIFBh
Z2VDYWNoZTsKKyAgICBmcmllbmQgY2xhc3MgQmFja0ZvcndhcmRDYWNoZTsKIAogcHVibGljOiAK
ICAgICBzdGF0aWMgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGUoKQpAQCAtOTUsNyArOTUsNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3Q7CiAgICAg
Ci0gICAgYm9vbCBpc0luUGFnZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRQYWdlLmdl
dCgpOyB9CisgICAgYm9vbCBpc0luQmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FjaGVkUGFnZS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzQ2FjaGVkUGFn
ZUV4cGlyZWQoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWx0ZXJuYXRl
VGl0bGUoY29uc3QgU3RyaW5nJik7CkBAIC0yNjYsNyArMjY2LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8Rm9ybURhdGE+IG1fZm9ybURhdGE7CiAgICAgU3RyaW5nIG1fZm9ybUNvbnRlbnRUeXBl
OwogCi0gICAgLy8gUGFnZUNhY2hlIGNvbnRyb2xzIHRoZXNlIGZpZWxkcy4KKyAgICAvLyBCYWNr
Rm9yd2FyZENhY2hlIGNvbnRyb2xzIHRoZXNlIGZpZWxkcy4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q2FjaGVkUGFnZT4gbV9jYWNoZWRQYWdlOwogICAgIFBydW5pbmdSZWFzb24gbV9wcnVuaW5nUmVh
c29uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNkMWYzODIxMGZmY2EzMTUzMThlNzE3ZDYwNTQwNTVhNmM1MGJmMjQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTU2ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgotCi0jaW5jbHVk
ZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKLSNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xs
ZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0j
aW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgi
Ci0jaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKLSNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNs
dWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1
ZGUgIkhpc3RvcnlDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxv
YWRDb3VudEluY3JlbWVudGVyLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBh
Z2UuaCIKLSNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKLSNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCi0jaW5jbHVkZSA8cGFsL0xvZ2dp
bmcuaD4KLSNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2RlZmluZSBQQ0xPRyguLi4pIExP
RyhCYWNrRm9yd2FyZENhY2hlLCAiJSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmlu
ZyhfX1ZBX0FSR1NfXykudXRmOCgpLmRhdGEoKSkKLQotc3RhdGljIGlubGluZSB2b2lkIGxvZ1Bh
Z2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYg
Y2xpZW50LCBjb25zdCBTdHJpbmcmIHJlYXNvbikKLXsKLSAgICBjbGllbnQubG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVGYWlsdXJlS2V5KCksIHJl
YXNvbiwgU2hvdWxkU2FtcGxlOjpObyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBsb2dQYWdl
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBy
ZWFzb24pCi17Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBsb2dQYWdl
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQoKSwgcmVhc29uKTsKLX0KLQotc3RhdGljIGJvb2wgY2FuQ2FjaGVGcmFtZShGcmFtZSYgZnJh
bWUsIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgdW5z
aWduZWQgaW5kZW50TGV2ZWwpCi17Ci0gICAgUENMT0coIistLS0iKTsKLSAgICBGcmFtZUxvYWRl
ciYgZnJhbWVMb2FkZXIgPSBmcmFtZS5sb2FkZXIoKTsKLQotICAgIC8vIFByZXZlbnQgcGFnZSBj
YWNoaW5nIGlmIGEgc3ViZnJhbWUgaXMgc3RpbGwgaW4gcHJvdmlzaW9uYWwgbG9hZCBzdGFnZS4K
LSAgICAvLyBXZSBvbmx5IGRvIHRoaXMgY2hlY2sgZm9yIHN1YmZyYW1lcyBiZWNhdXNlIHRoZSBt
YWluIGZyYW1lIGlzIHJldXNlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS4KLSAgICBp
ZiAoIWZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgZnJhbWVMb2FkZXIuc3RhdGUoKSA9PSBGcmFtZVN0
YXRlUHJvdmlzaW9uYWwpIHsKLSAgICAgICAgUENMT0coIiAgIC1GcmFtZSBpcyBpbiBwcm92aXNp
b25hbCBsb2FkIHN0YWdlIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpw
cm92aXNpb25hbExvYWRLZXkoKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAg
ICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSAmJiBmcmFtZUxvYWRlci5zdGF0ZU1hY2hpbmUoKS5p
c0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAt
TWFpbkZyYW1lIGlzIGRpc3BsYXlpbmcgaW5pdGlhbCBlbXB0eSBkb2N1bWVudCIpOwotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKCFmcmFtZS5kb2N1bWVudCgpKSB7Ci0g
ICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaGFzIG5vIGRvY3VtZW50Iik7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoIWZyYW1lLmRvY3VtZW50KCktPmZyYW1lKCkpIHsK
LSAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudCBpcyBkZXRhY2hlZCBmcm9tIGZyYW1lIik7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotCi0gICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWVMb2FkZXIuZG9j
dW1lbnRMb2FkZXIoKTsKLSAgICBpZiAoIWRvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAgIFBDTE9H
KCIgICAtVGhlcmUgaXMgbm8gRG9jdW1lbnRMb2FkZXIgb2JqZWN0Iik7Ci0gICAgICAgIGxvZ1Bh
Z2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0RvY3VtZW50TG9hZGVyS2V5KCkpOwotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgVVJMIGN1cnJlbnRVUkwgPSBkb2N1bWVudExvYWRl
ci0+dXJsKCk7Ci0gICAgVVJMIG5ld1VSTCA9IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIoKSA/IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+dXJs
KCkgOiBVUkwoKTsKLSAgICBpZiAoIW5ld1VSTC5pc0VtcHR5KCkpCi0gICAgICAgIFBDTE9HKCIg
RGV0ZXJtaW5pbmcgaWYgZnJhbWUgY2FuIGJlIGNhY2hlZCBuYXZpZ2F0aW5nIGZyb20gKCIsIGN1
cnJlbnRVUkwuc3RyaW5nKCksICIpIHRvICgiLCBuZXdVUkwuc3RyaW5nKCksICIpOiIpOwotICAg
IGVsc2UKLSAgICAgICAgUENMT0coIiBEZXRlcm1pbmluZyBpZiBzdWJmcmFtZSB3aXRoIFVSTCAo
IiwgY3VycmVudFVSTC5zdHJpbmcoKSwgIikgY2FuIGJlIGNhY2hlZDoiKTsKLSAgICAgCi0gICAg
Ym9vbCBpc0NhY2hlYWJsZSA9IHRydWU7Ci0gICAgLy8gRG8gbm90IGNhY2hlIGVycm9yIHBhZ2Vz
ICh0aGVzZSBjYW4gYmUgcmVjb2duaXplZCBhcyBwYWdlcyB3aXRoIHN1YnN0aXR1dGUgZGF0YSBv
ciB1bnJlYWNoYWJsZSBVUkxzKS4KLSAgICBpZiAoZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVE
YXRhKCkuaXNWYWxpZCgpICYmICFkb2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5mYWls
aW5nVVJMKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgYW4gZXJy
b3IgcGFnZSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2Uo
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNFcnJvclBh
Z2VLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChm
cmFtZUxvYWRlci5zdWJmcmFtZUxvYWRlcigpLmNvbnRhaW5zUGx1Z2lucygpICYmICFmcmFtZS5w
YWdlKCktPnNldHRpbmdzKCkucGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKCkpIHsKLSAgICAgICAg
UENMT0coIiAgIC1GcmFtZSBjb250YWlucyBwbHVnaW5zIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNo
ZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpoYXNQbHVnaW5zS2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9
IGZhbHNlOwotICAgIH0KLSAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSAmJiAhZnJhbWVMb2Fk
ZXIuaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1NYWluIGZy
YW1lIGhhcyBubyBjdXJyZW50IGhpc3RvcnkgaXRlbSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVG
YWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6bm9DdXJyZW50SGlzdG9yeUl0ZW1LZXkoKSk7Ci0gICAgICAgIGlzQ2Fj
aGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChmcmFtZUxvYWRlci5xdWlja1JlZGlyZWN0
Q29taW5nKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1RdWljayByZWRpcmVjdCBpcyBjb21pbmci
KTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnF1aXJrUmVkaXJlY3RDb21p
bmdLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChk
b2N1bWVudExvYWRlci0+aXNMb2FkaW5nKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVu
dExvYWRlciBpcyBzdGlsbCBsb2FkaW5nIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjppc0xvYWRpbmdLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0g
ICAgfQotICAgIGlmIChkb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpKSB7Ci0gICAgICAgIFBD
TE9HKCIgICAtRG9jdW1lbnRMb2FkZXIgaXMgaW4gdGhlIG1pZGRsZSBvZiBzdG9wcGluZyIpOwot
ICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZG9jdW1lbnRMb2FkZXJTdG9wcGlu
Z0tleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBWZWN0
b3I8QWN0aXZlRE9NT2JqZWN0Kj4gdW5zdXNwZW5kYWJsZU9iamVjdHM7Ci0gICAgaWYgKGZyYW1l
LmRvY3VtZW50KCkgJiYgIWZyYW1lLmRvY3VtZW50KCktPmNhblN1c3BlbmRBY3RpdmVET01PYmpl
Y3RzRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCZ1bnN1c3BlbmRhYmxlT2JqZWN0cykpIHsKLSAgICAg
ICAgUENMT0coIiAgIC1UaGUgZG9jdW1lbnQgY2Fubm90IHN1c3BlbmQgaXRzIGFjdGl2ZSBET00g
T2JqZWN0cyIpOwotICAgICAgICBmb3IgKGF1dG8qIGFjdGl2ZURPTU9iamVjdCA6IHVuc3VzcGVu
ZGFibGVPYmplY3RzKSB7Ci0gICAgICAgICAgICBQQ0xPRygiICAgIC0gVW5zdXNwZW5kYWJsZTog
IiwgYWN0aXZlRE9NT2JqZWN0LT5hY3RpdmVET01PYmplY3ROYW1lKCkpOwotICAgICAgICAgICAg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjp1bnN1c3BlbmRhYmxlRE9NT2JqZWN0S2V5KCksIGFjdGl2ZURPTU9iamVjdC0+
YWN0aXZlRE9NT2JqZWN0TmFtZSgpLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICAgICAgICAgIFVO
VVNFRF9QQVJBTShhY3RpdmVET01PYmplY3QpOwotICAgICAgICB9Ci0gICAgICAgIGxvZ1BhZ2VD
YWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tleSgpKTsK
LSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIGludmVzdGlnYXRpbmcgY2FjaGluZyBmcmFtZXMgdGhhdCBoYXZlIGFuIGFzc29jaWF0
ZWQKLSAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9ibGVtLzU5MTc4OTk+IHRy
YWNrcyB0aGF0IHdvcmsuCi0gICAgaWYgKCFkb2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNo
ZUhvc3QoKS5jYW5DYWNoZUluUGFnZUNhY2hlKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1UaGUg
RG9jdW1lbnRMb2FkZXIgdXNlcyBhbiBhcHBsaWNhdGlvbiBjYWNoZSIpOwotICAgICAgICBsb2dQ
YWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YXBwbGljYXRpb25DYWNoZUtleSgpKTsKLSAgICAgICAg
aXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKCFmcmFtZUxvYWRlci5jbGllbnQo
KS5jYW5DYWNoZVBhZ2UoKSkgewotICAgICAgICBQQ0xPRygiICAgLVRoZSBjbGllbnQgc2F5cyB0
aGlzIGZyYW1lIGNhbm5vdCBiZSBjYWNoZWQiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OmRlbmllZEJ5Q2xpZW50S2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZh
bHNlOwotICAgIH0KLQotICAgIGZvciAoRnJhbWUqIGNoaWxkID0gZnJhbWUudHJlZSgpLmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7Ci0g
ICAgICAgIGlmICghY2FuQ2FjaGVGcmFtZSgqY2hpbGQsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LCBpbmRlbnRMZXZlbCArIDEpKQotICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAg
ICB9Ci0gICAgCi0gICAgUENMT0coaXNDYWNoZWFibGUgPyAiIEZyYW1lIENBTiBiZSBjYWNoZWQi
IDogIiBGcmFtZSBDQU5OT1QgYmUgY2FjaGVkIik7Ci0gICAgUENMT0coIistLS0iKTsKLSAgICAK
LSAgICByZXR1cm4gaXNDYWNoZWFibGU7Ci19Ci0KLXN0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQ
YWdlJiBwYWdlKQotewotICAgIFJFTEVBU0VfQVNTRVJUKCFwYWdlLmlzUmVzdG9yaW5nQ2FjaGVk
UGFnZSgpKTsKLQotICAgIHVuc2lnbmVkIGluZGVudExldmVsID0gMDsKLSAgICBQQ0xPRygiLS0t
LS0tLS1cbiBEZXRlcm1pbmluZyBpZiBwYWdlIGNhbiBiZSBjYWNoZWQ6Iik7Ci0KLSAgICBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCk7Ci0gICAgYm9vbCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJh
bWUocGFnZS5tYWluRnJhbWUoKSwgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVs
ICsgMSk7Ci0KLSAgICBpZiAoIXBhZ2Uuc2V0dGluZ3MoKS51c2VzUGFnZUNhY2hlKCkgfHwgcGFn
ZS5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkQnlXZWJJbnNwZWN0b3IoKSkgewotICAgICAgICBQ
Q0xPRygiICAgLVBhZ2Ugc2V0dGluZ3Mgc2F5cyBiL2YgY2FjaGUgZGlzYWJsZWQiKTsKLSAgICAg
ICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmlzRGlzYWJsZWRLZXkoKSk7Ci0gICAgICAg
IGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9s
bGVyOjppc0FjdGl2ZUF0KCZwYWdlKSkgewotICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNp
bmcgRGV2aWNlTW90aW9uIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpk
ZXZpY2VNb3Rpb25LZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQot
ICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7
Ci0gICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOwot
ICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZGV2aWNlT3JpZW50YXRpb25LZXko
KSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBG
cmFtZUxvYWRUeXBlIGxvYWRUeXBlID0gcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkVHlw
ZSgpOwotICAgIHN3aXRjaCAobG9hZFR5cGUpIHsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJl
bG9hZDoKLSAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxv
YWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUg
dGhhdCBwYWdlLgotICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkIik7Ci0g
ICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZWxvYWRLZXkoKSk7Ci0gICAgICAg
IGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRnJhbWVMb2Fk
VHlwZTo6U2FtZTogLy8gdXNlciBsb2FkcyBzYW1lIFVSTCBhZ2FpbiAoYnV0IG5vdCByZWxvYWQg
YnV0dG9uKQotICAgICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHNh
bWUgbG9hZCwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRlIG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBs
ZWF2ZSB0aGF0IHBhZ2UuCi0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBTYW1lIik7
Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzYW1lTG9hZEtleSgpKTsKLSAg
ICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBGcmFt
ZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q6Ci0gICAgICAgIC8v
IERvbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUgbWlkZGxlIG9mIGEgcmVkaXJlY3Qs
IHNpbmNlIHdlIHdpbGwgd2FudCB0byBzdG9yZSB0aGUgZmluYWwgcGFnZSB3ZSBlbmQgdXAgb24u
Ci0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWRpcmVjdFdpdGhMb2NrZWRCYWNr
Rm9yd2FyZExpc3QiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNz
YWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlZGly
ZWN0S2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlcGxhY2U6Ci0gICAgICAgIC8vIE5vIHBvaW50IHdy
aXRpbmcgdG8gdGhlIGNhY2hlIG9uIGEgcmVwbGFjZSwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRl
IG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0IHBhZ2UuCi0gICAgICAgIFBDTE9HKCIg
ICAtTG9hZCB0eXBlIGlzOiBSZXBsYWNlIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpyZXBsYWNlS2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW46IHsK
LSAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNp
bmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBw
YWdlLgotICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkRnJvbU9yaWdpbiIp
OwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkRnJvbU9yaWdpbktl
eSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6UmVsb2FkRXhwaXJlZE9ubHk6IHsKLSAgICAgICAg
Ly8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdp
bGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgotICAg
ICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZCIp
OwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkUmV2YWxpZGF0aW5n
RXhwaXJlZEtleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQ6Ci0gICAgY2FzZSBG
cmFtZUxvYWRUeXBlOjpCYWNrOgotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZDoKLSAg
ICBjYXNlIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZDogLy8gYSBtdWx0aS1pdGVt
IGhvcCBpbiB0aGUgYmFja2ZvcndhcmQgbGlzdAotICAgICAgICAvLyBDYWNoZWFibGUuCi0gICAg
ICAgIGJyZWFrOwotICAgIH0KLSAgICAKLSAgICBpZiAoaXNDYWNoZWFibGUpCi0gICAgICAgIFBD
TE9HKCIgUGFnZSBDQU4gYmUgY2FjaGVkXG4tLS0tLS0tLSIpOwotICAgIGVsc2UKLSAgICAgICAg
UENMT0coIiBQYWdlIENBTk5PVCBiZSBjYWNoZWRcbi0tLS0tLS0tIik7Ci0KLSAgICBkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5D
YWNoZUtleSgpLCBpc0NhY2hlYWJsZSA/IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcyA6IERp
YWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgcmV0dXJu
IGlzQ2FjaGVhYmxlOwotfQotCi1QYWdlQ2FjaGUmIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkKLXsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGFnZUNhY2hlPiBnbG9iYWxQYWdlQ2FjaGU7Ci0g
ICAgcmV0dXJuIGdsb2JhbFBhZ2VDYWNoZTsKLX0KLQotUGFnZUNhY2hlOjpQYWdlQ2FjaGUoKQot
ewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlRmxhZywgW10gewotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNv
bS5hcHBsZS5XZWJLaXQuc2hvd1BhZ2VDYWNoZSIsIFtdIHsKLSAgICAgICAgICAgIFBhZ2VDYWNo
ZTo6c2luZ2xldG9uKCkuZHVtcCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQotdm9pZCBQ
YWdlQ2FjaGU6OmR1bXAoKSBjb25zdAotewotICAgIFdURkxvZ0Fsd2F5cygiXG5QYWdlIENhY2hl
OiIpOwotICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKLSAgICAgICAgQ2FjaGVkUGFn
ZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7Ci0gICAgICAgIFdURkxvZ0Fsd2F5
cygiICBQYWdlICVwLCBkb2N1bWVudCAlcCAlcyIsICZjYWNoZWRQYWdlLnBhZ2UoKSwgY2FjaGVk
UGFnZS5kb2N1bWVudCgpLCBjYWNoZWRQYWdlLmRvY3VtZW50KCkgPyBjYWNoZWRQYWdlLmRvY3Vt
ZW50KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7Ci0gICAgfQotfQotCi1i
b29sIFBhZ2VDYWNoZTo6Y2FuQ2FjaGUoUGFnZSYgcGFnZSkgY29uc3QKLXsKLSAgICBpZiAoIW1f
bWF4U2l6ZSkgewotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2Uo
JnBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNEaXNhYmxlZEtleSgpKTsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmIChNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNp
bmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7Ci0gICAgICAgIGxvZ1BhZ2VDYWNo
ZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1
bmRlck1lbW9yeVByZXNzdXJlS2V5KCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
ICAgIAotICAgIHJldHVybiBjYW5DYWNoZVBhZ2UocGFnZSk7Ci19Ci0KLXZvaWQgUGFnZUNhY2hl
OjpwcnVuZVRvU2l6ZU5vdyh1bnNpZ25lZCBzaXplLCBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFz
b24pCi17Ci0gICAgU2V0Rm9yU2NvcGU8dW5zaWduZWQ+IGNoYW5nZShtX21heFNpemUsIHNpemUp
OwotICAgIHBydW5lKHBydW5pbmdSZWFzb24pOwotfQotCi12b2lkIFBhZ2VDYWNoZTo6c2V0TWF4
U2l6ZSh1bnNpZ25lZCBtYXhTaXplKQotewotICAgIG1fbWF4U2l6ZSA9IG1heFNpemU7Ci0gICAg
cHJ1bmUoUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7Ci19Ci0KLXVuc2lnbmVkIFBhZ2VDYWNoZTo6ZnJh
bWVDb3VudCgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMuc2l6
ZSgpOwotICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKLSAgICAgICAgQVNTRVJUKGl0
ZW0tPm1fY2FjaGVkUGFnZSk7Ci0gICAgICAgIGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNoZWRQ
YWdlLT5jYWNoZWRNYWluRnJhbWUoKS0+ZGVzY2VuZGFudEZyYW1lQ291bnQoKTsKLSAgICB9Ci0g
ICAgCi0gICAgcmV0dXJuIGZyYW1lQ291bnQ7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjptYXJrUGFn
ZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoUGFnZSYgcGFnZSkKLXsKLSAgICBmb3IgKGF1
dG8mIGl0ZW0gOiBtX2l0ZW1zKSB7Ci0gICAgICAgIENhY2hlZFBhZ2UmIGNhY2hlZFBhZ2UgPSAq
aXRlbS0+bV9jYWNoZWRQYWdlOwotICAgICAgICBpZiAoJnBhZ2UubWFpbkZyYW1lKCkgPT0gJmNh
Y2hlZFBhZ2UuY2FjaGVkTWFpbkZyYW1lKCktPnZpZXcoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAg
IGNhY2hlZFBhZ2UubWFya0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCgpOwotICAgIH0KLX0K
LQotdm9pZCBQYWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckNvbnRlbnRzU2l6ZUNoYW5nZWQoUGFnZSYg
cGFnZSkKLXsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2l0ZW1zKSB7Ci0gICAgICAgIENhY2hl
ZFBhZ2UmIGNhY2hlZFBhZ2UgPSAqaXRlbS0+bV9jYWNoZWRQYWdlOwotICAgICAgICBpZiAoJnBh
Z2UubWFpbkZyYW1lKCkgPT0gJmNhY2hlZFBhZ2UuY2FjaGVkTWFpbkZyYW1lKCktPnZpZXcoKS0+
ZnJhbWUoKSkKLSAgICAgICAgICAgIGNhY2hlZFBhZ2UubWFya0ZvckNvbnRlbnRzU2l6ZUNoYW5n
ZWQoKTsKLSAgICB9Ci19Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi12b2lkIFBhZ2VDYWNo
ZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCi17Ci0gICAgZm9yIChh
dXRvJiBpdGVtIDogbV9pdGVtcykgewotICAgICAgICBBU1NFUlQoaXRlbS0+bV9jYWNoZWRQYWdl
KTsKLSAgICAgICAgaXRlbS0+bV9jYWNoZWRQYWdlLT5tYXJrRm9yQ2FwdGlvblByZWZlcmVuY2Vz
Q2hhbmdlZCgpOwotICAgIH0KLX0KLSNlbmRpZgotCi1zdGF0aWMgU3RyaW5nIHBydW5pbmdSZWFz
b25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KFBydW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKLXsK
LSAgICBzd2l0Y2ggKHBydW5pbmdSZWFzb24pIHsKLSAgICBjYXNlIFBydW5pbmdSZWFzb246Ok1l
bW9yeVByZXNzdXJlOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVu
ZWREdWVUb01lbW9yeVByZXNzdXJlS2V5KCk7Ci0gICAgY2FzZSBQcnVuaW5nUmVhc29uOjpQcm9j
ZXNzU3VzcGVuZGVkOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVu
ZWREdWVUb1Byb2Nlc3NTdXNwZW5kZWQoKTsKLSAgICBjYXNlIFBydW5pbmdSZWFzb246OlJlYWNo
ZWRNYXhTaXplOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWRE
dWVUb01heFNpemVSZWFjaGVkKCk7Ci0gICAgY2FzZSBQcnVuaW5nUmVhc29uOjpOb25lOgotICAg
ICAgICBicmVhazsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldFBhZ2VDYWNoZVN0YXRlKFBhZ2Um
IHBhZ2UsIERvY3VtZW50OjpQYWdlQ2FjaGVTdGF0ZSBwYWdlQ2FjaGVTdGF0ZSkKLXsKLSAgICBm
b3IgKEZyYW1lKiBmcmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9
IGZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPnNldFBhZ2VDYWNoZVN0
YXRlKHBhZ2VDYWNoZVN0YXRlKTsKLSAgICB9Ci19Ci0KLS8vIFdoZW4gZW50ZXJpbmcgcGFnZSBj
YWNoZSwgdGVhciBkb3duIHRoZSByZW5kZXIgdHJlZSBiZWZvcmUgc2V0dGluZyB0aGUgaW4tY2Fj
aGUgZmxhZy4KLS8vIFRoaXMgbWFpbnRhaW5zIHRoZSBpbnZhcmlhbnQgdGhhdCByZW5kZXIgdHJl
ZXMgYXJlIG5ldmVyIHByZXNlbnQgaW4gdGhlIHBhZ2UgY2FjaGUuCi0vLyBOb3RlIHRoYXQgZGVz
dHJ1Y3Rpb24gaGFwcGVucyBib3R0b20tdXAgc28gdGhhdCB0aGUgbWFpbiBmcmFtZSdzIHRyZWUg
ZGllcyBsYXN0Lgotc3RhdGljIHZvaWQgZGVzdHJveVJlbmRlclRyZWUoRnJhbWUmIG1haW5GcmFt
ZSkKLXsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZS50cmVlKCkudHJhdmVyc2VQ
cmV2aW91cyhDYW5XcmFwOjpZZXMpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZl
cnNlUHJldmlvdXMoQ2FuV3JhcDo6Tm8pKSB7Ci0gICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50
KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJh
bWUtPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmIChkb2N1bWVudC5oYXNMaXZpbmdSZW5kZXJUcmVl
KCkpCi0gICAgICAgICAgICBkb2N1bWVudC5kZXN0cm95UmVuZGVyVHJlZSgpOwotICAgIH0KLX0K
LQotc3RhdGljIHZvaWQgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNpdmVseShGcmFtZSYgZnJhbWUp
Ci17Ci0gICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpOwotICAgIGlmICghZG9j
dW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIHN0b3BMb2FkaW5nKCkgd2lsbCBmaXJl
IHRoZSBwYWdlaGlkZSBldmVudCBpbiBlYWNoIHN1YmZyYW1lIGFuZCB0aGUgSFRNTCBzcGVjaWZp
Y2F0aW9uIHN0YXRlcwotICAgIC8vIHRoYXQgdGhlIHBhcmVudCBkb2N1bWVudCdzIGlnbm9yZS1v
cGVucy1kdXJpbmctdW5sb2FkIGNvdW50ZXIgc2hvdWxkIGJlIGluY3JlbWVudGVkIHdoaWxlIHRo
ZQotICAgIC8vIHBhZ2VoaWRlIGV2ZW50IGlzIGJlaW5nIGZpcmVkIGluIGl0cyBzdWJmcmFtZXM6
Ci0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvYnJvd3NlcnMu
aHRtbCN1bmxvYWQtYS1kb2N1bWVudAotICAgIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJ
bmNyZW1lbnRlciBpZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIoZG9jdW1l
bnQpOwotCi0gICAgZnJhbWUubG9hZGVyKCkuc3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3lV
bmxvYWRBbmRQYWdlSGlkZSk7Ci0KLSAgICBmb3IgKFJlZlB0cjxGcmFtZT4gY2hpbGQgPSBmcmFt
ZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLm5leHRT
aWJsaW5nKCkpCi0gICAgICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZlbHkoKmNoaWxkKTsK
LX0KLQotYm9vbCBQYWdlQ2FjaGU6OmFkZElmQ2FjaGVhYmxlKEhpc3RvcnlJdGVtJiBpdGVtLCBQ
YWdlKiBwYWdlKQotewotICAgIGlmIChpdGVtLmlzSW5QYWdlQ2FjaGUoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5zdG9wRm9yUGFnZUNhY2hlKCk7Ci0KLSAgICBp
ZiAoIWNhbkNhY2hlKCpwYWdlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQVNTRVJU
X1dJVEhfTUVTU0FHRSghcGFnZS0+aXNVdGlsaXR5UGFnZSgpLCAiVXRpbGl0eSBwYWdlcyBzdWNo
IGFzIFNWR0ltYWdlIHBhZ2VzIHNob3VsZCBuZXZlciBnbyBpbnRvIFBhZ2VDYWNoZSIpOwotCi0g
ICAgc2V0UGFnZUNhY2hlU3RhdGUoKnBhZ2UsIERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2Fj
aGUpOwotCi0gICAgLy8gRm9jdXMgdGhlIG1haW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1c2Vk
IHN1YmZyYW1lIChpZiB3ZSBoYXZlIG9uZSkuIFdlIGRvIHRoaXMgaGVyZSwKLSAgICAvLyBiZWZv
cmUgdGhlIHBhZ2UgZW50ZXJzIHRoZSBwYWdlIGNhY2hlLCB3aGlsZSB3ZSBzdGlsbCBjYW4gZGlz
cGF0Y2ggRE9NIGJsdXIvZm9jdXMgZXZlbnRzLgotICAgIGlmIChwYWdlLT5mb2N1c0NvbnRyb2xs
ZXIoKS5mb2N1c2VkRnJhbWUoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0
Rm9jdXNlZEZyYW1lKCZwYWdlLT5tYWluRnJhbWUoKSk7Ci0KLSAgICAvLyBGaXJlIHRoZSBwYWdl
aGlkZSBldmVudCBpbiBhbGwgZnJhbWVzLgotICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZl
bHkocGFnZS0+bWFpbkZyYW1lKCkpOwotCi0gICAgZGVzdHJveVJlbmRlclRyZWUocGFnZS0+bWFp
bkZyYW1lKCkpOwotCi0gICAgLy8gU3RvcCBhbGwgbG9hZHMgYWdhaW4gYmVmb3JlIGNoZWNraW5n
IGlmIHdlIGNhbiBzdGlsbCBjYWNoZSB0aGUgcGFnZSBhZnRlciBmaXJpbmcgdGhlIHBhZ2VoaWRl
Ci0gICAgLy8gZXZlbnQsIHNpbmNlIHRoZSBwYWdlIG1heSBoYXZlIHN0YXJ0ZWQgcGluZyBsb2Fk
cyBpbiBpdHMgcGFnZWhpZGUgZXZlbnQgaGFuZGxlci4KLSAgICBwYWdlLT5tYWluRnJhbWUoKS5s
b2FkZXIoKS5zdG9wRm9yUGFnZUNhY2hlKCk7Ci0KLSAgICAvLyBDaGVjayB0aGF0IHRoZSBwYWdl
IGlzIHN0aWxsIHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0aGUgcGFnZWhpZGUgZXZlbnQu
IFRoZSBKUyBldmVudCBoYW5kbGVycwotICAgIC8vIGNvdWxkIGhhdmUgYWx0ZXJlZCB0aGUgcGFn
ZSBpbiBhIHdheSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4KLSAgICBpZiAoIWNhbkNhY2hl
KCpwYWdlKSkgewotICAgICAgICBzZXRQYWdlQ2FjaGVTdGF0ZSgqcGFnZSwgRG9jdW1lbnQ6Ok5v
dEluUGFnZUNhY2hlKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHNldFBh
Z2VDYWNoZVN0YXRlKCpwYWdlLCBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOwotCi0gICAgewotICAg
ICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZmlyZSBhbnkgSlMgZXZlbnRzIGluIHRoaXMgc2Nv
cGUuCi0gICAgICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERp
c2FsbG93ZWRTY29wZTsKLQotICAgICAgICBpdGVtLnNldENhY2hlZFBhZ2UobWFrZVVuaXF1ZTxD
YWNoZWRQYWdlPigqcGFnZSkpOwotICAgICAgICBpdGVtLm1fcHJ1bmluZ1JlYXNvbiA9IFBydW5p
bmdSZWFzb246Ok5vbmU7Ci0gICAgICAgIG1faXRlbXMuYWRkKCZpdGVtKTsKLSAgICB9Ci0gICAg
cHJ1bmUoUHJ1bmluZ1JlYXNvbjo6UmVhY2hlZE1heFNpemUpOwotCi0gICAgUkVMRUFTRV9MT0co
QmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6YWRkSWZDYWNoZWFibGUgaXRlbTogJXMsIHNp
emU6ICV1IC8gJXUiLCBpdGVtLmlkZW50aWZpZXIoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBw
YWdlQ291bnQoKSwgbWF4U2l6ZSgpKTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGQ6OnVu
aXF1ZV9wdHI8Q2FjaGVkUGFnZT4gUGFnZUNhY2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVtLCBQ
YWdlKiBwYWdlKQotewotICAgIGlmICghaXRlbS5tX2NhY2hlZFBhZ2UpIHsKLSAgICAgICAgaWYg
KGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCi0gICAgICAgICAg
ICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgcHJ1bmluZ1JlYXNv
blRvRGlhZ25vc3RpY0xvZ2dpbmdLZXkoaXRlbS5tX3BydW5pbmdSZWFzb24pKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgbV9pdGVtcy5yZW1vdmUoJml0ZW0pOwotICAg
IHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiBjYWNoZWRQYWdlID0gaXRlbS50YWtlQ2FjaGVk
UGFnZSgpOwotCi0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6
dGFrZSBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpLCBtYXhTaXplKCkpOwotCi0gICAgaWYgKGNhY2hl
ZFBhZ2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdlLT5pc1Jlc291cmNlQ2FjaGluZ0Rp
c2FibGVkQnlXZWJJbnNwZWN0b3IoKSkpIHsKLSAgICAgICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUs
ICJOb3QgcmVzdG9yaW5nIHBhZ2UgZm9yICVzIGZyb20gYmFjay9mb3J3YXJkIGNhY2hlIGJlY2F1
c2UgY2FjaGUgZW50cnkgaGFzIGV4cGlyZWQiLCBpdGVtLnVybCgpLnN0cmluZygpLmFzY2lpKCku
ZGF0YSgpKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBh
Z2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtleSgpKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNhY2hlZFBhZ2U7Ci19Ci0KLXZvaWQgUGFn
ZUNhY2hlOjpyZW1vdmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYgcGFnZSkKLXsKLSNpZiAhQVNTRVJU
X0RJU0FCTEVECi0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc0luUmVtb3ZlQWxsSXRlbXNG
b3JQYWdlLCAiV2Ugc2hvdWxkIG5vdCByZWVudGVyIHRoaXMgbWV0aG9kIik7Ci0gICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gaW5SZW1vdmVBbGxJdGVtc0ZvclBhZ2VTY29wZSB7IG1faXNJblJlbW92ZUFs
bEl0ZW1zRm9yUGFnZSwgdHJ1ZSB9OwotI2VuZGlmCi0KLSAgICBmb3IgKGF1dG8gaXQgPSBtX2l0
ZW1zLmJlZ2luKCk7IGl0ICE9IG1faXRlbXMuZW5kKCk7KSB7Ci0gICAgICAgIC8vIEluY3JlbWVu
dCBpdGVyYXRvciBmaXJzdCBzbyBpdCBzdGF5cyB2YWxpZCBhZnRlciB0aGUgcmVtb3ZhbC4KLSAg
ICAgICAgYXV0byBjdXJyZW50ID0gaXQ7Ci0gICAgICAgICsraXQ7Ci0gICAgICAgIGlmICgmKCpj
dXJyZW50KS0+bV9jYWNoZWRQYWdlLT5wYWdlKCkgPT0gJnBhZ2UpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJQYWdlQ2FjaGU6OnJlbW92ZUFsbEl0ZW1zRm9y
UGFnZSByZW1vdmluZyBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIsICgqY3VycmVudCktPmlkZW50
aWZpZXIoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBwYWdlQ291bnQoKSAtIDEsIG1heFNpemUo
KSk7Ci0gICAgICAgICAgICAoKmN1cnJlbnQpLT5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOwotICAg
ICAgICAgICAgbV9pdGVtcy5yZW1vdmUoY3VycmVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0K
LUNhY2hlZFBhZ2UqIFBhZ2VDYWNoZTo6Z2V0KEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdl
KQotewotICAgIENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBpdGVtLm1fY2FjaGVkUGFnZS5nZXQo
KTsKLSAgICBpZiAoIWNhY2hlZFBhZ2UpIHsKLSAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVh
c29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCi0gICAgICAgICAgICBsb2dQYWdlQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgcHJ1bmluZ1JlYXNvblRvRGlhZ25vc3RpY0xvZ2dp
bmdLZXkoaXRlbS5tX3BydW5pbmdSZWFzb24pKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotCi0gICAgaWYgKGNhY2hlZFBhZ2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdl
LT5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkQnlXZWJJbnNwZWN0b3IoKSkpIHsKLSAgICAgICAg
TE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJOb3QgcmVzdG9yaW5nIHBhZ2UgZm9yICVzIGZyb20gYmFj
ay9mb3J3YXJkIGNhY2hlIGJlY2F1c2UgY2FjaGUgZW50cnkgaGFzIGV4cGlyZWQiLCBpdGVtLnVy
bCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtl
eSgpKTsKLSAgICAgICAgcmVtb3ZlKGl0ZW0pOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9Ci0gICAgcmV0dXJuIGNhY2hlZFBhZ2U7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjpyZW1vdmUo
SGlzdG9yeUl0ZW0mIGl0ZW0pCi17Ci0gICAgLy8gU2FmZWx5IGlnbm9yZSBhdHRlbXB0cyB0byBy
ZW1vdmUgaXRlbXMgbm90IGluIHRoZSBjYWNoZS4KLSAgICBpZiAoIWl0ZW0ubV9jYWNoZWRQYWdl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7Ci0gICAgaXRl
bS5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOwotCi0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRD
YWNoZSwgIlBhZ2VDYWNoZTo6cmVtb3ZlIGl0ZW06ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5p
ZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUo
KSk7Ci0KLX0KLQotdm9pZCBQYWdlQ2FjaGU6OnBydW5lKFBydW5pbmdSZWFzb24gcHJ1bmluZ1Jl
YXNvbikKLXsKLSAgICB3aGlsZSAocGFnZUNvdW50KCkgPiBtYXhTaXplKCkpIHsKLSAgICAgICAg
YXV0byBvbGRlc3RJdGVtID0gbV9pdGVtcy50YWtlRmlyc3QoKTsKLSAgICAgICAgb2xkZXN0SXRl
bS0+c2V0Q2FjaGVkUGFnZShudWxscHRyKTsKLSAgICAgICAgb2xkZXN0SXRlbS0+bV9wcnVuaW5n
UmVhc29uID0gcHJ1bmluZ1JlYXNvbjsKLSAgICAgICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRD
YWNoZSwgIlBhZ2VDYWNoZTo6cHJ1bmUgcmVtb3ZpbmcgaXRlbTogJXMsIHNpemU6ICV1IC8gJXUi
LCBvbGRlc3RJdGVtLT5pZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNv
dW50KCksIG1heFNpemUoKSk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTIxMWNjNDU5ZmVlZmVkZmJmYTk0NDkyNzcyZTg5ZDAzMjAxMTU4NS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1Bh
Z2VDYWNoZS5oCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lu
Y2x1ZGUgIkhpc3RvcnlJdGVtLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRl
IDx3dGYvTGlzdEhhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDYWNoZWRQYWdlOwotY2xhc3MgRnJhbWU7Ci1jbGFz
cyBQYWdlOwotCi1lbnVtIGNsYXNzIFBydW5pbmdSZWFzb24geyBOb25lLCBQcm9jZXNzU3VzcGVu
ZGVkLCBNZW1vcnlQcmVzc3VyZSwgUmVhY2hlZE1heFNpemUgfTsKLQotY2xhc3MgUGFnZUNhY2hl
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ2FjaGUpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLXB1YmxpYzoKLSAgICAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhlIGdsb2JhbCBw
YWdlIGNhY2hlLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYWdlQ2FjaGUmIHNpbmdsZXRv
bigpOwotCi0gICAgYm9vbCBjYW5DYWNoZShQYWdlJikgY29uc3Q7Ci0KLSAgICAvLyBVc2VkIHdo
ZW4gbWVtb3J5IGlzIGxvdyB0byBwcnVuZSBzb21lIGNhY2hlZCBwYWdlcy4KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHBydW5lVG9TaXplTm93KHVuc2lnbmVkIG1heFNpemUsIFBydW5pbmdSZWFz
b24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWF4U2l6ZSh1bnNpZ25lZCk7IC8vIG51
bWJlciBvZiBwYWdlcyB0byBjYWNoZS4KLSAgICB1bnNpZ25lZCBtYXhTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXhTaXplOyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFkZElmQ2FjaGVh
YmxlKEhpc3RvcnlJdGVtJiwgUGFnZSopOyAvLyBQcnVuZXMgaWYgbWF4U2l6ZSgpIGlzIGV4Y2Vl
ZGVkLgotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlKEhpc3RvcnlJdGVtJik7Ci0gICAg
Q2FjaGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVtJiwgUGFnZSopOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxDYWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJdGVtJiwgUGFnZSopOwotCi0gICAgdm9pZCByZW1v
dmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYpOwotCi0gICAgdW5zaWduZWQgcGFnZUNvdW50KCkgY29u
c3QgeyByZXR1cm4gbV9pdGVtcy5zaXplKCk7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25l
ZCBmcmFtZUNvdW50KCkgY29uc3Q7Ci0KLSAgICB2b2lkIG1hcmtQYWdlc0ZvckRldmljZU9yUGFn
ZVNjYWxlQ2hhbmdlZChQYWdlJik7Ci0gICAgdm9pZCBtYXJrUGFnZXNGb3JDb250ZW50c1NpemVD
aGFuZ2VkKFBhZ2UmKTsKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgdm9pZCBtYXJrUGFn
ZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAg
ICBQYWdlQ2FjaGUoKTsKLSAgICB+UGFnZUNhY2hlKCkgPSBkZWxldGU7IC8vIE1ha2Ugc3VyZSBu
b2JvZHkgYWNjaWRlbnRhbGx5IGNhbGxzIGRlbGV0ZSAtLSBXZWJDb3JlIGRvZXMgbm90IGRlbGV0
ZSBzaW5nbGV0b25zLgotCi0gICAgc3RhdGljIGJvb2wgY2FuQ2FjaGVQYWdlQ29udGFpbmluZ1Ro
aXNGcmFtZShGcmFtZSYpOwotCi0gICAgdm9pZCBwcnVuZShQcnVuaW5nUmVhc29uKTsKLSAgICB2
b2lkIGR1bXAoKSBjb25zdDsKLQotICAgIExpc3RIYXNoU2V0PFJlZlB0cjxIaXN0b3J5SXRlbT4+
IG1faXRlbXM7Ci0gICAgdW5zaWduZWQgbV9tYXhTaXplIHswfTsKLQotI2lmICFBU1NFUlRfRElT
QUJMRUQKLSAgICBib29sIG1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSB7IGZhbHNlIH07Ci0j
ZW5kaWYKLQotICAgIGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFBhZ2VDYWNoZT47
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCBjZmVhMjcxZjJmNjAyZDg2YzMyMDk2YjVmMTBjOGI0M2RkZTVj
MzM5Li45ZmE3MzhhYmM3MTEwNmQ3NmFjNDk0YjhkNmU1ZjhiMDc3ZWUwNzA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU3NTksNyArNTc1OSw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikK
ICAgICBtX3Jlc3VtZVRhc2tRdWV1ZS5jYW5jZWxUYXNrKCk7CiAKICAgICBzd2l0Y2ggKHJlYXNv
bikgewotICAgIGNhc2UgUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlOgorICAgIGNhc2Ug
UmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgc3RvcFdpdGhv
dXREZXN0cm95aW5nTWVkaWFQbGF5ZXIoKTsKICAgICAgICAgc2V0QnVmZmVyaW5nUG9saWN5KEJ1
ZmZlcmluZ1BvbGljeTo6TWFrZVJlc291cmNlc1B1cmdlYWJsZSk7CiAgICAgICAgIG1fbWVkaWFT
ZXNzaW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVp
cmVQYWdlQ29uc2VudFRvUmVzdW1lTWVkaWEpOwpAQCAtNTc4Nyw3ICs1Nzg3LDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpyZXN1bWUoKQogICAgIG1fbWVkaWFTZXNzaW9uLT51cGRhdGVCdWZm
ZXJpbmdQb2xpY3koKTsKIAogICAgIGlmIChtX2Vycm9yICYmIG1fZXJyb3ItPmNvZGUoKSA9PSBN
ZWRpYUVycm9yOjpNRURJQV9FUlJfQUJPUlRFRCAmJiAhbV9yZXN1bWVUYXNrUXVldWUuaGFzUGVu
ZGluZ1Rhc2soKSkgewotICAgICAgICAvLyBSZXN0YXJ0IHRoZSBsb2FkIGlmIGl0IHdhcyBhYm9y
dGVkIGluIHRoZSBtaWRkbGUgYnkgbW92aW5nIHRoZSBkb2N1bWVudCB0byB0aGUgcGFnZSBjYWNo
ZS4KKyAgICAgICAgLy8gUmVzdGFydCB0aGUgbG9hZCBpZiBpdCB3YXMgYWJvcnRlZCBpbiB0aGUg
bWlkZGxlIGJ5IG1vdmluZyB0aGUgZG9jdW1lbnQgdG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4K
ICAgICAgICAgLy8gbV9lcnJvciBpcyBvbmx5IGxlZnQgYXQgTUVESUFfRVJSX0FCT1JURUQgd2hl
biB0aGUgZG9jdW1lbnQgYmVjb21lcyBpbmFjdGl2ZSAoaXQgaXMgc2V0IHRvCiAgICAgICAgIC8v
ICBNRURJQV9FUlJfQUJPUlRFRCB3aGlsZSB0aGUgYWJvcnRFdmVudCBpcyBiZWluZyBzZW50LCBi
dXQgY2xlYXJlZCBpbW1lZGlhdGVseSBhZnRlcndhcmRzKS4KICAgICAgICAgLy8gVGhpcyBiZWhh
dmlvciBpcyBub3Qgc3BlY2lmaWVkIGJ1dCBpdCBzZWVtcyBsaWtlIGEgc2Vuc2libGUgdGhpbmcg
dG8gZG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cAppbmRleCBjNTZjM2M0ODg1OGI2MzlhZWQzMTljNzI3ZjZmODYyYzVmNjQzZTU4Li44YTFlZTBk
MjNjMjZjMjgyMTM5M2Q4ODJmZmVlMTU2Nzk1YzQyOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTE4NCwxMyArMTg0LDEzIEBAIGJv
b2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNQbHVnSW4oY29uc3QgU3RyaW5n
JiByZWxhdGl2ZVVSTCwgY29uc3QKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewotICAgIEFT
U0VSVChkb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNh
Y2hlKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQoKS5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBE
b2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGlmIChkaXNwbGF5U3RhdGUo
KSA+PSBQcmVwYXJpbmdQbHVnaW5SZXBsYWNlbWVudCkKICAgICAgICAgcmV0dXJuIEhUTUxQbHVn
SW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGTW92ZShzdHlsZSksIGluc2VydGlv
blBvc2l0aW9uKTsKIAogICAgIC8vIE9uY2UgYSBwbHVnLWluIGVsZW1lbnQgY3JlYXRlcyBpdHMg
cmVuZGVyZXIsIGl0IG5lZWRzIHRvIGJlIHRvbGQgd2hlbiB0aGUgZG9jdW1lbnQgZ29lcwotICAg
IC8vIGluYWN0aXZlIG9yIHJlYWN0aXZhdGVzIHNvIGl0IGNhbiBjbGVhciB0aGUgcmVuZGVyZXIg
YmVmb3JlIGdvaW5nIGludG8gdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gaW5hY3RpdmUgb3IgcmVh
Y3RpdmF0ZXMgc28gaXQgY2FuIGNsZWFyIHRoZSByZW5kZXJlciBiZWZvcmUgZ29pbmcgaW50byB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIGlmICghbV9uZWVkc0RvY3VtZW50QWN0aXZhdGlv
bkNhbGxiYWNrcykgewogICAgICAgICBtX25lZWRzRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tz
ID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQoKS5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lv
bkNhbGxiYWNrcygqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
b3VyY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQu
Y3BwCmluZGV4IDg4ZWM1YTc2YTYwZWNiZjYwZWNkMjI1ODExY2JmMzMyZmUxMjNiY2EuLmRkNWQ4
NWM1NGI5MWZmYmNmYjIwNGVjZmQ2Yjc0YjRiNDIzZjNhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBIVE1MU291
cmNlRWxlbWVudDo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB2b2lk
IEhUTUxTb3VyY2VFbGVtZW50OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQog
ewogICAgIC8vIEZJWE1FOiBTaG91bGRuJ3QgdGhpcyBhbHNvIHN0b3AgdGhlIHRpbWVyIGZvciBQ
YWdlV2lsbEJlU3VzcGVuZGVkPwotICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lv
bjo6UGFnZUNhY2hlKSB7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpC
YWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAgIG1fc2hvdWxkUmVzY2hlZHVsZUVycm9yRXZlbnRP
blJlc3VtZSA9IG1fZXJyb3JFdmVudFRpbWVyLmlzQWN0aXZlKCk7CiAgICAgICAgIG1fZXJyb3JF
dmVudFRpbWVyLnN0b3AoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcAppbmRleCAyODQwNmZjMmZlZTgxYTFhZWE2ZjRmNDc1ZjVhNWE4ZDk2ZmEx
M2E2Li4yYTRjOGY1M2Q5OTVhYjllZGE0NWNkNTBiMzY2Zjk2NzQ4NjU0ZjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTMxMiw3ICszMTIsNyBA
QCBTdWNjZXNzT3I8TWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50U2Vzc2lv
bjo6cGxheWJhY2tQZXJtaXR0ZWQoKSBjbwogYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRv
cGxheVBlcm1pdHRlZCgpIGNvbnN0CiB7CiAgICAgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50ID0g
bV9lbGVtZW50LmRvY3VtZW50KCk7Ci0gICAgaWYgKGRvY3VtZW50LnBhZ2VDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgIGlmIChkb2N1bWVudC5iYWNrRm9yd2Fy
ZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNw
ZW5kZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKaW5kZXggZmJhMjY2YWVlNmMxYjgwZDdlNWZhYzBlNzMyMzQ2MTE4OTgw
NmFlNS4uNWZlMzA3ZGM1NDdjZGE1MTAzMDMwYjYzMWUyZDEwMGM1YmE3MTA4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xNjU0LDE3ICsxNjU0LDE3IEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OmFkZFN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVy
KiBsb2FkZXIpCiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgaWYgKGRvY3VtZW50KCkpIHsK
LSAgICAgICAgc3dpdGNoIChkb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAg
IGNhc2UgRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOgorICAgICAgICBzd2l0Y2ggKGRvY3VtZW50
KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpKSB7CisgICAgICAgIGNhc2UgRG9jdW1lbnQ6Ok5v
dEluQmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERv
Y3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGU6IHsKLSAgICAgICAgICAgIC8vIEEgcGFnZSBh
Ym91dCB0byBlbnRlciBQYWdlQ2FjaGUgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5n
IGxvYWRzLgorICAgICAgICBjYXNlIERvY3VtZW50OjpBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENh
Y2hlOiB7CisgICAgICAgICAgICAvLyBBIHBhZ2UgYWJvdXQgdG8gZW50ZXIgdGhlIEJhY2tGb3J3
YXJkQ2FjaGUgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5nIGxvYWRzLgogICAgICAg
ICAgICAgYXV0byogY2FjaGVkUmVzb3VyY2UgPSBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVz
b3VyY2VGb3JSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpLCBsb2FkZXItPmZyYW1lTG9hZGVyKCkt
PmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoY2FjaGVk
UmVzb3VyY2UgJiYgQ2FjaGVkUmVzb3VyY2U6OnNob3VsZFVzZVBpbmdMb2FkKGNhY2hlZFJlc291
cmNlLT50eXBlKCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNh
c2UgRG9jdW1lbnQ6OkluUGFnZUNhY2hlOgotICAgICAgICAgICAgLy8gQSBwYWdlIGluIHRoZSBQ
YWdlQ2FjaGUgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRzLgorICAgICAgICBjYXNl
IERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGU6CisgICAgICAgICAgICAvLyBBIHBhZ2UgaW4g
dGhlIEJhY2tGb3J3YXJkQ2FjaGUgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRzLgog
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkZmZlZDQw
OGMxZGVhODA3YjFkYTJiNTQ1OTk0NGE0YjZkZTVjMTdjLi45ZjM4ZjllYjQyMzBjZjVlODM3MGVl
ODYwNDMzNDVlYjJiMTgyZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aApAQCAtNTM5LDcgKzUzOSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXZSByZXRhaW4gYWxsIHRo
ZSByZWNlaXZlZCByZXNwb25zZXMgc28gd2UgY2FuIHBsYXkgYmFjayB0aGUKICAgICAvLyBXZWJS
ZXNvdXJjZUxvYWREZWxlZ2F0ZSBtZXNzYWdlcyBpZiB0aGUgaXRlbSBpcyBsb2FkZWQgZnJvbSB0
aGUKLSAgICAvLyBwYWdlIGNhY2hlLgorICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBW
ZWN0b3I8UmVzb3VyY2VSZXNwb25zZT4gbV9yZXNwb25zZXM7CiAgICAgYm9vbCBtX3N0b3BSZWNv
cmRpbmdSZXNwb25zZXMgeyBmYWxzZSB9OwogICAgIApAQCAtNTc5LDcgKzU3OSw2IEBAIHByaXZh
dGU6CiAKICAgICBWZWN0b3I8Q3VzdG9tSGVhZGVyRmllbGRzPiBtX2N1c3RvbUhlYWRlckZpZWxk
czsKICAgICAKLSAgICBib29sIG1fc3VicmVzb3VyY2VMb2FkZXJzQXJlUGFnZUNhY2hlQWNjZXB0
YWJsZSB7IGZhbHNlIH07CiAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBtX3Nob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFwcGxpY2F0aW9uQ2FjaGVI
b3N0PiBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZTU5NmZhMDNlMTFjYmZjY2MxNTY2ZGVmZGJm
Nzc1ZDgyYjVkMzk4ZS4uMDljY2Q1YTIyNzc3ZmNiZWIxYTc4ZTFjZTk4OGM2NjQyNjUzNGZmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC00Niw3ICs0Niw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGll
bnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogCiAgICAgdm9pZCBtYWtlUmVwcmVzZW50
YXRpb24oRG9jdW1lbnRMb2FkZXIqKSBmaW5hbCB7IH0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3
YXJkQ2FjaGUoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgdm9pZCBmb3Jj
ZUxheW91dEZvck5vbkhUTUwoKSBmaW5hbCB7IH0KIApAQCAtMTY0LDcgKzE2NCw3IEBAIGNsYXNz
IFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2Fk
ZXJDbGllbnQgewogI2VuZGlmCiAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQ
YWdlKCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmlu
YWwgeyB9CisgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbCB7
IH0KIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbCB7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYzk3M2UxNzUyYjBlN2E5
YTBlMTlhMjg2N2UzNGMxNzFmMTc0ZGJmZi4uYjIwMzc1YTUwZDlhNDVhZDU5MTg5MzlhYTQ0ZWJm
ZWRlMWY4NzVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNyw2
ICszNyw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXBwbGlj
YXRpb25DYWNoZUhvc3QuaCIKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVk
ZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQmVmb3JlVW5sb2FkRXZlbnQu
aCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCkBAIC05Miw3ICs5Myw2IEBACiAjaW5jbHVkZSAi
TmF2aWdhdGlvblNjaGVkdWxlci5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdl
LmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVu
dC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyYXRlZ2llcy5oIgpAQCAtNTQ4LDggKzU0OCw4IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmNsb3Nl
VVJMKCkKICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgU1ZHRG9jdW1lbnQgb2YgYW4gU1ZHSW1h
Z2UsIG5vIG5lZWQgdG8gZGlzcGF0Y2ggZXZlbnRzIG9yIHJlY2FsY1N0eWxlLgogICAgICAgICB1
bmxvYWRFdmVudFBvbGljeSA9IFVubG9hZEV2ZW50UG9saWN5Tm9uZTsKICAgICB9IGVsc2Ugewot
ICAgICAgICAvLyBTaG91bGQgb25seSBzZW5kIHRoZSBwYWdlaGlkZSBldmVudCBoZXJlIGlmIHRo
ZSBjdXJyZW50IGRvY3VtZW50IGV4aXN0cyBhbmQgaGFzIG5vdCBiZWVuIHBsYWNlZCBpbiB0aGUg
cGFnZSBjYWNoZS4KLSAgICAgICAgdW5sb2FkRXZlbnRQb2xpY3kgPSBjdXJyZW50RG9jdW1lbnQg
JiYgY3VycmVudERvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBh
Z2VDYWNoZSA/IFVubG9hZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhpZGUgOiBVbmxvYWRFdmVu
dFBvbGljeVVubG9hZE9ubHk7CisgICAgICAgIC8vIFNob3VsZCBvbmx5IHNlbmQgdGhlIHBhZ2Vo
aWRlIGV2ZW50IGhlcmUgaWYgdGhlIGN1cnJlbnQgZG9jdW1lbnQgZXhpc3RzIGFuZCBoYXMgbm90
IGJlZW4gcGxhY2VkIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgICAgIHVubG9hZEV2
ZW50UG9saWN5ID0gY3VycmVudERvY3VtZW50ICYmIGN1cnJlbnREb2N1bWVudC0+YmFja0Zvcndh
cmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSA/IFVubG9h
ZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhpZGUgOiBVbmxvYWRFdmVudFBvbGljeVVubG9hZE9u
bHk7CiAgICAgfQogCiAgICAgc3RvcExvYWRpbmcodW5sb2FkRXZlbnRQb2xpY3kpOwpAQCAtNjM0
LDcgKzYzNCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyKERvY3VtZW50KiBuZXdEb2N1bWVu
dCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMsIGJvb2wKICAgICBib29sIG5lZWRlZENsZWFy
ID0gbV9uZWVkc0NsZWFyOwogICAgIG1fbmVlZHNDbGVhciA9IGZhbHNlOwogCi0gICAgaWYgKG5l
ZWRlZENsZWFyICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1
bWVudDo6SW5QYWdlQ2FjaGUpIHsKKyAgICBpZiAobmVlZGVkQ2xlYXIgJiYgbV9mcmFtZS5kb2N1
bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2Fy
ZENhY2hlKSB7CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwog
ICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnN0b3BBY3RpdmVET01PYmplY3RzKCk7CiAgICAg
ICAgIGJvb2wgaGFkTGl2aW5nUmVuZGVyVHJlZSA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+aGFzTGl2
aW5nUmVuZGVyVHJlZSgpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNs
ZWFyKERvY3VtZW50KiBuZXdEb2N1bWVudCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMsIGJv
b2wKICAgICBpZiAoY2xlYXJXaW5kb3dQcm9wZXJ0aWVzKSB7CiAgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQobV9mcmFtZSwgbV9mcmFtZS5kb2N1
bWVudCgpLT5kb21XaW5kb3coKSk7CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2lu
ZG93KCktPnJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7Ci0gICAg
ICAgIG1fZnJhbWUud2luZG93UHJveHkoKS5jbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5n
RE9NV2luZG93KG5ld0RvY3VtZW50LT5kb21XaW5kb3coKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5w
YWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOworICAg
ICAgICBtX2ZyYW1lLndpbmRvd1Byb3h5KCkuY2xlYXJKU1dpbmRvd1Byb3hpZXNOb3RNYXRjaGlu
Z0RPTVdpbmRvdyhuZXdEb2N1bWVudC0+ZG9tV2luZG93KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+
YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3
YXJkQ2FjaGUpOwogCiAgICAgICAgIGlmIChzaG91bGRDbGVhcldpbmRvd05hbWUobV9mcmFtZSwg
Km5ld0RvY3VtZW50KSkKICAgICAgICAgICAgIG1fZnJhbWUudHJlZSgpLnNldE5hbWUobnVsbEF0
b20oKSk7CkBAIC0xODE0LDcgKzE4MTQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoT3B0
aW9uU2V0PFJlbG9hZE9wdGlvbj4gb3B0aW9ucykKIAogdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFs
bExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW1Q
b2xpY3ksIFN0b3BMb2FkaW5nUG9saWN5IHN0b3BMb2FkaW5nUG9saWN5KQogewotICAgIGlmICht
X2ZyYW1lLmRvY3VtZW50KCkgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgp
ID09IERvY3VtZW50OjpJblBhZ2VDYWNoZSkKKyAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpICYm
IG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6
OkluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHN0b3BMb2Fk
aW5nUG9saWN5ID09IFN0b3BMb2FkaW5nUG9saWN5OjpQcmV2ZW50RHVyaW5nVW5sb2FkRXZlbnRz
ICYmICFpc1N0b3BMb2FkaW5nQWxsb3dlZCgpKQpAQCAtMTg1Miw3ICsxODUyLDcgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xl
YXJQcm92aXNpb25hbEl0ZW0KICAgICBtX2luU3RvcEFsbExvYWRlcnMgPSBmYWxzZTsgICAgCiB9
CiAKLXZvaWQgRnJhbWVMb2FkZXI6OnN0b3BGb3JQYWdlQ2FjaGUoKQordm9pZCBGcmFtZUxvYWRl
cjo6c3RvcEZvckJhY2tGb3J3YXJkQ2FjaGUoKQogewogICAgIC8vIFN0b3AgcHJvdmlzaW9uYWwg
bG9hZHMgaW4gc3ViZnJhbWVzIChUaGUgb25lIGluIHRoZSBtYWluIGZyYW1lIGlzIGFib3V0IHRv
IGJlIGNvbW1pdHRlZCkuCiAgICAgaWYgKCFtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKQEAgLTE4
NjYsNyArMTg2Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BGb3JQYWdlQ2FjaGUoKQogICAg
ICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwogCiAgICAgZm9yIChSZWZQdHI8
RnJhbWU+IGNoaWxkID0gbV9mcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkLT5sb2FkZXIoKS5z
dG9wRm9yUGFnZUNhY2hlKCk7CisgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5zdG9wRm9yQmFja0Zv
cndhcmRDYWNoZSgpOwogCiAgICAgLy8gV2UgY2FuY2VsIHBlbmRpbmcgbmF2aWdhdGlvbnMgJiBw
b2xpY3kgY2hlY2tzICphZnRlciogY2FuY2VsbGluZyBsb2FkcyBiZWNhdXNlIGNhbmNlbGxpbmcg
bG9hZHMgbWlnaHQgZW5kIHVwCiAgICAgLy8gcnVubmluZyBzY3JpcHQsIHdoaWNoIGNvdWxkIHNj
aGVkdWxlIG5ldyBuYXZpZ2F0aW9ucy4KQEAgLTIwMTYsNyArMjAxNiw3IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2Fj
aGVkUGFnZT4gY2FjaGVkUGFnZTsKICAgICBpZiAobV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2UgJiYg
aGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpKQotICAgICAgICBjYWNoZWRQYWdlID0gUGFnZUNh
Y2hlOjpzaW5nbGV0b24oKS50YWtlKCpoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCksIG1fZnJh
bWUucGFnZSgpKTsKKyAgICAgICAgY2FjaGVkUGFnZSA9IEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmds
ZXRvbigpLnRha2UoKmhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSwgbV9mcmFtZS5wYWdlKCkp
OwogCiAgICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJXZWJDb3JlTG9hZGluZyAlczogQWJvdXQg
dG8gY29tbWl0IHByb3Zpc2lvbmFsIGxvYWQgZnJvbSBwcmV2aW91cyBVUkwgJyVzJyB0byBuZXcg
VVJMICclcycgd2l0aCBjYWNoZWQgcGFnZSAlcCIsIG1fZnJhbWUudHJlZSgpLnVuaXF1ZU5hbWUo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLAogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCkgPyBt
X2ZyYW1lLmRvY3VtZW50KCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgp
LnV0ZjgoKS5kYXRhKCkgOiAiIiwKQEAgLTIwMjcsNyArMjAyNyw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgaWYgKCFtX2ZyYW1lLnRyZWUoKS5wYXJl
bnQoKSAmJiBoaXN0b3J5KCkuY3VycmVudEl0ZW0oKSAmJiBoaXN0b3J5KCkuY3VycmVudEl0ZW0o
KSAhPSBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpIHsKICAgICAgICAgLy8gQ2hlY2sgdG8g
c2VlIGlmIHdlIG5lZWQgdG8gY2FjaGUgdGhlIHBhZ2Ugd2UgYXJlIG5hdmlnYXRpbmcgYXdheSBm
cm9tIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICAgICAgLy8gV2UgYXJlIGRvaW5n
IHRoaXMgaGVyZSBiZWNhdXNlIHdlIGtub3cgZm9yIHN1cmUgdGhhdCBhIG5ldyBwYWdlIGlzIGFi
b3V0IHRvIGJlIGxvYWRlZC4KLSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5hZGRJZkNh
Y2hlYWJsZSgqaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAg
ICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuYWRkSWZDYWNoZWFibGUoKmhpc3Rvcnko
KS5jdXJyZW50SXRlbSgpLCBtX2ZyYW1lLnBhZ2UoKSk7CiAgICAgICAgIAogICAgICAgICBXZWJD
b3JlOjpqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExldmVsTmF2aWdhdGlvbigpOwogICAg
IH0KQEAgLTIxMDQsMTEgKzIxMDQsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlz
aW9uYWxMb2FkKCkKICAgICAgICAgLy8gTm90ZSwgZGlkUmVjZWl2ZURvY1R5cGUgaXMgZXhwZWN0
ZWQgdG8gYmUgY2FsbGVkIGZvciBjYWNoZWQgcGFnZXMuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTkw
Njc1OD4gZm9yIG1vcmUgZGV0YWlscy4KICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKG1f
ZnJhbWUpOwotICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShSZWFzb25Gb3JTdXNw
ZW5zaW9uOjpQYWdlQ2FjaGUpOworICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShS
ZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgICAgICAvLyBGb3Jj
ZSBhIGxheW91dCB0byB1cGRhdGUgdmlldyBzaXplIGFuZCB0aGVyZWJ5IHVwZGF0ZSBzY3JvbGxi
YXJzLgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlmICghbV9jbGllbnQuZm9y
Y2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkpCisgICAgICAgIGlmICghbV9jbGllbnQu
Zm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICAgICAg
bV9mcmFtZS52aWV3KCktPmZvcmNlTGF5b3V0KCk7CiAjZWxzZQogICAgICAgICBtX2ZyYW1lLnZp
ZXcoKS0+Zm9yY2VMYXlvdXQoKTsKQEAgLTIzMzAsNyArMjMzMCw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6Om9wZW4oQ2FjaGVkRnJhbWVCYXNlJiBjYWNoZWRGcmFtZSkKICAgICBjbGVhcihkb2N1bWVu
dC5wdHIoKSwgdHJ1ZSwgdHJ1ZSwgY2FjaGVkRnJhbWUuaXNNYWluRnJhbWUoKSk7CiAKICAgICBk
b2N1bWVudC0+YXR0YWNoVG9DYWNoZWRGcmFtZShjYWNoZWRGcmFtZSk7Ci0gICAgZG9jdW1lbnQt
PnNldFBhZ2VDYWNoZVN0YXRlKERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgZG9jdW1l
bnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENh
Y2hlKTsKIAogICAgIG1fbmVlZHNDbGVhciA9IHRydWU7CiAgICAgbV9pc0NvbXBsZXRlID0gZmFs
c2U7CkBAIC0yMzYwLDcgKzIzNjAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpvcGVuKENhY2hlZEZy
YW1lQmFzZSYgY2FjaGVkRnJhbWUpCiAgICAgCiAgICAgbV9mcmFtZS5zZXREb2N1bWVudChkb2N1
bWVudC5jb3B5UmVmKCkpOwogCi0gICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5yZXN1bWVGcm9t
UGFnZUNhY2hlKCk7CisgICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5yZXN1bWVGcm9tQmFja0Zv
cndhcmRDYWNoZSgpOwogCiAgICAgdXBkYXRlRmlyc3RQYXJ0eUZvckNvb2tpZXMoKTsKIApAQCAt
MjgyOCw3ICsyODI4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZnJhbWVEZXRhY2hlZCgpCiAgICAg
ICAgIGNoZWNrQ29tcGxldGVuZXNzTm93KCk7CiAgICAgfQogCi0gICAgaWYgKG1fZnJhbWUuZG9j
dW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpIHsKKyAg
ICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1
bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAgIHN0b3BBbGxMb2FkZXJzQW5kQ2hl
Y2tDb21wbGV0ZW5lc3MoKTsKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zdG9wQWN0aXZl
RE9NT2JqZWN0cygpOwogICAgIH0KQEAgLTI4NDQsOCArMjg0NCw4IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmRldGFjaEZyb21QYXJlbnQoKQogICAgIGNsb3NlVVJMKCk7CiAgICAgaGlzdG9yeSgpLnNh
dmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShoaXN0b3J5KCkuY3VycmVudEl0ZW0o
KSk7CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5w
YWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpJblBhZ2VDYWNoZSkgewotICAgICAgICAvLyBz
dG9wQWxsTG9hZGVycygpIG5lZWRzIHRvIGJlIGNhbGxlZCBhZnRlciBkZXRhY2hDaGlsZHJlbigp
IGlmIHRoZSBkb2N1bWVudCBpcyBub3QgaW4gdGhlIHBhZ2UgY2FjaGUsCisgICAgaWYgKG1fZnJh
bWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluQmFj
a0ZvcndhcmRDYWNoZSkgeworICAgICAgICAvLyBzdG9wQWxsTG9hZGVycygpIG5lZWRzIHRvIGJl
IGNhbGxlZCBhZnRlciBkZXRhY2hDaGlsZHJlbigpIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgaW4g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZSwKICAgICAgICAgLy8gYmVjYXVzZSBkZXRhY2hlZENoaWxk
cmVuKCkgd2lsbCB0cmlnZ2VyIHRoZSB1bmxvYWQgZXZlbnQgaGFuZGxlcnMgb2YgYW55IGNoaWxk
IGZyYW1lcywgYW5kIHRob3NlIGV2ZW50CiAgICAgICAgIC8vIGhhbmRsZXJzIG1pZ2h0IHN0YXJ0
IGEgbmV3IHN1YnJlc291cmNlIGxvYWQgaW4gdGhpcyBmcmFtZS4KICAgICAgICAgc3RvcEFsbExv
YWRlcnMoU2hvdWxkQ2xlYXJQcm92aXNpb25hbEl0ZW0sIFN0b3BMb2FkaW5nUG9saWN5OjpBbHdh
eXNTdG9wTG9hZGluZyk7CkBAIC0zMTgwLDcgKzMxODAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpy
ZWNlaXZlZE1haW5SZXNvdXJjZUVycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAg
ICAgICBpZiAobV9zdWJtaXR0ZWRGb3JtVVJMID09IG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRl
ci0+b3JpZ2luYWxSZXF1ZXN0Q29weSgpLnVybCgpKQogICAgICAgICAgICAgbV9zdWJtaXR0ZWRG
b3JtVVJMID0gVVJMKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBt
YWRlIGEgcGFnZSBjYWNoZSBpdGVtLCBidXQgbm93IHdlJ3JlIGJhaWxpbmcgb3V0IGR1ZSB0byBh
biBlcnJvciBiZWZvcmUgd2UgZXZlcgorICAgICAgICAvLyBXZSBtaWdodCBoYXZlIG1hZGUgYSBi
YWNrL2ZvcndhcmQgY2FjaGUgaXRlbSwgYnV0IG5vdyB3ZSdyZSBiYWlsaW5nIG91dCBkdWUgdG8g
YW4gZXJyb3IgYmVmb3JlIHdlIGV2ZXIKICAgICAgICAgLy8gdHJhbnNpdGlvbmVkIHRvIHRoZSBu
ZXcgcGFnZSAoYmVmb3JlIFdlYkZyYW1lU3RhdGUgPT0gY29tbWl0KS4gIFRoZSBnb2FsIGhlcmUg
aXMgdG8gcmVzdG9yZSBhbnkgc3RhdGUKICAgICAgICAgLy8gc28gdGhhdCB0aGUgZXhpc3Rpbmcg
dmlldyAodGhhdCB3ZW5ldmVyIGdvdCBmYXIgZW5vdWdoIHRvIHJlcGxhY2UpIGNhbiBjb250aW51
ZSBiZWluZyB1c2VkLgogICAgICAgICBoaXN0b3J5KCkuaW52YWxpZGF0ZUN1cnJlbnRJdGVtQ2Fj
aGVkUGFnZSgpOwpAQCAtMzIzMSw3ICszMjMxLDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxk
UGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbihib29sIGlzRm9ybVN1Ym1pc3Npb24sIGNvbnN0IFMK
ICAgICByZXR1cm4gKCFpc0Zvcm1TdWJtaXNzaW9uIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGh0dHBNZXRob2QsICJnZXQiKSkKICAgICAgICAgJiYgIWlzUmVsb2FkKGxvYWRUeXBl
KQogICAgICAgICAmJiBsb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlOjpTYW1lCi0gICAgICAgICYm
IG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdl
Q2FjaGUKKyAgICAgICAgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3Rh
dGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlCiAgICAgICAgICYmICFzaG91bGRS
ZWxvYWQobV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKSwgdXJsKQogICAgICAgICAvLyBXZSBkb24n
dCB3YW50IHRvIGp1c3Qgc2Nyb2xsIGlmIGEgbGluayBmcm9tIHdpdGhpbiBhCiAgICAgICAgIC8v
IGZyYW1lc2V0IGlzIHRyeWluZyB0byByZWxvYWQgdGhlIGZyYW1lc2V0IGludG8gX3RvcC4KQEAg
LTMzMTUsMTMgKzMzMTUsMTMgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hVbmxvYWRFdmVu
dHMoVW5sb2FkRXZlbnRQb2xpY3kgdW5sb2FkRXZlbnRQb2xpY3kpCiAgICAgICAgIGlmIChtX3Bh
Z2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCA9PSBQYWdlRGlzbWlzc2FsVHlwZTo6Tm9u
ZSkgewogICAgICAgICAgICAgaWYgKHVubG9hZEV2ZW50UG9saWN5ID09IFVubG9hZEV2ZW50UG9s
aWN5VW5sb2FkQW5kUGFnZUhpZGUpIHsKICAgICAgICAgICAgICAgICBtX3BhZ2VEaXNtaXNzYWxF
dmVudEJlaW5nRGlzcGF0Y2hlZCA9IFBhZ2VEaXNtaXNzYWxUeXBlOjpQYWdlSGlkZTsKLSAgICAg
ICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50
KFBhZ2VUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucGFnZWhpZGVFdmVudCwg
bV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRv
RW50ZXJQYWdlQ2FjaGUpLCBtX2ZyYW1lLmRvY3VtZW50KCkpOworICAgICAgICAgICAgICAgIG1f
ZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRp
b25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJC
YWNrRm9yd2FyZENhY2hlKSwgbV9mcmFtZS5kb2N1bWVudCgpKTsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgLy8gRklYTUU6IHVwZGF0ZSBQYWdlIFZpc2liaWxpdHkgc3RhdGUgaGVyZS4K
ICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY3NzAKIAotICAgICAgICAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3Rh
dGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpIHsKKyAgICAgICAgICAgIGlmIChtX2Zy
YW1lLmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJ
bkJhY2tGb3J3YXJkQ2FjaGUpIHsKICAgICAgICAgICAgICAgICBSZWY8RXZlbnQ+IHVubG9hZEV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnVubG9hZEV2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICAgICAgICAgICAgICAvLyBU
aGUgRG9jdW1lbnRMb2FkZXIgKGFuZCB0aHVzIGl0cyBMb2FkVGltaW5nKSBtaWdodCBnZXQgZGVz
dHJveWVkCiAgICAgICAgICAgICAgICAgLy8gd2hpbGUgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50LCBz
byBwcm90ZWN0IGl0IHRvIHByZXZlbnQgd3JpdGluZyB0aGUgZW5kCkBAIC0zMzQ1LDcgKzMzNDUs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkaXNwYXRjaFVubG9hZEV2ZW50cyhVbmxvYWRFdmVudFBv
bGljeSB1bmxvYWRFdmVudFBvbGljeSkKICAgICBpZiAoIW1fZnJhbWUuZG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3Rh
dGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKG1fZnJhbWUuZG9jdW1l
bnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRG9uJ3QgcmVtb3ZlIGV2ZW50IGxp
c3RlbmVycyBmcm9tIGEgdHJhbnNpdGlvbmFsIGVtcHR5IGRvY3VtZW50IChzZWUgYnVnIDI4NzE2
IGZvciBtb3JlIGluZm9ybWF0aW9uKS4KQEAgLTM1MDUsMTMgKzM1MDUsMTMgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWUKIAogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUodHlwZSkpIHsK
ICAgICAgICAgYXV0byYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtX2ZyYW1lLnBhZ2UoKS0+
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKLSAgICAgICAgaWYgKGhpc3RvcnkoKS5wcm92aXNp
b25hbEl0ZW0oKSAmJiBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCktPmlzSW5QYWdlQ2FjaGUo
KSkgewotICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNhY2hlS2V5KCksIERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIERpYWdub3N0aWNMb2dnaW5nUmVz
dWx0UGFzcywgU2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICBpZiAoaGlzdG9yeSgpLnByb3Zp
c2lvbmFsSXRlbSgpICYmIGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKS0+aXNJbkJhY2tGb3J3
YXJkQ2FjaGUoKSkgeworICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0Zvcndh
cmRDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFn
bm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAg
IGxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSgpOwogICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5OiBjYW4n
dCBjb250aW51ZSBsb2FkaW5nIGZyYW1lIGJlY2F1c2UgaXQgd2lsbCBiZSBsb2FkZWQgZnJvbSBj
YWNoZSAoZnJhbWUgPSAlcCwgbWFpbiA9ICVkKSIsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZy
YW1lKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnBhZ2VDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJp
ZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVz
KTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpLCBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ1Jl
c3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICB9CiAKICAgICBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZEZyYW1lID0g
bWFrZVJlZihtX2ZyYW1lKV0gKCkgbXV0YWJsZSB7CkBAIC0zNjgwLDcgKzM2ODAsNyBAQCBib29s
IEZyYW1lTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9yWEZyYW1lT3B0aW9ucyhjb25zdCBT
dHJpbmcmIGNvbnRlbnQsIGNvbgogdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFByb3Zpc2lvbmFsSXRl
bUZyb21DYWNoZWRQYWdlKCkKIHsKICAgICBEb2N1bWVudExvYWRlciogcHJvdmlzaW9uYWxMb2Fk
ZXIgPSBwcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCk7Ci0gICAgTE9HKEJhY2tGb3J3YXJkQ2Fj
aGUsICJXZWJDb3JlUGFnZUNhY2hlOiBMb2FkaW5nIHByb3Zpc2lvbmFsIERvY3VtZW50TG9hZGVy
ICVwIHdpdGggVVJMICclcycgZnJvbSBDYWNoZWRQYWdlIiwgcHJvdmlzaW9uYWxEb2N1bWVudExv
YWRlcigpLCBwcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCktPnVybCgpLnN0cmluZ0NlbnRlckVs
bGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhCYWNrRm9yd2FyZENh
Y2hlLCAiRnJhbWVMb2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSBMb2Fk
aW5nIHByb3Zpc2lvbmFsIERvY3VtZW50TG9hZGVyICVwIHdpdGggVVJMICclcycgZnJvbSBDYWNo
ZWRQYWdlIiwgcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpLCBwcm92aXNpb25hbERvY3VtZW50
TG9hZGVyKCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5k
YXRhKCkpOwogCiAgICAgcHJlcGFyZUZvckxvYWRTdGFydCgpOwogCkBAIC0zNzY4LDcgKzM3Njgs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJ
dGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbQogCiAgICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRp
bnVpbmdTdGF0ZT4gY29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0
YXRlLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpZZXMgPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJ
dGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAKLSAgICBpZiAoQ2Fj
aGVkUGFnZSogY2FjaGVkUGFnZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1f
ZnJhbWUucGFnZSgpKSkgeworICAgIGlmIChDYWNoZWRQYWdlKiBjYWNoZWRQYWdlID0gQmFja0Zv
cndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJhbWUucGFnZSgpKSkgewogICAg
ICAgICBhdXRvIGRvY3VtZW50TG9hZGVyID0gY2FjaGVkUGFnZS0+ZG9jdW1lbnRMb2FkZXIoKTsK
ICAgICAgICAgbV9jbGllbnQudXBkYXRlQ2FjaGVkRG9jdW1lbnRMb2FkZXIoKmRvY3VtZW50TG9h
ZGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBhMzcxNmQ5ZWZiYmE5
OGQ0NjRhOWY5YTM0MThiNDk2NjJjZTkzM2NlLi41YjNhYzEwNDVhMzBjOGI2YjczMjYxMjUxNzQz
ZGYxODYwOWNiMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTQ3LDcg
KzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BBbGxMb2FkZXJzQW5kQ2hlY2tDb21wbGV0
ZW5lc3MoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BBbGxMb2FkZXJzKENsZWFyUHJv
dmlzaW9uYWxJdGVtUG9saWN5ID0gU2hvdWxkQ2xlYXJQcm92aXNpb25hbEl0ZW0sIFN0b3BMb2Fk
aW5nUG9saWN5ID0gU3RvcExvYWRpbmdQb2xpY3k6OlByZXZlbnREdXJpbmdVbmxvYWRFdmVudHMp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcEZvclVzZXJDYW5jZWwoYm9vbCBkZWZlckNo
ZWNrTG9hZENvbXBsZXRlID0gZmFsc2UpOwotICAgIHZvaWQgc3RvcEZvclBhZ2VDYWNoZSgpOwor
ICAgIHZvaWQgc3RvcEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB2b2lkIHN0b3AoKTsKICAg
ICB2b2lkIHN0b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9saWN5KTsKICAgICBib29sIGNsb3NlVVJM
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDhjN2Yx
NzVmMDhjOWQxNGJkM2ZmMTUyYzI2MzE2MWIwMGVmYmIxYTcuLjk4ZGY5NDVmNTI4N2Q2MTc3NGIz
MmQzZmVkOTRjNGVlYTk3MGZlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNsaWVudCBmb3JjZWQgdGhlIGxh
eW91dC4KLSAgICB2aXJ0dWFsIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hl
KCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBmb3JjZUxheW91dE9uUmVzdG9yZUZyb21CYWNrRm9y
d2FyZENhY2hlKCkgPSAwOwogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9y
Tm9uSFRNTCgpID0gMDsKIApAQCAtMjc4LDcgKzI3OCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAg
IHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgPSAwOwogCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSA9IDA7IC8vIENhbiBjaGFu
Z2UgZHVlIHRvIG5hdmlnYXRpb24gb3IgRE9NIG1vZGlmaWNhdGlvbi4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggMDZhNzE0ZmFiYjNiYTBhN2Yx
MjVlMDJlM2YwNjgwNmNmM2NhMzE4ZC4uNjRmMTkxMzFmYmQzYjA0OGRiNTJmZjkyODgwNWRkYjM3
ODU5Y2M5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlzdG9y
eUNvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKQEAgLTQ0LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJIaXN0b3J5SXRl
bS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAi
UGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRl
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoLmgi
CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3Np
dGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRlbSogaXRlbSkKICAgICBpZiAoIWl0ZW0g
fHwgIWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1l
bnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAg
aWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1l
bnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgaXRlbS0+c2V0U2Nyb2xsUG9zaXRp
b24oZnJhbWVWaWV3LT5jYWNoZWRTY3JvbGxQb3NpdGlvbigpKTsKICAgICBlbHNlCiAgICAgICAg
IGl0ZW0tPnNldFNjcm9sbFBvc2l0aW9uKGZyYW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKSk7CkBA
IC0xMzcsOSArMTM3LDkgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBv
c2l0aW9uQW5kVmlld1N0YXRlKCkKICAgICBhdXRvIHZpZXcgPSBtYWtlUmVmUHRyKG1fZnJhbWUu
dmlldygpKTsKIAogICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBzb21lIHNjcm9sbGluZyByZWxhdGVk
IHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4gd2hlbmV2ZXIgYSBwYWdlIGdvZXMgaW50byB0aGUK
LSAgICAvLyBwYWdlIGNhY2hlIGFuZCBzaW1pbGFyIHdvcmsgdGhhdCBuZWVkcyB0byBvY2N1ciB3
aGVuIGl0IGNvbWVzIG91dC4gVGhpcyBpcyB3aGVyZSB3ZSBkbyB0aGUgd29yaworICAgIC8vIGJh
Y2svZm9yd2FyZCBjYWNoZSBhbmQgc2ltaWxhciB3b3JrIHRoYXQgbmVlZHMgdG8gb2NjdXIgd2hl
biBpdCBjb21lcyBvdXQuIFRoaXMgaXMgd2hlcmUgd2UgZG8gdGhlIHdvcmsKICAgICAvLyB0aGF0
IG5lZWRzIHRvIGhhcHBlbiB3aGVuIHdlIGV4aXQsIGFuZCB0aGUgd29yayB0aGF0IG5lZWRzIHRv
IGhhcHBlbiB3aGVuIHdlIGVudGVyIGlzIGluCi0gICAgLy8gRG9jdW1lbnQ6OnNldElzSW5QYWdl
Q2FjaGUoYm9vbCkuIEl0IHdvdWxkIGJlIG5pY2UgaWYgdGhlcmUgd2FzIG1vcmUgc3ltbWV0cnkg
aW4gdGhlc2Ugc3BvdHMuCisgICAgLy8gRG9jdW1lbnQ6OnNldElzSW5CYWNrRm9yd2FyZENhY2hl
KGJvb2wpLiBJdCB3b3VsZCBiZSBuaWNlIGlmIHRoZXJlIHdhcyBtb3JlIHN5bW1ldHJ5IGluIHRo
ZXNlIHNwb3RzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05ODY5OAogICAgIGlmICh2aWV3KSB7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBh
Z2UoKTsKQEAgLTI2MSw4ICsyNjEsOCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlk
YXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCkKICAgICBpZiAoIWN1cnJlbnRJdGVtKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIC8vIFdoZW4gd2UgYXJlIHByZS1jb21taXQsIHRoZSBjdXJyZW50
SXRlbSBpcyB3aGVyZSBhbnkgcGFnZSBjYWNoZSBkYXRhIHJlc2lkZXMuCi0gICAgc3RkOjp1bmlx
dWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnRh
a2UoKmN1cnJlbnRJdGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAvLyBXaGVuIHdlIGFyZSBw
cmUtY29tbWl0LCB0aGUgY3VycmVudEl0ZW0gaXMgd2hlcmUgYW55IGJhY2svZm9yd2FyZCBjYWNo
ZSBkYXRhIHJlc2lkZXMuCisgICAgc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBh
Z2UgPSBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS50YWtlKCpjdXJyZW50SXRlbSgpLCBt
X2ZyYW1lLnBhZ2UoKSk7CiAgICAgaWYgKCFjYWNoZWRQYWdlKQogICAgICAgICByZXR1cm47CiAK
QEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlkYXRlQ3Vy
cmVudEl0ZW1DYWNoZWRQYWdlKCkKICAgICAKICAgICBBU1NFUlQoY2FjaGVkUGFnZS0+ZG9jdW1l
bnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkpOwogICAgIGlmIChjYWNoZWRQYWdlLT5kb2N1bWVu
dCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSkgewotICAgICAgICBjYWNoZWRQYWdlLT5kb2N1bWVu
dCgpLT5zZXRQYWdlQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgICAg
ICBjYWNoZWRQYWdlLT5kb2N1bWVudCgpLT5zZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUoRG9jdW1l
bnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgICAgIGNhY2hlZFBhZ2UtPmNsZWFyKCk7
CiAgICAgfQogfQpAQCAtMzU1LDcgKzM1NSw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnVw
ZGF0ZUZvclJlbG9hZCgpCiAgICAgTE9HKEhpc3RvcnksICJIaXN0b3J5Q29udHJvbGxlciAlcCB1
cGRhdGVGb3JSZWxvYWQ6IFVwZGF0aW5nIEhpc3RvcnkgZm9yIHJlbG9hZCBpbiBmcmFtZSAlcCAo
bWFpbiBmcmFtZSAlZCkgJXMiLCB0aGlzLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgp
LCBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkgPyBtX2ZyYW1lLmxvYWRlcigpLmRv
Y3VtZW50TG9hZGVyKCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CiAKICAg
ICBpZiAobV9jdXJyZW50SXRlbSkgewotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJl
bW92ZSgqbV9jdXJyZW50SXRlbSk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRv
bigpLnJlbW92ZSgqbV9jdXJyZW50SXRlbSk7CiAgICAgCiAgICAgICAgIGlmIChtX2ZyYW1lLmxv
YWRlcigpLmxvYWRUeXBlKCkgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkIHx8IG1fZnJhbWUubG9h
ZGVyKCkubG9hZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luKQogICAg
ICAgICAgICAgc2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlVG9JdGVtKG1fY3VycmVudEl0
ZW0uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKaW5kZXggZTMxMzFjY2RkYmMwNGJlZjJjZTZkMTY2NzE0
NjFmNGNlYzg1ZDhkZS4uODk5Y2JhNGY5NzVlMmNmMGJjZWQyNTk3Yjc0MmU2YWVlMjQ1YmZlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYKICAgICB9CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5QYWdl
Q2FjaGUoKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Y2FuQ2FjaGVJbkJhY2tGb3J3YXJk
Q2FjaGUoKQogewogICAgIHJldHVybiAhYXBwbGljYXRpb25DYWNoZSgpICYmICFjYW5kaWRhdGVB
cHBsaWNhdGlvbkNhY2hlR3JvdXAoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKaW5kZXggZTA5NGQwODRlZTk0YWJk
ODVkNjZkM2E0ZjRlNTg4MTUzNzE4YTE0MC4uNWIyYWExYzYxYzhjZDZhNzllNzFhZjM3NmQ3ZGRl
ZDQyOTM3Zjg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBtYXliZUxvYWRTeW5jaHJvbm91c2x5KFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mKTsKICAgICB2b2lk
IG1heWJlTG9hZEZhbGxiYWNrU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBS
ZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFJlZlB0cjxTaGFyZWRCdWZmZXI+Jik7
CiAKLSAgICBib29sIGNhbkNhY2hlSW5QYWdlQ2FjaGUoKTsKKyAgICBib29sIGNhbkNhY2hlSW5C
YWNrRm9yd2FyZENhY2hlKCk7CiAKICAgICBTdGF0dXMgc3RhdHVzKCkgY29uc3Q7CiAgICAgYm9v
bCB1cGRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCmluZGV4IDRiMTZmNTk3NjFkOGM3NWE2ZjBiYTAyMWRiYzIwMzM0MDg3ZWVlMDkuLjY5
NmFkOGI0OWEwZGY2NDM0NWJkMWRiNzY3ODI1ZjZkMDhkYTQ3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMTk1LDIzICsxOTUsMjMg
QEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVk
UmVzb3VyY2VMb2FkZXIpCiAgICAgfQogICAgIEZyYW1lJiBmcmFtZSA9ICpjYWNoZWRSZXNvdXJj
ZUxvYWRlci5mcmFtZSgpOwogCi0gICAgLy8gUHJldmVudCBuZXcgbG9hZHMgaWYgd2UgYXJlIGlu
IHRoZSBQYWdlQ2FjaGUgb3IgYmVpbmcgYWRkZWQgdG8gdGhlIFBhZ2VDYWNoZS4KKyAgICAvLyBQ
cmV2ZW50IG5ldyBsb2FkcyBpZiB3ZSBhcmUgaW4gdGhlIEJhY2tGb3J3YXJkQ2FjaGUgb3IgYmVp
bmcgYWRkZWQgdG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgLy8gV2UgcXVlcnkgdGhlIHRv
cCBkb2N1bWVudCBiZWNhdXNlIG5ldyBmcmFtZXMgbWF5IGJlIGNyZWF0ZWQgaW4gcGFnZWhpZGUg
ZXZlbnQgaGFuZGxlcnMKLSAgICAvLyBhbmQgdGhlaXIgcGFnZUNhY2hlU3RhdGUgd2lsbCBub3Qg
cmVmbGVjdCB0aGUgZmFjdCB0aGF0IHRoZXkgYXJlIGFib3V0IHRvIGVudGVyIHBhZ2UKKyAgICAv
LyBhbmQgdGhlaXIgYmFja0ZvcndhcmRDYWNoZVN0YXRlIHdpbGwgbm90IHJlZmxlY3QgdGhlIGZh
Y3QgdGhhdCB0aGV5IGFyZSBhYm91dCB0byBlbnRlciBwYWdlCiAgICAgLy8gY2FjaGUuCiAgICAg
aWYgKGF1dG8qIHRvcERvY3VtZW50ID0gZnJhbWUubWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkgewot
ICAgICAgICBzd2l0Y2ggKHRvcERvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAg
IGNhc2UgRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOgorICAgICAgICBzd2l0Y2ggKHRvcERvY3Vt
ZW50LT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSkgeworICAgICAgICBjYXNlIERvY3VtZW50OjpO
b3RJbkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBE
b2N1bWVudDo6QWJvdXRUb0VudGVyUGFnZUNhY2hlOgorICAgICAgICBjYXNlIERvY3VtZW50OjpB
Ym91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOgogICAgICAgICAgICAgLy8gQmVhY29ucyBhcmUg
YWxsb3dlZCB0byBnbyB0aHJvdWdoIGluICdwYWdlaGlkZScgZXZlbnQgaGFuZGxlcnMuCiAgICAg
ICAgICAgICBpZiAoc2hvdWxkVXNlUGluZ0xvYWQodHlwZSgpKSkKICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFib3V0IHRv
IGVudGVyIHBhZ2UgY2FjaGUgKGZyYW1lID0gJXApIiwgJmZyYW1lKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFib3V0IHRvIGVudGVyIGJhY2svZm9yd2FyZCBj
YWNoZSAoZnJhbWUgPSAlcCkiLCAmZnJhbWUpOwogICAgICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0
aW5nKCk7CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgRG9jdW1lbnQ6OkluUGFn
ZUNhY2hlOgotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibG9hZDogQWxyZWFk
eSBpbiBwYWdlIGNhY2hlIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CisgICAgICAgIGNhc2UgRG9j
dW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZToKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImxvYWQ6IEFscmVhZHkgaW4gYmFjay9mb3J3YXJkIGNhY2hlIChmcmFtZSA9ICVwKSIs
ICZmcmFtZSk7CiAgICAgICAgICAgICBmYWlsQmVmb3JlU3RhcnRpbmcoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDRjNTcx
ZWJmMzg1OTNkM2ZiODhkZTEwYmE3MDk3YTc3N2IwYWJkNDAuLjBiNmI2MGMxZDVjYTAwNjFjNWJj
OGUzZWYwOWU4Y2FlZjZlNTk4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTU1
OCwyNSArNTU4LDI1IEBAIHZvaWQgRE9NV2luZG93OjpyZXNldFVubGVzc1N1c3BlbmRlZEZvckRv
Y3VtZW50U3VzcGVuc2lvbigpCiAgICAgd2lsbERlc3Ryb3lEb2N1bWVudEluRnJhbWUoKTsKIH0K
IAotdm9pZCBET01XaW5kb3c6OnN1c3BlbmRGb3JQYWdlQ2FjaGUoKQordm9pZCBET01XaW5kb3c6
OnN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBp
c1N1c3BlbmRpbmdPYnNlcnZlcnMobV9pc1N1c3BlbmRpbmdPYnNlcnZlcnMsIHRydWUpOwogICAg
IFJFTEVBU0VfQVNTRVJUKGZyYW1lKCkpOwogCiAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNv
cHlUb1ZlY3RvcihtX29ic2VydmVycykpIHsKICAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbnRh
aW5zKG9ic2VydmVyKSkKLSAgICAgICAgICAgIG9ic2VydmVyLT5zdXNwZW5kRm9yUGFnZUNhY2hl
KCk7CisgICAgICAgICAgICBvYnNlcnZlci0+c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsK
ICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlQoZnJhbWUoKSk7CiAKICAgICBtX3N1c3BlbmRlZEZv
ckRvY3VtZW50U3VzcGVuc2lvbiA9IHRydWU7CiB9CiAKLXZvaWQgRE9NV2luZG93OjpyZXN1bWVG
cm9tUGFnZUNhY2hlKCkKK3ZvaWQgRE9NV2luZG93OjpyZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNo
ZSgpCiB7CiAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVy
cykpIHsKICAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkKLSAgICAg
ICAgICAgIG9ic2VydmVyLT5yZXN1bWVGcm9tUGFnZUNhY2hlKCk7CisgICAgICAgICAgICBvYnNl
cnZlci0+cmVzdW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB9CiAKICAgICBtX3N1c3Bl
bmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbiA9IGZhbHNlOwpAQCAtMjA1Nyw3ICsyMDU3LDcgQEAg
dm9pZCBET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYgKCEtLW1fc2Ny
b2xsRXZlbnRMaXN0ZW5lckNvdW50ICYmIGRvY3VtZW50ID09ICZkb2N1bWVudC0+dG9wRG9jdW1l
bnQoKSkgewogICAgICAgICBGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpOwotICAgICAgICBp
ZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSAmJiBkb2N1bWVudC0+cGFnZUNhY2hlU3RhdGUoKSA9
PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+
cGFnZSgpICYmIGRvY3VtZW50LT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6
Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21l
KCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKCpmcmFtZSwgZmFsc2UpOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDBkYTRmYjAzYjAyNjFjMDhjODc2
M2I4YzhlMzVkNWE3ZDA3NjM4NGUuLmQzNjgyMGFlM2VhYmYzNWM3YmE2OGM3MWVkNDlkZGU1YjJh
YjUyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMTIzLDggKzEyMyw4IEBAIHB1Ymxp
YzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHN1c3BlbmRGb3JQYWdlQ2FjaGUoKSB7IH0KLSAgICAgICAgdmlydHVh
bCB2b2lkIHJlc3VtZUZyb21QYWdlQ2FjaGUoKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHN1
c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXN1
bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
c3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hlZEZyYW1lKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUoKSB7IH0KICAgICAgICAgdmlydHVhbCB2
b2lkIHdpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKSB7IH0KQEAgLTEzNCw4ICsxMzQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAog
ICAgIHZvaWQgcmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JEb2N1bWVudFN1c3BlbnNpb24oKTsKLSAg
ICB2b2lkIHN1c3BlbmRGb3JQYWdlQ2FjaGUoKTsKLSAgICB2b2lkIHJlc3VtZUZyb21QYWdlQ2Fj
aGUoKTsKKyAgICB2b2lkIHN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgdm9pZCBy
ZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUq
IGZyYW1lKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0
ZW5zaW9uLmNwcAppbmRleCAyYjdiOGMzMmFlY2UwZDNhNDc4ZjdmMDNhZDEwMmIxZmJmOTk2ODc2
Li41YzgyZTYwN2I0NWJiMTUzYjhiMDJmZTgyMGU5YTk5OGViZjUzNjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIEZyYW1l
KiBET01XaW5kb3dFeHRlbnNpb246OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV93aW5kb3cg
PyBtX3dpbmRvdy0+ZnJhbWUoKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQgRE9NV2luZG93RXh0ZW5z
aW9uOjpzdXNwZW5kRm9yUGFnZUNhY2hlKCkKK3ZvaWQgRE9NV2luZG93RXh0ZW5zaW9uOjpzdXNw
ZW5kRm9yQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgLy8gQ2FsbGluZyBvdXQgdG8gdGhlIGNs
aWVudCBtaWdodCByZXN1bHQgaW4gdGhpcyBET01XaW5kb3dFeHRlbnNpb24gYmVpbmcgZGVzdHJv
eWVkCiAgICAgLy8gd2hpbGUgdGhlcmUgaXMgc3RpbGwgd29yayB0byBkby4KQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBET01XaW5kb3dFeHRlbnNpb246OnN1c3BlbmRGb3JQYWdlQ2FjaGUoKQogICAg
IG1fZGlzY29ubmVjdGVkRnJhbWUgPSBXVEZNb3ZlKGZyYW1lKTsKIH0KIAotdm9pZCBET01XaW5k
b3dFeHRlbnNpb246OnJlc3VtZUZyb21QYWdlQ2FjaGUoKQordm9pZCBET01XaW5kb3dFeHRlbnNp
b246OnJlc3VtZUZyb21CYWNrRm9yd2FyZENhY2hlKCkKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7
CiAgICAgQVNTRVJUKG1fZGlzY29ubmVjdGVkRnJhbWUgPT0gZnJhbWUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaAppbmRleCA0ODBkOThlZTE3MDM4NTM1NGU4Mjhh
N2E4ZDM2MzY0MjU3YjAzNjJmLi45NGVkNmNhZWRjM2E0ZjdjNTQ3Y2ZhNjgzOWM2YmI1MzcxMWQ0
YTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmgKQEAgLTQ0LDgg
KzQ0LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkRPTVdpbmRvd0V4dGVuc2lv
bigpOwogCi0gICAgdm9pZCBzdXNwZW5kRm9yUGFnZUNhY2hlKCkgZmluYWw7Ci0gICAgdm9pZCBy
ZXN1bWVGcm9tUGFnZUNhY2hlKCkgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kRm9yQmFja0Zvcndh
cmRDYWNoZSgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBm
aW5hbDsKICAgICB2b2lkIHdpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5DYWNoZWRGcmFtZSgpIGZp
bmFsOwogICAgIHZvaWQgd2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkgZmluYWw7CiAg
ICAgdm9pZCB3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKaW5kZXggYjllNjE4NjQ4
OWQ0OGZhZGZjYjkzNDViMjJkZjEwNzJhMWI1NjVhOS4uOThiZDBjNzhjZDAwNmNkOWU4NjYwOTZh
YjJkOTg3MGQ0NGI1NTNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0tleXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzLmNwcApAQCAtMjA4LDE0ICsyMDgsMTQgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6bm90SW5NZW1vcnlDYWNoZUtleSgpCiAgICAgcmV0dXJuICJub3RJbk1lbW9yeUNh
Y2hlIl9zOwogfQogCi1TdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXko
KQorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpCiB7
Ci0gICAgcmV0dXJuICJwYWdlQ2FjaGUiX3M7CisgICAgcmV0dXJuICJiYWNrRm9yd2FyZENhY2hl
Il9zOwogfQogCi1TdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVGYWlsdXJl
S2V5KCkKK1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmJhY2tGb3J3YXJkQ2FjaGVGYWls
dXJlS2V5KCkKIHsKLSAgICByZXR1cm4gInBhZ2VDYWNoZUZhaWx1cmUiX3M7CisgICAgcmV0dXJu
ICJiYWNrRm9yd2FyZENhY2hlRmFpbHVyZSJfczsKIH0KIAogU3RyaW5nIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6bm9Eb2N1bWVudExvYWRlcktleSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFn
bm9zdGljTG9nZ2luZ0tleXMuaAppbmRleCBkNDU5YzRkMjRmMzE0MTVlMjZkOThlNGRlNTgwMDQ1
YmY2NWVjYWZiLi45NzJhMGRmYjM0NTgxYWEwYTlkZmI2YWIyOTI1YTQ1Y2IwOWI1Y2I2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTExNCw4ICsx
MTQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBub3RJbk1lbW9yeUNhY2hlS2V5KCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBvY2N1cnJlZEtleSgpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgb3RoZXJLZXkoKTsKLSAgICBzdGF0aWMgU3RyaW5n
IHBhZ2VDYWNoZUtleSgpOwotICAgIHN0YXRpYyBTdHJpbmcgcGFnZUNhY2hlRmFpbHVyZUtleSgp
OworICAgIHN0YXRpYyBTdHJpbmcgYmFja0ZvcndhcmRDYWNoZUtleSgpOworICAgIHN0YXRpYyBT
dHJpbmcgYmFja0ZvcndhcmRDYWNoZUZhaWx1cmVLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHBh
Z2VDb250YWluc0F0TGVhc3RPbmVNZWRpYUVuZ2luZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcg
cGFnZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcGFn
ZUNvbnRhaW5zTWVkaWFFbmdpbmVLZXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAK
aW5kZXggNzE0ZTlkYzA4YjIxNTYyNjE3OTgxMWYzMmE5M2U1M2Y3NjZjM2U4Zi4uZjFmNWIzMmIw
NjY3NzAzZjIxMzQzYWZjOGY1Mjc1NzQ2MWFlZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNv
dXJjZS5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpzY2hlZHVsZUlu
aXRpYWxDb25uZWN0KCkKIAogdm9pZCBFdmVudFNvdXJjZTo6c2NoZWR1bGVSZWNvbm5lY3QoKQog
ewotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNw
ZW5kZWRGb3JQYWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKICAgICBtX3N0YXRl
ID0gQ09OTkVDVElORzsKICAgICBtX2Nvbm5lY3RUaW1lci5zdGFydE9uZVNob3QoMV9tcyAqIG1f
cmVjb25uZWN0RGVsYXkpOwogICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOwpAQCAtMTk5LDcgKzE5
OSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25n
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0g
Q09OTkVDVElORyk7CiAgICAgQVNTRVJUKG1fcmVxdWVzdEluRmxpZ2h0KTsKLSAgICBSRUxFQVNF
X0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2lzU3VzcGVuZGVkRm9yUGFnZUNh
Y2hlKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2lz
U3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBpZiAoIXJlc3BvbnNlSXNWYWxp
ZChyZXNwb25zZSkpIHsKICAgICAgICAgZG9FeHBsaWNpdExvYWRDYW5jZWxsYXRpb24oKTsKQEAg
LTIyMSw3ICsyMjEsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpkaWRSZWNlaXZlRGF0YShjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IE9QRU4pOwog
ICAgIEFTU0VSVChtX3JlcXVlc3RJbkZsaWdodCk7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSk7CisgICAgUkVM
RUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvckJh
Y2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgYXBwZW5kKG1fcmVjZWl2ZUJ1ZmZlciwgbV9kZWNvZGVy
LT5kZWNvZGUoZGF0YSwgbGVuZ3RoKSk7CiAgICAgcGFyc2VFdmVudFN0cmVhbSgpOwpAQCAtMjMx
LDcgKzIzMSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQg
bG9uZykKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBPUEVOKTsKICAgICBBU1NFUlQobV9yZXF1
ZXN0SW5GbGlnaHQpOwotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW1faXNTdXNwZW5kZWRGb3JQYWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsK
IAogICAgIGFwcGVuZChtX3JlY2VpdmVCdWZmZXIsIG1fZGVjb2Rlci0+Zmx1c2goKSk7CiAgICAg
cGFyc2VFdmVudFN0cmVhbSgpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6
OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgQVNTRVJUKG1fcmVxdWVz
dEluRmxpZ2h0KTsKIAogICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgdGhlIGxvYWQgZ2V0
cyBjYW5jZWxsZWQgb24gbmF2aWdhdGluZyBhd2F5LiBXZSBvbmx5IGZpcmUgYW4gZXJyb3IgZXZl
bnQgYW5kIGF0dGVtcHQgdG8gcmVjb25uZWN0Ci0gICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcg
cmVzdW1lZCBmcm9tIHBhZ2UgY2FjaGUuCisgICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcgcmVz
dW1lZCBmcm9tIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRp
b24oKSAmJiAhbV9pc0RvaW5nRXhwbGljaXRDYW5jZWxsYXRpb24pIHsKICAgICAgICAgbV9zaG91
bGRSZWNvbm5lY3RPblJlc3VtZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdEluRmxpZ2h0ID0g
ZmFsc2U7CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBFdmVudFNvdXJjZTo6ZGlkRmFpbChjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHZvaWQgRXZlbnRTb3VyY2U6OmFib3J0Q29ubmVjdGlv
bkF0dGVtcHQoKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IENPTk5FQ1RJTkcpOwotICAgIFJF
TEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JQ
YWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
IW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGlmIChtX3JlcXVlc3RJ
bkZsaWdodCkKICAgICAgICAgZG9FeHBsaWNpdExvYWRDYW5jZWxsYXRpb24oKTsKQEAgLTQxMCwx
OSArNDEwLDE5IEBAIGJvb2wgRXZlbnRTb3VyY2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3Bl
bnNpb24oKSBjb25zdAogCiB2b2lkIEV2ZW50U291cmNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb24gcmVhc29uKQogewotICAgIGlmIChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6
UGFnZUNhY2hlKQorICAgIGlmIChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0Zv
cndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pc1N1c3BlbmRlZEZvclBhZ2VD
YWNoZSA9IHRydWU7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFtX3JlcXVlc3RJ
bkZsaWdodCwgIkxvYWRzIGdldCBjYW5jZWxsZWQgYmVmb3JlIGVudGVyaW5nIFBhZ2VDYWNoZS4i
KTsKKyAgICBtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSA9IHRydWU7CisgICAgUkVM
RUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFtX3JlcXVlc3RJbkZsaWdodCwgIkxvYWRzIGdldCBj
YW5jZWxsZWQgYmVmb3JlIGVudGVyaW5nIHRoZSBCYWNrRm9yd2FyZENhY2hlLiIpOwogfQogCiB2
b2lkIEV2ZW50U291cmNlOjpyZXN1bWUoKQogewotICAgIGlmICghbV9pc1N1c3BlbmRlZEZvclBh
Z2VDYWNoZSkKKyAgICBpZiAoIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX2lzU3VzcGVuZGVkRm9yUGFnZUNhY2hlID0gZmFsc2U7Cisg
ICAgbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKICAgICBpZiAoc3Rk
OjpleGNoYW5nZShtX3Nob3VsZFJlY29ubmVjdE9uUmVzdW1lLCBmYWxzZSkpIHsKICAgICAgICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbdGhpcywgcGVuZGluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7
CiAgICAgICAgICAgICBpZiAoIWlzQ29udGV4dFN0b3BwZWQoKSkKQEAgLTQzMyw3ICs0MzMsNyBA
QCB2b2lkIEV2ZW50U291cmNlOjpyZXN1bWUoKQogCiB2b2lkIEV2ZW50U291cmNlOjpkaXNwYXRj
aE1lc3NhZ2VFdmVudCgpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSk7CisgICAgUkVMRUFTRV9BU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2Fj
aGUpOwogCiAgICAgaWYgKCFtX2N1cnJlbnRseVBhcnNlZEV2ZW50SWQuaXNOdWxsKCkpCiAgICAg
ICAgIG1fbGFzdEV2ZW50SWQgPSBXVEZNb3ZlKG1fY3VycmVudGx5UGFyc2VkRXZlbnRJZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50U291cmNlLmgKaW5kZXggZDc4MTAxM2U1OWNiNmY4NjVkZGZiNWQ0ZmIw
YzM4NTFkMWVkNzA4ZS4uMzU1OTE0NGY3ZWQyMjlhYWM1MGYwN2E0YjU0YjU3NDhjZWViMzcwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaApAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6
CiAgICAgVmVjdG9yPFVDaGFyPiBtX3JlY2VpdmVCdWZmZXI7CiAgICAgYm9vbCBtX2Rpc2NhcmRU
cmFpbGluZ05ld2xpbmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZXF1ZXN0SW5GbGlnaHQgeyBm
YWxzZSB9OwotICAgIGJvb2wgbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzRG9pbmdFeHBsaWNpdENhbmNlbGxhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3Nob3VsZFJlY29ubmVjdE9uUmVzdW1lIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApp
bmRleCA2NDY2YTYwMjI2MmVmNjM2N2ZmMWJlM2M2YTk1MzEyMzE1ZmZmNmJiLi42ZjA3N2M0MGJm
OTMyNTUyMDIzYjdjZDI1ZGE1MTk1NzYyM2ExMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAKICNpbmNsdWRlICJBcHBseVN0eWxl
Q29tbWFuZC5oIgorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNr
Rm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDU1NBbmltYXRpb25Db250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCkBAIC03Myw3ICs3NCw2
IEBACiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlByb2Nl
c3NXYXJtaW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVDZWxsLmgiCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBGcmFtZTo6c2V0
VmlldyhSZWZQdHI8RnJhbWVWaWV3PiYmIHZpZXcpCiAgICAgLy8gUHJlcGFyZSBmb3IgZGVzdHJ1
Y3Rpb24gbm93LCBzbyBhbnkgdW5sb2FkIGV2ZW50IGhhbmRsZXJzIGdldCBydW4gYW5kIHRoZSBE
T01XaW5kb3cgaXMKICAgICAvLyBub3RpZmllZC4gSWYgd2Ugd2FpdCB1bnRpbCB0aGUgdmlldyBp
cyBkZXN0cm95ZWQsIHRoZW4gdGhpbmdzIHdvbid0IGJlIGhvb2tlZCB1cCBlbm91Z2ggZm9yCiAg
ICAgLy8gdGhlc2UgY2FsbHMgdG8gd29yay4KLSAgICBpZiAoIXZpZXcgJiYgbV9kb2MgJiYgbV9k
b2MtPnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKQorICAgIGlmICgh
dmlldyAmJiBtX2RvYyAmJiBtX2RvYy0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1l
bnQ6OkluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgbV9kb2MtPnByZXBhcmVGb3JEZXN0cnVj
dGlvbigpOwogICAgIAogICAgIGlmIChtX3ZpZXcpCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBG
cmFtZTo6c2V0RG9jdW1lbnQoUmVmUHRyPERvY3VtZW50PiYmIG5ld0RvY3VtZW50KQogICAgIH0K
ICNlbmRpZgogCi0gICAgaWYgKG1fZG9jICYmIG1fZG9jLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IERv
Y3VtZW50OjpJblBhZ2VDYWNoZSkKKyAgICBpZiAobV9kb2MgJiYgbV9kb2MtPmJhY2tGb3J3YXJk
Q2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIG1f
ZG9jLT5wcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAgIG1fZG9jID0gbmV3RG9jdW1lbnQu
Y29weVJlZigpOwpAQCAtNzA2LDcgKzcwNiw3IEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdl
KCkKICAgICAvLyAtIFdoZW4gY2FsbGluZyBGcmFtZTo6c2V0VmlldygpIHdpdGggYSBudWxsIEZy
YW1lVmlldyouIFRoaXMgaXMgYWx3YXlzIGRvbmUgYmVmb3JlIGNhbGxpbmcKICAgICAvLyAgIEZy
YW1lOjp3aWxsRGV0YWNoUGFnZSAodGhpcyBmdW5jdGlvbi4pIEhlbmNlIHRoZSBhc3NlcnRpb24g
YmVsb3cuCiAgICAgLy8KLSAgICAvLyAtIFdoZW4gYWRkaW5nIGEgZG9jdW1lbnQgdG8gdGhlIHBh
Z2UgY2FjaGUsIHRoZSB0cmVlIGlzIHRvcm4gZG93biBiZWZvcmUgaW5zdGFudGlhdGluZworICAg
IC8vIC0gV2hlbiBhZGRpbmcgYSBkb2N1bWVudCB0byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0
aGUgdHJlZSBpcyB0b3JuIGRvd24gYmVmb3JlIGluc3RhbnRpYXRpbmcKICAgICAvLyAgIHRoZSBD
YWNoZWRQYWdlK0NhY2hlZEZyYW1lIG9iamVjdCB0cmVlLgogICAgIEFTU0VSVCghZG9jdW1lbnQo
KSB8fCAhZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAppbmRleCBiMGEzZTU2NDgxNjUxNGU0ZDAxMjQ3NjZmNmQ1MzY4Y2ZiZTM5YTc5Li43OGMz
ZGI0NTNjZDk1NTlkZTg5NzgxMTc0MTI0Y2IyZTQ4MWU5MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgog
I2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNTU0FuaW1hdGlv
bkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgpAQCAtNjksNyArNzAsNiBA
QAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdl
T3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgpAQCAtNTUzLDkgKzU1Myw5IEBAIFJlZjxTY3Jv
bGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKQogICAgIHJldHVybiBTY3JvbGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIob3JpZW50
YXRpb24pOwogfQogCi12b2lkIEZyYW1lVmlldzo6ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKQor
dm9pZCBGcmFtZVZpZXc6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7Ci0gICAg
Ly8gV2hlbiByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLCB0aGUgbWFpbiBmcmFtZSBzdGF5cyBp
biBwbGFjZSB3aGlsZSBzdWJmcmFtZXMgZ2V0IHN3YXBwZWQgaW4uCisgICAgLy8gV2hlbiByZXN0
b3JpbmcgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUsIHRoZSBtYWluIGZyYW1lIHN0YXlzIGluIHBs
YWNlIHdoaWxlIHN1YmZyYW1lcyBnZXQgc3dhcHBlZCBpbi4KICAgICAvLyBXZSB1cGRhdGUgdGhl
IHNjcm9sbGFibGUgYXJlYSBzZXQgdG8gZW5zdXJlIHRoYXQgc2Nyb2xsaW5nIGRhdGEgc3RydWN0
dXJlcyBnZXQgaW52YWxpZGF0ZWQuCiAgICAgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoKTsKIH0K
QEAgLTYwMSw3ICs2MDEsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Q29udGVudHNTaXplKGNvbnN0
IEludFNpemUmIHNpemUpCiAKICAgICBpZiAoZnJhbWUoKS5pc01haW5GcmFtZSgpKSB7CiAgICAg
ICAgIHBhZ2UtPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRpZENoYW5nZURvY3VtZW50U2l6ZSgp
OwotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckNvbnRlbnRzU2l6
ZUNoYW5nZWQoKnBhZ2UpOworICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5t
YXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFuZ2VkKCpwYWdlKTsKICAgICB9CiAgICAgbGF5b3V0
Q29udGV4dCgpLmVuYWJsZVNldE5lZWRzTGF5b3V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAppbmRleCA0MDc4ZWVmN2Y4MzhhY2NhMzgzY2MxZDVlNzdlZDhiNTA4NzQzOTVkLi5lZjUxOTQz
MmU0MmRiNTNhOGM1MTI1MzlhYzNkNzU1ZjM2YTVkMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKQEAgLTU1NCw3ICs1NTQsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBQYWdlIGFuZCBGcmFtZVZp
ZXcgYm90aCBzdG9yZSBhIFBhZ2luYXRpb24gdmFsdWUuIFBhZ2U6OnBhZ2luYXRpb24oKSBpcyBz
ZXQgb25seSBieSBBUEksCiAgICAgLy8gYW5kIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIGlzIHNl
dCBvbmx5IGJ5IENTUy4gUGFnZTo6cGFnaW5hdGlvbigpIHdpbGwgYWZmZWN0IGFsbAotICAgIC8v
IEZyYW1lVmlld3MgaW4gdGhlIHBhZ2UgY2FjaGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24o
KSBvbmx5IGFmZmVjdHMgdGhlIGN1cnJlbnQKKyAgICAvLyBGcmFtZVZpZXdzIGluIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBvbmx5IGFmZmVjdHMg
dGhlIGN1cnJlbnQKICAgICAvLyBGcmFtZVZpZXcuIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIHdp
bGwgcmV0dXJuIG1fcGFnaW5hdGlvbiBpZiBpdCBoYXMgYmVlbiBzZXQuIE90aGVyd2lzZSwKICAg
ICAvLyBpdCB3aWxsIHJldHVybiBQYWdlOjpwYWdpbmF0aW9uKCkgc2luY2UgY3VycmVudGx5IHRo
ZXJlIGFyZSBubyBjYWxsZXJzIHRoYXQgbmVlZCB0bwogICAgIC8vIGRpc3Rpbmd1aXNoIGJldHdl
ZW4gdGhlIHR3by4KQEAgLTY0Myw3ICs2NDMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAotICAg
IHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICB2b2lkIGRpZFJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgdm9pZCB3aWxsRGVzdHJveVJlbmRlclRyZWUoKTsK
ICAgICB2b2lkIGRpZERlc3Ryb3lSZW5kZXJUcmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCAzMjJmNjc5N2I5NDZkMWRjOWNkNThm
ODI4ODYwZGJhZGNiZDcxZjQxLi4xYzllMzE1NWFlNjgxYWQ1MGM0NzJmZjliYzEzZWZjMzRmNjEz
MWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAKQEAgLTE0NSw4ICsxNDUsOCBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91
dCgpCiAgICAgQVNTRVJUKCF2aWV3KCkuaXNQYWludGluZygpKTsKICAgICBBU1NFUlQoZnJhbWUo
KS52aWV3KCkgPT0gJnZpZXcoKSk7CiAgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7Ci0g
ICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVu
dDo6Tm90SW5QYWdlQ2FjaGUKLSAgICAgICAgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5wYWdlQ2Fj
aGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOworICAgIEFTU0VS
VChmcmFtZSgpLmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5i
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6QWJvdXRUb0VudGVyQmFja0Zvcndh
cmRDYWNoZSk7CiAgICAgaWYgKCFjYW5QZXJmb3JtTGF5b3V0KCkpIHsKICAgICAgICAgTE9HKExh
eW91dCwgIiAgaXMgbm90IGFsbG93ZWQsIGJhaWxpbmciKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
MzM0LDcgKzMzNCw3IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6ZGlzYWJsZVNldE5l
ZWRzTGF5b3V0KCkKIAogdm9pZCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpzY2hlZHVsZUxheW91
dCgpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhlIHBhZ2UgaXMgbm90IGlu
IHRoZSBwYWdlIGNhY2hlLCBidXQgdGhhdCBpcyBjYXVzaW5nCisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhc3NlcnQgdGhlIHBhZ2UgaXMgbm90IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGJ1
dCB0aGF0IGlzIGNhdXNpbmcKICAgICAvLyB0b28gbWFueSBmYWxzZSBhc3NlcnRpb25zLiBTZWUg
PHJkYXI6Ly9wcm9ibGVtLzcyMTgxMTg+LgogICAgIEFTU0VSVChmcmFtZSgpLnZpZXcoKSA9PSAm
dmlldygpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5jcHAKaW5kZXggMGQ3M2U0
YjM0MTY0ZjllNTdlN2ZjMzA1YTdiZmE3MjZkMDdkYzY4OC4uZTZiNGUwNGViZWZjNWI0ZmE1YTRj
NzNmOTVhNzE3MTYyZTU3YWE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1v
cnlSZWxlYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTWVtb3J5
UmVsZWFzZS5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkNT
U0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCkBAIC00Miw3ICs0Myw2IEBACiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1
ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2Ny
b2xsaW5nVGhyZWFkLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgpAQCAtNzcsMTIgKzc3LDEy
IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeShNYWludGFpbk1lbW9yeUNh
Y2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCiAgICAgSW5saW5lU3R5bGVTaGVldE93bmVyOjpjbGVh
ckNhY2hlKCk7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbGVhc2VDcml0aWNhbE1lbW9yeShTeW5jaHJv
bm91cyBzeW5jaHJvbm91cywgTWFpbnRhaW5QYWdlQ2FjaGUgbWFpbnRhaW5QYWdlQ2FjaGUsIE1h
aW50YWluTWVtb3J5Q2FjaGUgbWFpbnRhaW5NZW1vcnlDYWNoZSkKK3N0YXRpYyB2b2lkIHJlbGVh
c2VDcml0aWNhbE1lbW9yeShTeW5jaHJvbm91cyBzeW5jaHJvbm91cywgTWFpbnRhaW5CYWNrRm9y
d2FyZENhY2hlIG1haW50YWluQmFja0ZvcndhcmRDYWNoZSwgTWFpbnRhaW5NZW1vcnlDYWNoZSBt
YWludGFpbk1lbW9yeUNhY2hlKQogewogICAgIC8vIFJpZ2h0IG5vdywgdGhlIG9ubHkgcmVhc29u
IHdlIGNhbGwgcmVsZWFzZSBjcml0aWNhbCBtZW1vcnkgd2hpbGUgbm90IHVuZGVyIG1lbW9yeSBw
cmVzc3VyZSBpcyBpZiB0aGUgcHJvY2VzcyBpcyBhYm91dCB0byBiZSBzdXNwZW5kZWQuCi0gICAg
aWYgKG1haW50YWluUGFnZUNhY2hlID09IE1haW50YWluUGFnZUNhY2hlOjpObykgeworICAgIGlm
IChtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgPT0gTWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlOjpO
bykgewogICAgICAgICBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFzb24gPSBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpID8gUHJ1bmluZ1Jl
YXNvbjo6TWVtb3J5UHJlc3N1cmUgOiBQcnVuaW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOwot
ICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIHBydW5pbmdS
ZWFzb24pOworICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6
ZU5vdygwLCBwcnVuaW5nUmVhc29uKTsKICAgICB9CiAKICAgICBpZiAobWFpbnRhaW5NZW1vcnlD
YWNoZSA9PSBNYWludGFpbk1lbW9yeUNhY2hlOjpObykgewpAQCAtMTE4LDE0ICsxMTgsMTQgQEAg
c3RhdGljIHZvaWQgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KFN5bmNocm9ub3VzIHN5bmNocm9ub3Vz
LCBNYWludGFpblBhZ2VDYWNoZSBtYWkKICAgICB9CiB9CiAKLXZvaWQgcmVsZWFzZU1lbW9yeShD
cml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMsIE1haW50YWluUGFnZUNh
Y2hlIG1haW50YWluUGFnZUNhY2hlLCBNYWludGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5
Q2FjaGUpCit2b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNocm9ub3Vz
IHN5bmNocm9ub3VzLCBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgbWFpbnRhaW5CYWNrRm9yd2Fy
ZENhY2hlLCBNYWludGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCiB7CiAgICAg
VHJhY2VTY29wZSBzY29wZShNZW1vcnlQcmVzc3VyZUhhbmRsZXJTdGFydCwgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyRW5kLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oY3JpdGljYWwpLCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oc3luY2hyb25vdXMpKTsKIAogICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNh
bDo6WWVzKSB7CiAgICAgICAgIC8vIFJldHVybiB1bnVzZWQgcGFnZXMgYmFjayB0byB0aGUgT1Mg
bm93IGFzIHRoaXMgd2lsbCBsaWtlbHkgZ2l2ZSB1cyBhIGxpdHRsZSBtZW1vcnkgdG8gd29yayB3
aXRoLgogICAgICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwotICAgICAg
ICByZWxlYXNlQ3JpdGljYWxNZW1vcnkoc3luY2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hlLCBt
YWludGFpbk1lbW9yeUNhY2hlKTsKKyAgICAgICAgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KHN5bmNo
cm9ub3VzLCBtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUsIG1haW50YWluTWVtb3J5Q2FjaGUpOwog
ICAgIH0KIAogICAgIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeShtYWludGFpbk1lbW9yeUNhY2hl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKaW5kZXggM2UwNmIzMDQ5Mzc5ZDE2YzA4
OGIxZTg3N2YwNmQ0ZjMxYmY5NjVhMi4uNmU1ZWJkODg1YzRjNjA3MzI0MjJkZWE3MGI5MWNlYzI0
MjQxMGEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKQEAgLTI5LDEwICsyOSwx
MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgTWFpbnRhaW5QYWdlQ2Fj
aGUgOiBib29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBNYWludGFpbkJhY2tGb3J3YXJkQ2Fj
aGUgOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBNYWludGFpbk1lbW9yeUNhY2hlIDog
Ym9vbCB7IE5vLCBZZXMgfTsKIAotV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNlTWVtb3J5KENy
aXRpY2FsLCBTeW5jaHJvbm91cywgTWFpbnRhaW5QYWdlQ2FjaGUgPSBNYWludGFpblBhZ2VDYWNo
ZTo6Tm8sIE1haW50YWluTWVtb3J5Q2FjaGUgPSBNYWludGFpbk1lbW9yeUNhY2hlOjpObyk7CitX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwsIFN5bmNocm9ub3VzLCBN
YWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgPSBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6Ok5vLCBN
YWludGFpbk1lbW9yeUNhY2hlID0gTWFpbnRhaW5NZW1vcnlDYWNoZTo6Tm8pOwogdm9pZCBwbGF0
Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwpOwogdm9pZCBqZXR0aXNvbkV4cGVuc2l2ZU9iamVj
dHNPblRvcExldmVsTmF2aWdhdGlvbigpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3Rlck1l
bW9yeVJlbGVhc2VOb3RpZnlDYWxsYmFja3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDYzY2I1
ZmY2NGQ4NWViM2U1YzUxZTc5NDA1MTk1MjU4MmYyZDA1MTQuLjNmMTQ2N2JlMWMwYWVkMjEyNWIz
Nzc3NWIwYmE1NTY0NTNhN2VlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjUsNiArMjUsNyBA
QAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiQXBwbGlj
YXRpb25TdGF0ZUNoYW5nZUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ2xpZW50LmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oIgpAQCAtNzMsNyArNzQsNiBAQAogI2luY2x1
ZGUgIkxvd1Bvd2VyTW9kZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAj
aW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dhYmxlLmgiCkBAIC0zNTksNyArMzU5LDcgQEAgUGFn
ZTo6flBhZ2UoKQogCiAgICAgYmFja0ZvcndhcmQoKS5jbG9zZSgpOwogICAgIGlmICghaXNVdGls
aXR5UGFnZSgpKQotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZUFsbEl0ZW1z
Rm9yUGFnZSgqdGhpcyk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJl
bW92ZUFsbEl0ZW1zRm9yUGFnZSgqdGhpcyk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgcGFnZUNv
dW50ZXIuZGVjcmVtZW50KCk7CkBAIC0xMDcxLDcgKzEwNzEsNyBAQCB2b2lkIFBhZ2U6OnNldFZp
ZXdTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV92aWV3
U2NhbGVGYWN0b3IgPSBzY2FsZTsKLSAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdl
c0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCgqdGhpcyk7CisgICAgQmFja0ZvcndhcmRDYWNo
ZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlz
KTsKIH0KIAogdm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rv
cikKQEAgLTEwODcsNyArMTA4Nyw3IEBAIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3Io
ZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7
CiAKICAgICBtYWluRnJhbWUoKS5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSAg
ICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hh
bmdlZCgqdGhpcyk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2Vz
Rm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlzKTsKIAogICAgIHBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IDk5YTVlZWI1ZjRhZjQyOGU4MjQyZTBmMTY3MzkxODk2ZmMzMjFlMDUuLjgzMWYwYTA3YzBm
NjRiZDczODlhN2QxNTM0ZDQxZjQ5YTFlYzcwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC00MTMsNyAr
NDEzLDcgQEAgcHVibGljOgogCiAgICAgLy8gUGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3RvcmUg
YSBQYWdpbmF0aW9uIHZhbHVlLiBQYWdlOjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkgQVBJ
LAogICAgIC8vIGFuZCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBDU1Mu
IFBhZ2U6OnBhZ2luYXRpb24oKSB3aWxsIGFmZmVjdCBhbGwKLSAgICAvLyBGcmFtZVZpZXdzIGlu
IHRoZSBwYWdlIGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3Rz
IHRoZSBjdXJyZW50CisgICAgLy8gRnJhbWVWaWV3cyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3RzIHRoZSBjdXJyZW50CiAg
ICAgLy8gRnJhbWVWaWV3LgogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3BhZ2luYXRpb247IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBh
Z2luYXRpb24oY29uc3QgUGFnaW5hdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmlu
ZGV4IDY0YTNkMzc4MGI0MjgxZWViYTg5M2FjZTM1N2ZiZWM1OTM5MGM3OTAuLjQ3NGIwMjk1MDcx
NGM0MWMyNmVmYTk1MmY2ZTE2MjMyZDkwMDdmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5j
cHAKQEAgLTI2LDExICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBh
Z2VHcm91cC5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkRP
TVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMTA2
LDcgKzEwNiw3IEBAIHZvaWQgUGFnZUdyb3VwOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkK
IHsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VzKQogICAgICAgICBwYWdlLT5jYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5tYXJrUGFn
ZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6
c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwogfQog
CiBDYXB0aW9uVXNlclByZWZlcmVuY2VzJiBQYWdlR3JvdXA6OmNhcHRpb25QcmVmZXJlbmNlcygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKaW5kZXggYjkwNGMy
M2VkYmVhYzc0MTJmMDliMGMzM2I1OWNhMWZjYjI3MDE3ZC4uMzZlMzhkNDc5MTdlM2YyY2RiOWRk
YThjMDBiYjJkNTJhZDRiNjMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5o
IgogI2luY2x1ZGUgIkNvbW1vblZNLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKQEAgLTM1LDcgKzM2LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFn
ZUNhY2hlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTksOCArNTksOCBAQCBIYXNo
TWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IFBlcmZvcm1hbmNlTG9nZ2luZzo6bWVtb3J5VXNhZ2VT
dGF0aXN0aWNzKFNob3VsZEluYwogICAgIHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19oZWFwX2Nh
cGFjaXR5Iiwgdm0uaGVhcC5jYXBhY2l0eSgpKTsKICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRf
Z2NfaGVhcF9leHRyYV9tZW1vcnlfc2l6ZSIsIHZtLmhlYXAuZXh0cmFNZW1vcnlTaXplKCkpOwog
Ci0gICAgYXV0byYgcGFnZUNhY2hlID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKTsKLSAgICBzdGF0
cy5hZGQoInBhZ2VjYWNoZV9wYWdlX2NvdW50IiwgcGFnZUNhY2hlLnBhZ2VDb3VudCgpKTsKKyAg
ICBhdXRvJiBiYWNrRm9yd2FyZENhY2hlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCk7
CisgICAgc3RhdHMuYWRkKCJiYWNrZm9yd2FyZF9jYWNoZV9wYWdlX2NvdW50IiwgYmFja0Zvcndh
cmRDYWNoZS5wYWdlQ291bnQoKSk7CiAKICAgICBzdGF0cy5hZGQoImRvY3VtZW50X2NvdW50Iiwg
RG9jdW1lbnQ6OmFsbERvY3VtZW50cygpLnNpemUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbAppbmRleCA0N2YwZWQ2YThlZjA4NTVmYTVhNTQyNDQ4YTEzYjIzNjMzOTI0NTBjLi41MGI1
ZjM2ZmEwZWQ2N2E0MjRiMDExMzU2YTkwNWNhZTQwNzIzN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCkBAIC0xNzcsNyArMTc3LDcgQEAgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxl
c2hlZXQ6CiAgIGluaXRpYWw6IGZhbHNlCiBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0Ogog
ICBpbml0aWFsOiB0cnVlCi1wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM6CitiYWNrRm9yd2FyZENh
Y2hlU3VwcG9ydHNQbHVnaW5zOgogICBpbml0aWFsOiBmYWxzZQogc2hvd3NVUkxzSW5Ub29sVGlw
czoKICAgaW5pdGlhbDogZmFsc2UKQEAgLTcxNiw5ICs3MTYsOSBAQCBwbHVnaW5zRW5hYmxlZDoK
ICAgZ2V0dGVyOiBhcmVQbHVnaW5zRW5hYmxlZAogICBvbkNoYW5nZTogcGx1Z2luc0VuYWJsZWRD
aGFuZ2VkCiAKLXVzZXNQYWdlQ2FjaGU6Cit1c2VzQmFja0ZvcndhcmRDYWNoZToKICAgaW5pdGlh
bDogZmFsc2UKLSAgb25DaGFuZ2U6IHVzZXNQYWdlQ2FjaGVDaGFuZ2VkCisgIG9uQ2hhbmdlOiB1
c2VzQmFja0ZvcndhcmRDYWNoZUNoYW5nZWQKIAogZG5zUHJlZmV0Y2hpbmdFbmFibGVkOgogICBp
bml0aWFsOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCmluZGV4IDI3ZWVh
NmMwYWI5MzhlYmM4Zjk2NWRhY2I4MjAzMTE0NDMxNjBiOWEuLmM5ODk5YWRlZjA5M2ZiNGYxYzE1
MDg3Y2RjZjdhMmEzZGJiNGYwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3NCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKIAogI2luY2x1ZGUg
IkF1ZGlvU2Vzc2lvbi5oIgorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2UuaCIKQEAgLTQwLDcgKzQxLDYgQEAKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIK
ICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtMzYyLDEzICszNjIsMTMgQEAgdm9pZCBTZXR0aW5nc0Jhc2U6OnVzZXJTdHlsZVNo
ZWV0TG9jYXRpb25DaGFuZ2VkKCkKICAgICAgICAgbV9wYWdlLT51c2VyU3R5bGVTaGVldExvY2F0
aW9uQ2hhbmdlZCgpOwogfQogCi12b2lkIFNldHRpbmdzQmFzZTo6dXNlc1BhZ2VDYWNoZUNoYW5n
ZWQoKQordm9pZCBTZXR0aW5nc0Jhc2U6OnVzZXNCYWNrRm9yd2FyZENhY2hlQ2hhbmdlZCgpCiB7
CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9wYWdlLT5z
ZXR0aW5ncygpLnVzZXNQYWdlQ2FjaGUoKSkKLSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24o
KS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25lKTsKKyAgICBpZiAoIW1fcGFn
ZS0+c2V0dGluZ3MoKS51c2VzQmFja0ZvcndhcmRDYWNoZSgpKQorICAgICAgICBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25l
KTsKIH0KIAogdm9pZCBTZXR0aW5nc0Jhc2U6OmRuc1ByZWZldGNoaW5nRW5hYmxlZENoYW5nZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKaW5kZXggYjg1MDFjYjcxYTk0YzFhYTA3YmYx
YTEyZmJmNTkzNTE3MzZkZGIwZi4uMWQ5ODNhMjBhNzY2NDkzYTk5Njk4OWNlMGNmODBiZmE5Mjc1
NjYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCkBAIC0xODUsNyArMTg1LDcgQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgaW1hZ2VzRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIHBs
dWdpbnNFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgdXNlclN0eWxlU2hlZXRMb2NhdGlvbkNo
YW5nZWQoKTsKLSAgICB2b2lkIHVzZXNQYWdlQ2FjaGVDaGFuZ2VkKCk7CisgICAgdm9pZCB1c2Vz
QmFja0ZvcndhcmRDYWNoZUNoYW5nZWQoKTsKICAgICB2b2lkIGRuc1ByZWZldGNoaW5nRW5hYmxl
ZENoYW5nZWQoKTsKICAgICB2b2lkIHN0b3JhZ2VCbG9ja2luZ1BvbGljeUNoYW5nZWQoKTsKICAg
ICB2b2lkIGJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlQ2hhbmdlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRleCBkZWNh
NmMxYzg1N2E2MjQzNDVkOGQ5ZGYzMzBmZGFjYjg3MzQxNzg0Li4wYTZhZmY5ZDcxYjRjNWM1OGNm
OGQ3YjdjZmFkYTViNWM4N2ViZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIEFuaW1hdGlvbkJh
c2U6OnNldE5lZWRzU3R5bGVSZWNhbGMoRWxlbWVudCogZWxlbWVudCkKICAgICBpZiAoIWVsZW1l
bnQgfHwgZWxlbWVudC0+ZG9jdW1lbnQoKS5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGVsZW1lbnQtPmRvY3VtZW50KCkucGFnZUNhY2hl
U3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChlbGVtZW50
LT5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJh
Y2tGb3J3YXJkQ2FjaGUpOwogICAgIGVsZW1lbnQtPmludmFsaWRhdGVTdHlsZSgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCmluZGV4IDEzYzMxZjU3NjRiN2IyMjRhMmI3ZWE1NWFlMzNhNmIzOTg2Yjk2
ZDIuLmNhODkwZTc3YjA5OWQzMGI5ZjFiYWVlZjY2Njk5ZGM0MjNiNTJhZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgT3B0aW9uYWw8U2Vjb25kcz4gQ1NTQW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFuaW1hdGlvbnMoU2V0Q2hhbmdlZCBjYWwKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
RWxlbWVudCYgZWxlbWVudCA9ICpjb21wb3NpdGVBbmltYXRpb24ua2V5OwotICAgICAgICAgICAg
ICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVu
dDo6Tm90SW5QYWdlQ2FjaGUpOworICAgICAgICAgICAgICAgIEFTU0VSVChlbGVtZW50LmRvY3Vt
ZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSk7CiAgICAgICAgICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGUoKTsKICAg
ICAgICAgICAgICAgICBjYWxsZWRTZXRDaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KQEAg
LTI1NCw3ICsyNTQsNyBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRF
dmVudFRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQQogdm9pZCBDU1NBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYg
ZWxlbWVudCkKIHsKICAgICBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoZWxlbWVu
dCk7Ci0gICAgQVNTRVJUKG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1l
bnQoKS5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAg
QVNTRVJUKG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5iYWNr
Rm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsK
ICAgICBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CiAKQEAgLTYwOSw3
ICs2MDksNyBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXI6OmNhbmNlbEFuaW1hdGlvbnMo
RWxlbWVudCYgZWxlbWVudCkKIAogICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkucmVuZGVyVHJl
ZUJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoZWxlbWVudC5k
b2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsK
KyAgICBBU1NFUlQoZWxlbWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09
IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIGVsZW1lbnQuaW52YWxpZGF0
ZVN0eWxlKCk7CiB9CiAKQEAgLTYxOSw3ICs2MTksNyBAQCBBbmltYXRpb25VcGRhdGUgQ1NTQW5p
bWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyhFbGVtZW50JiBlbGVtZW50LCBjb25z
dAogICAgIGlmICghaGFzT3JIYWRBbmltYXRpb25zKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpO
b3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKICAgICAvLyBEb24ndCBydW4gdHJhbnNpdGlvbnMgd2hlbiBwcmludGluZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcAppbmRleCAwNDc3YTllN2QwODVlMjc3N2RhZmIyY2IxY2Y5ZDliMzk5ZGM5NzRjLi44MzI1
YTU5MTlhZjhkYTQwODc4Yjk2NDU1YTQ2MTQ2MThhMWU4MzRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0yMTIsNyAr
MjEyLDcgQEAgYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25z
dCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZQogICAgICAgICAgICAgLy8gRGlzcGF0Y2gg
dGhlIGV2ZW50CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnQgPSBtYWtlUmVmUHRyKHRoaXMtPmVs
ZW1lbnQoKSk7CiAKLSAgICAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1
bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAg
ICAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLmJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAg
ICAgICAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24u
Y3BwCmluZGV4IDlhZjVmMDg0YzUwMTM2NjAzZDUyNGIyMGZiYTE2ZjU5NWJiOTc5ZmEuLmY5MWQz
YTU1YzVjOWM3OTg0YTAyNDYxMjgzOTA3NTdjNDFmNDFlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTM2Miw3ICsz
NjIsNyBAQCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgZQogICAgICAgICAvLyBEaXNwYXRjaCB0aGUg
ZXZlbnQKICAgICAgICAgYXV0byBlbGVtZW50ID0gbWFrZVJlZlB0cih0aGlzLT5lbGVtZW50KCkp
OwogCi0gICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLnBhZ2VD
YWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICAgICAgQVNTRVJU
KCFlbGVtZW50IHx8IGVsZW1lbnQtPmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgICAgIGlmICghZWxlbWVu
dCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRl
eCA1ZjBhOTc2M2U3M2UxNTBkZTA5ZmYwMGQ4MGM4YTQ2YjVjMDI0OTNkLi41NGE5MGUwODVmZmJk
ZjNlNGE5ZTk0MmNjYzM5NjMxZTM1MWE2NmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAt
MjQ2LDE0ICsyNDYsMTQgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIWNvb3Jk
aW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KCpmcmFtZVZpZXcpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBib29sIGluUGFnZUNhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3Vt
ZW50KCktPnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOworICAg
IGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCkt
PmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2Fj
aGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFibGVBcmVhLmN1cnJl
bnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwotICAgIGlmIChpblBy
b2dyYW1tYXRpY1Njcm9sbCB8fCBpblBhZ2VDYWNoZSkKKyAgICBpZiAoaW5Qcm9ncmFtbWF0aWNT
Y3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlv
bkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNl
dCk7CiAKLSAgICAvLyBJZiB0aGlzIGZyYW1lIHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQg
aW50byB0aGUgcGFnZSBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCisgICAgLy8g
SWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8gdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCiAgICAgLy8gbWFpbiBm
cmFtZSBzY3JvbGwgcG9zaXRpb24uIEp1c3QgbGV0IHRoZSBGcmFtZVZpZXcgdGhpbmsgdGhhdCB3
ZSBkaWQuCi0gICAgaWYgKGluUGFnZUNhY2hlKQorICAgIGlmIChpbkJhY2tGb3J3YXJkQ2FjaGUp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgYXV0byogc3RhdGVOb2RlID0gZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c3RhdGVO
b2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlEKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggN2Y0ZTRiZjFlZDlhZmIyMzg3NThhZGNi
MGJkZDcyNTFlNmRhNTgxMS4uZjU5MTc2NzJlZWZkZjFmNTIzY2RmNjkyNDZiMjM4NjA0OTRmYjJh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbQpAQCAtMTE0MSw3ICsxMTQxLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2hvdWxk
U2Nyb2xsYmFyUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoU2Nyb2xsYmFyKiBzY3JvbGwKIAogdm9p
ZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChjb25zdCBGbG9h
dFNpemUmIGRlbHRhKQogewotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBw
YWdlIGlzIGdvaW5nIGludG8gdGhlIHBhZ2UgY2FjaGUsIGJ1dCB0aGUgcGFnZQorICAgIC8vIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBwYWdlIGlzIGdvaW5nIGludG8gdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZSwgYnV0IHRoZSBwYWdlCiAgICAgLy8gaXNuJ3QgcmVhbGx5IHNjcm9sbGlu
ZyBpbiB0aGF0IGNhc2UuIFdlIHNob3VsZCBvbmx5IHBhc3MgdGhlIG1lc3NhZ2Ugb24gdG8gdGhl
CiAgICAgLy8gU2Nyb2xsZXJJbXBQYWlyIHdoZW4gd2UncmUgcmVhbGx5IHNjcm9sbGluZyBvbiBh
biBhY3RpdmUgcGFnZS4KICAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3JvbGxl
clN0YXRlSXNMb2NrZWRdKQpAQCAtMTQxOCw3ICsxNDE4LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSgpCiAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXIt
PnNldEZyYW1lUmVjdChJbnRSZWN0KDAsIDAsIHRoaWNrbmVzcywgdGhpY2tuZXNzKSk7CiAgICAg
fQogCi0gICAgLy8gSWYgbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGUgaXMgdHJ1ZSwgdGhlbiB0
aGUgcGFnZSBpcyByZXN0b3JpbmcgZnJvbSB0aGUgcGFnZSBjYWNoZSwgYW5kIAorICAgIC8vIElm
IG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlIGlzIHRydWUsIHRoZW4gdGhlIHBhZ2UgaXMgcmVz
dG9yaW5nIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYW5kCiAgICAgLy8gYSByZWxheW91
dCB3aWxsIGhhcHBlbiBvbiBpdHMgb3duLiBPdGhlcndpc2UsIHdlIG11c3QgaW5pdGlhdGUgYSBy
ZS1sYXlvdXQgb3Vyc2VsdmVzLgogICAgIHNjcm9sbGFibGVBcmVhKCkuc2Nyb2xsYmFyU3R5bGVD
aGFuZ2VkKG5ld1N0eWxlID09IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXkgPyBTY3JvbGxiYXJTdHls
ZTo6T3ZlcmxheSA6IFNjcm9sbGJhclN0eWxlOjpBbHdheXNWaXNpYmxlLCAhbV9uZWVkc1Njcm9s
bGVyU3R5bGVVcGRhdGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCmluZGV4IGUwNzg1ZWM0MzM3ODQxZGI4NTgzMGYxODFmYjA4OWY3NTc3
ZjU2YzUuLjIxNGY2MDk1NzdmOGE4ZjBiNTc1ZmQ1MWFhNTRhMzYzNjQ5ZTMxYzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yNzgw
LDggKzI3ODAsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29u
c3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgIGlmICgocGFpbnRzSW50
b1dpbmRvdygpIHx8IHBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSkgJiYgZ3JhcGhpY3NM
YXllci0+cGFpbnRpbmdQaGFzZSgpICE9IE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZT4oR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkNoaWxkQ2xpcHBpbmdNYXNrKSkgewog
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhT1MoV0lORE9XUykKICAgICAgICAgLy8gRklY
TUU6IExvb2tzIGxpa2UgdGhlIENBTGF5ZXIgdHJlZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBH
cmFwaGljc0xheWVyIGhlaXJhcmNoeQotICAgICAgICAvLyB3aGVuIHBhZ2VzIGFyZSByZXN0b3Jl
ZCBmcm9tIHRoZSBQYWdlQ2FjaGUuCi0gICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS84NzEyNTg3
PiBBU1NFUlQ6IFdoZW4gR29pbmcgQmFjayB0byBQYWdlIHdpdGggUGx1Z2lucyBpbiBQYWdlQ2Fj
aGUKKyAgICAgICAgLy8gd2hlbiBwYWdlcyBhcmUgcmVzdG9yZWQgZnJvbSB0aGUgQmFja0Zvcndh
cmRDYWNoZS4KKyAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzg3MTI1ODc+IEFTU0VSVDogV2hl
biBHb2luZyBCYWNrIHRvIFBhZ2Ugd2l0aCBQbHVnaW5zIGluIEJhY2tGb3J3YXJkQ2FjaGUKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApp
bmRleCBjMGRkMDYwYjVkMzNjOWVkZGZhMzBmN2Q1MzRkYTdkOTc5MzI4YzQ4Li5mZjlmZWJmYWVk
MjBjNmYxN2ZjMWI1OGM1MDdiZTUwNjU0MzM0N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNzE2LDggKzcxNiw4IEBA
IGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21w
b3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAKICAgICBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJz
VGltZXIuc3RvcCgpOwogCi0gICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VD
YWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlCi0gICAgICAgIHx8IG1fcmVu
ZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9F
bnRlclBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLmJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUKKyAg
ICAgICAgfHwgbV9yZW5kZXJWaWV3LmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIAogICAgIC8v
IENvbXBvc2l0aW5nIGxheWVycyB3aWxsIGJlIHVwZGF0ZWQgaW4gRG9jdW1lbnQ6OnNldFZpc3Vh
bFVwZGF0ZXNBbGxvd2VkKGJvb2wpIGlmIHN1cHByZXNzZWQgaGVyZS4KICAgICBpZiAoIW1fcmVu
ZGVyVmlldy5kb2N1bWVudCgpLnZpc3VhbFVwZGF0ZXNBbGxvd2VkKCkpCkBAIC00NjUyLDcgKzQ2
NTIsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6d2lsbFJlbW92ZVNjcm9sbGluZ0xh
eWVyV2l0aEJhY2tpbmcoUmVuZGVyTGF5ZXImIGxheQogICAgICAgICByZXR1cm47CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIEFTU0VSVChtX3JlbmRlclZpZXcuZG9jdW1lbnQoKS5w
YWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJU
KG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3Vt
ZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIGlmIChtX2xlZ2FjeVNjcm9sbGluZ0xh
eWVyQ29vcmRpbmF0b3IpCiAgICAgICAgIG1fbGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29yZGluYXRv
ci0+cmVtb3ZlU2Nyb2xsaW5nTGF5ZXIobGF5ZXIsIGJhY2tpbmcpOwogI2Vsc2UKQEAgLTQ2Njgs
NyArNDY2OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRBZGRTY3JvbGxpbmdM
YXllcihSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNo
ZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICBBU1NFUlQobV9yZW5k
ZXJWaWV3LmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5v
dEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgaWYgKG1fbGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29y
ZGluYXRvcikKICAgICAgICAgbV9sZWdhY3lTY3JvbGxpbmdMYXllckNvb3JkaW5hdG9yLT5hZGRT
Y3JvbGxpbmdMYXllcihsYXllcik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDY1MmQ2MDE1MTJkNmVmMDJmZjU4MDkx
NTU3MTNmNjc1ZThkMDc2NGIuLjA3OGY3OWJhZDAyMzg5M2UyMmQxNjI5MzA4YzdmYjQ0YjQ3ZjU5
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBpcyBvbmx5IHVz
ZWQgd2hlbiBzdGF0ZSBjaGFuZ2VzIGFuZCB3ZSBkbyBub3QgZXhlcGVjdCBhIHN0eWxlIHVwZGF0
ZSBvciBsYXlvdXQgdG8gaGFwcGVuIHNvb24gKGUuZy4gd2hlbgogICAgIC8vIHdlIGRpc2NvdmVy
IHRoYXQgYW4gaWZyYW1lIGlzIG92ZXJsYXBwZWQgZHVyaW5nIHBhaW50aW5nKS4KICAgICB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclVwZGF0ZSgpOwotICAgIC8vIFRoaXMgaXMgdXNlZCB0
byBjYW5jZWwgYW55IHBlbmRpbmcgdXBkYXRlIHRpbWVycyB3aGVuIHRoZSBkb2N1bWVudCBnb2Vz
IGludG8gcGFnZSBjYWNoZS4KKyAgICAvLyBUaGlzIGlzIHVzZWQgdG8gY2FuY2VsIGFueSBwZW5k
aW5nIHVwZGF0ZSB0aW1lcnMgd2hlbiB0aGUgZG9jdW1lbnQgZ29lcyBpbnRvIGJhY2svZm9yd2Fy
ZCBjYWNoZS4KICAgICB2b2lkIGNhbmNlbENvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsKIAogICAg
IC8vIFVwZGF0ZSB0aGUgY29tcG9zaXRpbmcgc3RhdGUgb2YgdGhlIGdpdmVuIGxheWVyLiBSZXR1
cm5zIHRydWUgaWYgdGhhdCBzdGF0ZSBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCmluZGV4IGNhYWM1Y2RlMGVkODQ3YmRjMjBlNWNhN2E1ZjFlZDgwMTBjNGJm
NWYuLjc2ZTI4ZDdkZjM0Mjk4MTM5YzI4ZDZiZTM3ZDY3M2I3M2YzYjczOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTcyMyw3ICs3MjMsNyBAQCBwdWJsaWM6
CiAgICAgICovCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGxvY2FsQ2FyZXRSZWN0KElubGluZUJv
eCosIHVuc2lnbmVkIGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxp
bmUgPSBudWxscHRyKTsKIAotICAgIC8vIFdoZW4gcGVyZm9ybWluZyBhIGdsb2JhbCBkb2N1bWVu
dCB0ZWFyLWRvd24sIG9yIHdoZW4gZ29pbmcgaW50byB0aGUgcGFnZSBjYWNoZSwgdGhlIHJlbmRl
cmVyIG9mIHRoZSBkb2N1bWVudCBpcyBjbGVhcmVkLgorICAgIC8vIFdoZW4gcGVyZm9ybWluZyBh
IGdsb2JhbCBkb2N1bWVudCB0ZWFyLWRvd24sIG9yIHdoZW4gZ29pbmcgaW50byB0aGUgYmFjay9m
b3J3YXJkIGNhY2hlLCB0aGUgcmVuZGVyZXIgb2YgdGhlIGRvY3VtZW50IGlzIGNsZWFyZWQuCiAg
ICAgYm9vbCByZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZGVz
dHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVM
YXlvdXRDb3ZlcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxh
eW91dENvdmVyYWdlLmNwcAppbmRleCBhYzEwOWRiYzM0MmY4Yzc3ODZkYWU3ODVjZmZkOTVjNjAw
ZmZjODJmLi41NWY1ZmQzNzA3NmI4MjUzY2UxNTk5ZjcwY2FmZTZjY2RhNWQyMjQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdl
LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3ROb25FbXB0eUxlYWZS
ZW5kZXJCbG9ja0Zsb3dzKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIEhhCiBzdGF0aWMg
dm9pZCBjb2xsZWN0Tm9uRW1wdHlMZWFmUmVuZGVyQmxvY2tGbG93c0ZvckN1cnJlbnRQYWdlKEhh
c2hTZXQ8Y29uc3QgUmVuZGVyQmxvY2tGbG93Kj4mIGxlYWZSZW5kZXJlcnMpCiB7CiAgICAgZm9y
IChjb25zdCBhdXRvKiBkb2N1bWVudCA6IERvY3VtZW50OjphbGxEb2N1bWVudHMoKSkgewotICAg
ICAgICBpZiAoIWRvY3VtZW50LT5yZW5kZXJWaWV3KCkgfHwgZG9jdW1lbnQtPnBhZ2VDYWNoZVN0
YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgICAgICBpZiAoIWRvY3VtZW50
LT5yZW5kZXJWaWV3KCkgfHwgZG9jdW1lbnQtPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERv
Y3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKCFkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQtPmlzWEhU
TUxEb2N1bWVudCgpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggYTAwZjRmZTBmNGNjYjUyZGQ4MzFhOTRlMjZh
NTg2NGU1YzFiNzkyNy4uMDJhMGUzN2UwY2E5M2JlOGY3ZThjZjRkNWM1OWQ5ZWI1YzE2YTUxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtMjk2LDcg
KzI5Niw3IEBAIEVsZW1lbnRVcGRhdGUgVHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1l
bnRVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0CiAgICAgICAgIC8vIEZpcnN0LCB3ZSBu
ZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGFueSBuZXcgQ1NTIGFuaW1hdGlvbiBvY2N1cmluZyBvbiB0
aGlzIGVsZW1lbnQgaGFzIGEgbWF0Y2hpbmcgV2ViQW5pbWF0aW9uCiAgICAgICAgIC8vIG9uIHRo
ZSBkb2N1bWVudCB0aW1lbGluZS4gTm90ZSB0aGF0IHdlIGdldCB0aW1lbGluZSgpIG9uIHRoZSBE
b2N1bWVudCBoZXJlIGJlY2F1c2Ugd2UgbmVlZCBhIHRpbWVsaW5lIGNyZWF0ZWQKICAgICAgICAg
Ly8gaW4gY2FzZSBubyBXZWIgQW5pbWF0aW9ucyBoYXZlIGJlZW4gY3JlYXRlZCB0aHJvdWdoIHRo
ZSBKUyBBUEkuCi0gICAgICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUo
KSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5yZW5k
ZXJWaWV3KCktPnByaW50aW5nKCkpIHsKKyAgICAgICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5i
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hl
ICYmICFlbGVtZW50LmRvY3VtZW50KCkucmVuZGVyVmlldygpLT5wcmludGluZygpKSB7CiAgICAg
ICAgICAgICBpZiAob2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5oYXNUcmFuc2l0aW9ucygpIHx8IG5l
d1N0eWxlLT5oYXNUcmFuc2l0aW9ucygpKSkKICAgICAgICAgICAgICAgICBtX2RvY3VtZW50LnRp
bWVsaW5lKCkudXBkYXRlQ1NTVHJhbnNpdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQsICpvbGRTdHls
ZSwgKm5ld1N0eWxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDhm
OGM1YzdkOTI3YzA3OTYyOWQ2N2VkMTVhYzAyMzg1NTZkNDkyOWEuLjRiYzcxMjBjMDE3MjhiY2Q2
MzBkYTc0YzhlYzI3MWFlYzM5M2VkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5o
IgogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkF1dG9maWxsLmgiCisjaW5j
bHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5oIgpAQCAtMTI3LDcgKzEyOCw2IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFE
ZXZpY2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5o
IgogI2luY2x1ZGUgIlBhdGhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaCIKQEAgLTkyMiwxNCArOTIyLDE0IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRHcmlkTWF4
VHJhY2tzTGltaXQodW5zaWduZWQgbWF4VHJhY2tMaW1pdCkKICAgICBHcmlkUG9zaXRpb246OnNl
dE1heFBvc2l0aW9uRm9yVGVzdGluZyhtYXhUcmFja0xpbWl0KTsKIH0KIAotdm9pZCBJbnRlcm5h
bHM6OmNsZWFyUGFnZUNhY2hlKCkKK3ZvaWQgSW50ZXJuYWxzOjpjbGVhckJhY2tGb3J3YXJkQ2Fj
aGUoKQogewotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1
bmluZ1JlYXNvbjo6Tm9uZSk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucHJ1
bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7CiB9CiAKLXVuc2lnbmVkIEludGVy
bmFsczo6cGFnZUNhY2hlU2l6ZSgpIGNvbnN0Cit1bnNpZ25lZCBJbnRlcm5hbHM6OmJhY2tGb3J3
YXJkQ2FjaGVTaXplKCkgY29uc3QKIHsKLSAgICByZXR1cm4gUGFnZUNhY2hlOjpzaW5nbGV0b24o
KS5wYWdlQ291bnQoKTsKKyAgICByZXR1cm4gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCku
cGFnZUNvdW50KCk7CiB9CiAKIGNsYXNzIFVuc3VzcGVuZGFibGVBY3RpdmVET01PYmplY3QgZmlu
YWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxVbnN1c3BlbmRh
YmxlQWN0aXZlRE9NT2JqZWN0PiB7CkBAIC05NDcsNyArOTQ3LDcgQEAgcHJpdmF0ZToKICAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgeyByZXR1cm4gIlVuc3VzcGVu
ZGFibGVBY3RpdmVET01PYmplY3QiOyB9CiB9OwogCi12b2lkIEludGVybmFsczo6cHJldmVudERv
Y3VtZW50Rm9yRW50ZXJpbmdQYWdlQ2FjaGUoKQordm9pZCBJbnRlcm5hbHM6OnByZXZlbnREb2N1
bWVudEZvckVudGVyaW5nQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgaWYgKGF1dG8qIGNvbnRl
eHQgPSBjb250ZXh0RG9jdW1lbnQoKSkKICAgICAgICAgbV91bnN1c3BlbmRhYmxlQWN0aXZlRE9N
T2JqZWN0ID0gVW5zdXNwZW5kYWJsZUFjdGl2ZURPTU9iamVjdDo6Y3JlYXRlKCpjb250ZXh0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGJhMmJiOTc0YTkyY2VmMWFjN2UzNDQ3
NmViYjEyZWFlZGQ3MDdhODkuLjE5Zjc4OWY5MDMwZjlhMjQ4Njg3ZTk1ZjAxZmRhYWRkZTU4NWRk
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTY5LDkgKzE2OSw5IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0R3JpZE1heFRyYWNrc0xpbWl0KHVuc2lnbmVkKTsKIAotICAg
IHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKLSAgICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplKCkgY29u
c3Q7Ci0gICAgdm9pZCBwcmV2ZW50RG9jdW1lbnRGb3JFbnRlcmluZ1BhZ2VDYWNoZSgpOworICAg
IHZvaWQgY2xlYXJCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgdW5zaWduZWQgYmFja0ZvcndhcmRD
YWNoZVNpemUoKSBjb25zdDsKKyAgICB2b2lkIHByZXZlbnREb2N1bWVudEZvckVudGVyaW5nQmFj
a0ZvcndhcmRDYWNoZSgpOwogCiAgICAgdm9pZCBkaXNhYmxlVGlsZVNpemVVcGRhdGVEZWxheSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMWVlZTNjOWQzYWUzYjI2
ZWU3ZjRhZDEyNzA5ODU1NmJhZGM2MmVjMy4uMDFkYjI0MmQwYmM5OTQyMDYwMTU2NDY1YmY3NzFk
MTQyN2RhMmNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjA3LDkg
KzIwNyw5IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIHZvaWQgc2V0T3ZlcnJpZGVS
ZXNvdXJjZUxvYWRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSk7CiAgICAg
dm9pZCBzZXRTdHJpY3RSYXdSZXNvdXJjZVZhbGlkYXRpb25Qb2xpY3lEaXNhYmxlZChib29sZWFu
IGRpc2FibGVkKTsKIAotICAgIHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKLSAgICB1bnNpZ25lZCBs
b25nIHBhZ2VDYWNoZVNpemUoKTsKLSAgICB2b2lkIHByZXZlbnREb2N1bWVudEZvckVudGVyaW5n
UGFnZUNhY2hlKCk7CisgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkQ2FjaGUoKTsKKyAgICB1bnNp
Z25lZCBsb25nIGJhY2tGb3J3YXJkQ2FjaGVTaXplKCk7CisgICAgdm9pZCBwcmV2ZW50RG9jdW1l
bnRGb3JFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGUoKTsKIAogICAgIENTU1N0eWxlRGVjbGFyYXRp
b24gY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEVsZW1lbnQgZWxlbWVudCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDdmMGUwMzVjNWY5NTVlNGUx
YTBmNzNhNzliNzg4NDcwZGU5NjYyZWIuLjUzYzQ4MDcxYmU5NWRjMTViOGNkODAxNzhjODA3YTky
OGUzMmEzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTE2Myw4
ICsxMTYzLDggQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uIHJlYXNvbikKICAgICAgICAgbV9kaXNwYXRjaEVycm9yT25SZXN1bWluZyA9IHRydWU7CiAg
ICAgfQogCi0gICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUg
JiYgbV9sb2FkZXIpIHsKLSAgICAgICAgLy8gR29pbmcgaW50byBQYWdlQ2FjaGUsIGFib3J0IHRo
ZSByZXF1ZXN0IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcuCisgICAg
aWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlICYmIG1f
bG9hZGVyKSB7CisgICAgICAgIC8vIEdvaW5nIGludG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUsIGFi
b3J0IHRoZSByZXF1ZXN0IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcu
CiAgICAgICAgIGdlbmVyaWNFcnJvcigpOwogICAgICAgICBtX2Rpc3BhdGNoRXJyb3JPblJlc3Vt
aW5nID0gdHJ1ZTsKICAgICAgICAgYm9vbCBhYm9ydGVkID0gaW50ZXJuYWxBYm9ydCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2FjaGVNb2RlbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcAppbmRleCBmMDllYzZkOGIyNWVhZTQyZjg1ZDA1Yzc1
MDI4ZDEwZGYzMjY3NjQ2Li45Y2JkNmFiOWFjMTA5NTc2ODZiYWRjMDMyMTdkMWQ2MWUyNDhiMTY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcApAQCAtMzMsMTQgKzMzLDE0IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMoQ2Fj
aGVNb2RlbCBjYWNoZU1vZGVsLCB1bnNpZ25lZCYgY2FjaGVUb3RhbENhcGFjaXR5LCB1bnNpZ25l
ZCYgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1heERlYWRDYXBhY2l0eSwg
U2Vjb25kcyYgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwgdW5zaWduZWQmIHBhZ2VD
YWNoZUNhcGFjaXR5KQordm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWwg
Y2FjaGVNb2RlbCwgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hl
TWluRGVhZENhcGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIFNlY29uZHMm
IGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsIHVuc2lnbmVkJiBiYWNrRm9yd2FyZENh
Y2hlQ2FwYWNpdHkpCiB7CiAgICAgdWludDY0X3QgbWVtb3J5U2l6ZSA9IHJhbVNpemUoKSAvIE1C
OwogCiAgICAgc3dpdGNoIChjYWNoZU1vZGVsKSB7CiAgICAgY2FzZSBDYWNoZU1vZGVsOjpEb2N1
bWVudFZpZXdlcjogewotICAgICAgICAvLyBQYWdlIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykK
LSAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAvLyBiYWNrL2ZvcndhcmQg
Y2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICBiYWNrRm9yd2FyZENhY2hlQ2FwYWNp
dHkgPSAwOwogCiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykK
ICAgICAgICAgaWYgKG1lbW9yeVNpemUgPj0gMjA0OCkKQEAgLTYwLDEzICs2MCwxMyBAQCB2b2lk
IGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsLCB1bnNpZ25l
ZCYgY2FjaGVUb3RhbENhcGFjaQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDYWNo
ZU1vZGVsOjpEb2N1bWVudEJyb3dzZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0
eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4g
cGFnZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXplID49IDUxMikKLSAgICAgICAgICAgIHBhZ2VD
YWNoZUNhcGFjaXR5ID0gMjsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9
IDI7CiAgICAgICAgIGVsc2UgaWYgKG1lbW9yeVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFn
ZUNhY2hlQ2FwYWNpdHkgPSAxOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5
ID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOwor
ICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMDsKIAogICAgICAgICAvLyBP
YmplY3QgY2FjaGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXpl
ID49IDIwNDgpCkBAIC04NiwxMyArODYsMTMgQEAgdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNp
emVzKENhY2hlTW9kZWwgY2FjaGVNb2RlbCwgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2kKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ2FjaGVNb2RlbDo6UHJpbWFyeVdlYkJyb3dz
ZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAg
IC8vIGJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIGlmICht
ZW1vcnlTaXplID49IDUxMikKLSAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKKyAg
ICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9IDI7CiAgICAgICAgIGVsc2UgaWYg
KG1lbW9yeVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAxOwor
ICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAgICAgYmFja0Zvcndh
cmRDYWNoZUNhcGFjaXR5ID0gMDsKIAogICAgICAgICAvLyBPYmplY3QgY2FjaGUgY2FwYWNpdGll
cyAoaW4gYnl0ZXMpCiAgICAgICAgIC8vIChUZXN0aW5nIGluZGljYXRlcyB0aGF0IHZhbHVlIC8g
TUIgZGVwZW5kcyBoZWF2aWx5IG9uIGNvbnRlbnQgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9DYWNoZU1vZGVsLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVs
LmgKaW5kZXggZjIzOTUzOGU2NzhlYmRmYzA4MTRlZGM3NmJmODYzZTJmM2MyNTdjYS4uY2Q2NDhi
NDdiZjNmNWRmNDczNDQ3ZWY1MjZlZDU5MDEyMjAwNmE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ2FjaGVNb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhY2hl
TW9kZWwuaApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIGNsYXNzIENhY2hlTW9kZWwgOiB1aW50OF90
IHsKICAgICBQcmltYXJ5V2ViQnJvd3NlcgogfTsKIAotdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNo
ZVNpemVzKENhY2hlTW9kZWwsIHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVk
JiBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBT
ZWNvbmRzJiBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLCB1bnNpZ25lZCYgcGFnZUNh
Y2hlQ2FwYWNpdHkpOwordm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWws
IHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1pbkRlYWRDYXBh
Y2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBTZWNvbmRzJiBkZWFkRGVjb2Rl
ZERhdGFEZWxldGlvbkludGVydmFsLCB1bnNpZ25lZCYgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5
KTsKIHZvaWQgY2FsY3VsYXRlVVJMQ2FjaGVTaXplcyhDYWNoZU1vZGVsLCB1aW50NjRfdCBkaXNr
RnJlZVNpemUsIHVuc2lnbmVkJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1aW50NjRfdCYgdXJs
Q2FjaGVEaXNrQ2FwYWNpdHkpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDk3NDYxOGY2ZDI2NTQ5MDYzYzgzODhm
Y2RhZTJlYjRkNTY3NjFhMDYuLjc5NmIwZTE5NWY1MzBhMTgxNTI1OGQxY2Q3N2Q0YWY5YWI5MGMx
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTU1LDEx
ICsxNTUsMTEgQEAgTG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDoKICAgdHlwZTogYm9v
bAogICBkZWZhdWx0VmFsdWU6IGZhbHNlCiAKLVVzZXNQYWdlQ2FjaGU6CitVc2VzQmFja0Zvcndh
cmRDYWNoZToKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIAotUGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zOgorQmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2luczoKICAgdHlw
ZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggY2QyMmEyNjc2NDY4ZDE4MjM0
YTYwODQyZmU5ZDkxNjcxYjIwYTg3ZC4uMzhjYzc1MGNiMmM0MTgxYzA4ZTAxNjVkZjM2MGQ3NGM4
Mjk3YTk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbkNsaWVudC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZXNvbHZlV2ViR0xMb2FkUG9saWN5KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RG
OjpVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0IHsgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
V2ViR0xMb2FkUG9saWN5OjpXZWJHTEFsbG93Q3JlYXRpb24pOyB9CiAjZW5kaWYKICAgICAKLSAg
ICB2aXJ0dWFsIGJvb2wgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBpblBhZ2VDYWNo
ZSkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExp
c3RJdGVtJiwgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZShXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTmF2aWdhdGlvbkdlc3R1cmUoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBib29sIHdpbGxOYXZpZ2F0ZSwgV2ViS2l0OjpXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGUzNzM5MzRjMjNk
ZGY1ZDVkOTkzOWE3NTE5NzlmMDVjOTM1YWMwZTEuLjFlMDBhNWU4OTQzZThlNmFhY2QyYjVjMTc3
MWJhNmZjZDA0NDU1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC02OSw3ICs2OSw3IEBA
IFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6
Y29weSgpCiAgICAgY29weS0+bV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyID0g
dGhpcy0+bV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyOwogICAgIGNvcHktPm1f
aXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudCA9IHRoaXMtPm1faXNBdXRv
bWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudDsKICAgICBjb3B5LT5tX3VzZXNXZWJQ
cm9jZXNzQ2FjaGUgPSB0aGlzLT5tX3VzZXNXZWJQcm9jZXNzQ2FjaGU7Ci0gICAgY29weS0+bV91
c2VzUGFnZUNhY2hlID0gdGhpcy0+bV91c2VzUGFnZUNhY2hlOworICAgIGNvcHktPm1fdXNlc0Jh
Y2tGb3J3YXJkQ2FjaGUgPSB0aGlzLT5tX3VzZXNCYWNrRm9yd2FyZENhY2hlOwogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIGNvcHktPm1fc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9u
U3lzdGVtQ2hhbmdlID0gdGhpcy0+bV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25T
eXN0ZW1DaGFuZ2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCAxZmE3OTAxN2FmODY0
ZWM5NmRlMmVmODE5ZWE3OWJmMThhMjI4MzJmLi4zOTZmM2U1MzQyYmVhYTY3Y2Y2NzNjYWM1MjY0
ZGZhZjk0NjdkNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC02OCw4ICs2OCw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGNsaWVudFdvdWxkQmVuZWZpdEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2Fy
bWluZygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50V291bGRCZW5lZml0RnJvbUF1dG9tYXRpY1By
b2Nlc3NQcmV3YXJtaW5nOyB9CiAgICAgdm9pZCBzZXRDbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0
b21hdGljUHJvY2Vzc1ByZXdhcm1pbmcoYm9vbCB2YWx1ZSkgeyBtX2NsaWVudFdvdWxkQmVuZWZp
dEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2FybWluZyA9IHZhbHVlOyB9CiAKLSAgICB2b2lkIHNl
dFVzZXNQYWdlQ2FjaGUoYm9vbCB2YWx1ZSkgeyBtX3VzZXNQYWdlQ2FjaGUgPSB2YWx1ZTsgfQot
ICAgIGJvb2wgdXNlc1BhZ2VDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1BhZ2VDYWNoZTsg
fQorICAgIHZvaWQgc2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUoYm9vbCB2YWx1ZSkgeyBtX3VzZXNC
YWNrRm9yd2FyZENhY2hlID0gdmFsdWU7IH0KKyAgICBib29sIHVzZXNCYWNrRm9yd2FyZENhY2hl
KCkgY29uc3QgeyByZXR1cm4gbV91c2VzQmFja0ZvcndhcmRDYWNoZTsgfQogCiAgICAgY29uc3Qg
V1RGOjpTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0
ZWRCdW5kbGVQYXRoOyB9CiAgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZVBhdGgoY29uc3QgV1RG
OjpTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCkgeyBtX2luamVjdGVkQnVuZGxlUGF0aCA9IGlu
amVjdGVkQnVuZGxlUGF0aDsgfQpAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3Byb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgeyBmYWxzZSB9OwogICAgIE9w
dGlvbmFsPGJvb2w+IG1faXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudDsK
ICAgICBib29sIG1fdXNlc1dlYlByb2Nlc3NDYWNoZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Vz
ZXNQYWdlQ2FjaGUgeyB0cnVlIH07CisgICAgYm9vbCBtX3VzZXNCYWNrRm9yd2FyZENhY2hlIHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV9jbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0b21hdGljUHJvY2Vz
c1ByZXdhcm1pbmcgeyBmYWxzZSB9OwogICAgIFdURjo6U3RyaW5nIG1fY3VzdG9tV2ViQ29udGVu
dFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOwogICAgIGJvb2wgbV9zaG91bGRDb25maWd1cmVKU0NG
b3JUZXN0aW5nIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYjM0ZjRiYzc3ZGFkODhkZmVhMDdlODdiYWE2NjM4MTc1
YmUzZWI1MC4uODg4MDJhMmU4MWJiMzEwNjk3OTFlMGJiM2UyNjY5NDlkNTE3Zjc2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTYx
MCwyMiArNjEwLDIyIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldExvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlCiAKIHZvaWQgV0tQcmVmZXJl
bmNlc1NldFBhZ2VDYWNoZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBlbmFibGVkKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFVzZXNQYWdl
Q2FjaGUoZW5hYmxlZCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0VXNlc0JhY2tG
b3J3YXJkQ2FjaGUoZW5hYmxlZCk7CiB9CiAKIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNo
ZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4g
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+dXNlc1BhZ2VDYWNoZSgpOworICAgIHJldHVybiB0b0lt
cGwocHJlZmVyZW5jZXNSZWYpLT51c2VzQmFja0ZvcndhcmRDYWNoZSgpOwogfQogCi12b2lkIFdL
UHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZiwgYm9vbCBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpCit2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBiYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKQogewotICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyhwYWdl
Q2FjaGVTdXBwb3J0c1BsdWdpbnMpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJh
Y2tGb3J3YXJkQ2FjaGVTdXBwb3J0c1BsdWdpbnMoYmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1
Z2lucyk7CiB9CiAKIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lu
cyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoKTsKKyAgICByZXR1cm4g
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucygp
OwogfQogCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCAx
OTQyNjBlMGMyZWNkYzA5ZjRiZmFhOTY2NzU4NzVmYmE1ODJmYjQwLi5jMWE3MzA4ZDNkNTU0OTg3
ODE1MzBhZDliYTJmN2M2MzUzMWM3NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtOTQ0LDIyICs5NDQsMjIgQEAgLSAo
Qk9PTClfbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZAogCiAtICh2b2lkKV9zZXRVc2Vz
UGFnZUNhY2hlOihCT09MKWVuYWJsZWQKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldFVzZXNQYWdl
Q2FjaGUoZW5hYmxlZCk7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRVc2VzQmFja0ZvcndhcmRDYWNo
ZShlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfdXNlc1BhZ2VDYWNoZQogewotICAgIHJldHVybiBf
cHJlZmVyZW5jZXMtPnVzZXNQYWdlQ2FjaGUoKTsKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT51
c2VzQmFja0ZvcndhcmRDYWNoZSgpOwogfQogCiAtICh2b2lkKV9zZXRQYWdlQ2FjaGVTdXBwb3J0
c1BsdWdpbnM6KEJPT0wpZW5hYmxlZAogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0UGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zKGVuYWJsZWQpOworICAgIF9wcmVmZXJlbmNlcy0+c2V0QmFja0Zvcndh
cmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfcGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+cGFnZUNhY2hlU3Vw
cG9ydHNQbHVnaW5zKCk7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YmFja0ZvcndhcmRDYWNo
ZVN1cHBvcnRzUGx1Z2lucygpOwogfQogCiAtICh2b2lkKV9zZXRTaG91bGRQcmludEJhY2tncm91
bmRzOihCT09MKWVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDg3
N2Q1MmNhZDMwZTBmZTM4ZjNjOWVhNzNiOTg5MjU3MzhmMjU4ZTMuLjBiNjc3YmNjNGY4MjAyY2Uy
Mzk5NWEwODJiYmI1YjAzODIwZmM4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5t
bQpAQCAtMzEzLDEyICszMTMsMTIgQEAgLSAoQk9PTClwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5X
aXRoT3BlbmVyCiAKIC0gKEJPT0wpcGFnZUNhY2hlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLT51c2VzUGFnZUNhY2hlKCk7CisgICAgcmV0dXJuIF9wcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24tPnVzZXNCYWNrRm9yd2FyZENhY2hlKCk7CiB9CiAKIC0gKHZv
aWQpc2V0UGFnZUNhY2hlRW5hYmxlZDooQk9PTCllbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFVzZXNQYWdlQ2FjaGUoZW5hYmxlZCk7CisgICAgcmV0
dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFVzZXNCYWNrRm9yd2FyZENhY2hlKGVu
YWJsZWQpOwogfQogCiAtIChCT09MKXVzZXNTaW5nbGVXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggYWUy
NzhjNzYyNTA5M2VjNTUxMTAzYjM4NzFmMGI4YTQ5NjUwOTRmZS4uZTU3MDE2YjM1YzFiMWM1ZjA0
Zjc5MmY1ODMxMjg3NDJlYTVhOWQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAtMjk4NCw3ICsyOTg0LDcgQEAgZ2Jv
b2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfcGFnZV9jYWNoZShXZWJLaXRTZXR0aW5n
cyogc2V0dGluZ3MpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJ
TkdTKHNldHRpbmdzKSwgRkFMU0UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcml2LT5wcmVm
ZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgpOworICAgIHJldHVybiBzZXR0aW5ncy0+cHJpdi0+cHJl
ZmVyZW5jZXMtPnVzZXNCYWNrRm9yd2FyZENhY2hlKCk7CiB9CiAKIC8qKgpAQCAtMjk5OSwxMSAr
Mjk5OSwxMSBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3BhZ2VfY2FjaGUoV2Vi
S2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlbgogICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CiAKICAgICBXZWJLaXRTZXR0aW5nc1ByaXZh
dGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKLSAgICBib29sIGN1cnJlbnRWYWx1ZSA9IHByaXYt
PnByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCk7CisgICAgYm9vbCBjdXJyZW50VmFsdWUgPSBw
cml2LT5wcmVmZXJlbmNlcy0+dXNlc0JhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICBpZiAoY3VycmVu
dFZhbHVlID09IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHByaXYtPnByZWZlcmVu
Y2VzLT5zZXRVc2VzUGFnZUNhY2hlKGVuYWJsZWQpOworICAgIHByaXYtPnByZWZlcmVuY2VzLT5z
ZXRVc2VzQmFja0ZvcndhcmRDYWNoZShlbmFibGVkKTsKICAgICBnX29iamVjdF9ub3RpZnkoR19P
QkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXBhZ2UtY2FjaGUiKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCBiM2EzZDZmYmE5
Njc0NmFiNDJlMjQxNTU5MzQzYTQ4OGQ1Y2Y3NjNlLi4wZGZkZTdjOTg2ODAxZDhjMTg1ODJjMmE4
YTM1NzkyNWFlNmMyMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgICAgICB2b2lkIHdlYkdMTG9hZFBvbGljeShXZWJQYWdlUHJveHkmLCBjb25z
dCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+
JiYpIGNvbnN0IGZpbmFsOwogICAgICAgICB2b2lkIHJlc29sdmVXZWJHTExvYWRQb2xpY3koV2Vi
UGFnZVByb3h5JiwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpX
ZWJHTExvYWRQb2xpY3kpPiYmKSBjb25zdCBmaW5hbDsKLSAgICAgICAgYm9vbCB3aWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0oV2ViUGFnZVByb3h5JiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYs
IGJvb2wgaW5QYWdlQ2FjaGUpIGZpbmFsOworICAgICAgICBib29sIHdpbGxHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbShXZWJQYWdlUHJveHkmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBp
bkJhY2tGb3J3YXJkQ2FjaGUpIGZpbmFsOwogICAgICAgICBib29sIGRpZEZhaWxUb0luaXRpYWxp
emVQbHVnSW4oV2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAg
IGJvb2wgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpE
aWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9h
ZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwg
QVBJOjpEaWN0aW9uYXJ5JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OlBsdWdpbk1v
ZHVsZUxvYWRQb2xpY3ksIGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGZpbmFsOwpAQCAtMjQwLDcg
KzI0MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0JhY2tGb3J3YXJkTGlzdEl0
ZW1BZGRlZFJlbW92ZWQgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRGYWlsVG9Jbml0aWFs
aXplUGx1Z0luV2l0aEluZm8gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRCbG9ja0luc2Vj
dXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtSW5QYWdlQ2FjaGUgOiAxOworICAgICAgICBib29sIHdlYlZp
ZXdXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1JbkJhY2tGb3J3YXJkQ2FjaGUgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xp
Y3lQbHVnaW5JbmZvQ29tcGxldGlvbkhhbmRsZXIgOiAxOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA2YjE1YzA2
YmQ5ZWZhMTlhZDYzNmIzMjlhMmE3NmE2YmU4NTVjZGQ4Li45NGFlOWIxMzBmYjg5OTkzOGU5Y2Uy
NjFiNWU2OGUxM2U1MmUwMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRl
bGVnYXRlKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld1dlYkdMTG9hZFBvbGljeUZvclVSTCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndlYkdMTG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhh
bmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXNvbHZl
V2ViR0xMb2FkUG9saWN5Rm9yVVJMID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6cmVzb2x2ZVdlYkdMTG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhhbmRs
ZXI6KV07Ci0gICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1JblBhZ2VDYWNoZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTppblBhZ2VD
YWNoZTopXTsKKyAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbUluQmFja0ZvcndhcmRDYWNoZSA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bTppblBhZ2VDYWNoZTopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRoSW5mbyA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRo
SW5mbzopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJsb2Nr
SW5zZWN1cmVQbHVnaW5WZXJzaW9uV2l0aEluZm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJ
bmZvOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QmFja0Zvcndh
cmRMaXN0SXRlbUFkZGVkUmVtb3ZlZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmJhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZDpyZW1vdmVkOildOwpAQCAt
NDYyLDE2ICs0NjIsMTYgQEAgYm9vbCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6
OmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJQYWdlUHJveHkmLAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0m
IGl0ZW0sIGJvb2wgaW5QYWdlQ2FjaGUpCitib29sIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlv
bkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlKQogewotICAg
IGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1JblBhZ2VDYWNoZSkKKyAgICBpZiAoIW1fbmF2
aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtSW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1f
bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVBy
aXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dl
YlZpZXcgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOndyYXBwZXIoaXRlbSkgaW5QYWdlQ2Fj
aGU6aW5QYWdlQ2FjaGVdOworICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4p
bmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyB3
aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06d3JhcHBlcihpdGVtKSBpblBhZ2VDYWNoZTppbkJh
Y2tGb3J3YXJkQ2FjaGVdOwogICAgIHJldHVybiB0cnVlOwogfQogI2VuZGlmCkBAIC03NTQsNyAr
NzU0LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm8KICAgICBpZiAoIW5hdmlnYXRpb25EZWxl
Z2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQg
dGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxs
IGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1
dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJh
Y2svZm9yd2FyZCBjYWNoZS4KIAogICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uVXNl
ckluZm8pCiAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdh
dGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRTdGFy
dFByb3Zpc2lvbmFsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pIHVzZXJJbmZvOnVzZXJJ
bmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIo
KSkgOiBuaWxdOwpAQCAtNzcxLDcgKzc3MSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hCiAg
ICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBi
dXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBw
YWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlv
biBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlv
bkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24p
XTsKIH0KQEAgLTgzNCw3ICs4MzQsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0
ZUVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVyKFdLV2ViVmlldyAqd2ViVmlldywgVwogLy8gRklY
TUU6IFNob3VsZG4ndCBuZWVkIHRvIHBhc3MgdGhlIFdlYkZyYW1lUHJveHkgaW4gaGVyZS4gQXQg
bW9zdCwgYSBGcmFtZUhhbmRsZS4KIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xp
ZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZp
Z2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3Qq
KQogewotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBu
b3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9u
cyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0
IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVs
bCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAK
ICAgICAvLyBGSVhNRTogU2V0IHRoZSBlcnJvciBvbiB0aGUgbmF2aWdhdGlvbiBvYmplY3QuCiAK
QEAgLTg3Miw3ICs4NzIsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVu
dDo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZp
Z2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJy
ZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgor
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVs
bCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJv
dWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdl
YlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZENvbW1pdE5hdmlnYXRpb246d3Jh
cHBlcihuYXZpZ2F0aW9uKV07CiB9CkBAIC04ODYsNyArODg2LDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9hZChXZWJQYWdlUHJv
eHkmIHBhZ2UKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBu
dWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRo
cm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhh
dCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZv
ciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAg
IFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgbmF2
aWdhdGlvbkRpZEZpbmlzaERvY3VtZW50TG9hZDp3cmFwcGVyKG5hdmlnYXRpb24pXTsKIH0KQEAg
LTkwMCw3ICs5MDAsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
ZGlkRmluaXNoTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZpZ2F0
aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
YXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50
bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBo
ZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdo
IHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZp
ZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246d3JhcHBl
cihuYXZpZ2F0aW9uKV07CiB9CkBAIC05MTYsNyArOTE2LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQ
cm94eSYKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxs
IGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91
Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBu
YXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBz
b21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAgIGF1
dG8gZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIgPSBjcmVhdGVFcnJvcldpdGhSZWNvdmVyeUF0
dGVtcHRlcihtX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcsIHdlYkZyYW1lUHJveHksIGVycm9y
KTsKICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvclVzZXJJbmZvKQpAQCAtOTM0LDcgKzkz
NCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdh
dGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRo
YXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJv
IGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwg
YnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlLgogCiAgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25E
ZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1fbmF2
aWdhdGlvblN0YXRlLm1fd2ViVmlldyBuYXZpZ2F0aW9uOndyYXBwZXIobmF2aWdhdGlvbikgZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbjp0b1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUobmF2
aWdhdGlvblR5cGUpXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuY3BwCmluZGV4IGI0ODI3NzI5ZDcyNDIxNTJlYjQ3NTE2YjgwZTRkYTA3
NWFmYjc1M2UuLjM1NjIzNTU1N2E3ZWM3ZmM0NmEzZGFhMzVlN2M4ZDk4OTI2ZTBhMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApA
QCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1h
aW5GcmFtZUxvYWRUZXJtaW5hbFN0YXRlKCkKICAgICBpZiAoIW1fc25hcHNob3RSZW1vdmFsVHJh
Y2tlci5ldmVudE9jY3VycmVkKFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6Ok1haW5GcmFtZUxvYWQp
KQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBDb21pbmcgYmFjayBmcm9tIHRoZSBwYWdlIGNh
Y2hlIHdpbGwgcmVzdWx0IGluIGdldHRpbmcgYSBsb2FkIGV2ZW50LCBidXQgbm8gZmlyc3Qgdmlz
dWFsbHkgbm9uLWVtcHR5IGxheW91dC4KKyAgICAvLyBDb21pbmcgYmFjayBmcm9tIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUgd2lsbCByZXN1bHQgaW4gZ2V0dGluZyBhIGxvYWQgZXZlbnQsIGJ1dCBu
byBmaXJzdCB2aXN1YWxseSBub24tZW1wdHkgbGF5b3V0LgogICAgIC8vIFdlYkNvcmUgY29uc2lk
ZXJzIGEgbG9hZGVkIGRvY3VtZW50IGVub3VnaCB0byBiZSBjb25zaWRlcmVkIHZpc3VhbGx5IG5v
bi1lbXB0eSwgc28gdGhhdCdzIGdvb2QKICAgICAvLyBlbm91Z2ggZm9yIHVzIHRvby4KICAgICBt
X3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIuY2FuY2VsT3V0c3RhbmRpbmdFdmVudChTbmFwc2hvdFJl
bW92YWxUcmFja2VyOjpWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGIzNzI1NThmZWM3NDBlOTBmMzE3ZmQ3MmQ4OWMw
YTk4ZTYzZmViNWYuLjJjYzk2OTM2YzcwZDNiYjkzMzljZmJmYTUxOGIyN2RkZWZmYmJmY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODE1LDcgKzgxNSw3
IEBAIFdlYkJhY2tGb3J3YXJkQ2FjaGUmIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRDYWNoZSgp
IGNvbnN0CiAKIGJvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRVc2VCYWNrRm9yd2FyZENhY2hlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9wcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgpICYmIGJh
Y2tGb3J3YXJkQ2FjaGUoKS5jYXBhY2l0eSgpID4gMDsKKyAgICByZXR1cm4gbV9wcmVmZXJlbmNl
cy0+dXNlc0JhY2tGb3J3YXJkQ2FjaGUoKSAmJiBiYWNrRm9yd2FyZENhY2hlKCkuY2FwYWNpdHko
KSA+IDA7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBzdGQ6OnVu
aXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdlYkZyYW1l
UHJveHk+JiYgbWFpbkZyYW1lKQpAQCAtMTU2NywxMiArMTU2NywxMiBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFk
ZGVkLCBWZWN0bwogICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRDYW5Hb0ZvcndhcmQodHJhbnNhY3Rp
b24sIG1fYmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShjb25zdCBCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyJiBpdGVtSUQsIGJvb2wgaW5QYWdlQ2FjaGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6
d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKGNvbnN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXImIGl0ZW1JRCwgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUpCiB7CiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIAogICAgIGlmIChhdXRvKiBpdGVtID0g
bV9iYWNrRm9yd2FyZExpc3QtPml0ZW1Gb3JJRChpdGVtSUQpKQotICAgICAgICBtX25hdmlnYXRp
b25DbGllbnQtPndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSgqdGhpcywgKml0ZW0sIGluUGFn
ZUNhY2hlKTsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW0oKnRoaXMsICppdGVtLCBpbkJhY2tGb3J3YXJkQ2FjaGUpOwogfQogCiBib29sIFdl
YlBhZ2VQcm94eTo6c2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pCkBAIC00MDgzLDcgKzQwODMsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmCiAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0
aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUg
bmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0
IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247
CiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAg
bmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsK
QEAgLTQxNTAsNyArNDE1MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8CiAgICAgTUVTU0FH
RV9DSEVDSyhwcm9jZXNzLCBmcmFtZSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocHJvY2Vzcywg
cmVxdWVzdC51cmwoKSk7CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sg
dGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHpl
cm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHpl
cm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhy
b3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+
IG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uSUQgPyBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwogICAgIGlmIChuYXZpZ2F0aW9uKQogICAgICAgICBu
YXZpZ2F0aW9uLT5hcHBlbmRSZWRpcmVjdGlvblVSTChyZXF1ZXN0LnVybCgpKTsKQEAgLTQyNDQs
NyArNDI0NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwCiAgICAgICAgICAgICBhdXRvbWF0
aW9uU2Vzc2lvbi0+bmF2aWdhdGlvbk9jY3VycmVkRm9yRnJhbWUoKmZyYW1lKTsKICAgICB9CiAK
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQg
aXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdh
dGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1l
c3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3Mg
Y3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAg
aWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdh
dGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLnRha2VOYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CkBA
IC00MzE5LDcgKzQzMTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZwogICAgIFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdF
X0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBtZXNz
YWdlIGNoZWNrIHRoYXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1
cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUu
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBtZXNzYWdlIGNoZWNrIHRoYXQgbmF2aWdhdGlvbklE
IGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmln
YXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBSZWZQdHI8QVBJOjpO
YXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBu
YXZpZ2F0aW9uSUQgJiYgKG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCkpKSB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
QEAgLTQ0MzYsNyArNDQzNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0CiAgICAgICAgICAg
ICBhdXRvbWF0aW9uU2Vzc2lvbi0+ZG9jdW1lbnRMb2FkZWRGb3JGcmFtZSgqZnJhbWUpOwogICAg
IH0KIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRp
b25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBu
YXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQg
aXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsK
ICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBu
YXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpA
QCAtNDQ1NSw3ICs0NDU1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWcKICAgICBXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FH
RV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVz
c2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBj
dXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hl
LgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25J
RCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYg
bmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2
aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDUwMCw3ICs0NTAwLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXQKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBu
b3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9u
cyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2Fn
ZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJy
ZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAo
ZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9u
ID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDU0Myw3
ICs0NTQzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWkKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgZnJhbWUpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKG1fcHJvY2VzcywgdXJsKTsK
IAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25J
RCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
bWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQn
cyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2Zv
cndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZp
Z2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3ODVjYzczYzBlNWM2ZDVkNThm
Yzc4ZGFlMTU0NWJiMTQyMTNhODk4Li5jNmE0ZmRjZmEzNWVjYjU0MTI5YTk3YjQ1MDg4YTJmYzEw
NDczNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTU4LDcg
KzU1OCw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb1RvQmFja0Zv
cndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKICAgICB2b2lkIHRyeVJlc3RvcmVT
Y3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9yPFJlZjxXZWJCYWNrRm9yd2FyZExp
c3RJdGVtPj4mJiByZW1vdmVkKTsKLSAgICB2b2lkIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgYm9vbCBpblBhZ2VD
YWNoZSk7CisgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oY29uc3QgV2ViQ29y
ZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlKTsK
IAogICAgIGJvb2wgc2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDMwNDNlY2U0ZTg1MTkyZjFmYzAyOTg1YWE3
ZDY5MWU3MDIzZDExN2UuLjdiOWZlMjA4NDJjN2QwODhlNDc4NDJiMGFiYzQxMWZhNzczY2JjMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTIzMCw3ICsyMzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJh
Y2tGb3J3YXJkQmFja0xpc3RDb3VudCgpIC0+ICh1aW50MzJfdCBjb3VudCkgU3luY2hyb25vdXMK
ICAgICBCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQoKSAtPiAodWludDMyX3QgY291bnQpIFN5
bmNocm9ub3VzCiAgICAgQmFja0ZvcndhcmRDbGVhcigpCi0gICAgV2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGl0ZW1J
RCwgYm9vbCBpblBhZ2VDYWNoZSkKKyAgICBXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oc3Ry
dWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgaXRlbUlELCBib29sIGluQmFj
a0ZvcndhcmRDYWNoZSkKIAogICAgICMgVW5kby9SZWRvIG1lc3NhZ2VzCiAgICAgUmVnaXN0ZXJF
ZGl0Q29tbWFuZEZvclVuZG8odWludDY0X3QgY29tbWFuZElELCBTdHJpbmcgbGFiZWwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYzA2ZDZjNmI3N2E3
NGVlN2Q5MzliNzU4ZTAxZmNhZTZmY2E2ODEwNy4uMjc4ZTRjNzNmYmRlM2MwOGVmZWRhZjEyMzc4
OTAwYjE5YmY2MDVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtMTU3Miw3ICsxNTcyLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJV
UkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYKIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6dXBkYXRlQmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KCkKIHsKLSAg
ICBpZiAoIW1fY29uZmlndXJhdGlvbi0+dXNlc1BhZ2VDYWNoZSgpKQorICAgIGlmICghbV9jb25m
aWd1cmF0aW9uLT51c2VzQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICB1bnNpZ25lZCBkdW1teSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uY3BwCmluZGV4IGQ4ZTNhOWYyMzE4N2VmYjNiNWIwNzY0YTE0YjEy
ZDVlOGM1MGIyMDUuLjc3OTg3ODIzMWY5Yzg0MDU1NTRmNGNhYTJjNzE3N2I0ODQ1ZDkxZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3Bw
CkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNUYXJn
ZXRJdGVtKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1ib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5QYWdlQ2FjaGUo
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCitib29sIFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbUlzSW5CYWNrRm9yd2FyZENhY2hlKFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbVJlZiBpdGVtUmVmKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaAppbmRleCBmMDBlYWQ0NjY2
MTk4OTU3NWJjMmI5ZGU3YWM5ZDliMjFkNTU3ZWE2Li5jOWE2MDM1MWY2NWY4NjlmNDI5MWQ2ODUy
YjA3OGE4ZmVmZTUwMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0Zv
cndhcmRMaXN0SXRlbS5oCkBAIC00NCw3ICs0NCw3IEBAIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUoV0tCdW5kbGVCYWNrRm9yd2FyZExp
CiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRh
cmdldChXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVD
QVRFRDsKIFdLX0VYUE9SVCBib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzVGFyZ2V0
SXRlbShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVD
QVRFRDsKIAotV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJblBh
Z2VDYWNoZShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQ
UkVDQVRFRDsKK1dLX0VYUE9SVCBib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5C
YWNrRm9yd2FyZENhY2hlKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKSBXS19D
X0FQSV9ERVBSRUNBVEVEOwogV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJ
dGVtSGFzQ2FjaGVkUGFnZUV4cGlyZWQoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0
ZW0pIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKIFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxl
QmFja0ZvcndhcmRMaXN0SXRlbUNvcHlDaGlsZHJlbihXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVDQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcAppbmRleCAwZWNhNGMxZDMyMGNlOTBkZWMxY2VhODM1NGZlMjI2ZTcwZjQ0NTMy
Li4wMjY5NWQzZWI4OWY1ZTY0MDkzODQxNDI0OWU3ZjVjOWY4MmFjNDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVy
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nl
c3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgQmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlIHRvQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKGNvbnN0IFdlYkNvcmU6Okhp
c3RvcnlJdGVtJgogICAgIHN0YXRlLnBhZ2VTdGF0ZS5tYWluRnJhbWVTdGF0ZSA9IHRvRnJhbWVT
dGF0ZShoaXN0b3J5SXRlbSk7CiAgICAgc3RhdGUucGFnZVN0YXRlLnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgPSBoaXN0b3J5SXRlbS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCk7
CiAgICAgc3RhdGUucGFnZVN0YXRlLnNlc3Npb25TdGF0ZU9iamVjdCA9IGhpc3RvcnlJdGVtLnN0
YXRlT2JqZWN0KCk7Ci0gICAgc3RhdGUuaGFzQ2FjaGVkUGFnZSA9IGhpc3RvcnlJdGVtLmlzSW5Q
YWdlQ2FjaGUoKTsKKyAgICBzdGF0ZS5oYXNDYWNoZWRQYWdlID0gaGlzdG9yeUl0ZW0uaXNJbkJh
Y2tGb3J3YXJkQ2FjaGUoKTsKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IGNjZWQxMWZhYmRlMWViYTkyYmQ2YzdlMGNiMTZiNTc5OTcz
ZDNhNGMuLjc4ZGE0N2NhOWUxOWNmZTdmZDZlYzcxY2ZhZGU3OTZlZTVkOTU2YWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpXZWJGcmFtZUxvYWRlckNsaWVudCgpCiAgICAgLCBtX2hhc1NlbnRSZXNwb25z
ZVRvUGx1Z2luVmlldyhmYWxzZSkKICAgICAsIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbihm
YWxzZSkKICAgICAsIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIoZmFsc2UpCi0gICAg
LCBtX2ZyYW1lQ2FtZUZyb21QYWdlQ2FjaGUoZmFsc2UpCisgICAgLCBtX2ZyYW1lQ2FtZUZyb21C
YWNrRm9yd2FyZENhY2hlKGZhbHNlKQogewogfQogCkBAIC0xMjA2LDcgKzEyMDYsNyBAQCBib29s
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0m
IGl0ZW0pIGNvbnN0CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAg
ICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVt
LmlkZW50aWZpZXIoKSwgaXRlbS5pc0luUGFnZUNhY2hlKCkpKTsKKyAgICB3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVt
LmlkZW50aWZpZXIoKSwgaXRlbS5pc0luQmFja0ZvcndhcmRDYWNoZSgpKSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTE0NjUsNyArMTQ2NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopCiB7
CiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBtX2ZyYW1lLT5jb3JlRnJh
bWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKTsKICAgICBtX2ZyYW1l
SGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyID0gbV9mcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBtX2Zy
YW1lLT5wYWdlKCktPnNob3VsZFVzZUN1c3RvbUNvbnRlbnRQcm92aWRlckZvclJlc3BvbnNlKHJl
c3BvbnNlKTsKLSAgICBtX2ZyYW1lQ2FtZUZyb21QYWdlQ2FjaGUgPSB0cnVlOworICAgIG1fZnJh
bWVDYW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUgPSB0cnVlOwogfQogCiB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKQEAgLTE0ODcsNyAr
MTQ4Nyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRl
ZEZvck5ld1BhZ2UoKQogCiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBt
X2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2Uo
KTsKICAgICBtX2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyID0gaXNNYWluRnJhbWUgJiYg
d2ViUGFnZS0+c2hvdWxkVXNlQ3VzdG9tQ29udGVudFByb3ZpZGVyRm9yUmVzcG9uc2UocmVzcG9u
c2UpOwotICAgIG1fZnJhbWVDYW1lRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworICAgIG1fZnJhbWVD
YW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKIAogICAgIFNjcm9sbGJhck1vZGUgZGVm
YXVsdFNjcm9sbGJhck1vZGUgPSBzaG91bGRIaWRlU2Nyb2xsYmFycyA/IFNjcm9sbGJhckFsd2F5
c09mZiA6IFNjcm9sbGJhckF1dG87CiAKQEAgLTE1MzMsOSArMTUzMyw5IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogI2VuZGlm
CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tUGFnZUNhY2hl
KCkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRD
YWNoZSgpCiB7Ci0gICAgbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgICBtX2Zy
YW1lQ2FtZUZyb21CYWNrRm9yd2FyZENhY2hlID0gdHJ1ZTsKIH0KIAogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sIHZhbHVlKQpAQCAtMTU5
Niw3ICsxNTk2LDcgQEAgUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0
ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW0KICAgICBwYXJhbWV0ZXJzLnZh
bHVlcyA9IHBhcmFtVmFsdWVzOwogICAgIHBhcmFtZXRlcnMubWltZVR5cGUgPSBtaW1lVHlwZTsK
ICAgICBwYXJhbWV0ZXJzLmlzRnVsbEZyYW1lUGx1Z2luID0gbG9hZE1hbnVhbGx5OwotICAgIHBh
cmFtZXRlcnMuc2hvdWxkVXNlTWFudWFsTG9hZGVyID0gcGFyYW1ldGVycy5pc0Z1bGxGcmFtZVBs
dWdpbiAmJiAhbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlOworICAgIHBhcmFtZXRlcnMuc2hvdWxk
VXNlTWFudWFsTG9hZGVyID0gcGFyYW1ldGVycy5pc0Z1bGxGcmFtZVBsdWdpbiAmJiAhbV9mcmFt
ZUNhbWVGcm9tQmFja0ZvcndhcmRDYWNoZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBwYXJh
bWV0ZXJzLmxheWVySG9zdGluZ01vZGUgPSBtX2ZyYW1lLT5wYWdlKCktPmxheWVySG9zdGluZ01v
ZGUoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhZmExN2E0OTY3
Y2ZjMDNhNmM5NDhkYjk5Y2U4MDE0MjVkZWM0N2YxLi42MTFmY2I4NmRiZTYzYWQ3MzNiMTIwMTc1
NmExNTJkZGNiOTM2MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNzEsNyAr
NzEsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIGZpbmFsOworICAgIGJv
b2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogI2Vu
ZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZvck5vbkhUTUwoKSBmaW5hbDsKICAgICAKQEAgLTIw
Niw3ICsyMDYsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21t
aXR0ZWRGb3JOZXdQYWdlKCkgZmluYWw7CiAKLSAgICB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNh
Y2hlKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBm
aW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbDsK
IApAQCAtMjgxLDcgKzI4MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25z
ZVRvUGx1Z2luVmlldzsKICAgICBib29sIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbjsKICAg
ICBib29sIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXI7Ci0gICAgYm9vbCBtX2ZyYW1l
Q2FtZUZyb21QYWdlQ2FjaGU7CisgICAgYm9vbCBtX2ZyYW1lQ2FtZUZyb21CYWNrRm9yd2FyZENh
Y2hlOwogICAgIGJvb2wgbV91c2VJY29uTG9hZGluZ0NsaWVudCB7IGZhbHNlIH07CiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBPcHRpb25hbDxGcmFtZVNwZWNpZmlj
U3RvcmFnZUFjY2Vzc0lkZW50aWZpZXI+IG1fZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVu
dGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0KaW5kZXgg
ZmNhOWJkZjA2ZWRhYTNiNDk4N2IxOTg1NGU5MzNjZTZmMzQ3NWNiMS4uOGZhZjMxZWE0YjdiMzBl
NTdkYzQ4ZWQyNjRhYzk2YWEyMTRmZGRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9h
ZGVyQ2xpZW50SU9TLm1tCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZFJlc3RvcmVGcmFtZUhpZXJhcmNoeUZvckNhY2hlZEZyYW1lKCkKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dE9u
UmVzdG9yZUZyb21QYWdlQ2FjaGUoKQorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Zm9yY2VM
YXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRl
ZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCmluZGV4IDRiYjRlMzQ0MjYyNzI1ODE4
YmQ0MDA5MGQ5ZGFlZWMwZjU2MzI5ZTUuLjJhZGQyMWJiZWU5NDlhMDhkNGJiMmMxMWY4YjY0MzFi
NTEwZWI5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zp
c2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJk
TGlzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tG
b3J3YXJkTGlzdFByb3h5LmNwcAppbmRleCBkODBkN2Y5NTdhOTYzYmQyYjlkZmI5MmJiZDk1NWI4
ZDVkNTI0NDBmLi45MTc0ZmUxZjk5YzJmYTUzYjkzZDdmOTJkZGUyZGYxZGFiZTQ1NmJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExp
c3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHkuY3BwCkBAIC0zNCwxMCArMzQsMTAgQEAKICNpbmNsdWRlICJXZWJQ
YWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRD
YWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hp
c3RvcnlDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+
CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnJlbW92ZUl0
ZW0oY29uc3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYgaXRlbUlECiAgICAgaWYgKCFpdGVt
KQogICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCku
cmVtb3ZlKCppdGVtKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUo
Kml0ZW0pOwogICAgIFdlYkNvcmU6OlBhZ2U6OmNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBhZ2Vz
KGl0ZW0uZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDA4MTc5Mjc2M2JiY2FiMzg1Y2FhMjc1YzM1MGJmNjlkNzc4ZmFjYjAu
LmRmOTYxZTQwOWM1YTgzOWFiMThjZDU1MjdlNmY4NDk2Yzg2NzkzYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TYW1wbGluZ1Byb2ZpbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJj
aGl2ZVJlc291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29tbW9uVk0uaD4KQEAgLTE5Miw3ICsx
OTMsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BpbmdMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgpAQCAtMTQ5MCwxMiArMTQ5MCwxMiBAQCB2b2lkIFdl
YlBhZ2U6OnN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoIVBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuYWRkSWZDYWNoZWFibGUoKmN1cnJlbnRI
aXN0b3J5SXRlbSwgY29yZVBhZ2UoKSkpIHsKKyAgICBpZiAoIUJhY2tGb3J3YXJkQ2FjaGU6OnNp
bmdsZXRvbigpLmFkZElmQ2FjaGVhYmxlKCpjdXJyZW50SGlzdG9yeUl0ZW0sIGNvcmVQYWdlKCkp
KSB7CiAgICAgICAgIGZhaWxlZFRvU3VzcGVuZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgLy8gUGFnZSBjYWNoZSBkb2VzIG5vdCBicmVhayB0aGUgb3BlbmVyIGxpbmsgZm9yIHRo
ZSBtYWluIGZyYW1lIChvbmx5IGRvZXMgc28gZm9yIHRoZSBzdWJmcmFtZXMpIGJlY2F1c2UgdGhl
CisgICAgLy8gQmFjay9mb3J3YXJkIGNhY2hlIGRvZXMgbm90IGJyZWFrIHRoZSBvcGVuZXIgbGlu
ayBmb3IgdGhlIG1haW4gZnJhbWUgKG9ubHkgZG9lcyBzbyBmb3IgdGhlIHN1YmZyYW1lcykgYmVj
YXVzZSB0aGUKICAgICAvLyBtYWluIGZyYW1lIGlzIG5vcm1hbGx5IHJlLXVzZWQgZm9yIHRoZSBu
YXZpZ2F0aW9uLiBIb3dldmVyLCBpbiB0aGUgY2FzZSBvZiBwcm9jZXNzLXN3YXBwaW5nLCB0aGUg
bWFpbiBmcmFtZQogICAgIC8vIGlzIG5vdyBob3N0ZWQgaW4gYW5vdGhlciBwcm9jZXNzIGFuZCB0
aGUgb25lIGluIHRoaXMgcHJvY2VzcyBpcyBpbiB0aGUgY2FjaGUuCiAgICAgaWYgKG1fbWFpbkZy
YW1lICYmIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAppbmRleCBjNjZjODA1ZDYxZTRjMjUxNmUyNjhhM2VmOTRhZmQ4OGRiNjhl
NzU4Li42YzMyYjQyN2I1ZTgxZjZlN2Y2Mzg2NzZmYmUyYjFhNTY4OGFkYTc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC04Miw2ICs4Miw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0NQVU1vbml0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmg+CkBAIC0xMDcs
NyArMTA4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci5oPgpAQCAtMzA2LDkgKzMwNiw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAg
ICAgICAgICB9CiAjZW5kaWYKIAotICAgICAgICAgICAgYXV0byBtYWludGFpblBhZ2VDYWNoZSA9
IG1faXNTdXNwZW5kaW5nID8gV2ViQ29yZTo6TWFpbnRhaW5QYWdlQ2FjaGU6OlllcyA6IFdlYkNv
cmU6Ok1haW50YWluUGFnZUNhY2hlOjpObzsKKyAgICAgICAgICAgIGF1dG8gbWFpbnRhaW5CYWNr
Rm9yd2FyZENhY2hlID0gbV9pc1N1c3BlbmRpbmcgPyBXZWJDb3JlOjpNYWludGFpbkJhY2tGb3J3
YXJkQ2FjaGU6OlllcyA6IFdlYkNvcmU6Ok1haW50YWluQmFja0ZvcndhcmRDYWNoZTo6Tm87CiAg
ICAgICAgICAgICBhdXRvIG1haW50YWluTWVtb3J5Q2FjaGUgPSBtX2lzU3VzcGVuZGluZyAmJiBt
X2hhc1N1c3BlbmRlZFBhZ2VQcm94eSA/IFdlYkNvcmU6Ok1haW50YWluTWVtb3J5Q2FjaGU6Olll
cyA6IFdlYkNvcmU6Ok1haW50YWluTWVtb3J5Q2FjaGU6Ok5vOwotICAgICAgICAgICAgV2ViQ29y
ZTo6cmVsZWFzZU1lbW9yeShjcml0aWNhbCwgc3luY2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hl
LCBtYWludGFpbk1lbW9yeUNhY2hlKTsKKyAgICAgICAgICAgIFdlYkNvcmU6OnJlbGVhc2VNZW1v
cnkoY3JpdGljYWwsIHN5bmNocm9ub3VzLCBtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUsIG1haW50
YWluTWVtb3J5Q2FjaGUpOwogICAgICAgICB9KTsKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIu
c2V0U2hvdWxkVXNlUGVyaW9kaWNNZW1vcnlNb25pdG9yKHRydWUpOwpAQCAtNDcxLDE1ICs0NzEs
NiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcAogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpOwogfQogCi1ib29sIFdlYlByb2Nlc3M6Omhhc1BhZ2VSZXF1aXJpbmdQYWdlQ2Fj
aGVXaGlsZVN1c3BlbmRlZCgpIGNvbnN0Ci17Ci0gICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdl
TWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChwYWdlLT5pc1N1c3BlbmRlZCgpKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBX
ZWJQcm9jZXNzOjphcmVBbGxQYWdlc1N1c3BlbmRlZCgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRv
JiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKSB7CkBAIC02MzEsMTMgKzYyMiwxMyBAQCB2b2lk
IFdlYlByb2Nlc3M6OnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVu
c2lnbmVkIGNhY2hlTWluRGVhZENhcGFjaXR5ID0gMDsKICAgICB1bnNpZ25lZCBjYWNoZU1heERl
YWRDYXBhY2l0eSA9IDA7CiAgICAgU2Vjb25kcyBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVy
dmFsOwotICAgIHVuc2lnbmVkIHBhZ2VDYWNoZVNpemUgPSAwOwotICAgIGNhbGN1bGF0ZU1lbW9y
eUNhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgY2FjaGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRD
YXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50
ZXJ2YWwsIHBhZ2VDYWNoZVNpemUpOworICAgIHVuc2lnbmVkIGJhY2tGb3J3YXJkQ2FjaGVTaXpl
ID0gMDsKKyAgICBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKGNhY2hlTW9kZWwsIGNhY2hlVG90
YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBk
ZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLCBiYWNrRm9yd2FyZENhY2hlU2l6ZSk7CiAK
ICAgICBhdXRvJiBtZW1vcnlDYWNoZSA9IE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKTsKICAgICBt
ZW1vcnlDYWNoZS5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERl
YWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKICAgICBtZW1vcnlDYWNoZS5zZXREZWFk
RGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2
YWwpOwotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShwYWdlQ2FjaGVTaXpl
KTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5zZXRNYXhTaXplKGJhY2tGb3J3
YXJkQ2FjaGVTaXplKTsKIAogICAgIHBsYXRmb3JtU2V0Q2FjaGVNb2RlbChjYWNoZU1vZGVsKTsK
IH0KQEAgLTEzMDksNyArMTMwMCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURh
dGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywKICAgICBVTlVT
RURfUEFSQU0obW9kaWZpZWRTaW5jZSk7CiAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewotICAgICAgICBQYWdlQ2FjaGU6
OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok5vbmUpOworICAg
ICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVu
aW5nUmVhc29uOjpOb25lKTsKICAgICAgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLmV2aWN0
UmVzb3VyY2VzKHNlc3Npb25JRCgpKTsKIAogICAgICAgICBDcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlOjpzaW5nbGV0b24oKS5jbGVhcigpOwpAQCAtMTc3Niw3ICsxNzY3LDcgQEAgYm9v
bCBXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSgpIGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vz
czo6c2V0QmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KHVuc2lnbmVkIGNhcGFjaXR5KQogewotICAg
IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShjYXBhY2l0eSk7CisgICAgQmFja0Zv
cndhcmRDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShjYXBhY2l0eSk7CiB9CiAKIHZvaWQg
V2ViUHJvY2Vzczo6Y2xlYXJDYWNoZWRQYWdlKEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFj
a0ZvcndhcmRJdGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKQEAgLTE3ODUsNyArMTc3Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJDYWNoZWRQ
YWdlKEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIENvCiAgICAg
aWYgKCFpdGVtKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAotICAgIFBh
Z2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKCppdGVtKTsKKyAgICBCYWNrRm9yd2FyZENhY2hl
OjpzaW5nbGV0b24oKS5yZW1vdmUoKml0ZW0pOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGRkNjBlOGQ4MWUyZmFl
MTI2ZjA0NTk1N2MxY2JjNmUyMzllZGE5OGIuLjhjMjQ2YWZhNzdmZTE1ZmFmOTk0ZTA4OWU3N2Yx
M2YzZTUyNjk1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzkw
LDcgKzM5MCw2IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRBY2tub3dsZWRnZVdo
ZW5SZWFkeVRvU3VzcGVuZCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIGFjdHVhbFByZXBhcmVUb1N1
c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQpOwogCi0gICAgYm9vbCBo
YXNQYWdlUmVxdWlyaW5nUGFnZUNhY2hlV2hpbGVTdXNwZW5kZWQoKSBjb25zdDsKICAgICBib29s
IGFyZUFsbFBhZ2VzU3VzcGVuZGVkKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuc3VyZUF1dG9tYXRp
b25TZXNzaW9uUHJveHkoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWRlbnRpZmllcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCmluZGV4
IDk4OTc0NTYzN2RhM2MxNGQ3OGI5NzJjYTQ1NTYwYzk0YjMwMDk3NmUuLjJkYjczOGZmMDUzZDlm
NzU3MDBiNDM2ZDE5ZWI5ZmQ2OGI2MDdhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCkBAIC04Miw3ICs4Miw3IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIFdlYk1lZGlhQ2FwdHVyZVR5cGUpIHsKIC0gKHZvaWQpd2Vi
VmlldzooV2ViVmlldyAqKXdlYlZpZXcgZWxlbWVudERpZEZvY3VzTm9kZTooRE9NTm9kZSAqKW5v
ZGU7CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGVsZW1lbnREaWRCbHVyTm9k
ZTooRE9NTm9kZSAqKW5vZGU7CiAKLS8vIFBhZ2VDYWNoZSBzdXBwb3J0CisvLyBCYWNrRm9yd2Fy
ZENhY2hlIHN1cHBvcnQKIC0gKHZvaWQpd2ViVmlld0RpZFJlc3RvcmVGcm9tUGFnZUNhY2hlOihX
ZWJWaWV3ICopd2ViVmlldzsKIAogLSAoTlNWaWV3ICopd2ViVmlldzooV2ViVmlldyAqKXdlYlZp
ZXcgcGx1Z0luVmlld1dpdGhBcmd1bWVudHM6KE5TRGljdGlvbmFyeSAqKWFyZ3VtZW50cyBmcm9t
UGx1Z0luUGFja2FnZTooV2ViUGx1Z2luUGFja2FnZSAqKXBhY2thZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCmluZGV4IGI3MDk1
YTdkZTI4NjlmMWY2ZjU0ZWY1OTlkNThhYTNmMWRhZTI5ZDQuLmQwNTRhMWI5NGQwMDE4ODRhYzQz
ODQ5YTE0N2VlOTZjZDFiMzdjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZExpc3QuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgQmFja0ZvcndhcmRMaXN0OjphZGRJdGVt
KFJlZjxIaXN0b3J5SXRlbT4mJiBuZXdJdGVtKQogICAgICAgICB3aGlsZSAobV9lbnRyaWVzLnNp
emUoKSA+IHRhcmdldFNpemUpIHsKICAgICAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9
IG1fZW50cmllcy50YWtlTGFzdCgpOwogICAgICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0
ZW0ucHRyKCkpOwotICAgICAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRl
bSk7CisgICAgICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRl
bSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBCYWNrRm9yd2Fy
ZExpc3Q6OmFkZEl0ZW0oUmVmPEhpc3RvcnlJdGVtPiYmIG5ld0l0ZW0pCiAgICAgICAgIFJlZjxI
aXN0b3J5SXRlbT4gaXRlbSA9IFdURk1vdmUobV9lbnRyaWVzWzBdKTsKICAgICAgICAgbV9lbnRy
aWVzLnJlbW92ZSgwKTsKICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwot
ICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFj
a0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgICAgICAtLW1fY3Vy
cmVudDsKICAgICB9CiAKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6
c2V0Q2FwYWNpdHkoaW50IHNpemUpCiAgICAgd2hpbGUgKHNpemUgPCBzdGF0aWNfY2FzdDxpbnQ+
KG1fZW50cmllcy5zaXplKCkpKSB7CiAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9IG1f
ZW50cmllcy50YWtlTGFzdCgpOwogICAgICAgICBtX2VudHJ5SGFzaC5yZW1vdmUoaXRlbS5wdHIo
KSk7Ci0gICAgICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOworICAgICAg
ICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CiAgICAgfQogCiAg
ICAgaWYgKCFzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9y
eS9XZWJCYWNrRm9yd2FyZExpc3QubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5
L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQppbmRleCBkZjYyZGE5NjZjNzlkM2E2M2ExZmUwNjNiMTA1
MDJkODNjZjg5MDdiLi4xOGYwMTNhMGE4NzViZDM2ZTg5NTU4NjYzNGFiN2Q4YjBhOGIwMmI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJk
TGlzdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3
YXJkTGlzdC5tbQpAQCAtNDAsOCArNDAsOCBAQAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV2ViVmlld1ByaXZhdGUuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0lu
aXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9QYWdl
Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUv
VGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAg
LTMzOSw3ICszMzksNyBAQCAtICh2b2lkKXNldFBhZ2VDYWNoZVNpemU6KE5TVUludGVnZXIpc2l6
ZQogCiAtIChOU1VJbnRlZ2VyKXBhZ2VDYWNoZVNpemUKIHsKLSAgICByZXR1cm4gW2NvcmUoc2Vs
ZiktPndlYlZpZXcoKSB1c2VzUGFnZUNhY2hlXSA/IFdlYkNvcmU6OlBhZ2VDYWNoZTo6c2luZ2xl
dG9uKCkubWF4U2l6ZSgpIDogMDsKKyAgICByZXR1cm4gW2NvcmUoc2VsZiktPndlYlZpZXcoKSB1
c2VzUGFnZUNhY2hlXSA/IFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLm1h
eFNpemUoKSA6IDA7CiB9CiAKIC0gKGludCliYWNrTGlzdENvdW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCBjN2MwMjdiMzQw
ZDAwYWMyZjAyZTg3OThmMTRhNjJhY2U3ODU4ZWVlLi5hOGQzYmMyMDY4ZjJjNzYzZjk1NTdkODFj
N2Y1ZGRmMGY1YjdlMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0
b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rv
cnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTQzLDkgKzQzLDkgQEAKICNpbXBvcnQgIldlYlBsdWdp
bkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBvcnQgPEph
dmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFj
a0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9JbWFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC01OTgsOSArNTk4LDkgQEAg
LSAodm9pZClfc2V0U2Nyb2xsUG9pbnQ6KENHUG9pbnQpc2Nyb2xsUG9pbnQKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLS0gKEJPT0wpX2lzSW5QYWdlQ2FjaGUKKy0gKEJPT0wp
X2lzSW5CYWNrRm9yd2FyZENhY2hlCiB7Ci0gICAgcmV0dXJuIGNvcmUoX3ByaXZhdGUpLT5pc0lu
UGFnZUNhY2hlKCk7CisgICAgcmV0dXJuIGNvcmUoX3ByaXZhdGUpLT5pc0luQmFja0ZvcndhcmRD
YWNoZSgpOwogfQogCiAtIChCT09MKV9oYXNDYWNoZWRQYWdlRXhwaXJlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1Qcml2YXRlLmgK
aW5kZXggOWQwYWE4ZDE4YWQwOTYxNjgwN2VlMjUyNDkyOGZjYTZiZmY5ODUzOS4uYmE1ZDU1Y2M3
NDRkZTk0NjM2YzI1NmRkYTk5MjU1OTFjMDkyMmU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oCkBAIC03Nyw3
ICs3Nyw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViVmlld3BvcnRGaXRDb3ZlclZhbHVlOwogLSAo
dm9pZClfc2V0U2Nyb2xsUG9pbnQ6KENHUG9pbnQpc2Nyb2xsUG9pbnQ7CiAjZW5kaWYKIAotLSAo
Qk9PTClfaXNJblBhZ2VDYWNoZTsKKy0gKEJPT0wpX2lzSW5CYWNrRm9yd2FyZENhY2hlOwogLSAo
Qk9PTClfaGFzQ2FjaGVkUGFnZUV4cGlyZWQ7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYkNhY2hlLm1tCmluZGV4IGI1MGIyMWM4NWJjZGJmNzI1OTk0MGM0MzZiMGJlMmUz
NjQ0OGZmY2EuLjUxMzdlNDFjMjQyZmNhNTVjNGEwOTRiNjQzMzczZTllMGE2ZmVjMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJDYWNoZS5tbQpAQCAtNDYsOSArNDYsOSBAQAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0ICJNZW1vcnlNZWFzdXJlLmgiCiAjaW1w
b3J0ICJXZWJGcmFtZUludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2Fj
aGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ2FjaGVkSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RnJhbWUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVUaHJlYWRSdW4uaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQppbmRleCBjODY4NGM0NmM1YjBkMjE1MmJl
OWNhYzFkNzgyYzRlNGZiMGIwNDBjLi40NjY2NjUzNDJhMWVhMzlmNzcwYjc2MDg0YjRiYjJjYzM4
ZTUzYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNvcmVT
dGF0aXN0aWNzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ29yZVN0
YXRpc3RpY3MubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwu
aCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvTWVtb3J5U3RhdGlzdGljcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENh
Y2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zv
bnRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgpAQCAtNDAsNyArNDEsNiBAQAog
I2ltcG9ydCA8V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3ND
b250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1BhZ2VDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ29uc29sZUNsaWVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
VHJlZUFzVGV4dC5oPgpAQCAtMjI0LDEyICsyMjQsMTIgQEAgKyAodm9pZClyZXR1cm5GcmVlTWVt
b3J5VG9TeXN0ZW0KIAogKyAoaW50KWNhY2hlZFBhZ2VDb3VudAogewotICAgIHJldHVybiBQYWdl
Q2FjaGU6OnNpbmdsZXRvbigpLnBhZ2VDb3VudCgpOworICAgIHJldHVybiBCYWNrRm9yd2FyZENh
Y2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKIH0KIAogKyAoaW50KWNhY2hlZEZyYW1lQ291
bnQKIHsKLSAgICByZXR1cm4gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5mcmFtZUNvdW50KCk7Cisg
ICAgcmV0dXJuIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLmZyYW1lQ291bnQoKTsKIH0K
IAogLy8gRGVwcmVjYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYzIxYmRjZjcx
MDYzOTY5ZTExY2JkYmIwYTViOTNlNWJhYTg2ZDgzNC4uYjRlZTllNjA2YzU3ZmNmNTcyZTExMzg2
MzliYzE0NTM0ZjM3ODkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC02OSw3ICs2
OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqKSBmaW5hbDsKICAgICBib29sIGhhc0hUTUxWaWV3KCkgY29uc3QgZmluYWw7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3Jl
RnJvbVBhZ2VDYWNoZSgpIGZpbmFsOworICAgIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogI2VuZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZv
ck5vbkhUTUwoKSBmaW5hbDsKIApAQCAtMTg0LDcgKzE4NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
ICAgICB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKSBmaW5hbDsKIAotICAg
IHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlc3Rv
cmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogCiAgICAgdm9pZCBkaXNwYXRjaERpZEJl
Y29tZUZyYW1lc2V0KGJvb2wpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmlu
ZGV4IDJlMzUzNzU1NjgxZjM5NWQzOWNjNjkxZjdjYzcwZTVlNWIwMDk0ODQuLmEzZTk4MzM4YjY0
ODllYWM5NmI3YzFkMDk3OWQyNTU2MWZhMGM1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCkBAIC0yMzksMTAgKzIzOSwxMCBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpoYXNI
VE1MVmlldygpIGNvbnN0CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6Zm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkKK2Jv
b2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3
YXJkQ2FjaGUoKQogewogICAgIE5TVmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqdmlldyA9IFttX3dl
YkZyYW1lLT5fcHJpdmF0ZS0+d2ViRnJhbWVWaWV3IGRvY3VtZW50Vmlld107Ci0gICAgLy8gVGhp
cyBnZXRzIGNhbGxlZCB0byBsYXkgb3V0IGEgcGFnZSByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNh
Y2hlLgorICAgIC8vIFRoaXMgZ2V0cyBjYWxsZWQgdG8gbGF5IG91dCBhIHBhZ2UgcmVzdG9yZWQg
ZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRpbWlu
ZyBwcm9ibGVtcyB3aXRoIFVJS2l0LCByZXN0b3JlIGZpeGVkIAogICAgIC8vIGxheW91dCBzZXR0
aW5ncyBoZXJlLgogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUu
Z2V0KCkpOwpAQCAtMTQ5NSw3ICsxNDk1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgfQogfQogCi12b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKQogewogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93
ZWJGcmFtZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0b3JlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5tbQppbmRleCAwODQ0YjM5ZDM2
NzA1NTNhMDkzMjI3MWNlZGI3MzkwNzBhMTg1YzhiLi5kNTdkY2M1ZDUxMGY5NDA3OTFhYTcwMDE0
NWNmOTQ1M2M1NzUwMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUubW0KQEAgLTMwLDcgKzMw
LDcgQEAKICNpbXBvcnQgIldlYkhpc3RvcnlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViSGlzdG9y
eUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgPFdlYkNv
cmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNp
bXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KaW5kZXggYmM3NzRkNzY1NjE2YTVhOGM0YTMwMjkxNWRhNzliYjM1MzkzYjAzNy4uYzJl
ZmI3N2MzZTgzNDEzZjVhYzNiN2MxOWIwNWJhNWM0YWQ5ZTM3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0zMzQyLDcgKzMzNDIsNyBA
QCAtICh2b2lkKWxheW91dFRvTWluaW11bVBhZ2VXaWR0aDooZmxvYXQpbWluUGFnZUxvZ2ljYWxX
aWR0aCBoZWlnaHQ6KGZsb2F0KW1pblBhZwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoY29y
ZUZyYW1lLT5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSkKKyAgICAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+YmFj
a0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gV2ViQ29yZTo6RG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY29yZUZyYW1lLT5kb2N1bWVu
dCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgfQpAQCAtMzg1NCw3ICszODU0LDcgQEAg
LSAodm9pZClzZXROZWVkc0xheW91dDogKEJPT0wpZmxhZwogICAgIGlmICghZmxhZykKICAgICAg
ICAgcmV0dXJuOyAvLyBUaGVyZSdzIG5vIHdheSB0byBzYXkgeW91IGRvbid0IG5lZWQgYSBsYXlv
dXQuCiAgICAgaWYgKGF1dG8qIGZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkgewotICAgICAg
ICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPnBhZ2VDYWNoZVN0
YXRlKCkgIT0gV2ViQ29yZTo6RG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgICAgICBpZiAo
ZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChhdXRvKiB2aWV3ID0gZnJhbWUtPnZpZXcoKSkK
ICAgICAgICAgICAgIHZpZXctPnNldE5lZWRzTGF5b3V0QWZ0ZXJWaWV3Q29uZmlndXJhdGlvbkNo
YW5nZSgpOwpAQCAtMzg2Nyw3ICszODY3LDcgQEAgLSAodm9pZClzZXROZWVkc1RvQXBwbHlTdHls
ZXM6IChCT09MKWZsYWcKICAgICBpZiAoIWZsYWcpCiAgICAgICAgIHJldHVybjsgLy8gVGhlcmUn
cyBubyB3YXkgdG8gc2F5IHlvdSBkb24ndCBuZWVkIGEgc3R5bGUgcmVjYWxjLgogICAgIGlmIChh
dXRvKiBmcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT5k
b2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IFdlYkNv
cmU6OkRvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVu
dCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBXZWJD
b3JlOjpEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDQ4ODZjODQ5MzE3OGViNTFlMWM5NDM4NjlmMTM5NTdmNzZlYTMyN2UuLjRlZWEzMWQ5ZDI5YmQ3
Yjk5Y2QwN2Q5MjRjYjNiMDM3NGE2MmIyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzMCw2ICsxMzAsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvSlNWYWx1ZVJlZi5oPgogI2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRVSUNv
bnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9C
YWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oPgpAQCAt
MTg1LDcgKzE4Niw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2VDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CkBAIC0yMzY3LDggKzIzNjcsOCBAQCAtICh2b2lk
KV9jbG9zZQogCiAgICAgX3ByaXZhdGUtPmdyb3VwLT5yZW1vdmVXZWJWaWV3KHNlbGYpOwogCi0g
ICAgLy8gRGVsZXRlaW5nIHRoZSBXZWJDb3JlOjpQYWdlIHdpbGwgY2xlYXIgdGhlIHBhZ2UgY2Fj
aGUgc28gd2UgY2FsbCBkZXN0cm95IG9uCi0gICAgLy8gYWxsIHRoZSBwbHVnLWlucyBpbiB0aGUg
cGFnZSBjYWNoZSB0byBicmVhayBhbnkgcmV0YWluIGN5Y2xlcy4KKyAgICAvLyBEZWxldGVpbmcg
dGhlIFdlYkNvcmU6OlBhZ2Ugd2lsbCBjbGVhciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHNvIHdl
IGNhbGwgZGVzdHJveSBvbgorICAgIC8vIGFsbCB0aGUgcGx1Zy1pbnMgaW4gdGhlIGJhY2svZm9y
d2FyZCBjYWNoZSB0byBicmVhayBhbnkgcmV0YWluIGN5Y2xlcy4KICAgICAvLyBTZWUgY29tbWVu
dCBpbiBIaXN0b3J5SXRlbTo6cmVsZWFzZUFsbFBlbmRpbmdQYWdlQ2FjaGVzKCkgZm9yIG1vcmUg
aW5mb3JtYXRpb24uCiAgICAgYXV0byogcGFnZSA9IF9wcml2YXRlLT5wYWdlOwogICAgIF9wcml2
YXRlLT5wYWdlID0gbnVsbHB0cjsKQEAgLTI5MTEsOCArMjkxMSw4IEBAIC0gKHZvaWQpX3ByZWZl
cmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdz
LnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKGNvcmUoW3ByZWZlcmVuY2VzIGVkaXRhYmxlTGlua0Jl
aGF2aW9yXSkpOwogICAgIHNldHRpbmdzLnNldFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy5zZXRET01QYXN0ZUFsbG93ZWQoW3ByZWZlcmVuY2Vz
IGlzRE9NUGFzdGVBbGxvd2VkXSk7Ci0gICAgc2V0dGluZ3Muc2V0VXNlc1BhZ2VDYWNoZShbc2Vs
ZiB1c2VzUGFnZUNhY2hlXSk7Ci0gICAgc2V0dGluZ3Muc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVn
aW5zKFtwcmVmZXJlbmNlcyBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnNdKTsKKyAgICBzZXR0aW5n
cy5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZShbc2VsZiB1c2VzUGFnZUNhY2hlXSk7CisgICAgc2V0
dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhbcHJlZmVyZW5jZXMgcGFn
ZUNhY2hlU3VwcG9ydHNQbHVnaW5zXSk7CiAgICAgc2V0dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNo
ZUV4cGlyYXRpb25JbnRlcnZhbChTZWNvbmRzIHsgW3ByZWZlcmVuY2VzIF9iYWNrRm9yd2FyZENh
Y2hlRXhwaXJhdGlvbkludGVydmFsXSB9KTsKIAogICAgIHNldHRpbmdzLnNldERldmVsb3BlckV4
dHJhc0VuYWJsZWQoW3ByZWZlcmVuY2VzIGRldmVsb3BlckV4dHJhc0VuYWJsZWRdKTsKQEAgLTQz
NTksNyArNDM1OSw3IEBAIC0gKE5TQXJyYXkgKilfdG91Y2hFdmVudFJlZ2lvbnMKICNlbmRpZiAv
LyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCiAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkg
d2l0aCB0aGUgV2ViQmFja0ZvcndhcmRMaXN0IEFQSSwgd2UgaG9ub3IgYm90aAotLy8gYSBwZXIt
V2ViVmlldyBhbmQgYSBwZXItcHJlZmVyZW5jZXMgc2V0dGluZyBmb3Igd2hldGhlciB0byB1c2Ug
dGhlIHBhZ2UgY2FjaGUuCisvLyBhIHBlci1XZWJWaWV3IGFuZCBhIHBlci1wcmVmZXJlbmNlcyBz
ZXR0aW5nIGZvciB3aGV0aGVyIHRvIHVzZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogCiAtIChC
T09MKXVzZXNQYWdlQ2FjaGUKIHsKQEAgLTg3OTcsNyArODc5Nyw3IEBAICsgKHZvaWQpX3NldENh
Y2hlTW9kZWw6KFdlYkNhY2hlTW9kZWwpY2FjaGVNb2RlbAogCiAgICAgc3dpdGNoIChjYWNoZU1v
ZGVsKSB7CiAgICAgY2FzZSBXZWJDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI6IHsKLSAgICAgICAg
Ly8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIEJhY2svZm9yd2Fy
ZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIHBhZ2VDYWNoZVNpemUgPSAwOwog
CiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKQEAgLTg4MzMs
NyArODgzMyw3IEBAICsgKHZvaWQpX3NldENhY2hlTW9kZWw6KFdlYkNhY2hlTW9kZWwpY2FjaGVN
b2RlbAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBXZWJDYWNoZU1vZGVsRG9jdW1l
bnRCcm93c2VyOiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQor
ICAgICAgICAvLyBCYWNrL2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAg
ICBpZiAobWVtU2l6ZSA+PSA1MTIpCiAgICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKICAg
ICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAyNTYpCkBAIC04ODg0LDcgKzg4ODQsNyBAQCArICh2
b2lkKV9zZXRDYWNoZU1vZGVsOihXZWJDYWNoZU1vZGVsKWNhY2hlTW9kZWwKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0g
ICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNr
L2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICBpZiAobWVtU2l6ZSA+
PSA1MTIpCiAgICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBpZiAo
bWVtU2l6ZSA+PSAyNTYpCkBAIC04OTY3LDcgKzg5NjcsNyBAQCArICh2b2lkKV9zZXRDYWNoZU1v
ZGVsOihXZWJDYWNoZU1vZGVsKWNhY2hlTW9kZWwKICAgICBtZW1vcnlDYWNoZS5zZXRDYXBhY2l0
aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3Rh
bENhcGFjaXR5KTsKICAgICBtZW1vcnlDYWNoZS5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbklu
dGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwogCi0gICAgYXV0byYgcGFn
ZUNhY2hlID0gV2ViQ29yZTo6UGFnZUNhY2hlOjpzaW5nbGV0b24oKTsKKyAgICBhdXRvJiBwYWdl
Q2FjaGUgPSBXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKTsKICAgICBwYWdl
Q2FjaGUuc2V0TWF4U2l6ZShwYWdlQ2FjaGVTaXplKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIG5zdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IHN0ZDo6bWF4KG5zdXJsQ2FjaGVNZW1v
cnlDYXBhY2l0eSwgW25zdXJsQ2FjaGUgbWVtb3J5Q2FwYWNpdHldKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9CYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IGRhZWExNjFhMTA1YmEyZWI0ZjY3
MThiNTI3YjM1MzRhODg0OTc0OTYuLmIyMDE0OGZkZWQyYTQ2Y2MyNmM0ZDBkZjc5NDI3MThhNmY1
OGMyODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQmFja0ZvcndhcmRMaXN0LmNwcApA
QCAtMjcsMTIgKzI3LDEyIEBACiAjaW5jbHVkZSAiV2ViS2l0RExMLmgiCiAjaW5jbHVkZSAiQmFj
a0ZvcndhcmRMaXN0LmgiCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oPgogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgRGVmYXVsdENhcGFjaXR5ID0g
MTAwOwpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6YWRkSXRlbShSZWY8
SGlzdG9yeUl0ZW0+JiYgbmV3SXRlbSkKICAgICAgICAgd2hpbGUgKG1fZW50cmllcy5zaXplKCkg
PiB0YXJnZXRTaXplKSB7CiAgICAgICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2Vu
dHJpZXMudGFrZUxhc3QoKTsKICAgICAgICAgICAgIG1fZW50cnlIYXNoLnJlbW92ZShpdGVtLnB0
cigpKTsKLSAgICAgICAgICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwor
ICAgICAgICAgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgQmFja0ZvcndhcmRMaXN0
OjphZGRJdGVtKFJlZjxIaXN0b3J5SXRlbT4mJiBuZXdJdGVtKQogICAgICAgICBSZWY8SGlzdG9y
eUl0ZW0+IGl0ZW0gPSBXVEZNb3ZlKG1fZW50cmllc1swXSk7CiAgICAgICAgIG1fZW50cmllcy5y
ZW1vdmUoMCk7CiAgICAgICAgIG1fZW50cnlIYXNoLnJlbW92ZShpdGVtLnB0cigpKTsKLSAgICAg
ICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CisgICAgICAgIEJhY2tGb3J3
YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKICAgICAgICAgLS1tX2N1cnJlbnQ7
CiAgICAgfQogCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBCYWNrRm9yd2FyZExpc3Q6OnNldENh
cGFjaXR5KGludCBzaXplKQogICAgIHdoaWxlIChzaXplIDwgc3RhdGljX2Nhc3Q8aW50PihtX2Vu
dHJpZXMuc2l6ZSgpKSkgewogICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2VudHJp
ZXMudGFrZUxhc3QoKTsKICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwot
ICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFj
a0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgIH0KIAogICAgIGlm
ICghc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0
aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNw
cAppbmRleCA5MTIwYWNjOGUwYjlmOTVlNTY3OTYxNGMwOTg4MjExZjJlODUzNzcyLi45Yzk2YTY3
ZTlkMGMxZjkwNDQyZjBiNDBjNDQ4MjZiNWM1NmI1YTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwCkBAIC0yOSwxMyArMjksMTMgQEAKICNpbmNs
dWRlICJDT01Qcm9wZXJ0eUJhZy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZN
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zv
bnRDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDb25z
b2xlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTMyMCw3ICszMjAsNyBAQCBIUkVTVUxUIFdlYkNv
cmVTdGF0aXN0aWNzOjpjYWNoZWRQYWdlQ291bnQoX091dF8gSU5UKiBjb3VudCkKICAgICBpZiAo
IWNvdW50KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwogCi0gICAgKmNvdW50ID0gUGFnZUNh
Y2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKKyAgICAqY291bnQgPSBCYWNrRm9yd2FyZENh
Y2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAt
MzI5LDYgKzMyOSw2IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRpc3RpY3M6OmNhY2hlZEZyYW1lQ291
bnQoX091dF8gSU5UKiBjb3VudCkKICAgICBpZiAoIWNvdW50KQogICAgICAgICByZXR1cm4gRV9Q
T0lOVEVSOwogCi0gICAgKmNvdW50ID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5mcmFtZUNvdW50
KCk7CisgICAgKmNvdW50ID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZnJhbWVDb3Vu
dCgpOwogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IDI2MjExZmE5Njc4MDZhNDRmYWFkMDY4YTA3OGIxMzYzMThlZTRiMGYuLmFiMGYxZDUxMGZk
NDU2MDdkNDVmNzlkNDM0ODczMzQ1MGE1MzRlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKQEAgLTk5Miw3ICs5OTIsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFu
c2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBjb3JlKG1fd2ViRnJhbWUpLT5jcmVh
dGVWaWV3KGVuY2xvc2luZ0ludFJlY3QobG9naWNhbEZyYW1lKS5zaXplKCksIGJhY2tncm91bmRD
b2xvciwgLyogZml4ZWRMYXlvdXRTaXplICovIHsgfSwgLyogZml4ZWRWaXNpYmxlQ29udGVudFJl
Y3QgKi8geyB9KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZy
b21QYWdlQ2FjaGUoKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21C
YWNrRm9yd2FyZENhY2hlKCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
ODU2ZjUyNWZkY2U5M2RkZjRmZTdmZGVhZmY0MjU1ZTVmZjU0Nzc1MC4uNjc2YThkNjFjNTM4OTBi
OTlhNGU0NDc3ODBlNWZhZDBjOTI5MjY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0xNzYsNyArMTc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZCgpIG92ZXJy
aWRlOwogICAgIHZvaWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRl
ZExpbmtTdG9yZS5jcHAKaW5kZXggMmE1ZTEwNTM2N2EwZmZmNjk1ZjgwNTMxYmM0YjVjN2I5OTk5
OWQ3My4uMjAwYTYzYzZjNWRkZGQ5Mjc4YzA0YjRkMmZkNDEzMTAyNDFhOTc1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
VmlzaXRlZExpbmtTdG9yZS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIldlYkhp
c3RvcnkuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2Fj
aGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggMWE2YTczYjZlZThlYjA3YWU2NmI5MjVlODY4
ODk1OTc1MzAxZTIzZi4uYTg3MjYwZjQ1YjY2MjQxNWM1ZWUxZTM3MGY0Yjc4ZTczMjZlMTAzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcApAQCAtMjExOSw3ICsyMTE5LDcgQEAg
Q09NUHRyPElBY2Nlc3NpYmxlPiBXZWJGcmFtZTo6YWNjZXNzaWJsZSgpIGNvbnN0CiAgICAgZWxz
ZSBpZiAoIW1fYWNjZXNzaWJsZSB8fCBtX2FjY2Vzc2libGUtPmRvY3VtZW50KCkgIT0gY3VycmVu
dERvY3VtZW50KSB7CiAgICAgICAgIC8vIEVpdGhlciB3ZSd2ZSBuZXZlciBoYWQgYSB3cmFwcGVy
IGZvciB0aGlzIGZyYW1lJ3MgdG9wLWxldmVsIERvY3VtZW50LAogICAgICAgICAvLyB0aGUgRG9j
dW1lbnQgcmVuZGVyZXIgd2FzIGRlc3Ryb3llZCBhbmQgaXRzIHdyYXBwZXIgd2FzIGRldGFjaGVk
LCBvcgotICAgICAgICAvLyB0aGUgcHJldmlvdXMgRG9jdW1lbnQgaXMgaW4gdGhlIHBhZ2UgY2Fj
aGUsIGFuZCB0aGUgY3VycmVudCBkb2N1bWVudAorICAgICAgICAvLyB0aGUgcHJldmlvdXMgRG9j
dW1lbnQgaXMgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYW5kIHRoZSBjdXJyZW50IGRvY3Vt
ZW50CiAgICAgICAgIC8vIG5lZWRzIHRvIGJlIHdyYXBwZWQuCiAgICAgICAgIG1fYWNjZXNzaWJs
ZSA9IG5ldyBBY2Nlc3NpYmxlRG9jdW1lbnQoY3VycmVudERvY3VtZW50LCB3ZWJWaWV3KCktPnZp
ZXdXaW5kb3coKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3
OTBjMWExYjg5OGJmNWQwMzE2MGNkMjliYjhmMDcyNDRlNDU2ODYyLi40NmY0ZjQ1N2NiMmFmZjk3
ZTBiYjc0YmU1MzgxZDllNGQ1ZWRhZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0JTdHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQml0bWFwSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVTdG9yYWdlUHJvdmlk
ZXIuaD4KQEAgLTEzMSw4ICsxMzIsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UmVsZWFz
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29u
ZmlndXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CkBAIC01NDAsMTMgKzUzOSwxMyBAQCB2b2lkIFdlYlZp
ZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVuc2lnbmVk
IGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKICAgICBTZWNvbmRzIGRlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWw7CiAKLSAgICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplID0gMDsKKyAgICB1
bnNpZ25lZCBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDA7CiAKIAogICAgIHN3aXRjaCAoY2FjaGVN
b2RlbCkgewogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOiB7Ci0gICAgICAg
IC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQotICAgICAgICBwYWdlQ2FjaGVTaXpl
ID0gMDsKKyAgICAgICAgLy8gQmFjay9mb3J3YXJkIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykK
KyAgICAgICAgYmFja0ZvcndhcmRDYWNoZVNpemUgPSAwOwogCiAgICAgICAgIC8vIE9iamVjdCBj
YWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKICAgICAgICAgaWYgKG1lbVNpemUgPj0gMjA0OCkK
QEAgLTU3MSwxNSArNTcwLDE1IEBAIHZvaWQgV2ViVmlldzo6c2V0Q2FjaGVNb2RlbChXZWJDYWNo
ZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYkNh
Y2hlTW9kZWxEb2N1bWVudEJyb3dzZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0
eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIEJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4g
cGFnZXMpCiAgICAgICAgIGlmIChtZW1TaXplID49IDEwMjQpCi0gICAgICAgICAgICBwYWdlQ2Fj
aGVTaXplID0gMzsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMzsKICAgICAg
ICAgZWxzZSBpZiAobWVtU2l6ZSA+PSA1MTIpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0g
MjsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBp
ZiAobWVtU2l6ZSA+PSAyNTYpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMTsKKyAgICAg
ICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcGFnZUNhY2hlU2l6ZSA9IDA7CisgICAgICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9
IDA7CiAKICAgICAgICAgLy8gT2JqZWN0IGNhY2hlIGNhcGFjaXRpZXMgKGluIGJ5dGVzKQogICAg
ICAgICBpZiAobWVtU2l6ZSA+PSAyMDQ4KQpAQCAtNjE3LDE4ICs2MTYsMTggQEAgdm9pZCBXZWJW
aWV3OjpzZXRDYWNoZU1vZGVsKFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbCkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0g
ICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNr
L2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICAvLyAoUmVzZWFyY2gg
aW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBwYWdlIGRyb3BzIHN1YnN0YW50aWFsbHkgYWZ0ZXIgMyBw
YWdlcy4pCiAgICAgICAgIGlmIChtZW1TaXplID49IDIwNDgpCi0gICAgICAgICAgICBwYWdlQ2Fj
aGVTaXplID0gNTsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gNTsKICAgICAg
ICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAxMDI0KQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9
IDQ7CisgICAgICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDQ7CiAgICAgICAgIGVsc2Ug
aWYgKG1lbVNpemUgPj0gNTEyKQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDM7CisgICAg
ICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDM7CiAgICAgICAgIGVsc2UgaWYgKG1lbVNp
emUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDI7CisgICAgICAgICAgICBi
YWNrRm9yd2FyZENhY2hlU2l6ZSA9IDI7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBhZ2VD
YWNoZVNpemUgPSAxOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZVNpemUgPSAxOwogCiAg
ICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKICAgICAgICAgLy8g
KFRlc3RpbmcgaW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBNQiBkZXBlbmRzIGhlYXZpbHkgb24gY29u
dGVudCBhbmQKQEAgLTY4Niw3ICs2ODUsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwo
V2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIGF1dG8mIG1lbW9yeUNhY2hlID0gTWVtb3J5
Q2FjaGU6OnNpbmdsZXRvbigpOwogICAgIG1lbW9yeUNhY2hlLnNldENhcGFjaXRpZXMoY2FjaGVN
aW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkp
OwogICAgIG1lbW9yeUNhY2hlLnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVh
ZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0b24o
KS5zZXRNYXhTaXplKHBhZ2VDYWNoZVNpemUpOworICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmds
ZXRvbigpLnNldE1heFNpemUoYmFja0ZvcndhcmRDYWNoZVNpemUpOwogCiAjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICAvLyBEb24ndCBzaHJpbmsgYSBiaWcgZGlzayBjYWNoZSwgc2luY2Ug
dGhhdCB3b3VsZCBjYXVzZSBjaHVybi4KQEAgLTUzODUsNyArNTM4NCw3IEBAIEhSRVNVTFQgV2Vi
Vmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNh
dGlvbikKICAgICBociA9IHByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCZlbmFibGVkKTsKICAg
ICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwotICAgIHNldHRpbmdzLnNldFVz
ZXNQYWdlQ2FjaGUoISFlbmFibGVkKTsKKyAgICBzZXR0aW5ncy5zZXRVc2VzQmFja0ZvcndhcmRD
YWNoZSghIWVuYWJsZWQpOwogCiAgICAgaHIgPSBwcmVmZXJlbmNlcy0+aXNET01QYXN0ZUFsbG93
ZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDljOWM1MDBhMTMyNjkyZWZmOGJhOTVhZWMw
N2RlNDZhYWM5MzlkNGMuLjJmNDY4MWU0NWNjMzVmNTcyNDYyMThkZjg0M2YyY2QxZThhMTc2MTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0
byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBV
SVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAob3ZlcnJpZGVQcmVmZXJlbmNlQ2Fs
bGJhY2spOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToK
KyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldFdlYlBy
ZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2Vz
Rm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RP
TVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lv
bk5vQ2FjaGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5k
bGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6RE9NV2luZG93RXh0ZW5zaW9uTm9DYWNo
ZTo6d2lsbERpc2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xvYmFsT2JqZWN0KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGU6OmRpZFJlY29u
bmVjdERPTVdpbmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hl
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVf
QnVuZGxlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkRpZFJlbW92ZUZyYW1lRnJvbUhp
ZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlVGVzdDo6RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJ
bkJhY2tGb3J3YXJkQ2FjaGVUZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkRpZFJlbW92
ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlVGVzdDo6ZGlkQ3JlYXRlUGFnZSk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dp
dGhBbGxDb250ZW50SW5GcmFtZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAodGVzdFdlYktpdFNldHRpbmdzKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAg
IChXVFI6OnVwZGF0ZVRlc3RPcHRpb25zRnJvbVRlc3RIZWFkZXIpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Omhh
c1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIGxsZGIvbGxkYl93
ZWJraXQucHk6CisgICAgICAgIChXZWJDb3JlRnJhbWVfU3VtbWFyeVByb3ZpZGVyKToKKyAgICAg
ICAgKFdlYkNvcmVEb2N1bWVudF9TdW1tYXJ5UHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZURv
Y3VtZW50UHJvdmlkZXIucGFnZV9jYWNoZV9zdGF0ZSk6CisKIDIwMTktMTAtMTYgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgRHVtcFJlbmRlclRy
ZWUgc2hvdWxkIGNsZWFyIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T25XaXRoQWNjdW11bGF0aW9uIHN0
YXRlIHNldCBieSB0ZXN0UnVubmVyLmFjY3VtbXVsYXRlTG9nc0ZvckNoYW5uZWwKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRleCAxZmY4NDllMTdhODViNmYyZmRhOGE5MGVhNDBh
YWI5Mjk5MzY2NWFiLi41NTZlZWMyNzY2MzdlODFiOTNmNzdkOTY1OTM3NWNmYzJhNDk1OTU5IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCkBAIC04MSw4ICs4MSw4IEBAIFRlc3RP
cHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBz
dGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZl
ciA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYg
KGtleSA9PSAidXNlRXBoZW1lcmFsU2Vzc2lvbiIpCiAgICAgICAgICAgICB1c2VFcGhlbWVyYWxT
ZXNzaW9uID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKLSAgICAgICAgZWxz
ZSBpZiAoa2V5ID09ICJlbmFibGVQYWdlQ2FjaGUiKQotICAgICAgICAgICAgZW5hYmxlUGFnZUNh
Y2hlID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJlbmFibGVCYWNrRm9yd2FyZENhY2hlIikKKyAgICAgICAgICAgIGVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAg
ICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZU1lbnVJdGVtRWxlbWVudCIpCiAgICAgICAgICAg
ICBlbmFibGVNZW51SXRlbUVsZW1lbnQgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFs
dWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZUtleWdlbkVsZW1lbnQiKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggMDk2OWIxODZiZmEwMWIzMDM1MzhmYWNmZTBl
OTQ2MjFlZjllN2U2Ny4uZTUzMzVlODMxMTRlNzllNWI1NGQ4NjFjM2QyM2ZmY2ViYmE3MGEwYiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBU
ZXN0T3B0aW9ucyB7CiAgICAgYm9vbCB1c2VBY2NlbGVyYXRlZERyYXdpbmcgeyBmYWxzZSB9Owog
ICAgIGJvb2wgZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wg
dXNlRXBoZW1lcmFsU2Vzc2lvbiB7IGZhbHNlIH07Ci0gICAgYm9vbCBlbmFibGVQYWdlQ2FjaGUg
eyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlQmFja0ZvcndhcmRDYWNoZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBlbmFibGVNZW51SXRlbUVsZW1lbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxl
S2V5Z2VuRWxlbWVudCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVNb2Rlcm5NZWRpYUNvbnRy
b2xzIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCAxNDdlYjMx
ZTE4OTk4MDhhZmU0ZDlkNjIxY2U0YmJhZWI4NjljMzcwLi4zODEwMDY4OGZkODY3YmY2NjI5NTJi
YjU1MzFhNGE2ZjZlNGQyOTM3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAt
NTgzLDggKzU4Myw4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIG92ZXJyaWRlUHJlZmVyZW5jZUNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmCiAgICAgYXV0byB2YWx1ZSA9
IGFkb3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRp
b24pKTsKICAgICBBU1NFUlQoISpleGNlcHRpb24pOwogCi0gICAgLy8gU2hvdWxkIHVzZSBgPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPmAgaW5zdGVh
ZC4KLSAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXku
Z2V0KCksICJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIpKTsKKyAgICAvLyBTaG91
bGQgdXNlIGA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPmAgaW5zdGVhZC4KKyAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhrZXkuZ2V0KCksICJXZWJLaXRVc2VzQmFja0ZvcndhcmRDYWNoZVByZWZl
cmVuY2VLZXkiKSk7CiAKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8
VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CiAgICAgY29udHJv
bGxlci0+b3ZlcnJpZGVQcmVmZXJlbmNlKGtleS5nZXQoKSwgdmFsdWUuZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGVjZmE0ODdjMjQ3Y2Nm
N2EzMWQ1OGZjNjhiNTJhMDc3ZGQ5MGRjNjQuLjE4ODBiYmU1MzI3N2MwODgwNGVkY2UwZTJkNWY3
YjkwMzlkZjFjYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KQEAgLTEwMzAsNyArMTAzMCw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9y
VGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMu
cmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJZGxlQ2Fs
bGJhY2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVBc3luY0NsaXBib2FyZEFQSTsKICAgICBwcmVmZXJlbmNlcy5wcml2YXRlQnJvd3Np
bmdFbmFibGVkID0gb3B0aW9ucy51c2VFcGhlbWVyYWxTZXNzaW9uOwotICAgIHByZWZlcmVuY2Vz
LnVzZXNQYWdlQ2FjaGUgPSBvcHRpb25zLmVuYWJsZVBhZ2VDYWNoZTsKKyAgICBwcmVmZXJlbmNl
cy51c2VzUGFnZUNhY2hlID0gb3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlOwogfQogCiAv
LyBDYWxsZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNjg4NDg2YTg5MGRjZTkyMWRkMzEw
ZmZjNGNlMzBhMmY4MjE0OGY1NC4uYWFlYzFiZTg5MWZkYjIyZTU3NjlhNzYwM2ZlZjEyNzEzNGY1
OTdiNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBA
IC04NTQsNyArODU0LDcgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lz
dGVudFZhbHVlcyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIHByZWZzUHJpdmF0
ZS0+c2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoRkFMU0UpOwogICAgIHByZWZl
cmVuY2VzLT5zZXRQbHVnSW5zRW5hYmxlZChUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0VGV4
dEFyZWFzQXJlUmVzaXphYmxlKFRSVUUpOwotICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNh
Y2hlKEZBTFNFKTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUoRkFM
U0UpOwogCiAgICAgcHJlZmVyZW5jZXMtPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoRkFMU0Up
OwogICAgIHByZWZzUHJpdmF0ZS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoVFJVRSk7
CkBAIC05MTQsNyArOTE0LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0
T3B0aW9ucyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzLCBjb25zdAogICAgIHByZWZzUHJp
dmF0ZS0+c2V0UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQob3B0aW9ucy5lbmFibGVSZXF1ZXN0
SWRsZUNhbGxiYWNrKTsKICAgICBwcmVmc1ByaXZhdGUtPnNldEFzeW5jQ2xpcGJvYXJkQVBJRW5h
YmxlZChvcHRpb25zLmVuYWJsZUFzeW5jQ2xpcGJvYXJkQVBJKTsKICAgICBwcmVmZXJlbmNlcy0+
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChvcHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb24pOwot
ICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNhY2hlKG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hl
KTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUob3B0aW9ucy5lbmFi
bGVCYWNrRm9yd2FyZENhY2hlKTsKIH0KIAogc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbklkKCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbkJhc2ljLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljLmNwcAppbmRleCAyZDA0MzVjMGUyYTM3MGY4Y2M0Mzc2NjE2MGQ3
M2M4YzYxMWQxNzc4Li41NWFhMzdlMTMwMmMyNmQyZTk1MDNkMDVhODhiYzcxNDVjZmM2NTM5IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRl
bnNpb25CYXNpYy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9N
V2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoV2ViS2l0LCBE
SVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNpYykKICAgICBXS0NvbnRleHRTZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7
CiAgICAgCiAgICAgLy8gVGhlIGRlZmF1bHQgY2FjaGUgbW9kZWwgaGFzIGEgY2FwYWNpdHkgb2Yg
MCwgc28gaXQgaXMgbmVjZXNzYXJ5IHRvIHN3aXRjaCB0byBhIGNhY2hlCi0gICAgLy8gbW9kZWwg
dGhhdCBhY3R1YWxseSBhbGxvd3MgZm9yIGEgcGFnZSBjYWNoZS4KKyAgICAvLyBtb2RlbCB0aGF0
IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0
U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2Vy
KTsKIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91
cC5nZXQoKSk7CkBAIC0xMjAsNyArMTIwLDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljKQogICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOwogICAgIGZpbmlz
aGVkID0gZmFsc2U7CiAKLSAgICAvLyBNYWtlIHN1cmUgdGhlIDIgZGlzY29ubmVjdGVkIGV4dGVu
c2lvbnMgaW4gdGhlIHBhZ2UgY2FjaGUgYW5kIHRoZSA0IGFjdGl2ZSBleHRlbnNpb25zIGFyZSBh
bGwgcmVtb3ZlZC4KKyAgICAvLyBNYWtlIHN1cmUgdGhlIDIgZGlzY29ubmVjdGVkIGV4dGVuc2lv
bnMgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSBhbmQgdGhlIDQgYWN0aXZlIGV4dGVuc2lvbnMg
YXJlIGFsbCByZW1vdmVkLgogICAgIFdLUGFnZUNsb3NlKHdlYlZpZXcucGFnZSgpKTsKIAogICAg
IFV0aWw6OnJ1bigmZmluaXNoZWQpOwpAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoV2ViS2l0LCBE
T01XaW5kb3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQogICAgIFdLQ29udGV4dFNldEluamVjdGVk
QnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsK
IAogICAgIC8vIFRoZSBkZWZhdWx0IGNhY2hlIG1vZGVsIGhhcyBhIGNhcGFjaXR5IG9mIDAsIHNv
IGl0IGlzIG5lY2Vzc2FyeSB0byBzd2l0Y2ggdG8gYSBjYWNoZQotICAgIC8vIG1vZGVsIHRoYXQg
YWN0dWFsbHkgYWxsb3dzIGZvciBhIHBhZ2UgY2FjaGUuCisgICAgLy8gbW9kZWwgdGhhdCBhY3R1
YWxseSBhbGxvd3MgZm9yIGEgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNldENh
Y2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7CiAK
ICAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2lu
ZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcAppbmRleCBiYzUwYjVlMmIwMGM1OTA4NDcw
NjE3NjJhZTNkZDcwZjRmNTFiOWViLi5lMTY5NmQ1YmQ2NTY5NDcyNzhmOTQ3NDg1MjUzMTcyYmM0
OWI3Y2E3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01X
aW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcApAQCAtOTUsNyArOTUsNyBAQCBU
RVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZSkKIAogICAgIFdL
Q29udGV4dFNldEluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1
bmRsZUNsaWVudC5iYXNlKTsKIAotICAgIC8vIERpc2FibGUgdGhlIHBhZ2UgY2FjaGUuCisgICAg
Ly8gRGlzYWJsZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNldENhY2hl
TW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsKIAogICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dF
eHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAKaW5kZXggNDBiNzdmMWRi
MDUxMjY5N2ZmNTljYzY5ZTZlMDI3OWE4YjYyMDdhNy4uZGMyM2U2N2M2ZjZjMThjZTQ4OGVjNmU3
Y2QzN2UyMWJmYWVhNTZmNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxl
LmNwcApAQCAtMjM1LDEzICsyMzUsMTMgQEAgdm9pZCBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hl
OjpnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYKIAogdm9p
ZCBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlOjp3aWxsRGlzY29ubmVjdERPTVdpbmRvd0V4dGVu
c2lvbkZyb21HbG9iYWxPYmplY3QoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYgZXh0ZW5z
aW9uKQogewotICAgIC8vIE5vIGl0ZW1zIHNob3VsZCBiZSBnb2luZyBpbnRvIGEgMC1jYXBhY2l0
eSBwYWdlIGNhY2hlLgorICAgIC8vIE5vIGl0ZW1zIHNob3VsZCBiZSBnb2luZyBpbnRvIGEgMC1j
YXBhY2l0eSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKIHZvaWQgRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZTo6ZGlkUmVjb25uZWN0RE9NV2luZG93
RXh0ZW5zaW9uVG9HbG9iYWxPYmplY3QoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYpCiB7
Ci0gICAgLy8gTm8gaXRlbXMgc2hvdWxkIGJlIGNvbWluZyBvdXQgb2YgYSAwLWNhcGFjaXR5IHBh
Z2UgY2FjaGUuCisgICAgLy8gTm8gaXRlbXMgc2hvdWxkIGJlIGNvbWluZyBvdXQgb2YgYSAwLWNh
cGFjaXR5IGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3Zl
RnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcAppbmRl
eCAxNThjNjQwZGMzOWFjODllMjU2NmY5N2I0NWM5NDIyNjlkNWU3NzAyLi5mZTlmNTQzYzJiZWUz
M2U4N2JjMGMzYjdiMmQ1YWU4OTY1ZmNiMzg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZy
b21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcApAQCAtNzAsOSArNzAsOSBAQCBzdGF0aWMgdm9pZCBz
ZXRJbmplY3RlZEJ1bmRsZUNsaWVudChXS1BhZ2VSZWYgcGFnZSkKICAgICBXS1BhZ2VTZXRQYWdl
SW5qZWN0ZWRCdW5kbGVDbGllbnQocGFnZSwgJmluamVjdGVkQnVuZGxlQ2xpZW50LmJhc2UpOwog
fQogCi1URVNUKFdlYktpdCwgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZSkK
K1RFU1QoV2ViS2l0LCBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNo
ZSkKIHsKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRpZFJlbW92ZUZyYW1lRnJv
bUhpZWFyY2h5SW5QYWdlQ2FjaGUiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0
KCJEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZSIpKTsKICAgICAv
LyBFbmFibGUgdGhlIHBhZ2UgY2FjaGUgc28gd2UgY2FuIHRlc3QgdGhlIFdLQnVuZGxlUGFnZURp
ZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeUNhbGxiYWNrIEFQSQogICAgIFdLQ29udGV4dFNldENh
Y2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3Zl
RnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZV9CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZV9C
dW5kbGUuY3BwCmluZGV4IDk5MWRlODUwMDRlMDUxZTQxZGIwMDNlMmQxODFkYzA2MmRkZTcxYjUu
LjI2YjUyNGVkZjRjZWEyODBhZmJlZmM4OThlZDc5N2I1NGJmZjdmNGQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5
SW5QYWdlQ2FjaGVfQnVuZGxlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlX0J1bmRsZS5jcHAKQEAg
LTM1LDE0ICszNSwxNCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLWNsYXNzIERp
ZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVUZXN0IDogcHVibGljIEluamVjdGVk
QnVuZGxlVGVzdCB7CitjbGFzcyBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0Zvcndh
cmRDYWNoZVRlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKIHB1YmxpYzoKLSAgICBE
aWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdChjb25zdCBzdGQ6OnN0cmlu
ZyYgaWRlbnRpZmllcik7CisgICAgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3
YXJkQ2FjaGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYpOwogfTsK
IAotc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8RGlkUmVtb3ZlRnJhbWVGcm9t
SGllYXJjaHlJblBhZ2VDYWNoZVRlc3Q+IHJlZ2lzdHJhcigiRGlkUmVtb3ZlRnJhbWVGcm9tSGll
YXJjaHlJblBhZ2VDYWNoZSIpOworc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8
RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVUZXN0PiByZWdpc3Ry
YXIoIkRpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlIik7CiAKIHN0
YXRpYyB1bnNpZ25lZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHlDb3VudDsKIApAQCAtNTYs
MTIgKzU2LDEyIEBAIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2soV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYKICAgICBXS0J1bmRsZVBhZ2VQb3N0
TWVzc2FnZShwYWdlLCBtZXNzYWdlLmdldCgpLCBtZXNzYWdlLmdldCgpKTsKIH0KIAotRGlkUmVt
b3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZVRlc3Q6OkRpZFJlbW92ZUZyYW1lRnJvbUhp
ZWFyY2h5SW5QYWdlQ2FjaGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorRGlk
UmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVUZXN0OjpEaWRSZW1vdmVG
cmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3QoY29uc3Qgc3RkOjpzdHJpbmcm
IGlkZW50aWZpZXIpCiAgICAgOiBJbmplY3RlZEJ1bmRsZVRlc3QoaWRlbnRpZmllcikKIHsKIH0K
IAotdm9pZCBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdDo6ZGlkQ3Jl
YXRlUGFnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKQordm9pZCBE
aWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3Q6OmRpZENyZWF0
ZVBhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKIHsKICAgICBX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOCBwYWdlTG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgm
cGFnZUxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKHBhZ2VMb2FkZXJDbGllbnQpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0xheW91dE1pbGVzdG9uZXNXaXRo
QWxsQ29udGVudEluRnJhbWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
TGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAKaW5kZXggNTY0NmJkODE5
NzVlOGU1ODMyYTE1NDY5ZmZiYzQxYzhlZGQ1NWM2ZS4uMWE2Y2JiMTUzMGNiNzQzZjMwY2Y4NTUz
NjNlZmU0NDU0MWI2NmM0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250
ZW50SW5GcmFtZS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEFmdGVyUGFnZUNhY2hlUmVzdG9yZSkKIHsKICAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25m
aWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwoY29udGV4
dC5nZXQoKSwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsgLy8gRW5hYmxlcyB0aGUg
UGFnZSBDYWNoZS4KKyAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQuZ2V0KCksIGtX
S0NhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3Nlcik7IC8vIEVuYWJsZXMgdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZS4KIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBlZTQwMzc4ZTJlZDY1ZTYxMjQw
Y2Y5MDI0NTdlNzc1NjA4NGE0NWE0Li44ZDI0YmJiYTM4NTk3YmJjM2MwMmUxNWRmMDBhNGQyZjNm
YjgwMmI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI0ODQsNyArMjQ4
NCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3VzcGVuZGVkUHJvY2VzcykKIHN0YXRpYyBj
b25zdCBjaGFyKiBmYWlsc1RvRW50ZXJQYWdlQ2FjaGVUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJD
RSgKIDxib2R5PgogPHNjcmlwdD4KLS8vIFBhZ2VzIHdpdGggZGVkaWNhdGVkIHdvcmtlcnMgZG8g
bm90IGdvIGludG8gcGFnZSBjYWNoZS4KKy8vIFBhZ2VzIHdpdGggZGVkaWNhdGVkIHdvcmtlcnMg
ZG8gbm90IGdvIGludG8gYmFjay9mb3J3YXJkIGNhY2hlLgogdmFyIG15V29ya2VyID0gbmV3IFdv
cmtlcignd29ya2VyLmpzJyk7CiA8L3NjcmlwdD4KIDwvYm9keT4KQEAgLTM2OTksNyArMzY5OSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhZ2VTaG93SGlkZSkKICAgICB9CiB9CiAKLS8vIERpc2Fi
bGluZyB0aGUgcGFnZSBjYWNoZSBleHBsaWNpdGx5IGlzIChmb3Igc29tZSByZWFzb24pIG5vdCBh
dmFpbGFibGUgb24gaU9TLgorLy8gRGlzYWJsaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgZXhw
bGljaXRseSBpcyAoZm9yIHNvbWUgcmVhc29uKSBub3QgYXZhaWxhYmxlIG9uIGlPUy4KICNpZiAh
VEFSR0VUX09TX0lQSE9ORQogc3RhdGljIGNvbnN0IGNoYXIqIGxvYWRVbmxvYWRCeXRlcyA9IFIi
UFNPTlJFU09VUkNFKAogPHNjcmlwdD4KQEAgLTU3ODIsNyArNTc4Miw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFnZVdpdGhNYWluRnJhbWVJRFRoYXRJc05vdE9uZSkK
ICAgICBhdXRvIHBpZDMgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
ICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMyk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dhcHBl
ZC4KIAotICAgIC8vIE5hdmlnYXRlIGJhY2sgdG8gdGhlIHN1c3BlbmRlZCBwYWdlIChzaG91bGQg
dXNlIHRoZSBwYWdlIGNhY2hlKS4KKyAgICAvLyBOYXZpZ2F0ZSBiYWNrIHRvIHRoZSBzdXNwZW5k
ZWQgcGFnZSAoc2hvdWxkIHVzZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlKS4KICAgICBbY3JlYXRl
ZFdlYlZpZXcgZ29CYWNrXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7CkBAIC01ODE5LDcgKzU4MTks
NyBAQCBib2R5IHsKIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KLS8vIFBhZ2VzIHdpdGggZGVk
aWNhdGVkIHdvcmtlcnMgZG8gbm90IGdvIGludG8gcGFnZSBjYWNoZS4KKy8vIFBhZ2VzIHdpdGgg
ZGVkaWNhdGVkIHdvcmtlcnMgZG8gbm90IGdvIGludG8gYmFjay9mb3J3YXJkIGNhY2hlLgogdmFy
IG15V29ya2VyID0gbmV3IFdvcmtlcignd29ya2VyLmpzJyk7CiA8L3NjcmlwdD4KIDxhIGlkPSJ0
ZXN0TGluayIgaHJlZj0icHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIj5UZXN0PC9hPgpA
QCAtNTkyNyw3ICs1OTI3LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRCbG9ja2luZ0Fm
dGVyUHJvY2Vzc1N3YXBUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxib2R5PgogPHNjcmlw
dD4KIGxldCB3YXNTdWJmcmFtZUxvYWRlZCA9IGZhbHNlOwotLy8gUGFnZXMgd2l0aCBkZWRpY2F0
ZWQgd29ya2VycyBkbyBub3QgZ28gaW50byBwYWdlIGNhY2hlLgorLy8gUGFnZXMgd2l0aCBkZWRp
Y2F0ZWQgd29ya2VycyBkbyBub3QgZ28gaW50byBiYWNrL2ZvcndhcmQgY2FjaGUuCiB2YXIgbXlX
b3JrZXIgPSBuZXcgV29ya2VyKCd3b3JrZXIuanMnKTsKIDwvc2NyaXB0PgogPGlmcmFtZSBzcmM9
ImJsb2NrbWUuaHRtbCI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFNldHRpbmdzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDNhNDBj
MjkzNWIyMDFiMDU2ZTg5ZWNlYTZhZjJhNDliMGM3YWYyZTkuLjhlOTk0NGFkMWJiZDE0MTZmNjc1
ZjlmNmZjNzhiN2IzN2FmOWJmZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0yNzYsNyAr
Mjc2LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdFNldHRpbmdzKFRlc3QqLCBnY29uc3Rwb2lu
dGVyKQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3NpdGVfc3BlY2lmaWNfcXVpcmtz
KHNldHRpbmdzLCBGQUxTRSk7CiAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3NldHRpbmdzX2dl
dF9lbmFibGVfc2l0ZV9zcGVjaWZpY19xdWlya3Moc2V0dGluZ3MpKTsKIAotICAgIC8vIEJ5IGRl
ZmF1bHQsIHBhZ2UgY2FjaGUgaXMgZW5hYmxlZC4KKyAgICAvLyBCeSBkZWZhdWx0LCB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlIGlzIGVuYWJsZWQuCiAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfc2V0
dGluZ3NfZ2V0X2VuYWJsZV9wYWdlX2NhY2hlKHNldHRpbmdzKSk7CiAgICAgd2Via2l0X3NldHRp
bmdzX3NldF9lbmFibGVfcGFnZV9jYWNoZShzZXR0aW5ncywgRkFMU0UpOwogICAgIGdfYXNzZXJ0
X2ZhbHNlKHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3BhZ2VfY2FjaGUoc2V0dGluZ3MpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IGJhNTk5M2M3YTIyMmZiMzBhN2MwNzU0Y2RiYTc1OTZhMmI4MTM5YmIuLjhl
ZGExZmQwY2E2OTRkNjczZTEzOTEyZDVkNDBlYmNmYmNjNmVhYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtODU5
LDggKzg1OSw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0b0Jvb2woSlNTdHJpbmdSZWYgdmFsdWUp
CiB2b2lkIFRlc3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBwcmVmZXJl
bmNlLCBKU1N0cmluZ1JlZiB2YWx1ZSkKIHsKICAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKLSAgICAvLyBTaG91bGQgdXNlIGA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+YCBpbnN0ZWFkLgotICAg
IFJFTEVBU0VfQVNTRVJUKCFKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHByZWZlcmVuY2Us
ICJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIpKTsKKyAgICAvLyBTaG91bGQgdXNl
IGA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPmAgaW5zdGVhZC4KKyAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhwcmVmZXJlbmNlLCAiV2ViS2l0VXNlc0JhY2tGb3J3YXJkQ2FjaGVQcmVmZXJlbmNl
S2V5IikpOwogCiAgICAgLy8gRklYTUU6IGhhbmRsZSBub24tYm9vbGVhbiBwcmVmZXJlbmNlcy4K
ICAgICBXS0J1bmRsZU92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKGluamVjdGVk
QnVuZGxlLmJ1bmRsZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwgdG9XSyhwcmVmZXJl
bmNlKS5nZXQoKSwgdG9Cb29sKHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCmluZGV4IGU5ZDQyOGU4MzRmNmRjY2RlOTczZTJlZWU4YjUyMmY4OTM0ZmQw
NjEuLmUxN2M0OTI2MDI1YWU0M2VkYzhkMjQ2MWIwNzRmNjM5YzEwNWM5YzYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC04NDYsNyArODQ2LDcgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW8KICAgICBXS1ByZWZlcmVuY2VzU2V0QWxsb3dDcm9zc09yaWdp
blN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMocHJlZmVyZW5jZXMsIG9wdGlvbnMuYWxs
b3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMpOwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRDb2xvckZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxl
Q29sb3JGaWx0ZXIpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRQdW5jaE91dFdoaXRlQmFja2dyb3Vu
ZHNJbkRhcmtNb2RlKHByZWZlcmVuY2VzLCBvcHRpb25zLnB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5k
c0luRGFya01vZGUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVFbmFibGVkKHByZWZl
cmVuY2VzLCBvcHRpb25zLmVuYWJsZVBhZ2VDYWNoZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFBh
Z2VDYWNoZUVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldExhenlJbWFnZUxvYWRpbmdFbmFibGVkKHByZWZlcmVu
Y2VzLCBvcHRpb25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcpOwogCiAgICAgc3RhdGljIFdLU3Ry
aW5nUmVmIGRlZmF1bHRUZXh0RW5jb2RpbmcgPSBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiSVNPLTg4NTktMSIpOwpAQCAtMTQyOSw4ICsxNDI5LDggQEAgc3RhdGljIHZvaWQgdXBkYXRl
VGVzdE9wdGlvbnNGcm9tVGVzdEhlYWRlcihUZXN0T3B0aW9ucyYgdGVzdE9wdGlvbnMsIGNvbnN0
IHN0ZDoKICAgICAgICAgICAgIHRlc3RPcHRpb25zLmNvbnRlbnRNb2RlID0geyB2YWx1ZS5jX3N0
cigpIH07CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlQXBwTmFwIikKICAgICAgICAg
ICAgIHRlc3RPcHRpb25zLmVuYWJsZUFwcE5hcCA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1
ZSh2YWx1ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlUGFnZUNhY2hlIikKLSAg
ICAgICAgICAgIHRlc3RPcHRpb25zLmVuYWJsZVBhZ2VDYWNoZSA9IHBhcnNlQm9vbGVhblRlc3RI
ZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlQmFja0Zv
cndhcmRDYWNoZSIpCisgICAgICAgICAgICB0ZXN0T3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENh
Y2hlID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJlbmFibGVMYXp5SW1hZ2VMb2FkaW5nIikKICAgICAgICAgICAgIHRlc3RPcHRp
b25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUo
dmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImFsbG93c0xpbmtQcmV2aWV3IikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAppbmRleCBjYjZhNWQ1NmRmNDVjY2UyZDQ1NWNh
MmQ5OGM2NGEyMzQ1MDY3NjM2Li41MTVkNWJmYmRlMmRiNzlkMWQ1MzhkYmY3MjE1NjM2ZTQwZjlj
YTc2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCkBAIC05NCw3ICs5NCw3IEBA
IHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwg
eyB0cnVlIH07CiAgICAgYm9vbCBzaG91bGRQcmVzZW50UG9wb3ZlcnMgeyB0cnVlIH07CiAgICAg
Ym9vbCBlbmFibGVBcHBOYXAgeyBmYWxzZSB9OwotICAgIGJvb2wgZW5hYmxlUGFnZUNhY2hlIHsg
ZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUgeyBmYWxzZSB9OwogICAg
IGJvb2wgZW5hYmxlTGF6eUltYWdlTG9hZGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd3NM
aW5rUHJldmlldyB7IHRydWUgfTsKIApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0cnVjdCBUZXN0T3B0
aW9ucyB7CiAgICAgICAgICAgICB8fCBjb250ZW50SW5zZXRUb3AgIT0gb3B0aW9ucy5jb250ZW50
SW5zZXRUb3AKICAgICAgICAgICAgIHx8IGNvbnRlbnRNb2RlICE9IG9wdGlvbnMuY29udGVudE1v
ZGUKICAgICAgICAgICAgIHx8IGVuYWJsZUFwcE5hcCAhPSBvcHRpb25zLmVuYWJsZUFwcE5hcAot
ICAgICAgICAgICAgfHwgZW5hYmxlUGFnZUNhY2hlICE9IG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hl
CisgICAgICAgICAgICB8fCBlbmFibGVCYWNrRm9yd2FyZENhY2hlICE9IG9wdGlvbnMuZW5hYmxl
QmFja0ZvcndhcmRDYWNoZQogICAgICAgICAgICAgfHwgZW5hYmxlTGF6eUltYWdlTG9hZGluZyAh
PSBvcHRpb25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcKICAgICAgICAgICAgIHx8IGFsbG93c0xp
bmtQcmV2aWV3ICE9IG9wdGlvbnMuYWxsb3dzTGlua1ByZXZpZXcpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5IGIvVG9vbHMv
bGxkYi9sbGRiX3dlYmtpdC5weQppbmRleCBmNWFlMmMxOTM4YmQ4YTUxNDAxNmIyMGU1NzA1ZjEz
ZjVlZmYzODM2Li5kNTgwODk5N2FjNzFkMWEwNTQ5ZGEwZTVhYThkOWIxZTRjOTM1NjM3IDEwMDY0
NAotLS0gYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5CisrKyBiL1Rvb2xzL2xsZGIvbGxkYl93
ZWJraXQucHkKQEAgLTIzOSwxOSArMjM5LDE5IEBAIGRlZiBXZWJDb3JlRnJhbWVfU3VtbWFyeVBy
b3ZpZGVyKHZhbG9iaiwgZGljdCk6CiAgICAgaWYgZG9jdW1lbnQ6CiAgICAgICAgIG9yaWdpbiA9
IGRvY3VtZW50Lm9yaWdpbigpCiAgICAgICAgIHVybCA9IGRvY3VtZW50LnVybCgpCi0gICAgICAg
IHBhZ2VDYWNoZVN0YXRlID0gZG9jdW1lbnQucGFnZV9jYWNoZV9zdGF0ZSgpCisgICAgICAgIGJh
Y2tGb3J3YXJkQ2FjaGVTdGF0ZSA9IGRvY3VtZW50LnBhZ2VfY2FjaGVfc3RhdGUoKQogICAgIGVs
c2U6CiAgICAgICAgIG9yaWdpbiA9ICcnCiAgICAgICAgIHVybCA9ICcnCi0gICAgICAgIHBhZ2VD
YWNoZVN0YXRlID0gJycKLSAgICByZXR1cm4gJ3sgb3JpZ2luID0gJXMsIHVybCA9ICVzLCBpc01h
aW5GcmFtZSA9ICVkLCBwYWdlQ2FjaGVTdGF0ZSA9ICVzIH0nICUgKG9yaWdpbiwgdXJsLCBwcm92
aWRlci5pc19tYWluX2ZyYW1lKCksIHBhZ2VDYWNoZVN0YXRlKQorICAgICAgICBiYWNrRm9yd2Fy
ZENhY2hlU3RhdGUgPSAnJworICAgIHJldHVybiAneyBvcmlnaW4gPSAlcywgdXJsID0gJXMsIGlz
TWFpbkZyYW1lID0gJWQsIGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9ICVzIH0nICUgKG9yaWdpbiwg
dXJsLCBwcm92aWRlci5pc19tYWluX2ZyYW1lKCksIGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkKIAog
CiBkZWYgV2ViQ29yZURvY3VtZW50X1N1bW1hcnlQcm92aWRlcih2YWxvYmosIGRpY3QpOgogICAg
IHByb3ZpZGVyID0gV2ViQ29yZURvY3VtZW50UHJvdmlkZXIodmFsb2JqLCBkaWN0KQogICAgIGZy
YW1lID0gcHJvdmlkZXIuZnJhbWUoKQogICAgIGluX21haW5fZnJhbWUgPSAnJWQnICUgZnJhbWUu
aXNfbWFpbl9mcmFtZSgpIGlmIGZyYW1lIGVsc2UgJ0RldGFjaGVkJwotICAgIHJldHVybiAneyBv
cmlnaW4gPSAlcywgdXJsID0gJXMsIGluTWFpbkZyYW1lID0gJXMsIHBhZ2VDYWNoZVN0YXRlID0g
JXMgfScgJSAocHJvdmlkZXIub3JpZ2luKCksIHByb3ZpZGVyLnVybCgpLCBpbl9tYWluX2ZyYW1l
LCBwcm92aWRlci5wYWdlX2NhY2hlX3N0YXRlKCkpCisgICAgcmV0dXJuICd7IG9yaWdpbiA9ICVz
LCB1cmwgPSAlcywgaW5NYWluRnJhbWUgPSAlcywgYmFja0ZvcndhcmRDYWNoZVN0YXRlID0gJXMg
fScgJSAocHJvdmlkZXIub3JpZ2luKCksIHByb3ZpZGVyLnVybCgpLCBpbl9tYWluX2ZyYW1lLCBw
cm92aWRlci5wYWdlX2NhY2hlX3N0YXRlKCkpCiAKIAogZGVmIGJ0anMoZGVidWdnZXIsIGNvbW1h
bmQsIHJlc3VsdCwgaW50ZXJuYWxfZGljdCk6CkBAIC03MjMsNyArNzIzLDcgQEAgY2xhc3MgV2Vi
Q29yZURvY3VtZW50UHJvdmlkZXI6CiAgICAgICAgIHJldHVybiBXZWJDb3JlU2VjdXJpdHlPcmln
aW5Qcm92aWRlcihzZWN1cml0eV9vcmlnaW5fcHRyLCBkaWN0KCkpLnRvX3N0cmluZygpCiAKICAg
ICBkZWYgcGFnZV9jYWNoZV9zdGF0ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYudmFsb2Jq
LkdldENoaWxkTWVtYmVyV2l0aE5hbWUoJ21fcGFnZUNhY2hlU3RhdGUnKS5HZXRWYWx1ZSgpCisg
ICAgICAgIHJldHVybiBzZWxmLnZhbG9iai5HZXRDaGlsZE1lbWJlcldpdGhOYW1lKCdtX2JhY2tG
b3J3YXJkQ2FjaGVTdGF0ZScpLkdldFZhbHVlKCkKIAogICAgIGRlZiBmcmFtZShzZWxmKToKICAg
ICAgICAgZnJhbWVfcHRyID0gc2VsZi52YWxvYmouR2V0Q2hpbGRNZW1iZXJXaXRoTmFtZSgnbV9m
cmFtZScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggY2Q5ZTFjOGNhNTI4Mjk0YjgyMjkzNjI3NGM4NzljODhkY2E0OTMwZS4u
ZDJmNjQ0ZDNlNTY1YTM2NWI1ZmJlZDBkZjg4MjkwYzYyMjFhMGNkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2NyBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBC
YWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVBy
b2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAgICAgICogYW5pbWF0aW9ucy9yZXN1
bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2FjY2VsZXJh
dGVkLWxheWVycy1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1l
cy9wYWdlLWNhY2hlLWxheWVyLXRyZWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYWdl
LWNhY2hlLWJhY2stY3Jhc2guaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9zaG93LWNvbXBv
c2l0ZWQtaWZyYW1lLW9uLWJhY2stYnV0dG9uLmh0bWw6CisgICAgICAgICogZWRpdGluZy9tYWMv
aW5wdXQvdW5jb25maXJtZWQtdGV4dC1uYXZpZ2F0aW9uLXdpdGgtcGFnZS1jYWNoZS5odG1sOgor
ICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWw6
CisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAg
ICogZmFzdC9kb20vRGV2aWNlTW90aW9uL25vLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tcGFnZS1jYWNoZS5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNr
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvb251bmxvYWQtYmFjay10by1wYWdlLWNhY2hl
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sOgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3BhZ2VoaWRlLXhoci1vcGVuLmh0bWw6CisgICAgICAgICogZmFz
dC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hl
ZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3N1c3BlbmQtdGltZXJzLmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12YWx1ZS1kb2Vz
LW5vdC1jbGVhci5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLWNyYXNoLXdpdGgt
cGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLXVubG9hZC1uYXZp
Z2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sOgorICAgICAgICAqIGZhc3QvZnJh
bWVzL3BhZ2UtaGlkZS1kb2N1bWVudC1vcGVuLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMv
cmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2NyaXB0cy12aWEtc3R5bGUtdXBk
YXRlLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hv
dWxkLW5vdC1ydW4tc2NyaXB0cy5odG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy9wYWdlLWNh
Y2hlLWNyYXNoLW9uLWRhdGEtdXJscy5odG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy91c2Ut
cGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9iYWNrLWZyb20tcGFnZS13
aXRoLWZvY3VzZWQtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2dvLWJhY2st
dG8taWZyYW1lLXdpdGgtcGx1Z2luLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2dvLWJh
Y2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2hpc3Rv
cnktYmFjay13aGlsZS1wZGYtaW4tcGFnZWNhY2hlLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtTWVzc2FnZVBvcnQtcGVuZGluZy1tZXNzYWdlLmh0bWw6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtYWZ0ZXItd2luZG93LW9wZW4uaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1iYWNrLW5hdmlnYXRpb24tY3Jhc2guaHRtbDoK
KyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmcuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1hZ2VCaXRtYXAuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwtdXNpbmct
b3Blbi1wYW5lbC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0
ZU9iamVjdFVSTC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWRlc3Ry
b3ktZG9jdW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1lbGVt
ZW50LXN0YXRlLWZvY3VzZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1leGVjdXRlLXNjcmlwdC1kdXJpbmctcmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVzaG90Lmh0bWw6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWlmcmFtZS1qcy11cmwuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWw6
CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC0y
Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNs
b3NlZC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJj
ZS1vcGVuZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0
ZS1kdXJpbmctcmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LW5vdGlmaWNhdGlvbi1ub24tc3VzcGVuZGFibGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1yZW1vdmVkLXNvdXJjZS1idWZmZXIuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1lcy13aXRoLXByb3Zpc2lv
bmFsLWxvYWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5k
ZWQtYXVkaW9jb250ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
d2ViZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2hpc3RvcnkvcGFnZWhpZGUtcmVtb3ZlLWlmcmFtZS1jcmFzaC5odG1sOgorICAgICAg
ICAqIGZhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJhbWUu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93
LXdpdGgtb3BlbmVyLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3RpbWVkLXJlZnJlc2gt
aW4tY2FjaGVkLWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lm
LXJlc3RvcmVkLWZyb20tYmZjYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL2ZyYW1l
cy13aXRoLXVubG9hZC1oYW5kbGVycy1pbi1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogZmFz
dC9sb2FkZXIvaW1hZ2UtaW4tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVy
L2lucHV0LWVsZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvbG9h
ZGVyL25hdmlnYXRlLXdpdGgtbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlv
bi5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXct
dGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWw6CisgICAgICAgICogZmFz
dC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbDoKKyAgICAgICAg
KiBmYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRvLXN0YXRl
bGVzcy1lbnRyeS13aXRoLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9z
dGF0ZW9iamVjdHMvcG9wc3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAg
ICogZmFzdC9sb2FkZXIvdW5zY2hlZHVsZS1yZWxheW91dC1hZnRlci11bmxvYWQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2xvYWRlci93aW5kb3ctcHJvcGVydGllcy1yZXN0b3JlZC1mcm9tLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L2hvcml6b250YWwtc2Ny
b2xsLWFmdGVyLWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pZnJhbWUtc2Ny
b2xsYWJsZS1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93Lmh0bWw6CisgICAgICAgICog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLmh0bWw6CisgICAg
ICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9sbC1iYWNrLWZvcndhcmQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGxhYmxlLWFmdGVyLWJhY2su
aHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9wYWdlLWNhY2hlLWJhY2stb3ZlcmZsb3ct
c2Nyb2xsLXJlc3RvcmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9pb3Mv
dGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L3ZpZXdwb3J0
L2lvcy92aWV3cG9ydC1zaHJpbmstdG8tZml0LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC92aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbDoKKyAgICAgICAgKiBmYXN0L3dv
cmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2NhY2hl
L2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1pbWFnZS1sb2FkLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5l
Y3RlZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2Ut
cGFnZS1jYWNoZS1jb25uZWN0aW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5n
L21haW4tcmVzb3VyY2UtZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdhdGlvbi5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLWxvYWQtYmFjay10by1jYWNoZWQtcGFn
ZS1jYWxsYmFja3MuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hl
ZC1tYWluLXJlc291cmNlLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3ItcGFnZS5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1YmZyYW1lLWlu
LXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2Ut
bG9hZC1pbi1wYWdlaGlkZS1oYW5kbGVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGVzdG9yYWdlLXBlbmRp
bmctcHJvbWlzZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLWZhaWxlZC14aHIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1mb250ZmFjZXNldC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wYWdlLWNhY2hlLWZyYWdtZW50LXJlZmVycmVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLW5vLWN1cnJlbnQtaGlzdG9yeUl0ZW0uaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJv
dmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0ZXMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9h
ZC1jYWNoZS1wYXJ0aXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1jcm9zcy1vcmln
aW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5k
aW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLXJlcXVlc3RBbmltYXRpb25GcmFtZS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1wYWdlaGlkZS5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1jYWNo
ZS0zLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2Vo
aWRlLWhhbmRsZXItc3RhcnRzLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmln
YXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZDIuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQt
c2NyaXB0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1pc3Np
b24tZnJvbS1pbmFjdGl2ZS1kb213aW5kb3cuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0
LWludG8taW5hY3RpdmUtd2luZG93Mi1wc29uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmpl
Y3QtaW50by1pbmFjdGl2ZS13aW5kb3czLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9jbG9zZWQtd2hlbi1lbnRlcmluZy1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zdG9wLW9uLXJlc3VtZS1p
bi1lcnJvci1oYW5kbGVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3Zl
ZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13b3JrZXItcGVuZGluZy1w
cm9taXNlLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
cGFnZS1jYWNoaW5nLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2Vu
ZEJlYWNvbi1vbnBhZ2VoaWRlLXdpbmRvdy5odG1sOgorICAgICAgICAqIGxlZ2FjeS1hbmltYXRp
b24tZW5naW5lL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAg
ICAgKiBsb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS5odG1sOgorICAgICAgICAq
IGxvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1sOgorICAgICAgICAq
IG1lZGlhL2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBsdWdpbi1mYWxsYmFjay5o
dG1sOgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNo
ZS5odG1sOgorICAgICAgICAqIG1lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL2lvcy9maXhlZC9maXhlZC1iYWNrLWZvcndhcmQuaHRtbDoK
KyAgICAgICAgKiBwbHVnaW5zL2NyYXNoLXJlc3RvcmluZy1wbHVnaW4tcGFnZS1mcm9tLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBwbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1l
Lmh0bWw6CisgICAgICAgICogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tcGFnZS1jYWNoZS13b3Jr
cy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNo
ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1s
OgorICAgICAgICAqIHN3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sOgor
ICAgICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAg
ICAqIHN3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNo
Lmh0bWw6CisgICAgICAgICogc3dpcGUvcHVzaHN0YXRlLXdpdGgtbWFudWFsLXNjcm9sbHJlc3Rv
cmF0aW9uLmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbnVsbC1wYXJl
bnQtYmFjay1jcmFzaC5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2lu
Zy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sOgorICAgICAgICAq
IHdlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbDoKKyAg
ICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sOgor
CiAyMDE5LTEwLTE2ICBSdXNzZWxsIEVwc3RlaW4gIDxyZXBzdGVpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ29ycmVjdCBUZXN0RXhwZWN0YXRpb25zIGZyb20gcjI1MTExOS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbCBiL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBh
NjYyMmVlMzA4MTI5MThlNjNkNTZmMjRmM2RlYTU1NDI5MTQ1M2M3Li5lOThjNDk5ZWQ3YjQwMjVm
NWI1MDczNGVhZDQzYzNkOWUxZjE3ZDI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9yZXN1bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzdHls
ZT4KIEAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UgewogICAgIGZyb20gewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2suaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWxheWVycy1hZnRlci1iYWNr
Lmh0bWwKaW5kZXggM2I2MWE0NGMzYzY1ODUzMDhiMmRkYTVlNWE5NTViYTE2YzE0MTYxZi4uYTVm
YmMxNWI0ZTRkZDM0OGRjYmZkNWU3NmZjNDEyMTk1MmI0NTNhOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2suaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1sYXllcnMtYWZ0ZXItYmFjay5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlQWNjZWxlcmF0ZWREcmF3aW5nPXRydWUgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUFjY2VsZXJh
dGVkRHJhd2luZz10cnVlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogCiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9w
YWdlLWNhY2hlLWxheWVyLXRyZWUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvcGFnZS1jYWNoZS1sYXllci10cmVlLmh0bWwKaW5kZXggOTZjNjk4ZjM3NDA4MmU5NjE4M2Y3
ZTZhZGZmNzA5MzczNTM3NmU5Zi4uMDU0YWExODkzZTQxNjMxYjdiY2EyMjQ3MzY5Y2Y4Y2NlNDUy
YjhiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9wYWdlLWNh
Y2hlLWxheWVyLXRyZWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L3BhZ2UtY2FjaGUtbGF5ZXItdHJlZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3BhZ2UtY2FjaGUtYmFjay1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFn
ZS1jYWNoZS1iYWNrLWNyYXNoLmh0bWwKaW5kZXggOGY2OGJjZDhmYTk1ZTVjYmQ5YzAzYTBmMzk0
MTUzMTMyZmI4YTBhZS4uYzY3ZjIxNDIwYjg4ZmMwN2IwN2RjMmEyNzVkY2U5Y2MxMzlkYmRjNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFnZS1jYWNoZS1iYWNrLWNyYXNo
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFnZS1jYWNoZS1iYWNrLWNyYXNo
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBh
Z2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHN0eWxlPgogLm91dGVyIHsgcG9zaXRpb246IGZpeGVk
OyB9CiAuaW5uZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFjay1idXR0b24uaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFj
ay1idXR0b24uaHRtbAppbmRleCA1Njk1ZTc0ZjMwOWUxNzQwY2E3ZTk4NDhjNGEzYjMyZmMzZjJl
YTQzLi4wZTY4YTNkNTQ1YWE4NjJkNjA3Nzk3NDA3YzVmYjkwZjM5NzI3NjMzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zaG93LWNvbXBvc2l0ZWQtaWZyYW1lLW9uLWJhY2st
YnV0dG9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2hvdy1jb21wb3NpdGVk
LWlmcmFtZS1vbi1iYWNrLWJ1dHRvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvbWFj
L2lucHV0L3VuY29uZmlybWVkLXRleHQtbmF2aWdhdGlvbi13aXRoLXBhZ2UtY2FjaGUuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL2lucHV0L3VuY29uZmlybWVkLXRleHQtbmF2aWdhdGlv
bi13aXRoLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAzODg3N2NiZDBlODI3NmYyY2M0MGM2NGJiNzZm
NWUxOTRiZWEzMDhhLi43YjhkNzkyYzY3M2E3NjVkMGM3ZjQ3OTRlYzBmYjJmNmY5NGQ1MjA0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9pbnB1dC91bmNvbmZpcm1lZC10ZXh0
LW5hdmlnYXRpb24td2l0aC1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9tYWMvaW5wdXQvdW5jb25maXJtZWQtdGV4dC1uYXZpZ2F0aW9uLXdpdGgtcGFnZS1jYWNoZS5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+VGVzdCB3aGF0IGhh
cHBlbnMgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBwYWdlIHdpdGggdW5jb25maXJtZWQgaW5saW5l
IGlucHV0IHdoZW4gdGhlIHBhZ2UgaXMgY2FjaGVhYmxlPC90aXRsZT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5o
dG1sCmluZGV4IGNiYTMyNzkzMTMwZWRhYzU2ZWJjYjIwOTY5NTg4Yjk0YzdjNjg0NmUuLjljN2M4
MzdmZDJhODQzNTM4YzI3MTU1NzU1ODg3NDg0NGM4NWE0NjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2UtY2FjaGUuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHN0eWxlPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA3YTIwYTBjMWEy
OTI1MjBiNDAyNTg5NDM3ODY4YzI0NjZiY2RhZjcyLi45ODc5MmNjZTJiNDUxNjYzMzUwNjA3ZmY5
YWNlMzFlMzYyNmYzNDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IWRvY3R5cGUgaHRtbD4KIDxodG1s
PgogPHN0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlTW90aW9u
L25vLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU1vdGlvbi9u
by1wYWdlLWNhY2hlLmh0bWwKaW5kZXggNTllNzM4MzE5MTgwZTg4ZWNmZjBkYThjNjY3MzNhNzgz
ZDY5NTY4ZC4uZTZmOWViZTI1MzEyMzgwMTZmNTA3OGQ2OGZlZWNiMjY2NDU0ZTZhYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlTW90aW9uL25vLXBhZ2UtY2FjaGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VNb3Rpb24vbm8tcGFnZS1jYWNoZS5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2V2ZW50LWFmdGVy
LW5hdmlnYXRpb24uaHRtbAppbmRleCAyMzhiMzcxNGYwMjdiYmQ5ZWI2MzVkZTBiYTgyOTJkZWQ1
OWE2Y2Q0Li4zNjAyNTE4ODk3M2U4YmQyOGY4YTc2ZTE5ZjhmMjA4YTFjZGU3ZTBlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1u
YXZpZ2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRp
b24vZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgog
PGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0
aW9uL25vLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVu
dGF0aW9uL25vLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA2NjUxZjUxNmRlOWY0MTIwNjkyM2Y4YWJk
ODU5ZjRjZTAzMWJlOWMzLi41ZWM2NDkxODJmNGY3MjA5OTY2ZjYwYmI4N2Y5N2UyZGI5ZTVhMTM2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1w
YWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRp
b24vbm8tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24t
bmF2aWdhdGlvbi1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvdGltZXIt
cmVzdW1lLW9uLW5hdmlnYXRpb24tYmFjay5odG1sCmluZGV4IDMwMmE0MjQwYjhkM2MxYjEyNDUx
MmYxMTEyNWZkM2Y2OWY4NmNiMWYuLjJhZWM4NDg2OWRiMTZiMjlkZTYzYTgzODZkYWYyNDBjZDlh
NDdkYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1
bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8aHRtbD4KIDxzY3JpcHQ+CiB2YXIgdGltZW91dFZhbHVlID0gMTAwOyAvL21zCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbnVubG9hZC1iYWNrLXRvLXBhZ2UtY2FjaGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNo
ZS5odG1sCmluZGV4IGYwMTg0ZjM3YzZiYTA5ZTMwMzIxZTk4MGYyNjY1YzJjYzY1MjJlMDQuLjI0
YzBhMWVmNDNmYTlmNzIxZDVlMzlhOTAwM2RiY2Q3MmVjZDViOGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNoZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNoZS5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9wYWdlaGlkZS10aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdl
aGlkZS10aW1lb3V0Lmh0bWwKaW5kZXggNDgwMWVlODg2OTE4NTgzN2YxOWU3YzZmMTNhZTljNWFl
ZDEyMTU2Zi4uYTE3M2RiMzhhNTU5YTBmYjg5MDVkYzhhNTA1ZDNkZWQzYjBhM2U2ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXRpbWVvdXQuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8aHRtbD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9wYWdlaGlkZS14aHItb3Blbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhp
ZGUteGhyLW9wZW4uaHRtbAppbmRleCBhM2I5YjVjZTM3ZTA0ZWQyODFhYjJkYjUzNmUxOTFjMjNj
NzBlM2ZmLi41MTdmNDFiNjg5OTM4NDA1ZTQzNGViNjkzZGU5MDEwMzI2MDM5MWVhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlaGlkZS14aHItb3Blbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXhoci1vcGVuLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPGh0bWw+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdp
dGgtZnJhbWVzLmh0bWwKaW5kZXggNDIxMjg2ZDUwMDA5ODMzZjU1MGZiODE1MDJkYmRmMjJiNmQz
MTI4OC4uZjJmMzIwMTI2ODBlMDJhZWNjZjUxNjRkNzJlYjBiNzc1ZjVkOGFjMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNo
ZWQtd2l0aC1mcmFtZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hv
dy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxodG1sPgogPGJvZHk+CiBUZXN0IHBhZ2VzaG93L3BhZ2VoaWRlIGV2ZW50IGJlaGF2aW9y
IHdoZW4gbmF2aWdhdGluZyBhd2F5IGZyb20gYSBwYWdlIHdpdGggZnJhbWVzLCBwdXR0aW5nIHRo
ZSBwYWdlIGluIHRoZSBwYWdlIGNhY2hlLCB0aGVuIGJhY2sgdG8gaXQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1j
YWNoZWQuaHRtbAppbmRleCBjZjkyMWJmY2Q4YmYxYzEyOTEwNjcxZGE1ODFmNGQyMjNjOWY4YTJh
Li4wY2JiYWFjNTk1MTYwZDQyOWVlN2U1NWViY2NhODhlYjlhYzhmZmRlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJh
Y2stY2FjaGVkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHA+VGVzdCBwYWdlc2hvdy9wYWdlaGlk
ZSBldmVudCBiZWhhdmlvciB3aGVuIG5hdmlnYXRpbmcgYmFjayB0byBhbiBjYWNoZWQgcGFnZS48
L3A+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3VzcGVuZC10aW1lcnMuaHRtbAppbmRleCAzYzg1ZjQ4MWU0MzY4ZDRmMDMxMzYz
ZmQzOTIxNWM1NDk3NTFlOWQ4Li42ZWE4OTgxZjE0YWZjNjQ0NjZlMmQyYTg4ZjI3NGY2NjVkNThk
ODM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N1c3BlbmQtdGltZXJzLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12
YWx1ZS1kb2VzLW5vdC1jbGVhci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29t
cGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12YWx1ZS1kb2VzLW5vdC1jbGVhci5odG1sCmluZGV4IGIz
ZmRkMmFlODVkYzNkYzU5MTA0MzIyZDAwODI0ZGEzZmE2YWY3MzUuLjQ1NTYwNzEyOGZhOTQ0NGM4
NzY3YjE5YjA3MDk3MWU3N2Y5NGU3NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvYXV0b2NvbXBsZXRlLW9mZi13aXRoLWRlZmF1bHQtdmFsdWUtZG9lcy1ub3QtY2xlYXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2F1dG9jb21wbGV0ZS1vZmYtd2l0aC1kZWZh
dWx0LXZhbHVlLWRvZXMtbm90LWNsZWFyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4K
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9mcmFtZS1jcmFzaC13aXRoLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2ZyYW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCmluZGV4IGEyOTljZjg1
M2YzNzU0YzIzNzg2ZGE3NjQwOTYzMDE0NTcwMjViOGEuLjZkZjBlNDJlMWEzMjA2YmQ3Yzg3ZDhk
YWQ2ODg2NWZjMzUzZDQzNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZyYW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxo
dG1sPgogPHNjcmlwdD4KIHdpbmRvdy5maW5pc2ggPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS11bmxvYWQtbmF2aWdhdGUtYW5kLXNldFRpbWVv
dXQtYXNzZXJ0LWZhaWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXVubG9h
ZC1uYXZpZ2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sCmluZGV4IDM4MzJkNjdk
ZjUzN2ExYzViYmE3Njg4YWNjNTQzZmU5OTk2NTRiODIuLmRlN2ZmZWQ4NTUyMDRmZDA3MTNhMDUy
NmM5OTdlYzQ5ZGM5NzAzMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXVubG9hZC1uYXZpZ2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXVubG9hZC1uYXZpZ2F0ZS1hbmQtc2V0VGlt
ZW91dC1hc3NlcnQtZmFpbC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3BhZ2Ut
aGlkZS1kb2N1bWVudC1vcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9wYWdlLWhp
ZGUtZG9jdW1lbnQtb3Blbi5odG1sCmluZGV4IDk1YzE0YWIzYTVlMGFkZDEyYmQwMjQ0ZTNhMWU1
ZWRiYTdkNjIzMmYuLmM1MDQ5MmFhMjc2MzEyZjc3YjgzZTQ3NmE0ZTFlYzY5NzFmNmRkN2MgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3BhZ2UtaGlkZS1kb2N1bWVudC1vcGVu
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcGFnZS1oaWRlLWRvY3VtZW50LW9w
ZW4uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIFBhc3NlcyBpZiBpdCBk
b2VzIG5vdCBjcmFzaC4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9yZXN0b3JpbmctcGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLXZpYS1zdHls
ZS11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNh
Y2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCmluZGV4IGRi
MWQxNGU4NmQxZjJmZjgxNjFlYWVlMWFjOWQ4ZjA2MjdmYjBjYmEuLmU0YWE1ZTcyYTIyNzViNDMw
YTQ3NjFlZjAyZTVhMmU5NjYzNTMxZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxl
LXVwZGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdl
LWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3Qt
cnVuLXNjcmlwdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdl
LWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMuaHRtbAppbmRleCBjMTQ1YjUwOTViMDE4ODgw
MmMwNTRiMDFmZjhjMDNkM2IwZmJkOWU1Li42NzI1ZTY0ZDA3Zjg4NzFiNjNmY2Q1ODRmZTZkZGUx
ZTI3YWIxMTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0b3Jpbmct
cGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvcmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2NyaXB0cy5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNyYXNoLW9uLWRh
dGEtdXJscy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3BhZ2UtY2FjaGUtY3Jhc2gt
b24tZGF0YS11cmxzLmh0bWwKaW5kZXggMTE4N2M2MGU1M2Y4ZGFkZjg0YTBhMzM1NmU1MTZiNzMw
MWM3MzA4Ni4uMjE5MWVlZDQ4NDkxOGY4ZDViY2UwYjcxMDY4ZWU5MmM1OGMxZjg0NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3BhZ2UtY2FjaGUtY3Jhc2gtb24tZGF0YS11
cmxzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3BhZ2UtY2FjaGUtY3Jhc2gt
b24tZGF0YS11cmxzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8c2NyaXB0Pgogd2lu
ZG93LmZpbmlzaCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGFy
bmVzcy91c2UtcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3VzZS1w
YWdlLWNhY2hlLmh0bWwKaW5kZXggYTAyM2JjYTkxZDNmMTI1YmZlNTBkNjA1MzgxYTE1NGMxZjY4
YWI5NS4uNjA1NDUyMjMyZTcwZTQxNTc4NWVhODU1ZWQyYzc3MzRiNmQwYmUzNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3VzZS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3VzZS1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0t
PgogPGh0bWw+CiA8c2NyaXB0Pgogd2luZG93LmZpbmlzaCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9iYWNrLWZyb20tcGFnZS13aXRoLWZvY3VzZWQt
aWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvYmFjay1mcm9tLXBhZ2Utd2l0
aC1mb2N1c2VkLWlmcmFtZS5odG1sCmluZGV4IDZkM2Y4NGIzNWQ1YzFkOTM2YzdjMWIzOGQxNTVl
ZTNhZmIxMDllOGIuLmU4MGU2MmYyYTgyZmU1NGEwYTYyZWY3Mzk4NGExNDgxNzFkNTYyZmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9iYWNrLWZyb20tcGFnZS13aXRoLWZv
Y3VzZWQtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2JhY2stZnJv
bS1wYWdlLXdpdGgtZm9jdXNlZC1pZnJhbWUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvZ28tYmFjay10by1pZnJhbWUtd2l0aC1wbHVnaW4uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9nby1iYWNrLXRvLWlmcmFtZS13aXRoLXBsdWdpbi5odG1sCmluZGV4IDNjNDRh
ZDUyNjVmZTJjNjgwNjkwNTdmNjVkMjYwMTRmZWIyMjQyYWYuLjVkZGFiODNkYmIzYjcxZDY3Njk3
NmM1Nzg4NWMzNDU5ZDk1ZjVlMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9nby1iYWNrLXRvLWlmcmFtZS13aXRoLXBsdWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9nby1iYWNrLXRvLWlmcmFtZS13aXRoLXBsdWdpbi5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiAgIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvZ28tYmFjay10by1vYmplY3Qtc3ViZnJhbWUuaHRtbApp
bmRleCBmMDhkMDU2MWQwYzRmNWFlMTdjYzgxZTM2MjI2ODQyMjYzNWM2MGRiLi5hZjA4MzViNTU0
MWMxMjZlNjU0OWJhMDZlMWY2YjdjYjE3Y2M5Y2EwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvZ28tYmFjay10by1vYmplY3Qtc3ViZnJhbWUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2hpc3RvcnkvZ28tYmFjay10by1vYmplY3Qtc3ViZnJhbWUuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdoaWxlLXBkZi1pbi1wYWdlY2Fj
aGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2hpbGUtcGRm
LWluLXBhZ2VjYWNoZS5odG1sCmluZGV4IDFiNTgxZmE5MWQ0NWRlNGU2YmY2ZjlmYjFhNzlmMjkz
NjQ1NTlkNmQuLmNmYmMwNjc1YmJiMDNhZWY3YjhkMmM2MDM5ODgyY2UzMTJiNjUzMzAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2hpbGUtcGRmLWlu
LXBhZ2VjYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJh
Y2std2hpbGUtcGRmLWluLXBhZ2VjYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLU1lc3NhZ2VQb3J0LXBlbmRpbmctbWVzc2FnZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtTWVzc2FnZVBvcnQtcGVuZGluZy1tZXNzYWdl
Lmh0bWwKaW5kZXggY2VjZjYwNDBiYWMxZDM5OGFhYjI0MjZlMDJjOGRiMDRlZTM2NTYxZC4uYTA4
NjU4ZTU1YWUzNjQxMGQ4ZWUzMmUxY2Q5NTAxNmMwMzNlY2VjZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtTWVzc2FnZVBvcnQtcGVuZGluZy1tZXNzYWdl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtTWVzc2FnZVBv
cnQtcGVuZGluZy1tZXNzYWdlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtYWZ0ZXItd2luZG93LW9wZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLWFmdGVyLXdpbmRvdy1vcGVuLmh0bWwKaW5kZXggZmNkNWRlNDBkMWZhYjNk
NTBkMDZkMGVkMzQzODUyYWE0ZDVhNjhmOS4uNDg5ZmY4NGMzMTMyNGY5Y2NlZWFmNmE5YTcyNzBi
MzcxNjM0YmE4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtYWZ0ZXItd2luZG93LW9wZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rvcnkv
cGFnZS1jYWNoZS1hZnRlci13aW5kb3ctb3Blbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLWJhY2stbmF2aWdhdGlvbi1jcmFzaC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtYmFjay1uYXZpZ2F0aW9uLWNyYXNoLmh0bWwKaW5k
ZXggMDJmODE3MDhiOWYwYjMyZjQ4NzFmMGE3NzZhYWY2ZDJkZGE0YjMwYi4uYzc4ZDUzNmJmN2E2
YmUxNTVjOTc4YTJlMzBhMjY2OTkxYjdkNzRiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtYmFjay1uYXZpZ2F0aW9uLWNyYXNoLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtYmFjay1uYXZpZ2F0aW9uLWNyYXNoLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmct
ZXhwZWN0ZWQudHh0CmluZGV4IDYyNzlkYTkyNmU4NGQyMjM4NGIyMWQ5MmJkM2IzMmFiZTE0Yjkz
MjguLjhlNzkyNzFiZWUzMjcxZDBkN2VmNmM5M2IyZDY3MTMyNTIyYmI3NGMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5nLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBl
Y3RlZC50eHQKQEAgLTYsOSArNiw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBwYWdlc2hv
dyAtIG5vdCBmcm9tIGNhY2hlCiBwYWdlaGlkZSAtIGVudGVyaW5nIGNhY2hlCiBwYWdlc2hvdyAt
IGZyb20gY2FjaGUKLVBBU1Mgd2luZG93LmludGVybmFscy5wYWdlQ2FjaGVTaXplKCkgPiAwIGlz
IHRydWUKLXdpbmRvdy5pbnRlcm5hbHMuY2xlYXJQYWdlQ2FjaGUoKQotUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLnBhZ2VDYWNoZVNpemUoKSBpcyAwCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYmFja0Zv
cndhcmRDYWNoZVNpemUoKSA+IDAgaXMgdHJ1ZQord2luZG93LmludGVybmFscy5jbGVhckJhY2tG
b3J3YXJkQ2FjaGUoKQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmJhY2tGb3J3YXJkQ2FjaGVTaXpl
KCkgaXMgMAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmcuaHRt
bAppbmRleCA4YWE5NzJhMmM5NTlmZjUxMTAzNTg3YmM5MjI0YTI2Y2U2OGVlODVjLi5kZjhiNDdi
YWUyY2IwOWU3ZWQyNjY4MzFhNDU0MzhiYThiYzQyMTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5nLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpAQCAtMTMsOSArMTMsOSBAQCBpZiAoIXdp
bmRvdy5pbnRlcm5hbHMpCiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLCBmdW5j
dGlvbihldmVudCkgewogICAgIGRlYnVnKCJwYWdlc2hvdyAtICIgKyAoZXZlbnQucGVyc2lzdGVk
ID8gIiIgOiAibm90ICIpICsgImZyb20gY2FjaGUiKTsKICAgICBpZiAoZXZlbnQucGVyc2lzdGVk
KSB7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgid2luZG93LmludGVybmFscy5wYWdlQ2FjaGVTaXpl
KCkgPiAwIik7Ci0gICAgICAgIGV2YWxBbmRMb2coIndpbmRvdy5pbnRlcm5hbHMuY2xlYXJQYWdl
Q2FjaGUoKSIpOwotICAgICAgICBzaG91bGRCZSgid2luZG93LmludGVybmFscy5wYWdlQ2FjaGVT
aXplKCkiLCAiMCIpOworICAgICAgICBzaG91bGRCZVRydWUoIndpbmRvdy5pbnRlcm5hbHMuYmFj
a0ZvcndhcmRDYWNoZVNpemUoKSA+IDAiKTsKKyAgICAgICAgZXZhbEFuZExvZygid2luZG93Lmlu
dGVybmFscy5jbGVhckJhY2tGb3J3YXJkQ2FjaGUoKSIpOworICAgICAgICBzaG91bGRCZSgid2lu
ZG93LmludGVybmFscy5iYWNrRm9yd2FyZENhY2hlU2l6ZSgpIiwgIjAiKTsKICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CiAgICAgfQogfSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29udGV4dC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29udGV4dC5odG1sCmlu
ZGV4IGZmZTViMjk5YTU2YzgyYzIwNmVjZTgzNTM2ZTIzYTQyZmRhN2MwYmMuLmFhYWU1MTBkNTcx
MmYxY2RjODNkNTAzODIwY2Q4YWUyOTRlZmNkN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1hZ2VCaXRt
YXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZUltYWdl
Qml0bWFwLmh0bWwKaW5kZXggOTliNjUxMzY5NmZkNzY5ZGE3ODVlN2NjM2M4NTRkMjgxYzE1MTNl
ZC4uNjk2ZmRkYzY3ZmM5OTZiOGU5NTYxMjhlNzAxMDU1NmVmNWRkNmUyNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1hZ2VCaXRtYXAuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVJbWFnZUJp
dG1hcC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVh
ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0
ZU9iamVjdFVSTC11c2luZy1vcGVuLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwtdXNpbmctb3Blbi1wYW5lbC5odG1sCmluZGV4
IGJmY2MyZTlkYThmOTM2ZTJmZmQ2NWM2YzUwMzY4MWJkNWEwNGJmODEuLmYwZmQ2ZWI3NmQ3MzU1
NjRhNmEyNDNkNjZlZDM5ZDJjZjhkOTFmMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZU9iamVjdFVSTC11c2luZy1vcGVuLXBhbmVsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlT2JqZWN0VVJM
LXVzaW5nLW9wZW4tcGFuZWwuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWNyZWF0ZU9iamVjdFVSTC5odG1sCmluZGV4IGE2MjhjODJhYzMwODM3YTE4MWI2
YTIwNjEyM2QwZTExNDZhNDRhNmYuLjU1NmMxOTUwYzFhODlkYzhhMWU2ZmQyZmQzYmJhYzk2NzJm
MzgxNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNy
ZWF0ZU9iamVjdFVSTC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLWNyZWF0ZU9iamVjdFVSTC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWRlc3Ryb3ktZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLWRlc3Ryb3ktZG9jdW1lbnQuaHRtbAppbmRleCA2ZDFkN2JmNzMyOGExYzZj
MTA0YTQwMjkyNjNlNTQxMmMyYThjYjM1Li45OWQ1ZTUzMTIyNTk3M2Y1NjBkMTg3ZjQ4NTI5M2Vk
NmQwM2Y4MjNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1kZXN0cm95LWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtZGVzdHJveS1kb2N1bWVudC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1lbGVtZW50LXN0
YXRlLWZvY3VzZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWVs
ZW1lbnQtc3RhdGUtZm9jdXNlZC5odG1sCmluZGV4IGZkZWY1ZWY2M2M5YjM1MjRhNmEwMTc0MGE1
NTA2OTM4NzgwYThjYjUuLmZjZDkxZTVmNTZiMWZkOGFmZjk0MTZiZmJlMjVlYTQxMzIwZDAzMzQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWVsZW1lbnQt
c3RhdGUtZm9jdXNlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLWVsZW1lbnQtc3RhdGUtZm9jdXNlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWV4ZWN1dGUtc2NyaXB0LWR1cmluZy1yZXN0b3JlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1leGVjdXRlLXNjcmlwdC1kdXJpbmctcmVz
dG9yZS5odG1sCmluZGV4IDJlMzRmNDk2MmM5NGZjMGVlNmQ4OTY3MGZhNmU1ZTIzZmE3ZDM4NGMu
LmM0N2M3NGViNmRkNTUxNGNmZmQzM2NhNjBkMDkzNDVlY2RkMjg2ZTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWV4ZWN1dGUtc2NyaXB0LWR1cmluZy1y
ZXN0b3JlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZXhl
Y3V0ZS1zY3JpcHQtZHVyaW5nLXJlc3RvcmUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtb25lc2hvdC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLW9uZXNob3Qu
aHRtbAppbmRleCAwY2U0ODAzOGQ1ZWE5ODA3NjRhMDhhY2Q5NTYwNjZjN2FmOWU0YzYyLi44ZGY5
ODA4ZTM0MDc1ZTY4YmY1YjM0Yjk3ODRlZTgxYmE2MDIyNDEyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtb25lc2hvdC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9u
LWFjdGl2ZS1vbmVzaG90Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8
aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS13YXRjaGVyLmh0bWwKaW5kZXgg
OTRjMDc3MmU0ZjgwNDllMzVjN2YyNzA5MWJkMjZjY2Y5NjEyYjhlMC4uMzA5MDVjNjQ2YWY2MDk3
YmYyNjFkZjE0OTdhZDgwZWI2ZDg5NTA0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0
Y2hlci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xv
Y2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2Nh
dGlvbi5odG1sCmluZGV4IDQ4NDZhYjY0NzhmNTQyZGY2Zjc3NzhiNDQ1Yjk4NjMyNDNhMGFkMjQu
LjNkMDY0MTY0NjhmYzUxMWZlYTYxMDI4MTE4YTE0MGJmYzkzZTdmYjMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24uaHRtbApAQCAt
MSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRy
dWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtaWZyYW1lLWpzLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtaWZyYW1lLWpzLXVybC5odG1sCmluZGV4IGNjYzZhNTM5ZDAxMDdjZjUwZTU2
N2JmOGQzNGYxMDJjOWM1YTM0NjUuLjQ1ZWMzYTZjODM2ZDBhYzFjY2ZlOGIwYWNlMTYwY2UyODJi
NTE3OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWlm
cmFtZS1qcy11cmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1pZnJhbWUtanMtdXJsLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8
aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtaW5kZXhlZC1jbG9zZWQtZGIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWluZGV4ZWQtY2xvc2VkLWRiLmh0bWwKaW5kZXggY2MwOTc2MTVmY2MwMWQyMmEy
YjM2MTZiZDE4NmM0MDRjOTg3ODUxMy4uZDA3NDEyMGE0N2EyNWM1ZTM4OTE2MGYzYjE3NTUxYTkz
MWI3NDhjYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
aW5kZXhlZC1jbG9zZWQtZGIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sCmluZGV4IGNhYTc3Y2Jm
YTk2ODc1YWM1ZGZmOWYyYWJjYjNlOTA2N2EwZDY0NTYuLjdkNmJkYjJjMGFmN2NjY2MwNzFmNDMz
YTc0ZTRjMTYxYThiYjA0ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1vcGVuZWQtZGIuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2UtY2xvc2VkLTIuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1jbG9zZWQtMi5o
dG1sCmluZGV4IGQ4ZTNjNGYzMDM1YjNlYTUxNDgzMTZmYTRhYTE0ZTA2YTNlMzZmMzguLmQ1MTYx
Y2NhMTc1NTNhMTRhNzJiOGRiMjQwY2I2YThhM2M2MTZhN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1jbG9zZWQtMi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1jbG9z
ZWQtMi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlh
LXNvdXJjZS1jbG9zZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LW1lZGlhLXNvdXJjZS1jbG9zZWQuaHRtbAppbmRleCA4MThmMDI2NTJkODI4YzM5M2I0OWYwMWI3
MDY2ZTJmMzBiOTJiZTY3Li4yOGE3YzFmNTFhNTAyODQxYmU5ZjE0MTFjODkzMWFiMmFmZTAwZjU2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1z
b3VyY2UtY2xvc2VkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtbWVkaWEtc291cmNlLWNsb3NlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1vcGVuZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1vcGVuZWQuaHRtbAppbmRleCA5NTVhZjk1
YjJmMTkxMzY5OTYxMGVhMjk2YzJkZmExOWNhZTE4ZmUxLi4wYjVmNmFhNTZmYTdlZDFmZjlhOGYw
MjcxNGRmNzNmM2RhODEzNGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rvcnkv
cGFnZS1jYWNoZS1tZWRpYS1zb3VyY2Utb3BlbmVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLW9wZW5lZC5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5hdmlnYXRlLWR1cmluZy1yZXN0b3JlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0ZS1kdXJpbmct
cmVzdG9yZS5odG1sCmluZGV4IDk3OTY3YWUzOGE5ZGY3MzJlZmM3YzFmZWQ4ZGJiN2Y0YTI1Y2I1
YzAuLmY0ODhlNDVhMzBhZTdmNWJiNWJhZGU0MTcyY2ViMzhkYTBhZjFkZGEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5hdmlnYXRlLWR1cmluZy1yZXN0
b3JlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbmF2aWdh
dGUtZHVyaW5nLXJlc3RvcmUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGJvZHk+CkBAIC0xMyw3ICsxMyw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgIHRlc3RSdW5uZXIuY2xlYXJCYWNrRm9yd2FyZExpc3QoKTsKICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBpbnRl
cm5hbHMuY2xlYXJQYWdlQ2FjaGUoKTsKKyAgICBpbnRlcm5hbHMuY2xlYXJCYWNrRm9yd2FyZENh
Y2hlKCk7CiB9CiBzZXNzaW9uU3RvcmFnZS50ZXN0U3RhZ2UgPSAnaW5pdGlhbCc7CiBsZXQgcGVy
c2lzdGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1ub3RpZmljYXRpb24tbm9uLXN1c3BlbmRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tbm9uLXN1c3BlbmRhYmxlLmh0bWwK
aW5kZXggYTYyZTk3YjRjOGNjMmRhOTlhM2JmOGY3ZGNkOGRmZDQ0NWExODVmYS4uNTNkYmFjYjRj
NjdjMjgyOTYzMzdlM2MwNGQ1MzZlZTE5NWY0Yjg4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLW5vbi1zdXNwZW5kYWJsZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1u
b24tc3VzcGVuZGFibGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxo
dG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1zdXNwZW5kYWJsZS5odG1sCmluZGV4IDUxY2Jh
NWQ0YTAxNTBmMzhkNWQyOGNiZjBkZWYxZjA1MjA2OTAzZTYuLjA0YjdiZDZjZjI4YjczMGE0N2Zh
YTE2ZGZiYWE2MWRjNzVmYjI3YWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1zdXNwZW5kYWJsZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1zdXNwZW5kYWJsZS5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXJlbW92ZWQtc291cmNl
LWJ1ZmZlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcmVtb3Zl
ZC1zb3VyY2UtYnVmZmVyLmh0bWwKaW5kZXggMGUyOGFjZjU0YTQ5YjYyYWI2ZGIxOGI1ODFiZjdh
N2FlNmVjNzQ4Yy4uYmExZGM3NDkzNzI1ODllMzJlNTVkMWI5MDYwN2JmNjVlZGQzYmJlNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcmVtb3ZlZC1zb3Vy
Y2UtYnVmZmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
cmVtb3ZlZC1zb3VyY2UtYnVmZmVyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLXJ1bm5pbmctYXVkaW9jb250ZXh0Lmh0bWwKaW5kZXggNzliNTI1
NTZhZjBjNTMzNWEyYTA5MjJhYTRkNDgwMzcyZDBlNDM4NS4uNDllYWNmZDUzOTljMzZiMjVkYmFj
ZTRjODViOWZmNDVkMzg2MTdjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1lcy13aXRoLXByb3Zpc2lv
bmFsLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZy
YW1lcy13aXRoLXByb3Zpc2lvbmFsLWxvYWQuaHRtbAppbmRleCBjYjk0NTFmYmQ5NmQzZGRhOTJj
Y2NlMmJiYzU2MGNkMDYwZGViNzZiLi4zNmQ1MGZkOTI0NzVlOWQ3ZWI5ZWI3OGVkMjNiZjY3MGU3
MDFkMGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1z
dWJmcmFtZXMtd2l0aC1wcm92aXNpb25hbC1sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3ViZnJhbWVzLXdpdGgtcHJvdmlzaW9uYWwtbG9hZC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1c3BlbmRlZC1hdWRp
b2NvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1c3Bl
bmRlZC1hdWRpb2NvbnRleHQuaHRtbAppbmRleCAzMTU0NDAxY2U5MzI0NjBlMWUwNmY2YjY0Zjhm
NmY4YjEwZmY2ZGMzLi4xN2VjYzBhNDk2NDc2N2EwZWRjMWYwNDVhMjRjYzQ0NmM5ODkyYTIzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5kZWQt
YXVkaW9jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtc3VzcGVuZGVkLWF1ZGlvY29udGV4dC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLW5vLXRyYW5zYWN0aW9uLWRiLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1uby10cmFuc2FjdGlv
bi1kYi5odG1sCmluZGV4IGE0ZjU2NTU1MDE3MmExYzE3NDgyN2IzNzg5NDYxZDQ3YmMzZmJhMzEu
LjJkMTQxNDRiMWFiMDRjNTlkOTlkNWM1ZjFlNmNjYmQzZGMwNTQ2NzQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLW5vLXRyYW5zYWN0
aW9uLWRiLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2Vi
ZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRy
YW5zYWN0aW9uLmh0bWwKaW5kZXggMGVhYjIzZGZiODc4ODI1NWM2YjdlNjdkMzliMTUwMjgwZTk0
YTc2My4uNTU5NjNiY2ZmNDQ5Nzc4YTIyZTgxMDdkZjk3OTJjMWYyMjI2YTE3MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGlu
Zy10cmFuc2FjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13aXRoLW9wZW5lci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbAppbmRleCBmOGU0MGU0NmZi
ZjFlZDI3ODc4ZmM3ZmVmZDQwNDY5NjZhM2NhNzQzLi5hMmZiM2JjY2FkNzc1MWVjMDk4Y2U3ZDQy
OTkxNTNlY2Y0YTUyZWU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS13aXRoLW9wZW5lci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLXdpdGgtb3BlbmVyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2VoaWRlLXJlbW92ZS1pZnJhbWUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlaGlkZS1yZW1vdmUtaWZyYW1lLWNyYXNoLmh0bWwKaW5kZXggNWNjNTE0M2ZjZmUw
ZjZlNGJlOTJmMDUzMWY3MjkyMWQzYzllOGYwNi4uODA4NjZkMWYwM2E3OGU2M2ZhYmM5YWE0M2Rh
OWUzOGFmZDhmZGFiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Vo
aWRlLXJlbW92ZS1pZnJhbWUtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZWhpZGUtcmVtb3ZlLWlmcmFtZS1jcmFzaC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJhbWUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0
aC1pZnJhbWUuaHRtbAppbmRleCBmZDYyYmQzODI4NjY2YTg3NmIwZGVlMWNiNGE1ZDMyMmFkYTc3
N2ZiLi40OTQ4MzViOGJkNjRiMjFhOWQ2ZDE2MGIzMjc5MWExZWYzY2Y4MmIwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdp
dGgtaWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9w
YWdlLWNhY2hlLXdpbmRvdy13aXRoLWlmcmFtZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1vcGVuZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1v
cGVuZXIuaHRtbAppbmRleCBiYTYzMDExZjEwMDA0NzA0Y2I1YzNmMTZlNGUyODc4NzE5YjA3NmJi
Li4zY2FmMzZlMGUxZjNjMWUyYzA2ZGYxZGJiZmIyODJhNTU3MjdmY2M1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdpdGgt
b3BlbmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdl
LWNhY2hlLXdpbmRvdy13aXRoLW9wZW5lci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS90aW1lZC1yZWZyZXNoLWluLWNhY2hlZC1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3RpbWVkLXJlZnJlc2gtaW4tY2FjaGVkLWZyYW1lLmh0bWwKaW5kZXggMjQyODAx
NmNhNjZjOTA2N2EzMjAxMjE3ZTZjNGY3ZjBiMjg0MTk0Ny4uMDMzNDFhYzcwNTczZjBjZjkwNDc0
YTZhNjAxYTg1NTY0MzVlODY3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3RpbWVkLXJlZnJlc2gtaW4tY2FjaGVkLWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3RpbWVkLXJlZnJlc2gtaW4tY2FjaGVkLWZyYW1lLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPGJvZHkgb25sb2FkPSJyZWRpcmVjdCgpIj4KIDwhLS0gTmVlZHMgdG8gdGFrZSB0d28g
c2Vjb25kcywgYmVjYXVzZSBhIGZhc3RlciByZWZyZXNoIHdvdWxkIHJlc3VsdCBpbiBub3QgY3Jl
YXRpbmcgYSBiL2YgaXRlbSBmb3IgdGhlIG5hdmlnYXRpb24gLS0+CiA8aWZyYW1lIHNyYz0nZGF0
YTp0ZXh0L2h0bWwsPG1ldGEgaHR0cC1lcXVpdj0iUmVmcmVzaCIgY29udGVudD0iMjsgVVJMPWFi
b3V0OmJsYW5rIj48c2NyaXB0PmlmICh3aW5kb3cudGVzdFJ1bm5lcikgeyB3aW5kb3cub25wYWdl
aGlkZT1mdW5jdGlvbihlKXthbGVydCgmYXBvcztwYWdlaGlkZSAmYXBvczsgKyBlLnBlcnNpc3Rl
ZCl9OyB9PC9zY3JpcHQ+Jz48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aW1hZ2VzL2FuaW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJmY2FjaGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJmY2FjaGUuaHRtbApp
bmRleCA4MjhiY2JhYWViYzQ3OTA5OTA1YmRkODg3YTVjOTJkOTk4NGNkY2UzLi42NGIxNTEwNTli
ZWEyMjI1ZmJjZjFlNDg1NmM2YTJkY2E1YzNiZjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXJlc3RvcmVkLWZyb20tYmZjYWNo
ZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzY3JpcHQ+CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1lcy13aXRoLXVubG9hZC1oYW5kbGVycy1pbi1wYWdlLWNh
Y2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZXMtd2l0aC11bmxvYWQtaGFu
ZGxlcnMtaW4tcGFnZS1jYWNoZS5odG1sCmluZGV4IGI4MWY4NzczYTI4ZTM4ZGU5ZWM1NDJhYTBm
OTZjNjA1ZjJlNTEzN2YuLmEzN2QyN2ViZGRmYjA4MGE4ODY0ZjU2OGI5ZTJlNzY3ZDc3MzFhYTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1lcy13aXRoLXVubG9hZC1o
YW5kbGVycy1pbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
ZnJhbWVzLXdpdGgtdW5sb2FkLWhhbmRsZXJzLWluLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL2ltYWdlLWluLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL2ltYWdlLWluLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA3ZDQzMTAzYjMzMmMxYzNiOWVj
NWZhNWNmMmNlZjEyMDc5MTk0MzNjLi45N2M5YmMwMTE0YWEyNWVkZGY4ZTMzY2U2YzA5N2FkMDc3
MjYwYzg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9pbWFnZS1pbi1wYWdl
LWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW1hZ2UtaW4tcGFnZS1j
YWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVh
ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2lucHV0LWVsZW1lbnQtcGFn
ZS1jYWNoZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVu
dC1wYWdlLWNhY2hlLWNyYXNoLmh0bWwKaW5kZXggYzg2YjI1ODljZGUyNjM5ODUzZWVjMTZjN2Mz
YzMxN2M3ZWUyNDc2My4uN2YxYmZlM2NiYWIyYWVmMDdkMzYxYTczYmZkMjA5NjIyMzQwZmJmYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNh
Y2hlLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVu
dC1wYWdlLWNhY2hlLWNyYXNoLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4K
IDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13
aXRoLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtbmV3LXRhcmdldC1hZnRlci1iYWNrLWZv
cndhcmQtbmF2aWdhdGlvbi5odG1sCmluZGV4IGM1OGM3MjZkMGM5YTM0ZTE4MzZjNjdmYWIyZGMz
MjVjZTI0NjJlYzYuLjEwNDdkMDdkZjlkYzE2MDhiOWNmYTFhMDU2YWQ3NjNjMjQwNDk4ZDggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtbmV3LXRhcmdl
dC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2
aWdhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgt
cG9zdC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1h
ZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sCmluZGV4IDJmYzIzOTU0NDYzOWMxZjE2
YzZmN2RkMDllNzI0ZDU0ZmNmNGI4YzUuLmMyYjcwNTMxMWY1YmY0MTI5NmFlMmVlMGY0ODg4YjQ5
MGNkODE0MzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdp
dGgtcG9zdC10by1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10
YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9zY3JvbGwtcG9zaXRpb24tcmVzdG9yZWQtb24tYmFjay5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRt
bAppbmRleCA3ODBlYzYwNDA5NTU0NjFjNGU2YzA3MWJhYTgzZGU4NTg2NmI1ZTU3Li4xMTMxNGE1
M2YyOGI5ZWVlMzFjMzlkYzE4YmU3MDQwMzkwNmQ2NmI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9zY3JvbGwtcG9zaXRpb24tcmVzdG9yZWQtb24tYmFjay5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Njcm9sbC1wb3NpdGlvbi1yZXN0b3JlZC1vbi1iYWNr
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBh
Z2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8tcG9wc3RhdGUtd2hl
bi1iYWNrLXRvLXN0YXRlbGVzcy1lbnRyeS13aXRoLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9uby1wb3BzdGF0ZS13aGVuLWJhY2stdG8tc3Rh
dGVsZXNzLWVudHJ5LXdpdGgtcGFnZS1jYWNoZS5odG1sCmluZGV4IGJiMDQ2MGIxMTc0ZGIzYjVj
Yzg5MjJlNTEzZDg3NzlmMzVlNDAyMTMuLmYwNDUzODNiNDhiYmQyMjk4YTcyOGI5OGI4ZjRhNmM1
NmI0YzVhNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0
cy9uby1wb3BzdGF0ZS13aGVuLWJhY2stdG8tc3RhdGVsZXNzLWVudHJ5LXdpdGgtcGFnZS1jYWNo
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9uby1wb3Bz
dGF0ZS13aGVuLWJhY2stdG8tc3RhdGVsZXNzLWVudHJ5LXdpdGgtcGFnZS1jYWNoZS5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9
dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wb3BzdGF0ZS1maXJlcy13
aXRoLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0
cy9wb3BzdGF0ZS1maXJlcy13aXRoLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA1NDAzYzFmN2Q5Njhj
NjMzYjVlZjI1MzY0ZmNjODc3YTVmODFkZGExLi44ZTQwMzBjNDE1MmQxMDY2NWU5Y2M5MDc3NWU4
YzE5YzcwMjFjNDRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9i
amVjdHMvcG9wc3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3BvcHN0YXRlLWZpcmVzLXdpdGgtcGFnZS1jYWNo
ZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Vuc2NoZWR1bGUtcmVsYXlvdXQt
YWZ0ZXItdW5sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJl
bGF5b3V0LWFmdGVyLXVubG9hZC5odG1sCmluZGV4IDY5MmM3MDZlYTQ0Yjc5YzQ1YmMyY2YzNzlm
MGMzZDU0MjI1MGUyN2EuLjMxMTBlYWI0MTVlZjkzNjJlYTMxNzk0MmQxNjY2NDExYzAzMDY0NTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Vuc2NoZWR1bGUtcmVsYXlvdXQt
YWZ0ZXItdW5sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvdW5zY2hlZHVs
ZS1yZWxheW91dC1hZnRlci11bmxvYWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxi
b2R5PgogPHByZSBpZD0ibG9nIj48L3ByZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL3dpbmRvdy1wcm9wZXJ0aWVzLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvd2luZG93LXByb3BlcnRpZXMtcmVzdG9yZWQtZnJvbS1w
YWdlLWNhY2hlLmh0bWwKaW5kZXggOTM0MzVhNTE3NTlkNDc4ZTVhMWQwMzU2MTVmNTA1MDQ0MDQx
ZmEwZC4uMzY1MDZlNmNmOGQyNTU5ZTNhM2MxYmU2Y2IwMDkzMDVjMzkyZjc0YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvd2luZG93LXByb3BlcnRpZXMtcmVzdG9yZWQtZnJv
bS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvd2luZG93LXBy
b3BlcnRpZXMtcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBkMmU5M2FhOTYxNTkyYjA5OTM2
NTU5Y2E1MjA0YWNhNTYwNzg2ODA4Li43OGIyODFjZDUzYWNlYjczYzcwYmJkMzM2MGMwNzQ1Yzc3
ZWRjNDZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L292ZXJmbG93L2hvcml6b250YWwtc2Nyb2xsLWFmdGVyLWJhY2suaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3Qvb3ZlcmZsb3cvaG9yaXpvbnRhbC1zY3JvbGwtYWZ0ZXItYmFjay5odG1sCmluZGV4
IDE0YTdkOWIwNDQzMzA5MDU5MTQxOWViNmVhN2FhYjMxMjQ4NzdlOWYuLjcwM2NlNjRmNjQ4N2I4
MWMxOThiZmRjNTBkYzc2YTU5N2I2N2ZiMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
b3ZlcmZsb3cvaG9yaXpvbnRhbC1zY3JvbGwtYWZ0ZXItYmFjay5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvb3ZlcmZsb3cvaG9yaXpvbnRhbC1zY3JvbGwtYWZ0ZXItYmFjay5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDxodG1sPgogPHNjcmlwdD4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvaWZyYW1lLXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvaWZyYW1lLXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sCmlu
ZGV4IGYwMDY1ZmQzNmZhY2NkNTk0MmMwMGRiNWFkMTAzZGFiOGIzZmU0ZmQuLjJiODQ3ZDgyMDIx
MzdhYzI2OTM1ZjFhYTk5ZDZmNTc2YTI3NmEyOGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lmcmFtZS1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pZnJhbWUtc2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1m
b3J3YXJkLWFmdGVyLXBhZ2VzaG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9p
b3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQtYWZ0ZXItcGFnZXNob3cuaHRtbAppbmRleCA1
YTZiZDg5YmFiNGYwOTNhNjg1NDUwZDI4NWNmN2RlMDUwZWQ4ZTlhLi5kNzEzMzJiOGNhN2ZjMTJh
M2U1MTNjNTg5NGU0NzllYjNlNmUxMjc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQtYWZ0ZXItcGFnZXNob3cuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNr
LWZvcndhcmQtYWZ0ZXItcGFnZXNob3cuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUg
aHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9s
bGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC5odG1sCmluZGV4IGUy
Zjk4NjY4NDM1ZTY5NWQzODdlNmYxMzY3MDg5OTJmMmViN2QzOWUuLmMxMTUxOTZlMDZiNzY0YWIx
NWU3ZTI2NDNlMDg2ZTljOGMzMTYwNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9
dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1zY3JvbGwtYmFjay1mb3J3
YXJkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvdG91Y2gtc2Nyb2xsLWJh
Y2stZm9yd2FyZC5odG1sCmluZGV4IDExNjU0NDc1MWYxMmNkOGRiNTY5ZGFiMjJkMDIwZGNkMmUy
MzJhMzAuLjFjZGEyYmVhM2YxYmFkYWZmNmU3YjA2MjNmMTU0MWJjNGU4OTNmYjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1zY3JvbGwtYmFjay1mb3J3
YXJkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9s
bC1iYWNrLWZvcndhcmQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFi
bGVkPXRydWUgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFi
bGVkPXRydWUgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFk
PgogICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJmbG93LXNj
cm9sbGFibGUtYWZ0ZXItYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3Zl
cmZsb3ctc2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwKaW5kZXggMDdlMTM1YTkyMzMxZTJhNWI5
ZDZjOWVkYjNiNzE4MmI5YTQ4NWE3Yi4uMWVkZTY2MTQ2Yzg0ZDA5YjRiZDJhZjkxMWFkMWMyYTYw
ODAzMzc3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcmZsb3ct
c2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvb3ZlcmZsb3ctc2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zY3JvbGxpbmcvcGFnZS1jYWNoZS1iYWNrLW92ZXJmbG93LXNjcm9sbC1yZXN0b3JlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9wYWdlLWNhY2hlLWJhY2stb3ZlcmZsb3ct
c2Nyb2xsLXJlc3RvcmUuaHRtbAppbmRleCA2OTE3NmE3ZTgyMzMyZWJkNjY0YjVjN2U0YTUyNDUy
MWQ2NTZmNmZjLi42ZjdkZjA3NmM5YTBiMTk2MGZjZWI2MmQ0ZmYyNGZmYzI0MmQwYWY4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9wYWdlLWNhY2hlLWJhY2stb3ZlcmZs
b3ctc2Nyb2xsLXJlc3RvcmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9w
YWdlLWNhY2hlLWJhY2stb3ZlcmZsb3ctc2Nyb2xsLXJlc3RvcmUuaHRtbApAQCAtMSw0ICsxLDQg
QEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4K
KzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0g
LS0+CiA8c3R5bGU+CiAjcHVmZmluIHsKICAgICBmb250OiBBaGVtIDEwcHg7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3MvdGV4dC1hdXRvc2l6aW5nLWFm
dGVyLWJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy90ZXh0
LWF1dG9zaXppbmctYWZ0ZXItYmFjay5odG1sCmluZGV4IGU2MjFjODg1MGQyNmVkZWU4OTI3Mjc1
ZGM4YzhlMTQ2Yzc4OGNhMDcuLmVmZWVlNWZmMWQ5NWQ5NDVkNjgyZDMzMDM5N2NiYzk5YThmNjVj
ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy90ZXh0
LWF1dG9zaXppbmctYWZ0ZXItYmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL2lvcy90ZXh0LWF1dG9zaXppbmctYWZ0ZXItYmFjay5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiAKIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy92aWV3cG9ydC1zaHJpbmstdG8tZml0
LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy92
aWV3cG9ydC1zaHJpbmstdG8tZml0LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWwKaW5kZXggOWJiM2Q5
YTg1MGI2M2YwMWM3YjE2NTBhMzZlNGEwZjZlMjU0Yzk4MC4uZDgxMzdiYTQ3YThhMjRmNTY0Mzc5
N2RiOWZlMjUyYzc5ZWU2NzkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9y
dC9pb3Mvdmlld3BvcnQtc2hyaW5rLXRvLWZpdC1vbi1uZXctbmF2aWdhdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvaW9zL3ZpZXdwb3J0LXNocmluay10by1maXQtb24t
bmV3LW5hdmlnYXRpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIHNob3VsZElnbm9yZU1ldGFWaWV3cG9ydD10cnVlIGVuYWJs
ZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQ9dHJ1ZSBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIAogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvdmlld3BvcnQvdmlld3BvcnQtMTI4Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdw
b3J0L3ZpZXdwb3J0LTEyOC5odG1sCmluZGV4IDNmZWIwMGQ5YTllN2Q5MDZlYmE5YzgwOWZjYjcx
ZmMzZmNhNWY5MGYuLjQ2ZTgzODIwMWY4NTg5YTQ2ZWMzMDkwNjg0NmM2ZjQ3OWUwOTY1MjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvdmlld3BvcnQtMTI4Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8aHRtbD4KICAgICA8aGVhZD4KICAgICAgICAgPHRpdGxlPlZpZXdwb3J0IG1ldGEg
ZGF0YSBzdG9yZWQgaW4gcGFnZSBjYWNoZS48L3RpdGxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAzNTQyYzM2OTZkM2QzMGQ5YzM1
ZTA5MDQ3ZDk2ZTEzM2NjMmNlZDdjLi4xNDE2MzFlZjYyYzU2Nzc0NGQ5YTg1NzhlNWNlOGRhNGFk
MDdjNGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2Ut
Y2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2Fj
aGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1p
bWFnZS1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc3BsYXktaW1h
Z2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1pbWFnZS1sb2FkLmh0bWwKaW5kZXggZmY1ODE1ZTg5N2Mx
N2VmMWZhZjU4ODk0YWVhNDE4ZTJlZDY1NzgzZi4uNDcyODIyMmMwNjEzYzBkMjIwYmNjMTE1NmVm
ZjQ4ZTJiODE1ODk4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9k
aXNwbGF5LWltYWdlLXVuc2V0LWFsbG93cy1jYWNoZWQtaW1hZ2UtbG9hZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzcGxheS1pbWFnZS11bnNldC1hbGxvd3MtY2Fj
aGVkLWltYWdlLWxvYWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHNj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZl
bnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0ZWQuaHRtbAppbmRl
eCBjNjY5ZjJjMDBhMjE4Y2YwYzgwMjRiMjk1NWU2NTcwNTY5OGRiNmRkLi4yMDVkOWMwMTNjNzhk
Y2RjZWVlMzlmYmRiYjA2ZjM2NWEwNDZjZDNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGVkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdl
LWNhY2hlLWNvbm5lY3RlZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRz
b3VyY2UvZXZlbnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0aW5nLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGlu
Zy5odG1sCmluZGV4IGIwNWU0NzRiOTk3YmE2MzAxMjhiZTY5YzA1ZTE5YmRmODM3MzljNTUuLmVk
NmZhOTcyYzE4ZTQyNWQ4NWM4Nzk0NDhhNjQ0OWQxOWVmZTYyNTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtcGFnZS1jYWNoZS1jb25u
ZWN0aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVu
dHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5lY3RpbmcuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2xvYWRpbmcvbWFpbi1yZXNvdXJjZS1kZWxlZ2F0ZXMtb24tYmFjay1uYXZpZ2F0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvbWFpbi1yZXNvdXJjZS1kZWxl
Z2F0ZXMtb24tYmFjay1uYXZpZ2F0aW9uLmh0bWwKaW5kZXggMDQ5NDg3NTliYzk5NGFlMzJhNjFm
YTliMjRkNmQwMGQ2NTE0Yzg5Yi4uZjFlMWY4ZDlhYThjYjE3M2VkZTgyMDAyZWZhMTdiYTE1ZDE0
YTJiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL21haW4tcmVz
b3VyY2UtZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbG9hZGluZy9tYWluLXJlc291cmNlLWRlbGVnYXRlcy1vbi1iYWNrLW5hdmln
YXRpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hl
ZC1sb2FkLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hlZC1sb2FkLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2Fs
bGJhY2tzLmh0bWwKaW5kZXggY2E1Nzg4ZTA3ODMwMzY0NGRhOGZjMDE4YzNmZjZlZTg4MzBiYzMz
Mi4uOTRjZmY3YWE5ZjVkZmM0OTUyODU5MTBmYmRkZjQxZjQ2MDg5NDFhZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQtbG9hZC1iYWNrLXRvLWNh
Y2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9h
ZGluZy91bmZpbmlzaGVkLWxvYWQtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0PgogCiB3aW5kb3cub25wYWdlc2hvdyA9IGZ1bmN0aW9u
KGV2dCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmlu
aXNoZWQtbWFpbi1yZXNvdXJjZS1iYWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQtbWFpbi1yZXNvdXJjZS1i
YWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sCmluZGV4IGYyYWM2NmFkMWY2OTBlNDEy
NjE3MDgxYmYzNTU3NzUyYjE2YjQ2ZjQuLmQ4OTY1ODA3NDEzOTJkNjc4ZGRjMTU5MmU0YjkyNTc5
NTUyMTJkNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91bmZp
bmlzaGVkLW1haW4tcmVzb3VyY2UtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hlZC1tYWluLXJlc291
cmNlLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PHNjcmlwdD4KIAogd2luZG93Lm9ucGFnZXNob3cgPSBmdW5jdGlvbihldnQpIHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWwK
aW5kZXggM2ZlNjgwMGM4OGNlMDllZDkyOTEwNzZhZjViMDQyMTRlNDE0YWQ4MS4uYTA3YTAzYjM3
Mjk4NjJmNGJhYmMzOWIwYTc3Yzk3NTM3ZjJjMGVjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KICAgICA8aGVhZD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVycm9yLXBhZ2UuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVycm9yLXBh
Z2UuaHRtbAppbmRleCAxOGJkMTM5ZGEwZWZkNTcxNWZjZjFmNDVhNjhhNTc1OWE4ZjgzNGM3Li4x
ZWZmYzY4OGQ3NTkxNTUwYzVjOTE5MWRlMTczODI4MzRlYjViOWNjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZ28tYmFjay10by1lcnJvci1wYWdlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3It
cGFnZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtaW4tcGFnZS1jYWNoZS5odG1sCmlu
ZGV4IGVlZTliMjY4N2MzYmZjYWYwZDI0ZDRmOTY0ZTkyN2JjN2YwYTlhZGMuLjNmMDk4Njc1NmJm
YWQ5M2JlY2FhYTRmMzVmNmI0MzZiNzIwOWU3MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBhZ2UtY2FjaGUuaHRtbApAQCAt
MSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRy
dWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+CiA8c2NyaXB0PgogCiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1uby1zdG9yZS1z
dWJmcmFtZS1pbi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vaHR0cHMtbm8tc3RvcmUtc3ViZnJhbWUtaW4tcGFnZS1jYWNoZS5odG1sCmluZGV4IDk4
MGYyMGI2MDY3OTUwMWE0NDQzMjhkNTgwNzRlNTBjMjIzZjIwOWUuLjIzZDU4M2QwYzk1MWQ0Mjcy
YWZmMjM3NjdkZDE3MTI2N2NhNmE5ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9odHRwcy1uby1zdG9yZS1zdWJmcmFtZS1pbi1wYWdlLWNhY2hlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1
YmZyYW1lLWluLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0PgogCiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9pbWFnZS1sb2FkLWluLXBhZ2VoaWRlLWhhbmRsZXIuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9pbWFnZS1sb2FkLWluLXBhZ2VoaWRlLWhhbmRs
ZXIuaHRtbAppbmRleCBmMDk4ZjE0MGM5Y2Q2NTk0ZDA3NTkyZTdhMzZjOWVlZDliN2IyYWE5Li45
MDNmOTMzYjI1MzdmMjM3NWU1YjcyZDkwYzUwMDZhOWIwMTkyOGE2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi1wYWdlaGlkZS1oYW5k
bGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ltYWdlLWxv
YWQtaW4tcGFnZWhpZGUtaGFuZGxlci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPjxoZWFk
PgogPHRpdGxlPkltYWdlIGxvYWQgaW4gcGFnZWhpZGUgaGFuZGxlcjwvdGl0bGU+CiA8c2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2UuaHRtbAppbmRl
eCBkYmU3NjVkZmJhMGJlNTNhNTJhNTYxMDA4ZDYxYzZjYzM4NmZiY2VjLi43NWViZmNlOTcxMzMy
YzVkMDNiNzNhYmY4NTA4Mzc1MDdlYzEwYmE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZS1wZW5kaW5nLXByb21pc2UuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21j
YWNoZS1wZW5kaW5nLXByb21pc2UuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRt
bD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZXN0b3JhZ2UtcGVuZGluZy1wcm9taXNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZXN0
b3JhZ2UtcGVuZGluZy1wcm9taXNlLmh0bWwKaW5kZXggZDA1ZTVlMDkyMDUyZGRmNzNmZjRmZjAx
NzVlOThlMWJkOTBhMmIxMy4uYzIyM2RkOTYyZWZkMDI5ZWUyZjQxNDI0YzhiYjZhOTI2MWVjNGIy
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUtZG9tY2FjaGVzdG9yYWdlLXBlbmRpbmctcHJvbWlzZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlc3RvcmFnZS1wZW5kaW5n
LXByb21pc2UuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1mYWlsZWQteGhyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcGFnZS1jYWNoZS1mYWlsZWQteGhyLmh0bWwKaW5kZXggNzJkMGJjOTc2YzA3YjViNDVhNDAy
NzcwZGQ2NTBlMWM3ZWM5NDg3MS4uN2M5MTAzMzJiNTNhOGVlZDY4ZWM3NGJiZjY4MzE3MjFkYTdm
Y2U0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2Ut
Y2FjaGUtZmFpbGVkLXhoci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLWZhaWxlZC14aHIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1mb250ZmFjZXNldC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbAppbmRleCBl
ZjlmNWMzMjM4NjNjY2U4NDg3MmU3MmJjNmYwYzNlYTZkMGZhOGMwLi41ZDYyNDQ1ZmFiNzlhOWM4
MTUwMDc3ZGM2YWI4ZmE3ZDc5YmM1Yjc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1mb250ZmFjZXNldC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWZvbnRmYWNlc2V0Lmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZnJhZ21lbnQt
cmVmZXJyZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLWZyYWdtZW50LXJlZmVycmVyLmh0bWwKaW5kZXggMDI2N2U1ZGZiMzNjNTY0ODQzZGM2MDAy
NTMyYzM3NmE3ZjQ1MjlmZC4uM2RkNTA3ZGIwODRhZGY4MmUxNTY0NmYyODYzYWJjYmZkODBjNDQ2
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUtZnJhZ21lbnQtcmVmZXJyZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1mcmFnbWVudC1yZWZlcnJlci5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1uby1jdXJyZW50LWhp
c3RvcnlJdGVtLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS1pZnJhbWUtbm8tY3VycmVudC1oaXN0b3J5SXRlbS5odG1sCmluZGV4IGJjODg3NjQ2MGNj
YTMyZTExMjgzNzNkOWM4ZTQ0YWRiY2I5OWQ5Y2YuLjUxZjI0OTVlOGRmMmM5YjdmMDY3M2JiYTZh
OGNhYmUyZDViZDMxZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1uby1jdXJyZW50LWhpc3RvcnlJdGVtLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLW5vLWN1
cnJlbnQtaGlzdG9yeUl0ZW0uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0ZXMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFt
ZS1wcm92aXNpb25hbC1sb2FkLWFzeW5jLWRlbGVnYXRlcy5odG1sCmluZGV4IDAzOGYwOGEyOTQ1
N2E5NmIzYWVjMzU3Nzg2OTk1OGIyZTc4ZTNmMzUuLmQxNGMzMzcyMjBhM2NkN2VmYWYxMzc4N2Ew
YWYxMGFhOTU1MzUzYjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1wcm92aXNpb25hbC1sb2FkLWFzeW5jLWRlbGVnYXRlcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlm
cmFtZS1wcm92aXNpb25hbC1sb2FkLWFzeW5jLWRlbGVnYXRlcy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1wcm92aXNpb25hbC1s
b2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1p
ZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC5odG1sCmluZGV4IDAxZjYzYmRhODQ0MjczYTUwNjE0MWYy
MmQwMDFkYjUxMjQ5OGI2Y2QuLjE4NWVlZGFhNWNmOTYxYmYwYjhlODBkZjhmMjYxODgwMTM4Yzcy
MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLWlmcmFtZS1wcm92aXNpb25hbC1sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxvYWQuaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5n
LWltYWdlLWxvYWQtY2FjaGUtcGFydGl0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQtY2FjaGUtcGFydGl0aW9u
Lmh0bWwKaW5kZXggNDgwYjFjYmY2NTdlZDgzZmNmNWQ1YTEzNGY3OGNmOWExYjM1OTk1Ny4uZmNj
NDdhYzVlYTFjOGIwYjQ5YTFmM2FiM2ZjYTk2OGI0ZDM2NmEyMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1pbWFnZS1sb2Fk
LWNhY2hlLXBhcnRpdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9hZC1jYWNoZS1wYXJ0aXRpb24uaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5n
LWltYWdlLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9hZC5odG1sCmluZGV4IDQ1N2UyMTczZTVlNjJiZmFjZGVl
ZDVlZTkwODliNzY0MzVmM2M5MWMuLjZkZjk0NmQ2NDZjMjYwYjQzZmM0NWU1ZTNlZjdjNjgyMWY1
ZDMwZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9hZC5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctbG9hZC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGlu
Zy1sb2FkLmh0bWwKaW5kZXggNDU5NTM3NWQyMTc3ZjM1ZjIwZGFjNGM5Y2RkNGU4ODczZDdiZTAy
ZC4uMTc2ZjFiODJiMzc0YzQ3MjYyYWQ1ZDQ0MzUzNjM3YzBiMmNkZmYwNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1sb2Fk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUt
cGVuZGluZy1sb2FkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtY3Jvc3Mtb3JpZ2luLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1j
cm9zcy1vcmlnaW4uaHRtbAppbmRleCAxM2IwZjkyY2E5NzVjZDFlZDQ0MzYzNTA2YmVmMjAwMzIz
OWI1MWRjLi41MjQ5MGU0Y2Y4YjMwNjQwMDNlMTU3NzUyMGIzMDNmN2U4MGIyMmNlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5n
LXBpbmctbG9hZC1jcm9zcy1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1jcm9zcy1vcmlnaW4uaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4K
IDxib2R5PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtc2FtZS1v
cmlnaW4uaHRtbAppbmRleCAwNTdmYzg5OTZhZmM0MWI3MmMzNzI2OWE5MDU3YjI2MDdkMjY1Mjhk
Li5lYjg1NzUyNmU3ZTM5Yzk3NGNiM2IwNjczYTFhNWZiMDBiYTNkNGJkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmct
bG9hZC1zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLXNhbWUtb3JpZ2luLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcmVxdWVzdEFuaW1h
dGlvbkZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuaHRtbAppbmRleCA2MWNhZjA3ZmZhY2VmMGVjNjRi
NmRlNjk4ODM2YTJiNmIwZTBjMzhmLi42OTlmMGJiYmRmZjM5NTZkMjEzYmY3ZmMyZGQyNDE1YzYz
ODYwN2ZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4t
cGFnZWhpZGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLXhoci1pbi1wYWdlaGlkZS5odG1sCmluZGV4IDBiMTEzMDFkNzZkZWJhZTQxNTM3YTEyMWUx
ZTUwNzNmNDdiOWQ5NWQuLmEyZjFmNGNhZGZjZWFjZWQ4Yjc3MTFkMGI5MmVkZjE3NGFmMWFhMTMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hl
LXhoci1pbi1wYWdlaGlkZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXhoci1pbi1wYWdlaGlkZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhyLmh0bWwKaW5kZXggNTIyZDc4NzE2Mjcz
N2QwZGNjMmI0YzkyYTQ0MGJhMDNmMDE2ZDIwZi4uMzczYjU1ZDYzMjEwZmE0ZGRkMThhZGEwNGE2
ODdjYzdmOWY4MjJkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3BhZ2UtY2FjaGUteGhyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUteGhyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3Jlc291cmNlcy9odHRwcy1pbi1wYWdlLWNhY2hlLTMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1jYWNoZS0z
Lmh0bWwKaW5kZXggN2RmZmYyOGI3NzFmYjBjMDI2ZWQzZWZjNjNlYjRiNDM0ZGYwMWFkOC4uZTgx
YTA1Mzc4NDNhNjBiYzUzZTFhMDUxMDUxMWMwM2I4YmNmMGRhYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9odHRwcy1pbi1wYWdlLWNhY2hl
LTMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2Vz
L2h0dHBzLWluLXBhZ2UtY2FjaGUtMy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzY3JpcHQ+CiB3
aW5kb3cub25wYWdlc2hvdyA9IGZ1bmN0aW9uKGV2dCkgewogCWlmICghZXZ0LnBlcnNpc3RlZCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWJmcmFtZS1w
YWdlaGlkZS1oYW5kbGVyLXN0YXJ0cy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZC5odG1sCmlu
ZGV4IGEzNDRlMjY3MTUyODg4YWU5YWE5YmE0OWQxMDk3M2E5NmY5YjFjYjQuLmIxMmIxYTI2YjI4
ZTQwZTMyMDM5OWEyNjA4YTJkOGNkYjBmN2M2N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWJmcmFtZS1wYWdlaGlkZS1oYW5kbGVyLXN0YXJ0cy1sb2Fk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBh
Z2VoaWRlLWhhbmRsZXItc3RhcnRzLWxvYWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRs
ZXItc3RhcnRzLWxvYWQyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
c3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZDIuaHRtbAppbmRleCBjM2MzNzU1
NWIzYzA1NDUyNTIxODA3OWM4NjQwMTM0MTM3ZWI0NGU0Li42NjY0NzVjZjVhOGY4YTNjYTFmZmVk
MWIxMmE5OWI4NjFmMGZhMDg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZDIuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFu
ZGxlci1zdGFydHMtbG9hZDIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9wZW4taW5zZXJ0LXNj
cmlwdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d2luZG93LW9wZW4taW5zZXJ0LXNjcmlwdC5odG1sCmluZGV4IDExNjRiNzUwOTRkMTRiNGFiZjEy
ZWMwOGE3Y2MyOWZmYWIyYjVjZjMuLmFhMDdiMWY0ZWI5Mjk5YzUxZTI5NDUzNDRiMGViMWRkYTdm
ZjY1OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLXdpbmRvdy1vcGVuLWluc2VydC1zY3JpcHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQtc2NyaXB0
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBh
Z2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdpbmRvdy1vcGVuLWphdmFzY3JpcHQtdXJsLmh0bWwKaW5k
ZXggMjY2YmE5Y2U5Y2IwMzM3MDUwOGYxN2YxMWIwYzk0ZWQ4NzhhYzdkZC4uYTZiZDQ0MjdjNGE2
YjNjM2Y4NTk2N2Y4MjI3MTY5ZTkxYzQ5NTc1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13
aW5kb3ctb3Blbi1qYXZhc2NyaXB0LXVybC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVkLXBhZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2Fj
aGVkLXBhZ2UuaHRtbAppbmRleCBiMTFhNGZhOTk2ODkxYzBlNjMxYjgwYTVjMWM3ODFmYjc2NDQ5
OTE3Li4wNjQ4M2NhMGYyYjQ2NGJiYTQ4OTY4MDJiMjJmYmY5YmU3ODQ1ZWE0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5n
LWNhY2hlZC1wYWdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9u
YXZpZ2F0ZS13aGVuLXJlc3RvcmluZy1jYWNoZWQtcGFnZS5odG1sCkBAIC0xLDQgKzEsNCBAQAot
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4K
IDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jbGljay1hbmQtZm9ybS1zdWJtaXNzaW9u
LWZyb20taW5hY3RpdmUtZG9td2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzcy1ERU5JRUQtY2xpY2stYW5kLWZvcm0tc3VibWlzc2lvbi1mcm9tLWluYWN0aXZl
LWRvbXdpbmRvdy5odG1sCmluZGV4IDEzMzE0ZTYxNzVhMTlhYzg2NDVhMDRhMzY2YjBlNGM0ZTQw
NTBlNTEuLmZlNDYzNGQxM2FlNWQyYmUwYzJjODJjZTQwZDFhMjI0NTcwZjg0ZGEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jbGljay1hbmQt
Zm9ybS1zdWJtaXNzaW9uLWZyb20taW5hY3RpdmUtZG9td2luZG93Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1p
c3Npb24tZnJvbS1pbmFjdGl2ZS1kb213aW5kb3cuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdp
bmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNj
cmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cuaHRtbAppbmRleCAyOTYxOTc2NTA0MWZm
NWEzZjk2ZTg2NDUwYjEwMDk1YzcxOTZmZjcxLi40ZDBiYmE5OTA3OTA0NzA2Njk0NDM3ODA4Yzhi
NmM5ZmE4MGQ1NDFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0
LWludG8taW5hY3RpdmUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLXBz
b24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3Jp
cHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi1wc29uLmh0bWwKaW5kZXggNmEzYmQxODM3
NTk1MmQ3MTQwZWVmY2ExOGIzMmYwZjVkYTE3MzkwMC4uOWM5Mjg1NjgzY2JkYzY3Yzg0YjU0Y2Mz
YmY5OGMxZWU0NWJkNDQ5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLXBzb24u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2Ny
aXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzItcHNvbi5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbj10cnVlIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVByb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uPXRydWUgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxo
ZWFkPgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3Qt
aW50by1pbmFjdGl2ZS13aW5kb3cyLmh0bWwKaW5kZXggODRiYzViZTk4M2ZlMGI2M2M2NWViNWNh
MGFjNmM5MGVmODY0NzY4OS4uMzFjYTg2NDkwYWVjM2ZlNzA4Mjg3NTVlMmQxOGEyOTA0YzEzZjNk
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVE
LXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFj
dGl2ZS13aW5kb3cyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3czLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRv
LWluYWN0aXZlLXdpbmRvdzMuaHRtbAppbmRleCA4ZDZiZjJjMzJkMTNlMzBjYWZiMjBmZThiZTI0
YjdkMTE0ZjQ3OGQwLi4zZTFmYWU3YzdkZDk1ZTIzMDlmMDFiMjA2YWRiYzNiOTA0Nzk4ODNkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2Ny
aXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZl
LXdpbmRvdzMuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2Nsb3NlZC13aGVuLWVudGVyaW5nLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXdoZW4tZW50ZXJpbmctcGFn
ZS1jYWNoZS5odG1sCmluZGV4IDRlNzE0M2I1ZjhlZTBhMmExMWQ0YmMwYjlkOGYzOGVlNDQ4ZGRm
N2UuLmU2ODQyNDcyYTliYjdmYmU2MzE2Nzg1NTk5OWExOTFhMmJlMGQ5ZGUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXdoZW4t
ZW50ZXJpbmctcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXdoZW4tZW50ZXJpbmctcGFnZS1jYWNoZS5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9
dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc3RvcC1vbi1y
ZXN1bWUtaW4tZXJyb3ItaGFuZGxlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9zdG9wLW9uLXJlc3VtZS1pbi1lcnJvci1oYW5kbGVyLmh0bWwKaW5k
ZXggNGFjMjBjMDAzZTU1YjdjMzdiNGVlZmZlYjY2YjQwZjg2OTNmY2Y0MS4uMjYwNjc4MGY2MTgx
ZDYzMDAxZWNmNDM0YWU5ZTQxY2MwMzk1NWU3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zdG9wLW9uLXJlc3VtZS1pbi1lcnJvci1oYW5k
bGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9zdG9wLW9uLXJlc3VtZS1pbi1lcnJvci1oYW5kbGVyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1y
ZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1w
YWdlLWNhY2hlLmh0bWwKaW5kZXggNWJiMGJlZTFmODE5ZjgxYjE3YWZmYzkxZjNmN2ExZDU0YzFm
M2Y5ZC4uNWQ1ODUzZTNhNDYwMjYyN2U2MTNjOWYwZTQwZjEyZWY2YjAwMDZlZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRv
LWNsaWVudHMtd2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13
aGVuLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVkLWZyb20tY2xpZW50cy13aGlsZS1p
bi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sCmlu
ZGV4IGJlYzExZWE5MTE4ODFlOGFlYzBlNzA2ZDgwNGI1OWRlODNiNWJjNmUuLmMyMmViNGI0ZmJj
ZmI3Y2Q1YmY3MzQ2MmI3NGIxZDZlZmQ2YzQ4NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVkLWZyb20tY2xpZW50cy13aGls
ZS1pbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvY2xpZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUu
aHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFn
ZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9wYWdlLWNh
Y2hlLXNlcnZpY2Utd29ya2VyLXBlbmRpbmctcHJvbWlzZS5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNoZS1zZXJ2aWNlLXdvcmtlci1w
ZW5kaW5nLXByb21pc2UuaHR0cHMuaHRtbAppbmRleCAwOWYwNTY4M2Y3YTlhYzc1Y2VjYmVkMWVl
ZmE3M2NiODhhNzIwNzUxLi42ZGI1ZDMwMGZiOTNkYTYzMmJjOTMzNWE0YWJlNjc5YzRlZWY1ODJh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9wYWdl
LWNhY2hlLXNlcnZpY2Utd29ya2VyLXBlbmRpbmctcHJvbWlzZS5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13
b3JrZXItcGVuZGluZy1wcm9taXNlLmh0dHBzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NU
WVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9wYWdlLWNhY2hpbmcuaHRtbAppbmRleCA0ZjI2YWY5MjRl
MjNlYWNhOGRjM2UzNmYyZWRlOWE2NWNiNjMzMjdiLi41MTFlZjg1YmExZTYxYWE1MzkzM2I5Y2Y2
MDc0ZDIzY2NmZGIyZDBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9wYWdlLWNhY2hpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9wYWdlLWNhY2hpbmcuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9iZWFjb24vc3VwcG9ydC9zZW5kQmVhY29uLW9ucGFnZWhpZGUtd2luZG93Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vc3VwcG9ydC9zZW5kQmVhY29uLW9ucGFnZWhpZGUt
d2luZG93Lmh0bWwKaW5kZXggY2JlMTk1MDljNTZkZGRhYzA0NmY2ZGE3NWQ0NDBlYTlmNWU1ZDJj
OC4uYTM3OGE1NDhlZjMzMjdiMjkyMzgwNTJmNGNiYTYzOWU2YmM1OGZlMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJlYWNvbi1vbnBhZ2VoaWRl
LXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9zdXBwb3J0L3Nl
bmRCZWFjb24tb25wYWdlaGlkZS13aW5kb3cuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sZWdhY3kt
YW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9sZWdhY3ktYW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL3Jlc3VtZS1h
ZnRlci1wYWdlLWNhY2hlLmh0bWwKaW5kZXggZGVkMzg3NTZmMWU3MDFjNjI3MjRmZGU3MWI4OGI0
MTE1MjM2N2Q5Ny4uYjExYzBlYTVkODEwOWI4YWE1MTRhMmRhM2M2OWU4YTA5OTRkMzJmZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvbGVnYWN5LWFuaW1hdGlvbi1lbmdpbmUvYW5pbWF0aW9ucy9y
ZXN1bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2xlZ2FjeS1hbmlt
YXRpb24tZW5naW5lL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbApAQCAt
MSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOldlYkFu
aW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQ9ZmFsc2UgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOldlYkFuaW1hdGlv
bnNDU1NJbnRlZ3JhdGlvbkVuYWJsZWQ9ZmFsc2UgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8c3R5bGU+CiBALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsKICAgICBmcm9tIHsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xvYWRlci9nby1iYWNrLWNhY2hlZC1tYWluLXJlc291
cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJj
ZS5odG1sCmluZGV4IDk4NGY2NDA2YTkwNjMyY2YwODY0MTAyNTgwMzk1N2EzYzg1M2JmZGIuLjM1
NTVlY2MxOGRjNmNhZTE5OTVjMDg1ZTI5YzBlYWEwYzlhOTMzNDcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2xvYWRlci9nby1iYWNrLWNhY2hlZC1tYWluLXJlc291cmNlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogICAgIDx0aXRsZT5UZXN0IHJlc291cmNlIGxvYWQg
Y2FsbGJhY2tzIGdvaW5nIGJhY2sgdG8gYSBjYWNoZWQgbWFpbiByZXNvdXJjZTwvdGl0bGU+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93
LXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2xvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5k
b3ctc2l6ZS5odG1sCmluZGV4IDU4NDNlN2Y1OGIxZjg2MGFjN2ZlNmQ4MGRlZjA1Yzk5Yzk4NTkz
MzMuLjAxNjJiYWE4ZjliNGUyMDc2ZjQ5Yjk1NmRjZjBhODBiYzA0YzBkNTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2xvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2xvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6
ZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPHNjcmlwdD4KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvY3Jhc2gtY2xvc2luZy1wYWdlLXdpdGgtbWVkaWEtYXMtcGx1Z2lu
LWZhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9jcmFzaC1jbG9zaW5nLXBhZ2Utd2l0
aC1tZWRpYS1hcy1wbHVnaW4tZmFsbGJhY2suaHRtbAppbmRleCA4MTk1OTFlZGJlNTMwMjRmZDAy
OTNiNDI0MzVkYmIyYTI4ZTE2MTI2Li42ODRhMTQyNGJjNzJjMmEzZmNhNzQxNWJlYzc0NDk3Zjcw
ZWNmMWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9jcmFzaC1jbG9zaW5nLXBhZ2Ut
d2l0aC1tZWRpYS1hcy1wbHVnaW4tZmFsbGJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9jcmFzaC1jbG9zaW5nLXBhZ2Utd2l0aC1tZWRpYS1hcy1wbHVnaW4tZmFsbGJhY2suaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0PgogdmFyIGNoaWxkV2luZG93OwogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXBh
Z2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtcGFnZS1jYWNoZS5odG1sCmluZGV4IDAxMmNlNGFjZDE4MDkzMTBjZTNkMWRiZGZkZGQyM2Y4
M2ExZWFmZjMuLmM4ZGMzNmY2NjI0NzU0OTM4MmNjMmUyZDg0NmM0MmFmMzZkNjExMzUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1j
YWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Jlc3RvcmUtZnJvbS1w
YWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0b3JlLWZyb20tcGFnZS1jYWNo
ZS5odG1sCmluZGV4IGU5NTA1MTgzMmI2MmI1NmQ1OWE0ZDQ5NmZkOTQwOTQ4NjE4ZWMzODIuLjFh
ZDI1NzFhMTU3MmI4ZGU0ZjY2ZTY4NzE1OTQwZmMzMGJmNGQ1ODUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL21lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvcmVzdG9yZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
aHRtbD4KICAgICA8aGVhZD4KICAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZml4ZWQvZml4
ZWQtYmFjay1mb3J3YXJkLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2ZpeGVk
L2ZpeGVkLWJhY2stZm9yd2FyZC5odG1sCmluZGV4IGQwNjQwNDMzZDBiNmQxOTAwMTdlYWZlMDUw
MWVkYWZlOGZlYWNhZGUuLjM1NjFlZWUyYjdmZWQ5NDk3YzBlZTZhZDZjMDg1YWIwZmQ5MDUxMGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZml4ZWQvZml4ZWQtYmFj
ay1mb3J3YXJkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9maXhlZC9m
aXhlZC1iYWNrLWZvcndhcmQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2NyYXNoLXJl
c3RvcmluZy1wbHVnaW4tcGFnZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3Bs
dWdpbnMvY3Jhc2gtcmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1sCmlu
ZGV4IDZmODg0ZjM1NmM4NzAwNjc2NDBmMDE0MmM4ZTU0YmUxNWNhNGM5MzAuLjdmM2ZhOGI3ODNj
NzNhMmFhMTJkZWI3ZDM1MTlhODA2N2E4MDExYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
dWdpbnMvY3Jhc2gtcmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jhc2gtcmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20t
cGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHNjcmlwdD4KIGlmICh3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWwKaW5kZXggY2E4NWJk
Y2I2Mjk3MGQ5Nzc2ZWMzMThiZDI5MDEyNTZjYjVkYmRhMy4uMDYxMjY2MTYxNDg3NmQxMDI3MTJk
NWQ1NDdmMDk5ZTBhMDMyMTM1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9mcmFt
ZXNldC13aXRoLXBsdWdpbi1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnJh
bWVzZXQtd2l0aC1wbHVnaW4tZnJhbWUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBhZ2UtY2FjaGUtd29ya3MuaHRtbCBiL0xh
eW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBhZ2UtY2FjaGUtd29ya3MuaHRtbApp
bmRleCA0ZjgyMzQxNzZjMGJjY2ZmZTI1MzI3YzNmZmUzMDdiMmEyM2FhMTFiLi4wNzZhYWNlMTFh
MGI5OWE5Y2QxN2E3OGM5NWJlODViZGEyZGUzNzVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bHVnaW5zL25ldHNjYXBlLXBsdWdpbi1wYWdlLWNhY2hlLXdvcmtzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tcGFnZS1jYWNoZS13b3Jrcy5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDxodG1sPgogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNoZS5odG1sCmluZGV4IDZkZTgwNjNkZjhkNWNlYTNl
YmE1NzVhMGRhOGY4NDhhMjIxNDRhMmYuLmM3YzU5NGI2MzgzMmVhYmRjN2RhZmNhYWQwMzlhODUz
MmEzYTVlNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJl
cXVlc3QtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L0lEQlJlcXVlc3QtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAyYzg3ODkx
ZDEzNzI5NGY3NjgwMWVmY2RiYmE4N2I4Y2VkNDJhZDljLi5iYmQ3YzVkZWNlOTQ0MjFmNjFlYjVj
NWI5YzFmOTQzYzdhM2Q5YjE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9z
d2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sCmluZGV4IDY1NjViMDc4ZDBkNDU0ZTQ3
YTMxYmY1NDgxYmRlNjkzYzAxZDhlZDQuLmQyZmJhMjM1NWQ4ZTQ3ZTRjNGQwZDRlMWFhZTNmY2Jj
MmIxNjg4YTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNr
LXN3aXBlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dp
cGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzdHlsZT4KIGh0bWwgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0
bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRt
bAppbmRleCBjODFmM2U2NGRmNDNhNjBmZjJmMGMwODIzNWMwODczNTY2ZWZjZjc0Li5iODVhZDFi
M2VmM2Q3ZmNkNWEzYjY0N2I5ZDY2NzIyMzI3Yjc2NGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8aGVhZD4KIDxzdHlsZT4KIGh0bWwgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAppbmRleCBhMDExOWYxNjMzMWM2YjUw
NDc1ZDdmZGQ2MzBlYmU4ZDI3OTA4ZTE2Li44M2VkYWI4NjkxZjdkYjkzZTg5NTgwY2FiNmY4M2Iz
M2Q5NzNjY2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVk
LWJhY2stc3dpcGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVk
LWJhY2stc3dpcGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzdHlsZT4KIGh0bWwg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1i
YWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0
ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwKaW5kZXggMDJmZDQ0
ZTQxZWMxZjNhMWYxNGQwYzEwMDMzMGUxNGFlMjRhYmE4Ny4uZDM1NmQyMTdjYTczZjM1N2M1N2Qy
OTFlZGQyMmMyZDA3NWQyNTAwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0
YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1j
cmFzaC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHN0eWxlPgogaHRtbCB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoc3RhdGUtd2l0aC1tYW51YWwtc2Nyb2xscmVz
dG9yYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hzdGF0ZS13aXRoLW1hbnVhbC1z
Y3JvbGxyZXN0b3JhdGlvbi5odG1sCmluZGV4IDFmMWQ3YWUwNzcwNGQ1OWMyZWRmZGMzNTFhZGMz
YzkzZWE1MTBmMzkuLjNmMGFkZjIxMjgzYzRkMDJjZDEyMDU4YTJjZmUzZTYzZDU4ODgwNjggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hzdGF0ZS13aXRoLW1hbnVhbC1zY3JvbGxy
ZXN0b3JhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hzdGF0ZS13aXRoLW1h
bnVhbC1zY3JvbGxyZXN0b3JhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHN0
eWxlPgogaHRtbCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9udWxsLXBhcmVudC1iYWNrLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9udWxsLXBhcmVudC1iYWNrLWNyYXNoLmh0bWwKaW5kZXggNzdjM2MwYTg2
MmQwNTIxMWI2M2M1ZmUxMzI1NzBiOWI0MjBhNWI2Yy4uMjMyNTRlNTg2NTgyODAxZDg4YThjNTAx
NGE3NmJhN2VmMjlkZDI4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvbnVsbC1wYXJlbnQtYmFjay1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL251bGwtcGFyZW50LWJhY2stY3Jhc2guaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9uLXBh
Z2UtY2FjaGUtcmVzdG9yYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvdGls
ZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sCmlu
ZGV4IGJkZDA4NzUyNWY0NGJjNjU1Y2NjNjMwMzYwMGVmZTRhMzZkYTgxYzQuLmFkOTBjODcxOTA4
NTM1NzgxNzRkYmFhN2I4ZTBhNzY0NTE4MDhmNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Rp
bGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0
b3JhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2lu
Zy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRt
bCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hl
LXNlbmQuaHRtbAppbmRleCA1Zjg0YTIzOWQ5MWMzZGI1NzEzOGI2Y2E3MzIzYTliNmY1ZTNkZGQ3
Li5jNGJkNzRmMDhjNzczMzg5NzEzMmQ2ZDFiNzhhODAxMTA0YWFiZGQyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1zZW5k
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBh
Z2UtY2FjaGUtc2VuZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9k
YXRhY2hhbm5lbC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5u
ZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sCmluZGV4IDE3MGJiOWZkZjcxMThhMjdlNjRl
Y2VjOWVlOGRlYTg2ZThjOTU2YWMuLmRjZjU3MGRhZTVhNThhNDYzN2EzOThmZDliOGE2MGM1YTc4
NTYzZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hh
bm5lbC1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVs
L2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUg
aHRtbD4KIDxodG1sPgogPGJvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381126</attachid>
            <date>2019-10-16 15:53:11 -0700</date>
            <delta_ts>2019-10-16 16:29:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203048-20191016155310.patch</filename>
            <type>text/plain</type>
            <size>387085</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdhYjk2MWQyYzMzZmMx
YWI5YmU2NmE4YThhMDg1NzUzMGYwZGE0Yi4uZjk4YWRjYmQwOTNjYTdjOTRkOTExMmRjZTliNTk2
ZjA2NDNkZGE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxOCBAQAorMjAxOS0xMC0xNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUg
dG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFy
aXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENh
Y2hlLgorCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlcjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6
OnN1c3BlbmQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3Vt
ZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvV2luZG93UHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93UHJveHk6OmNsZWFySlNXaW5kb3dQcm94aWVz
Tm90TWF0Y2hpbmdET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
Lmg6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjppbnZhbGlkYXRlTWF0Y2hlZFByb3BlcnRpZXNDYWNoZUFuZEZvcmNlU3R5
bGVSZWNhbGMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZVJlbmRlclRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZEJlY29tZUN1cnJlbnREb2N1bWVudElu
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmF0dGFjaFRvQ2FjaGVkRnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaEZyb21DYWNoZWRGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGp1c3RGb2N1c2VkTm9kZU9uTm9kZVJlbW92YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93RnJvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXN1bWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRvcERvY3VtZW50IGNvbnN0KToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpiYWNrRm9y
d2FyZENhY2hlU3RhdGUgY29uc3QpOgorICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbHNj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRG
dWxsc2NyZWVuKToKKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKToK
KyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwLgorICAgICAgICAoV2ViQ29yZTo6bG9n
QmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpjYW5DYWNoZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhY2hlUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24pOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRDYWNoZTo6QmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJhY2tGb3J3YXJkQ2FjaGU6OmNhbkNhY2hlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJh
Y2tGb3J3YXJkQ2FjaGU6OnBydW5lVG9TaXplTm93KToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tG
b3J3YXJkQ2FjaGU6OnNldE1heFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6QmFja0ZvcndhcmRD
YWNoZTo6ZnJhbWVDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENh
Y2hlOjptYXJrUGFnZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ29udGVudHNTaXplQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjptYXJrUGFnZXNGb3JDYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hl
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjp0YWtlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUFsbEl0ZW1zRm9yUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpnZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3
YXJkQ2FjaGU6OnBydW5lKToKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmguCisgICAgICAg
ICogaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGcmFt
ZUJhc2U6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRnJhbWU6OkNhY2hlZEZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRGcmFtZTo6ZGVzdHJveSk6CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRG
cmFtZVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldENhY2hlZFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldFVSTCk6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5
SXRlbS5oOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmlzSW5CYWNrRm9yd2FyZENh
Y2hlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZUVsZW1lbnQ6OnN1c3BlbmQpOgor
ICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRvcGxheVBlcm1pdHRlZCBjb25zdCk6CisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjphZGRTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmNsb3NlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjbGVhcik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRl
dGFjaEZyb21QYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlY2VpdmVk
TWFpblJlc291cmNlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnNob3Vs
ZFBlcmZvcm1GcmFnbWVudE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmRpc3BhdGNoVW5sb2FkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3
U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJlc3Rv
cmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5
Q29udHJvbGxlcjo6aW52YWxpZGF0ZUN1cnJlbnRJdGVtQ2FjaGVkUGFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6dXBkYXRlRm9yUmVsb2FkKToKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5CYWNrRm9yd2FyZENhY2hlKToKKyAg
ICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaDoKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJz
Q291bnQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3dFeHRlbnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RXh0ZW5zaW9u
OjpzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dFeHRlbnNpb246OnJlc3VtZUZyb21CYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvd0V4dGVuc2lvbi5oOgorICAgICAgICAqIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0Zv
cndhcmRDYWNoZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmJhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlS2V5KToKKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRTb3VyY2U6OnNjaGVkdWxlUmVjb25uZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50U291cmNlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291
cmNlOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpk
aWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjphYm9ydENvbm5lY3Rpb25B
dHRlbXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpzdXNwZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRTb3VyY2U6OmRpc3BhdGNoTWVzc2FnZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50U291
cmNlLmg6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZTo6c2V0Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2V0RG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZFJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldENvbnRl
bnRzU2l6ZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5
b3V0Q29udGV4dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENv
bnRleHQ6OnNjaGVkdWxlTGF5b3V0KToKKyAgICAgICAgKiBwYWdlL01lbW9yeVJlbGVhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OnJlbGVhc2VNZW1vcnkpOgorICAgICAgICAqIHBhZ2UvTWVtb3J5UmVsZWFzZS5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp+UGFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaWV3U2NhbGVGYWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VHcm91cDo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5n
OjptZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nc0Jhc2U6OnVzZXNCYWNrRm9yd2FyZENhY2hlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9T
ZXR0aW5nc0Jhc2UuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OnNldE5lZWRzU3R5bGVSZWNhbGMp
OgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFu
aW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Fu
aW1hdGlvbkNvbnRyb2xsZXI6OmNhbmNlbEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTQW5pbWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyk6CisgICAgICAgICogcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1w
bGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQpOgorICAgICAgICAqIHBhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
QW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp3aWxsUmVtb3ZlU2Nyb2xsaW5nTGF5ZXJXaXRoQmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRpZEFkZFNj
cm9sbGluZ0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9TaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlTGluZUxheW91dDo6Y29sbGVjdE5vbkVtcHR5TGVhZlJlbmRlckJsb2NrRmxvd3NGb3JDdXJy
ZW50UGFnZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBk
YXRlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmNsZWFyQmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OmJhY2tGb3J3YXJkQ2FjaGVTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6cHJldmVudERvY3VtZW50Rm9yRW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmlkbDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3Q6OnN1c3BlbmQpOgorCiAyMDE5LTEwLTE2ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBkdW1waW5nIGZvciBC
b3JkZXJEYXRhIGFuZCBTdHlsZUJhY2tncm91bmREYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmZmNlYmJlMjMy
NzQzNzEyYzhjYjkzMmM5YjE3MDdmNWFhMjM2NGYuLjI3MzZjNjllMTBmZTAwNGJkY2FkOWMwOGEx
NDM1ZjUwOTAyZmUyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTktMTAtMTYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hl
IHRvIEJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZSBmb3IgY2xh
cml0eSBhbmQgY29uc2lzdGVuY3kgd2l0aCB0aGUgVUlQcm9jZXNzJ3MgV2ViQmFja0ZvcndhcmRD
YWNoZS4KKworICAgICAgICAqIFNoYXJlZC9DYWNoZU1vZGVsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FsY3VsYXRlTWVtb3J5Q2FjaGVTaXplcyk6CisgICAgICAgICogU2hhcmVkL0NhY2hlTW9k
ZWwuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6TmF2aWdh
dGlvbkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6
OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hl
RW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0UGFnZUNhY2hlRW5hYmxlZCk6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKToKKyAgICAg
ICAgKFdLUHJlZmVyZW5jZXNHZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0VXNlc1BhZ2VDYWNoZTpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBf
dXNlc1BhZ2VDYWNoZV0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRQYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnM6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3BhZ2VDYWNoZVN1
cHBvcnRzUGx1Z2luc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24gcGFnZUNhY2hlRW5hYmxlZF0pOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gc2V0UGFnZUNhY2hlRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9l
bmFibGVfcGFnZV9jYWNoZSk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9w
YWdlX2NhY2hlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OndpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5h
dmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdh
dGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkQ29tbWl0TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkKToKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGaW5p
c2hOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50OjpkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6
Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkUmVhY2hNYWluRnJhbWVM
b2FkVGVybWluYWxTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvdWxkVXNlQmFja0ZvcndhcmRDYWNo
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
b21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZp
bmlzaERvY3VtZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZEZhaWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJ
bkJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6dG9CYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6V2ViRnJhbWVMb2FkZXJDbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0Nv
bW1pdHRlZEZyb21DYWNoZWRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRl
ckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZv
cmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnJlbW92ZUl0ZW0pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6c3VzcGVuZEZvclByb2Nlc3NTd2FwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldENhY2hlTW9kZWwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyQ2FjaGVkUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmg6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbV0syXSBIYW5kbGUgYmFjay9mb3J3YXJkIGNhY2hlIGVudHJ5IGV4
cGlyYXRpb24gaW4gdGhlIFVJUHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBXZWJQcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggMDc4OTkwMzJlM2NkMWYyMmY5NTE3ZTcyYWZlYWNl
ZGJjN2I1Y2RmNS4uZDI1ZWYzZGI2Y2M2YTIxNzdiM2RjM2JjNzhlZDMwMGQyMzc4YjEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTE2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNo
ZSB0byBCYWNrRm9yd2FyZENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hlIHRvIEJhY2tGb3J3YXJkQ2FjaGUgZm9yIGNs
YXJpdHkgYW5kIGNvbnNpc3RlbmN5IHdpdGggdGhlIFVJUHJvY2VzcydzIFdlYkJhY2tGb3J3YXJk
Q2FjaGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaDoKKwogMjAxOS0x
MC0wOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVt
b3ZlIHJlZHVuZGFudCB1c2VzIG9mIFVTRShVSUtJVF9FRElUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IDA2MWFlMWI0YWRmYmIzNjYyNGI0Y2I5NmY0YzQ5NWRkZTFkODFmODEu
LjI1ZDdhYmVlMTMwZmQyZTg0YzQyYmJkZDk0ZTMyNDY2MWQ1ZjllNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0Zv
cndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBj
b25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisg
ICAgICAgICogSGlzdG9yeS9CYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgIChCYWNrRm9yd2Fy
ZExpc3Q6OmFkZEl0ZW0pOgorICAgICAgICAoQmFja0ZvcndhcmRMaXN0OjpzZXRDYXBhY2l0eSk6
CisgICAgICAgICogSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgICgtW1dl
YkJhY2tGb3J3YXJkTGlzdCBwYWdlQ2FjaGVTaXplXSk6CisgICAgICAgICogSGlzdG9yeS9XZWJI
aXN0b3J5SXRlbS5tbToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJpdmF0ZS5o
OgorICAgICAgICAqIE1pc2MvV2ViQ2FjaGUubW06CisgICAgICAgICogTWlzYy9XZWJDb3JlU3Rh
dGlzdGljcy5tbToKKyAgICAgICAgKCtbV2ViQ29yZVN0YXRpc3RpY3MgY2FjaGVkUGFnZUNvdW50
XSk6CisgICAgICAgICgrW1dlYkNvcmVTdGF0aXN0aWNzIGNhY2hlZEZyYW1lQ291bnRdKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUp
OgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0Zvcndh
cmRDYWNoZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5t
bToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBsYXlvdXRUb01pbmltdW1QYWdlV2lkdGg6aGVpZ2h0Om9yaWdpbmFsUGFnZVdpZHRoOm9y
aWdpbmFsUGFnZUhlaWdodDptYXhpbXVtU2hyaW5rUmF0aW86YWRqdXN0aW5nVmlld1NpemU6XSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNldE5lZWRzTGF5b3V0Ol0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBzZXROZWVkc1RvQXBwbHlTdHlsZXM6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jbG9zZV0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisgICAgICAgICgrW1dlYlZpZXcgX3NldENhY2hl
TW9kZWw6XSk6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBNb3ZlIGJhY2svZm9yd2FyZCBjYWNoZSBlbnRyeSBleHBpcmF0aW9u
IGZyb20gdGhlIFdlYlByb2Nlc3MgdG8gdGhlIFVJUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IDM0OTdlNDhjYTlmMzY1MWI3ZjhjOTIwY2NlMjFmOTFiZjExOTc4MWEuLmFh
ZjE2YTBhMmQ0NzgwZjBhZTY2ZmExMDc1NjBkYWY1MTlhY2RiODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0Zvcndh
cmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25z
aXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAg
ICAgICogQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKEJhY2tGb3J3YXJkTGlzdDo6YWRk
SXRlbSk6CisgICAgICAgIChCYWNrRm9yd2FyZExpc3Q6OnNldENhcGFjaXR5KToKKyAgICAgICAg
KiBXZWJDb3JlU3RhdGlzdGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlU3RhdGlzdGljczo6Y2Fj
aGVkUGFnZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmVTdGF0aXN0aWNzOjpjYWNoZWRGcmFtZUNv
dW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21CYWNrRm9yd2Fy
ZENhY2hlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAg
ICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjphY2Nlc3NpYmxlIGNvbnN0
KToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnNldENhY2hlTW9k
ZWwpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAx
OS0xMC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OOiBlZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtaW50ZXJmYWNl
cy5odG1sIGlzIGZhaWxpbmcgaW4gV2ViS2l0MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOWMyYjIw
NDg0YjlmZjQzMTYxNGIwZWU3ZTJjOGY0N2IyZGQ5NDc1ZS4uZTg1ZDllM2Y1Mzc0ZTUyMzVkOTEy
NGEzNzE5NGEzYjI3NDI3OTk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC01MjAsMTMgKzUyMCwx
MyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZmlsZWFwaS9G
aWxlUmVhZGVyTG9hZGVyQ2xpZW50LmgKICAgICBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaAog
CisgICAgaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmgKICAgICBoaXN0b3J5L0JhY2tGb3J3YXJk
Q2xpZW50LmgKICAgICBoaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oCiAgICAgaGlzdG9y
eS9CYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmgKICAgICBoaXN0b3J5L0NhY2hlZEZyYW1lLmgK
ICAgICBoaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZvcm1EYXRhLmgKICAgICBoaXN0b3J5L0hpc3Rv
cnlJdGVtLmgKLSAgICBoaXN0b3J5L1BhZ2VDYWNoZS5oCiAKICAgICBodG1sL0F1dG9jYXBpdGFs
aXplLmgKICAgICBodG1sL0F1dG9jYXBpdGFsaXplVHlwZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCAxZWM3MzZmYjhi
ZWM4Mjc1ZWQ0ZGY4NzhmODBkY2JlOTViNGEwNzUxLi5hY2RhZjc5ZTNlMTMzY2NlZDVlNDdiOGE1
NjU5YmIyNDQxZjE5NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIGJvb2wgR2VvbG9jYXRp
b246OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogICAgIAogdm9pZCBH
ZW9sb2NhdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIHsKLSAgICBp
ZiAocmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VDYWNoZSkgeworICAgIGlmIChy
ZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAg
ICBzdG9wKCk7CiAgICAgICAgIG1fcmVzZXRPblJlc3VtZSA9IHRydWU7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
Y3BwCmluZGV4IGQ1YWZkNDQ1OTcxYTg0NTBhYjM4NWE1MDAyMGViNmUyMTk2MTI5MmYuLjZjMTZm
YmM5MmRjYTgyMDcxZjIyZGM1YjYwZmY5MzZkZDFlODE2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKQEAgLTEw
Niw3ICsxMDYsNyBAQCBjb25zdCBjaGFyKiBNZWRpYVJlY29yZGVyOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKIAogYm9vbCBNZWRpYVJlY29yZGVyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7IC8vIEZJWE1FOiBXZSBzaG91
bGQgZG8gYmV0dGVyIGhlcmUgYXMgdGhpcyBwcmV2ZW50cyBlbnRlcmluZyBQYWdlQ2FjaGUuCisg
ICAgcmV0dXJuIGZhbHNlOyAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvIGJldHRlciBoZXJlIGFzIHRo
aXMgcHJldmVudHMgZW50ZXJpbmcgQmFja0ZvcndhcmRDYWNoZS4KIH0KIAogRXhjZXB0aW9uT3I8
dm9pZD4gTWVkaWFSZWNvcmRlcjo6c3RhcnRSZWNvcmRpbmcoT3B0aW9uYWw8aW50PiB0aW1lc2xp
Y2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgwNjlkNTJhMDU2ZjA1N2NiYTE2ZDExMDQ5OTMxYzFh
ZGI0OWI0NzQuLmZkMTIwZmE5MmI0YmUyN2NmZDY0NTIxY2Q4NzZhYTQ0MzAzZGViYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCkBAIC01MDYsNyArNTA2LDcgQEAgYm9vbCBSVENQZWVyQ29ubmVjdGlvbjo6
Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiAKIHZvaWQgUlRDUGVlckNv
bm5lY3Rpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiB7Ci0gICAgaWYg
KHJlYXNvbiAhPSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKHJlYXNv
biAhPSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX3Nob3VsZERlbGF5VGFza3MgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCAzMDM4YTk3ZDU5NTIzOGMw
NDMwOTJmMDRlOWM2NWZhZDBlMDExMWEwLi5iMzJiZjk4YjI1OGRjZWMzOTg4ZWE1YThhMzRiN2Jl
YzU4MzNmMzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcApAQCAtNTA4LDcgKzUwOCw3IEBAIHZvaWQgV2ViU29ja2V0OjpzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyA9
IHRydWU7CiAKICAgICBpZiAobV9jaGFubmVsKSB7Ci0gICAgICAgIGlmIChyZWFzb24gPT0gUmVh
c29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKSB7CisgICAgICAgIGlmIChyZWFzb24gPT0gUmVh
c29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICAgICAgLy8gVGhp
cyB3aWxsIGNhdXNlIGRpZENsb3NlKCkgdG8gYmUgY2FsbGVkLgogICAgICAgICAgICAgbV9jaGFu
bmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiIpOwogICAg
ICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZDliYjlhZjE5YWMxYzYyMzY5NDk0ZTFlYjFk
MmQ1N2JhYjNmNTQ1My4uZmZiZGE5NjIzMGQ2MWY1OGM5YzEyNWU0ZjU3OTRhZWE0YTlmZGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTEwODUsMTEgKzEwODUsMTEgQEAgZmlsZWFwaS9GaWxlUmVhZGVy
U3luYy5jcHAKIGZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKIGZpbGVhcGkvVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeS5jcHAKIAoraGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcAogaGlzdG9y
eS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwCiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAogaGlz
dG9yeS9DYWNoZWRQYWdlLmNwcAogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKLWhpc3RvcnkvUGFn
ZUNhY2hlLmNwcAogCiBodG1sL0F1dG9maWxsLmNwcAogaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDNiMzY2NzkxNGU2ZDBmYTdmZmRjYjdlZWI4MGY0OWVmODcwZjYxMTIuLjkxNTU0
ODM1OTgwY2IzMDIxMjE4MDliZmU0NGY0ODMwYjRmYzA4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxMCw3ICs0MTAsNyBA
QAogCQkxNDMyRTg0NzBDNTE0OTM4MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDMyRTg0NjBDNTE0OTM4MDBC
MTUwMEYgLyogR0NDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFB
NzE1REM0QkIxMDAzMDVEQjIgLyogV3JpdGluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyog
SlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9
OwotCQkxNDc3RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NTBCRjQxMzRBMDAxNTI4
NzIgLyogUGFnZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMTQ3N0U3NzcwQkY0MTM0QTAwMTUyODcyIC8qIEJhY2tGb3J3YXJkQ2FjaGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzdFNzc1
MEJGNDEzNEEwMDE1Mjg3MiAvKiBCYWNrRm9yd2FyZENhY2hlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ3OUZBRUUxMDlBRTM3NTAwREVENjU1
IC8qIFJlbmRlclJ1YnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NzlGQUU2MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmggKi87IH07CiAJ
CTE0NzlGQUYwMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5QmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3OUZBRTgxMDlBRTM3NTAwREVE
NjU1IC8qIFJlbmRlclJ1YnlCYXNlLmggKi87IH07CiAJCTE0NzlGQUYyMTA5QUUzNzUwMERFRDY1
NSAvKiBSZW5kZXJSdWJ5UnVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDc5RkFFQTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieVJ1bi5oICov
OyB9OwpAQCAtNTkxNyw4ICs1OTE3LDggQEAKIAkJMTQ0NzZBQTcxNURDNEJCMTAwMzA1REIyIC8q
IFdyaXRpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRpbmdN
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NDlFMjRBMTA3RDRBODQwMEI1
NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NhbGxiYWNrRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ5RTI4
NjEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFn
ZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8q
IEJhY2tGb3J3YXJkQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJhY2tGb3J3YXJkQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
NDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja0ZvcndhcmRDYWNoZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDc5RkFFNTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJSdWJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3OUZBRTYxMDlBRTM3NTAwREVENjU1IC8q
IFJlbmRlclJ1YnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyUnVi
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc5RkFFNzEwOUFFMzc1MDBERUQ2
NTUgLyogUmVuZGVyUnVieUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVuZGVyUnVieUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTg4NzQsNiArMTg4NzQsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
IAkJCQk1MTYwRjQ5MjBCMEFBNzE1MDBDMUQyQUYgLyogbWFjICovLAorCQkJCTE0NzdFNzc0MEJG
NDEzNEEwMDE1Mjg3MiAvKiBCYWNrRm9yd2FyZENhY2hlLmNwcCAqLywKKwkJCQkxNDc3RTc3NTBC
RjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oICovLAogCQkJCTUxNzQxRDBCMEIw
NzI1OUEwMEVENDQyQyAvKiBCYWNrRm9yd2FyZENsaWVudC5oICovLAogCQkJCUJDQThDODFEMTFF
M0QzNjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwICovLAogCQkJCUJDQThD
ODFDMTFFM0QzNjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCAqLywKQEAgLTE4
ODg1LDggKzE4ODg3LDYgQEAKIAkJCQk1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVk
UGFnZS5oICovLAogCQkJCTUxNzQxRDBFMEIwNzI1OUEwMEVENDQyQyAvKiBIaXN0b3J5SXRlbS5j
cHAgKi8sCiAJCQkJNTE3NDFEMEQwQjA3MjU5QTAwRUQ0NDJDIC8qIEhpc3RvcnlJdGVtLmggKi8s
Ci0JCQkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgKi8sCi0JCQkJ
MTQ3N0U3NzUwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBoaXN0b3J5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4NzM0LDYgKzI4
NzM0LDcgQEAKIAkJCQlGNDVDMjMxRTE5OTVCNzNCMDBBNkUyRTMgLyogQXhpc1Njcm9sbFNuYXBP
ZmZzZXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIzODBGQkI5QzFEMDA1MTAyOTMgLyog
QVhPYmplY3RDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTFDOUYyRjkxQUUzQkVCMDAwOTVC
NjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDc3
RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE3NDFEMEYwQjA3MjU5QTAwRUQ0NDJDIC8qIEJhY2tGb3J3YXJkQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0E4QzgxRTExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUExQjg3RDIwODdDNEMwMDA5NzlBNzUg
LyogQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTIxOCw3
ICszMTIxOSw2IEBACiAJCQkJMzc3NEFCQTUwRkEyMUVCNDAwQUQ3REU5IC8qIE92ZXJsYXBUZXN0
UmVxdWVzdENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVBMjE0NjgwOTdBMzI5MTAwQjkw
NTBBIC8qIFBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxMjc4RDVFMjFERURBRDYwMEI1NzE4
NCAvKiBQYWdlQXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQ3N0U3NzcwQkY0MTM0
QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q1RTVCNUYxQTE1
Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NUI4MUNDMjFGQUE0NEJDMDAzN0QxRTYgLyogUGFnZUNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJREFFRDIwMzExNkYyNDQ0ODAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAK
aW5kZXggMzE5NGIzMjc0NzVmZjE2ZTlhZGQxMTQyOWM2OGUwZTU1YmFlNDFmZi4uNWYwYzkwMDNk
ZmY3N2UwNzE3ZDZkOGY1YmU2OTY4NjIwZmI1MmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAgLTExNjEsNyArMTE2MSw3IEBAIGJvb2wgV2ViQW5pbWF0
aW9uOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKICAgICAvLyBV
c2UgdGhlIGJhc2UgY2xhc3MncyBpbXBsZW1lbnRhdGlvbiBvZiBoYXNQZW5kaW5nQWN0aXZpdHko
KSBzaW5jZSB3ZSB3b3VsZG4ndCB3YW50IHRoZSBjdXN0b20gaW1wbGVtZW50YXRpb24KICAgICAv
LyBpbiB0aGlzIGNsYXNzIGRlc2lnbmVkIHRvIGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUgdG8gaW50
ZXJmZXJlIHdpdGggdGhlIGFiaWxpdHkgZm9yIGEgcGFnZSB1c2luZyBhbmltYXRpb25zCi0gICAg
Ly8gdG8gZW50ZXIgdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gdG8gZW50ZXIgdGhlIGJhY2svZm9y
d2FyZCBjYWNoZS4KICAgICByZXR1cm4gIUFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2
aXR5KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRv
d1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcApp
bmRleCAwMmUzYzcyNGYxNjFjZmRiZGE3NWJhN2ViMDA1NzA1NDJlY2NmZDE3Li5kZTBiZjg4Nzlm
ODNiOTY1ZmZiYWZiOWQyMDkwM2EyMGJhNGFmZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2luZG93UHJveHkuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgSlNXaW5kb3dQcm94eSYg
V2luZG93UHJveHk6OmNyZWF0ZUpTV2luZG93UHJveHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQoRE9N
V3JhcHBlclcKICAgICByZXR1cm4gd2luZG93UHJveHk7CiB9CiAKLXZvaWQgV2luZG93UHJveHk6
OmNsZWFySlNXaW5kb3dQcm94aWVzTm90TWF0Y2hpbmdET01XaW5kb3coQWJzdHJhY3RET01XaW5k
b3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpCit2b2lkIFdpbmRvd1By
b3h5OjpjbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9N
V2luZG93KiBuZXdET01XaW5kb3csIGJvb2wgZ29pbmdJbnRvQmFja0ZvcndhcmRDYWNoZSkKIHsK
ICAgICBpZiAobV9qc1dpbmRvd1Byb3hpZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBA
IC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBXaW5kb3dQcm94eTo6Y2xlYXJKU1dpbmRvd1Byb3hpZXNO
b3RNYXRjaGluZ0RPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyogbmUKIAogICAgIC8vIEl0J3Mg
bGlrZWx5IHRoYXQgcmVzZXR0aW5nIG91ciB3aW5kb3dzIGNyZWF0ZWQgYSBsb3Qgb2YgZ2FyYmFn
ZSwgdW5sZXNzCiAgICAgLy8gaXQgd2VudCBpbiBhIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICBp
ZiAoIWdvaW5nSW50b1BhZ2VDYWNoZSkKKyAgICBpZiAoIWdvaW5nSW50b0JhY2tGb3J3YXJkQ2Fj
aGUpCiAgICAgICAgIGNvbGxlY3RHYXJiYWdlQWZ0ZXJXaW5kb3dQcm94eURlc3RydWN0aW9uKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5oCmluZGV4IDQ3MjJl
NDkzYjA2MDlkOTExNzZhNjJhZDM1Nzg0MGVkMGQ3N2RlODMuLjJjODA4YmRjNzljNzI3MzdlMTVh
MWJhNDE3MTA1NTNhZWZjMjhhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dpbmRvd1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93
UHJveHkuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KERPTVdyYXBwZXJXb3JsZCYpOwogCi0gICAg
dm9pZCBjbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9N
V2luZG93KiwgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOworICAgIHZvaWQgY2xlYXJKU1dpbmRv
d1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyosIGJvb2wgZ29p
bmdJbnRvQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERP
TVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2Jq
ZWN0LmgKaW5kZXggODU3OTk4YWZmNmYyMzcwMGE2YTYyZjVhMWZhMDI3NjM4OTlkM2VlYS4uNmI4
Yjk4NmYzNzk2Yzc0ODlkMGFmMmM5NTc1M2NiYjY5MGRjMjY3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9B
Y3RpdmVET01PYmplY3QuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBEb2N1bWVudDsKIGVudW0g
Y2xhc3MgUmVhc29uRm9yU3VzcGVuc2lvbiB7CiAgICAgSmF2YVNjcmlwdERlYnVnZ2VyUGF1c2Vk
LAogICAgIFdpbGxEZWZlckxvYWRpbmcsCi0gICAgUGFnZUNhY2hlLAorICAgIEJhY2tGb3J3YXJk
Q2FjaGUsCiAgICAgUGFnZVdpbGxCZVN1c3BlbmRlZCwKIH07CiAKQEAgLTY0LDcgKzY0LDcgQEAg
cHVibGljOgogCiAgICAgLy8gVGhlc2UgdGhyZWUgZnVuY3Rpb25zIG11c3Qgbm90IGhhdmUgYSBz
aWRlIGVmZmVjdCBvZiBjcmVhdGluZyBvciBkZXN0cm95aW5nCiAgICAgLy8gYW55IEFjdGl2ZURP
TU9iamVjdC4gVGhhdCBtZWFucyB0aGV5IG11c3Qgbm90IHJlc3VsdCBpbiBjYWxscyB0byBhcmJp
dHJhcnkgSmF2YVNjcmlwdC4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50
U3VzcGVuc2lvbigpIGNvbnN0ID0gMDsgLy8gUmV0dXJuaW5nIGZhbHNlIGluIGNhblN1c3BlbmRG
b3JEb2N1bWVudFN1c3BlbnNpb24oKSB3aWxsIHByZXZlbnQgdGhlIHBhZ2UgZnJvbSBlbnRlcmlu
ZyB0aGUgUGFnZUNhY2hlLgorICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QgPSAwOyAvLyBSZXR1cm5pbmcgZmFsc2UgaW4gY2FuU3VzcGVuZEZv
ckRvY3VtZW50U3VzcGVuc2lvbigpIHdpbGwgcHJldmVudCB0aGUgcGFnZSBmcm9tIGVudGVyaW5n
IHRoZSBCYWNrRm9yd2FyZENhY2hlLgogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZv
clN1c3BlbnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggNTg2MzI0YmMxNDNiMDMwNGNiYmFhOGJiMjQ2ZTYwMzM3Y2MzYjkzNi4u
NGQ0MGM0MGI3YzMyNzI5NDM1MzA3YWVlOTcyNjhmZTAzZjI2YzFhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC02MjMsNyArNjIzLDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAg
cmVtb3ZlRnJvbUNvbnRleHRzTWFwKCk7CiAKICAgICBBU1NFUlQoIXJlbmRlclZpZXcoKSk7Ci0g
ICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVCht
X2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSAhPSBJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIEFTU0VS
VChtX3Jhbmdlcy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9wYXJlbnRUcmVlU2NvcGUpOwog
ICAgIEFTU0VSVCghbV9kaXNhYmxlZEZpZWxkc2V0RWxlbWVudHNDb3VudCk7CkBAIC0xODI4LDcg
KzE4MjgsNyBAQCB2b2lkIERvY3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKCkKIHsKICAgICBB
U1NFUlQoIW1fcmVuZGVyVmlldyB8fCAhaW5IaXRUZXN0aW5nKCkpOwogCi0gICAgaWYgKG1fc3R5
bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8IHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdl
Q2FjaGUpCisgICAgaWYgKG1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8IGJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpICE9IE5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQVNTRVJUKGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IG1fbmVlZHNGdWxsU3R5
bGVSZWJ1aWxkKTsKQEAgLTIwMDksNyArMjAwOSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRl
eHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5z
CiAKIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdAogewotICAgIGlmIChw
YWdlQ2FjaGVTdGF0ZSgpICE9IE5vdEluUGFnZUNhY2hlKQorICAgIGlmIChiYWNrRm9yd2FyZENh
Y2hlU3RhdGUoKSAhPSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGlmIChtX25lZWRzRnVsbFN0eWxlUmVidWlsZCkKQEAgLTIyOTUsNyArMjI5NSw3
IEBAIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0NhY2hlQW5kRm9y
Y2VTdHlsZVJlY2FsYygpCiB7CiAgICAgaWYgKGF1dG8qIHJlc29sdmVyID0gc3R5bGVTY29wZSgp
LnJlc29sdmVySWZFeGlzdHMoKSkKICAgICAgICAgcmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVk
UHJvcGVydGllc0NhY2hlKCk7Ci0gICAgaWYgKHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdl
Q2FjaGUgfHwgIXJlbmRlclZpZXcoKSkKKyAgICBpZiAoYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
IT0gTm90SW5CYWNrRm9yd2FyZENhY2hlIHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQoKTsKIH0KQEAgLTIzMTQsNyArMjMxNCw3
IEBAIHZvaWQgRG9jdW1lbnQ6OnNldElzUmVzb2x2aW5nVHJlZVN0eWxlKGJvb2wgdmFsdWUpCiB2
b2lkIERvY3VtZW50OjpjcmVhdGVSZW5kZXJUcmVlKCkKIHsKICAgICBBU1NFUlQoIXJlbmRlclZp
ZXcoKSk7Ci0gICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOworICAg
IEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSAhPSBJbkJhY2tGb3J3YXJkQ2FjaGUpOwog
ICAgIEFTU0VSVCghbV9heE9iamVjdENhY2hlIHx8IHRoaXMgIT0gJnRvcERvY3VtZW50KCkpOwog
CiAgICAgaWYgKG1faXNOb25SZW5kZXJlZFBsYWNlaG9sZGVyKQpAQCAtMjM1NCw3ICsyMzU0LDcg
QEAgdm9pZCBEb2N1bWVudDo6ZGlkQmVjb21lQ3VycmVudERvY3VtZW50SW5GcmFtZSgpCiAKICAg
ICAvLyBFbnN1cmUgdGhhdCB0aGUgc2NoZWR1bGVkIHRhc2sgc3RhdGUgb2YgdGhlIGRvY3VtZW50
IG1hdGNoZXMgdGhlIERPTSBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBmcmFtZS4gSXQgY2FuCiAg
ICAgLy8gYmUgb3V0IG9mIHN5bmMgaWYgdGhlIERPTSBzdXNwZW5zaW9uIHN0YXRlIGNoYW5nZWQg
d2hpbGUgdGhlIGRvY3VtZW50IHdhcyBub3QgaW4gdGhlIGZyYW1lIChwb3NzaWJseSBpbiB0aGUK
LSAgICAvLyBwYWdlIGNhY2hlLCBvciBzaW1wbHkgbmV3bHkgY3JlYXRlZCkuCisgICAgLy8gYmFj
ay9mb3J3YXJkIGNhY2hlLCBvciBzaW1wbHkgbmV3bHkgY3JlYXRlZCkuCiAgICAgaWYgKG1fZnJh
bWUtPmFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zU3VzcGVuZGVkKCkpIHsKICAgICAgICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQW5pbWF0aW9u
c0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogdGltZWxp
bmUgPSBleGlzdGluZ1RpbWVsaW5lKCkpCkBAIC0yMzk3LDcgKzIzOTcsNyBAQCB2b2lkIERvY3Vt
ZW50OjphdHRhY2hUb0NhY2hlZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCiB7
CiAgICAgUkVMRUFTRV9BU1NFUlQoY2FjaGVkRnJhbWUuZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAg
ICBBU1NFUlQoY2FjaGVkRnJhbWUudmlldygpKTsKLSAgICBBU1NFUlQobV9wYWdlQ2FjaGVTdGF0
ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKTsKICAgICBvYnNlcnZlRnJh
bWUoJmNhY2hlZEZyYW1lLnZpZXcoKS0+ZnJhbWUoKSk7CiB9CiAKQEAgLTI0MDYsNyArMjQwNiw3
IEBAIHZvaWQgRG9jdW1lbnQ6OmRldGFjaEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZUJhc2Um
IGNhY2hlZEZyYW1lKQogICAgIEFTU0VSVF9VTlVTRUQoY2FjaGVkRnJhbWUsIGNhY2hlZEZyYW1l
LnZpZXcoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoY2FjaGVkRnJhbWUuZG9jdW1lbnQoKSA9PSB0
aGlzKTsKICAgICBBU1NFUlQobV9mcmFtZSA9PSAmY2FjaGVkRnJhbWUudmlldygpLT5mcmFtZSgp
KTsKLSAgICBBU1NFUlQobV9wYWdlQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUp
OworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5CYWNr
Rm9yd2FyZENhY2hlKTsKICAgICBkZXRhY2hGcm9tRnJhbWUoKTsKIH0KIApAQCAtMjU2OSwxMCAr
MjU2OSwxMCBAQCB2b2lkIERvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogCiAgICAg
bV9oYXNQcmVwYXJlZEZvckRlc3RydWN0aW9uID0gdHJ1ZTsKIAotICAgIC8vIE5vdGUgdGhhdCBt
X3BhZ2VDYWNoZVN0YXRlIGNhbiBiZSBEb2N1bWVudDo6QWJvdXRUb0VudGVyUGFnZUNhY2hlIGlm
IG91ciBmcmFtZQorICAgIC8vIE5vdGUgdGhhdCBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBjYW4g
YmUgRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUgaWYgb3VyIGZyYW1lCiAg
ICAgLy8gd2FzIHJlbW92ZWQgaW4gYW4gb25wYWdlaGlkZSBldmVudCBoYW5kbGVyIGZpcmVkIHdo
ZW4gdGhlIHRvcC1sZXZlbCBmcmFtZSBpcwotICAgIC8vIGFib3V0IHRvIGVudGVyIHRoZSBwYWdl
IGNhY2hlLgotICAgIFJFTEVBU0VfQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gRG9jdW1lbnQ6
OkluUGFnZUNhY2hlKTsKKyAgICAvLyBhYm91dCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNh
Y2hlLgorICAgIFJFTEVBU0VfQVNTRVJUKG1fYmFja0ZvcndhcmRDYWNoZVN0YXRlICE9IERvY3Vt
ZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGUpOwogfQogCiB2b2lkIERvY3VtZW50OjpyZW1vdmVBbGxF
dmVudExpc3RlbmVycygpCkBAIC00MDUzLDcgKzQwNTMsNyBAQCBzdGF0aWMgYm9vbCBpc05vZGVJ
blN1YnRyZWUoTm9kZSYgbm9kZSwgTm9kZSYgY29udGFpbmVyLCBEb2N1bWVudDo6Tm9kZVJlbW92
YWwgbgogCiB2b2lkIERvY3VtZW50OjphZGp1c3RGb2N1c2VkTm9kZU9uTm9kZVJlbW92YWwoTm9k
ZSYgbm9kZSwgTm9kZVJlbW92YWwgbm9kZVJlbW92YWwpCiB7Ci0gICAgaWYgKCFtX2ZvY3VzZWRF
bGVtZW50IHx8IHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUpIC8vIElmIHRoZSBk
b2N1bWVudCBpcyBpbiB0aGUgcGFnZSBjYWNoZSwgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNsZWFy
IG91dCB0aGUgZm9jdXNlZCBub2RlLgorICAgIGlmICghbV9mb2N1c2VkRWxlbWVudCB8fCBiYWNr
Rm9yd2FyZENhY2hlU3RhdGUoKSAhPSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpIC8vIElmIHRoZSBk
b2N1bWVudCBpcyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0aGVuIHdlIGRvbid0IG5lZWQg
dG8gY2xlYXIgb3V0IHRoZSBmb2N1c2VkIG5vZGUuCiAgICAgICAgIHJldHVybjsKIAogICAgIEVs
ZW1lbnQqIGZvY3VzZWRFbGVtZW50ID0gbm9kZS50cmVlU2NvcGUoKS5mb2N1c2VkRWxlbWVudElu
U2NvcGUoKTsKQEAgLTQxMjEsNyArNDEyMSw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jCiAg
ICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgPT0gbmV3Rm9jdXNlZEVsZW1lbnQpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgaWYgKHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUp
CisgICAgaWYgKGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IE5vdEluQmFja0ZvcndhcmRDYWNo
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBmb2N1c0NoYW5nZUJsb2NrZWQg
PSBmYWxzZTsKQEAgLTQ1NjEsNyArNDU2MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRha2VET01XaW5k
b3dGcm9tKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBBU1NFUlQoIW1fZG9tV2luZG93KTsKICAg
ICBBU1NFUlQoZG9jdW1lbnQubV9kb21XaW5kb3cpOwogICAgIC8vIEEgdmFsaWQgRE9NV2luZG93
IGlzIG5lZWRlZCBieSBDYWNoZWRGcmFtZSBmb3IgaXRzIGRvY3VtZW50cy4KLSAgICBBU1NFUlQo
cGFnZUNhY2hlU3RhdGUoKSA9PSBOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKGJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpID09IE5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBtX2RvbVdp
bmRvdyA9IFdURk1vdmUoZG9jdW1lbnQubV9kb21XaW5kb3cpOwogICAgIG1fZG9tV2luZG93LT5k
aWRTZWN1cmVUcmFuc2l0aW9uVG8oKnRoaXMpOwpAQCAtNTA4MywyMSArNTA4MywyMSBAQCBVUkwg
RG9jdW1lbnQ6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVy
biBjb21wbGV0ZVVSTCh1cmwsIG1fYmFzZVVSTCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnNldFBh
Z2VDYWNoZVN0YXRlKFBhZ2VDYWNoZVN0YXRlIHN0YXRlKQordm9pZCBEb2N1bWVudDo6c2V0QmFj
a0ZvcndhcmRDYWNoZVN0YXRlKEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBzdGF0ZSkKIHsKLSAgICBp
ZiAobV9wYWdlQ2FjaGVTdGF0ZSA9PSBzdGF0ZSkKKyAgICBpZiAobV9iYWNrRm9yd2FyZENhY2hl
U3RhdGUgPT0gc3RhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZUNhY2hlU3RhdGUg
PSBzdGF0ZTsKKyAgICBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9IHN0YXRlOwogCiAgICAgRnJh
bWVWaWV3KiB2ID0gdmlldygpOwogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAKICAg
ICBzd2l0Y2ggKHN0YXRlKSB7Ci0gICAgY2FzZSBJblBhZ2VDYWNoZToKKyAgICBjYXNlIEluQmFj
a0ZvcndhcmRDYWNoZToKICAgICAgICAgaWYgKHYpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBU
aGVyZSBpcyBzb21lIHNjcm9sbGluZyByZWxhdGVkIHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4g
d2hlbmV2ZXIgYSBwYWdlIGdvZXMgaW50byB0aGUKLSAgICAgICAgICAgIC8vIHBhZ2UgY2FjaGUg
YW5kIHNpbWlsYXIgd29yayB0aGF0IG5lZWRzIHRvIG9jY3VyIHdoZW4gaXQgY29tZXMgb3V0LiBU
aGlzIGlzIHdoZXJlIHdlIGRvIHRoZSB3b3JrCisgICAgICAgICAgICAvLyBiYWNrL2ZvcndhcmQg
Y2FjaGUgYW5kIHNpbWlsYXIgd29yayB0aGF0IG5lZWRzIHRvIG9jY3VyIHdoZW4gaXQgY29tZXMg
b3V0LiBUaGlzIGlzIHdoZXJlIHdlIGRvIHRoZSB3b3JrCiAgICAgICAgICAgICAvLyB0aGF0IG5l
ZWRzIHRvIGhhcHBlbiB3aGVuIHdlIGVudGVyLCBhbmQgdGhlIHdvcmsgdGhhdCBuZWVkcyB0byBo
YXBwZW4gd2hlbiB3ZSBleGl0IGlzIGluCiAgICAgICAgICAgICAvLyBIaXN0b3J5Q29udHJvbGxl
cjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkuIEl0IGNhbid0IGJlIGhlcmUg
YmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzCiAgICAgICAgICAgICAvLyBjYWxsZWQgdG9vIGVhcmx5
IG9uIGluIHRoZSBwcm9jZXNzIG9mIGEgcGFnZSBleGl0aW5nIHRoZSBjYWNoZSBmb3IgdGhhdCB3
b3JrIHRvIGJlIHBvc3NpYmxlIGluIHRoaXMKQEAgLTUxMjEsMTEgKzUxMjEsMTEgQEAgdm9pZCBE
b2N1bWVudDo6c2V0UGFnZUNhY2hlU3RhdGUoUGFnZUNhY2hlU3RhdGUgc3RhdGUpCiAKICAgICAg
ICAgY2xlYXJTaGFyZWRPYmplY3RQb29sKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTm90
SW5QYWdlQ2FjaGU6CisgICAgY2FzZSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAgICAgIGlm
IChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAgICAgIHNjaGVkdWxlU3R5bGVSZWNh
bGMoKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBYm91dFRvRW50ZXJQYWdlQ2FjaGU6Cisg
ICAgY2FzZSBBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOgogICAgICAgICBicmVhazsKICAg
ICB9CiB9CkBAIC01MTQ4LDcgKzUxNDgsNyBAQCB2b2lkIERvY3VtZW50OjpzdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb24gcmVhc29uKQogCiAjaWZuZGVmIE5ERUJVRwogICAgIC8vIENsZWFyIHRo
ZSB1cGRhdGUgZmxhZyB0byBiZSBhYmxlIHRvIGNoZWNrIGlmIHRoZSB2aWV3cG9ydCBhcmd1bWVu
dHMgdXBkYXRlCi0gICAgLy8gaXMgZGlzcGF0Y2hlZCwgYWZ0ZXIgdGhlIGRvY3VtZW50IGlzIHJl
c3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gaXMgZGlzcGF0Y2hlZCwgYWZ0ZXIg
dGhlIGRvY3VtZW50IGlzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAg
ICBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCA9IGZhbHNlOwogI2VuZGlm
CiAKQEAgLTUxNjksNyArNTE2OSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbiByZWFzb24pCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
LSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNl
V29ya2VyRW5hYmxlZCgpICYmIHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2Fj
aGUpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2Vy
dmljZVdvcmtlckVuYWJsZWQoKSAmJiByZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFj
a0ZvcndhcmRDYWNoZSkKICAgICAgICAgc2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24obnVsbHB0
cik7CiAjZW5kaWYKIApAQCAtNTIxNCw3ICs1MjE0LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzdW1l
KFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsK
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgpICYmIHJlYXNvbiA9
PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiByZWFz
b24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgc2V0
U2VydmljZVdvcmtlckNvbm5lY3Rpb24oU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24o
KS5leGlzdGluZ1NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCkpOwogI2VuZGlmCiB9CkBAIC01NTM0
LDcgKzU1MzQsNyBAQCBEb2N1bWVudCYgRG9jdW1lbnQ6OnRvcERvY3VtZW50KCkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRTogVGhpcyBzcGVjaWFsLWNhc2luZyBhdm9pZHMgaW5jb3JyZWN0bHkgZGV0
ZXJtaW5lZCB0b3AgZG9jdW1lbnRzIGR1cmluZyB0aGUgcHJvY2VzcwogICAgIC8vIG9mIEFYT2Jq
ZWN0Q2FjaGUgdGVhcmRvd24gb3Igbm90aWZpY2F0aW9uIHBvc3RpbmcgZm9yIGNhY2hlZCBvciBi
ZWluZy1kZXN0cm95ZWQgZG9jdW1lbnRzLgotICAgIGlmIChwYWdlQ2FjaGVTdGF0ZSgpID09IE5v
dEluUGFnZUNhY2hlICYmICFtX3JlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCkgeworICAgIGlmIChi
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgJiYgIW1fcmVu
ZGVyVHJlZUJlaW5nRGVzdHJveWVkKSB7CiAgICAgICAgIGlmICghbV9mcmFtZSkKICAgICAgICAg
ICAgIHJldHVybiBjb25zdF9jYXN0PERvY3VtZW50Jj4oKnRoaXMpOwogICAgICAgICAvLyBUaGlz
IHNob3VsZCBhbHdheXMgYmUgbm9uLW51bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc1MzE1
ZmU1MWMwNGI3MzMwMGI4ZDQ1MzYyZmQ1NjYwMDczMDUyYTcuLjk4NmY5YjcxOTI5Y2JiODc3ZDk1
OGI1ZDU4YTU5OTVlODYxNjQ4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDczLDEwICsx
MDczLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmluaXNoZWRQYXJzaW5nKCk7CiAKLSAgICBl
bnVtIFBhZ2VDYWNoZVN0YXRlIHsgTm90SW5QYWdlQ2FjaGUsIEFib3V0VG9FbnRlclBhZ2VDYWNo
ZSwgSW5QYWdlQ2FjaGUgfTsKKyAgICBlbnVtIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdElu
QmFja0ZvcndhcmRDYWNoZSwgQWJvdXRUb0VudGVyQmFja0ZvcndhcmRDYWNoZSwgSW5CYWNrRm9y
d2FyZENhY2hlIH07CiAKLSAgICBQYWdlQ2FjaGVTdGF0ZSBwYWdlQ2FjaGVTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZUNhY2hlU3RhdGU7IH0KLSAgICB2b2lkIHNldFBhZ2VDYWNoZVN0YXRl
KFBhZ2VDYWNoZVN0YXRlKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgYmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrRm9yd2FyZENhY2hlU3RhdGU7IH0KKyAg
ICB2b2lkIHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShCYWNrRm9yd2FyZENhY2hlU3RhdGUpOwog
CiAgICAgdm9pZCByZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50
Jik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKEVs
ZW1lbnQmKTsKQEAgLTE5NTAsNyArMTk1MCw3IEBAIHByaXZhdGU6CiAgICAgSW5oZXJpdGVkQm9v
bCBtX2Rlc2lnbk1vZGUgeyBpbmhlcml0IH07CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1fbWVkaWFTdGF0ZSB7IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyB9OwogICAg
IGJvb2wgbV91c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgeyBmYWxzZSB9OwotICAg
IFBhZ2VDYWNoZVN0YXRlIG1fcGFnZUNhY2hlU3RhdGUgeyBOb3RJblBhZ2VDYWNoZSB9OworICAg
IEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdEluQmFj
a0ZvcndhcmRDYWNoZSB9OwogICAgIE9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVycmVy
UG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKaW5kZXggODVjNzhhODcyMzY1ZDg5
MDM4Njk2NWZlMDAyMjEyOWUxZjJlNGZmZS4uMWU0Mjg3MWJjMmIyM2NmOThhZTBkMjI3Y2Y1YTcw
NWU3NDY2Yjg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBA
IC0zNjMsNyArMzYzLDcgQEAgc3RhdGljIHZvaWQgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKFJl
bmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5SZW5kZXJlciwgRWxlbWUKIAogdm9pZCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbHNjcmVlbihFbGVtZW50JiBlbGVtZW50KQogewotICAg
IGlmICghZG9jdW1lbnQoKS5oYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgZG9jdW1lbnQoKS5wYWdl
Q2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoIWRvY3Vt
ZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgpIHx8IGRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNo
ZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIGNhbGxlZCBhZnRlciB0aGUgZG9j
dW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwYWdlLgpAQCAtNDE3LDcgKzQxNyw3IEBA
IHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiAgICAgaWYgKCFt
X2Z1bGxzY3JlZW5FbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWhhc0xpdmlu
Z1JlbmRlclRyZWUoKSB8fCBwYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VD
YWNoZSkKKyAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBiYWNrRm9yd2FyZENhY2hl
U3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2Z1bGxzY3JlZW5FbGVtZW50LT5kaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVu
dCgpOwpAQCAtNDI5LDcgKzQyOSw3IEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0
RnVsbHNjcmVlbigpCiAgICAgaWYgKCFmdWxsc2NyZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgcGFnZUNhY2hlU3RhdGUoKSAh
PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVl
KCkgfHwgYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZnVsbHNjcmVlbkVsZW1lbnQtPndpbGxT
dG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHZvaWQgRnVs
bHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKCkKICAgICBpZiAoIWZ1bGxzY3JlZW5F
bGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUo
KSB8fCBwYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBp
ZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBE
b2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm47CiAgICAgZnVs
bHNjcmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Ny
b3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVl
bk1hbmFnZXIuaAppbmRleCBlMjczNDE4ZmI1ZThiNmU0YTIwNDFhZGVlZTM5MmE3YzBjNzgyYTIx
Li5iZmQyMTdmZDExOTVhMGM5ZjEzMTA3ZWJkZjdmM2I5YTAwNzNkZDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAg
RnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5mcmFtZSgpOyB9CiAgICAg
RWxlbWVudCogZG9jdW1lbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQoKTsgfQogICAgIGJvb2wgaGFzTGl2aW5nUmVuZGVyVHJlZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZG9jdW1lbnQuaGFzTGl2aW5nUmVuZGVyVHJlZSgpOyB9Ci0gICAgRG9jdW1lbnQ6
OlBhZ2VDYWNoZVN0YXRlIHBhZ2VDYWNoZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVu
dC5wYWdlQ2FjaGVTdGF0ZSgpOyB9CisgICAgRG9jdW1lbnQ6OkJhY2tGb3J3YXJkQ2FjaGVTdGF0
ZSBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgpOyB9CiAgICAgdm9pZCBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQo
KSB7IG1fZG9jdW1lbnQuc2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7IH0KIAogICAgIC8vIFcz
QyBGdWxsc2NyZWVuIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCmluZGV4IDAwMTAzODc5ODc4YTBmZTdjN2ZlY2ZlYzU3MWEzNDFlZTVkMjU0OTAu
LjNlYTliMzhkZDIzMzgwNWU3NjU0ZjQ0NGMxMjliMjdjN2VmYjMwZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBA
QCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKFJl
YXNvbkZvclN1c3BlbnNpb24gd2h5KQogICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKIAogICAgIGlm
IChtX2FjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQpIHsKLSAgICAgICAgLy8gQSBwYWdlIG1h
eSBzdWJzZXF1ZW50bHkgc3VzcGVuZCBET00gb2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50ZXJp
bmcgdGhlIHBhZ2UgY2FjaGUsIGFmdGVyIHRoZSBlbWJlZGRpbmcKKyAgICAgICAgLy8gQSBwYWdl
IG1heSBzdWJzZXF1ZW50bHkgc3VzcGVuZCBET00gb2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50
ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYWZ0ZXIgdGhlIGVtYmVkZGluZwogICAgICAg
ICAvLyBjbGllbnQgcmVxdWVzdGVkIHRoZSBwYWdlIGJlIHN1c3BlbmRlZC4gV2UgaWdub3JlIHN1
Y2ggcmVxdWVzdHMgc28gbG9uZyBhcyB0aGUgZW1iZWRkaW5nIGNsaWVudCByZXF1ZXN0ZWQKICAg
ICAgICAgLy8gdGhlIHN1c3BlbnNpb24gZmlyc3QuIFNlZSA8cmRhcjovL3Byb2JsZW0vMTM3NTQ4
OTY+IGZvciBtb3JlIGRldGFpbHMuCiAgICAgICAgIEFTU0VSVChtX3JlYXNvbkZvclN1c3BlbmRp
bmdBY3RpdmVET01PYmplY3RzID09IFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VXaWxsQmVTdXNw
ZW5kZWQpOwpAQCAtMzA4LDggKzMwOCw4IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhSZWFzb25Gb3JTdXNwZW5zaW9uIHdoeSkKICAgICAgICAg
cmV0dXJuIFNob3VsZENvbnRpbnVlOjpZZXM7CiAgICAgfSk7CiAKLSAgICAvLyBJbiBjYXNlIHRo
ZXJlIHdlcmUgcGVuZGluZyBtZXNzYWdlcyBhdCB0aGUgdGltZSB0aGUgc2NyaXB0IGV4ZWN1dGlv
biBjb250ZXh0IGVudGVyZWQgUGFnZUNhY2hlLAotICAgIC8vIG1ha2Ugc3VyZSB0aG9zZSBnZXQg
ZGlzcGF0Y2hlZCBzaG9ydGx5IGFmdGVyIHJlc3RvcmluZyBmcm9tIFBhZ2VDYWNoZS4KKyAgICAv
LyBJbiBjYXNlIHRoZXJlIHdlcmUgcGVuZGluZyBtZXNzYWdlcyBhdCB0aGUgdGltZSB0aGUgc2Ny
aXB0IGV4ZWN1dGlvbiBjb250ZXh0IGVudGVyZWQgdGhlIEJhY2tGb3J3YXJkQ2FjaGUsCisgICAg
Ly8gbWFrZSBzdXJlIHRob3NlIGdldCBkaXNwYXRjaGVkIHNob3J0bHkgYWZ0ZXIgcmVzdG9yaW5n
IGZyb20gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgcHJvY2Vzc01lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzU29vbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0Jh
Y2tGb3J3YXJkQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENh
Y2hlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MzczNTNmODNjY2ViZGM0NDIzODlhYTJhNDNjYzFiYTNjZGM3
MGE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2Fy
ZENhY2hlLmNwcApAQCAtMCwwICsxLDU1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgorCisjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhv
c3QuaCIKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRQYWdlLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9u
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisjaW5jbHVkZSAiRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgorI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhpc3RvcnlDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmgi
CisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTY3Jp
cHREaXNhbGxvd2VkU2NvcGUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN1
YmZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSA8cGFsL0xvZ2dpbmcuaD4KKyNpbmNsdWRlIDx3dGYv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworI2RlZmluZSBQQ0xPRyguLi4pIExPRyhCYWNrRm9yd2FyZENhY2hlLCAi
JSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgp
LmRhdGEoKSkKKworc3RhdGljIGlubGluZSB2b2lkIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJl
RGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGNsaWVudCwgY29uc3Qg
U3RyaW5nJiByZWFzb24pCit7CisgICAgY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUZhaWx1cmVLZXkoKSwgcmVhc29uLCBT
aG91bGRTYW1wbGU6Ok5vKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGxvZ0JhY2tGb3J3YXJk
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBy
ZWFzb24pCit7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBsb2dCYWNr
Rm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPmRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KCksIHJlYXNvbik7Cit9CisKK3N0YXRpYyBib29sIGNhbkNhY2hlRnJhbWUoRnJh
bWUmIGZyYW1lLCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQsIHVuc2lnbmVkIGluZGVudExldmVsKQoreworICAgIFBDTE9HKCIrLS0tIik7CisgICAgRnJh
bWVMb2FkZXImIGZyYW1lTG9hZGVyID0gZnJhbWUubG9hZGVyKCk7CisKKyAgICAvLyBQcmV2ZW50
IHBhZ2UgY2FjaGluZyBpZiBhIHN1YmZyYW1lIGlzIHN0aWxsIGluIHByb3Zpc2lvbmFsIGxvYWQg
c3RhZ2UuCisgICAgLy8gV2Ugb25seSBkbyB0aGlzIGNoZWNrIGZvciBzdWJmcmFtZXMgYmVjYXVz
ZSB0aGUgbWFpbiBmcmFtZSBpcyByZXVzZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2Uu
CisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpICYmIGZyYW1lTG9hZGVyLnN0YXRlKCkgPT0g
RnJhbWVTdGF0ZVByb3Zpc2lvbmFsKSB7CisgICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgaW4g
cHJvdmlzaW9uYWwgbG9hZCBzdGFnZSIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnByb3Zpc2lvbmFsTG9hZEtleSgpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpICYmIGZyYW1lTG9hZGVyLnN0
YXRlTWFjaGluZSgpLmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkpIHsKKyAgICAg
ICAgUENMT0coIiAgIC1NYWluRnJhbWUgaXMgZGlzcGxheWluZyBpbml0aWFsIGVtcHR5IGRvY3Vt
ZW50Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWZyYW1lLmRv
Y3VtZW50KCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1GcmFtZSBoYXMgbm8gZG9jdW1lbnQiKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghZnJhbWUuZG9jdW1lbnQo
KS0+ZnJhbWUoKSkgeworICAgICAgICBQQ0xPRygiICAgLURvY3VtZW50IGlzIGRldGFjaGVkIGZy
b20gZnJhbWUiKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBm
cmFtZUxvYWRlci5kb2N1bWVudExvYWRlcigpOworICAgIGlmICghZG9jdW1lbnRMb2FkZXIpIHsK
KyAgICAgICAgUENMT0coIiAgIC1UaGVyZSBpcyBubyBEb2N1bWVudExvYWRlciBvYmplY3QiKTsK
KyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0RvY3VtZW50TG9h
ZGVyS2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgVVJMIGN1cnJl
bnRVUkwgPSBkb2N1bWVudExvYWRlci0+dXJsKCk7CisgICAgVVJMIG5ld1VSTCA9IGZyYW1lTG9h
ZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA/IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFs
RG9jdW1lbnRMb2FkZXIoKS0+dXJsKCkgOiBVUkwoKTsKKyAgICBpZiAoIW5ld1VSTC5pc0VtcHR5
KCkpCisgICAgICAgIFBDTE9HKCIgRGV0ZXJtaW5pbmcgaWYgZnJhbWUgY2FuIGJlIGNhY2hlZCBu
YXZpZ2F0aW5nIGZyb20gKCIsIGN1cnJlbnRVUkwuc3RyaW5nKCksICIpIHRvICgiLCBuZXdVUkwu
c3RyaW5nKCksICIpOiIpOworICAgIGVsc2UKKyAgICAgICAgUENMT0coIiBEZXRlcm1pbmluZyBp
ZiBzdWJmcmFtZSB3aXRoIFVSTCAoIiwgY3VycmVudFVSTC5zdHJpbmcoKSwgIikgY2FuIGJlIGNh
Y2hlZDoiKTsKKworICAgIGJvb2wgaXNDYWNoZWFibGUgPSB0cnVlOworICAgIC8vIERvIG5vdCBj
YWNoZSBlcnJvciBwYWdlcyAodGhlc2UgY2FuIGJlIHJlY29nbml6ZWQgYXMgcGFnZXMgd2l0aCBz
dWJzdGl0dXRlIGRhdGEgb3IgdW5yZWFjaGFibGUgVVJMcykuCisgICAgaWYgKGRvY3VtZW50TG9h
ZGVyLT5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSAmJiAhZG9jdW1lbnRMb2FkZXItPnN1YnN0
aXR1dGVEYXRhKCkuZmFpbGluZ1VSTCgpLmlzRW1wdHkoKSkgeworICAgICAgICBQQ0xPRygiICAg
LUZyYW1lIGlzIGFuIGVycm9yIHBhZ2UiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZh
aWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjppc0Vycm9yUGFnZUtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBm
YWxzZTsKKyAgICB9CisgICAgaWYgKGZyYW1lTG9hZGVyLnN1YmZyYW1lTG9hZGVyKCkuY29udGFp
bnNQbHVnaW5zKCkgJiYgIWZyYW1lLnBhZ2UoKS0+c2V0dGluZ3MoKS5iYWNrRm9yd2FyZENhY2hl
U3VwcG9ydHNQbHVnaW5zKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1GcmFtZSBjb250YWlucyBw
bHVnaW5zIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01l
c3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aGFz
UGx1Z2luc0tleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAg
aWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgIWZyYW1lTG9hZGVyLmhpc3RvcnkoKS5jdXJyZW50
SXRlbSgpKSB7CisgICAgICAgIFBDTE9HKCIgICAtTWFpbiBmcmFtZSBoYXMgbm8gY3VycmVudCBo
aXN0b3J5IGl0ZW0iKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9z
dGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojpub0N1cnJlbnRIaXN0b3J5SXRlbUtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxz
ZTsKKyAgICB9CisgICAgaWYgKGZyYW1lTG9hZGVyLnF1aWNrUmVkaXJlY3RDb21pbmcoKSkgewor
ICAgICAgICBQQ0xPRygiICAgLVF1aWNrIHJlZGlyZWN0IGlzIGNvbWluZyIpOworICAgICAgICBs
b2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnF1aXJrUmVkaXJlY3RDb21pbmdLZXko
KSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgfQorICAgIGlmIChkb2N1bWVu
dExvYWRlci0+aXNMb2FkaW5nKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudExvYWRl
ciBpcyBzdGlsbCBsb2FkaW5nIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJl
RGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6aXNMb2FkaW5nS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwor
ICAgIH0KKyAgICBpZiAoZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSkgeworICAgICAgICBQ
Q0xPRygiICAgLURvY3VtZW50TG9hZGVyIGlzIGluIHRoZSBtaWRkbGUgb2Ygc3RvcHBpbmciKTsK
KyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkb2N1bWVudExvYWRl
clN0b3BwaW5nS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKwor
ICAgIFZlY3RvcjxBY3RpdmVET01PYmplY3QqPiB1bnN1c3BlbmRhYmxlT2JqZWN0czsKKyAgICBp
ZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiAhZnJhbWUuZG9jdW1lbnQoKS0+Y2FuU3VzcGVuZEFjdGl2
ZURPTU9iamVjdHNGb3JEb2N1bWVudFN1c3BlbnNpb24oJnVuc3VzcGVuZGFibGVPYmplY3RzKSkg
eworICAgICAgICBQQ0xPRygiICAgLVRoZSBkb2N1bWVudCBjYW5ub3Qgc3VzcGVuZCBpdHMgYWN0
aXZlIERPTSBPYmplY3RzIik7CisgICAgICAgIGZvciAoYXV0byogYWN0aXZlRE9NT2JqZWN0IDog
dW5zdXNwZW5kYWJsZU9iamVjdHMpIHsKKyAgICAgICAgICAgIFBDTE9HKCIgICAgLSBVbnN1c3Bl
bmRhYmxlOiAiLCBhY3RpdmVET01PYmplY3QtPmFjdGl2ZURPTU9iamVjdE5hbWUoKSk7CisgICAg
ICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnVuc3VzcGVuZGFibGVET01PYmplY3RLZXkoKSwgYWN0aXZlRE9N
T2JqZWN0LT5hY3RpdmVET01PYmplY3ROYW1lKCksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAg
ICAgICAgVU5VU0VEX1BBUkFNKGFjdGl2ZURPTU9iamVjdCk7CisgICAgICAgIH0KKyAgICAgICAg
bG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5ub3RTdXNwZW5kQWN0aXZlRE9N
T2JqZWN0c0tleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGludmVzdGlnYXRpbmcgY2FjaGluZyBmcmFtZXMgdGhhdCBo
YXZlIGFuIGFzc29jaWF0ZWQKKyAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9i
bGVtLzU5MTc4OTk+IHRyYWNrcyB0aGF0IHdvcmsuCisgICAgaWYgKCFkb2N1bWVudExvYWRlci0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKS5jYW5DYWNoZUluQmFja0ZvcndhcmRDYWNoZSgpKSB7Cisg
ICAgICAgIFBDTE9HKCIgICAtVGhlIERvY3VtZW50TG9hZGVyIHVzZXMgYW4gYXBwbGljYXRpb24g
Y2FjaGUiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVz
c2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphcHBs
aWNhdGlvbkNhY2hlS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0K
KyAgICBpZiAoIWZyYW1lTG9hZGVyLmNsaWVudCgpLmNhbkNhY2hlUGFnZSgpKSB7CisgICAgICAg
IFBDTE9HKCIgICAtVGhlIGNsaWVudCBzYXlzIHRoaXMgZnJhbWUgY2Fubm90IGJlIGNhY2hlZCIp
OworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmRlbmllZEJ5Q2xp
ZW50S2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKworICAgIGZv
ciAoRnJhbWUqIGNoaWxkID0gZnJhbWUudHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICghY2FuQ2FjaGVG
cmFtZSgqY2hpbGQsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRMZXZlbCArIDEpKQor
ICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAgUENMT0co
aXNDYWNoZWFibGUgPyAiIEZyYW1lIENBTiBiZSBjYWNoZWQiIDogIiBGcmFtZSBDQU5OT1QgYmUg
Y2FjaGVkIik7CisgICAgUENMT0coIistLS0iKTsKKyAgICAKKyAgICByZXR1cm4gaXNDYWNoZWFi
bGU7Cit9CisKK3N0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQYWdlJiBwYWdlKQoreworICAgIFJF
TEVBU0VfQVNTRVJUKCFwYWdlLmlzUmVzdG9yaW5nQ2FjaGVkUGFnZSgpKTsKKworICAgIHVuc2ln
bmVkIGluZGVudExldmVsID0gMDsKKyAgICBQQ0xPRygiLS0tLS0tLS1cbiBEZXRlcm1pbmluZyBp
ZiBwYWdlIGNhbiBiZSBjYWNoZWQ6Iik7CisKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7
CisgICAgYm9vbCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJhbWUocGFnZS5tYWluRnJhbWUoKSwg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVsICsgMSk7CisKKyAgICBpZiAoIXBh
Z2Uuc2V0dGluZ3MoKS51c2VzQmFja0ZvcndhcmRDYWNoZSgpIHx8IHBhZ2UuaXNSZXNvdXJjZUNh
Y2hpbmdEaXNhYmxlZEJ5V2ViSW5zcGVjdG9yKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1QYWdl
IHNldHRpbmdzIHNheXMgYi9mIGNhY2hlIGRpc2FibGVkIik7CisgICAgICAgIGxvZ0JhY2tGb3J3
YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNEaXNhYmxlZEtleSgpKTsKKyAgICAgICAgaXNDYWNo
ZWFibGUgPSBmYWxzZTsKKyAgICB9CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXI6Omlz
QWN0aXZlQXQoJnBhZ2UpKSB7CisgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZp
Y2VNb3Rpb24iKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpk
ZXZpY2VNb3Rpb25LZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgfQor
ICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7
CisgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOwor
ICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmRldmljZU9yaWVudGF0
aW9uS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKyNlbmRpZgor
CisgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSA9IHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCku
bG9hZFR5cGUoKTsKKyAgICBzd2l0Y2ggKGxvYWRUeXBlKSB7CisgICAgY2FzZSBGcmFtZUxvYWRU
eXBlOjpSZWxvYWQ6CisgICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhlIGNhY2hlIG9u
IGEgcmVsb2FkLCBzaW5jZSB3ZSB3aWxsIGp1c3Qgd3JpdGUgb3ZlciBpdCBhZ2FpbiB3aGVuIHdl
IGxlYXZlIHRoYXQgcGFnZS4KKyAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5cGUgaXM6IFJlbG9h
ZCIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdl
KGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlbG9hZEtl
eSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBGcmFtZUxvYWRUeXBlOjpTYW1lOiAvLyB1c2VyIGxvYWRzIHNhbWUgVVJMIGFnYWluIChi
dXQgbm90IHJlbG9hZCBidXR0b24pCisgICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhl
IGNhY2hlIG9uIGEgc2FtZSBsb2FkLCBzaW5jZSB3ZSB3aWxsIGp1c3Qgd3JpdGUgb3ZlciBpdCBh
Z2FpbiB3aGVuIHdlIGxlYXZlIHRoYXQgcGFnZS4KKyAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5
cGUgaXM6IFNhbWUiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9z
dGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpzYW1lTG9hZEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9y
d2FyZExpc3Q6CisgICAgICAgIC8vIERvbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUg
bWlkZGxlIG9mIGEgcmVkaXJlY3QsIHNpbmNlIHdlIHdpbGwgd2FudCB0byBzdG9yZSB0aGUgZmlu
YWwgcGFnZSB3ZSBlbmQgdXAgb24uCisgICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBS
ZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3QiKTsKKyAgICAgICAgbG9nQmFja0Zvcndh
cmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZWRpcmVjdEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFi
bGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZXBs
YWNlOgorICAgICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHJlcGxh
Y2UsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUg
dGhhdCBwYWdlLgorICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVwbGFjZSIpOwor
ICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlcGxhY2VLZXkoKSk7
CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbjogeworICAgICAgICAvLyBObyBwb2ludCB3
cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHJlbG9hZCwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRl
IG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0IHBhZ2UuCisgICAgICAgIFBDTE9HKCIg
ICAtTG9hZCB0eXBlIGlzOiBSZWxvYWRGcm9tT3JpZ2luIik7CisgICAgICAgIGxvZ0JhY2tGb3J3
YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkRnJvbU9yaWdpbktleSgpKTsKKyAgICAgICAg
aXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgRnJh
bWVMb2FkVHlwZTo6UmVsb2FkRXhwaXJlZE9ubHk6IHsKKyAgICAgICAgLy8gTm8gcG9pbnQgd3Jp
dGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBv
dmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgorICAgICAgICBQQ0xPRygiICAg
LUxvYWQgdHlwZSBpczogUmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZCIpOworICAgICAgICBsb2dC
YWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlbG9hZFJldmFsaWRhdGluZ0V4cGlyZWRL
ZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkOgorICAgIGNhc2UgRnJhbWVMb2Fk
VHlwZTo6QmFjazoKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQ6CisgICAgY2FzZSBG
cmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQ6IC8vIGEgbXVsdGktaXRlbSBob3AgaW4g
dGhlIGJhY2tmb3J3YXJkIGxpc3QKKyAgICAgICAgLy8gQ2FjaGVhYmxlLgorICAgICAgICBicmVh
azsKKyAgICB9CisgICAgCisgICAgaWYgKGlzQ2FjaGVhYmxlKQorICAgICAgICBQQ0xPRygiIFBh
Z2UgQ0FOIGJlIGNhY2hlZFxuLS0tLS0tLS0iKTsKKyAgICBlbHNlCisgICAgICAgIFBDTE9HKCIg
UGFnZSBDQU5OT1QgYmUgY2FjaGVkXG4tLS0tLS0tLSIpOworCisgICAgZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5n
S2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhbkNh
Y2hlS2V5KCksIGlzQ2FjaGVhYmxlID8gRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzIDogRGlh
Z25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICByZXR1cm4g
aXNDYWNoZWFibGU7Cit9CisKK0JhY2tGb3J3YXJkQ2FjaGUmIEJhY2tGb3J3YXJkQ2FjaGU6OnNp
bmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEJhY2tGb3J3YXJkQ2FjaGU+
IGdsb2JhbEJhY2tGb3J3YXJkQ2FjaGU7CisgICAgcmV0dXJuIGdsb2JhbEJhY2tGb3J3YXJkQ2Fj
aGU7Cit9CisKK0JhY2tGb3J3YXJkQ2FjaGU6OkJhY2tGb3J3YXJkQ2FjaGUoKQoreworICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxh
ZywgW10geworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5X
ZWJLaXQuc2hvd0JhY2tGb3J3YXJkQ2FjaGUiLCBbXSB7CisgICAgICAgICAgICBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5kdW1wKCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2
b2lkIEJhY2tGb3J3YXJkQ2FjaGU6OmR1bXAoKSBjb25zdAoreworICAgIFdURkxvZ0Fsd2F5cygi
QmFjay9Gb3J3YXJkIENhY2hlOiIpOworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsK
KyAgICAgICAgQ2FjaGVkUGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7Cisg
ICAgICAgIFdURkxvZ0Fsd2F5cygiICBQYWdlICVwLCBkb2N1bWVudCAlcCAlcyIsICZjYWNoZWRQ
YWdlLnBhZ2UoKSwgY2FjaGVkUGFnZS5kb2N1bWVudCgpLCBjYWNoZWRQYWdlLmRvY3VtZW50KCkg
PyBjYWNoZWRQYWdlLmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAi
Iik7CisgICAgfQorfQorCitib29sIEJhY2tGb3J3YXJkQ2FjaGU6OmNhbkNhY2hlKFBhZ2UmIHBh
Z2UpIGNvbnN0Cit7CisgICAgaWYgKCFtX21heFNpemUpIHsKKyAgICAgICAgbG9nQmFja0Zvcndh
cmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjppc0Rpc2FibGVkS2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgaWYgKE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVBy
ZXNzdXJlKCkpIHsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmRlck1lbW9yeVByZXNzdXJl
S2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHJldHVybiBj
YW5DYWNoZVBhZ2UocGFnZSk7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmVUb1Np
emVOb3codW5zaWduZWQgc2l6ZSwgUHJ1bmluZ1JlYXNvbiBwcnVuaW5nUmVhc29uKQoreworICAg
IFNldEZvclNjb3BlPHVuc2lnbmVkPiBjaGFuZ2UobV9tYXhTaXplLCBzaXplKTsKKyAgICBwcnVu
ZShwcnVuaW5nUmVhc29uKTsKK30KKwordm9pZCBCYWNrRm9yd2FyZENhY2hlOjpzZXRNYXhTaXpl
KHVuc2lnbmVkIG1heFNpemUpCit7CisgICAgbV9tYXhTaXplID0gbWF4U2l6ZTsKKyAgICBwcnVu
ZShQcnVuaW5nUmVhc29uOjpOb25lKTsKK30KKwordW5zaWduZWQgQmFja0ZvcndhcmRDYWNoZTo6
ZnJhbWVDb3VudCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMu
c2l6ZSgpOworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKKyAgICAgICAgQVNTRVJU
KGl0ZW0tPm1fY2FjaGVkUGFnZSk7CisgICAgICAgIGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNo
ZWRQYWdlLT5jYWNoZWRNYWluRnJhbWUoKS0+ZGVzY2VuZGFudEZyYW1lQ291bnQoKTsKKyAgICB9
CisgICAgCisgICAgcmV0dXJuIGZyYW1lQ291bnQ7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNo
ZTo6bWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKFBhZ2UmIHBhZ2UpCit7Cisg
ICAgZm9yIChhdXRvJiBpdGVtIDogbV9pdGVtcykgeworICAgICAgICBDYWNoZWRQYWdlJiBjYWNo
ZWRQYWdlID0gKml0ZW0tPm1fY2FjaGVkUGFnZTsKKyAgICAgICAgaWYgKCZwYWdlLm1haW5GcmFt
ZSgpID09ICZjYWNoZWRQYWdlLmNhY2hlZE1haW5GcmFtZSgpLT52aWV3KCktPmZyYW1lKCkpCisg
ICAgICAgICAgICBjYWNoZWRQYWdlLm1hcmtGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoKTsK
KyAgICB9Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ29udGVudHNT
aXplQ2hhbmdlZChQYWdlJiBwYWdlKQoreworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMp
IHsKKyAgICAgICAgQ2FjaGVkUGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7
CisgICAgICAgIGlmICgmcGFnZS5tYWluRnJhbWUoKSA9PSAmY2FjaGVkUGFnZS5jYWNoZWRNYWlu
RnJhbWUoKS0+dmlldygpLT5mcmFtZSgpKQorICAgICAgICAgICAgY2FjaGVkUGFnZS5tYXJrRm9y
Q29udGVudHNTaXplQ2hhbmdlZCgpOworICAgIH0KK30KKworI2lmIEVOQUJMRShWSURFT19UUkFD
SykKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2Vz
Q2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9pdGVtcykgeworICAgICAgICBB
U1NFUlQoaXRlbS0+bV9jYWNoZWRQYWdlKTsKKyAgICAgICAgaXRlbS0+bV9jYWNoZWRQYWdlLT5t
YXJrRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOworICAgIH0KK30KKyNlbmRpZgorCitz
dGF0aWMgU3RyaW5nIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KFBydW5pbmdS
ZWFzb24gcHJ1bmluZ1JlYXNvbikKK3sKKyAgICBzd2l0Y2ggKHBydW5pbmdSZWFzb24pIHsKKyAg
ICBjYXNlIFBydW5pbmdSZWFzb246Ok1lbW9yeVByZXNzdXJlOgorICAgICAgICByZXR1cm4gRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01lbW9yeVByZXNzdXJlS2V5KCk7CisgICAg
Y2FzZSBQcnVuaW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOgorICAgICAgICByZXR1cm4gRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb1Byb2Nlc3NTdXNwZW5kZWQoKTsKKyAgICBj
YXNlIFBydW5pbmdSZWFzb246OlJlYWNoZWRNYXhTaXplOgorICAgICAgICByZXR1cm4gRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01heFNpemVSZWFjaGVkKCk7CisgICAgY2FzZSBQ
cnVuaW5nUmVhc29uOjpOb25lOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CisKK3N0YXRpYyB2b2lk
IHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShQYWdlJiBwYWdlLCBEb2N1bWVudDo6QmFja0Zvcndh
cmRDYWNoZVN0YXRlIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkKK3sKKyAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1
bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShC
YWNrRm9yd2FyZENhY2hlU3RhdGUpOworICAgIH0KK30KKworLy8gV2hlbiBlbnRlcmluZyBiYWNr
L2ZvcndhcmQgY2FjaGUsIHRlYXIgZG93biB0aGUgcmVuZGVyIHRyZWUgYmVmb3JlIHNldHRpbmcg
dGhlIGluLWNhY2hlIGZsYWcuCisvLyBUaGlzIG1haW50YWlucyB0aGUgaW52YXJpYW50IHRoYXQg
cmVuZGVyIHRyZWVzIGFyZSBuZXZlciBwcmVzZW50IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUu
CisvLyBOb3RlIHRoYXQgZGVzdHJ1Y3Rpb24gaGFwcGVucyBib3R0b20tdXAgc28gdGhhdCB0aGUg
bWFpbiBmcmFtZSdzIHRyZWUgZGllcyBsYXN0Lgorc3RhdGljIHZvaWQgZGVzdHJveVJlbmRlclRy
ZWUoRnJhbWUmIG1haW5GcmFtZSkKK3sKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFt
ZS50cmVlKCkudHJhdmVyc2VQcmV2aW91cyhDYW5XcmFwOjpZZXMpOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlUHJldmlvdXMoQ2FuV3JhcDo6Tm8pKSB7CisgICAgICAgIGlm
ICghZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0
byYgZG9jdW1lbnQgPSAqZnJhbWUtPmRvY3VtZW50KCk7CisgICAgICAgIGlmIChkb2N1bWVudC5o
YXNMaXZpbmdSZW5kZXJUcmVlKCkpCisgICAgICAgICAgICBkb2N1bWVudC5kZXN0cm95UmVuZGVy
VHJlZSgpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNp
dmVseShGcmFtZSYgZnJhbWUpCit7CisgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIHN0b3BM
b2FkaW5nKCkgd2lsbCBmaXJlIHRoZSBwYWdlaGlkZSBldmVudCBpbiBlYWNoIHN1YmZyYW1lIGFu
ZCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHN0YXRlcworICAgIC8vIHRoYXQgdGhlIHBhcmVudCBk
b2N1bWVudCdzIGlnbm9yZS1vcGVucy1kdXJpbmctdW5sb2FkIGNvdW50ZXIgc2hvdWxkIGJlIGlu
Y3JlbWVudGVkIHdoaWxlIHRoZQorICAgIC8vIHBhZ2VoaWRlIGV2ZW50IGlzIGJlaW5nIGZpcmVk
IGluIGl0cyBzdWJmcmFtZXM6CisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9t
dWx0aXBhZ2UvYnJvd3NlcnMuaHRtbCN1bmxvYWQtYS1kb2N1bWVudAorICAgIElnbm9yZU9wZW5z
RHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlciBpZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50
SW5jcmVtZW50ZXIoZG9jdW1lbnQpOworCisgICAgZnJhbWUubG9hZGVyKCkuc3RvcExvYWRpbmco
VW5sb2FkRXZlbnRQb2xpY3lVbmxvYWRBbmRQYWdlSGlkZSk7CisKKyAgICBmb3IgKFJlZlB0cjxG
cmFtZT4gY2hpbGQgPSBmcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkpCisgICAgICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVj
dXJzaXZlbHkoKmNoaWxkKTsKK30KKworYm9vbCBCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hl
YWJsZShIaXN0b3J5SXRlbSYgaXRlbSwgUGFnZSogcGFnZSkKK3sKKyAgICBpZiAoaXRlbS5pc0lu
QmFja0ZvcndhcmRDYWNoZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRl
cigpLnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisKKyAgICBpZiAoIWNhbkNhY2hlKCpwYWdl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghcGFn
ZS0+aXNVdGlsaXR5UGFnZSgpLCAiVXRpbGl0eSBwYWdlcyBzdWNoIGFzIFNWR0ltYWdlIHBhZ2Vz
IHNob3VsZCBuZXZlciBnbyBpbnRvIEJhY2tGb3J3YXJkQ2FjaGUiKTsKKworICAgIHNldEJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgqcGFnZSwgRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJk
Q2FjaGUpOworCisgICAgLy8gRm9jdXMgdGhlIG1haW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1
c2VkIHN1YmZyYW1lIChpZiB3ZSBoYXZlIG9uZSkuIFdlIGRvIHRoaXMgaGVyZSwKKyAgICAvLyBi
ZWZvcmUgdGhlIHBhZ2UgZW50ZXJzIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIHdoaWxlIHdlIHN0
aWxsIGNhbiBkaXNwYXRjaCBET00gYmx1ci9mb2N1cyBldmVudHMuCisgICAgaWYgKHBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLmZvY3VzZWRGcmFtZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJnBhZ2UtPm1haW5GcmFtZSgpKTsKKworICAgIC8vIEZp
cmUgdGhlIHBhZ2VoaWRlIGV2ZW50IGluIGFsbCBmcmFtZXMuCisgICAgZmlyZVBhZ2VIaWRlRXZl
bnRSZWN1cnNpdmVseShwYWdlLT5tYWluRnJhbWUoKSk7CisKKyAgICBkZXN0cm95UmVuZGVyVHJl
ZShwYWdlLT5tYWluRnJhbWUoKSk7CisKKyAgICAvLyBTdG9wIGFsbCBsb2FkcyBhZ2FpbiBiZWZv
cmUgY2hlY2tpbmcgaWYgd2UgY2FuIHN0aWxsIGNhY2hlIHRoZSBwYWdlIGFmdGVyIGZpcmluZyB0
aGUgcGFnZWhpZGUKKyAgICAvLyBldmVudCwgc2luY2UgdGhlIHBhZ2UgbWF5IGhhdmUgc3RhcnRl
ZCBwaW5nIGxvYWRzIGluIGl0cyBwYWdlaGlkZSBldmVudCBoYW5kbGVyLgorICAgIHBhZ2UtPm1h
aW5GcmFtZSgpLmxvYWRlcigpLnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisKKyAgICAvLyBD
aGVjayB0aGF0IHRoZSBwYWdlIGlzIHN0aWxsIHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0
aGUgcGFnZWhpZGUgZXZlbnQuIFRoZSBKUyBldmVudCBoYW5kbGVycworICAgIC8vIGNvdWxkIGhh
dmUgYWx0ZXJlZCB0aGUgcGFnZSBpbiBhIHdheSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4K
KyAgICBpZiAoIWNhbkNhY2hlKCpwYWdlKSkgeworICAgICAgICBzZXRCYWNrRm9yd2FyZENhY2hl
U3RhdGUoKnBhZ2UsIERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKCpwYWdl
LCBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKTsKKworICAgIHsKKyAgICAgICAgLy8gTWFr
ZSBzdXJlIHdlIGRvbid0IGZpcmUgYW55IEpTIGV2ZW50cyBpbiB0aGlzIHNjb3BlLgorICAgICAg
ICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZCBzY3JpcHREaXNhbGxvd2VkU2Nv
cGU7CisKKyAgICAgICAgaXRlbS5zZXRDYWNoZWRQYWdlKG1ha2VVbmlxdWU8Q2FjaGVkUGFnZT4o
KnBhZ2UpKTsKKyAgICAgICAgaXRlbS5tX3BydW5pbmdSZWFzb24gPSBQcnVuaW5nUmVhc29uOjpO
b25lOworICAgICAgICBtX2l0ZW1zLmFkZCgmaXRlbSk7CisgICAgfQorICAgIHBydW5lKFBydW5p
bmdSZWFzb246OlJlYWNoZWRNYXhTaXplKTsKKworICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJk
Q2FjaGUsICJCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hlYWJsZSBpdGVtOiAlcywgc2l6ZTog
JXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VD
b3VudCgpLCBtYXhTaXplKCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0ZDo6dW5pcXVl
X3B0cjxDYWNoZWRQYWdlPiBCYWNrRm9yd2FyZENhY2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVt
LCBQYWdlKiBwYWdlKQoreworICAgIGlmICghaXRlbS5tX2NhY2hlZFBhZ2UpIHsKKyAgICAgICAg
aWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCisgICAgICAg
ICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIHBy
dW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KGl0ZW0ubV9wcnVuaW5nUmVhc29uKSk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIG1faXRlbXMucmVtb3ZlKCZp
dGVtKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IGl0ZW0u
dGFrZUNhY2hlZFBhZ2UoKTsKKworICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJC
YWNrRm9yd2FyZENhY2hlOjp0YWtlIGl0ZW06ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5pZGVu
dGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7
CisKKyAgICBpZiAoY2FjaGVkUGFnZS0+aGFzRXhwaXJlZCgpIHx8IChwYWdlICYmIHBhZ2UtPmlz
UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRCeVdlYkluc3BlY3RvcigpKSkgeworICAgICAgICBMT0co
QmFja0ZvcndhcmRDYWNoZSwgIk5vdCByZXN0b3JpbmcgcGFnZSBmb3IgJXMgZnJvbSBiYWNrL2Zv
cndhcmQgY2FjaGUgYmVjYXVzZSBjYWNoZSBlbnRyeSBoYXMgZXhwaXJlZCIsIGl0ZW0udXJsKCku
c3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJl
ZEtleSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGNh
Y2hlZFBhZ2U7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQ
YWdlKFBhZ2UmIHBhZ2UpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoIW1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSwgIldlIHNob3VsZCBub3QgcmVl
bnRlciB0aGlzIG1ldGhvZCIpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVtb3ZlQWxsSXRl
bXNGb3JQYWdlU2NvcGUgeyBtX2lzSW5SZW1vdmVBbGxJdGVtc0ZvclBhZ2UsIHRydWUgfTsKKyNl
bmRpZgorCisgICAgZm9yIChhdXRvIGl0ID0gbV9pdGVtcy5iZWdpbigpOyBpdCAhPSBtX2l0ZW1z
LmVuZCgpOykgeworICAgICAgICAvLyBJbmNyZW1lbnQgaXRlcmF0b3IgZmlyc3Qgc28gaXQgc3Rh
eXMgdmFsaWQgYWZ0ZXIgdGhlIHJlbW92YWwuCisgICAgICAgIGF1dG8gY3VycmVudCA9IGl0Owor
ICAgICAgICArK2l0OworICAgICAgICBpZiAoJigqY3VycmVudCktPm1fY2FjaGVkUGFnZS0+cGFn
ZSgpID09ICZwYWdlKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhCYWNrRm9yd2FyZENhY2hl
LCAiQmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQYWdlIHJlbW92aW5nIGl0ZW06
ICVzLCBzaXplOiAldSAvICV1IiwgKCpjdXJyZW50KS0+aWRlbnRpZmllcigpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpIC0gMSwgbWF4U2l6ZSgpKTsKKyAgICAgICAgICAgICgq
Y3VycmVudCktPnNldENhY2hlZFBhZ2UobnVsbHB0cik7CisgICAgICAgICAgICBtX2l0ZW1zLnJl
bW92ZShjdXJyZW50KTsKKyAgICAgICAgfQorICAgIH0KK30KKworQ2FjaGVkUGFnZSogQmFja0Zv
cndhcmRDYWNoZTo6Z2V0KEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQoreworICAgIENh
Y2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBpdGVtLm1fY2FjaGVkUGFnZS5nZXQoKTsKKyAgICBpZiAo
IWNhY2hlZFBhZ2UpIHsKKyAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5p
bmdSZWFzb246Ok5vbmUpCisgICAgICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURp
YWdub3N0aWNNZXNzYWdlKHBhZ2UsIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5
KGl0ZW0ubV9wcnVuaW5nUmVhc29uKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIGlmIChjYWNoZWRQYWdlLT5oYXNFeHBpcmVkKCkgfHwgKHBhZ2UgJiYgcGFnZS0+aXNS
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZEJ5V2ViSW5zcGVjdG9yKCkpKSB7CisgICAgICAgIExPRyhC
YWNrRm9yd2FyZENhY2hlLCAiTm90IHJlc3RvcmluZyBwYWdlIGZvciAlcyBmcm9tIGJhY2svZm9y
d2FyZCBjYWNoZSBiZWNhdXNlIGNhY2hlIGVudHJ5IGhhcyBleHBpcmVkIiwgaXRlbS51cmwoKS5z
dHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleHBpcmVk
S2V5KCkpOworICAgICAgICByZW1vdmUoaXRlbSk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKyAgICByZXR1cm4gY2FjaGVkUGFnZTsKK30KKwordm9pZCBCYWNrRm9yd2FyZENhY2hl
OjpyZW1vdmUoSGlzdG9yeUl0ZW0mIGl0ZW0pCit7CisgICAgLy8gU2FmZWx5IGlnbm9yZSBhdHRl
bXB0cyB0byByZW1vdmUgaXRlbXMgbm90IGluIHRoZSBjYWNoZS4KKyAgICBpZiAoIWl0ZW0ubV9j
YWNoZWRQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7
CisgICAgaXRlbS5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOworCisgICAgUkVMRUFTRV9MT0coQmFj
a0ZvcndhcmRDYWNoZSwgIkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZSBpdGVtOiAlcywgc2l6ZTog
JXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VD
b3VudCgpLCBtYXhTaXplKCkpOworCit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUo
UHJ1bmluZ1JlYXNvbiBwcnVuaW5nUmVhc29uKQoreworICAgIHdoaWxlIChwYWdlQ291bnQoKSA+
IG1heFNpemUoKSkgeworICAgICAgICBhdXRvIG9sZGVzdEl0ZW0gPSBtX2l0ZW1zLnRha2VGaXJz
dCgpOworICAgICAgICBvbGRlc3RJdGVtLT5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOworICAgICAg
ICBvbGRlc3RJdGVtLT5tX3BydW5pbmdSZWFzb24gPSBwcnVuaW5nUmVhc29uOworICAgICAgICBS
RUxFQVNFX0xPRyhCYWNrRm9yd2FyZENhY2hlLCAiQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUgcmVt
b3ZpbmcgaXRlbTogJXMsIHNpemU6ICV1IC8gJXUiLCBvbGRlc3RJdGVtLT5pZGVudGlmaWVyKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7CisgICAgfQor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0Zv
cndhcmRDYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNGU2MGZhNDZlZWY2ZjYyNGExNDBmMGUyY2UxY2U0
M2IwM2NlMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ2FjaGUuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSGlz
dG9yeUl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0
SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIENhY2hlZFBhZ2U7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7CisK
K2VudW0gY2xhc3MgUHJ1bmluZ1JlYXNvbiB7IE5vbmUsIFByb2Nlc3NTdXNwZW5kZWQsIE1lbW9y
eVByZXNzdXJlLCBSZWFjaGVkTWF4U2l6ZSB9OworCitjbGFzcyBCYWNrRm9yd2FyZENhY2hlIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCYWNrRm9yd2FyZENhY2hlKTsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhl
IGdsb2JhbCBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEJh
Y2tGb3J3YXJkQ2FjaGUmIHNpbmdsZXRvbigpOworCisgICAgYm9vbCBjYW5DYWNoZShQYWdlJikg
Y29uc3Q7CisKKyAgICAvLyBVc2VkIHdoZW4gbWVtb3J5IGlzIGxvdyB0byBwcnVuZSBzb21lIGNh
Y2hlZCBwYWdlcy4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBydW5lVG9TaXplTm93KHVuc2ln
bmVkIG1heFNpemUsIFBydW5pbmdSZWFzb24pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
TWF4U2l6ZSh1bnNpZ25lZCk7IC8vIG51bWJlciBvZiBwYWdlcyB0byBjYWNoZS4KKyAgICB1bnNp
Z25lZCBtYXhTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhTaXplOyB9CisKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGFkZElmQ2FjaGVhYmxlKEhpc3RvcnlJdGVtJiwgUGFnZSopOyAvLyBQcnVu
ZXMgaWYgbWF4U2l6ZSgpIGlzIGV4Y2VlZGVkLgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlKEhpc3RvcnlJdGVtJik7CisgICAgQ2FjaGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVtJiwgUGFn
ZSopOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJdGVtJiwg
UGFnZSopOworCisgICAgdm9pZCByZW1vdmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYpOworCisgICAg
dW5zaWduZWQgcGFnZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtcy5zaXplKCk7IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBmcmFtZUNvdW50KCkgY29uc3Q7CisKKyAgICB2b2lk
IG1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZChQYWdlJik7CisgICAgdm9pZCBt
YXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFuZ2VkKFBhZ2UmKTsKKyNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCisgICAgdm9pZCBtYXJrUGFnZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7
CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgfkJhY2tG
b3J3YXJkQ2FjaGUoKSA9IGRlbGV0ZTsgLy8gTWFrZSBzdXJlIG5vYm9keSBhY2NpZGVudGFsbHkg
Y2FsbHMgZGVsZXRlIC0tIFdlYkNvcmUgZG9lcyBub3QgZGVsZXRlIHNpbmdsZXRvbnMuCisKKyAg
ICBzdGF0aWMgYm9vbCBjYW5DYWNoZVBhZ2VDb250YWluaW5nVGhpc0ZyYW1lKEZyYW1lJik7CisK
KyAgICB2b2lkIHBydW5lKFBydW5pbmdSZWFzb24pOworICAgIHZvaWQgZHVtcCgpIGNvbnN0Owor
CisgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEhpc3RvcnlJdGVtPj4gbV9pdGVtczsKKyAgICB1bnNp
Z25lZCBtX21heFNpemUgezB9OworCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wgbV9p
c0luUmVtb3ZlQWxsSXRlbXNGb3JQYWdlIHsgZmFsc2UgfTsKKyNlbmRpZgorCisgICAgZnJpZW5k
IGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8QmFja0ZvcndhcmRDYWNoZT47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0Nh
Y2hlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCmlu
ZGV4IDhmMWU0ZGEwMzZhNDJiNGI1ZWY3MGFmNWViZDEzYjAzODZlOGYyN2YuLjg3YWIxNzMxM2Qz
NjJkM2FlZDkwMzU4MTM2YjhjNzMyOTc0NjI5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2Fj
aGVkRnJhbWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkRnJhbWUuaCIKIAorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNp
bmNsdWRlICJDU1NBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRnJhbWVQ
bGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCkBAIC00MSw3ICs0Miw2IEBA
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25EaXNhYmxlci5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5k
ZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCB2b2lkIENhY2hlZEZy
YW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAgIGlmIChtX2RvY3VtZW50LT5zdmdFeHRlbnNpb25z
KCkpCiAgICAgICAgICAgICBtX2RvY3VtZW50LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkudW5wYXVz
ZUFuaW1hdGlvbnMoKTsKIAotICAgICAgICBtX2RvY3VtZW50LT5yZXN1bWUoUmVhc29uRm9yU3Vz
cGVuc2lvbjo6UGFnZUNhY2hlKTsKKyAgICAgICAgbV9kb2N1bWVudC0+cmVzdW1lKFJlYXNvbkZv
clN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgICAgIC8vIEl0IGlzIG5lY2Vz
c2FyeSB0byB1cGRhdGUgYW55IHBsYXRmb3JtIHNjcmlwdCBvYmplY3RzIGFmdGVyIHJlc3Rvcmlu
ZyB0aGUKICAgICAgICAgLy8gY2FjaGVkIHBhZ2UuCiAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS51
cGRhdGVQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKIAotICAgICAgICBmcmFtZS0+bG9hZGVyKCku
Y2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICAgICAgZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgICAg
IHBydW5lRGV0YWNoZWRDaGlsZEZyYW1lcygpOwogCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBD
YWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogICAgIH0KICNlbmRpZgogCi0gICAgZnJhbWUtPnZp
ZXcoKS0+ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICBmcmFtZS0+dmlldygpLT5kaWRS
ZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKTsKIH0KIAogQ2FjaGVkRnJhbWU6OkNhY2hlZEZy
YW1lKEZyYW1lJiBmcmFtZSkKQEAgLTE1MCw3ICsxNTAsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVk
RnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQo
bV9kb2N1bWVudExvYWRlcik7CiAgICAgQVNTRVJUKG1fdmlldyk7Ci0gICAgQVNTRVJUKG1fZG9j
dW1lbnQtPnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKTsKKyAgICBB
U1NFUlQobV9kb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Oklu
QmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBSRUxFQVNFX0FTU0VSVChtX2RvY3VtZW50LT5kb21X
aW5kb3coKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9kb2N1bWVudC0+ZnJhbWUoKSk7CkBAIC0x
NjksMTQgKzE2OSwxNCBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQog
ICAgIFJFTEVBU0VfQVNTRVJUKG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5mcmFtZSgpKTsKIAog
ICAgIC8vIEFjdGl2ZSBET00gb2JqZWN0cyBtdXN0IGJlIHN1c3BlbmRlZCBiZWZvcmUgd2UgY2Fj
aGUgdGhlIGZyYW1lIHNjcmlwdCBkYXRhLgotICAgIG1fZG9jdW1lbnQtPnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKTsKKyAgICBtX2RvY3VtZW50LT5zdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgbV9jYWNoZWRGcmFtZVNj
cmlwdERhdGEgPSBtYWtlVW5pcXVlPFNjcmlwdENhY2hlZEZyYW1lRGF0YT4oZnJhbWUpOwogCi0g
ICAgbV9kb2N1bWVudC0+ZG9tV2luZG93KCktPnN1c3BlbmRGb3JQYWdlQ2FjaGUoKTsKKyAgICBt
X2RvY3VtZW50LT5kb21XaW5kb3coKS0+c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKIAog
ICAgIC8vIENsZWFyIEZyYW1lVmlldyB0byByZXNldCBmbGFncyBzdWNoIGFzICdmaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRDYWxsYmFja1BlbmRpbmcnIHNvIHRoYXQgdGhlCi0gICAgLy8gJ0Rp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCcgY2FsbGJhY2sgZ2V0cyBjYWxsZWQgYWdhaW5z
dCB3aGVuIHJlc3RvcmluZyBmcm9tIFBhZ2VDYWNoZS4KKyAgICAvLyAnRGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0JyBjYWxsYmFjayBnZXRzIGNhbGxlZCBhZ2FpbnN0IHdoZW4gcmVzdG9y
aW5nIGZyb20gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgbV92aWV3LT5yZXNldExheW91dE1p
bGVzdG9uZXMoKTsKIAogICAgIC8vIFRoZSBtYWluIGZyYW1lIGlzIHJldXNlZCBmb3IgdGhlIG5h
dmlnYXRpb24gYW5kIHRoZSBvcGVuZXIgbGluayB0byBpdHMgc2hvdWxkIHRodXMgcGVyc2lzdC4K
QEAgLTE4NSwxMyArMTg1LDEzIEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJh
bWUpCiAKICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zYXZlUGxhdGZvcm1EYXRhVG9DYWNo
ZWRGcmFtZSh0aGlzKTsKIAotICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUo
KSBjYW4gc2V0IHVwIGEgbGF5b3V0IHRpbWVyIG9uIHRoZSBGcmFtZVZpZXcsIHNvIGNsZWFyIHRp
bWVycyBhZnRlciB0aGF0LgorICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JCYWNrRm9yd2Fy
ZENhY2hlKCkgY2FuIHNldCB1cCBhIGxheW91dCB0aW1lciBvbiB0aGUgRnJhbWVWaWV3LCBzbyBj
bGVhciB0aW1lcnMgYWZ0ZXIgdGhhdC4KICAgICBmcmFtZS5jbGVhclRpbWVycygpOwogCiAgICAg
Ly8gRGVjb25zdHJ1Y3QgdGhlIEZyYW1lVHJlZSwgdG8gcmVzdG9yZSBpdCBsYXRlci4KICAgICAv
LyBXZSBkbyB0aGlzIGZvciB0d28gcmVhc29uczoKICAgICAvLyAxIC0gV2UgcmV1c2UgdGhlIG1h
aW4gZnJhbWUsIHNvIHdoZW4gaXQgbmF2aWdhdGVzIHRvIGEgbmV3IHBhZ2UgbG9hZCBpdCBuZWVk
cyB0byBzdGFydCB3aXRoIGEgYmxhbmsgRnJhbWVUcmVlLgotICAgIC8vIDIgLSBJdCdzIG11Y2gg
ZWFzaWVyIHRvIGRlc3Ryb3kgYSBDYWNoZWRGcmFtZSB3aGlsZSBpdCByZXNpZGVzIGluIHRoZSBQ
YWdlQ2FjaGUgaWYgaXQgaXMgZGlzY29ubmVjdGVkIGZyb20gaXRzIHBhcmVudC4KKyAgICAvLyAy
IC0gSXQncyBtdWNoIGVhc2llciB0byBkZXN0cm95IGEgQ2FjaGVkRnJhbWUgd2hpbGUgaXQgcmVz
aWRlcyBpbiB0aGUgQmFja0ZvcndhcmRDYWNoZSBpZiBpdCBpcyBkaXNjb25uZWN0ZWQgZnJvbSBp
dHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNp
emUoKTsgKytpKQogICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQobV9jaGlsZEZyYW1l
c1tpXS0+dmlldygpLT5mcmFtZSgpKTsKIApAQCAtMjM1LDExICsyMzUsMTEgQEAgdm9pZCBDYWNo
ZWRGcmFtZTo6Y2xlYXIoKQogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gY2xlYXIoKSBzaG91bGQgb25seSBiZSBjYWxsZWQgZm9yIEZyYW1lcyByZXByZXNl
bnRpbmcgZG9jdW1lbnRzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgcGFnZSBjYWNoZS4KKyAg
ICAvLyBjbGVhcigpIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmb3IgRnJhbWVzIHJlcHJlc2VudGlu
ZyBkb2N1bWVudHMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUu
CiAgICAgLy8gVGhpcyBtZWFucyB0aGUgQ2FjaGVkRnJhbWUgaGFzIGJlZW46CiAgICAgLy8gMSAt
IFN1Y2Nlc3NmdWxseSByZXN0b3JlKCknZCBieSBnb2luZyBiYWNrL2ZvcndhcmQuCi0gICAgLy8g
MiAtIGRlc3Ryb3koKSdlZCBiZWNhdXNlIHRoZSBQYWdlQ2FjaGUgaXMgcHJ1bmluZyBvciB0aGUg
V2ViVmlldyB3YXMgY2xvc2VkLgotICAgIEFTU0VSVChtX2RvY3VtZW50LT5wYWdlQ2FjaGVTdGF0
ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgLy8gMiAtIGRlc3Ryb3koKSdl
ZCBiZWNhdXNlIHRoZSBCYWNrRm9yd2FyZENhY2hlIGlzIHBydW5pbmcgb3IgdGhlIFdlYlZpZXcg
d2FzIGNsb3NlZC4KKyAgICBBU1NFUlQobV9kb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRl
KCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgQVNTRVJUKG1fdmll
dyk7CiAgICAgQVNTRVJUKCFtX2RvY3VtZW50LT5mcmFtZSgpIHx8IG1fZG9jdW1lbnQtPmZyYW1l
KCkgPT0gJm1fdmlldy0+ZnJhbWUoKSk7CiAKQEAgLTI1OSw4ICsyNTksOCBAQCB2b2lkIENhY2hl
ZEZyYW1lOjpkZXN0cm95KCkKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICAvLyBPbmx5IENhY2hlZEZyYW1lcyB0aGF0IGFyZSBzdGlsbCBpbiB0aGUgUGFn
ZUNhY2hlIHNob3VsZCBiZSBkZXN0cm95ZWQgaW4gdGhpcyBtYW5uZXIKLSAgICBBU1NFUlQobV9k
b2N1bWVudC0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAg
IC8vIE9ubHkgQ2FjaGVkRnJhbWVzIHRoYXQgYXJlIHN0aWxsIGluIHRoZSBCYWNrRm9yd2FyZENh
Y2hlIHNob3VsZCBiZSBkZXN0cm95ZWQgaW4gdGhpcyBtYW5uZXIKKyAgICBBU1NFUlQobV9kb2N1
bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRD
YWNoZSk7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQVNTRVJUKCFtX2RvY3VtZW50LT5mcmFt
ZSgpKTsKIApAQCAtMjgxLDExICsyODEsMTEgQEAgdm9pZCBDYWNoZWRGcmFtZTo6ZGVzdHJveSgp
CiAKICAgICBtX3ZpZXctPmZyYW1lKCkuYW5pbWF0aW9uKCkuZGV0YWNoRnJvbURvY3VtZW50KG1f
ZG9jdW1lbnQuZ2V0KCkpOwogCi0gICAgLy8gRklYTUU6IFdoeSBkbyB3ZSBuZWVkIHRvIGNhbGwg
cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMgaGVyZT8gV2hlbiB0aGUgZG9jdW1lbnQgaXMgaW4gcGFn
ZSBjYWNoZSwgdGhpcyBtZXRob2Qgd29uJ3Qgd29yaworICAgIC8vIEZJWE1FOiBXaHkgZG8gd2Ug
bmVlZCB0byBjYWxsIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzIGhlcmU/IFdoZW4gdGhlIGRvY3Vt
ZW50IGlzIGluIGJhY2svZm9yd2FyZCBjYWNoZSwgdGhpcyBtZXRob2Qgd29uJ3Qgd29yawogICAg
IC8vIGZ1bGx5IGFueXdheSwgYmVjYXVzZSB0aGUgZG9jdW1lbnQgd29uJ3QgYmUgYWJsZSB0byBh
Y2Nlc3MgaXRzIERPTVdpbmRvdyBvYmplY3QgKGR1ZSB0byBiZWluZyBmcmFtZWxlc3MpLgogICAg
IG1fZG9jdW1lbnQtPnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKLSAgICBtX2RvY3VtZW50
LT5zZXRQYWdlQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgIG1fZG9j
dW1lbnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2Fy
ZENhY2hlKTsKICAgICBtX2RvY3VtZW50LT5wcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAg
IGNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1l
UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZv
cm1EYXRhLmgKaW5kZXggZjk3M2JhNjRjZDQ2NTE4ZGRmY2JkZDY5NDljMzc3YzhkMWY5ZjM1My4u
ZWE4YzI2MTg3NDhkMWMwMzhhYzU3NGU5YjFkMzMwNWZmNWZiN2NmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZVBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEuaApAQCAtMzEsNyArMzEs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNz
IGlzIHRvIGdpdmUgZWFjaCBwbGF0Zm9ybSBhIHZlc3NlbCB0byBzdG9yZSBwbGF0Zm9ybSBkYXRh
IHdoZW4gYSBwYWdlCi0vLyBnb2VzIGludG8gdGhlIEJhY2svRm9yd2FyZCBwYWdlIGNhY2hlLCBh
bmQgcGVyZm9ybSBzb21lIGFjdGlvbiB3aXRoIHRoYXQgZGF0YSB3aGVuIHRoZSBwYWdlIGNvbWVz
IG91dC4gIAorLy8gZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGFuZCBwZXJmb3Jt
IHNvbWUgYWN0aW9uIHdpdGggdGhhdCBkYXRhIHdoZW4gdGhlIHBhZ2UgY29tZXMgb3V0LgogLy8g
RWFjaCBwbGF0Zm9ybSBzaG91bGQgc3ViY2xhc3MgdGhpcyBjbGFzcyBhcyBuZWNjZXNzYXJ5CiAK
IGNsYXNzIENhY2hlZEZyYW1lUGxhdGZvcm1EYXRhIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0
b3J5SXRlbS5jcHAKaW5kZXggYTc5MjM0ZGIyYWRiZGVhZmI2NjBkMzdlMjc0NTIyMWY0YmVkZTdl
NC4uZDUzNzdhYjBmN2NjMWYzZTQ3MTk3NWMyMDgwMGJlZTExODUyMTJlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKQEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAKKyNpbmNsdWRlICJCYWNrRm9y
d2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUGFnZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiS2V5ZWRDb2RpbmcuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTE3NCw5ICsxNzQsOSBAQCBib29s
IEhpc3RvcnlJdGVtOjpoYXNDYWNoZWRQYWdlRXhwaXJlZCgpIGNvbnN0CiAKIHZvaWQgSGlzdG9y
eUl0ZW06OnNldENhY2hlZFBhZ2Uoc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+JiYgY2FjaGVk
UGFnZSkKIHsKLSAgICBib29sIHdhc0luUGFnZUNhY2hlID0gaXNJblBhZ2VDYWNoZSgpOworICAg
IGJvb2wgd2FzSW5CYWNrRm9yd2FyZENhY2hlID0gaXNJbkJhY2tGb3J3YXJkQ2FjaGUoKTsKICAg
ICBtX2NhY2hlZFBhZ2UgPSBXVEZNb3ZlKGNhY2hlZFBhZ2UpOwotICAgIGlmICh3YXNJblBhZ2VD
YWNoZSAhPSBpc0luUGFnZUNhY2hlKCkpCisgICAgaWYgKHdhc0luQmFja0ZvcndhcmRDYWNoZSAh
PSBpc0luQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICBub3RpZnlDaGFuZ2VkKCk7CiB9CiAK
QEAgLTIyMiw3ICsyMjIsNyBAQCB2b2lkIEhpc3RvcnlJdGVtOjpzZXRVUkxTdHJpbmcoY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpCiAKIHZvaWQgSGlzdG9yeUl0ZW06OnNldFVSTChjb25zdCBVUkwm
IHVybCkKIHsKLSAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZSgqdGhpcyk7CisgICAg
QmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKCp0aGlzKTsKICAgICBzZXRVUkxT
dHJpbmcodXJsLnN0cmluZygpKTsKICAgICBjbGVhckRvY3VtZW50U3RhdGUoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCBmODU1MDhmMTIzZGFlMmNkZjliZmJkNTAz
ZmVlZTNlOTE2NDc5NDliLi41MmNhYjgzNDQwMzQ5NDczNzRhYjBhZDA0MmUyNzRkOGQyMjc4NWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC01OSw3ICs1OSw3IEBAIGVu
dW0gY2xhc3MgUHJ1bmluZ1JlYXNvbjsKIFdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkICgqbm90
aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKShIaXN0b3J5SXRlbSYpOwogCiBjbGFzcyBIaXN0b3J5SXRl
bSA6IHB1YmxpYyBSZWZDb3VudGVkPEhpc3RvcnlJdGVtPiB7Ci0gICAgZnJpZW5kIGNsYXNzIFBh
Z2VDYWNoZTsKKyAgICBmcmllbmQgY2xhc3MgQmFja0ZvcndhcmRDYWNoZTsKIAogcHVibGljOiAK
ICAgICBzdGF0aWMgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGUoKQpAQCAtOTUsNyArOTUsNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3Q7CiAgICAg
Ci0gICAgYm9vbCBpc0luUGFnZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRQYWdlLmdl
dCgpOyB9CisgICAgYm9vbCBpc0luQmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FjaGVkUGFnZS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzQ2FjaGVkUGFn
ZUV4cGlyZWQoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWx0ZXJuYXRl
VGl0bGUoY29uc3QgU3RyaW5nJik7CkBAIC0yNjYsNyArMjY2LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8Rm9ybURhdGE+IG1fZm9ybURhdGE7CiAgICAgU3RyaW5nIG1fZm9ybUNvbnRlbnRUeXBl
OwogCi0gICAgLy8gUGFnZUNhY2hlIGNvbnRyb2xzIHRoZXNlIGZpZWxkcy4KKyAgICAvLyBCYWNr
Rm9yd2FyZENhY2hlIGNvbnRyb2xzIHRoZXNlIGZpZWxkcy4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q2FjaGVkUGFnZT4gbV9jYWNoZWRQYWdlOwogICAgIFBydW5pbmdSZWFzb24gbV9wcnVuaW5nUmVh
c29uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNkMWYzODIxMGZmY2EzMTUzMThlNzE3ZDYwNTQwNTVhNmM1MGJmMjQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTU2ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgotCi0jaW5jbHVk
ZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKLSNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xs
ZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0j
aW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgi
Ci0jaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKLSNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNs
dWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1
ZGUgIkhpc3RvcnlDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxv
YWRDb3VudEluY3JlbWVudGVyLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBh
Z2UuaCIKLSNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKLSNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCi0jaW5jbHVkZSA8cGFsL0xvZ2dp
bmcuaD4KLSNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2RlZmluZSBQQ0xPRyguLi4pIExP
RyhCYWNrRm9yd2FyZENhY2hlLCAiJSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmlu
ZyhfX1ZBX0FSR1NfXykudXRmOCgpLmRhdGEoKSkKLQotc3RhdGljIGlubGluZSB2b2lkIGxvZ1Bh
Z2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYg
Y2xpZW50LCBjb25zdCBTdHJpbmcmIHJlYXNvbikKLXsKLSAgICBjbGllbnQubG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVGYWlsdXJlS2V5KCksIHJl
YXNvbiwgU2hvdWxkU2FtcGxlOjpObyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBsb2dQYWdl
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBy
ZWFzb24pCi17Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBsb2dQYWdl
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQoKSwgcmVhc29uKTsKLX0KLQotc3RhdGljIGJvb2wgY2FuQ2FjaGVGcmFtZShGcmFtZSYgZnJh
bWUsIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgdW5z
aWduZWQgaW5kZW50TGV2ZWwpCi17Ci0gICAgUENMT0coIistLS0iKTsKLSAgICBGcmFtZUxvYWRl
ciYgZnJhbWVMb2FkZXIgPSBmcmFtZS5sb2FkZXIoKTsKLQotICAgIC8vIFByZXZlbnQgcGFnZSBj
YWNoaW5nIGlmIGEgc3ViZnJhbWUgaXMgc3RpbGwgaW4gcHJvdmlzaW9uYWwgbG9hZCBzdGFnZS4K
LSAgICAvLyBXZSBvbmx5IGRvIHRoaXMgY2hlY2sgZm9yIHN1YmZyYW1lcyBiZWNhdXNlIHRoZSBt
YWluIGZyYW1lIGlzIHJldXNlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS4KLSAgICBp
ZiAoIWZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgZnJhbWVMb2FkZXIuc3RhdGUoKSA9PSBGcmFtZVN0
YXRlUHJvdmlzaW9uYWwpIHsKLSAgICAgICAgUENMT0coIiAgIC1GcmFtZSBpcyBpbiBwcm92aXNp
b25hbCBsb2FkIHN0YWdlIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpw
cm92aXNpb25hbExvYWRLZXkoKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAg
ICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSAmJiBmcmFtZUxvYWRlci5zdGF0ZU1hY2hpbmUoKS5p
c0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAt
TWFpbkZyYW1lIGlzIGRpc3BsYXlpbmcgaW5pdGlhbCBlbXB0eSBkb2N1bWVudCIpOwotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKCFmcmFtZS5kb2N1bWVudCgpKSB7Ci0g
ICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaGFzIG5vIGRvY3VtZW50Iik7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoIWZyYW1lLmRvY3VtZW50KCktPmZyYW1lKCkpIHsK
LSAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudCBpcyBkZXRhY2hlZCBmcm9tIGZyYW1lIik7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotCi0gICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWVMb2FkZXIuZG9j
dW1lbnRMb2FkZXIoKTsKLSAgICBpZiAoIWRvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAgIFBDTE9H
KCIgICAtVGhlcmUgaXMgbm8gRG9jdW1lbnRMb2FkZXIgb2JqZWN0Iik7Ci0gICAgICAgIGxvZ1Bh
Z2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0RvY3VtZW50TG9hZGVyS2V5KCkpOwotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgVVJMIGN1cnJlbnRVUkwgPSBkb2N1bWVudExvYWRl
ci0+dXJsKCk7Ci0gICAgVVJMIG5ld1VSTCA9IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIoKSA/IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+dXJs
KCkgOiBVUkwoKTsKLSAgICBpZiAoIW5ld1VSTC5pc0VtcHR5KCkpCi0gICAgICAgIFBDTE9HKCIg
RGV0ZXJtaW5pbmcgaWYgZnJhbWUgY2FuIGJlIGNhY2hlZCBuYXZpZ2F0aW5nIGZyb20gKCIsIGN1
cnJlbnRVUkwuc3RyaW5nKCksICIpIHRvICgiLCBuZXdVUkwuc3RyaW5nKCksICIpOiIpOwotICAg
IGVsc2UKLSAgICAgICAgUENMT0coIiBEZXRlcm1pbmluZyBpZiBzdWJmcmFtZSB3aXRoIFVSTCAo
IiwgY3VycmVudFVSTC5zdHJpbmcoKSwgIikgY2FuIGJlIGNhY2hlZDoiKTsKLSAgICAgCi0gICAg
Ym9vbCBpc0NhY2hlYWJsZSA9IHRydWU7Ci0gICAgLy8gRG8gbm90IGNhY2hlIGVycm9yIHBhZ2Vz
ICh0aGVzZSBjYW4gYmUgcmVjb2duaXplZCBhcyBwYWdlcyB3aXRoIHN1YnN0aXR1dGUgZGF0YSBv
ciB1bnJlYWNoYWJsZSBVUkxzKS4KLSAgICBpZiAoZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVE
YXRhKCkuaXNWYWxpZCgpICYmICFkb2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5mYWls
aW5nVVJMKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgYW4gZXJy
b3IgcGFnZSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2Uo
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNFcnJvclBh
Z2VLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChm
cmFtZUxvYWRlci5zdWJmcmFtZUxvYWRlcigpLmNvbnRhaW5zUGx1Z2lucygpICYmICFmcmFtZS5w
YWdlKCktPnNldHRpbmdzKCkucGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKCkpIHsKLSAgICAgICAg
UENMT0coIiAgIC1GcmFtZSBjb250YWlucyBwbHVnaW5zIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNo
ZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpoYXNQbHVnaW5zS2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9
IGZhbHNlOwotICAgIH0KLSAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSAmJiAhZnJhbWVMb2Fk
ZXIuaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1NYWluIGZy
YW1lIGhhcyBubyBjdXJyZW50IGhpc3RvcnkgaXRlbSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVG
YWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6bm9DdXJyZW50SGlzdG9yeUl0ZW1LZXkoKSk7Ci0gICAgICAgIGlzQ2Fj
aGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChmcmFtZUxvYWRlci5xdWlja1JlZGlyZWN0
Q29taW5nKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1RdWljayByZWRpcmVjdCBpcyBjb21pbmci
KTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnF1aXJrUmVkaXJlY3RDb21p
bmdLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChk
b2N1bWVudExvYWRlci0+aXNMb2FkaW5nKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVu
dExvYWRlciBpcyBzdGlsbCBsb2FkaW5nIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjppc0xvYWRpbmdLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0g
ICAgfQotICAgIGlmIChkb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpKSB7Ci0gICAgICAgIFBD
TE9HKCIgICAtRG9jdW1lbnRMb2FkZXIgaXMgaW4gdGhlIG1pZGRsZSBvZiBzdG9wcGluZyIpOwot
ICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZG9jdW1lbnRMb2FkZXJTdG9wcGlu
Z0tleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBWZWN0
b3I8QWN0aXZlRE9NT2JqZWN0Kj4gdW5zdXNwZW5kYWJsZU9iamVjdHM7Ci0gICAgaWYgKGZyYW1l
LmRvY3VtZW50KCkgJiYgIWZyYW1lLmRvY3VtZW50KCktPmNhblN1c3BlbmRBY3RpdmVET01PYmpl
Y3RzRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCZ1bnN1c3BlbmRhYmxlT2JqZWN0cykpIHsKLSAgICAg
ICAgUENMT0coIiAgIC1UaGUgZG9jdW1lbnQgY2Fubm90IHN1c3BlbmQgaXRzIGFjdGl2ZSBET00g
T2JqZWN0cyIpOwotICAgICAgICBmb3IgKGF1dG8qIGFjdGl2ZURPTU9iamVjdCA6IHVuc3VzcGVu
ZGFibGVPYmplY3RzKSB7Ci0gICAgICAgICAgICBQQ0xPRygiICAgIC0gVW5zdXNwZW5kYWJsZTog
IiwgYWN0aXZlRE9NT2JqZWN0LT5hY3RpdmVET01PYmplY3ROYW1lKCkpOwotICAgICAgICAgICAg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjp1bnN1c3BlbmRhYmxlRE9NT2JqZWN0S2V5KCksIGFjdGl2ZURPTU9iamVjdC0+
YWN0aXZlRE9NT2JqZWN0TmFtZSgpLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICAgICAgICAgIFVO
VVNFRF9QQVJBTShhY3RpdmVET01PYmplY3QpOwotICAgICAgICB9Ci0gICAgICAgIGxvZ1BhZ2VD
YWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tleSgpKTsK
LSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIGludmVzdGlnYXRpbmcgY2FjaGluZyBmcmFtZXMgdGhhdCBoYXZlIGFuIGFzc29jaWF0
ZWQKLSAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9ibGVtLzU5MTc4OTk+IHRy
YWNrcyB0aGF0IHdvcmsuCi0gICAgaWYgKCFkb2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNo
ZUhvc3QoKS5jYW5DYWNoZUluUGFnZUNhY2hlKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1UaGUg
RG9jdW1lbnRMb2FkZXIgdXNlcyBhbiBhcHBsaWNhdGlvbiBjYWNoZSIpOwotICAgICAgICBsb2dQ
YWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YXBwbGljYXRpb25DYWNoZUtleSgpKTsKLSAgICAgICAg
aXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKCFmcmFtZUxvYWRlci5jbGllbnQo
KS5jYW5DYWNoZVBhZ2UoKSkgewotICAgICAgICBQQ0xPRygiICAgLVRoZSBjbGllbnQgc2F5cyB0
aGlzIGZyYW1lIGNhbm5vdCBiZSBjYWNoZWQiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OmRlbmllZEJ5Q2xpZW50S2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZh
bHNlOwotICAgIH0KLQotICAgIGZvciAoRnJhbWUqIGNoaWxkID0gZnJhbWUudHJlZSgpLmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7Ci0g
ICAgICAgIGlmICghY2FuQ2FjaGVGcmFtZSgqY2hpbGQsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LCBpbmRlbnRMZXZlbCArIDEpKQotICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAg
ICB9Ci0gICAgCi0gICAgUENMT0coaXNDYWNoZWFibGUgPyAiIEZyYW1lIENBTiBiZSBjYWNoZWQi
IDogIiBGcmFtZSBDQU5OT1QgYmUgY2FjaGVkIik7Ci0gICAgUENMT0coIistLS0iKTsKLSAgICAK
LSAgICByZXR1cm4gaXNDYWNoZWFibGU7Ci19Ci0KLXN0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQ
YWdlJiBwYWdlKQotewotICAgIFJFTEVBU0VfQVNTRVJUKCFwYWdlLmlzUmVzdG9yaW5nQ2FjaGVk
UGFnZSgpKTsKLQotICAgIHVuc2lnbmVkIGluZGVudExldmVsID0gMDsKLSAgICBQQ0xPRygiLS0t
LS0tLS1cbiBEZXRlcm1pbmluZyBpZiBwYWdlIGNhbiBiZSBjYWNoZWQ6Iik7Ci0KLSAgICBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCk7Ci0gICAgYm9vbCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJh
bWUocGFnZS5tYWluRnJhbWUoKSwgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVs
ICsgMSk7Ci0KLSAgICBpZiAoIXBhZ2Uuc2V0dGluZ3MoKS51c2VzUGFnZUNhY2hlKCkgfHwgcGFn
ZS5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkQnlXZWJJbnNwZWN0b3IoKSkgewotICAgICAgICBQ
Q0xPRygiICAgLVBhZ2Ugc2V0dGluZ3Mgc2F5cyBiL2YgY2FjaGUgZGlzYWJsZWQiKTsKLSAgICAg
ICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmlzRGlzYWJsZWRLZXkoKSk7Ci0gICAgICAg
IGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9s
bGVyOjppc0FjdGl2ZUF0KCZwYWdlKSkgewotICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNp
bmcgRGV2aWNlTW90aW9uIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpk
ZXZpY2VNb3Rpb25LZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQot
ICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7
Ci0gICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOwot
ICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZGV2aWNlT3JpZW50YXRpb25LZXko
KSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBG
cmFtZUxvYWRUeXBlIGxvYWRUeXBlID0gcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkVHlw
ZSgpOwotICAgIHN3aXRjaCAobG9hZFR5cGUpIHsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJl
bG9hZDoKLSAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxv
YWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUg
dGhhdCBwYWdlLgotICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkIik7Ci0g
ICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZWxvYWRLZXkoKSk7Ci0gICAgICAg
IGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRnJhbWVMb2Fk
VHlwZTo6U2FtZTogLy8gdXNlciBsb2FkcyBzYW1lIFVSTCBhZ2FpbiAoYnV0IG5vdCByZWxvYWQg
YnV0dG9uKQotICAgICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHNh
bWUgbG9hZCwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRlIG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBs
ZWF2ZSB0aGF0IHBhZ2UuCi0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBTYW1lIik7
Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzYW1lTG9hZEtleSgpKTsKLSAg
ICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBGcmFt
ZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q6Ci0gICAgICAgIC8v
IERvbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUgbWlkZGxlIG9mIGEgcmVkaXJlY3Qs
IHNpbmNlIHdlIHdpbGwgd2FudCB0byBzdG9yZSB0aGUgZmluYWwgcGFnZSB3ZSBlbmQgdXAgb24u
Ci0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWRpcmVjdFdpdGhMb2NrZWRCYWNr
Rm9yd2FyZExpc3QiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNz
YWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlZGly
ZWN0S2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlcGxhY2U6Ci0gICAgICAgIC8vIE5vIHBvaW50IHdy
aXRpbmcgdG8gdGhlIGNhY2hlIG9uIGEgcmVwbGFjZSwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRl
IG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0IHBhZ2UuCi0gICAgICAgIFBDTE9HKCIg
ICAtTG9hZCB0eXBlIGlzOiBSZXBsYWNlIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpyZXBsYWNlS2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW46IHsK
LSAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNp
bmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBw
YWdlLgotICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkRnJvbU9yaWdpbiIp
OwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkRnJvbU9yaWdpbktl
eSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6UmVsb2FkRXhwaXJlZE9ubHk6IHsKLSAgICAgICAg
Ly8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdp
bGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgotICAg
ICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZCIp
OwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkUmV2YWxpZGF0aW5n
RXhwaXJlZEtleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQ6Ci0gICAgY2FzZSBG
cmFtZUxvYWRUeXBlOjpCYWNrOgotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZDoKLSAg
ICBjYXNlIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZDogLy8gYSBtdWx0aS1pdGVt
IGhvcCBpbiB0aGUgYmFja2ZvcndhcmQgbGlzdAotICAgICAgICAvLyBDYWNoZWFibGUuCi0gICAg
ICAgIGJyZWFrOwotICAgIH0KLSAgICAKLSAgICBpZiAoaXNDYWNoZWFibGUpCi0gICAgICAgIFBD
TE9HKCIgUGFnZSBDQU4gYmUgY2FjaGVkXG4tLS0tLS0tLSIpOwotICAgIGVsc2UKLSAgICAgICAg
UENMT0coIiBQYWdlIENBTk5PVCBiZSBjYWNoZWRcbi0tLS0tLS0tIik7Ci0KLSAgICBkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5D
YWNoZUtleSgpLCBpc0NhY2hlYWJsZSA/IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcyA6IERp
YWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgcmV0dXJu
IGlzQ2FjaGVhYmxlOwotfQotCi1QYWdlQ2FjaGUmIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkKLXsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGFnZUNhY2hlPiBnbG9iYWxQYWdlQ2FjaGU7Ci0g
ICAgcmV0dXJuIGdsb2JhbFBhZ2VDYWNoZTsKLX0KLQotUGFnZUNhY2hlOjpQYWdlQ2FjaGUoKQot
ewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlRmxhZywgW10gewotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNv
bS5hcHBsZS5XZWJLaXQuc2hvd1BhZ2VDYWNoZSIsIFtdIHsKLSAgICAgICAgICAgIFBhZ2VDYWNo
ZTo6c2luZ2xldG9uKCkuZHVtcCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQotdm9pZCBQ
YWdlQ2FjaGU6OmR1bXAoKSBjb25zdAotewotICAgIFdURkxvZ0Fsd2F5cygiXG5QYWdlIENhY2hl
OiIpOwotICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKLSAgICAgICAgQ2FjaGVkUGFn
ZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7Ci0gICAgICAgIFdURkxvZ0Fsd2F5
cygiICBQYWdlICVwLCBkb2N1bWVudCAlcCAlcyIsICZjYWNoZWRQYWdlLnBhZ2UoKSwgY2FjaGVk
UGFnZS5kb2N1bWVudCgpLCBjYWNoZWRQYWdlLmRvY3VtZW50KCkgPyBjYWNoZWRQYWdlLmRvY3Vt
ZW50KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7Ci0gICAgfQotfQotCi1i
b29sIFBhZ2VDYWNoZTo6Y2FuQ2FjaGUoUGFnZSYgcGFnZSkgY29uc3QKLXsKLSAgICBpZiAoIW1f
bWF4U2l6ZSkgewotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2Uo
JnBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNEaXNhYmxlZEtleSgpKTsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmIChNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNp
bmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7Ci0gICAgICAgIGxvZ1BhZ2VDYWNo
ZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1
bmRlck1lbW9yeVByZXNzdXJlS2V5KCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
ICAgIAotICAgIHJldHVybiBjYW5DYWNoZVBhZ2UocGFnZSk7Ci19Ci0KLXZvaWQgUGFnZUNhY2hl
OjpwcnVuZVRvU2l6ZU5vdyh1bnNpZ25lZCBzaXplLCBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFz
b24pCi17Ci0gICAgU2V0Rm9yU2NvcGU8dW5zaWduZWQ+IGNoYW5nZShtX21heFNpemUsIHNpemUp
OwotICAgIHBydW5lKHBydW5pbmdSZWFzb24pOwotfQotCi12b2lkIFBhZ2VDYWNoZTo6c2V0TWF4
U2l6ZSh1bnNpZ25lZCBtYXhTaXplKQotewotICAgIG1fbWF4U2l6ZSA9IG1heFNpemU7Ci0gICAg
cHJ1bmUoUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7Ci19Ci0KLXVuc2lnbmVkIFBhZ2VDYWNoZTo6ZnJh
bWVDb3VudCgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMuc2l6
ZSgpOwotICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKLSAgICAgICAgQVNTRVJUKGl0
ZW0tPm1fY2FjaGVkUGFnZSk7Ci0gICAgICAgIGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNoZWRQ
YWdlLT5jYWNoZWRNYWluRnJhbWUoKS0+ZGVzY2VuZGFudEZyYW1lQ291bnQoKTsKLSAgICB9Ci0g
ICAgCi0gICAgcmV0dXJuIGZyYW1lQ291bnQ7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjptYXJrUGFn
ZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoUGFnZSYgcGFnZSkKLXsKLSAgICBmb3IgKGF1
dG8mIGl0ZW0gOiBtX2l0ZW1zKSB7Ci0gICAgICAgIENhY2hlZFBhZ2UmIGNhY2hlZFBhZ2UgPSAq
aXRlbS0+bV9jYWNoZWRQYWdlOwotICAgICAgICBpZiAoJnBhZ2UubWFpbkZyYW1lKCkgPT0gJmNh
Y2hlZFBhZ2UuY2FjaGVkTWFpbkZyYW1lKCktPnZpZXcoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAg
IGNhY2hlZFBhZ2UubWFya0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCgpOwotICAgIH0KLX0K
LQotdm9pZCBQYWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckNvbnRlbnRzU2l6ZUNoYW5nZWQoUGFnZSYg
cGFnZSkKLXsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2l0ZW1zKSB7Ci0gICAgICAgIENhY2hl
ZFBhZ2UmIGNhY2hlZFBhZ2UgPSAqaXRlbS0+bV9jYWNoZWRQYWdlOwotICAgICAgICBpZiAoJnBh
Z2UubWFpbkZyYW1lKCkgPT0gJmNhY2hlZFBhZ2UuY2FjaGVkTWFpbkZyYW1lKCktPnZpZXcoKS0+
ZnJhbWUoKSkKLSAgICAgICAgICAgIGNhY2hlZFBhZ2UubWFya0ZvckNvbnRlbnRzU2l6ZUNoYW5n
ZWQoKTsKLSAgICB9Ci19Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi12b2lkIFBhZ2VDYWNo
ZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCi17Ci0gICAgZm9yIChh
dXRvJiBpdGVtIDogbV9pdGVtcykgewotICAgICAgICBBU1NFUlQoaXRlbS0+bV9jYWNoZWRQYWdl
KTsKLSAgICAgICAgaXRlbS0+bV9jYWNoZWRQYWdlLT5tYXJrRm9yQ2FwdGlvblByZWZlcmVuY2Vz
Q2hhbmdlZCgpOwotICAgIH0KLX0KLSNlbmRpZgotCi1zdGF0aWMgU3RyaW5nIHBydW5pbmdSZWFz
b25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KFBydW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKLXsK
LSAgICBzd2l0Y2ggKHBydW5pbmdSZWFzb24pIHsKLSAgICBjYXNlIFBydW5pbmdSZWFzb246Ok1l
bW9yeVByZXNzdXJlOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVu
ZWREdWVUb01lbW9yeVByZXNzdXJlS2V5KCk7Ci0gICAgY2FzZSBQcnVuaW5nUmVhc29uOjpQcm9j
ZXNzU3VzcGVuZGVkOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVu
ZWREdWVUb1Byb2Nlc3NTdXNwZW5kZWQoKTsKLSAgICBjYXNlIFBydW5pbmdSZWFzb246OlJlYWNo
ZWRNYXhTaXplOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWRE
dWVUb01heFNpemVSZWFjaGVkKCk7Ci0gICAgY2FzZSBQcnVuaW5nUmVhc29uOjpOb25lOgotICAg
ICAgICBicmVhazsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldFBhZ2VDYWNoZVN0YXRlKFBhZ2Um
IHBhZ2UsIERvY3VtZW50OjpQYWdlQ2FjaGVTdGF0ZSBwYWdlQ2FjaGVTdGF0ZSkKLXsKLSAgICBm
b3IgKEZyYW1lKiBmcmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9
IGZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPnNldFBhZ2VDYWNoZVN0
YXRlKHBhZ2VDYWNoZVN0YXRlKTsKLSAgICB9Ci19Ci0KLS8vIFdoZW4gZW50ZXJpbmcgcGFnZSBj
YWNoZSwgdGVhciBkb3duIHRoZSByZW5kZXIgdHJlZSBiZWZvcmUgc2V0dGluZyB0aGUgaW4tY2Fj
aGUgZmxhZy4KLS8vIFRoaXMgbWFpbnRhaW5zIHRoZSBpbnZhcmlhbnQgdGhhdCByZW5kZXIgdHJl
ZXMgYXJlIG5ldmVyIHByZXNlbnQgaW4gdGhlIHBhZ2UgY2FjaGUuCi0vLyBOb3RlIHRoYXQgZGVz
dHJ1Y3Rpb24gaGFwcGVucyBib3R0b20tdXAgc28gdGhhdCB0aGUgbWFpbiBmcmFtZSdzIHRyZWUg
ZGllcyBsYXN0Lgotc3RhdGljIHZvaWQgZGVzdHJveVJlbmRlclRyZWUoRnJhbWUmIG1haW5GcmFt
ZSkKLXsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZS50cmVlKCkudHJhdmVyc2VQ
cmV2aW91cyhDYW5XcmFwOjpZZXMpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZl
cnNlUHJldmlvdXMoQ2FuV3JhcDo6Tm8pKSB7Ci0gICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50
KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJh
bWUtPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmIChkb2N1bWVudC5oYXNMaXZpbmdSZW5kZXJUcmVl
KCkpCi0gICAgICAgICAgICBkb2N1bWVudC5kZXN0cm95UmVuZGVyVHJlZSgpOwotICAgIH0KLX0K
LQotc3RhdGljIHZvaWQgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNpdmVseShGcmFtZSYgZnJhbWUp
Ci17Ci0gICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpOwotICAgIGlmICghZG9j
dW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIHN0b3BMb2FkaW5nKCkgd2lsbCBmaXJl
IHRoZSBwYWdlaGlkZSBldmVudCBpbiBlYWNoIHN1YmZyYW1lIGFuZCB0aGUgSFRNTCBzcGVjaWZp
Y2F0aW9uIHN0YXRlcwotICAgIC8vIHRoYXQgdGhlIHBhcmVudCBkb2N1bWVudCdzIGlnbm9yZS1v
cGVucy1kdXJpbmctdW5sb2FkIGNvdW50ZXIgc2hvdWxkIGJlIGluY3JlbWVudGVkIHdoaWxlIHRo
ZQotICAgIC8vIHBhZ2VoaWRlIGV2ZW50IGlzIGJlaW5nIGZpcmVkIGluIGl0cyBzdWJmcmFtZXM6
Ci0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvYnJvd3NlcnMu
aHRtbCN1bmxvYWQtYS1kb2N1bWVudAotICAgIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJ
bmNyZW1lbnRlciBpZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIoZG9jdW1l
bnQpOwotCi0gICAgZnJhbWUubG9hZGVyKCkuc3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3lV
bmxvYWRBbmRQYWdlSGlkZSk7Ci0KLSAgICBmb3IgKFJlZlB0cjxGcmFtZT4gY2hpbGQgPSBmcmFt
ZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLm5leHRT
aWJsaW5nKCkpCi0gICAgICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZlbHkoKmNoaWxkKTsK
LX0KLQotYm9vbCBQYWdlQ2FjaGU6OmFkZElmQ2FjaGVhYmxlKEhpc3RvcnlJdGVtJiBpdGVtLCBQ
YWdlKiBwYWdlKQotewotICAgIGlmIChpdGVtLmlzSW5QYWdlQ2FjaGUoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5zdG9wRm9yUGFnZUNhY2hlKCk7Ci0KLSAgICBp
ZiAoIWNhbkNhY2hlKCpwYWdlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQVNTRVJU
X1dJVEhfTUVTU0FHRSghcGFnZS0+aXNVdGlsaXR5UGFnZSgpLCAiVXRpbGl0eSBwYWdlcyBzdWNo
IGFzIFNWR0ltYWdlIHBhZ2VzIHNob3VsZCBuZXZlciBnbyBpbnRvIFBhZ2VDYWNoZSIpOwotCi0g
ICAgc2V0UGFnZUNhY2hlU3RhdGUoKnBhZ2UsIERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2Fj
aGUpOwotCi0gICAgLy8gRm9jdXMgdGhlIG1haW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1c2Vk
IHN1YmZyYW1lIChpZiB3ZSBoYXZlIG9uZSkuIFdlIGRvIHRoaXMgaGVyZSwKLSAgICAvLyBiZWZv
cmUgdGhlIHBhZ2UgZW50ZXJzIHRoZSBwYWdlIGNhY2hlLCB3aGlsZSB3ZSBzdGlsbCBjYW4gZGlz
cGF0Y2ggRE9NIGJsdXIvZm9jdXMgZXZlbnRzLgotICAgIGlmIChwYWdlLT5mb2N1c0NvbnRyb2xs
ZXIoKS5mb2N1c2VkRnJhbWUoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0
Rm9jdXNlZEZyYW1lKCZwYWdlLT5tYWluRnJhbWUoKSk7Ci0KLSAgICAvLyBGaXJlIHRoZSBwYWdl
aGlkZSBldmVudCBpbiBhbGwgZnJhbWVzLgotICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZl
bHkocGFnZS0+bWFpbkZyYW1lKCkpOwotCi0gICAgZGVzdHJveVJlbmRlclRyZWUocGFnZS0+bWFp
bkZyYW1lKCkpOwotCi0gICAgLy8gU3RvcCBhbGwgbG9hZHMgYWdhaW4gYmVmb3JlIGNoZWNraW5n
IGlmIHdlIGNhbiBzdGlsbCBjYWNoZSB0aGUgcGFnZSBhZnRlciBmaXJpbmcgdGhlIHBhZ2VoaWRl
Ci0gICAgLy8gZXZlbnQsIHNpbmNlIHRoZSBwYWdlIG1heSBoYXZlIHN0YXJ0ZWQgcGluZyBsb2Fk
cyBpbiBpdHMgcGFnZWhpZGUgZXZlbnQgaGFuZGxlci4KLSAgICBwYWdlLT5tYWluRnJhbWUoKS5s
b2FkZXIoKS5zdG9wRm9yUGFnZUNhY2hlKCk7Ci0KLSAgICAvLyBDaGVjayB0aGF0IHRoZSBwYWdl
IGlzIHN0aWxsIHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0aGUgcGFnZWhpZGUgZXZlbnQu
IFRoZSBKUyBldmVudCBoYW5kbGVycwotICAgIC8vIGNvdWxkIGhhdmUgYWx0ZXJlZCB0aGUgcGFn
ZSBpbiBhIHdheSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4KLSAgICBpZiAoIWNhbkNhY2hl
KCpwYWdlKSkgewotICAgICAgICBzZXRQYWdlQ2FjaGVTdGF0ZSgqcGFnZSwgRG9jdW1lbnQ6Ok5v
dEluUGFnZUNhY2hlKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHNldFBh
Z2VDYWNoZVN0YXRlKCpwYWdlLCBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOwotCi0gICAgewotICAg
ICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZmlyZSBhbnkgSlMgZXZlbnRzIGluIHRoaXMgc2Nv
cGUuCi0gICAgICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERp
c2FsbG93ZWRTY29wZTsKLQotICAgICAgICBpdGVtLnNldENhY2hlZFBhZ2UobWFrZVVuaXF1ZTxD
YWNoZWRQYWdlPigqcGFnZSkpOwotICAgICAgICBpdGVtLm1fcHJ1bmluZ1JlYXNvbiA9IFBydW5p
bmdSZWFzb246Ok5vbmU7Ci0gICAgICAgIG1faXRlbXMuYWRkKCZpdGVtKTsKLSAgICB9Ci0gICAg
cHJ1bmUoUHJ1bmluZ1JlYXNvbjo6UmVhY2hlZE1heFNpemUpOwotCi0gICAgUkVMRUFTRV9MT0co
QmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6YWRkSWZDYWNoZWFibGUgaXRlbTogJXMsIHNp
emU6ICV1IC8gJXUiLCBpdGVtLmlkZW50aWZpZXIoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBw
YWdlQ291bnQoKSwgbWF4U2l6ZSgpKTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGQ6OnVu
aXF1ZV9wdHI8Q2FjaGVkUGFnZT4gUGFnZUNhY2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVtLCBQ
YWdlKiBwYWdlKQotewotICAgIGlmICghaXRlbS5tX2NhY2hlZFBhZ2UpIHsKLSAgICAgICAgaWYg
KGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCi0gICAgICAgICAg
ICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgcHJ1bmluZ1JlYXNv
blRvRGlhZ25vc3RpY0xvZ2dpbmdLZXkoaXRlbS5tX3BydW5pbmdSZWFzb24pKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgbV9pdGVtcy5yZW1vdmUoJml0ZW0pOwotICAg
IHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiBjYWNoZWRQYWdlID0gaXRlbS50YWtlQ2FjaGVk
UGFnZSgpOwotCi0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6
dGFrZSBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpLCBtYXhTaXplKCkpOwotCi0gICAgaWYgKGNhY2hl
ZFBhZ2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdlLT5pc1Jlc291cmNlQ2FjaGluZ0Rp
c2FibGVkQnlXZWJJbnNwZWN0b3IoKSkpIHsKLSAgICAgICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUs
ICJOb3QgcmVzdG9yaW5nIHBhZ2UgZm9yICVzIGZyb20gYmFjay9mb3J3YXJkIGNhY2hlIGJlY2F1
c2UgY2FjaGUgZW50cnkgaGFzIGV4cGlyZWQiLCBpdGVtLnVybCgpLnN0cmluZygpLmFzY2lpKCku
ZGF0YSgpKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBh
Z2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtleSgpKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNhY2hlZFBhZ2U7Ci19Ci0KLXZvaWQgUGFn
ZUNhY2hlOjpyZW1vdmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYgcGFnZSkKLXsKLSNpZiAhQVNTRVJU
X0RJU0FCTEVECi0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc0luUmVtb3ZlQWxsSXRlbXNG
b3JQYWdlLCAiV2Ugc2hvdWxkIG5vdCByZWVudGVyIHRoaXMgbWV0aG9kIik7Ci0gICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gaW5SZW1vdmVBbGxJdGVtc0ZvclBhZ2VTY29wZSB7IG1faXNJblJlbW92ZUFs
bEl0ZW1zRm9yUGFnZSwgdHJ1ZSB9OwotI2VuZGlmCi0KLSAgICBmb3IgKGF1dG8gaXQgPSBtX2l0
ZW1zLmJlZ2luKCk7IGl0ICE9IG1faXRlbXMuZW5kKCk7KSB7Ci0gICAgICAgIC8vIEluY3JlbWVu
dCBpdGVyYXRvciBmaXJzdCBzbyBpdCBzdGF5cyB2YWxpZCBhZnRlciB0aGUgcmVtb3ZhbC4KLSAg
ICAgICAgYXV0byBjdXJyZW50ID0gaXQ7Ci0gICAgICAgICsraXQ7Ci0gICAgICAgIGlmICgmKCpj
dXJyZW50KS0+bV9jYWNoZWRQYWdlLT5wYWdlKCkgPT0gJnBhZ2UpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJQYWdlQ2FjaGU6OnJlbW92ZUFsbEl0ZW1zRm9y
UGFnZSByZW1vdmluZyBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIsICgqY3VycmVudCktPmlkZW50
aWZpZXIoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBwYWdlQ291bnQoKSAtIDEsIG1heFNpemUo
KSk7Ci0gICAgICAgICAgICAoKmN1cnJlbnQpLT5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOwotICAg
ICAgICAgICAgbV9pdGVtcy5yZW1vdmUoY3VycmVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0K
LUNhY2hlZFBhZ2UqIFBhZ2VDYWNoZTo6Z2V0KEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdl
KQotewotICAgIENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBpdGVtLm1fY2FjaGVkUGFnZS5nZXQo
KTsKLSAgICBpZiAoIWNhY2hlZFBhZ2UpIHsKLSAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVh
c29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCi0gICAgICAgICAgICBsb2dQYWdlQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgcHJ1bmluZ1JlYXNvblRvRGlhZ25vc3RpY0xvZ2dp
bmdLZXkoaXRlbS5tX3BydW5pbmdSZWFzb24pKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotCi0gICAgaWYgKGNhY2hlZFBhZ2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdl
LT5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkQnlXZWJJbnNwZWN0b3IoKSkpIHsKLSAgICAgICAg
TE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJOb3QgcmVzdG9yaW5nIHBhZ2UgZm9yICVzIGZyb20gYmFj
ay9mb3J3YXJkIGNhY2hlIGJlY2F1c2UgY2FjaGUgZW50cnkgaGFzIGV4cGlyZWQiLCBpdGVtLnVy
bCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtl
eSgpKTsKLSAgICAgICAgcmVtb3ZlKGl0ZW0pOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9Ci0gICAgcmV0dXJuIGNhY2hlZFBhZ2U7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjpyZW1vdmUo
SGlzdG9yeUl0ZW0mIGl0ZW0pCi17Ci0gICAgLy8gU2FmZWx5IGlnbm9yZSBhdHRlbXB0cyB0byBy
ZW1vdmUgaXRlbXMgbm90IGluIHRoZSBjYWNoZS4KLSAgICBpZiAoIWl0ZW0ubV9jYWNoZWRQYWdl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7Ci0gICAgaXRl
bS5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOwotCi0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRD
YWNoZSwgIlBhZ2VDYWNoZTo6cmVtb3ZlIGl0ZW06ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5p
ZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUo
KSk7Ci0KLX0KLQotdm9pZCBQYWdlQ2FjaGU6OnBydW5lKFBydW5pbmdSZWFzb24gcHJ1bmluZ1Jl
YXNvbikKLXsKLSAgICB3aGlsZSAocGFnZUNvdW50KCkgPiBtYXhTaXplKCkpIHsKLSAgICAgICAg
YXV0byBvbGRlc3RJdGVtID0gbV9pdGVtcy50YWtlRmlyc3QoKTsKLSAgICAgICAgb2xkZXN0SXRl
bS0+c2V0Q2FjaGVkUGFnZShudWxscHRyKTsKLSAgICAgICAgb2xkZXN0SXRlbS0+bV9wcnVuaW5n
UmVhc29uID0gcHJ1bmluZ1JlYXNvbjsKLSAgICAgICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRD
YWNoZSwgIlBhZ2VDYWNoZTo6cHJ1bmUgcmVtb3ZpbmcgaXRlbTogJXMsIHNpemU6ICV1IC8gJXUi
LCBvbGRlc3RJdGVtLT5pZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNv
dW50KCksIG1heFNpemUoKSk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTIxMWNjNDU5ZmVlZmVkZmJmYTk0NDkyNzcyZTg5ZDAzMjAxMTU4NS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1Bh
Z2VDYWNoZS5oCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lu
Y2x1ZGUgIkhpc3RvcnlJdGVtLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRl
IDx3dGYvTGlzdEhhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDYWNoZWRQYWdlOwotY2xhc3MgRnJhbWU7Ci1jbGFz
cyBQYWdlOwotCi1lbnVtIGNsYXNzIFBydW5pbmdSZWFzb24geyBOb25lLCBQcm9jZXNzU3VzcGVu
ZGVkLCBNZW1vcnlQcmVzc3VyZSwgUmVhY2hlZE1heFNpemUgfTsKLQotY2xhc3MgUGFnZUNhY2hl
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ2FjaGUpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLXB1YmxpYzoKLSAgICAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhlIGdsb2JhbCBw
YWdlIGNhY2hlLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYWdlQ2FjaGUmIHNpbmdsZXRv
bigpOwotCi0gICAgYm9vbCBjYW5DYWNoZShQYWdlJikgY29uc3Q7Ci0KLSAgICAvLyBVc2VkIHdo
ZW4gbWVtb3J5IGlzIGxvdyB0byBwcnVuZSBzb21lIGNhY2hlZCBwYWdlcy4KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHBydW5lVG9TaXplTm93KHVuc2lnbmVkIG1heFNpemUsIFBydW5pbmdSZWFz
b24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWF4U2l6ZSh1bnNpZ25lZCk7IC8vIG51
bWJlciBvZiBwYWdlcyB0byBjYWNoZS4KLSAgICB1bnNpZ25lZCBtYXhTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXhTaXplOyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFkZElmQ2FjaGVh
YmxlKEhpc3RvcnlJdGVtJiwgUGFnZSopOyAvLyBQcnVuZXMgaWYgbWF4U2l6ZSgpIGlzIGV4Y2Vl
ZGVkLgotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlKEhpc3RvcnlJdGVtJik7Ci0gICAg
Q2FjaGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVtJiwgUGFnZSopOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxDYWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJdGVtJiwgUGFnZSopOwotCi0gICAgdm9pZCByZW1v
dmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYpOwotCi0gICAgdW5zaWduZWQgcGFnZUNvdW50KCkgY29u
c3QgeyByZXR1cm4gbV9pdGVtcy5zaXplKCk7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25l
ZCBmcmFtZUNvdW50KCkgY29uc3Q7Ci0KLSAgICB2b2lkIG1hcmtQYWdlc0ZvckRldmljZU9yUGFn
ZVNjYWxlQ2hhbmdlZChQYWdlJik7Ci0gICAgdm9pZCBtYXJrUGFnZXNGb3JDb250ZW50c1NpemVD
aGFuZ2VkKFBhZ2UmKTsKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgdm9pZCBtYXJrUGFn
ZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAg
ICBQYWdlQ2FjaGUoKTsKLSAgICB+UGFnZUNhY2hlKCkgPSBkZWxldGU7IC8vIE1ha2Ugc3VyZSBu
b2JvZHkgYWNjaWRlbnRhbGx5IGNhbGxzIGRlbGV0ZSAtLSBXZWJDb3JlIGRvZXMgbm90IGRlbGV0
ZSBzaW5nbGV0b25zLgotCi0gICAgc3RhdGljIGJvb2wgY2FuQ2FjaGVQYWdlQ29udGFpbmluZ1Ro
aXNGcmFtZShGcmFtZSYpOwotCi0gICAgdm9pZCBwcnVuZShQcnVuaW5nUmVhc29uKTsKLSAgICB2
b2lkIGR1bXAoKSBjb25zdDsKLQotICAgIExpc3RIYXNoU2V0PFJlZlB0cjxIaXN0b3J5SXRlbT4+
IG1faXRlbXM7Ci0gICAgdW5zaWduZWQgbV9tYXhTaXplIHswfTsKLQotI2lmICFBU1NFUlRfRElT
QUJMRUQKLSAgICBib29sIG1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSB7IGZhbHNlIH07Ci0j
ZW5kaWYKLQotICAgIGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFBhZ2VDYWNoZT47
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCBjZmVhMjcxZjJmNjAyZDg2YzMyMDk2YjVmMTBjOGI0M2RkZTVj
MzM5Li45ZmE3MzhhYmM3MTEwNmQ3NmFjNDk0YjhkNmU1ZjhiMDc3ZWUwNzA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU3NTksNyArNTc1OSw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikK
ICAgICBtX3Jlc3VtZVRhc2tRdWV1ZS5jYW5jZWxUYXNrKCk7CiAKICAgICBzd2l0Y2ggKHJlYXNv
bikgewotICAgIGNhc2UgUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlOgorICAgIGNhc2Ug
UmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgc3RvcFdpdGhv
dXREZXN0cm95aW5nTWVkaWFQbGF5ZXIoKTsKICAgICAgICAgc2V0QnVmZmVyaW5nUG9saWN5KEJ1
ZmZlcmluZ1BvbGljeTo6TWFrZVJlc291cmNlc1B1cmdlYWJsZSk7CiAgICAgICAgIG1fbWVkaWFT
ZXNzaW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVp
cmVQYWdlQ29uc2VudFRvUmVzdW1lTWVkaWEpOwpAQCAtNTc4Nyw3ICs1Nzg3LDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpyZXN1bWUoKQogICAgIG1fbWVkaWFTZXNzaW9uLT51cGRhdGVCdWZm
ZXJpbmdQb2xpY3koKTsKIAogICAgIGlmIChtX2Vycm9yICYmIG1fZXJyb3ItPmNvZGUoKSA9PSBN
ZWRpYUVycm9yOjpNRURJQV9FUlJfQUJPUlRFRCAmJiAhbV9yZXN1bWVUYXNrUXVldWUuaGFzUGVu
ZGluZ1Rhc2soKSkgewotICAgICAgICAvLyBSZXN0YXJ0IHRoZSBsb2FkIGlmIGl0IHdhcyBhYm9y
dGVkIGluIHRoZSBtaWRkbGUgYnkgbW92aW5nIHRoZSBkb2N1bWVudCB0byB0aGUgcGFnZSBjYWNo
ZS4KKyAgICAgICAgLy8gUmVzdGFydCB0aGUgbG9hZCBpZiBpdCB3YXMgYWJvcnRlZCBpbiB0aGUg
bWlkZGxlIGJ5IG1vdmluZyB0aGUgZG9jdW1lbnQgdG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4K
ICAgICAgICAgLy8gbV9lcnJvciBpcyBvbmx5IGxlZnQgYXQgTUVESUFfRVJSX0FCT1JURUQgd2hl
biB0aGUgZG9jdW1lbnQgYmVjb21lcyBpbmFjdGl2ZSAoaXQgaXMgc2V0IHRvCiAgICAgICAgIC8v
ICBNRURJQV9FUlJfQUJPUlRFRCB3aGlsZSB0aGUgYWJvcnRFdmVudCBpcyBiZWluZyBzZW50LCBi
dXQgY2xlYXJlZCBpbW1lZGlhdGVseSBhZnRlcndhcmRzKS4KICAgICAgICAgLy8gVGhpcyBiZWhh
dmlvciBpcyBub3Qgc3BlY2lmaWVkIGJ1dCBpdCBzZWVtcyBsaWtlIGEgc2Vuc2libGUgdGhpbmcg
dG8gZG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cAppbmRleCBjNTZjM2M0ODg1OGI2MzlhZWQzMTljNzI3ZjZmODYyYzVmNjQzZTU4Li44YTFlZTBk
MjNjMjZjMjgyMTM5M2Q4ODJmZmVlMTU2Nzk1YzQyOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTE4NCwxMyArMTg0LDEzIEBAIGJv
b2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNQbHVnSW4oY29uc3QgU3RyaW5n
JiByZWxhdGl2ZVVSTCwgY29uc3QKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewotICAgIEFT
U0VSVChkb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNh
Y2hlKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQoKS5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBE
b2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGlmIChkaXNwbGF5U3RhdGUo
KSA+PSBQcmVwYXJpbmdQbHVnaW5SZXBsYWNlbWVudCkKICAgICAgICAgcmV0dXJuIEhUTUxQbHVn
SW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGTW92ZShzdHlsZSksIGluc2VydGlv
blBvc2l0aW9uKTsKIAogICAgIC8vIE9uY2UgYSBwbHVnLWluIGVsZW1lbnQgY3JlYXRlcyBpdHMg
cmVuZGVyZXIsIGl0IG5lZWRzIHRvIGJlIHRvbGQgd2hlbiB0aGUgZG9jdW1lbnQgZ29lcwotICAg
IC8vIGluYWN0aXZlIG9yIHJlYWN0aXZhdGVzIHNvIGl0IGNhbiBjbGVhciB0aGUgcmVuZGVyZXIg
YmVmb3JlIGdvaW5nIGludG8gdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gaW5hY3RpdmUgb3IgcmVh
Y3RpdmF0ZXMgc28gaXQgY2FuIGNsZWFyIHRoZSByZW5kZXJlciBiZWZvcmUgZ29pbmcgaW50byB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIGlmICghbV9uZWVkc0RvY3VtZW50QWN0aXZhdGlv
bkNhbGxiYWNrcykgewogICAgICAgICBtX25lZWRzRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tz
ID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQoKS5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lv
bkNhbGxiYWNrcygqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
b3VyY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQu
Y3BwCmluZGV4IDg4ZWM1YTc2YTYwZWNiZjYwZWNkMjI1ODExY2JmMzMyZmUxMjNiY2EuLmRkNWQ4
NWM1NGI5MWZmYmNmYjIwNGVjZmQ2Yjc0YjRiNDIzZjNhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBIVE1MU291
cmNlRWxlbWVudDo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB2b2lk
IEhUTUxTb3VyY2VFbGVtZW50OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQog
ewogICAgIC8vIEZJWE1FOiBTaG91bGRuJ3QgdGhpcyBhbHNvIHN0b3AgdGhlIHRpbWVyIGZvciBQ
YWdlV2lsbEJlU3VzcGVuZGVkPwotICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lv
bjo6UGFnZUNhY2hlKSB7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpC
YWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAgIG1fc2hvdWxkUmVzY2hlZHVsZUVycm9yRXZlbnRP
blJlc3VtZSA9IG1fZXJyb3JFdmVudFRpbWVyLmlzQWN0aXZlKCk7CiAgICAgICAgIG1fZXJyb3JF
dmVudFRpbWVyLnN0b3AoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcAppbmRleCAyODQwNmZjMmZlZTgxYTFhZWE2ZjRmNDc1ZjVhNWE4ZDk2ZmEx
M2E2Li4yYTRjOGY1M2Q5OTVhYjllZGE0NWNkNTBiMzY2Zjk2NzQ4NjU0ZjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTMxMiw3ICszMTIsNyBA
QCBTdWNjZXNzT3I8TWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50U2Vzc2lv
bjo6cGxheWJhY2tQZXJtaXR0ZWQoKSBjbwogYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRv
cGxheVBlcm1pdHRlZCgpIGNvbnN0CiB7CiAgICAgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50ID0g
bV9lbGVtZW50LmRvY3VtZW50KCk7Ci0gICAgaWYgKGRvY3VtZW50LnBhZ2VDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgIGlmIChkb2N1bWVudC5iYWNrRm9yd2Fy
ZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNw
ZW5kZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKaW5kZXggZmJhMjY2YWVlNmMxYjgwZDdlNWZhYzBlNzMyMzQ2MTE4OTgw
NmFlNS4uNWZlMzA3ZGM1NDdjZGE1MTAzMDMwYjYzMWUyZDEwMGM1YmE3MTA4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xNjU0LDE3ICsxNjU0LDE3IEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OmFkZFN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVy
KiBsb2FkZXIpCiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgaWYgKGRvY3VtZW50KCkpIHsK
LSAgICAgICAgc3dpdGNoIChkb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAg
IGNhc2UgRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOgorICAgICAgICBzd2l0Y2ggKGRvY3VtZW50
KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpKSB7CisgICAgICAgIGNhc2UgRG9jdW1lbnQ6Ok5v
dEluQmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERv
Y3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGU6IHsKLSAgICAgICAgICAgIC8vIEEgcGFnZSBh
Ym91dCB0byBlbnRlciBQYWdlQ2FjaGUgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5n
IGxvYWRzLgorICAgICAgICBjYXNlIERvY3VtZW50OjpBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENh
Y2hlOiB7CisgICAgICAgICAgICAvLyBBIHBhZ2UgYWJvdXQgdG8gZW50ZXIgdGhlIEJhY2tGb3J3
YXJkQ2FjaGUgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5nIGxvYWRzLgogICAgICAg
ICAgICAgYXV0byogY2FjaGVkUmVzb3VyY2UgPSBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVz
b3VyY2VGb3JSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpLCBsb2FkZXItPmZyYW1lTG9hZGVyKCkt
PmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoY2FjaGVk
UmVzb3VyY2UgJiYgQ2FjaGVkUmVzb3VyY2U6OnNob3VsZFVzZVBpbmdMb2FkKGNhY2hlZFJlc291
cmNlLT50eXBlKCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNh
c2UgRG9jdW1lbnQ6OkluUGFnZUNhY2hlOgotICAgICAgICAgICAgLy8gQSBwYWdlIGluIHRoZSBQ
YWdlQ2FjaGUgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRzLgorICAgICAgICBjYXNl
IERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGU6CisgICAgICAgICAgICAvLyBBIHBhZ2UgaW4g
dGhlIEJhY2tGb3J3YXJkQ2FjaGUgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRzLgog
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkZmZlZDQw
OGMxZGVhODA3YjFkYTJiNTQ1OTk0NGE0YjZkZTVjMTdjLi45ZjM4ZjllYjQyMzBjZjVlODM3MGVl
ODYwNDMzNDVlYjJiMTgyZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aApAQCAtNTM5LDcgKzUzOSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXZSByZXRhaW4gYWxsIHRo
ZSByZWNlaXZlZCByZXNwb25zZXMgc28gd2UgY2FuIHBsYXkgYmFjayB0aGUKICAgICAvLyBXZWJS
ZXNvdXJjZUxvYWREZWxlZ2F0ZSBtZXNzYWdlcyBpZiB0aGUgaXRlbSBpcyBsb2FkZWQgZnJvbSB0
aGUKLSAgICAvLyBwYWdlIGNhY2hlLgorICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBW
ZWN0b3I8UmVzb3VyY2VSZXNwb25zZT4gbV9yZXNwb25zZXM7CiAgICAgYm9vbCBtX3N0b3BSZWNv
cmRpbmdSZXNwb25zZXMgeyBmYWxzZSB9OwogICAgIApAQCAtNTc5LDcgKzU3OSw2IEBAIHByaXZh
dGU6CiAKICAgICBWZWN0b3I8Q3VzdG9tSGVhZGVyRmllbGRzPiBtX2N1c3RvbUhlYWRlckZpZWxk
czsKICAgICAKLSAgICBib29sIG1fc3VicmVzb3VyY2VMb2FkZXJzQXJlUGFnZUNhY2hlQWNjZXB0
YWJsZSB7IGZhbHNlIH07CiAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBtX3Nob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFwcGxpY2F0aW9uQ2FjaGVI
b3N0PiBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZTU5NmZhMDNlMTFjYmZjY2MxNTY2ZGVmZGJm
Nzc1ZDgyYjVkMzk4ZS4uMDljY2Q1YTIyNzc3ZmNiZWIxYTc4ZTFjZTk4OGM2NjQyNjUzNGZmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC00Niw3ICs0Niw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGll
bnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogCiAgICAgdm9pZCBtYWtlUmVwcmVzZW50
YXRpb24oRG9jdW1lbnRMb2FkZXIqKSBmaW5hbCB7IH0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3
YXJkQ2FjaGUoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgdm9pZCBmb3Jj
ZUxheW91dEZvck5vbkhUTUwoKSBmaW5hbCB7IH0KIApAQCAtMTY0LDcgKzE2NCw3IEBAIGNsYXNz
IFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2Fk
ZXJDbGllbnQgewogI2VuZGlmCiAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQ
YWdlKCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmlu
YWwgeyB9CisgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbCB7
IH0KIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbCB7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYzk3M2UxNzUyYjBlN2E5
YTBlMTlhMjg2N2UzNGMxNzFmMTc0ZGJmZi4uYjIwMzc1YTUwZDlhNDVhZDU5MTg5MzlhYTQ0ZWJm
ZWRlMWY4NzVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNyw2
ICszNyw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXBwbGlj
YXRpb25DYWNoZUhvc3QuaCIKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVk
ZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQmVmb3JlVW5sb2FkRXZlbnQu
aCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCkBAIC05Miw3ICs5Myw2IEBACiAjaW5jbHVkZSAi
TmF2aWdhdGlvblNjaGVkdWxlci5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdl
LmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVu
dC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyYXRlZ2llcy5oIgpAQCAtNTQ4LDggKzU0OCw4IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmNsb3Nl
VVJMKCkKICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgU1ZHRG9jdW1lbnQgb2YgYW4gU1ZHSW1h
Z2UsIG5vIG5lZWQgdG8gZGlzcGF0Y2ggZXZlbnRzIG9yIHJlY2FsY1N0eWxlLgogICAgICAgICB1
bmxvYWRFdmVudFBvbGljeSA9IFVubG9hZEV2ZW50UG9saWN5Tm9uZTsKICAgICB9IGVsc2Ugewot
ICAgICAgICAvLyBTaG91bGQgb25seSBzZW5kIHRoZSBwYWdlaGlkZSBldmVudCBoZXJlIGlmIHRo
ZSBjdXJyZW50IGRvY3VtZW50IGV4aXN0cyBhbmQgaGFzIG5vdCBiZWVuIHBsYWNlZCBpbiB0aGUg
cGFnZSBjYWNoZS4KLSAgICAgICAgdW5sb2FkRXZlbnRQb2xpY3kgPSBjdXJyZW50RG9jdW1lbnQg
JiYgY3VycmVudERvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBh
Z2VDYWNoZSA/IFVubG9hZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhpZGUgOiBVbmxvYWRFdmVu
dFBvbGljeVVubG9hZE9ubHk7CisgICAgICAgIC8vIFNob3VsZCBvbmx5IHNlbmQgdGhlIHBhZ2Vo
aWRlIGV2ZW50IGhlcmUgaWYgdGhlIGN1cnJlbnQgZG9jdW1lbnQgZXhpc3RzIGFuZCBoYXMgbm90
IGJlZW4gcGxhY2VkIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgICAgIHVubG9hZEV2
ZW50UG9saWN5ID0gY3VycmVudERvY3VtZW50ICYmIGN1cnJlbnREb2N1bWVudC0+YmFja0Zvcndh
cmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSA/IFVubG9h
ZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhpZGUgOiBVbmxvYWRFdmVudFBvbGljeVVubG9hZE9u
bHk7CiAgICAgfQogCiAgICAgc3RvcExvYWRpbmcodW5sb2FkRXZlbnRQb2xpY3kpOwpAQCAtNjM0
LDcgKzYzNCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyKERvY3VtZW50KiBuZXdEb2N1bWVu
dCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMsIGJvb2wKICAgICBib29sIG5lZWRlZENsZWFy
ID0gbV9uZWVkc0NsZWFyOwogICAgIG1fbmVlZHNDbGVhciA9IGZhbHNlOwogCi0gICAgaWYgKG5l
ZWRlZENsZWFyICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1
bWVudDo6SW5QYWdlQ2FjaGUpIHsKKyAgICBpZiAobmVlZGVkQ2xlYXIgJiYgbV9mcmFtZS5kb2N1
bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2Fy
ZENhY2hlKSB7CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwog
ICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnN0b3BBY3RpdmVET01PYmplY3RzKCk7CiAgICAg
ICAgIGJvb2wgaGFkTGl2aW5nUmVuZGVyVHJlZSA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+aGFzTGl2
aW5nUmVuZGVyVHJlZSgpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNs
ZWFyKERvY3VtZW50KiBuZXdEb2N1bWVudCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMsIGJv
b2wKICAgICBpZiAoY2xlYXJXaW5kb3dQcm9wZXJ0aWVzKSB7CiAgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQobV9mcmFtZSwgbV9mcmFtZS5kb2N1
bWVudCgpLT5kb21XaW5kb3coKSk7CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2lu
ZG93KCktPnJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7Ci0gICAg
ICAgIG1fZnJhbWUud2luZG93UHJveHkoKS5jbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5n
RE9NV2luZG93KG5ld0RvY3VtZW50LT5kb21XaW5kb3coKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5w
YWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOworICAg
ICAgICBtX2ZyYW1lLndpbmRvd1Byb3h5KCkuY2xlYXJKU1dpbmRvd1Byb3hpZXNOb3RNYXRjaGlu
Z0RPTVdpbmRvdyhuZXdEb2N1bWVudC0+ZG9tV2luZG93KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+
YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3
YXJkQ2FjaGUpOwogCiAgICAgICAgIGlmIChzaG91bGRDbGVhcldpbmRvd05hbWUobV9mcmFtZSwg
Km5ld0RvY3VtZW50KSkKICAgICAgICAgICAgIG1fZnJhbWUudHJlZSgpLnNldE5hbWUobnVsbEF0
b20oKSk7CkBAIC0xODE0LDcgKzE4MTQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoT3B0
aW9uU2V0PFJlbG9hZE9wdGlvbj4gb3B0aW9ucykKIAogdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFs
bExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW1Q
b2xpY3ksIFN0b3BMb2FkaW5nUG9saWN5IHN0b3BMb2FkaW5nUG9saWN5KQogewotICAgIGlmICht
X2ZyYW1lLmRvY3VtZW50KCkgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgp
ID09IERvY3VtZW50OjpJblBhZ2VDYWNoZSkKKyAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpICYm
IG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6
OkluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHN0b3BMb2Fk
aW5nUG9saWN5ID09IFN0b3BMb2FkaW5nUG9saWN5OjpQcmV2ZW50RHVyaW5nVW5sb2FkRXZlbnRz
ICYmICFpc1N0b3BMb2FkaW5nQWxsb3dlZCgpKQpAQCAtMTg1Miw3ICsxODUyLDcgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xl
YXJQcm92aXNpb25hbEl0ZW0KICAgICBtX2luU3RvcEFsbExvYWRlcnMgPSBmYWxzZTsgICAgCiB9
CiAKLXZvaWQgRnJhbWVMb2FkZXI6OnN0b3BGb3JQYWdlQ2FjaGUoKQordm9pZCBGcmFtZUxvYWRl
cjo6c3RvcEZvckJhY2tGb3J3YXJkQ2FjaGUoKQogewogICAgIC8vIFN0b3AgcHJvdmlzaW9uYWwg
bG9hZHMgaW4gc3ViZnJhbWVzIChUaGUgb25lIGluIHRoZSBtYWluIGZyYW1lIGlzIGFib3V0IHRv
IGJlIGNvbW1pdHRlZCkuCiAgICAgaWYgKCFtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKQEAgLTE4
NjYsNyArMTg2Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BGb3JQYWdlQ2FjaGUoKQogICAg
ICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwogCiAgICAgZm9yIChSZWZQdHI8
RnJhbWU+IGNoaWxkID0gbV9mcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkLT5sb2FkZXIoKS5z
dG9wRm9yUGFnZUNhY2hlKCk7CisgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5zdG9wRm9yQmFja0Zv
cndhcmRDYWNoZSgpOwogCiAgICAgLy8gV2UgY2FuY2VsIHBlbmRpbmcgbmF2aWdhdGlvbnMgJiBw
b2xpY3kgY2hlY2tzICphZnRlciogY2FuY2VsbGluZyBsb2FkcyBiZWNhdXNlIGNhbmNlbGxpbmcg
bG9hZHMgbWlnaHQgZW5kIHVwCiAgICAgLy8gcnVubmluZyBzY3JpcHQsIHdoaWNoIGNvdWxkIHNj
aGVkdWxlIG5ldyBuYXZpZ2F0aW9ucy4KQEAgLTIwMTYsNyArMjAxNiw3IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2Fj
aGVkUGFnZT4gY2FjaGVkUGFnZTsKICAgICBpZiAobV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2UgJiYg
aGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpKQotICAgICAgICBjYWNoZWRQYWdlID0gUGFnZUNh
Y2hlOjpzaW5nbGV0b24oKS50YWtlKCpoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCksIG1fZnJh
bWUucGFnZSgpKTsKKyAgICAgICAgY2FjaGVkUGFnZSA9IEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmds
ZXRvbigpLnRha2UoKmhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSwgbV9mcmFtZS5wYWdlKCkp
OwogCiAgICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJXZWJDb3JlTG9hZGluZyAlczogQWJvdXQg
dG8gY29tbWl0IHByb3Zpc2lvbmFsIGxvYWQgZnJvbSBwcmV2aW91cyBVUkwgJyVzJyB0byBuZXcg
VVJMICclcycgd2l0aCBjYWNoZWQgcGFnZSAlcCIsIG1fZnJhbWUudHJlZSgpLnVuaXF1ZU5hbWUo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLAogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCkgPyBt
X2ZyYW1lLmRvY3VtZW50KCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgp
LnV0ZjgoKS5kYXRhKCkgOiAiIiwKQEAgLTIwMjcsNyArMjAyNyw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgaWYgKCFtX2ZyYW1lLnRyZWUoKS5wYXJl
bnQoKSAmJiBoaXN0b3J5KCkuY3VycmVudEl0ZW0oKSAmJiBoaXN0b3J5KCkuY3VycmVudEl0ZW0o
KSAhPSBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpIHsKICAgICAgICAgLy8gQ2hlY2sgdG8g
c2VlIGlmIHdlIG5lZWQgdG8gY2FjaGUgdGhlIHBhZ2Ugd2UgYXJlIG5hdmlnYXRpbmcgYXdheSBm
cm9tIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICAgICAgLy8gV2UgYXJlIGRvaW5n
IHRoaXMgaGVyZSBiZWNhdXNlIHdlIGtub3cgZm9yIHN1cmUgdGhhdCBhIG5ldyBwYWdlIGlzIGFi
b3V0IHRvIGJlIGxvYWRlZC4KLSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5hZGRJZkNh
Y2hlYWJsZSgqaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAg
ICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuYWRkSWZDYWNoZWFibGUoKmhpc3Rvcnko
KS5jdXJyZW50SXRlbSgpLCBtX2ZyYW1lLnBhZ2UoKSk7CiAgICAgICAgIAogICAgICAgICBXZWJD
b3JlOjpqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExldmVsTmF2aWdhdGlvbigpOwogICAg
IH0KQEAgLTIxMDQsMTEgKzIxMDQsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlz
aW9uYWxMb2FkKCkKICAgICAgICAgLy8gTm90ZSwgZGlkUmVjZWl2ZURvY1R5cGUgaXMgZXhwZWN0
ZWQgdG8gYmUgY2FsbGVkIGZvciBjYWNoZWQgcGFnZXMuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTkw
Njc1OD4gZm9yIG1vcmUgZGV0YWlscy4KICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKG1f
ZnJhbWUpOwotICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShSZWFzb25Gb3JTdXNw
ZW5zaW9uOjpQYWdlQ2FjaGUpOworICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShS
ZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgICAgICAvLyBGb3Jj
ZSBhIGxheW91dCB0byB1cGRhdGUgdmlldyBzaXplIGFuZCB0aGVyZWJ5IHVwZGF0ZSBzY3JvbGxi
YXJzLgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlmICghbV9jbGllbnQuZm9y
Y2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkpCisgICAgICAgIGlmICghbV9jbGllbnQu
Zm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICAgICAg
bV9mcmFtZS52aWV3KCktPmZvcmNlTGF5b3V0KCk7CiAjZWxzZQogICAgICAgICBtX2ZyYW1lLnZp
ZXcoKS0+Zm9yY2VMYXlvdXQoKTsKQEAgLTIzMzAsNyArMjMzMCw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6Om9wZW4oQ2FjaGVkRnJhbWVCYXNlJiBjYWNoZWRGcmFtZSkKICAgICBjbGVhcihkb2N1bWVu
dC5wdHIoKSwgdHJ1ZSwgdHJ1ZSwgY2FjaGVkRnJhbWUuaXNNYWluRnJhbWUoKSk7CiAKICAgICBk
b2N1bWVudC0+YXR0YWNoVG9DYWNoZWRGcmFtZShjYWNoZWRGcmFtZSk7Ci0gICAgZG9jdW1lbnQt
PnNldFBhZ2VDYWNoZVN0YXRlKERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgZG9jdW1l
bnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENh
Y2hlKTsKIAogICAgIG1fbmVlZHNDbGVhciA9IHRydWU7CiAgICAgbV9pc0NvbXBsZXRlID0gZmFs
c2U7CkBAIC0yMzYwLDcgKzIzNjAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpvcGVuKENhY2hlZEZy
YW1lQmFzZSYgY2FjaGVkRnJhbWUpCiAgICAgCiAgICAgbV9mcmFtZS5zZXREb2N1bWVudChkb2N1
bWVudC5jb3B5UmVmKCkpOwogCi0gICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5yZXN1bWVGcm9t
UGFnZUNhY2hlKCk7CisgICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5yZXN1bWVGcm9tQmFja0Zv
cndhcmRDYWNoZSgpOwogCiAgICAgdXBkYXRlRmlyc3RQYXJ0eUZvckNvb2tpZXMoKTsKIApAQCAt
MjgyOCw3ICsyODI4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZnJhbWVEZXRhY2hlZCgpCiAgICAg
ICAgIGNoZWNrQ29tcGxldGVuZXNzTm93KCk7CiAgICAgfQogCi0gICAgaWYgKG1fZnJhbWUuZG9j
dW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpIHsKKyAg
ICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1
bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAgIHN0b3BBbGxMb2FkZXJzQW5kQ2hl
Y2tDb21wbGV0ZW5lc3MoKTsKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zdG9wQWN0aXZl
RE9NT2JqZWN0cygpOwogICAgIH0KQEAgLTI4NDQsOCArMjg0NCw4IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmRldGFjaEZyb21QYXJlbnQoKQogICAgIGNsb3NlVVJMKCk7CiAgICAgaGlzdG9yeSgpLnNh
dmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShoaXN0b3J5KCkuY3VycmVudEl0ZW0o
KSk7CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5w
YWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpJblBhZ2VDYWNoZSkgewotICAgICAgICAvLyBz
dG9wQWxsTG9hZGVycygpIG5lZWRzIHRvIGJlIGNhbGxlZCBhZnRlciBkZXRhY2hDaGlsZHJlbigp
IGlmIHRoZSBkb2N1bWVudCBpcyBub3QgaW4gdGhlIHBhZ2UgY2FjaGUsCisgICAgaWYgKG1fZnJh
bWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluQmFj
a0ZvcndhcmRDYWNoZSkgeworICAgICAgICAvLyBzdG9wQWxsTG9hZGVycygpIG5lZWRzIHRvIGJl
IGNhbGxlZCBhZnRlciBkZXRhY2hDaGlsZHJlbigpIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgaW4g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZSwKICAgICAgICAgLy8gYmVjYXVzZSBkZXRhY2hlZENoaWxk
cmVuKCkgd2lsbCB0cmlnZ2VyIHRoZSB1bmxvYWQgZXZlbnQgaGFuZGxlcnMgb2YgYW55IGNoaWxk
IGZyYW1lcywgYW5kIHRob3NlIGV2ZW50CiAgICAgICAgIC8vIGhhbmRsZXJzIG1pZ2h0IHN0YXJ0
IGEgbmV3IHN1YnJlc291cmNlIGxvYWQgaW4gdGhpcyBmcmFtZS4KICAgICAgICAgc3RvcEFsbExv
YWRlcnMoU2hvdWxkQ2xlYXJQcm92aXNpb25hbEl0ZW0sIFN0b3BMb2FkaW5nUG9saWN5OjpBbHdh
eXNTdG9wTG9hZGluZyk7CkBAIC0zMTgwLDcgKzMxODAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpy
ZWNlaXZlZE1haW5SZXNvdXJjZUVycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAg
ICAgICBpZiAobV9zdWJtaXR0ZWRGb3JtVVJMID09IG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRl
ci0+b3JpZ2luYWxSZXF1ZXN0Q29weSgpLnVybCgpKQogICAgICAgICAgICAgbV9zdWJtaXR0ZWRG
b3JtVVJMID0gVVJMKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBt
YWRlIGEgcGFnZSBjYWNoZSBpdGVtLCBidXQgbm93IHdlJ3JlIGJhaWxpbmcgb3V0IGR1ZSB0byBh
biBlcnJvciBiZWZvcmUgd2UgZXZlcgorICAgICAgICAvLyBXZSBtaWdodCBoYXZlIG1hZGUgYSBi
YWNrL2ZvcndhcmQgY2FjaGUgaXRlbSwgYnV0IG5vdyB3ZSdyZSBiYWlsaW5nIG91dCBkdWUgdG8g
YW4gZXJyb3IgYmVmb3JlIHdlIGV2ZXIKICAgICAgICAgLy8gdHJhbnNpdGlvbmVkIHRvIHRoZSBu
ZXcgcGFnZSAoYmVmb3JlIFdlYkZyYW1lU3RhdGUgPT0gY29tbWl0KS4gIFRoZSBnb2FsIGhlcmUg
aXMgdG8gcmVzdG9yZSBhbnkgc3RhdGUKICAgICAgICAgLy8gc28gdGhhdCB0aGUgZXhpc3Rpbmcg
dmlldyAodGhhdCB3ZW5ldmVyIGdvdCBmYXIgZW5vdWdoIHRvIHJlcGxhY2UpIGNhbiBjb250aW51
ZSBiZWluZyB1c2VkLgogICAgICAgICBoaXN0b3J5KCkuaW52YWxpZGF0ZUN1cnJlbnRJdGVtQ2Fj
aGVkUGFnZSgpOwpAQCAtMzIzMSw3ICszMjMxLDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxk
UGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbihib29sIGlzRm9ybVN1Ym1pc3Npb24sIGNvbnN0IFMK
ICAgICByZXR1cm4gKCFpc0Zvcm1TdWJtaXNzaW9uIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGh0dHBNZXRob2QsICJnZXQiKSkKICAgICAgICAgJiYgIWlzUmVsb2FkKGxvYWRUeXBl
KQogICAgICAgICAmJiBsb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlOjpTYW1lCi0gICAgICAgICYm
IG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdl
Q2FjaGUKKyAgICAgICAgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3Rh
dGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlCiAgICAgICAgICYmICFzaG91bGRS
ZWxvYWQobV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKSwgdXJsKQogICAgICAgICAvLyBXZSBkb24n
dCB3YW50IHRvIGp1c3Qgc2Nyb2xsIGlmIGEgbGluayBmcm9tIHdpdGhpbiBhCiAgICAgICAgIC8v
IGZyYW1lc2V0IGlzIHRyeWluZyB0byByZWxvYWQgdGhlIGZyYW1lc2V0IGludG8gX3RvcC4KQEAg
LTMzMTUsMTMgKzMzMTUsMTMgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hVbmxvYWRFdmVu
dHMoVW5sb2FkRXZlbnRQb2xpY3kgdW5sb2FkRXZlbnRQb2xpY3kpCiAgICAgICAgIGlmIChtX3Bh
Z2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCA9PSBQYWdlRGlzbWlzc2FsVHlwZTo6Tm9u
ZSkgewogICAgICAgICAgICAgaWYgKHVubG9hZEV2ZW50UG9saWN5ID09IFVubG9hZEV2ZW50UG9s
aWN5VW5sb2FkQW5kUGFnZUhpZGUpIHsKICAgICAgICAgICAgICAgICBtX3BhZ2VEaXNtaXNzYWxF
dmVudEJlaW5nRGlzcGF0Y2hlZCA9IFBhZ2VEaXNtaXNzYWxUeXBlOjpQYWdlSGlkZTsKLSAgICAg
ICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50
KFBhZ2VUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucGFnZWhpZGVFdmVudCwg
bV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRv
RW50ZXJQYWdlQ2FjaGUpLCBtX2ZyYW1lLmRvY3VtZW50KCkpOworICAgICAgICAgICAgICAgIG1f
ZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRp
b25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJC
YWNrRm9yd2FyZENhY2hlKSwgbV9mcmFtZS5kb2N1bWVudCgpKTsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgLy8gRklYTUU6IHVwZGF0ZSBQYWdlIFZpc2liaWxpdHkgc3RhdGUgaGVyZS4K
ICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY3NzAKIAotICAgICAgICAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3Rh
dGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpIHsKKyAgICAgICAgICAgIGlmIChtX2Zy
YW1lLmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJ
bkJhY2tGb3J3YXJkQ2FjaGUpIHsKICAgICAgICAgICAgICAgICBSZWY8RXZlbnQ+IHVubG9hZEV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnVubG9hZEV2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICAgICAgICAgICAgICAvLyBU
aGUgRG9jdW1lbnRMb2FkZXIgKGFuZCB0aHVzIGl0cyBMb2FkVGltaW5nKSBtaWdodCBnZXQgZGVz
dHJveWVkCiAgICAgICAgICAgICAgICAgLy8gd2hpbGUgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50LCBz
byBwcm90ZWN0IGl0IHRvIHByZXZlbnQgd3JpdGluZyB0aGUgZW5kCkBAIC0zMzQ1LDcgKzMzNDUs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkaXNwYXRjaFVubG9hZEV2ZW50cyhVbmxvYWRFdmVudFBv
bGljeSB1bmxvYWRFdmVudFBvbGljeSkKICAgICBpZiAoIW1fZnJhbWUuZG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3Rh
dGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKG1fZnJhbWUuZG9jdW1l
bnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRG9uJ3QgcmVtb3ZlIGV2ZW50IGxp
c3RlbmVycyBmcm9tIGEgdHJhbnNpdGlvbmFsIGVtcHR5IGRvY3VtZW50IChzZWUgYnVnIDI4NzE2
IGZvciBtb3JlIGluZm9ybWF0aW9uKS4KQEAgLTM1MDUsMTMgKzM1MDUsMTMgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWUKIAogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUodHlwZSkpIHsK
ICAgICAgICAgYXV0byYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtX2ZyYW1lLnBhZ2UoKS0+
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKLSAgICAgICAgaWYgKGhpc3RvcnkoKS5wcm92aXNp
b25hbEl0ZW0oKSAmJiBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCktPmlzSW5QYWdlQ2FjaGUo
KSkgewotICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNhY2hlS2V5KCksIERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIERpYWdub3N0aWNMb2dnaW5nUmVz
dWx0UGFzcywgU2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICBpZiAoaGlzdG9yeSgpLnByb3Zp
c2lvbmFsSXRlbSgpICYmIGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKS0+aXNJbkJhY2tGb3J3
YXJkQ2FjaGUoKSkgeworICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0Zvcndh
cmRDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFn
bm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAg
IGxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSgpOwogICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5OiBjYW4n
dCBjb250aW51ZSBsb2FkaW5nIGZyYW1lIGJlY2F1c2UgaXQgd2lsbCBiZSBsb2FkZWQgZnJvbSBj
YWNoZSAoZnJhbWUgPSAlcCwgbWFpbiA9ICVkKSIsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZy
YW1lKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnBhZ2VDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJp
ZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVz
KTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpLCBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ1Jl
c3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICB9CiAKICAgICBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZEZyYW1lID0g
bWFrZVJlZihtX2ZyYW1lKV0gKCkgbXV0YWJsZSB7CkBAIC0zNjgwLDcgKzM2ODAsNyBAQCBib29s
IEZyYW1lTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9yWEZyYW1lT3B0aW9ucyhjb25zdCBT
dHJpbmcmIGNvbnRlbnQsIGNvbgogdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFByb3Zpc2lvbmFsSXRl
bUZyb21DYWNoZWRQYWdlKCkKIHsKICAgICBEb2N1bWVudExvYWRlciogcHJvdmlzaW9uYWxMb2Fk
ZXIgPSBwcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCk7Ci0gICAgTE9HKEJhY2tGb3J3YXJkQ2Fj
aGUsICJXZWJDb3JlUGFnZUNhY2hlOiBMb2FkaW5nIHByb3Zpc2lvbmFsIERvY3VtZW50TG9hZGVy
ICVwIHdpdGggVVJMICclcycgZnJvbSBDYWNoZWRQYWdlIiwgcHJvdmlzaW9uYWxEb2N1bWVudExv
YWRlcigpLCBwcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCktPnVybCgpLnN0cmluZ0NlbnRlckVs
bGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhCYWNrRm9yd2FyZENh
Y2hlLCAiRnJhbWVMb2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSBMb2Fk
aW5nIHByb3Zpc2lvbmFsIERvY3VtZW50TG9hZGVyICVwIHdpdGggVVJMICclcycgZnJvbSBDYWNo
ZWRQYWdlIiwgcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpLCBwcm92aXNpb25hbERvY3VtZW50
TG9hZGVyKCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5k
YXRhKCkpOwogCiAgICAgcHJlcGFyZUZvckxvYWRTdGFydCgpOwogCkBAIC0zNzY4LDcgKzM3Njgs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJ
dGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbQogCiAgICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRp
bnVpbmdTdGF0ZT4gY29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0
YXRlLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpZZXMgPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJ
dGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAKLSAgICBpZiAoQ2Fj
aGVkUGFnZSogY2FjaGVkUGFnZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1f
ZnJhbWUucGFnZSgpKSkgeworICAgIGlmIChDYWNoZWRQYWdlKiBjYWNoZWRQYWdlID0gQmFja0Zv
cndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJhbWUucGFnZSgpKSkgewogICAg
ICAgICBhdXRvIGRvY3VtZW50TG9hZGVyID0gY2FjaGVkUGFnZS0+ZG9jdW1lbnRMb2FkZXIoKTsK
ICAgICAgICAgbV9jbGllbnQudXBkYXRlQ2FjaGVkRG9jdW1lbnRMb2FkZXIoKmRvY3VtZW50TG9h
ZGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBhMzcxNmQ5ZWZiYmE5
OGQ0NjRhOWY5YTM0MThiNDk2NjJjZTkzM2NlLi41YjNhYzEwNDVhMzBjOGI2YjczMjYxMjUxNzQz
ZGYxODYwOWNiMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTQ3LDcg
KzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BBbGxMb2FkZXJzQW5kQ2hlY2tDb21wbGV0
ZW5lc3MoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BBbGxMb2FkZXJzKENsZWFyUHJv
dmlzaW9uYWxJdGVtUG9saWN5ID0gU2hvdWxkQ2xlYXJQcm92aXNpb25hbEl0ZW0sIFN0b3BMb2Fk
aW5nUG9saWN5ID0gU3RvcExvYWRpbmdQb2xpY3k6OlByZXZlbnREdXJpbmdVbmxvYWRFdmVudHMp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcEZvclVzZXJDYW5jZWwoYm9vbCBkZWZlckNo
ZWNrTG9hZENvbXBsZXRlID0gZmFsc2UpOwotICAgIHZvaWQgc3RvcEZvclBhZ2VDYWNoZSgpOwor
ICAgIHZvaWQgc3RvcEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB2b2lkIHN0b3AoKTsKICAg
ICB2b2lkIHN0b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9saWN5KTsKICAgICBib29sIGNsb3NlVVJM
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDhjN2Yx
NzVmMDhjOWQxNGJkM2ZmMTUyYzI2MzE2MWIwMGVmYmIxYTcuLjk4ZGY5NDVmNTI4N2Q2MTc3NGIz
MmQzZmVkOTRjNGVlYTk3MGZlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNsaWVudCBmb3JjZWQgdGhlIGxh
eW91dC4KLSAgICB2aXJ0dWFsIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hl
KCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBmb3JjZUxheW91dE9uUmVzdG9yZUZyb21CYWNrRm9y
d2FyZENhY2hlKCkgPSAwOwogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9y
Tm9uSFRNTCgpID0gMDsKIApAQCAtMjc4LDcgKzI3OCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAg
IHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgPSAwOwogCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSA9IDA7IC8vIENhbiBjaGFu
Z2UgZHVlIHRvIG5hdmlnYXRpb24gb3IgRE9NIG1vZGlmaWNhdGlvbi4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggMDZhNzE0ZmFiYjNiYTBhN2Yx
MjVlMDJlM2YwNjgwNmNmM2NhMzE4ZC4uNjRmMTkxMzFmYmQzYjA0OGRiNTJmZjkyODgwNWRkYjM3
ODU5Y2M5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlzdG9y
eUNvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKQEAgLTQ0LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJIaXN0b3J5SXRl
bS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAi
UGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRl
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoLmgi
CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3Np
dGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRlbSogaXRlbSkKICAgICBpZiAoIWl0ZW0g
fHwgIWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1l
bnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAg
aWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1l
bnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgaXRlbS0+c2V0U2Nyb2xsUG9zaXRp
b24oZnJhbWVWaWV3LT5jYWNoZWRTY3JvbGxQb3NpdGlvbigpKTsKICAgICBlbHNlCiAgICAgICAg
IGl0ZW0tPnNldFNjcm9sbFBvc2l0aW9uKGZyYW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKSk7CkBA
IC0xMzcsOSArMTM3LDkgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBv
c2l0aW9uQW5kVmlld1N0YXRlKCkKICAgICBhdXRvIHZpZXcgPSBtYWtlUmVmUHRyKG1fZnJhbWUu
dmlldygpKTsKIAogICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBzb21lIHNjcm9sbGluZyByZWxhdGVk
IHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4gd2hlbmV2ZXIgYSBwYWdlIGdvZXMgaW50byB0aGUK
LSAgICAvLyBwYWdlIGNhY2hlIGFuZCBzaW1pbGFyIHdvcmsgdGhhdCBuZWVkcyB0byBvY2N1ciB3
aGVuIGl0IGNvbWVzIG91dC4gVGhpcyBpcyB3aGVyZSB3ZSBkbyB0aGUgd29yaworICAgIC8vIGJh
Y2svZm9yd2FyZCBjYWNoZSBhbmQgc2ltaWxhciB3b3JrIHRoYXQgbmVlZHMgdG8gb2NjdXIgd2hl
biBpdCBjb21lcyBvdXQuIFRoaXMgaXMgd2hlcmUgd2UgZG8gdGhlIHdvcmsKICAgICAvLyB0aGF0
IG5lZWRzIHRvIGhhcHBlbiB3aGVuIHdlIGV4aXQsIGFuZCB0aGUgd29yayB0aGF0IG5lZWRzIHRv
IGhhcHBlbiB3aGVuIHdlIGVudGVyIGlzIGluCi0gICAgLy8gRG9jdW1lbnQ6OnNldElzSW5QYWdl
Q2FjaGUoYm9vbCkuIEl0IHdvdWxkIGJlIG5pY2UgaWYgdGhlcmUgd2FzIG1vcmUgc3ltbWV0cnkg
aW4gdGhlc2Ugc3BvdHMuCisgICAgLy8gRG9jdW1lbnQ6OnNldElzSW5CYWNrRm9yd2FyZENhY2hl
KGJvb2wpLiBJdCB3b3VsZCBiZSBuaWNlIGlmIHRoZXJlIHdhcyBtb3JlIHN5bW1ldHJ5IGluIHRo
ZXNlIHNwb3RzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05ODY5OAogICAgIGlmICh2aWV3KSB7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBh
Z2UoKTsKQEAgLTI2MSw4ICsyNjEsOCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlk
YXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCkKICAgICBpZiAoIWN1cnJlbnRJdGVtKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIC8vIFdoZW4gd2UgYXJlIHByZS1jb21taXQsIHRoZSBjdXJyZW50
SXRlbSBpcyB3aGVyZSBhbnkgcGFnZSBjYWNoZSBkYXRhIHJlc2lkZXMuCi0gICAgc3RkOjp1bmlx
dWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnRh
a2UoKmN1cnJlbnRJdGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAvLyBXaGVuIHdlIGFyZSBw
cmUtY29tbWl0LCB0aGUgY3VycmVudEl0ZW0gaXMgd2hlcmUgYW55IGJhY2svZm9yd2FyZCBjYWNo
ZSBkYXRhIHJlc2lkZXMuCisgICAgc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBh
Z2UgPSBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS50YWtlKCpjdXJyZW50SXRlbSgpLCBt
X2ZyYW1lLnBhZ2UoKSk7CiAgICAgaWYgKCFjYWNoZWRQYWdlKQogICAgICAgICByZXR1cm47CiAK
QEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlkYXRlQ3Vy
cmVudEl0ZW1DYWNoZWRQYWdlKCkKICAgICAKICAgICBBU1NFUlQoY2FjaGVkUGFnZS0+ZG9jdW1l
bnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkpOwogICAgIGlmIChjYWNoZWRQYWdlLT5kb2N1bWVu
dCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSkgewotICAgICAgICBjYWNoZWRQYWdlLT5kb2N1bWVu
dCgpLT5zZXRQYWdlQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgICAg
ICBjYWNoZWRQYWdlLT5kb2N1bWVudCgpLT5zZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUoRG9jdW1l
bnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgICAgIGNhY2hlZFBhZ2UtPmNsZWFyKCk7
CiAgICAgfQogfQpAQCAtMzU1LDcgKzM1NSw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnVw
ZGF0ZUZvclJlbG9hZCgpCiAgICAgTE9HKEhpc3RvcnksICJIaXN0b3J5Q29udHJvbGxlciAlcCB1
cGRhdGVGb3JSZWxvYWQ6IFVwZGF0aW5nIEhpc3RvcnkgZm9yIHJlbG9hZCBpbiBmcmFtZSAlcCAo
bWFpbiBmcmFtZSAlZCkgJXMiLCB0aGlzLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgp
LCBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkgPyBtX2ZyYW1lLmxvYWRlcigpLmRv
Y3VtZW50TG9hZGVyKCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CiAKICAg
ICBpZiAobV9jdXJyZW50SXRlbSkgewotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJl
bW92ZSgqbV9jdXJyZW50SXRlbSk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRv
bigpLnJlbW92ZSgqbV9jdXJyZW50SXRlbSk7CiAgICAgCiAgICAgICAgIGlmIChtX2ZyYW1lLmxv
YWRlcigpLmxvYWRUeXBlKCkgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkIHx8IG1fZnJhbWUubG9h
ZGVyKCkubG9hZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luKQogICAg
ICAgICAgICAgc2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlVG9JdGVtKG1fY3VycmVudEl0
ZW0uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKaW5kZXggZTMxMzFjY2RkYmMwNGJlZjJjZTZkMTY2NzE0
NjFmNGNlYzg1ZDhkZS4uODk5Y2JhNGY5NzVlMmNmMGJjZWQyNTk3Yjc0MmU2YWVlMjQ1YmZlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYKICAgICB9CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5QYWdl
Q2FjaGUoKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Y2FuQ2FjaGVJbkJhY2tGb3J3YXJk
Q2FjaGUoKQogewogICAgIHJldHVybiAhYXBwbGljYXRpb25DYWNoZSgpICYmICFjYW5kaWRhdGVB
cHBsaWNhdGlvbkNhY2hlR3JvdXAoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKaW5kZXggZTA5NGQwODRlZTk0YWJk
ODVkNjZkM2E0ZjRlNTg4MTUzNzE4YTE0MC4uNWIyYWExYzYxYzhjZDZhNzllNzFhZjM3NmQ3ZGRl
ZDQyOTM3Zjg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBtYXliZUxvYWRTeW5jaHJvbm91c2x5KFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mKTsKICAgICB2b2lk
IG1heWJlTG9hZEZhbGxiYWNrU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBS
ZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFJlZlB0cjxTaGFyZWRCdWZmZXI+Jik7
CiAKLSAgICBib29sIGNhbkNhY2hlSW5QYWdlQ2FjaGUoKTsKKyAgICBib29sIGNhbkNhY2hlSW5C
YWNrRm9yd2FyZENhY2hlKCk7CiAKICAgICBTdGF0dXMgc3RhdHVzKCkgY29uc3Q7CiAgICAgYm9v
bCB1cGRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCmluZGV4IDRiMTZmNTk3NjFkOGM3NWE2ZjBiYTAyMWRiYzIwMzM0MDg3ZWVlMDkuLjY5
NmFkOGI0OWEwZGY2NDM0NWJkMWRiNzY3ODI1ZjZkMDhkYTQ3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMTk1LDIzICsxOTUsMjMg
QEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVk
UmVzb3VyY2VMb2FkZXIpCiAgICAgfQogICAgIEZyYW1lJiBmcmFtZSA9ICpjYWNoZWRSZXNvdXJj
ZUxvYWRlci5mcmFtZSgpOwogCi0gICAgLy8gUHJldmVudCBuZXcgbG9hZHMgaWYgd2UgYXJlIGlu
IHRoZSBQYWdlQ2FjaGUgb3IgYmVpbmcgYWRkZWQgdG8gdGhlIFBhZ2VDYWNoZS4KKyAgICAvLyBQ
cmV2ZW50IG5ldyBsb2FkcyBpZiB3ZSBhcmUgaW4gdGhlIEJhY2tGb3J3YXJkQ2FjaGUgb3IgYmVp
bmcgYWRkZWQgdG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgLy8gV2UgcXVlcnkgdGhlIHRv
cCBkb2N1bWVudCBiZWNhdXNlIG5ldyBmcmFtZXMgbWF5IGJlIGNyZWF0ZWQgaW4gcGFnZWhpZGUg
ZXZlbnQgaGFuZGxlcnMKLSAgICAvLyBhbmQgdGhlaXIgcGFnZUNhY2hlU3RhdGUgd2lsbCBub3Qg
cmVmbGVjdCB0aGUgZmFjdCB0aGF0IHRoZXkgYXJlIGFib3V0IHRvIGVudGVyIHBhZ2UKKyAgICAv
LyBhbmQgdGhlaXIgYmFja0ZvcndhcmRDYWNoZVN0YXRlIHdpbGwgbm90IHJlZmxlY3QgdGhlIGZh
Y3QgdGhhdCB0aGV5IGFyZSBhYm91dCB0byBlbnRlciBwYWdlCiAgICAgLy8gY2FjaGUuCiAgICAg
aWYgKGF1dG8qIHRvcERvY3VtZW50ID0gZnJhbWUubWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkgewot
ICAgICAgICBzd2l0Y2ggKHRvcERvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAg
IGNhc2UgRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOgorICAgICAgICBzd2l0Y2ggKHRvcERvY3Vt
ZW50LT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSkgeworICAgICAgICBjYXNlIERvY3VtZW50OjpO
b3RJbkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBE
b2N1bWVudDo6QWJvdXRUb0VudGVyUGFnZUNhY2hlOgorICAgICAgICBjYXNlIERvY3VtZW50OjpB
Ym91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOgogICAgICAgICAgICAgLy8gQmVhY29ucyBhcmUg
YWxsb3dlZCB0byBnbyB0aHJvdWdoIGluICdwYWdlaGlkZScgZXZlbnQgaGFuZGxlcnMuCiAgICAg
ICAgICAgICBpZiAoc2hvdWxkVXNlUGluZ0xvYWQodHlwZSgpKSkKICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFib3V0IHRv
IGVudGVyIHBhZ2UgY2FjaGUgKGZyYW1lID0gJXApIiwgJmZyYW1lKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFib3V0IHRvIGVudGVyIGJhY2svZm9yd2FyZCBj
YWNoZSAoZnJhbWUgPSAlcCkiLCAmZnJhbWUpOwogICAgICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0
aW5nKCk7CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgRG9jdW1lbnQ6OkluUGFn
ZUNhY2hlOgotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibG9hZDogQWxyZWFk
eSBpbiBwYWdlIGNhY2hlIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CisgICAgICAgIGNhc2UgRG9j
dW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZToKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImxvYWQ6IEFscmVhZHkgaW4gYmFjay9mb3J3YXJkIGNhY2hlIChmcmFtZSA9ICVwKSIs
ICZmcmFtZSk7CiAgICAgICAgICAgICBmYWlsQmVmb3JlU3RhcnRpbmcoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDRjNTcx
ZWJmMzg1OTNkM2ZiODhkZTEwYmE3MDk3YTc3N2IwYWJkNDAuLjBiNmI2MGMxZDVjYTAwNjFjNWJj
OGUzZWYwOWU4Y2FlZjZlNTk4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTU1
OCwyNSArNTU4LDI1IEBAIHZvaWQgRE9NV2luZG93OjpyZXNldFVubGVzc1N1c3BlbmRlZEZvckRv
Y3VtZW50U3VzcGVuc2lvbigpCiAgICAgd2lsbERlc3Ryb3lEb2N1bWVudEluRnJhbWUoKTsKIH0K
IAotdm9pZCBET01XaW5kb3c6OnN1c3BlbmRGb3JQYWdlQ2FjaGUoKQordm9pZCBET01XaW5kb3c6
OnN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBp
c1N1c3BlbmRpbmdPYnNlcnZlcnMobV9pc1N1c3BlbmRpbmdPYnNlcnZlcnMsIHRydWUpOwogICAg
IFJFTEVBU0VfQVNTRVJUKGZyYW1lKCkpOwogCiAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNv
cHlUb1ZlY3RvcihtX29ic2VydmVycykpIHsKICAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbnRh
aW5zKG9ic2VydmVyKSkKLSAgICAgICAgICAgIG9ic2VydmVyLT5zdXNwZW5kRm9yUGFnZUNhY2hl
KCk7CisgICAgICAgICAgICBvYnNlcnZlci0+c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsK
ICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlQoZnJhbWUoKSk7CiAKICAgICBtX3N1c3BlbmRlZEZv
ckRvY3VtZW50U3VzcGVuc2lvbiA9IHRydWU7CiB9CiAKLXZvaWQgRE9NV2luZG93OjpyZXN1bWVG
cm9tUGFnZUNhY2hlKCkKK3ZvaWQgRE9NV2luZG93OjpyZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNo
ZSgpCiB7CiAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVy
cykpIHsKICAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkKLSAgICAg
ICAgICAgIG9ic2VydmVyLT5yZXN1bWVGcm9tUGFnZUNhY2hlKCk7CisgICAgICAgICAgICBvYnNl
cnZlci0+cmVzdW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB9CiAKICAgICBtX3N1c3Bl
bmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbiA9IGZhbHNlOwpAQCAtMjA1Nyw3ICsyMDU3LDcgQEAg
dm9pZCBET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYgKCEtLW1fc2Ny
b2xsRXZlbnRMaXN0ZW5lckNvdW50ICYmIGRvY3VtZW50ID09ICZkb2N1bWVudC0+dG9wRG9jdW1l
bnQoKSkgewogICAgICAgICBGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpOwotICAgICAgICBp
ZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSAmJiBkb2N1bWVudC0+cGFnZUNhY2hlU3RhdGUoKSA9
PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+
cGFnZSgpICYmIGRvY3VtZW50LT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6
Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21l
KCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKCpmcmFtZSwgZmFsc2UpOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDBkYTRmYjAzYjAyNjFjMDhjODc2
M2I4YzhlMzVkNWE3ZDA3NjM4NGUuLmQzNjgyMGFlM2VhYmYzNWM3YmE2OGM3MWVkNDlkZGU1YjJh
YjUyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMTIzLDggKzEyMyw4IEBAIHB1Ymxp
YzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHN1c3BlbmRGb3JQYWdlQ2FjaGUoKSB7IH0KLSAgICAgICAgdmlydHVh
bCB2b2lkIHJlc3VtZUZyb21QYWdlQ2FjaGUoKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHN1
c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXN1
bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
c3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hlZEZyYW1lKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUoKSB7IH0KICAgICAgICAgdmlydHVhbCB2
b2lkIHdpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKSB7IH0KQEAgLTEzNCw4ICsxMzQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAog
ICAgIHZvaWQgcmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JEb2N1bWVudFN1c3BlbnNpb24oKTsKLSAg
ICB2b2lkIHN1c3BlbmRGb3JQYWdlQ2FjaGUoKTsKLSAgICB2b2lkIHJlc3VtZUZyb21QYWdlQ2Fj
aGUoKTsKKyAgICB2b2lkIHN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgdm9pZCBy
ZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUq
IGZyYW1lKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0
ZW5zaW9uLmNwcAppbmRleCAyYjdiOGMzMmFlY2UwZDNhNDc4ZjdmMDNhZDEwMmIxZmJmOTk2ODc2
Li41YzgyZTYwN2I0NWJiMTUzYjhiMDJmZTgyMGU5YTk5OGViZjUzNjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIEZyYW1l
KiBET01XaW5kb3dFeHRlbnNpb246OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV93aW5kb3cg
PyBtX3dpbmRvdy0+ZnJhbWUoKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQgRE9NV2luZG93RXh0ZW5z
aW9uOjpzdXNwZW5kRm9yUGFnZUNhY2hlKCkKK3ZvaWQgRE9NV2luZG93RXh0ZW5zaW9uOjpzdXNw
ZW5kRm9yQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgLy8gQ2FsbGluZyBvdXQgdG8gdGhlIGNs
aWVudCBtaWdodCByZXN1bHQgaW4gdGhpcyBET01XaW5kb3dFeHRlbnNpb24gYmVpbmcgZGVzdHJv
eWVkCiAgICAgLy8gd2hpbGUgdGhlcmUgaXMgc3RpbGwgd29yayB0byBkby4KQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBET01XaW5kb3dFeHRlbnNpb246OnN1c3BlbmRGb3JQYWdlQ2FjaGUoKQogICAg
IG1fZGlzY29ubmVjdGVkRnJhbWUgPSBXVEZNb3ZlKGZyYW1lKTsKIH0KIAotdm9pZCBET01XaW5k
b3dFeHRlbnNpb246OnJlc3VtZUZyb21QYWdlQ2FjaGUoKQordm9pZCBET01XaW5kb3dFeHRlbnNp
b246OnJlc3VtZUZyb21CYWNrRm9yd2FyZENhY2hlKCkKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7
CiAgICAgQVNTRVJUKG1fZGlzY29ubmVjdGVkRnJhbWUgPT0gZnJhbWUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaAppbmRleCA0ODBkOThlZTE3MDM4NTM1NGU4Mjhh
N2E4ZDM2MzY0MjU3YjAzNjJmLi45NGVkNmNhZWRjM2E0ZjdjNTQ3Y2ZhNjgzOWM2YmI1MzcxMWQ0
YTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmgKQEAgLTQ0LDgg
KzQ0LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkRPTVdpbmRvd0V4dGVuc2lv
bigpOwogCi0gICAgdm9pZCBzdXNwZW5kRm9yUGFnZUNhY2hlKCkgZmluYWw7Ci0gICAgdm9pZCBy
ZXN1bWVGcm9tUGFnZUNhY2hlKCkgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kRm9yQmFja0Zvcndh
cmRDYWNoZSgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBm
aW5hbDsKICAgICB2b2lkIHdpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5DYWNoZWRGcmFtZSgpIGZp
bmFsOwogICAgIHZvaWQgd2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkgZmluYWw7CiAg
ICAgdm9pZCB3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKaW5kZXggYjllNjE4NjQ4
OWQ0OGZhZGZjYjkzNDViMjJkZjEwNzJhMWI1NjVhOS4uOThiZDBjNzhjZDAwNmNkOWU4NjYwOTZh
YjJkOTg3MGQ0NGI1NTNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0tleXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzLmNwcApAQCAtMjA4LDE0ICsyMDgsMTQgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6bm90SW5NZW1vcnlDYWNoZUtleSgpCiAgICAgcmV0dXJuICJub3RJbk1lbW9yeUNh
Y2hlIl9zOwogfQogCi1TdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXko
KQorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpCiB7
Ci0gICAgcmV0dXJuICJwYWdlQ2FjaGUiX3M7CisgICAgcmV0dXJuICJiYWNrRm9yd2FyZENhY2hl
Il9zOwogfQogCi1TdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVGYWlsdXJl
S2V5KCkKK1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmJhY2tGb3J3YXJkQ2FjaGVGYWls
dXJlS2V5KCkKIHsKLSAgICByZXR1cm4gInBhZ2VDYWNoZUZhaWx1cmUiX3M7CisgICAgcmV0dXJu
ICJiYWNrRm9yd2FyZENhY2hlRmFpbHVyZSJfczsKIH0KIAogU3RyaW5nIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6bm9Eb2N1bWVudExvYWRlcktleSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFn
bm9zdGljTG9nZ2luZ0tleXMuaAppbmRleCBkNDU5YzRkMjRmMzE0MTVlMjZkOThlNGRlNTgwMDQ1
YmY2NWVjYWZiLi45NzJhMGRmYjM0NTgxYWEwYTlkZmI2YWIyOTI1YTQ1Y2IwOWI1Y2I2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTExNCw4ICsx
MTQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBub3RJbk1lbW9yeUNhY2hlS2V5KCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBvY2N1cnJlZEtleSgpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgb3RoZXJLZXkoKTsKLSAgICBzdGF0aWMgU3RyaW5n
IHBhZ2VDYWNoZUtleSgpOwotICAgIHN0YXRpYyBTdHJpbmcgcGFnZUNhY2hlRmFpbHVyZUtleSgp
OworICAgIHN0YXRpYyBTdHJpbmcgYmFja0ZvcndhcmRDYWNoZUtleSgpOworICAgIHN0YXRpYyBT
dHJpbmcgYmFja0ZvcndhcmRDYWNoZUZhaWx1cmVLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHBh
Z2VDb250YWluc0F0TGVhc3RPbmVNZWRpYUVuZ2luZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcg
cGFnZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcGFn
ZUNvbnRhaW5zTWVkaWFFbmdpbmVLZXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAK
aW5kZXggNzE0ZTlkYzA4YjIxNTYyNjE3OTgxMWYzMmE5M2U1M2Y3NjZjM2U4Zi4uZjFmNWIzMmIw
NjY3NzAzZjIxMzQzYWZjOGY1Mjc1NzQ2MWFlZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNv
dXJjZS5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpzY2hlZHVsZUlu
aXRpYWxDb25uZWN0KCkKIAogdm9pZCBFdmVudFNvdXJjZTo6c2NoZWR1bGVSZWNvbm5lY3QoKQog
ewotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNw
ZW5kZWRGb3JQYWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKICAgICBtX3N0YXRl
ID0gQ09OTkVDVElORzsKICAgICBtX2Nvbm5lY3RUaW1lci5zdGFydE9uZVNob3QoMV9tcyAqIG1f
cmVjb25uZWN0RGVsYXkpOwogICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOwpAQCAtMTk5LDcgKzE5
OSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25n
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0g
Q09OTkVDVElORyk7CiAgICAgQVNTRVJUKG1fcmVxdWVzdEluRmxpZ2h0KTsKLSAgICBSRUxFQVNF
X0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2lzU3VzcGVuZGVkRm9yUGFnZUNh
Y2hlKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2lz
U3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBpZiAoIXJlc3BvbnNlSXNWYWxp
ZChyZXNwb25zZSkpIHsKICAgICAgICAgZG9FeHBsaWNpdExvYWRDYW5jZWxsYXRpb24oKTsKQEAg
LTIyMSw3ICsyMjEsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpkaWRSZWNlaXZlRGF0YShjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IE9QRU4pOwog
ICAgIEFTU0VSVChtX3JlcXVlc3RJbkZsaWdodCk7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSk7CisgICAgUkVM
RUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvckJh
Y2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgYXBwZW5kKG1fcmVjZWl2ZUJ1ZmZlciwgbV9kZWNvZGVy
LT5kZWNvZGUoZGF0YSwgbGVuZ3RoKSk7CiAgICAgcGFyc2VFdmVudFN0cmVhbSgpOwpAQCAtMjMx
LDcgKzIzMSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQg
bG9uZykKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBPUEVOKTsKICAgICBBU1NFUlQobV9yZXF1
ZXN0SW5GbGlnaHQpOwotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW1faXNTdXNwZW5kZWRGb3JQYWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsK
IAogICAgIGFwcGVuZChtX3JlY2VpdmVCdWZmZXIsIG1fZGVjb2Rlci0+Zmx1c2goKSk7CiAgICAg
cGFyc2VFdmVudFN0cmVhbSgpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6
OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgQVNTRVJUKG1fcmVxdWVz
dEluRmxpZ2h0KTsKIAogICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgdGhlIGxvYWQgZ2V0
cyBjYW5jZWxsZWQgb24gbmF2aWdhdGluZyBhd2F5LiBXZSBvbmx5IGZpcmUgYW4gZXJyb3IgZXZl
bnQgYW5kIGF0dGVtcHQgdG8gcmVjb25uZWN0Ci0gICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcg
cmVzdW1lZCBmcm9tIHBhZ2UgY2FjaGUuCisgICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcgcmVz
dW1lZCBmcm9tIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRp
b24oKSAmJiAhbV9pc0RvaW5nRXhwbGljaXRDYW5jZWxsYXRpb24pIHsKICAgICAgICAgbV9zaG91
bGRSZWNvbm5lY3RPblJlc3VtZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdEluRmxpZ2h0ID0g
ZmFsc2U7CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBFdmVudFNvdXJjZTo6ZGlkRmFpbChjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHZvaWQgRXZlbnRTb3VyY2U6OmFib3J0Q29ubmVjdGlv
bkF0dGVtcHQoKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IENPTk5FQ1RJTkcpOwotICAgIFJF
TEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JQ
YWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
IW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGlmIChtX3JlcXVlc3RJ
bkZsaWdodCkKICAgICAgICAgZG9FeHBsaWNpdExvYWRDYW5jZWxsYXRpb24oKTsKQEAgLTQxMCwx
OSArNDEwLDE5IEBAIGJvb2wgRXZlbnRTb3VyY2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3Bl
bnNpb24oKSBjb25zdAogCiB2b2lkIEV2ZW50U291cmNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb24gcmVhc29uKQogewotICAgIGlmIChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6
UGFnZUNhY2hlKQorICAgIGlmIChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0Zv
cndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pc1N1c3BlbmRlZEZvclBhZ2VD
YWNoZSA9IHRydWU7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFtX3JlcXVlc3RJ
bkZsaWdodCwgIkxvYWRzIGdldCBjYW5jZWxsZWQgYmVmb3JlIGVudGVyaW5nIFBhZ2VDYWNoZS4i
KTsKKyAgICBtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSA9IHRydWU7CisgICAgUkVM
RUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFtX3JlcXVlc3RJbkZsaWdodCwgIkxvYWRzIGdldCBj
YW5jZWxsZWQgYmVmb3JlIGVudGVyaW5nIHRoZSBCYWNrRm9yd2FyZENhY2hlLiIpOwogfQogCiB2
b2lkIEV2ZW50U291cmNlOjpyZXN1bWUoKQogewotICAgIGlmICghbV9pc1N1c3BlbmRlZEZvclBh
Z2VDYWNoZSkKKyAgICBpZiAoIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX2lzU3VzcGVuZGVkRm9yUGFnZUNhY2hlID0gZmFsc2U7Cisg
ICAgbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKICAgICBpZiAoc3Rk
OjpleGNoYW5nZShtX3Nob3VsZFJlY29ubmVjdE9uUmVzdW1lLCBmYWxzZSkpIHsKICAgICAgICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbdGhpcywgcGVuZGluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7
CiAgICAgICAgICAgICBpZiAoIWlzQ29udGV4dFN0b3BwZWQoKSkKQEAgLTQzMyw3ICs0MzMsNyBA
QCB2b2lkIEV2ZW50U291cmNlOjpyZXN1bWUoKQogCiB2b2lkIEV2ZW50U291cmNlOjpkaXNwYXRj
aE1lc3NhZ2VFdmVudCgpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSk7CisgICAgUkVMRUFTRV9BU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2Fj
aGUpOwogCiAgICAgaWYgKCFtX2N1cnJlbnRseVBhcnNlZEV2ZW50SWQuaXNOdWxsKCkpCiAgICAg
ICAgIG1fbGFzdEV2ZW50SWQgPSBXVEZNb3ZlKG1fY3VycmVudGx5UGFyc2VkRXZlbnRJZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50U291cmNlLmgKaW5kZXggZDc4MTAxM2U1OWNiNmY4NjVkZGZiNWQ0ZmIw
YzM4NTFkMWVkNzA4ZS4uMzU1OTE0NGY3ZWQyMjlhYWM1MGYwN2E0YjU0YjU3NDhjZWViMzcwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaApAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6
CiAgICAgVmVjdG9yPFVDaGFyPiBtX3JlY2VpdmVCdWZmZXI7CiAgICAgYm9vbCBtX2Rpc2NhcmRU
cmFpbGluZ05ld2xpbmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZXF1ZXN0SW5GbGlnaHQgeyBm
YWxzZSB9OwotICAgIGJvb2wgbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzRG9pbmdFeHBsaWNpdENhbmNlbGxhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3Nob3VsZFJlY29ubmVjdE9uUmVzdW1lIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApp
bmRleCA2NDY2YTYwMjI2MmVmNjM2N2ZmMWJlM2M2YTk1MzEyMzE1ZmZmNmJiLi42ZjA3N2M0MGJm
OTMyNTUyMDIzYjdjZDI1ZGE1MTk1NzYyM2ExMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAKICNpbmNsdWRlICJBcHBseVN0eWxl
Q29tbWFuZC5oIgorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNr
Rm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDU1NBbmltYXRpb25Db250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCkBAIC03Myw3ICs3NCw2
IEBACiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlByb2Nl
c3NXYXJtaW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVDZWxsLmgiCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBGcmFtZTo6c2V0
VmlldyhSZWZQdHI8RnJhbWVWaWV3PiYmIHZpZXcpCiAgICAgLy8gUHJlcGFyZSBmb3IgZGVzdHJ1
Y3Rpb24gbm93LCBzbyBhbnkgdW5sb2FkIGV2ZW50IGhhbmRsZXJzIGdldCBydW4gYW5kIHRoZSBE
T01XaW5kb3cgaXMKICAgICAvLyBub3RpZmllZC4gSWYgd2Ugd2FpdCB1bnRpbCB0aGUgdmlldyBp
cyBkZXN0cm95ZWQsIHRoZW4gdGhpbmdzIHdvbid0IGJlIGhvb2tlZCB1cCBlbm91Z2ggZm9yCiAg
ICAgLy8gdGhlc2UgY2FsbHMgdG8gd29yay4KLSAgICBpZiAoIXZpZXcgJiYgbV9kb2MgJiYgbV9k
b2MtPnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKQorICAgIGlmICgh
dmlldyAmJiBtX2RvYyAmJiBtX2RvYy0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1l
bnQ6OkluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgbV9kb2MtPnByZXBhcmVGb3JEZXN0cnVj
dGlvbigpOwogICAgIAogICAgIGlmIChtX3ZpZXcpCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBG
cmFtZTo6c2V0RG9jdW1lbnQoUmVmUHRyPERvY3VtZW50PiYmIG5ld0RvY3VtZW50KQogICAgIH0K
ICNlbmRpZgogCi0gICAgaWYgKG1fZG9jICYmIG1fZG9jLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IERv
Y3VtZW50OjpJblBhZ2VDYWNoZSkKKyAgICBpZiAobV9kb2MgJiYgbV9kb2MtPmJhY2tGb3J3YXJk
Q2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIG1f
ZG9jLT5wcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAgIG1fZG9jID0gbmV3RG9jdW1lbnQu
Y29weVJlZigpOwpAQCAtNzA2LDcgKzcwNiw3IEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdl
KCkKICAgICAvLyAtIFdoZW4gY2FsbGluZyBGcmFtZTo6c2V0VmlldygpIHdpdGggYSBudWxsIEZy
YW1lVmlldyouIFRoaXMgaXMgYWx3YXlzIGRvbmUgYmVmb3JlIGNhbGxpbmcKICAgICAvLyAgIEZy
YW1lOjp3aWxsRGV0YWNoUGFnZSAodGhpcyBmdW5jdGlvbi4pIEhlbmNlIHRoZSBhc3NlcnRpb24g
YmVsb3cuCiAgICAgLy8KLSAgICAvLyAtIFdoZW4gYWRkaW5nIGEgZG9jdW1lbnQgdG8gdGhlIHBh
Z2UgY2FjaGUsIHRoZSB0cmVlIGlzIHRvcm4gZG93biBiZWZvcmUgaW5zdGFudGlhdGluZworICAg
IC8vIC0gV2hlbiBhZGRpbmcgYSBkb2N1bWVudCB0byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0
aGUgdHJlZSBpcyB0b3JuIGRvd24gYmVmb3JlIGluc3RhbnRpYXRpbmcKICAgICAvLyAgIHRoZSBD
YWNoZWRQYWdlK0NhY2hlZEZyYW1lIG9iamVjdCB0cmVlLgogICAgIEFTU0VSVCghZG9jdW1lbnQo
KSB8fCAhZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAppbmRleCBiMGEzZTU2NDgxNjUxNGU0ZDAxMjQ3NjZmNmQ1MzY4Y2ZiZTM5YTc5Li43OGMz
ZGI0NTNjZDk1NTlkZTg5NzgxMTc0MTI0Y2IyZTQ4MWU5MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgog
I2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNTU0FuaW1hdGlv
bkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgpAQCAtNjksNyArNzAsNiBA
QAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdl
T3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgpAQCAtNTUzLDkgKzU1Myw5IEBAIFJlZjxTY3Jv
bGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKQogICAgIHJldHVybiBTY3JvbGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIob3JpZW50
YXRpb24pOwogfQogCi12b2lkIEZyYW1lVmlldzo6ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKQor
dm9pZCBGcmFtZVZpZXc6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7Ci0gICAg
Ly8gV2hlbiByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLCB0aGUgbWFpbiBmcmFtZSBzdGF5cyBp
biBwbGFjZSB3aGlsZSBzdWJmcmFtZXMgZ2V0IHN3YXBwZWQgaW4uCisgICAgLy8gV2hlbiByZXN0
b3JpbmcgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUsIHRoZSBtYWluIGZyYW1lIHN0YXlzIGluIHBs
YWNlIHdoaWxlIHN1YmZyYW1lcyBnZXQgc3dhcHBlZCBpbi4KICAgICAvLyBXZSB1cGRhdGUgdGhl
IHNjcm9sbGFibGUgYXJlYSBzZXQgdG8gZW5zdXJlIHRoYXQgc2Nyb2xsaW5nIGRhdGEgc3RydWN0
dXJlcyBnZXQgaW52YWxpZGF0ZWQuCiAgICAgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoKTsKIH0K
QEAgLTYwMSw3ICs2MDEsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Q29udGVudHNTaXplKGNvbnN0
IEludFNpemUmIHNpemUpCiAKICAgICBpZiAoZnJhbWUoKS5pc01haW5GcmFtZSgpKSB7CiAgICAg
ICAgIHBhZ2UtPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRpZENoYW5nZURvY3VtZW50U2l6ZSgp
OwotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckNvbnRlbnRzU2l6
ZUNoYW5nZWQoKnBhZ2UpOworICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5t
YXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFuZ2VkKCpwYWdlKTsKICAgICB9CiAgICAgbGF5b3V0
Q29udGV4dCgpLmVuYWJsZVNldE5lZWRzTGF5b3V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAppbmRleCA0MDc4ZWVmN2Y4MzhhY2NhMzgzY2MxZDVlNzdlZDhiNTA4NzQzOTVkLi5lZjUxOTQz
MmU0MmRiNTNhOGM1MTI1MzlhYzNkNzU1ZjM2YTVkMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKQEAgLTU1NCw3ICs1NTQsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBQYWdlIGFuZCBGcmFtZVZp
ZXcgYm90aCBzdG9yZSBhIFBhZ2luYXRpb24gdmFsdWUuIFBhZ2U6OnBhZ2luYXRpb24oKSBpcyBz
ZXQgb25seSBieSBBUEksCiAgICAgLy8gYW5kIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIGlzIHNl
dCBvbmx5IGJ5IENTUy4gUGFnZTo6cGFnaW5hdGlvbigpIHdpbGwgYWZmZWN0IGFsbAotICAgIC8v
IEZyYW1lVmlld3MgaW4gdGhlIHBhZ2UgY2FjaGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24o
KSBvbmx5IGFmZmVjdHMgdGhlIGN1cnJlbnQKKyAgICAvLyBGcmFtZVZpZXdzIGluIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBvbmx5IGFmZmVjdHMg
dGhlIGN1cnJlbnQKICAgICAvLyBGcmFtZVZpZXcuIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIHdp
bGwgcmV0dXJuIG1fcGFnaW5hdGlvbiBpZiBpdCBoYXMgYmVlbiBzZXQuIE90aGVyd2lzZSwKICAg
ICAvLyBpdCB3aWxsIHJldHVybiBQYWdlOjpwYWdpbmF0aW9uKCkgc2luY2UgY3VycmVudGx5IHRo
ZXJlIGFyZSBubyBjYWxsZXJzIHRoYXQgbmVlZCB0bwogICAgIC8vIGRpc3Rpbmd1aXNoIGJldHdl
ZW4gdGhlIHR3by4KQEAgLTY0Myw3ICs2NDMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAotICAg
IHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICB2b2lkIGRpZFJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgdm9pZCB3aWxsRGVzdHJveVJlbmRlclRyZWUoKTsK
ICAgICB2b2lkIGRpZERlc3Ryb3lSZW5kZXJUcmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCAzMjJmNjc5N2I5NDZkMWRjOWNkNThm
ODI4ODYwZGJhZGNiZDcxZjQxLi4xYzllMzE1NWFlNjgxYWQ1MGM0NzJmZjliYzEzZWZjMzRmNjEz
MWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAKQEAgLTE0NSw4ICsxNDUsOCBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91
dCgpCiAgICAgQVNTRVJUKCF2aWV3KCkuaXNQYWludGluZygpKTsKICAgICBBU1NFUlQoZnJhbWUo
KS52aWV3KCkgPT0gJnZpZXcoKSk7CiAgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7Ci0g
ICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVu
dDo6Tm90SW5QYWdlQ2FjaGUKLSAgICAgICAgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5wYWdlQ2Fj
aGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOworICAgIEFTU0VS
VChmcmFtZSgpLmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5i
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6QWJvdXRUb0VudGVyQmFja0Zvcndh
cmRDYWNoZSk7CiAgICAgaWYgKCFjYW5QZXJmb3JtTGF5b3V0KCkpIHsKICAgICAgICAgTE9HKExh
eW91dCwgIiAgaXMgbm90IGFsbG93ZWQsIGJhaWxpbmciKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
MzM0LDcgKzMzNCw3IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6ZGlzYWJsZVNldE5l
ZWRzTGF5b3V0KCkKIAogdm9pZCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpzY2hlZHVsZUxheW91
dCgpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhlIHBhZ2UgaXMgbm90IGlu
IHRoZSBwYWdlIGNhY2hlLCBidXQgdGhhdCBpcyBjYXVzaW5nCisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhc3NlcnQgdGhlIHBhZ2UgaXMgbm90IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGJ1
dCB0aGF0IGlzIGNhdXNpbmcKICAgICAvLyB0b28gbWFueSBmYWxzZSBhc3NlcnRpb25zLiBTZWUg
PHJkYXI6Ly9wcm9ibGVtLzcyMTgxMTg+LgogICAgIEFTU0VSVChmcmFtZSgpLnZpZXcoKSA9PSAm
dmlldygpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5jcHAKaW5kZXggMGQ3M2U0
YjM0MTY0ZjllNTdlN2ZjMzA1YTdiZmE3MjZkMDdkYzY4OC4uZTZiNGUwNGViZWZjNWI0ZmE1YTRj
NzNmOTVhNzE3MTYyZTU3YWE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1v
cnlSZWxlYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTWVtb3J5
UmVsZWFzZS5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkNT
U0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCkBAIC00Miw3ICs0Myw2IEBACiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1
ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2Ny
b2xsaW5nVGhyZWFkLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgpAQCAtNzcsMTIgKzc3LDEy
IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeShNYWludGFpbk1lbW9yeUNh
Y2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCiAgICAgSW5saW5lU3R5bGVTaGVldE93bmVyOjpjbGVh
ckNhY2hlKCk7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbGVhc2VDcml0aWNhbE1lbW9yeShTeW5jaHJv
bm91cyBzeW5jaHJvbm91cywgTWFpbnRhaW5QYWdlQ2FjaGUgbWFpbnRhaW5QYWdlQ2FjaGUsIE1h
aW50YWluTWVtb3J5Q2FjaGUgbWFpbnRhaW5NZW1vcnlDYWNoZSkKK3N0YXRpYyB2b2lkIHJlbGVh
c2VDcml0aWNhbE1lbW9yeShTeW5jaHJvbm91cyBzeW5jaHJvbm91cywgTWFpbnRhaW5CYWNrRm9y
d2FyZENhY2hlIG1haW50YWluQmFja0ZvcndhcmRDYWNoZSwgTWFpbnRhaW5NZW1vcnlDYWNoZSBt
YWludGFpbk1lbW9yeUNhY2hlKQogewogICAgIC8vIFJpZ2h0IG5vdywgdGhlIG9ubHkgcmVhc29u
IHdlIGNhbGwgcmVsZWFzZSBjcml0aWNhbCBtZW1vcnkgd2hpbGUgbm90IHVuZGVyIG1lbW9yeSBw
cmVzc3VyZSBpcyBpZiB0aGUgcHJvY2VzcyBpcyBhYm91dCB0byBiZSBzdXNwZW5kZWQuCi0gICAg
aWYgKG1haW50YWluUGFnZUNhY2hlID09IE1haW50YWluUGFnZUNhY2hlOjpObykgeworICAgIGlm
IChtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgPT0gTWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlOjpO
bykgewogICAgICAgICBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFzb24gPSBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpID8gUHJ1bmluZ1Jl
YXNvbjo6TWVtb3J5UHJlc3N1cmUgOiBQcnVuaW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOwot
ICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIHBydW5pbmdS
ZWFzb24pOworICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6
ZU5vdygwLCBwcnVuaW5nUmVhc29uKTsKICAgICB9CiAKICAgICBpZiAobWFpbnRhaW5NZW1vcnlD
YWNoZSA9PSBNYWludGFpbk1lbW9yeUNhY2hlOjpObykgewpAQCAtMTE4LDE0ICsxMTgsMTQgQEAg
c3RhdGljIHZvaWQgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KFN5bmNocm9ub3VzIHN5bmNocm9ub3Vz
LCBNYWludGFpblBhZ2VDYWNoZSBtYWkKICAgICB9CiB9CiAKLXZvaWQgcmVsZWFzZU1lbW9yeShD
cml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMsIE1haW50YWluUGFnZUNh
Y2hlIG1haW50YWluUGFnZUNhY2hlLCBNYWludGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5
Q2FjaGUpCit2b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNocm9ub3Vz
IHN5bmNocm9ub3VzLCBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgbWFpbnRhaW5CYWNrRm9yd2Fy
ZENhY2hlLCBNYWludGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCiB7CiAgICAg
VHJhY2VTY29wZSBzY29wZShNZW1vcnlQcmVzc3VyZUhhbmRsZXJTdGFydCwgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyRW5kLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oY3JpdGljYWwpLCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oc3luY2hyb25vdXMpKTsKIAogICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNh
bDo6WWVzKSB7CiAgICAgICAgIC8vIFJldHVybiB1bnVzZWQgcGFnZXMgYmFjayB0byB0aGUgT1Mg
bm93IGFzIHRoaXMgd2lsbCBsaWtlbHkgZ2l2ZSB1cyBhIGxpdHRsZSBtZW1vcnkgdG8gd29yayB3
aXRoLgogICAgICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwotICAgICAg
ICByZWxlYXNlQ3JpdGljYWxNZW1vcnkoc3luY2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hlLCBt
YWludGFpbk1lbW9yeUNhY2hlKTsKKyAgICAgICAgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KHN5bmNo
cm9ub3VzLCBtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUsIG1haW50YWluTWVtb3J5Q2FjaGUpOwog
ICAgIH0KIAogICAgIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeShtYWludGFpbk1lbW9yeUNhY2hl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKaW5kZXggM2UwNmIzMDQ5Mzc5ZDE2YzA4
OGIxZTg3N2YwNmQ0ZjMxYmY5NjVhMi4uNmU1ZWJkODg1YzRjNjA3MzI0MjJkZWE3MGI5MWNlYzI0
MjQxMGEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKQEAgLTI5LDEwICsyOSwx
MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgTWFpbnRhaW5QYWdlQ2Fj
aGUgOiBib29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBNYWludGFpbkJhY2tGb3J3YXJkQ2Fj
aGUgOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBNYWludGFpbk1lbW9yeUNhY2hlIDog
Ym9vbCB7IE5vLCBZZXMgfTsKIAotV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNlTWVtb3J5KENy
aXRpY2FsLCBTeW5jaHJvbm91cywgTWFpbnRhaW5QYWdlQ2FjaGUgPSBNYWludGFpblBhZ2VDYWNo
ZTo6Tm8sIE1haW50YWluTWVtb3J5Q2FjaGUgPSBNYWludGFpbk1lbW9yeUNhY2hlOjpObyk7CitX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwsIFN5bmNocm9ub3VzLCBN
YWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgPSBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6Ok5vLCBN
YWludGFpbk1lbW9yeUNhY2hlID0gTWFpbnRhaW5NZW1vcnlDYWNoZTo6Tm8pOwogdm9pZCBwbGF0
Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwpOwogdm9pZCBqZXR0aXNvbkV4cGVuc2l2ZU9iamVj
dHNPblRvcExldmVsTmF2aWdhdGlvbigpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3Rlck1l
bW9yeVJlbGVhc2VOb3RpZnlDYWxsYmFja3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDYzY2I1
ZmY2NGQ4NWViM2U1YzUxZTc5NDA1MTk1MjU4MmYyZDA1MTQuLjNmMTQ2N2JlMWMwYWVkMjEyNWIz
Nzc3NWIwYmE1NTY0NTNhN2VlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjUsNiArMjUsNyBA
QAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiQXBwbGlj
YXRpb25TdGF0ZUNoYW5nZUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ2xpZW50LmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oIgpAQCAtNzMsNyArNzQsNiBAQAogI2luY2x1
ZGUgIkxvd1Bvd2VyTW9kZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAj
aW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dhYmxlLmgiCkBAIC0zNTksNyArMzU5LDcgQEAgUGFn
ZTo6flBhZ2UoKQogCiAgICAgYmFja0ZvcndhcmQoKS5jbG9zZSgpOwogICAgIGlmICghaXNVdGls
aXR5UGFnZSgpKQotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZUFsbEl0ZW1z
Rm9yUGFnZSgqdGhpcyk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJl
bW92ZUFsbEl0ZW1zRm9yUGFnZSgqdGhpcyk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgcGFnZUNv
dW50ZXIuZGVjcmVtZW50KCk7CkBAIC0xMDcxLDcgKzEwNzEsNyBAQCB2b2lkIFBhZ2U6OnNldFZp
ZXdTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV92aWV3
U2NhbGVGYWN0b3IgPSBzY2FsZTsKLSAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdl
c0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCgqdGhpcyk7CisgICAgQmFja0ZvcndhcmRDYWNo
ZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlz
KTsKIH0KIAogdm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rv
cikKQEAgLTEwODcsNyArMTA4Nyw3IEBAIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3Io
ZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7
CiAKICAgICBtYWluRnJhbWUoKS5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSAg
ICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hh
bmdlZCgqdGhpcyk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2Vz
Rm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlzKTsKIAogICAgIHBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IDk5YTVlZWI1ZjRhZjQyOGU4MjQyZTBmMTY3MzkxODk2ZmMzMjFlMDUuLjgzMWYwYTA3YzBm
NjRiZDczODlhN2QxNTM0ZDQxZjQ5YTFlYzcwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC00MTMsNyAr
NDEzLDcgQEAgcHVibGljOgogCiAgICAgLy8gUGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3RvcmUg
YSBQYWdpbmF0aW9uIHZhbHVlLiBQYWdlOjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkgQVBJ
LAogICAgIC8vIGFuZCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBDU1Mu
IFBhZ2U6OnBhZ2luYXRpb24oKSB3aWxsIGFmZmVjdCBhbGwKLSAgICAvLyBGcmFtZVZpZXdzIGlu
IHRoZSBwYWdlIGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3Rz
IHRoZSBjdXJyZW50CisgICAgLy8gRnJhbWVWaWV3cyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3RzIHRoZSBjdXJyZW50CiAg
ICAgLy8gRnJhbWVWaWV3LgogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3BhZ2luYXRpb247IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBh
Z2luYXRpb24oY29uc3QgUGFnaW5hdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmlu
ZGV4IDY0YTNkMzc4MGI0MjgxZWViYTg5M2FjZTM1N2ZiZWM1OTM5MGM3OTAuLjQ3NGIwMjk1MDcx
NGM0MWMyNmVmYTk1MmY2ZTE2MjMyZDkwMDdmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5j
cHAKQEAgLTI2LDExICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBh
Z2VHcm91cC5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkRP
TVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMTA2
LDcgKzEwNiw3IEBAIHZvaWQgUGFnZUdyb3VwOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkK
IHsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VzKQogICAgICAgICBwYWdlLT5jYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5tYXJrUGFn
ZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6
c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwogfQog
CiBDYXB0aW9uVXNlclByZWZlcmVuY2VzJiBQYWdlR3JvdXA6OmNhcHRpb25QcmVmZXJlbmNlcygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKaW5kZXggYjkwNGMy
M2VkYmVhYzc0MTJmMDliMGMzM2I1OWNhMWZjYjI3MDE3ZC4uMzZlMzhkNDc5MTdlM2YyY2RiOWRk
YThjMDBiYjJkNTJhZDRiNjMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5o
IgogI2luY2x1ZGUgIkNvbW1vblZNLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKQEAgLTM1LDcgKzM2LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFn
ZUNhY2hlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTksOCArNTksOCBAQCBIYXNo
TWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IFBlcmZvcm1hbmNlTG9nZ2luZzo6bWVtb3J5VXNhZ2VT
dGF0aXN0aWNzKFNob3VsZEluYwogICAgIHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19oZWFwX2Nh
cGFjaXR5Iiwgdm0uaGVhcC5jYXBhY2l0eSgpKTsKICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRf
Z2NfaGVhcF9leHRyYV9tZW1vcnlfc2l6ZSIsIHZtLmhlYXAuZXh0cmFNZW1vcnlTaXplKCkpOwog
Ci0gICAgYXV0byYgcGFnZUNhY2hlID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKTsKLSAgICBzdGF0
cy5hZGQoInBhZ2VjYWNoZV9wYWdlX2NvdW50IiwgcGFnZUNhY2hlLnBhZ2VDb3VudCgpKTsKKyAg
ICBhdXRvJiBiYWNrRm9yd2FyZENhY2hlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCk7
CisgICAgc3RhdHMuYWRkKCJiYWNrZm9yd2FyZF9jYWNoZV9wYWdlX2NvdW50IiwgYmFja0Zvcndh
cmRDYWNoZS5wYWdlQ291bnQoKSk7CiAKICAgICBzdGF0cy5hZGQoImRvY3VtZW50X2NvdW50Iiwg
RG9jdW1lbnQ6OmFsbERvY3VtZW50cygpLnNpemUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbAppbmRleCA0N2YwZWQ2YThlZjA4NTVmYTVhNTQyNDQ4YTEzYjIzNjMzOTI0NTBjLi41MGI1
ZjM2ZmEwZWQ2N2E0MjRiMDExMzU2YTkwNWNhZTQwNzIzN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCkBAIC0xNzcsNyArMTc3LDcgQEAgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxl
c2hlZXQ6CiAgIGluaXRpYWw6IGZhbHNlCiBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0Ogog
ICBpbml0aWFsOiB0cnVlCi1wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM6CitiYWNrRm9yd2FyZENh
Y2hlU3VwcG9ydHNQbHVnaW5zOgogICBpbml0aWFsOiBmYWxzZQogc2hvd3NVUkxzSW5Ub29sVGlw
czoKICAgaW5pdGlhbDogZmFsc2UKQEAgLTcxNiw5ICs3MTYsOSBAQCBwbHVnaW5zRW5hYmxlZDoK
ICAgZ2V0dGVyOiBhcmVQbHVnaW5zRW5hYmxlZAogICBvbkNoYW5nZTogcGx1Z2luc0VuYWJsZWRD
aGFuZ2VkCiAKLXVzZXNQYWdlQ2FjaGU6Cit1c2VzQmFja0ZvcndhcmRDYWNoZToKICAgaW5pdGlh
bDogZmFsc2UKLSAgb25DaGFuZ2U6IHVzZXNQYWdlQ2FjaGVDaGFuZ2VkCisgIG9uQ2hhbmdlOiB1
c2VzQmFja0ZvcndhcmRDYWNoZUNoYW5nZWQKIAogZG5zUHJlZmV0Y2hpbmdFbmFibGVkOgogICBp
bml0aWFsOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCmluZGV4IDI3ZWVh
NmMwYWI5MzhlYmM4Zjk2NWRhY2I4MjAzMTE0NDMxNjBiOWEuLmM5ODk5YWRlZjA5M2ZiNGYxYzE1
MDg3Y2RjZjdhMmEzZGJiNGYwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3NCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKIAogI2luY2x1ZGUg
IkF1ZGlvU2Vzc2lvbi5oIgorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2UuaCIKQEAgLTQwLDcgKzQxLDYgQEAKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIK
ICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtMzYyLDEzICszNjIsMTMgQEAgdm9pZCBTZXR0aW5nc0Jhc2U6OnVzZXJTdHlsZVNo
ZWV0TG9jYXRpb25DaGFuZ2VkKCkKICAgICAgICAgbV9wYWdlLT51c2VyU3R5bGVTaGVldExvY2F0
aW9uQ2hhbmdlZCgpOwogfQogCi12b2lkIFNldHRpbmdzQmFzZTo6dXNlc1BhZ2VDYWNoZUNoYW5n
ZWQoKQordm9pZCBTZXR0aW5nc0Jhc2U6OnVzZXNCYWNrRm9yd2FyZENhY2hlQ2hhbmdlZCgpCiB7
CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9wYWdlLT5z
ZXR0aW5ncygpLnVzZXNQYWdlQ2FjaGUoKSkKLSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24o
KS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25lKTsKKyAgICBpZiAoIW1fcGFn
ZS0+c2V0dGluZ3MoKS51c2VzQmFja0ZvcndhcmRDYWNoZSgpKQorICAgICAgICBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25l
KTsKIH0KIAogdm9pZCBTZXR0aW5nc0Jhc2U6OmRuc1ByZWZldGNoaW5nRW5hYmxlZENoYW5nZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKaW5kZXggYjg1MDFjYjcxYTk0YzFhYTA3YmYx
YTEyZmJmNTkzNTE3MzZkZGIwZi4uMWQ5ODNhMjBhNzY2NDkzYTk5Njk4OWNlMGNmODBiZmE5Mjc1
NjYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCkBAIC0xODUsNyArMTg1LDcgQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgaW1hZ2VzRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIHBs
dWdpbnNFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgdXNlclN0eWxlU2hlZXRMb2NhdGlvbkNo
YW5nZWQoKTsKLSAgICB2b2lkIHVzZXNQYWdlQ2FjaGVDaGFuZ2VkKCk7CisgICAgdm9pZCB1c2Vz
QmFja0ZvcndhcmRDYWNoZUNoYW5nZWQoKTsKICAgICB2b2lkIGRuc1ByZWZldGNoaW5nRW5hYmxl
ZENoYW5nZWQoKTsKICAgICB2b2lkIHN0b3JhZ2VCbG9ja2luZ1BvbGljeUNoYW5nZWQoKTsKICAg
ICB2b2lkIGJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlQ2hhbmdlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRleCBkZWNh
NmMxYzg1N2E2MjQzNDVkOGQ5ZGYzMzBmZGFjYjg3MzQxNzg0Li4wYTZhZmY5ZDcxYjRjNWM1OGNm
OGQ3YjdjZmFkYTViNWM4N2ViZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIEFuaW1hdGlvbkJh
c2U6OnNldE5lZWRzU3R5bGVSZWNhbGMoRWxlbWVudCogZWxlbWVudCkKICAgICBpZiAoIWVsZW1l
bnQgfHwgZWxlbWVudC0+ZG9jdW1lbnQoKS5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGVsZW1lbnQtPmRvY3VtZW50KCkucGFnZUNhY2hl
U3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChlbGVtZW50
LT5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJh
Y2tGb3J3YXJkQ2FjaGUpOwogICAgIGVsZW1lbnQtPmludmFsaWRhdGVTdHlsZSgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCmluZGV4IDEzYzMxZjU3NjRiN2IyMjRhMmI3ZWE1NWFlMzNhNmIzOTg2Yjk2
ZDIuLmNhODkwZTc3YjA5OWQzMGI5ZjFiYWVlZjY2Njk5ZGM0MjNiNTJhZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgT3B0aW9uYWw8U2Vjb25kcz4gQ1NTQW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFuaW1hdGlvbnMoU2V0Q2hhbmdlZCBjYWwKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
RWxlbWVudCYgZWxlbWVudCA9ICpjb21wb3NpdGVBbmltYXRpb24ua2V5OwotICAgICAgICAgICAg
ICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVu
dDo6Tm90SW5QYWdlQ2FjaGUpOworICAgICAgICAgICAgICAgIEFTU0VSVChlbGVtZW50LmRvY3Vt
ZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSk7CiAgICAgICAgICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGUoKTsKICAg
ICAgICAgICAgICAgICBjYWxsZWRTZXRDaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KQEAg
LTI1NCw3ICsyNTQsNyBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRF
dmVudFRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQQogdm9pZCBDU1NBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYg
ZWxlbWVudCkKIHsKICAgICBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoZWxlbWVu
dCk7Ci0gICAgQVNTRVJUKG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1l
bnQoKS5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAg
QVNTRVJUKG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5iYWNr
Rm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsK
ICAgICBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CiAKQEAgLTYwOSw3
ICs2MDksNyBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXI6OmNhbmNlbEFuaW1hdGlvbnMo
RWxlbWVudCYgZWxlbWVudCkKIAogICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkucmVuZGVyVHJl
ZUJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoZWxlbWVudC5k
b2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsK
KyAgICBBU1NFUlQoZWxlbWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09
IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIGVsZW1lbnQuaW52YWxpZGF0
ZVN0eWxlKCk7CiB9CiAKQEAgLTYxOSw3ICs2MTksNyBAQCBBbmltYXRpb25VcGRhdGUgQ1NTQW5p
bWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyhFbGVtZW50JiBlbGVtZW50LCBjb25z
dAogICAgIGlmICghaGFzT3JIYWRBbmltYXRpb25zKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpO
b3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKICAgICAvLyBEb24ndCBydW4gdHJhbnNpdGlvbnMgd2hlbiBwcmludGluZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcAppbmRleCAwNDc3YTllN2QwODVlMjc3N2RhZmIyY2IxY2Y5ZDliMzk5ZGM5NzRjLi44MzI1
YTU5MTlhZjhkYTQwODc4Yjk2NDU1YTQ2MTQ2MThhMWU4MzRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0yMTIsNyAr
MjEyLDcgQEAgYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25z
dCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZQogICAgICAgICAgICAgLy8gRGlzcGF0Y2gg
dGhlIGV2ZW50CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnQgPSBtYWtlUmVmUHRyKHRoaXMtPmVs
ZW1lbnQoKSk7CiAKLSAgICAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1
bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAg
ICAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLmJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAg
ICAgICAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24u
Y3BwCmluZGV4IDlhZjVmMDg0YzUwMTM2NjAzZDUyNGIyMGZiYTE2ZjU5NWJiOTc5ZmEuLmY5MWQz
YTU1YzVjOWM3OTg0YTAyNDYxMjgzOTA3NTdjNDFmNDFlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTM2Miw3ICsz
NjIsNyBAQCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgZQogICAgICAgICAvLyBEaXNwYXRjaCB0aGUg
ZXZlbnQKICAgICAgICAgYXV0byBlbGVtZW50ID0gbWFrZVJlZlB0cih0aGlzLT5lbGVtZW50KCkp
OwogCi0gICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLnBhZ2VD
YWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICAgICAgQVNTRVJU
KCFlbGVtZW50IHx8IGVsZW1lbnQtPmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgICAgIGlmICghZWxlbWVu
dCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRl
eCA1ZjBhOTc2M2U3M2UxNTBkZTA5ZmYwMGQ4MGM4YTQ2YjVjMDI0OTNkLi41NGE5MGUwODVmZmJk
ZjNlNGE5ZTk0MmNjYzM5NjMxZTM1MWE2NmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAt
MjQ2LDE0ICsyNDYsMTQgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIWNvb3Jk
aW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KCpmcmFtZVZpZXcpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBib29sIGluUGFnZUNhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3Vt
ZW50KCktPnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOworICAg
IGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCkt
PmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2Fj
aGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFibGVBcmVhLmN1cnJl
bnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwotICAgIGlmIChpblBy
b2dyYW1tYXRpY1Njcm9sbCB8fCBpblBhZ2VDYWNoZSkKKyAgICBpZiAoaW5Qcm9ncmFtbWF0aWNT
Y3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlv
bkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNl
dCk7CiAKLSAgICAvLyBJZiB0aGlzIGZyYW1lIHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQg
aW50byB0aGUgcGFnZSBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCisgICAgLy8g
SWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8gdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCiAgICAgLy8gbWFpbiBm
cmFtZSBzY3JvbGwgcG9zaXRpb24uIEp1c3QgbGV0IHRoZSBGcmFtZVZpZXcgdGhpbmsgdGhhdCB3
ZSBkaWQuCi0gICAgaWYgKGluUGFnZUNhY2hlKQorICAgIGlmIChpbkJhY2tGb3J3YXJkQ2FjaGUp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgYXV0byogc3RhdGVOb2RlID0gZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c3RhdGVO
b2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlEKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggN2Y0ZTRiZjFlZDlhZmIyMzg3NThhZGNi
MGJkZDcyNTFlNmRhNTgxMS4uZjU5MTc2NzJlZWZkZjFmNTIzY2RmNjkyNDZiMjM4NjA0OTRmYjJh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbQpAQCAtMTE0MSw3ICsxMTQxLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2hvdWxk
U2Nyb2xsYmFyUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoU2Nyb2xsYmFyKiBzY3JvbGwKIAogdm9p
ZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChjb25zdCBGbG9h
dFNpemUmIGRlbHRhKQogewotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBw
YWdlIGlzIGdvaW5nIGludG8gdGhlIHBhZ2UgY2FjaGUsIGJ1dCB0aGUgcGFnZQorICAgIC8vIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBwYWdlIGlzIGdvaW5nIGludG8gdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZSwgYnV0IHRoZSBwYWdlCiAgICAgLy8gaXNuJ3QgcmVhbGx5IHNjcm9sbGlu
ZyBpbiB0aGF0IGNhc2UuIFdlIHNob3VsZCBvbmx5IHBhc3MgdGhlIG1lc3NhZ2Ugb24gdG8gdGhl
CiAgICAgLy8gU2Nyb2xsZXJJbXBQYWlyIHdoZW4gd2UncmUgcmVhbGx5IHNjcm9sbGluZyBvbiBh
biBhY3RpdmUgcGFnZS4KICAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3JvbGxl
clN0YXRlSXNMb2NrZWRdKQpAQCAtMTQxOCw3ICsxNDE4LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSgpCiAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXIt
PnNldEZyYW1lUmVjdChJbnRSZWN0KDAsIDAsIHRoaWNrbmVzcywgdGhpY2tuZXNzKSk7CiAgICAg
fQogCi0gICAgLy8gSWYgbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGUgaXMgdHJ1ZSwgdGhlbiB0
aGUgcGFnZSBpcyByZXN0b3JpbmcgZnJvbSB0aGUgcGFnZSBjYWNoZSwgYW5kIAorICAgIC8vIElm
IG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlIGlzIHRydWUsIHRoZW4gdGhlIHBhZ2UgaXMgcmVz
dG9yaW5nIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYW5kCiAgICAgLy8gYSByZWxheW91
dCB3aWxsIGhhcHBlbiBvbiBpdHMgb3duLiBPdGhlcndpc2UsIHdlIG11c3QgaW5pdGlhdGUgYSBy
ZS1sYXlvdXQgb3Vyc2VsdmVzLgogICAgIHNjcm9sbGFibGVBcmVhKCkuc2Nyb2xsYmFyU3R5bGVD
aGFuZ2VkKG5ld1N0eWxlID09IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXkgPyBTY3JvbGxiYXJTdHls
ZTo6T3ZlcmxheSA6IFNjcm9sbGJhclN0eWxlOjpBbHdheXNWaXNpYmxlLCAhbV9uZWVkc1Njcm9s
bGVyU3R5bGVVcGRhdGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCmluZGV4IGUwNzg1ZWM0MzM3ODQxZGI4NTgzMGYxODFmYjA4OWY3NTc3
ZjU2YzUuLjIxNGY2MDk1NzdmOGE4ZjBiNTc1ZmQ1MWFhNTRhMzYzNjQ5ZTMxYzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yNzgw
LDggKzI3ODAsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29u
c3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgIGlmICgocGFpbnRzSW50
b1dpbmRvdygpIHx8IHBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSkgJiYgZ3JhcGhpY3NM
YXllci0+cGFpbnRpbmdQaGFzZSgpICE9IE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZT4oR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkNoaWxkQ2xpcHBpbmdNYXNrKSkgewog
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhT1MoV0lORE9XUykKICAgICAgICAgLy8gRklY
TUU6IExvb2tzIGxpa2UgdGhlIENBTGF5ZXIgdHJlZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBH
cmFwaGljc0xheWVyIGhlaXJhcmNoeQotICAgICAgICAvLyB3aGVuIHBhZ2VzIGFyZSByZXN0b3Jl
ZCBmcm9tIHRoZSBQYWdlQ2FjaGUuCi0gICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS84NzEyNTg3
PiBBU1NFUlQ6IFdoZW4gR29pbmcgQmFjayB0byBQYWdlIHdpdGggUGx1Z2lucyBpbiBQYWdlQ2Fj
aGUKKyAgICAgICAgLy8gd2hlbiBwYWdlcyBhcmUgcmVzdG9yZWQgZnJvbSB0aGUgQmFja0Zvcndh
cmRDYWNoZS4KKyAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzg3MTI1ODc+IEFTU0VSVDogV2hl
biBHb2luZyBCYWNrIHRvIFBhZ2Ugd2l0aCBQbHVnaW5zIGluIEJhY2tGb3J3YXJkQ2FjaGUKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApp
bmRleCBjMGRkMDYwYjVkMzNjOWVkZGZhMzBmN2Q1MzRkYTdkOTc5MzI4YzQ4Li5mZjlmZWJmYWVk
MjBjNmYxN2ZjMWI1OGM1MDdiZTUwNjU0MzM0N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNzE2LDggKzcxNiw4IEBA
IGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21w
b3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAKICAgICBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJz
VGltZXIuc3RvcCgpOwogCi0gICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VD
YWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlCi0gICAgICAgIHx8IG1fcmVu
ZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9F
bnRlclBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLmJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUKKyAg
ICAgICAgfHwgbV9yZW5kZXJWaWV3LmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIAogICAgIC8v
IENvbXBvc2l0aW5nIGxheWVycyB3aWxsIGJlIHVwZGF0ZWQgaW4gRG9jdW1lbnQ6OnNldFZpc3Vh
bFVwZGF0ZXNBbGxvd2VkKGJvb2wpIGlmIHN1cHByZXNzZWQgaGVyZS4KICAgICBpZiAoIW1fcmVu
ZGVyVmlldy5kb2N1bWVudCgpLnZpc3VhbFVwZGF0ZXNBbGxvd2VkKCkpCkBAIC00NjUyLDcgKzQ2
NTIsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6d2lsbFJlbW92ZVNjcm9sbGluZ0xh
eWVyV2l0aEJhY2tpbmcoUmVuZGVyTGF5ZXImIGxheQogICAgICAgICByZXR1cm47CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIEFTU0VSVChtX3JlbmRlclZpZXcuZG9jdW1lbnQoKS5w
YWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJU
KG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3Vt
ZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIGlmIChtX2xlZ2FjeVNjcm9sbGluZ0xh
eWVyQ29vcmRpbmF0b3IpCiAgICAgICAgIG1fbGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29yZGluYXRv
ci0+cmVtb3ZlU2Nyb2xsaW5nTGF5ZXIobGF5ZXIsIGJhY2tpbmcpOwogI2Vsc2UKQEAgLTQ2Njgs
NyArNDY2OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRBZGRTY3JvbGxpbmdM
YXllcihSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNo
ZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICBBU1NFUlQobV9yZW5k
ZXJWaWV3LmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5v
dEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgaWYgKG1fbGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29y
ZGluYXRvcikKICAgICAgICAgbV9sZWdhY3lTY3JvbGxpbmdMYXllckNvb3JkaW5hdG9yLT5hZGRT
Y3JvbGxpbmdMYXllcihsYXllcik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDY1MmQ2MDE1MTJkNmVmMDJmZjU4MDkx
NTU3MTNmNjc1ZThkMDc2NGIuLjA3OGY3OWJhZDAyMzg5M2UyMmQxNjI5MzA4YzdmYjQ0YjQ3ZjU5
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBpcyBvbmx5IHVz
ZWQgd2hlbiBzdGF0ZSBjaGFuZ2VzIGFuZCB3ZSBkbyBub3QgZXhlcGVjdCBhIHN0eWxlIHVwZGF0
ZSBvciBsYXlvdXQgdG8gaGFwcGVuIHNvb24gKGUuZy4gd2hlbgogICAgIC8vIHdlIGRpc2NvdmVy
IHRoYXQgYW4gaWZyYW1lIGlzIG92ZXJsYXBwZWQgZHVyaW5nIHBhaW50aW5nKS4KICAgICB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclVwZGF0ZSgpOwotICAgIC8vIFRoaXMgaXMgdXNlZCB0
byBjYW5jZWwgYW55IHBlbmRpbmcgdXBkYXRlIHRpbWVycyB3aGVuIHRoZSBkb2N1bWVudCBnb2Vz
IGludG8gcGFnZSBjYWNoZS4KKyAgICAvLyBUaGlzIGlzIHVzZWQgdG8gY2FuY2VsIGFueSBwZW5k
aW5nIHVwZGF0ZSB0aW1lcnMgd2hlbiB0aGUgZG9jdW1lbnQgZ29lcyBpbnRvIGJhY2svZm9yd2Fy
ZCBjYWNoZS4KICAgICB2b2lkIGNhbmNlbENvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsKIAogICAg
IC8vIFVwZGF0ZSB0aGUgY29tcG9zaXRpbmcgc3RhdGUgb2YgdGhlIGdpdmVuIGxheWVyLiBSZXR1
cm5zIHRydWUgaWYgdGhhdCBzdGF0ZSBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCmluZGV4IGNhYWM1Y2RlMGVkODQ3YmRjMjBlNWNhN2E1ZjFlZDgwMTBjNGJm
NWYuLjc2ZTI4ZDdkZjM0Mjk4MTM5YzI4ZDZiZTM3ZDY3M2I3M2YzYjczOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTcyMyw3ICs3MjMsNyBAQCBwdWJsaWM6
CiAgICAgICovCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGxvY2FsQ2FyZXRSZWN0KElubGluZUJv
eCosIHVuc2lnbmVkIGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxp
bmUgPSBudWxscHRyKTsKIAotICAgIC8vIFdoZW4gcGVyZm9ybWluZyBhIGdsb2JhbCBkb2N1bWVu
dCB0ZWFyLWRvd24sIG9yIHdoZW4gZ29pbmcgaW50byB0aGUgcGFnZSBjYWNoZSwgdGhlIHJlbmRl
cmVyIG9mIHRoZSBkb2N1bWVudCBpcyBjbGVhcmVkLgorICAgIC8vIFdoZW4gcGVyZm9ybWluZyBh
IGdsb2JhbCBkb2N1bWVudCB0ZWFyLWRvd24sIG9yIHdoZW4gZ29pbmcgaW50byB0aGUgYmFjay9m
b3J3YXJkIGNhY2hlLCB0aGUgcmVuZGVyZXIgb2YgdGhlIGRvY3VtZW50IGlzIGNsZWFyZWQuCiAg
ICAgYm9vbCByZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZGVz
dHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVM
YXlvdXRDb3ZlcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxh
eW91dENvdmVyYWdlLmNwcAppbmRleCBhYzEwOWRiYzM0MmY4Yzc3ODZkYWU3ODVjZmZkOTVjNjAw
ZmZjODJmLi41NWY1ZmQzNzA3NmI4MjUzY2UxNTk5ZjcwY2FmZTZjY2RhNWQyMjQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdl
LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3ROb25FbXB0eUxlYWZS
ZW5kZXJCbG9ja0Zsb3dzKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIEhhCiBzdGF0aWMg
dm9pZCBjb2xsZWN0Tm9uRW1wdHlMZWFmUmVuZGVyQmxvY2tGbG93c0ZvckN1cnJlbnRQYWdlKEhh
c2hTZXQ8Y29uc3QgUmVuZGVyQmxvY2tGbG93Kj4mIGxlYWZSZW5kZXJlcnMpCiB7CiAgICAgZm9y
IChjb25zdCBhdXRvKiBkb2N1bWVudCA6IERvY3VtZW50OjphbGxEb2N1bWVudHMoKSkgewotICAg
ICAgICBpZiAoIWRvY3VtZW50LT5yZW5kZXJWaWV3KCkgfHwgZG9jdW1lbnQtPnBhZ2VDYWNoZVN0
YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgICAgICBpZiAoIWRvY3VtZW50
LT5yZW5kZXJWaWV3KCkgfHwgZG9jdW1lbnQtPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERv
Y3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKCFkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQtPmlzWEhU
TUxEb2N1bWVudCgpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggYTAwZjRmZTBmNGNjYjUyZGQ4MzFhOTRlMjZh
NTg2NGU1YzFiNzkyNy4uMDJhMGUzN2UwY2E5M2JlOGY3ZThjZjRkNWM1OWQ5ZWI1YzE2YTUxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtMjk2LDcg
KzI5Niw3IEBAIEVsZW1lbnRVcGRhdGUgVHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1l
bnRVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0CiAgICAgICAgIC8vIEZpcnN0LCB3ZSBu
ZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGFueSBuZXcgQ1NTIGFuaW1hdGlvbiBvY2N1cmluZyBvbiB0
aGlzIGVsZW1lbnQgaGFzIGEgbWF0Y2hpbmcgV2ViQW5pbWF0aW9uCiAgICAgICAgIC8vIG9uIHRo
ZSBkb2N1bWVudCB0aW1lbGluZS4gTm90ZSB0aGF0IHdlIGdldCB0aW1lbGluZSgpIG9uIHRoZSBE
b2N1bWVudCBoZXJlIGJlY2F1c2Ugd2UgbmVlZCBhIHRpbWVsaW5lIGNyZWF0ZWQKICAgICAgICAg
Ly8gaW4gY2FzZSBubyBXZWIgQW5pbWF0aW9ucyBoYXZlIGJlZW4gY3JlYXRlZCB0aHJvdWdoIHRo
ZSBKUyBBUEkuCi0gICAgICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUo
KSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5yZW5k
ZXJWaWV3KCktPnByaW50aW5nKCkpIHsKKyAgICAgICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5i
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hl
ICYmICFlbGVtZW50LmRvY3VtZW50KCkucmVuZGVyVmlldygpLT5wcmludGluZygpKSB7CiAgICAg
ICAgICAgICBpZiAob2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5oYXNUcmFuc2l0aW9ucygpIHx8IG5l
d1N0eWxlLT5oYXNUcmFuc2l0aW9ucygpKSkKICAgICAgICAgICAgICAgICBtX2RvY3VtZW50LnRp
bWVsaW5lKCkudXBkYXRlQ1NTVHJhbnNpdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQsICpvbGRTdHls
ZSwgKm5ld1N0eWxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDhm
OGM1YzdkOTI3YzA3OTYyOWQ2N2VkMTVhYzAyMzg1NTZkNDkyOWEuLjRiYzcxMjBjMDE3MjhiY2Q2
MzBkYTc0YzhlYzI3MWFlYzM5M2VkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5o
IgogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkF1dG9maWxsLmgiCisjaW5j
bHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5oIgpAQCAtMTI3LDcgKzEyOCw2IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFE
ZXZpY2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5o
IgogI2luY2x1ZGUgIlBhdGhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaCIKQEAgLTkyMiwxNCArOTIyLDE0IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRHcmlkTWF4
VHJhY2tzTGltaXQodW5zaWduZWQgbWF4VHJhY2tMaW1pdCkKICAgICBHcmlkUG9zaXRpb246OnNl
dE1heFBvc2l0aW9uRm9yVGVzdGluZyhtYXhUcmFja0xpbWl0KTsKIH0KIAotdm9pZCBJbnRlcm5h
bHM6OmNsZWFyUGFnZUNhY2hlKCkKK3ZvaWQgSW50ZXJuYWxzOjpjbGVhckJhY2tGb3J3YXJkQ2Fj
aGUoKQogewotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1
bmluZ1JlYXNvbjo6Tm9uZSk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucHJ1
bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7CiB9CiAKLXVuc2lnbmVkIEludGVy
bmFsczo6cGFnZUNhY2hlU2l6ZSgpIGNvbnN0Cit1bnNpZ25lZCBJbnRlcm5hbHM6OmJhY2tGb3J3
YXJkQ2FjaGVTaXplKCkgY29uc3QKIHsKLSAgICByZXR1cm4gUGFnZUNhY2hlOjpzaW5nbGV0b24o
KS5wYWdlQ291bnQoKTsKKyAgICByZXR1cm4gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCku
cGFnZUNvdW50KCk7CiB9CiAKIGNsYXNzIFVuc3VzcGVuZGFibGVBY3RpdmVET01PYmplY3QgZmlu
YWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxVbnN1c3BlbmRh
YmxlQWN0aXZlRE9NT2JqZWN0PiB7CkBAIC05NDcsNyArOTQ3LDcgQEAgcHJpdmF0ZToKICAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgeyByZXR1cm4gIlVuc3VzcGVu
ZGFibGVBY3RpdmVET01PYmplY3QiOyB9CiB9OwogCi12b2lkIEludGVybmFsczo6cHJldmVudERv
Y3VtZW50Rm9yRW50ZXJpbmdQYWdlQ2FjaGUoKQordm9pZCBJbnRlcm5hbHM6OnByZXZlbnREb2N1
bWVudEZvckVudGVyaW5nQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgaWYgKGF1dG8qIGNvbnRl
eHQgPSBjb250ZXh0RG9jdW1lbnQoKSkKICAgICAgICAgbV91bnN1c3BlbmRhYmxlQWN0aXZlRE9N
T2JqZWN0ID0gVW5zdXNwZW5kYWJsZUFjdGl2ZURPTU9iamVjdDo6Y3JlYXRlKCpjb250ZXh0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGJhMmJiOTc0YTkyY2VmMWFjN2UzNDQ3
NmViYjEyZWFlZGQ3MDdhODkuLjE5Zjc4OWY5MDMwZjlhMjQ4Njg3ZTk1ZjAxZmRhYWRkZTU4NWRk
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTY5LDkgKzE2OSw5IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0R3JpZE1heFRyYWNrc0xpbWl0KHVuc2lnbmVkKTsKIAotICAg
IHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKLSAgICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplKCkgY29u
c3Q7Ci0gICAgdm9pZCBwcmV2ZW50RG9jdW1lbnRGb3JFbnRlcmluZ1BhZ2VDYWNoZSgpOworICAg
IHZvaWQgY2xlYXJCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgdW5zaWduZWQgYmFja0ZvcndhcmRD
YWNoZVNpemUoKSBjb25zdDsKKyAgICB2b2lkIHByZXZlbnREb2N1bWVudEZvckVudGVyaW5nQmFj
a0ZvcndhcmRDYWNoZSgpOwogCiAgICAgdm9pZCBkaXNhYmxlVGlsZVNpemVVcGRhdGVEZWxheSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMWVlZTNjOWQzYWUzYjI2
ZWU3ZjRhZDEyNzA5ODU1NmJhZGM2MmVjMy4uMDFkYjI0MmQwYmM5OTQyMDYwMTU2NDY1YmY3NzFk
MTQyN2RhMmNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjA3LDkg
KzIwNyw5IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIHZvaWQgc2V0T3ZlcnJpZGVS
ZXNvdXJjZUxvYWRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSk7CiAgICAg
dm9pZCBzZXRTdHJpY3RSYXdSZXNvdXJjZVZhbGlkYXRpb25Qb2xpY3lEaXNhYmxlZChib29sZWFu
IGRpc2FibGVkKTsKIAotICAgIHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKLSAgICB1bnNpZ25lZCBs
b25nIHBhZ2VDYWNoZVNpemUoKTsKLSAgICB2b2lkIHByZXZlbnREb2N1bWVudEZvckVudGVyaW5n
UGFnZUNhY2hlKCk7CisgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkQ2FjaGUoKTsKKyAgICB1bnNp
Z25lZCBsb25nIGJhY2tGb3J3YXJkQ2FjaGVTaXplKCk7CisgICAgdm9pZCBwcmV2ZW50RG9jdW1l
bnRGb3JFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGUoKTsKIAogICAgIENTU1N0eWxlRGVjbGFyYXRp
b24gY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEVsZW1lbnQgZWxlbWVudCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDdmMGUwMzVjNWY5NTVlNGUx
YTBmNzNhNzliNzg4NDcwZGU5NjYyZWIuLjUzYzQ4MDcxYmU5NWRjMTViOGNkODAxNzhjODA3YTky
OGUzMmEzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTE2Myw4
ICsxMTYzLDggQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uIHJlYXNvbikKICAgICAgICAgbV9kaXNwYXRjaEVycm9yT25SZXN1bWluZyA9IHRydWU7CiAg
ICAgfQogCi0gICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUg
JiYgbV9sb2FkZXIpIHsKLSAgICAgICAgLy8gR29pbmcgaW50byBQYWdlQ2FjaGUsIGFib3J0IHRo
ZSByZXF1ZXN0IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcuCisgICAg
aWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlICYmIG1f
bG9hZGVyKSB7CisgICAgICAgIC8vIEdvaW5nIGludG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUsIGFi
b3J0IHRoZSByZXF1ZXN0IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcu
CiAgICAgICAgIGdlbmVyaWNFcnJvcigpOwogICAgICAgICBtX2Rpc3BhdGNoRXJyb3JPblJlc3Vt
aW5nID0gdHJ1ZTsKICAgICAgICAgYm9vbCBhYm9ydGVkID0gaW50ZXJuYWxBYm9ydCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2FjaGVNb2RlbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcAppbmRleCBmMDllYzZkOGIyNWVhZTQyZjg1ZDA1Yzc1
MDI4ZDEwZGYzMjY3NjQ2Li45Y2JkNmFiOWFjMTA5NTc2ODZiYWRjMDMyMTdkMWQ2MWUyNDhiMTY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcApAQCAtMzMsMTQgKzMzLDE0IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMoQ2Fj
aGVNb2RlbCBjYWNoZU1vZGVsLCB1bnNpZ25lZCYgY2FjaGVUb3RhbENhcGFjaXR5LCB1bnNpZ25l
ZCYgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1heERlYWRDYXBhY2l0eSwg
U2Vjb25kcyYgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwgdW5zaWduZWQmIHBhZ2VD
YWNoZUNhcGFjaXR5KQordm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWwg
Y2FjaGVNb2RlbCwgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hl
TWluRGVhZENhcGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIFNlY29uZHMm
IGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsIHVuc2lnbmVkJiBiYWNrRm9yd2FyZENh
Y2hlQ2FwYWNpdHkpCiB7CiAgICAgdWludDY0X3QgbWVtb3J5U2l6ZSA9IHJhbVNpemUoKSAvIE1C
OwogCiAgICAgc3dpdGNoIChjYWNoZU1vZGVsKSB7CiAgICAgY2FzZSBDYWNoZU1vZGVsOjpEb2N1
bWVudFZpZXdlcjogewotICAgICAgICAvLyBQYWdlIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykK
LSAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAvLyBiYWNrL2ZvcndhcmQg
Y2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICBiYWNrRm9yd2FyZENhY2hlQ2FwYWNp
dHkgPSAwOwogCiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykK
ICAgICAgICAgaWYgKG1lbW9yeVNpemUgPj0gMjA0OCkKQEAgLTYwLDEzICs2MCwxMyBAQCB2b2lk
IGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsLCB1bnNpZ25l
ZCYgY2FjaGVUb3RhbENhcGFjaQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDYWNo
ZU1vZGVsOjpEb2N1bWVudEJyb3dzZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0
eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4g
cGFnZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXplID49IDUxMikKLSAgICAgICAgICAgIHBhZ2VD
YWNoZUNhcGFjaXR5ID0gMjsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9
IDI7CiAgICAgICAgIGVsc2UgaWYgKG1lbW9yeVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFn
ZUNhY2hlQ2FwYWNpdHkgPSAxOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5
ID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOwor
ICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMDsKIAogICAgICAgICAvLyBP
YmplY3QgY2FjaGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXpl
ID49IDIwNDgpCkBAIC04NiwxMyArODYsMTMgQEAgdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNp
emVzKENhY2hlTW9kZWwgY2FjaGVNb2RlbCwgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2kKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ2FjaGVNb2RlbDo6UHJpbWFyeVdlYkJyb3dz
ZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAg
IC8vIGJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIGlmICht
ZW1vcnlTaXplID49IDUxMikKLSAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKKyAg
ICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9IDI7CiAgICAgICAgIGVsc2UgaWYg
KG1lbW9yeVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAxOwor
ICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAgICAgYmFja0Zvcndh
cmRDYWNoZUNhcGFjaXR5ID0gMDsKIAogICAgICAgICAvLyBPYmplY3QgY2FjaGUgY2FwYWNpdGll
cyAoaW4gYnl0ZXMpCiAgICAgICAgIC8vIChUZXN0aW5nIGluZGljYXRlcyB0aGF0IHZhbHVlIC8g
TUIgZGVwZW5kcyBoZWF2aWx5IG9uIGNvbnRlbnQgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9DYWNoZU1vZGVsLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVs
LmgKaW5kZXggZjIzOTUzOGU2NzhlYmRmYzA4MTRlZGM3NmJmODYzZTJmM2MyNTdjYS4uY2Q2NDhi
NDdiZjNmNWRmNDczNDQ3ZWY1MjZlZDU5MDEyMjAwNmE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ2FjaGVNb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhY2hl
TW9kZWwuaApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIGNsYXNzIENhY2hlTW9kZWwgOiB1aW50OF90
IHsKICAgICBQcmltYXJ5V2ViQnJvd3NlcgogfTsKIAotdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNo
ZVNpemVzKENhY2hlTW9kZWwsIHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVk
JiBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBT
ZWNvbmRzJiBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLCB1bnNpZ25lZCYgcGFnZUNh
Y2hlQ2FwYWNpdHkpOwordm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWws
IHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1pbkRlYWRDYXBh
Y2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBTZWNvbmRzJiBkZWFkRGVjb2Rl
ZERhdGFEZWxldGlvbkludGVydmFsLCB1bnNpZ25lZCYgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5
KTsKIHZvaWQgY2FsY3VsYXRlVVJMQ2FjaGVTaXplcyhDYWNoZU1vZGVsLCB1aW50NjRfdCBkaXNr
RnJlZVNpemUsIHVuc2lnbmVkJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1aW50NjRfdCYgdXJs
Q2FjaGVEaXNrQ2FwYWNpdHkpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDk3NDYxOGY2ZDI2NTQ5MDYzYzgzODhm
Y2RhZTJlYjRkNTY3NjFhMDYuLjc5NmIwZTE5NWY1MzBhMTgxNTI1OGQxY2Q3N2Q0YWY5YWI5MGMx
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTU1LDEx
ICsxNTUsMTEgQEAgTG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDoKICAgdHlwZTogYm9v
bAogICBkZWZhdWx0VmFsdWU6IGZhbHNlCiAKLVVzZXNQYWdlQ2FjaGU6CitVc2VzQmFja0Zvcndh
cmRDYWNoZToKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIAotUGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zOgorQmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2luczoKICAgdHlw
ZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggY2QyMmEyNjc2NDY4ZDE4MjM0
YTYwODQyZmU5ZDkxNjcxYjIwYTg3ZC4uMzhjYzc1MGNiMmM0MTgxYzA4ZTAxNjVkZjM2MGQ3NGM4
Mjk3YTk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbkNsaWVudC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZXNvbHZlV2ViR0xMb2FkUG9saWN5KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RG
OjpVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0IHsgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
V2ViR0xMb2FkUG9saWN5OjpXZWJHTEFsbG93Q3JlYXRpb24pOyB9CiAjZW5kaWYKICAgICAKLSAg
ICB2aXJ0dWFsIGJvb2wgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBpblBhZ2VDYWNo
ZSkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExp
c3RJdGVtJiwgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZShXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTmF2aWdhdGlvbkdlc3R1cmUoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBib29sIHdpbGxOYXZpZ2F0ZSwgV2ViS2l0OjpXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGUzNzM5MzRjMjNk
ZGY1ZDVkOTkzOWE3NTE5NzlmMDVjOTM1YWMwZTEuLjFlMDBhNWU4OTQzZThlNmFhY2QyYjVjMTc3
MWJhNmZjZDA0NDU1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC02OSw3ICs2OSw3IEBA
IFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6
Y29weSgpCiAgICAgY29weS0+bV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyID0g
dGhpcy0+bV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyOwogICAgIGNvcHktPm1f
aXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudCA9IHRoaXMtPm1faXNBdXRv
bWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudDsKICAgICBjb3B5LT5tX3VzZXNXZWJQ
cm9jZXNzQ2FjaGUgPSB0aGlzLT5tX3VzZXNXZWJQcm9jZXNzQ2FjaGU7Ci0gICAgY29weS0+bV91
c2VzUGFnZUNhY2hlID0gdGhpcy0+bV91c2VzUGFnZUNhY2hlOworICAgIGNvcHktPm1fdXNlc0Jh
Y2tGb3J3YXJkQ2FjaGUgPSB0aGlzLT5tX3VzZXNCYWNrRm9yd2FyZENhY2hlOwogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIGNvcHktPm1fc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9u
U3lzdGVtQ2hhbmdlID0gdGhpcy0+bV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25T
eXN0ZW1DaGFuZ2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCAxZmE3OTAxN2FmODY0
ZWM5NmRlMmVmODE5ZWE3OWJmMThhMjI4MzJmLi4zOTZmM2U1MzQyYmVhYTY3Y2Y2NzNjYWM1MjY0
ZGZhZjk0NjdkNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC02OCw4ICs2OCw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGNsaWVudFdvdWxkQmVuZWZpdEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2Fy
bWluZygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50V291bGRCZW5lZml0RnJvbUF1dG9tYXRpY1By
b2Nlc3NQcmV3YXJtaW5nOyB9CiAgICAgdm9pZCBzZXRDbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0
b21hdGljUHJvY2Vzc1ByZXdhcm1pbmcoYm9vbCB2YWx1ZSkgeyBtX2NsaWVudFdvdWxkQmVuZWZp
dEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2FybWluZyA9IHZhbHVlOyB9CiAKLSAgICB2b2lkIHNl
dFVzZXNQYWdlQ2FjaGUoYm9vbCB2YWx1ZSkgeyBtX3VzZXNQYWdlQ2FjaGUgPSB2YWx1ZTsgfQot
ICAgIGJvb2wgdXNlc1BhZ2VDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1BhZ2VDYWNoZTsg
fQorICAgIHZvaWQgc2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUoYm9vbCB2YWx1ZSkgeyBtX3VzZXNC
YWNrRm9yd2FyZENhY2hlID0gdmFsdWU7IH0KKyAgICBib29sIHVzZXNCYWNrRm9yd2FyZENhY2hl
KCkgY29uc3QgeyByZXR1cm4gbV91c2VzQmFja0ZvcndhcmRDYWNoZTsgfQogCiAgICAgY29uc3Qg
V1RGOjpTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0
ZWRCdW5kbGVQYXRoOyB9CiAgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZVBhdGgoY29uc3QgV1RG
OjpTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCkgeyBtX2luamVjdGVkQnVuZGxlUGF0aCA9IGlu
amVjdGVkQnVuZGxlUGF0aDsgfQpAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3Byb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgeyBmYWxzZSB9OwogICAgIE9w
dGlvbmFsPGJvb2w+IG1faXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudDsK
ICAgICBib29sIG1fdXNlc1dlYlByb2Nlc3NDYWNoZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Vz
ZXNQYWdlQ2FjaGUgeyB0cnVlIH07CisgICAgYm9vbCBtX3VzZXNCYWNrRm9yd2FyZENhY2hlIHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV9jbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0b21hdGljUHJvY2Vz
c1ByZXdhcm1pbmcgeyBmYWxzZSB9OwogICAgIFdURjo6U3RyaW5nIG1fY3VzdG9tV2ViQ29udGVu
dFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOwogICAgIGJvb2wgbV9zaG91bGRDb25maWd1cmVKU0NG
b3JUZXN0aW5nIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYjM0ZjRiYzc3ZGFkODhkZmVhMDdlODdiYWE2NjM4MTc1
YmUzZWI1MC4uODg4MDJhMmU4MWJiMzEwNjk3OTFlMGJiM2UyNjY5NDlkNTE3Zjc2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTYx
MCwyMiArNjEwLDIyIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldExvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlCiAKIHZvaWQgV0tQcmVmZXJl
bmNlc1NldFBhZ2VDYWNoZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBlbmFibGVkKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFVzZXNQYWdl
Q2FjaGUoZW5hYmxlZCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0VXNlc0JhY2tG
b3J3YXJkQ2FjaGUoZW5hYmxlZCk7CiB9CiAKIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNo
ZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4g
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+dXNlc1BhZ2VDYWNoZSgpOworICAgIHJldHVybiB0b0lt
cGwocHJlZmVyZW5jZXNSZWYpLT51c2VzQmFja0ZvcndhcmRDYWNoZSgpOwogfQogCi12b2lkIFdL
UHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZiwgYm9vbCBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpCit2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBiYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKQogewotICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyhwYWdl
Q2FjaGVTdXBwb3J0c1BsdWdpbnMpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJh
Y2tGb3J3YXJkQ2FjaGVTdXBwb3J0c1BsdWdpbnMoYmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1
Z2lucyk7CiB9CiAKIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lu
cyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoKTsKKyAgICByZXR1cm4g
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucygp
OwogfQogCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCAx
OTQyNjBlMGMyZWNkYzA5ZjRiZmFhOTY2NzU4NzVmYmE1ODJmYjQwLi5jMWE3MzA4ZDNkNTU0OTg3
ODE1MzBhZDliYTJmN2M2MzUzMWM3NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtOTQ0LDIyICs5NDQsMjIgQEAgLSAo
Qk9PTClfbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZAogCiAtICh2b2lkKV9zZXRVc2Vz
UGFnZUNhY2hlOihCT09MKWVuYWJsZWQKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldFVzZXNQYWdl
Q2FjaGUoZW5hYmxlZCk7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRVc2VzQmFja0ZvcndhcmRDYWNo
ZShlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfdXNlc1BhZ2VDYWNoZQogewotICAgIHJldHVybiBf
cHJlZmVyZW5jZXMtPnVzZXNQYWdlQ2FjaGUoKTsKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT51
c2VzQmFja0ZvcndhcmRDYWNoZSgpOwogfQogCiAtICh2b2lkKV9zZXRQYWdlQ2FjaGVTdXBwb3J0
c1BsdWdpbnM6KEJPT0wpZW5hYmxlZAogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0UGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zKGVuYWJsZWQpOworICAgIF9wcmVmZXJlbmNlcy0+c2V0QmFja0Zvcndh
cmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfcGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+cGFnZUNhY2hlU3Vw
cG9ydHNQbHVnaW5zKCk7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YmFja0ZvcndhcmRDYWNo
ZVN1cHBvcnRzUGx1Z2lucygpOwogfQogCiAtICh2b2lkKV9zZXRTaG91bGRQcmludEJhY2tncm91
bmRzOihCT09MKWVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDg3
N2Q1MmNhZDMwZTBmZTM4ZjNjOWVhNzNiOTg5MjU3MzhmMjU4ZTMuLjBiNjc3YmNjNGY4MjAyY2Uy
Mzk5NWEwODJiYmI1YjAzODIwZmM4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5t
bQpAQCAtMzEzLDEyICszMTMsMTIgQEAgLSAoQk9PTClwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5X
aXRoT3BlbmVyCiAKIC0gKEJPT0wpcGFnZUNhY2hlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLT51c2VzUGFnZUNhY2hlKCk7CisgICAgcmV0dXJuIF9wcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24tPnVzZXNCYWNrRm9yd2FyZENhY2hlKCk7CiB9CiAKIC0gKHZv
aWQpc2V0UGFnZUNhY2hlRW5hYmxlZDooQk9PTCllbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFVzZXNQYWdlQ2FjaGUoZW5hYmxlZCk7CisgICAgcmV0
dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFVzZXNCYWNrRm9yd2FyZENhY2hlKGVu
YWJsZWQpOwogfQogCiAtIChCT09MKXVzZXNTaW5nbGVXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggYWUy
NzhjNzYyNTA5M2VjNTUxMTAzYjM4NzFmMGI4YTQ5NjUwOTRmZS4uZTU3MDE2YjM1YzFiMWM1ZjA0
Zjc5MmY1ODMxMjg3NDJlYTVhOWQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAtMjk4NCw3ICsyOTg0LDcgQEAgZ2Jv
b2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfcGFnZV9jYWNoZShXZWJLaXRTZXR0aW5n
cyogc2V0dGluZ3MpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJ
TkdTKHNldHRpbmdzKSwgRkFMU0UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcml2LT5wcmVm
ZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgpOworICAgIHJldHVybiBzZXR0aW5ncy0+cHJpdi0+cHJl
ZmVyZW5jZXMtPnVzZXNCYWNrRm9yd2FyZENhY2hlKCk7CiB9CiAKIC8qKgpAQCAtMjk5OSwxMSAr
Mjk5OSwxMSBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3BhZ2VfY2FjaGUoV2Vi
S2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlbgogICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CiAKICAgICBXZWJLaXRTZXR0aW5nc1ByaXZh
dGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKLSAgICBib29sIGN1cnJlbnRWYWx1ZSA9IHByaXYt
PnByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCk7CisgICAgYm9vbCBjdXJyZW50VmFsdWUgPSBw
cml2LT5wcmVmZXJlbmNlcy0+dXNlc0JhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICBpZiAoY3VycmVu
dFZhbHVlID09IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHByaXYtPnByZWZlcmVu
Y2VzLT5zZXRVc2VzUGFnZUNhY2hlKGVuYWJsZWQpOworICAgIHByaXYtPnByZWZlcmVuY2VzLT5z
ZXRVc2VzQmFja0ZvcndhcmRDYWNoZShlbmFibGVkKTsKICAgICBnX29iamVjdF9ub3RpZnkoR19P
QkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXBhZ2UtY2FjaGUiKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCBiM2EzZDZmYmE5
Njc0NmFiNDJlMjQxNTU5MzQzYTQ4OGQ1Y2Y3NjNlLi4wZGZkZTdjOTg2ODAxZDhjMTg1ODJjMmE4
YTM1NzkyNWFlNmMyMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgICAgICB2b2lkIHdlYkdMTG9hZFBvbGljeShXZWJQYWdlUHJveHkmLCBjb25z
dCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+
JiYpIGNvbnN0IGZpbmFsOwogICAgICAgICB2b2lkIHJlc29sdmVXZWJHTExvYWRQb2xpY3koV2Vi
UGFnZVByb3h5JiwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpX
ZWJHTExvYWRQb2xpY3kpPiYmKSBjb25zdCBmaW5hbDsKLSAgICAgICAgYm9vbCB3aWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0oV2ViUGFnZVByb3h5JiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYs
IGJvb2wgaW5QYWdlQ2FjaGUpIGZpbmFsOworICAgICAgICBib29sIHdpbGxHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbShXZWJQYWdlUHJveHkmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBp
bkJhY2tGb3J3YXJkQ2FjaGUpIGZpbmFsOwogICAgICAgICBib29sIGRpZEZhaWxUb0luaXRpYWxp
emVQbHVnSW4oV2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAg
IGJvb2wgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpE
aWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9h
ZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwg
QVBJOjpEaWN0aW9uYXJ5JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OlBsdWdpbk1v
ZHVsZUxvYWRQb2xpY3ksIGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGZpbmFsOwpAQCAtMjQwLDcg
KzI0MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0JhY2tGb3J3YXJkTGlzdEl0
ZW1BZGRlZFJlbW92ZWQgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRGYWlsVG9Jbml0aWFs
aXplUGx1Z0luV2l0aEluZm8gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRCbG9ja0luc2Vj
dXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtSW5QYWdlQ2FjaGUgOiAxOworICAgICAgICBib29sIHdlYlZp
ZXdXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1JbkJhY2tGb3J3YXJkQ2FjaGUgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xp
Y3lQbHVnaW5JbmZvQ29tcGxldGlvbkhhbmRsZXIgOiAxOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA2YjE1YzA2
YmQ5ZWZhMTlhZDYzNmIzMjlhMmE3NmE2YmU4NTVjZGQ4Li45NGFlOWIxMzBmYjg5OTkzOGU5Y2Uy
NjFiNWU2OGUxM2U1MmUwMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRl
bGVnYXRlKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld1dlYkdMTG9hZFBvbGljeUZvclVSTCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndlYkdMTG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhh
bmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXNvbHZl
V2ViR0xMb2FkUG9saWN5Rm9yVVJMID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6cmVzb2x2ZVdlYkdMTG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhhbmRs
ZXI6KV07Ci0gICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1JblBhZ2VDYWNoZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTppblBhZ2VD
YWNoZTopXTsKKyAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbUluQmFja0ZvcndhcmRDYWNoZSA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bTppblBhZ2VDYWNoZTopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRoSW5mbyA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRo
SW5mbzopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJsb2Nr
SW5zZWN1cmVQbHVnaW5WZXJzaW9uV2l0aEluZm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJ
bmZvOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QmFja0Zvcndh
cmRMaXN0SXRlbUFkZGVkUmVtb3ZlZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmJhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZDpyZW1vdmVkOildOwpAQCAt
NDYyLDE2ICs0NjIsMTYgQEAgYm9vbCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6
OmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJQYWdlUHJveHkmLAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0m
IGl0ZW0sIGJvb2wgaW5QYWdlQ2FjaGUpCitib29sIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlv
bkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlKQogewotICAg
IGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1JblBhZ2VDYWNoZSkKKyAgICBpZiAoIW1fbmF2
aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtSW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1f
bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVBy
aXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dl
YlZpZXcgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOndyYXBwZXIoaXRlbSkgaW5QYWdlQ2Fj
aGU6aW5QYWdlQ2FjaGVdOworICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4p
bmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyB3
aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06d3JhcHBlcihpdGVtKSBpblBhZ2VDYWNoZTppbkJh
Y2tGb3J3YXJkQ2FjaGVdOwogICAgIHJldHVybiB0cnVlOwogfQogI2VuZGlmCkBAIC03NTQsNyAr
NzU0LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm8KICAgICBpZiAoIW5hdmlnYXRpb25EZWxl
Z2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQg
dGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxs
IGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1
dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJh
Y2svZm9yd2FyZCBjYWNoZS4KIAogICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uVXNl
ckluZm8pCiAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdh
dGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRTdGFy
dFByb3Zpc2lvbmFsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pIHVzZXJJbmZvOnVzZXJJ
bmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIo
KSkgOiBuaWxdOwpAQCAtNzcxLDcgKzc3MSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hCiAg
ICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBi
dXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBw
YWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlv
biBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlv
bkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24p
XTsKIH0KQEAgLTgzNCw3ICs4MzQsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0
ZUVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVyKFdLV2ViVmlldyAqd2ViVmlldywgVwogLy8gRklY
TUU6IFNob3VsZG4ndCBuZWVkIHRvIHBhc3MgdGhlIFdlYkZyYW1lUHJveHkgaW4gaGVyZS4gQXQg
bW9zdCwgYSBGcmFtZUhhbmRsZS4KIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xp
ZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZp
Z2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3Qq
KQogewotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBu
b3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9u
cyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0
IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVs
bCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAK
ICAgICAvLyBGSVhNRTogU2V0IHRoZSBlcnJvciBvbiB0aGUgbmF2aWdhdGlvbiBvYmplY3QuCiAK
QEAgLTg3Miw3ICs4NzIsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVu
dDo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZp
Z2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJy
ZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgor
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVs
bCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJv
dWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdl
YlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZENvbW1pdE5hdmlnYXRpb246d3Jh
cHBlcihuYXZpZ2F0aW9uKV07CiB9CkBAIC04ODYsNyArODg2LDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9hZChXZWJQYWdlUHJv
eHkmIHBhZ2UKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBu
dWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRo
cm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhh
dCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZv
ciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAg
IFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgbmF2
aWdhdGlvbkRpZEZpbmlzaERvY3VtZW50TG9hZDp3cmFwcGVyKG5hdmlnYXRpb24pXTsKIH0KQEAg
LTkwMCw3ICs5MDAsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
ZGlkRmluaXNoTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZpZ2F0
aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
YXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50
bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBo
ZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdo
IHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZp
ZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246d3JhcHBl
cihuYXZpZ2F0aW9uKV07CiB9CkBAIC05MTYsNyArOTE2LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQ
cm94eSYKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxs
IGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91
Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBu
YXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBz
b21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAgIGF1
dG8gZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIgPSBjcmVhdGVFcnJvcldpdGhSZWNvdmVyeUF0
dGVtcHRlcihtX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcsIHdlYkZyYW1lUHJveHksIGVycm9y
KTsKICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvclVzZXJJbmZvKQpAQCAtOTM0LDcgKzkz
NCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdh
dGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRo
YXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJv
IGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwg
YnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlLgogCiAgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25E
ZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1fbmF2
aWdhdGlvblN0YXRlLm1fd2ViVmlldyBuYXZpZ2F0aW9uOndyYXBwZXIobmF2aWdhdGlvbikgZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbjp0b1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUobmF2
aWdhdGlvblR5cGUpXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuY3BwCmluZGV4IGI0ODI3NzI5ZDcyNDIxNTJlYjQ3NTE2YjgwZTRkYTA3
NWFmYjc1M2UuLjM1NjIzNTU1N2E3ZWM3ZmM0NmEzZGFhMzVlN2M4ZDk4OTI2ZTBhMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApA
QCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1h
aW5GcmFtZUxvYWRUZXJtaW5hbFN0YXRlKCkKICAgICBpZiAoIW1fc25hcHNob3RSZW1vdmFsVHJh
Y2tlci5ldmVudE9jY3VycmVkKFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6Ok1haW5GcmFtZUxvYWQp
KQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBDb21pbmcgYmFjayBmcm9tIHRoZSBwYWdlIGNh
Y2hlIHdpbGwgcmVzdWx0IGluIGdldHRpbmcgYSBsb2FkIGV2ZW50LCBidXQgbm8gZmlyc3Qgdmlz
dWFsbHkgbm9uLWVtcHR5IGxheW91dC4KKyAgICAvLyBDb21pbmcgYmFjayBmcm9tIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUgd2lsbCByZXN1bHQgaW4gZ2V0dGluZyBhIGxvYWQgZXZlbnQsIGJ1dCBu
byBmaXJzdCB2aXN1YWxseSBub24tZW1wdHkgbGF5b3V0LgogICAgIC8vIFdlYkNvcmUgY29uc2lk
ZXJzIGEgbG9hZGVkIGRvY3VtZW50IGVub3VnaCB0byBiZSBjb25zaWRlcmVkIHZpc3VhbGx5IG5v
bi1lbXB0eSwgc28gdGhhdCdzIGdvb2QKICAgICAvLyBlbm91Z2ggZm9yIHVzIHRvby4KICAgICBt
X3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIuY2FuY2VsT3V0c3RhbmRpbmdFdmVudChTbmFwc2hvdFJl
bW92YWxUcmFja2VyOjpWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGIzNzI1NThmZWM3NDBlOTBmMzE3ZmQ3MmQ4OWMw
YTk4ZTYzZmViNWYuLjJjYzk2OTM2YzcwZDNiYjkzMzljZmJmYTUxOGIyN2RkZWZmYmJmY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODE1LDcgKzgxNSw3
IEBAIFdlYkJhY2tGb3J3YXJkQ2FjaGUmIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRDYWNoZSgp
IGNvbnN0CiAKIGJvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRVc2VCYWNrRm9yd2FyZENhY2hlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9wcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgpICYmIGJh
Y2tGb3J3YXJkQ2FjaGUoKS5jYXBhY2l0eSgpID4gMDsKKyAgICByZXR1cm4gbV9wcmVmZXJlbmNl
cy0+dXNlc0JhY2tGb3J3YXJkQ2FjaGUoKSAmJiBiYWNrRm9yd2FyZENhY2hlKCkuY2FwYWNpdHko
KSA+IDA7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBzdGQ6OnVu
aXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdlYkZyYW1l
UHJveHk+JiYgbWFpbkZyYW1lKQpAQCAtMTU2NywxMiArMTU2NywxMiBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFk
ZGVkLCBWZWN0bwogICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRDYW5Hb0ZvcndhcmQodHJhbnNhY3Rp
b24sIG1fYmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShjb25zdCBCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyJiBpdGVtSUQsIGJvb2wgaW5QYWdlQ2FjaGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6
d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKGNvbnN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXImIGl0ZW1JRCwgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUpCiB7CiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIAogICAgIGlmIChhdXRvKiBpdGVtID0g
bV9iYWNrRm9yd2FyZExpc3QtPml0ZW1Gb3JJRChpdGVtSUQpKQotICAgICAgICBtX25hdmlnYXRp
b25DbGllbnQtPndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSgqdGhpcywgKml0ZW0sIGluUGFn
ZUNhY2hlKTsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW0oKnRoaXMsICppdGVtLCBpbkJhY2tGb3J3YXJkQ2FjaGUpOwogfQogCiBib29sIFdl
YlBhZ2VQcm94eTo6c2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pCkBAIC00MDgzLDcgKzQwODMsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmCiAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0
aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUg
bmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0
IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247
CiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAg
bmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsK
QEAgLTQxNTAsNyArNDE1MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8CiAgICAgTUVTU0FH
RV9DSEVDSyhwcm9jZXNzLCBmcmFtZSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocHJvY2Vzcywg
cmVxdWVzdC51cmwoKSk7CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sg
dGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHpl
cm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHpl
cm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhy
b3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+
IG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uSUQgPyBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwogICAgIGlmIChuYXZpZ2F0aW9uKQogICAgICAgICBu
YXZpZ2F0aW9uLT5hcHBlbmRSZWRpcmVjdGlvblVSTChyZXF1ZXN0LnVybCgpKTsKQEAgLTQyNDQs
NyArNDI0NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwCiAgICAgICAgICAgICBhdXRvbWF0
aW9uU2Vzc2lvbi0+bmF2aWdhdGlvbk9jY3VycmVkRm9yRnJhbWUoKmZyYW1lKTsKICAgICB9CiAK
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQg
aXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdh
dGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1l
c3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3Mg
Y3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAg
aWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdh
dGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLnRha2VOYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CkBA
IC00MzE5LDcgKzQzMTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZwogICAgIFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdF
X0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBtZXNz
YWdlIGNoZWNrIHRoYXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1
cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUu
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBtZXNzYWdlIGNoZWNrIHRoYXQgbmF2aWdhdGlvbklE
IGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmln
YXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBSZWZQdHI8QVBJOjpO
YXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBu
YXZpZ2F0aW9uSUQgJiYgKG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCkpKSB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
QEAgLTQ0MzYsNyArNDQzNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0CiAgICAgICAgICAg
ICBhdXRvbWF0aW9uU2Vzc2lvbi0+ZG9jdW1lbnRMb2FkZWRGb3JGcmFtZSgqZnJhbWUpOwogICAg
IH0KIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRp
b25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBu
YXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQg
aXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsK
ICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBu
YXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpA
QCAtNDQ1NSw3ICs0NDU1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWcKICAgICBXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FH
RV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVz
c2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBj
dXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hl
LgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25J
RCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYg
bmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2
aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDUwMCw3ICs0NTAwLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXQKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBu
b3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9u
cyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2Fn
ZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJy
ZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAo
ZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9u
ID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDU0Myw3
ICs0NTQzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWkKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgZnJhbWUpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKG1fcHJvY2VzcywgdXJsKTsK
IAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25J
RCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
bWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQn
cyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2Zv
cndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZp
Z2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3ODVjYzczYzBlNWM2ZDVkNThm
Yzc4ZGFlMTU0NWJiMTQyMTNhODk4Li5jNmE0ZmRjZmEzNWVjYjU0MTI5YTk3YjQ1MDg4YTJmYzEw
NDczNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTU4LDcg
KzU1OCw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb1RvQmFja0Zv
cndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKICAgICB2b2lkIHRyeVJlc3RvcmVT
Y3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9yPFJlZjxXZWJCYWNrRm9yd2FyZExp
c3RJdGVtPj4mJiByZW1vdmVkKTsKLSAgICB2b2lkIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgYm9vbCBpblBhZ2VD
YWNoZSk7CisgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oY29uc3QgV2ViQ29y
ZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlKTsK
IAogICAgIGJvb2wgc2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDMwNDNlY2U0ZTg1MTkyZjFmYzAyOTg1YWE3
ZDY5MWU3MDIzZDExN2UuLjdiOWZlMjA4NDJjN2QwODhlNDc4NDJiMGFiYzQxMWZhNzczY2JjMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTIzMCw3ICsyMzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJh
Y2tGb3J3YXJkQmFja0xpc3RDb3VudCgpIC0+ICh1aW50MzJfdCBjb3VudCkgU3luY2hyb25vdXMK
ICAgICBCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQoKSAtPiAodWludDMyX3QgY291bnQpIFN5
bmNocm9ub3VzCiAgICAgQmFja0ZvcndhcmRDbGVhcigpCi0gICAgV2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGl0ZW1J
RCwgYm9vbCBpblBhZ2VDYWNoZSkKKyAgICBXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oc3Ry
dWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgaXRlbUlELCBib29sIGluQmFj
a0ZvcndhcmRDYWNoZSkKIAogICAgICMgVW5kby9SZWRvIG1lc3NhZ2VzCiAgICAgUmVnaXN0ZXJF
ZGl0Q29tbWFuZEZvclVuZG8odWludDY0X3QgY29tbWFuZElELCBTdHJpbmcgbGFiZWwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYzA2ZDZjNmI3N2E3
NGVlN2Q5MzliNzU4ZTAxZmNhZTZmY2E2ODEwNy4uMjc4ZTRjNzNmYmRlM2MwOGVmZWRhZjEyMzc4
OTAwYjE5YmY2MDVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtMTU3Miw3ICsxNTcyLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJV
UkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYKIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6dXBkYXRlQmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KCkKIHsKLSAg
ICBpZiAoIW1fY29uZmlndXJhdGlvbi0+dXNlc1BhZ2VDYWNoZSgpKQorICAgIGlmICghbV9jb25m
aWd1cmF0aW9uLT51c2VzQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICB1bnNpZ25lZCBkdW1teSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uY3BwCmluZGV4IGQ4ZTNhOWYyMzE4N2VmYjNiNWIwNzY0YTE0YjEy
ZDVlOGM1MGIyMDUuLjc3OTg3ODIzMWY5Yzg0MDU1NTRmNGNhYTJjNzE3N2I0ODQ1ZDkxZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3Bw
CkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNUYXJn
ZXRJdGVtKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1ib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5QYWdlQ2FjaGUo
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCitib29sIFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbUlzSW5CYWNrRm9yd2FyZENhY2hlKFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbVJlZiBpdGVtUmVmKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaAppbmRleCBmMDBlYWQ0NjY2
MTk4OTU3NWJjMmI5ZGU3YWM5ZDliMjFkNTU3ZWE2Li5jOWE2MDM1MWY2NWY4NjlmNDI5MWQ2ODUy
YjA3OGE4ZmVmZTUwMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0Zv
cndhcmRMaXN0SXRlbS5oCkBAIC00NCw3ICs0NCw3IEBAIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUoV0tCdW5kbGVCYWNrRm9yd2FyZExp
CiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRh
cmdldChXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVD
QVRFRDsKIFdLX0VYUE9SVCBib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzVGFyZ2V0
SXRlbShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVD
QVRFRDsKIAotV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJblBh
Z2VDYWNoZShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQ
UkVDQVRFRDsKK1dLX0VYUE9SVCBib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5C
YWNrRm9yd2FyZENhY2hlKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKSBXS19D
X0FQSV9ERVBSRUNBVEVEOwogV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJ
dGVtSGFzQ2FjaGVkUGFnZUV4cGlyZWQoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0
ZW0pIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKIFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxl
QmFja0ZvcndhcmRMaXN0SXRlbUNvcHlDaGlsZHJlbihXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVDQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcAppbmRleCAwZWNhNGMxZDMyMGNlOTBkZWMxY2VhODM1NGZlMjI2ZTcwZjQ0NTMy
Li4wMjY5NWQzZWI4OWY1ZTY0MDkzODQxNDI0OWU3ZjVjOWY4MmFjNDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVy
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nl
c3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgQmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlIHRvQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKGNvbnN0IFdlYkNvcmU6Okhp
c3RvcnlJdGVtJgogICAgIHN0YXRlLnBhZ2VTdGF0ZS5tYWluRnJhbWVTdGF0ZSA9IHRvRnJhbWVT
dGF0ZShoaXN0b3J5SXRlbSk7CiAgICAgc3RhdGUucGFnZVN0YXRlLnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgPSBoaXN0b3J5SXRlbS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCk7
CiAgICAgc3RhdGUucGFnZVN0YXRlLnNlc3Npb25TdGF0ZU9iamVjdCA9IGhpc3RvcnlJdGVtLnN0
YXRlT2JqZWN0KCk7Ci0gICAgc3RhdGUuaGFzQ2FjaGVkUGFnZSA9IGhpc3RvcnlJdGVtLmlzSW5Q
YWdlQ2FjaGUoKTsKKyAgICBzdGF0ZS5oYXNDYWNoZWRQYWdlID0gaGlzdG9yeUl0ZW0uaXNJbkJh
Y2tGb3J3YXJkQ2FjaGUoKTsKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IGNjZWQxMWZhYmRlMWViYTkyYmQ2YzdlMGNiMTZiNTc5OTcz
ZDNhNGMuLjc4ZGE0N2NhOWUxOWNmZTdmZDZlYzcxY2ZhZGU3OTZlZTVkOTU2YWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpXZWJGcmFtZUxvYWRlckNsaWVudCgpCiAgICAgLCBtX2hhc1NlbnRSZXNwb25z
ZVRvUGx1Z2luVmlldyhmYWxzZSkKICAgICAsIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbihm
YWxzZSkKICAgICAsIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIoZmFsc2UpCi0gICAg
LCBtX2ZyYW1lQ2FtZUZyb21QYWdlQ2FjaGUoZmFsc2UpCisgICAgLCBtX2ZyYW1lQ2FtZUZyb21C
YWNrRm9yd2FyZENhY2hlKGZhbHNlKQogewogfQogCkBAIC0xMjA2LDcgKzEyMDYsNyBAQCBib29s
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0m
IGl0ZW0pIGNvbnN0CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAg
ICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVt
LmlkZW50aWZpZXIoKSwgaXRlbS5pc0luUGFnZUNhY2hlKCkpKTsKKyAgICB3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVt
LmlkZW50aWZpZXIoKSwgaXRlbS5pc0luQmFja0ZvcndhcmRDYWNoZSgpKSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTE0NjUsNyArMTQ2NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopCiB7
CiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBtX2ZyYW1lLT5jb3JlRnJh
bWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKTsKICAgICBtX2ZyYW1l
SGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyID0gbV9mcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBtX2Zy
YW1lLT5wYWdlKCktPnNob3VsZFVzZUN1c3RvbUNvbnRlbnRQcm92aWRlckZvclJlc3BvbnNlKHJl
c3BvbnNlKTsKLSAgICBtX2ZyYW1lQ2FtZUZyb21QYWdlQ2FjaGUgPSB0cnVlOworICAgIG1fZnJh
bWVDYW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUgPSB0cnVlOwogfQogCiB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKQEAgLTE0ODcsNyAr
MTQ4Nyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRl
ZEZvck5ld1BhZ2UoKQogCiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBt
X2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2Uo
KTsKICAgICBtX2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyID0gaXNNYWluRnJhbWUgJiYg
d2ViUGFnZS0+c2hvdWxkVXNlQ3VzdG9tQ29udGVudFByb3ZpZGVyRm9yUmVzcG9uc2UocmVzcG9u
c2UpOwotICAgIG1fZnJhbWVDYW1lRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworICAgIG1fZnJhbWVD
YW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKIAogICAgIFNjcm9sbGJhck1vZGUgZGVm
YXVsdFNjcm9sbGJhck1vZGUgPSBzaG91bGRIaWRlU2Nyb2xsYmFycyA/IFNjcm9sbGJhckFsd2F5
c09mZiA6IFNjcm9sbGJhckF1dG87CiAKQEAgLTE1MzMsOSArMTUzMyw5IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogI2VuZGlm
CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tUGFnZUNhY2hl
KCkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRD
YWNoZSgpCiB7Ci0gICAgbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgICBtX2Zy
YW1lQ2FtZUZyb21CYWNrRm9yd2FyZENhY2hlID0gdHJ1ZTsKIH0KIAogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sIHZhbHVlKQpAQCAtMTU5
Niw3ICsxNTk2LDcgQEAgUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0
ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW0KICAgICBwYXJhbWV0ZXJzLnZh
bHVlcyA9IHBhcmFtVmFsdWVzOwogICAgIHBhcmFtZXRlcnMubWltZVR5cGUgPSBtaW1lVHlwZTsK
ICAgICBwYXJhbWV0ZXJzLmlzRnVsbEZyYW1lUGx1Z2luID0gbG9hZE1hbnVhbGx5OwotICAgIHBh
cmFtZXRlcnMuc2hvdWxkVXNlTWFudWFsTG9hZGVyID0gcGFyYW1ldGVycy5pc0Z1bGxGcmFtZVBs
dWdpbiAmJiAhbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlOworICAgIHBhcmFtZXRlcnMuc2hvdWxk
VXNlTWFudWFsTG9hZGVyID0gcGFyYW1ldGVycy5pc0Z1bGxGcmFtZVBsdWdpbiAmJiAhbV9mcmFt
ZUNhbWVGcm9tQmFja0ZvcndhcmRDYWNoZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBwYXJh
bWV0ZXJzLmxheWVySG9zdGluZ01vZGUgPSBtX2ZyYW1lLT5wYWdlKCktPmxheWVySG9zdGluZ01v
ZGUoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhZmExN2E0OTY3
Y2ZjMDNhNmM5NDhkYjk5Y2U4MDE0MjVkZWM0N2YxLi42MTFmY2I4NmRiZTYzYWQ3MzNiMTIwMTc1
NmExNTJkZGNiOTM2MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNzEsNyAr
NzEsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIGZpbmFsOworICAgIGJv
b2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogI2Vu
ZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZvck5vbkhUTUwoKSBmaW5hbDsKICAgICAKQEAgLTIw
Niw3ICsyMDYsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21t
aXR0ZWRGb3JOZXdQYWdlKCkgZmluYWw7CiAKLSAgICB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNh
Y2hlKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBm
aW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbDsK
IApAQCAtMjgxLDcgKzI4MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25z
ZVRvUGx1Z2luVmlldzsKICAgICBib29sIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbjsKICAg
ICBib29sIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXI7Ci0gICAgYm9vbCBtX2ZyYW1l
Q2FtZUZyb21QYWdlQ2FjaGU7CisgICAgYm9vbCBtX2ZyYW1lQ2FtZUZyb21CYWNrRm9yd2FyZENh
Y2hlOwogICAgIGJvb2wgbV91c2VJY29uTG9hZGluZ0NsaWVudCB7IGZhbHNlIH07CiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBPcHRpb25hbDxGcmFtZVNwZWNpZmlj
U3RvcmFnZUFjY2Vzc0lkZW50aWZpZXI+IG1fZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVu
dGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0KaW5kZXgg
ZmNhOWJkZjA2ZWRhYTNiNDk4N2IxOTg1NGU5MzNjZTZmMzQ3NWNiMS4uOGZhZjMxZWE0YjdiMzBl
NTdkYzQ4ZWQyNjRhYzk2YWEyMTRmZGRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9h
ZGVyQ2xpZW50SU9TLm1tCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZFJlc3RvcmVGcmFtZUhpZXJhcmNoeUZvckNhY2hlZEZyYW1lKCkKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dE9u
UmVzdG9yZUZyb21QYWdlQ2FjaGUoKQorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Zm9yY2VM
YXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRl
ZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCmluZGV4IDRiYjRlMzQ0MjYyNzI1ODE4
YmQ0MDA5MGQ5ZGFlZWMwZjU2MzI5ZTUuLjJhZGQyMWJiZWU5NDlhMDhkNGJiMmMxMWY4YjY0MzFi
NTEwZWI5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zp
c2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJk
TGlzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tG
b3J3YXJkTGlzdFByb3h5LmNwcAppbmRleCBkODBkN2Y5NTdhOTYzYmQyYjlkZmI5MmJiZDk1NWI4
ZDVkNTI0NDBmLi45MTc0ZmUxZjk5YzJmYTUzYjkzZDdmOTJkZGUyZGYxZGFiZTQ1NmJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExp
c3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHkuY3BwCkBAIC0zNCwxMCArMzQsMTAgQEAKICNpbmNsdWRlICJXZWJQ
YWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRD
YWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hp
c3RvcnlDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+
CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnJlbW92ZUl0
ZW0oY29uc3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYgaXRlbUlECiAgICAgaWYgKCFpdGVt
KQogICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCku
cmVtb3ZlKCppdGVtKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUo
Kml0ZW0pOwogICAgIFdlYkNvcmU6OlBhZ2U6OmNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBhZ2Vz
KGl0ZW0uZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDA4MTc5Mjc2M2JiY2FiMzg1Y2FhMjc1YzM1MGJmNjlkNzc4ZmFjYjAu
LmRmOTYxZTQwOWM1YTgzOWFiMThjZDU1MjdlNmY4NDk2Yzg2NzkzYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TYW1wbGluZ1Byb2ZpbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJj
aGl2ZVJlc291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29tbW9uVk0uaD4KQEAgLTE5Miw3ICsx
OTMsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BpbmdMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgpAQCAtMTQ5MCwxMiArMTQ5MCwxMiBAQCB2b2lkIFdl
YlBhZ2U6OnN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoIVBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuYWRkSWZDYWNoZWFibGUoKmN1cnJlbnRI
aXN0b3J5SXRlbSwgY29yZVBhZ2UoKSkpIHsKKyAgICBpZiAoIUJhY2tGb3J3YXJkQ2FjaGU6OnNp
bmdsZXRvbigpLmFkZElmQ2FjaGVhYmxlKCpjdXJyZW50SGlzdG9yeUl0ZW0sIGNvcmVQYWdlKCkp
KSB7CiAgICAgICAgIGZhaWxlZFRvU3VzcGVuZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgLy8gUGFnZSBjYWNoZSBkb2VzIG5vdCBicmVhayB0aGUgb3BlbmVyIGxpbmsgZm9yIHRo
ZSBtYWluIGZyYW1lIChvbmx5IGRvZXMgc28gZm9yIHRoZSBzdWJmcmFtZXMpIGJlY2F1c2UgdGhl
CisgICAgLy8gQmFjay9mb3J3YXJkIGNhY2hlIGRvZXMgbm90IGJyZWFrIHRoZSBvcGVuZXIgbGlu
ayBmb3IgdGhlIG1haW4gZnJhbWUgKG9ubHkgZG9lcyBzbyBmb3IgdGhlIHN1YmZyYW1lcykgYmVj
YXVzZSB0aGUKICAgICAvLyBtYWluIGZyYW1lIGlzIG5vcm1hbGx5IHJlLXVzZWQgZm9yIHRoZSBu
YXZpZ2F0aW9uLiBIb3dldmVyLCBpbiB0aGUgY2FzZSBvZiBwcm9jZXNzLXN3YXBwaW5nLCB0aGUg
bWFpbiBmcmFtZQogICAgIC8vIGlzIG5vdyBob3N0ZWQgaW4gYW5vdGhlciBwcm9jZXNzIGFuZCB0
aGUgb25lIGluIHRoaXMgcHJvY2VzcyBpcyBpbiB0aGUgY2FjaGUuCiAgICAgaWYgKG1fbWFpbkZy
YW1lICYmIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAppbmRleCBjNjZjODA1ZDYxZTRjMjUxNmUyNjhhM2VmOTRhZmQ4OGRiNjhl
NzU4Li42YzMyYjQyN2I1ZTgxZjZlN2Y2Mzg2NzZmYmUyYjFhNTY4OGFkYTc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC04Miw2ICs4Miw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0NQVU1vbml0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmg+CkBAIC0xMDcs
NyArMTA4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci5oPgpAQCAtMzA2LDkgKzMwNiw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAg
ICAgICAgICB9CiAjZW5kaWYKIAotICAgICAgICAgICAgYXV0byBtYWludGFpblBhZ2VDYWNoZSA9
IG1faXNTdXNwZW5kaW5nID8gV2ViQ29yZTo6TWFpbnRhaW5QYWdlQ2FjaGU6OlllcyA6IFdlYkNv
cmU6Ok1haW50YWluUGFnZUNhY2hlOjpObzsKKyAgICAgICAgICAgIGF1dG8gbWFpbnRhaW5CYWNr
Rm9yd2FyZENhY2hlID0gbV9pc1N1c3BlbmRpbmcgPyBXZWJDb3JlOjpNYWludGFpbkJhY2tGb3J3
YXJkQ2FjaGU6OlllcyA6IFdlYkNvcmU6Ok1haW50YWluQmFja0ZvcndhcmRDYWNoZTo6Tm87CiAg
ICAgICAgICAgICBhdXRvIG1haW50YWluTWVtb3J5Q2FjaGUgPSBtX2lzU3VzcGVuZGluZyAmJiBt
X2hhc1N1c3BlbmRlZFBhZ2VQcm94eSA/IFdlYkNvcmU6Ok1haW50YWluTWVtb3J5Q2FjaGU6Olll
cyA6IFdlYkNvcmU6Ok1haW50YWluTWVtb3J5Q2FjaGU6Ok5vOwotICAgICAgICAgICAgV2ViQ29y
ZTo6cmVsZWFzZU1lbW9yeShjcml0aWNhbCwgc3luY2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hl
LCBtYWludGFpbk1lbW9yeUNhY2hlKTsKKyAgICAgICAgICAgIFdlYkNvcmU6OnJlbGVhc2VNZW1v
cnkoY3JpdGljYWwsIHN5bmNocm9ub3VzLCBtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUsIG1haW50
YWluTWVtb3J5Q2FjaGUpOwogICAgICAgICB9KTsKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIu
c2V0U2hvdWxkVXNlUGVyaW9kaWNNZW1vcnlNb25pdG9yKHRydWUpOwpAQCAtNDcxLDE1ICs0NzEs
NiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcAogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpOwogfQogCi1ib29sIFdlYlByb2Nlc3M6Omhhc1BhZ2VSZXF1aXJpbmdQYWdlQ2Fj
aGVXaGlsZVN1c3BlbmRlZCgpIGNvbnN0Ci17Ci0gICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdl
TWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChwYWdlLT5pc1N1c3BlbmRlZCgpKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBX
ZWJQcm9jZXNzOjphcmVBbGxQYWdlc1N1c3BlbmRlZCgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRv
JiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKSB7CkBAIC02MzEsMTMgKzYyMiwxMyBAQCB2b2lk
IFdlYlByb2Nlc3M6OnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVu
c2lnbmVkIGNhY2hlTWluRGVhZENhcGFjaXR5ID0gMDsKICAgICB1bnNpZ25lZCBjYWNoZU1heERl
YWRDYXBhY2l0eSA9IDA7CiAgICAgU2Vjb25kcyBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVy
dmFsOwotICAgIHVuc2lnbmVkIHBhZ2VDYWNoZVNpemUgPSAwOwotICAgIGNhbGN1bGF0ZU1lbW9y
eUNhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgY2FjaGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRD
YXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50
ZXJ2YWwsIHBhZ2VDYWNoZVNpemUpOworICAgIHVuc2lnbmVkIGJhY2tGb3J3YXJkQ2FjaGVTaXpl
ID0gMDsKKyAgICBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKGNhY2hlTW9kZWwsIGNhY2hlVG90
YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBk
ZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLCBiYWNrRm9yd2FyZENhY2hlU2l6ZSk7CiAK
ICAgICBhdXRvJiBtZW1vcnlDYWNoZSA9IE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKTsKICAgICBt
ZW1vcnlDYWNoZS5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERl
YWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKICAgICBtZW1vcnlDYWNoZS5zZXREZWFk
RGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2
YWwpOwotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShwYWdlQ2FjaGVTaXpl
KTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5zZXRNYXhTaXplKGJhY2tGb3J3
YXJkQ2FjaGVTaXplKTsKIAogICAgIHBsYXRmb3JtU2V0Q2FjaGVNb2RlbChjYWNoZU1vZGVsKTsK
IH0KQEAgLTEzMDksNyArMTMwMCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURh
dGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywKICAgICBVTlVT
RURfUEFSQU0obW9kaWZpZWRTaW5jZSk7CiAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewotICAgICAgICBQYWdlQ2FjaGU6
OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok5vbmUpOworICAg
ICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVu
aW5nUmVhc29uOjpOb25lKTsKICAgICAgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLmV2aWN0
UmVzb3VyY2VzKHNlc3Npb25JRCgpKTsKIAogICAgICAgICBDcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlOjpzaW5nbGV0b24oKS5jbGVhcigpOwpAQCAtMTc3Niw3ICsxNzY3LDcgQEAgYm9v
bCBXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSgpIGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vz
czo6c2V0QmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KHVuc2lnbmVkIGNhcGFjaXR5KQogewotICAg
IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShjYXBhY2l0eSk7CisgICAgQmFja0Zv
cndhcmRDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShjYXBhY2l0eSk7CiB9CiAKIHZvaWQg
V2ViUHJvY2Vzczo6Y2xlYXJDYWNoZWRQYWdlKEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFj
a0ZvcndhcmRJdGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKQEAgLTE3ODUsNyArMTc3Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJDYWNoZWRQ
YWdlKEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIENvCiAgICAg
aWYgKCFpdGVtKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAotICAgIFBh
Z2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKCppdGVtKTsKKyAgICBCYWNrRm9yd2FyZENhY2hl
OjpzaW5nbGV0b24oKS5yZW1vdmUoKml0ZW0pOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGRkNjBlOGQ4MWUyZmFl
MTI2ZjA0NTk1N2MxY2JjNmUyMzllZGE5OGIuLjhjMjQ2YWZhNzdmZTE1ZmFmOTk0ZTA4OWU3N2Yx
M2YzZTUyNjk1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzkw
LDcgKzM5MCw2IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRBY2tub3dsZWRnZVdo
ZW5SZWFkeVRvU3VzcGVuZCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIGFjdHVhbFByZXBhcmVUb1N1
c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQpOwogCi0gICAgYm9vbCBo
YXNQYWdlUmVxdWlyaW5nUGFnZUNhY2hlV2hpbGVTdXNwZW5kZWQoKSBjb25zdDsKICAgICBib29s
IGFyZUFsbFBhZ2VzU3VzcGVuZGVkKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuc3VyZUF1dG9tYXRp
b25TZXNzaW9uUHJveHkoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWRlbnRpZmllcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCmluZGV4
IDk4OTc0NTYzN2RhM2MxNGQ3OGI5NzJjYTQ1NTYwYzk0YjMwMDk3NmUuLjJkYjczOGZmMDUzZDlm
NzU3MDBiNDM2ZDE5ZWI5ZmQ2OGI2MDdhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCkBAIC04Miw3ICs4Miw3IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIFdlYk1lZGlhQ2FwdHVyZVR5cGUpIHsKIC0gKHZvaWQpd2Vi
VmlldzooV2ViVmlldyAqKXdlYlZpZXcgZWxlbWVudERpZEZvY3VzTm9kZTooRE9NTm9kZSAqKW5v
ZGU7CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGVsZW1lbnREaWRCbHVyTm9k
ZTooRE9NTm9kZSAqKW5vZGU7CiAKLS8vIFBhZ2VDYWNoZSBzdXBwb3J0CisvLyBCYWNrRm9yd2Fy
ZENhY2hlIHN1cHBvcnQKIC0gKHZvaWQpd2ViVmlld0RpZFJlc3RvcmVGcm9tUGFnZUNhY2hlOihX
ZWJWaWV3ICopd2ViVmlldzsKIAogLSAoTlNWaWV3ICopd2ViVmlldzooV2ViVmlldyAqKXdlYlZp
ZXcgcGx1Z0luVmlld1dpdGhBcmd1bWVudHM6KE5TRGljdGlvbmFyeSAqKWFyZ3VtZW50cyBmcm9t
UGx1Z0luUGFja2FnZTooV2ViUGx1Z2luUGFja2FnZSAqKXBhY2thZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCmluZGV4IGI3MDk1
YTdkZTI4NjlmMWY2ZjU0ZWY1OTlkNThhYTNmMWRhZTI5ZDQuLmQwNTRhMWI5NGQwMDE4ODRhYzQz
ODQ5YTE0N2VlOTZjZDFiMzdjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZExpc3QuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgQmFja0ZvcndhcmRMaXN0OjphZGRJdGVt
KFJlZjxIaXN0b3J5SXRlbT4mJiBuZXdJdGVtKQogICAgICAgICB3aGlsZSAobV9lbnRyaWVzLnNp
emUoKSA+IHRhcmdldFNpemUpIHsKICAgICAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9
IG1fZW50cmllcy50YWtlTGFzdCgpOwogICAgICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0
ZW0ucHRyKCkpOwotICAgICAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRl
bSk7CisgICAgICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRl
bSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBCYWNrRm9yd2Fy
ZExpc3Q6OmFkZEl0ZW0oUmVmPEhpc3RvcnlJdGVtPiYmIG5ld0l0ZW0pCiAgICAgICAgIFJlZjxI
aXN0b3J5SXRlbT4gaXRlbSA9IFdURk1vdmUobV9lbnRyaWVzWzBdKTsKICAgICAgICAgbV9lbnRy
aWVzLnJlbW92ZSgwKTsKICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwot
ICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFj
a0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgICAgICAtLW1fY3Vy
cmVudDsKICAgICB9CiAKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6
c2V0Q2FwYWNpdHkoaW50IHNpemUpCiAgICAgd2hpbGUgKHNpemUgPCBzdGF0aWNfY2FzdDxpbnQ+
KG1fZW50cmllcy5zaXplKCkpKSB7CiAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9IG1f
ZW50cmllcy50YWtlTGFzdCgpOwogICAgICAgICBtX2VudHJ5SGFzaC5yZW1vdmUoaXRlbS5wdHIo
KSk7Ci0gICAgICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOworICAgICAg
ICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CiAgICAgfQogCiAg
ICAgaWYgKCFzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9y
eS9XZWJCYWNrRm9yd2FyZExpc3QubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5
L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQppbmRleCBkZjYyZGE5NjZjNzlkM2E2M2ExZmUwNjNiMTA1
MDJkODNjZjg5MDdiLi4xOGYwMTNhMGE4NzViZDM2ZTg5NTU4NjYzNGFiN2Q4YjBhOGIwMmI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJk
TGlzdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3
YXJkTGlzdC5tbQpAQCAtNDAsOCArNDAsOCBAQAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV2ViVmlld1ByaXZhdGUuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0lu
aXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9QYWdl
Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUv
VGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAg
LTMzOSw3ICszMzksNyBAQCAtICh2b2lkKXNldFBhZ2VDYWNoZVNpemU6KE5TVUludGVnZXIpc2l6
ZQogCiAtIChOU1VJbnRlZ2VyKXBhZ2VDYWNoZVNpemUKIHsKLSAgICByZXR1cm4gW2NvcmUoc2Vs
ZiktPndlYlZpZXcoKSB1c2VzUGFnZUNhY2hlXSA/IFdlYkNvcmU6OlBhZ2VDYWNoZTo6c2luZ2xl
dG9uKCkubWF4U2l6ZSgpIDogMDsKKyAgICByZXR1cm4gW2NvcmUoc2VsZiktPndlYlZpZXcoKSB1
c2VzUGFnZUNhY2hlXSA/IFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLm1h
eFNpemUoKSA6IDA7CiB9CiAKIC0gKGludCliYWNrTGlzdENvdW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCBjN2MwMjdiMzQw
ZDAwYWMyZjAyZTg3OThmMTRhNjJhY2U3ODU4ZWVlLi5hOGQzYmMyMDY4ZjJjNzYzZjk1NTdkODFj
N2Y1ZGRmMGY1YjdlMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0
b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rv
cnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTQzLDkgKzQzLDkgQEAKICNpbXBvcnQgIldlYlBsdWdp
bkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBvcnQgPEph
dmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFj
a0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9JbWFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC01OTgsOSArNTk4LDkgQEAg
LSAodm9pZClfc2V0U2Nyb2xsUG9pbnQ6KENHUG9pbnQpc2Nyb2xsUG9pbnQKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLS0gKEJPT0wpX2lzSW5QYWdlQ2FjaGUKKy0gKEJPT0wp
X2lzSW5CYWNrRm9yd2FyZENhY2hlCiB7Ci0gICAgcmV0dXJuIGNvcmUoX3ByaXZhdGUpLT5pc0lu
UGFnZUNhY2hlKCk7CisgICAgcmV0dXJuIGNvcmUoX3ByaXZhdGUpLT5pc0luQmFja0ZvcndhcmRD
YWNoZSgpOwogfQogCiAtIChCT09MKV9oYXNDYWNoZWRQYWdlRXhwaXJlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1Qcml2YXRlLmgK
aW5kZXggOWQwYWE4ZDE4YWQwOTYxNjgwN2VlMjUyNDkyOGZjYTZiZmY5ODUzOS4uYmE1ZDU1Y2M3
NDRkZTk0NjM2YzI1NmRkYTk5MjU1OTFjMDkyMmU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oCkBAIC03Nyw3
ICs3Nyw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViVmlld3BvcnRGaXRDb3ZlclZhbHVlOwogLSAo
dm9pZClfc2V0U2Nyb2xsUG9pbnQ6KENHUG9pbnQpc2Nyb2xsUG9pbnQ7CiAjZW5kaWYKIAotLSAo
Qk9PTClfaXNJblBhZ2VDYWNoZTsKKy0gKEJPT0wpX2lzSW5CYWNrRm9yd2FyZENhY2hlOwogLSAo
Qk9PTClfaGFzQ2FjaGVkUGFnZUV4cGlyZWQ7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYkNhY2hlLm1tCmluZGV4IGI1MGIyMWM4NWJjZGJmNzI1OTk0MGM0MzZiMGJlMmUz
NjQ0OGZmY2EuLjUxMzdlNDFjMjQyZmNhNTVjNGEwOTRiNjQzMzczZTllMGE2ZmVjMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJDYWNoZS5tbQpAQCAtNDYsOSArNDYsOSBAQAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0ICJNZW1vcnlNZWFzdXJlLmgiCiAjaW1w
b3J0ICJXZWJGcmFtZUludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2Fj
aGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ2FjaGVkSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RnJhbWUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVUaHJlYWRSdW4uaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQppbmRleCBjODY4NGM0NmM1YjBkMjE1MmJl
OWNhYzFkNzgyYzRlNGZiMGIwNDBjLi40NjY2NjUzNDJhMWVhMzlmNzcwYjc2MDg0YjRiYjJjYzM4
ZTUzYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNvcmVT
dGF0aXN0aWNzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ29yZVN0
YXRpc3RpY3MubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwu
aCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvTWVtb3J5U3RhdGlzdGljcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENh
Y2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zv
bnRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgpAQCAtNDAsNyArNDEsNiBAQAog
I2ltcG9ydCA8V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3ND
b250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1BhZ2VDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ29uc29sZUNsaWVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
VHJlZUFzVGV4dC5oPgpAQCAtMjI0LDEyICsyMjQsMTIgQEAgKyAodm9pZClyZXR1cm5GcmVlTWVt
b3J5VG9TeXN0ZW0KIAogKyAoaW50KWNhY2hlZFBhZ2VDb3VudAogewotICAgIHJldHVybiBQYWdl
Q2FjaGU6OnNpbmdsZXRvbigpLnBhZ2VDb3VudCgpOworICAgIHJldHVybiBCYWNrRm9yd2FyZENh
Y2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKIH0KIAogKyAoaW50KWNhY2hlZEZyYW1lQ291
bnQKIHsKLSAgICByZXR1cm4gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5mcmFtZUNvdW50KCk7Cisg
ICAgcmV0dXJuIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLmZyYW1lQ291bnQoKTsKIH0K
IAogLy8gRGVwcmVjYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYzIxYmRjZjcx
MDYzOTY5ZTExY2JkYmIwYTViOTNlNWJhYTg2ZDgzNC4uYjRlZTllNjA2YzU3ZmNmNTcyZTExMzg2
MzliYzE0NTM0ZjM3ODkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC02OSw3ICs2
OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqKSBmaW5hbDsKICAgICBib29sIGhhc0hUTUxWaWV3KCkgY29uc3QgZmluYWw7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3Jl
RnJvbVBhZ2VDYWNoZSgpIGZpbmFsOworICAgIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogI2VuZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZv
ck5vbkhUTUwoKSBmaW5hbDsKIApAQCAtMTg0LDcgKzE4NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
ICAgICB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKSBmaW5hbDsKIAotICAg
IHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlc3Rv
cmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogCiAgICAgdm9pZCBkaXNwYXRjaERpZEJl
Y29tZUZyYW1lc2V0KGJvb2wpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmlu
ZGV4IDJlMzUzNzU1NjgxZjM5NWQzOWNjNjkxZjdjYzcwZTVlNWIwMDk0ODQuLmEzZTk4MzM4YjY0
ODllYWM5NmI3YzFkMDk3OWQyNTU2MWZhMGM1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCkBAIC0yMzksMTAgKzIzOSwxMCBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpoYXNI
VE1MVmlldygpIGNvbnN0CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6Zm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkKK2Jv
b2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3
YXJkQ2FjaGUoKQogewogICAgIE5TVmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqdmlldyA9IFttX3dl
YkZyYW1lLT5fcHJpdmF0ZS0+d2ViRnJhbWVWaWV3IGRvY3VtZW50Vmlld107Ci0gICAgLy8gVGhp
cyBnZXRzIGNhbGxlZCB0byBsYXkgb3V0IGEgcGFnZSByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNh
Y2hlLgorICAgIC8vIFRoaXMgZ2V0cyBjYWxsZWQgdG8gbGF5IG91dCBhIHBhZ2UgcmVzdG9yZWQg
ZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRpbWlu
ZyBwcm9ibGVtcyB3aXRoIFVJS2l0LCByZXN0b3JlIGZpeGVkIAogICAgIC8vIGxheW91dCBzZXR0
aW5ncyBoZXJlLgogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUu
Z2V0KCkpOwpAQCAtMTQ5NSw3ICsxNDk1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgfQogfQogCi12b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKQogewogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93
ZWJGcmFtZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0b3JlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5tbQppbmRleCAwODQ0YjM5ZDM2
NzA1NTNhMDkzMjI3MWNlZGI3MzkwNzBhMTg1YzhiLi5kNTdkY2M1ZDUxMGY5NDA3OTFhYTcwMDE0
NWNmOTQ1M2M1NzUwMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUubW0KQEAgLTMwLDcgKzMw
LDcgQEAKICNpbXBvcnQgIldlYkhpc3RvcnlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViSGlzdG9y
eUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgPFdlYkNv
cmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNp
bXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KaW5kZXggYmM3NzRkNzY1NjE2YTVhOGM0YTMwMjkxNWRhNzliYjM1MzkzYjAzNy4uYzJl
ZmI3N2MzZTgzNDEzZjVhYzNiN2MxOWIwNWJhNWM0YWQ5ZTM3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0zMzQyLDcgKzMzNDIsNyBA
QCAtICh2b2lkKWxheW91dFRvTWluaW11bVBhZ2VXaWR0aDooZmxvYXQpbWluUGFnZUxvZ2ljYWxX
aWR0aCBoZWlnaHQ6KGZsb2F0KW1pblBhZwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoY29y
ZUZyYW1lLT5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSkKKyAgICAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+YmFj
a0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gV2ViQ29yZTo6RG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY29yZUZyYW1lLT5kb2N1bWVu
dCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgfQpAQCAtMzg1NCw3ICszODU0LDcgQEAg
LSAodm9pZClzZXROZWVkc0xheW91dDogKEJPT0wpZmxhZwogICAgIGlmICghZmxhZykKICAgICAg
ICAgcmV0dXJuOyAvLyBUaGVyZSdzIG5vIHdheSB0byBzYXkgeW91IGRvbid0IG5lZWQgYSBsYXlv
dXQuCiAgICAgaWYgKGF1dG8qIGZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkgewotICAgICAg
ICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPnBhZ2VDYWNoZVN0
YXRlKCkgIT0gV2ViQ29yZTo6RG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgICAgICBpZiAo
ZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChhdXRvKiB2aWV3ID0gZnJhbWUtPnZpZXcoKSkK
ICAgICAgICAgICAgIHZpZXctPnNldE5lZWRzTGF5b3V0QWZ0ZXJWaWV3Q29uZmlndXJhdGlvbkNo
YW5nZSgpOwpAQCAtMzg2Nyw3ICszODY3LDcgQEAgLSAodm9pZClzZXROZWVkc1RvQXBwbHlTdHls
ZXM6IChCT09MKWZsYWcKICAgICBpZiAoIWZsYWcpCiAgICAgICAgIHJldHVybjsgLy8gVGhlcmUn
cyBubyB3YXkgdG8gc2F5IHlvdSBkb24ndCBuZWVkIGEgc3R5bGUgcmVjYWxjLgogICAgIGlmIChh
dXRvKiBmcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT5k
b2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IFdlYkNv
cmU6OkRvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVu
dCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBXZWJD
b3JlOjpEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDQ4ODZjODQ5MzE3OGViNTFlMWM5NDM4NjlmMTM5NTdmNzZlYTMyN2UuLjRlZWEzMWQ5ZDI5YmQ3
Yjk5Y2QwN2Q5MjRjYjNiMDM3NGE2MmIyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzMCw2ICsxMzAsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvSlNWYWx1ZVJlZi5oPgogI2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRVSUNv
bnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9C
YWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oPgpAQCAt
MTg1LDcgKzE4Niw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2VDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CkBAIC0yMzY3LDggKzIzNjcsOCBAQCAtICh2b2lk
KV9jbG9zZQogCiAgICAgX3ByaXZhdGUtPmdyb3VwLT5yZW1vdmVXZWJWaWV3KHNlbGYpOwogCi0g
ICAgLy8gRGVsZXRlaW5nIHRoZSBXZWJDb3JlOjpQYWdlIHdpbGwgY2xlYXIgdGhlIHBhZ2UgY2Fj
aGUgc28gd2UgY2FsbCBkZXN0cm95IG9uCi0gICAgLy8gYWxsIHRoZSBwbHVnLWlucyBpbiB0aGUg
cGFnZSBjYWNoZSB0byBicmVhayBhbnkgcmV0YWluIGN5Y2xlcy4KKyAgICAvLyBEZWxldGVpbmcg
dGhlIFdlYkNvcmU6OlBhZ2Ugd2lsbCBjbGVhciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHNvIHdl
IGNhbGwgZGVzdHJveSBvbgorICAgIC8vIGFsbCB0aGUgcGx1Zy1pbnMgaW4gdGhlIGJhY2svZm9y
d2FyZCBjYWNoZSB0byBicmVhayBhbnkgcmV0YWluIGN5Y2xlcy4KICAgICAvLyBTZWUgY29tbWVu
dCBpbiBIaXN0b3J5SXRlbTo6cmVsZWFzZUFsbFBlbmRpbmdQYWdlQ2FjaGVzKCkgZm9yIG1vcmUg
aW5mb3JtYXRpb24uCiAgICAgYXV0byogcGFnZSA9IF9wcml2YXRlLT5wYWdlOwogICAgIF9wcml2
YXRlLT5wYWdlID0gbnVsbHB0cjsKQEAgLTI5MTEsOCArMjkxMSw4IEBAIC0gKHZvaWQpX3ByZWZl
cmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdz
LnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKGNvcmUoW3ByZWZlcmVuY2VzIGVkaXRhYmxlTGlua0Jl
aGF2aW9yXSkpOwogICAgIHNldHRpbmdzLnNldFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy5zZXRET01QYXN0ZUFsbG93ZWQoW3ByZWZlcmVuY2Vz
IGlzRE9NUGFzdGVBbGxvd2VkXSk7Ci0gICAgc2V0dGluZ3Muc2V0VXNlc1BhZ2VDYWNoZShbc2Vs
ZiB1c2VzUGFnZUNhY2hlXSk7Ci0gICAgc2V0dGluZ3Muc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVn
aW5zKFtwcmVmZXJlbmNlcyBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnNdKTsKKyAgICBzZXR0aW5n
cy5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZShbc2VsZiB1c2VzUGFnZUNhY2hlXSk7CisgICAgc2V0
dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhbcHJlZmVyZW5jZXMgcGFn
ZUNhY2hlU3VwcG9ydHNQbHVnaW5zXSk7CiAgICAgc2V0dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNo
ZUV4cGlyYXRpb25JbnRlcnZhbChTZWNvbmRzIHsgW3ByZWZlcmVuY2VzIF9iYWNrRm9yd2FyZENh
Y2hlRXhwaXJhdGlvbkludGVydmFsXSB9KTsKIAogICAgIHNldHRpbmdzLnNldERldmVsb3BlckV4
dHJhc0VuYWJsZWQoW3ByZWZlcmVuY2VzIGRldmVsb3BlckV4dHJhc0VuYWJsZWRdKTsKQEAgLTQz
NTksNyArNDM1OSw3IEBAIC0gKE5TQXJyYXkgKilfdG91Y2hFdmVudFJlZ2lvbnMKICNlbmRpZiAv
LyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCiAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkg
d2l0aCB0aGUgV2ViQmFja0ZvcndhcmRMaXN0IEFQSSwgd2UgaG9ub3IgYm90aAotLy8gYSBwZXIt
V2ViVmlldyBhbmQgYSBwZXItcHJlZmVyZW5jZXMgc2V0dGluZyBmb3Igd2hldGhlciB0byB1c2Ug
dGhlIHBhZ2UgY2FjaGUuCisvLyBhIHBlci1XZWJWaWV3IGFuZCBhIHBlci1wcmVmZXJlbmNlcyBz
ZXR0aW5nIGZvciB3aGV0aGVyIHRvIHVzZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogCiAtIChC
T09MKXVzZXNQYWdlQ2FjaGUKIHsKQEAgLTg3OTcsNyArODc5Nyw3IEBAICsgKHZvaWQpX3NldENh
Y2hlTW9kZWw6KFdlYkNhY2hlTW9kZWwpY2FjaGVNb2RlbAogCiAgICAgc3dpdGNoIChjYWNoZU1v
ZGVsKSB7CiAgICAgY2FzZSBXZWJDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI6IHsKLSAgICAgICAg
Ly8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIEJhY2svZm9yd2Fy
ZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIHBhZ2VDYWNoZVNpemUgPSAwOwog
CiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKQEAgLTg4MzMs
NyArODgzMyw3IEBAICsgKHZvaWQpX3NldENhY2hlTW9kZWw6KFdlYkNhY2hlTW9kZWwpY2FjaGVN
b2RlbAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBXZWJDYWNoZU1vZGVsRG9jdW1l
bnRCcm93c2VyOiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQor
ICAgICAgICAvLyBCYWNrL2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAg
ICBpZiAobWVtU2l6ZSA+PSA1MTIpCiAgICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKICAg
ICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAyNTYpCkBAIC04ODg0LDcgKzg4ODQsNyBAQCArICh2
b2lkKV9zZXRDYWNoZU1vZGVsOihXZWJDYWNoZU1vZGVsKWNhY2hlTW9kZWwKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0g
ICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNr
L2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICBpZiAobWVtU2l6ZSA+
PSA1MTIpCiAgICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBpZiAo
bWVtU2l6ZSA+PSAyNTYpCkBAIC04OTY3LDcgKzg5NjcsNyBAQCArICh2b2lkKV9zZXRDYWNoZU1v
ZGVsOihXZWJDYWNoZU1vZGVsKWNhY2hlTW9kZWwKICAgICBtZW1vcnlDYWNoZS5zZXRDYXBhY2l0
aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3Rh
bENhcGFjaXR5KTsKICAgICBtZW1vcnlDYWNoZS5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbklu
dGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwogCi0gICAgYXV0byYgcGFn
ZUNhY2hlID0gV2ViQ29yZTo6UGFnZUNhY2hlOjpzaW5nbGV0b24oKTsKKyAgICBhdXRvJiBwYWdl
Q2FjaGUgPSBXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKTsKICAgICBwYWdl
Q2FjaGUuc2V0TWF4U2l6ZShwYWdlQ2FjaGVTaXplKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIG5zdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IHN0ZDo6bWF4KG5zdXJsQ2FjaGVNZW1v
cnlDYXBhY2l0eSwgW25zdXJsQ2FjaGUgbWVtb3J5Q2FwYWNpdHldKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9CYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IGRhZWExNjFhMTA1YmEyZWI0ZjY3
MThiNTI3YjM1MzRhODg0OTc0OTYuLmIyMDE0OGZkZWQyYTQ2Y2MyNmM0ZDBkZjc5NDI3MThhNmY1
OGMyODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQmFja0ZvcndhcmRMaXN0LmNwcApA
QCAtMjcsMTIgKzI3LDEyIEBACiAjaW5jbHVkZSAiV2ViS2l0RExMLmgiCiAjaW5jbHVkZSAiQmFj
a0ZvcndhcmRMaXN0LmgiCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oPgogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgRGVmYXVsdENhcGFjaXR5ID0g
MTAwOwpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6YWRkSXRlbShSZWY8
SGlzdG9yeUl0ZW0+JiYgbmV3SXRlbSkKICAgICAgICAgd2hpbGUgKG1fZW50cmllcy5zaXplKCkg
PiB0YXJnZXRTaXplKSB7CiAgICAgICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2Vu
dHJpZXMudGFrZUxhc3QoKTsKICAgICAgICAgICAgIG1fZW50cnlIYXNoLnJlbW92ZShpdGVtLnB0
cigpKTsKLSAgICAgICAgICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwor
ICAgICAgICAgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgQmFja0ZvcndhcmRMaXN0
OjphZGRJdGVtKFJlZjxIaXN0b3J5SXRlbT4mJiBuZXdJdGVtKQogICAgICAgICBSZWY8SGlzdG9y
eUl0ZW0+IGl0ZW0gPSBXVEZNb3ZlKG1fZW50cmllc1swXSk7CiAgICAgICAgIG1fZW50cmllcy5y
ZW1vdmUoMCk7CiAgICAgICAgIG1fZW50cnlIYXNoLnJlbW92ZShpdGVtLnB0cigpKTsKLSAgICAg
ICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CisgICAgICAgIEJhY2tGb3J3
YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKICAgICAgICAgLS1tX2N1cnJlbnQ7
CiAgICAgfQogCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBCYWNrRm9yd2FyZExpc3Q6OnNldENh
cGFjaXR5KGludCBzaXplKQogICAgIHdoaWxlIChzaXplIDwgc3RhdGljX2Nhc3Q8aW50PihtX2Vu
dHJpZXMuc2l6ZSgpKSkgewogICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2VudHJp
ZXMudGFrZUxhc3QoKTsKICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwot
ICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFj
a0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgIH0KIAogICAgIGlm
ICghc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0
aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNw
cAppbmRleCA5MTIwYWNjOGUwYjlmOTVlNTY3OTYxNGMwOTg4MjExZjJlODUzNzcyLi45Yzk2YTY3
ZTlkMGMxZjkwNDQyZjBiNDBjNDQ4MjZiNWM1NmI1YTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwCkBAIC0yOSwxMyArMjksMTMgQEAKICNpbmNs
dWRlICJDT01Qcm9wZXJ0eUJhZy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZN
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zv
bnRDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDb25z
b2xlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTMyMCw3ICszMjAsNyBAQCBIUkVTVUxUIFdlYkNv
cmVTdGF0aXN0aWNzOjpjYWNoZWRQYWdlQ291bnQoX091dF8gSU5UKiBjb3VudCkKICAgICBpZiAo
IWNvdW50KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwogCi0gICAgKmNvdW50ID0gUGFnZUNh
Y2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKKyAgICAqY291bnQgPSBCYWNrRm9yd2FyZENh
Y2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAt
MzI5LDYgKzMyOSw2IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRpc3RpY3M6OmNhY2hlZEZyYW1lQ291
bnQoX091dF8gSU5UKiBjb3VudCkKICAgICBpZiAoIWNvdW50KQogICAgICAgICByZXR1cm4gRV9Q
T0lOVEVSOwogCi0gICAgKmNvdW50ID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5mcmFtZUNvdW50
KCk7CisgICAgKmNvdW50ID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZnJhbWVDb3Vu
dCgpOwogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IDI2MjExZmE5Njc4MDZhNDRmYWFkMDY4YTA3OGIxMzYzMThlZTRiMGYuLmFiMGYxZDUxMGZk
NDU2MDdkNDVmNzlkNDM0ODczMzQ1MGE1MzRlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKQEAgLTk5Miw3ICs5OTIsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFu
c2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBjb3JlKG1fd2ViRnJhbWUpLT5jcmVh
dGVWaWV3KGVuY2xvc2luZ0ludFJlY3QobG9naWNhbEZyYW1lKS5zaXplKCksIGJhY2tncm91bmRD
b2xvciwgLyogZml4ZWRMYXlvdXRTaXplICovIHsgfSwgLyogZml4ZWRWaXNpYmxlQ29udGVudFJl
Y3QgKi8geyB9KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZy
b21QYWdlQ2FjaGUoKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21C
YWNrRm9yd2FyZENhY2hlKCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
ODU2ZjUyNWZkY2U5M2RkZjRmZTdmZGVhZmY0MjU1ZTVmZjU0Nzc1MC4uNjc2YThkNjFjNTM4OTBi
OTlhNGU0NDc3ODBlNWZhZDBjOTI5MjY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0xNzYsNyArMTc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZCgpIG92ZXJy
aWRlOwogICAgIHZvaWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRl
ZExpbmtTdG9yZS5jcHAKaW5kZXggMmE1ZTEwNTM2N2EwZmZmNjk1ZjgwNTMxYmM0YjVjN2I5OTk5
OWQ3My4uMjAwYTYzYzZjNWRkZGQ5Mjc4YzA0YjRkMmZkNDEzMTAyNDFhOTc1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
VmlzaXRlZExpbmtTdG9yZS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIldlYkhp
c3RvcnkuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2Fj
aGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggMWE2YTczYjZlZThlYjA3YWU2NmI5MjVlODY4
ODk1OTc1MzAxZTIzZi4uYTg3MjYwZjQ1YjY2MjQxNWM1ZWUxZTM3MGY0Yjc4ZTczMjZlMTAzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcApAQCAtMjExOSw3ICsyMTE5LDcgQEAg
Q09NUHRyPElBY2Nlc3NpYmxlPiBXZWJGcmFtZTo6YWNjZXNzaWJsZSgpIGNvbnN0CiAgICAgZWxz
ZSBpZiAoIW1fYWNjZXNzaWJsZSB8fCBtX2FjY2Vzc2libGUtPmRvY3VtZW50KCkgIT0gY3VycmVu
dERvY3VtZW50KSB7CiAgICAgICAgIC8vIEVpdGhlciB3ZSd2ZSBuZXZlciBoYWQgYSB3cmFwcGVy
IGZvciB0aGlzIGZyYW1lJ3MgdG9wLWxldmVsIERvY3VtZW50LAogICAgICAgICAvLyB0aGUgRG9j
dW1lbnQgcmVuZGVyZXIgd2FzIGRlc3Ryb3llZCBhbmQgaXRzIHdyYXBwZXIgd2FzIGRldGFjaGVk
LCBvcgotICAgICAgICAvLyB0aGUgcHJldmlvdXMgRG9jdW1lbnQgaXMgaW4gdGhlIHBhZ2UgY2Fj
aGUsIGFuZCB0aGUgY3VycmVudCBkb2N1bWVudAorICAgICAgICAvLyB0aGUgcHJldmlvdXMgRG9j
dW1lbnQgaXMgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYW5kIHRoZSBjdXJyZW50IGRvY3Vt
ZW50CiAgICAgICAgIC8vIG5lZWRzIHRvIGJlIHdyYXBwZWQuCiAgICAgICAgIG1fYWNjZXNzaWJs
ZSA9IG5ldyBBY2Nlc3NpYmxlRG9jdW1lbnQoY3VycmVudERvY3VtZW50LCB3ZWJWaWV3KCktPnZp
ZXdXaW5kb3coKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3
OTBjMWExYjg5OGJmNWQwMzE2MGNkMjliYjhmMDcyNDRlNDU2ODYyLi40NmY0ZjQ1N2NiMmFmZjk3
ZTBiYjc0YmU1MzgxZDllNGQ1ZWRhZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0JTdHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQml0bWFwSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVTdG9yYWdlUHJvdmlk
ZXIuaD4KQEAgLTEzMSw4ICsxMzIsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UmVsZWFz
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29u
ZmlndXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CkBAIC01NDAsMTMgKzUzOSwxMyBAQCB2b2lkIFdlYlZp
ZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVuc2lnbmVk
IGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKICAgICBTZWNvbmRzIGRlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWw7CiAKLSAgICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplID0gMDsKKyAgICB1
bnNpZ25lZCBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDA7CiAKIAogICAgIHN3aXRjaCAoY2FjaGVN
b2RlbCkgewogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOiB7Ci0gICAgICAg
IC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQotICAgICAgICBwYWdlQ2FjaGVTaXpl
ID0gMDsKKyAgICAgICAgLy8gQmFjay9mb3J3YXJkIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykK
KyAgICAgICAgYmFja0ZvcndhcmRDYWNoZVNpemUgPSAwOwogCiAgICAgICAgIC8vIE9iamVjdCBj
YWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKICAgICAgICAgaWYgKG1lbVNpemUgPj0gMjA0OCkK
QEAgLTU3MSwxNSArNTcwLDE1IEBAIHZvaWQgV2ViVmlldzo6c2V0Q2FjaGVNb2RlbChXZWJDYWNo
ZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYkNh
Y2hlTW9kZWxEb2N1bWVudEJyb3dzZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0
eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIEJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4g
cGFnZXMpCiAgICAgICAgIGlmIChtZW1TaXplID49IDEwMjQpCi0gICAgICAgICAgICBwYWdlQ2Fj
aGVTaXplID0gMzsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMzsKICAgICAg
ICAgZWxzZSBpZiAobWVtU2l6ZSA+PSA1MTIpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0g
MjsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBp
ZiAobWVtU2l6ZSA+PSAyNTYpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMTsKKyAgICAg
ICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcGFnZUNhY2hlU2l6ZSA9IDA7CisgICAgICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9
IDA7CiAKICAgICAgICAgLy8gT2JqZWN0IGNhY2hlIGNhcGFjaXRpZXMgKGluIGJ5dGVzKQogICAg
ICAgICBpZiAobWVtU2l6ZSA+PSAyMDQ4KQpAQCAtNjE3LDE4ICs2MTYsMTggQEAgdm9pZCBXZWJW
aWV3OjpzZXRDYWNoZU1vZGVsKFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbCkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0g
ICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNr
L2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICAvLyAoUmVzZWFyY2gg
aW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBwYWdlIGRyb3BzIHN1YnN0YW50aWFsbHkgYWZ0ZXIgMyBw
YWdlcy4pCiAgICAgICAgIGlmIChtZW1TaXplID49IDIwNDgpCi0gICAgICAgICAgICBwYWdlQ2Fj
aGVTaXplID0gNTsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gNTsKICAgICAg
ICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAxMDI0KQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9
IDQ7CisgICAgICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDQ7CiAgICAgICAgIGVsc2Ug
aWYgKG1lbVNpemUgPj0gNTEyKQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDM7CisgICAg
ICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDM7CiAgICAgICAgIGVsc2UgaWYgKG1lbVNp
emUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDI7CisgICAgICAgICAgICBi
YWNrRm9yd2FyZENhY2hlU2l6ZSA9IDI7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBhZ2VD
YWNoZVNpemUgPSAxOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZVNpemUgPSAxOwogCiAg
ICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKICAgICAgICAgLy8g
KFRlc3RpbmcgaW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBNQiBkZXBlbmRzIGhlYXZpbHkgb24gY29u
dGVudCBhbmQKQEAgLTY4Niw3ICs2ODUsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwo
V2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIGF1dG8mIG1lbW9yeUNhY2hlID0gTWVtb3J5
Q2FjaGU6OnNpbmdsZXRvbigpOwogICAgIG1lbW9yeUNhY2hlLnNldENhcGFjaXRpZXMoY2FjaGVN
aW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkp
OwogICAgIG1lbW9yeUNhY2hlLnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVh
ZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0b24o
KS5zZXRNYXhTaXplKHBhZ2VDYWNoZVNpemUpOworICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmds
ZXRvbigpLnNldE1heFNpemUoYmFja0ZvcndhcmRDYWNoZVNpemUpOwogCiAjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICAvLyBEb24ndCBzaHJpbmsgYSBiaWcgZGlzayBjYWNoZSwgc2luY2Ug
dGhhdCB3b3VsZCBjYXVzZSBjaHVybi4KQEAgLTUzODUsNyArNTM4NCw3IEBAIEhSRVNVTFQgV2Vi
Vmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNh
dGlvbikKICAgICBociA9IHByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCZlbmFibGVkKTsKICAg
ICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwotICAgIHNldHRpbmdzLnNldFVz
ZXNQYWdlQ2FjaGUoISFlbmFibGVkKTsKKyAgICBzZXR0aW5ncy5zZXRVc2VzQmFja0ZvcndhcmRD
YWNoZSghIWVuYWJsZWQpOwogCiAgICAgaHIgPSBwcmVmZXJlbmNlcy0+aXNET01QYXN0ZUFsbG93
ZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDljOWM1MDBhMTMyNjkyZWZmOGJhOTVhZWMw
N2RlNDZhYWM5MzlkNGMuLjJmNDY4MWU0NWNjMzVmNTcyNDYyMThkZjg0M2YyY2QxZThhMTc2MTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0
byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBV
SVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAob3ZlcnJpZGVQcmVmZXJlbmNlQ2Fs
bGJhY2spOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToK
KyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldFdlYlBy
ZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2Vz
Rm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RP
TVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lv
bk5vQ2FjaGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5k
bGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6RE9NV2luZG93RXh0ZW5zaW9uTm9DYWNo
ZTo6d2lsbERpc2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xvYmFsT2JqZWN0KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGU6OmRpZFJlY29u
bmVjdERPTVdpbmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hl
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVf
QnVuZGxlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkRpZFJlbW92ZUZyYW1lRnJvbUhp
ZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlVGVzdDo6RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJ
bkJhY2tGb3J3YXJkQ2FjaGVUZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkRpZFJlbW92
ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlVGVzdDo6ZGlkQ3JlYXRlUGFnZSk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dp
dGhBbGxDb250ZW50SW5GcmFtZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAodGVzdFdlYktpdFNldHRpbmdzKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAg
IChXVFI6OnVwZGF0ZVRlc3RPcHRpb25zRnJvbVRlc3RIZWFkZXIpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Omhh
c1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIGxsZGIvbGxkYl93
ZWJraXQucHk6CisgICAgICAgIChXZWJDb3JlRnJhbWVfU3VtbWFyeVByb3ZpZGVyKToKKyAgICAg
ICAgKFdlYkNvcmVEb2N1bWVudF9TdW1tYXJ5UHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZURv
Y3VtZW50UHJvdmlkZXIucGFnZV9jYWNoZV9zdGF0ZSk6CisKIDIwMTktMTAtMTYgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgRHVtcFJlbmRlclRy
ZWUgc2hvdWxkIGNsZWFyIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T25XaXRoQWNjdW11bGF0aW9uIHN0
YXRlIHNldCBieSB0ZXN0UnVubmVyLmFjY3VtbXVsYXRlTG9nc0ZvckNoYW5uZWwKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRleCAxZmY4NDllMTdhODViNmYyZmRhOGE5MGVhNDBh
YWI5Mjk5MzY2NWFiLi41NTZlZWMyNzY2MzdlODFiOTNmNzdkOTY1OTM3NWNmYzJhNDk1OTU5IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCkBAIC04MSw4ICs4MSw4IEBAIFRlc3RP
cHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBz
dGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZl
ciA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYg
KGtleSA9PSAidXNlRXBoZW1lcmFsU2Vzc2lvbiIpCiAgICAgICAgICAgICB1c2VFcGhlbWVyYWxT
ZXNzaW9uID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKLSAgICAgICAgZWxz
ZSBpZiAoa2V5ID09ICJlbmFibGVQYWdlQ2FjaGUiKQotICAgICAgICAgICAgZW5hYmxlUGFnZUNh
Y2hlID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJlbmFibGVCYWNrRm9yd2FyZENhY2hlIikKKyAgICAgICAgICAgIGVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAg
ICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZU1lbnVJdGVtRWxlbWVudCIpCiAgICAgICAgICAg
ICBlbmFibGVNZW51SXRlbUVsZW1lbnQgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFs
dWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZUtleWdlbkVsZW1lbnQiKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggMDk2OWIxODZiZmEwMWIzMDM1MzhmYWNmZTBl
OTQ2MjFlZjllN2U2Ny4uZTUzMzVlODMxMTRlNzllNWI1NGQ4NjFjM2QyM2ZmY2ViYmE3MGEwYiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBU
ZXN0T3B0aW9ucyB7CiAgICAgYm9vbCB1c2VBY2NlbGVyYXRlZERyYXdpbmcgeyBmYWxzZSB9Owog
ICAgIGJvb2wgZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wg
dXNlRXBoZW1lcmFsU2Vzc2lvbiB7IGZhbHNlIH07Ci0gICAgYm9vbCBlbmFibGVQYWdlQ2FjaGUg
eyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlQmFja0ZvcndhcmRDYWNoZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBlbmFibGVNZW51SXRlbUVsZW1lbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxl
S2V5Z2VuRWxlbWVudCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVNb2Rlcm5NZWRpYUNvbnRy
b2xzIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCAxNDdlYjMx
ZTE4OTk4MDhhZmU0ZDlkNjIxY2U0YmJhZWI4NjljMzcwLi4zODEwMDY4OGZkODY3YmY2NjI5NTJi
YjU1MzFhNGE2ZjZlNGQyOTM3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAt
NTgzLDggKzU4Myw4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIG92ZXJyaWRlUHJlZmVyZW5jZUNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmCiAgICAgYXV0byB2YWx1ZSA9
IGFkb3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRp
b24pKTsKICAgICBBU1NFUlQoISpleGNlcHRpb24pOwogCi0gICAgLy8gU2hvdWxkIHVzZSBgPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPmAgaW5zdGVh
ZC4KLSAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXku
Z2V0KCksICJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIpKTsKKyAgICAvLyBTaG91
bGQgdXNlIGA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPmAgaW5zdGVhZC4KKyAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhrZXkuZ2V0KCksICJXZWJLaXRVc2VzQmFja0ZvcndhcmRDYWNoZVByZWZl
cmVuY2VLZXkiKSk7CiAKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8
VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CiAgICAgY29udHJv
bGxlci0+b3ZlcnJpZGVQcmVmZXJlbmNlKGtleS5nZXQoKSwgdmFsdWUuZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGVjZmE0ODdjMjQ3Y2Nm
N2EzMWQ1OGZjNjhiNTJhMDc3ZGQ5MGRjNjQuLjE4ODBiYmU1MzI3N2MwODgwNGVkY2UwZTJkNWY3
YjkwMzlkZjFjYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KQEAgLTEwMzAsNyArMTAzMCw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9y
VGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMu
cmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJZGxlQ2Fs
bGJhY2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVBc3luY0NsaXBib2FyZEFQSTsKICAgICBwcmVmZXJlbmNlcy5wcml2YXRlQnJvd3Np
bmdFbmFibGVkID0gb3B0aW9ucy51c2VFcGhlbWVyYWxTZXNzaW9uOwotICAgIHByZWZlcmVuY2Vz
LnVzZXNQYWdlQ2FjaGUgPSBvcHRpb25zLmVuYWJsZVBhZ2VDYWNoZTsKKyAgICBwcmVmZXJlbmNl
cy51c2VzUGFnZUNhY2hlID0gb3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlOwogfQogCiAv
LyBDYWxsZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNjg4NDg2YTg5MGRjZTkyMWRkMzEw
ZmZjNGNlMzBhMmY4MjE0OGY1NC4uYWFlYzFiZTg5MWZkYjIyZTU3NjlhNzYwM2ZlZjEyNzEzNGY1
OTdiNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBA
IC04NTQsNyArODU0LDcgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lz
dGVudFZhbHVlcyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIHByZWZzUHJpdmF0
ZS0+c2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoRkFMU0UpOwogICAgIHByZWZl
cmVuY2VzLT5zZXRQbHVnSW5zRW5hYmxlZChUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0VGV4
dEFyZWFzQXJlUmVzaXphYmxlKFRSVUUpOwotICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNh
Y2hlKEZBTFNFKTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUoRkFM
U0UpOwogCiAgICAgcHJlZmVyZW5jZXMtPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoRkFMU0Up
OwogICAgIHByZWZzUHJpdmF0ZS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoVFJVRSk7
CkBAIC05MTQsNyArOTE0LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0
T3B0aW9ucyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzLCBjb25zdAogICAgIHByZWZzUHJp
dmF0ZS0+c2V0UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQob3B0aW9ucy5lbmFibGVSZXF1ZXN0
SWRsZUNhbGxiYWNrKTsKICAgICBwcmVmc1ByaXZhdGUtPnNldEFzeW5jQ2xpcGJvYXJkQVBJRW5h
YmxlZChvcHRpb25zLmVuYWJsZUFzeW5jQ2xpcGJvYXJkQVBJKTsKICAgICBwcmVmZXJlbmNlcy0+
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChvcHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb24pOwot
ICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNhY2hlKG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hl
KTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUob3B0aW9ucy5lbmFi
bGVCYWNrRm9yd2FyZENhY2hlKTsKIH0KIAogc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbklkKCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbkJhc2ljLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljLmNwcAppbmRleCAyZDA0MzVjMGUyYTM3MGY4Y2M0Mzc2NjE2MGQ3
M2M4YzYxMWQxNzc4Li41NWFhMzdlMTMwMmMyNmQyZTk1MDNkMDVhODhiYzcxNDVjZmM2NTM5IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRl
bnNpb25CYXNpYy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9N
V2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoV2ViS2l0LCBE
SVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNpYykKICAgICBXS0NvbnRleHRTZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7
CiAgICAgCiAgICAgLy8gVGhlIGRlZmF1bHQgY2FjaGUgbW9kZWwgaGFzIGEgY2FwYWNpdHkgb2Yg
MCwgc28gaXQgaXMgbmVjZXNzYXJ5IHRvIHN3aXRjaCB0byBhIGNhY2hlCi0gICAgLy8gbW9kZWwg
dGhhdCBhY3R1YWxseSBhbGxvd3MgZm9yIGEgcGFnZSBjYWNoZS4KKyAgICAvLyBtb2RlbCB0aGF0
IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0
U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2Vy
KTsKIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91
cC5nZXQoKSk7CkBAIC0xMjAsNyArMTIwLDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljKQogICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOwogICAgIGZpbmlz
aGVkID0gZmFsc2U7CiAKLSAgICAvLyBNYWtlIHN1cmUgdGhlIDIgZGlzY29ubmVjdGVkIGV4dGVu
c2lvbnMgaW4gdGhlIHBhZ2UgY2FjaGUgYW5kIHRoZSA0IGFjdGl2ZSBleHRlbnNpb25zIGFyZSBh
bGwgcmVtb3ZlZC4KKyAgICAvLyBNYWtlIHN1cmUgdGhlIDIgZGlzY29ubmVjdGVkIGV4dGVuc2lv
bnMgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSBhbmQgdGhlIDQgYWN0aXZlIGV4dGVuc2lvbnMg
YXJlIGFsbCByZW1vdmVkLgogICAgIFdLUGFnZUNsb3NlKHdlYlZpZXcucGFnZSgpKTsKIAogICAg
IFV0aWw6OnJ1bigmZmluaXNoZWQpOwpAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoV2ViS2l0LCBE
T01XaW5kb3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQogICAgIFdLQ29udGV4dFNldEluamVjdGVk
QnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsK
IAogICAgIC8vIFRoZSBkZWZhdWx0IGNhY2hlIG1vZGVsIGhhcyBhIGNhcGFjaXR5IG9mIDAsIHNv
IGl0IGlzIG5lY2Vzc2FyeSB0byBzd2l0Y2ggdG8gYSBjYWNoZQotICAgIC8vIG1vZGVsIHRoYXQg
YWN0dWFsbHkgYWxsb3dzIGZvciBhIHBhZ2UgY2FjaGUuCisgICAgLy8gbW9kZWwgdGhhdCBhY3R1
YWxseSBhbGxvd3MgZm9yIGEgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNldENh
Y2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7CiAK
ICAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2lu
ZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcAppbmRleCBiYzUwYjVlMmIwMGM1OTA4NDcw
NjE3NjJhZTNkZDcwZjRmNTFiOWViLi5lMTY5NmQ1YmQ2NTY5NDcyNzhmOTQ3NDg1MjUzMTcyYmM0
OWI3Y2E3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01X
aW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcApAQCAtOTUsNyArOTUsNyBAQCBU
RVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZSkKIAogICAgIFdL
Q29udGV4dFNldEluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1
bmRsZUNsaWVudC5iYXNlKTsKIAotICAgIC8vIERpc2FibGUgdGhlIHBhZ2UgY2FjaGUuCisgICAg
Ly8gRGlzYWJsZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNldENhY2hl
TW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsKIAogICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dF
eHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAKaW5kZXggNDBiNzdmMWRi
MDUxMjY5N2ZmNTljYzY5ZTZlMDI3OWE4YjYyMDdhNy4uZGMyM2U2N2M2ZjZjMThjZTQ4OGVjNmU3
Y2QzN2UyMWJmYWVhNTZmNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxl
LmNwcApAQCAtMjM1LDEzICsyMzUsMTMgQEAgdm9pZCBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hl
OjpnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYKIAogdm9p
ZCBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlOjp3aWxsRGlzY29ubmVjdERPTVdpbmRvd0V4dGVu
c2lvbkZyb21HbG9iYWxPYmplY3QoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYgZXh0ZW5z
aW9uKQogewotICAgIC8vIE5vIGl0ZW1zIHNob3VsZCBiZSBnb2luZyBpbnRvIGEgMC1jYXBhY2l0
eSBwYWdlIGNhY2hlLgorICAgIC8vIE5vIGl0ZW1zIHNob3VsZCBiZSBnb2luZyBpbnRvIGEgMC1j
YXBhY2l0eSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKIHZvaWQgRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZTo6ZGlkUmVjb25uZWN0RE9NV2luZG93
RXh0ZW5zaW9uVG9HbG9iYWxPYmplY3QoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYpCiB7
Ci0gICAgLy8gTm8gaXRlbXMgc2hvdWxkIGJlIGNvbWluZyBvdXQgb2YgYSAwLWNhcGFjaXR5IHBh
Z2UgY2FjaGUuCisgICAgLy8gTm8gaXRlbXMgc2hvdWxkIGJlIGNvbWluZyBvdXQgb2YgYSAwLWNh
cGFjaXR5IGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3Zl
RnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcAppbmRl
eCAxNThjNjQwZGMzOWFjODllMjU2NmY5N2I0NWM5NDIyNjlkNWU3NzAyLi5mZTlmNTQzYzJiZWUz
M2U4N2JjMGMzYjdiMmQ1YWU4OTY1ZmNiMzg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZy
b21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcApAQCAtNzAsOSArNzAsOSBAQCBzdGF0aWMgdm9pZCBz
ZXRJbmplY3RlZEJ1bmRsZUNsaWVudChXS1BhZ2VSZWYgcGFnZSkKICAgICBXS1BhZ2VTZXRQYWdl
SW5qZWN0ZWRCdW5kbGVDbGllbnQocGFnZSwgJmluamVjdGVkQnVuZGxlQ2xpZW50LmJhc2UpOwog
fQogCi1URVNUKFdlYktpdCwgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZSkK
K1RFU1QoV2ViS2l0LCBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNo
ZSkKIHsKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRpZFJlbW92ZUZyYW1lRnJv
bUhpZWFyY2h5SW5QYWdlQ2FjaGUiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0
KCJEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZSIpKTsKICAgICAv
LyBFbmFibGUgdGhlIHBhZ2UgY2FjaGUgc28gd2UgY2FuIHRlc3QgdGhlIFdLQnVuZGxlUGFnZURp
ZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeUNhbGxiYWNrIEFQSQogICAgIFdLQ29udGV4dFNldENh
Y2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3Zl
RnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZV9CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZV9C
dW5kbGUuY3BwCmluZGV4IDk5MWRlODUwMDRlMDUxZTQxZGIwMDNlMmQxODFkYzA2MmRkZTcxYjUu
LjI2YjUyNGVkZjRjZWEyODBhZmJlZmM4OThlZDc5N2I1NGJmZjdmNGQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5
SW5QYWdlQ2FjaGVfQnVuZGxlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlX0J1bmRsZS5jcHAKQEAg
LTM1LDE0ICszNSwxNCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLWNsYXNzIERp
ZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVUZXN0IDogcHVibGljIEluamVjdGVk
QnVuZGxlVGVzdCB7CitjbGFzcyBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0Zvcndh
cmRDYWNoZVRlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKIHB1YmxpYzoKLSAgICBE
aWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdChjb25zdCBzdGQ6OnN0cmlu
ZyYgaWRlbnRpZmllcik7CisgICAgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3
YXJkQ2FjaGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYpOwogfTsK
IAotc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8RGlkUmVtb3ZlRnJhbWVGcm9t
SGllYXJjaHlJblBhZ2VDYWNoZVRlc3Q+IHJlZ2lzdHJhcigiRGlkUmVtb3ZlRnJhbWVGcm9tSGll
YXJjaHlJblBhZ2VDYWNoZSIpOworc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8
RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVUZXN0PiByZWdpc3Ry
YXIoIkRpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlIik7CiAKIHN0
YXRpYyB1bnNpZ25lZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHlDb3VudDsKIApAQCAtNTYs
MTIgKzU2LDEyIEBAIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2soV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYKICAgICBXS0J1bmRsZVBhZ2VQb3N0
TWVzc2FnZShwYWdlLCBtZXNzYWdlLmdldCgpLCBtZXNzYWdlLmdldCgpKTsKIH0KIAotRGlkUmVt
b3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZVRlc3Q6OkRpZFJlbW92ZUZyYW1lRnJvbUhp
ZWFyY2h5SW5QYWdlQ2FjaGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorRGlk
UmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVUZXN0OjpEaWRSZW1vdmVG
cmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3QoY29uc3Qgc3RkOjpzdHJpbmcm
IGlkZW50aWZpZXIpCiAgICAgOiBJbmplY3RlZEJ1bmRsZVRlc3QoaWRlbnRpZmllcikKIHsKIH0K
IAotdm9pZCBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdDo6ZGlkQ3Jl
YXRlUGFnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKQordm9pZCBE
aWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3Q6OmRpZENyZWF0
ZVBhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKIHsKICAgICBX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOCBwYWdlTG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgm
cGFnZUxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKHBhZ2VMb2FkZXJDbGllbnQpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0xheW91dE1pbGVzdG9uZXNXaXRo
QWxsQ29udGVudEluRnJhbWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
TGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAKaW5kZXggNTY0NmJkODE5
NzVlOGU1ODMyYTE1NDY5ZmZiYzQxYzhlZGQ1NWM2ZS4uMWE2Y2JiMTUzMGNiNzQzZjMwY2Y4NTUz
NjNlZmU0NDU0MWI2NmM0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250
ZW50SW5GcmFtZS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEFmdGVyUGFnZUNhY2hlUmVzdG9yZSkKIHsKICAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25m
aWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwoY29udGV4
dC5nZXQoKSwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsgLy8gRW5hYmxlcyB0aGUg
UGFnZSBDYWNoZS4KKyAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQuZ2V0KCksIGtX
S0NhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3Nlcik7IC8vIEVuYWJsZXMgdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZS4KIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBlZTQwMzc4ZTJlZDY1ZTYxMjQw
Y2Y5MDI0NTdlNzc1NjA4NGE0NWE0Li44ZDI0YmJiYTM4NTk3YmJjM2MwMmUxNWRmMDBhNGQyZjNm
YjgwMmI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI0ODQsNyArMjQ4
NCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3VzcGVuZGVkUHJvY2VzcykKIHN0YXRpYyBj
b25zdCBjaGFyKiBmYWlsc1RvRW50ZXJQYWdlQ2FjaGVUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJD
RSgKIDxib2R5PgogPHNjcmlwdD4KLS8vIFBhZ2VzIHdpdGggZGVkaWNhdGVkIHdvcmtlcnMgZG8g
bm90IGdvIGludG8gcGFnZSBjYWNoZS4KKy8vIFBhZ2VzIHdpdGggZGVkaWNhdGVkIHdvcmtlcnMg
ZG8gbm90IGdvIGludG8gYmFjay9mb3J3YXJkIGNhY2hlLgogdmFyIG15V29ya2VyID0gbmV3IFdv
cmtlcignd29ya2VyLmpzJyk7CiA8L3NjcmlwdD4KIDwvYm9keT4KQEAgLTM2OTksNyArMzY5OSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhZ2VTaG93SGlkZSkKICAgICB9CiB9CiAKLS8vIERpc2Fi
bGluZyB0aGUgcGFnZSBjYWNoZSBleHBsaWNpdGx5IGlzIChmb3Igc29tZSByZWFzb24pIG5vdCBh
dmFpbGFibGUgb24gaU9TLgorLy8gRGlzYWJsaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgZXhw
bGljaXRseSBpcyAoZm9yIHNvbWUgcmVhc29uKSBub3QgYXZhaWxhYmxlIG9uIGlPUy4KICNpZiAh
VEFSR0VUX09TX0lQSE9ORQogc3RhdGljIGNvbnN0IGNoYXIqIGxvYWRVbmxvYWRCeXRlcyA9IFIi
UFNPTlJFU09VUkNFKAogPHNjcmlwdD4KQEAgLTU3ODIsNyArNTc4Miw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFnZVdpdGhNYWluRnJhbWVJRFRoYXRJc05vdE9uZSkK
ICAgICBhdXRvIHBpZDMgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
ICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMyk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dhcHBl
ZC4KIAotICAgIC8vIE5hdmlnYXRlIGJhY2sgdG8gdGhlIHN1c3BlbmRlZCBwYWdlIChzaG91bGQg
dXNlIHRoZSBwYWdlIGNhY2hlKS4KKyAgICAvLyBOYXZpZ2F0ZSBiYWNrIHRvIHRoZSBzdXNwZW5k
ZWQgcGFnZSAoc2hvdWxkIHVzZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlKS4KICAgICBbY3JlYXRl
ZFdlYlZpZXcgZ29CYWNrXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7CkBAIC01ODE5LDcgKzU4MTks
NyBAQCBib2R5IHsKIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KLS8vIFBhZ2VzIHdpdGggZGVk
aWNhdGVkIHdvcmtlcnMgZG8gbm90IGdvIGludG8gcGFnZSBjYWNoZS4KKy8vIFBhZ2VzIHdpdGgg
ZGVkaWNhdGVkIHdvcmtlcnMgZG8gbm90IGdvIGludG8gYmFjay9mb3J3YXJkIGNhY2hlLgogdmFy
IG15V29ya2VyID0gbmV3IFdvcmtlcignd29ya2VyLmpzJyk7CiA8L3NjcmlwdD4KIDxhIGlkPSJ0
ZXN0TGluayIgaHJlZj0icHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIj5UZXN0PC9hPgpA
QCAtNTkyNyw3ICs1OTI3LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRCbG9ja2luZ0Fm
dGVyUHJvY2Vzc1N3YXBUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxib2R5PgogPHNjcmlw
dD4KIGxldCB3YXNTdWJmcmFtZUxvYWRlZCA9IGZhbHNlOwotLy8gUGFnZXMgd2l0aCBkZWRpY2F0
ZWQgd29ya2VycyBkbyBub3QgZ28gaW50byBwYWdlIGNhY2hlLgorLy8gUGFnZXMgd2l0aCBkZWRp
Y2F0ZWQgd29ya2VycyBkbyBub3QgZ28gaW50byBiYWNrL2ZvcndhcmQgY2FjaGUuCiB2YXIgbXlX
b3JrZXIgPSBuZXcgV29ya2VyKCd3b3JrZXIuanMnKTsKIDwvc2NyaXB0PgogPGlmcmFtZSBzcmM9
ImJsb2NrbWUuaHRtbCI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFNldHRpbmdzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDNhNDBj
MjkzNWIyMDFiMDU2ZTg5ZWNlYTZhZjJhNDliMGM3YWYyZTkuLjhlOTk0NGFkMWJiZDE0MTZmNjc1
ZjlmNmZjNzhiN2IzN2FmOWJmZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0yNzYsNyAr
Mjc2LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdFNldHRpbmdzKFRlc3QqLCBnY29uc3Rwb2lu
dGVyKQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3NpdGVfc3BlY2lmaWNfcXVpcmtz
KHNldHRpbmdzLCBGQUxTRSk7CiAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3NldHRpbmdzX2dl
dF9lbmFibGVfc2l0ZV9zcGVjaWZpY19xdWlya3Moc2V0dGluZ3MpKTsKIAotICAgIC8vIEJ5IGRl
ZmF1bHQsIHBhZ2UgY2FjaGUgaXMgZW5hYmxlZC4KKyAgICAvLyBCeSBkZWZhdWx0LCB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlIGlzIGVuYWJsZWQuCiAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfc2V0
dGluZ3NfZ2V0X2VuYWJsZV9wYWdlX2NhY2hlKHNldHRpbmdzKSk7CiAgICAgd2Via2l0X3NldHRp
bmdzX3NldF9lbmFibGVfcGFnZV9jYWNoZShzZXR0aW5ncywgRkFMU0UpOwogICAgIGdfYXNzZXJ0
X2ZhbHNlKHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3BhZ2VfY2FjaGUoc2V0dGluZ3MpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IGJhNTk5M2M3YTIyMmZiMzBhN2MwNzU0Y2RiYTc1OTZhMmI4MTM5YmIuLjhl
ZGExZmQwY2E2OTRkNjczZTEzOTEyZDVkNDBlYmNmYmNjNmVhYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtODU5
LDggKzg1OSw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0b0Jvb2woSlNTdHJpbmdSZWYgdmFsdWUp
CiB2b2lkIFRlc3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBwcmVmZXJl
bmNlLCBKU1N0cmluZ1JlZiB2YWx1ZSkKIHsKICAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKLSAgICAvLyBTaG91bGQgdXNlIGA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+YCBpbnN0ZWFkLgotICAg
IFJFTEVBU0VfQVNTRVJUKCFKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHByZWZlcmVuY2Us
ICJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIpKTsKKyAgICAvLyBTaG91bGQgdXNl
IGA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPmAgaW5zdGVhZC4KKyAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhwcmVmZXJlbmNlLCAiV2ViS2l0VXNlc0JhY2tGb3J3YXJkQ2FjaGVQcmVmZXJlbmNl
S2V5IikpOwogCiAgICAgLy8gRklYTUU6IGhhbmRsZSBub24tYm9vbGVhbiBwcmVmZXJlbmNlcy4K
ICAgICBXS0J1bmRsZU92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKGluamVjdGVk
QnVuZGxlLmJ1bmRsZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwgdG9XSyhwcmVmZXJl
bmNlKS5nZXQoKSwgdG9Cb29sKHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCmluZGV4IGU5ZDQyOGU4MzRmNmRjY2RlOTczZTJlZWU4YjUyMmY4OTM0ZmQw
NjEuLmUxN2M0OTI2MDI1YWU0M2VkYzhkMjQ2MWIwNzRmNjM5YzEwNWM5YzYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC04NDYsNyArODQ2LDcgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW8KICAgICBXS1ByZWZlcmVuY2VzU2V0QWxsb3dDcm9zc09yaWdp
blN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMocHJlZmVyZW5jZXMsIG9wdGlvbnMuYWxs
b3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMpOwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRDb2xvckZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxl
Q29sb3JGaWx0ZXIpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRQdW5jaE91dFdoaXRlQmFja2dyb3Vu
ZHNJbkRhcmtNb2RlKHByZWZlcmVuY2VzLCBvcHRpb25zLnB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5k
c0luRGFya01vZGUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVFbmFibGVkKHByZWZl
cmVuY2VzLCBvcHRpb25zLmVuYWJsZVBhZ2VDYWNoZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFBh
Z2VDYWNoZUVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldExhenlJbWFnZUxvYWRpbmdFbmFibGVkKHByZWZlcmVu
Y2VzLCBvcHRpb25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcpOwogCiAgICAgc3RhdGljIFdLU3Ry
aW5nUmVmIGRlZmF1bHRUZXh0RW5jb2RpbmcgPSBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiSVNPLTg4NTktMSIpOwpAQCAtMTQyOSw4ICsxNDI5LDggQEAgc3RhdGljIHZvaWQgdXBkYXRl
VGVzdE9wdGlvbnNGcm9tVGVzdEhlYWRlcihUZXN0T3B0aW9ucyYgdGVzdE9wdGlvbnMsIGNvbnN0
IHN0ZDoKICAgICAgICAgICAgIHRlc3RPcHRpb25zLmNvbnRlbnRNb2RlID0geyB2YWx1ZS5jX3N0
cigpIH07CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlQXBwTmFwIikKICAgICAgICAg
ICAgIHRlc3RPcHRpb25zLmVuYWJsZUFwcE5hcCA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1
ZSh2YWx1ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlUGFnZUNhY2hlIikKLSAg
ICAgICAgICAgIHRlc3RPcHRpb25zLmVuYWJsZVBhZ2VDYWNoZSA9IHBhcnNlQm9vbGVhblRlc3RI
ZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlQmFja0Zv
cndhcmRDYWNoZSIpCisgICAgICAgICAgICB0ZXN0T3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENh
Y2hlID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJlbmFibGVMYXp5SW1hZ2VMb2FkaW5nIikKICAgICAgICAgICAgIHRlc3RPcHRp
b25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUo
dmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImFsbG93c0xpbmtQcmV2aWV3IikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAppbmRleCBjYjZhNWQ1NmRmNDVjY2UyZDQ1NWNh
MmQ5OGM2NGEyMzQ1MDY3NjM2Li41MTVkNWJmYmRlMmRiNzlkMWQ1MzhkYmY3MjE1NjM2ZTQwZjlj
YTc2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCkBAIC05NCw3ICs5NCw3IEBA
IHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwg
eyB0cnVlIH07CiAgICAgYm9vbCBzaG91bGRQcmVzZW50UG9wb3ZlcnMgeyB0cnVlIH07CiAgICAg
Ym9vbCBlbmFibGVBcHBOYXAgeyBmYWxzZSB9OwotICAgIGJvb2wgZW5hYmxlUGFnZUNhY2hlIHsg
ZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUgeyBmYWxzZSB9OwogICAg
IGJvb2wgZW5hYmxlTGF6eUltYWdlTG9hZGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd3NM
aW5rUHJldmlldyB7IHRydWUgfTsKIApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0cnVjdCBUZXN0T3B0
aW9ucyB7CiAgICAgICAgICAgICB8fCBjb250ZW50SW5zZXRUb3AgIT0gb3B0aW9ucy5jb250ZW50
SW5zZXRUb3AKICAgICAgICAgICAgIHx8IGNvbnRlbnRNb2RlICE9IG9wdGlvbnMuY29udGVudE1v
ZGUKICAgICAgICAgICAgIHx8IGVuYWJsZUFwcE5hcCAhPSBvcHRpb25zLmVuYWJsZUFwcE5hcAot
ICAgICAgICAgICAgfHwgZW5hYmxlUGFnZUNhY2hlICE9IG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hl
CisgICAgICAgICAgICB8fCBlbmFibGVCYWNrRm9yd2FyZENhY2hlICE9IG9wdGlvbnMuZW5hYmxl
QmFja0ZvcndhcmRDYWNoZQogICAgICAgICAgICAgfHwgZW5hYmxlTGF6eUltYWdlTG9hZGluZyAh
PSBvcHRpb25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcKICAgICAgICAgICAgIHx8IGFsbG93c0xp
bmtQcmV2aWV3ICE9IG9wdGlvbnMuYWxsb3dzTGlua1ByZXZpZXcpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5IGIvVG9vbHMv
bGxkYi9sbGRiX3dlYmtpdC5weQppbmRleCBmNWFlMmMxOTM4YmQ4YTUxNDAxNmIyMGU1NzA1ZjEz
ZjVlZmYzODM2Li5kNTgwODk5N2FjNzFkMWEwNTQ5ZGEwZTVhYThkOWIxZTRjOTM1NjM3IDEwMDY0
NAotLS0gYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5CisrKyBiL1Rvb2xzL2xsZGIvbGxkYl93
ZWJraXQucHkKQEAgLTIzOSwxOSArMjM5LDE5IEBAIGRlZiBXZWJDb3JlRnJhbWVfU3VtbWFyeVBy
b3ZpZGVyKHZhbG9iaiwgZGljdCk6CiAgICAgaWYgZG9jdW1lbnQ6CiAgICAgICAgIG9yaWdpbiA9
IGRvY3VtZW50Lm9yaWdpbigpCiAgICAgICAgIHVybCA9IGRvY3VtZW50LnVybCgpCi0gICAgICAg
IHBhZ2VDYWNoZVN0YXRlID0gZG9jdW1lbnQucGFnZV9jYWNoZV9zdGF0ZSgpCisgICAgICAgIGJh
Y2tGb3J3YXJkQ2FjaGVTdGF0ZSA9IGRvY3VtZW50LnBhZ2VfY2FjaGVfc3RhdGUoKQogICAgIGVs
c2U6CiAgICAgICAgIG9yaWdpbiA9ICcnCiAgICAgICAgIHVybCA9ICcnCi0gICAgICAgIHBhZ2VD
YWNoZVN0YXRlID0gJycKLSAgICByZXR1cm4gJ3sgb3JpZ2luID0gJXMsIHVybCA9ICVzLCBpc01h
aW5GcmFtZSA9ICVkLCBwYWdlQ2FjaGVTdGF0ZSA9ICVzIH0nICUgKG9yaWdpbiwgdXJsLCBwcm92
aWRlci5pc19tYWluX2ZyYW1lKCksIHBhZ2VDYWNoZVN0YXRlKQorICAgICAgICBiYWNrRm9yd2Fy
ZENhY2hlU3RhdGUgPSAnJworICAgIHJldHVybiAneyBvcmlnaW4gPSAlcywgdXJsID0gJXMsIGlz
TWFpbkZyYW1lID0gJWQsIGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9ICVzIH0nICUgKG9yaWdpbiwg
dXJsLCBwcm92aWRlci5pc19tYWluX2ZyYW1lKCksIGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkKIAog
CiBkZWYgV2ViQ29yZURvY3VtZW50X1N1bW1hcnlQcm92aWRlcih2YWxvYmosIGRpY3QpOgogICAg
IHByb3ZpZGVyID0gV2ViQ29yZURvY3VtZW50UHJvdmlkZXIodmFsb2JqLCBkaWN0KQogICAgIGZy
YW1lID0gcHJvdmlkZXIuZnJhbWUoKQogICAgIGluX21haW5fZnJhbWUgPSAnJWQnICUgZnJhbWUu
aXNfbWFpbl9mcmFtZSgpIGlmIGZyYW1lIGVsc2UgJ0RldGFjaGVkJwotICAgIHJldHVybiAneyBv
cmlnaW4gPSAlcywgdXJsID0gJXMsIGluTWFpbkZyYW1lID0gJXMsIHBhZ2VDYWNoZVN0YXRlID0g
JXMgfScgJSAocHJvdmlkZXIub3JpZ2luKCksIHByb3ZpZGVyLnVybCgpLCBpbl9tYWluX2ZyYW1l
LCBwcm92aWRlci5wYWdlX2NhY2hlX3N0YXRlKCkpCisgICAgcmV0dXJuICd7IG9yaWdpbiA9ICVz
LCB1cmwgPSAlcywgaW5NYWluRnJhbWUgPSAlcywgYmFja0ZvcndhcmRDYWNoZVN0YXRlID0gJXMg
fScgJSAocHJvdmlkZXIub3JpZ2luKCksIHByb3ZpZGVyLnVybCgpLCBpbl9tYWluX2ZyYW1lLCBw
cm92aWRlci5wYWdlX2NhY2hlX3N0YXRlKCkpCiAKIAogZGVmIGJ0anMoZGVidWdnZXIsIGNvbW1h
bmQsIHJlc3VsdCwgaW50ZXJuYWxfZGljdCk6CkBAIC03MjMsNyArNzIzLDcgQEAgY2xhc3MgV2Vi
Q29yZURvY3VtZW50UHJvdmlkZXI6CiAgICAgICAgIHJldHVybiBXZWJDb3JlU2VjdXJpdHlPcmln
aW5Qcm92aWRlcihzZWN1cml0eV9vcmlnaW5fcHRyLCBkaWN0KCkpLnRvX3N0cmluZygpCiAKICAg
ICBkZWYgcGFnZV9jYWNoZV9zdGF0ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYudmFsb2Jq
LkdldENoaWxkTWVtYmVyV2l0aE5hbWUoJ21fcGFnZUNhY2hlU3RhdGUnKS5HZXRWYWx1ZSgpCisg
ICAgICAgIHJldHVybiBzZWxmLnZhbG9iai5HZXRDaGlsZE1lbWJlcldpdGhOYW1lKCdtX2JhY2tG
b3J3YXJkQ2FjaGVTdGF0ZScpLkdldFZhbHVlKCkKIAogICAgIGRlZiBmcmFtZShzZWxmKToKICAg
ICAgICAgZnJhbWVfcHRyID0gc2VsZi52YWxvYmouR2V0Q2hpbGRNZW1iZXJXaXRoTmFtZSgnbV9m
cmFtZScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggY2Q5ZTFjOGNhNTI4Mjk0YjgyMjkzNjI3NGM4NzljODhkY2E0OTMwZS4u
ZDJmNjQ0ZDNlNTY1YTM2NWI1ZmJlZDBkZjg4MjkwYzYyMjFhMGNkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2NyBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBC
YWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVBy
b2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAgICAgICogYW5pbWF0aW9ucy9yZXN1
bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2FjY2VsZXJh
dGVkLWxheWVycy1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1l
cy9wYWdlLWNhY2hlLWxheWVyLXRyZWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYWdl
LWNhY2hlLWJhY2stY3Jhc2guaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9zaG93LWNvbXBv
c2l0ZWQtaWZyYW1lLW9uLWJhY2stYnV0dG9uLmh0bWw6CisgICAgICAgICogZWRpdGluZy9tYWMv
aW5wdXQvdW5jb25maXJtZWQtdGV4dC1uYXZpZ2F0aW9uLXdpdGgtcGFnZS1jYWNoZS5odG1sOgor
ICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWw6
CisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAg
ICogZmFzdC9kb20vRGV2aWNlTW90aW9uL25vLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tcGFnZS1jYWNoZS5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNr
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvb251bmxvYWQtYmFjay10by1wYWdlLWNhY2hl
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sOgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3BhZ2VoaWRlLXhoci1vcGVuLmh0bWw6CisgICAgICAgICogZmFz
dC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hl
ZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3N1c3BlbmQtdGltZXJzLmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12YWx1ZS1kb2Vz
LW5vdC1jbGVhci5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLWNyYXNoLXdpdGgt
cGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLXVubG9hZC1uYXZp
Z2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sOgorICAgICAgICAqIGZhc3QvZnJh
bWVzL3BhZ2UtaGlkZS1kb2N1bWVudC1vcGVuLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMv
cmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2NyaXB0cy12aWEtc3R5bGUtdXBk
YXRlLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hv
dWxkLW5vdC1ydW4tc2NyaXB0cy5odG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy9wYWdlLWNh
Y2hlLWNyYXNoLW9uLWRhdGEtdXJscy5odG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy91c2Ut
cGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9iYWNrLWZyb20tcGFnZS13
aXRoLWZvY3VzZWQtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2dvLWJhY2st
dG8taWZyYW1lLXdpdGgtcGx1Z2luLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2dvLWJh
Y2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2hpc3Rv
cnktYmFjay13aGlsZS1wZGYtaW4tcGFnZWNhY2hlLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtTWVzc2FnZVBvcnQtcGVuZGluZy1tZXNzYWdlLmh0bWw6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtYWZ0ZXItd2luZG93LW9wZW4uaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1iYWNrLW5hdmlnYXRpb24tY3Jhc2guaHRtbDoK
KyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmcuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1hZ2VCaXRtYXAuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwtdXNpbmct
b3Blbi1wYW5lbC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0
ZU9iamVjdFVSTC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWRlc3Ry
b3ktZG9jdW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1lbGVt
ZW50LXN0YXRlLWZvY3VzZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1leGVjdXRlLXNjcmlwdC1kdXJpbmctcmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVzaG90Lmh0bWw6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWlmcmFtZS1qcy11cmwuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWw6
CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC0y
Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNs
b3NlZC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJj
ZS1vcGVuZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0
ZS1kdXJpbmctcmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LW5vdGlmaWNhdGlvbi1ub24tc3VzcGVuZGFibGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1yZW1vdmVkLXNvdXJjZS1idWZmZXIuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1lcy13aXRoLXByb3Zpc2lv
bmFsLWxvYWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5k
ZWQtYXVkaW9jb250ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
d2ViZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2hpc3RvcnkvcGFnZWhpZGUtcmVtb3ZlLWlmcmFtZS1jcmFzaC5odG1sOgorICAgICAg
ICAqIGZhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJhbWUu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93
LXdpdGgtb3BlbmVyLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3RpbWVkLXJlZnJlc2gt
aW4tY2FjaGVkLWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lm
LXJlc3RvcmVkLWZyb20tYmZjYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL2ZyYW1l
cy13aXRoLXVubG9hZC1oYW5kbGVycy1pbi1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogZmFz
dC9sb2FkZXIvaW1hZ2UtaW4tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVy
L2lucHV0LWVsZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvbG9h
ZGVyL25hdmlnYXRlLXdpdGgtbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlv
bi5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXct
dGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWw6CisgICAgICAgICogZmFz
dC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbDoKKyAgICAgICAg
KiBmYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRvLXN0YXRl
bGVzcy1lbnRyeS13aXRoLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9z
dGF0ZW9iamVjdHMvcG9wc3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAg
ICogZmFzdC9sb2FkZXIvdW5zY2hlZHVsZS1yZWxheW91dC1hZnRlci11bmxvYWQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2xvYWRlci93aW5kb3ctcHJvcGVydGllcy1yZXN0b3JlZC1mcm9tLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L2hvcml6b250YWwtc2Ny
b2xsLWFmdGVyLWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pZnJhbWUtc2Ny
b2xsYWJsZS1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93Lmh0bWw6CisgICAgICAgICog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLmh0bWw6CisgICAg
ICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9sbC1iYWNrLWZvcndhcmQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGxhYmxlLWFmdGVyLWJhY2su
aHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9wYWdlLWNhY2hlLWJhY2stb3ZlcmZsb3ct
c2Nyb2xsLXJlc3RvcmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9pb3Mv
dGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L3ZpZXdwb3J0
L2lvcy92aWV3cG9ydC1zaHJpbmstdG8tZml0LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC92aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbDoKKyAgICAgICAgKiBmYXN0L3dv
cmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2NhY2hl
L2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1pbWFnZS1sb2FkLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5l
Y3RlZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2Ut
cGFnZS1jYWNoZS1jb25uZWN0aW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5n
L21haW4tcmVzb3VyY2UtZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdhdGlvbi5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLWxvYWQtYmFjay10by1jYWNoZWQtcGFn
ZS1jYWxsYmFja3MuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hl
ZC1tYWluLXJlc291cmNlLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3ItcGFnZS5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1YmZyYW1lLWlu
LXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2Ut
bG9hZC1pbi1wYWdlaGlkZS1oYW5kbGVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGVzdG9yYWdlLXBlbmRp
bmctcHJvbWlzZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLWZhaWxlZC14aHIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1mb250ZmFjZXNldC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wYWdlLWNhY2hlLWZyYWdtZW50LXJlZmVycmVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLW5vLWN1cnJlbnQtaGlzdG9yeUl0ZW0uaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJv
dmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0ZXMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9h
ZC1jYWNoZS1wYXJ0aXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1jcm9zcy1vcmln
aW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5k
aW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLXJlcXVlc3RBbmltYXRpb25GcmFtZS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1wYWdlaGlkZS5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1jYWNo
ZS0zLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2Vo
aWRlLWhhbmRsZXItc3RhcnRzLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmln
YXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZDIuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQt
c2NyaXB0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1pc3Np
b24tZnJvbS1pbmFjdGl2ZS1kb213aW5kb3cuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0
LWludG8taW5hY3RpdmUtd2luZG93Mi1wc29uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmpl
Y3QtaW50by1pbmFjdGl2ZS13aW5kb3czLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9jbG9zZWQtd2hlbi1lbnRlcmluZy1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zdG9wLW9uLXJlc3VtZS1p
bi1lcnJvci1oYW5kbGVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3Zl
ZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13b3JrZXItcGVuZGluZy1w
cm9taXNlLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
cGFnZS1jYWNoaW5nLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2Vu
ZEJlYWNvbi1vbnBhZ2VoaWRlLXdpbmRvdy5odG1sOgorICAgICAgICAqIGxlZ2FjeS1hbmltYXRp
b24tZW5naW5lL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAg
ICAgKiBsb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS5odG1sOgorICAgICAgICAq
IGxvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1sOgorICAgICAgICAq
IG1lZGlhL2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBsdWdpbi1mYWxsYmFjay5o
dG1sOgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNo
ZS5odG1sOgorICAgICAgICAqIG1lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL2lvcy9maXhlZC9maXhlZC1iYWNrLWZvcndhcmQuaHRtbDoK
KyAgICAgICAgKiBwbHVnaW5zL2NyYXNoLXJlc3RvcmluZy1wbHVnaW4tcGFnZS1mcm9tLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBwbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1l
Lmh0bWw6CisgICAgICAgICogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tcGFnZS1jYWNoZS13b3Jr
cy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNo
ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1s
OgorICAgICAgICAqIHN3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sOgor
ICAgICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAg
ICAqIHN3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNo
Lmh0bWw6CisgICAgICAgICogc3dpcGUvcHVzaHN0YXRlLXdpdGgtbWFudWFsLXNjcm9sbHJlc3Rv
cmF0aW9uLmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbnVsbC1wYXJl
bnQtYmFjay1jcmFzaC5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2lu
Zy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sOgorICAgICAgICAq
IHdlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbDoKKyAg
ICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sOgor
CiAyMDE5LTEwLTE2ICBSdXNzZWxsIEVwc3RlaW4gIDxyZXBzdGVpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ29ycmVjdCBUZXN0RXhwZWN0YXRpb25zIGZyb20gcjI1MTExOS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbCBiL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBh
NjYyMmVlMzA4MTI5MThlNjNkNTZmMjRmM2RlYTU1NDI5MTQ1M2M3Li5lOThjNDk5ZWQ3YjQwMjVm
NWI1MDczNGVhZDQzYzNkOWUxZjE3ZDI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9yZXN1bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzdHls
ZT4KIEAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UgewogICAgIGZyb20gewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2suaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWxheWVycy1hZnRlci1iYWNr
Lmh0bWwKaW5kZXggM2I2MWE0NGMzYzY1ODUzMDhiMmRkYTVlNWE5NTViYTE2YzE0MTYxZi4uYTVm
YmMxNWI0ZTRkZDM0OGRjYmZkNWU3NmZjNDEyMTk1MmI0NTNhOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2suaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1sYXllcnMtYWZ0ZXItYmFjay5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlQWNjZWxlcmF0ZWREcmF3aW5nPXRydWUgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUFjY2VsZXJh
dGVkRHJhd2luZz10cnVlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogCiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9w
YWdlLWNhY2hlLWxheWVyLXRyZWUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvcGFnZS1jYWNoZS1sYXllci10cmVlLmh0bWwKaW5kZXggOTZjNjk4ZjM3NDA4MmU5NjE4M2Y3
ZTZhZGZmNzA5MzczNTM3NmU5Zi4uMDU0YWExODkzZTQxNjMxYjdiY2EyMjQ3MzY5Y2Y4Y2NlNDUy
YjhiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9wYWdlLWNh
Y2hlLWxheWVyLXRyZWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L3BhZ2UtY2FjaGUtbGF5ZXItdHJlZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3BhZ2UtY2FjaGUtYmFjay1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFn
ZS1jYWNoZS1iYWNrLWNyYXNoLmh0bWwKaW5kZXggOGY2OGJjZDhmYTk1ZTVjYmQ5YzAzYTBmMzk0
MTUzMTMyZmI4YTBhZS4uYzY3ZjIxNDIwYjg4ZmMwN2IwN2RjMmEyNzVkY2U5Y2MxMzlkYmRjNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFnZS1jYWNoZS1iYWNrLWNyYXNo
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFnZS1jYWNoZS1iYWNrLWNyYXNo
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBh
Z2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHN0eWxlPgogLm91dGVyIHsgcG9zaXRpb246IGZpeGVk
OyB9CiAuaW5uZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFjay1idXR0b24uaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFj
ay1idXR0b24uaHRtbAppbmRleCA1Njk1ZTc0ZjMwOWUxNzQwY2E3ZTk4NDhjNGEzYjMyZmMzZjJl
YTQzLi4wZTY4YTNkNTQ1YWE4NjJkNjA3Nzk3NDA3YzVmYjkwZjM5NzI3NjMzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zaG93LWNvbXBvc2l0ZWQtaWZyYW1lLW9uLWJhY2st
YnV0dG9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2hvdy1jb21wb3NpdGVk
LWlmcmFtZS1vbi1iYWNrLWJ1dHRvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvbWFj
L2lucHV0L3VuY29uZmlybWVkLXRleHQtbmF2aWdhdGlvbi13aXRoLXBhZ2UtY2FjaGUuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL2lucHV0L3VuY29uZmlybWVkLXRleHQtbmF2aWdhdGlv
bi13aXRoLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAzODg3N2NiZDBlODI3NmYyY2M0MGM2NGJiNzZm
NWUxOTRiZWEzMDhhLi43YjhkNzkyYzY3M2E3NjVkMGM3ZjQ3OTRlYzBmYjJmNmY5NGQ1MjA0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9pbnB1dC91bmNvbmZpcm1lZC10ZXh0
LW5hdmlnYXRpb24td2l0aC1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9tYWMvaW5wdXQvdW5jb25maXJtZWQtdGV4dC1uYXZpZ2F0aW9uLXdpdGgtcGFnZS1jYWNoZS5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+VGVzdCB3aGF0IGhh
cHBlbnMgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBwYWdlIHdpdGggdW5jb25maXJtZWQgaW5saW5l
IGlucHV0IHdoZW4gdGhlIHBhZ2UgaXMgY2FjaGVhYmxlPC90aXRsZT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5o
dG1sCmluZGV4IGNiYTMyNzkzMTMwZWRhYzU2ZWJjYjIwOTY5NTg4Yjk0YzdjNjg0NmUuLjljN2M4
MzdmZDJhODQzNTM4YzI3MTU1NzU1ODg3NDg0NGM4NWE0NjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2UtY2FjaGUuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHN0eWxlPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA3YTIwYTBjMWEy
OTI1MjBiNDAyNTg5NDM3ODY4YzI0NjZiY2RhZjcyLi45ODc5MmNjZTJiNDUxNjYzMzUwNjA3ZmY5
YWNlMzFlMzYyNmYzNDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IWRvY3R5cGUgaHRtbD4KIDxodG1s
PgogPHN0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlTW90aW9u
L25vLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU1vdGlvbi9u
by1wYWdlLWNhY2hlLmh0bWwKaW5kZXggNTllNzM4MzE5MTgwZTg4ZWNmZjBkYThjNjY3MzNhNzgz
ZDY5NTY4ZC4uZTZmOWViZTI1MzEyMzgwMTZmNTA3OGQ2OGZlZWNiMjY2NDU0ZTZhYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlTW90aW9uL25vLXBhZ2UtY2FjaGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VNb3Rpb24vbm8tcGFnZS1jYWNoZS5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2V2ZW50LWFmdGVy
LW5hdmlnYXRpb24uaHRtbAppbmRleCAyMzhiMzcxNGYwMjdiYmQ5ZWI2MzVkZTBiYTgyOTJkZWQ1
OWE2Y2Q0Li4zNjAyNTE4ODk3M2U4YmQyOGY4YTc2ZTE5ZjhmMjA4YTFjZGU3ZTBlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1u
YXZpZ2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRp
b24vZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgog
PGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0
aW9uL25vLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVu
dGF0aW9uL25vLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA2NjUxZjUxNmRlOWY0MTIwNjkyM2Y4YWJk
ODU5ZjRjZTAzMWJlOWMzLi41ZWM2NDkxODJmNGY3MjA5OTY2ZjYwYmI4N2Y5N2UyZGI5ZTVhMTM2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1w
YWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRp
b24vbm8tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24t
bmF2aWdhdGlvbi1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvdGltZXIt
cmVzdW1lLW9uLW5hdmlnYXRpb24tYmFjay5odG1sCmluZGV4IDMwMmE0MjQwYjhkM2MxYjEyNDUx
MmYxMTEyNWZkM2Y2OWY4NmNiMWYuLjJhZWM4NDg2OWRiMTZiMjlkZTYzYTgzODZkYWYyNDBjZDlh
NDdkYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1
bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8aHRtbD4KIDxzY3JpcHQ+CiB2YXIgdGltZW91dFZhbHVlID0gMTAwOyAvL21zCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbnVubG9hZC1iYWNrLXRvLXBhZ2UtY2FjaGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNo
ZS5odG1sCmluZGV4IGYwMTg0ZjM3YzZiYTA5ZTMwMzIxZTk4MGYyNjY1YzJjYzY1MjJlMDQuLjI0
YzBhMWVmNDNmYTlmNzIxZDVlMzlhOTAwM2RiY2Q3MmVjZDViOGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNoZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNoZS5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9wYWdlaGlkZS10aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdl
aGlkZS10aW1lb3V0Lmh0bWwKaW5kZXggNDgwMWVlODg2OTE4NTgzN2YxOWU3YzZmMTNhZTljNWFl
ZDEyMTU2Zi4uYTE3M2RiMzhhNTU5YTBmYjg5MDVkYzhhNTA1ZDNkZWQzYjBhM2U2ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXRpbWVvdXQuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8aHRtbD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9wYWdlaGlkZS14aHItb3Blbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhp
ZGUteGhyLW9wZW4uaHRtbAppbmRleCBhM2I5YjVjZTM3ZTA0ZWQyODFhYjJkYjUzNmUxOTFjMjNj
NzBlM2ZmLi41MTdmNDFiNjg5OTM4NDA1ZTQzNGViNjkzZGU5MDEwMzI2MDM5MWVhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlaGlkZS14aHItb3Blbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXhoci1vcGVuLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPGh0bWw+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdp
dGgtZnJhbWVzLmh0bWwKaW5kZXggNDIxMjg2ZDUwMDA5ODMzZjU1MGZiODE1MDJkYmRmMjJiNmQz
MTI4OC4uZjJmMzIwMTI2ODBlMDJhZWNjZjUxNjRkNzJlYjBiNzc1ZjVkOGFjMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNo
ZWQtd2l0aC1mcmFtZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hv
dy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxodG1sPgogPGJvZHk+CiBUZXN0IHBhZ2VzaG93L3BhZ2VoaWRlIGV2ZW50IGJlaGF2aW9y
IHdoZW4gbmF2aWdhdGluZyBhd2F5IGZyb20gYSBwYWdlIHdpdGggZnJhbWVzLCBwdXR0aW5nIHRo
ZSBwYWdlIGluIHRoZSBwYWdlIGNhY2hlLCB0aGVuIGJhY2sgdG8gaXQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1j
YWNoZWQuaHRtbAppbmRleCBjZjkyMWJmY2Q4YmYxYzEyOTEwNjcxZGE1ODFmNGQyMjNjOWY4YTJh
Li4wY2JiYWFjNTk1MTYwZDQyOWVlN2U1NWViY2NhODhlYjlhYzhmZmRlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJh
Y2stY2FjaGVkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHA+VGVzdCBwYWdlc2hvdy9wYWdlaGlk
ZSBldmVudCBiZWhhdmlvciB3aGVuIG5hdmlnYXRpbmcgYmFjayB0byBhbiBjYWNoZWQgcGFnZS48
L3A+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3VzcGVuZC10aW1lcnMuaHRtbAppbmRleCAzYzg1ZjQ4MWU0MzY4ZDRmMDMxMzYz
ZmQzOTIxNWM1NDk3NTFlOWQ4Li42ZWE4OTgxZjE0YWZjNjQ0NjZlMmQyYTg4ZjI3NGY2NjVkNThk
ODM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N1c3BlbmQtdGltZXJzLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12
YWx1ZS1kb2VzLW5vdC1jbGVhci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29t
cGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12YWx1ZS1kb2VzLW5vdC1jbGVhci5odG1sCmluZGV4IGIz
ZmRkMmFlODVkYzNkYzU5MTA0MzIyZDAwODI0ZGEzZmE2YWY3MzUuLjQ1NTYwNzEyOGZhOTQ0NGM4
NzY3YjE5YjA3MDk3MWU3N2Y5NGU3NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvYXV0b2NvbXBsZXRlLW9mZi13aXRoLWRlZmF1bHQtdmFsdWUtZG9lcy1ub3QtY2xlYXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2F1dG9jb21wbGV0ZS1vZmYtd2l0aC1kZWZh
dWx0LXZhbHVlLWRvZXMtbm90LWNsZWFyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4K
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9mcmFtZS1jcmFzaC13aXRoLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2ZyYW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCmluZGV4IGEyOTljZjg1
M2YzNzU0YzIzNzg2ZGE3NjQwOTYzMDE0NTcwMjViOGEuLjZkZjBlNDJlMWEzMjA2YmQ3Yzg3ZDhk
YWQ2ODg2NWZjMzUzZDQzNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZyYW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxo
dG1sPgogPHNjcmlwdD4KIHdpbmRvdy5maW5pc2ggPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS11bmxvYWQtbmF2aWdhdGUtYW5kLXNldFRpbWVv
dXQtYXNzZXJ0LWZhaWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXVubG9h
ZC1uYXZpZ2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sCmluZGV4IDM4MzJkNjdk
ZjUzN2ExYzViYmE3Njg4YWNjNTQzZmU5OTk2NTRiODIuLmRlN2ZmZWQ4NTUyMDRmZDA3MTNhMDUy
NmM5OTdlYzQ5ZGM5NzAzMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXVubG9hZC1uYXZpZ2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXVubG9hZC1uYXZpZ2F0ZS1hbmQtc2V0VGlt
ZW91dC1hc3NlcnQtZmFpbC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3BhZ2Ut
aGlkZS1kb2N1bWVudC1vcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9wYWdlLWhp
ZGUtZG9jdW1lbnQtb3Blbi5odG1sCmluZGV4IDk1YzE0YWIzYTVlMGFkZDEyYmQwMjQ0ZTNhMWU1
ZWRiYTdkNjIzMmYuLmM1MDQ5MmFhMjc2MzEyZjc3YjgzZTQ3NmE0ZTFlYzY5NzFmNmRkN2MgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3BhZ2UtaGlkZS1kb2N1bWVudC1vcGVu
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcGFnZS1oaWRlLWRvY3VtZW50LW9w
ZW4uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIFBhc3NlcyBpZiBpdCBk
b2VzIG5vdCBjcmFzaC4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9yZXN0b3JpbmctcGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLXZpYS1zdHls
ZS11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNh
Y2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCmluZGV4IGRi
MWQxNGU4NmQxZjJmZjgxNjFlYWVlMWFjOWQ4ZjA2MjdmYjBjYmEuLmJkMDNlOTMzMGU0OTE1MDRh
NTU4MjMzY2FjZTZjMjUwNTlmN2I3YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxl
LXVwZGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdl
LWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KQEAgLTEwLDcgKzEw
LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgdGVzdFJ1bm5lci5zZXRD
YW5PcGVuV2luZG93cygpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlQ2FjaGVTdXBw
b3J0c1BsdWdpbnModHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEJhY2tGb3J3YXJk
Q2FjaGVTdXBwb3J0c1BsdWdpbnModHJ1ZSk7CiB9CiAKIGxldCBuZXdXaW5kb3c7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0b3JpbmctcGFnZS1jYWNoZS1zaG91bGQt
bm90LXJ1bi1zY3JpcHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0b3Jpbmct
cGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLmh0bWwKaW5kZXggYzE0NWI1MDk1YjAx
ODg4MDJjMDU0YjAxZmY4YzAzZDNiMGZiZDllNS4uNjcyNWU2NGQwN2Y4ODcxYjYzZmNkNTg0ZmU2
ZGRlMWUyN2FiMTE0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzdG9y
aW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2NyaXB0cy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlw
dHMuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcGFnZS1jYWNoZS1jcmFzaC1v
bi1kYXRhLXVybHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNy
YXNoLW9uLWRhdGEtdXJscy5odG1sCmluZGV4IDExODdjNjBlNTNmOGRhZGY4NGEwYTMzNTZlNTE2
YjczMDFjNzMwODYuLjIxOTFlZWQ0ODQ5MThmOGQ1YmNlMGI3MTA2OGVlOTJjNThjMWY4NDcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNyYXNoLW9uLWRh
dGEtdXJscy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNy
YXNoLW9uLWRhdGEtdXJscy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPHNjcmlwdD4K
IHdpbmRvdy5maW5pc2ggPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hhcm5lc3MvdXNlLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91
c2UtcGFnZS1jYWNoZS5odG1sCmluZGV4IGEwMjNiY2E5MWQzZjEyNWJmZTUwZDYwNTM4MWExNTRj
MWY2OGFiOTUuLjYwNTQ1MjIzMmU3MGU0MTU3ODVlYTg1NWVkMmM3NzM0YjZkMGJlMzYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91c2UtcGFnZS1jYWNoZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91c2UtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDxodG1sPgogPHNjcmlwdD4KIHdpbmRvdy5maW5pc2ggPSBmdW5jdGlvbigpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvYmFjay1mcm9tLXBhZ2Utd2l0aC1mb2N1
c2VkLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2JhY2stZnJvbS1wYWdl
LXdpdGgtZm9jdXNlZC1pZnJhbWUuaHRtbAppbmRleCA2ZDNmODRiMzVkNWMxZDkzNmM3YzFiMzhk
MTU1ZWUzYWZiMTA5ZThiLi5lODBlNjJmMmE4MmZlNTRhMGE2MmVmNzM5ODRhMTQ4MTcxZDU2MmZj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvYmFjay1mcm9tLXBhZ2Utd2l0
aC1mb2N1c2VkLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9iYWNr
LWZyb20tcGFnZS13aXRoLWZvY3VzZWQtaWZyYW1lLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L2dvLWJhY2stdG8taWZyYW1lLXdpdGgtcGx1Z2luLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvZ28tYmFjay10by1pZnJhbWUtd2l0aC1wbHVnaW4uaHRtbAppbmRleCAz
YzQ0YWQ1MjY1ZmUyYzY4MDY5MDU3ZjY1ZDI2MDE0ZmViMjI0MmFmLi41ZGRhYjgzZGJiM2I3MWQ2
NzY5NzZjNTc4ODVjMzQ1OWQ5NWY1ZTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvZ28tYmFjay10by1pZnJhbWUtd2l0aC1wbHVnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvZ28tYmFjay10by1pZnJhbWUtd2l0aC1wbHVnaW4uaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogICA8aGVhZD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9nby1iYWNrLXRvLW9iamVjdC1zdWJmcmFtZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0
bWwKaW5kZXggZjA4ZDA1NjFkMGM0ZjVhZTE3Y2M4MWUzNjIyNjg0MjI2MzVjNjBkYi4uYWYwODM1
YjU1NDFjMTI2ZTY1NDliYTA2ZTFmNmI3Y2IxN2NjOWNhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay13aGlsZS1wZGYtaW4tcGFn
ZWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdoaWxl
LXBkZi1pbi1wYWdlY2FjaGUuaHRtbAppbmRleCAxYjU4MWZhOTFkNDVkZTRlNmJmNmY5ZmIxYTc5
ZjI5MzY0NTU5ZDZkLi5jZmJjMDY3NWJiYjAzYWVmN2I4ZDJjNjAzOTg4MmNlMzEyYjY1MzMwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdoaWxlLXBk
Zi1pbi1wYWdlY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9y
eS1iYWNrLXdoaWxlLXBkZi1pbi1wYWdlY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1NZXNzYWdlUG9ydC1wZW5kaW5nLW1lc3NhZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLU1lc3NhZ2VQb3J0LXBlbmRpbmctbWVz
c2FnZS5odG1sCmluZGV4IGNlY2Y2MDQwYmFjMWQzOThhYWIyNDI2ZTAyYzhkYjA0ZWUzNjU2MWQu
LmEwODY1OGU1NWFlMzY0MTBkOGVlMzJlMWNkOTUwMTZjMDMzZWNlY2QgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLU1lc3NhZ2VQb3J0LXBlbmRpbmctbWVz
c2FnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLU1lc3Nh
Z2VQb3J0LXBlbmRpbmctbWVzc2FnZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLWFmdGVyLXdpbmRvdy1vcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1hZnRlci13aW5kb3ctb3Blbi5odG1sCmluZGV4IGZjZDVkZTQwZDFm
YWIzZDUwZDA2ZDBlZDM0Mzg1MmFhNGQ1YTY4ZjkuLjQ4OWZmODRjMzEzMjRmOWNjZWVhZjZhOWE3
MjcwYjM3MTYzNGJhODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLWFmdGVyLXdpbmRvdy1vcGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtYWZ0ZXItd2luZG93LW9wZW4uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1iYWNrLW5hdmlnYXRpb24tY3Jhc2guaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWJhY2stbmF2aWdhdGlvbi1jcmFzaC5odG1s
CmluZGV4IDAyZjgxNzA4YjlmMGIzMmY0ODcxZjBhNzc2YWFmNmQyZGRhNGIzMGIuLmM3OGQ1MzZi
ZjdhNmJlMTU1Yzk3OGEyZTMwYTI2Njk5MWI3ZDc0YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWJhY2stbmF2aWdhdGlvbi1jcmFzaC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWJhY2stbmF2aWdhdGlvbi1jcmFz
aC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5n
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFy
aW5nLWV4cGVjdGVkLnR4dAppbmRleCA2Mjc5ZGE5MjZlODRkMjIzODRiMjFkOTJiZDNiMzJhYmUx
NGI5MzI4Li44ZTc5MjcxYmVlMzI3MWQwZDdlZjZjOTNiMmQ2NzEzMjUyMmJiNzRjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmct
ZXhwZWN0ZWQudHh0CkBAIC02LDkgKzYsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogcGFn
ZXNob3cgLSBub3QgZnJvbSBjYWNoZQogcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQogcGFnZXNo
b3cgLSBmcm9tIGNhY2hlCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMucGFnZUNhY2hlU2l6ZSgpID4g
MCBpcyB0cnVlCi13aW5kb3cuaW50ZXJuYWxzLmNsZWFyUGFnZUNhY2hlKCkKLVBBU1Mgd2luZG93
LmludGVybmFscy5wYWdlQ2FjaGVTaXplKCkgaXMgMAorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmJh
Y2tGb3J3YXJkQ2FjaGVTaXplKCkgPiAwIGlzIHRydWUKK3dpbmRvdy5pbnRlcm5hbHMuY2xlYXJC
YWNrRm9yd2FyZENhY2hlKCkKK1BBU1Mgd2luZG93LmludGVybmFscy5iYWNrRm9yd2FyZENhY2hl
U2l6ZSgpIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xl
YXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5n
Lmh0bWwKaW5kZXggOGFhOTcyYTJjOTU5ZmY1MTEwMzU4N2JjOTIyNGEyNmNlNjhlZTg1Yy4uZGY4
YjQ3YmFlMmNiMDllN2VkMjY2ODMxYTQ1NDM4YmE4YmM0MjExMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmcuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KQEAgLTEzLDkgKzEzLDkgQEAgaWYg
KCF3aW5kb3cuaW50ZXJuYWxzKQogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93Iiwg
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICBkZWJ1ZygicGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNp
c3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIGNhY2hlIik7CiAgICAgaWYgKGV2ZW50LnBlcnNp
c3RlZCkgewotICAgICAgICBzaG91bGRCZVRydWUoIndpbmRvdy5pbnRlcm5hbHMucGFnZUNhY2hl
U2l6ZSgpID4gMCIpOwotICAgICAgICBldmFsQW5kTG9nKCJ3aW5kb3cuaW50ZXJuYWxzLmNsZWFy
UGFnZUNhY2hlKCkiKTsKLSAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMucGFnZUNh
Y2hlU2l6ZSgpIiwgIjAiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cuaW50ZXJuYWxz
LmJhY2tGb3J3YXJkQ2FjaGVTaXplKCkgPiAwIik7CisgICAgICAgIGV2YWxBbmRMb2coIndpbmRv
dy5pbnRlcm5hbHMuY2xlYXJCYWNrRm9yd2FyZENhY2hlKCkiKTsKKyAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuYmFja0ZvcndhcmRDYWNoZVNpemUoKSIsICIwIik7CiAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIH0sIGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRt
bAppbmRleCBmZmU1YjI5OWE1NmM4MmMyMDZlY2U4MzUzNmUyM2E0MmZkYTdjMGJjLi5hYWFlNTEw
ZDU3MTJmMWNkYzgzZDUwMzgyMGNkOGFlMjk0ZWZjZDdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29udGV4dC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZUltYWdl
Qml0bWFwLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVJ
bWFnZUJpdG1hcC5odG1sCmluZGV4IDk5YjY1MTM2OTZmZDc2OWRhNzg1ZTdjYzNjODU0ZDI4MWMx
NTEzZWQuLjY5NmZkZGM2N2ZjOTk2YjhlOTU2MTI4ZTcwMTA1NTZlZjVkZDZlMjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZUltYWdlQml0bWFw
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1h
Z2VCaXRtYXAuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1j
cmVhdGVPYmplY3RVUkwtdXNpbmctb3Blbi1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlT2JqZWN0VVJMLXVzaW5nLW9wZW4tcGFuZWwuaHRtbApp
bmRleCBiZmNjMmU5ZGE4ZjkzNmUyZmZkNjVjNmM1MDM2ODFiZDVhMDRiZjgxLi5mMGZkNmViNzZk
NzM1NTY0YTZhMjQzZDY2ZWQzOWQyY2Y4ZDkxZjA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwtdXNpbmctb3Blbi1wYW5lbC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZU9iamVj
dFVSTC11c2luZy1vcGVuLXBhbmVsLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtY3JlYXRlT2JqZWN0VVJMLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwuaHRtbAppbmRleCBhNjI4YzgyYWMzMDgzN2Ex
ODFiNmEyMDYxMjNkMGUxMTQ2YTQ0YTZmLi41NTZjMTk1MGMxYTg5ZGM4YTFlNmZkMmZkM2JiYWM5
NjcyZjM4MTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1jcmVhdGVPYmplY3RVUkwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUg
aHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1kZXN0cm95LWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1kZXN0cm95LWRvY3VtZW50Lmh0bWwKaW5kZXggNmQxZDdiZjczMjhh
MWM2YzEwNGE0MDI5MjYzZTU0MTJjMmE4Y2IzNS4uOTlkNWU1MzEyMjU5NzNmNTYwZDE4N2Y0ODUy
OTNlZDZkMDNmODIzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtZGVzdHJveS1kb2N1bWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLWRlc3Ryb3ktZG9jdW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZWxlbWVu
dC1zdGF0ZS1mb2N1c2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1lbGVtZW50LXN0YXRlLWZvY3VzZWQuaHRtbAppbmRleCBmZGVmNWVmNjNjOWIzNTI0YTZhMDE3
NDBhNTUwNjkzODc4MGE4Y2I1Li5mY2Q5MWU1ZjU2YjFmZDhhZmY5NDE2YmZiZTI1ZWE0MTMyMGQw
MzM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1lbGVt
ZW50LXN0YXRlLWZvY3VzZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1lbGVtZW50LXN0YXRlLWZvY3VzZWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1leGVjdXRlLXNjcmlwdC1kdXJpbmctcmVzdG9yZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZXhlY3V0ZS1zY3JpcHQtZHVyaW5n
LXJlc3RvcmUuaHRtbAppbmRleCAyZTM0ZjQ5NjJjOTRmYzBlZTZkODk2NzBmYTZlNWUyM2ZhN2Qz
ODRjLi5jNDdjNzRlYjZkZDU1MTRjZmZkMzNjYTYwZDA5MzQ1ZWNkZDI4NmU5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1leGVjdXRlLXNjcmlwdC1kdXJp
bmctcmVzdG9yZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWV4ZWN1dGUtc2NyaXB0LWR1cmluZy1yZXN0b3JlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLW9uZXNob3QuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVz
aG90Lmh0bWwKaW5kZXggMGNlNDgwMzhkNWVhOTgwNzY0YTA4YWNkOTU2MDY2YzdhZjllNGM2Mi4u
OGRmOTgwOGUzNDA3NWU2OGJmNWIzNGI5Nzg0ZWU4MWJhNjAyMjQxMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLW9uZXNo
b3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2Nh
dGlvbi1hY3RpdmUtb25lc2hvdC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS13YXRjaGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hlci5odG1sCmlu
ZGV4IDk0YzA3NzJlNGY4MDQ5ZTM1YzdmMjcwOTFiZDI2Y2NmOTYxMmI4ZTAuLjMwOTA1YzY0NmFm
NjA5N2JmMjYxZGYxNDk3YWQ4MGViNmQ4OTUwNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS13YXRjaGVyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZl
LXdhdGNoZXIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1n
ZW9sb2NhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2Vv
bG9jYXRpb24uaHRtbAppbmRleCA0ODQ2YWI2NDc4ZjU0MmRmNmY3Nzc4YjQ0NWI5ODYzMjQzYTBh
ZDI0Li4zZDA2NDE2NDY4ZmM1MTFmZWE2MTAyODExOGExNDBiZmM5M2U3ZmIzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWlmcmFtZS1qcy11cmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWlmcmFtZS1qcy11cmwuaHRtbAppbmRleCBjY2M2YTUzOWQwMTA3Y2Y1
MGU1NjdiZjhkMzRmMTAyYzljNWEzNDY1Li40NWVjM2E2YzgzNmQwYWMxY2NmZThiMGFjZTE2MGNl
MjgyYjUxNzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1pZnJhbWUtanMtdXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtaWZyYW1lLWpzLXVybC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWluZGV4ZWQtY2xvc2VkLWRiLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sCmluZGV4IGNjMDk3NjE1ZmNjMDFk
MjJhMmIzNjE2YmQxODZjNDA0Yzk4Nzg1MTMuLmQwNzQxMjBhNDdhMjVjNWUzODkxNjBmM2IxNzU1
MWE5MzFiNzQ4Y2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLWluZGV4ZWQtY2xvc2VkLWRiLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtaW5kZXhlZC1jbG9zZWQtZGIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1vcGVuZWQtZGIuaHRtbAppbmRleCBjYWE3
N2NiZmE5Njg3NWFjNWRmZjlmMmFiY2IzZTkwNjdhMGQ2NDU2Li43ZDZiZGIyYzBhZjdjY2NjMDcx
ZjQzM2E3NGU0YzE2MWE4YmIwNGU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9wYWdlLWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC0yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2UtY2xvc2Vk
LTIuaHRtbAppbmRleCBkOGUzYzRmMzAzNWIzZWE1MTQ4MzE2ZmE0YWExNGUwNmEzZTM2ZjM4Li5k
NTE2MWNjYTE3NTUzYTE0YTcyYjhkYjI0MGNiNmE4YTNjNjE2YTdmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2UtY2xvc2VkLTIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2Ut
Y2xvc2VkLTIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1t
ZWRpYS1zb3VyY2UtY2xvc2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1tZWRpYS1zb3VyY2UtY2xvc2VkLmh0bWwKaW5kZXggODE4ZjAyNjUyZDgyOGMzOTNiNDlm
MDFiNzA2NmUyZjMwYjkyYmU2Ny4uMjhhN2MxZjUxYTUwMjg0MWJlOWYxNDExYzg5MzFhYjJhZmUw
MGY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVk
aWEtc291cmNlLWNsb3NlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLW1lZGlhLXNvdXJjZS1jbG9zZWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2Utb3BlbmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2Utb3BlbmVkLmh0bWwKaW5kZXggOTU1
YWY5NWIyZjE5MTM2OTk2MTBlYTI5NmMyZGZhMTljYWUxOGZlMS4uMGI1ZjZhYTU2ZmE3ZWQxZmY5
YThmMDI3MTRkZjczZjNkYTgxMzRhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLW9wZW5lZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1vcGVuZWQuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0ZS1kdXJpbmctcmVzdG9y
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbmF2aWdhdGUtZHVy
aW5nLXJlc3RvcmUuaHRtbAppbmRleCA5Nzk2N2FlMzhhOWRmNzMyZWZjN2MxZmVkOGRiYjdmNGEy
NWNiNWMwLi5mNDg4ZTQ1YTMwYWU3ZjViYjViYWRlNDE3MmNlYjM4ZGEwYWYxZGRhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0ZS1kdXJpbmct
cmVzdG9yZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5h
dmlnYXRlLWR1cmluZy1yZXN0b3JlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpAQCAtMTMsNyArMTMsNyBAQCBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKICAgICB0ZXN0UnVubmVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAg
aW50ZXJuYWxzLmNsZWFyUGFnZUNhY2hlKCk7CisgICAgaW50ZXJuYWxzLmNsZWFyQmFja0Zvcndh
cmRDYWNoZSgpOwogfQogc2Vzc2lvblN0b3JhZ2UudGVzdFN0YWdlID0gJ2luaXRpYWwnOwogbGV0
IHBlcnNpc3RlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLW5vbi1zdXNwZW5kYWJsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLW5vbi1zdXNwZW5kYWJsZS5o
dG1sCmluZGV4IGE2MmU5N2I0YzhjYzJkYTk5YTNiZjhmN2RjZDhkZmQ0NDVhMTg1ZmEuLjUzZGJh
Y2I0YzY3YzI4Mjk2MzM3ZTNjMDRkNTM2ZWUxOTVmNGI4ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1ub24tc3VzcGVuZGFibGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRp
b24tbm9uLXN1c3BlbmRhYmxlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtbm90aWZpY2F0aW9uLXN1c3BlbmRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbAppbmRleCA1
MWNiYTVkNGEwMTUwZjM4ZDVkMjhjYmYwZGVmMWYwNTIwNjkwM2U2Li4wNGI3YmQ2Y2YyOGI3MzBh
NDdmYWExNmRmYmFhNjFkYzc1ZmIyN2FjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUu
aHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFn
ZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1yZW1vdmVkLXNv
dXJjZS1idWZmZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXJl
bW92ZWQtc291cmNlLWJ1ZmZlci5odG1sCmluZGV4IDBlMjhhY2Y1NGE0OWI2MmFiNmRiMThiNTgx
YmY3YTdhZTZlYzc0OGMuLmJhMWRjNzQ5MzcyNTg5ZTMyZTU1ZDFiOTA2MDdiZjY1ZWRkM2JiZTQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXJlbW92ZWQt
c291cmNlLWJ1ZmZlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLXJlbW92ZWQtc291cmNlLWJ1ZmZlci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLXJ1bm5pbmctYXVkaW9jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sCmluZGV4IDc5
YjUyNTU2YWYwYzUzMzVhMmEwOTIyYWE0ZDQ4MDM3MmQwZTQzODUuLjQ5ZWFjZmQ1Mzk5YzM2YjI1
ZGJhY2U0Yzg1YjlmZjQ1ZDM4NjE3YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLXJ1bm5pbmctYXVkaW9jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbApAQCAt
MSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRy
dWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdWJmcmFtZXMtd2l0aC1wcm92
aXNpb25hbC1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1z
dWJmcmFtZXMtd2l0aC1wcm92aXNpb25hbC1sb2FkLmh0bWwKaW5kZXggY2I5NDUxZmJkOTZkM2Rk
YTkyY2NjZTJiYmM1NjBjZDA2MGRlYjc2Yi4uMzZkNTBmZDkyNDc1ZTlkN2ViOWViNzhlZDIzYmY2
NzBlNzAxZDBjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtc3ViZnJhbWVzLXdpdGgtcHJvdmlzaW9uYWwtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1lcy13aXRoLXByb3Zpc2lvbmFsLWxvYWQu
aHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFn
ZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5kZWQt
YXVkaW9jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1z
dXNwZW5kZWQtYXVkaW9jb250ZXh0Lmh0bWwKaW5kZXggMzE1NDQwMWNlOTMyNDYwZTFlMDZmNmI2
NGY4ZjZmOGIxMGZmNmRjMy4uMTdlY2MwYTQ5NjQ3NjdhMGVkYzFmMDQ1YTI0Y2M0NDZjOTg5MmEy
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3VzcGVu
ZGVkLWF1ZGlvY29udGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLXN1c3BlbmRlZC1hdWRpb2NvbnRleHQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1uby10cmFuc2FjdGlvbi1kYi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2Utbm8tdHJhbnNh
Y3Rpb24tZGIuaHRtbAppbmRleCBhNGY1NjU1NTAxNzJhMWMxNzQ4MjdiMzc4OTQ2MWQ0N2JjM2Zi
YTMxLi4yZDE0MTQ0YjFhYjA0YzU5ZDk5ZDVjNWYxZTZjY2JkM2RjMDU0Njc0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1uby10cmFu
c2FjdGlvbi1kYi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LXdlYmRhdGFiYXNlLW5vLXRyYW5zYWN0aW9uLWRiLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGlu
Zy10cmFuc2FjdGlvbi5odG1sCmluZGV4IDBlYWIyM2RmYjg3ODgyNTVjNmI3ZTY3ZDM5YjE1MDI4
MGU5NGE3NjMuLjU1OTYzYmNmZjQ0OTc3OGEyMmU4MTA3ZGY5NzkyYzFmMjIyNmExNzIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBl
bmRpbmctdHJhbnNhY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdpdGgtb3BlbmVyLmh0bWwKaW5kZXggZjhlNDBl
NDZmYmYxZWQyNzg3OGZjN2ZlZmQ0MDQ2OTY2YTNjYTc0My4uYTJmYjNiY2NhZDc3NTFlYzA5OGNl
N2Q0Mjk5MTUzZWNmNGE1MmVlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS13aXRoLW9wZW5lci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlaGlkZS1yZW1vdmUtaWZyYW1lLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZWhpZGUtcmVtb3ZlLWlmcmFtZS1jcmFzaC5odG1sCmluZGV4IDVjYzUxNDNm
Y2ZlMGY2ZTRiZTkyZjA1MzFmNzI5MjFkM2M5ZThmMDYuLjgwODY2ZDFmMDNhNzhlNjNmYWJjOWFh
NDNkYTllMzhhZmQ4ZmRhYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlaGlkZS1yZW1vdmUtaWZyYW1lLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2VoaWRlLXJlbW92ZS1pZnJhbWUtY3Jhc2guaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdpdGgtaWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93
LXdpdGgtaWZyYW1lLmh0bWwKaW5kZXggZmQ2MmJkMzgyODY2NmE4NzZiMGRlZTFjYjRhNWQzMjJh
ZGE3NzdmYi4uNDk0ODM1YjhiZDY0YjIxYTlkNmQxNjBiMzI3OTFhMWVmM2NmODJiMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLXdpbmRv
dy13aXRoLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJj
ZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJhbWUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdpdGgtb3BlbmVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdp
dGgtb3BlbmVyLmh0bWwKaW5kZXggYmE2MzAxMWYxMDAwNDcwNGNiNWMzZjE2ZTRlMjg3ODcxOWIw
NzZiYi4uM2NhZjM2ZTBlMWYzYzFlMmMwNmRmMWRiYmZiMjgyYTU1NzI3ZmNjNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLXdpbmRvdy13
aXRoLW9wZW5lci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMv
cGFnZS1jYWNoZS13aW5kb3ctd2l0aC1vcGVuZXIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvdGltZWQtcmVmcmVzaC1pbi1jYWNoZWQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS90aW1lZC1yZWZyZXNoLWluLWNhY2hlZC1mcmFtZS5odG1sCmluZGV4IDI0
MjgwMTZjYTY2YzkwNjdhMzIwMTIxN2U2YzRmN2YwYjI4NDE5NDcuLjAzMzQxYWM3MDU3M2YwY2Y5
MDQ3NGE2YTYwMWE4NTU2NDM1ZTg2NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS90aW1lZC1yZWZyZXNoLWluLWNhY2hlZC1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS90aW1lZC1yZWZyZXNoLWluLWNhY2hlZC1mcmFtZS5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDxib2R5IG9ubG9hZD0icmVkaXJlY3QoKSI+CiA8IS0tIE5lZWRzIHRvIHRha2Ug
dHdvIHNlY29uZHMsIGJlY2F1c2UgYSBmYXN0ZXIgcmVmcmVzaCB3b3VsZCByZXN1bHQgaW4gbm90
IGNyZWF0aW5nIGEgYi9mIGl0ZW0gZm9yIHRoZSBuYXZpZ2F0aW9uIC0tPgogPGlmcmFtZSBzcmM9
J2RhdGE6dGV4dC9odG1sLDxtZXRhIGh0dHAtZXF1aXY9IlJlZnJlc2giIGNvbnRlbnQ9IjI7IFVS
TD1hYm91dDpibGFuayI+PHNjcmlwdD5pZiAod2luZG93LnRlc3RSdW5uZXIpIHsgd2luZG93Lm9u
cGFnZWhpZGU9ZnVuY3Rpb24oZSl7YWxlcnQoJmFwb3M7cGFnZWhpZGUgJmFwb3M7ICsgZS5wZXJz
aXN0ZWQpfTsgfTwvc2NyaXB0Pic+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0
bWwKaW5kZXggODI4YmNiYWFlYmM0NzkwOTkwNWJkZDg4N2E1YzkyZDk5ODRjZGNlMy4uNjRiMTUx
MDU5YmVhMjIyNWZiY2YxZTQ4NTZjNmEyZGNhNWMzYmYwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXJlc3RvcmVkLWZyb20tYmZjYWNoZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJm
Y2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZXMtd2l0aC11bmxvYWQtaGFuZGxlcnMtaW4tcGFn
ZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWVzLXdpdGgtdW5sb2Fk
LWhhbmRsZXJzLWluLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBiODFmODc3M2EyOGUzOGRlOWVjNTQy
YWEwZjk2YzYwNWYyZTUxMzdmLi5hMzdkMjdlYmRkZmIwODBhODg2NGY1NjhiOWUyZTc2N2Q3NzMx
YWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZXMtd2l0aC11bmxv
YWQtaGFuZGxlcnMtaW4tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL2ZyYW1lcy13aXRoLXVubG9hZC1oYW5kbGVycy1pbi1wYWdlLWNhY2hlLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9pbWFnZS1pbi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9pbWFnZS1pbi1wYWdlLWNhY2hlLmh0bWwKaW5kZXggN2Q0MzEwM2IzMzJjMWMz
YjllYzVmYTVjZjJjZWYxMjA3OTE5NDMzYy4uOTdjOWJjMDExNGFhMjVlZGRmOGUzM2NlNmMwOTdh
ZDA3NzI2MGM4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW1hZ2UtaW4t
cGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ltYWdlLWluLXBh
Z2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9pbnB1dC1lbGVtZW50
LXBhZ2UtY2FjaGUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2lucHV0LWVs
ZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5odG1sCmluZGV4IGM4NmIyNTg5Y2RlMjYzOTg1M2VlYzE2
YzdjM2MzMTdjN2VlMjQ3NjMuLjdmMWJmZTNjYmFiMmFlZjA3ZDM2MWE3M2JmZDIwOTYyMjM0MGZi
ZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2lucHV0LWVsZW1lbnQtcGFn
ZS1jYWNoZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2lucHV0LWVs
ZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhl
YWQ+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdh
dGUtd2l0aC1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLW5ldy10YXJnZXQtYWZ0ZXItYmFj
ay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbAppbmRleCBjNThjNzI2ZDBjOWEzNGUxODM2YzY3ZmFi
MmRjMzI1Y2UyNDYyZWM2Li4xMDQ3ZDA3ZGY5ZGMxNjA4YjljZmExYTA1NmFkNzYzYzI0MDQ5OGQ4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLW5ldy10
YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJk
LW5hdmlnYXRpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1s
PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13
aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJn
ZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbAppbmRleCAyZmMyMzk1NDQ2Mzlj
MWYxNmM2ZjdkZDA5ZTcyNGQ1NGZjZjRiOGM1Li5jMmI3MDUzMTFmNWJmNDEyOTZhZTJlZTBmNDg4
OGI0OTBjZDgxNDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0
ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1u
ZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Njcm9sbC1wb3NpdGlvbi1yZXN0b3JlZC1vbi1iYWNr
Lmh0bWwKaW5kZXggNzgwZWM2MDQwOTU1NDYxYzRlNmMwNzFiYWE4M2RlODU4NjZiNWU1Ny4uMTEz
MTRhNTNmMjhiOWVlZTMxYzM5ZGMxOGJlNzA0MDM5MDZkNjZiOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zY3JvbGwtcG9zaXRpb24tcmVzdG9yZWQtb24t
YmFjay5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL25vLXBvcHN0YXRl
LXdoZW4tYmFjay10by1zdGF0ZWxlc3MtZW50cnktd2l0aC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRv
LXN0YXRlbGVzcy1lbnRyeS13aXRoLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBiYjA0NjBiMTE3NGRi
M2I1Y2M4OTIyZTUxM2Q4Nzc5ZjM1ZTQwMjEzLi5mMDQ1MzgzYjQ4YmJkMjI5OGE3MjhiOThiOGY0
YTZjNTZiNGM1YTQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9i
amVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRvLXN0YXRlbGVzcy1lbnRyeS13aXRoLXBhZ2Ut
Y2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8t
cG9wc3RhdGUtd2hlbi1iYWNrLXRvLXN0YXRlbGVzcy1lbnRyeS13aXRoLXBhZ2UtY2FjaGUuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvcG9wc3RhdGUtZmly
ZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9i
amVjdHMvcG9wc3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWwKaW5kZXggNTQwM2MxZjdk
OTY4YzYzM2I1ZWYyNTM2NGZjYzg3N2E1ZjgxZGRhMS4uOGU0MDMwYzQxNTJkMTA2NjVlOWNjOTA3
NzVlOGMxOWM3MDIxYzQ0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3Rh
dGVvYmplY3RzL3BvcHN0YXRlLWZpcmVzLXdpdGgtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wb3BzdGF0ZS1maXJlcy13aXRoLXBhZ2Ut
Y2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5
b3V0LWFmdGVyLXVubG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvdW5zY2hlZHVs
ZS1yZWxheW91dC1hZnRlci11bmxvYWQuaHRtbAppbmRleCA2OTJjNzA2ZWE0NGI3OWM0NWJjMmNm
Mzc5ZjBjM2Q1NDIyNTBlMjdhLi4zMTEwZWFiNDE1ZWY5MzYyZWEzMTc5NDJkMTY2NjQxMWMwMzA2
NDU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5
b3V0LWFmdGVyLXVubG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Vuc2No
ZWR1bGUtcmVsYXlvdXQtYWZ0ZXItdW5sb2FkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+
CiA8Ym9keT4KIDxwcmUgaWQ9ImxvZyI+PC9wcmU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci93aW5kb3ctcHJvcGVydGllcy1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3dpbmRvdy1wcm9wZXJ0aWVzLXJlc3RvcmVkLWZy
b20tcGFnZS1jYWNoZS5odG1sCmluZGV4IDkzNDM1YTUxNzU5ZDQ3OGU1YTFkMDM1NjE1ZjUwNTA0
NDA0MWZhMGQuLjM2NTA2ZTZjZjhkMjU1OWUzYTNjMWJlNmNiMDA5MzA1YzM5MmY3NGMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3dpbmRvdy1wcm9wZXJ0aWVzLXJlc3RvcmVk
LWZyb20tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3dpbmRv
dy1wcm9wZXJ0aWVzLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAl0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1wYWdlLWNhY2hlLmh0bWwKaW5kZXggZDJlOTNhYTk2MTU5MmIw
OTkzNjU1OWNhNTIwNGFjYTU2MDc4NjgwOC4uNzhiMjgxY2Q1M2FjZWI3M2M3MGJiZDMzNjBjMDc0
NWM3N2VkYzQ2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0t
PgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9vdmVyZmxvdy9ob3Jpem9udGFsLXNjcm9sbC1hZnRlci1iYWNrLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L292ZXJmbG93L2hvcml6b250YWwtc2Nyb2xsLWFmdGVyLWJhY2suaHRtbApp
bmRleCAxNGE3ZDliMDQ0MzMwOTA1OTE0MTllYjZlYTdhYWIzMTI0ODc3ZTlmLi43MDNjZTY0ZjY0
ODdiODFjMTk4YmZkYzUwZGM3NmE1OTdiNjdmYjA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L292ZXJmbG93L2hvcml6b250YWwtc2Nyb2xsLWFmdGVyLWJhY2suaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L292ZXJmbG93L2hvcml6b250YWwtc2Nyb2xsLWFmdGVyLWJhY2suaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxzY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lmcmFtZS1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lmcmFtZS1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRt
bAppbmRleCBmMDA2NWZkMzZmYWNjZDU5NDJjMDBkYjVhZDEwM2RhYjhiM2ZlNGZkLi4yYjg0N2Q4
MjAyMTM3YWMyNjkzNWYxYWE5OWQ2ZjU3NmEyNzZhMjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pZnJhbWUtc2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaWZyYW1lLXNjcm9sbGFibGUtYWZ0ZXItYmFjay5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJh
Y2stZm9yd2FyZC1hZnRlci1wYWdlc2hvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93Lmh0bWwKaW5k
ZXggNWE2YmQ4OWJhYjRmMDkzYTY4NTQ1MGQyODVjZjdkZTA1MGVkOGU5YS4uZDcxMzMyYjhjYTdm
YzEyYTNlNTEzYzU4OTRlNDc5ZWIzZTZlMTI3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMt
YmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NU
WVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQuaHRtbAppbmRl
eCBlMmY5ODY2ODQzNWU2OTVkMzg3ZTZmMTM2NzA4OTkyZjJlYjdkMzllLi5jMTE1MTk2ZTA2Yjc2
NGFiMTVlN2UyNjQzZTA4NmU5YzhjMzE2MDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvdG91Y2gtc2Nyb2xsLWJhY2st
Zm9yd2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9s
bC1iYWNrLWZvcndhcmQuaHRtbAppbmRleCAxMTY1NDQ3NTFmMTJjZDhkYjU2OWRhYjIyZDAyMGRj
ZDJlMjMyYTMwLi4xY2RhMmJlYTNmMWJhZGFmZjZlN2IwNjIzZjE1NDFiYzRlODkzZmIxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvdG91Y2gtc2Nyb2xsLWJhY2st
Zm9yd2FyZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1z
Y3JvbGwtYmFjay1mb3J3YXJkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8
aGVhZD4KICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxv
dy1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L292ZXJmbG93LXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sCmluZGV4IDA3ZTEzNWE5MjMzMWUy
YTViOWQ2YzllZGIzYjcxODJiOWE0ODVhN2IuLjFlZGU2NjE0NmM4NGQwOWI0YmQyYWY5MTFhZDFj
MmE2MDgwMzM3N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJm
bG93LXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL292ZXJmbG93LXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL3BhZ2UtY2FjaGUtYmFjay1vdmVyZmxvdy1zY3JvbGwtcmVzdG9y
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvcGFnZS1jYWNoZS1iYWNrLW92ZXJm
bG93LXNjcm9sbC1yZXN0b3JlLmh0bWwKaW5kZXggNjkxNzZhN2U4MjMzMmViZDY2NGI1YzdlNGE1
MjQ1MjFkNjU2ZjZmYy4uNmY3ZGYwNzZjOWEwYjE5NjBmY2ViNjJkNGZmMjRmZmMyNDJkMGFmOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvcGFnZS1jYWNoZS1iYWNrLW92
ZXJmbG93LXNjcm9sbC1yZXN0b3JlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvcGFnZS1jYWNoZS1iYWNrLW92ZXJmbG93LXNjcm9sbC1yZXN0b3JlLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPHN0eWxlPgogI3B1ZmZpbiB7CiAgICAgZm9udDogQWhlbSAxMHB4OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL3RleHQtYXV0b3Npemlu
Zy1hZnRlci1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3Mv
dGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2suaHRtbAppbmRleCBlNjIxYzg4NTBkMjZlZGVlODky
NzI3NWRjOGM4ZTE0NmM3ODhjYTA3Li5lZmVlZTVmZjFkOTVkOTQ1ZDY4MmQzMzAzOTdjYmM5OWE4
ZjY1Y2Q2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3Mv
dGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQtYXV0b3NpemluZy9pb3MvdGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2suaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZs
ZXhpYmxlVmlld3BvcnQ9dHJ1ZSBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVl
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogCiA8aHRtbD4KIDxoZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3Mvdmlld3BvcnQtc2hyaW5rLXRv
LWZpdC1vbi1uZXctbmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9p
b3Mvdmlld3BvcnQtc2hyaW5rLXRvLWZpdC1vbi1uZXctbmF2aWdhdGlvbi5odG1sCmluZGV4IDli
YjNkOWE4NTBiNjNmMDFjN2IxNjUwYTM2ZTRhMGY2ZTI1NGM5ODAuLmQ4MTM3YmE0N2E4YTI0ZjU2
NDM3OTdkYjlmZTI1MmM3OWVlNjc5MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvdmll
d3BvcnQvaW9zL3ZpZXdwb3J0LXNocmluay10by1maXQtb24tbmV3LW5hdmlnYXRpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy92aWV3cG9ydC1zaHJpbmstdG8tZml0
LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQ9dHJ1ZSBl
bmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgc2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0PXRydWUgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiAKIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTEyOC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC92
aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbAppbmRleCAzZmViMDBkOWE5ZTdkOTA2ZWJhOWM4MDlm
Y2I3MWZjM2ZjYTVmOTBmLi40NmU4MzgyMDFmODU4OWE0NmVjMzA5MDY4NDZjNmY0NzllMDk2NTIz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTEyOC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvdmlld3BvcnQtMTI4Lmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPGh0bWw+CiAgICAgPGhlYWQ+CiAgICAgICAgIDx0aXRsZT5WaWV3cG9ydCBt
ZXRhIGRhdGEgc3RvcmVkIGluIHBhZ2UgY2FjaGUuPC90aXRsZT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKaW5kZXggMzU0MmMzNjk2ZDNkMzBk
OWMzNWUwOTA0N2Q5NmUxMzNjYzJjZWQ3Yy4uMTQxNjMxZWY2MmM1Njc3NDRkOWE4NTc4ZTVjZThk
YTRhZDA3YzRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1w
YWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdl
LWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJs
ZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNwbGF5LWltYWdlLXVuc2V0LWFsbG93cy1jYWNo
ZWQtaW1hZ2UtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNwbGF5
LWltYWdlLXVuc2V0LWFsbG93cy1jYWNoZWQtaW1hZ2UtbG9hZC5odG1sCmluZGV4IGZmNTgxNWU4
OTdjMTdlZjFmYWY1ODg5NGFlYTQxOGUyZWQ2NTc4M2YuLjQ3MjgyMjJjMDYxM2MwZDIyMGJjYzEx
NTZlZmY0OGUyYjgxNTg5ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2Fj
aGUvZGlzcGxheS1pbWFnZS11bnNldC1hbGxvd3MtY2FjaGVkLWltYWdlLWxvYWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxsb3dz
LWNhY2hlZC1pbWFnZS1sb2FkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4K
IDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNl
L2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGVkLmh0bWwK
aW5kZXggYzY2OWYyYzAwYTIxOGNmMGM4MDI0YjI5NTVlNjU3MDU2OThkYjZkZC4uMjA1ZDljMDEz
Yzc4ZGNkY2VlZTM5ZmJkYmIwNmYzNjVhMDQ2Y2QzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5lY3RlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2Ut
cGFnZS1jYWNoZS1jb25uZWN0ZWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRt
bD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2
ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5l
Y3RpbmcuaHRtbAppbmRleCBiMDVlNDc0Yjk5N2JhNjMwMTI4YmU2OWMwNWUxOWJkZjgzNzM5YzU1
Li5lZDZmYTk3MmMxOGU0MjVkODVjODc5NDQ4YTY0NDlkMTllZmU2MjUxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUt
Y29ubmVjdGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2Uv
ZXZlbnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0aW5nLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2FkaW5nL21haW4tcmVzb3VyY2UtZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdh
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL21haW4tcmVzb3VyY2Ut
ZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdhdGlvbi5odG1sCmluZGV4IDA0OTQ4NzU5YmM5OTRhZTMy
YTYxZmE5YjI0ZDZkMDBkNjUxNGM4OWIuLmYxZTFmOGQ5YWE4Y2IxNzNlZGU4MjAwMmVmYTE3YmEx
NWQxNGEyYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9tYWlu
LXJlc291cmNlLWRlbGVnYXRlcy1vbi1iYWNrLW5hdmlnYXRpb24uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvbWFpbi1yZXNvdXJjZS1kZWxlZ2F0ZXMtb24tYmFjay1u
YXZpZ2F0aW9uLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4K
IDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmlu
aXNoZWQtbG9hZC1iYWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQtbG9hZC1iYWNrLXRvLWNhY2hlZC1wYWdl
LWNhbGxiYWNrcy5odG1sCmluZGV4IGNhNTc4OGUwNzgzMDM2NDRkYThmYzAxOGMzZmY2ZWU4ODMw
YmMzMzIuLjk0Y2ZmN2FhOWY1ZGZjNDk1Mjg1OTEwZmJkZGY0MWY0NjA4OTQxYWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLWxvYWQtYmFjay10
by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvYWRpbmcvdW5maW5pc2hlZC1sb2FkLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4KIAogd2luZG93Lm9ucGFnZXNob3cgPSBmdW5j
dGlvbihldnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91
bmZpbmlzaGVkLW1haW4tcmVzb3VyY2UtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLW1haW4tcmVzb3Vy
Y2UtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbAppbmRleCBmMmFjNjZhZDFmNjkw
ZTQxMjYxNzA4MWJmMzU1Nzc1MmIxNmI0NmY0Li5kODk2NTgwNzQxMzkyZDY3OGRkYzE1OTJlNGI5
MjU3OTU1MjEyZDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcv
dW5maW5pc2hlZC1tYWluLXJlc291cmNlLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQtbWFpbi1y
ZXNvdXJjZS1iYWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxzY3JpcHQ+CiAKIHdpbmRvdy5vbnBhZ2VzaG93ID0gZnVuY3Rpb24oZXZ0KSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3JlbG9hZC1hZnRlci1kaWFsb2cu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5o
dG1sCmluZGV4IDNmZTY4MDBjODhjZTA5ZWQ5MjkxMDc2YWY1YjA0MjE0ZTQxNGFkODEuLmEwN2Ew
M2IzNzI5ODYyZjRiYWJjMzliMGE3N2M5NzUzN2YyYzBlYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiAgICAgPGhlYWQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZ28tYmFjay10by1lcnJvci1wYWdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZ28tYmFjay10by1lcnJv
ci1wYWdlLmh0bWwKaW5kZXggMThiZDEzOWRhMGVmZDU3MTVmY2YxZjQ1YTY4YTU3NTlhOGY4MzRj
Ny4uMWVmZmM2ODhkNzU5MTU1MGM1YzkxOTFkZTE3MzgyODM0ZWI1YjljYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3ItcGFnZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVy
cm9yLXBhZ2UuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtaW4tcGFnZS1jYWNoZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBhZ2UtY2FjaGUuaHRt
bAppbmRleCBlZWU5YjI2ODdjM2JmY2FmMGQyNGQ0Zjk2NGU5MjdiYzdmMGE5YWRjLi4zZjA5ODY3
NTZiZmFkOTNiZWNhYWE0ZjM1ZjZiNDM2YjcyMDllNzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtaW4tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4KIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtbm8tc3Rv
cmUtc3ViZnJhbWUtaW4tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1YmZyYW1lLWluLXBhZ2UtY2FjaGUuaHRtbAppbmRl
eCA5ODBmMjBiNjA2Nzk1MDFhNDQ0MzI4ZDU4MDc0ZTUwYzIyM2YyMDllLi4yM2Q1ODNkMGM5NTFk
NDI3MmFmZjIzNzY3ZGQxNzEyNjdjYTZhOWQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtbm8tc3RvcmUtc3ViZnJhbWUtaW4tcGFnZS1jYWNoZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1uby1zdG9y
ZS1zdWJmcmFtZS1pbi1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4K
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi1wYWdlaGlkZS1oYW5kbGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi1wYWdlaGlkZS1o
YW5kbGVyLmh0bWwKaW5kZXggZjA5OGYxNDBjOWNkNjU5NGQwNzU5MmU3YTM2YzllZWQ5YjdiMmFh
OS4uOTAzZjkzM2IyNTM3ZjIzNzVlNWI3MmQ5MGM1MDA2YTliMDE5MjhhNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ltYWdlLWxvYWQtaW4tcGFnZWhpZGUt
aGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9pbWFn
ZS1sb2FkLWluLXBhZ2VoaWRlLWhhbmRsZXIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD48
aGVhZD4KIDx0aXRsZT5JbWFnZSBsb2FkIGluIHBhZ2VoaWRlIGhhbmRsZXI8L3RpdGxlPgogPHNj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWwK
aW5kZXggZGJlNzY1ZGZiYTBiZTUzYTUyYTU2MTAwOGQ2MWM2Y2MzODZmYmNlYy4uNzVlYmZjZTk3
MTMzMmM1ZDAzYjczYWJmODUwODM3NTA3ZWMxMGJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUt
ZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGVzdG9yYWdlLXBlbmRpbmctcHJvbWlzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2Fj
aGVzdG9yYWdlLXBlbmRpbmctcHJvbWlzZS5odG1sCmluZGV4IGQwNWU1ZTA5MjA1MmRkZjczZmY0
ZmYwMTc1ZTk4ZTFiZDkwYTJiMTMuLmMyMjNkZDk2MmVmZDAyOWVlMmY0MTQyNGM4YmI2YTkyNjFl
YzRiMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWRvbWNhY2hlc3RvcmFnZS1wZW5kaW5nLXByb21pc2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZXN0b3JhZ2UtcGVu
ZGluZy1wcm9taXNlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3BhZ2UtY2FjaGUtZmFpbGVkLXhoci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUtZmFpbGVkLXhoci5odG1sCmluZGV4IDcyZDBiYzk3NmMwN2I1YjQ1
YTQwMjc3MGRkNjUwZTFjN2VjOTQ4NzEuLjdjOTEwMzMyYjUzYThlZWQ2OGVjNzRiYmY2ODMxNzIx
ZGE3ZmNlNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9w
YWdlLWNhY2hlLWZhaWxlZC14aHIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1mYWlsZWQteGhyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWZvbnRmYWNlc2V0Lmh0bWwKaW5k
ZXggZWY5ZjVjMzIzODYzY2NlODQ4NzJlNzJiYzZmMGMzZWE2ZDBmYThjMC4uNWQ2MjQ0NWZhYjc5
YTljODE1MDA3N2RjNmFiOGZhN2Q3OWJjNWI3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1mb250ZmFjZXNldC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWZyYWdt
ZW50LXJlZmVycmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1mcmFnbWVudC1yZWZlcnJlci5odG1sCmluZGV4IDAyNjdlNWRmYjMzYzU2NDg0M2Rj
NjAwMjUzMmMzNzZhN2Y0NTI5ZmQuLjNkZDUwN2RiMDg0YWRmODJlMTU2NDZmMjg2M2FiY2JmZDgw
YzQ0NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWZyYWdtZW50LXJlZmVycmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZnJhZ21lbnQtcmVmZXJyZXIuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtbm8tY3VycmVu
dC1oaXN0b3J5SXRlbS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtaWZyYW1lLW5vLWN1cnJlbnQtaGlzdG9yeUl0ZW0uaHRtbAppbmRleCBiYzg4NzY0
NjBjY2EzMmUxMTI4MzczZDljOGU0NGFkYmNiOTlkOWNmLi41MWYyNDk1ZThkZjJjOWI3ZjA2NzNi
YmE2YThjYWJlMmQ1YmQzMWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtbm8tY3VycmVudC1oaXN0b3J5SXRlbS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1u
by1jdXJyZW50LWhpc3RvcnlJdGVtLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxvYWQtYXN5bmMtZGVsZWdh
dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1p
ZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0ZXMuaHRtbAppbmRleCAwMzhmMDhh
Mjk0NTdhOTZiM2FlYzM1Nzc4Njk5NThiMmU3OGUzZjM1Li5kMTRjMzM3MjIwYTNjZDdlZmFmMTM3
ODdhMGFmMTBhYTk1NTM1M2I1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNo
ZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0ZXMuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9u
YWwtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxvYWQuaHRtbAppbmRleCAwMWY2M2JkYTg0NDI3M2E1MDYx
NDFmMjJkMDAxZGI1MTI0OThiNmNkLi4xODVlZWRhYTVjZjk2MWJmMGI4ZTgwZGY4ZjI2MTg4MDEz
OGM3MjEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1wcm92aXNpb25hbC1sb2FkLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVu
ZGluZy1pbWFnZS1sb2FkLWNhY2hlLXBhcnRpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1pbWFnZS1sb2FkLWNhY2hlLXBhcnRp
dGlvbi5odG1sCmluZGV4IDQ4MGIxY2JmNjU3ZWQ4M2ZjZjVkNWExMzRmNzhjZjlhMWIzNTk5NTcu
LmZjYzQ3YWM1ZWExYzhiMGI0OWExZjNhYjNmY2E5NjhiNGQzNjZhMjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2Ut
bG9hZC1jYWNoZS1wYXJ0aXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQtY2FjaGUtcGFydGl0aW9uLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVu
ZGluZy1pbWFnZS1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbAppbmRleCA0NTdlMjE3M2U1ZTYyYmZh
Y2RlZWQ1ZWU5MDg5Yjc2NDM1ZjNjOTFjLi42ZGY5NDZkNjQ2YzI2MGI0M2ZjNDVlNWUzZWY3YzY4
MjFmNWQzMGRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbApAQCAt
MSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRy
dWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWxv
YWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBl
bmRpbmctbG9hZC5odG1sCmluZGV4IDQ1OTUzNzVkMjE3N2YzNWYyMGRhYzRjOWNkZDRlODg3M2Q3
YmUwMmQuLjE3NmYxYjgyYjM3NGM0NzI2MmFkNWQ0NDM1MzYzN2MwYjJjZGZmMDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmct
bG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLXBlbmRpbmctbG9hZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLWNyb3NzLW9yaWdpbi5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxv
YWQtY3Jvc3Mtb3JpZ2luLmh0bWwKaW5kZXggMTNiMGY5MmNhOTc1Y2QxZWQ0NDM2MzUwNmJlZjIw
MDMyMzliNTFkYy4uNTI0OTBlNGNmOGIzMDY0MDAzZTE1Nzc1MjBiMzAzZjdlODBiMjJjZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVu
ZGluZy1waW5nLWxvYWQtY3Jvc3Mtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtY3Jvc3Mtb3JpZ2lu
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0
bWw+CiA8Ym9keT4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLXNh
bWUtb3JpZ2luLmh0bWwKaW5kZXggMDU3ZmM4OTk2YWZjNDFiNzJjMzcyNjlhOTA1N2IyNjA3ZDI2
NTI4ZC4uZWI4NTc1MjZlN2UzOWM5NzRjYjNiMDY3M2ExYTVmYjAwYmEzZDRiZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1w
aW5nLWxvYWQtc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9
dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXJlcXVlc3RB
bmltYXRpb25GcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmh0bWwKaW5kZXggNjFjYWYwN2ZmYWNlZjBl
YzY0YjZkZTY5ODgzNmEyYjZiMGUwYzM4Zi4uNjk5ZjBiYmJkZmYzOTU2ZDIxM2JmN2ZjMmRkMjQx
NWM2Mzg2MDdmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3BhZ2UtY2FjaGUtcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhy
LWluLXBhZ2VoaWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS14aHItaW4tcGFnZWhpZGUuaHRtbAppbmRleCAwYjExMzAxZDc2ZGViYWU0MTUzN2Ex
MjFlMWU1MDczZjQ3YjlkOTVkLi5hMmYxZjRjYWRmY2VhY2VkOGI3NzExZDBiOTJlZGYxNzRhZjFh
YTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS14aHItaW4tcGFnZWhpZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tcGFnZWhpZGUuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHIuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sCmluZGV4IDUyMmQ3ODcx
NjI3MzdkMGRjYzJiNGM5MmE0NDBiYTAzZjAxNmQyMGYuLjM3M2I1NWQ2MzIxMGZhNGRkZDE4YWRh
MDRhNjg3Y2M3ZjlmODIyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1jYWNoZS0zLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2h0dHBzLWluLXBhZ2UtY2Fj
aGUtMy5odG1sCmluZGV4IDdkZmZmMjhiNzcxZmIwYzAyNmVkM2VmYzYzZWI0YjQzNGRmMDFhZDgu
LmU4MWEwNTM3ODQzYTYwYmM1M2UxYTA1MTA1MTFjMDNiOGJjZjBkYWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1j
YWNoZS0zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291
cmNlcy9odHRwcy1pbi1wYWdlLWNhY2hlLTMuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0
Pgogd2luZG93Lm9ucGFnZXNob3cgPSBmdW5jdGlvbihldnQpIHsKIAlpZiAoIWV2dC5wZXJzaXN0
ZWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3ViZnJh
bWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRsZXItc3RhcnRzLWxvYWQuaHRt
bAppbmRleCBhMzQ0ZTI2NzE1Mjg4OGFlOWFhOWJhNDlkMTA5NzNhOTZmOWIxY2I0Li5iMTJiMWEy
NmIyOGU0MGUzMjAzOTlhMjYwOGEyZDhjZGIwZjdjNjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMt
bG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWJmcmFt
ZS1wYWdlaGlkZS1oYW5kbGVyLXN0YXJ0cy1sb2FkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWJmcmFtZS1wYWdlaGlkZS1o
YW5kbGVyLXN0YXJ0cy1sb2FkMi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRsZXItc3RhcnRzLWxvYWQyLmh0bWwKaW5kZXggYzNj
Mzc1NTViM2MwNTQ1MjUyMTgwNzljODY0MDEzNDEzN2ViNDRlNC4uNjY2NDc1Y2Y1YThmOGEzY2Ex
ZmZlZDFiMTJhOTliODYxZjBmYTA4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRsZXItc3RhcnRzLWxvYWQyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRl
LWhhbmRsZXItc3RhcnRzLWxvYWQyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdpbmRvdy1vcGVuLWluc2Vy
dC1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLXdpbmRvdy1vcGVuLWluc2VydC1zY3JpcHQuaHRtbAppbmRleCAxMTY0Yjc1MDk0ZDE0YjRh
YmYxMmVjMDhhN2NjMjlmZmFiMmI1Y2YzLi5hYTA3YjFmNGViOTI5OWM1MWUyOTQ1MzQ0YjBlYjFk
ZGE3ZmY2NTlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQtc2NyaXB0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9wZW4taW5zZXJ0LXNj
cmlwdC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLXdpbmRvdy1vcGVuLWphdmFzY3JpcHQtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1qYXZhc2NyaXB0LXVybC5odG1s
CmluZGV4IDI2NmJhOWNlOWNiMDMzNzA1MDhmMTdmMTFiMGM5NGVkODc4YWM3ZGQuLmE2YmQ0NDI3
YzRhNmIzYzNmODU5NjdmODIyNzE2OWU5MWM0OTU3NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdpbmRvdy1vcGVuLWphdmFzY3JpcHQt
dXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmln
aW4td2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5n
LWNhY2hlZC1wYWdlLmh0bWwKaW5kZXggYjExYTRmYTk5Njg5MWMwZTYzMWI4MGE1YzFjNzgxZmI3
NjQ0OTkxNy4uMDY0ODNjYTBmMmI0NjRiYmE0ODk2ODAyYjIyZmJmOWJlNzg0NWVhNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYXZpZ2F0ZS13aGVuLXJlc3Rv
cmluZy1jYWNoZWQtcGFnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVkLXBhZ2UuaHRtbApAQCAtMSw0ICsxLDQg
QEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4K
KzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0g
LS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtY2xpY2stYW5kLWZvcm0tc3VibWlz
c2lvbi1mcm9tLWluYWN0aXZlLWRvbXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1pc3Npb24tZnJvbS1pbmFj
dGl2ZS1kb213aW5kb3cuaHRtbAppbmRleCAxMzMxNGU2MTc1YTE5YWM4NjQ1YTA0YTM2NmIwZTRj
NGU0MDUwZTUxLi5mZTQ2MzRkMTNhZTVkMmJlMGMyYzgyY2U0MGQxYTIyNDU3MGY4NGRhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtY2xpY2st
YW5kLWZvcm0tc3VibWlzc2lvbi1mcm9tLWluYWN0aXZlLWRvbXdpbmRvdy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jbGljay1hbmQtZm9ybS1z
dWJtaXNzaW9uLWZyb20taW5hY3RpdmUtZG9td2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2
ZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklF
RC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Lmh0bWwKaW5kZXggMjk2MTk3NjUw
NDFmZjVhM2Y5NmU4NjQ1MGIxMDA5NWM3MTk2ZmY3MS4uNGQwYmJhOTkwNzkwNDcwNjY5NDQzNzgw
OGM4YjZjOWZhODBkNTQxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWlu
amVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93
Mi1wc29uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQt
c2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzItcHNvbi5odG1sCmluZGV4IDZhM2Jk
MTgzNzU5NTJkNzE0MGVlZmNhMThiMzJmMGY1ZGExNzM5MDAuLjljOTI4NTY4M2NiZGM2N2M4NGI1
NGNjM2JmOThjMWVlNDViZDQ0OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi1w
c29uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVE
LXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLXBzb24uaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb249dHJ1ZSBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQcm9jZXNzU3dhcE9u
TmF2aWdhdGlvbj10cnVlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+
CiA8aGVhZD4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzIuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5q
ZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi5odG1sCmluZGV4IDg0YmM1YmU5ODNmZTBiNjNjNjVl
YjVjYTBhYzZjOTBlZjg2NDc2ODkuLjMxY2E4NjQ5MGFlYzNmZTcwODI4NzU1ZTJkMThhMjkwNGMx
M2YzZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8t
aW5hY3RpdmUtd2luZG93Mi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93My5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3Qt
aW50by1pbmFjdGl2ZS13aW5kb3czLmh0bWwKaW5kZXggOGQ2YmYyYzMyZDEzZTMwY2FmYjIwZmU4
YmUyNGI3ZDExNGY0NzhkMC4uM2UxZmFlN2M3ZGQ5NWUyMzA5ZjAxYjIwNmFkYmMzYjkwNDc5ODgz
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVE
LXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3czLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFj
dGl2ZS13aW5kb3czLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9jbG9zZWQtd2hlbi1lbnRlcmluZy1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlZC13aGVuLWVudGVyaW5n
LXBhZ2UtY2FjaGUuaHRtbAppbmRleCA0ZTcxNDNiNWY4ZWUwYTJhMTFkNGJjMGI5ZDhmMzhlZTQ0
OGRkZjdlLi5lNjg0MjQ3MmE5YmI3ZmJlNjMxNjc4NTU5OTlhMTkxYTJiZTBkOWRlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlZC13
aGVuLWVudGVyaW5nLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlZC13aGVuLWVudGVyaW5nLXBhZ2UtY2FjaGUuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3N0b3At
b24tcmVzdW1lLWluLWVycm9yLWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5Ymkvc3RvcC1vbi1yZXN1bWUtaW4tZXJyb3ItaGFuZGxlci5odG1s
CmluZGV4IDRhYzIwYzAwM2U1NWI3YzM3YjRlZWZmZWI2NmI0MGY4NjkzZmNmNDEuLjI2MDY3ODBm
NjE4MWQ2MzAwMWVjZjQzNGFlOWU0MWNjMDM5NTVlNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc3RvcC1vbi1yZXN1bWUtaW4tZXJyb3It
aGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvc3RvcC1vbi1yZXN1bWUtaW4tZXJyb3ItaGFuZGxlci5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdo
ZW4tcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZy
b20tcGFnZS1jYWNoZS5odG1sCmluZGV4IDViYjBiZWUxZjgxOWY4MWIxN2FmZmM5MWYzZjdhMWQ1
NGMxZjNmOWQuLjVkNTg1M2UzYTQ2MDI2MjdlNjEzYzlmMGU0MGYxMmVmNmIwMDA2ZWQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRl
ZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRvLWNsaWVu
dHMtd2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hp
bGUtaW4tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvY2xpZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRt
bAppbmRleCBiZWMxMWVhOTExODgxZThhZWMwZTcwNmQ4MDRiNTlkZTgzYjViYzZlLi5jMjJlYjRi
NGZiY2ZiN2NkNWJmNzM0NjJiNzRiMWQ2ZWZkNmM0ODZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMt
d2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVkLWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdlLWNh
Y2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJs
ZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFn
ZS1jYWNoZS1zZXJ2aWNlLXdvcmtlci1wZW5kaW5nLXByb21pc2UuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13b3Jr
ZXItcGVuZGluZy1wcm9taXNlLmh0dHBzLmh0bWwKaW5kZXggMDlmMDU2ODNmN2E5YWM3NWNlY2Jl
ZDFlZWZhNzNjYjg4YTcyMDc1MS4uNmRiNWQzMDBmYjkzZGE2MzJiYzkzMzVhNGFiZTY3OWM0ZWVm
NTgyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
cGFnZS1jYWNoZS1zZXJ2aWNlLXdvcmtlci1wZW5kaW5nLXByb21pc2UuaHR0cHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9wYWdlLWNhY2hlLXNlcnZp
Y2Utd29ya2VyLXBlbmRpbmctcHJvbWlzZS5odHRwcy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGluZy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNoaW5nLmh0bWwKaW5kZXggNGYyNmFm
OTI0ZTIzZWFjYThkYzNlMzZmMmVkZTlhNjVjYjYzMzI3Yi4uNTExZWY4NWJhMWU2MWFhNTM5MzNi
OWNmNjA3NGQyM2NjZmRiMmQwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNoaW5nLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJlYWNvbi1vbnBhZ2VoaWRlLXdpbmRvdy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJlYWNvbi1vbnBhZ2Vo
aWRlLXdpbmRvdy5odG1sCmluZGV4IGNiZTE5NTA5YzU2ZGRkYWMwNDZmNmRhNzVkNDQwZWE5ZjVl
NWQyYzguLmEzNzhhNTQ4ZWYzMzI3YjI5MjM4MDUyZjRjYmE2MzllNmJjNThmZTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9zdXBwb3J0L3NlbmRCZWFjb24tb25wYWdl
aGlkZS13aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vc3VwcG9y
dC9zZW5kQmVhY29uLW9ucGFnZWhpZGUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbGVn
YWN5LWFuaW1hdGlvbi1lbmdpbmUvYW5pbWF0aW9ucy9yZXN1bWUtYWZ0ZXItcGFnZS1jYWNoZS5o
dG1sIGIvTGF5b3V0VGVzdHMvbGVnYWN5LWFuaW1hdGlvbi1lbmdpbmUvYW5pbWF0aW9ucy9yZXN1
bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sCmluZGV4IGRlZDM4NzU2ZjFlNzAxYzYyNzI0ZmRlNzFi
ODhiNDExNTIzNjdkOTcuLmIxMWMwZWE1ZDgxMDliOGFhNTE0YTJkYTNjNjllOGEwOTk0ZDMyZmYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2xlZ2FjeS1hbmltYXRpb24tZW5naW5lL2FuaW1hdGlv
bnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9sZWdhY3kt
YW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpX
ZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkPWZhbHNlIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpXZWJBbmlt
YXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkPWZhbHNlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPHN0eWxlPgogQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7CiAgICAgZnJv
bSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1y
ZXNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVz
b3VyY2UuaHRtbAppbmRleCA5ODRmNjQwNmE5MDYzMmNmMDg2NDEwMjU4MDM5NTdhM2M4NTNiZmRi
Li4zNTU1ZWNjMThkYzZjYWUxOTk1YzA4NWUyOWMwZWFhMGM5YTkzMzQ3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2xvYWRlci9nby1iYWNrLWNhY2hlZC1tYWluLXJlc291cmNlLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KICAgICA8dGl0bGU+VGVzdCByZXNvdXJjZSBs
b2FkIGNhbGxiYWNrcyBnb2luZyBiYWNrIHRvIGEgY2FjaGVkIG1haW4gcmVzb3VyY2U8L3RpdGxl
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL2dvLWJhY2stdG8tZGlmZmVyZW50LXdp
bmRvdy1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQt
d2luZG93LXNpemUuaHRtbAppbmRleCA1ODQzZTdmNThiMWY4NjBhYzdmZTZkODBkZWYwNWM5OWM5
ODU5MzMzLi4wMTYyYmFhOGY5YjRlMjA3NmY0OWI5NTZkY2YwYTgwYmMwNGMwZDU0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93
LXNpemUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxzY3JpcHQ+CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBs
dWdpbi1mYWxsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvY3Jhc2gtY2xvc2luZy1wYWdl
LXdpdGgtbWVkaWEtYXMtcGx1Z2luLWZhbGxiYWNrLmh0bWwKaW5kZXggODE5NTkxZWRiZTUzMDI0
ZmQwMjkzYjQyNDM1ZGJiMmEyOGUxNjEyNi4uMjFkNDM1NGIwMzhmOGU4ZWRiMGE2ZTIyZDE5OWNl
MzBhZDUyZGU0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvY3Jhc2gtY2xvc2luZy1w
YWdlLXdpdGgtbWVkaWEtYXMtcGx1Z2luLWZhbGxiYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvY3Jhc2gtY2xvc2luZy1wYWdlLXdpdGgtbWVkaWEtYXMtcGx1Z2luLWZhbGxiYWNrLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4KIHZhciBjaGlsZFdpbmRvdzsKIDwvc2NyaXB0
PgpAQCAtMTMsNyArMTMsNyBAQCBJZiBpdCBkb2Vzbid0IGNyYXNoLCBpdCBwYXNzZXMuPGJyPgog
aWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKHRydWUpOworICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRCYWNrRm9yd2FyZFN1cHBvcnRzUGx1Z2lucyh0cnVlKTsK
ICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKHRydWUpOwogICAgIHRlc3RSdW5uZXIu
c2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwogICAgIHZhciBidXR0
b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnV0dG9uIik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXBhZ2UtY2FjaGUuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNoZS5o
dG1sCmluZGV4IDAxMmNlNGFjZDE4MDkzMTBjZTNkMWRiZGZkZGQyM2Y4M2ExZWFmZjMuLmM4ZGMz
NmY2NjI0NzU0OTM4MmNjMmUyZDg0NmM0MmFmMzZkNjExMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNoZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNoZS5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0b3JlLWZyb20tcGFnZS1jYWNoZS5odG1sCmluZGV4IGU5
NTA1MTgzMmI2MmI1NmQ1OWE0ZDQ5NmZkOTQwOTQ4NjE4ZWMzODIuLjFhZDI1NzFhMTU3MmI4ZGU0
ZjY2ZTY4NzE1OTQwZmMzMGJmNGQ1ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3Jl
c3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcmVzdG9y
ZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KICAgICA8aGVh
ZD4KICAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZml4ZWQvZml4ZWQtYmFjay1mb3J3YXJk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2ZpeGVkL2ZpeGVkLWJhY2stZm9y
d2FyZC5odG1sCmluZGV4IGQwNjQwNDMzZDBiNmQxOTAwMTdlYWZlMDUwMWVkYWZlOGZlYWNhZGUu
LjM1NjFlZWUyYjdmZWQ5NDk3YzBlZTZhZDZjMDg1YWIwZmQ5MDUxMGEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZml4ZWQvZml4ZWQtYmFjay1mb3J3YXJkLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9maXhlZC9maXhlZC1iYWNrLWZvcndh
cmQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2NyYXNoLXJlc3RvcmluZy1wbHVnaW4t
cGFnZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jhc2gtcmVz
dG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1sCmluZGV4IDZmODg0ZjM1NmM4
NzAwNjc2NDBmMDE0MmM4ZTU0YmUxNWNhNGM5MzAuLjEwZGM5OTRiZmQyNmE4NTE1NzY2YjRhNmY4
OTMzZGI0MGFhYjU3NTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jhc2gtcmVz
dG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3BsdWdpbnMvY3Jhc2gtcmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1s
CkBAIC0xLDEwICsxLDEwIEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGhlYWQ+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRCYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKHRydWUpOwogfQogCiBmdW5jdGlv
biBwYWdlU2hvd24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2ZyYW1lc2V0
LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL2ZyYW1lc2V0LXdp
dGgtcGx1Z2luLWZyYW1lLmh0bWwKaW5kZXggY2E4NWJkY2I2Mjk3MGQ5Nzc2ZWMzMThiZDI5MDEy
NTZjYjVkYmRhMy4uYjI5OTA2Y2U1ZTAxZGMyOWFkOTZiYTQzMDUyYWJhMmJkNjkwMjU5NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9mcmFtZXNldC13aXRoLXBsdWdpbi1mcmFtZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnJhbWVzZXQtd2l0aC1wbHVnaW4tZnJhbWUu
aHRtbApAQCAtMSwxMSArMSwxMSBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2lu
ZG93LmludGVybmFscykgewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRGcmFtZUZsYXR0ZW5pbmcoIkZ1bGx5RW5hYmxlZCIpCi0gICAgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnModHJ1ZSk7CisgICAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRCYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKHRydWUpOwog
ICAgIH0KIDwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNj
YXBlLXBsdWdpbi1wYWdlLWNhY2hlLXdvcmtzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL25l
dHNjYXBlLXBsdWdpbi1wYWdlLWNhY2hlLXdvcmtzLmh0bWwKaW5kZXggNGY4MjM0MTc2YzBiY2Nm
ZmUyNTMyN2MzZmZlMzA3YjJhMjNhYTExYi4uNzdmMmJlNGRmMzJlZWZiNzViZmZjZDgxNmU4MGY5
YmY1NWQwNzA1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVn
aW4tcGFnZS1jYWNoZS13b3Jrcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvbmV0c2Nh
cGUtcGx1Z2luLXBhZ2UtY2FjaGUtd29ya3MuaHRtbApAQCAtMSwxMCArMSwxMCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1s
PgogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lu
cyh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNoZVN1cHBv
cnRzUGx1Z2lucyh0cnVlKTsKIH0KIAogdmFyIHNhdmVkVGVzdE9iamVjdCA9IG51bGw7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJSZXF1ZXN0LXBhZ2UtY2Fj
aGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1j
YWNoZS5odG1sCmluZGV4IDZkZTgwNjNkZjhkNWNlYTNlYmE1NzVhMGRhOGY4NDhhMjIxNDRhMmYu
LmM3YzU5NGI2MzgzMmVhYmRjN2RhZmNhYWQwMzlhODUzMmEzYTVlNzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNoZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNoZS5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBh
Z2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAyYzg3ODkxZDEzNzI5NGY3NjgwMWVmY2RiYmE4N2I4
Y2VkNDJhZDljLi5iYmQ3YzVkZWNlOTQ0MjFmNjFlYjVjNWI5YzFmOTQzYzdhM2Q5YjE3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi1wYWdl
LWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hl
ZC1iYWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1z
d2lwZS5odG1sCmluZGV4IDY1NjViMDc4ZDBkNDU0ZTQ3YTMxYmY1NDgxYmRlNjkzYzAxZDhlZDQu
LmQyZmJhMjM1NWQ4ZTQ3ZTRjNGQwZDRlMWFhZTNmY2JjMmIxNjg4YTQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8aGVhZD4KIDxzdHlsZT4KIGh0bWwgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUv
bWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9t
YWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbAppbmRleCBjODFmM2U2NGRmNDNhNjBm
ZjJmMGMwODIzNWMwODczNTY2ZWZjZjc0Li5iODVhZDFiM2VmM2Q3ZmNkNWEzYjY0N2I5ZDY2NzIy
MzI3Yjc2NGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5p
bmctcmVxdWlyZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBp
bm5pbmctcmVxdWlyZW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzdHlsZT4K
IGh0bWwgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1i
YWNrLXN3aXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2st
c3dpcGUuaHRtbAppbmRleCBhMDExOWYxNjMzMWM2YjUwNDc1ZDdmZGQ2MzBlYmU4ZDI3OTA4ZTE2
Li44M2VkYWI4NjkxZjdkYjkzZTg5NTgwY2FiNmY4M2IzM2Q5NzNjY2NjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8aGVhZD4KIDxzdHlsZT4KIGh0bWwgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2gu
aHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGls
ZS1zd2lwaW5nLWNyYXNoLmh0bWwKaW5kZXggMDJmZDQ0ZTQxZWMxZjNhMWYxNGQwYzEwMDMzMGUx
NGFlMjRhYmE4Ny4uZDM1NmQyMTdjYTczZjM1N2M1N2QyOTFlZGQyMmMyZDA3NWQyNTAwYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdo
aWxlLXN3aXBpbmctY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUt
cHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxoZWFkPgogPHN0eWxlPgogaHRtbCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lw
ZS9wdXNoc3RhdGUtd2l0aC1tYW51YWwtc2Nyb2xscmVzdG9yYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL3N3aXBlL3B1c2hzdGF0ZS13aXRoLW1hbnVhbC1zY3JvbGxyZXN0b3JhdGlvbi5odG1sCmlu
ZGV4IDFmMWQ3YWUwNzcwNGQ1OWMyZWRmZGMzNTFhZGMzYzkzZWE1MTBmMzkuLjNmMGFkZjIxMjgz
YzRkMDJjZDEyMDU4YTJjZmUzZTYzZDU4ODgwNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3
aXBlL3B1c2hzdGF0ZS13aXRoLW1hbnVhbC1zY3JvbGxyZXN0b3JhdGlvbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3N3aXBlL3B1c2hzdGF0ZS13aXRoLW1hbnVhbC1zY3JvbGxyZXN0b3JhdGlvbi5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHN0eWxlPgogaHRtbCB7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9udWxsLXBhcmVudC1iYWNrLWNy
YXNoLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9udWxsLXBhcmVu
dC1iYWNrLWNyYXNoLmh0bWwKaW5kZXggNzdjM2MwYTg2MmQwNTIxMWI2M2M1ZmUxMzI1NzBiOWI0
MjBhNWI2Yy4uMjMyNTRlNTg2NTgyODAxZDg4YThjNTAxNGE3NmJhN2VmMjlkZDI4NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbnVsbC1wYXJlbnQtYmFj
ay1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL251
bGwtcGFyZW50LWJhY2stY3Jhc2guaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRt
bD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5n
L3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9uLXBhZ2UtY2FjaGUtcmVzdG9yYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRp
b24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sCmluZGV4IGJkZDA4NzUyNWY0NGJjNjU1Y2Nj
NjMwMzYwMGVmZTRhMzZkYTgxYzQuLmFkOTBjODcxOTA4NTM1NzgxNzRkYmFhN2I4ZTBhNzY0NTE4
MDhmNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2lu
Zy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24tcGFnZS1j
YWNoZS1yZXN0b3JhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5l
bC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9k
YXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbAppbmRleCA1Zjg0YTIz
OWQ5MWMzZGI1NzEzOGI2Y2E3MzIzYTliNmY1ZTNkZGQ3Li5jNGJkNzRmMDhjNzczMzg5NzEzMmQ2
ZDFiNzhhODAxMTA0YWFiZGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNo
YW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1zZW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
d2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUtc2VuZC5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNo
ZS5odG1sCmluZGV4IDE3MGJiOWZkZjcxMThhMjdlNjRlY2VjOWVlOGRlYTg2ZThjOTU2YWMuLmRj
ZjU3MGRhZTVhNThhNDYzN2EzOThmZDliOGE2MGM1YTc4NTYzZGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUu
aHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFn
ZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381132</attachid>
            <date>2019-10-16 16:30:05 -0700</date>
            <delta_ts>2019-10-16 17:59:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203048-20191016163004.patch</filename>
            <type>text/plain</type>
            <size>387480</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjdhYjk2MWQyYzMzZmMx
YWI5YmU2NmE4YThhMDg1NzUzMGYwZGE0Yi4uZjk4YWRjYmQwOTNjYTdjOTRkOTExMmRjZTliNTk2
ZjA2NDNkZGE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxOCBAQAorMjAxOS0xMC0xNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUg
dG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFy
aXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENh
Y2hlLgorCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFSZWNvcmRlcjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6
OnN1c3BlbmQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3Vt
ZW50U3VzcGVuc2lvbiBjb25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvV2luZG93UHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2luZG93UHJveHk6OmNsZWFySlNXaW5kb3dQcm94aWVz
Tm90TWF0Y2hpbmdET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
Lmg6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpuZWVkc1N0eWxlUmVjYWxjIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjppbnZhbGlkYXRlTWF0Y2hlZFByb3BlcnRpZXNDYWNoZUFuZEZvcmNlU3R5
bGVSZWNhbGMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZVJlbmRlclRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRpZEJlY29tZUN1cnJlbnREb2N1bWVudElu
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmF0dGFjaFRvQ2FjaGVkRnJhbWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaEZyb21DYWNoZWRGcmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cHJlcGFyZUZvckRlc3RydWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGp1c3RGb2N1c2VkTm9kZU9uTm9kZVJlbW92YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93RnJvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXN1bWUp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRvcERvY3VtZW50IGNvbnN0KToKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpiYWNrRm9y
d2FyZENhY2hlU3RhdGUgY29uc3QpOgorICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbHNj
cmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRG
dWxsc2NyZWVuKToKKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAg
KiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKToK
KyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwLgorICAgICAgICAoV2ViQ29yZTo6bG9n
QmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpjYW5DYWNoZUZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNhY2hlUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24pOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRDYWNoZTo6QmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpkdW1wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJhY2tGb3J3YXJkQ2FjaGU6OmNhbkNhY2hlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJh
Y2tGb3J3YXJkQ2FjaGU6OnBydW5lVG9TaXplTm93KToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tG
b3J3YXJkQ2FjaGU6OnNldE1heFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6QmFja0ZvcndhcmRD
YWNoZTo6ZnJhbWVDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENh
Y2hlOjptYXJrUGFnZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6QmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ29udGVudHNTaXplQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjptYXJrUGFnZXNGb3JDYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hl
YWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjp0YWtlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZUFsbEl0ZW1zRm9yUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpnZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3
YXJkQ2FjaGU6OnBydW5lKToKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuaDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmguCisgICAgICAg
ICogaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGcmFt
ZUJhc2U6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRnJhbWU6OkNhY2hlZEZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZWRGcmFtZTo6ZGVzdHJveSk6CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRG
cmFtZVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldENhY2hlZFBhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldFVSTCk6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5
SXRlbS5oOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmlzSW5CYWNrRm9yd2FyZENh
Y2hlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUpOgorICAgICAgICAqIGh0bWwvSFRNTFBsdWdJbklt
YWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZUVsZW1lbnQ6OnN1c3BlbmQpOgor
ICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRvcGxheVBlcm1pdHRlZCBjb25zdCk6CisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyOjphZGRTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmNsb3NlVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjbGVhcik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRl
dGFjaEZyb21QYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlY2VpdmVk
TWFpblJlc291cmNlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnNob3Vs
ZFBlcmZvcm1GcmFnbWVudE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmRpc3BhdGNoVW5sb2FkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpzYXZlU2Nyb2xsUG9zaXRpb25BbmRWaWV3
U3RhdGVUb0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJlc3Rv
cmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5
Q29udHJvbGxlcjo6aW52YWxpZGF0ZUN1cnJlbnRJdGVtQ2FjaGVkUGFnZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6dXBkYXRlRm9yUmVsb2FkKToKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5CYWNrRm9yd2FyZENhY2hlKToKKyAg
ICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaDoKKyAgICAgICAg
KiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkUmVzb3VyY2U6OmxvYWQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJz
Q291bnQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3dFeHRlbnNpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RXh0ZW5zaW9u
OjpzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5k
b3dFeHRlbnNpb246OnJlc3VtZUZyb21CYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvd0V4dGVuc2lvbi5oOgorICAgICAgICAqIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0Zv
cndhcmRDYWNoZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmJhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlS2V5KToKKyAgICAgICAgKiBwYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5oOgorICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRTb3VyY2U6OnNjaGVkdWxlUmVjb25uZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50U291cmNlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291
cmNlOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpk
aWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjphYm9ydENvbm5lY3Rpb25B
dHRlbXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpzdXNwZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50U291cmNlOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRTb3VyY2U6OmRpc3BhdGNoTWVzc2FnZUV2ZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50U291
cmNlLmg6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZTo6c2V0Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6c2V0RG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWU6OndpbGxEZXRhY2hQYWdlKToKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpZFJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldENvbnRl
bnRzU2l6ZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5
b3V0Q29udGV4dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENv
bnRleHQ6OnNjaGVkdWxlTGF5b3V0KToKKyAgICAgICAgKiBwYWdlL01lbW9yeVJlbGVhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6cmVsZWFzZUNyaXRpY2FsTWVtb3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OnJlbGVhc2VNZW1vcnkpOgorICAgICAgICAqIHBhZ2UvTWVtb3J5UmVsZWFzZS5oOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp+UGFnZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaWV3U2NhbGVGYWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VHcm91cDo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VMb2dnaW5n
OjptZW1vcnlVc2FnZVN0YXRpc3RpY3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MueWFtbDoK
KyAgICAgICAgKiBwYWdlL1NldHRpbmdzQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nc0Jhc2U6OnVzZXNCYWNrRm9yd2FyZENhY2hlQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9T
ZXR0aW5nc0Jhc2UuaDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkJhc2U6OnNldE5lZWRzU3R5bGVSZWNhbGMp
OgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFu
aW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Fu
aW1hdGlvbkNvbnRyb2xsZXI6OmNhbmNlbEFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTQW5pbWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyk6CisgICAgICAgICogcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1w
bGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQpOgorICAgICAgICAqIHBhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
QW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvcjo6cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp3aWxsUmVtb3ZlU2Nyb2xsaW5nTGF5ZXJXaXRoQmFj
a2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRpZEFkZFNj
cm9sbGluZ0xheWVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9TaW1wbGVMaW5lTGF5b3V0Q292ZXJhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2lt
cGxlTGluZUxheW91dDo6Y29sbGVjdE5vbkVtcHR5TGVhZlJlbmRlckJsb2NrRmxvd3NGb3JDdXJy
ZW50UGFnZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5pbWF0ZWRFbGVtZW50VXBk
YXRlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmNsZWFyQmFja0ZvcndhcmRDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OmJhY2tGb3J3YXJkQ2FjaGVTaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6cHJldmVudERvY3VtZW50Rm9yRW50ZXJpbmdCYWNrRm9yd2FyZENhY2hlKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmlkbDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3Q6OnN1c3BlbmQpOgorCiAyMDE5LTEwLTE2ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBkdW1waW5nIGZvciBC
b3JkZXJEYXRhIGFuZCBTdHlsZUJhY2tncm91bmREYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRmZmNlYmJlMjMy
NzQzNzEyYzhjYjkzMmM5YjE3MDdmNWFhMjM2NGYuLjI3MzZjNjllMTBmZTAwNGJkY2FkOWMwOGEx
NDM1ZjUwOTAyZmUyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQgQEAKKzIwMTktMTAtMTYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hl
IHRvIEJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwMzA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZSBmb3IgY2xh
cml0eSBhbmQgY29uc2lzdGVuY3kgd2l0aCB0aGUgVUlQcm9jZXNzJ3MgV2ViQmFja0ZvcndhcmRD
YWNoZS4KKworICAgICAgICAqIFNoYXJlZC9DYWNoZU1vZGVsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FsY3VsYXRlTWVtb3J5Q2FjaGVTaXplcyk6CisgICAgICAgICogU2hhcmVkL0NhY2hlTW9k
ZWwuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6TmF2aWdh
dGlvbkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHA6CisgICAgICAgIChBUEk6
OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hl
RW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0UGFnZUNhY2hlRW5hYmxlZCk6Cisg
ICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKToKKyAgICAg
ICAgKFdLUHJlZmVyZW5jZXNHZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVm
ZXJlbmNlcyBfc2V0VXNlc1BhZ2VDYWNoZTpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBf
dXNlc1BhZ2VDYWNoZV0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRQYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnM6XSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3BhZ2VDYWNoZVN1
cHBvcnRzUGx1Z2luc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24gcGFnZUNhY2hlRW5hYmxlZF0pOgorICAgICAgICAoLVtfV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24gc2V0UGFnZUNhY2hlRW5hYmxlZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX2dldF9l
bmFibGVfcGFnZV9jYWNoZSk6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9w
YWdlX2NhY2hlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAg
KFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OndpbGxHb1RvQmFj
a0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2
aWdhdGlvbkNsaWVudDo6ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5h
dmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbFByb3Zpc2lvbmFsTmF2aWdh
dGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdh
dGlvbkNsaWVudDo6ZGlkQ29tbWl0TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkKToKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGaW5p
c2hOYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0
aW9uQ2xpZW50OjpkaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6
Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZGlkUmVhY2hNYWluRnJhbWVM
b2FkVGVybWluYWxTdGF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvdWxkVXNlQmFja0ZvcndhcmRDYWNo
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
b21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZp
bmlzaERvY3VtZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZEZhaWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uY3BwOgorICAgICAgICAoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJ
bkJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6dG9CYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6V2ViRnJhbWVMb2FkZXJDbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkR29Ub0hpc3RvcnlJdGVtIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0Nv
bW1pdHRlZEZyb21DYWNoZWRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRl
ckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZv
cmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnJlbW92ZUl0ZW0pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6c3VzcGVuZEZvclByb2Nlc3NTd2FwKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldENhY2hlTW9kZWwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnNldEJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyQ2FjaGVkUGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmg6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBbV0syXSBIYW5kbGUgYmFjay9mb3J3YXJkIGNhY2hlIGVudHJ5IGV4
cGlyYXRpb24gaW4gdGhlIFVJUHJvY2VzcyBpbnN0ZWFkIG9mIHRoZSBXZWJQcm9jZXNzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggMDc4OTkwMzJlM2NkMWYyMmY5NTE3ZTcyYWZlYWNl
ZGJjN2I1Y2RmNS4uZDI1ZWYzZGI2Y2M2YTIxNzdiM2RjM2JjNzhlZDMwMGQyMzc4YjEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEwLTE2ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNo
ZSB0byBCYWNrRm9yd2FyZENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDMwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hlIHRvIEJhY2tGb3J3YXJkQ2FjaGUgZm9yIGNs
YXJpdHkgYW5kIGNvbnNpc3RlbmN5IHdpdGggdGhlIFVJUHJvY2VzcydzIFdlYkJhY2tGb3J3YXJk
Q2FjaGUuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaDoKKwogMjAxOS0x
MC0wOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVt
b3ZlIHJlZHVuZGFudCB1c2VzIG9mIFVTRShVSUtJVF9FRElUSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IDA2MWFlMWI0YWRmYmIzNjYyNGI0Y2I5NmY0YzQ5NWRkZTFkODFmODEu
LjI1ZDdhYmVlMTMwZmQyZTg0YzQyYmJkZDk0ZTMyNDY2MWQ1ZjllNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0Zv
cndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBj
b25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisg
ICAgICAgICogSGlzdG9yeS9CYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgIChCYWNrRm9yd2Fy
ZExpc3Q6OmFkZEl0ZW0pOgorICAgICAgICAoQmFja0ZvcndhcmRMaXN0OjpzZXRDYXBhY2l0eSk6
CisgICAgICAgICogSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW06CisgICAgICAgICgtW1dl
YkJhY2tGb3J3YXJkTGlzdCBwYWdlQ2FjaGVTaXplXSk6CisgICAgICAgICogSGlzdG9yeS9XZWJI
aXN0b3J5SXRlbS5tbToKKyAgICAgICAgKiBIaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJpdmF0ZS5o
OgorICAgICAgICAqIE1pc2MvV2ViQ2FjaGUubW06CisgICAgICAgICogTWlzYy9XZWJDb3JlU3Rh
dGlzdGljcy5tbToKKyAgICAgICAgKCtbV2ViQ29yZVN0YXRpc3RpY3MgY2FjaGVkUGFnZUNvdW50
XSk6CisgICAgICAgICgrW1dlYkNvcmVTdGF0aXN0aWNzIGNhY2hlZEZyYW1lQ291bnRdKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUp
OgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0Zvcndh
cmRDYWNoZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5t
bToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1M
VmlldyBsYXlvdXRUb01pbmltdW1QYWdlV2lkdGg6aGVpZ2h0Om9yaWdpbmFsUGFnZVdpZHRoOm9y
aWdpbmFsUGFnZUhlaWdodDptYXhpbXVtU2hyaW5rUmF0aW86YWRqdXN0aW5nVmlld1NpemU6XSk6
CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNldE5lZWRzTGF5b3V0Ol0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBzZXROZWVkc1RvQXBwbHlTdHlsZXM6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jbG9zZV0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6CisgICAgICAgICgrW1dlYlZpZXcgX3NldENhY2hl
TW9kZWw6XSk6CisKIDIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbV0syXSBNb3ZlIGJhY2svZm9yd2FyZCBjYWNoZSBlbnRyeSBleHBpcmF0aW9u
IGZyb20gdGhlIFdlYlByb2Nlc3MgdG8gdGhlIFVJUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IDM0OTdlNDhjYTlmMzY1MWI3ZjhjOTIwY2NlMjFmOTFiZjExOTc4MWEuLmFh
ZjE2YTBhMmQ0NzgwZjBhZTY2ZmExMDc1NjBkYWY1MTlhY2RiODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0Zvcndh
cmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25z
aXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAg
ICAgICogQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKEJhY2tGb3J3YXJkTGlzdDo6YWRk
SXRlbSk6CisgICAgICAgIChCYWNrRm9yd2FyZExpc3Q6OnNldENhcGFjaXR5KToKKyAgICAgICAg
KiBXZWJDb3JlU3RhdGlzdGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlU3RhdGlzdGljczo6Y2Fj
aGVkUGFnZUNvdW50KToKKyAgICAgICAgKFdlYkNvcmVTdGF0aXN0aWNzOjpjYWNoZWRGcmFtZUNv
dW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21CYWNrRm9yd2Fy
ZENhY2hlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAg
ICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjphY2Nlc3NpYmxlIGNvbnN0
KToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnNldENhY2hlTW9k
ZWwpOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAx
OS0xMC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OOiBlZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtaW50ZXJmYWNl
cy5odG1sIGlzIGZhaWxpbmcgaW4gV2ViS2l0MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOWMyYjIw
NDg0YjlmZjQzMTYxNGIwZWU3ZTJjOGY0N2IyZGQ5NDc1ZS4uZTg1ZDllM2Y1Mzc0ZTUyMzVkOTEy
NGEzNzE5NGEzYjI3NDI3OTk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC01MjAsMTMgKzUyMCwx
MyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZmlsZWFwaS9G
aWxlUmVhZGVyTG9hZGVyQ2xpZW50LmgKICAgICBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaAog
CisgICAgaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmgKICAgICBoaXN0b3J5L0JhY2tGb3J3YXJk
Q2xpZW50LmgKICAgICBoaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oCiAgICAgaGlzdG9y
eS9CYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmgKICAgICBoaXN0b3J5L0NhY2hlZEZyYW1lLmgK
ICAgICBoaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZvcm1EYXRhLmgKICAgICBoaXN0b3J5L0hpc3Rv
cnlJdGVtLmgKLSAgICBoaXN0b3J5L1BhZ2VDYWNoZS5oCiAKICAgICBodG1sL0F1dG9jYXBpdGFs
aXplLmgKICAgICBodG1sL0F1dG9jYXBpdGFsaXplVHlwZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCAxZWM3MzZmYjhi
ZWM4Mjc1ZWQ0ZGY4NzhmODBkY2JlOTViNGEwNzUxLi5hY2RhZjc5ZTNlMTMzY2NlZDVlNDdiOGE1
NjU5YmIyNDQxZjE5NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIGJvb2wgR2VvbG9jYXRp
b246OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogICAgIAogdm9pZCBH
ZW9sb2NhdGlvbjo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIHsKLSAgICBp
ZiAocmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VDYWNoZSkgeworICAgIGlmIChy
ZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAg
ICBzdG9wKCk7CiAgICAgICAgIG1fcmVzZXRPblJlc3VtZSA9IHRydWU7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIu
Y3BwCmluZGV4IGQ1YWZkNDQ1OTcxYTg0NTBhYjM4NWE1MDAyMGViNmUyMTk2MTI5MmYuLjZjMTZm
YmM5MmRjYTgyMDcxZjIyZGM1YjYwZmY5MzZkZDFlODE2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKQEAgLTEw
Niw3ICsxMDYsNyBAQCBjb25zdCBjaGFyKiBNZWRpYVJlY29yZGVyOjphY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QKIAogYm9vbCBNZWRpYVJlY29yZGVyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7IC8vIEZJWE1FOiBXZSBzaG91
bGQgZG8gYmV0dGVyIGhlcmUgYXMgdGhpcyBwcmV2ZW50cyBlbnRlcmluZyBQYWdlQ2FjaGUuCisg
ICAgcmV0dXJuIGZhbHNlOyAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvIGJldHRlciBoZXJlIGFzIHRo
aXMgcHJldmVudHMgZW50ZXJpbmcgQmFja0ZvcndhcmRDYWNoZS4KIH0KIAogRXhjZXB0aW9uT3I8
dm9pZD4gTWVkaWFSZWNvcmRlcjo6c3RhcnRSZWNvcmRpbmcoT3B0aW9uYWw8aW50PiB0aW1lc2xp
Y2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgwNjlkNTJhMDU2ZjA1N2NiYTE2ZDExMDQ5OTMxYzFh
ZGI0OWI0NzQuLmZkMTIwZmE5MmI0YmUyN2NmZDY0NTIxY2Q4NzZhYTQ0MzAzZGViYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCkBAIC01MDYsNyArNTA2LDcgQEAgYm9vbCBSVENQZWVyQ29ubmVjdGlvbjo6
Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiAKIHZvaWQgUlRDUGVlckNv
bm5lY3Rpb246OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiB7Ci0gICAgaWYg
KHJlYXNvbiAhPSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKHJlYXNv
biAhPSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX3Nob3VsZERlbGF5VGFza3MgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCAzMDM4YTk3ZDU5NTIzOGMw
NDMwOTJmMDRlOWM2NWZhZDBlMDExMWEwLi5iMzJiZjk4YjI1OGRjZWMzOTg4ZWE1YThhMzRiN2Jl
YzU4MzNmMzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcApAQCAtNTA4LDcgKzUwOCw3IEBAIHZvaWQgV2ViU29ja2V0OjpzdXNwZW5kKFJl
YXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyA9
IHRydWU7CiAKICAgICBpZiAobV9jaGFubmVsKSB7Ci0gICAgICAgIGlmIChyZWFzb24gPT0gUmVh
c29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKSB7CisgICAgICAgIGlmIChyZWFzb24gPT0gUmVh
c29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICAgICAgLy8gVGhp
cyB3aWxsIGNhdXNlIGRpZENsb3NlKCkgdG8gYmUgY2FsbGVkLgogICAgICAgICAgICAgbV9jaGFu
bmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiIpOwogICAg
ICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZDliYjlhZjE5YWMxYzYyMzY5NDk0ZTFlYjFk
MmQ1N2JhYjNmNTQ1My4uZmZiZGE5NjIzMGQ2MWY1OGM5YzEyNWU0ZjU3OTRhZWE0YTlmZGIxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTEwODUsMTEgKzEwODUsMTEgQEAgZmlsZWFwaS9GaWxlUmVhZGVy
U3luYy5jcHAKIGZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKIGZpbGVhcGkvVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeS5jcHAKIAoraGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcAogaGlzdG9y
eS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwCiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAogaGlz
dG9yeS9DYWNoZWRQYWdlLmNwcAogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKLWhpc3RvcnkvUGFn
ZUNhY2hlLmNwcAogCiBodG1sL0F1dG9maWxsLmNwcAogaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDNiMzY2NzkxNGU2ZDBmYTdmZmRjYjdlZWI4MGY0OWVmODcwZjYxMTIuLjkxNTU0
ODM1OTgwY2IzMDIxMjE4MDliZmU0NGY0ODMwYjRmYzA4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxMCw3ICs0MTAsNyBA
QAogCQkxNDMyRTg0NzBDNTE0OTM4MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDMyRTg0NjBDNTE0OTM4MDBC
MTUwMEYgLyogR0NDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFB
NzE1REM0QkIxMDAzMDVEQjIgLyogV3JpdGluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyog
SlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9
OwotCQkxNDc3RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NTBCRjQxMzRBMDAxNTI4
NzIgLyogUGFnZUNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMTQ3N0U3NzcwQkY0MTM0QTAwMTUyODcyIC8qIEJhY2tGb3J3YXJkQ2FjaGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzdFNzc1
MEJGNDEzNEEwMDE1Mjg3MiAvKiBCYWNrRm9yd2FyZENhY2hlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ3OUZBRUUxMDlBRTM3NTAwREVENjU1
IC8qIFJlbmRlclJ1YnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NzlGQUU2MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmggKi87IH07CiAJ
CTE0NzlGQUYwMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5QmFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3OUZBRTgxMDlBRTM3NTAwREVE
NjU1IC8qIFJlbmRlclJ1YnlCYXNlLmggKi87IH07CiAJCTE0NzlGQUYyMTA5QUUzNzUwMERFRDY1
NSAvKiBSZW5kZXJSdWJ5UnVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDc5RkFFQTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieVJ1bi5oICov
OyB9OwpAQCAtNTkxNyw4ICs1OTE3LDggQEAKIAkJMTQ0NzZBQTcxNURDNEJCMTAwMzA1REIyIC8q
IFdyaXRpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRpbmdN
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NDlFMjRBMTA3RDRBODQwMEI1
NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NhbGxiYWNrRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ5RTI4
NjEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFn
ZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8q
IEJhY2tGb3J3YXJkQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJhY2tGb3J3YXJkQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
NDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja0ZvcndhcmRDYWNoZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDc5RkFFNTEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJSdWJ5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3OUZBRTYxMDlBRTM3NTAwREVENjU1IC8q
IFJlbmRlclJ1YnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyUnVi
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc5RkFFNzEwOUFFMzc1MDBERUQ2
NTUgLyogUmVuZGVyUnVieUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVuZGVyUnVieUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTg4NzQsNiArMTg4NzQsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
IAkJCQk1MTYwRjQ5MjBCMEFBNzE1MDBDMUQyQUYgLyogbWFjICovLAorCQkJCTE0NzdFNzc0MEJG
NDEzNEEwMDE1Mjg3MiAvKiBCYWNrRm9yd2FyZENhY2hlLmNwcCAqLywKKwkJCQkxNDc3RTc3NTBC
RjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oICovLAogCQkJCTUxNzQxRDBCMEIw
NzI1OUEwMEVENDQyQyAvKiBCYWNrRm9yd2FyZENsaWVudC5oICovLAogCQkJCUJDQThDODFEMTFF
M0QzNjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwICovLAogCQkJCUJDQThD
ODFDMTFFM0QzNjkwMDgxMkZCNyAvKiBCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCAqLywKQEAgLTE4
ODg1LDggKzE4ODg3LDYgQEAKIAkJCQk1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVk
UGFnZS5oICovLAogCQkJCTUxNzQxRDBFMEIwNzI1OUEwMEVENDQyQyAvKiBIaXN0b3J5SXRlbS5j
cHAgKi8sCiAJCQkJNTE3NDFEMEQwQjA3MjU5QTAwRUQ0NDJDIC8qIEhpc3RvcnlJdGVtLmggKi8s
Ci0JCQkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgKi8sCi0JCQkJ
MTQ3N0U3NzUwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovLAogCQkJKTsKIAkJCXBh
dGggPSBoaXN0b3J5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4NzM0LDYgKzI4
NzM0LDcgQEAKIAkJCQlGNDVDMjMxRTE5OTVCNzNCMDBBNkUyRTMgLyogQXhpc1Njcm9sbFNuYXBP
ZmZzZXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIzODBGQkI5QzFEMDA1MTAyOTMgLyog
QVhPYmplY3RDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTFDOUYyRjkxQUUzQkVCMDAwOTVC
NjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDc3
RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogQmFja0ZvcndhcmRDYWNoZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE3NDFEMEYwQjA3MjU5QTAwRUQ0NDJDIC8qIEJhY2tGb3J3YXJkQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0E4QzgxRTExRTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUExQjg3RDIwODdDNEMwMDA5NzlBNzUg
LyogQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTIxOCw3
ICszMTIxOSw2IEBACiAJCQkJMzc3NEFCQTUwRkEyMUVCNDAwQUQ3REU5IC8qIE92ZXJsYXBUZXN0
UmVxdWVzdENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVBMjE0NjgwOTdBMzI5MTAwQjkw
NTBBIC8qIFBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxMjc4RDVFMjFERURBRDYwMEI1NzE4
NCAvKiBQYWdlQXVkaXRBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQ3N0U3NzcwQkY0MTM0
QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q1RTVCNUYxQTE1
Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NUI4MUNDMjFGQUE0NEJDMDAzN0QxRTYgLyogUGFnZUNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJREFFRDIwMzExNkYyNDQ0ODAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJB
bmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAK
aW5kZXggMzE5NGIzMjc0NzVmZjE2ZTlhZGQxMTQyOWM2OGUwZTU1YmFlNDFmZi4uNWYwYzkwMDNk
ZmY3N2UwNzE3ZDZkOGY1YmU2OTY4NjIwZmI1MmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAgLTExNjEsNyArMTE2MSw3IEBAIGJvb2wgV2ViQW5pbWF0
aW9uOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKICAgICAvLyBV
c2UgdGhlIGJhc2UgY2xhc3MncyBpbXBsZW1lbnRhdGlvbiBvZiBoYXNQZW5kaW5nQWN0aXZpdHko
KSBzaW5jZSB3ZSB3b3VsZG4ndCB3YW50IHRoZSBjdXN0b20gaW1wbGVtZW50YXRpb24KICAgICAv
LyBpbiB0aGlzIGNsYXNzIGRlc2lnbmVkIHRvIGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUgdG8gaW50
ZXJmZXJlIHdpdGggdGhlIGFiaWxpdHkgZm9yIGEgcGFnZSB1c2luZyBhbmltYXRpb25zCi0gICAg
Ly8gdG8gZW50ZXIgdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gdG8gZW50ZXIgdGhlIGJhY2svZm9y
d2FyZCBjYWNoZS4KICAgICByZXR1cm4gIUFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2
aXR5KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRv
d1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcApp
bmRleCAwMmUzYzcyNGYxNjFjZmRiZGE3NWJhN2ViMDA1NzA1NDJlY2NmZDE3Li5kZTBiZjg4Nzlm
ODNiOTY1ZmZiYWZiOWQyMDkwM2EyMGJhNGFmZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV2luZG93UHJveHkuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgSlNXaW5kb3dQcm94eSYg
V2luZG93UHJveHk6OmNyZWF0ZUpTV2luZG93UHJveHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQoRE9N
V3JhcHBlclcKICAgICByZXR1cm4gd2luZG93UHJveHk7CiB9CiAKLXZvaWQgV2luZG93UHJveHk6
OmNsZWFySlNXaW5kb3dQcm94aWVzTm90TWF0Y2hpbmdET01XaW5kb3coQWJzdHJhY3RET01XaW5k
b3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpCit2b2lkIFdpbmRvd1By
b3h5OjpjbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9N
V2luZG93KiBuZXdET01XaW5kb3csIGJvb2wgZ29pbmdJbnRvQmFja0ZvcndhcmRDYWNoZSkKIHsK
ICAgICBpZiAobV9qc1dpbmRvd1Byb3hpZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBA
IC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBXaW5kb3dQcm94eTo6Y2xlYXJKU1dpbmRvd1Byb3hpZXNO
b3RNYXRjaGluZ0RPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyogbmUKIAogICAgIC8vIEl0J3Mg
bGlrZWx5IHRoYXQgcmVzZXR0aW5nIG91ciB3aW5kb3dzIGNyZWF0ZWQgYSBsb3Qgb2YgZ2FyYmFn
ZSwgdW5sZXNzCiAgICAgLy8gaXQgd2VudCBpbiBhIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICBp
ZiAoIWdvaW5nSW50b1BhZ2VDYWNoZSkKKyAgICBpZiAoIWdvaW5nSW50b0JhY2tGb3J3YXJkQ2Fj
aGUpCiAgICAgICAgIGNvbGxlY3RHYXJiYWdlQWZ0ZXJXaW5kb3dQcm94eURlc3RydWN0aW9uKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5oCmluZGV4IDQ3MjJl
NDkzYjA2MDlkOTExNzZhNjJhZDM1Nzg0MGVkMGQ3N2RlODMuLjJjODA4YmRjNzljNzI3MzdlMTVh
MWJhNDE3MTA1NTNhZWZjMjhhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dpbmRvd1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93
UHJveHkuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KERPTVdyYXBwZXJXb3JsZCYpOwogCi0gICAg
dm9pZCBjbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9N
V2luZG93KiwgYm9vbCBnb2luZ0ludG9QYWdlQ2FjaGUpOworICAgIHZvaWQgY2xlYXJKU1dpbmRv
d1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyosIGJvb2wgZ29p
bmdJbnRvQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERP
TVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2Jq
ZWN0LmgKaW5kZXggODU3OTk4YWZmNmYyMzcwMGE2YTYyZjVhMWZhMDI3NjM4OTlkM2VlYS4uNmI4
Yjk4NmYzNzk2Yzc0ODlkMGFmMmM5NTc1M2NiYjY5MGRjMjY3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9B
Y3RpdmVET01PYmplY3QuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBEb2N1bWVudDsKIGVudW0g
Y2xhc3MgUmVhc29uRm9yU3VzcGVuc2lvbiB7CiAgICAgSmF2YVNjcmlwdERlYnVnZ2VyUGF1c2Vk
LAogICAgIFdpbGxEZWZlckxvYWRpbmcsCi0gICAgUGFnZUNhY2hlLAorICAgIEJhY2tGb3J3YXJk
Q2FjaGUsCiAgICAgUGFnZVdpbGxCZVN1c3BlbmRlZCwKIH07CiAKQEAgLTY0LDcgKzY0LDcgQEAg
cHVibGljOgogCiAgICAgLy8gVGhlc2UgdGhyZWUgZnVuY3Rpb25zIG11c3Qgbm90IGhhdmUgYSBz
aWRlIGVmZmVjdCBvZiBjcmVhdGluZyBvciBkZXN0cm95aW5nCiAgICAgLy8gYW55IEFjdGl2ZURP
TU9iamVjdC4gVGhhdCBtZWFucyB0aGV5IG11c3Qgbm90IHJlc3VsdCBpbiBjYWxscyB0byBhcmJp
dHJhcnkgSmF2YVNjcmlwdC4KLSAgICB2aXJ0dWFsIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50
U3VzcGVuc2lvbigpIGNvbnN0ID0gMDsgLy8gUmV0dXJuaW5nIGZhbHNlIGluIGNhblN1c3BlbmRG
b3JEb2N1bWVudFN1c3BlbnNpb24oKSB3aWxsIHByZXZlbnQgdGhlIHBhZ2UgZnJvbSBlbnRlcmlu
ZyB0aGUgUGFnZUNhY2hlLgorICAgIHZpcnR1YWwgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QgPSAwOyAvLyBSZXR1cm5pbmcgZmFsc2UgaW4gY2FuU3VzcGVuZEZv
ckRvY3VtZW50U3VzcGVuc2lvbigpIHdpbGwgcHJldmVudCB0aGUgcGFnZSBmcm9tIGVudGVyaW5n
IHRoZSBCYWNrRm9yd2FyZENhY2hlLgogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZv
clN1c3BlbnNpb24pOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWUoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggNTg2MzI0YmMxNDNiMDMwNGNiYmFhOGJiMjQ2ZTYwMzM3Y2MzYjkzNi4u
NGQ0MGM0MGI3YzMyNzI5NDM1MzA3YWVlOTcyNjhmZTAzZjI2YzFhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC02MjMsNyArNjIzLDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAg
cmVtb3ZlRnJvbUNvbnRleHRzTWFwKCk7CiAKICAgICBBU1NFUlQoIXJlbmRlclZpZXcoKSk7Ci0g
ICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVCht
X2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSAhPSBJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIEFTU0VS
VChtX3Jhbmdlcy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9wYXJlbnRUcmVlU2NvcGUpOwog
ICAgIEFTU0VSVCghbV9kaXNhYmxlZEZpZWxkc2V0RWxlbWVudHNDb3VudCk7CkBAIC0xODI4LDcg
KzE4MjgsNyBAQCB2b2lkIERvY3VtZW50OjpzY2hlZHVsZVN0eWxlUmVjYWxjKCkKIHsKICAgICBB
U1NFUlQoIW1fcmVuZGVyVmlldyB8fCAhaW5IaXRUZXN0aW5nKCkpOwogCi0gICAgaWYgKG1fc3R5
bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8IHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdl
Q2FjaGUpCisgICAgaWYgKG1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8IGJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpICE9IE5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQVNTRVJUKGNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IG1fbmVlZHNGdWxsU3R5
bGVSZWJ1aWxkKTsKQEAgLTIwMDksNyArMjAwOSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRl
eHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNpZ25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5z
CiAKIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdAogewotICAgIGlmIChw
YWdlQ2FjaGVTdGF0ZSgpICE9IE5vdEluUGFnZUNhY2hlKQorICAgIGlmIChiYWNrRm9yd2FyZENh
Y2hlU3RhdGUoKSAhPSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGlmIChtX25lZWRzRnVsbFN0eWxlUmVidWlsZCkKQEAgLTIyOTUsNyArMjI5NSw3
IEBAIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0NhY2hlQW5kRm9y
Y2VTdHlsZVJlY2FsYygpCiB7CiAgICAgaWYgKGF1dG8qIHJlc29sdmVyID0gc3R5bGVTY29wZSgp
LnJlc29sdmVySWZFeGlzdHMoKSkKICAgICAgICAgcmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVk
UHJvcGVydGllc0NhY2hlKCk7Ci0gICAgaWYgKHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdl
Q2FjaGUgfHwgIXJlbmRlclZpZXcoKSkKKyAgICBpZiAoYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
IT0gTm90SW5CYWNrRm9yd2FyZENhY2hlIHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQoKTsKIH0KQEAgLTIzMTQsNyArMjMxNCw3
IEBAIHZvaWQgRG9jdW1lbnQ6OnNldElzUmVzb2x2aW5nVHJlZVN0eWxlKGJvb2wgdmFsdWUpCiB2
b2lkIERvY3VtZW50OjpjcmVhdGVSZW5kZXJUcmVlKCkKIHsKICAgICBBU1NFUlQoIXJlbmRlclZp
ZXcoKSk7Ci0gICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOworICAg
IEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSAhPSBJbkJhY2tGb3J3YXJkQ2FjaGUpOwog
ICAgIEFTU0VSVCghbV9heE9iamVjdENhY2hlIHx8IHRoaXMgIT0gJnRvcERvY3VtZW50KCkpOwog
CiAgICAgaWYgKG1faXNOb25SZW5kZXJlZFBsYWNlaG9sZGVyKQpAQCAtMjM1NCw3ICsyMzU0LDcg
QEAgdm9pZCBEb2N1bWVudDo6ZGlkQmVjb21lQ3VycmVudERvY3VtZW50SW5GcmFtZSgpCiAKICAg
ICAvLyBFbnN1cmUgdGhhdCB0aGUgc2NoZWR1bGVkIHRhc2sgc3RhdGUgb2YgdGhlIGRvY3VtZW50
IG1hdGNoZXMgdGhlIERPTSBzdXNwZW5zaW9uIHN0YXRlIG9mIHRoZSBmcmFtZS4gSXQgY2FuCiAg
ICAgLy8gYmUgb3V0IG9mIHN5bmMgaWYgdGhlIERPTSBzdXNwZW5zaW9uIHN0YXRlIGNoYW5nZWQg
d2hpbGUgdGhlIGRvY3VtZW50IHdhcyBub3QgaW4gdGhlIGZyYW1lIChwb3NzaWJseSBpbiB0aGUK
LSAgICAvLyBwYWdlIGNhY2hlLCBvciBzaW1wbHkgbmV3bHkgY3JlYXRlZCkuCisgICAgLy8gYmFj
ay9mb3J3YXJkIGNhY2hlLCBvciBzaW1wbHkgbmV3bHkgY3JlYXRlZCkuCiAgICAgaWYgKG1fZnJh
bWUtPmFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zU3VzcGVuZGVkKCkpIHsKICAgICAgICAg
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQW5pbWF0aW9u
c0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogdGltZWxp
bmUgPSBleGlzdGluZ1RpbWVsaW5lKCkpCkBAIC0yMzk3LDcgKzIzOTcsNyBAQCB2b2lkIERvY3Vt
ZW50OjphdHRhY2hUb0NhY2hlZEZyYW1lKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCiB7
CiAgICAgUkVMRUFTRV9BU1NFUlQoY2FjaGVkRnJhbWUuZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAg
ICBBU1NFUlQoY2FjaGVkRnJhbWUudmlldygpKTsKLSAgICBBU1NFUlQobV9wYWdlQ2FjaGVTdGF0
ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKTsKICAgICBvYnNlcnZlRnJh
bWUoJmNhY2hlZEZyYW1lLnZpZXcoKS0+ZnJhbWUoKSk7CiB9CiAKQEAgLTI0MDYsNyArMjQwNiw3
IEBAIHZvaWQgRG9jdW1lbnQ6OmRldGFjaEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZUJhc2Um
IGNhY2hlZEZyYW1lKQogICAgIEFTU0VSVF9VTlVTRUQoY2FjaGVkRnJhbWUsIGNhY2hlZEZyYW1l
LnZpZXcoKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoY2FjaGVkRnJhbWUuZG9jdW1lbnQoKSA9PSB0
aGlzKTsKICAgICBBU1NFUlQobV9mcmFtZSA9PSAmY2FjaGVkRnJhbWUudmlldygpLT5mcmFtZSgp
KTsKLSAgICBBU1NFUlQobV9wYWdlQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUp
OworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5CYWNr
Rm9yd2FyZENhY2hlKTsKICAgICBkZXRhY2hGcm9tRnJhbWUoKTsKIH0KIApAQCAtMjU2OSwxMCAr
MjU2OSwxMCBAQCB2b2lkIERvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogCiAgICAg
bV9oYXNQcmVwYXJlZEZvckRlc3RydWN0aW9uID0gdHJ1ZTsKIAotICAgIC8vIE5vdGUgdGhhdCBt
X3BhZ2VDYWNoZVN0YXRlIGNhbiBiZSBEb2N1bWVudDo6QWJvdXRUb0VudGVyUGFnZUNhY2hlIGlm
IG91ciBmcmFtZQorICAgIC8vIE5vdGUgdGhhdCBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBjYW4g
YmUgRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUgaWYgb3VyIGZyYW1lCiAg
ICAgLy8gd2FzIHJlbW92ZWQgaW4gYW4gb25wYWdlaGlkZSBldmVudCBoYW5kbGVyIGZpcmVkIHdo
ZW4gdGhlIHRvcC1sZXZlbCBmcmFtZSBpcwotICAgIC8vIGFib3V0IHRvIGVudGVyIHRoZSBwYWdl
IGNhY2hlLgotICAgIFJFTEVBU0VfQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUgIT0gRG9jdW1lbnQ6
OkluUGFnZUNhY2hlKTsKKyAgICAvLyBhYm91dCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNh
Y2hlLgorICAgIFJFTEVBU0VfQVNTRVJUKG1fYmFja0ZvcndhcmRDYWNoZVN0YXRlICE9IERvY3Vt
ZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGUpOwogfQogCiB2b2lkIERvY3VtZW50OjpyZW1vdmVBbGxF
dmVudExpc3RlbmVycygpCkBAIC00MDUzLDcgKzQwNTMsNyBAQCBzdGF0aWMgYm9vbCBpc05vZGVJ
blN1YnRyZWUoTm9kZSYgbm9kZSwgTm9kZSYgY29udGFpbmVyLCBEb2N1bWVudDo6Tm9kZVJlbW92
YWwgbgogCiB2b2lkIERvY3VtZW50OjphZGp1c3RGb2N1c2VkTm9kZU9uTm9kZVJlbW92YWwoTm9k
ZSYgbm9kZSwgTm9kZVJlbW92YWwgbm9kZVJlbW92YWwpCiB7Ci0gICAgaWYgKCFtX2ZvY3VzZWRF
bGVtZW50IHx8IHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUpIC8vIElmIHRoZSBk
b2N1bWVudCBpcyBpbiB0aGUgcGFnZSBjYWNoZSwgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNsZWFy
IG91dCB0aGUgZm9jdXNlZCBub2RlLgorICAgIGlmICghbV9mb2N1c2VkRWxlbWVudCB8fCBiYWNr
Rm9yd2FyZENhY2hlU3RhdGUoKSAhPSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpIC8vIElmIHRoZSBk
b2N1bWVudCBpcyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0aGVuIHdlIGRvbid0IG5lZWQg
dG8gY2xlYXIgb3V0IHRoZSBmb2N1c2VkIG5vZGUuCiAgICAgICAgIHJldHVybjsKIAogICAgIEVs
ZW1lbnQqIGZvY3VzZWRFbGVtZW50ID0gbm9kZS50cmVlU2NvcGUoKS5mb2N1c2VkRWxlbWVudElu
U2NvcGUoKTsKQEAgLTQxMjEsNyArNDEyMSw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jCiAg
ICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgPT0gbmV3Rm9jdXNlZEVsZW1lbnQpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCi0gICAgaWYgKHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUp
CisgICAgaWYgKGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IE5vdEluQmFja0ZvcndhcmRDYWNo
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBmb2N1c0NoYW5nZUJsb2NrZWQg
PSBmYWxzZTsKQEAgLTQ1NjEsNyArNDU2MSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRha2VET01XaW5k
b3dGcm9tKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBBU1NFUlQoIW1fZG9tV2luZG93KTsKICAg
ICBBU1NFUlQoZG9jdW1lbnQubV9kb21XaW5kb3cpOwogICAgIC8vIEEgdmFsaWQgRE9NV2luZG93
IGlzIG5lZWRlZCBieSBDYWNoZWRGcmFtZSBmb3IgaXRzIGRvY3VtZW50cy4KLSAgICBBU1NFUlQo
cGFnZUNhY2hlU3RhdGUoKSA9PSBOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKGJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpID09IE5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBtX2RvbVdp
bmRvdyA9IFdURk1vdmUoZG9jdW1lbnQubV9kb21XaW5kb3cpOwogICAgIG1fZG9tV2luZG93LT5k
aWRTZWN1cmVUcmFuc2l0aW9uVG8oKnRoaXMpOwpAQCAtNTA4MywyMSArNTA4MywyMSBAQCBVUkwg
RG9jdW1lbnQ6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVy
biBjb21wbGV0ZVVSTCh1cmwsIG1fYmFzZVVSTCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnNldFBh
Z2VDYWNoZVN0YXRlKFBhZ2VDYWNoZVN0YXRlIHN0YXRlKQordm9pZCBEb2N1bWVudDo6c2V0QmFj
a0ZvcndhcmRDYWNoZVN0YXRlKEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBzdGF0ZSkKIHsKLSAgICBp
ZiAobV9wYWdlQ2FjaGVTdGF0ZSA9PSBzdGF0ZSkKKyAgICBpZiAobV9iYWNrRm9yd2FyZENhY2hl
U3RhdGUgPT0gc3RhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZUNhY2hlU3RhdGUg
PSBzdGF0ZTsKKyAgICBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9IHN0YXRlOwogCiAgICAgRnJh
bWVWaWV3KiB2ID0gdmlldygpOwogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAKICAg
ICBzd2l0Y2ggKHN0YXRlKSB7Ci0gICAgY2FzZSBJblBhZ2VDYWNoZToKKyAgICBjYXNlIEluQmFj
a0ZvcndhcmRDYWNoZToKICAgICAgICAgaWYgKHYpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBU
aGVyZSBpcyBzb21lIHNjcm9sbGluZyByZWxhdGVkIHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4g
d2hlbmV2ZXIgYSBwYWdlIGdvZXMgaW50byB0aGUKLSAgICAgICAgICAgIC8vIHBhZ2UgY2FjaGUg
YW5kIHNpbWlsYXIgd29yayB0aGF0IG5lZWRzIHRvIG9jY3VyIHdoZW4gaXQgY29tZXMgb3V0LiBU
aGlzIGlzIHdoZXJlIHdlIGRvIHRoZSB3b3JrCisgICAgICAgICAgICAvLyBiYWNrL2ZvcndhcmQg
Y2FjaGUgYW5kIHNpbWlsYXIgd29yayB0aGF0IG5lZWRzIHRvIG9jY3VyIHdoZW4gaXQgY29tZXMg
b3V0LiBUaGlzIGlzIHdoZXJlIHdlIGRvIHRoZSB3b3JrCiAgICAgICAgICAgICAvLyB0aGF0IG5l
ZWRzIHRvIGhhcHBlbiB3aGVuIHdlIGVudGVyLCBhbmQgdGhlIHdvcmsgdGhhdCBuZWVkcyB0byBo
YXBwZW4gd2hlbiB3ZSBleGl0IGlzIGluCiAgICAgICAgICAgICAvLyBIaXN0b3J5Q29udHJvbGxl
cjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkuIEl0IGNhbid0IGJlIGhlcmUg
YmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzCiAgICAgICAgICAgICAvLyBjYWxsZWQgdG9vIGVhcmx5
IG9uIGluIHRoZSBwcm9jZXNzIG9mIGEgcGFnZSBleGl0aW5nIHRoZSBjYWNoZSBmb3IgdGhhdCB3
b3JrIHRvIGJlIHBvc3NpYmxlIGluIHRoaXMKQEAgLTUxMjEsMTEgKzUxMjEsMTEgQEAgdm9pZCBE
b2N1bWVudDo6c2V0UGFnZUNhY2hlU3RhdGUoUGFnZUNhY2hlU3RhdGUgc3RhdGUpCiAKICAgICAg
ICAgY2xlYXJTaGFyZWRPYmplY3RQb29sKCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTm90
SW5QYWdlQ2FjaGU6CisgICAgY2FzZSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAgICAgIGlm
IChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkKICAgICAgICAgICAgIHNjaGVkdWxlU3R5bGVSZWNh
bGMoKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBYm91dFRvRW50ZXJQYWdlQ2FjaGU6Cisg
ICAgY2FzZSBBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOgogICAgICAgICBicmVhazsKICAg
ICB9CiB9CkBAIC01MTQ4LDcgKzUxNDgsNyBAQCB2b2lkIERvY3VtZW50OjpzdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb24gcmVhc29uKQogCiAjaWZuZGVmIE5ERUJVRwogICAgIC8vIENsZWFyIHRo
ZSB1cGRhdGUgZmxhZyB0byBiZSBhYmxlIHRvIGNoZWNrIGlmIHRoZSB2aWV3cG9ydCBhcmd1bWVu
dHMgdXBkYXRlCi0gICAgLy8gaXMgZGlzcGF0Y2hlZCwgYWZ0ZXIgdGhlIGRvY3VtZW50IGlzIHJl
c3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gaXMgZGlzcGF0Y2hlZCwgYWZ0ZXIg
dGhlIGRvY3VtZW50IGlzIHJlc3RvcmVkIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAg
ICBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCA9IGZhbHNlOwogI2VuZGlm
CiAKQEAgLTUxNjksNyArNTE2OSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbiByZWFzb24pCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
LSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNl
V29ya2VyRW5hYmxlZCgpICYmIHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2Fj
aGUpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2Vy
dmljZVdvcmtlckVuYWJsZWQoKSAmJiByZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFj
a0ZvcndhcmRDYWNoZSkKICAgICAgICAgc2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24obnVsbHB0
cik7CiAjZW5kaWYKIApAQCAtNTIxNCw3ICs1MjE0LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzdW1l
KFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsK
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgpICYmIHJlYXNvbiA9
PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiByZWFz
b24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgc2V0
U2VydmljZVdvcmtlckNvbm5lY3Rpb24oU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24o
KS5leGlzdGluZ1NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCkpOwogI2VuZGlmCiB9CkBAIC01NTM0
LDcgKzU1MzQsNyBAQCBEb2N1bWVudCYgRG9jdW1lbnQ6OnRvcERvY3VtZW50KCkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRTogVGhpcyBzcGVjaWFsLWNhc2luZyBhdm9pZHMgaW5jb3JyZWN0bHkgZGV0
ZXJtaW5lZCB0b3AgZG9jdW1lbnRzIGR1cmluZyB0aGUgcHJvY2VzcwogICAgIC8vIG9mIEFYT2Jq
ZWN0Q2FjaGUgdGVhcmRvd24gb3Igbm90aWZpY2F0aW9uIHBvc3RpbmcgZm9yIGNhY2hlZCBvciBi
ZWluZy1kZXN0cm95ZWQgZG9jdW1lbnRzLgotICAgIGlmIChwYWdlQ2FjaGVTdGF0ZSgpID09IE5v
dEluUGFnZUNhY2hlICYmICFtX3JlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCkgeworICAgIGlmIChi
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBOb3RJbkJhY2tGb3J3YXJkQ2FjaGUgJiYgIW1fcmVu
ZGVyVHJlZUJlaW5nRGVzdHJveWVkKSB7CiAgICAgICAgIGlmICghbV9mcmFtZSkKICAgICAgICAg
ICAgIHJldHVybiBjb25zdF9jYXN0PERvY3VtZW50Jj4oKnRoaXMpOwogICAgICAgICAvLyBUaGlz
IHNob3VsZCBhbHdheXMgYmUgbm9uLW51bGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc1MzE1
ZmU1MWMwNGI3MzMwMGI4ZDQ1MzYyZmQ1NjYwMDczMDUyYTcuLjk4NmY5YjcxOTI5Y2JiODc3ZDk1
OGI1ZDU4YTU5OTVlODYxNjQ4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMDczLDEwICsx
MDczLDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmluaXNoZWRQYXJzaW5nKCk7CiAKLSAgICBl
bnVtIFBhZ2VDYWNoZVN0YXRlIHsgTm90SW5QYWdlQ2FjaGUsIEFib3V0VG9FbnRlclBhZ2VDYWNo
ZSwgSW5QYWdlQ2FjaGUgfTsKKyAgICBlbnVtIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdElu
QmFja0ZvcndhcmRDYWNoZSwgQWJvdXRUb0VudGVyQmFja0ZvcndhcmRDYWNoZSwgSW5CYWNrRm9y
d2FyZENhY2hlIH07CiAKLSAgICBQYWdlQ2FjaGVTdGF0ZSBwYWdlQ2FjaGVTdGF0ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZUNhY2hlU3RhdGU7IH0KLSAgICB2b2lkIHNldFBhZ2VDYWNoZVN0YXRl
KFBhZ2VDYWNoZVN0YXRlKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlU3RhdGUgYmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrRm9yd2FyZENhY2hlU3RhdGU7IH0KKyAg
ICB2b2lkIHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShCYWNrRm9yd2FyZENhY2hlU3RhdGUpOwog
CiAgICAgdm9pZCByZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50
Jik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRm9yRG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKEVs
ZW1lbnQmKTsKQEAgLTE5NTAsNyArMTk1MCw3IEBAIHByaXZhdGU6CiAgICAgSW5oZXJpdGVkQm9v
bCBtX2Rlc2lnbk1vZGUgeyBpbmhlcml0IH07CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzIG1fbWVkaWFTdGF0ZSB7IE1lZGlhUHJvZHVjZXI6OklzTm90UGxheWluZyB9OwogICAg
IGJvb2wgbV91c2VySGFzSW50ZXJhY3RlZFdpdGhNZWRpYUVsZW1lbnQgeyBmYWxzZSB9OwotICAg
IFBhZ2VDYWNoZVN0YXRlIG1fcGFnZUNhY2hlU3RhdGUgeyBOb3RJblBhZ2VDYWNoZSB9OworICAg
IEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdEluQmFj
a0ZvcndhcmRDYWNoZSB9OwogICAgIE9wdGlvbmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVycmVy
UG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5jcHAKaW5kZXggODVjNzhhODcyMzY1ZDg5
MDM4Njk2NWZlMDAyMjEyOWUxZjJlNGZmZS4uMWU0Mjg3MWJjMmIyM2NmOThhZTBkMjI3Y2Y1YTcw
NWU3NDY2Yjg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBA
IC0zNjMsNyArMzYzLDcgQEAgc3RhdGljIHZvaWQgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKFJl
bmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5SZW5kZXJlciwgRWxlbWUKIAogdm9pZCBGdWxsc2Ny
ZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbHNjcmVlbihFbGVtZW50JiBlbGVtZW50KQogewotICAg
IGlmICghZG9jdW1lbnQoKS5oYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgZG9jdW1lbnQoKS5wYWdl
Q2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoIWRvY3Vt
ZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgpIHx8IGRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNo
ZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIGNhbGxlZCBhZnRlciB0aGUgZG9j
dW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwYWdlLgpAQCAtNDE3LDcgKzQxNyw3IEBA
IHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbigpCiAgICAgaWYgKCFt
X2Z1bGxzY3JlZW5FbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWhhc0xpdmlu
Z1JlbmRlclRyZWUoKSB8fCBwYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VD
YWNoZSkKKyAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBiYWNrRm9yd2FyZENhY2hl
U3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2Z1bGxzY3JlZW5FbGVtZW50LT5kaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVu
dCgpOwpAQCAtNDI5LDcgKzQyOSw3IEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0
RnVsbHNjcmVlbigpCiAgICAgaWYgKCFmdWxsc2NyZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgcGFnZUNhY2hlU3RhdGUoKSAh
PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVl
KCkgfHwgYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZnVsbHNjcmVlbkVsZW1lbnQtPndpbGxT
dG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHZvaWQgRnVs
bHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKCkKICAgICBpZiAoIWZ1bGxzY3JlZW5F
bGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUo
KSB8fCBwYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBp
ZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBE
b2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm47CiAgICAgZnVs
bHNjcmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Ny
b3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVl
bk1hbmFnZXIuaAppbmRleCBlMjczNDE4ZmI1ZThiNmU0YTIwNDFhZGVlZTM5MmE3YzBjNzgyYTIx
Li5iZmQyMTdmZDExOTVhMGM5ZjEzMTA3ZWJkZjdmM2I5YTAwNzNkZDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAg
RnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5mcmFtZSgpOyB9CiAgICAg
RWxlbWVudCogZG9jdW1lbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5kb2N1
bWVudEVsZW1lbnQoKTsgfQogICAgIGJvb2wgaGFzTGl2aW5nUmVuZGVyVHJlZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZG9jdW1lbnQuaGFzTGl2aW5nUmVuZGVyVHJlZSgpOyB9Ci0gICAgRG9jdW1lbnQ6
OlBhZ2VDYWNoZVN0YXRlIHBhZ2VDYWNoZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVu
dC5wYWdlQ2FjaGVTdGF0ZSgpOyB9CisgICAgRG9jdW1lbnQ6OkJhY2tGb3J3YXJkQ2FjaGVTdGF0
ZSBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgpOyB9CiAgICAgdm9pZCBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQo
KSB7IG1fZG9jdW1lbnQuc2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7IH0KIAogICAgIC8vIFcz
QyBGdWxsc2NyZWVuIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCmluZGV4IDAwMTAzODc5ODc4YTBmZTdjN2ZlY2ZlYzU3MWEzNDFlZTVkMjU0OTAu
LjNlYTliMzhkZDIzMzgwNWU3NjU0ZjQ0NGMxMjliMjdjN2VmYjMwZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBA
QCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKFJl
YXNvbkZvclN1c3BlbnNpb24gd2h5KQogICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKIAogICAgIGlm
IChtX2FjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQpIHsKLSAgICAgICAgLy8gQSBwYWdlIG1h
eSBzdWJzZXF1ZW50bHkgc3VzcGVuZCBET00gb2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50ZXJp
bmcgdGhlIHBhZ2UgY2FjaGUsIGFmdGVyIHRoZSBlbWJlZGRpbmcKKyAgICAgICAgLy8gQSBwYWdl
IG1heSBzdWJzZXF1ZW50bHkgc3VzcGVuZCBET00gb2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50
ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYWZ0ZXIgdGhlIGVtYmVkZGluZwogICAgICAg
ICAvLyBjbGllbnQgcmVxdWVzdGVkIHRoZSBwYWdlIGJlIHN1c3BlbmRlZC4gV2UgaWdub3JlIHN1
Y2ggcmVxdWVzdHMgc28gbG9uZyBhcyB0aGUgZW1iZWRkaW5nIGNsaWVudCByZXF1ZXN0ZWQKICAg
ICAgICAgLy8gdGhlIHN1c3BlbnNpb24gZmlyc3QuIFNlZSA8cmRhcjovL3Byb2JsZW0vMTM3NTQ4
OTY+IGZvciBtb3JlIGRldGFpbHMuCiAgICAgICAgIEFTU0VSVChtX3JlYXNvbkZvclN1c3BlbmRp
bmdBY3RpdmVET01PYmplY3RzID09IFJlYXNvbkZvclN1c3BlbnNpb246OlBhZ2VXaWxsQmVTdXNw
ZW5kZWQpOwpAQCAtMzA4LDggKzMwOCw4IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhSZWFzb25Gb3JTdXNwZW5zaW9uIHdoeSkKICAgICAgICAg
cmV0dXJuIFNob3VsZENvbnRpbnVlOjpZZXM7CiAgICAgfSk7CiAKLSAgICAvLyBJbiBjYXNlIHRo
ZXJlIHdlcmUgcGVuZGluZyBtZXNzYWdlcyBhdCB0aGUgdGltZSB0aGUgc2NyaXB0IGV4ZWN1dGlv
biBjb250ZXh0IGVudGVyZWQgUGFnZUNhY2hlLAotICAgIC8vIG1ha2Ugc3VyZSB0aG9zZSBnZXQg
ZGlzcGF0Y2hlZCBzaG9ydGx5IGFmdGVyIHJlc3RvcmluZyBmcm9tIFBhZ2VDYWNoZS4KKyAgICAv
LyBJbiBjYXNlIHRoZXJlIHdlcmUgcGVuZGluZyBtZXNzYWdlcyBhdCB0aGUgdGltZSB0aGUgc2Ny
aXB0IGV4ZWN1dGlvbiBjb250ZXh0IGVudGVyZWQgdGhlIEJhY2tGb3J3YXJkQ2FjaGUsCisgICAg
Ly8gbWFrZSBzdXJlIHRob3NlIGdldCBkaXNwYXRjaGVkIHNob3J0bHkgYWZ0ZXIgcmVzdG9yaW5n
IGZyb20gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgcHJvY2Vzc01lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzU29vbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0Jh
Y2tGb3J3YXJkQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENh
Y2hlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MzczNTNmODNjY2ViZGM0NDIzODlhYTJhNDNjYzFiYTNjZGM3
MGE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2Fy
ZENhY2hlLmNwcApAQCAtMCwwICsxLDU1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywg
MjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgorCisjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhv
c3QuaCIKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYWNo
ZWRQYWdlLmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9u
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgor
I2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCisjaW5jbHVkZSAiRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dExvYWRlci5oIgorI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhpc3RvcnlDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmgi
CisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTY3Jp
cHREaXNhbGxvd2VkU2NvcGUuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN1
YmZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSA8cGFsL0xvZ2dpbmcuaD4KKyNpbmNsdWRlIDx3dGYv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworI2RlZmluZSBQQ0xPRyguLi4pIExPRyhCYWNrRm9yd2FyZENhY2hlLCAi
JSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgp
LmRhdGEoKSkKKworc3RhdGljIGlubGluZSB2b2lkIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJl
RGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQmIGNsaWVudCwgY29uc3Qg
U3RyaW5nJiByZWFzb24pCit7CisgICAgY2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdu
b3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUZhaWx1cmVLZXkoKSwgcmVhc29uLCBT
aG91bGRTYW1wbGU6Ok5vKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGxvZ0JhY2tGb3J3YXJk
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBy
ZWFzb24pCit7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBsb2dCYWNr
Rm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UtPmRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50KCksIHJlYXNvbik7Cit9CisKK3N0YXRpYyBib29sIGNhbkNhY2hlRnJhbWUoRnJh
bWUmIGZyYW1lLCBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQsIHVuc2lnbmVkIGluZGVudExldmVsKQoreworICAgIFBDTE9HKCIrLS0tIik7CisgICAgRnJh
bWVMb2FkZXImIGZyYW1lTG9hZGVyID0gZnJhbWUubG9hZGVyKCk7CisKKyAgICAvLyBQcmV2ZW50
IHBhZ2UgY2FjaGluZyBpZiBhIHN1YmZyYW1lIGlzIHN0aWxsIGluIHByb3Zpc2lvbmFsIGxvYWQg
c3RhZ2UuCisgICAgLy8gV2Ugb25seSBkbyB0aGlzIGNoZWNrIGZvciBzdWJmcmFtZXMgYmVjYXVz
ZSB0aGUgbWFpbiBmcmFtZSBpcyByZXVzZWQgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2Uu
CisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpICYmIGZyYW1lTG9hZGVyLnN0YXRlKCkgPT0g
RnJhbWVTdGF0ZVByb3Zpc2lvbmFsKSB7CisgICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgaW4g
cHJvdmlzaW9uYWwgbG9hZCBzdGFnZSIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnByb3Zpc2lvbmFsTG9hZEtleSgpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpICYmIGZyYW1lTG9hZGVyLnN0
YXRlTWFjaGluZSgpLmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkpIHsKKyAgICAg
ICAgUENMT0coIiAgIC1NYWluRnJhbWUgaXMgZGlzcGxheWluZyBpbml0aWFsIGVtcHR5IGRvY3Vt
ZW50Iik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIWZyYW1lLmRv
Y3VtZW50KCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1GcmFtZSBoYXMgbm8gZG9jdW1lbnQiKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghZnJhbWUuZG9jdW1lbnQo
KS0+ZnJhbWUoKSkgeworICAgICAgICBQQ0xPRygiICAgLURvY3VtZW50IGlzIGRldGFjaGVkIGZy
b20gZnJhbWUiKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBm
cmFtZUxvYWRlci5kb2N1bWVudExvYWRlcigpOworICAgIGlmICghZG9jdW1lbnRMb2FkZXIpIHsK
KyAgICAgICAgUENMT0coIiAgIC1UaGVyZSBpcyBubyBEb2N1bWVudExvYWRlciBvYmplY3QiKTsK
KyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0RvY3VtZW50TG9h
ZGVyS2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgVVJMIGN1cnJl
bnRVUkwgPSBkb2N1bWVudExvYWRlci0+dXJsKCk7CisgICAgVVJMIG5ld1VSTCA9IGZyYW1lTG9h
ZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA/IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFs
RG9jdW1lbnRMb2FkZXIoKS0+dXJsKCkgOiBVUkwoKTsKKyAgICBpZiAoIW5ld1VSTC5pc0VtcHR5
KCkpCisgICAgICAgIFBDTE9HKCIgRGV0ZXJtaW5pbmcgaWYgZnJhbWUgY2FuIGJlIGNhY2hlZCBu
YXZpZ2F0aW5nIGZyb20gKCIsIGN1cnJlbnRVUkwuc3RyaW5nKCksICIpIHRvICgiLCBuZXdVUkwu
c3RyaW5nKCksICIpOiIpOworICAgIGVsc2UKKyAgICAgICAgUENMT0coIiBEZXRlcm1pbmluZyBp
ZiBzdWJmcmFtZSB3aXRoIFVSTCAoIiwgY3VycmVudFVSTC5zdHJpbmcoKSwgIikgY2FuIGJlIGNh
Y2hlZDoiKTsKKworICAgIGJvb2wgaXNDYWNoZWFibGUgPSB0cnVlOworICAgIC8vIERvIG5vdCBj
YWNoZSBlcnJvciBwYWdlcyAodGhlc2UgY2FuIGJlIHJlY29nbml6ZWQgYXMgcGFnZXMgd2l0aCBz
dWJzdGl0dXRlIGRhdGEgb3IgdW5yZWFjaGFibGUgVVJMcykuCisgICAgaWYgKGRvY3VtZW50TG9h
ZGVyLT5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSAmJiAhZG9jdW1lbnRMb2FkZXItPnN1YnN0
aXR1dGVEYXRhKCkuZmFpbGluZ1VSTCgpLmlzRW1wdHkoKSkgeworICAgICAgICBQQ0xPRygiICAg
LUZyYW1lIGlzIGFuIGVycm9yIHBhZ2UiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZh
aWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjppc0Vycm9yUGFnZUtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBm
YWxzZTsKKyAgICB9CisgICAgaWYgKGZyYW1lTG9hZGVyLnN1YmZyYW1lTG9hZGVyKCkuY29udGFp
bnNQbHVnaW5zKCkgJiYgIWZyYW1lLnBhZ2UoKS0+c2V0dGluZ3MoKS5iYWNrRm9yd2FyZENhY2hl
U3VwcG9ydHNQbHVnaW5zKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1GcmFtZSBjb250YWlucyBw
bHVnaW5zIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01l
c3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aGFz
UGx1Z2luc0tleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAg
aWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgIWZyYW1lTG9hZGVyLmhpc3RvcnkoKS5jdXJyZW50
SXRlbSgpKSB7CisgICAgICAgIFBDTE9HKCIgICAtTWFpbiBmcmFtZSBoYXMgbm8gY3VycmVudCBo
aXN0b3J5IGl0ZW0iKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9z
dGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
Ojpub0N1cnJlbnRIaXN0b3J5SXRlbUtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxz
ZTsKKyAgICB9CisgICAgaWYgKGZyYW1lTG9hZGVyLnF1aWNrUmVkaXJlY3RDb21pbmcoKSkgewor
ICAgICAgICBQQ0xPRygiICAgLVF1aWNrIHJlZGlyZWN0IGlzIGNvbWluZyIpOworICAgICAgICBs
b2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnF1aXJrUmVkaXJlY3RDb21pbmdLZXko
KSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgfQorICAgIGlmIChkb2N1bWVu
dExvYWRlci0+aXNMb2FkaW5nKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudExvYWRl
ciBpcyBzdGlsbCBsb2FkaW5nIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJl
RGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6aXNMb2FkaW5nS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwor
ICAgIH0KKyAgICBpZiAoZG9jdW1lbnRMb2FkZXItPmlzU3RvcHBpbmcoKSkgeworICAgICAgICBQ
Q0xPRygiICAgLURvY3VtZW50TG9hZGVyIGlzIGluIHRoZSBtaWRkbGUgb2Ygc3RvcHBpbmciKTsK
KyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkb2N1bWVudExvYWRl
clN0b3BwaW5nS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKwor
ICAgIFZlY3RvcjxBY3RpdmVET01PYmplY3QqPiB1bnN1c3BlbmRhYmxlT2JqZWN0czsKKyAgICBp
ZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiAhZnJhbWUuZG9jdW1lbnQoKS0+Y2FuU3VzcGVuZEFjdGl2
ZURPTU9iamVjdHNGb3JEb2N1bWVudFN1c3BlbnNpb24oJnVuc3VzcGVuZGFibGVPYmplY3RzKSkg
eworICAgICAgICBQQ0xPRygiICAgLVRoZSBkb2N1bWVudCBjYW5ub3Qgc3VzcGVuZCBpdHMgYWN0
aXZlIERPTSBPYmplY3RzIik7CisgICAgICAgIGZvciAoYXV0byogYWN0aXZlRE9NT2JqZWN0IDog
dW5zdXNwZW5kYWJsZU9iamVjdHMpIHsKKyAgICAgICAgICAgIFBDTE9HKCIgICAgLSBVbnN1c3Bl
bmRhYmxlOiAiLCBhY3RpdmVET01PYmplY3QtPmFjdGl2ZURPTU9iamVjdE5hbWUoKSk7CisgICAg
ICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OnVuc3VzcGVuZGFibGVET01PYmplY3RLZXkoKSwgYWN0aXZlRE9N
T2JqZWN0LT5hY3RpdmVET01PYmplY3ROYW1lKCksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAg
ICAgICAgVU5VU0VEX1BBUkFNKGFjdGl2ZURPTU9iamVjdCk7CisgICAgICAgIH0KKyAgICAgICAg
bG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5ub3RTdXNwZW5kQWN0aXZlRE9N
T2JqZWN0c0tleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGludmVzdGlnYXRpbmcgY2FjaGluZyBmcmFtZXMgdGhhdCBo
YXZlIGFuIGFzc29jaWF0ZWQKKyAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9i
bGVtLzU5MTc4OTk+IHRyYWNrcyB0aGF0IHdvcmsuCisgICAgaWYgKCFkb2N1bWVudExvYWRlci0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKS5jYW5DYWNoZUluQmFja0ZvcndhcmRDYWNoZSgpKSB7Cisg
ICAgICAgIFBDTE9HKCIgICAtVGhlIERvY3VtZW50TG9hZGVyIHVzZXMgYW4gYXBwbGljYXRpb24g
Y2FjaGUiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVz
c2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphcHBs
aWNhdGlvbkNhY2hlS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0K
KyAgICBpZiAoIWZyYW1lTG9hZGVyLmNsaWVudCgpLmNhbkNhY2hlUGFnZSgpKSB7CisgICAgICAg
IFBDTE9HKCIgICAtVGhlIGNsaWVudCBzYXlzIHRoaXMgZnJhbWUgY2Fubm90IGJlIGNhY2hlZCIp
OworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmRlbmllZEJ5Q2xp
ZW50S2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKworICAgIGZv
ciAoRnJhbWUqIGNoaWxkID0gZnJhbWUudHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICghY2FuQ2FjaGVG
cmFtZSgqY2hpbGQsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRMZXZlbCArIDEpKQor
ICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAgUENMT0co
aXNDYWNoZWFibGUgPyAiIEZyYW1lIENBTiBiZSBjYWNoZWQiIDogIiBGcmFtZSBDQU5OT1QgYmUg
Y2FjaGVkIik7CisgICAgUENMT0coIistLS0iKTsKKyAgICAKKyAgICByZXR1cm4gaXNDYWNoZWFi
bGU7Cit9CisKK3N0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQYWdlJiBwYWdlKQoreworICAgIFJF
TEVBU0VfQVNTRVJUKCFwYWdlLmlzUmVzdG9yaW5nQ2FjaGVkUGFnZSgpKTsKKworICAgIHVuc2ln
bmVkIGluZGVudExldmVsID0gMDsKKyAgICBQQ0xPRygiLS0tLS0tLS1cbiBEZXRlcm1pbmluZyBp
ZiBwYWdlIGNhbiBiZSBjYWNoZWQ6Iik7CisKKyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7
CisgICAgYm9vbCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJhbWUocGFnZS5tYWluRnJhbWUoKSwg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVsICsgMSk7CisKKyAgICBpZiAoIXBh
Z2Uuc2V0dGluZ3MoKS51c2VzQmFja0ZvcndhcmRDYWNoZSgpIHx8IHBhZ2UuaXNSZXNvdXJjZUNh
Y2hpbmdEaXNhYmxlZEJ5V2ViSW5zcGVjdG9yKCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1QYWdl
IHNldHRpbmdzIHNheXMgYi9mIGNhY2hlIGRpc2FibGVkIik7CisgICAgICAgIGxvZ0JhY2tGb3J3
YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNEaXNhYmxlZEtleSgpKTsKKyAgICAgICAgaXNDYWNo
ZWFibGUgPSBmYWxzZTsKKyAgICB9CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXI6Omlz
QWN0aXZlQXQoJnBhZ2UpKSB7CisgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZp
Y2VNb3Rpb24iKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpk
ZXZpY2VNb3Rpb25LZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgfQor
ICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7
CisgICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOwor
ICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmRldmljZU9yaWVudGF0
aW9uS2V5KCkpOworICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKyNlbmRpZgor
CisgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSA9IHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCku
bG9hZFR5cGUoKTsKKyAgICBzd2l0Y2ggKGxvYWRUeXBlKSB7CisgICAgY2FzZSBGcmFtZUxvYWRU
eXBlOjpSZWxvYWQ6CisgICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhlIGNhY2hlIG9u
IGEgcmVsb2FkLCBzaW5jZSB3ZSB3aWxsIGp1c3Qgd3JpdGUgb3ZlciBpdCBhZ2FpbiB3aGVuIHdl
IGxlYXZlIHRoYXQgcGFnZS4KKyAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5cGUgaXM6IFJlbG9h
ZCIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdl
KGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlbG9hZEtl
eSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBGcmFtZUxvYWRUeXBlOjpTYW1lOiAvLyB1c2VyIGxvYWRzIHNhbWUgVVJMIGFnYWluIChi
dXQgbm90IHJlbG9hZCBidXR0b24pCisgICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhl
IGNhY2hlIG9uIGEgc2FtZSBsb2FkLCBzaW5jZSB3ZSB3aWxsIGp1c3Qgd3JpdGUgb3ZlciBpdCBh
Z2FpbiB3aGVuIHdlIGxlYXZlIHRoYXQgcGFnZS4KKyAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5
cGUgaXM6IFNhbWUiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9z
dGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpzYW1lTG9hZEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9y
d2FyZExpc3Q6CisgICAgICAgIC8vIERvbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUg
bWlkZGxlIG9mIGEgcmVkaXJlY3QsIHNpbmNlIHdlIHdpbGwgd2FudCB0byBzdG9yZSB0aGUgZmlu
YWwgcGFnZSB3ZSBlbmQgdXAgb24uCisgICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBS
ZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3QiKTsKKyAgICAgICAgbG9nQmFja0Zvcndh
cmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZWRpcmVjdEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFi
bGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZXBs
YWNlOgorICAgICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHJlcGxh
Y2UsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUg
dGhhdCBwYWdlLgorICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVwbGFjZSIpOwor
ICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlcGxhY2VLZXkoKSk7
CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbjogeworICAgICAgICAvLyBObyBwb2ludCB3
cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHJlbG9hZCwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRl
IG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0IHBhZ2UuCisgICAgICAgIFBDTE9HKCIg
ICAtTG9hZCB0eXBlIGlzOiBSZWxvYWRGcm9tT3JpZ2luIik7CisgICAgICAgIGxvZ0JhY2tGb3J3
YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkRnJvbU9yaWdpbktleSgpKTsKKyAgICAgICAg
aXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgRnJh
bWVMb2FkVHlwZTo6UmVsb2FkRXhwaXJlZE9ubHk6IHsKKyAgICAgICAgLy8gTm8gcG9pbnQgd3Jp
dGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBv
dmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgorICAgICAgICBQQ0xPRygiICAg
LUxvYWQgdHlwZSBpczogUmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZCIpOworICAgICAgICBsb2dC
YWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlbG9hZFJldmFsaWRhdGluZ0V4cGlyZWRL
ZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAg
IH0KKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkOgorICAgIGNhc2UgRnJhbWVMb2Fk
VHlwZTo6QmFjazoKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQ6CisgICAgY2FzZSBG
cmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQ6IC8vIGEgbXVsdGktaXRlbSBob3AgaW4g
dGhlIGJhY2tmb3J3YXJkIGxpc3QKKyAgICAgICAgLy8gQ2FjaGVhYmxlLgorICAgICAgICBicmVh
azsKKyAgICB9CisgICAgCisgICAgaWYgKGlzQ2FjaGVhYmxlKQorICAgICAgICBQQ0xPRygiIFBh
Z2UgQ0FOIGJlIGNhY2hlZFxuLS0tLS0tLS0iKTsKKyAgICBlbHNlCisgICAgICAgIFBDTE9HKCIg
UGFnZSBDQU5OT1QgYmUgY2FjaGVkXG4tLS0tLS0tLSIpOworCisgICAgZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5n
S2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhbkNh
Y2hlS2V5KCksIGlzQ2FjaGVhYmxlID8gRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzIDogRGlh
Z25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLCBTaG91bGRTYW1wbGU6Ok5vKTsKKyAgICByZXR1cm4g
aXNDYWNoZWFibGU7Cit9CisKK0JhY2tGb3J3YXJkQ2FjaGUmIEJhY2tGb3J3YXJkQ2FjaGU6OnNp
bmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEJhY2tGb3J3YXJkQ2FjaGU+
IGdsb2JhbEJhY2tGb3J3YXJkQ2FjaGU7CisgICAgcmV0dXJuIGdsb2JhbEJhY2tGb3J3YXJkQ2Fj
aGU7Cit9CisKK0JhY2tGb3J3YXJkQ2FjaGU6OkJhY2tGb3J3YXJkQ2FjaGUoKQoreworICAgIHN0
YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxh
ZywgW10geworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5X
ZWJLaXQuc2hvd0JhY2tGb3J3YXJkQ2FjaGUiLCBbXSB7CisgICAgICAgICAgICBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5kdW1wKCk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2
b2lkIEJhY2tGb3J3YXJkQ2FjaGU6OmR1bXAoKSBjb25zdAoreworICAgIFdURkxvZ0Fsd2F5cygi
QmFjay9Gb3J3YXJkIENhY2hlOiIpOworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsK
KyAgICAgICAgQ2FjaGVkUGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7Cisg
ICAgICAgIFdURkxvZ0Fsd2F5cygiICBQYWdlICVwLCBkb2N1bWVudCAlcCAlcyIsICZjYWNoZWRQ
YWdlLnBhZ2UoKSwgY2FjaGVkUGFnZS5kb2N1bWVudCgpLCBjYWNoZWRQYWdlLmRvY3VtZW50KCkg
PyBjYWNoZWRQYWdlLmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAi
Iik7CisgICAgfQorfQorCitib29sIEJhY2tGb3J3YXJkQ2FjaGU6OmNhbkNhY2hlKFBhZ2UmIHBh
Z2UpIGNvbnN0Cit7CisgICAgaWYgKCFtX21heFNpemUpIHsKKyAgICAgICAgbG9nQmFja0Zvcndh
cmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjppc0Rpc2FibGVkS2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgaWYgKE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVBy
ZXNzdXJlKCkpIHsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmRlck1lbW9yeVByZXNzdXJl
S2V5KCkpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIAorICAgIHJldHVybiBj
YW5DYWNoZVBhZ2UocGFnZSk7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmVUb1Np
emVOb3codW5zaWduZWQgc2l6ZSwgUHJ1bmluZ1JlYXNvbiBwcnVuaW5nUmVhc29uKQoreworICAg
IFNldEZvclNjb3BlPHVuc2lnbmVkPiBjaGFuZ2UobV9tYXhTaXplLCBzaXplKTsKKyAgICBwcnVu
ZShwcnVuaW5nUmVhc29uKTsKK30KKwordm9pZCBCYWNrRm9yd2FyZENhY2hlOjpzZXRNYXhTaXpl
KHVuc2lnbmVkIG1heFNpemUpCit7CisgICAgbV9tYXhTaXplID0gbWF4U2l6ZTsKKyAgICBwcnVu
ZShQcnVuaW5nUmVhc29uOjpOb25lKTsKK30KKwordW5zaWduZWQgQmFja0ZvcndhcmRDYWNoZTo6
ZnJhbWVDb3VudCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMu
c2l6ZSgpOworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKKyAgICAgICAgQVNTRVJU
KGl0ZW0tPm1fY2FjaGVkUGFnZSk7CisgICAgICAgIGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNo
ZWRQYWdlLT5jYWNoZWRNYWluRnJhbWUoKS0+ZGVzY2VuZGFudEZyYW1lQ291bnQoKTsKKyAgICB9
CisgICAgCisgICAgcmV0dXJuIGZyYW1lQ291bnQ7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNo
ZTo6bWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKFBhZ2UmIHBhZ2UpCit7Cisg
ICAgZm9yIChhdXRvJiBpdGVtIDogbV9pdGVtcykgeworICAgICAgICBDYWNoZWRQYWdlJiBjYWNo
ZWRQYWdlID0gKml0ZW0tPm1fY2FjaGVkUGFnZTsKKyAgICAgICAgaWYgKCZwYWdlLm1haW5GcmFt
ZSgpID09ICZjYWNoZWRQYWdlLmNhY2hlZE1haW5GcmFtZSgpLT52aWV3KCktPmZyYW1lKCkpCisg
ICAgICAgICAgICBjYWNoZWRQYWdlLm1hcmtGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoKTsK
KyAgICB9Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ29udGVudHNT
aXplQ2hhbmdlZChQYWdlJiBwYWdlKQoreworICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMp
IHsKKyAgICAgICAgQ2FjaGVkUGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7
CisgICAgICAgIGlmICgmcGFnZS5tYWluRnJhbWUoKSA9PSAmY2FjaGVkUGFnZS5jYWNoZWRNYWlu
RnJhbWUoKS0+dmlldygpLT5mcmFtZSgpKQorICAgICAgICAgICAgY2FjaGVkUGFnZS5tYXJrRm9y
Q29udGVudHNTaXplQ2hhbmdlZCgpOworICAgIH0KK30KKworI2lmIEVOQUJMRShWSURFT19UUkFD
SykKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2Vz
Q2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9pdGVtcykgeworICAgICAgICBB
U1NFUlQoaXRlbS0+bV9jYWNoZWRQYWdlKTsKKyAgICAgICAgaXRlbS0+bV9jYWNoZWRQYWdlLT5t
YXJrRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOworICAgIH0KK30KKyNlbmRpZgorCitz
dGF0aWMgU3RyaW5nIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KFBydW5pbmdS
ZWFzb24gcHJ1bmluZ1JlYXNvbikKK3sKKyAgICBzd2l0Y2ggKHBydW5pbmdSZWFzb24pIHsKKyAg
ICBjYXNlIFBydW5pbmdSZWFzb246Ok1lbW9yeVByZXNzdXJlOgorICAgICAgICByZXR1cm4gRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01lbW9yeVByZXNzdXJlS2V5KCk7CisgICAg
Y2FzZSBQcnVuaW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOgorICAgICAgICByZXR1cm4gRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb1Byb2Nlc3NTdXNwZW5kZWQoKTsKKyAgICBj
YXNlIFBydW5pbmdSZWFzb246OlJlYWNoZWRNYXhTaXplOgorICAgICAgICByZXR1cm4gRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01heFNpemVSZWFjaGVkKCk7CisgICAgY2FzZSBQ
cnVuaW5nUmVhc29uOjpOb25lOgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Cit9CisKK3N0YXRpYyB2b2lk
IHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShQYWdlJiBwYWdlLCBEb2N1bWVudDo6QmFja0Zvcndh
cmRDYWNoZVN0YXRlIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkKK3sKKyAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1
bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShC
YWNrRm9yd2FyZENhY2hlU3RhdGUpOworICAgIH0KK30KKworLy8gV2hlbiBlbnRlcmluZyBiYWNr
L2ZvcndhcmQgY2FjaGUsIHRlYXIgZG93biB0aGUgcmVuZGVyIHRyZWUgYmVmb3JlIHNldHRpbmcg
dGhlIGluLWNhY2hlIGZsYWcuCisvLyBUaGlzIG1haW50YWlucyB0aGUgaW52YXJpYW50IHRoYXQg
cmVuZGVyIHRyZWVzIGFyZSBuZXZlciBwcmVzZW50IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUu
CisvLyBOb3RlIHRoYXQgZGVzdHJ1Y3Rpb24gaGFwcGVucyBib3R0b20tdXAgc28gdGhhdCB0aGUg
bWFpbiBmcmFtZSdzIHRyZWUgZGllcyBsYXN0Lgorc3RhdGljIHZvaWQgZGVzdHJveVJlbmRlclRy
ZWUoRnJhbWUmIG1haW5GcmFtZSkKK3sKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFt
ZS50cmVlKCkudHJhdmVyc2VQcmV2aW91cyhDYW5XcmFwOjpZZXMpOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlUHJldmlvdXMoQ2FuV3JhcDo6Tm8pKSB7CisgICAgICAgIGlm
ICghZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0
byYgZG9jdW1lbnQgPSAqZnJhbWUtPmRvY3VtZW50KCk7CisgICAgICAgIGlmIChkb2N1bWVudC5o
YXNMaXZpbmdSZW5kZXJUcmVlKCkpCisgICAgICAgICAgICBkb2N1bWVudC5kZXN0cm95UmVuZGVy
VHJlZSgpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNp
dmVseShGcmFtZSYgZnJhbWUpCit7CisgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIHN0b3BM
b2FkaW5nKCkgd2lsbCBmaXJlIHRoZSBwYWdlaGlkZSBldmVudCBpbiBlYWNoIHN1YmZyYW1lIGFu
ZCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHN0YXRlcworICAgIC8vIHRoYXQgdGhlIHBhcmVudCBk
b2N1bWVudCdzIGlnbm9yZS1vcGVucy1kdXJpbmctdW5sb2FkIGNvdW50ZXIgc2hvdWxkIGJlIGlu
Y3JlbWVudGVkIHdoaWxlIHRoZQorICAgIC8vIHBhZ2VoaWRlIGV2ZW50IGlzIGJlaW5nIGZpcmVk
IGluIGl0cyBzdWJmcmFtZXM6CisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9t
dWx0aXBhZ2UvYnJvd3NlcnMuaHRtbCN1bmxvYWQtYS1kb2N1bWVudAorICAgIElnbm9yZU9wZW5z
RHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlciBpZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50
SW5jcmVtZW50ZXIoZG9jdW1lbnQpOworCisgICAgZnJhbWUubG9hZGVyKCkuc3RvcExvYWRpbmco
VW5sb2FkRXZlbnRQb2xpY3lVbmxvYWRBbmRQYWdlSGlkZSk7CisKKyAgICBmb3IgKFJlZlB0cjxG
cmFtZT4gY2hpbGQgPSBmcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkpCisgICAgICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVj
dXJzaXZlbHkoKmNoaWxkKTsKK30KKworYm9vbCBCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hl
YWJsZShIaXN0b3J5SXRlbSYgaXRlbSwgUGFnZSogcGFnZSkKK3sKKyAgICBpZiAoaXRlbS5pc0lu
QmFja0ZvcndhcmRDYWNoZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRl
cigpLnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisKKyAgICBpZiAoIWNhbkNhY2hlKCpwYWdl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghcGFn
ZS0+aXNVdGlsaXR5UGFnZSgpLCAiVXRpbGl0eSBwYWdlcyBzdWNoIGFzIFNWR0ltYWdlIHBhZ2Vz
IHNob3VsZCBuZXZlciBnbyBpbnRvIEJhY2tGb3J3YXJkQ2FjaGUiKTsKKworICAgIHNldEJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgqcGFnZSwgRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJk
Q2FjaGUpOworCisgICAgLy8gRm9jdXMgdGhlIG1haW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1
c2VkIHN1YmZyYW1lIChpZiB3ZSBoYXZlIG9uZSkuIFdlIGRvIHRoaXMgaGVyZSwKKyAgICAvLyBi
ZWZvcmUgdGhlIHBhZ2UgZW50ZXJzIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIHdoaWxlIHdlIHN0
aWxsIGNhbiBkaXNwYXRjaCBET00gYmx1ci9mb2N1cyBldmVudHMuCisgICAgaWYgKHBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLmZvY3VzZWRGcmFtZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJnBhZ2UtPm1haW5GcmFtZSgpKTsKKworICAgIC8vIEZp
cmUgdGhlIHBhZ2VoaWRlIGV2ZW50IGluIGFsbCBmcmFtZXMuCisgICAgZmlyZVBhZ2VIaWRlRXZl
bnRSZWN1cnNpdmVseShwYWdlLT5tYWluRnJhbWUoKSk7CisKKyAgICBkZXN0cm95UmVuZGVyVHJl
ZShwYWdlLT5tYWluRnJhbWUoKSk7CisKKyAgICAvLyBTdG9wIGFsbCBsb2FkcyBhZ2FpbiBiZWZv
cmUgY2hlY2tpbmcgaWYgd2UgY2FuIHN0aWxsIGNhY2hlIHRoZSBwYWdlIGFmdGVyIGZpcmluZyB0
aGUgcGFnZWhpZGUKKyAgICAvLyBldmVudCwgc2luY2UgdGhlIHBhZ2UgbWF5IGhhdmUgc3RhcnRl
ZCBwaW5nIGxvYWRzIGluIGl0cyBwYWdlaGlkZSBldmVudCBoYW5kbGVyLgorICAgIHBhZ2UtPm1h
aW5GcmFtZSgpLmxvYWRlcigpLnN0b3BGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisKKyAgICAvLyBD
aGVjayB0aGF0IHRoZSBwYWdlIGlzIHN0aWxsIHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0
aGUgcGFnZWhpZGUgZXZlbnQuIFRoZSBKUyBldmVudCBoYW5kbGVycworICAgIC8vIGNvdWxkIGhh
dmUgYWx0ZXJlZCB0aGUgcGFnZSBpbiBhIHdheSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4K
KyAgICBpZiAoIWNhbkNhY2hlKCpwYWdlKSkgeworICAgICAgICBzZXRCYWNrRm9yd2FyZENhY2hl
U3RhdGUoKnBhZ2UsIERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKCpwYWdl
LCBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKTsKKworICAgIHsKKyAgICAgICAgLy8gTWFr
ZSBzdXJlIHdlIGRvbid0IGZpcmUgYW55IEpTIGV2ZW50cyBpbiB0aGlzIHNjb3BlLgorICAgICAg
ICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZCBzY3JpcHREaXNhbGxvd2VkU2Nv
cGU7CisKKyAgICAgICAgaXRlbS5zZXRDYWNoZWRQYWdlKG1ha2VVbmlxdWU8Q2FjaGVkUGFnZT4o
KnBhZ2UpKTsKKyAgICAgICAgaXRlbS5tX3BydW5pbmdSZWFzb24gPSBQcnVuaW5nUmVhc29uOjpO
b25lOworICAgICAgICBtX2l0ZW1zLmFkZCgmaXRlbSk7CisgICAgfQorICAgIHBydW5lKFBydW5p
bmdSZWFzb246OlJlYWNoZWRNYXhTaXplKTsKKworICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJk
Q2FjaGUsICJCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hlYWJsZSBpdGVtOiAlcywgc2l6ZTog
JXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VD
b3VudCgpLCBtYXhTaXplKCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0ZDo6dW5pcXVl
X3B0cjxDYWNoZWRQYWdlPiBCYWNrRm9yd2FyZENhY2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVt
LCBQYWdlKiBwYWdlKQoreworICAgIGlmICghaXRlbS5tX2NhY2hlZFBhZ2UpIHsKKyAgICAgICAg
aWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCisgICAgICAg
ICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIHBy
dW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KGl0ZW0ubV9wcnVuaW5nUmVhc29uKSk7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIG1faXRlbXMucmVtb3ZlKCZp
dGVtKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IGl0ZW0u
dGFrZUNhY2hlZFBhZ2UoKTsKKworICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJC
YWNrRm9yd2FyZENhY2hlOjp0YWtlIGl0ZW06ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5pZGVu
dGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7
CisKKyAgICBpZiAoY2FjaGVkUGFnZS0+aGFzRXhwaXJlZCgpIHx8IChwYWdlICYmIHBhZ2UtPmlz
UmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRCeVdlYkluc3BlY3RvcigpKSkgeworICAgICAgICBMT0co
QmFja0ZvcndhcmRDYWNoZSwgIk5vdCByZXN0b3JpbmcgcGFnZSBmb3IgJXMgZnJvbSBiYWNrL2Zv
cndhcmQgY2FjaGUgYmVjYXVzZSBjYWNoZSBlbnRyeSBoYXMgZXhwaXJlZCIsIGl0ZW0udXJsKCku
c3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJl
ZEtleSgpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGNh
Y2hlZFBhZ2U7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQ
YWdlKFBhZ2UmIHBhZ2UpCit7CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoIW1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSwgIldlIHNob3VsZCBub3QgcmVl
bnRlciB0aGlzIG1ldGhvZCIpOworICAgIFNldEZvclNjb3BlPGJvb2w+IGluUmVtb3ZlQWxsSXRl
bXNGb3JQYWdlU2NvcGUgeyBtX2lzSW5SZW1vdmVBbGxJdGVtc0ZvclBhZ2UsIHRydWUgfTsKKyNl
bmRpZgorCisgICAgZm9yIChhdXRvIGl0ID0gbV9pdGVtcy5iZWdpbigpOyBpdCAhPSBtX2l0ZW1z
LmVuZCgpOykgeworICAgICAgICAvLyBJbmNyZW1lbnQgaXRlcmF0b3IgZmlyc3Qgc28gaXQgc3Rh
eXMgdmFsaWQgYWZ0ZXIgdGhlIHJlbW92YWwuCisgICAgICAgIGF1dG8gY3VycmVudCA9IGl0Owor
ICAgICAgICArK2l0OworICAgICAgICBpZiAoJigqY3VycmVudCktPm1fY2FjaGVkUGFnZS0+cGFn
ZSgpID09ICZwYWdlKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhCYWNrRm9yd2FyZENhY2hl
LCAiQmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQYWdlIHJlbW92aW5nIGl0ZW06
ICVzLCBzaXplOiAldSAvICV1IiwgKCpjdXJyZW50KS0+aWRlbnRpZmllcigpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpIC0gMSwgbWF4U2l6ZSgpKTsKKyAgICAgICAgICAgICgq
Y3VycmVudCktPnNldENhY2hlZFBhZ2UobnVsbHB0cik7CisgICAgICAgICAgICBtX2l0ZW1zLnJl
bW92ZShjdXJyZW50KTsKKyAgICAgICAgfQorICAgIH0KK30KKworQ2FjaGVkUGFnZSogQmFja0Zv
cndhcmRDYWNoZTo6Z2V0KEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQoreworICAgIENh
Y2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBpdGVtLm1fY2FjaGVkUGFnZS5nZXQoKTsKKyAgICBpZiAo
IWNhY2hlZFBhZ2UpIHsKKyAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5p
bmdSZWFzb246Ok5vbmUpCisgICAgICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURp
YWdub3N0aWNNZXNzYWdlKHBhZ2UsIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5
KGl0ZW0ubV9wcnVuaW5nUmVhc29uKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIGlmIChjYWNoZWRQYWdlLT5oYXNFeHBpcmVkKCkgfHwgKHBhZ2UgJiYgcGFnZS0+aXNS
ZXNvdXJjZUNhY2hpbmdEaXNhYmxlZEJ5V2ViSW5zcGVjdG9yKCkpKSB7CisgICAgICAgIExPRyhC
YWNrRm9yd2FyZENhY2hlLCAiTm90IHJlc3RvcmluZyBwYWdlIGZvciAlcyBmcm9tIGJhY2svZm9y
d2FyZCBjYWNoZSBiZWNhdXNlIGNhY2hlIGVudHJ5IGhhcyBleHBpcmVkIiwgaXRlbS51cmwoKS5z
dHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleHBpcmVk
S2V5KCkpOworICAgICAgICByZW1vdmUoaXRlbSk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKyAgICByZXR1cm4gY2FjaGVkUGFnZTsKK30KKwordm9pZCBCYWNrRm9yd2FyZENhY2hl
OjpyZW1vdmUoSGlzdG9yeUl0ZW0mIGl0ZW0pCit7CisgICAgLy8gU2FmZWx5IGlnbm9yZSBhdHRl
bXB0cyB0byByZW1vdmUgaXRlbXMgbm90IGluIHRoZSBjYWNoZS4KKyAgICBpZiAoIWl0ZW0ubV9j
YWNoZWRQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7
CisgICAgaXRlbS5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOworCisgICAgUkVMRUFTRV9MT0coQmFj
a0ZvcndhcmRDYWNoZSwgIkJhY2tGb3J3YXJkQ2FjaGU6OnJlbW92ZSBpdGVtOiAlcywgc2l6ZTog
JXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VD
b3VudCgpLCBtYXhTaXplKCkpOworCit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUo
UHJ1bmluZ1JlYXNvbiBwcnVuaW5nUmVhc29uKQoreworICAgIHdoaWxlIChwYWdlQ291bnQoKSA+
IG1heFNpemUoKSkgeworICAgICAgICBhdXRvIG9sZGVzdEl0ZW0gPSBtX2l0ZW1zLnRha2VGaXJz
dCgpOworICAgICAgICBvbGRlc3RJdGVtLT5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOworICAgICAg
ICBvbGRlc3RJdGVtLT5tX3BydW5pbmdSZWFzb24gPSBwcnVuaW5nUmVhc29uOworICAgICAgICBS
RUxFQVNFX0xPRyhCYWNrRm9yd2FyZENhY2hlLCAiQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUgcmVt
b3ZpbmcgaXRlbTogJXMsIHNpemU6ICV1IC8gJXUiLCBvbGRlc3RJdGVtLT5pZGVudGlmaWVyKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7CisgICAgfQor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0Zv
cndhcmRDYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNGU2MGZhNDZlZWY2ZjYyNGExNDBmMGUyY2UxY2U0
M2IwM2NlMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tG
b3J3YXJkQ2FjaGUuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSGlz
dG9yeUl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0
SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIENhY2hlZFBhZ2U7CitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7CisK
K2VudW0gY2xhc3MgUHJ1bmluZ1JlYXNvbiB7IE5vbmUsIFByb2Nlc3NTdXNwZW5kZWQsIE1lbW9y
eVByZXNzdXJlLCBSZWFjaGVkTWF4U2l6ZSB9OworCitjbGFzcyBCYWNrRm9yd2FyZENhY2hlIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCYWNrRm9yd2FyZENhY2hlKTsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhl
IGdsb2JhbCBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEJh
Y2tGb3J3YXJkQ2FjaGUmIHNpbmdsZXRvbigpOworCisgICAgYm9vbCBjYW5DYWNoZShQYWdlJikg
Y29uc3Q7CisKKyAgICAvLyBVc2VkIHdoZW4gbWVtb3J5IGlzIGxvdyB0byBwcnVuZSBzb21lIGNh
Y2hlZCBwYWdlcy4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBydW5lVG9TaXplTm93KHVuc2ln
bmVkIG1heFNpemUsIFBydW5pbmdSZWFzb24pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
TWF4U2l6ZSh1bnNpZ25lZCk7IC8vIG51bWJlciBvZiBwYWdlcyB0byBjYWNoZS4KKyAgICB1bnNp
Z25lZCBtYXhTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhTaXplOyB9CisKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGFkZElmQ2FjaGVhYmxlKEhpc3RvcnlJdGVtJiwgUGFnZSopOyAvLyBQcnVu
ZXMgaWYgbWF4U2l6ZSgpIGlzIGV4Y2VlZGVkLgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlKEhpc3RvcnlJdGVtJik7CisgICAgQ2FjaGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVtJiwgUGFn
ZSopOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJdGVtJiwg
UGFnZSopOworCisgICAgdm9pZCByZW1vdmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYpOworCisgICAg
dW5zaWduZWQgcGFnZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtcy5zaXplKCk7IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBmcmFtZUNvdW50KCkgY29uc3Q7CisKKyAgICB2b2lk
IG1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZChQYWdlJik7CisgICAgdm9pZCBt
YXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFuZ2VkKFBhZ2UmKTsKKyNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCisgICAgdm9pZCBtYXJrUGFnZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7
CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgfkJhY2tG
b3J3YXJkQ2FjaGUoKSA9IGRlbGV0ZTsgLy8gTWFrZSBzdXJlIG5vYm9keSBhY2NpZGVudGFsbHkg
Y2FsbHMgZGVsZXRlIC0tIFdlYkNvcmUgZG9lcyBub3QgZGVsZXRlIHNpbmdsZXRvbnMuCisKKyAg
ICBzdGF0aWMgYm9vbCBjYW5DYWNoZVBhZ2VDb250YWluaW5nVGhpc0ZyYW1lKEZyYW1lJik7CisK
KyAgICB2b2lkIHBydW5lKFBydW5pbmdSZWFzb24pOworICAgIHZvaWQgZHVtcCgpIGNvbnN0Owor
CisgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEhpc3RvcnlJdGVtPj4gbV9pdGVtczsKKyAgICB1bnNp
Z25lZCBtX21heFNpemUgezB9OworCisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wgbV9p
c0luUmVtb3ZlQWxsSXRlbXNGb3JQYWdlIHsgZmFsc2UgfTsKKyNlbmRpZgorCisgICAgZnJpZW5k
IGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8QmFja0ZvcndhcmRDYWNoZT47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0Nh
Y2hlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCmlu
ZGV4IDhmMWU0ZGEwMzZhNDJiNGI1ZWY3MGFmNWViZDEzYjAzODZlOGYyN2YuLjg3YWIxNzMxM2Qz
NjJkM2FlZDkwMzU4MTM2YjhjNzMyOTc0NjI5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2Fj
aGVkRnJhbWUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQ2FjaGVkRnJhbWUuaCIKIAorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNp
bmNsdWRlICJDU1NBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRnJhbWVQ
bGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCkBAIC00MSw3ICs0Miw2IEBA
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25EaXNhYmxlci5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5k
ZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudEV4dGVuc2lvbnMuaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCB2b2lkIENhY2hlZEZy
YW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAgIGlmIChtX2RvY3VtZW50LT5zdmdFeHRlbnNpb25z
KCkpCiAgICAgICAgICAgICBtX2RvY3VtZW50LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkudW5wYXVz
ZUFuaW1hdGlvbnMoKTsKIAotICAgICAgICBtX2RvY3VtZW50LT5yZXN1bWUoUmVhc29uRm9yU3Vz
cGVuc2lvbjo6UGFnZUNhY2hlKTsKKyAgICAgICAgbV9kb2N1bWVudC0+cmVzdW1lKFJlYXNvbkZv
clN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgICAgIC8vIEl0IGlzIG5lY2Vz
c2FyeSB0byB1cGRhdGUgYW55IHBsYXRmb3JtIHNjcmlwdCBvYmplY3RzIGFmdGVyIHJlc3Rvcmlu
ZyB0aGUKICAgICAgICAgLy8gY2FjaGVkIHBhZ2UuCiAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS51
cGRhdGVQbGF0Zm9ybVNjcmlwdE9iamVjdHMoKTsKIAotICAgICAgICBmcmFtZS0+bG9hZGVyKCku
Y2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICAgICAgZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgICAg
IHBydW5lRGV0YWNoZWRDaGlsZEZyYW1lcygpOwogCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBD
YWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogICAgIH0KICNlbmRpZgogCi0gICAgZnJhbWUtPnZp
ZXcoKS0+ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICBmcmFtZS0+dmlldygpLT5kaWRS
ZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKTsKIH0KIAogQ2FjaGVkRnJhbWU6OkNhY2hlZEZy
YW1lKEZyYW1lJiBmcmFtZSkKQEAgLTE1MCw3ICsxNTAsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVk
RnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIEFTU0VSVChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQo
bV9kb2N1bWVudExvYWRlcik7CiAgICAgQVNTRVJUKG1fdmlldyk7Ci0gICAgQVNTRVJUKG1fZG9j
dW1lbnQtPnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKTsKKyAgICBB
U1NFUlQobV9kb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Oklu
QmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBSRUxFQVNFX0FTU0VSVChtX2RvY3VtZW50LT5kb21X
aW5kb3coKSk7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9kb2N1bWVudC0+ZnJhbWUoKSk7CkBAIC0x
NjksMTQgKzE2OSwxNCBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQog
ICAgIFJFTEVBU0VfQVNTRVJUKG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5mcmFtZSgpKTsKIAog
ICAgIC8vIEFjdGl2ZSBET00gb2JqZWN0cyBtdXN0IGJlIHN1c3BlbmRlZCBiZWZvcmUgd2UgY2Fj
aGUgdGhlIGZyYW1lIHNjcmlwdCBkYXRhLgotICAgIG1fZG9jdW1lbnQtPnN1c3BlbmQoUmVhc29u
Rm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKTsKKyAgICBtX2RvY3VtZW50LT5zdXNwZW5kKFJlYXNv
bkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgbV9jYWNoZWRGcmFtZVNj
cmlwdERhdGEgPSBtYWtlVW5pcXVlPFNjcmlwdENhY2hlZEZyYW1lRGF0YT4oZnJhbWUpOwogCi0g
ICAgbV9kb2N1bWVudC0+ZG9tV2luZG93KCktPnN1c3BlbmRGb3JQYWdlQ2FjaGUoKTsKKyAgICBt
X2RvY3VtZW50LT5kb21XaW5kb3coKS0+c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKIAog
ICAgIC8vIENsZWFyIEZyYW1lVmlldyB0byByZXNldCBmbGFncyBzdWNoIGFzICdmaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRDYWxsYmFja1BlbmRpbmcnIHNvIHRoYXQgdGhlCi0gICAgLy8gJ0Rp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCcgY2FsbGJhY2sgZ2V0cyBjYWxsZWQgYWdhaW5z
dCB3aGVuIHJlc3RvcmluZyBmcm9tIFBhZ2VDYWNoZS4KKyAgICAvLyAnRGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0JyBjYWxsYmFjayBnZXRzIGNhbGxlZCBhZ2FpbnN0IHdoZW4gcmVzdG9y
aW5nIGZyb20gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgbV92aWV3LT5yZXNldExheW91dE1p
bGVzdG9uZXMoKTsKIAogICAgIC8vIFRoZSBtYWluIGZyYW1lIGlzIHJldXNlZCBmb3IgdGhlIG5h
dmlnYXRpb24gYW5kIHRoZSBvcGVuZXIgbGluayB0byBpdHMgc2hvdWxkIHRodXMgcGVyc2lzdC4K
QEAgLTE4NSwxMyArMTg1LDEzIEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJh
bWUpCiAKICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zYXZlUGxhdGZvcm1EYXRhVG9DYWNo
ZWRGcmFtZSh0aGlzKTsKIAotICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUo
KSBjYW4gc2V0IHVwIGEgbGF5b3V0IHRpbWVyIG9uIHRoZSBGcmFtZVZpZXcsIHNvIGNsZWFyIHRp
bWVycyBhZnRlciB0aGF0LgorICAgIC8vIGRvY3VtZW50V2lsbFN1c3BlbmRGb3JCYWNrRm9yd2Fy
ZENhY2hlKCkgY2FuIHNldCB1cCBhIGxheW91dCB0aW1lciBvbiB0aGUgRnJhbWVWaWV3LCBzbyBj
bGVhciB0aW1lcnMgYWZ0ZXIgdGhhdC4KICAgICBmcmFtZS5jbGVhclRpbWVycygpOwogCiAgICAg
Ly8gRGVjb25zdHJ1Y3QgdGhlIEZyYW1lVHJlZSwgdG8gcmVzdG9yZSBpdCBsYXRlci4KICAgICAv
LyBXZSBkbyB0aGlzIGZvciB0d28gcmVhc29uczoKICAgICAvLyAxIC0gV2UgcmV1c2UgdGhlIG1h
aW4gZnJhbWUsIHNvIHdoZW4gaXQgbmF2aWdhdGVzIHRvIGEgbmV3IHBhZ2UgbG9hZCBpdCBuZWVk
cyB0byBzdGFydCB3aXRoIGEgYmxhbmsgRnJhbWVUcmVlLgotICAgIC8vIDIgLSBJdCdzIG11Y2gg
ZWFzaWVyIHRvIGRlc3Ryb3kgYSBDYWNoZWRGcmFtZSB3aGlsZSBpdCByZXNpZGVzIGluIHRoZSBQ
YWdlQ2FjaGUgaWYgaXQgaXMgZGlzY29ubmVjdGVkIGZyb20gaXRzIHBhcmVudC4KKyAgICAvLyAy
IC0gSXQncyBtdWNoIGVhc2llciB0byBkZXN0cm95IGEgQ2FjaGVkRnJhbWUgd2hpbGUgaXQgcmVz
aWRlcyBpbiB0aGUgQmFja0ZvcndhcmRDYWNoZSBpZiBpdCBpcyBkaXNjb25uZWN0ZWQgZnJvbSBp
dHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNp
emUoKTsgKytpKQogICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQobV9jaGlsZEZyYW1l
c1tpXS0+dmlldygpLT5mcmFtZSgpKTsKIApAQCAtMjM1LDExICsyMzUsMTEgQEAgdm9pZCBDYWNo
ZWRGcmFtZTo6Y2xlYXIoKQogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gY2xlYXIoKSBzaG91bGQgb25seSBiZSBjYWxsZWQgZm9yIEZyYW1lcyByZXByZXNl
bnRpbmcgZG9jdW1lbnRzIHRoYXQgYXJlIG5vIGxvbmdlciBpbiB0aGUgcGFnZSBjYWNoZS4KKyAg
ICAvLyBjbGVhcigpIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmb3IgRnJhbWVzIHJlcHJlc2VudGlu
ZyBkb2N1bWVudHMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUu
CiAgICAgLy8gVGhpcyBtZWFucyB0aGUgQ2FjaGVkRnJhbWUgaGFzIGJlZW46CiAgICAgLy8gMSAt
IFN1Y2Nlc3NmdWxseSByZXN0b3JlKCknZCBieSBnb2luZyBiYWNrL2ZvcndhcmQuCi0gICAgLy8g
MiAtIGRlc3Ryb3koKSdlZCBiZWNhdXNlIHRoZSBQYWdlQ2FjaGUgaXMgcHJ1bmluZyBvciB0aGUg
V2ViVmlldyB3YXMgY2xvc2VkLgotICAgIEFTU0VSVChtX2RvY3VtZW50LT5wYWdlQ2FjaGVTdGF0
ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgLy8gMiAtIGRlc3Ryb3koKSdl
ZCBiZWNhdXNlIHRoZSBCYWNrRm9yd2FyZENhY2hlIGlzIHBydW5pbmcgb3IgdGhlIFdlYlZpZXcg
d2FzIGNsb3NlZC4KKyAgICBBU1NFUlQobV9kb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRl
KCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgQVNTRVJUKG1fdmll
dyk7CiAgICAgQVNTRVJUKCFtX2RvY3VtZW50LT5mcmFtZSgpIHx8IG1fZG9jdW1lbnQtPmZyYW1l
KCkgPT0gJm1fdmlldy0+ZnJhbWUoKSk7CiAKQEAgLTI1OSw4ICsyNTksOCBAQCB2b2lkIENhY2hl
ZEZyYW1lOjpkZXN0cm95KCkKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsK
ICAgICAKLSAgICAvLyBPbmx5IENhY2hlZEZyYW1lcyB0aGF0IGFyZSBzdGlsbCBpbiB0aGUgUGFn
ZUNhY2hlIHNob3VsZCBiZSBkZXN0cm95ZWQgaW4gdGhpcyBtYW5uZXIKLSAgICBBU1NFUlQobV9k
b2N1bWVudC0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAg
IC8vIE9ubHkgQ2FjaGVkRnJhbWVzIHRoYXQgYXJlIHN0aWxsIGluIHRoZSBCYWNrRm9yd2FyZENh
Y2hlIHNob3VsZCBiZSBkZXN0cm95ZWQgaW4gdGhpcyBtYW5uZXIKKyAgICBBU1NFUlQobV9kb2N1
bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRD
YWNoZSk7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQVNTRVJUKCFtX2RvY3VtZW50LT5mcmFt
ZSgpKTsKIApAQCAtMjgxLDExICsyODEsMTEgQEAgdm9pZCBDYWNoZWRGcmFtZTo6ZGVzdHJveSgp
CiAKICAgICBtX3ZpZXctPmZyYW1lKCkuYW5pbWF0aW9uKCkuZGV0YWNoRnJvbURvY3VtZW50KG1f
ZG9jdW1lbnQuZ2V0KCkpOwogCi0gICAgLy8gRklYTUU6IFdoeSBkbyB3ZSBuZWVkIHRvIGNhbGwg
cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMgaGVyZT8gV2hlbiB0aGUgZG9jdW1lbnQgaXMgaW4gcGFn
ZSBjYWNoZSwgdGhpcyBtZXRob2Qgd29uJ3Qgd29yaworICAgIC8vIEZJWE1FOiBXaHkgZG8gd2Ug
bmVlZCB0byBjYWxsIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzIGhlcmU/IFdoZW4gdGhlIGRvY3Vt
ZW50IGlzIGluIGJhY2svZm9yd2FyZCBjYWNoZSwgdGhpcyBtZXRob2Qgd29uJ3Qgd29yawogICAg
IC8vIGZ1bGx5IGFueXdheSwgYmVjYXVzZSB0aGUgZG9jdW1lbnQgd29uJ3QgYmUgYWJsZSB0byBh
Y2Nlc3MgaXRzIERPTVdpbmRvdyBvYmplY3QgKGR1ZSB0byBiZWluZyBmcmFtZWxlc3MpLgogICAg
IG1fZG9jdW1lbnQtPnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKLSAgICBtX2RvY3VtZW50
LT5zZXRQYWdlQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgIG1fZG9j
dW1lbnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2Fy
ZENhY2hlKTsKICAgICBtX2RvY3VtZW50LT5wcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAg
IGNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1l
UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZv
cm1EYXRhLmgKaW5kZXggZjk3M2JhNjRjZDQ2NTE4ZGRmY2JkZDY5NDljMzc3YzhkMWY5ZjM1My4u
ZWE4YzI2MTg3NDhkMWMwMzhhYzU3NGU5YjFkMzMwNWZmNWZiN2NmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZVBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEuaApAQCAtMzEsNyArMzEs
NyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNz
IGlzIHRvIGdpdmUgZWFjaCBwbGF0Zm9ybSBhIHZlc3NlbCB0byBzdG9yZSBwbGF0Zm9ybSBkYXRh
IHdoZW4gYSBwYWdlCi0vLyBnb2VzIGludG8gdGhlIEJhY2svRm9yd2FyZCBwYWdlIGNhY2hlLCBh
bmQgcGVyZm9ybSBzb21lIGFjdGlvbiB3aXRoIHRoYXQgZGF0YSB3aGVuIHRoZSBwYWdlIGNvbWVz
IG91dC4gIAorLy8gZ29lcyBpbnRvIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGFuZCBwZXJmb3Jt
IHNvbWUgYWN0aW9uIHdpdGggdGhhdCBkYXRhIHdoZW4gdGhlIHBhZ2UgY29tZXMgb3V0LgogLy8g
RWFjaCBwbGF0Zm9ybSBzaG91bGQgc3ViY2xhc3MgdGhpcyBjbGFzcyBhcyBuZWNjZXNzYXJ5CiAK
IGNsYXNzIENhY2hlZEZyYW1lUGxhdGZvcm1EYXRhIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0
b3J5SXRlbS5jcHAKaW5kZXggYTc5MjM0ZGIyYWRiZGVhZmI2NjBkMzdlMjc0NTIyMWY0YmVkZTdl
NC4uZDUzNzdhYjBmN2NjMWYzZTQ3MTk3NWMyMDgwMGJlZTExODUyMTJlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKQEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAKKyNpbmNsdWRlICJCYWNrRm9y
d2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUGFnZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiS2V5ZWRDb2RpbmcuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTE3NCw5ICsxNzQsOSBAQCBib29s
IEhpc3RvcnlJdGVtOjpoYXNDYWNoZWRQYWdlRXhwaXJlZCgpIGNvbnN0CiAKIHZvaWQgSGlzdG9y
eUl0ZW06OnNldENhY2hlZFBhZ2Uoc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+JiYgY2FjaGVk
UGFnZSkKIHsKLSAgICBib29sIHdhc0luUGFnZUNhY2hlID0gaXNJblBhZ2VDYWNoZSgpOworICAg
IGJvb2wgd2FzSW5CYWNrRm9yd2FyZENhY2hlID0gaXNJbkJhY2tGb3J3YXJkQ2FjaGUoKTsKICAg
ICBtX2NhY2hlZFBhZ2UgPSBXVEZNb3ZlKGNhY2hlZFBhZ2UpOwotICAgIGlmICh3YXNJblBhZ2VD
YWNoZSAhPSBpc0luUGFnZUNhY2hlKCkpCisgICAgaWYgKHdhc0luQmFja0ZvcndhcmRDYWNoZSAh
PSBpc0luQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICBub3RpZnlDaGFuZ2VkKCk7CiB9CiAK
QEAgLTIyMiw3ICsyMjIsNyBAQCB2b2lkIEhpc3RvcnlJdGVtOjpzZXRVUkxTdHJpbmcoY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpCiAKIHZvaWQgSGlzdG9yeUl0ZW06OnNldFVSTChjb25zdCBVUkwm
IHVybCkKIHsKLSAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZSgqdGhpcyk7CisgICAg
QmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKCp0aGlzKTsKICAgICBzZXRVUkxT
dHJpbmcodXJsLnN0cmluZygpKTsKICAgICBjbGVhckRvY3VtZW50U3RhdGUoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCBmODU1MDhmMTIzZGFlMmNkZjliZmJkNTAz
ZmVlZTNlOTE2NDc5NDliLi41MmNhYjgzNDQwMzQ5NDczNzRhYjBhZDA0MmUyNzRkOGQyMjc4NWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC01OSw3ICs1OSw3IEBAIGVu
dW0gY2xhc3MgUHJ1bmluZ1JlYXNvbjsKIFdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkICgqbm90
aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKShIaXN0b3J5SXRlbSYpOwogCiBjbGFzcyBIaXN0b3J5SXRl
bSA6IHB1YmxpYyBSZWZDb3VudGVkPEhpc3RvcnlJdGVtPiB7Ci0gICAgZnJpZW5kIGNsYXNzIFBh
Z2VDYWNoZTsKKyAgICBmcmllbmQgY2xhc3MgQmFja0ZvcndhcmRDYWNoZTsKIAogcHVibGljOiAK
ICAgICBzdGF0aWMgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGUoKQpAQCAtOTUsNyArOTUsNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3Q7CiAgICAg
Ci0gICAgYm9vbCBpc0luUGFnZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRQYWdlLmdl
dCgpOyB9CisgICAgYm9vbCBpc0luQmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FjaGVkUGFnZS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzQ2FjaGVkUGFn
ZUV4cGlyZWQoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWx0ZXJuYXRl
VGl0bGUoY29uc3QgU3RyaW5nJik7CkBAIC0yNjYsNyArMjY2LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8Rm9ybURhdGE+IG1fZm9ybURhdGE7CiAgICAgU3RyaW5nIG1fZm9ybUNvbnRlbnRUeXBl
OwogCi0gICAgLy8gUGFnZUNhY2hlIGNvbnRyb2xzIHRoZXNlIGZpZWxkcy4KKyAgICAvLyBCYWNr
Rm9yd2FyZENhY2hlIGNvbnRyb2xzIHRoZXNlIGZpZWxkcy4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q2FjaGVkUGFnZT4gbV9jYWNoZWRQYWdlOwogICAgIFBydW5pbmdSZWFzb24gbV9wcnVuaW5nUmVh
c29uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNkMWYzODIxMGZmY2EzMTUzMThlNzE3ZDYwNTQwNTVhNmM1MGJmMjQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTU2ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgotCi0jaW5jbHVk
ZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKLSNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xs
ZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0j
aW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgi
Ci0jaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQu
aCIKLSNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNs
dWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1
ZGUgIkhpc3RvcnlDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxv
YWRDb3VudEluY3JlbWVudGVyLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBh
Z2UuaCIKLSNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKLSNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCi0jaW5jbHVkZSA8cGFsL0xvZ2dp
bmcuaD4KLSNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2RlZmluZSBQQ0xPRyguLi4pIExP
RyhCYWNrRm9yd2FyZENhY2hlLCAiJSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmlu
ZyhfX1ZBX0FSR1NfXykudXRmOCgpLmRhdGEoKSkKLQotc3RhdGljIGlubGluZSB2b2lkIGxvZ1Bh
Z2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYg
Y2xpZW50LCBjb25zdCBTdHJpbmcmIHJlYXNvbikKLXsKLSAgICBjbGllbnQubG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVGYWlsdXJlS2V5KCksIHJl
YXNvbiwgU2hvdWxkU2FtcGxlOjpObyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBsb2dQYWdl
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBy
ZWFzb24pCi17Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBsb2dQYWdl
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQoKSwgcmVhc29uKTsKLX0KLQotc3RhdGljIGJvb2wgY2FuQ2FjaGVGcmFtZShGcmFtZSYgZnJh
bWUsIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgdW5z
aWduZWQgaW5kZW50TGV2ZWwpCi17Ci0gICAgUENMT0coIistLS0iKTsKLSAgICBGcmFtZUxvYWRl
ciYgZnJhbWVMb2FkZXIgPSBmcmFtZS5sb2FkZXIoKTsKLQotICAgIC8vIFByZXZlbnQgcGFnZSBj
YWNoaW5nIGlmIGEgc3ViZnJhbWUgaXMgc3RpbGwgaW4gcHJvdmlzaW9uYWwgbG9hZCBzdGFnZS4K
LSAgICAvLyBXZSBvbmx5IGRvIHRoaXMgY2hlY2sgZm9yIHN1YmZyYW1lcyBiZWNhdXNlIHRoZSBt
YWluIGZyYW1lIGlzIHJldXNlZCB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZS4KLSAgICBp
ZiAoIWZyYW1lLmlzTWFpbkZyYW1lKCkgJiYgZnJhbWVMb2FkZXIuc3RhdGUoKSA9PSBGcmFtZVN0
YXRlUHJvdmlzaW9uYWwpIHsKLSAgICAgICAgUENMT0coIiAgIC1GcmFtZSBpcyBpbiBwcm92aXNp
b25hbCBsb2FkIHN0YWdlIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpw
cm92aXNpb25hbExvYWRLZXkoKSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAg
ICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSAmJiBmcmFtZUxvYWRlci5zdGF0ZU1hY2hpbmUoKS5p
c0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAt
TWFpbkZyYW1lIGlzIGRpc3BsYXlpbmcgaW5pdGlhbCBlbXB0eSBkb2N1bWVudCIpOwotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgaWYgKCFmcmFtZS5kb2N1bWVudCgpKSB7Ci0g
ICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaGFzIG5vIGRvY3VtZW50Iik7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoIWZyYW1lLmRvY3VtZW50KCktPmZyYW1lKCkpIHsK
LSAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudCBpcyBkZXRhY2hlZCBmcm9tIGZyYW1lIik7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotCi0gICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gZnJhbWVMb2FkZXIuZG9j
dW1lbnRMb2FkZXIoKTsKLSAgICBpZiAoIWRvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAgIFBDTE9H
KCIgICAtVGhlcmUgaXMgbm8gRG9jdW1lbnRMb2FkZXIgb2JqZWN0Iik7Ci0gICAgICAgIGxvZ1Bh
Z2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0RvY3VtZW50TG9hZGVyS2V5KCkpOwotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgVVJMIGN1cnJlbnRVUkwgPSBkb2N1bWVudExvYWRl
ci0+dXJsKCk7Ci0gICAgVVJMIG5ld1VSTCA9IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIoKSA/IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+dXJs
KCkgOiBVUkwoKTsKLSAgICBpZiAoIW5ld1VSTC5pc0VtcHR5KCkpCi0gICAgICAgIFBDTE9HKCIg
RGV0ZXJtaW5pbmcgaWYgZnJhbWUgY2FuIGJlIGNhY2hlZCBuYXZpZ2F0aW5nIGZyb20gKCIsIGN1
cnJlbnRVUkwuc3RyaW5nKCksICIpIHRvICgiLCBuZXdVUkwuc3RyaW5nKCksICIpOiIpOwotICAg
IGVsc2UKLSAgICAgICAgUENMT0coIiBEZXRlcm1pbmluZyBpZiBzdWJmcmFtZSB3aXRoIFVSTCAo
IiwgY3VycmVudFVSTC5zdHJpbmcoKSwgIikgY2FuIGJlIGNhY2hlZDoiKTsKLSAgICAgCi0gICAg
Ym9vbCBpc0NhY2hlYWJsZSA9IHRydWU7Ci0gICAgLy8gRG8gbm90IGNhY2hlIGVycm9yIHBhZ2Vz
ICh0aGVzZSBjYW4gYmUgcmVjb2duaXplZCBhcyBwYWdlcyB3aXRoIHN1YnN0aXR1dGUgZGF0YSBv
ciB1bnJlYWNoYWJsZSBVUkxzKS4KLSAgICBpZiAoZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVE
YXRhKCkuaXNWYWxpZCgpICYmICFkb2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5mYWls
aW5nVVJMKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgYW4gZXJy
b3IgcGFnZSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2Uo
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNFcnJvclBh
Z2VLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChm
cmFtZUxvYWRlci5zdWJmcmFtZUxvYWRlcigpLmNvbnRhaW5zUGx1Z2lucygpICYmICFmcmFtZS5w
YWdlKCktPnNldHRpbmdzKCkucGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKCkpIHsKLSAgICAgICAg
UENMT0coIiAgIC1GcmFtZSBjb250YWlucyBwbHVnaW5zIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNo
ZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpoYXNQbHVnaW5zS2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9
IGZhbHNlOwotICAgIH0KLSAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSAmJiAhZnJhbWVMb2Fk
ZXIuaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1NYWluIGZy
YW1lIGhhcyBubyBjdXJyZW50IGhpc3RvcnkgaXRlbSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVG
YWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0
aWNMb2dnaW5nS2V5czo6bm9DdXJyZW50SGlzdG9yeUl0ZW1LZXkoKSk7Ci0gICAgICAgIGlzQ2Fj
aGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChmcmFtZUxvYWRlci5xdWlja1JlZGlyZWN0
Q29taW5nKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1RdWljayByZWRpcmVjdCBpcyBjb21pbmci
KTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnF1aXJrUmVkaXJlY3RDb21p
bmdLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChk
b2N1bWVudExvYWRlci0+aXNMb2FkaW5nKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVu
dExvYWRlciBpcyBzdGlsbCBsb2FkaW5nIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjppc0xvYWRpbmdLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0g
ICAgfQotICAgIGlmIChkb2N1bWVudExvYWRlci0+aXNTdG9wcGluZygpKSB7Ci0gICAgICAgIFBD
TE9HKCIgICAtRG9jdW1lbnRMb2FkZXIgaXMgaW4gdGhlIG1pZGRsZSBvZiBzdG9wcGluZyIpOwot
ICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZG9jdW1lbnRMb2FkZXJTdG9wcGlu
Z0tleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBWZWN0
b3I8QWN0aXZlRE9NT2JqZWN0Kj4gdW5zdXNwZW5kYWJsZU9iamVjdHM7Ci0gICAgaWYgKGZyYW1l
LmRvY3VtZW50KCkgJiYgIWZyYW1lLmRvY3VtZW50KCktPmNhblN1c3BlbmRBY3RpdmVET01PYmpl
Y3RzRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCZ1bnN1c3BlbmRhYmxlT2JqZWN0cykpIHsKLSAgICAg
ICAgUENMT0coIiAgIC1UaGUgZG9jdW1lbnQgY2Fubm90IHN1c3BlbmQgaXRzIGFjdGl2ZSBET00g
T2JqZWN0cyIpOwotICAgICAgICBmb3IgKGF1dG8qIGFjdGl2ZURPTU9iamVjdCA6IHVuc3VzcGVu
ZGFibGVPYmplY3RzKSB7Ci0gICAgICAgICAgICBQQ0xPRygiICAgIC0gVW5zdXNwZW5kYWJsZTog
IiwgYWN0aXZlRE9NT2JqZWN0LT5hY3RpdmVET01PYmplY3ROYW1lKCkpOwotICAgICAgICAgICAg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjp1bnN1c3BlbmRhYmxlRE9NT2JqZWN0S2V5KCksIGFjdGl2ZURPTU9iamVjdC0+
YWN0aXZlRE9NT2JqZWN0TmFtZSgpLCBTaG91bGRTYW1wbGU6Ok5vKTsKLSAgICAgICAgICAgIFVO
VVNFRF9QQVJBTShhY3RpdmVET01PYmplY3QpOwotICAgICAgICB9Ci0gICAgICAgIGxvZ1BhZ2VD
YWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tleSgpKTsK
LSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIGludmVzdGlnYXRpbmcgY2FjaGluZyBmcmFtZXMgdGhhdCBoYXZlIGFuIGFzc29jaWF0
ZWQKLSAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9ibGVtLzU5MTc4OTk+IHRy
YWNrcyB0aGF0IHdvcmsuCi0gICAgaWYgKCFkb2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNo
ZUhvc3QoKS5jYW5DYWNoZUluUGFnZUNhY2hlKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1UaGUg
RG9jdW1lbnRMb2FkZXIgdXNlcyBhbiBhcHBsaWNhdGlvbiBjYWNoZSIpOwotICAgICAgICBsb2dQ
YWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQs
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6YXBwbGljYXRpb25DYWNoZUtleSgpKTsKLSAgICAgICAg
aXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKCFmcmFtZUxvYWRlci5jbGllbnQo
KS5jYW5DYWNoZVBhZ2UoKSkgewotICAgICAgICBQQ0xPRygiICAgLVRoZSBjbGllbnQgc2F5cyB0
aGlzIGZyYW1lIGNhbm5vdCBiZSBjYWNoZWQiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OmRlbmllZEJ5Q2xpZW50S2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZh
bHNlOwotICAgIH0KLQotICAgIGZvciAoRnJhbWUqIGNoaWxkID0gZnJhbWUudHJlZSgpLmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7Ci0g
ICAgICAgIGlmICghY2FuQ2FjaGVGcmFtZSgqY2hpbGQsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LCBpbmRlbnRMZXZlbCArIDEpKQotICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAg
ICB9Ci0gICAgCi0gICAgUENMT0coaXNDYWNoZWFibGUgPyAiIEZyYW1lIENBTiBiZSBjYWNoZWQi
IDogIiBGcmFtZSBDQU5OT1QgYmUgY2FjaGVkIik7Ci0gICAgUENMT0coIistLS0iKTsKLSAgICAK
LSAgICByZXR1cm4gaXNDYWNoZWFibGU7Ci19Ci0KLXN0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQ
YWdlJiBwYWdlKQotewotICAgIFJFTEVBU0VfQVNTRVJUKCFwYWdlLmlzUmVzdG9yaW5nQ2FjaGVk
UGFnZSgpKTsKLQotICAgIHVuc2lnbmVkIGluZGVudExldmVsID0gMDsKLSAgICBQQ0xPRygiLS0t
LS0tLS1cbiBEZXRlcm1pbmluZyBpZiBwYWdlIGNhbiBiZSBjYWNoZWQ6Iik7Ci0KLSAgICBEaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50KCk7Ci0gICAgYm9vbCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJh
bWUocGFnZS5tYWluRnJhbWUoKSwgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVs
ICsgMSk7Ci0KLSAgICBpZiAoIXBhZ2Uuc2V0dGluZ3MoKS51c2VzUGFnZUNhY2hlKCkgfHwgcGFn
ZS5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkQnlXZWJJbnNwZWN0b3IoKSkgewotICAgICAgICBQ
Q0xPRygiICAgLVBhZ2Ugc2V0dGluZ3Mgc2F5cyBiL2YgY2FjaGUgZGlzYWJsZWQiKTsKLSAgICAg
ICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmlzRGlzYWJsZWRLZXkoKSk7Ci0gICAgICAg
IGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9s
bGVyOjppc0FjdGl2ZUF0KCZwYWdlKSkgewotICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNp
bmcgRGV2aWNlTW90aW9uIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGlj
TWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpk
ZXZpY2VNb3Rpb25LZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQot
ICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7
Ci0gICAgICAgIFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOwot
ICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZGV2aWNlT3JpZW50YXRpb25LZXko
KSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBG
cmFtZUxvYWRUeXBlIGxvYWRUeXBlID0gcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkVHlw
ZSgpOwotICAgIHN3aXRjaCAobG9hZFR5cGUpIHsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJl
bG9hZDoKLSAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxv
YWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUg
dGhhdCBwYWdlLgotICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkIik7Ci0g
ICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9n
Z2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZWxvYWRLZXkoKSk7Ci0gICAgICAg
IGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRnJhbWVMb2Fk
VHlwZTo6U2FtZTogLy8gdXNlciBsb2FkcyBzYW1lIFVSTCBhZ2FpbiAoYnV0IG5vdCByZWxvYWQg
YnV0dG9uKQotICAgICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHNh
bWUgbG9hZCwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRlIG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBs
ZWF2ZSB0aGF0IHBhZ2UuCi0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBTYW1lIik7
Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzYW1lTG9hZEtleSgpKTsKLSAg
ICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBGcmFt
ZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q6Ci0gICAgICAgIC8v
IERvbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUgbWlkZGxlIG9mIGEgcmVkaXJlY3Qs
IHNpbmNlIHdlIHdpbGwgd2FudCB0byBzdG9yZSB0aGUgZmluYWwgcGFnZSB3ZSBlbmQgdXAgb24u
Ci0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWRpcmVjdFdpdGhMb2NrZWRCYWNr
Rm9yd2FyZExpc3QiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNz
YWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlZGly
ZWN0S2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlcGxhY2U6Ci0gICAgICAgIC8vIE5vIHBvaW50IHdy
aXRpbmcgdG8gdGhlIGNhY2hlIG9uIGEgcmVwbGFjZSwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRl
IG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0IHBhZ2UuCi0gICAgICAgIFBDTE9HKCIg
ICAtTG9hZCB0eXBlIGlzOiBSZXBsYWNlIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpyZXBsYWNlS2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW46IHsK
LSAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNp
bmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBw
YWdlLgotICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkRnJvbU9yaWdpbiIp
OwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkRnJvbU9yaWdpbktl
eSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6UmVsb2FkRXhwaXJlZE9ubHk6IHsKLSAgICAgICAg
Ly8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdp
bGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgotICAg
ICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZCIp
OwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVsb2FkUmV2YWxpZGF0aW5n
RXhwaXJlZEtleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQ6Ci0gICAgY2FzZSBG
cmFtZUxvYWRUeXBlOjpCYWNrOgotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZDoKLSAg
ICBjYXNlIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZDogLy8gYSBtdWx0aS1pdGVt
IGhvcCBpbiB0aGUgYmFja2ZvcndhcmQgbGlzdAotICAgICAgICAvLyBDYWNoZWFibGUuCi0gICAg
ICAgIGJyZWFrOwotICAgIH0KLSAgICAKLSAgICBpZiAoaXNDYWNoZWFibGUpCi0gICAgICAgIFBD
TE9HKCIgUGFnZSBDQU4gYmUgY2FjaGVkXG4tLS0tLS0tLSIpOwotICAgIGVsc2UKLSAgICAgICAg
UENMT0coIiBQYWdlIENBTk5PVCBiZSBjYWNoZWRcbi0tLS0tLS0tIik7Ci0KLSAgICBkaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXkoKSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5D
YWNoZUtleSgpLCBpc0NhY2hlYWJsZSA/IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcyA6IERp
YWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwgU2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgcmV0dXJu
IGlzQ2FjaGVhYmxlOwotfQotCi1QYWdlQ2FjaGUmIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkKLXsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGFnZUNhY2hlPiBnbG9iYWxQYWdlQ2FjaGU7Ci0g
ICAgcmV0dXJuIGdsb2JhbFBhZ2VDYWNoZTsKLX0KLQotUGFnZUNhY2hlOjpQYWdlQ2FjaGUoKQot
ewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGQ6OmNhbGxfb25j
ZShvbmNlRmxhZywgW10gewotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNv
bS5hcHBsZS5XZWJLaXQuc2hvd1BhZ2VDYWNoZSIsIFtdIHsKLSAgICAgICAgICAgIFBhZ2VDYWNo
ZTo6c2luZ2xldG9uKCkuZHVtcCgpOwotICAgICAgICB9KTsKLSAgICB9KTsKLX0KLQotdm9pZCBQ
YWdlQ2FjaGU6OmR1bXAoKSBjb25zdAotewotICAgIFdURkxvZ0Fsd2F5cygiXG5QYWdlIENhY2hl
OiIpOwotICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKLSAgICAgICAgQ2FjaGVkUGFn
ZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7Ci0gICAgICAgIFdURkxvZ0Fsd2F5
cygiICBQYWdlICVwLCBkb2N1bWVudCAlcCAlcyIsICZjYWNoZWRQYWdlLnBhZ2UoKSwgY2FjaGVk
UGFnZS5kb2N1bWVudCgpLCBjYWNoZWRQYWdlLmRvY3VtZW50KCkgPyBjYWNoZWRQYWdlLmRvY3Vt
ZW50KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7Ci0gICAgfQotfQotCi1i
b29sIFBhZ2VDYWNoZTo6Y2FuQ2FjaGUoUGFnZSYgcGFnZSkgY29uc3QKLXsKLSAgICBpZiAoIW1f
bWF4U2l6ZSkgewotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2Uo
JnBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNEaXNhYmxlZEtleSgpKTsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmIChNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNp
bmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKSB7Ci0gICAgICAgIGxvZ1BhZ2VDYWNo
ZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1
bmRlck1lbW9yeVByZXNzdXJlS2V5KCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
ICAgIAotICAgIHJldHVybiBjYW5DYWNoZVBhZ2UocGFnZSk7Ci19Ci0KLXZvaWQgUGFnZUNhY2hl
OjpwcnVuZVRvU2l6ZU5vdyh1bnNpZ25lZCBzaXplLCBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFz
b24pCi17Ci0gICAgU2V0Rm9yU2NvcGU8dW5zaWduZWQ+IGNoYW5nZShtX21heFNpemUsIHNpemUp
OwotICAgIHBydW5lKHBydW5pbmdSZWFzb24pOwotfQotCi12b2lkIFBhZ2VDYWNoZTo6c2V0TWF4
U2l6ZSh1bnNpZ25lZCBtYXhTaXplKQotewotICAgIG1fbWF4U2l6ZSA9IG1heFNpemU7Ci0gICAg
cHJ1bmUoUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7Ci19Ci0KLXVuc2lnbmVkIFBhZ2VDYWNoZTo6ZnJh
bWVDb3VudCgpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMuc2l6
ZSgpOwotICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKLSAgICAgICAgQVNTRVJUKGl0
ZW0tPm1fY2FjaGVkUGFnZSk7Ci0gICAgICAgIGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNoZWRQ
YWdlLT5jYWNoZWRNYWluRnJhbWUoKS0+ZGVzY2VuZGFudEZyYW1lQ291bnQoKTsKLSAgICB9Ci0g
ICAgCi0gICAgcmV0dXJuIGZyYW1lQ291bnQ7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjptYXJrUGFn
ZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoUGFnZSYgcGFnZSkKLXsKLSAgICBmb3IgKGF1
dG8mIGl0ZW0gOiBtX2l0ZW1zKSB7Ci0gICAgICAgIENhY2hlZFBhZ2UmIGNhY2hlZFBhZ2UgPSAq
aXRlbS0+bV9jYWNoZWRQYWdlOwotICAgICAgICBpZiAoJnBhZ2UubWFpbkZyYW1lKCkgPT0gJmNh
Y2hlZFBhZ2UuY2FjaGVkTWFpbkZyYW1lKCktPnZpZXcoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAg
IGNhY2hlZFBhZ2UubWFya0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCgpOwotICAgIH0KLX0K
LQotdm9pZCBQYWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckNvbnRlbnRzU2l6ZUNoYW5nZWQoUGFnZSYg
cGFnZSkKLXsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2l0ZW1zKSB7Ci0gICAgICAgIENhY2hl
ZFBhZ2UmIGNhY2hlZFBhZ2UgPSAqaXRlbS0+bV9jYWNoZWRQYWdlOwotICAgICAgICBpZiAoJnBh
Z2UubWFpbkZyYW1lKCkgPT0gJmNhY2hlZFBhZ2UuY2FjaGVkTWFpbkZyYW1lKCktPnZpZXcoKS0+
ZnJhbWUoKSkKLSAgICAgICAgICAgIGNhY2hlZFBhZ2UubWFya0ZvckNvbnRlbnRzU2l6ZUNoYW5n
ZWQoKTsKLSAgICB9Ci19Ci0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi12b2lkIFBhZ2VDYWNo
ZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCi17Ci0gICAgZm9yIChh
dXRvJiBpdGVtIDogbV9pdGVtcykgewotICAgICAgICBBU1NFUlQoaXRlbS0+bV9jYWNoZWRQYWdl
KTsKLSAgICAgICAgaXRlbS0+bV9jYWNoZWRQYWdlLT5tYXJrRm9yQ2FwdGlvblByZWZlcmVuY2Vz
Q2hhbmdlZCgpOwotICAgIH0KLX0KLSNlbmRpZgotCi1zdGF0aWMgU3RyaW5nIHBydW5pbmdSZWFz
b25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KFBydW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKLXsK
LSAgICBzd2l0Y2ggKHBydW5pbmdSZWFzb24pIHsKLSAgICBjYXNlIFBydW5pbmdSZWFzb246Ok1l
bW9yeVByZXNzdXJlOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVu
ZWREdWVUb01lbW9yeVByZXNzdXJlS2V5KCk7Ci0gICAgY2FzZSBQcnVuaW5nUmVhc29uOjpQcm9j
ZXNzU3VzcGVuZGVkOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVu
ZWREdWVUb1Byb2Nlc3NTdXNwZW5kZWQoKTsKLSAgICBjYXNlIFBydW5pbmdSZWFzb246OlJlYWNo
ZWRNYXhTaXplOgotICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWRE
dWVUb01heFNpemVSZWFjaGVkKCk7Ci0gICAgY2FzZSBQcnVuaW5nUmVhc29uOjpOb25lOgotICAg
ICAgICBicmVhazsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldFBhZ2VDYWNoZVN0YXRlKFBhZ2Um
IHBhZ2UsIERvY3VtZW50OjpQYWdlQ2FjaGVTdGF0ZSBwYWdlQ2FjaGVTdGF0ZSkKLXsKLSAgICBm
b3IgKEZyYW1lKiBmcmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9
IGZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPnNldFBhZ2VDYWNoZVN0
YXRlKHBhZ2VDYWNoZVN0YXRlKTsKLSAgICB9Ci19Ci0KLS8vIFdoZW4gZW50ZXJpbmcgcGFnZSBj
YWNoZSwgdGVhciBkb3duIHRoZSByZW5kZXIgdHJlZSBiZWZvcmUgc2V0dGluZyB0aGUgaW4tY2Fj
aGUgZmxhZy4KLS8vIFRoaXMgbWFpbnRhaW5zIHRoZSBpbnZhcmlhbnQgdGhhdCByZW5kZXIgdHJl
ZXMgYXJlIG5ldmVyIHByZXNlbnQgaW4gdGhlIHBhZ2UgY2FjaGUuCi0vLyBOb3RlIHRoYXQgZGVz
dHJ1Y3Rpb24gaGFwcGVucyBib3R0b20tdXAgc28gdGhhdCB0aGUgbWFpbiBmcmFtZSdzIHRyZWUg
ZGllcyBsYXN0Lgotc3RhdGljIHZvaWQgZGVzdHJveVJlbmRlclRyZWUoRnJhbWUmIG1haW5GcmFt
ZSkKLXsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZS50cmVlKCkudHJhdmVyc2VQ
cmV2aW91cyhDYW5XcmFwOjpZZXMpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZl
cnNlUHJldmlvdXMoQ2FuV3JhcDo6Tm8pKSB7Ci0gICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50
KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJh
bWUtPmRvY3VtZW50KCk7Ci0gICAgICAgIGlmIChkb2N1bWVudC5oYXNMaXZpbmdSZW5kZXJUcmVl
KCkpCi0gICAgICAgICAgICBkb2N1bWVudC5kZXN0cm95UmVuZGVyVHJlZSgpOwotICAgIH0KLX0K
LQotc3RhdGljIHZvaWQgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNpdmVseShGcmFtZSYgZnJhbWUp
Ci17Ci0gICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpOwotICAgIGlmICghZG9j
dW1lbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIHN0b3BMb2FkaW5nKCkgd2lsbCBmaXJl
IHRoZSBwYWdlaGlkZSBldmVudCBpbiBlYWNoIHN1YmZyYW1lIGFuZCB0aGUgSFRNTCBzcGVjaWZp
Y2F0aW9uIHN0YXRlcwotICAgIC8vIHRoYXQgdGhlIHBhcmVudCBkb2N1bWVudCdzIGlnbm9yZS1v
cGVucy1kdXJpbmctdW5sb2FkIGNvdW50ZXIgc2hvdWxkIGJlIGluY3JlbWVudGVkIHdoaWxlIHRo
ZQotICAgIC8vIHBhZ2VoaWRlIGV2ZW50IGlzIGJlaW5nIGZpcmVkIGluIGl0cyBzdWJmcmFtZXM6
Ci0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvYnJvd3NlcnMu
aHRtbCN1bmxvYWQtYS1kb2N1bWVudAotICAgIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJ
bmNyZW1lbnRlciBpZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIoZG9jdW1l
bnQpOwotCi0gICAgZnJhbWUubG9hZGVyKCkuc3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3lV
bmxvYWRBbmRQYWdlSGlkZSk7Ci0KLSAgICBmb3IgKFJlZlB0cjxGcmFtZT4gY2hpbGQgPSBmcmFt
ZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLm5leHRT
aWJsaW5nKCkpCi0gICAgICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZlbHkoKmNoaWxkKTsK
LX0KLQotYm9vbCBQYWdlQ2FjaGU6OmFkZElmQ2FjaGVhYmxlKEhpc3RvcnlJdGVtJiBpdGVtLCBQ
YWdlKiBwYWdlKQotewotICAgIGlmIChpdGVtLmlzSW5QYWdlQ2FjaGUoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5zdG9wRm9yUGFnZUNhY2hlKCk7Ci0KLSAgICBp
ZiAoIWNhbkNhY2hlKCpwYWdlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQVNTRVJU
X1dJVEhfTUVTU0FHRSghcGFnZS0+aXNVdGlsaXR5UGFnZSgpLCAiVXRpbGl0eSBwYWdlcyBzdWNo
IGFzIFNWR0ltYWdlIHBhZ2VzIHNob3VsZCBuZXZlciBnbyBpbnRvIFBhZ2VDYWNoZSIpOwotCi0g
ICAgc2V0UGFnZUNhY2hlU3RhdGUoKnBhZ2UsIERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2Fj
aGUpOwotCi0gICAgLy8gRm9jdXMgdGhlIG1haW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1c2Vk
IHN1YmZyYW1lIChpZiB3ZSBoYXZlIG9uZSkuIFdlIGRvIHRoaXMgaGVyZSwKLSAgICAvLyBiZWZv
cmUgdGhlIHBhZ2UgZW50ZXJzIHRoZSBwYWdlIGNhY2hlLCB3aGlsZSB3ZSBzdGlsbCBjYW4gZGlz
cGF0Y2ggRE9NIGJsdXIvZm9jdXMgZXZlbnRzLgotICAgIGlmIChwYWdlLT5mb2N1c0NvbnRyb2xs
ZXIoKS5mb2N1c2VkRnJhbWUoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0
Rm9jdXNlZEZyYW1lKCZwYWdlLT5tYWluRnJhbWUoKSk7Ci0KLSAgICAvLyBGaXJlIHRoZSBwYWdl
aGlkZSBldmVudCBpbiBhbGwgZnJhbWVzLgotICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZl
bHkocGFnZS0+bWFpbkZyYW1lKCkpOwotCi0gICAgZGVzdHJveVJlbmRlclRyZWUocGFnZS0+bWFp
bkZyYW1lKCkpOwotCi0gICAgLy8gU3RvcCBhbGwgbG9hZHMgYWdhaW4gYmVmb3JlIGNoZWNraW5n
IGlmIHdlIGNhbiBzdGlsbCBjYWNoZSB0aGUgcGFnZSBhZnRlciBmaXJpbmcgdGhlIHBhZ2VoaWRl
Ci0gICAgLy8gZXZlbnQsIHNpbmNlIHRoZSBwYWdlIG1heSBoYXZlIHN0YXJ0ZWQgcGluZyBsb2Fk
cyBpbiBpdHMgcGFnZWhpZGUgZXZlbnQgaGFuZGxlci4KLSAgICBwYWdlLT5tYWluRnJhbWUoKS5s
b2FkZXIoKS5zdG9wRm9yUGFnZUNhY2hlKCk7Ci0KLSAgICAvLyBDaGVjayB0aGF0IHRoZSBwYWdl
IGlzIHN0aWxsIHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0aGUgcGFnZWhpZGUgZXZlbnQu
IFRoZSBKUyBldmVudCBoYW5kbGVycwotICAgIC8vIGNvdWxkIGhhdmUgYWx0ZXJlZCB0aGUgcGFn
ZSBpbiBhIHdheSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4KLSAgICBpZiAoIWNhbkNhY2hl
KCpwYWdlKSkgewotICAgICAgICBzZXRQYWdlQ2FjaGVTdGF0ZSgqcGFnZSwgRG9jdW1lbnQ6Ok5v
dEluUGFnZUNhY2hlKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHNldFBh
Z2VDYWNoZVN0YXRlKCpwYWdlLCBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOwotCi0gICAgewotICAg
ICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZmlyZSBhbnkgSlMgZXZlbnRzIGluIHRoaXMgc2Nv
cGUuCi0gICAgICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERp
c2FsbG93ZWRTY29wZTsKLQotICAgICAgICBpdGVtLnNldENhY2hlZFBhZ2UobWFrZVVuaXF1ZTxD
YWNoZWRQYWdlPigqcGFnZSkpOwotICAgICAgICBpdGVtLm1fcHJ1bmluZ1JlYXNvbiA9IFBydW5p
bmdSZWFzb246Ok5vbmU7Ci0gICAgICAgIG1faXRlbXMuYWRkKCZpdGVtKTsKLSAgICB9Ci0gICAg
cHJ1bmUoUHJ1bmluZ1JlYXNvbjo6UmVhY2hlZE1heFNpemUpOwotCi0gICAgUkVMRUFTRV9MT0co
QmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6YWRkSWZDYWNoZWFibGUgaXRlbTogJXMsIHNp
emU6ICV1IC8gJXUiLCBpdGVtLmlkZW50aWZpZXIoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBw
YWdlQ291bnQoKSwgbWF4U2l6ZSgpKTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGQ6OnVu
aXF1ZV9wdHI8Q2FjaGVkUGFnZT4gUGFnZUNhY2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVtLCBQ
YWdlKiBwYWdlKQotewotICAgIGlmICghaXRlbS5tX2NhY2hlZFBhZ2UpIHsKLSAgICAgICAgaWYg
KGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCi0gICAgICAgICAg
ICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgcHJ1bmluZ1JlYXNv
blRvRGlhZ25vc3RpY0xvZ2dpbmdLZXkoaXRlbS5tX3BydW5pbmdSZWFzb24pKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgbV9pdGVtcy5yZW1vdmUoJml0ZW0pOwotICAg
IHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiBjYWNoZWRQYWdlID0gaXRlbS50YWtlQ2FjaGVk
UGFnZSgpOwotCi0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6
dGFrZSBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpLCBtYXhTaXplKCkpOwotCi0gICAgaWYgKGNhY2hl
ZFBhZ2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdlLT5pc1Jlc291cmNlQ2FjaGluZ0Rp
c2FibGVkQnlXZWJJbnNwZWN0b3IoKSkpIHsKLSAgICAgICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUs
ICJOb3QgcmVzdG9yaW5nIHBhZ2UgZm9yICVzIGZyb20gYmFjay9mb3J3YXJkIGNhY2hlIGJlY2F1
c2UgY2FjaGUgZW50cnkgaGFzIGV4cGlyZWQiLCBpdGVtLnVybCgpLnN0cmluZygpLmFzY2lpKCku
ZGF0YSgpKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBh
Z2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtleSgpKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGNhY2hlZFBhZ2U7Ci19Ci0KLXZvaWQgUGFn
ZUNhY2hlOjpyZW1vdmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYgcGFnZSkKLXsKLSNpZiAhQVNTRVJU
X0RJU0FCTEVECi0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc0luUmVtb3ZlQWxsSXRlbXNG
b3JQYWdlLCAiV2Ugc2hvdWxkIG5vdCByZWVudGVyIHRoaXMgbWV0aG9kIik7Ci0gICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gaW5SZW1vdmVBbGxJdGVtc0ZvclBhZ2VTY29wZSB7IG1faXNJblJlbW92ZUFs
bEl0ZW1zRm9yUGFnZSwgdHJ1ZSB9OwotI2VuZGlmCi0KLSAgICBmb3IgKGF1dG8gaXQgPSBtX2l0
ZW1zLmJlZ2luKCk7IGl0ICE9IG1faXRlbXMuZW5kKCk7KSB7Ci0gICAgICAgIC8vIEluY3JlbWVu
dCBpdGVyYXRvciBmaXJzdCBzbyBpdCBzdGF5cyB2YWxpZCBhZnRlciB0aGUgcmVtb3ZhbC4KLSAg
ICAgICAgYXV0byBjdXJyZW50ID0gaXQ7Ci0gICAgICAgICsraXQ7Ci0gICAgICAgIGlmICgmKCpj
dXJyZW50KS0+bV9jYWNoZWRQYWdlLT5wYWdlKCkgPT0gJnBhZ2UpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJQYWdlQ2FjaGU6OnJlbW92ZUFsbEl0ZW1zRm9y
UGFnZSByZW1vdmluZyBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIsICgqY3VycmVudCktPmlkZW50
aWZpZXIoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBwYWdlQ291bnQoKSAtIDEsIG1heFNpemUo
KSk7Ci0gICAgICAgICAgICAoKmN1cnJlbnQpLT5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOwotICAg
ICAgICAgICAgbV9pdGVtcy5yZW1vdmUoY3VycmVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0K
LUNhY2hlZFBhZ2UqIFBhZ2VDYWNoZTo6Z2V0KEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdl
KQotewotICAgIENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBpdGVtLm1fY2FjaGVkUGFnZS5nZXQo
KTsKLSAgICBpZiAoIWNhY2hlZFBhZ2UpIHsKLSAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVh
c29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCi0gICAgICAgICAgICBsb2dQYWdlQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwgcHJ1bmluZ1JlYXNvblRvRGlhZ25vc3RpY0xvZ2dp
bmdLZXkoaXRlbS5tX3BydW5pbmdSZWFzb24pKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotCi0gICAgaWYgKGNhY2hlZFBhZ2UtPmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdl
LT5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkQnlXZWJJbnNwZWN0b3IoKSkpIHsKLSAgICAgICAg
TE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJOb3QgcmVzdG9yaW5nIHBhZ2UgZm9yICVzIGZyb20gYmFj
ay9mb3J3YXJkIGNhY2hlIGJlY2F1c2UgY2FjaGUgZW50cnkgaGFzIGV4cGlyZWQiLCBpdGVtLnVy
bCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVy
ZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtl
eSgpKTsKLSAgICAgICAgcmVtb3ZlKGl0ZW0pOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9Ci0gICAgcmV0dXJuIGNhY2hlZFBhZ2U7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjpyZW1vdmUo
SGlzdG9yeUl0ZW0mIGl0ZW0pCi17Ci0gICAgLy8gU2FmZWx5IGlnbm9yZSBhdHRlbXB0cyB0byBy
ZW1vdmUgaXRlbXMgbm90IGluIHRoZSBjYWNoZS4KLSAgICBpZiAoIWl0ZW0ubV9jYWNoZWRQYWdl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7Ci0gICAgaXRl
bS5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOwotCi0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRD
YWNoZSwgIlBhZ2VDYWNoZTo6cmVtb3ZlIGl0ZW06ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5p
ZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUo
KSk7Ci0KLX0KLQotdm9pZCBQYWdlQ2FjaGU6OnBydW5lKFBydW5pbmdSZWFzb24gcHJ1bmluZ1Jl
YXNvbikKLXsKLSAgICB3aGlsZSAocGFnZUNvdW50KCkgPiBtYXhTaXplKCkpIHsKLSAgICAgICAg
YXV0byBvbGRlc3RJdGVtID0gbV9pdGVtcy50YWtlRmlyc3QoKTsKLSAgICAgICAgb2xkZXN0SXRl
bS0+c2V0Q2FjaGVkUGFnZShudWxscHRyKTsKLSAgICAgICAgb2xkZXN0SXRlbS0+bV9wcnVuaW5n
UmVhc29uID0gcHJ1bmluZ1JlYXNvbjsKLSAgICAgICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRD
YWNoZSwgIlBhZ2VDYWNoZTo6cHJ1bmUgcmVtb3ZpbmcgaXRlbTogJXMsIHNpemU6ICV1IC8gJXUi
LCBvbGRlc3RJdGVtLT5pZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNv
dW50KCksIG1heFNpemUoKSk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oIGIvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTIxMWNjNDU5ZmVlZmVkZmJmYTk0NDkyNzcyZTg5ZDAzMjAxMTU4NS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1Bh
Z2VDYWNoZS5oCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lu
Y2x1ZGUgIkhpc3RvcnlJdGVtLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRl
IDx3dGYvTGlzdEhhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDYWNoZWRQYWdlOwotY2xhc3MgRnJhbWU7Ci1jbGFz
cyBQYWdlOwotCi1lbnVtIGNsYXNzIFBydW5pbmdSZWFzb24geyBOb25lLCBQcm9jZXNzU3VzcGVu
ZGVkLCBNZW1vcnlQcmVzc3VyZSwgUmVhY2hlZE1heFNpemUgfTsKLQotY2xhc3MgUGFnZUNhY2hl
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlQ2FjaGUpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKLXB1YmxpYzoKLSAgICAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhlIGdsb2JhbCBw
YWdlIGNhY2hlLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYWdlQ2FjaGUmIHNpbmdsZXRv
bigpOwotCi0gICAgYm9vbCBjYW5DYWNoZShQYWdlJikgY29uc3Q7Ci0KLSAgICAvLyBVc2VkIHdo
ZW4gbWVtb3J5IGlzIGxvdyB0byBwcnVuZSBzb21lIGNhY2hlZCBwYWdlcy4KLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHBydW5lVG9TaXplTm93KHVuc2lnbmVkIG1heFNpemUsIFBydW5pbmdSZWFz
b24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWF4U2l6ZSh1bnNpZ25lZCk7IC8vIG51
bWJlciBvZiBwYWdlcyB0byBjYWNoZS4KLSAgICB1bnNpZ25lZCBtYXhTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXhTaXplOyB9Ci0KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFkZElmQ2FjaGVh
YmxlKEhpc3RvcnlJdGVtJiwgUGFnZSopOyAvLyBQcnVuZXMgaWYgbWF4U2l6ZSgpIGlzIGV4Y2Vl
ZGVkLgotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlKEhpc3RvcnlJdGVtJik7Ci0gICAg
Q2FjaGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVtJiwgUGFnZSopOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxDYWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJdGVtJiwgUGFnZSopOwotCi0gICAgdm9pZCByZW1v
dmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYpOwotCi0gICAgdW5zaWduZWQgcGFnZUNvdW50KCkgY29u
c3QgeyByZXR1cm4gbV9pdGVtcy5zaXplKCk7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25l
ZCBmcmFtZUNvdW50KCkgY29uc3Q7Ci0KLSAgICB2b2lkIG1hcmtQYWdlc0ZvckRldmljZU9yUGFn
ZVNjYWxlQ2hhbmdlZChQYWdlJik7Ci0gICAgdm9pZCBtYXJrUGFnZXNGb3JDb250ZW50c1NpemVD
aGFuZ2VkKFBhZ2UmKTsKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgdm9pZCBtYXJrUGFn
ZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAg
ICBQYWdlQ2FjaGUoKTsKLSAgICB+UGFnZUNhY2hlKCkgPSBkZWxldGU7IC8vIE1ha2Ugc3VyZSBu
b2JvZHkgYWNjaWRlbnRhbGx5IGNhbGxzIGRlbGV0ZSAtLSBXZWJDb3JlIGRvZXMgbm90IGRlbGV0
ZSBzaW5nbGV0b25zLgotCi0gICAgc3RhdGljIGJvb2wgY2FuQ2FjaGVQYWdlQ29udGFpbmluZ1Ro
aXNGcmFtZShGcmFtZSYpOwotCi0gICAgdm9pZCBwcnVuZShQcnVuaW5nUmVhc29uKTsKLSAgICB2
b2lkIGR1bXAoKSBjb25zdDsKLQotICAgIExpc3RIYXNoU2V0PFJlZlB0cjxIaXN0b3J5SXRlbT4+
IG1faXRlbXM7Ci0gICAgdW5zaWduZWQgbV9tYXhTaXplIHswfTsKLQotI2lmICFBU1NFUlRfRElT
QUJMRUQKLSAgICBib29sIG1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSB7IGZhbHNlIH07Ci0j
ZW5kaWYKLQotICAgIGZyaWVuZCBjbGFzcyBXVEY6Ok5ldmVyRGVzdHJveWVkPFBhZ2VDYWNoZT47
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCBjZmVhMjcxZjJmNjAyZDg2YzMyMDk2YjVmMTBjOGI0M2RkZTVj
MzM5Li45ZmE3MzhhYmM3MTEwNmQ3NmFjNDk0YjhkNmU1ZjhiMDc3ZWUwNzA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTU3NTksNyArNTc1OSw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikK
ICAgICBtX3Jlc3VtZVRhc2tRdWV1ZS5jYW5jZWxUYXNrKCk7CiAKICAgICBzd2l0Y2ggKHJlYXNv
bikgewotICAgIGNhc2UgUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlOgorICAgIGNhc2Ug
UmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgc3RvcFdpdGhv
dXREZXN0cm95aW5nTWVkaWFQbGF5ZXIoKTsKICAgICAgICAgc2V0QnVmZmVyaW5nUG9saWN5KEJ1
ZmZlcmluZ1BvbGljeTo6TWFrZVJlc291cmNlc1B1cmdlYWJsZSk7CiAgICAgICAgIG1fbWVkaWFT
ZXNzaW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVp
cmVQYWdlQ29uc2VudFRvUmVzdW1lTWVkaWEpOwpAQCAtNTc4Nyw3ICs1Nzg3LDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpyZXN1bWUoKQogICAgIG1fbWVkaWFTZXNzaW9uLT51cGRhdGVCdWZm
ZXJpbmdQb2xpY3koKTsKIAogICAgIGlmIChtX2Vycm9yICYmIG1fZXJyb3ItPmNvZGUoKSA9PSBN
ZWRpYUVycm9yOjpNRURJQV9FUlJfQUJPUlRFRCAmJiAhbV9yZXN1bWVUYXNrUXVldWUuaGFzUGVu
ZGluZ1Rhc2soKSkgewotICAgICAgICAvLyBSZXN0YXJ0IHRoZSBsb2FkIGlmIGl0IHdhcyBhYm9y
dGVkIGluIHRoZSBtaWRkbGUgYnkgbW92aW5nIHRoZSBkb2N1bWVudCB0byB0aGUgcGFnZSBjYWNo
ZS4KKyAgICAgICAgLy8gUmVzdGFydCB0aGUgbG9hZCBpZiBpdCB3YXMgYWJvcnRlZCBpbiB0aGUg
bWlkZGxlIGJ5IG1vdmluZyB0aGUgZG9jdW1lbnQgdG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4K
ICAgICAgICAgLy8gbV9lcnJvciBpcyBvbmx5IGxlZnQgYXQgTUVESUFfRVJSX0FCT1JURUQgd2hl
biB0aGUgZG9jdW1lbnQgYmVjb21lcyBpbmFjdGl2ZSAoaXQgaXMgc2V0IHRvCiAgICAgICAgIC8v
ICBNRURJQV9FUlJfQUJPUlRFRCB3aGlsZSB0aGUgYWJvcnRFdmVudCBpcyBiZWluZyBzZW50LCBi
dXQgY2xlYXJlZCBpbW1lZGlhdGVseSBhZnRlcndhcmRzKS4KICAgICAgICAgLy8gVGhpcyBiZWhh
dmlvciBpcyBub3Qgc3BlY2lmaWVkIGJ1dCBpdCBzZWVtcyBsaWtlIGEgc2Vuc2libGUgdGhpbmcg
dG8gZG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cAppbmRleCBjNTZjM2M0ODg1OGI2MzlhZWQzMTljNzI3ZjZmODYyYzVmNjQzZTU4Li44YTFlZTBk
MjNjMjZjMjgyMTM5M2Q4ODJmZmVlMTU2Nzk1YzQyOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKQEAgLTE4NCwxMyArMTg0LDEzIEBAIGJv
b2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6d291bGRMb2FkQXNQbHVnSW4oY29uc3QgU3RyaW5n
JiByZWxhdGl2ZVVSTCwgY29uc3QKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mIGluc2VydGlvblBvc2l0aW9uKQogewotICAgIEFT
U0VSVChkb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNh
Y2hlKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQoKS5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBE
b2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGlmIChkaXNwbGF5U3RhdGUo
KSA+PSBQcmVwYXJpbmdQbHVnaW5SZXBsYWNlbWVudCkKICAgICAgICAgcmV0dXJuIEhUTUxQbHVn
SW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoV1RGTW92ZShzdHlsZSksIGluc2VydGlv
blBvc2l0aW9uKTsKIAogICAgIC8vIE9uY2UgYSBwbHVnLWluIGVsZW1lbnQgY3JlYXRlcyBpdHMg
cmVuZGVyZXIsIGl0IG5lZWRzIHRvIGJlIHRvbGQgd2hlbiB0aGUgZG9jdW1lbnQgZ29lcwotICAg
IC8vIGluYWN0aXZlIG9yIHJlYWN0aXZhdGVzIHNvIGl0IGNhbiBjbGVhciB0aGUgcmVuZGVyZXIg
YmVmb3JlIGdvaW5nIGludG8gdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gaW5hY3RpdmUgb3IgcmVh
Y3RpdmF0ZXMgc28gaXQgY2FuIGNsZWFyIHRoZSByZW5kZXJlciBiZWZvcmUgZ29pbmcgaW50byB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIGlmICghbV9uZWVkc0RvY3VtZW50QWN0aXZhdGlv
bkNhbGxiYWNrcykgewogICAgICAgICBtX25lZWRzRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tz
ID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQoKS5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lv
bkNhbGxiYWNrcygqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
b3VyY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQu
Y3BwCmluZGV4IDg4ZWM1YTc2YTYwZWNiZjYwZWNkMjI1ODExY2JmMzMyZmUxMjNiY2EuLmRkNWQ4
NWM1NGI5MWZmYmNmYjIwNGVjZmQ2Yjc0YjRiNDIzZjNhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBIVE1MU291
cmNlRWxlbWVudDo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB2b2lk
IEhUTUxTb3VyY2VFbGVtZW50OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQog
ewogICAgIC8vIEZJWE1FOiBTaG91bGRuJ3QgdGhpcyBhbHNvIHN0b3AgdGhlIHRpbWVyIGZvciBQ
YWdlV2lsbEJlU3VzcGVuZGVkPwotICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lv
bjo6UGFnZUNhY2hlKSB7CisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpC
YWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAgIG1fc2hvdWxkUmVzY2hlZHVsZUVycm9yRXZlbnRP
blJlc3VtZSA9IG1fZXJyb3JFdmVudFRpbWVyLmlzQWN0aXZlKCk7CiAgICAgICAgIG1fZXJyb3JF
dmVudFRpbWVyLnN0b3AoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcAppbmRleCAyODQwNmZjMmZlZTgxYTFhZWE2ZjRmNDc1ZjVhNWE4ZDk2ZmEx
M2E2Li4yYTRjOGY1M2Q5OTVhYjllZGE0NWNkNTBiMzY2Zjk2NzQ4NjU0ZjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTMxMiw3ICszMTIsNyBA
QCBTdWNjZXNzT3I8TWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50U2Vzc2lv
bjo6cGxheWJhY2tQZXJtaXR0ZWQoKSBjbwogYm9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRv
cGxheVBlcm1pdHRlZCgpIGNvbnN0CiB7CiAgICAgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50ID0g
bV9lbGVtZW50LmRvY3VtZW50KCk7Ci0gICAgaWYgKGRvY3VtZW50LnBhZ2VDYWNoZVN0YXRlKCkg
IT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgIGlmIChkb2N1bWVudC5iYWNrRm9yd2Fy
ZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNw
ZW5kZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKaW5kZXggZmJhMjY2YWVlNmMxYjgwZDdlNWZhYzBlNzMyMzQ2MTE4OTgw
NmFlNS4uNWZlMzA3ZGM1NDdjZGE1MTAzMDMwYjYzMWUyZDEwMGM1YmE3MTA4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xNjU0LDE3ICsxNjU0LDE3IEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OmFkZFN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVy
KiBsb2FkZXIpCiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgaWYgKGRvY3VtZW50KCkpIHsK
LSAgICAgICAgc3dpdGNoIChkb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAg
IGNhc2UgRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOgorICAgICAgICBzd2l0Y2ggKGRvY3VtZW50
KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpKSB7CisgICAgICAgIGNhc2UgRG9jdW1lbnQ6Ok5v
dEluQmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERv
Y3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGU6IHsKLSAgICAgICAgICAgIC8vIEEgcGFnZSBh
Ym91dCB0byBlbnRlciBQYWdlQ2FjaGUgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5n
IGxvYWRzLgorICAgICAgICBjYXNlIERvY3VtZW50OjpBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENh
Y2hlOiB7CisgICAgICAgICAgICAvLyBBIHBhZ2UgYWJvdXQgdG8gZW50ZXIgdGhlIEJhY2tGb3J3
YXJkQ2FjaGUgc2hvdWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5nIGxvYWRzLgogICAgICAg
ICAgICAgYXV0byogY2FjaGVkUmVzb3VyY2UgPSBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVz
b3VyY2VGb3JSZXF1ZXN0KGxvYWRlci0+cmVxdWVzdCgpLCBsb2FkZXItPmZyYW1lTG9hZGVyKCkt
PmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQoKSk7CiAgICAgICAgICAgICBBU1NFUlQoY2FjaGVk
UmVzb3VyY2UgJiYgQ2FjaGVkUmVzb3VyY2U6OnNob3VsZFVzZVBpbmdMb2FkKGNhY2hlZFJlc291
cmNlLT50eXBlKCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNh
c2UgRG9jdW1lbnQ6OkluUGFnZUNhY2hlOgotICAgICAgICAgICAgLy8gQSBwYWdlIGluIHRoZSBQ
YWdlQ2FjaGUgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRzLgorICAgICAgICBjYXNl
IERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGU6CisgICAgICAgICAgICAvLyBBIHBhZ2UgaW4g
dGhlIEJhY2tGb3J3YXJkQ2FjaGUgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRzLgog
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAppbmRleCBkZmZlZDQw
OGMxZGVhODA3YjFkYTJiNTQ1OTk0NGE0YjZkZTVjMTdjLi45ZjM4ZjllYjQyMzBjZjVlODM3MGVl
ODYwNDMzNDVlYjJiMTgyZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aApAQCAtNTM5LDcgKzUzOSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBXZSByZXRhaW4gYWxsIHRo
ZSByZWNlaXZlZCByZXNwb25zZXMgc28gd2UgY2FuIHBsYXkgYmFjayB0aGUKICAgICAvLyBXZWJS
ZXNvdXJjZUxvYWREZWxlZ2F0ZSBtZXNzYWdlcyBpZiB0aGUgaXRlbSBpcyBsb2FkZWQgZnJvbSB0
aGUKLSAgICAvLyBwYWdlIGNhY2hlLgorICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBW
ZWN0b3I8UmVzb3VyY2VSZXNwb25zZT4gbV9yZXNwb25zZXM7CiAgICAgYm9vbCBtX3N0b3BSZWNv
cmRpbmdSZXNwb25zZXMgeyBmYWxzZSB9OwogICAgIApAQCAtNTc5LDcgKzU3OSw2IEBAIHByaXZh
dGU6CiAKICAgICBWZWN0b3I8Q3VzdG9tSGVhZGVyRmllbGRzPiBtX2N1c3RvbUhlYWRlckZpZWxk
czsKICAgICAKLSAgICBib29sIG1fc3VicmVzb3VyY2VMb2FkZXJzQXJlUGFnZUNhY2hlQWNjZXB0
YWJsZSB7IGZhbHNlIH07CiAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBtX3Nob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEFwcGxpY2F0aW9uQ2FjaGVI
b3N0PiBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZTU5NmZhMDNlMTFjYmZjY2MxNTY2ZGVmZGJm
Nzc1ZDgyYjVkMzk4ZS4uMDljY2Q1YTIyNzc3ZmNiZWIxYTc4ZTFjZTk4OGM2NjQyNjUzNGZmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC00Niw3ICs0Niw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGll
bnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogCiAgICAgdm9pZCBtYWtlUmVwcmVzZW50
YXRpb24oRG9jdW1lbnRMb2FkZXIqKSBmaW5hbCB7IH0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3
YXJkQ2FjaGUoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgdm9pZCBmb3Jj
ZUxheW91dEZvck5vbkhUTUwoKSBmaW5hbCB7IH0KIApAQCAtMTY0LDcgKzE2NCw3IEBAIGNsYXNz
IFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2Fk
ZXJDbGllbnQgewogI2VuZGlmCiAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQ
YWdlKCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmlu
YWwgeyB9CisgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbCB7
IH0KIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbCB7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYzk3M2UxNzUyYjBlN2E5
YTBlMTlhMjg2N2UzNGMxNzFmMTc0ZGJmZi4uYjIwMzc1YTUwZDlhNDVhZDU5MTg5MzlhYTQ0ZWJm
ZWRlMWY4NzVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNyw2
ICszNyw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXBwbGlj
YXRpb25DYWNoZUhvc3QuaCIKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVk
ZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQmVmb3JlVW5sb2FkRXZlbnQu
aCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCkBAIC05Miw3ICs5Myw2IEBACiAjaW5jbHVkZSAi
TmF2aWdhdGlvblNjaGVkdWxlci5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdl
LmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVu
dC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyYXRlZ2llcy5oIgpAQCAtNTQ4LDggKzU0OCw4IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmNsb3Nl
VVJMKCkKICAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgU1ZHRG9jdW1lbnQgb2YgYW4gU1ZHSW1h
Z2UsIG5vIG5lZWQgdG8gZGlzcGF0Y2ggZXZlbnRzIG9yIHJlY2FsY1N0eWxlLgogICAgICAgICB1
bmxvYWRFdmVudFBvbGljeSA9IFVubG9hZEV2ZW50UG9saWN5Tm9uZTsKICAgICB9IGVsc2Ugewot
ICAgICAgICAvLyBTaG91bGQgb25seSBzZW5kIHRoZSBwYWdlaGlkZSBldmVudCBoZXJlIGlmIHRo
ZSBjdXJyZW50IGRvY3VtZW50IGV4aXN0cyBhbmQgaGFzIG5vdCBiZWVuIHBsYWNlZCBpbiB0aGUg
cGFnZSBjYWNoZS4KLSAgICAgICAgdW5sb2FkRXZlbnRQb2xpY3kgPSBjdXJyZW50RG9jdW1lbnQg
JiYgY3VycmVudERvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBh
Z2VDYWNoZSA/IFVubG9hZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhpZGUgOiBVbmxvYWRFdmVu
dFBvbGljeVVubG9hZE9ubHk7CisgICAgICAgIC8vIFNob3VsZCBvbmx5IHNlbmQgdGhlIHBhZ2Vo
aWRlIGV2ZW50IGhlcmUgaWYgdGhlIGN1cnJlbnQgZG9jdW1lbnQgZXhpc3RzIGFuZCBoYXMgbm90
IGJlZW4gcGxhY2VkIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisgICAgICAgIHVubG9hZEV2
ZW50UG9saWN5ID0gY3VycmVudERvY3VtZW50ICYmIGN1cnJlbnREb2N1bWVudC0+YmFja0Zvcndh
cmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSA/IFVubG9h
ZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhpZGUgOiBVbmxvYWRFdmVudFBvbGljeVVubG9hZE9u
bHk7CiAgICAgfQogCiAgICAgc3RvcExvYWRpbmcodW5sb2FkRXZlbnRQb2xpY3kpOwpAQCAtNjM0
LDcgKzYzNCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyKERvY3VtZW50KiBuZXdEb2N1bWVu
dCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMsIGJvb2wKICAgICBib29sIG5lZWRlZENsZWFy
ID0gbV9uZWVkc0NsZWFyOwogICAgIG1fbmVlZHNDbGVhciA9IGZhbHNlOwogCi0gICAgaWYgKG5l
ZWRlZENsZWFyICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1
bWVudDo6SW5QYWdlQ2FjaGUpIHsKKyAgICBpZiAobmVlZGVkQ2xlYXIgJiYgbV9mcmFtZS5kb2N1
bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2Fy
ZENhY2hlKSB7CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwog
ICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnN0b3BBY3RpdmVET01PYmplY3RzKCk7CiAgICAg
ICAgIGJvb2wgaGFkTGl2aW5nUmVuZGVyVHJlZSA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+aGFzTGl2
aW5nUmVuZGVyVHJlZSgpOwpAQCAtNjUzLDcgKzY1Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNs
ZWFyKERvY3VtZW50KiBuZXdEb2N1bWVudCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMsIGJv
b2wKICAgICBpZiAoY2xlYXJXaW5kb3dQcm9wZXJ0aWVzKSB7CiAgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZnJhbWVXaW5kb3dEaXNjYXJkZWQobV9mcmFtZSwgbV9mcmFtZS5kb2N1
bWVudCgpLT5kb21XaW5kb3coKSk7CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2lu
ZG93KCktPnJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7Ci0gICAg
ICAgIG1fZnJhbWUud2luZG93UHJveHkoKS5jbGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5n
RE9NV2luZG93KG5ld0RvY3VtZW50LT5kb21XaW5kb3coKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5w
YWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOworICAg
ICAgICBtX2ZyYW1lLndpbmRvd1Byb3h5KCkuY2xlYXJKU1dpbmRvd1Byb3hpZXNOb3RNYXRjaGlu
Z0RPTVdpbmRvdyhuZXdEb2N1bWVudC0+ZG9tV2luZG93KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+
YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3
YXJkQ2FjaGUpOwogCiAgICAgICAgIGlmIChzaG91bGRDbGVhcldpbmRvd05hbWUobV9mcmFtZSwg
Km5ld0RvY3VtZW50KSkKICAgICAgICAgICAgIG1fZnJhbWUudHJlZSgpLnNldE5hbWUobnVsbEF0
b20oKSk7CkBAIC0xODE0LDcgKzE4MTQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoT3B0
aW9uU2V0PFJlbG9hZE9wdGlvbj4gb3B0aW9ucykKIAogdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFs
bExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW1Q
b2xpY3ksIFN0b3BMb2FkaW5nUG9saWN5IHN0b3BMb2FkaW5nUG9saWN5KQogewotICAgIGlmICht
X2ZyYW1lLmRvY3VtZW50KCkgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgp
ID09IERvY3VtZW50OjpJblBhZ2VDYWNoZSkKKyAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpICYm
IG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6
OkluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHN0b3BMb2Fk
aW5nUG9saWN5ID09IFN0b3BMb2FkaW5nUG9saWN5OjpQcmV2ZW50RHVyaW5nVW5sb2FkRXZlbnRz
ICYmICFpc1N0b3BMb2FkaW5nQWxsb3dlZCgpKQpAQCAtMTg1Miw3ICsxODUyLDcgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xl
YXJQcm92aXNpb25hbEl0ZW0KICAgICBtX2luU3RvcEFsbExvYWRlcnMgPSBmYWxzZTsgICAgCiB9
CiAKLXZvaWQgRnJhbWVMb2FkZXI6OnN0b3BGb3JQYWdlQ2FjaGUoKQordm9pZCBGcmFtZUxvYWRl
cjo6c3RvcEZvckJhY2tGb3J3YXJkQ2FjaGUoKQogewogICAgIC8vIFN0b3AgcHJvdmlzaW9uYWwg
bG9hZHMgaW4gc3ViZnJhbWVzIChUaGUgb25lIGluIHRoZSBtYWluIGZyYW1lIGlzIGFib3V0IHRv
IGJlIGNvbW1pdHRlZCkuCiAgICAgaWYgKCFtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKQEAgLTE4
NjYsNyArMTg2Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BGb3JQYWdlQ2FjaGUoKQogICAg
ICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9wTG9hZGluZygpOwogCiAgICAgZm9yIChSZWZQdHI8
RnJhbWU+IGNoaWxkID0gbV9mcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQg
PSBjaGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkLT5sb2FkZXIoKS5z
dG9wRm9yUGFnZUNhY2hlKCk7CisgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5zdG9wRm9yQmFja0Zv
cndhcmRDYWNoZSgpOwogCiAgICAgLy8gV2UgY2FuY2VsIHBlbmRpbmcgbmF2aWdhdGlvbnMgJiBw
b2xpY3kgY2hlY2tzICphZnRlciogY2FuY2VsbGluZyBsb2FkcyBiZWNhdXNlIGNhbmNlbGxpbmcg
bG9hZHMgbWlnaHQgZW5kIHVwCiAgICAgLy8gcnVubmluZyBzY3JpcHQsIHdoaWNoIGNvdWxkIHNj
aGVkdWxlIG5ldyBuYXZpZ2F0aW9ucy4KQEAgLTIwMTYsNyArMjAxNiw3IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2Fj
aGVkUGFnZT4gY2FjaGVkUGFnZTsKICAgICBpZiAobV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2UgJiYg
aGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpKQotICAgICAgICBjYWNoZWRQYWdlID0gUGFnZUNh
Y2hlOjpzaW5nbGV0b24oKS50YWtlKCpoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCksIG1fZnJh
bWUucGFnZSgpKTsKKyAgICAgICAgY2FjaGVkUGFnZSA9IEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmds
ZXRvbigpLnRha2UoKmhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSwgbV9mcmFtZS5wYWdlKCkp
OwogCiAgICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJXZWJDb3JlTG9hZGluZyAlczogQWJvdXQg
dG8gY29tbWl0IHByb3Zpc2lvbmFsIGxvYWQgZnJvbSBwcmV2aW91cyBVUkwgJyVzJyB0byBuZXcg
VVJMICclcycgd2l0aCBjYWNoZWQgcGFnZSAlcCIsIG1fZnJhbWUudHJlZSgpLnVuaXF1ZU5hbWUo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLAogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCkgPyBt
X2ZyYW1lLmRvY3VtZW50KCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgp
LnV0ZjgoKS5kYXRhKCkgOiAiIiwKQEAgLTIwMjcsNyArMjAyNyw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgaWYgKCFtX2ZyYW1lLnRyZWUoKS5wYXJl
bnQoKSAmJiBoaXN0b3J5KCkuY3VycmVudEl0ZW0oKSAmJiBoaXN0b3J5KCkuY3VycmVudEl0ZW0o
KSAhPSBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCkpIHsKICAgICAgICAgLy8gQ2hlY2sgdG8g
c2VlIGlmIHdlIG5lZWQgdG8gY2FjaGUgdGhlIHBhZ2Ugd2UgYXJlIG5hdmlnYXRpbmcgYXdheSBm
cm9tIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICAgICAgLy8gV2UgYXJlIGRvaW5n
IHRoaXMgaGVyZSBiZWNhdXNlIHdlIGtub3cgZm9yIHN1cmUgdGhhdCBhIG5ldyBwYWdlIGlzIGFi
b3V0IHRvIGJlIGxvYWRlZC4KLSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5hZGRJZkNh
Y2hlYWJsZSgqaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAg
ICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuYWRkSWZDYWNoZWFibGUoKmhpc3Rvcnko
KS5jdXJyZW50SXRlbSgpLCBtX2ZyYW1lLnBhZ2UoKSk7CiAgICAgICAgIAogICAgICAgICBXZWJD
b3JlOjpqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExldmVsTmF2aWdhdGlvbigpOwogICAg
IH0KQEAgLTIxMDQsMTEgKzIxMDQsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlz
aW9uYWxMb2FkKCkKICAgICAgICAgLy8gTm90ZSwgZGlkUmVjZWl2ZURvY1R5cGUgaXMgZXhwZWN0
ZWQgdG8gYmUgY2FsbGVkIGZvciBjYWNoZWQgcGFnZXMuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTkw
Njc1OD4gZm9yIG1vcmUgZGV0YWlscy4KICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKG1f
ZnJhbWUpOwotICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShSZWFzb25Gb3JTdXNw
ZW5zaW9uOjpQYWdlQ2FjaGUpOworICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShS
ZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgICAgICAvLyBGb3Jj
ZSBhIGxheW91dCB0byB1cGRhdGUgdmlldyBzaXplIGFuZCB0aGVyZWJ5IHVwZGF0ZSBzY3JvbGxi
YXJzLgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlmICghbV9jbGllbnQuZm9y
Y2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkpCisgICAgICAgIGlmICghbV9jbGllbnQu
Zm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICAgICAg
bV9mcmFtZS52aWV3KCktPmZvcmNlTGF5b3V0KCk7CiAjZWxzZQogICAgICAgICBtX2ZyYW1lLnZp
ZXcoKS0+Zm9yY2VMYXlvdXQoKTsKQEAgLTIzMzAsNyArMjMzMCw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6Om9wZW4oQ2FjaGVkRnJhbWVCYXNlJiBjYWNoZWRGcmFtZSkKICAgICBjbGVhcihkb2N1bWVu
dC5wdHIoKSwgdHJ1ZSwgdHJ1ZSwgY2FjaGVkRnJhbWUuaXNNYWluRnJhbWUoKSk7CiAKICAgICBk
b2N1bWVudC0+YXR0YWNoVG9DYWNoZWRGcmFtZShjYWNoZWRGcmFtZSk7Ci0gICAgZG9jdW1lbnQt
PnNldFBhZ2VDYWNoZVN0YXRlKERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgZG9jdW1l
bnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENh
Y2hlKTsKIAogICAgIG1fbmVlZHNDbGVhciA9IHRydWU7CiAgICAgbV9pc0NvbXBsZXRlID0gZmFs
c2U7CkBAIC0yMzYwLDcgKzIzNjAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpvcGVuKENhY2hlZEZy
YW1lQmFzZSYgY2FjaGVkRnJhbWUpCiAgICAgCiAgICAgbV9mcmFtZS5zZXREb2N1bWVudChkb2N1
bWVudC5jb3B5UmVmKCkpOwogCi0gICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5yZXN1bWVGcm9t
UGFnZUNhY2hlKCk7CisgICAgZG9jdW1lbnQtPmRvbVdpbmRvdygpLT5yZXN1bWVGcm9tQmFja0Zv
cndhcmRDYWNoZSgpOwogCiAgICAgdXBkYXRlRmlyc3RQYXJ0eUZvckNvb2tpZXMoKTsKIApAQCAt
MjgyOCw3ICsyODI4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZnJhbWVEZXRhY2hlZCgpCiAgICAg
ICAgIGNoZWNrQ29tcGxldGVuZXNzTm93KCk7CiAgICAgfQogCi0gICAgaWYgKG1fZnJhbWUuZG9j
dW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpIHsKKyAg
ICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1
bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAgIHN0b3BBbGxMb2FkZXJzQW5kQ2hl
Y2tDb21wbGV0ZW5lc3MoKTsKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zdG9wQWN0aXZl
RE9NT2JqZWN0cygpOwogICAgIH0KQEAgLTI4NDQsOCArMjg0NCw4IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmRldGFjaEZyb21QYXJlbnQoKQogICAgIGNsb3NlVVJMKCk7CiAgICAgaGlzdG9yeSgpLnNh
dmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShoaXN0b3J5KCkuY3VycmVudEl0ZW0o
KSk7CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5w
YWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpJblBhZ2VDYWNoZSkgewotICAgICAgICAvLyBz
dG9wQWxsTG9hZGVycygpIG5lZWRzIHRvIGJlIGNhbGxlZCBhZnRlciBkZXRhY2hDaGlsZHJlbigp
IGlmIHRoZSBkb2N1bWVudCBpcyBub3QgaW4gdGhlIHBhZ2UgY2FjaGUsCisgICAgaWYgKG1fZnJh
bWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluQmFj
a0ZvcndhcmRDYWNoZSkgeworICAgICAgICAvLyBzdG9wQWxsTG9hZGVycygpIG5lZWRzIHRvIGJl
IGNhbGxlZCBhZnRlciBkZXRhY2hDaGlsZHJlbigpIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgaW4g
dGhlIGJhY2svZm9yd2FyZCBjYWNoZSwKICAgICAgICAgLy8gYmVjYXVzZSBkZXRhY2hlZENoaWxk
cmVuKCkgd2lsbCB0cmlnZ2VyIHRoZSB1bmxvYWQgZXZlbnQgaGFuZGxlcnMgb2YgYW55IGNoaWxk
IGZyYW1lcywgYW5kIHRob3NlIGV2ZW50CiAgICAgICAgIC8vIGhhbmRsZXJzIG1pZ2h0IHN0YXJ0
IGEgbmV3IHN1YnJlc291cmNlIGxvYWQgaW4gdGhpcyBmcmFtZS4KICAgICAgICAgc3RvcEFsbExv
YWRlcnMoU2hvdWxkQ2xlYXJQcm92aXNpb25hbEl0ZW0sIFN0b3BMb2FkaW5nUG9saWN5OjpBbHdh
eXNTdG9wTG9hZGluZyk7CkBAIC0zMTgwLDcgKzMxODAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpy
ZWNlaXZlZE1haW5SZXNvdXJjZUVycm9yKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAg
ICAgICBpZiAobV9zdWJtaXR0ZWRGb3JtVVJMID09IG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRl
ci0+b3JpZ2luYWxSZXF1ZXN0Q29weSgpLnVybCgpKQogICAgICAgICAgICAgbV9zdWJtaXR0ZWRG
b3JtVVJMID0gVVJMKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBt
YWRlIGEgcGFnZSBjYWNoZSBpdGVtLCBidXQgbm93IHdlJ3JlIGJhaWxpbmcgb3V0IGR1ZSB0byBh
biBlcnJvciBiZWZvcmUgd2UgZXZlcgorICAgICAgICAvLyBXZSBtaWdodCBoYXZlIG1hZGUgYSBi
YWNrL2ZvcndhcmQgY2FjaGUgaXRlbSwgYnV0IG5vdyB3ZSdyZSBiYWlsaW5nIG91dCBkdWUgdG8g
YW4gZXJyb3IgYmVmb3JlIHdlIGV2ZXIKICAgICAgICAgLy8gdHJhbnNpdGlvbmVkIHRvIHRoZSBu
ZXcgcGFnZSAoYmVmb3JlIFdlYkZyYW1lU3RhdGUgPT0gY29tbWl0KS4gIFRoZSBnb2FsIGhlcmUg
aXMgdG8gcmVzdG9yZSBhbnkgc3RhdGUKICAgICAgICAgLy8gc28gdGhhdCB0aGUgZXhpc3Rpbmcg
dmlldyAodGhhdCB3ZW5ldmVyIGdvdCBmYXIgZW5vdWdoIHRvIHJlcGxhY2UpIGNhbiBjb250aW51
ZSBiZWluZyB1c2VkLgogICAgICAgICBoaXN0b3J5KCkuaW52YWxpZGF0ZUN1cnJlbnRJdGVtQ2Fj
aGVkUGFnZSgpOwpAQCAtMzIzMSw3ICszMjMxLDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxk
UGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbihib29sIGlzRm9ybVN1Ym1pc3Npb24sIGNvbnN0IFMK
ICAgICByZXR1cm4gKCFpc0Zvcm1TdWJtaXNzaW9uIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGh0dHBNZXRob2QsICJnZXQiKSkKICAgICAgICAgJiYgIWlzUmVsb2FkKGxvYWRUeXBl
KQogICAgICAgICAmJiBsb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlOjpTYW1lCi0gICAgICAgICYm
IG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdl
Q2FjaGUKKyAgICAgICAgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3Rh
dGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlCiAgICAgICAgICYmICFzaG91bGRS
ZWxvYWQobV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKSwgdXJsKQogICAgICAgICAvLyBXZSBkb24n
dCB3YW50IHRvIGp1c3Qgc2Nyb2xsIGlmIGEgbGluayBmcm9tIHdpdGhpbiBhCiAgICAgICAgIC8v
IGZyYW1lc2V0IGlzIHRyeWluZyB0byByZWxvYWQgdGhlIGZyYW1lc2V0IGludG8gX3RvcC4KQEAg
LTMzMTUsMTMgKzMzMTUsMTMgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hVbmxvYWRFdmVu
dHMoVW5sb2FkRXZlbnRQb2xpY3kgdW5sb2FkRXZlbnRQb2xpY3kpCiAgICAgICAgIGlmIChtX3Bh
Z2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCA9PSBQYWdlRGlzbWlzc2FsVHlwZTo6Tm9u
ZSkgewogICAgICAgICAgICAgaWYgKHVubG9hZEV2ZW50UG9saWN5ID09IFVubG9hZEV2ZW50UG9s
aWN5VW5sb2FkQW5kUGFnZUhpZGUpIHsKICAgICAgICAgICAgICAgICBtX3BhZ2VEaXNtaXNzYWxF
dmVudEJlaW5nRGlzcGF0Y2hlZCA9IFBhZ2VEaXNtaXNzYWxUeXBlOjpQYWdlSGlkZTsKLSAgICAg
ICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50
KFBhZ2VUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucGFnZWhpZGVFdmVudCwg
bV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRv
RW50ZXJQYWdlQ2FjaGUpLCBtX2ZyYW1lLmRvY3VtZW50KCkpOworICAgICAgICAgICAgICAgIG1f
ZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRp
b25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYWdlaGlkZUV2ZW50LCBtX2ZyYW1lLmRvY3Vt
ZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJC
YWNrRm9yd2FyZENhY2hlKSwgbV9mcmFtZS5kb2N1bWVudCgpKTsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgLy8gRklYTUU6IHVwZGF0ZSBQYWdlIFZpc2liaWxpdHkgc3RhdGUgaGVyZS4K
ICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY3NzAKIAotICAgICAgICAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3Rh
dGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpIHsKKyAgICAgICAgICAgIGlmIChtX2Zy
YW1lLmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJ
bkJhY2tGb3J3YXJkQ2FjaGUpIHsKICAgICAgICAgICAgICAgICBSZWY8RXZlbnQ+IHVubG9hZEV2
ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnVubG9hZEV2ZW50LCBFdmVudDo6Q2FuQnVi
YmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJsZTo6Tm8pKTsKICAgICAgICAgICAgICAgICAvLyBU
aGUgRG9jdW1lbnRMb2FkZXIgKGFuZCB0aHVzIGl0cyBMb2FkVGltaW5nKSBtaWdodCBnZXQgZGVz
dHJveWVkCiAgICAgICAgICAgICAgICAgLy8gd2hpbGUgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50LCBz
byBwcm90ZWN0IGl0IHRvIHByZXZlbnQgd3JpdGluZyB0aGUgZW5kCkBAIC0zMzQ1LDcgKzMzNDUs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkaXNwYXRjaFVubG9hZEV2ZW50cyhVbmxvYWRFdmVudFBv
bGljeSB1bmxvYWRFdmVudFBvbGljeSkKICAgICBpZiAoIW1fZnJhbWUuZG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3Rh
dGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKG1fZnJhbWUuZG9jdW1l
bnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRG9uJ3QgcmVtb3ZlIGV2ZW50IGxp
c3RlbmVycyBmcm9tIGEgdHJhbnNpdGlvbmFsIGVtcHR5IGRvY3VtZW50IChzZWUgYnVnIDI4NzE2
IGZvciBtb3JlIGluZm9ybWF0aW9uKS4KQEAgLTM1MDUsMTMgKzM1MDUsMTMgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWUKIAogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUodHlwZSkpIHsK
ICAgICAgICAgYXV0byYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBtX2ZyYW1lLnBhZ2UoKS0+
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsKLSAgICAgICAgaWYgKGhpc3RvcnkoKS5wcm92aXNp
b25hbEl0ZW0oKSAmJiBoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCktPmlzSW5QYWdlQ2FjaGUo
KSkgewotICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01l
c3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6cGFnZUNhY2hlS2V5KCksIERp
YWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmlldmFsS2V5KCksIERpYWdub3N0aWNMb2dnaW5nUmVz
dWx0UGFzcywgU2hvdWxkU2FtcGxlOjpZZXMpOworICAgICAgICBpZiAoaGlzdG9yeSgpLnByb3Zp
c2lvbmFsSXRlbSgpICYmIGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKS0+aXNJbkJhY2tGb3J3
YXJkQ2FjaGUoKSkgeworICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlh
Z25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0Zvcndh
cmRDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFn
bm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAg
IGxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSgpOwogICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5OiBjYW4n
dCBjb250aW51ZSBsb2FkaW5nIGZyYW1lIGJlY2F1c2UgaXQgd2lsbCBiZSBsb2FkZWQgZnJvbSBj
YWNoZSAoZnJhbWUgPSAlcCwgbWFpbiA9ICVkKSIsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZy
YW1lKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnBhZ2VDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJp
ZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVz
KTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpLCBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ1Jl
c3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsKICAgICB9CiAKICAgICBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZEZyYW1lID0g
bWFrZVJlZihtX2ZyYW1lKV0gKCkgbXV0YWJsZSB7CkBAIC0zNjgwLDcgKzM2ODAsNyBAQCBib29s
IEZyYW1lTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9yWEZyYW1lT3B0aW9ucyhjb25zdCBT
dHJpbmcmIGNvbnRlbnQsIGNvbgogdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFByb3Zpc2lvbmFsSXRl
bUZyb21DYWNoZWRQYWdlKCkKIHsKICAgICBEb2N1bWVudExvYWRlciogcHJvdmlzaW9uYWxMb2Fk
ZXIgPSBwcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCk7Ci0gICAgTE9HKEJhY2tGb3J3YXJkQ2Fj
aGUsICJXZWJDb3JlUGFnZUNhY2hlOiBMb2FkaW5nIHByb3Zpc2lvbmFsIERvY3VtZW50TG9hZGVy
ICVwIHdpdGggVVJMICclcycgZnJvbSBDYWNoZWRQYWdlIiwgcHJvdmlzaW9uYWxEb2N1bWVudExv
YWRlcigpLCBwcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCktPnVybCgpLnN0cmluZ0NlbnRlckVs
bGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhCYWNrRm9yd2FyZENh
Y2hlLCAiRnJhbWVMb2FkZXI6OmxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSBMb2Fk
aW5nIHByb3Zpc2lvbmFsIERvY3VtZW50TG9hZGVyICVwIHdpdGggVVJMICclcycgZnJvbSBDYWNo
ZWRQYWdlIiwgcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpLCBwcm92aXNpb25hbERvY3VtZW50
TG9hZGVyKCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5k
YXRhKCkpOwogCiAgICAgcHJlcGFyZUZvckxvYWRTdGFydCgpOwogCkBAIC0zNzY4LDcgKzM3Njgs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJ
dGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbQogCiAgICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRp
bnVpbmdTdGF0ZT4gY29udGludWluZ0xvYWRHdWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0
YXRlLCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkOjpZZXMgPyBMb2FkQ29udGludWluZ1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJ
dGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6Tm90Q29udGludWluZyk7CiAKLSAgICBpZiAoQ2Fj
aGVkUGFnZSogY2FjaGVkUGFnZSA9IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1f
ZnJhbWUucGFnZSgpKSkgeworICAgIGlmIChDYWNoZWRQYWdlKiBjYWNoZWRQYWdlID0gQmFja0Zv
cndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJhbWUucGFnZSgpKSkgewogICAg
ICAgICBhdXRvIGRvY3VtZW50TG9hZGVyID0gY2FjaGVkUGFnZS0+ZG9jdW1lbnRMb2FkZXIoKTsK
ICAgICAgICAgbV9jbGllbnQudXBkYXRlQ2FjaGVkRG9jdW1lbnRMb2FkZXIoKmRvY3VtZW50TG9h
ZGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBhMzcxNmQ5ZWZiYmE5
OGQ0NjRhOWY5YTM0MThiNDk2NjJjZTkzM2NlLi41YjNhYzEwNDVhMzBjOGI2YjczMjYxMjUxNzQz
ZGYxODYwOWNiMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTQ3LDcg
KzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BBbGxMb2FkZXJzQW5kQ2hlY2tDb21wbGV0
ZW5lc3MoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BBbGxMb2FkZXJzKENsZWFyUHJv
dmlzaW9uYWxJdGVtUG9saWN5ID0gU2hvdWxkQ2xlYXJQcm92aXNpb25hbEl0ZW0sIFN0b3BMb2Fk
aW5nUG9saWN5ID0gU3RvcExvYWRpbmdQb2xpY3k6OlByZXZlbnREdXJpbmdVbmxvYWRFdmVudHMp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcEZvclVzZXJDYW5jZWwoYm9vbCBkZWZlckNo
ZWNrTG9hZENvbXBsZXRlID0gZmFsc2UpOwotICAgIHZvaWQgc3RvcEZvclBhZ2VDYWNoZSgpOwor
ICAgIHZvaWQgc3RvcEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB2b2lkIHN0b3AoKTsKICAg
ICB2b2lkIHN0b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9saWN5KTsKICAgICBib29sIGNsb3NlVVJM
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDhjN2Yx
NzVmMDhjOWQxNGJkM2ZmMTUyYzI2MzE2MWIwMGVmYmIxYTcuLjk4ZGY5NDVmNTI4N2Q2MTc3NGIz
MmQzZmVkOTRjNGVlYTk3MGZlYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNsaWVudCBmb3JjZWQgdGhlIGxh
eW91dC4KLSAgICB2aXJ0dWFsIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hl
KCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBmb3JjZUxheW91dE9uUmVzdG9yZUZyb21CYWNrRm9y
d2FyZENhY2hlKCkgPSAwOwogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9y
Tm9uSFRNTCgpID0gMDsKIApAQCAtMjc4LDcgKzI3OCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAg
IHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgPSAwOwogCi0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSA9IDA7IC8vIENhbiBjaGFu
Z2UgZHVlIHRvIG5hdmlnYXRpb24gb3IgRE9NIG1vZGlmaWNhdGlvbi4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggMDZhNzE0ZmFiYjNiYTBhN2Yx
MjVlMDJlM2YwNjgwNmNmM2NhMzE4ZC4uNjRmMTkxMzFmYmQzYjA0OGRiNTJmZjkyODgwNWRkYjM3
ODU5Y2M5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlzdG9y
eUNvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKQEAgLTQ0LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJIaXN0b3J5SXRl
bS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAi
UGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRl
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoLmgi
CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3Np
dGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRlbSogaXRlbSkKICAgICBpZiAoIWl0ZW0g
fHwgIWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1l
bnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAg
aWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1l
bnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgaXRlbS0+c2V0U2Nyb2xsUG9zaXRp
b24oZnJhbWVWaWV3LT5jYWNoZWRTY3JvbGxQb3NpdGlvbigpKTsKICAgICBlbHNlCiAgICAgICAg
IGl0ZW0tPnNldFNjcm9sbFBvc2l0aW9uKGZyYW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKSk7CkBA
IC0xMzcsOSArMTM3LDkgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBv
c2l0aW9uQW5kVmlld1N0YXRlKCkKICAgICBhdXRvIHZpZXcgPSBtYWtlUmVmUHRyKG1fZnJhbWUu
dmlldygpKTsKIAogICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBzb21lIHNjcm9sbGluZyByZWxhdGVk
IHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4gd2hlbmV2ZXIgYSBwYWdlIGdvZXMgaW50byB0aGUK
LSAgICAvLyBwYWdlIGNhY2hlIGFuZCBzaW1pbGFyIHdvcmsgdGhhdCBuZWVkcyB0byBvY2N1ciB3
aGVuIGl0IGNvbWVzIG91dC4gVGhpcyBpcyB3aGVyZSB3ZSBkbyB0aGUgd29yaworICAgIC8vIGJh
Y2svZm9yd2FyZCBjYWNoZSBhbmQgc2ltaWxhciB3b3JrIHRoYXQgbmVlZHMgdG8gb2NjdXIgd2hl
biBpdCBjb21lcyBvdXQuIFRoaXMgaXMgd2hlcmUgd2UgZG8gdGhlIHdvcmsKICAgICAvLyB0aGF0
IG5lZWRzIHRvIGhhcHBlbiB3aGVuIHdlIGV4aXQsIGFuZCB0aGUgd29yayB0aGF0IG5lZWRzIHRv
IGhhcHBlbiB3aGVuIHdlIGVudGVyIGlzIGluCi0gICAgLy8gRG9jdW1lbnQ6OnNldElzSW5QYWdl
Q2FjaGUoYm9vbCkuIEl0IHdvdWxkIGJlIG5pY2UgaWYgdGhlcmUgd2FzIG1vcmUgc3ltbWV0cnkg
aW4gdGhlc2Ugc3BvdHMuCisgICAgLy8gRG9jdW1lbnQ6OnNldElzSW5CYWNrRm9yd2FyZENhY2hl
KGJvb2wpLiBJdCB3b3VsZCBiZSBuaWNlIGlmIHRoZXJlIHdhcyBtb3JlIHN5bW1ldHJ5IGluIHRo
ZXNlIHNwb3RzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05ODY5OAogICAgIGlmICh2aWV3KSB7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBh
Z2UoKTsKQEAgLTI2MSw4ICsyNjEsOCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlk
YXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCkKICAgICBpZiAoIWN1cnJlbnRJdGVtKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIC8vIFdoZW4gd2UgYXJlIHByZS1jb21taXQsIHRoZSBjdXJyZW50
SXRlbSBpcyB3aGVyZSBhbnkgcGFnZSBjYWNoZSBkYXRhIHJlc2lkZXMuCi0gICAgc3RkOjp1bmlx
dWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnRh
a2UoKmN1cnJlbnRJdGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAvLyBXaGVuIHdlIGFyZSBw
cmUtY29tbWl0LCB0aGUgY3VycmVudEl0ZW0gaXMgd2hlcmUgYW55IGJhY2svZm9yd2FyZCBjYWNo
ZSBkYXRhIHJlc2lkZXMuCisgICAgc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBh
Z2UgPSBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS50YWtlKCpjdXJyZW50SXRlbSgpLCBt
X2ZyYW1lLnBhZ2UoKSk7CiAgICAgaWYgKCFjYWNoZWRQYWdlKQogICAgICAgICByZXR1cm47CiAK
QEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlkYXRlQ3Vy
cmVudEl0ZW1DYWNoZWRQYWdlKCkKICAgICAKICAgICBBU1NFUlQoY2FjaGVkUGFnZS0+ZG9jdW1l
bnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkpOwogICAgIGlmIChjYWNoZWRQYWdlLT5kb2N1bWVu
dCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSkgewotICAgICAgICBjYWNoZWRQYWdlLT5kb2N1bWVu
dCgpLT5zZXRQYWdlQ2FjaGVTdGF0ZShEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgICAg
ICBjYWNoZWRQYWdlLT5kb2N1bWVudCgpLT5zZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUoRG9jdW1l
bnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgICAgIGNhY2hlZFBhZ2UtPmNsZWFyKCk7
CiAgICAgfQogfQpAQCAtMzU1LDcgKzM1NSw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnVw
ZGF0ZUZvclJlbG9hZCgpCiAgICAgTE9HKEhpc3RvcnksICJIaXN0b3J5Q29udHJvbGxlciAlcCB1
cGRhdGVGb3JSZWxvYWQ6IFVwZGF0aW5nIEhpc3RvcnkgZm9yIHJlbG9hZCBpbiBmcmFtZSAlcCAo
bWFpbiBmcmFtZSAlZCkgJXMiLCB0aGlzLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgp
LCBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkgPyBtX2ZyYW1lLmxvYWRlcigpLmRv
Y3VtZW50TG9hZGVyKCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CiAKICAg
ICBpZiAobV9jdXJyZW50SXRlbSkgewotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJl
bW92ZSgqbV9jdXJyZW50SXRlbSk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRv
bigpLnJlbW92ZSgqbV9jdXJyZW50SXRlbSk7CiAgICAgCiAgICAgICAgIGlmIChtX2ZyYW1lLmxv
YWRlcigpLmxvYWRUeXBlKCkgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkIHx8IG1fZnJhbWUubG9h
ZGVyKCkubG9hZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luKQogICAg
ICAgICAgICAgc2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlVG9JdGVtKG1fY3VycmVudEl0
ZW0uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKaW5kZXggZTMxMzFjY2RkYmMwNGJlZjJjZTZkMTY2NzE0
NjFmNGNlYzg1ZDhkZS4uODk5Y2JhNGY5NzVlMmNmMGJjZWQyNTk3Yjc0MmU2YWVlMjQ1YmZlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYKICAgICB9CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5QYWdl
Q2FjaGUoKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Y2FuQ2FjaGVJbkJhY2tGb3J3YXJk
Q2FjaGUoKQogewogICAgIHJldHVybiAhYXBwbGljYXRpb25DYWNoZSgpICYmICFjYW5kaWRhdGVB
cHBsaWNhdGlvbkNhY2hlR3JvdXAoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKaW5kZXggZTA5NGQwODRlZTk0YWJk
ODVkNjZkM2E0ZjRlNTg4MTUzNzE4YTE0MC4uNWIyYWExYzYxYzhjZDZhNzllNzFhZjM3NmQ3ZGRl
ZDQyOTM3Zjg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBtYXliZUxvYWRTeW5jaHJvbm91c2x5KFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlRXJy
b3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mKTsKICAgICB2b2lk
IG1heWJlTG9hZEZhbGxiYWNrU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBS
ZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNwb25zZSYsIFJlZlB0cjxTaGFyZWRCdWZmZXI+Jik7
CiAKLSAgICBib29sIGNhbkNhY2hlSW5QYWdlQ2FjaGUoKTsKKyAgICBib29sIGNhbkNhY2hlSW5C
YWNrRm9yd2FyZENhY2hlKCk7CiAKICAgICBTdGF0dXMgc3RhdHVzKCkgY29uc3Q7CiAgICAgYm9v
bCB1cGRhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCmluZGV4IDRiMTZmNTk3NjFkOGM3NWE2ZjBiYTAyMWRiYzIwMzM0MDg3ZWVlMDkuLjY5
NmFkOGI0OWEwZGY2NDM0NWJkMWRiNzY3ODI1ZjZkMDhkYTQ3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMTk1LDIzICsxOTUsMjMg
QEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVk
UmVzb3VyY2VMb2FkZXIpCiAgICAgfQogICAgIEZyYW1lJiBmcmFtZSA9ICpjYWNoZWRSZXNvdXJj
ZUxvYWRlci5mcmFtZSgpOwogCi0gICAgLy8gUHJldmVudCBuZXcgbG9hZHMgaWYgd2UgYXJlIGlu
IHRoZSBQYWdlQ2FjaGUgb3IgYmVpbmcgYWRkZWQgdG8gdGhlIFBhZ2VDYWNoZS4KKyAgICAvLyBQ
cmV2ZW50IG5ldyBsb2FkcyBpZiB3ZSBhcmUgaW4gdGhlIEJhY2tGb3J3YXJkQ2FjaGUgb3IgYmVp
bmcgYWRkZWQgdG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUuCiAgICAgLy8gV2UgcXVlcnkgdGhlIHRv
cCBkb2N1bWVudCBiZWNhdXNlIG5ldyBmcmFtZXMgbWF5IGJlIGNyZWF0ZWQgaW4gcGFnZWhpZGUg
ZXZlbnQgaGFuZGxlcnMKLSAgICAvLyBhbmQgdGhlaXIgcGFnZUNhY2hlU3RhdGUgd2lsbCBub3Qg
cmVmbGVjdCB0aGUgZmFjdCB0aGF0IHRoZXkgYXJlIGFib3V0IHRvIGVudGVyIHBhZ2UKKyAgICAv
LyBhbmQgdGhlaXIgYmFja0ZvcndhcmRDYWNoZVN0YXRlIHdpbGwgbm90IHJlZmxlY3QgdGhlIGZh
Y3QgdGhhdCB0aGV5IGFyZSBhYm91dCB0byBlbnRlciBwYWdlCiAgICAgLy8gY2FjaGUuCiAgICAg
aWYgKGF1dG8qIHRvcERvY3VtZW50ID0gZnJhbWUubWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkgewot
ICAgICAgICBzd2l0Y2ggKHRvcERvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAg
IGNhc2UgRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOgorICAgICAgICBzd2l0Y2ggKHRvcERvY3Vt
ZW50LT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSkgeworICAgICAgICBjYXNlIERvY3VtZW50OjpO
b3RJbkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBE
b2N1bWVudDo6QWJvdXRUb0VudGVyUGFnZUNhY2hlOgorICAgICAgICBjYXNlIERvY3VtZW50OjpB
Ym91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOgogICAgICAgICAgICAgLy8gQmVhY29ucyBhcmUg
YWxsb3dlZCB0byBnbyB0aHJvdWdoIGluICdwYWdlaGlkZScgZXZlbnQgaGFuZGxlcnMuCiAgICAg
ICAgICAgICBpZiAoc2hvdWxkVXNlUGluZ0xvYWQodHlwZSgpKSkKICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFib3V0IHRv
IGVudGVyIHBhZ2UgY2FjaGUgKGZyYW1lID0gJXApIiwgJmZyYW1lKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFib3V0IHRvIGVudGVyIGJhY2svZm9yd2FyZCBj
YWNoZSAoZnJhbWUgPSAlcCkiLCAmZnJhbWUpOwogICAgICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0
aW5nKCk7CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgRG9jdW1lbnQ6OkluUGFn
ZUNhY2hlOgotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibG9hZDogQWxyZWFk
eSBpbiBwYWdlIGNhY2hlIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CisgICAgICAgIGNhc2UgRG9j
dW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZToKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImxvYWQ6IEFscmVhZHkgaW4gYmFjay9mb3J3YXJkIGNhY2hlIChmcmFtZSA9ICVwKSIs
ICZmcmFtZSk7CiAgICAgICAgICAgICBmYWlsQmVmb3JlU3RhcnRpbmcoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDRjNTcx
ZWJmMzg1OTNkM2ZiODhkZTEwYmE3MDk3YTc3N2IwYWJkNDAuLjBiNmI2MGMxZDVjYTAwNjFjNWJj
OGUzZWYwOWU4Y2FlZjZlNTk4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTU1
OCwyNSArNTU4LDI1IEBAIHZvaWQgRE9NV2luZG93OjpyZXNldFVubGVzc1N1c3BlbmRlZEZvckRv
Y3VtZW50U3VzcGVuc2lvbigpCiAgICAgd2lsbERlc3Ryb3lEb2N1bWVudEluRnJhbWUoKTsKIH0K
IAotdm9pZCBET01XaW5kb3c6OnN1c3BlbmRGb3JQYWdlQ2FjaGUoKQordm9pZCBET01XaW5kb3c6
OnN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBp
c1N1c3BlbmRpbmdPYnNlcnZlcnMobV9pc1N1c3BlbmRpbmdPYnNlcnZlcnMsIHRydWUpOwogICAg
IFJFTEVBU0VfQVNTRVJUKGZyYW1lKCkpOwogCiAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNv
cHlUb1ZlY3RvcihtX29ic2VydmVycykpIHsKICAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbnRh
aW5zKG9ic2VydmVyKSkKLSAgICAgICAgICAgIG9ic2VydmVyLT5zdXNwZW5kRm9yUGFnZUNhY2hl
KCk7CisgICAgICAgICAgICBvYnNlcnZlci0+c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsK
ICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlQoZnJhbWUoKSk7CiAKICAgICBtX3N1c3BlbmRlZEZv
ckRvY3VtZW50U3VzcGVuc2lvbiA9IHRydWU7CiB9CiAKLXZvaWQgRE9NV2luZG93OjpyZXN1bWVG
cm9tUGFnZUNhY2hlKCkKK3ZvaWQgRE9NV2luZG93OjpyZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNo
ZSgpCiB7CiAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVy
cykpIHsKICAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkKLSAgICAg
ICAgICAgIG9ic2VydmVyLT5yZXN1bWVGcm9tUGFnZUNhY2hlKCk7CisgICAgICAgICAgICBvYnNl
cnZlci0+cmVzdW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB9CiAKICAgICBtX3N1c3Bl
bmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbiA9IGZhbHNlOwpAQCAtMjA1Nyw3ICsyMDU3LDcgQEAg
dm9pZCBET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAgICAgaWYgKCEtLW1fc2Ny
b2xsRXZlbnRMaXN0ZW5lckNvdW50ICYmIGRvY3VtZW50ID09ICZkb2N1bWVudC0+dG9wRG9jdW1l
bnQoKSkgewogICAgICAgICBGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpOwotICAgICAgICBp
ZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSAmJiBkb2N1bWVudC0+cGFnZUNhY2hlU3RhdGUoKSA9
PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+
cGFnZSgpICYmIGRvY3VtZW50LT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6
Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21l
KCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKCpmcmFtZSwgZmFsc2UpOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDBkYTRmYjAzYjAyNjFjMDhjODc2
M2I4YzhlMzVkNWE3ZDA3NjM4NGUuLmQzNjgyMGFlM2VhYmYzNWM3YmE2OGM3MWVkNDlkZGU1YjJh
YjUyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtMTIzLDggKzEyMyw4IEBAIHB1Ymxp
YzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CiAKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHN1c3BlbmRGb3JQYWdlQ2FjaGUoKSB7IH0KLSAgICAgICAgdmlydHVh
bCB2b2lkIHJlc3VtZUZyb21QYWdlQ2FjaGUoKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHN1
c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXN1
bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERl
c3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hlZEZyYW1lKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUoKSB7IH0KICAgICAgICAgdmlydHVhbCB2
b2lkIHdpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKSB7IH0KQEAgLTEzNCw4ICsxMzQs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAog
ICAgIHZvaWQgcmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JEb2N1bWVudFN1c3BlbnNpb24oKTsKLSAg
ICB2b2lkIHN1c3BlbmRGb3JQYWdlQ2FjaGUoKTsKLSAgICB2b2lkIHJlc3VtZUZyb21QYWdlQ2Fj
aGUoKTsKKyAgICB2b2lkIHN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgdm9pZCBy
ZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUq
IGZyYW1lKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0
ZW5zaW9uLmNwcAppbmRleCAyYjdiOGMzMmFlY2UwZDNhNDc4ZjdmMDNhZDEwMmIxZmJmOTk2ODc2
Li41YzgyZTYwN2I0NWJiMTUzYjhiMDJmZTgyMGU5YTk5OGViZjUzNjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIEZyYW1l
KiBET01XaW5kb3dFeHRlbnNpb246OmZyYW1lKCkgY29uc3QKICAgICByZXR1cm4gbV93aW5kb3cg
PyBtX3dpbmRvdy0+ZnJhbWUoKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQgRE9NV2luZG93RXh0ZW5z
aW9uOjpzdXNwZW5kRm9yUGFnZUNhY2hlKCkKK3ZvaWQgRE9NV2luZG93RXh0ZW5zaW9uOjpzdXNw
ZW5kRm9yQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgLy8gQ2FsbGluZyBvdXQgdG8gdGhlIGNs
aWVudCBtaWdodCByZXN1bHQgaW4gdGhpcyBET01XaW5kb3dFeHRlbnNpb24gYmVpbmcgZGVzdHJv
eWVkCiAgICAgLy8gd2hpbGUgdGhlcmUgaXMgc3RpbGwgd29yayB0byBkby4KQEAgLTY5LDcgKzY5
LDcgQEAgdm9pZCBET01XaW5kb3dFeHRlbnNpb246OnN1c3BlbmRGb3JQYWdlQ2FjaGUoKQogICAg
IG1fZGlzY29ubmVjdGVkRnJhbWUgPSBXVEZNb3ZlKGZyYW1lKTsKIH0KIAotdm9pZCBET01XaW5k
b3dFeHRlbnNpb246OnJlc3VtZUZyb21QYWdlQ2FjaGUoKQordm9pZCBET01XaW5kb3dFeHRlbnNp
b246OnJlc3VtZUZyb21CYWNrRm9yd2FyZENhY2hlKCkKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7
CiAgICAgQVNTRVJUKG1fZGlzY29ubmVjdGVkRnJhbWUgPT0gZnJhbWUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaAppbmRleCA0ODBkOThlZTE3MDM4NTM1NGU4Mjhh
N2E4ZDM2MzY0MjU3YjAzNjJmLi45NGVkNmNhZWRjM2E0ZjdjNTQ3Y2ZhNjgzOWM2YmI1MzcxMWQ0
YTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmgKQEAgLTQ0LDgg
KzQ0LDggQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkRPTVdpbmRvd0V4dGVuc2lv
bigpOwogCi0gICAgdm9pZCBzdXNwZW5kRm9yUGFnZUNhY2hlKCkgZmluYWw7Ci0gICAgdm9pZCBy
ZXN1bWVGcm9tUGFnZUNhY2hlKCkgZmluYWw7CisgICAgdm9pZCBzdXNwZW5kRm9yQmFja0Zvcndh
cmRDYWNoZSgpIGZpbmFsOworICAgIHZvaWQgcmVzdW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBm
aW5hbDsKICAgICB2b2lkIHdpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5DYWNoZWRGcmFtZSgpIGZp
bmFsOwogICAgIHZvaWQgd2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkgZmluYWw7CiAg
ICAgdm9pZCB3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKaW5kZXggYjllNjE4NjQ4
OWQ0OGZhZGZjYjkzNDViMjJkZjEwNzJhMWI1NjVhOS4uOThiZDBjNzhjZDAwNmNkOWU4NjYwOTZh
YjJkOTg3MGQ0NGI1NTNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9z
dGljTG9nZ2luZ0tleXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzLmNwcApAQCAtMjA4LDE0ICsyMDgsMTQgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6bm90SW5NZW1vcnlDYWNoZUtleSgpCiAgICAgcmV0dXJuICJub3RJbk1lbW9yeUNh
Y2hlIl9zOwogfQogCi1TdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXko
KQorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpCiB7
Ci0gICAgcmV0dXJuICJwYWdlQ2FjaGUiX3M7CisgICAgcmV0dXJuICJiYWNrRm9yd2FyZENhY2hl
Il9zOwogfQogCi1TdHJpbmcgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVGYWlsdXJl
S2V5KCkKK1N0cmluZyBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmJhY2tGb3J3YXJkQ2FjaGVGYWls
dXJlS2V5KCkKIHsKLSAgICByZXR1cm4gInBhZ2VDYWNoZUZhaWx1cmUiX3M7CisgICAgcmV0dXJu
ICJiYWNrRm9yd2FyZENhY2hlRmFpbHVyZSJfczsKIH0KIAogU3RyaW5nIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6bm9Eb2N1bWVudExvYWRlcktleSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFn
bm9zdGljTG9nZ2luZ0tleXMuaAppbmRleCBkNDU5YzRkMjRmMzE0MTVlMjZkOThlNGRlNTgwMDQ1
YmY2NWVjYWZiLi45NzJhMGRmYjM0NTgxYWEwYTlkZmI2YWIyOTI1YTQ1Y2IwOWI1Y2I2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTExNCw4ICsx
MTQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBub3RJbk1lbW9yeUNhY2hlS2V5KCk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBvY2N1cnJlZEtleSgpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgb3RoZXJLZXkoKTsKLSAgICBzdGF0aWMgU3RyaW5n
IHBhZ2VDYWNoZUtleSgpOwotICAgIHN0YXRpYyBTdHJpbmcgcGFnZUNhY2hlRmFpbHVyZUtleSgp
OworICAgIHN0YXRpYyBTdHJpbmcgYmFja0ZvcndhcmRDYWNoZUtleSgpOworICAgIHN0YXRpYyBT
dHJpbmcgYmFja0ZvcndhcmRDYWNoZUZhaWx1cmVLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHBh
Z2VDb250YWluc0F0TGVhc3RPbmVNZWRpYUVuZ2luZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcg
cGFnZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdpbktleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcGFn
ZUNvbnRhaW5zTWVkaWFFbmdpbmVLZXkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAK
aW5kZXggNzE0ZTlkYzA4YjIxNTYyNjE3OTgxMWYzMmE5M2U1M2Y3NjZjM2U4Zi4uZjFmNWIzMmIw
NjY3NzAzZjIxMzQzYWZjOGY1Mjc1NzQ2MWFlZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNv
dXJjZS5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpzY2hlZHVsZUlu
aXRpYWxDb25uZWN0KCkKIAogdm9pZCBFdmVudFNvdXJjZTo6c2NoZWR1bGVSZWNvbm5lY3QoKQog
ewotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNw
ZW5kZWRGb3JQYWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKICAgICBtX3N0YXRl
ID0gQ09OTkVDVElORzsKICAgICBtX2Nvbm5lY3RUaW1lci5zdGFydE9uZVNob3QoMV9tcyAqIG1f
cmVjb25uZWN0RGVsYXkpOwogICAgIGRpc3BhdGNoRXJyb3JFdmVudCgpOwpAQCAtMTk5LDcgKzE5
OSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25n
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0g
Q09OTkVDVElORyk7CiAgICAgQVNTRVJUKG1fcmVxdWVzdEluRmxpZ2h0KTsKLSAgICBSRUxFQVNF
X0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2lzU3VzcGVuZGVkRm9yUGFnZUNh
Y2hlKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2lz
U3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBpZiAoIXJlc3BvbnNlSXNWYWxp
ZChyZXNwb25zZSkpIHsKICAgICAgICAgZG9FeHBsaWNpdExvYWRDYW5jZWxsYXRpb24oKTsKQEAg
LTIyMSw3ICsyMjEsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpkaWRSZWNlaXZlRGF0YShjb25zdCBj
aGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IE9QRU4pOwog
ICAgIEFTU0VSVChtX3JlcXVlc3RJbkZsaWdodCk7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSk7CisgICAgUkVM
RUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvckJh
Y2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgYXBwZW5kKG1fcmVjZWl2ZUJ1ZmZlciwgbV9kZWNvZGVy
LT5kZWNvZGUoZGF0YSwgbGVuZ3RoKSk7CiAgICAgcGFyc2VFdmVudFN0cmVhbSgpOwpAQCAtMjMx
LDcgKzIzMSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQg
bG9uZykKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBPUEVOKTsKICAgICBBU1NFUlQobV9yZXF1
ZXN0SW5GbGlnaHQpOwotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJ
T04oIW1faXNTdXNwZW5kZWRGb3JQYWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsK
IAogICAgIGFwcGVuZChtX3JlY2VpdmVCdWZmZXIsIG1fZGVjb2Rlci0+Zmx1c2goKSk7CiAgICAg
cGFyc2VFdmVudFN0cmVhbSgpOwpAQCAtMjU5LDcgKzI1OSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6
OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgQVNTRVJUKG1fcmVxdWVz
dEluRmxpZ2h0KTsKIAogICAgIC8vIFRoaXMgaXMgdGhlIGNhc2Ugd2hlcmUgdGhlIGxvYWQgZ2V0
cyBjYW5jZWxsZWQgb24gbmF2aWdhdGluZyBhd2F5LiBXZSBvbmx5IGZpcmUgYW4gZXJyb3IgZXZl
bnQgYW5kIGF0dGVtcHQgdG8gcmVjb25uZWN0Ci0gICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcg
cmVzdW1lZCBmcm9tIHBhZ2UgY2FjaGUuCisgICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcgcmVz
dW1lZCBmcm9tIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRp
b24oKSAmJiAhbV9pc0RvaW5nRXhwbGljaXRDYW5jZWxsYXRpb24pIHsKICAgICAgICAgbV9zaG91
bGRSZWNvbm5lY3RPblJlc3VtZSA9IHRydWU7CiAgICAgICAgIG1fcmVxdWVzdEluRmxpZ2h0ID0g
ZmFsc2U7CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBFdmVudFNvdXJjZTo6ZGlkRmFpbChjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHZvaWQgRXZlbnRTb3VyY2U6OmFib3J0Q29ubmVjdGlv
bkF0dGVtcHQoKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IENPTk5FQ1RJTkcpOwotICAgIFJF
TEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JQ
YWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04o
IW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGlmIChtX3JlcXVlc3RJ
bkZsaWdodCkKICAgICAgICAgZG9FeHBsaWNpdExvYWRDYW5jZWxsYXRpb24oKTsKQEAgLTQxMCwx
OSArNDEwLDE5IEBAIGJvb2wgRXZlbnRTb3VyY2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3Bl
bnNpb24oKSBjb25zdAogCiB2b2lkIEV2ZW50U291cmNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3Bl
bnNpb24gcmVhc29uKQogewotICAgIGlmIChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6
UGFnZUNhY2hlKQorICAgIGlmIChyZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0Zv
cndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pc1N1c3BlbmRlZEZvclBhZ2VD
YWNoZSA9IHRydWU7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFtX3JlcXVlc3RJ
bkZsaWdodCwgIkxvYWRzIGdldCBjYW5jZWxsZWQgYmVmb3JlIGVudGVyaW5nIFBhZ2VDYWNoZS4i
KTsKKyAgICBtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSA9IHRydWU7CisgICAgUkVM
RUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFtX3JlcXVlc3RJbkZsaWdodCwgIkxvYWRzIGdldCBj
YW5jZWxsZWQgYmVmb3JlIGVudGVyaW5nIHRoZSBCYWNrRm9yd2FyZENhY2hlLiIpOwogfQogCiB2
b2lkIEV2ZW50U291cmNlOjpyZXN1bWUoKQogewotICAgIGlmICghbV9pc1N1c3BlbmRlZEZvclBh
Z2VDYWNoZSkKKyAgICBpZiAoIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX2lzU3VzcGVuZGVkRm9yUGFnZUNhY2hlID0gZmFsc2U7Cisg
ICAgbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKICAgICBpZiAoc3Rk
OjpleGNoYW5nZShtX3Nob3VsZFJlY29ubmVjdE9uUmVzdW1lLCBmYWxzZSkpIHsKICAgICAgICAg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhbdGhpcywgcGVuZGluZ0FjdGl2aXR5
ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7
CiAgICAgICAgICAgICBpZiAoIWlzQ29udGV4dFN0b3BwZWQoKSkKQEAgLTQzMyw3ICs0MzMsNyBA
QCB2b2lkIEV2ZW50U291cmNlOjpyZXN1bWUoKQogCiB2b2lkIEV2ZW50U291cmNlOjpkaXNwYXRj
aE1lc3NhZ2VFdmVudCgpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSk7CisgICAgUkVMRUFTRV9BU1NFUlRf
V0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2Fj
aGUpOwogCiAgICAgaWYgKCFtX2N1cnJlbnRseVBhcnNlZEV2ZW50SWQuaXNOdWxsKCkpCiAgICAg
ICAgIG1fbGFzdEV2ZW50SWQgPSBXVEZNb3ZlKG1fY3VycmVudGx5UGFyc2VkRXZlbnRJZCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50U291cmNlLmgKaW5kZXggZDc4MTAxM2U1OWNiNmY4NjVkZGZiNWQ0ZmIw
YzM4NTFkMWVkNzA4ZS4uMzU1OTE0NGY3ZWQyMjlhYWM1MGYwN2E0YjU0YjU3NDhjZWViMzcwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaApAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6
CiAgICAgVmVjdG9yPFVDaGFyPiBtX3JlY2VpdmVCdWZmZXI7CiAgICAgYm9vbCBtX2Rpc2NhcmRU
cmFpbGluZ05ld2xpbmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9yZXF1ZXN0SW5GbGlnaHQgeyBm
YWxzZSB9OwotICAgIGJvb2wgbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNoZSB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzRG9pbmdFeHBsaWNpdENhbmNlbGxhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3Nob3VsZFJlY29ubmVjdE9uUmVzdW1lIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApp
bmRleCA2NDY2YTYwMjI2MmVmNjM2N2ZmMWJlM2M2YTk1MzEyMzE1ZmZmNmJiLi42ZjA3N2M0MGJm
OTMyNTUyMDIzYjdjZDI1ZGE1MTk1NzYyM2ExMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAKICNpbmNsdWRlICJBcHBseVN0eWxl
Q29tbWFuZC5oIgorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNr
Rm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDU1NBbmltYXRpb25Db250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCkBAIC03Myw3ICs3NCw2
IEBACiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlByb2Nl
c3NXYXJtaW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVDZWxsLmgiCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBGcmFtZTo6c2V0
VmlldyhSZWZQdHI8RnJhbWVWaWV3PiYmIHZpZXcpCiAgICAgLy8gUHJlcGFyZSBmb3IgZGVzdHJ1
Y3Rpb24gbm93LCBzbyBhbnkgdW5sb2FkIGV2ZW50IGhhbmRsZXJzIGdldCBydW4gYW5kIHRoZSBE
T01XaW5kb3cgaXMKICAgICAvLyBub3RpZmllZC4gSWYgd2Ugd2FpdCB1bnRpbCB0aGUgdmlldyBp
cyBkZXN0cm95ZWQsIHRoZW4gdGhpbmdzIHdvbid0IGJlIGhvb2tlZCB1cCBlbm91Z2ggZm9yCiAg
ICAgLy8gdGhlc2UgY2FsbHMgdG8gd29yay4KLSAgICBpZiAoIXZpZXcgJiYgbV9kb2MgJiYgbV9k
b2MtPnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKQorICAgIGlmICgh
dmlldyAmJiBtX2RvYyAmJiBtX2RvYy0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1l
bnQ6OkluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgbV9kb2MtPnByZXBhcmVGb3JEZXN0cnVj
dGlvbigpOwogICAgIAogICAgIGlmIChtX3ZpZXcpCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBG
cmFtZTo6c2V0RG9jdW1lbnQoUmVmUHRyPERvY3VtZW50PiYmIG5ld0RvY3VtZW50KQogICAgIH0K
ICNlbmRpZgogCi0gICAgaWYgKG1fZG9jICYmIG1fZG9jLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IERv
Y3VtZW50OjpJblBhZ2VDYWNoZSkKKyAgICBpZiAobV9kb2MgJiYgbV9kb2MtPmJhY2tGb3J3YXJk
Q2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIG1f
ZG9jLT5wcmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAgIG1fZG9jID0gbmV3RG9jdW1lbnQu
Y29weVJlZigpOwpAQCAtNzA2LDcgKzcwNiw3IEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdl
KCkKICAgICAvLyAtIFdoZW4gY2FsbGluZyBGcmFtZTo6c2V0VmlldygpIHdpdGggYSBudWxsIEZy
YW1lVmlldyouIFRoaXMgaXMgYWx3YXlzIGRvbmUgYmVmb3JlIGNhbGxpbmcKICAgICAvLyAgIEZy
YW1lOjp3aWxsRGV0YWNoUGFnZSAodGhpcyBmdW5jdGlvbi4pIEhlbmNlIHRoZSBhc3NlcnRpb24g
YmVsb3cuCiAgICAgLy8KLSAgICAvLyAtIFdoZW4gYWRkaW5nIGEgZG9jdW1lbnQgdG8gdGhlIHBh
Z2UgY2FjaGUsIHRoZSB0cmVlIGlzIHRvcm4gZG93biBiZWZvcmUgaW5zdGFudGlhdGluZworICAg
IC8vIC0gV2hlbiBhZGRpbmcgYSBkb2N1bWVudCB0byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0
aGUgdHJlZSBpcyB0b3JuIGRvd24gYmVmb3JlIGluc3RhbnRpYXRpbmcKICAgICAvLyAgIHRoZSBD
YWNoZWRQYWdlK0NhY2hlZEZyYW1lIG9iamVjdCB0cmVlLgogICAgIEFTU0VSVCghZG9jdW1lbnQo
KSB8fCAhZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAppbmRleCBiMGEzZTU2NDgxNjUxNGU0ZDAxMjQ3NjZmNmQ1MzY4Y2ZiZTM5YTc5Li43OGMz
ZGI0NTNjZDk1NTlkZTg5NzgxMTc0MTI0Y2IyZTQ4MWU5MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKICNp
bmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgog
I2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNTU0FuaW1hdGlv
bkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgpAQCAtNjksNyArNzAsNiBA
QAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdl
T3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgpAQCAtNTUzLDkgKzU1Myw5IEBAIFJlZjxTY3Jv
bGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKQogICAgIHJldHVybiBTY3JvbGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIob3JpZW50
YXRpb24pOwogfQogCi12b2lkIEZyYW1lVmlldzo6ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKQor
dm9pZCBGcmFtZVZpZXc6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7Ci0gICAg
Ly8gV2hlbiByZXN0b3JpbmcgZnJvbSBwYWdlIGNhY2hlLCB0aGUgbWFpbiBmcmFtZSBzdGF5cyBp
biBwbGFjZSB3aGlsZSBzdWJmcmFtZXMgZ2V0IHN3YXBwZWQgaW4uCisgICAgLy8gV2hlbiByZXN0
b3JpbmcgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUsIHRoZSBtYWluIGZyYW1lIHN0YXlzIGluIHBs
YWNlIHdoaWxlIHN1YmZyYW1lcyBnZXQgc3dhcHBlZCBpbi4KICAgICAvLyBXZSB1cGRhdGUgdGhl
IHNjcm9sbGFibGUgYXJlYSBzZXQgdG8gZW5zdXJlIHRoYXQgc2Nyb2xsaW5nIGRhdGEgc3RydWN0
dXJlcyBnZXQgaW52YWxpZGF0ZWQuCiAgICAgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoKTsKIH0K
QEAgLTYwMSw3ICs2MDEsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Q29udGVudHNTaXplKGNvbnN0
IEludFNpemUmIHNpemUpCiAKICAgICBpZiAoZnJhbWUoKS5pc01haW5GcmFtZSgpKSB7CiAgICAg
ICAgIHBhZ2UtPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRpZENoYW5nZURvY3VtZW50U2l6ZSgp
OwotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckNvbnRlbnRzU2l6
ZUNoYW5nZWQoKnBhZ2UpOworICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5t
YXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFuZ2VkKCpwYWdlKTsKICAgICB9CiAgICAgbGF5b3V0
Q29udGV4dCgpLmVuYWJsZVNldE5lZWRzTGF5b3V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAppbmRleCA0MDc4ZWVmN2Y4MzhhY2NhMzgzY2MxZDVlNzdlZDhiNTA4NzQzOTVkLi5lZjUxOTQz
MmU0MmRiNTNhOGM1MTI1MzlhYzNkNzU1ZjM2YTVkMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmgKQEAgLTU1NCw3ICs1NTQsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBQYWdlIGFuZCBGcmFtZVZp
ZXcgYm90aCBzdG9yZSBhIFBhZ2luYXRpb24gdmFsdWUuIFBhZ2U6OnBhZ2luYXRpb24oKSBpcyBz
ZXQgb25seSBieSBBUEksCiAgICAgLy8gYW5kIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIGlzIHNl
dCBvbmx5IGJ5IENTUy4gUGFnZTo6cGFnaW5hdGlvbigpIHdpbGwgYWZmZWN0IGFsbAotICAgIC8v
IEZyYW1lVmlld3MgaW4gdGhlIHBhZ2UgY2FjaGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24o
KSBvbmx5IGFmZmVjdHMgdGhlIGN1cnJlbnQKKyAgICAvLyBGcmFtZVZpZXdzIGluIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBvbmx5IGFmZmVjdHMg
dGhlIGN1cnJlbnQKICAgICAvLyBGcmFtZVZpZXcuIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIHdp
bGwgcmV0dXJuIG1fcGFnaW5hdGlvbiBpZiBpdCBoYXMgYmVlbiBzZXQuIE90aGVyd2lzZSwKICAg
ICAvLyBpdCB3aWxsIHJldHVybiBQYWdlOjpwYWdpbmF0aW9uKCkgc2luY2UgY3VycmVudGx5IHRo
ZXJlIGFyZSBubyBjYWxsZXJzIHRoYXQgbmVlZCB0bwogICAgIC8vIGRpc3Rpbmd1aXNoIGJldHdl
ZW4gdGhlIHR3by4KQEAgLTY0Myw3ICs2NDMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3Vs
ZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAotICAg
IHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICB2b2lkIGRpZFJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgdm9pZCB3aWxsRGVzdHJveVJlbmRlclRyZWUoKTsK
ICAgICB2b2lkIGRpZERlc3Ryb3lSZW5kZXJUcmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCAzMjJmNjc5N2I5NDZkMWRjOWNkNThm
ODI4ODYwZGJhZGNiZDcxZjQxLi4xYzllMzE1NWFlNjgxYWQ1MGM0NzJmZjliYzEzZWZjMzRmNjEz
MWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAKQEAgLTE0NSw4ICsxNDUsOCBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91
dCgpCiAgICAgQVNTRVJUKCF2aWV3KCkuaXNQYWludGluZygpKTsKICAgICBBU1NFUlQoZnJhbWUo
KS52aWV3KCkgPT0gJnZpZXcoKSk7CiAgICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7Ci0g
ICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVu
dDo6Tm90SW5QYWdlQ2FjaGUKLSAgICAgICAgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5wYWdlQ2Fj
aGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOworICAgIEFTU0VS
VChmcmFtZSgpLmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5i
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6QWJvdXRUb0VudGVyQmFja0Zvcndh
cmRDYWNoZSk7CiAgICAgaWYgKCFjYW5QZXJmb3JtTGF5b3V0KCkpIHsKICAgICAgICAgTE9HKExh
eW91dCwgIiAgaXMgbm90IGFsbG93ZWQsIGJhaWxpbmciKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
MzM0LDcgKzMzNCw3IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6ZGlzYWJsZVNldE5l
ZWRzTGF5b3V0KCkKIAogdm9pZCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpzY2hlZHVsZUxheW91
dCgpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhlIHBhZ2UgaXMgbm90IGlu
IHRoZSBwYWdlIGNhY2hlLCBidXQgdGhhdCBpcyBjYXVzaW5nCisgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhc3NlcnQgdGhlIHBhZ2UgaXMgbm90IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGJ1
dCB0aGF0IGlzIGNhdXNpbmcKICAgICAvLyB0b28gbWFueSBmYWxzZSBhc3NlcnRpb25zLiBTZWUg
PHJkYXI6Ly9wcm9ibGVtLzcyMTgxMTg+LgogICAgIEFTU0VSVChmcmFtZSgpLnZpZXcoKSA9PSAm
dmlldygpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5jcHAKaW5kZXggMGQ3M2U0
YjM0MTY0ZjllNTdlN2ZjMzA1YTdiZmE3MjZkMDdkYzY4OC4uZTZiNGUwNGViZWZjNWI0ZmE1YTRj
NzNmOTVhNzE3MTYyZTU3YWE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1v
cnlSZWxlYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTWVtb3J5
UmVsZWFzZS5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkNT
U0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCkBAIC00Miw3ICs0Myw2IEBACiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1
ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2Ny
b2xsaW5nVGhyZWFkLmgiCiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgpAQCAtNzcsMTIgKzc3LDEy
IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeShNYWludGFpbk1lbW9yeUNh
Y2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCiAgICAgSW5saW5lU3R5bGVTaGVldE93bmVyOjpjbGVh
ckNhY2hlKCk7CiB9CiAKLXN0YXRpYyB2b2lkIHJlbGVhc2VDcml0aWNhbE1lbW9yeShTeW5jaHJv
bm91cyBzeW5jaHJvbm91cywgTWFpbnRhaW5QYWdlQ2FjaGUgbWFpbnRhaW5QYWdlQ2FjaGUsIE1h
aW50YWluTWVtb3J5Q2FjaGUgbWFpbnRhaW5NZW1vcnlDYWNoZSkKK3N0YXRpYyB2b2lkIHJlbGVh
c2VDcml0aWNhbE1lbW9yeShTeW5jaHJvbm91cyBzeW5jaHJvbm91cywgTWFpbnRhaW5CYWNrRm9y
d2FyZENhY2hlIG1haW50YWluQmFja0ZvcndhcmRDYWNoZSwgTWFpbnRhaW5NZW1vcnlDYWNoZSBt
YWludGFpbk1lbW9yeUNhY2hlKQogewogICAgIC8vIFJpZ2h0IG5vdywgdGhlIG9ubHkgcmVhc29u
IHdlIGNhbGwgcmVsZWFzZSBjcml0aWNhbCBtZW1vcnkgd2hpbGUgbm90IHVuZGVyIG1lbW9yeSBw
cmVzc3VyZSBpcyBpZiB0aGUgcHJvY2VzcyBpcyBhYm91dCB0byBiZSBzdXNwZW5kZWQuCi0gICAg
aWYgKG1haW50YWluUGFnZUNhY2hlID09IE1haW50YWluUGFnZUNhY2hlOjpObykgeworICAgIGlm
IChtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgPT0gTWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlOjpO
bykgewogICAgICAgICBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFzb24gPSBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpID8gUHJ1bmluZ1Jl
YXNvbjo6TWVtb3J5UHJlc3N1cmUgOiBQcnVuaW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOwot
ICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIHBydW5pbmdS
ZWFzb24pOworICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6
ZU5vdygwLCBwcnVuaW5nUmVhc29uKTsKICAgICB9CiAKICAgICBpZiAobWFpbnRhaW5NZW1vcnlD
YWNoZSA9PSBNYWludGFpbk1lbW9yeUNhY2hlOjpObykgewpAQCAtMTE4LDE0ICsxMTgsMTQgQEAg
c3RhdGljIHZvaWQgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KFN5bmNocm9ub3VzIHN5bmNocm9ub3Vz
LCBNYWludGFpblBhZ2VDYWNoZSBtYWkKICAgICB9CiB9CiAKLXZvaWQgcmVsZWFzZU1lbW9yeShD
cml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25vdXMgc3luY2hyb25vdXMsIE1haW50YWluUGFnZUNh
Y2hlIG1haW50YWluUGFnZUNhY2hlLCBNYWludGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5
Q2FjaGUpCit2b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWwsIFN5bmNocm9ub3Vz
IHN5bmNocm9ub3VzLCBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgbWFpbnRhaW5CYWNrRm9yd2Fy
ZENhY2hlLCBNYWludGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCiB7CiAgICAg
VHJhY2VTY29wZSBzY29wZShNZW1vcnlQcmVzc3VyZUhhbmRsZXJTdGFydCwgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyRW5kLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oY3JpdGljYWwpLCBzdGF0aWNfY2Fz
dDx1aW50NjRfdD4oc3luY2hyb25vdXMpKTsKIAogICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNh
bDo6WWVzKSB7CiAgICAgICAgIC8vIFJldHVybiB1bnVzZWQgcGFnZXMgYmFjayB0byB0aGUgT1Mg
bm93IGFzIHRoaXMgd2lsbCBsaWtlbHkgZ2l2ZSB1cyBhIGxpdHRsZSBtZW1vcnkgdG8gd29yayB3
aXRoLgogICAgICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwotICAgICAg
ICByZWxlYXNlQ3JpdGljYWxNZW1vcnkoc3luY2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hlLCBt
YWludGFpbk1lbW9yeUNhY2hlKTsKKyAgICAgICAgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KHN5bmNo
cm9ub3VzLCBtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUsIG1haW50YWluTWVtb3J5Q2FjaGUpOwog
ICAgIH0KIAogICAgIHJlbGVhc2VOb25jcml0aWNhbE1lbW9yeShtYWludGFpbk1lbW9yeUNhY2hl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKaW5kZXggM2UwNmIzMDQ5Mzc5ZDE2YzA4
OGIxZTg3N2YwNmQ0ZjMxYmY5NjVhMi4uNmU1ZWJkODg1YzRjNjA3MzI0MjJkZWE3MGI5MWNlYzI0
MjQxMGEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKQEAgLTI5LDEwICsyOSwx
MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgTWFpbnRhaW5QYWdlQ2Fj
aGUgOiBib29sIHsgTm8sIFllcyB9OworZW51bSBjbGFzcyBNYWludGFpbkJhY2tGb3J3YXJkQ2Fj
aGUgOiBib29sIHsgTm8sIFllcyB9OwogZW51bSBjbGFzcyBNYWludGFpbk1lbW9yeUNhY2hlIDog
Ym9vbCB7IE5vLCBZZXMgfTsKIAotV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNlTWVtb3J5KENy
aXRpY2FsLCBTeW5jaHJvbm91cywgTWFpbnRhaW5QYWdlQ2FjaGUgPSBNYWludGFpblBhZ2VDYWNo
ZTo6Tm8sIE1haW50YWluTWVtb3J5Q2FjaGUgPSBNYWludGFpbk1lbW9yeUNhY2hlOjpObyk7CitX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VNZW1vcnkoQ3JpdGljYWwsIFN5bmNocm9ub3VzLCBN
YWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgPSBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6Ok5vLCBN
YWludGFpbk1lbW9yeUNhY2hlID0gTWFpbnRhaW5NZW1vcnlDYWNoZTo6Tm8pOwogdm9pZCBwbGF0
Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwpOwogdm9pZCBqZXR0aXNvbkV4cGVuc2l2ZU9iamVj
dHNPblRvcExldmVsTmF2aWdhdGlvbigpOwogV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3Rlck1l
bW9yeVJlbGVhc2VOb3RpZnlDYWxsYmFja3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDYzY2I1
ZmY2NGQ4NWViM2U1YzUxZTc5NDA1MTk1MjU4MmYyZDA1MTQuLjNmMTQ2N2JlMWMwYWVkMjEyNWIz
Nzc3NWIwYmE1NTY0NTNhN2VlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjUsNiArMjUsNyBA
QAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiQXBwbGlj
YXRpb25TdGF0ZUNoYW5nZUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ2xpZW50LmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oIgpAQCAtNzMsNyArNzQsNiBAQAogI2luY2x1
ZGUgIkxvd1Bvd2VyTW9kZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3Rl
bmVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAj
aW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVu
dC5oIgogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dhYmxlLmgiCkBAIC0zNTksNyArMzU5LDcgQEAgUGFn
ZTo6flBhZ2UoKQogCiAgICAgYmFja0ZvcndhcmQoKS5jbG9zZSgpOwogICAgIGlmICghaXNVdGls
aXR5UGFnZSgpKQotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZUFsbEl0ZW1z
Rm9yUGFnZSgqdGhpcyk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJl
bW92ZUFsbEl0ZW1zRm9yUGFnZSgqdGhpcyk7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgcGFnZUNv
dW50ZXIuZGVjcmVtZW50KCk7CkBAIC0xMDcxLDcgKzEwNzEsNyBAQCB2b2lkIFBhZ2U6OnNldFZp
ZXdTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV92aWV3
U2NhbGVGYWN0b3IgPSBzY2FsZTsKLSAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdl
c0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCgqdGhpcyk7CisgICAgQmFja0ZvcndhcmRDYWNo
ZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlz
KTsKIH0KIAogdm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rv
cikKQEAgLTEwODcsNyArMTA4Nyw3IEBAIHZvaWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3Io
ZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7
CiAKICAgICBtYWluRnJhbWUoKS5kZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSAg
ICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hh
bmdlZCgqdGhpcyk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2Vz
Rm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlzKTsKIAogICAgIHBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmlu
ZGV4IDk5YTVlZWI1ZjRhZjQyOGU4MjQyZTBmMTY3MzkxODk2ZmMzMjFlMDUuLjgzMWYwYTA3YzBm
NjRiZDczODlhN2QxNTM0ZDQxZjQ5YTFlYzcwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC00MTMsNyAr
NDEzLDcgQEAgcHVibGljOgogCiAgICAgLy8gUGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3RvcmUg
YSBQYWdpbmF0aW9uIHZhbHVlLiBQYWdlOjpwYWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkgQVBJ
LAogICAgIC8vIGFuZCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBDU1Mu
IFBhZ2U6OnBhZ2luYXRpb24oKSB3aWxsIGFmZmVjdCBhbGwKLSAgICAvLyBGcmFtZVZpZXdzIGlu
IHRoZSBwYWdlIGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3Rz
IHRoZSBjdXJyZW50CisgICAgLy8gRnJhbWVWaWV3cyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3RzIHRoZSBjdXJyZW50CiAg
ICAgLy8gRnJhbWVWaWV3LgogICAgIGNvbnN0IFBhZ2luYXRpb24mIHBhZ2luYXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3BhZ2luYXRpb247IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBh
Z2luYXRpb24oY29uc3QgUGFnaW5hdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmlu
ZGV4IDY0YTNkMzc4MGI0MjgxZWViYTg5M2FjZTM1N2ZiZWM1OTM5MGM3OTAuLjQ3NGIwMjk1MDcx
NGM0MWMyNmVmYTk1MmY2ZTE2MjMyZDkwMDdmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5j
cHAKQEAgLTI2LDExICsyNiwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBh
Z2VHcm91cC5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkRP
TVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMTA2
LDcgKzEwNiw3IEBAIHZvaWQgUGFnZUdyb3VwOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkK
IHsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VzKQogICAgICAgICBwYWdlLT5jYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5tYXJrUGFn
ZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6
c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwogfQog
CiBDYXB0aW9uVXNlclByZWZlcmVuY2VzJiBQYWdlR3JvdXA6OmNhcHRpb25QcmVmZXJlbmNlcygp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAKaW5kZXggYjkwNGMy
M2VkYmVhYzc0MTJmMDliMGMzM2I1OWNhMWZjYjI3MDE3ZC4uMzZlMzhkNDc5MTdlM2YyY2RiOWRk
YThjMDBiYjJkNTJhZDRiNjMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZUxvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VM
b2dnaW5nLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgogCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5o
IgogI2luY2x1ZGUgIkNvbW1vblZNLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKQEAgLTM1LDcgKzM2LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFn
ZUNhY2hlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTksOCArNTksOCBAQCBIYXNo
TWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IFBlcmZvcm1hbmNlTG9nZ2luZzo6bWVtb3J5VXNhZ2VT
dGF0aXN0aWNzKFNob3VsZEluYwogICAgIHN0YXRzLmFkZCgiamF2YXNjcmlwdF9nY19oZWFwX2Nh
cGFjaXR5Iiwgdm0uaGVhcC5jYXBhY2l0eSgpKTsKICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRf
Z2NfaGVhcF9leHRyYV9tZW1vcnlfc2l6ZSIsIHZtLmhlYXAuZXh0cmFNZW1vcnlTaXplKCkpOwog
Ci0gICAgYXV0byYgcGFnZUNhY2hlID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKTsKLSAgICBzdGF0
cy5hZGQoInBhZ2VjYWNoZV9wYWdlX2NvdW50IiwgcGFnZUNhY2hlLnBhZ2VDb3VudCgpKTsKKyAg
ICBhdXRvJiBiYWNrRm9yd2FyZENhY2hlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCk7
CisgICAgc3RhdHMuYWRkKCJiYWNrZm9yd2FyZF9jYWNoZV9wYWdlX2NvdW50IiwgYmFja0Zvcndh
cmRDYWNoZS5wYWdlQ291bnQoKSk7CiAKICAgICBzdGF0cy5hZGQoImRvY3VtZW50X2NvdW50Iiwg
RG9jdW1lbnQ6OmFsbERvY3VtZW50cygpLnNpemUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
eWFtbAppbmRleCA0N2YwZWQ2YThlZjA4NTVmYTVhNTQyNDQ4YTEzYjIzNjMzOTI0NTBjLi41MGI1
ZjM2ZmEwZWQ2N2E0MjRiMDExMzU2YTkwNWNhZTQwNzIzN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sCkBAIC0xNzcsNyArMTc3LDcgQEAgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxl
c2hlZXQ6CiAgIGluaXRpYWw6IGZhbHNlCiBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0Ogog
ICBpbml0aWFsOiB0cnVlCi1wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM6CitiYWNrRm9yd2FyZENh
Y2hlU3VwcG9ydHNQbHVnaW5zOgogICBpbml0aWFsOiBmYWxzZQogc2hvd3NVUkxzSW5Ub29sVGlw
czoKICAgaW5pdGlhbDogZmFsc2UKQEAgLTcxNiw5ICs3MTYsOSBAQCBwbHVnaW5zRW5hYmxlZDoK
ICAgZ2V0dGVyOiBhcmVQbHVnaW5zRW5hYmxlZAogICBvbkNoYW5nZTogcGx1Z2luc0VuYWJsZWRD
aGFuZ2VkCiAKLXVzZXNQYWdlQ2FjaGU6Cit1c2VzQmFja0ZvcndhcmRDYWNoZToKICAgaW5pdGlh
bDogZmFsc2UKLSAgb25DaGFuZ2U6IHVzZXNQYWdlQ2FjaGVDaGFuZ2VkCisgIG9uQ2hhbmdlOiB1
c2VzQmFja0ZvcndhcmRDYWNoZUNoYW5nZWQKIAogZG5zUHJlZmV0Y2hpbmdFbmFibGVkOgogICBp
bml0aWFsOiBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCmluZGV4IDI3ZWVh
NmMwYWI5MzhlYmM4Zjk2NWRhY2I4MjAzMTE0NDMxNjBiOWEuLmM5ODk5YWRlZjA5M2ZiNGYxYzE1
MDg3Y2RjZjdhMmEzZGJiNGYwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3NCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJTZXR0aW5nc0Jhc2UuaCIKIAogI2luY2x1ZGUg
IkF1ZGlvU2Vzc2lvbi5oIgorI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkNvb2tpZVN0b3JhZ2UuaCIKQEAgLTQwLDcgKzQxLDYgQEAKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIK
ICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtMzYyLDEzICszNjIsMTMgQEAgdm9pZCBTZXR0aW5nc0Jhc2U6OnVzZXJTdHlsZVNo
ZWV0TG9jYXRpb25DaGFuZ2VkKCkKICAgICAgICAgbV9wYWdlLT51c2VyU3R5bGVTaGVldExvY2F0
aW9uQ2hhbmdlZCgpOwogfQogCi12b2lkIFNldHRpbmdzQmFzZTo6dXNlc1BhZ2VDYWNoZUNoYW5n
ZWQoKQordm9pZCBTZXR0aW5nc0Jhc2U6OnVzZXNCYWNrRm9yd2FyZENhY2hlQ2hhbmdlZCgpCiB7
CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9wYWdlLT5z
ZXR0aW5ncygpLnVzZXNQYWdlQ2FjaGUoKSkKLSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24o
KS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25lKTsKKyAgICBpZiAoIW1fcGFn
ZS0+c2V0dGluZ3MoKS51c2VzQmFja0ZvcndhcmRDYWNoZSgpKQorICAgICAgICBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25l
KTsKIH0KIAogdm9pZCBTZXR0aW5nc0Jhc2U6OmRuc1ByZWZldGNoaW5nRW5hYmxlZENoYW5nZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKaW5kZXggYjg1MDFjYjcxYTk0YzFhYTA3YmYx
YTEyZmJmNTkzNTE3MzZkZGIwZi4uMWQ5ODNhMjBhNzY2NDkzYTk5Njk4OWNlMGNmODBiZmE5Mjc1
NjYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCkBAIC0xODUsNyArMTg1LDcgQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgaW1hZ2VzRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIHBs
dWdpbnNFbmFibGVkQ2hhbmdlZCgpOwogICAgIHZvaWQgdXNlclN0eWxlU2hlZXRMb2NhdGlvbkNo
YW5nZWQoKTsKLSAgICB2b2lkIHVzZXNQYWdlQ2FjaGVDaGFuZ2VkKCk7CisgICAgdm9pZCB1c2Vz
QmFja0ZvcndhcmRDYWNoZUNoYW5nZWQoKTsKICAgICB2b2lkIGRuc1ByZWZldGNoaW5nRW5hYmxl
ZENoYW5nZWQoKTsKICAgICB2b2lkIHN0b3JhZ2VCbG9ja2luZ1BvbGljeUNoYW5nZWQoKTsKICAg
ICB2b2lkIGJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlQ2hhbmdlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAppbmRleCBkZWNh
NmMxYzg1N2E2MjQzNDVkOGQ5ZGYzMzBmZGFjYjg3MzQxNzg0Li4wYTZhZmY5ZDcxYjRjNWM1OGNm
OGQ3YjdjZmFkYTViNWM4N2ViZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAtODEsNyArODEsNyBAQCB2b2lkIEFuaW1hdGlvbkJh
c2U6OnNldE5lZWRzU3R5bGVSZWNhbGMoRWxlbWVudCogZWxlbWVudCkKICAgICBpZiAoIWVsZW1l
bnQgfHwgZWxlbWVudC0+ZG9jdW1lbnQoKS5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGVsZW1lbnQtPmRvY3VtZW50KCkucGFnZUNhY2hl
U3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChlbGVtZW50
LT5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJh
Y2tGb3J3YXJkQ2FjaGUpOwogICAgIGVsZW1lbnQtPmludmFsaWRhdGVTdHlsZSgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCmluZGV4IDEzYzMxZjU3NjRiN2IyMjRhMmI3ZWE1NWFlMzNhNmIzOTg2Yjk2
ZDIuLmNhODkwZTc3YjA5OWQzMGI5ZjFiYWVlZjY2Njk5ZGM0MjNiNTJhZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgT3B0aW9uYWw8U2Vjb25kcz4gQ1NTQW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFuaW1hdGlvbnMoU2V0Q2hhbmdlZCBjYWwKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
RWxlbWVudCYgZWxlbWVudCA9ICpjb21wb3NpdGVBbmltYXRpb24ua2V5OwotICAgICAgICAgICAg
ICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVu
dDo6Tm90SW5QYWdlQ2FjaGUpOworICAgICAgICAgICAgICAgIEFTU0VSVChlbGVtZW50LmRvY3Vt
ZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSk7CiAgICAgICAgICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGUoKTsKICAg
ICAgICAgICAgICAgICBjYWxsZWRTZXRDaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KQEAg
LTI1NCw3ICsyNTQsNyBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRF
dmVudFRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQQogdm9pZCBDU1NBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYg
ZWxlbWVudCkKIHsKICAgICBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoZWxlbWVu
dCk7Ci0gICAgQVNTRVJUKG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1l
bnQoKS5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAg
QVNTRVJUKG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5iYWNr
Rm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsK
ICAgICBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CiAKQEAgLTYwOSw3
ICs2MDksNyBAQCB2b2lkIENTU0FuaW1hdGlvbkNvbnRyb2xsZXI6OmNhbmNlbEFuaW1hdGlvbnMo
RWxlbWVudCYgZWxlbWVudCkKIAogICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkucmVuZGVyVHJl
ZUJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoZWxlbWVudC5k
b2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsK
KyAgICBBU1NFUlQoZWxlbWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09
IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIGVsZW1lbnQuaW52YWxpZGF0
ZVN0eWxlKCk7CiB9CiAKQEAgLTYxOSw3ICs2MTksNyBAQCBBbmltYXRpb25VcGRhdGUgQ1NTQW5p
bWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5pbWF0aW9ucyhFbGVtZW50JiBlbGVtZW50LCBjb25z
dAogICAgIGlmICghaGFzT3JIYWRBbmltYXRpb25zKQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpO
b3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoZWxlbWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJl
dHVybiB7IH07CiAKICAgICAvLyBEb24ndCBydW4gdHJhbnNpdGlvbnMgd2hlbiBwcmludGluZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcAppbmRleCAwNDc3YTllN2QwODVlMjc3N2RhZmIyY2IxY2Y5ZDliMzk5ZGM5NzRjLi44MzI1
YTU5MTlhZjhkYTQwODc4Yjk2NDU1YTQ2MTQ2MThhMWU4MzRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0yMTIsNyAr
MjEyLDcgQEAgYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25z
dCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZQogICAgICAgICAgICAgLy8gRGlzcGF0Y2gg
dGhlIGV2ZW50CiAgICAgICAgICAgICBhdXRvIGVsZW1lbnQgPSBtYWtlUmVmUHRyKHRoaXMtPmVs
ZW1lbnQoKSk7CiAKLSAgICAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1
bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAg
ICAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLmJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAg
ICAgICAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24u
Y3BwCmluZGV4IDlhZjVmMDg0YzUwMTM2NjAzZDUyNGIyMGZiYTE2ZjU5NWJiOTc5ZmEuLmY5MWQz
YTU1YzVjOWM3OTg0YTAyNDYxMjgzOTA3NTdjNDFmNDFlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTM2Miw3ICsz
NjIsNyBAQCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgZQogICAgICAgICAvLyBEaXNwYXRjaCB0aGUg
ZXZlbnQKICAgICAgICAgYXV0byBlbGVtZW50ID0gbWFrZVJlZlB0cih0aGlzLT5lbGVtZW50KCkp
OwogCi0gICAgICAgIEFTU0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLnBhZ2VD
YWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICAgICAgQVNTRVJU
KCFlbGVtZW50IHx8IGVsZW1lbnQtPmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgICAgIGlmICghZWxlbWVu
dCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRl
eCA1ZjBhOTc2M2U3M2UxNTBkZTA5ZmYwMGQ4MGM4YTQ2YjVjMDI0OTNkLi41NGE5MGUwODVmZmJk
ZjNlNGE5ZTk0MmNjYzM5NjMxZTM1MWE2NmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAt
MjQ2LDE0ICsyNDYsMTQgQEAgYm9vbCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0
U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xsYWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIWNvb3Jk
aW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KCpmcmFtZVZpZXcpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBib29sIGluUGFnZUNhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3Vt
ZW50KCktPnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOworICAg
IGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCkt
PmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2Fj
aGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRpY1Njcm9sbCA9IHNjcm9sbGFibGVBcmVhLmN1cnJl
bnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljOwotICAgIGlmIChpblBy
b2dyYW1tYXRpY1Njcm9sbCB8fCBpblBhZ2VDYWNoZSkKKyAgICBpZiAoaW5Qcm9ncmFtbWF0aWNT
Y3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlv
bkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5nTm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBT
Y3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNl
dCk7CiAKLSAgICAvLyBJZiB0aGlzIGZyYW1lIHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQg
aW50byB0aGUgcGFnZSBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCisgICAgLy8g
SWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1lbnQgaXMgYmVpbmcgcHV0IGludG8gdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZSwgd2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgb3VyCiAgICAgLy8gbWFpbiBm
cmFtZSBzY3JvbGwgcG9zaXRpb24uIEp1c3QgbGV0IHRoZSBGcmFtZVZpZXcgdGhpbmsgdGhhdCB3
ZSBkaWQuCi0gICAgaWYgKGluUGFnZUNhY2hlKQorICAgIGlmIChpbkJhY2tGb3J3YXJkQ2FjaGUp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgYXV0byogc3RhdGVOb2RlID0gZG93bmNhc3Q8
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c3RhdGVO
b2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlEKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggN2Y0ZTRiZjFlZDlhZmIyMzg3NThhZGNi
MGJkZDcyNTFlNmRhNTgxMS4uZjU5MTc2NzJlZWZkZjFmNTIzY2RmNjkyNDZiMjM4NjA0OTRmYjJh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9y
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbQpAQCAtMTE0MSw3ICsxMTQxLDcgQEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2hvdWxk
U2Nyb2xsYmFyUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoU2Nyb2xsYmFyKiBzY3JvbGwKIAogdm9p
ZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5Q29udGVudEFyZWFTY3JvbGxlZChjb25zdCBGbG9h
dFNpemUmIGRlbHRhKQogewotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBw
YWdlIGlzIGdvaW5nIGludG8gdGhlIHBhZ2UgY2FjaGUsIGJ1dCB0aGUgcGFnZQorICAgIC8vIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBwYWdlIGlzIGdvaW5nIGludG8gdGhlIGJhY2sv
Zm9yd2FyZCBjYWNoZSwgYnV0IHRoZSBwYWdlCiAgICAgLy8gaXNuJ3QgcmVhbGx5IHNjcm9sbGlu
ZyBpbiB0aGF0IGNhc2UuIFdlIHNob3VsZCBvbmx5IHBhc3MgdGhlIG1lc3NhZ2Ugb24gdG8gdGhl
CiAgICAgLy8gU2Nyb2xsZXJJbXBQYWlyIHdoZW4gd2UncmUgcmVhbGx5IHNjcm9sbGluZyBvbiBh
biBhY3RpdmUgcGFnZS4KICAgICBpZiAoW21fc2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3JvbGxl
clN0YXRlSXNMb2NrZWRdKQpAQCAtMTQxOCw3ICsxNDE4LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSgpCiAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXIt
PnNldEZyYW1lUmVjdChJbnRSZWN0KDAsIDAsIHRoaWNrbmVzcywgdGhpY2tuZXNzKSk7CiAgICAg
fQogCi0gICAgLy8gSWYgbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGUgaXMgdHJ1ZSwgdGhlbiB0
aGUgcGFnZSBpcyByZXN0b3JpbmcgZnJvbSB0aGUgcGFnZSBjYWNoZSwgYW5kIAorICAgIC8vIElm
IG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlIGlzIHRydWUsIHRoZW4gdGhlIHBhZ2UgaXMgcmVz
dG9yaW5nIGZyb20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYW5kCiAgICAgLy8gYSByZWxheW91
dCB3aWxsIGhhcHBlbiBvbiBpdHMgb3duLiBPdGhlcndpc2UsIHdlIG11c3QgaW5pdGlhdGUgYSBy
ZS1sYXlvdXQgb3Vyc2VsdmVzLgogICAgIHNjcm9sbGFibGVBcmVhKCkuc2Nyb2xsYmFyU3R5bGVD
aGFuZ2VkKG5ld1N0eWxlID09IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXkgPyBTY3JvbGxiYXJTdHls
ZTo6T3ZlcmxheSA6IFNjcm9sbGJhclN0eWxlOjpBbHdheXNWaXNpYmxlLCAhbV9uZWVkc1Njcm9s
bGVyU3R5bGVVcGRhdGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCmluZGV4IGUwNzg1ZWM0MzM3ODQxZGI4NTgzMGYxODFmYjA4OWY3NTc3
ZjU2YzUuLjIxNGY2MDk1NzdmOGE4ZjBiNTc1ZmQ1MWFhNTRhMzYzNjQ5ZTMxYzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yNzgw
LDggKzI3ODAsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29u
c3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgIGlmICgocGFpbnRzSW50
b1dpbmRvdygpIHx8IHBhaW50c0ludG9Db21wb3NpdGVkQW5jZXN0b3IoKSkgJiYgZ3JhcGhpY3NM
YXllci0+cGFpbnRpbmdQaGFzZSgpICE9IE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZT4oR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkNoaWxkQ2xpcHBpbmdNYXNrKSkgewog
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhT1MoV0lORE9XUykKICAgICAgICAgLy8gRklY
TUU6IExvb2tzIGxpa2UgdGhlIENBTGF5ZXIgdHJlZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBH
cmFwaGljc0xheWVyIGhlaXJhcmNoeQotICAgICAgICAvLyB3aGVuIHBhZ2VzIGFyZSByZXN0b3Jl
ZCBmcm9tIHRoZSBQYWdlQ2FjaGUuCi0gICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS84NzEyNTg3
PiBBU1NFUlQ6IFdoZW4gR29pbmcgQmFjayB0byBQYWdlIHdpdGggUGx1Z2lucyBpbiBQYWdlQ2Fj
aGUKKyAgICAgICAgLy8gd2hlbiBwYWdlcyBhcmUgcmVzdG9yZWQgZnJvbSB0aGUgQmFja0Zvcndh
cmRDYWNoZS4KKyAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzg3MTI1ODc+IEFTU0VSVDogV2hl
biBHb2luZyBCYWNrIHRvIFBhZ2Ugd2l0aCBQbHVnaW5zIGluIEJhY2tGb3J3YXJkQ2FjaGUKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApp
bmRleCBjMGRkMDYwYjVkMzNjOWVkZGZhMzBmN2Q1MzRkYTdkOTc5MzI4YzQ4Li5mZjlmZWJmYWVk
MjBjNmYxN2ZjMWI1OGM1MDdiZTUwNjU0MzM0N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNzE2LDggKzcxNiw4IEBA
IGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21w
b3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAKICAgICBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJz
VGltZXIuc3RvcCgpOwogCi0gICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VD
YWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlCi0gICAgICAgIHx8IG1fcmVu
ZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9F
bnRlclBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLmJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUKKyAg
ICAgICAgfHwgbV9yZW5kZXJWaWV3LmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIAogICAgIC8v
IENvbXBvc2l0aW5nIGxheWVycyB3aWxsIGJlIHVwZGF0ZWQgaW4gRG9jdW1lbnQ6OnNldFZpc3Vh
bFVwZGF0ZXNBbGxvd2VkKGJvb2wpIGlmIHN1cHByZXNzZWQgaGVyZS4KICAgICBpZiAoIW1fcmVu
ZGVyVmlldy5kb2N1bWVudCgpLnZpc3VhbFVwZGF0ZXNBbGxvd2VkKCkpCkBAIC00NjUyLDcgKzQ2
NTIsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6d2lsbFJlbW92ZVNjcm9sbGluZ0xh
eWVyV2l0aEJhY2tpbmcoUmVuZGVyTGF5ZXImIGxheQogICAgICAgICByZXR1cm47CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotICAgIEFTU0VSVChtX3JlbmRlclZpZXcuZG9jdW1lbnQoKS5w
YWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJU
KG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3Vt
ZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIGlmIChtX2xlZ2FjeVNjcm9sbGluZ0xh
eWVyQ29vcmRpbmF0b3IpCiAgICAgICAgIG1fbGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29yZGluYXRv
ci0+cmVtb3ZlU2Nyb2xsaW5nTGF5ZXIobGF5ZXIsIGJhY2tpbmcpOwogI2Vsc2UKQEAgLTQ2Njgs
NyArNDY2OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRBZGRTY3JvbGxpbmdM
YXllcihSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNo
ZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICBBU1NFUlQobV9yZW5k
ZXJWaWV3LmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5v
dEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgaWYgKG1fbGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29y
ZGluYXRvcikKICAgICAgICAgbV9sZWdhY3lTY3JvbGxpbmdMYXllckNvb3JkaW5hdG9yLT5hZGRT
Y3JvbGxpbmdMYXllcihsYXllcik7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDY1MmQ2MDE1MTJkNmVmMDJmZjU4MDkx
NTU3MTNmNjc1ZThkMDc2NGIuLjA3OGY3OWJhZDAyMzg5M2UyMmQxNjI5MzA4YzdmYjQ0YjQ3ZjU5
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBpcyBvbmx5IHVz
ZWQgd2hlbiBzdGF0ZSBjaGFuZ2VzIGFuZCB3ZSBkbyBub3QgZXhlcGVjdCBhIHN0eWxlIHVwZGF0
ZSBvciBsYXlvdXQgdG8gaGFwcGVuIHNvb24gKGUuZy4gd2hlbgogICAgIC8vIHdlIGRpc2NvdmVy
IHRoYXQgYW4gaWZyYW1lIGlzIG92ZXJsYXBwZWQgZHVyaW5nIHBhaW50aW5nKS4KICAgICB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclVwZGF0ZSgpOwotICAgIC8vIFRoaXMgaXMgdXNlZCB0
byBjYW5jZWwgYW55IHBlbmRpbmcgdXBkYXRlIHRpbWVycyB3aGVuIHRoZSBkb2N1bWVudCBnb2Vz
IGludG8gcGFnZSBjYWNoZS4KKyAgICAvLyBUaGlzIGlzIHVzZWQgdG8gY2FuY2VsIGFueSBwZW5k
aW5nIHVwZGF0ZSB0aW1lcnMgd2hlbiB0aGUgZG9jdW1lbnQgZ29lcyBpbnRvIGJhY2svZm9yd2Fy
ZCBjYWNoZS4KICAgICB2b2lkIGNhbmNlbENvbXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsKIAogICAg
IC8vIFVwZGF0ZSB0aGUgY29tcG9zaXRpbmcgc3RhdGUgb2YgdGhlIGdpdmVuIGxheWVyLiBSZXR1
cm5zIHRydWUgaWYgdGhhdCBzdGF0ZSBjaGFuZ2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCmluZGV4IGNhYWM1Y2RlMGVkODQ3YmRjMjBlNWNhN2E1ZjFlZDgwMTBjNGJm
NWYuLjc2ZTI4ZDdkZjM0Mjk4MTM5YzI4ZDZiZTM3ZDY3M2I3M2YzYjczOWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTcyMyw3ICs3MjMsNyBAQCBwdWJsaWM6
CiAgICAgICovCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGxvY2FsQ2FyZXRSZWN0KElubGluZUJv
eCosIHVuc2lnbmVkIGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxp
bmUgPSBudWxscHRyKTsKIAotICAgIC8vIFdoZW4gcGVyZm9ybWluZyBhIGdsb2JhbCBkb2N1bWVu
dCB0ZWFyLWRvd24sIG9yIHdoZW4gZ29pbmcgaW50byB0aGUgcGFnZSBjYWNoZSwgdGhlIHJlbmRl
cmVyIG9mIHRoZSBkb2N1bWVudCBpcyBjbGVhcmVkLgorICAgIC8vIFdoZW4gcGVyZm9ybWluZyBh
IGdsb2JhbCBkb2N1bWVudCB0ZWFyLWRvd24sIG9yIHdoZW4gZ29pbmcgaW50byB0aGUgYmFjay9m
b3J3YXJkIGNhY2hlLCB0aGUgcmVuZGVyZXIgb2YgdGhlIGRvY3VtZW50IGlzIGNsZWFyZWQuCiAg
ICAgYm9vbCByZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZGVz
dHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVM
YXlvdXRDb3ZlcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxh
eW91dENvdmVyYWdlLmNwcAppbmRleCBhYzEwOWRiYzM0MmY4Yzc3ODZkYWU3ODVjZmZkOTVjNjAw
ZmZjODJmLi41NWY1ZmQzNzA3NmI4MjUzY2UxNTk5ZjcwY2FmZTZjY2RhNWQyMjQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdl
LmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyB2b2lkIGNvbGxlY3ROb25FbXB0eUxlYWZS
ZW5kZXJCbG9ja0Zsb3dzKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIEhhCiBzdGF0aWMg
dm9pZCBjb2xsZWN0Tm9uRW1wdHlMZWFmUmVuZGVyQmxvY2tGbG93c0ZvckN1cnJlbnRQYWdlKEhh
c2hTZXQ8Y29uc3QgUmVuZGVyQmxvY2tGbG93Kj4mIGxlYWZSZW5kZXJlcnMpCiB7CiAgICAgZm9y
IChjb25zdCBhdXRvKiBkb2N1bWVudCA6IERvY3VtZW50OjphbGxEb2N1bWVudHMoKSkgewotICAg
ICAgICBpZiAoIWRvY3VtZW50LT5yZW5kZXJWaWV3KCkgfHwgZG9jdW1lbnQtPnBhZ2VDYWNoZVN0
YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgICAgICBpZiAoIWRvY3VtZW50
LT5yZW5kZXJWaWV3KCkgfHwgZG9jdW1lbnQtPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERv
Y3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgaWYgKCFkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQtPmlzWEhU
TUxEb2N1bWVudCgpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggYTAwZjRmZTBmNGNjYjUyZGQ4MzFhOTRlMjZh
NTg2NGU1YzFiNzkyNy4uMDJhMGUzN2UwY2E5M2JlOGY3ZThjZjRkNWM1OWQ5ZWI1YzE2YTUxOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtMjk2LDcg
KzI5Niw3IEBAIEVsZW1lbnRVcGRhdGUgVHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1l
bnRVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0CiAgICAgICAgIC8vIEZpcnN0LCB3ZSBu
ZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGFueSBuZXcgQ1NTIGFuaW1hdGlvbiBvY2N1cmluZyBvbiB0
aGlzIGVsZW1lbnQgaGFzIGEgbWF0Y2hpbmcgV2ViQW5pbWF0aW9uCiAgICAgICAgIC8vIG9uIHRo
ZSBkb2N1bWVudCB0aW1lbGluZS4gTm90ZSB0aGF0IHdlIGdldCB0aW1lbGluZSgpIG9uIHRoZSBE
b2N1bWVudCBoZXJlIGJlY2F1c2Ugd2UgbmVlZCBhIHRpbWVsaW5lIGNyZWF0ZWQKICAgICAgICAg
Ly8gaW4gY2FzZSBubyBXZWIgQW5pbWF0aW9ucyBoYXZlIGJlZW4gY3JlYXRlZCB0aHJvdWdoIHRo
ZSBKUyBBUEkuCi0gICAgICAgIGlmIChlbGVtZW50LmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUo
KSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5yZW5k
ZXJWaWV3KCktPnByaW50aW5nKCkpIHsKKyAgICAgICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5i
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hl
ICYmICFlbGVtZW50LmRvY3VtZW50KCkucmVuZGVyVmlldygpLT5wcmludGluZygpKSB7CiAgICAg
ICAgICAgICBpZiAob2xkU3R5bGUgJiYgKG9sZFN0eWxlLT5oYXNUcmFuc2l0aW9ucygpIHx8IG5l
d1N0eWxlLT5oYXNUcmFuc2l0aW9ucygpKSkKICAgICAgICAgICAgICAgICBtX2RvY3VtZW50LnRp
bWVsaW5lKCkudXBkYXRlQ1NTVHJhbnNpdGlvbnNGb3JFbGVtZW50KGVsZW1lbnQsICpvbGRTdHls
ZSwgKm5ld1N0eWxlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDhm
OGM1YzdkOTI3YzA3OTYyOWQ2N2VkMTVhYzAyMzg1NTZkNDkyOWEuLjRiYzcxMjBjMDE3MjhiY2Q2
MzBkYTc0YzhlYzI3MWFlYzM5M2VkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5o
IgogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkF1dG9maWxsLmgiCisjaW5j
bHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5oIgpAQCAtMTI3LDcgKzEyOCw2IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFE
ZXZpY2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5o
IgogI2luY2x1ZGUgIlBhdGhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaCIKQEAgLTkyMiwxNCArOTIyLDE0IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRHcmlkTWF4
VHJhY2tzTGltaXQodW5zaWduZWQgbWF4VHJhY2tMaW1pdCkKICAgICBHcmlkUG9zaXRpb246OnNl
dE1heFBvc2l0aW9uRm9yVGVzdGluZyhtYXhUcmFja0xpbWl0KTsKIH0KIAotdm9pZCBJbnRlcm5h
bHM6OmNsZWFyUGFnZUNhY2hlKCkKK3ZvaWQgSW50ZXJuYWxzOjpjbGVhckJhY2tGb3J3YXJkQ2Fj
aGUoKQogewotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1
bmluZ1JlYXNvbjo6Tm9uZSk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucHJ1
bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7CiB9CiAKLXVuc2lnbmVkIEludGVy
bmFsczo6cGFnZUNhY2hlU2l6ZSgpIGNvbnN0Cit1bnNpZ25lZCBJbnRlcm5hbHM6OmJhY2tGb3J3
YXJkQ2FjaGVTaXplKCkgY29uc3QKIHsKLSAgICByZXR1cm4gUGFnZUNhY2hlOjpzaW5nbGV0b24o
KS5wYWdlQ291bnQoKTsKKyAgICByZXR1cm4gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCku
cGFnZUNvdW50KCk7CiB9CiAKIGNsYXNzIFVuc3VzcGVuZGFibGVBY3RpdmVET01PYmplY3QgZmlu
YWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxVbnN1c3BlbmRh
YmxlQWN0aXZlRE9NT2JqZWN0PiB7CkBAIC05NDcsNyArOTQ3LDcgQEAgcHJpdmF0ZToKICAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgeyByZXR1cm4gIlVuc3VzcGVu
ZGFibGVBY3RpdmVET01PYmplY3QiOyB9CiB9OwogCi12b2lkIEludGVybmFsczo6cHJldmVudERv
Y3VtZW50Rm9yRW50ZXJpbmdQYWdlQ2FjaGUoKQordm9pZCBJbnRlcm5hbHM6OnByZXZlbnREb2N1
bWVudEZvckVudGVyaW5nQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgaWYgKGF1dG8qIGNvbnRl
eHQgPSBjb250ZXh0RG9jdW1lbnQoKSkKICAgICAgICAgbV91bnN1c3BlbmRhYmxlQWN0aXZlRE9N
T2JqZWN0ID0gVW5zdXNwZW5kYWJsZUFjdGl2ZURPTU9iamVjdDo6Y3JlYXRlKCpjb250ZXh0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGJhMmJiOTc0YTkyY2VmMWFjN2UzNDQ3
NmViYjEyZWFlZGQ3MDdhODkuLjE5Zjc4OWY5MDMwZjlhMjQ4Njg3ZTk1ZjAxZmRhYWRkZTU4NWRk
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTY5LDkgKzE2OSw5IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0R3JpZE1heFRyYWNrc0xpbWl0KHVuc2lnbmVkKTsKIAotICAg
IHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKLSAgICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplKCkgY29u
c3Q7Ci0gICAgdm9pZCBwcmV2ZW50RG9jdW1lbnRGb3JFbnRlcmluZ1BhZ2VDYWNoZSgpOworICAg
IHZvaWQgY2xlYXJCYWNrRm9yd2FyZENhY2hlKCk7CisgICAgdW5zaWduZWQgYmFja0ZvcndhcmRD
YWNoZVNpemUoKSBjb25zdDsKKyAgICB2b2lkIHByZXZlbnREb2N1bWVudEZvckVudGVyaW5nQmFj
a0ZvcndhcmRDYWNoZSgpOwogCiAgICAgdm9pZCBkaXNhYmxlVGlsZVNpemVVcGRhdGVEZWxheSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMWVlZTNjOWQzYWUzYjI2
ZWU3ZjRhZDEyNzA5ODU1NmJhZGM2MmVjMy4uMDFkYjI0MmQwYmM5OTQyMDYwMTU2NDY1YmY3NzFk
MTQyN2RhMmNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjA3LDkg
KzIwNyw5IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIHZvaWQgc2V0T3ZlcnJpZGVS
ZXNvdXJjZUxvYWRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSk7CiAgICAg
dm9pZCBzZXRTdHJpY3RSYXdSZXNvdXJjZVZhbGlkYXRpb25Qb2xpY3lEaXNhYmxlZChib29sZWFu
IGRpc2FibGVkKTsKIAotICAgIHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKLSAgICB1bnNpZ25lZCBs
b25nIHBhZ2VDYWNoZVNpemUoKTsKLSAgICB2b2lkIHByZXZlbnREb2N1bWVudEZvckVudGVyaW5n
UGFnZUNhY2hlKCk7CisgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkQ2FjaGUoKTsKKyAgICB1bnNp
Z25lZCBsb25nIGJhY2tGb3J3YXJkQ2FjaGVTaXplKCk7CisgICAgdm9pZCBwcmV2ZW50RG9jdW1l
bnRGb3JFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGUoKTsKIAogICAgIENTU1N0eWxlRGVjbGFyYXRp
b24gY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEVsZW1lbnQgZWxlbWVudCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDdmMGUwMzVjNWY5NTVlNGUx
YTBmNzNhNzliNzg4NDcwZGU5NjYyZWIuLjUzYzQ4MDcxYmU5NWRjMTViOGNkODAxNzhjODA3YTky
OGUzMmEzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTE2Myw4
ICsxMTYzLDggQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5z
aW9uIHJlYXNvbikKICAgICAgICAgbV9kaXNwYXRjaEVycm9yT25SZXN1bWluZyA9IHRydWU7CiAg
ICAgfQogCi0gICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUg
JiYgbV9sb2FkZXIpIHsKLSAgICAgICAgLy8gR29pbmcgaW50byBQYWdlQ2FjaGUsIGFib3J0IHRo
ZSByZXF1ZXN0IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcuCisgICAg
aWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlICYmIG1f
bG9hZGVyKSB7CisgICAgICAgIC8vIEdvaW5nIGludG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUsIGFi
b3J0IHRoZSByZXF1ZXN0IGFuZCBkaXNwYXRjaCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcu
CiAgICAgICAgIGdlbmVyaWNFcnJvcigpOwogICAgICAgICBtX2Rpc3BhdGNoRXJyb3JPblJlc3Vt
aW5nID0gdHJ1ZTsKICAgICAgICAgYm9vbCBhYm9ydGVkID0gaW50ZXJuYWxBYm9ydCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2FjaGVNb2RlbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcAppbmRleCBmMDllYzZkOGIyNWVhZTQyZjg1ZDA1Yzc1
MDI4ZDEwZGYzMjY3NjQ2Li45Y2JkNmFiOWFjMTA5NTc2ODZiYWRjMDMyMTdkMWQ2MWUyNDhiMTY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcApAQCAtMzMsMTQgKzMzLDE0IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMoQ2Fj
aGVNb2RlbCBjYWNoZU1vZGVsLCB1bnNpZ25lZCYgY2FjaGVUb3RhbENhcGFjaXR5LCB1bnNpZ25l
ZCYgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1heERlYWRDYXBhY2l0eSwg
U2Vjb25kcyYgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwgdW5zaWduZWQmIHBhZ2VD
YWNoZUNhcGFjaXR5KQordm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWwg
Y2FjaGVNb2RlbCwgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hl
TWluRGVhZENhcGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIFNlY29uZHMm
IGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsIHVuc2lnbmVkJiBiYWNrRm9yd2FyZENh
Y2hlQ2FwYWNpdHkpCiB7CiAgICAgdWludDY0X3QgbWVtb3J5U2l6ZSA9IHJhbVNpemUoKSAvIE1C
OwogCiAgICAgc3dpdGNoIChjYWNoZU1vZGVsKSB7CiAgICAgY2FzZSBDYWNoZU1vZGVsOjpEb2N1
bWVudFZpZXdlcjogewotICAgICAgICAvLyBQYWdlIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykK
LSAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAvLyBiYWNrL2ZvcndhcmQg
Y2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICBiYWNrRm9yd2FyZENhY2hlQ2FwYWNp
dHkgPSAwOwogCiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykK
ICAgICAgICAgaWYgKG1lbW9yeVNpemUgPj0gMjA0OCkKQEAgLTYwLDEzICs2MCwxMyBAQCB2b2lk
IGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsLCB1bnNpZ25l
ZCYgY2FjaGVUb3RhbENhcGFjaQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDYWNo
ZU1vZGVsOjpEb2N1bWVudEJyb3dzZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0
eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4g
cGFnZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXplID49IDUxMikKLSAgICAgICAgICAgIHBhZ2VD
YWNoZUNhcGFjaXR5ID0gMjsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9
IDI7CiAgICAgICAgIGVsc2UgaWYgKG1lbW9yeVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFn
ZUNhY2hlQ2FwYWNpdHkgPSAxOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5
ID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOwor
ICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMDsKIAogICAgICAgICAvLyBP
YmplY3QgY2FjaGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXpl
ID49IDIwNDgpCkBAIC04NiwxMyArODYsMTMgQEAgdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNp
emVzKENhY2hlTW9kZWwgY2FjaGVNb2RlbCwgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2kKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ2FjaGVNb2RlbDo6UHJpbWFyeVdlYkJyb3dz
ZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAg
IC8vIGJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIGlmICht
ZW1vcnlTaXplID49IDUxMikKLSAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKKyAg
ICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9IDI7CiAgICAgICAgIGVsc2UgaWYg
KG1lbW9yeVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAxOwor
ICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAgICAgYmFja0Zvcndh
cmRDYWNoZUNhcGFjaXR5ID0gMDsKIAogICAgICAgICAvLyBPYmplY3QgY2FjaGUgY2FwYWNpdGll
cyAoaW4gYnl0ZXMpCiAgICAgICAgIC8vIChUZXN0aW5nIGluZGljYXRlcyB0aGF0IHZhbHVlIC8g
TUIgZGVwZW5kcyBoZWF2aWx5IG9uIGNvbnRlbnQgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9DYWNoZU1vZGVsLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVs
LmgKaW5kZXggZjIzOTUzOGU2NzhlYmRmYzA4MTRlZGM3NmJmODYzZTJmM2MyNTdjYS4uY2Q2NDhi
NDdiZjNmNWRmNDczNDQ3ZWY1MjZlZDU5MDEyMjAwNmE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ2FjaGVNb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhY2hl
TW9kZWwuaApAQCAtMzcsNyArMzcsNyBAQCBlbnVtIGNsYXNzIENhY2hlTW9kZWwgOiB1aW50OF90
IHsKICAgICBQcmltYXJ5V2ViQnJvd3NlcgogfTsKIAotdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNo
ZVNpemVzKENhY2hlTW9kZWwsIHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVk
JiBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBT
ZWNvbmRzJiBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLCB1bnNpZ25lZCYgcGFnZUNh
Y2hlQ2FwYWNpdHkpOwordm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWws
IHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1pbkRlYWRDYXBh
Y2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBTZWNvbmRzJiBkZWFkRGVjb2Rl
ZERhdGFEZWxldGlvbkludGVydmFsLCB1bnNpZ25lZCYgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5
KTsKIHZvaWQgY2FsY3VsYXRlVVJMQ2FjaGVTaXplcyhDYWNoZU1vZGVsLCB1aW50NjRfdCBkaXNr
RnJlZVNpemUsIHVuc2lnbmVkJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1aW50NjRfdCYgdXJs
Q2FjaGVEaXNrQ2FwYWNpdHkpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDk3NDYxOGY2ZDI2NTQ5MDYzYzgzODhm
Y2RhZTJlYjRkNTY3NjFhMDYuLjc5NmIwZTE5NWY1MzBhMTgxNTI1OGQxY2Q3N2Q0YWY5YWI5MGMx
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTU1LDEx
ICsxNTUsMTEgQEAgTG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDoKICAgdHlwZTogYm9v
bAogICBkZWZhdWx0VmFsdWU6IGZhbHNlCiAKLVVzZXNQYWdlQ2FjaGU6CitVc2VzQmFja0Zvcndh
cmRDYWNoZToKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIAotUGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zOgorQmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2luczoKICAgdHlw
ZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRydWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50LmgKaW5kZXggY2QyMmEyNjc2NDY4ZDE4MjM0
YTYwODQyZmU5ZDkxNjcxYjIwYTg3ZC4uMzhjYzc1MGNiMmM0MTgxYzA4ZTAxNjVkZjM2MGQ3NGM4
Mjk3YTk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmln
YXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdh
dGlvbkNsaWVudC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCByZXNvbHZlV2ViR0xMb2FkUG9saWN5KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RG
OjpVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0IHsgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
V2ViR0xMb2FkUG9saWN5OjpXZWJHTEFsbG93Q3JlYXRpb24pOyB9CiAjZW5kaWYKICAgICAKLSAg
ICB2aXJ0dWFsIGJvb2wgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYktpdDo6V2ViUGFn
ZVByb3h5JiwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBpblBhZ2VDYWNo
ZSkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgd2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExp
c3RJdGVtJiwgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZShXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsRW5kTmF2aWdhdGlvbkdlc3R1cmUoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmLCBib29sIHdpbGxOYXZpZ2F0ZSwgV2ViS2l0OjpXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGUzNzM5MzRjMjNk
ZGY1ZDVkOTkzOWE3NTE5NzlmMDVjOTM1YWMwZTEuLjFlMDBhNWU4OTQzZThlNmFhY2QyYjVjMTc3
MWJhNmZjZDA0NDU1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCkBAIC02OSw3ICs2OSw3IEBA
IFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6
Y29weSgpCiAgICAgY29weS0+bV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyID0g
dGhpcy0+bV9wcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyOwogICAgIGNvcHktPm1f
aXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudCA9IHRoaXMtPm1faXNBdXRv
bWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudDsKICAgICBjb3B5LT5tX3VzZXNXZWJQ
cm9jZXNzQ2FjaGUgPSB0aGlzLT5tX3VzZXNXZWJQcm9jZXNzQ2FjaGU7Ci0gICAgY29weS0+bV91
c2VzUGFnZUNhY2hlID0gdGhpcy0+bV91c2VzUGFnZUNhY2hlOworICAgIGNvcHktPm1fdXNlc0Jh
Y2tGb3J3YXJkQ2FjaGUgPSB0aGlzLT5tX3VzZXNCYWNrRm9yd2FyZENhY2hlOwogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIGNvcHktPm1fc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9u
U3lzdGVtQ2hhbmdlID0gdGhpcy0+bV9zdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25T
eXN0ZW1DaGFuZ2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCAxZmE3OTAxN2FmODY0
ZWM5NmRlMmVmODE5ZWE3OWJmMThhMjI4MzJmLi4zOTZmM2U1MzQyYmVhYTY3Y2Y2NzNjYWM1MjY0
ZGZhZjk0NjdkNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oCkBAIC02OCw4ICs2OCw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGNsaWVudFdvdWxkQmVuZWZpdEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2Fy
bWluZygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50V291bGRCZW5lZml0RnJvbUF1dG9tYXRpY1By
b2Nlc3NQcmV3YXJtaW5nOyB9CiAgICAgdm9pZCBzZXRDbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0
b21hdGljUHJvY2Vzc1ByZXdhcm1pbmcoYm9vbCB2YWx1ZSkgeyBtX2NsaWVudFdvdWxkQmVuZWZp
dEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2FybWluZyA9IHZhbHVlOyB9CiAKLSAgICB2b2lkIHNl
dFVzZXNQYWdlQ2FjaGUoYm9vbCB2YWx1ZSkgeyBtX3VzZXNQYWdlQ2FjaGUgPSB2YWx1ZTsgfQot
ICAgIGJvb2wgdXNlc1BhZ2VDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc1BhZ2VDYWNoZTsg
fQorICAgIHZvaWQgc2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUoYm9vbCB2YWx1ZSkgeyBtX3VzZXNC
YWNrRm9yd2FyZENhY2hlID0gdmFsdWU7IH0KKyAgICBib29sIHVzZXNCYWNrRm9yd2FyZENhY2hl
KCkgY29uc3QgeyByZXR1cm4gbV91c2VzQmFja0ZvcndhcmRDYWNoZTsgfQogCiAgICAgY29uc3Qg
V1RGOjpTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0
ZWRCdW5kbGVQYXRoOyB9CiAgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZVBhdGgoY29uc3QgV1RG
OjpTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCkgeyBtX2luamVjdGVkQnVuZGxlUGF0aCA9IGlu
amVjdGVkQnVuZGxlUGF0aDsgfQpAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3Byb2Nlc3NTd2Fwc09uV2luZG93T3BlbldpdGhPcGVuZXIgeyBmYWxzZSB9OwogICAgIE9w
dGlvbmFsPGJvb2w+IG1faXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudDsK
ICAgICBib29sIG1fdXNlc1dlYlByb2Nlc3NDYWNoZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3Vz
ZXNQYWdlQ2FjaGUgeyB0cnVlIH07CisgICAgYm9vbCBtX3VzZXNCYWNrRm9yd2FyZENhY2hlIHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV9jbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0b21hdGljUHJvY2Vz
c1ByZXdhcm1pbmcgeyBmYWxzZSB9OwogICAgIFdURjo6U3RyaW5nIG1fY3VzdG9tV2ViQ29udGVu
dFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOwogICAgIGJvb2wgbV9zaG91bGRDb25maWd1cmVKU0NG
b3JUZXN0aW5nIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYjM0ZjRiYzc3ZGFkODhkZmVhMDdlODdiYWE2NjM4MTc1
YmUzZWI1MC4uODg4MDJhMmU4MWJiMzEwNjk3OTFlMGJiM2UyNjY5NDlkNTE3Zjc2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTYx
MCwyMiArNjEwLDIyIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldExvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlCiAKIHZvaWQgV0tQcmVmZXJl
bmNlc1NldFBhZ2VDYWNoZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwg
Ym9vbCBlbmFibGVkKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFVzZXNQYWdl
Q2FjaGUoZW5hYmxlZCk7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0VXNlc0JhY2tG
b3J3YXJkQ2FjaGUoZW5hYmxlZCk7CiB9CiAKIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNo
ZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4g
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+dXNlc1BhZ2VDYWNoZSgpOworICAgIHJldHVybiB0b0lt
cGwocHJlZmVyZW5jZXNSZWYpLT51c2VzQmFja0ZvcndhcmRDYWNoZSgpOwogfQogCi12b2lkIFdL
UHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZiwgYm9vbCBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpCit2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBiYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKQogewotICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyhwYWdl
Q2FjaGVTdXBwb3J0c1BsdWdpbnMpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJh
Y2tGb3J3YXJkQ2FjaGVTdXBwb3J0c1BsdWdpbnMoYmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1
Z2lucyk7CiB9CiAKIGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lu
cyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwo
cHJlZmVyZW5jZXNSZWYpLT5wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoKTsKKyAgICByZXR1cm4g
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucygp
OwogfQogCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCAx
OTQyNjBlMGMyZWNkYzA5ZjRiZmFhOTY2NzU4NzVmYmE1ODJmYjQwLi5jMWE3MzA4ZDNkNTU0OTg3
ODE1MzBhZDliYTJmN2M2MzUzMWM3NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtOTQ0LDIyICs5NDQsMjIgQEAgLSAo
Qk9PTClfbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZAogCiAtICh2b2lkKV9zZXRVc2Vz
UGFnZUNhY2hlOihCT09MKWVuYWJsZWQKIHsKLSAgICBfcHJlZmVyZW5jZXMtPnNldFVzZXNQYWdl
Q2FjaGUoZW5hYmxlZCk7CisgICAgX3ByZWZlcmVuY2VzLT5zZXRVc2VzQmFja0ZvcndhcmRDYWNo
ZShlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfdXNlc1BhZ2VDYWNoZQogewotICAgIHJldHVybiBf
cHJlZmVyZW5jZXMtPnVzZXNQYWdlQ2FjaGUoKTsKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT51
c2VzQmFja0ZvcndhcmRDYWNoZSgpOwogfQogCiAtICh2b2lkKV9zZXRQYWdlQ2FjaGVTdXBwb3J0
c1BsdWdpbnM6KEJPT0wpZW5hYmxlZAogewotICAgIF9wcmVmZXJlbmNlcy0+c2V0UGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zKGVuYWJsZWQpOworICAgIF9wcmVmZXJlbmNlcy0+c2V0QmFja0Zvcndh
cmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhlbmFibGVkKTsKIH0KIAogLSAoQk9PTClfcGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zCiB7Ci0gICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+cGFnZUNhY2hlU3Vw
cG9ydHNQbHVnaW5zKCk7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+YmFja0ZvcndhcmRDYWNo
ZVN1cHBvcnRzUGx1Z2lucygpOwogfQogCiAtICh2b2lkKV9zZXRTaG91bGRQcmludEJhY2tncm91
bmRzOihCT09MKWVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDg3
N2Q1MmNhZDMwZTBmZTM4ZjNjOWVhNzNiOTg5MjU3MzhmMjU4ZTMuLjBiNjc3YmNjNGY4MjAyY2Uy
Mzk5NWEwODJiYmI1YjAzODIwZmM4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5t
bQpAQCAtMzEzLDEyICszMTMsMTIgQEAgLSAoQk9PTClwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5X
aXRoT3BlbmVyCiAKIC0gKEJPT0wpcGFnZUNhY2hlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLT51c2VzUGFnZUNhY2hlKCk7CisgICAgcmV0dXJuIF9wcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24tPnVzZXNCYWNrRm9yd2FyZENhY2hlKCk7CiB9CiAKIC0gKHZv
aWQpc2V0UGFnZUNhY2hlRW5hYmxlZDooQk9PTCllbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFVzZXNQYWdlQ2FjaGUoZW5hYmxlZCk7CisgICAgcmV0
dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFVzZXNCYWNrRm9yd2FyZENhY2hlKGVu
YWJsZWQpOwogfQogCiAtIChCT09MKXVzZXNTaW5nbGVXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggYWUy
NzhjNzYyNTA5M2VjNTUxMTAzYjM4NzFmMGI4YTQ5NjUwOTRmZS4uZTU3MDE2YjM1YzFiMWM1ZjA0
Zjc5MmY1ODMxMjg3NDJlYTVhOWQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcApAQCAtMjk4NCw3ICsyOTg0LDcgQEAgZ2Jv
b2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfcGFnZV9jYWNoZShXZWJLaXRTZXR0aW5n
cyogc2V0dGluZ3MpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJ
TkdTKHNldHRpbmdzKSwgRkFMU0UpOwogCi0gICAgcmV0dXJuIHNldHRpbmdzLT5wcml2LT5wcmVm
ZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgpOworICAgIHJldHVybiBzZXR0aW5ncy0+cHJpdi0+cHJl
ZmVyZW5jZXMtPnVzZXNCYWNrRm9yd2FyZENhY2hlKCk7CiB9CiAKIC8qKgpAQCAtMjk5OSwxMSAr
Mjk5OSwxMSBAQCB2b2lkIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3BhZ2VfY2FjaGUoV2Vi
S2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9vbGVhbiBlbgogICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSk7CiAKICAgICBXZWJLaXRTZXR0aW5nc1ByaXZh
dGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsKLSAgICBib29sIGN1cnJlbnRWYWx1ZSA9IHByaXYt
PnByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCk7CisgICAgYm9vbCBjdXJyZW50VmFsdWUgPSBw
cml2LT5wcmVmZXJlbmNlcy0+dXNlc0JhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICBpZiAoY3VycmVu
dFZhbHVlID09IGVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHByaXYtPnByZWZlcmVu
Y2VzLT5zZXRVc2VzUGFnZUNhY2hlKGVuYWJsZWQpOworICAgIHByaXYtPnByZWZlcmVuY2VzLT5z
ZXRVc2VzQmFja0ZvcndhcmRDYWNoZShlbmFibGVkKTsKICAgICBnX29iamVjdF9ub3RpZnkoR19P
QkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXBhZ2UtY2FjaGUiKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAppbmRleCBiM2EzZDZmYmE5
Njc0NmFiNDJlMjQxNTU5MzQzYTQ4OGQ1Y2Y3NjNlLi4wZGZkZTdjOTg2ODAxZDhjMTg1ODJjMmE4
YTM1NzkyNWFlNmMyMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9O
YXZpZ2F0aW9uU3RhdGUuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgICAgICB2b2lkIHdlYkdMTG9hZFBvbGljeShXZWJQYWdlUHJveHkmLCBjb25z
dCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+
JiYpIGNvbnN0IGZpbmFsOwogICAgICAgICB2b2lkIHJlc29sdmVXZWJHTExvYWRQb2xpY3koV2Vi
UGFnZVByb3h5JiwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpX
ZWJHTExvYWRQb2xpY3kpPiYmKSBjb25zdCBmaW5hbDsKLSAgICAgICAgYm9vbCB3aWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0oV2ViUGFnZVByb3h5JiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYs
IGJvb2wgaW5QYWdlQ2FjaGUpIGZpbmFsOworICAgICAgICBib29sIHdpbGxHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbShXZWJQYWdlUHJveHkmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBp
bkJhY2tGb3J3YXJkQ2FjaGUpIGZpbmFsOwogICAgICAgICBib29sIGRpZEZhaWxUb0luaXRpYWxp
emVQbHVnSW4oV2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAg
IGJvb2wgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpE
aWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9h
ZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwg
QVBJOjpEaWN0aW9uYXJ5JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6OlBsdWdpbk1v
ZHVsZUxvYWRQb2xpY3ksIGNvbnN0IFdURjo6U3RyaW5nJik+JiYpIGZpbmFsOwpAQCAtMjQwLDcg
KzI0MCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2ViVmlld0JhY2tGb3J3YXJkTGlzdEl0
ZW1BZGRlZFJlbW92ZWQgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRGYWlsVG9Jbml0aWFs
aXplUGx1Z0luV2l0aEluZm8gOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRCbG9ja0luc2Vj
dXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbEdv
VG9CYWNrRm9yd2FyZExpc3RJdGVtSW5QYWdlQ2FjaGUgOiAxOworICAgICAgICBib29sIHdlYlZp
ZXdXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1JbkJhY2tGb3J3YXJkQ2FjaGUgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xp
Y3lQbHVnaW5JbmZvQ29tcGxldGlvbkhhbmRsZXIgOiAxOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQppbmRleCA2YjE1YzA2
YmQ5ZWZhMTlhZDYzNmIzMjlhMmE3NmE2YmU4NTVjZGQ4Li45NGFlOWIxMzBmYjg5OTkzOGU5Y2Uy
NjFiNWU2OGUxM2U1MmUwMWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRl
bGVnYXRlKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld1dlYkdMTG9hZFBvbGljeUZvclVSTCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndlYkdMTG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhh
bmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXNvbHZl
V2ViR0xMb2FkUG9saWN5Rm9yVVJMID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dlYlZpZXc6cmVzb2x2ZVdlYkdMTG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhhbmRs
ZXI6KV07Ci0gICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1JblBhZ2VDYWNoZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTppblBhZ2VD
YWNoZTopXTsKKyAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbUluQmFja0ZvcndhcmRDYWNoZSA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bTppblBhZ2VDYWNoZTopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0RpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRoSW5mbyA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRo
SW5mbzopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJsb2Nr
SW5zZWN1cmVQbHVnaW5WZXJzaW9uV2l0aEluZm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJ
bmZvOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QmFja0Zvcndh
cmRMaXN0SXRlbUFkZGVkUmVtb3ZlZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmJhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZDpyZW1vdmVkOildOwpAQCAt
NDYyLDE2ICs0NjIsMTYgQEAgYm9vbCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6
OmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJQYWdlUHJveHkmLAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0m
IGl0ZW0sIGJvb2wgaW5QYWdlQ2FjaGUpCitib29sIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlv
bkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlKQogewotICAg
IGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1JblBhZ2VDYWNoZSkKKyAgICBpZiAoIW1fbmF2
aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtSW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1f
bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwogICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVBy
aXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dl
YlZpZXcgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOndyYXBwZXIoaXRlbSkgaW5QYWdlQ2Fj
aGU6aW5QYWdlQ2FjaGVdOworICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4p
bmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyB3
aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06d3JhcHBlcihpdGVtKSBpblBhZ2VDYWNoZTppbkJh
Y2tGb3J3YXJkQ2FjaGVdOwogICAgIHJldHVybiB0cnVlOwogfQogI2VuZGlmCkBAIC03NTQsNyAr
NzU0LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFN0YXJ0
UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBhZ2VQcm8KICAgICBpZiAoIW5hdmlnYXRpb25EZWxl
Z2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQg
dGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxs
IGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1
dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJh
Y2svZm9yd2FyZCBjYWNoZS4KIAogICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uVXNl
ckluZm8pCiAgICAgICAgIFsoaWQgPFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdh
dGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRTdGFy
dFByb3Zpc2lvbmFsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pIHVzZXJJbmZvOnVzZXJJ
bmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5TU2VjdXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIo
KSkgOiBuaWxdOwpAQCAtNzcxLDcgKzc3MSw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZp
Z2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hCiAg
ICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBi
dXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBw
YWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlv
biBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlv
bkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24p
XTsKIH0KQEAgLTgzNCw3ICs4MzQsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0
ZUVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVyKFdLV2ViVmlldyAqd2ViVmlldywgVwogLy8gRklY
TUU6IFNob3VsZG4ndCBuZWVkIHRvIHBhc3MgdGhlIFdlYkZyYW1lUHJveHkgaW4gaGVyZS4gQXQg
bW9zdCwgYSBGcmFtZUhhbmRsZS4KIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xp
ZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZp
Z2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3Qq
KQogewotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBu
b3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9u
cyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0
IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVs
bCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAK
ICAgICAvLyBGSVhNRTogU2V0IHRoZSBlcnJvciBvbiB0aGUgbmF2aWdhdGlvbiBvYmplY3QuCiAK
QEAgLTg3Miw3ICs4NzIsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVu
dDo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZp
Z2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJy
ZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgor
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVs
bCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJv
dWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdl
YlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZENvbW1pdE5hdmlnYXRpb246d3Jh
cHBlcihuYXZpZ2F0aW9uKV07CiB9CkBAIC04ODYsNyArODg2LDcgQEAgdm9pZCBOYXZpZ2F0aW9u
U3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9hZChXZWJQYWdlUHJv
eHkmIHBhZ2UKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBu
dWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRo
cm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhh
dCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZv
ciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAg
IFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlv
bkRlbGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgbmF2
aWdhdGlvbkRpZEZpbmlzaERvY3VtZW50TG9hZDp3cmFwcGVyKG5hdmlnYXRpb24pXTsKIH0KQEAg
LTkwMCw3ICs5MDAsNyBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
ZGlkRmluaXNoTmF2aWdhdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZpZ2F0
aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
YXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50
bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBo
ZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdo
IHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZp
ZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRpZEZpbmlzaE5hdmlnYXRpb246d3JhcHBl
cihuYXZpZ2F0aW9uKV07CiB9CkBAIC05MTYsNyArOTE2LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQ
cm94eSYKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxs
IGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91
Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBu
YXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBz
b21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAgIGF1
dG8gZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0ZXIgPSBjcmVhdGVFcnJvcldpdGhSZWNvdmVyeUF0
dGVtcHRlcihtX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcsIHdlYkZyYW1lUHJveHksIGVycm9y
KTsKICAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEaWRGYWlsTmF2aWdhdGlvbldpdGhFcnJvclVzZXJJbmZvKQpAQCAtOTM0LDcgKzkz
NCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uKFdlYlBhZ2VQcm94eSYsCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdh
dGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRo
YXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJv
IGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwg
YnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlLgogCiAgICAgW3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25E
ZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1fbmF2
aWdhdGlvblN0YXRlLm1fd2ViVmlldyBuYXZpZ2F0aW9uOndyYXBwZXIobmF2aWdhdGlvbikgZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbjp0b1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUobmF2
aWdhdGlvblR5cGUpXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuY3BwCmluZGV4IGI0ODI3NzI5ZDcyNDIxNTJlYjQ3NTE2YjgwZTRkYTA3
NWFmYjc1M2UuLjM1NjIzNTU1N2E3ZWM3ZmM0NmEzZGFhMzVlN2M4ZDk4OTI2ZTBhMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApA
QCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1h
aW5GcmFtZUxvYWRUZXJtaW5hbFN0YXRlKCkKICAgICBpZiAoIW1fc25hcHNob3RSZW1vdmFsVHJh
Y2tlci5ldmVudE9jY3VycmVkKFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6Ok1haW5GcmFtZUxvYWQp
KQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBDb21pbmcgYmFjayBmcm9tIHRoZSBwYWdlIGNh
Y2hlIHdpbGwgcmVzdWx0IGluIGdldHRpbmcgYSBsb2FkIGV2ZW50LCBidXQgbm8gZmlyc3Qgdmlz
dWFsbHkgbm9uLWVtcHR5IGxheW91dC4KKyAgICAvLyBDb21pbmcgYmFjayBmcm9tIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUgd2lsbCByZXN1bHQgaW4gZ2V0dGluZyBhIGxvYWQgZXZlbnQsIGJ1dCBu
byBmaXJzdCB2aXN1YWxseSBub24tZW1wdHkgbGF5b3V0LgogICAgIC8vIFdlYkNvcmUgY29uc2lk
ZXJzIGEgbG9hZGVkIGRvY3VtZW50IGVub3VnaCB0byBiZSBjb25zaWRlcmVkIHZpc3VhbGx5IG5v
bi1lbXB0eSwgc28gdGhhdCdzIGdvb2QKICAgICAvLyBlbm91Z2ggZm9yIHVzIHRvby4KICAgICBt
X3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIuY2FuY2VsT3V0c3RhbmRpbmdFdmVudChTbmFwc2hvdFJl
bW92YWxUcmFja2VyOjpWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGIzNzI1NThmZWM3NDBlOTBmMzE3ZmQ3MmQ4OWMw
YTk4ZTYzZmViNWYuLjJjYzk2OTM2YzcwZDNiYjkzMzljZmJmYTUxOGIyN2RkZWZmYmJmY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODE1LDcgKzgxNSw3
IEBAIFdlYkJhY2tGb3J3YXJkQ2FjaGUmIFdlYlBhZ2VQcm94eTo6YmFja0ZvcndhcmRDYWNoZSgp
IGNvbnN0CiAKIGJvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRVc2VCYWNrRm9yd2FyZENhY2hlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9wcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgpICYmIGJh
Y2tGb3J3YXJkQ2FjaGUoKS5jYXBhY2l0eSgpID4gMDsKKyAgICByZXR1cm4gbV9wcmVmZXJlbmNl
cy0+dXNlc0JhY2tGb3J3YXJkQ2FjaGUoKSAmJiBiYWNrRm9yd2FyZENhY2hlKCkuY2FwYWNpdHko
KSA+IDA7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBzdGQ6OnVu
aXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4mJiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdlYkZyYW1l
UHJveHk+JiYgbWFpbkZyYW1lKQpAQCAtMTU2NywxMiArMTU2NywxMiBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFk
ZGVkLCBWZWN0bwogICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRDYW5Hb0ZvcndhcmQodHJhbnNhY3Rp
b24sIG1fYmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShjb25zdCBCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyJiBpdGVtSUQsIGJvb2wgaW5QYWdlQ2FjaGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6
d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKGNvbnN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXImIGl0ZW1JRCwgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUpCiB7CiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIAogICAgIGlmIChhdXRvKiBpdGVtID0g
bV9iYWNrRm9yd2FyZExpc3QtPml0ZW1Gb3JJRChpdGVtSUQpKQotICAgICAgICBtX25hdmlnYXRp
b25DbGllbnQtPndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSgqdGhpcywgKml0ZW0sIGluUGFn
ZUNhY2hlKTsKKyAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsR29Ub0JhY2tGb3J3YXJk
TGlzdEl0ZW0oKnRoaXMsICppdGVtLCBpbkJhY2tGb3J3YXJkQ2FjaGUpOwogfQogCiBib29sIFdl
YlBhZ2VQcm94eTo6c2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pCkBAIC00MDgzLDcgKzQwODMsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmCiAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0
aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUg
bmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0
IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247
CiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAg
bmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsK
QEAgLTQxNTAsNyArNDE1MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8CiAgICAgTUVTU0FH
RV9DSEVDSyhwcm9jZXNzLCBmcmFtZSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocHJvY2Vzcywg
cmVxdWVzdC51cmwoKSk7CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sg
dGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHpl
cm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHpl
cm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhy
b3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+
IG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uSUQgPyBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwogICAgIGlmIChuYXZpZ2F0aW9uKQogICAgICAgICBu
YXZpZ2F0aW9uLT5hcHBlbmRSZWRpcmVjdGlvblVSTChyZXF1ZXN0LnVybCgpKTsKQEAgLTQyNDQs
NyArNDI0NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwCiAgICAgICAgICAgICBhdXRvbWF0
aW9uU2Vzc2lvbi0+bmF2aWdhdGlvbk9jY3VycmVkRm9yRnJhbWUoKmZyYW1lKTsKICAgICB9CiAK
LSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQg
aXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdh
dGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1l
c3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3Mg
Y3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAg
aWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdh
dGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLnRha2VOYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CkBA
IC00MzE5LDcgKzQzMTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZwogICAgIFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdF
X0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBtZXNz
YWdlIGNoZWNrIHRoYXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1
cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUu
CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBtZXNzYWdlIGNoZWNrIHRoYXQgbmF2aWdhdGlvbklE
IGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmln
YXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBSZWZQdHI8QVBJOjpO
YXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBu
YXZpZ2F0aW9uSUQgJiYgKG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCkpKSB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
QEAgLTQ0MzYsNyArNDQzNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0CiAgICAgICAgICAg
ICBhdXRvbWF0aW9uU2Vzc2lvbi0+ZG9jdW1lbnRMb2FkZWRGb3JGcmFtZSgqZnJhbWUpOwogICAg
IH0KIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRp
b25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBu
YXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQg
aXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNr
L2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsK
ICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBu
YXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpA
QCAtNDQ1NSw3ICs0NDU1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWcKICAgICBXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FH
RV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVz
c2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBj
dXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hl
LgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25J
RCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYg
bmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2
aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDUwMCw3ICs0NTAwLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXQKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBu
b3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9u
cyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2Fn
ZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJy
ZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQg
Y2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAo
ZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9u
ID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDU0Myw3
ICs0NTQzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWkKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgZnJhbWUpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKG1fcHJvY2VzcywgdXJsKTsK
IAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25J
RCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
bWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQn
cyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2Zv
cndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZp
Z2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3ODVjYzczYzBlNWM2ZDVkNThm
Yzc4ZGFlMTU0NWJiMTQyMTNhODk4Li5jNmE0ZmRjZmEzNWVjYjU0MTI5YTk3YjQ1MDg4YTJmYzEw
NDczNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTU4LDcg
KzU1OCw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb1RvQmFja0Zv
cndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKICAgICB2b2lkIHRyeVJlc3RvcmVT
Y3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRlbSwgVmVjdG9yPFJlZjxXZWJCYWNrRm9yd2FyZExp
c3RJdGVtPj4mJiByZW1vdmVkKTsKLSAgICB2b2lkIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRl
bShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgYm9vbCBpblBhZ2VD
YWNoZSk7CisgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oY29uc3QgV2ViQ29y
ZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlKTsK
IAogICAgIGJvb2wgc2hvdWxkS2VlcEN1cnJlbnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDMwNDNlY2U0ZTg1MTkyZjFmYzAyOTg1YWE3
ZDY5MWU3MDIzZDExN2UuLjdiOWZlMjA4NDJjN2QwODhlNDc4NDJiMGFiYzQxMWZhNzczY2JjMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTIzMCw3ICsyMzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJh
Y2tGb3J3YXJkQmFja0xpc3RDb3VudCgpIC0+ICh1aW50MzJfdCBjb3VudCkgU3luY2hyb25vdXMK
ICAgICBCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQoKSAtPiAodWludDMyX3QgY291bnQpIFN5
bmNocm9ub3VzCiAgICAgQmFja0ZvcndhcmRDbGVhcigpCi0gICAgV2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGl0ZW1J
RCwgYm9vbCBpblBhZ2VDYWNoZSkKKyAgICBXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oc3Ry
dWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgaXRlbUlELCBib29sIGluQmFj
a0ZvcndhcmRDYWNoZSkKIAogICAgICMgVW5kby9SZWRvIG1lc3NhZ2VzCiAgICAgUmVnaXN0ZXJF
ZGl0Q29tbWFuZEZvclVuZG8odWludDY0X3QgY29tbWFuZElELCBTdHJpbmcgbGFiZWwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYzA2ZDZjNmI3N2E3
NGVlN2Q5MzliNzU4ZTAxZmNhZTZmY2E2ODEwNy4uMjc4ZTRjNzNmYmRlM2MwOGVmZWRhZjEyMzc4
OTAwYjE5YmY2MDVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtMTU3Miw3ICsxNTcyLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJV
UkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYKIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6dXBkYXRlQmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KCkKIHsKLSAg
ICBpZiAoIW1fY29uZmlndXJhdGlvbi0+dXNlc1BhZ2VDYWNoZSgpKQorICAgIGlmICghbV9jb25m
aWd1cmF0aW9uLT51c2VzQmFja0ZvcndhcmRDYWNoZSgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICB1bnNpZ25lZCBkdW1teSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uY3BwCmluZGV4IGQ4ZTNhOWYyMzE4N2VmYjNiNWIwNzY0YTE0YjEy
ZDVlOGM1MGIyMDUuLjc3OTg3ODIzMWY5Yzg0MDU1NTRmNGNhYTJjNzE3N2I0ODQ1ZDkxZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3Bw
CkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNUYXJn
ZXRJdGVtKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1ib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5QYWdlQ2FjaGUo
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCitib29sIFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbUlzSW5CYWNrRm9yd2FyZENhY2hlKFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbVJlZiBpdGVtUmVmKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaAppbmRleCBmMDBlYWQ0NjY2
MTk4OTU3NWJjMmI5ZGU3YWM5ZDliMjFkNTU3ZWE2Li5jOWE2MDM1MWY2NWY4NjlmNDI5MWQ2ODUy
YjA3OGE4ZmVmZTUwMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0Zv
cndhcmRMaXN0SXRlbS5oCkBAIC00NCw3ICs0NCw3IEBAIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1Db3B5VGl0bGUoV0tCdW5kbGVCYWNrRm9yd2FyZExp
CiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRh
cmdldChXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVD
QVRFRDsKIFdLX0VYUE9SVCBib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzVGFyZ2V0
SXRlbShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVD
QVRFRDsKIAotV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJblBh
Z2VDYWNoZShXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQ
UkVDQVRFRDsKK1dLX0VYUE9SVCBib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5C
YWNrRm9yd2FyZENhY2hlKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKSBXS19D
X0FQSV9ERVBSRUNBVEVEOwogV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJ
dGVtSGFzQ2FjaGVkUGFnZUV4cGlyZWQoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0
ZW0pIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAKIFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxl
QmFja0ZvcndhcmRMaXN0SXRlbUNvcHlDaGlsZHJlbihXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVDQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcAppbmRleCAwZWNhNGMxZDMyMGNlOTBkZWMxY2VhODM1NGZlMjI2ZTcwZjQ0NTMy
Li4wMjY5NWQzZWI4OWY1ZTY0MDkzODQxNDI0OWU3ZjVjOWY4MmFjNDEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVy
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nl
c3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgQmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlIHRvQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKGNvbnN0IFdlYkNvcmU6Okhp
c3RvcnlJdGVtJgogICAgIHN0YXRlLnBhZ2VTdGF0ZS5tYWluRnJhbWVTdGF0ZSA9IHRvRnJhbWVT
dGF0ZShoaXN0b3J5SXRlbSk7CiAgICAgc3RhdGUucGFnZVN0YXRlLnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgPSBoaXN0b3J5SXRlbS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCk7
CiAgICAgc3RhdGUucGFnZVN0YXRlLnNlc3Npb25TdGF0ZU9iamVjdCA9IGhpc3RvcnlJdGVtLnN0
YXRlT2JqZWN0KCk7Ci0gICAgc3RhdGUuaGFzQ2FjaGVkUGFnZSA9IGhpc3RvcnlJdGVtLmlzSW5Q
YWdlQ2FjaGUoKTsKKyAgICBzdGF0ZS5oYXNDYWNoZWRQYWdlID0gaGlzdG9yeUl0ZW0uaXNJbkJh
Y2tGb3J3YXJkQ2FjaGUoKTsKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IGNjZWQxMWZhYmRlMWViYTkyYmQ2YzdlMGNiMTZiNTc5OTcz
ZDNhNGMuLjc4ZGE0N2NhOWUxOWNmZTdmZDZlYzcxY2ZhZGU3OTZlZTVkOTU2YWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpXZWJGcmFtZUxvYWRlckNsaWVudCgpCiAgICAgLCBtX2hhc1NlbnRSZXNwb25z
ZVRvUGx1Z2luVmlldyhmYWxzZSkKICAgICAsIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbihm
YWxzZSkKICAgICAsIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIoZmFsc2UpCi0gICAg
LCBtX2ZyYW1lQ2FtZUZyb21QYWdlQ2FjaGUoZmFsc2UpCisgICAgLCBtX2ZyYW1lQ2FtZUZyb21C
YWNrRm9yd2FyZENhY2hlKGZhbHNlKQogewogfQogCkBAIC0xMjA2LDcgKzEyMDYsNyBAQCBib29s
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0m
IGl0ZW0pIGNvbnN0CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAg
ICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVt
LmlkZW50aWZpZXIoKSwgaXRlbS5pc0luUGFnZUNhY2hlKCkpKTsKKyAgICB3ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVt
LmlkZW50aWZpZXIoKSwgaXRlbS5pc0luQmFja0ZvcndhcmRDYWNoZSgpKSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTE0NjUsNyArMTQ2NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopCiB7
CiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBtX2ZyYW1lLT5jb3JlRnJh
bWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKTsKICAgICBtX2ZyYW1l
SGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyID0gbV9mcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBtX2Zy
YW1lLT5wYWdlKCktPnNob3VsZFVzZUN1c3RvbUNvbnRlbnRQcm92aWRlckZvclJlc3BvbnNlKHJl
c3BvbnNlKTsKLSAgICBtX2ZyYW1lQ2FtZUZyb21QYWdlQ2FjaGUgPSB0cnVlOworICAgIG1fZnJh
bWVDYW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUgPSB0cnVlOwogfQogCiB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKQEAgLTE0ODcsNyAr
MTQ4Nyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRl
ZEZvck5ld1BhZ2UoKQogCiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBt
X2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2Uo
KTsKICAgICBtX2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyID0gaXNNYWluRnJhbWUgJiYg
d2ViUGFnZS0+c2hvdWxkVXNlQ3VzdG9tQ29udGVudFByb3ZpZGVyRm9yUmVzcG9uc2UocmVzcG9u
c2UpOwotICAgIG1fZnJhbWVDYW1lRnJvbVBhZ2VDYWNoZSA9IGZhbHNlOworICAgIG1fZnJhbWVD
YW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUgPSBmYWxzZTsKIAogICAgIFNjcm9sbGJhck1vZGUgZGVm
YXVsdFNjcm9sbGJhck1vZGUgPSBzaG91bGRIaWRlU2Nyb2xsYmFycyA/IFNjcm9sbGJhckFsd2F5
c09mZiA6IFNjcm9sbGJhckF1dG87CiAKQEAgLTE1MzMsOSArMTUzMyw5IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogI2VuZGlm
CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tUGFnZUNhY2hl
KCkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRD
YWNoZSgpCiB7Ci0gICAgbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgICBtX2Zy
YW1lQ2FtZUZyb21CYWNrRm9yd2FyZENhY2hlID0gdHJ1ZTsKIH0KIAogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sIHZhbHVlKQpAQCAtMTU5
Niw3ICsxNTk2LDcgQEAgUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0
ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW0KICAgICBwYXJhbWV0ZXJzLnZh
bHVlcyA9IHBhcmFtVmFsdWVzOwogICAgIHBhcmFtZXRlcnMubWltZVR5cGUgPSBtaW1lVHlwZTsK
ICAgICBwYXJhbWV0ZXJzLmlzRnVsbEZyYW1lUGx1Z2luID0gbG9hZE1hbnVhbGx5OwotICAgIHBh
cmFtZXRlcnMuc2hvdWxkVXNlTWFudWFsTG9hZGVyID0gcGFyYW1ldGVycy5pc0Z1bGxGcmFtZVBs
dWdpbiAmJiAhbV9mcmFtZUNhbWVGcm9tUGFnZUNhY2hlOworICAgIHBhcmFtZXRlcnMuc2hvdWxk
VXNlTWFudWFsTG9hZGVyID0gcGFyYW1ldGVycy5pc0Z1bGxGcmFtZVBsdWdpbiAmJiAhbV9mcmFt
ZUNhbWVGcm9tQmFja0ZvcndhcmRDYWNoZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBwYXJh
bWV0ZXJzLmxheWVySG9zdGluZ01vZGUgPSBtX2ZyYW1lLT5wYWdlKCktPmxheWVySG9zdGluZ01v
ZGUoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhZmExN2E0OTY3
Y2ZjMDNhNmM5NDhkYjk5Y2U4MDE0MjVkZWM0N2YxLi42MTFmY2I4NmRiZTYzYWQ3MzNiMTIwMTc1
NmExNTJkZGNiOTM2MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNzEsNyAr
NzEsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKikgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIGZpbmFsOworICAgIGJv
b2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogI2Vu
ZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZvck5vbkhUTUwoKSBmaW5hbDsKICAgICAKQEAgLTIw
Niw3ICsyMDYsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21t
aXR0ZWRGb3JOZXdQYWdlKCkgZmluYWw7CiAKLSAgICB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNh
Y2hlKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBm
aW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbDsK
IApAQCAtMjgxLDcgKzI4MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25z
ZVRvUGx1Z2luVmlldzsKICAgICBib29sIG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbjsKICAg
ICBib29sIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXI7Ci0gICAgYm9vbCBtX2ZyYW1l
Q2FtZUZyb21QYWdlQ2FjaGU7CisgICAgYm9vbCBtX2ZyYW1lQ2FtZUZyb21CYWNrRm9yd2FyZENh
Y2hlOwogICAgIGJvb2wgbV91c2VJY29uTG9hZGluZ0NsaWVudCB7IGZhbHNlIH07CiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBPcHRpb25hbDxGcmFtZVNwZWNpZmlj
U3RvcmFnZUFjY2Vzc0lkZW50aWZpZXI+IG1fZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVu
dGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0KaW5kZXgg
ZmNhOWJkZjA2ZWRhYTNiNDk4N2IxOTg1NGU5MzNjZTZmMzQ3NWNiMS4uOGZhZjMxZWE0YjdiMzBl
NTdkYzQ4ZWQyNjRhYzk2YWEyMTRmZGRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9h
ZGVyQ2xpZW50SU9TLm1tCkBAIC01Myw3ICs1Myw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZFJlc3RvcmVGcmFtZUhpZXJhcmNoeUZvckNhY2hlZEZyYW1lKCkKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dE9u
UmVzdG9yZUZyb21QYWdlQ2FjaGUoKQorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Zm9yY2VM
YXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRl
ZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwCmluZGV4IDRiYjRlMzQ0MjYyNzI1ODE4
YmQ0MDA5MGQ5ZGFlZWMwZjU2MzI5ZTUuLjJhZGQyMWJiZWU5NDlhMDhkNGJiMmMxMWY4YjY0MzFi
NTEwZWI5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zp
c2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgog
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJk
TGlzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tG
b3J3YXJkTGlzdFByb3h5LmNwcAppbmRleCBkODBkN2Y5NTdhOTYzYmQyYjlkZmI5MmJiZDk1NWI4
ZDVkNTI0NDBmLi45MTc0ZmUxZjk5YzJmYTUzYjkzZDdmOTJkZGUyZGYxZGFiZTQ1NmJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExp
c3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHkuY3BwCkBAIC0zNCwxMCArMzQsMTAgQEAKICNpbmNsdWRlICJXZWJQ
YWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRD
YWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hp
c3RvcnlDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+
CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnJlbW92ZUl0
ZW0oY29uc3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYgaXRlbUlECiAgICAgaWYgKCFpdGVt
KQogICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCku
cmVtb3ZlKCppdGVtKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUo
Kml0ZW0pOwogICAgIFdlYkNvcmU6OlBhZ2U6OmNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBhZ2Vz
KGl0ZW0uZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDA4MTc5Mjc2M2JiY2FiMzg1Y2FhMjc1YzM1MGJmNjlkNzc4ZmFjYjAu
LmRmOTYxZTQwOWM1YTgzOWFiMThjZDU1MjdlNmY4NDk2Yzg2NzkzYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TYW1wbGluZ1Byb2ZpbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJj
aGl2ZVJlc291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29tbW9uVk0uaD4KQEAgLTE5Miw3ICsx
OTMsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BpbmdMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgpAQCAtMTQ5MCwxMiArMTQ5MCwxMiBAQCB2b2lkIFdl
YlBhZ2U6OnN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoIVBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuYWRkSWZDYWNoZWFibGUoKmN1cnJlbnRI
aXN0b3J5SXRlbSwgY29yZVBhZ2UoKSkpIHsKKyAgICBpZiAoIUJhY2tGb3J3YXJkQ2FjaGU6OnNp
bmdsZXRvbigpLmFkZElmQ2FjaGVhYmxlKCpjdXJyZW50SGlzdG9yeUl0ZW0sIGNvcmVQYWdlKCkp
KSB7CiAgICAgICAgIGZhaWxlZFRvU3VzcGVuZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgLy8gUGFnZSBjYWNoZSBkb2VzIG5vdCBicmVhayB0aGUgb3BlbmVyIGxpbmsgZm9yIHRo
ZSBtYWluIGZyYW1lIChvbmx5IGRvZXMgc28gZm9yIHRoZSBzdWJmcmFtZXMpIGJlY2F1c2UgdGhl
CisgICAgLy8gQmFjay9mb3J3YXJkIGNhY2hlIGRvZXMgbm90IGJyZWFrIHRoZSBvcGVuZXIgbGlu
ayBmb3IgdGhlIG1haW4gZnJhbWUgKG9ubHkgZG9lcyBzbyBmb3IgdGhlIHN1YmZyYW1lcykgYmVj
YXVzZSB0aGUKICAgICAvLyBtYWluIGZyYW1lIGlzIG5vcm1hbGx5IHJlLXVzZWQgZm9yIHRoZSBu
YXZpZ2F0aW9uLiBIb3dldmVyLCBpbiB0aGUgY2FzZSBvZiBwcm9jZXNzLXN3YXBwaW5nLCB0aGUg
bWFpbiBmcmFtZQogICAgIC8vIGlzIG5vdyBob3N0ZWQgaW4gYW5vdGhlciBwcm9jZXNzIGFuZCB0
aGUgb25lIGluIHRoaXMgcHJvY2VzcyBpcyBpbiB0aGUgY2FjaGUuCiAgICAgaWYgKG1fbWFpbkZy
YW1lICYmIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAppbmRleCBjNjZjODA1ZDYxZTRjMjUxNmUyNjhhM2VmOTRhZmQ4OGRiNjhl
NzU4Li42YzMyYjQyN2I1ZTgxZjZlN2Y2Mzg2NzZmYmUyYjFhNTY4OGFkYTc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC04Miw2ICs4Miw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0NQVU1vbml0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmg+CkBAIC0xMDcs
NyArMTA4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci5oPgpAQCAtMzA2LDkgKzMwNiw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAg
ICAgICAgICB9CiAjZW5kaWYKIAotICAgICAgICAgICAgYXV0byBtYWludGFpblBhZ2VDYWNoZSA9
IG1faXNTdXNwZW5kaW5nID8gV2ViQ29yZTo6TWFpbnRhaW5QYWdlQ2FjaGU6OlllcyA6IFdlYkNv
cmU6Ok1haW50YWluUGFnZUNhY2hlOjpObzsKKyAgICAgICAgICAgIGF1dG8gbWFpbnRhaW5CYWNr
Rm9yd2FyZENhY2hlID0gbV9pc1N1c3BlbmRpbmcgPyBXZWJDb3JlOjpNYWludGFpbkJhY2tGb3J3
YXJkQ2FjaGU6OlllcyA6IFdlYkNvcmU6Ok1haW50YWluQmFja0ZvcndhcmRDYWNoZTo6Tm87CiAg
ICAgICAgICAgICBhdXRvIG1haW50YWluTWVtb3J5Q2FjaGUgPSBtX2lzU3VzcGVuZGluZyAmJiBt
X2hhc1N1c3BlbmRlZFBhZ2VQcm94eSA/IFdlYkNvcmU6Ok1haW50YWluTWVtb3J5Q2FjaGU6Olll
cyA6IFdlYkNvcmU6Ok1haW50YWluTWVtb3J5Q2FjaGU6Ok5vOwotICAgICAgICAgICAgV2ViQ29y
ZTo6cmVsZWFzZU1lbW9yeShjcml0aWNhbCwgc3luY2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hl
LCBtYWludGFpbk1lbW9yeUNhY2hlKTsKKyAgICAgICAgICAgIFdlYkNvcmU6OnJlbGVhc2VNZW1v
cnkoY3JpdGljYWwsIHN5bmNocm9ub3VzLCBtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUsIG1haW50
YWluTWVtb3J5Q2FjaGUpOwogICAgICAgICB9KTsKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIu
c2V0U2hvdWxkVXNlUGVyaW9kaWNNZW1vcnlNb25pdG9yKHRydWUpOwpAQCAtNDcxLDE1ICs0NzEs
NiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcAogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbigpOwogfQogCi1ib29sIFdlYlByb2Nlc3M6Omhhc1BhZ2VSZXF1aXJpbmdQYWdlQ2Fj
aGVXaGlsZVN1c3BlbmRlZCgpIGNvbnN0Ci17Ci0gICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdl
TWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlmIChwYWdlLT5pc1N1c3BlbmRlZCgpKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBX
ZWJQcm9jZXNzOjphcmVBbGxQYWdlc1N1c3BlbmRlZCgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRv
JiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKSB7CkBAIC02MzEsMTMgKzYyMiwxMyBAQCB2b2lk
IFdlYlByb2Nlc3M6OnNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVu
c2lnbmVkIGNhY2hlTWluRGVhZENhcGFjaXR5ID0gMDsKICAgICB1bnNpZ25lZCBjYWNoZU1heERl
YWRDYXBhY2l0eSA9IDA7CiAgICAgU2Vjb25kcyBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVy
dmFsOwotICAgIHVuc2lnbmVkIHBhZ2VDYWNoZVNpemUgPSAwOwotICAgIGNhbGN1bGF0ZU1lbW9y
eUNhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgY2FjaGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRD
YXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50
ZXJ2YWwsIHBhZ2VDYWNoZVNpemUpOworICAgIHVuc2lnbmVkIGJhY2tGb3J3YXJkQ2FjaGVTaXpl
ID0gMDsKKyAgICBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKGNhY2hlTW9kZWwsIGNhY2hlVG90
YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBk
ZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLCBiYWNrRm9yd2FyZENhY2hlU2l6ZSk7CiAK
ICAgICBhdXRvJiBtZW1vcnlDYWNoZSA9IE1lbW9yeUNhY2hlOjpzaW5nbGV0b24oKTsKICAgICBt
ZW1vcnlDYWNoZS5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERl
YWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKICAgICBtZW1vcnlDYWNoZS5zZXREZWFk
RGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2
YWwpOwotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShwYWdlQ2FjaGVTaXpl
KTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5zZXRNYXhTaXplKGJhY2tGb3J3
YXJkQ2FjaGVTaXplKTsKIAogICAgIHBsYXRmb3JtU2V0Q2FjaGVNb2RlbChjYWNoZU1vZGVsKTsK
IH0KQEAgLTEzMDksNyArMTMwMCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURh
dGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywKICAgICBVTlVT
RURfUEFSQU0obW9kaWZpZWRTaW5jZSk7CiAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250
YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlKSkgewotICAgICAgICBQYWdlQ2FjaGU6
OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok5vbmUpOworICAg
ICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVu
aW5nUmVhc29uOjpOb25lKTsKICAgICAgICAgTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLmV2aWN0
UmVzb3VyY2VzKHNlc3Npb25JRCgpKTsKIAogICAgICAgICBDcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlOjpzaW5nbGV0b24oKS5jbGVhcigpOwpAQCAtMTc3Niw3ICsxNzY3LDcgQEAgYm9v
bCBXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2ViUGFnZSgpIGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vz
czo6c2V0QmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KHVuc2lnbmVkIGNhcGFjaXR5KQogewotICAg
IFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShjYXBhY2l0eSk7CisgICAgQmFja0Zv
cndhcmRDYWNoZTo6c2luZ2xldG9uKCkuc2V0TWF4U2l6ZShjYXBhY2l0eSk7CiB9CiAKIHZvaWQg
V2ViUHJvY2Vzczo6Y2xlYXJDYWNoZWRQYWdlKEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFj
a0ZvcndhcmRJdGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKQEAgLTE3ODUsNyArMTc3Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJDYWNoZWRQ
YWdlKEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIENvCiAgICAg
aWYgKCFpdGVtKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAotICAgIFBh
Z2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKCppdGVtKTsKKyAgICBCYWNrRm9yd2FyZENhY2hl
OjpzaW5nbGV0b24oKS5yZW1vdmUoKml0ZW0pOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGRkNjBlOGQ4MWUyZmFl
MTI2ZjA0NTk1N2MxY2JjNmUyMzllZGE5OGIuLjhjMjQ2YWZhNzdmZTE1ZmFmOTk0ZTA4OWU3N2Yx
M2YzZTUyNjk1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzkw
LDcgKzM5MCw2IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBTaG91bGRBY2tub3dsZWRnZVdo
ZW5SZWFkeVRvU3VzcGVuZCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIGFjdHVhbFByZXBhcmVUb1N1
c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQpOwogCi0gICAgYm9vbCBo
YXNQYWdlUmVxdWlyaW5nUGFnZUNhY2hlV2hpbGVTdXNwZW5kZWQoKSBjb25zdDsKICAgICBib29s
IGFyZUFsbFBhZ2VzU3VzcGVuZGVkKCkgY29uc3Q7CiAKICAgICB2b2lkIGVuc3VyZUF1dG9tYXRp
b25TZXNzaW9uUHJveHkoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWRlbnRpZmllcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCmluZGV4
IDk4OTc0NTYzN2RhM2MxNGQ3OGI5NzJjYTQ1NTYwYzk0YjMwMDk3NmUuLjJkYjczOGZmMDUzZDlm
NzU3MDBiNDM2ZDE5ZWI5ZmQ2OGI2MDdhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCkBAIC04Miw3ICs4Miw3IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIFdlYk1lZGlhQ2FwdHVyZVR5cGUpIHsKIC0gKHZvaWQpd2Vi
VmlldzooV2ViVmlldyAqKXdlYlZpZXcgZWxlbWVudERpZEZvY3VzTm9kZTooRE9NTm9kZSAqKW5v
ZGU7CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGVsZW1lbnREaWRCbHVyTm9k
ZTooRE9NTm9kZSAqKW5vZGU7CiAKLS8vIFBhZ2VDYWNoZSBzdXBwb3J0CisvLyBCYWNrRm9yd2Fy
ZENhY2hlIHN1cHBvcnQKIC0gKHZvaWQpd2ViVmlld0RpZFJlc3RvcmVGcm9tUGFnZUNhY2hlOihX
ZWJWaWV3ICopd2ViVmlldzsKIAogLSAoTlNWaWV3ICopd2ViVmlldzooV2ViVmlldyAqKXdlYlZp
ZXcgcGx1Z0luVmlld1dpdGhBcmd1bWVudHM6KE5TRGljdGlvbmFyeSAqKWFyZ3VtZW50cyBmcm9t
UGx1Z0luUGFja2FnZTooV2ViUGx1Z2luUGFja2FnZSAqKXBhY2thZ2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCmluZGV4IGI3MDk1
YTdkZTI4NjlmMWY2ZjU0ZWY1OTlkNThhYTNmMWRhZTI5ZDQuLmQwNTRhMWI5NGQwMDE4ODRhYzQz
ODQ5YTE0N2VlOTZjZDFiMzdjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1tCkBAIC0yNiw3ICsyNiw3IEBACiAKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZExpc3QuaCIKIAotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgQmFja0ZvcndhcmRMaXN0OjphZGRJdGVt
KFJlZjxIaXN0b3J5SXRlbT4mJiBuZXdJdGVtKQogICAgICAgICB3aGlsZSAobV9lbnRyaWVzLnNp
emUoKSA+IHRhcmdldFNpemUpIHsKICAgICAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9
IG1fZW50cmllcy50YWtlTGFzdCgpOwogICAgICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0
ZW0ucHRyKCkpOwotICAgICAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRl
bSk7CisgICAgICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRl
bSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBCYWNrRm9yd2Fy
ZExpc3Q6OmFkZEl0ZW0oUmVmPEhpc3RvcnlJdGVtPiYmIG5ld0l0ZW0pCiAgICAgICAgIFJlZjxI
aXN0b3J5SXRlbT4gaXRlbSA9IFdURk1vdmUobV9lbnRyaWVzWzBdKTsKICAgICAgICAgbV9lbnRy
aWVzLnJlbW92ZSgwKTsKICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwot
ICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFj
a0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgICAgICAtLW1fY3Vy
cmVudDsKICAgICB9CiAKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6
c2V0Q2FwYWNpdHkoaW50IHNpemUpCiAgICAgd2hpbGUgKHNpemUgPCBzdGF0aWNfY2FzdDxpbnQ+
KG1fZW50cmllcy5zaXplKCkpKSB7CiAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9IG1f
ZW50cmllcy50YWtlTGFzdCgpOwogICAgICAgICBtX2VudHJ5SGFzaC5yZW1vdmUoaXRlbS5wdHIo
KSk7Ci0gICAgICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOworICAgICAg
ICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CiAgICAgfQogCiAg
ICAgaWYgKCFzaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9y
eS9XZWJCYWNrRm9yd2FyZExpc3QubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5
L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQppbmRleCBkZjYyZGE5NjZjNzlkM2E2M2ExZmUwNjNiMTA1
MDJkODNjZjg5MDdiLi4xOGYwMTNhMGE4NzViZDM2ZTg5NTU4NjYzNGFiN2Q4YjBhOGIwMmI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJk
TGlzdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3
YXJkTGlzdC5tbQpAQCAtNDAsOCArNDAsOCBAQAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV2ViVmlld1ByaXZhdGUuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0lu
aXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9QYWdl
Q2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUv
VGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAg
LTMzOSw3ICszMzksNyBAQCAtICh2b2lkKXNldFBhZ2VDYWNoZVNpemU6KE5TVUludGVnZXIpc2l6
ZQogCiAtIChOU1VJbnRlZ2VyKXBhZ2VDYWNoZVNpemUKIHsKLSAgICByZXR1cm4gW2NvcmUoc2Vs
ZiktPndlYlZpZXcoKSB1c2VzUGFnZUNhY2hlXSA/IFdlYkNvcmU6OlBhZ2VDYWNoZTo6c2luZ2xl
dG9uKCkubWF4U2l6ZSgpIDogMDsKKyAgICByZXR1cm4gW2NvcmUoc2VsZiktPndlYlZpZXcoKSB1
c2VzUGFnZUNhY2hlXSA/IFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLm1h
eFNpemUoKSA6IDA7CiB9CiAKIC0gKGludCliYWNrTGlzdENvdW50CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbS5tbQppbmRleCBjN2MwMjdiMzQw
ZDAwYWMyZjAyZTg3OThmMTRhNjJhY2U3ODU4ZWVlLi5hOGQzYmMyMDY4ZjJjNzYzZjk1NTdkODFj
N2Y1ZGRmMGY1YjdlMDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0
b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rv
cnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTQzLDkgKzQzLDkgQEAKICNpbXBvcnQgIldlYlBsdWdp
bkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldlYlR5cGVzSW50ZXJuYWwuaCIKICNpbXBvcnQgPEph
dmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFj
a0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9JbWFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC01OTgsOSArNTk4LDkgQEAg
LSAodm9pZClfc2V0U2Nyb2xsUG9pbnQ6KENHUG9pbnQpc2Nyb2xsUG9pbnQKIAogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLS0gKEJPT0wpX2lzSW5QYWdlQ2FjaGUKKy0gKEJPT0wp
X2lzSW5CYWNrRm9yd2FyZENhY2hlCiB7Ci0gICAgcmV0dXJuIGNvcmUoX3ByaXZhdGUpLT5pc0lu
UGFnZUNhY2hlKCk7CisgICAgcmV0dXJuIGNvcmUoX3ByaXZhdGUpLT5pc0luQmFja0ZvcndhcmRD
YWNoZSgpOwogfQogCiAtIChCT09MKV9oYXNDYWNoZWRQYWdlRXhwaXJlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW1Qcml2YXRlLmgK
aW5kZXggOWQwYWE4ZDE4YWQwOTYxNjgwN2VlMjUyNDkyOGZjYTZiZmY5ODUzOS4uYmE1ZDU1Y2M3
NDRkZTk0NjM2YzI1NmRkYTk5MjU1OTFjMDkyMmU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtUHJpdmF0ZS5oCkBAIC03Nyw3
ICs3Nyw3IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViVmlld3BvcnRGaXRDb3ZlclZhbHVlOwogLSAo
dm9pZClfc2V0U2Nyb2xsUG9pbnQ6KENHUG9pbnQpc2Nyb2xsUG9pbnQ7CiAjZW5kaWYKIAotLSAo
Qk9PTClfaXNJblBhZ2VDYWNoZTsKKy0gKEJPT0wpX2lzSW5CYWNrRm9yd2FyZENhY2hlOwogLSAo
Qk9PTClfaGFzQ2FjaGVkUGFnZUV4cGlyZWQ7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYkNhY2hlLm1tCmluZGV4IGI1MGIyMWM4NWJjZGJmNzI1OTk0MGM0MzZiMGJlMmUz
NjQ0OGZmY2EuLjUxMzdlNDFjMjQyZmNhNTVjNGEwOTRiNjQzMzczZTllMGE2ZmVjMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2FjaGUubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJDYWNoZS5tbQpAQCAtNDYsOSArNDYsOSBAQAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0ICJNZW1vcnlNZWFzdXJlLmgiCiAjaW1w
b3J0ICJXZWJGcmFtZUludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2Fj
aGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ2FjaGVkSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RnJhbWUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVUaHJlYWRSdW4uaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQppbmRleCBjODY4NGM0NmM1YjBkMjE1MmJl
OWNhYzFkNzgyYzRlNGZiMGIwNDBjLi40NjY2NjUzNDJhMWVhMzlmNzcwYjc2MDg0YjRiYjJjYzM4
ZTUzYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNvcmVT
dGF0aXN0aWNzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ29yZVN0
YXRpc3RpY3MubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwu
aCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvTWVtb3J5U3RhdGlzdGljcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENh
Y2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zv
bnRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgpAQCAtNDAsNyArNDEsNiBAQAog
I2ltcG9ydCA8V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3ND
b250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1BhZ2VDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ29uc29sZUNsaWVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
VHJlZUFzVGV4dC5oPgpAQCAtMjI0LDEyICsyMjQsMTIgQEAgKyAodm9pZClyZXR1cm5GcmVlTWVt
b3J5VG9TeXN0ZW0KIAogKyAoaW50KWNhY2hlZFBhZ2VDb3VudAogewotICAgIHJldHVybiBQYWdl
Q2FjaGU6OnNpbmdsZXRvbigpLnBhZ2VDb3VudCgpOworICAgIHJldHVybiBCYWNrRm9yd2FyZENh
Y2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKIH0KIAogKyAoaW50KWNhY2hlZEZyYW1lQ291
bnQKIHsKLSAgICByZXR1cm4gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5mcmFtZUNvdW50KCk7Cisg
ICAgcmV0dXJuIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLmZyYW1lQ291bnQoKTsKIH0K
IAogLy8gRGVwcmVjYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYzIxYmRjZjcx
MDYzOTY5ZTExY2JkYmIwYTViOTNlNWJhYTg2ZDgzNC4uYjRlZTllNjA2YzU3ZmNmNTcyZTExMzg2
MzliYzE0NTM0ZjM3ODkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC02OSw3ICs2
OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqKSBmaW5hbDsKICAgICBib29sIGhhc0hUTUxWaWV3KCkgY29uc3QgZmluYWw7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3Jl
RnJvbVBhZ2VDYWNoZSgpIGZpbmFsOworICAgIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogI2VuZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZv
ck5vbkhUTUwoKSBmaW5hbDsKIApAQCAtMTg0LDcgKzE4NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
ICAgICB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKSBmaW5hbDsKIAotICAg
IHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlc3Rv
cmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogCiAgICAgdm9pZCBkaXNwYXRjaERpZEJl
Y29tZUZyYW1lc2V0KGJvb2wpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmlu
ZGV4IDJlMzUzNzU1NjgxZjM5NWQzOWNjNjkxZjdjYzcwZTVlNWIwMDk0ODQuLmEzZTk4MzM4YjY0
ODllYWM5NmI3YzFkMDk3OWQyNTU2MWZhMGM1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCkBAIC0yMzksMTAgKzIzOSwxMCBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpoYXNI
VE1MVmlldygpIGNvbnN0CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6Zm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkKK2Jv
b2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3
YXJkQ2FjaGUoKQogewogICAgIE5TVmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqdmlldyA9IFttX3dl
YkZyYW1lLT5fcHJpdmF0ZS0+d2ViRnJhbWVWaWV3IGRvY3VtZW50Vmlld107Ci0gICAgLy8gVGhp
cyBnZXRzIGNhbGxlZCB0byBsYXkgb3V0IGEgcGFnZSByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNh
Y2hlLgorICAgIC8vIFRoaXMgZ2V0cyBjYWxsZWQgdG8gbGF5IG91dCBhIHBhZ2UgcmVzdG9yZWQg
ZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRpbWlu
ZyBwcm9ibGVtcyB3aXRoIFVJS2l0LCByZXN0b3JlIGZpeGVkIAogICAgIC8vIGxheW91dCBzZXR0
aW5ncyBoZXJlLgogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUu
Z2V0KCkpOwpAQCAtMTQ5NSw3ICsxNDk1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgfQogfQogCi12b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKQogewogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93
ZWJGcmFtZS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0b3JlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5tbQppbmRleCAwODQ0YjM5ZDM2
NzA1NTNhMDkzMjI3MWNlZGI3MzkwNzBhMTg1YzhiLi5kNTdkY2M1ZDUxMGY5NDA3OTFhYTcwMDE0
NWNmOTQ1M2M1NzUwMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUubW0KQEAgLTMwLDcgKzMw
LDcgQEAKICNpbXBvcnQgIldlYkhpc3RvcnlEZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViSGlzdG9y
eUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgPFdlYkNv
cmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNp
bXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZp
ZXcubW0KaW5kZXggYmM3NzRkNzY1NjE2YTVhOGM0YTMwMjkxNWRhNzliYjM1MzkzYjAzNy4uYzJl
ZmI3N2MzZTgzNDEzZjVhYzNiN2MxOWIwNWJhNWM0YWQ5ZTM3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0zMzQyLDcgKzMzNDIsNyBA
QCAtICh2b2lkKWxheW91dFRvTWluaW11bVBhZ2VXaWR0aDooZmxvYXQpbWluUGFnZUxvZ2ljYWxX
aWR0aCBoZWlnaHQ6KGZsb2F0KW1pblBhZwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoY29y
ZUZyYW1lLT5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSkKKyAgICAgICAgaWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+YmFj
a0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gV2ViQ29yZTo6RG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgY29yZUZyYW1lLT5kb2N1bWVu
dCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgfQpAQCAtMzg1NCw3ICszODU0LDcgQEAg
LSAodm9pZClzZXROZWVkc0xheW91dDogKEJPT0wpZmxhZwogICAgIGlmICghZmxhZykKICAgICAg
ICAgcmV0dXJuOyAvLyBUaGVyZSdzIG5vIHdheSB0byBzYXkgeW91IGRvbid0IG5lZWQgYSBsYXlv
dXQuCiAgICAgaWYgKGF1dG8qIGZyYW1lID0gY29yZShbc2VsZiBfZnJhbWVdKSkgewotICAgICAg
ICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPnBhZ2VDYWNoZVN0
YXRlKCkgIT0gV2ViQ29yZTo6RG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQorICAgICAgICBpZiAo
ZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChhdXRvKiB2aWV3ID0gZnJhbWUtPnZpZXcoKSkK
ICAgICAgICAgICAgIHZpZXctPnNldE5lZWRzTGF5b3V0QWZ0ZXJWaWV3Q29uZmlndXJhdGlvbkNo
YW5nZSgpOwpAQCAtMzg2Nyw3ICszODY3LDcgQEAgLSAodm9pZClzZXROZWVkc1RvQXBwbHlTdHls
ZXM6IChCT09MKWZsYWcKICAgICBpZiAoIWZsYWcpCiAgICAgICAgIHJldHVybjsgLy8gVGhlcmUn
cyBubyB3YXkgdG8gc2F5IHlvdSBkb24ndCBuZWVkIGEgc3R5bGUgcmVjYWxjLgogICAgIGlmIChh
dXRvKiBmcmFtZSA9IGNvcmUoW3NlbGYgX2ZyYW1lXSkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT5k
b2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IFdlYkNv
cmU6OkRvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVu
dCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBXZWJD
b3JlOjpEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IDQ4ODZjODQ5MzE3OGViNTFlMWM5NDM4NjlmMTM5NTdmNzZlYTMyN2UuLjRlZWEzMWQ5ZDI5YmQ3
Yjk5Y2QwN2Q5MjRjYjNiMDM3NGE2MmIyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzMCw2ICsxMzAsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvSlNWYWx1ZVJlZi5oPgogI2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRVSUNv
bnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9C
YWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oPgpAQCAt
MTg1LDcgKzE4Niw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2VDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CkBAIC0yMzY3LDggKzIzNjcsOCBAQCAtICh2b2lk
KV9jbG9zZQogCiAgICAgX3ByaXZhdGUtPmdyb3VwLT5yZW1vdmVXZWJWaWV3KHNlbGYpOwogCi0g
ICAgLy8gRGVsZXRlaW5nIHRoZSBXZWJDb3JlOjpQYWdlIHdpbGwgY2xlYXIgdGhlIHBhZ2UgY2Fj
aGUgc28gd2UgY2FsbCBkZXN0cm95IG9uCi0gICAgLy8gYWxsIHRoZSBwbHVnLWlucyBpbiB0aGUg
cGFnZSBjYWNoZSB0byBicmVhayBhbnkgcmV0YWluIGN5Y2xlcy4KKyAgICAvLyBEZWxldGVpbmcg
dGhlIFdlYkNvcmU6OlBhZ2Ugd2lsbCBjbGVhciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHNvIHdl
IGNhbGwgZGVzdHJveSBvbgorICAgIC8vIGFsbCB0aGUgcGx1Zy1pbnMgaW4gdGhlIGJhY2svZm9y
d2FyZCBjYWNoZSB0byBicmVhayBhbnkgcmV0YWluIGN5Y2xlcy4KICAgICAvLyBTZWUgY29tbWVu
dCBpbiBIaXN0b3J5SXRlbTo6cmVsZWFzZUFsbFBlbmRpbmdQYWdlQ2FjaGVzKCkgZm9yIG1vcmUg
aW5mb3JtYXRpb24uCiAgICAgYXV0byogcGFnZSA9IF9wcml2YXRlLT5wYWdlOwogICAgIF9wcml2
YXRlLT5wYWdlID0gbnVsbHB0cjsKQEAgLTI5MTEsOCArMjkxMSw4IEBAIC0gKHZvaWQpX3ByZWZl
cmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdz
LnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKGNvcmUoW3ByZWZlcmVuY2VzIGVkaXRhYmxlTGlua0Jl
aGF2aW9yXSkpOwogICAgIHNldHRpbmdzLnNldFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy5zZXRET01QYXN0ZUFsbG93ZWQoW3ByZWZlcmVuY2Vz
IGlzRE9NUGFzdGVBbGxvd2VkXSk7Ci0gICAgc2V0dGluZ3Muc2V0VXNlc1BhZ2VDYWNoZShbc2Vs
ZiB1c2VzUGFnZUNhY2hlXSk7Ci0gICAgc2V0dGluZ3Muc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVn
aW5zKFtwcmVmZXJlbmNlcyBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnNdKTsKKyAgICBzZXR0aW5n
cy5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZShbc2VsZiB1c2VzUGFnZUNhY2hlXSk7CisgICAgc2V0
dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhbcHJlZmVyZW5jZXMgcGFn
ZUNhY2hlU3VwcG9ydHNQbHVnaW5zXSk7CiAgICAgc2V0dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNo
ZUV4cGlyYXRpb25JbnRlcnZhbChTZWNvbmRzIHsgW3ByZWZlcmVuY2VzIF9iYWNrRm9yd2FyZENh
Y2hlRXhwaXJhdGlvbkludGVydmFsXSB9KTsKIAogICAgIHNldHRpbmdzLnNldERldmVsb3BlckV4
dHJhc0VuYWJsZWQoW3ByZWZlcmVuY2VzIGRldmVsb3BlckV4dHJhc0VuYWJsZWRdKTsKQEAgLTQz
NTksNyArNDM1OSw3IEBAIC0gKE5TQXJyYXkgKilfdG91Y2hFdmVudFJlZ2lvbnMKICNlbmRpZiAv
LyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCiAvLyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkg
d2l0aCB0aGUgV2ViQmFja0ZvcndhcmRMaXN0IEFQSSwgd2UgaG9ub3IgYm90aAotLy8gYSBwZXIt
V2ViVmlldyBhbmQgYSBwZXItcHJlZmVyZW5jZXMgc2V0dGluZyBmb3Igd2hldGhlciB0byB1c2Ug
dGhlIHBhZ2UgY2FjaGUuCisvLyBhIHBlci1XZWJWaWV3IGFuZCBhIHBlci1wcmVmZXJlbmNlcyBz
ZXR0aW5nIGZvciB3aGV0aGVyIHRvIHVzZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogCiAtIChC
T09MKXVzZXNQYWdlQ2FjaGUKIHsKQEAgLTg3OTcsNyArODc5Nyw3IEBAICsgKHZvaWQpX3NldENh
Y2hlTW9kZWw6KFdlYkNhY2hlTW9kZWwpY2FjaGVNb2RlbAogCiAgICAgc3dpdGNoIChjYWNoZU1v
ZGVsKSB7CiAgICAgY2FzZSBXZWJDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI6IHsKLSAgICAgICAg
Ly8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIEJhY2svZm9yd2Fy
ZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIHBhZ2VDYWNoZVNpemUgPSAwOwog
CiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKQEAgLTg4MzMs
NyArODgzMyw3IEBAICsgKHZvaWQpX3NldENhY2hlTW9kZWw6KFdlYkNhY2hlTW9kZWwpY2FjaGVN
b2RlbAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBXZWJDYWNoZU1vZGVsRG9jdW1l
bnRCcm93c2VyOiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQor
ICAgICAgICAvLyBCYWNrL2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAg
ICBpZiAobWVtU2l6ZSA+PSA1MTIpCiAgICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKICAg
ICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAyNTYpCkBAIC04ODg0LDcgKzg4ODQsNyBAQCArICh2
b2lkKV9zZXRDYWNoZU1vZGVsOihXZWJDYWNoZU1vZGVsKWNhY2hlTW9kZWwKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0g
ICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNr
L2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICBpZiAobWVtU2l6ZSA+
PSA1MTIpCiAgICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBpZiAo
bWVtU2l6ZSA+PSAyNTYpCkBAIC04OTY3LDcgKzg5NjcsNyBAQCArICh2b2lkKV9zZXRDYWNoZU1v
ZGVsOihXZWJDYWNoZU1vZGVsKWNhY2hlTW9kZWwKICAgICBtZW1vcnlDYWNoZS5zZXRDYXBhY2l0
aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3Rh
bENhcGFjaXR5KTsKICAgICBtZW1vcnlDYWNoZS5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbklu
dGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwogCi0gICAgYXV0byYgcGFn
ZUNhY2hlID0gV2ViQ29yZTo6UGFnZUNhY2hlOjpzaW5nbGV0b24oKTsKKyAgICBhdXRvJiBwYWdl
Q2FjaGUgPSBXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKTsKICAgICBwYWdl
Q2FjaGUuc2V0TWF4U2l6ZShwYWdlQ2FjaGVTaXplKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIG5zdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSA9IHN0ZDo6bWF4KG5zdXJsQ2FjaGVNZW1v
cnlDYXBhY2l0eSwgW25zdXJsQ2FjaGUgbWVtb3J5Q2FwYWNpdHldKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9CYWNrRm9yd2FyZExpc3QuY3BwCmluZGV4IGRhZWExNjFhMTA1YmEyZWI0ZjY3
MThiNTI3YjM1MzRhODg0OTc0OTYuLmIyMDE0OGZkZWQyYTQ2Y2MyNmM0ZDBkZjc5NDI3MThhNmY1
OGMyODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQmFja0ZvcndhcmRMaXN0LmNwcApA
QCAtMjcsMTIgKzI3LDEyIEBACiAjaW5jbHVkZSAiV2ViS2l0RExMLmgiCiAjaW5jbHVkZSAiQmFj
a0ZvcndhcmRMaXN0LmgiCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oPgogCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgRGVmYXVsdENhcGFjaXR5ID0g
MTAwOwpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6YWRkSXRlbShSZWY8
SGlzdG9yeUl0ZW0+JiYgbmV3SXRlbSkKICAgICAgICAgd2hpbGUgKG1fZW50cmllcy5zaXplKCkg
PiB0YXJnZXRTaXplKSB7CiAgICAgICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2Vu
dHJpZXMudGFrZUxhc3QoKTsKICAgICAgICAgICAgIG1fZW50cnlIYXNoLnJlbW92ZShpdGVtLnB0
cigpKTsKLSAgICAgICAgICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwor
ICAgICAgICAgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgQmFja0ZvcndhcmRMaXN0
OjphZGRJdGVtKFJlZjxIaXN0b3J5SXRlbT4mJiBuZXdJdGVtKQogICAgICAgICBSZWY8SGlzdG9y
eUl0ZW0+IGl0ZW0gPSBXVEZNb3ZlKG1fZW50cmllc1swXSk7CiAgICAgICAgIG1fZW50cmllcy5y
ZW1vdmUoMCk7CiAgICAgICAgIG1fZW50cnlIYXNoLnJlbW92ZShpdGVtLnB0cigpKTsKLSAgICAg
ICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CisgICAgICAgIEJhY2tGb3J3
YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKICAgICAgICAgLS1tX2N1cnJlbnQ7
CiAgICAgfQogCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBCYWNrRm9yd2FyZExpc3Q6OnNldENh
cGFjaXR5KGludCBzaXplKQogICAgIHdoaWxlIChzaXplIDwgc3RhdGljX2Nhc3Q8aW50PihtX2Vu
dHJpZXMuc2l6ZSgpKSkgewogICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2VudHJp
ZXMudGFrZUxhc3QoKTsKICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwot
ICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFj
a0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgIH0KIAogICAgIGlm
ICghc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0
aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNw
cAppbmRleCA5MTIwYWNjOGUwYjlmOTVlNTY3OTYxNGMwOTg4MjExZjJlODUzNzcyLi45Yzk2YTY3
ZTlkMGMxZjkwNDQyZjBiNDBjNDQ4MjZiNWM1NmI1YTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwCkBAIC0yOSwxMyArMjksMTMgQEAKICNpbmNs
dWRlICJDT01Qcm9wZXJ0eUJhZy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01lbW9yeVN0YXRpc3RpY3MuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZN
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zv
bnRDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDb25z
b2xlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAgLTMyMCw3ICszMjAsNyBAQCBIUkVTVUxUIFdlYkNv
cmVTdGF0aXN0aWNzOjpjYWNoZWRQYWdlQ291bnQoX091dF8gSU5UKiBjb3VudCkKICAgICBpZiAo
IWNvdW50KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwogCi0gICAgKmNvdW50ID0gUGFnZUNh
Y2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKKyAgICAqY291bnQgPSBCYWNrRm9yd2FyZENh
Y2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAt
MzI5LDYgKzMyOSw2IEBAIEhSRVNVTFQgV2ViQ29yZVN0YXRpc3RpY3M6OmNhY2hlZEZyYW1lQ291
bnQoX091dF8gSU5UKiBjb3VudCkKICAgICBpZiAoIWNvdW50KQogICAgICAgICByZXR1cm4gRV9Q
T0lOVEVSOwogCi0gICAgKmNvdW50ID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5mcmFtZUNvdW50
KCk7CisgICAgKmNvdW50ID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZnJhbWVDb3Vu
dCgpOwogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IDI2MjExZmE5Njc4MDZhNDRmYWFkMDY4YTA3OGIxMzYzMThlZTRiMGYuLmFiMGYxZDUxMGZk
NDU2MDdkNDVmNzlkNDM0ODczMzQ1MGE1MzRlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKQEAgLTk5Miw3ICs5OTIsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFu
c2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBjb3JlKG1fd2ViRnJhbWUpLT5jcmVh
dGVWaWV3KGVuY2xvc2luZ0ludFJlY3QobG9naWNhbEZyYW1lKS5zaXplKCksIGJhY2tncm91bmRD
b2xvciwgLyogZml4ZWRMYXlvdXRTaXplICovIHsgfSwgLyogZml4ZWRWaXNpYmxlQ29udGVudFJl
Y3QgKi8geyB9KTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZy
b21QYWdlQ2FjaGUoKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21C
YWNrRm9yd2FyZENhY2hlKCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
ODU2ZjUyNWZkY2U5M2RkZjRmZTdmZGVhZmY0MjU1ZTVmZjU0Nzc1MC4uNjc2YThkNjFjNTM4OTBi
OTlhNGU0NDc3ODBlNWZhZDBjOTI5MjY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0xNzYsNyArMTc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZCgpIG92ZXJy
aWRlOwogICAgIHZvaWQgcHJlcGFyZUZvckRhdGFTb3VyY2VSZXBsYWNlbWVudCgpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRl
ZExpbmtTdG9yZS5jcHAKaW5kZXggMmE1ZTEwNTM2N2EwZmZmNjk1ZjgwNTMxYmM0YjVjN2I5OTk5
OWQ3My4uMjAwYTYzYzZjNWRkZGQ5Mjc4YzA0YjRkMmZkNDEzMTAyNDFhOTc1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
VmlzaXRlZExpbmtTdG9yZS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIldlYkhp
c3RvcnkuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2Fj
aGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggMWE2YTczYjZlZThlYjA3YWU2NmI5MjVlODY4
ODk1OTc1MzAxZTIzZi4uYTg3MjYwZjQ1YjY2MjQxNWM1ZWUxZTM3MGY0Yjc4ZTczMjZlMTAzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcApAQCAtMjExOSw3ICsyMTE5LDcgQEAg
Q09NUHRyPElBY2Nlc3NpYmxlPiBXZWJGcmFtZTo6YWNjZXNzaWJsZSgpIGNvbnN0CiAgICAgZWxz
ZSBpZiAoIW1fYWNjZXNzaWJsZSB8fCBtX2FjY2Vzc2libGUtPmRvY3VtZW50KCkgIT0gY3VycmVu
dERvY3VtZW50KSB7CiAgICAgICAgIC8vIEVpdGhlciB3ZSd2ZSBuZXZlciBoYWQgYSB3cmFwcGVy
IGZvciB0aGlzIGZyYW1lJ3MgdG9wLWxldmVsIERvY3VtZW50LAogICAgICAgICAvLyB0aGUgRG9j
dW1lbnQgcmVuZGVyZXIgd2FzIGRlc3Ryb3llZCBhbmQgaXRzIHdyYXBwZXIgd2FzIGRldGFjaGVk
LCBvcgotICAgICAgICAvLyB0aGUgcHJldmlvdXMgRG9jdW1lbnQgaXMgaW4gdGhlIHBhZ2UgY2Fj
aGUsIGFuZCB0aGUgY3VycmVudCBkb2N1bWVudAorICAgICAgICAvLyB0aGUgcHJldmlvdXMgRG9j
dW1lbnQgaXMgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYW5kIHRoZSBjdXJyZW50IGRvY3Vt
ZW50CiAgICAgICAgIC8vIG5lZWRzIHRvIGJlIHdyYXBwZWQuCiAgICAgICAgIG1fYWNjZXNzaWJs
ZSA9IG5ldyBBY2Nlc3NpYmxlRG9jdW1lbnQoY3VycmVudERvY3VtZW50LCB3ZWJWaWV3KCktPnZp
ZXdXaW5kb3coKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3
OTBjMWExYjg5OGJmNWQwMzE2MGNkMjliYjhmMDcyNDRlNDU2ODYyLi40NmY0ZjQ1N2NiMmFmZjk3
ZTBiYjc0YmU1MzgxZDllNGQ1ZWRhZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0JTdHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQml0bWFwSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVTdG9yYWdlUHJvdmlk
ZXIuaD4KQEAgLTEzMSw4ICsxMzIsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UmVsZWFz
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29u
ZmlndXJhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CkBAIC01NDAsMTMgKzUzOSwxMyBAQCB2b2lkIFdlYlZp
ZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVuc2lnbmVk
IGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKICAgICBTZWNvbmRzIGRlYWREZWNvZGVkRGF0YURl
bGV0aW9uSW50ZXJ2YWw7CiAKLSAgICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplID0gMDsKKyAgICB1
bnNpZ25lZCBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDA7CiAKIAogICAgIHN3aXRjaCAoY2FjaGVN
b2RlbCkgewogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOiB7Ci0gICAgICAg
IC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQotICAgICAgICBwYWdlQ2FjaGVTaXpl
ID0gMDsKKyAgICAgICAgLy8gQmFjay9mb3J3YXJkIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykK
KyAgICAgICAgYmFja0ZvcndhcmRDYWNoZVNpemUgPSAwOwogCiAgICAgICAgIC8vIE9iamVjdCBj
YWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKICAgICAgICAgaWYgKG1lbVNpemUgPj0gMjA0OCkK
QEAgLTU3MSwxNSArNTcwLDE1IEBAIHZvaWQgV2ViVmlldzo6c2V0Q2FjaGVNb2RlbChXZWJDYWNo
ZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYkNh
Y2hlTW9kZWxEb2N1bWVudEJyb3dzZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0
eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIEJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4g
cGFnZXMpCiAgICAgICAgIGlmIChtZW1TaXplID49IDEwMjQpCi0gICAgICAgICAgICBwYWdlQ2Fj
aGVTaXplID0gMzsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMzsKICAgICAg
ICAgZWxzZSBpZiAobWVtU2l6ZSA+PSA1MTIpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0g
MjsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBp
ZiAobWVtU2l6ZSA+PSAyNTYpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMTsKKyAgICAg
ICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcGFnZUNhY2hlU2l6ZSA9IDA7CisgICAgICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9
IDA7CiAKICAgICAgICAgLy8gT2JqZWN0IGNhY2hlIGNhcGFjaXRpZXMgKGluIGJ5dGVzKQogICAg
ICAgICBpZiAobWVtU2l6ZSA+PSAyMDQ4KQpAQCAtNjE3LDE4ICs2MTYsMTggQEAgdm9pZCBXZWJW
aWV3OjpzZXRDYWNoZU1vZGVsKFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbCkKICAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIGNhc2UgV2ViQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0g
ICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNr
L2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICAvLyAoUmVzZWFyY2gg
aW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBwYWdlIGRyb3BzIHN1YnN0YW50aWFsbHkgYWZ0ZXIgMyBw
YWdlcy4pCiAgICAgICAgIGlmIChtZW1TaXplID49IDIwNDgpCi0gICAgICAgICAgICBwYWdlQ2Fj
aGVTaXplID0gNTsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gNTsKICAgICAg
ICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAxMDI0KQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9
IDQ7CisgICAgICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDQ7CiAgICAgICAgIGVsc2Ug
aWYgKG1lbVNpemUgPj0gNTEyKQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDM7CisgICAg
ICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDM7CiAgICAgICAgIGVsc2UgaWYgKG1lbVNp
emUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDI7CisgICAgICAgICAgICBi
YWNrRm9yd2FyZENhY2hlU2l6ZSA9IDI7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBhZ2VD
YWNoZVNpemUgPSAxOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZVNpemUgPSAxOwogCiAg
ICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKICAgICAgICAgLy8g
KFRlc3RpbmcgaW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBNQiBkZXBlbmRzIGhlYXZpbHkgb24gY29u
dGVudCBhbmQKQEAgLTY4Niw3ICs2ODUsNyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwo
V2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIGF1dG8mIG1lbW9yeUNhY2hlID0gTWVtb3J5
Q2FjaGU6OnNpbmdsZXRvbigpOwogICAgIG1lbW9yeUNhY2hlLnNldENhcGFjaXRpZXMoY2FjaGVN
aW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkp
OwogICAgIG1lbW9yeUNhY2hlLnNldERlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVh
ZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0b24o
KS5zZXRNYXhTaXplKHBhZ2VDYWNoZVNpemUpOworICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmds
ZXRvbigpLnNldE1heFNpemUoYmFja0ZvcndhcmRDYWNoZVNpemUpOwogCiAjaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKICAgICAvLyBEb24ndCBzaHJpbmsgYSBiaWcgZGlzayBjYWNoZSwgc2luY2Ug
dGhhdCB3b3VsZCBjYXVzZSBjaHVybi4KQEAgLTUzODUsNyArNTM4NCw3IEBAIEhSRVNVTFQgV2Vi
Vmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNh
dGlvbikKICAgICBociA9IHByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCZlbmFibGVkKTsKICAg
ICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwotICAgIHNldHRpbmdzLnNldFVz
ZXNQYWdlQ2FjaGUoISFlbmFibGVkKTsKKyAgICBzZXR0aW5ncy5zZXRVc2VzQmFja0ZvcndhcmRD
YWNoZSghIWVuYWJsZWQpOwogCiAgICAgaHIgPSBwcmVmZXJlbmNlcy0+aXNET01QYXN0ZUFsbG93
ZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQoaHIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDljOWM1MDBhMTMyNjkyZWZmOGJhOTVhZWMw
N2RlNDZhYWM5MzlkNGMuLjJmNDY4MWU0NWNjMzVmNTcyNDYyMThkZjg0M2YyY2QxZThhMTc2MTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MSBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0
byBCYWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBV
SVByb2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoVGVzdE9wdGlvbnM6OlRlc3RPcHRpb25zKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAob3ZlcnJpZGVQcmVmZXJlbmNlQ2Fs
bGJhY2spOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToK
KyAgICAgICAgKHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldFdlYlBy
ZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKHNldFdlYlByZWZlcmVuY2Vz
Rm9yVGVzdE9wdGlvbnMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RP
TVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lv
bk5vQ2FjaGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5k
bGUuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6RE9NV2luZG93RXh0ZW5zaW9uTm9DYWNo
ZTo6d2lsbERpc2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xvYmFsT2JqZWN0KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OkRPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGU6OmRpZFJlY29u
bmVjdERPTVdpbmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hl
LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVf
QnVuZGxlLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkRpZFJlbW92ZUZyYW1lRnJvbUhp
ZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlVGVzdDo6RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJ
bkJhY2tGb3J3YXJkQ2FjaGVUZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkRpZFJlbW92
ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlVGVzdDo6ZGlkQ3JlYXRlUGFnZSk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dp
dGhBbGxDb250ZW50SW5GcmFtZS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25O
YXZpZ2F0aW9uLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0V2ViS2l0U2V0dGluZ3MuY3BwOgorICAgICAgICAodGVzdFdlYktpdFNldHRpbmdzKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAg
IChXVFI6OnVwZGF0ZVRlc3RPcHRpb25zRnJvbVRlc3RIZWFkZXIpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6Omhh
c1NhbWVJbml0aWFsaXphdGlvbk9wdGlvbnMgY29uc3QpOgorICAgICAgICAqIGxsZGIvbGxkYl93
ZWJraXQucHk6CisgICAgICAgIChXZWJDb3JlRnJhbWVfU3VtbWFyeVByb3ZpZGVyKToKKyAgICAg
ICAgKFdlYkNvcmVEb2N1bWVudF9TdW1tYXJ5UHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZURv
Y3VtZW50UHJvdmlkZXIucGFnZV9jYWNoZV9zdGF0ZSk6CisKIDIwMTktMTAtMTYgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgRHVtcFJlbmRlclRy
ZWUgc2hvdWxkIGNsZWFyIFdURkxvZ0NoYW5uZWxTdGF0ZTo6T25XaXRoQWNjdW11bGF0aW9uIHN0
YXRlIHNldCBieSB0ZXN0UnVubmVyLmFjY3VtbXVsYXRlTG9nc0ZvckNoYW5uZWwKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRleCAxZmY4NDllMTdhODViNmYyZmRhOGE5MGVhNDBh
YWI5Mjk5MzY2NWFiLi41NTZlZWMyNzY2MzdlODFiOTNmNzdkOTY1OTM3NWNmYzJhNDk1OTU5IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCkBAIC04MSw4ICs4MSw4IEBAIFRlc3RP
cHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmluZyYgcGF0aE9yVVJMLCBjb25zdCBz
dGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBlbmFibGVJbnRlcnNlY3Rpb25PYnNlcnZl
ciA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYg
KGtleSA9PSAidXNlRXBoZW1lcmFsU2Vzc2lvbiIpCiAgICAgICAgICAgICB1c2VFcGhlbWVyYWxT
ZXNzaW9uID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKLSAgICAgICAgZWxz
ZSBpZiAoa2V5ID09ICJlbmFibGVQYWdlQ2FjaGUiKQotICAgICAgICAgICAgZW5hYmxlUGFnZUNh
Y2hlID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJlbmFibGVCYWNrRm9yd2FyZENhY2hlIikKKyAgICAgICAgICAgIGVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAg
ICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZU1lbnVJdGVtRWxlbWVudCIpCiAgICAgICAgICAg
ICBlbmFibGVNZW51SXRlbUVsZW1lbnQgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFs
dWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZUtleWdlbkVsZW1lbnQiKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggMDk2OWIxODZiZmEwMWIzMDM1MzhmYWNmZTBl
OTQ2MjFlZjllN2U2Ny4uZTUzMzVlODMxMTRlNzllNWI1NGQ4NjFjM2QyM2ZmY2ViYmE3MGEwYiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBU
ZXN0T3B0aW9ucyB7CiAgICAgYm9vbCB1c2VBY2NlbGVyYXRlZERyYXdpbmcgeyBmYWxzZSB9Owog
ICAgIGJvb2wgZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgeyBmYWxzZSB9OwogICAgIGJvb2wg
dXNlRXBoZW1lcmFsU2Vzc2lvbiB7IGZhbHNlIH07Ci0gICAgYm9vbCBlbmFibGVQYWdlQ2FjaGUg
eyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlQmFja0ZvcndhcmRDYWNoZSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBlbmFibGVNZW51SXRlbUVsZW1lbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxl
S2V5Z2VuRWxlbWVudCB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVNb2Rlcm5NZWRpYUNvbnRy
b2xzIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCAxNDdlYjMx
ZTE4OTk4MDhhZmU0ZDlkNjIxY2U0YmJhZWI4NjljMzcwLi4zODEwMDY4OGZkODY3YmY2NjI5NTJi
YjU1MzFhNGE2ZjZlNGQyOTM3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAt
NTgzLDggKzU4Myw4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIG92ZXJyaWRlUHJlZmVyZW5jZUNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmCiAgICAgYXV0byB2YWx1ZSA9
IGFkb3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRp
b24pKTsKICAgICBBU1NFUlQoISpleGNlcHRpb24pOwogCi0gICAgLy8gU2hvdWxkIHVzZSBgPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPmAgaW5zdGVh
ZC4KLSAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXku
Z2V0KCksICJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIpKTsKKyAgICAvLyBTaG91
bGQgdXNlIGA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPmAgaW5zdGVhZC4KKyAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhrZXkuZ2V0KCksICJXZWJLaXRVc2VzQmFja0ZvcndhcmRDYWNoZVByZWZl
cmVuY2VLZXkiKSk7CiAKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8
VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CiAgICAgY29udHJv
bGxlci0+b3ZlcnJpZGVQcmVmZXJlbmNlKGtleS5nZXQoKSwgdmFsdWUuZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGVjZmE0ODdjMjQ3Y2Nm
N2EzMWQ1OGZjNjhiNTJhMDc3ZGQ5MGRjNjQuLjE4ODBiYmU1MzI3N2MwODgwNGVkY2UwZTJkNWY3
YjkwMzlkZjFjYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KQEAgLTEwMzAsNyArMTAzMCw3IEBAIHN0YXRpYyB2b2lkIHNldFdlYlByZWZlcmVuY2VzRm9y
VGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgcHJlZmVyZW5jZXMu
cmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25zLmVuYWJsZVJlcXVlc3RJZGxlQ2Fs
bGJhY2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9hcmRBUElFbmFibGVkID0gb3B0aW9u
cy5lbmFibGVBc3luY0NsaXBib2FyZEFQSTsKICAgICBwcmVmZXJlbmNlcy5wcml2YXRlQnJvd3Np
bmdFbmFibGVkID0gb3B0aW9ucy51c2VFcGhlbWVyYWxTZXNzaW9uOwotICAgIHByZWZlcmVuY2Vz
LnVzZXNQYWdlQ2FjaGUgPSBvcHRpb25zLmVuYWJsZVBhZ2VDYWNoZTsKKyAgICBwcmVmZXJlbmNl
cy51c2VzUGFnZUNhY2hlID0gb3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlOwogfQogCiAv
LyBDYWxsZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFydHVwLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNjg4NDg2YTg5MGRjZTkyMWRkMzEw
ZmZjNGNlMzBhMmY4MjE0OGY1NC4uYWFlYzFiZTg5MWZkYjIyZTU3NjlhNzYwM2ZlZjEyNzEzNGY1
OTdiNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBA
IC04NTQsNyArODU0LDcgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lz
dGVudFZhbHVlcyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKQogICAgIHByZWZzUHJpdmF0
ZS0+c2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoRkFMU0UpOwogICAgIHByZWZl
cmVuY2VzLT5zZXRQbHVnSW5zRW5hYmxlZChUUlVFKTsKICAgICBwcmVmZXJlbmNlcy0+c2V0VGV4
dEFyZWFzQXJlUmVzaXphYmxlKFRSVUUpOwotICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNh
Y2hlKEZBTFNFKTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUoRkFM
U0UpOwogCiAgICAgcHJlZmVyZW5jZXMtPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoRkFMU0Up
OwogICAgIHByZWZzUHJpdmF0ZS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoVFJVRSk7
CkBAIC05MTQsNyArOTE0LDcgQEAgc3RhdGljIHZvaWQgc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0
T3B0aW9ucyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzLCBjb25zdAogICAgIHByZWZzUHJp
dmF0ZS0+c2V0UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQob3B0aW9ucy5lbmFibGVSZXF1ZXN0
SWRsZUNhbGxiYWNrKTsKICAgICBwcmVmc1ByaXZhdGUtPnNldEFzeW5jQ2xpcGJvYXJkQVBJRW5h
YmxlZChvcHRpb25zLmVuYWJsZUFzeW5jQ2xpcGJvYXJkQVBJKTsKICAgICBwcmVmZXJlbmNlcy0+
c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChvcHRpb25zLnVzZUVwaGVtZXJhbFNlc3Npb24pOwot
ICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNhY2hlKG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hl
KTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUob3B0aW9ucy5lbmFi
bGVCYWNrRm9yd2FyZENhY2hlKTsKIH0KIAogc3RhdGljIFN0cmluZyBhcHBsaWNhdGlvbklkKCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4
dGVuc2lvbkJhc2ljLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljLmNwcAppbmRleCAyZDA0MzVjMGUyYTM3MGY4Y2M0Mzc2NjE2MGQ3
M2M4YzYxMWQxNzc4Li41NWFhMzdlMTMwMmMyNmQyZTk1MDNkMDVhODhiYzcxNDVjZmM2NTM5IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRl
bnNpb25CYXNpYy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9N
V2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCkBAIC05NSw3ICs5NSw3IEBAIFRFU1QoV2ViS2l0LCBE
SVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25CYXNpYykKICAgICBXS0NvbnRleHRTZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudChjb250ZXh0LmdldCgpLCAmaW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7
CiAgICAgCiAgICAgLy8gVGhlIGRlZmF1bHQgY2FjaGUgbW9kZWwgaGFzIGEgY2FwYWNpdHkgb2Yg
MCwgc28gaXQgaXMgbmVjZXNzYXJ5IHRvIHN3aXRjaCB0byBhIGNhY2hlCi0gICAgLy8gbW9kZWwg
dGhhdCBhY3R1YWxseSBhbGxvd3MgZm9yIGEgcGFnZSBjYWNoZS4KKyAgICAvLyBtb2RlbCB0aGF0
IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250ZXh0
U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2Vy
KTsKIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91
cC5nZXQoKSk7CkBAIC0xMjAsNyArMTIwLDcgQEAgVEVTVChXZWJLaXQsIERJU0FCTEVEX0RPTVdp
bmRvd0V4dGVuc2lvbkJhc2ljKQogICAgIFV0aWw6OnJ1bigmZmluaXNoZWQpOwogICAgIGZpbmlz
aGVkID0gZmFsc2U7CiAKLSAgICAvLyBNYWtlIHN1cmUgdGhlIDIgZGlzY29ubmVjdGVkIGV4dGVu
c2lvbnMgaW4gdGhlIHBhZ2UgY2FjaGUgYW5kIHRoZSA0IGFjdGl2ZSBleHRlbnNpb25zIGFyZSBh
bGwgcmVtb3ZlZC4KKyAgICAvLyBNYWtlIHN1cmUgdGhlIDIgZGlzY29ubmVjdGVkIGV4dGVuc2lv
bnMgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSBhbmQgdGhlIDQgYWN0aXZlIGV4dGVuc2lvbnMg
YXJlIGFsbCByZW1vdmVkLgogICAgIFdLUGFnZUNsb3NlKHdlYlZpZXcucGFnZSgpKTsKIAogICAg
IFV0aWw6OnJ1bigmZmluaXNoZWQpOwpAQCAtMTUwLDcgKzE1MCw3IEBAIFRFU1QoV2ViS2l0LCBE
T01XaW5kb3dFeHRlbnNpb25DcmFzaE9uUmVsb2FkKQogICAgIFdLQ29udGV4dFNldEluamVjdGVk
QnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsK
IAogICAgIC8vIFRoZSBkZWZhdWx0IGNhY2hlIG1vZGVsIGhhcyBhIGNhcGFjaXR5IG9mIDAsIHNv
IGl0IGlzIG5lY2Vzc2FyeSB0byBzd2l0Y2ggdG8gYSBjYWNoZQotICAgIC8vIG1vZGVsIHRoYXQg
YWN0dWFsbHkgYWxsb3dzIGZvciBhIHBhZ2UgY2FjaGUuCisgICAgLy8gbW9kZWwgdGhhdCBhY3R1
YWxseSBhbGxvd3MgZm9yIGEgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNldENh
Y2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcik7CiAK
ICAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2lu
ZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcAppbmRleCBiYzUwYjVlMmIwMGM1OTA4NDcw
NjE3NjJhZTNkZDcwZjRmNTFiOWViLi5lMTY5NmQ1YmQ2NTY5NDcyNzhmOTQ3NDg1MjUzMTcyYmM0
OWI3Y2E3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01X
aW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcApAQCAtOTUsNyArOTUsNyBAQCBU
RVNUKFdlYktpdCwgRElTQUJMRURfRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZSkKIAogICAgIFdL
Q29udGV4dFNldEluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1
bmRsZUNsaWVudC5iYXNlKTsKIAotICAgIC8vIERpc2FibGUgdGhlIHBhZ2UgY2FjaGUuCisgICAg
Ly8gRGlzYWJsZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFdLQ29udGV4dFNldENhY2hl
TW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsKIAogICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dF
eHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAKaW5kZXggNDBiNzdmMWRi
MDUxMjY5N2ZmNTljYzY5ZTZlMDI3OWE4YjYyMDdhNy4uZGMyM2U2N2M2ZjZjMThjZTQ4OGVjNmU3
Y2QzN2UyMWJmYWVhNTZmNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxl
LmNwcApAQCAtMjM1LDEzICsyMzUsMTMgQEAgdm9pZCBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hl
OjpnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYKIAogdm9p
ZCBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlOjp3aWxsRGlzY29ubmVjdERPTVdpbmRvd0V4dGVu
c2lvbkZyb21HbG9iYWxPYmplY3QoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYgZXh0ZW5z
aW9uKQogewotICAgIC8vIE5vIGl0ZW1zIHNob3VsZCBiZSBnb2luZyBpbnRvIGEgMC1jYXBhY2l0
eSBwYWdlIGNhY2hlLgorICAgIC8vIE5vIGl0ZW1zIHNob3VsZCBiZSBnb2luZyBpbnRvIGEgMC1j
YXBhY2l0eSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKIHZvaWQgRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZTo6ZGlkUmVjb25uZWN0RE9NV2luZG93
RXh0ZW5zaW9uVG9HbG9iYWxPYmplY3QoV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYpCiB7
Ci0gICAgLy8gTm8gaXRlbXMgc2hvdWxkIGJlIGNvbWluZyBvdXQgb2YgYSAwLWNhcGFjaXR5IHBh
Z2UgY2FjaGUuCisgICAgLy8gTm8gaXRlbXMgc2hvdWxkIGJlIGNvbWluZyBvdXQgb2YgYSAwLWNh
cGFjaXR5IGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3Zl
RnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcAppbmRl
eCAxNThjNjQwZGMzOWFjODllMjU2NmY5N2I0NWM5NDIyNjlkNWU3NzAyLi5mZTlmNTQzYzJiZWUz
M2U4N2JjMGMzYjdiMmQ1YWU4OTY1ZmNiMzg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZy
b21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcApAQCAtNzAsOSArNzAsOSBAQCBzdGF0aWMgdm9pZCBz
ZXRJbmplY3RlZEJ1bmRsZUNsaWVudChXS1BhZ2VSZWYgcGFnZSkKICAgICBXS1BhZ2VTZXRQYWdl
SW5qZWN0ZWRCdW5kbGVDbGllbnQocGFnZSwgJmluamVjdGVkQnVuZGxlQ2xpZW50LmJhc2UpOwog
fQogCi1URVNUKFdlYktpdCwgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZSkK
K1RFU1QoV2ViS2l0LCBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNo
ZSkKIHsKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0
aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkRpZFJlbW92ZUZyYW1lRnJv
bUhpZWFyY2h5SW5QYWdlQ2FjaGUiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBj
b250ZXh0ID0gYWRvcHRXSyhVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0
KCJEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZSIpKTsKICAgICAv
LyBFbmFibGUgdGhlIHBhZ2UgY2FjaGUgc28gd2UgY2FuIHRlc3QgdGhlIFdLQnVuZGxlUGFnZURp
ZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeUNhbGxiYWNrIEFQSQogICAgIFdLQ29udGV4dFNldENh
Y2hlTW9kZWwoY29udGV4dC5nZXQoKSwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3Zl
RnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZV9CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZV9C
dW5kbGUuY3BwCmluZGV4IDk5MWRlODUwMDRlMDUxZTQxZGIwMDNlMmQxODFkYzA2MmRkZTcxYjUu
LjI2YjUyNGVkZjRjZWEyODBhZmJlZmM4OThlZDc5N2I1NGJmZjdmNGQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5
SW5QYWdlQ2FjaGVfQnVuZGxlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlX0J1bmRsZS5jcHAKQEAg
LTM1LDE0ICszNSwxNCBAQAogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLWNsYXNzIERp
ZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVUZXN0IDogcHVibGljIEluamVjdGVk
QnVuZGxlVGVzdCB7CitjbGFzcyBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0Zvcndh
cmRDYWNoZVRlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKIHB1YmxpYzoKLSAgICBE
aWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdChjb25zdCBzdGQ6OnN0cmlu
ZyYgaWRlbnRpZmllcik7CisgICAgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3
YXJkQ2FjaGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYpOwogfTsK
IAotc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8RGlkUmVtb3ZlRnJhbWVGcm9t
SGllYXJjaHlJblBhZ2VDYWNoZVRlc3Q+IHJlZ2lzdHJhcigiRGlkUmVtb3ZlRnJhbWVGcm9tSGll
YXJjaHlJblBhZ2VDYWNoZSIpOworc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8
RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVUZXN0PiByZWdpc3Ry
YXIoIkRpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlIik7CiAKIHN0
YXRpYyB1bnNpZ25lZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHlDb3VudDsKIApAQCAtNTYs
MTIgKzU2LDEyIEBAIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2soV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYKICAgICBXS0J1bmRsZVBhZ2VQb3N0
TWVzc2FnZShwYWdlLCBtZXNzYWdlLmdldCgpLCBtZXNzYWdlLmdldCgpKTsKIH0KIAotRGlkUmVt
b3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZVRlc3Q6OkRpZFJlbW92ZUZyYW1lRnJvbUhp
ZWFyY2h5SW5QYWdlQ2FjaGVUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorRGlk
UmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVUZXN0OjpEaWRSZW1vdmVG
cmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3QoY29uc3Qgc3RkOjpzdHJpbmcm
IGlkZW50aWZpZXIpCiAgICAgOiBJbmplY3RlZEJ1bmRsZVRlc3QoaWRlbnRpZmllcikKIHsKIH0K
IAotdm9pZCBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdDo6ZGlkQ3Jl
YXRlUGFnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKQordm9pZCBE
aWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3Q6OmRpZENyZWF0
ZVBhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKIHsKICAgICBX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOCBwYWdlTG9hZGVyQ2xpZW50OwogICAgIG1lbXNldCgm
cGFnZUxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKHBhZ2VMb2FkZXJDbGllbnQpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0xheW91dE1pbGVzdG9uZXNXaXRo
QWxsQ29udGVudEluRnJhbWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
TGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAKaW5kZXggNTY0NmJkODE5
NzVlOGU1ODMyYTE1NDY5ZmZiYzQxYzhlZGQ1NWM2ZS4uMWE2Y2JiMTUzMGNiNzQzZjMwY2Y4NTUz
NjNlZmU0NDU0MWI2NmM0NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250
ZW50SW5GcmFtZS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgVEVTVChXZWJLaXQsIEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEFmdGVyUGFnZUNhY2hlUmVzdG9yZSkKIHsKICAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZVdpdGhDb25m
aWd1cmF0aW9uKG51bGxwdHIpKTsKIAotICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwoY29udGV4
dC5nZXQoKSwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsgLy8gRW5hYmxlcyB0aGUg
UGFnZSBDYWNoZS4KKyAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQuZ2V0KCksIGtX
S0NhY2hlTW9kZWxQcmltYXJ5V2ViQnJvd3Nlcik7IC8vIEVuYWJsZXMgdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZS4KIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBlZTQwMzc4ZTJlZDY1ZTYxMjQw
Y2Y5MDI0NTdlNzc1NjA4NGE0NWE0Li44ZDI0YmJiYTM4NTk3YmJjM2MwMmUxNWRmMDBhNGQyZjNm
YjgwMmI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI0ODQsNyArMjQ4
NCw3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFJldXNlU3VzcGVuZGVkUHJvY2VzcykKIHN0YXRpYyBj
b25zdCBjaGFyKiBmYWlsc1RvRW50ZXJQYWdlQ2FjaGVUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJD
RSgKIDxib2R5PgogPHNjcmlwdD4KLS8vIFBhZ2VzIHdpdGggZGVkaWNhdGVkIHdvcmtlcnMgZG8g
bm90IGdvIGludG8gcGFnZSBjYWNoZS4KKy8vIFBhZ2VzIHdpdGggZGVkaWNhdGVkIHdvcmtlcnMg
ZG8gbm90IGdvIGludG8gYmFjay9mb3J3YXJkIGNhY2hlLgogdmFyIG15V29ya2VyID0gbmV3IFdv
cmtlcignd29ya2VyLmpzJyk7CiA8L3NjcmlwdD4KIDwvYm9keT4KQEAgLTM2OTksNyArMzY5OSw3
IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIFBhZ2VTaG93SGlkZSkKICAgICB9CiB9CiAKLS8vIERpc2Fi
bGluZyB0aGUgcGFnZSBjYWNoZSBleHBsaWNpdGx5IGlzIChmb3Igc29tZSByZWFzb24pIG5vdCBh
dmFpbGFibGUgb24gaU9TLgorLy8gRGlzYWJsaW5nIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgZXhw
bGljaXRseSBpcyAoZm9yIHNvbWUgcmVhc29uKSBub3QgYXZhaWxhYmxlIG9uIGlPUy4KICNpZiAh
VEFSR0VUX09TX0lQSE9ORQogc3RhdGljIGNvbnN0IGNoYXIqIGxvYWRVbmxvYWRCeXRlcyA9IFIi
UFNPTlJFU09VUkNFKAogPHNjcmlwdD4KQEAgLTU3ODIsNyArNTc4Miw3IEBAIFRFU1QoUHJvY2Vz
c1N3YXAsIEdvQmFja1RvU3VzcGVuZGVkUGFnZVdpdGhNYWluRnJhbWVJRFRoYXRJc05vdE9uZSkK
ICAgICBhdXRvIHBpZDMgPSBbY3JlYXRlZFdlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsK
ICAgICBFWFBFQ1RfTkUocGlkMSwgcGlkMyk7IC8vIFNob3VsZCBoYXZlIHByb2Nlc3Mtc3dhcHBl
ZC4KIAotICAgIC8vIE5hdmlnYXRlIGJhY2sgdG8gdGhlIHN1c3BlbmRlZCBwYWdlIChzaG91bGQg
dXNlIHRoZSBwYWdlIGNhY2hlKS4KKyAgICAvLyBOYXZpZ2F0ZSBiYWNrIHRvIHRoZSBzdXNwZW5k
ZWQgcGFnZSAoc2hvdWxkIHVzZSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlKS4KICAgICBbY3JlYXRl
ZFdlYlZpZXcgZ29CYWNrXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
TWVzc2FnZSk7CiAgICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7CkBAIC01ODE5LDcgKzU4MTks
NyBAQCBib2R5IHsKIDwvaGVhZD4KIDxib2R5PgogPHNjcmlwdD4KLS8vIFBhZ2VzIHdpdGggZGVk
aWNhdGVkIHdvcmtlcnMgZG8gbm90IGdvIGludG8gcGFnZSBjYWNoZS4KKy8vIFBhZ2VzIHdpdGgg
ZGVkaWNhdGVkIHdvcmtlcnMgZG8gbm90IGdvIGludG8gYmFjay9mb3J3YXJkIGNhY2hlLgogdmFy
IG15V29ya2VyID0gbmV3IFdvcmtlcignd29ya2VyLmpzJyk7CiA8L3NjcmlwdD4KIDxhIGlkPSJ0
ZXN0TGluayIgaHJlZj0icHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIj5UZXN0PC9hPgpA
QCAtNTkyNyw3ICs1OTI3LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnRlbnRCbG9ja2luZ0Fm
dGVyUHJvY2Vzc1N3YXBUZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKIDxib2R5PgogPHNjcmlw
dD4KIGxldCB3YXNTdWJmcmFtZUxvYWRlZCA9IGZhbHNlOwotLy8gUGFnZXMgd2l0aCBkZWRpY2F0
ZWQgd29ya2VycyBkbyBub3QgZ28gaW50byBwYWdlIGNhY2hlLgorLy8gUGFnZXMgd2l0aCBkZWRp
Y2F0ZWQgd29ya2VycyBkbyBub3QgZ28gaW50byBiYWNrL2ZvcndhcmQgY2FjaGUuCiB2YXIgbXlX
b3JrZXIgPSBuZXcgV29ya2VyKCd3b3JrZXIuanMnKTsKIDwvc2NyaXB0PgogPGlmcmFtZSBzcmM9
ImJsb2NrbWUuaHRtbCI+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFNldHRpbmdzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCmluZGV4IDNhNDBj
MjkzNWIyMDFiMDU2ZTg5ZWNlYTZhZjJhNDliMGM3YWYyZTkuLjhlOTk0NGFkMWJiZDE0MTZmNjc1
ZjlmNmZjNzhiN2IzN2FmOWJmZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwCkBAIC0yNzYsNyAr
Mjc2LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdFNldHRpbmdzKFRlc3QqLCBnY29uc3Rwb2lu
dGVyKQogICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX3NpdGVfc3BlY2lmaWNfcXVpcmtz
KHNldHRpbmdzLCBGQUxTRSk7CiAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3NldHRpbmdzX2dl
dF9lbmFibGVfc2l0ZV9zcGVjaWZpY19xdWlya3Moc2V0dGluZ3MpKTsKIAotICAgIC8vIEJ5IGRl
ZmF1bHQsIHBhZ2UgY2FjaGUgaXMgZW5hYmxlZC4KKyAgICAvLyBCeSBkZWZhdWx0LCB0aGUgYmFj
ay9mb3J3YXJkIGNhY2hlIGlzIGVuYWJsZWQuCiAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJraXRfc2V0
dGluZ3NfZ2V0X2VuYWJsZV9wYWdlX2NhY2hlKHNldHRpbmdzKSk7CiAgICAgd2Via2l0X3NldHRp
bmdzX3NldF9lbmFibGVfcGFnZV9jYWNoZShzZXR0aW5ncywgRkFMU0UpOwogICAgIGdfYXNzZXJ0
X2ZhbHNlKHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3BhZ2VfY2FjaGUoc2V0dGluZ3MpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IGJhNTk5M2M3YTIyMmZiMzBhN2MwNzU0Y2RiYTc1OTZhMmI4MTM5YmIuLjhl
ZGExZmQwY2E2OTRkNjczZTEzOTEyZDVkNDBlYmNmYmNjNmVhYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtODU5
LDggKzg1OSw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0b0Jvb2woSlNTdHJpbmdSZWYgdmFsdWUp
CiB2b2lkIFRlc3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShKU1N0cmluZ1JlZiBwcmVmZXJl
bmNlLCBKU1N0cmluZ1JlZiB2YWx1ZSkKIHsKICAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IElu
amVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKLSAgICAvLyBTaG91bGQgdXNlIGA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+YCBpbnN0ZWFkLgotICAg
IFJFTEVBU0VfQVNTRVJUKCFKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHByZWZlcmVuY2Us
ICJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleSIpKTsKKyAgICAvLyBTaG91bGQgdXNl
IGA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPmAgaW5zdGVhZC4KKyAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhwcmVmZXJlbmNlLCAiV2ViS2l0VXNlc0JhY2tGb3J3YXJkQ2FjaGVQcmVmZXJlbmNl
S2V5IikpOwogCiAgICAgLy8gRklYTUU6IGhhbmRsZSBub24tYm9vbGVhbiBwcmVmZXJlbmNlcy4K
ICAgICBXS0J1bmRsZU92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKGluamVjdGVk
QnVuZGxlLmJ1bmRsZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwgdG9XSyhwcmVmZXJl
bmNlKS5nZXQoKSwgdG9Cb29sKHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCmluZGV4IGU5ZDQyOGU4MzRmNmRjY2RlOTczZTJlZWU4YjUyMmY4OTM0ZmQw
NjEuLmUxN2M0OTI2MDI1YWU0M2VkYzhkMjQ2MWIwNzRmNjM5YzEwNWM5YzYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC04NDYsNyArODQ2LDcgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW8KICAgICBXS1ByZWZlcmVuY2VzU2V0QWxsb3dDcm9zc09yaWdp
blN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMocHJlZmVyZW5jZXMsIG9wdGlvbnMuYWxs
b3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMpOwogICAgIFdLUHJl
ZmVyZW5jZXNTZXRDb2xvckZpbHRlckVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxl
Q29sb3JGaWx0ZXIpOwogICAgIFdLUHJlZmVyZW5jZXNTZXRQdW5jaE91dFdoaXRlQmFja2dyb3Vu
ZHNJbkRhcmtNb2RlKHByZWZlcmVuY2VzLCBvcHRpb25zLnB1bmNoT3V0V2hpdGVCYWNrZ3JvdW5k
c0luRGFya01vZGUpOwotICAgIFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVFbmFibGVkKHByZWZl
cmVuY2VzLCBvcHRpb25zLmVuYWJsZVBhZ2VDYWNoZSk7CisgICAgV0tQcmVmZXJlbmNlc1NldFBh
Z2VDYWNoZUVuYWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZSk7CiAgICAgV0tQcmVmZXJlbmNlc1NldExhenlJbWFnZUxvYWRpbmdFbmFibGVkKHByZWZlcmVu
Y2VzLCBvcHRpb25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcpOwogCiAgICAgc3RhdGljIFdLU3Ry
aW5nUmVmIGRlZmF1bHRUZXh0RW5jb2RpbmcgPSBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiSVNPLTg4NTktMSIpOwpAQCAtMTQyOSw4ICsxNDI5LDggQEAgc3RhdGljIHZvaWQgdXBkYXRl
VGVzdE9wdGlvbnNGcm9tVGVzdEhlYWRlcihUZXN0T3B0aW9ucyYgdGVzdE9wdGlvbnMsIGNvbnN0
IHN0ZDoKICAgICAgICAgICAgIHRlc3RPcHRpb25zLmNvbnRlbnRNb2RlID0geyB2YWx1ZS5jX3N0
cigpIH07CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlQXBwTmFwIikKICAgICAgICAg
ICAgIHRlc3RPcHRpb25zLmVuYWJsZUFwcE5hcCA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1
ZSh2YWx1ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlUGFnZUNhY2hlIikKLSAg
ICAgICAgICAgIHRlc3RPcHRpb25zLmVuYWJsZVBhZ2VDYWNoZSA9IHBhcnNlQm9vbGVhblRlc3RI
ZWFkZXJWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiZW5hYmxlQmFja0Zv
cndhcmRDYWNoZSIpCisgICAgICAgICAgICB0ZXN0T3B0aW9ucy5lbmFibGVCYWNrRm9yd2FyZENh
Y2hlID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKICAgICAgICAgZWxzZSBp
ZiAoa2V5ID09ICJlbmFibGVMYXp5SW1hZ2VMb2FkaW5nIikKICAgICAgICAgICAgIHRlc3RPcHRp
b25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUo
dmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImFsbG93c0xpbmtQcmV2aWV3IikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAppbmRleCBjYjZhNWQ1NmRmNDVjY2UyZDQ1NWNh
MmQ5OGM2NGEyMzQ1MDY3NjM2Li41MTVkNWJmYmRlMmRiNzlkMWQ1MzhkYmY3MjE1NjM2ZTQwZjlj
YTc2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCkBAIC05NCw3ICs5NCw3IEBA
IHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwg
eyB0cnVlIH07CiAgICAgYm9vbCBzaG91bGRQcmVzZW50UG9wb3ZlcnMgeyB0cnVlIH07CiAgICAg
Ym9vbCBlbmFibGVBcHBOYXAgeyBmYWxzZSB9OwotICAgIGJvb2wgZW5hYmxlUGFnZUNhY2hlIHsg
ZmFsc2UgfTsKKyAgICBib29sIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUgeyBmYWxzZSB9OwogICAg
IGJvb2wgZW5hYmxlTGF6eUltYWdlTG9hZGluZyB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd3NM
aW5rUHJldmlldyB7IHRydWUgfTsKIApAQCAtMTU0LDcgKzE1NCw3IEBAIHN0cnVjdCBUZXN0T3B0
aW9ucyB7CiAgICAgICAgICAgICB8fCBjb250ZW50SW5zZXRUb3AgIT0gb3B0aW9ucy5jb250ZW50
SW5zZXRUb3AKICAgICAgICAgICAgIHx8IGNvbnRlbnRNb2RlICE9IG9wdGlvbnMuY29udGVudE1v
ZGUKICAgICAgICAgICAgIHx8IGVuYWJsZUFwcE5hcCAhPSBvcHRpb25zLmVuYWJsZUFwcE5hcAot
ICAgICAgICAgICAgfHwgZW5hYmxlUGFnZUNhY2hlICE9IG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hl
CisgICAgICAgICAgICB8fCBlbmFibGVCYWNrRm9yd2FyZENhY2hlICE9IG9wdGlvbnMuZW5hYmxl
QmFja0ZvcndhcmRDYWNoZQogICAgICAgICAgICAgfHwgZW5hYmxlTGF6eUltYWdlTG9hZGluZyAh
PSBvcHRpb25zLmVuYWJsZUxhenlJbWFnZUxvYWRpbmcKICAgICAgICAgICAgIHx8IGFsbG93c0xp
bmtQcmV2aWV3ICE9IG9wdGlvbnMuYWxsb3dzTGlua1ByZXZpZXcpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5IGIvVG9vbHMv
bGxkYi9sbGRiX3dlYmtpdC5weQppbmRleCBmNWFlMmMxOTM4YmQ4YTUxNDAxNmIyMGU1NzA1ZjEz
ZjVlZmYzODM2Li5kNTgwODk5N2FjNzFkMWEwNTQ5ZGEwZTVhYThkOWIxZTRjOTM1NjM3IDEwMDY0
NAotLS0gYS9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5CisrKyBiL1Rvb2xzL2xsZGIvbGxkYl93
ZWJraXQucHkKQEAgLTIzOSwxOSArMjM5LDE5IEBAIGRlZiBXZWJDb3JlRnJhbWVfU3VtbWFyeVBy
b3ZpZGVyKHZhbG9iaiwgZGljdCk6CiAgICAgaWYgZG9jdW1lbnQ6CiAgICAgICAgIG9yaWdpbiA9
IGRvY3VtZW50Lm9yaWdpbigpCiAgICAgICAgIHVybCA9IGRvY3VtZW50LnVybCgpCi0gICAgICAg
IHBhZ2VDYWNoZVN0YXRlID0gZG9jdW1lbnQucGFnZV9jYWNoZV9zdGF0ZSgpCisgICAgICAgIGJh
Y2tGb3J3YXJkQ2FjaGVTdGF0ZSA9IGRvY3VtZW50LnBhZ2VfY2FjaGVfc3RhdGUoKQogICAgIGVs
c2U6CiAgICAgICAgIG9yaWdpbiA9ICcnCiAgICAgICAgIHVybCA9ICcnCi0gICAgICAgIHBhZ2VD
YWNoZVN0YXRlID0gJycKLSAgICByZXR1cm4gJ3sgb3JpZ2luID0gJXMsIHVybCA9ICVzLCBpc01h
aW5GcmFtZSA9ICVkLCBwYWdlQ2FjaGVTdGF0ZSA9ICVzIH0nICUgKG9yaWdpbiwgdXJsLCBwcm92
aWRlci5pc19tYWluX2ZyYW1lKCksIHBhZ2VDYWNoZVN0YXRlKQorICAgICAgICBiYWNrRm9yd2Fy
ZENhY2hlU3RhdGUgPSAnJworICAgIHJldHVybiAneyBvcmlnaW4gPSAlcywgdXJsID0gJXMsIGlz
TWFpbkZyYW1lID0gJWQsIGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9ICVzIH0nICUgKG9yaWdpbiwg
dXJsLCBwcm92aWRlci5pc19tYWluX2ZyYW1lKCksIGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSkKIAog
CiBkZWYgV2ViQ29yZURvY3VtZW50X1N1bW1hcnlQcm92aWRlcih2YWxvYmosIGRpY3QpOgogICAg
IHByb3ZpZGVyID0gV2ViQ29yZURvY3VtZW50UHJvdmlkZXIodmFsb2JqLCBkaWN0KQogICAgIGZy
YW1lID0gcHJvdmlkZXIuZnJhbWUoKQogICAgIGluX21haW5fZnJhbWUgPSAnJWQnICUgZnJhbWUu
aXNfbWFpbl9mcmFtZSgpIGlmIGZyYW1lIGVsc2UgJ0RldGFjaGVkJwotICAgIHJldHVybiAneyBv
cmlnaW4gPSAlcywgdXJsID0gJXMsIGluTWFpbkZyYW1lID0gJXMsIHBhZ2VDYWNoZVN0YXRlID0g
JXMgfScgJSAocHJvdmlkZXIub3JpZ2luKCksIHByb3ZpZGVyLnVybCgpLCBpbl9tYWluX2ZyYW1l
LCBwcm92aWRlci5wYWdlX2NhY2hlX3N0YXRlKCkpCisgICAgcmV0dXJuICd7IG9yaWdpbiA9ICVz
LCB1cmwgPSAlcywgaW5NYWluRnJhbWUgPSAlcywgYmFja0ZvcndhcmRDYWNoZVN0YXRlID0gJXMg
fScgJSAocHJvdmlkZXIub3JpZ2luKCksIHByb3ZpZGVyLnVybCgpLCBpbl9tYWluX2ZyYW1lLCBw
cm92aWRlci5wYWdlX2NhY2hlX3N0YXRlKCkpCiAKIAogZGVmIGJ0anMoZGVidWdnZXIsIGNvbW1h
bmQsIHJlc3VsdCwgaW50ZXJuYWxfZGljdCk6CkBAIC03MjMsNyArNzIzLDcgQEAgY2xhc3MgV2Vi
Q29yZURvY3VtZW50UHJvdmlkZXI6CiAgICAgICAgIHJldHVybiBXZWJDb3JlU2VjdXJpdHlPcmln
aW5Qcm92aWRlcihzZWN1cml0eV9vcmlnaW5fcHRyLCBkaWN0KCkpLnRvX3N0cmluZygpCiAKICAg
ICBkZWYgcGFnZV9jYWNoZV9zdGF0ZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYudmFsb2Jq
LkdldENoaWxkTWVtYmVyV2l0aE5hbWUoJ21fcGFnZUNhY2hlU3RhdGUnKS5HZXRWYWx1ZSgpCisg
ICAgICAgIHJldHVybiBzZWxmLnZhbG9iai5HZXRDaGlsZE1lbWJlcldpdGhOYW1lKCdtX2JhY2tG
b3J3YXJkQ2FjaGVTdGF0ZScpLkdldFZhbHVlKCkKIAogICAgIGRlZiBmcmFtZShzZWxmKToKICAg
ICAgICAgZnJhbWVfcHRyID0gc2VsZi52YWxvYmouR2V0Q2hpbGRNZW1iZXJXaXRoTmFtZSgnbV9m
cmFtZScpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggY2Q5ZTFjOGNhNTI4Mjk0YjgyMjkzNjI3NGM4NzljODhkY2E0OTMwZS4u
ZDJmNjQ0ZDNlNTY1YTM2NWI1ZmJlZDBkZjg4MjkwYzYyMjFhMGNkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2NyBAQAorMjAxOS0xMC0xNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBC
YWNrRm9yd2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVBy
b2Nlc3MncyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAgICAgICogYW5pbWF0aW9ucy9yZXN1
bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2FjY2VsZXJh
dGVkLWxheWVycy1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvaWZyYW1l
cy9wYWdlLWNhY2hlLWxheWVyLXRyZWUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9wYWdl
LWNhY2hlLWJhY2stY3Jhc2guaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9zaG93LWNvbXBv
c2l0ZWQtaWZyYW1lLW9uLWJhY2stYnV0dG9uLmh0bWw6CisgICAgICAgICogZWRpdGluZy9tYWMv
aW5wdXQvdW5jb25maXJtZWQtdGV4dC1uYXZpZ2F0aW9uLXdpdGgtcGFnZS1jYWNoZS5odG1sOgor
ICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWw6
CisgICAgICAgICogZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAg
ICogZmFzdC9kb20vRGV2aWNlTW90aW9uL25vLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tcGFnZS1jYWNoZS5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNr
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvb251bmxvYWQtYmFjay10by1wYWdlLWNhY2hl
Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sOgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL3BhZ2VoaWRlLXhoci1vcGVuLmh0bWw6CisgICAgICAgICogZmFz
dC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hl
ZC5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3N1c3BlbmQtdGltZXJzLmh0bWw6CisgICAg
ICAgICogZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12YWx1ZS1kb2Vz
LW5vdC1jbGVhci5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLWNyYXNoLXdpdGgt
cGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLXVubG9hZC1uYXZp
Z2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sOgorICAgICAgICAqIGZhc3QvZnJh
bWVzL3BhZ2UtaGlkZS1kb2N1bWVudC1vcGVuLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMv
cmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2NyaXB0cy12aWEtc3R5bGUtdXBk
YXRlLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMvcmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hv
dWxkLW5vdC1ydW4tc2NyaXB0cy5odG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy9wYWdlLWNh
Y2hlLWNyYXNoLW9uLWRhdGEtdXJscy5odG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy91c2Ut
cGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9iYWNrLWZyb20tcGFnZS13
aXRoLWZvY3VzZWQtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2dvLWJhY2st
dG8taWZyYW1lLXdpdGgtcGx1Z2luLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2dvLWJh
Y2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L2hpc3Rv
cnktYmFjay13aGlsZS1wZGYtaW4tcGFnZWNhY2hlLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtTWVzc2FnZVBvcnQtcGVuZGluZy1tZXNzYWdlLmh0bWw6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtYWZ0ZXItd2luZG93LW9wZW4uaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1iYWNrLW5hdmlnYXRpb24tY3Jhc2guaHRtbDoK
KyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmcuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1hZ2VCaXRtYXAuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwtdXNpbmct
b3Blbi1wYW5lbC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0
ZU9iamVjdFVSTC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWRlc3Ry
b3ktZG9jdW1lbnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1lbGVt
ZW50LXN0YXRlLWZvY3VzZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1leGVjdXRlLXNjcmlwdC1kdXJpbmctcmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVzaG90Lmh0bWw6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWlmcmFtZS1qcy11cmwuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWw6
CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC0y
Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNs
b3NlZC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJj
ZS1vcGVuZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0
ZS1kdXJpbmctcmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LW5vdGlmaWNhdGlvbi1ub24tc3VzcGVuZGFibGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1yZW1vdmVkLXNvdXJjZS1idWZmZXIuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sOgor
ICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1lcy13aXRoLXByb3Zpc2lv
bmFsLWxvYWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5k
ZWQtYXVkaW9jb250ZXh0Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUt
d2ViZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2hpc3RvcnkvcGFnZWhpZGUtcmVtb3ZlLWlmcmFtZS1jcmFzaC5odG1sOgorICAgICAg
ICAqIGZhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJhbWUu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93
LXdpdGgtb3BlbmVyLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3RpbWVkLXJlZnJlc2gt
aW4tY2FjaGVkLWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lm
LXJlc3RvcmVkLWZyb20tYmZjYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL2ZyYW1l
cy13aXRoLXVubG9hZC1oYW5kbGVycy1pbi1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogZmFz
dC9sb2FkZXIvaW1hZ2UtaW4tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVy
L2lucHV0LWVsZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5odG1sOgorICAgICAgICAqIGZhc3QvbG9h
ZGVyL25hdmlnYXRlLXdpdGgtbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlv
bi5odG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXct
dGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWw6CisgICAgICAgICogZmFz
dC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbDoKKyAgICAgICAg
KiBmYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRvLXN0YXRl
bGVzcy1lbnRyeS13aXRoLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9z
dGF0ZW9iamVjdHMvcG9wc3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAg
ICogZmFzdC9sb2FkZXIvdW5zY2hlZHVsZS1yZWxheW91dC1hZnRlci11bmxvYWQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2xvYWRlci93aW5kb3ctcHJvcGVydGllcy1yZXN0b3JlZC1mcm9tLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L292ZXJmbG93L2hvcml6b250YWwtc2Ny
b2xsLWFmdGVyLWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9pZnJhbWUtc2Ny
b2xsYWJsZS1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3Nj
cm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93Lmh0bWw6CisgICAgICAgICog
ZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLmh0bWw6CisgICAg
ICAgICogZmFzdC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9sbC1iYWNrLWZvcndhcmQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGxhYmxlLWFmdGVyLWJhY2su
aHRtbDoKKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9wYWdlLWNhY2hlLWJhY2stb3ZlcmZsb3ct
c2Nyb2xsLXJlc3RvcmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9pb3Mv
dGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2suaHRtbDoKKyAgICAgICAgKiBmYXN0L3ZpZXdwb3J0
L2lvcy92aWV3cG9ydC1zaHJpbmstdG8tZml0LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWw6CisgICAg
ICAgICogZmFzdC92aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbDoKKyAgICAgICAgKiBmYXN0L3dv
cmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2NhY2hl
L2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1pbWFnZS1sb2FkLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5l
Y3RlZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2Ut
cGFnZS1jYWNoZS1jb25uZWN0aW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5n
L21haW4tcmVzb3VyY2UtZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdhdGlvbi5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLWxvYWQtYmFjay10by1jYWNoZWQtcGFn
ZS1jYWxsYmFja3MuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hl
ZC1tYWluLXJlc291cmNlLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3ItcGFnZS5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1YmZyYW1lLWlu
LXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2Ut
bG9hZC1pbi1wYWdlaGlkZS1oYW5kbGVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGVzdG9yYWdlLXBlbmRp
bmctcHJvbWlzZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLWZhaWxlZC14aHIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1mb250ZmFjZXNldC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wYWdlLWNhY2hlLWZyYWdtZW50LXJlZmVycmVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLW5vLWN1cnJlbnQtaGlzdG9yeUl0ZW0uaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJv
dmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0ZXMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9h
ZC1jYWNoZS1wYXJ0aXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1jcm9zcy1vcmln
aW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5k
aW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLXJlcXVlc3RBbmltYXRpb25GcmFtZS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1wYWdlaGlkZS5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1jYWNo
ZS0zLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2Vo
aWRlLWhhbmRsZXItc3RhcnRzLWxvYWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmln
YXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZDIuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQt
c2NyaXB0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1pc3Np
b24tZnJvbS1pbmFjdGl2ZS1kb213aW5kb3cuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdy5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0
LWludG8taW5hY3RpdmUtd2luZG93Mi1wc29uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmpl
Y3QtaW50by1pbmFjdGl2ZS13aW5kb3czLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9jbG9zZWQtd2hlbi1lbnRlcmluZy1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zdG9wLW9uLXJlc3VtZS1p
bi1lcnJvci1oYW5kbGVyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3Zl
ZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13b3JrZXItcGVuZGluZy1w
cm9taXNlLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
cGFnZS1jYWNoaW5nLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2Vu
ZEJlYWNvbi1vbnBhZ2VoaWRlLXdpbmRvdy5odG1sOgorICAgICAgICAqIGxlZ2FjeS1hbmltYXRp
b24tZW5naW5lL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAg
ICAgKiBsb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS5odG1sOgorICAgICAgICAq
IGxvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1sOgorICAgICAgICAq
IG1lZGlhL2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBsdWdpbi1mYWxsYmFjay5o
dG1sOgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNo
ZS5odG1sOgorICAgICAgICAqIG1lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL2lvcy9maXhlZC9maXhlZC1iYWNrLWZvcndhcmQuaHRtbDoK
KyAgICAgICAgKiBwbHVnaW5zL2NyYXNoLXJlc3RvcmluZy1wbHVnaW4tcGFnZS1mcm9tLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBwbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1l
Lmh0bWw6CisgICAgICAgICogcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tcGFnZS1jYWNoZS13b3Jr
cy5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNo
ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBzd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1s
OgorICAgICAgICAqIHN3aXBlL21haW4tZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sOgor
ICAgICAgICAqIHN3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sOgorICAgICAg
ICAqIHN3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNo
Lmh0bWw6CisgICAgICAgICogc3dpcGUvcHVzaHN0YXRlLXdpdGgtbWFudWFsLXNjcm9sbHJlc3Rv
cmF0aW9uLmh0bWw6CisgICAgICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbnVsbC1wYXJl
bnQtYmFjay1jcmFzaC5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2lu
Zy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sOgorICAgICAgICAq
IHdlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbDoKKyAg
ICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sOgor
CiAyMDE5LTEwLTE2ICBSdXNzZWxsIEVwc3RlaW4gIDxyZXBzdGVpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ29ycmVjdCBUZXN0RXhwZWN0YXRpb25zIGZyb20gcjI1MTExOS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbCBiL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBh
NjYyMmVlMzA4MTI5MThlNjNkNTZmMjRmM2RlYTU1NDI5MTQ1M2M3Li5lOThjNDk5ZWQ3YjQwMjVm
NWI1MDczNGVhZDQzYzNkOWUxZjE3ZDI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9yZXN1bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzdHls
ZT4KIEAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UgewogICAgIGZyb20gewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2suaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWxheWVycy1hZnRlci1iYWNr
Lmh0bWwKaW5kZXggM2I2MWE0NGMzYzY1ODUzMDhiMmRkYTVlNWE5NTViYTE2YzE0MTYxZi4uYTVm
YmMxNWI0ZTRkZDM0OGRjYmZkNWU3NmZjNDEyMTk1MmI0NTNhOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2suaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1sYXllcnMtYWZ0ZXItYmFjay5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlQWNjZWxlcmF0ZWREcmF3aW5nPXRydWUgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUFjY2VsZXJh
dGVkRHJhd2luZz10cnVlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogCiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9w
YWdlLWNhY2hlLWxheWVyLXRyZWUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFt
ZXMvcGFnZS1jYWNoZS1sYXllci10cmVlLmh0bWwKaW5kZXggOTZjNjk4ZjM3NDA4MmU5NjE4M2Y3
ZTZhZGZmNzA5MzczNTM3NmU5Zi4uMDU0YWExODkzZTQxNjMxYjdiY2EyMjQ3MzY5Y2Y4Y2NlNDUy
YjhiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9wYWdlLWNh
Y2hlLWxheWVyLXRyZWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVz
L3BhZ2UtY2FjaGUtbGF5ZXItdHJlZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3BhZ2UtY2FjaGUtYmFjay1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFn
ZS1jYWNoZS1iYWNrLWNyYXNoLmh0bWwKaW5kZXggOGY2OGJjZDhmYTk1ZTVjYmQ5YzAzYTBmMzk0
MTUzMTMyZmI4YTBhZS4uYzY3ZjIxNDIwYjg4ZmMwN2IwN2RjMmEyNzVkY2U5Y2MxMzlkYmRjNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFnZS1jYWNoZS1iYWNrLWNyYXNo
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcGFnZS1jYWNoZS1iYWNrLWNyYXNo
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBh
Z2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHN0eWxlPgogLm91dGVyIHsgcG9zaXRpb246IGZpeGVk
OyB9CiAuaW5uZXIgeyBwb3NpdGlvbjogYWJzb2x1dGU7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFjay1idXR0b24uaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24tYmFj
ay1idXR0b24uaHRtbAppbmRleCA1Njk1ZTc0ZjMwOWUxNzQwY2E3ZTk4NDhjNGEzYjMyZmMzZjJl
YTQzLi4wZTY4YTNkNTQ1YWE4NjJkNjA3Nzk3NDA3YzVmYjkwZjM5NzI3NjMzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zaG93LWNvbXBvc2l0ZWQtaWZyYW1lLW9uLWJhY2st
YnV0dG9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2hvdy1jb21wb3NpdGVk
LWlmcmFtZS1vbi1iYWNrLWJ1dHRvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvbWFj
L2lucHV0L3VuY29uZmlybWVkLXRleHQtbmF2aWdhdGlvbi13aXRoLXBhZ2UtY2FjaGUuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL2lucHV0L3VuY29uZmlybWVkLXRleHQtbmF2aWdhdGlv
bi13aXRoLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAzODg3N2NiZDBlODI3NmYyY2M0MGM2NGJiNzZm
NWUxOTRiZWEzMDhhLi43YjhkNzkyYzY3M2E3NjVkMGM3ZjQ3OTRlYzBmYjJmNmY5NGQ1MjA0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9pbnB1dC91bmNvbmZpcm1lZC10ZXh0
LW5hdmlnYXRpb24td2l0aC1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9tYWMvaW5wdXQvdW5jb25maXJtZWQtdGV4dC1uYXZpZ2F0aW9uLXdpdGgtcGFnZS1jYWNoZS5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8dGl0bGU+VGVzdCB3aGF0IGhh
cHBlbnMgd2hlbiBuYXZpZ2F0aW5nIGZyb20gYSBwYWdlIHdpdGggdW5jb25maXJtZWQgaW5saW5l
IGlucHV0IHdoZW4gdGhlIHBhZ2UgaXMgY2FjaGVhYmxlPC90aXRsZT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5o
dG1sCmluZGV4IGNiYTMyNzkzMTMwZWRhYzU2ZWJjYjIwOTY5NTg4Yjk0YzdjNjg0NmUuLjljN2M4
MzdmZDJhODQzNTM4YzI3MTU1NzU1ODg3NDg0NGM4NWE0NjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2UtY2FjaGUuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHN0eWxlPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVyLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA3YTIwYTBjMWEy
OTI1MjBiNDAyNTg5NDM3ODY4YzI0NjZiY2RhZjcyLi45ODc5MmNjZTJiNDUxNjYzMzUwNjA3ZmY5
YWNlMzFlMzYyNmYzNDNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9h
ZGVyLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250bG9hZGVy
LXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IWRvY3R5cGUgaHRtbD4KIDxodG1s
PgogPHN0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlTW90aW9u
L25vLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU1vdGlvbi9u
by1wYWdlLWNhY2hlLmh0bWwKaW5kZXggNTllNzM4MzE5MTgwZTg4ZWNmZjBkYThjNjY3MzNhNzgz
ZDY5NTY4ZC4uZTZmOWViZTI1MzEyMzgwMTZmNTA3OGQ2OGZlZWNiMjY2NDU0ZTZhYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlTW90aW9uL25vLXBhZ2UtY2FjaGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VNb3Rpb24vbm8tcGFnZS1jYWNoZS5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2V2ZW50LWFmdGVy
LW5hdmlnYXRpb24uaHRtbAppbmRleCAyMzhiMzcxNGYwMjdiYmQ5ZWI2MzVkZTBiYTgyOTJkZWQ1
OWE2Y2Q0Li4zNjAyNTE4ODk3M2U4YmQyOGY4YTc2ZTE5ZjhmMjA4YTFjZGU3ZTBlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1u
YXZpZ2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRp
b24vZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgog
PGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0
aW9uL25vLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVu
dGF0aW9uL25vLXBhZ2UtY2FjaGUuaHRtbAppbmRleCA2NjUxZjUxNmRlOWY0MTIwNjkyM2Y4YWJk
ODU5ZjRjZTAzMWJlOWMzLi41ZWM2NDkxODJmNGY3MjA5OTY2ZjYwYmI4N2Y5N2UyZGI5ZTVhMTM2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1w
YWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRp
b24vbm8tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24t
bmF2aWdhdGlvbi1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvdGltZXIt
cmVzdW1lLW9uLW5hdmlnYXRpb24tYmFjay5odG1sCmluZGV4IDMwMmE0MjQwYjhkM2MxYjEyNDUx
MmYxMTEyNWZkM2Y2OWY4NmNiMWYuLjJhZWM4NDg2OWRiMTZiMjlkZTYzYTgzODZkYWYyNDBjZDlh
NDdkYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1
bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2lu
ZG93L3RpbWVyLXJlc3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8aHRtbD4KIDxzY3JpcHQ+CiB2YXIgdGltZW91dFZhbHVlID0gMTAwOyAvL21zCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9vbnVubG9hZC1iYWNrLXRvLXBhZ2UtY2FjaGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNo
ZS5odG1sCmluZGV4IGYwMTg0ZjM3YzZiYTA5ZTMwMzIxZTk4MGYyNjY1YzJjYzY1MjJlMDQuLjI0
YzBhMWVmNDNmYTlmNzIxZDVlMzlhOTAwM2RiY2Q3MmVjZDViOGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNoZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29udW5sb2FkLWJhY2stdG8tcGFnZS1jYWNoZS5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9wYWdlaGlkZS10aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdl
aGlkZS10aW1lb3V0Lmh0bWwKaW5kZXggNDgwMWVlODg2OTE4NTgzN2YxOWU3YzZmMTNhZTljNWFl
ZDEyMTU2Zi4uYTE3M2RiMzhhNTU5YTBmYjg5MDVkYzhhNTA1ZDNkZWQzYjBhM2U2ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91dC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXRpbWVvdXQuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8aHRtbD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9wYWdlaGlkZS14aHItb3Blbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhp
ZGUteGhyLW9wZW4uaHRtbAppbmRleCBhM2I5YjVjZTM3ZTA0ZWQyODFhYjJkYjUzNmUxOTFjMjNj
NzBlM2ZmLi41MTdmNDFiNjg5OTM4NDA1ZTQzNGViNjkzZGU5MDEwMzI2MDM5MWVhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlaGlkZS14aHItb3Blbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXhoci1vcGVuLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPGh0bWw+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdp
dGgtZnJhbWVzLmh0bWwKaW5kZXggNDIxMjg2ZDUwMDA5ODMzZjU1MGZiODE1MDJkYmRmMjJiNmQz
MTI4OC4uZjJmMzIwMTI2ODBlMDJhZWNjZjUxNjRkNzJlYjBiNzc1ZjVkOGFjMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNo
ZWQtd2l0aC1mcmFtZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hv
dy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxodG1sPgogPGJvZHk+CiBUZXN0IHBhZ2VzaG93L3BhZ2VoaWRlIGV2ZW50IGJlaGF2aW9y
IHdoZW4gbmF2aWdhdGluZyBhd2F5IGZyb20gYSBwYWdlIHdpdGggZnJhbWVzLCBwdXR0aW5nIHRo
ZSBwYWdlIGluIHRoZSBwYWdlIGNhY2hlLCB0aGVuIGJhY2sgdG8gaXQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1j
YWNoZWQuaHRtbAppbmRleCBjZjkyMWJmY2Q4YmYxYzEyOTEwNjcxZGE1ODFmNGQyMjNjOWY4YTJh
Li4wY2JiYWFjNTk1MTYwZDQyOWVlN2U1NWViY2NhODhlYjlhYzhmZmRlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJh
Y2stY2FjaGVkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHA+VGVzdCBwYWdlc2hvdy9wYWdlaGlk
ZSBldmVudCBiZWhhdmlvciB3aGVuIG5hdmlnYXRpbmcgYmFjayB0byBhbiBjYWNoZWQgcGFnZS48
L3A+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3VzcGVuZC10aW1lcnMuaHRtbAppbmRleCAzYzg1ZjQ4MWU0MzY4ZDRmMDMxMzYz
ZmQzOTIxNWM1NDk3NTFlOWQ4Li42ZWE4OTgxZjE0YWZjNjQ0NjZlMmQyYTg4ZjI3NGY2NjVkNThk
ODM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N1c3BlbmQtdGltZXJzLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12
YWx1ZS1kb2VzLW5vdC1jbGVhci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29t
cGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12YWx1ZS1kb2VzLW5vdC1jbGVhci5odG1sCmluZGV4IGIz
ZmRkMmFlODVkYzNkYzU5MTA0MzIyZDAwODI0ZGEzZmE2YWY3MzUuLjQ1NTYwNzEyOGZhOTQ0NGM4
NzY3YjE5YjA3MDk3MWU3N2Y5NGU3NWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvYXV0b2NvbXBsZXRlLW9mZi13aXRoLWRlZmF1bHQtdmFsdWUtZG9lcy1ub3QtY2xlYXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2F1dG9jb21wbGV0ZS1vZmYtd2l0aC1kZWZh
dWx0LXZhbHVlLWRvZXMtbm90LWNsZWFyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4K
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9mcmFtZS1jcmFzaC13aXRoLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2ZyYW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCmluZGV4IGEyOTljZjg1
M2YzNzU0YzIzNzg2ZGE3NjQwOTYzMDE0NTcwMjViOGEuLjZkZjBlNDJlMWEzMjA2YmQ3Yzg3ZDhk
YWQ2ODg2NWZjMzUzZDQzNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZyYW1lLWNyYXNoLXdpdGgtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxo
dG1sPgogPHNjcmlwdD4KIHdpbmRvdy5maW5pc2ggPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS11bmxvYWQtbmF2aWdhdGUtYW5kLXNldFRpbWVv
dXQtYXNzZXJ0LWZhaWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXVubG9h
ZC1uYXZpZ2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sCmluZGV4IDM4MzJkNjdk
ZjUzN2ExYzViYmE3Njg4YWNjNTQzZmU5OTk2NTRiODIuLmRlN2ZmZWQ4NTUyMDRmZDA3MTNhMDUy
NmM5OTdlYzQ5ZGM5NzAzMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXVubG9hZC1uYXZpZ2F0ZS1hbmQtc2V0VGltZW91dC1hc3NlcnQtZmFpbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXVubG9hZC1uYXZpZ2F0ZS1hbmQtc2V0VGlt
ZW91dC1hc3NlcnQtZmFpbC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3BhZ2Ut
aGlkZS1kb2N1bWVudC1vcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9wYWdlLWhp
ZGUtZG9jdW1lbnQtb3Blbi5odG1sCmluZGV4IDk1YzE0YWIzYTVlMGFkZDEyYmQwMjQ0ZTNhMWU1
ZWRiYTdkNjIzMmYuLmM1MDQ5MmFhMjc2MzEyZjc3YjgzZTQ3NmE0ZTFlYzY5NzFmNmRkN2MgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3BhZ2UtaGlkZS1kb2N1bWVudC1vcGVu
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcGFnZS1oaWRlLWRvY3VtZW50LW9w
ZW4uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIFBhc3NlcyBpZiBpdCBk
b2VzIG5vdCBjcmFzaC4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9yZXN0b3JpbmctcGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLXZpYS1zdHls
ZS11cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNh
Y2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCmluZGV4IGRi
MWQxNGU4NmQxZjJmZjgxNjFlYWVlMWFjOWQ4ZjA2MjdmYjBjYmEuLmJkMDNlOTMzMGU0OTE1MDRh
NTU4MjMzY2FjZTZjMjUwNTlmN2I3YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxl
LXVwZGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdl
LWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMtdmlhLXN0eWxlLXVwZGF0ZS5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KQEAgLTEwLDcgKzEw
LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgdGVzdFJ1bm5lci5zZXRD
YW5PcGVuV2luZG93cygpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlQ2FjaGVTdXBw
b3J0c1BsdWdpbnModHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEJhY2tGb3J3YXJk
Q2FjaGVTdXBwb3J0c1BsdWdpbnModHJ1ZSk7CiB9CiAKIGxldCBuZXdXaW5kb3c7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0b3JpbmctcGFnZS1jYWNoZS1zaG91bGQt
bm90LXJ1bi1zY3JpcHRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0b3Jpbmct
cGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLmh0bWwKaW5kZXggYzE0NWI1MDk1YjAx
ODg4MDJjMDU0YjAxZmY4YzAzZDNiMGZiZDllNS4uNjcyNWU2NGQwN2Y4ODcxYjYzZmNkNTg0ZmU2
ZGRlMWUyN2FiMTE0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzdG9y
aW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2NyaXB0cy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlw
dHMuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcGFnZS1jYWNoZS1jcmFzaC1v
bi1kYXRhLXVybHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNy
YXNoLW9uLWRhdGEtdXJscy5odG1sCmluZGV4IDExODdjNjBlNTNmOGRhZGY4NGEwYTMzNTZlNTE2
YjczMDFjNzMwODYuLjIxOTFlZWQ0ODQ5MThmOGQ1YmNlMGI3MTA2OGVlOTJjNThjMWY4NDcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNyYXNoLW9uLWRh
dGEtdXJscy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNy
YXNoLW9uLWRhdGEtdXJscy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPHNjcmlwdD4K
IHdpbmRvdy5maW5pc2ggPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hhcm5lc3MvdXNlLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91
c2UtcGFnZS1jYWNoZS5odG1sCmluZGV4IGEwMjNiY2E5MWQzZjEyNWJmZTUwZDYwNTM4MWExNTRj
MWY2OGFiOTUuLjYwNTQ1MjIzMmU3MGU0MTU3ODVlYTg1NWVkMmM3NzM0YjZkMGJlMzYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91c2UtcGFnZS1jYWNoZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaGFybmVzcy91c2UtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDxodG1sPgogPHNjcmlwdD4KIHdpbmRvdy5maW5pc2ggPSBmdW5jdGlvbigpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvYmFjay1mcm9tLXBhZ2Utd2l0aC1mb2N1
c2VkLWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2JhY2stZnJvbS1wYWdl
LXdpdGgtZm9jdXNlZC1pZnJhbWUuaHRtbAppbmRleCA2ZDNmODRiMzVkNWMxZDkzNmM3YzFiMzhk
MTU1ZWUzYWZiMTA5ZThiLi5lODBlNjJmMmE4MmZlNTRhMGE2MmVmNzM5ODRhMTQ4MTcxZDU2MmZj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvYmFjay1mcm9tLXBhZ2Utd2l0
aC1mb2N1c2VkLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9iYWNr
LWZyb20tcGFnZS13aXRoLWZvY3VzZWQtaWZyYW1lLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L2dvLWJhY2stdG8taWZyYW1lLXdpdGgtcGx1Z2luLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvZ28tYmFjay10by1pZnJhbWUtd2l0aC1wbHVnaW4uaHRtbAppbmRleCAz
YzQ0YWQ1MjY1ZmUyYzY4MDY5MDU3ZjY1ZDI2MDE0ZmViMjI0MmFmLi41ZGRhYjgzZGJiM2I3MWQ2
NzY5NzZjNTc4ODVjMzQ1OWQ5NWY1ZTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvZ28tYmFjay10by1pZnJhbWUtd2l0aC1wbHVnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvZ28tYmFjay10by1pZnJhbWUtd2l0aC1wbHVnaW4uaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogICA8aGVhZD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9nby1iYWNrLXRvLW9iamVjdC1zdWJmcmFtZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0
bWwKaW5kZXggZjA4ZDA1NjFkMGM0ZjVhZTE3Y2M4MWUzNjIyNjg0MjI2MzVjNjBkYi4uYWYwODM1
YjU1NDFjMTI2ZTY1NDliYTA2ZTFmNmI3Y2IxN2NjOWNhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2dvLWJhY2stdG8tb2JqZWN0LXN1YmZyYW1lLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay13aGlsZS1wZGYtaW4tcGFn
ZWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdoaWxl
LXBkZi1pbi1wYWdlY2FjaGUuaHRtbAppbmRleCAxYjU4MWZhOTFkNDVkZTRlNmJmNmY5ZmIxYTc5
ZjI5MzY0NTU5ZDZkLi5jZmJjMDY3NWJiYjAzYWVmN2I4ZDJjNjAzOTg4MmNlMzEyYjY1MzMwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9yeS1iYWNrLXdoaWxlLXBk
Zi1pbi1wYWdlY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvaGlzdG9y
eS1iYWNrLXdoaWxlLXBkZi1pbi1wYWdlY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1NZXNzYWdlUG9ydC1wZW5kaW5nLW1lc3NhZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLU1lc3NhZ2VQb3J0LXBlbmRpbmctbWVz
c2FnZS5odG1sCmluZGV4IGNlY2Y2MDQwYmFjMWQzOThhYWIyNDI2ZTAyYzhkYjA0ZWUzNjU2MWQu
LmEwODY1OGU1NWFlMzY0MTBkOGVlMzJlMWNkOTUwMTZjMDMzZWNlY2QgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLU1lc3NhZ2VQb3J0LXBlbmRpbmctbWVz
c2FnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLU1lc3Nh
Z2VQb3J0LXBlbmRpbmctbWVzc2FnZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLWFmdGVyLXdpbmRvdy1vcGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1hZnRlci13aW5kb3ctb3Blbi5odG1sCmluZGV4IGZjZDVkZTQwZDFm
YWIzZDUwZDA2ZDBlZDM0Mzg1MmFhNGQ1YTY4ZjkuLjQ4OWZmODRjMzEzMjRmOWNjZWVhZjZhOWE3
MjcwYjM3MTYzNGJhODYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLWFmdGVyLXdpbmRvdy1vcGVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtYWZ0ZXItd2luZG93LW9wZW4uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1iYWNrLW5hdmlnYXRpb24tY3Jhc2guaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWJhY2stbmF2aWdhdGlvbi1jcmFzaC5odG1s
CmluZGV4IDAyZjgxNzA4YjlmMGIzMmY0ODcxZjBhNzc2YWFmNmQyZGRhNGIzMGIuLmM3OGQ1MzZi
ZjdhNmJlMTU1Yzk3OGEyZTMwYTI2Njk5MWI3ZDc0YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWJhY2stbmF2aWdhdGlvbi1jcmFzaC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWJhY2stbmF2aWdhdGlvbi1jcmFz
aC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5n
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFy
aW5nLWV4cGVjdGVkLnR4dAppbmRleCA2Mjc5ZGE5MjZlODRkMjIzODRiMjFkOTJiZDNiMzJhYmUx
NGI5MzI4Li44ZTc5MjcxYmVlMzI3MWQwZDdlZjZjOTNiMmQ2NzEzMjUyMmJiNzRjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmct
ZXhwZWN0ZWQudHh0CkBAIC02LDkgKzYsOSBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogcGFn
ZXNob3cgLSBub3QgZnJvbSBjYWNoZQogcGFnZWhpZGUgLSBlbnRlcmluZyBjYWNoZQogcGFnZXNo
b3cgLSBmcm9tIGNhY2hlCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMucGFnZUNhY2hlU2l6ZSgpID4g
MCBpcyB0cnVlCi13aW5kb3cuaW50ZXJuYWxzLmNsZWFyUGFnZUNhY2hlKCkKLVBBU1Mgd2luZG93
LmludGVybmFscy5wYWdlQ2FjaGVTaXplKCkgaXMgMAorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLmJh
Y2tGb3J3YXJkQ2FjaGVTaXplKCkgPiAwIGlzIHRydWUKK3dpbmRvdy5pbnRlcm5hbHMuY2xlYXJC
YWNrRm9yd2FyZENhY2hlKCkKK1BBU1Mgd2luZG93LmludGVybmFscy5iYWNrRm9yd2FyZENhY2hl
U2l6ZSgpIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01Q
TEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xl
YXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5n
Lmh0bWwKaW5kZXggOGFhOTcyYTJjOTU5ZmY1MTEwMzU4N2JjOTIyNGEyNmNlNjhlZTg1Yy4uZGY4
YjQ3YmFlMmNiMDllN2VkMjY2ODMxYTQ1NDM4YmE4YmM0MjExMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmcuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KQEAgLTEzLDkgKzEzLDkgQEAgaWYg
KCF3aW5kb3cuaW50ZXJuYWxzKQogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93Iiwg
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICBkZWJ1ZygicGFnZXNob3cgLSAiICsgKGV2ZW50LnBlcnNp
c3RlZCA/ICIiIDogIm5vdCAiKSArICJmcm9tIGNhY2hlIik7CiAgICAgaWYgKGV2ZW50LnBlcnNp
c3RlZCkgewotICAgICAgICBzaG91bGRCZVRydWUoIndpbmRvdy5pbnRlcm5hbHMucGFnZUNhY2hl
U2l6ZSgpID4gMCIpOwotICAgICAgICBldmFsQW5kTG9nKCJ3aW5kb3cuaW50ZXJuYWxzLmNsZWFy
UGFnZUNhY2hlKCkiKTsKLSAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbnRlcm5hbHMucGFnZUNh
Y2hlU2l6ZSgpIiwgIjAiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cuaW50ZXJuYWxz
LmJhY2tGb3J3YXJkQ2FjaGVTaXplKCkgPiAwIik7CisgICAgICAgIGV2YWxBbmRMb2coIndpbmRv
dy5pbnRlcm5hbHMuY2xlYXJCYWNrRm9yd2FyZENhY2hlKCkiKTsKKyAgICAgICAgc2hvdWxkQmUo
IndpbmRvdy5pbnRlcm5hbHMuYmFja0ZvcndhcmRDYWNoZVNpemUoKSIsICIwIik7CiAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOwogICAgIH0KIH0sIGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRt
bAppbmRleCBmZmU1YjI5OWE1NmM4MmMyMDZlY2U4MzUzNmUyM2E0MmZkYTdjMGJjLi5hYWFlNTEw
ZDU3MTJmMWNkYzgzZDUwMzgyMGNkOGFlMjk0ZWZjZDdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29udGV4dC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZUltYWdl
Qml0bWFwLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVJ
bWFnZUJpdG1hcC5odG1sCmluZGV4IDk5YjY1MTM2OTZmZDc2OWRhNzg1ZTdjYzNjODU0ZDI4MWMx
NTEzZWQuLjY5NmZkZGM2N2ZjOTk2YjhlOTU2MTI4ZTcwMTA1NTZlZjVkZDZlMjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZUltYWdlQml0bWFw
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1h
Z2VCaXRtYXAuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1j
cmVhdGVPYmplY3RVUkwtdXNpbmctb3Blbi1wYW5lbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlT2JqZWN0VVJMLXVzaW5nLW9wZW4tcGFuZWwuaHRtbApp
bmRleCBiZmNjMmU5ZGE4ZjkzNmUyZmZkNjVjNmM1MDM2ODFiZDVhMDRiZjgxLi5mMGZkNmViNzZk
NzM1NTY0YTZhMjQzZDY2ZWQzOWQyY2Y4ZDkxZjA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwtdXNpbmctb3Blbi1wYW5lbC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZU9iamVj
dFVSTC11c2luZy1vcGVuLXBhbmVsLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtY3JlYXRlT2JqZWN0VVJMLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwuaHRtbAppbmRleCBhNjI4YzgyYWMzMDgzN2Ex
ODFiNmEyMDYxMjNkMGUxMTQ2YTQ0YTZmLi41NTZjMTk1MGMxYTg5ZGM4YTFlNmZkMmZkM2JiYWM5
NjcyZjM4MTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1jcmVhdGVPYmplY3RVUkwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUg
aHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1kZXN0cm95LWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1kZXN0cm95LWRvY3VtZW50Lmh0bWwKaW5kZXggNmQxZDdiZjczMjhh
MWM2YzEwNGE0MDI5MjYzZTU0MTJjMmE4Y2IzNS4uOTlkNWU1MzEyMjU5NzNmNTYwZDE4N2Y0ODUy
OTNlZDZkMDNmODIzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtZGVzdHJveS1kb2N1bWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLWRlc3Ryb3ktZG9jdW1lbnQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8aHRtbD4KIDxoZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZWxlbWVu
dC1zdGF0ZS1mb2N1c2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1lbGVtZW50LXN0YXRlLWZvY3VzZWQuaHRtbAppbmRleCBmZGVmNWVmNjNjOWIzNTI0YTZhMDE3
NDBhNTUwNjkzODc4MGE4Y2I1Li5mY2Q5MWU1ZjU2YjFmZDhhZmY5NDE2YmZiZTI1ZWE0MTMyMGQw
MzM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1lbGVt
ZW50LXN0YXRlLWZvY3VzZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1lbGVtZW50LXN0YXRlLWZvY3VzZWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1leGVjdXRlLXNjcmlwdC1kdXJpbmctcmVzdG9yZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZXhlY3V0ZS1zY3JpcHQtZHVyaW5n
LXJlc3RvcmUuaHRtbAppbmRleCAyZTM0ZjQ5NjJjOTRmYzBlZTZkODk2NzBmYTZlNWUyM2ZhN2Qz
ODRjLi5jNDdjNzRlYjZkZDU1MTRjZmZkMzNjYTYwZDA5MzQ1ZWNkZDI4NmU5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1leGVjdXRlLXNjcmlwdC1kdXJp
bmctcmVzdG9yZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWV4ZWN1dGUtc2NyaXB0LWR1cmluZy1yZXN0b3JlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLW9uZXNob3QuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVz
aG90Lmh0bWwKaW5kZXggMGNlNDgwMzhkNWVhOTgwNzY0YTA4YWNkOTU2MDY2YzdhZjllNGM2Mi4u
OGRmOTgwOGUzNDA3NWU2OGJmNWIzNGI5Nzg0ZWU4MWJhNjAyMjQxMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLW9uZXNo
b3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2Nh
dGlvbi1hY3RpdmUtb25lc2hvdC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS13YXRjaGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hlci5odG1sCmlu
ZGV4IDk0YzA3NzJlNGY4MDQ5ZTM1YzdmMjcwOTFiZDI2Y2NmOTYxMmI4ZTAuLjMwOTA1YzY0NmFm
NjA5N2JmMjYxZGYxNDk3YWQ4MGViNmQ4OTUwNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS13YXRjaGVyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZl
LXdhdGNoZXIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1n
ZW9sb2NhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2Vv
bG9jYXRpb24uaHRtbAppbmRleCA0ODQ2YWI2NDc4ZjU0MmRmNmY3Nzc4YjQ0NWI5ODYzMjQzYTBh
ZDI0Li4zZDA2NDE2NDY4ZmM1MTFmZWE2MTAyODExOGExNDBiZmM5M2U3ZmIzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWlmcmFtZS1qcy11cmwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLWlmcmFtZS1qcy11cmwuaHRtbAppbmRleCBjY2M2YTUzOWQwMTA3Y2Y1
MGU1NjdiZjhkMzRmMTAyYzljNWEzNDY1Li40NWVjM2E2YzgzNmQwYWMxY2NmZThiMGFjZTE2MGNl
MjgyYjUxNzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1pZnJhbWUtanMtdXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtaWZyYW1lLWpzLXVybC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWluZGV4ZWQtY2xvc2VkLWRiLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sCmluZGV4IGNjMDk3NjE1ZmNjMDFk
MjJhMmIzNjE2YmQxODZjNDA0Yzk4Nzg1MTMuLmQwNzQxMjBhNDdhMjVjNWUzODkxNjBmM2IxNzU1
MWE5MzFiNzQ4Y2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLWluZGV4ZWQtY2xvc2VkLWRiLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtaW5kZXhlZC1jbG9zZWQtZGIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1vcGVuZWQtZGIuaHRtbAppbmRleCBjYWE3
N2NiZmE5Njg3NWFjNWRmZjlmMmFiY2IzZTkwNjdhMGQ2NDU2Li43ZDZiZGIyYzBhZjdjY2NjMDcx
ZjQzM2E3NGU0YzE2MWE4YmIwNGU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9wYWdlLWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC0yLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2UtY2xvc2Vk
LTIuaHRtbAppbmRleCBkOGUzYzRmMzAzNWIzZWE1MTQ4MzE2ZmE0YWExNGUwNmEzZTM2ZjM4Li5k
NTE2MWNjYTE3NTUzYTE0YTcyYjhkYjI0MGNiNmE4YTNjNjE2YTdmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2UtY2xvc2VkLTIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2Ut
Y2xvc2VkLTIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1t
ZWRpYS1zb3VyY2UtY2xvc2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1tZWRpYS1zb3VyY2UtY2xvc2VkLmh0bWwKaW5kZXggODE4ZjAyNjUyZDgyOGMzOTNiNDlm
MDFiNzA2NmUyZjMwYjkyYmU2Ny4uMjhhN2MxZjUxYTUwMjg0MWJlOWYxNDExYzg5MzFhYjJhZmUw
MGY1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVk
aWEtc291cmNlLWNsb3NlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLW1lZGlhLXNvdXJjZS1jbG9zZWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2Utb3BlbmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2Utb3BlbmVkLmh0bWwKaW5kZXggOTU1
YWY5NWIyZjE5MTM2OTk2MTBlYTI5NmMyZGZhMTljYWUxOGZlMS4uMGI1ZjZhYTU2ZmE3ZWQxZmY5
YThmMDI3MTRkZjczZjNkYTgxMzRhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLW9wZW5lZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1vcGVuZWQuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0ZS1kdXJpbmctcmVzdG9y
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbmF2aWdhdGUtZHVy
aW5nLXJlc3RvcmUuaHRtbAppbmRleCA5Nzk2N2FlMzhhOWRmNzMyZWZjN2MxZmVkOGRiYjdmNGEy
NWNiNWMwLi5mNDg4ZTQ1YTMwYWU3ZjViYjViYWRlNDE3MmNlYjM4ZGEwYWYxZGRhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0ZS1kdXJpbmct
cmVzdG9yZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5h
dmlnYXRlLWR1cmluZy1yZXN0b3JlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpAQCAtMTMsNyArMTMsNyBAQCBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKICAgICB0ZXN0UnVubmVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CiAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAg
aW50ZXJuYWxzLmNsZWFyUGFnZUNhY2hlKCk7CisgICAgaW50ZXJuYWxzLmNsZWFyQmFja0Zvcndh
cmRDYWNoZSgpOwogfQogc2Vzc2lvblN0b3JhZ2UudGVzdFN0YWdlID0gJ2luaXRpYWwnOwogbGV0
IHBlcnNpc3RlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLW5vbi1zdXNwZW5kYWJsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLW5vbi1zdXNwZW5kYWJsZS5o
dG1sCmluZGV4IGE2MmU5N2I0YzhjYzJkYTk5YTNiZjhmN2RjZDhkZmQ0NDVhMTg1ZmEuLjUzZGJh
Y2I0YzY3YzI4Mjk2MzM3ZTNjMDRkNTM2ZWUxOTVmNGI4ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1ub24tc3VzcGVuZGFibGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRp
b24tbm9uLXN1c3BlbmRhYmxlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtbm90aWZpY2F0aW9uLXN1c3BlbmRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbAppbmRleCA1
MWNiYTVkNGEwMTUwZjM4ZDVkMjhjYmYwZGVmMWYwNTIwNjkwM2U2Li4wNGI3YmQ2Y2YyOGI3MzBh
NDdmYWExNmRmYmFhNjFkYzc1ZmIyN2FjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tc3VzcGVuZGFibGUu
aHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFn
ZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1yZW1vdmVkLXNv
dXJjZS1idWZmZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXJl
bW92ZWQtc291cmNlLWJ1ZmZlci5odG1sCmluZGV4IDBlMjhhY2Y1NGE0OWI2MmFiNmRiMThiNTgx
YmY3YTdhZTZlYzc0OGMuLmJhMWRjNzQ5MzcyNTg5ZTMyZTU1ZDFiOTA2MDdiZjY1ZWRkM2JiZTQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXJlbW92ZWQt
c291cmNlLWJ1ZmZlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLXJlbW92ZWQtc291cmNlLWJ1ZmZlci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLXJ1bm5pbmctYXVkaW9jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sCmluZGV4IDc5
YjUyNTU2YWYwYzUzMzVhMmEwOTIyYWE0ZDQ4MDM3MmQwZTQzODUuLjQ5ZWFjZmQ1Mzk5YzM2YjI1
ZGJhY2U0Yzg1YjlmZjQ1ZDM4NjE3YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLXJ1bm5pbmctYXVkaW9jb250ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbApAQCAt
MSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRy
dWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdWJmcmFtZXMtd2l0aC1wcm92
aXNpb25hbC1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1z
dWJmcmFtZXMtd2l0aC1wcm92aXNpb25hbC1sb2FkLmh0bWwKaW5kZXggY2I5NDUxZmJkOTZkM2Rk
YTkyY2NjZTJiYmM1NjBjZDA2MGRlYjc2Yi4uMzZkNTBmZDkyNDc1ZTlkN2ViOWViNzhlZDIzYmY2
NzBlNzAxZDBjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtc3ViZnJhbWVzLXdpdGgtcHJvdmlzaW9uYWwtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1lcy13aXRoLXByb3Zpc2lvbmFsLWxvYWQu
aHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFn
ZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zv
cndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNwZW5kZWQt
YXVkaW9jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1z
dXNwZW5kZWQtYXVkaW9jb250ZXh0Lmh0bWwKaW5kZXggMzE1NDQwMWNlOTMyNDYwZTFlMDZmNmI2
NGY4ZjZmOGIxMGZmNmRjMy4uMTdlY2MwYTQ5NjQ3NjdhMGVkYzFmMDQ1YTI0Y2M0NDZjOTg5MmEy
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3VzcGVu
ZGVkLWF1ZGlvY29udGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLXN1c3BlbmRlZC1hdWRpb2NvbnRleHQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1uby10cmFuc2FjdGlvbi1kYi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2Utbm8tdHJhbnNh
Y3Rpb24tZGIuaHRtbAppbmRleCBhNGY1NjU1NTAxNzJhMWMxNzQ4MjdiMzc4OTQ2MWQ0N2JjM2Zi
YTMxLi4yZDE0MTQ0YjFhYjA0YzU5ZDk5ZDVjNWYxZTZjY2JkM2RjMDU0Njc0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1uby10cmFu
c2FjdGlvbi1kYi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LXdlYmRhdGFiYXNlLW5vLXRyYW5zYWN0aW9uLWRiLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGlu
Zy10cmFuc2FjdGlvbi5odG1sCmluZGV4IDBlYWIyM2RmYjg3ODgyNTVjNmI3ZTY3ZDM5YjE1MDI4
MGU5NGE3NjMuLjU1OTYzYmNmZjQ0OTc3OGEyMmU4MTA3ZGY5NzkyYzFmMjIyNmExNzIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBl
bmRpbmctdHJhbnNhY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdpdGgtb3BlbmVyLmh0bWwKaW5kZXggZjhlNDBl
NDZmYmYxZWQyNzg3OGZjN2ZlZmQ0MDQ2OTY2YTNjYTc0My4uYTJmYjNiY2NhZDc3NTFlYzA5OGNl
N2Q0Mjk5MTUzZWNmNGE1MmVlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtd2l0aC1vcGVuZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS13aXRoLW9wZW5lci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlaGlkZS1yZW1vdmUtaWZyYW1lLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZWhpZGUtcmVtb3ZlLWlmcmFtZS1jcmFzaC5odG1sCmluZGV4IDVjYzUxNDNm
Y2ZlMGY2ZTRiZTkyZjA1MzFmNzI5MjFkM2M5ZThmMDYuLjgwODY2ZDFmMDNhNzhlNjNmYWJjOWFh
NDNkYTllMzhhZmQ4ZmRhYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlaGlkZS1yZW1vdmUtaWZyYW1lLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2VoaWRlLXJlbW92ZS1pZnJhbWUtY3Jhc2guaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdpdGgtaWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93
LXdpdGgtaWZyYW1lLmh0bWwKaW5kZXggZmQ2MmJkMzgyODY2NmE4NzZiMGRlZTFjYjRhNWQzMjJh
ZGE3NzdmYi4uNDk0ODM1YjhiZDY0YjIxYTlkNmQxNjBiMzI3OTFhMWVmM2NmODJiMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLXdpbmRv
dy13aXRoLWlmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJj
ZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJhbWUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdpdGgtb3BlbmVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93LXdp
dGgtb3BlbmVyLmh0bWwKaW5kZXggYmE2MzAxMWYxMDAwNDcwNGNiNWMzZjE2ZTRlMjg3ODcxOWIw
NzZiYi4uM2NhZjM2ZTBlMWYzYzFlMmMwNmRmMWRiYmZiMjgyYTU1NzI3ZmNjNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLXdpbmRvdy13
aXRoLW9wZW5lci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMv
cGFnZS1jYWNoZS13aW5kb3ctd2l0aC1vcGVuZXIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvdGltZWQtcmVmcmVzaC1pbi1jYWNoZWQtZnJhbWUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS90aW1lZC1yZWZyZXNoLWluLWNhY2hlZC1mcmFtZS5odG1sCmluZGV4IDI0
MjgwMTZjYTY2YzkwNjdhMzIwMTIxN2U2YzRmN2YwYjI4NDE5NDcuLjAzMzQxYWM3MDU3M2YwY2Y5
MDQ3NGE2YTYwMWE4NTU2NDM1ZTg2NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS90aW1lZC1yZWZyZXNoLWluLWNhY2hlZC1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS90aW1lZC1yZWZyZXNoLWluLWNhY2hlZC1mcmFtZS5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDxib2R5IG9ubG9hZD0icmVkaXJlY3QoKSI+CiA8IS0tIE5lZWRzIHRvIHRha2Ug
dHdvIHNlY29uZHMsIGJlY2F1c2UgYSBmYXN0ZXIgcmVmcmVzaCB3b3VsZCByZXN1bHQgaW4gbm90
IGNyZWF0aW5nIGEgYi9mIGl0ZW0gZm9yIHRoZSBuYXZpZ2F0aW9uIC0tPgogPGlmcmFtZSBzcmM9
J2RhdGE6dGV4dC9odG1sLDxtZXRhIGh0dHAtZXF1aXY9IlJlZnJlc2giIGNvbnRlbnQ9IjI7IFVS
TD1hYm91dDpibGFuayI+PHNjcmlwdD5pZiAod2luZG93LnRlc3RSdW5uZXIpIHsgd2luZG93Lm9u
cGFnZWhpZGU9ZnVuY3Rpb24oZSl7YWxlcnQoJmFwb3M7cGFnZWhpZGUgJmFwb3M7ICsgZS5wZXJz
aXN0ZWQpfTsgfTwvc2NyaXB0Pic+PC9pZnJhbWU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0
bWwKaW5kZXggODI4YmNiYWFlYmM0NzkwOTkwNWJkZDg4N2E1YzkyZDk5ODRjZGNlMy4uNjRiMTUx
MDU5YmVhMjIyNWZiY2YxZTQ4NTZjNmEyZGNhNWMzYmYwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXJlc3RvcmVkLWZyb20tYmZjYWNoZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJm
Y2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0PgogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZXMtd2l0aC11bmxvYWQtaGFuZGxlcnMtaW4tcGFn
ZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWVzLXdpdGgtdW5sb2Fk
LWhhbmRsZXJzLWluLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBiODFmODc3M2EyOGUzOGRlOWVjNTQy
YWEwZjk2YzYwNWYyZTUxMzdmLi5hMzdkMjdlYmRkZmIwODBhODg2NGY1NjhiOWUyZTc2N2Q3NzMx
YWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZXMtd2l0aC11bmxv
YWQtaGFuZGxlcnMtaW4tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL2ZyYW1lcy13aXRoLXVubG9hZC1oYW5kbGVycy1pbi1wYWdlLWNhY2hlLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9pbWFnZS1pbi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9pbWFnZS1pbi1wYWdlLWNhY2hlLmh0bWwKaW5kZXggN2Q0MzEwM2IzMzJjMWMz
YjllYzVmYTVjZjJjZWYxMjA3OTE5NDMzYy4uOTdjOWJjMDExNGFhMjVlZGRmOGUzM2NlNmMwOTdh
ZDA3NzI2MGM4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW1hZ2UtaW4t
cGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ltYWdlLWluLXBh
Z2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9pbnB1dC1lbGVtZW50
LXBhZ2UtY2FjaGUtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2lucHV0LWVs
ZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5odG1sCmluZGV4IGM4NmIyNTg5Y2RlMjYzOTg1M2VlYzE2
YzdjM2MzMTdjN2VlMjQ3NjMuLjdmMWJmZTNjYmFiMmFlZjA3ZDM2MWE3M2JmZDIwOTYyMjM0MGZi
ZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2lucHV0LWVsZW1lbnQtcGFn
ZS1jYWNoZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2lucHV0LWVs
ZW1lbnQtcGFnZS1jYWNoZS1jcmFzaC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhl
YWQ+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdh
dGUtd2l0aC1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLW5ldy10YXJnZXQtYWZ0ZXItYmFj
ay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbAppbmRleCBjNThjNzI2ZDBjOWEzNGUxODM2YzY3ZmFi
MmRjMzI1Y2UyNDYyZWM2Li4xMDQ3ZDA3ZGY5ZGMxNjA4YjljZmExYTA1NmFkNzYzYzI0MDQ5OGQ4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLW5ldy10
YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJk
LW5hdmlnYXRpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1s
PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13
aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRvLW5ldy10YXJn
ZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbAppbmRleCAyZmMyMzk1NDQ2Mzlj
MWYxNmM2ZjdkZDA5ZTcyNGQ1NGZjZjRiOGM1Li5jMmI3MDUzMTFmNWJmNDEyOTZhZTJlZTBmNDg4
OGI0OTBjZDgxNDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0
ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1u
ZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Njcm9sbC1wb3NpdGlvbi1yZXN0b3JlZC1vbi1iYWNr
Lmh0bWwKaW5kZXggNzgwZWM2MDQwOTU1NDYxYzRlNmMwNzFiYWE4M2RlODU4NjZiNWU1Ny4uMTEz
MTRhNTNmMjhiOWVlZTMxYzM5ZGMxOGJlNzA0MDM5MDZkNjZiOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zY3JvbGwtcG9zaXRpb24tcmVzdG9yZWQtb24t
YmFjay5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL25vLXBvcHN0YXRl
LXdoZW4tYmFjay10by1zdGF0ZWxlc3MtZW50cnktd2l0aC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRv
LXN0YXRlbGVzcy1lbnRyeS13aXRoLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBiYjA0NjBiMTE3NGRi
M2I1Y2M4OTIyZTUxM2Q4Nzc5ZjM1ZTQwMjEzLi5mMDQ1MzgzYjQ4YmJkMjI5OGE3MjhiOThiOGY0
YTZjNTZiNGM1YTQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9i
amVjdHMvbm8tcG9wc3RhdGUtd2hlbi1iYWNrLXRvLXN0YXRlbGVzcy1lbnRyeS13aXRoLXBhZ2Ut
Y2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvbm8t
cG9wc3RhdGUtd2hlbi1iYWNrLXRvLXN0YXRlbGVzcy1lbnRyeS13aXRoLXBhZ2UtY2FjaGUuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvcG9wc3RhdGUtZmly
ZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdGF0ZW9i
amVjdHMvcG9wc3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWwKaW5kZXggNTQwM2MxZjdk
OTY4YzYzM2I1ZWYyNTM2NGZjYzg3N2E1ZjgxZGRhMS4uOGU0MDMwYzQxNTJkMTA2NjVlOWNjOTA3
NzVlOGMxOWM3MDIxYzQ0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3Rh
dGVvYmplY3RzL3BvcHN0YXRlLWZpcmVzLXdpdGgtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9wb3BzdGF0ZS1maXJlcy13aXRoLXBhZ2Ut
Y2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5
b3V0LWFmdGVyLXVubG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvdW5zY2hlZHVs
ZS1yZWxheW91dC1hZnRlci11bmxvYWQuaHRtbAppbmRleCA2OTJjNzA2ZWE0NGI3OWM0NWJjMmNm
Mzc5ZjBjM2Q1NDIyNTBlMjdhLi4zMTEwZWFiNDE1ZWY5MzYyZWEzMTc5NDJkMTY2NjQxMWMwMzA2
NDU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5
b3V0LWFmdGVyLXVubG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Vuc2No
ZWR1bGUtcmVsYXlvdXQtYWZ0ZXItdW5sb2FkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+
CiA8Ym9keT4KIDxwcmUgaWQ9ImxvZyI+PC9wcmU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci93aW5kb3ctcHJvcGVydGllcy1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3dpbmRvdy1wcm9wZXJ0aWVzLXJlc3RvcmVkLWZy
b20tcGFnZS1jYWNoZS5odG1sCmluZGV4IDkzNDM1YTUxNzU5ZDQ3OGU1YTFkMDM1NjE1ZjUwNTA0
NDA0MWZhMGQuLjM2NTA2ZTZjZjhkMjU1OWUzYTNjMWJlNmNiMDA5MzA1YzM5MmY3NGMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3dpbmRvdy1wcm9wZXJ0aWVzLXJlc3RvcmVk
LWZyb20tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3dpbmRv
dy1wcm9wZXJ0aWVzLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAl0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi1wYWdlLWNhY2hlLmh0bWwKaW5kZXggZDJlOTNhYTk2MTU5MmIw
OTkzNjU1OWNhNTIwNGFjYTU2MDc4NjgwOC4uNzhiMjgxY2Q1M2FjZWI3M2M3MGJiZDMzNjBjMDc0
NWM3N2VkYzQ2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0t
PgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9vdmVyZmxvdy9ob3Jpem9udGFsLXNjcm9sbC1hZnRlci1iYWNrLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L292ZXJmbG93L2hvcml6b250YWwtc2Nyb2xsLWFmdGVyLWJhY2suaHRtbApp
bmRleCAxNGE3ZDliMDQ0MzMwOTA1OTE0MTllYjZlYTdhYWIzMTI0ODc3ZTlmLi43MDNjZTY0ZjY0
ODdiODFjMTk4YmZkYzUwZGM3NmE1OTdiNjdmYjA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L292ZXJmbG93L2hvcml6b250YWwtc2Nyb2xsLWFmdGVyLWJhY2suaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L292ZXJmbG93L2hvcml6b250YWwtc2Nyb2xsLWFmdGVyLWJhY2suaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxzY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2lmcmFtZS1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lmcmFtZS1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRt
bAppbmRleCBmMDA2NWZkMzZmYWNjZDU5NDJjMDBkYjVhZDEwM2RhYjhiM2ZlNGZkLi4yYjg0N2Q4
MjAyMTM3YWMyNjkzNWYxYWE5OWQ2ZjU3NmEyNzZhMjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pZnJhbWUtc2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaWZyYW1lLXNjcm9sbGFibGUtYWZ0ZXItYmFjay5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJh
Y2stZm9yd2FyZC1hZnRlci1wYWdlc2hvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93Lmh0bWwKaW5k
ZXggNWE2YmQ4OWJhYjRmMDkzYTY4NTQ1MGQyODVjZjdkZTA1MGVkOGU5YS4uZDcxMzMyYjhjYTdm
YzEyYTNlNTEzYzU4OTRlNDc5ZWIzZTZlMTI3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMt
YmFjay1mb3J3YXJkLWFmdGVyLXBhZ2VzaG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NU
WVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9z
Y3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQuaHRtbAppbmRl
eCBlMmY5ODY2ODQzNWU2OTVkMzg3ZTZmMTM2NzA4OTkyZjJlYjdkMzllLi5jMTE1MTk2ZTA2Yjc2
NGFiMTVlN2UyNjQzZTA4NmU5YzhjMzE2MDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvdG91Y2gtc2Nyb2xsLWJhY2st
Zm9yd2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9s
bC1iYWNrLWZvcndhcmQuaHRtbAppbmRleCAxMTY1NDQ3NTFmMTJjZDhkYjU2OWRhYjIyZDAyMGRj
ZDJlMjMyYTMwLi4xY2RhMmJlYTNmMWJhZGFmZjZlN2IwNjIzZjE1NDFiYzRlODkzZmIxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvdG91Y2gtc2Nyb2xsLWJhY2st
Zm9yd2FyZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1z
Y3JvbGwtYmFjay1mb3J3YXJkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5n
RW5hYmxlZD10cnVlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8
aGVhZD4KICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxv
dy1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L292ZXJmbG93LXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sCmluZGV4IDA3ZTEzNWE5MjMzMWUy
YTViOWQ2YzllZGIzYjcxODJiOWE0ODVhN2IuLjFlZGU2NjE0NmM4NGQwOWI0YmQyYWY5MTFhZDFj
MmE2MDgwMzM3N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL292ZXJm
bG93LXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL292ZXJmbG93LXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL3BhZ2UtY2FjaGUtYmFjay1vdmVyZmxvdy1zY3JvbGwtcmVzdG9y
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvcGFnZS1jYWNoZS1iYWNrLW92ZXJm
bG93LXNjcm9sbC1yZXN0b3JlLmh0bWwKaW5kZXggNjkxNzZhN2U4MjMzMmViZDY2NGI1YzdlNGE1
MjQ1MjFkNjU2ZjZmYy4uNmY3ZGYwNzZjOWEwYjE5NjBmY2ViNjJkNGZmMjRmZmMyNDJkMGFmOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvcGFnZS1jYWNoZS1iYWNrLW92
ZXJmbG93LXNjcm9sbC1yZXN0b3JlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxp
bmcvcGFnZS1jYWNoZS1iYWNrLW92ZXJmbG93LXNjcm9sbC1yZXN0b3JlLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPHN0eWxlPgogI3B1ZmZpbiB7CiAgICAgZm9udDogQWhlbSAxMHB4OwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL3RleHQtYXV0b3Npemlu
Zy1hZnRlci1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3Mv
dGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2suaHRtbAppbmRleCBlNjIxYzg4NTBkMjZlZGVlODky
NzI3NWRjOGM4ZTE0NmM3ODhjYTA3Li5lZmVlZTVmZjFkOTVkOTQ1ZDY4MmQzMzAzOTdjYmM5OWE4
ZjY1Y2Q2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9pb3Mv
dGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQtYXV0b3NpemluZy9pb3MvdGV4dC1hdXRvc2l6aW5nLWFmdGVyLWJhY2suaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZs
ZXhpYmxlVmlld3BvcnQ9dHJ1ZSBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVl
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogCiA8aHRtbD4KIDxoZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3Mvdmlld3BvcnQtc2hyaW5rLXRv
LWZpdC1vbi1uZXctbmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9p
b3Mvdmlld3BvcnQtc2hyaW5rLXRvLWZpdC1vbi1uZXctbmF2aWdhdGlvbi5odG1sCmluZGV4IDli
YjNkOWE4NTBiNjNmMDFjN2IxNjUwYTM2ZTRhMGY2ZTI1NGM5ODAuLmQ4MTM3YmE0N2E4YTI0ZjU2
NDM3OTdkYjlmZTI1MmM3OWVlNjc5MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvdmll
d3BvcnQvaW9zL3ZpZXdwb3J0LXNocmluay10by1maXQtb24tbmV3LW5hdmlnYXRpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy92aWV3cG9ydC1zaHJpbmstdG8tZml0
LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBzaG91bGRJZ25vcmVNZXRhVmlld3BvcnQ9dHJ1ZSBl
bmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgc2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0PXRydWUgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiAKIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTEyOC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC92
aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbAppbmRleCAzZmViMDBkOWE5ZTdkOTA2ZWJhOWM4MDlm
Y2I3MWZjM2ZjYTVmOTBmLi40NmU4MzgyMDFmODU4OWE0NmVjMzA5MDY4NDZjNmY0NzllMDk2NTIz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTEyOC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvdmlld3BvcnQtMTI4Lmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPGh0bWw+CiAgICAgPGhlYWQ+CiAgICAgICAgIDx0aXRsZT5WaWV3cG9ydCBt
ZXRhIGRhdGEgc3RvcmVkIGluIHBhZ2UgY2FjaGUuPC90aXRsZT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWwKaW5kZXggMzU0MmMzNjk2ZDNkMzBk
OWMzNWUwOTA0N2Q5NmUxMzNjYzJjZWQ3Yy4uMTQxNjMxZWY2MmM1Njc3NDRkOWE4NTc4ZTVjZThk
YTRhZDA3YzRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1w
YWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3dvcmtlci1wYWdl
LWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJs
ZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNwbGF5LWltYWdlLXVuc2V0LWFsbG93cy1jYWNo
ZWQtaW1hZ2UtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNwbGF5
LWltYWdlLXVuc2V0LWFsbG93cy1jYWNoZWQtaW1hZ2UtbG9hZC5odG1sCmluZGV4IGZmNTgxNWU4
OTdjMTdlZjFmYWY1ODg5NGFlYTQxOGUyZWQ2NTc4M2YuLjQ3MjgyMjJjMDYxM2MwZDIyMGJjYzEx
NTZlZmY0OGUyYjgxNTg5ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2Fj
aGUvZGlzcGxheS1pbWFnZS11bnNldC1hbGxvd3MtY2FjaGVkLWltYWdlLWxvYWQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc3BsYXktaW1hZ2UtdW5zZXQtYWxsb3dz
LWNhY2hlZC1pbWFnZS1sb2FkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4K
IDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNl
L2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGVkLmh0bWwK
aW5kZXggYzY2OWYyYzAwYTIxOGNmMGM4MDI0YjI5NTVlNjU3MDU2OThkYjZkZC4uMjA1ZDljMDEz
Yzc4ZGNkY2VlZTM5ZmJkYmIwNmYzNjVhMDQ2Y2QzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5lY3RlZC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2Ut
cGFnZS1jYWNoZS1jb25uZWN0ZWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRt
bD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2
ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5l
Y3RpbmcuaHRtbAppbmRleCBiMDVlNDc0Yjk5N2JhNjMwMTI4YmU2OWMwNWUxOWJkZjgzNzM5YzU1
Li5lZDZmYTk3MmMxOGU0MjVkODVjODc5NDQ4YTY0NDlkMTllZmU2MjUxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUt
Y29ubmVjdGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2Uv
ZXZlbnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0aW5nLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2FkaW5nL21haW4tcmVzb3VyY2UtZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdh
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL21haW4tcmVzb3VyY2Ut
ZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdhdGlvbi5odG1sCmluZGV4IDA0OTQ4NzU5YmM5OTRhZTMy
YTYxZmE5YjI0ZDZkMDBkNjUxNGM4OWIuLmYxZTFmOGQ5YWE4Y2IxNzNlZGU4MjAwMmVmYTE3YmEx
NWQxNGEyYmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9tYWlu
LXJlc291cmNlLWRlbGVnYXRlcy1vbi1iYWNrLW5hdmlnYXRpb24uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvbWFpbi1yZXNvdXJjZS1kZWxlZ2F0ZXMtb24tYmFjay1u
YXZpZ2F0aW9uLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4K
IDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmlu
aXNoZWQtbG9hZC1iYWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQtbG9hZC1iYWNrLXRvLWNhY2hlZC1wYWdl
LWNhbGxiYWNrcy5odG1sCmluZGV4IGNhNTc4OGUwNzgzMDM2NDRkYThmYzAxOGMzZmY2ZWU4ODMw
YmMzMzIuLjk0Y2ZmN2FhOWY1ZGZjNDk1Mjg1OTEwZmJkZGY0MWY0NjA4OTQxYWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLWxvYWQtYmFjay10
by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvYWRpbmcvdW5maW5pc2hlZC1sb2FkLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4KIAogd2luZG93Lm9ucGFnZXNob3cgPSBmdW5j
dGlvbihldnQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91
bmZpbmlzaGVkLW1haW4tcmVzb3VyY2UtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLW1haW4tcmVzb3Vy
Y2UtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbAppbmRleCBmMmFjNjZhZDFmNjkw
ZTQxMjYxNzA4MWJmMzU1Nzc1MmIxNmI0NmY0Li5kODk2NTgwNzQxMzkyZDY3OGRkYzE1OTJlNGI5
MjU3OTU1MjEyZDUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcv
dW5maW5pc2hlZC1tYWluLXJlc291cmNlLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQtbWFpbi1y
ZXNvdXJjZS1iYWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDxzY3JpcHQ+CiAKIHdpbmRvdy5vbnBhZ2VzaG93ID0gZnVuY3Rpb24oZXZ0KSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3JlbG9hZC1hZnRlci1kaWFsb2cu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5o
dG1sCmluZGV4IDNmZTY4MDBjODhjZTA5ZWQ5MjkxMDc2YWY1YjA0MjE0ZTQxNGFkODEuLmEwN2Ew
M2IzNzI5ODYyZjRiYWJjMzliMGE3N2M5NzUzN2YyYzBlYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiAgICAgPGhlYWQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZ28tYmFjay10by1lcnJvci1wYWdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZ28tYmFjay10by1lcnJv
ci1wYWdlLmh0bWwKaW5kZXggMThiZDEzOWRhMGVmZDU3MTVmY2YxZjQ1YTY4YTU3NTlhOGY4MzRj
Ny4uMWVmZmM2ODhkNzU5MTU1MGM1YzkxOTFkZTE3MzgyODM0ZWI1YjljYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3ItcGFnZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVy
cm9yLXBhZ2UuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtaW4tcGFnZS1jYWNoZS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBhZ2UtY2FjaGUuaHRt
bAppbmRleCBlZWU5YjI2ODdjM2JmY2FmMGQyNGQ0Zjk2NGU5MjdiYzdmMGE5YWRjLi4zZjA5ODY3
NTZiZmFkOTNiZWNhYWE0ZjM1ZjZiNDM2YjcyMDllNzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtaW4tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4KIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtbm8tc3Rv
cmUtc3ViZnJhbWUtaW4tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1YmZyYW1lLWluLXBhZ2UtY2FjaGUuaHRtbAppbmRl
eCA5ODBmMjBiNjA2Nzk1MDFhNDQ0MzI4ZDU4MDc0ZTUwYzIyM2YyMDllLi4yM2Q1ODNkMGM5NTFk
NDI3MmFmZjIzNzY3ZGQxNzEyNjdjYTZhOWQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtbm8tc3RvcmUtc3ViZnJhbWUtaW4tcGFnZS1jYWNoZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1uby1zdG9y
ZS1zdWJmcmFtZS1pbi1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4K
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi1wYWdlaGlkZS1oYW5kbGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi1wYWdlaGlkZS1o
YW5kbGVyLmh0bWwKaW5kZXggZjA5OGYxNDBjOWNkNjU5NGQwNzU5MmU3YTM2YzllZWQ5YjdiMmFh
OS4uOTAzZjkzM2IyNTM3ZjIzNzVlNWI3MmQ5MGM1MDA2YTliMDE5MjhhNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ltYWdlLWxvYWQtaW4tcGFnZWhpZGUt
aGFuZGxlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9pbWFn
ZS1sb2FkLWluLXBhZ2VoaWRlLWhhbmRsZXIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD48
aGVhZD4KIDx0aXRsZT5JbWFnZSBsb2FkIGluIHBhZ2VoaWRlIGhhbmRsZXI8L3RpdGxlPgogPHNj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWwK
aW5kZXggZGJlNzY1ZGZiYTBiZTUzYTUyYTU2MTAwOGQ2MWM2Y2MzODZmYmNlYy4uNzVlYmZjZTk3
MTMzMmM1ZDAzYjczYWJmODUwODM3NTA3ZWMxMGJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGUtcGVuZGluZy1wcm9taXNl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUt
ZG9tY2FjaGUtcGVuZGluZy1wcm9taXNlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGVzdG9yYWdlLXBlbmRpbmctcHJvbWlzZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2Fj
aGVzdG9yYWdlLXBlbmRpbmctcHJvbWlzZS5odG1sCmluZGV4IGQwNWU1ZTA5MjA1MmRkZjczZmY0
ZmYwMTc1ZTk4ZTFiZDkwYTJiMTMuLmMyMjNkZDk2MmVmZDAyOWVlMmY0MTQyNGM4YmI2YTkyNjFl
YzRiMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWRvbWNhY2hlc3RvcmFnZS1wZW5kaW5nLXByb21pc2UuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21jYWNoZXN0b3JhZ2UtcGVu
ZGluZy1wcm9taXNlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3BhZ2UtY2FjaGUtZmFpbGVkLXhoci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUtZmFpbGVkLXhoci5odG1sCmluZGV4IDcyZDBiYzk3NmMwN2I1YjQ1
YTQwMjc3MGRkNjUwZTFjN2VjOTQ4NzEuLjdjOTEwMzMyYjUzYThlZWQ2OGVjNzRiYmY2ODMxNzIx
ZGE3ZmNlNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9w
YWdlLWNhY2hlLWZhaWxlZC14aHIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1mYWlsZWQteGhyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWZvbnRmYWNlc2V0Lmh0bWwKaW5k
ZXggZWY5ZjVjMzIzODYzY2NlODQ4NzJlNzJiYzZmMGMzZWE2ZDBmYThjMC4uNWQ2MjQ0NWZhYjc5
YTljODE1MDA3N2RjNmFiOGZhN2Q3OWJjNWI3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1mb250ZmFjZXNldC5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWZyYWdt
ZW50LXJlZmVycmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1mcmFnbWVudC1yZWZlcnJlci5odG1sCmluZGV4IDAyNjdlNWRmYjMzYzU2NDg0M2Rj
NjAwMjUzMmMzNzZhN2Y0NTI5ZmQuLjNkZDUwN2RiMDg0YWRmODJlMTU2NDZmMjg2M2FiY2JmZDgw
YzQ0NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWZyYWdtZW50LXJlZmVycmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZnJhZ21lbnQtcmVmZXJyZXIuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtbm8tY3VycmVu
dC1oaXN0b3J5SXRlbS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtaWZyYW1lLW5vLWN1cnJlbnQtaGlzdG9yeUl0ZW0uaHRtbAppbmRleCBiYzg4NzY0
NjBjY2EzMmUxMTI4MzczZDljOGU0NGFkYmNiOTlkOWNmLi41MWYyNDk1ZThkZjJjOWI3ZjA2NzNi
YmE2YThjYWJlMmQ1YmQzMWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtbm8tY3VycmVudC1oaXN0b3J5SXRlbS5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1u
by1jdXJyZW50LWhpc3RvcnlJdGVtLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxvYWQtYXN5bmMtZGVsZWdh
dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1p
ZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0ZXMuaHRtbAppbmRleCAwMzhmMDhh
Mjk0NTdhOTZiM2FlYzM1Nzc4Njk5NThiMmU3OGUzZjM1Li5kMTRjMzM3MjIwYTNjZDdlZmFmMTM3
ODdhMGFmMTBhYTk1NTM1M2I1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0
ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNo
ZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC1hc3luYy1kZWxlZ2F0ZXMuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9u
YWwtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxvYWQuaHRtbAppbmRleCAwMWY2M2JkYTg0NDI3M2E1MDYx
NDFmMjJkMDAxZGI1MTI0OThiNmNkLi4xODVlZWRhYTVjZjk2MWJmMGI4ZTgwZGY4ZjI2MTg4MDEz
OGM3MjEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1wcm92aXNpb25hbC1sb2FkLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVu
ZGluZy1pbWFnZS1sb2FkLWNhY2hlLXBhcnRpdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1pbWFnZS1sb2FkLWNhY2hlLXBhcnRp
dGlvbi5odG1sCmluZGV4IDQ4MGIxY2JmNjU3ZWQ4M2ZjZjVkNWExMzRmNzhjZjlhMWIzNTk5NTcu
LmZjYzQ3YWM1ZWExYzhiMGI0OWExZjNhYjNmY2E5NjhiNGQzNjZhMjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2Ut
bG9hZC1jYWNoZS1wYXJ0aXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQtY2FjaGUtcGFydGl0aW9uLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVu
ZGluZy1pbWFnZS1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbAppbmRleCA0NTdlMjE3M2U1ZTYyYmZh
Y2RlZWQ1ZWU5MDg5Yjc2NDM1ZjNjOTFjLi42ZGY5NDZkNjQ2YzI2MGI0M2ZjNDVlNWUzZWY3YzY4
MjFmNWQzMGRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQuaHRtbApAQCAt
MSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRy
dWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWxv
YWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBl
bmRpbmctbG9hZC5odG1sCmluZGV4IDQ1OTUzNzVkMjE3N2YzNWYyMGRhYzRjOWNkZDRlODg3M2Q3
YmUwMmQuLjE3NmYxYjgyYjM3NGM0NzI2MmFkNWQ0NDM1MzYzN2MwYjJjZGZmMDQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmct
bG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNh
Y2hlLXBlbmRpbmctbG9hZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLWNyb3NzLW9yaWdpbi5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxv
YWQtY3Jvc3Mtb3JpZ2luLmh0bWwKaW5kZXggMTNiMGY5MmNhOTc1Y2QxZWQ0NDM2MzUwNmJlZjIw
MDMyMzliNTFkYy4uNTI0OTBlNGNmOGIzMDY0MDAzZTE1Nzc1MjBiMzAzZjdlODBiMjJjZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVu
ZGluZy1waW5nLWxvYWQtY3Jvc3Mtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtY3Jvc3Mtb3JpZ2lu
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0
bWw+CiA8Ym9keT4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLXNh
bWUtb3JpZ2luLmh0bWwKaW5kZXggMDU3ZmM4OTk2YWZjNDFiNzJjMzcyNjlhOTA1N2IyNjA3ZDI2
NTI4ZC4uZWI4NTc1MjZlN2UzOWM5NzRjYjNiMDY3M2ExYTVmYjAwYmEzZDRiZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1w
aW5nLWxvYWQtc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9
dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXJlcXVlc3RB
bmltYXRpb25GcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmh0bWwKaW5kZXggNjFjYWYwN2ZmYWNlZjBl
YzY0YjZkZTY5ODgzNmEyYjZiMGUwYzM4Zi4uNjk5ZjBiYmJkZmYzOTU2ZDIxM2JmN2ZjMmRkMjQx
NWM2Mzg2MDdmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3BhZ2UtY2FjaGUtcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcmVxdWVzdEFuaW1hdGlvbkZyYW1lLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhy
LWluLXBhZ2VoaWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS14aHItaW4tcGFnZWhpZGUuaHRtbAppbmRleCAwYjExMzAxZDc2ZGViYWU0MTUzN2Ex
MjFlMWU1MDczZjQ3YjlkOTVkLi5hMmYxZjRjYWRmY2VhY2VkOGI3NzExZDBiOTJlZGYxNzRhZjFh
YTEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS14aHItaW4tcGFnZWhpZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tcGFnZWhpZGUuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHIuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sCmluZGV4IDUyMmQ3ODcx
NjI3MzdkMGRjYzJiNGM5MmE0NDBiYTAzZjAxNmQyMGYuLjM3M2I1NWQ2MzIxMGZhNGRkZDE4YWRh
MDRhNjg3Y2M3ZjlmODIyZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1jYWNoZS0zLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2h0dHBzLWluLXBhZ2UtY2Fj
aGUtMy5odG1sCmluZGV4IDdkZmZmMjhiNzcxZmIwYzAyNmVkM2VmYzYzZWI0YjQzNGRmMDFhZDgu
LmU4MWEwNTM3ODQzYTYwYmM1M2UxYTA1MTA1MTFjMDNiOGJjZjBkYWMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1j
YWNoZS0zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291
cmNlcy9odHRwcy1pbi1wYWdlLWNhY2hlLTMuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0
Pgogd2luZG93Lm9ucGFnZXNob3cgPSBmdW5jdGlvbihldnQpIHsKIAlpZiAoIWV2dC5wZXJzaXN0
ZWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3ViZnJh
bWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRsZXItc3RhcnRzLWxvYWQuaHRt
bAppbmRleCBhMzQ0ZTI2NzE1Mjg4OGFlOWFhOWJhNDlkMTA5NzNhOTZmOWIxY2I0Li5iMTJiMWEy
NmIyOGU0MGUzMjAzOTlhMjYwOGEyZDhjZGIwZjdjNjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFydHMt
bG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWJmcmFt
ZS1wYWdlaGlkZS1oYW5kbGVyLXN0YXJ0cy1sb2FkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWJmcmFtZS1wYWdlaGlkZS1o
YW5kbGVyLXN0YXJ0cy1sb2FkMi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRsZXItc3RhcnRzLWxvYWQyLmh0bWwKaW5kZXggYzNj
Mzc1NTViM2MwNTQ1MjUyMTgwNzljODY0MDEzNDEzN2ViNDRlNC4uNjY2NDc1Y2Y1YThmOGEzY2Ex
ZmZlZDFiMTJhOTliODYxZjBmYTA4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRsZXItc3RhcnRzLWxvYWQyLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRl
LWhhbmRsZXItc3RhcnRzLWxvYWQyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdpbmRvdy1vcGVuLWluc2Vy
dC1zY3JpcHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLXdpbmRvdy1vcGVuLWluc2VydC1zY3JpcHQuaHRtbAppbmRleCAxMTY0Yjc1MDk0ZDE0YjRh
YmYxMmVjMDhhN2NjMjlmZmFiMmI1Y2YzLi5hYTA3YjFmNGViOTI5OWM1MWUyOTQ1MzQ0YjBlYjFk
ZGE3ZmY2NTlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQtc2NyaXB0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93LW9wZW4taW5zZXJ0LXNj
cmlwdC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVC
YWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLXdpbmRvdy1vcGVuLWphdmFzY3JpcHQtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1qYXZhc2NyaXB0LXVybC5odG1s
CmluZGV4IDI2NmJhOWNlOWNiMDMzNzA1MDhmMTdmMTFiMGM5NGVkODc4YWM3ZGQuLmE2YmQ0NDI3
YzRhNmIzYzNmODU5NjdmODIyNzE2OWU5MWM0OTU3NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdpbmRvdy1vcGVuLWphdmFzY3JpcHQt
dXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmln
aW4td2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURP
Q1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hdmlnYXRlLXdoZW4tcmVzdG9yaW5n
LWNhY2hlZC1wYWdlLmh0bWwKaW5kZXggYjExYTRmYTk5Njg5MWMwZTYzMWI4MGE1YzFjNzgxZmI3
NjQ0OTkxNy4uZGQ2ZjhjMWY3NzJjYWIyNDA0N2UyOGRiNWViODczNzFiY2M4YzE5OCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYXZpZ2F0ZS13aGVuLXJlc3Rv
cmluZy1jYWNoZWQtcGFnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVkLXBhZ2UuaHRtbApAQCAtMSw0ICsxLDQg
QEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4K
KzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0g
LS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CkBAIC02Myw3ICs2Myw3IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKQogCiAgICAgICAgICAgLy8gUHJldmVudCBlbnRlcmluZyBQYWdlQ2Fj
aGUuCiAgICAgICAgICAgaWYgKHcuaW50ZXJuYWxzKQotICAgICAgICAgICAgdy5pbnRlcm5hbHMu
cHJldmVudERvY3VtZW50Rm9yRW50ZXJpbmdQYWdlQ2FjaGUoKTsKKyAgICAgICAgICAgIHcuaW50
ZXJuYWxzLnByZXZlbnREb2N1bWVudEZvckVudGVyaW5nQmFja0ZvcndhcmRDYWNoZSgpOwogCiAg
ICAgICAgICAgY2hpbGRfZnJhbWUgPSB3LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJykpOwogICAgICAgICAgIGNoaWxkX2ZyYW1lLmNvbnRl
bnRXaW5kb3cub251bmxvYWQgPSAoKSA9PiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtY2xpY2stYW5kLWZvcm0tc3VibWlzc2lvbi1mcm9t
LWluYWN0aXZlLWRvbXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1pc3Npb24tZnJvbS1pbmFjdGl2ZS1kb213
aW5kb3cuaHRtbAppbmRleCAxMzMxNGU2MTc1YTE5YWM4NjQ1YTA0YTM2NmIwZTRjNGU0MDUwZTUx
Li5mZTQ2MzRkMTNhZTVkMmJlMGMyYzgyY2U0MGQxYTIyNDU3MGY4NGRhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtY2xpY2stYW5kLWZvcm0t
c3VibWlzc2lvbi1mcm9tLWluYWN0aXZlLWRvbXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jbGljay1hbmQtZm9ybS1zdWJtaXNzaW9u
LWZyb20taW5hY3RpdmUtZG9td2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQt
aW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Lmh0bWwKaW5kZXggMjk2MTk3NjUwNDFmZjVhM2Y5
NmU4NjQ1MGIxMDA5NWM3MTk2ZmY3MS4uNGQwYmJhOTkwNzkwNDcwNjY5NDQzNzgwOGM4YjZjOWZh
ODBkNTQxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3Mt
REVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRv
LWluYWN0aXZlLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi1wc29uLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWlu
amVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzItcHNvbi5odG1sCmluZGV4IDZhM2JkMTgzNzU5NTJk
NzE0MGVlZmNhMThiMzJmMGY1ZGExNzM5MDAuLjljOTI4NTY4M2NiZGM2N2M4NGI1NGNjM2JmOThj
MWVlNDViZDQ0OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi1wc29uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1p
bmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLXBzb24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb249dHJ1ZSBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bj10cnVlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4K
IDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
cy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzIuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8t
aW5hY3RpdmUtd2luZG93Mi5odG1sCmluZGV4IDg0YmM1YmU5ODNmZTBiNjNjNjVlYjVjYTBhYzZj
OTBlZjg2NDc2ODkuLjMxY2E4NjQ5MGFlYzNmZTcwODI4NzU1ZTJkMThhMjkwNGMxM2YzZDggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3Jp
cHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Mi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUt
d2luZG93Mi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8
aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURF
TklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93My5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFj
dGl2ZS13aW5kb3czLmh0bWwKaW5kZXggOGQ2YmYyYzMyZDEzZTMwY2FmYjIwZmU4YmUyNGI3ZDEx
NGY0NzhkMC4uM2UxZmFlN2M3ZGQ5NWUyMzA5ZjAxYjIwNmFkYmMzYjkwNDc5ODgzZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1p
bmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3czLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5k
b3czLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJs
ZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9jbG9zZWQtd2hlbi1lbnRlcmluZy1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlZC13aGVuLWVudGVyaW5nLXBhZ2UtY2Fj
aGUuaHRtbAppbmRleCA0ZTcxNDNiNWY4ZWUwYTJhMTFkNGJjMGI5ZDhmMzhlZTQ0OGRkZjdlLi5l
Njg0MjQ3MmE5YmI3ZmJlNjMxNjc4NTU5OTlhMTkxYTJiZTBkOWRlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2Nsb3NlZC13aGVuLWVudGVy
aW5nLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2Nsb3NlZC13aGVuLWVudGVyaW5nLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3N0b3Atb24tcmVzdW1l
LWluLWVycm9yLWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvc3RvcC1vbi1yZXN1bWUtaW4tZXJyb3ItaGFuZGxlci5odG1sCmluZGV4IDRh
YzIwYzAwM2U1NWI3YzM3YjRlZWZmZWI2NmI0MGY4NjkzZmNmNDEuLjI2MDY3ODBmNjE4MWQ2MzAw
MWVjZjQzNGFlOWU0MWNjMDM5NTVlNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc3RvcC1vbi1yZXN1bWUtaW4tZXJyb3ItaGFuZGxlci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc3Rv
cC1vbi1yZXN1bWUtaW4tZXJyb3ItaGFuZGxlci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9y
ZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZyb20tcGFnZS1j
YWNoZS5odG1sCmluZGV4IDViYjBiZWUxZjgxOWY4MWIxN2FmZmM5MWYzZjdhMWQ1NGMxZjNmOWQu
LjVkNTg1M2UzYTQ2MDI2MjdlNjEzYzlmMGU0MGYxMmVmNmIwMDA2ZWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGll
bnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1y
ZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUg
aHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFn
ZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xp
ZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBi
ZWMxMWVhOTExODgxZThhZWMwZTcwNmQ4MDRiNTlkZTgzYjViYzZlLi5jMjJlYjRiNGZiY2ZiN2Nk
NWJmNzM0NjJiNzRiMWQ2ZWZkNmM0ODZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4t
cGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL2NsaWVudC1yZW1vdmVkLWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdlLWNhY2hlLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNoZS1z
ZXJ2aWNlLXdvcmtlci1wZW5kaW5nLXByb21pc2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13b3JrZXItcGVuZGlu
Zy1wcm9taXNlLmh0dHBzLmh0bWwKaW5kZXggMDlmMDU2ODNmN2E5YWM3NWNlY2JlZDFlZWZhNzNj
Yjg4YTcyMDc1MS4uNmRiNWQzMDBmYjkzZGE2MzJiYzkzMzVhNGFiZTY3OWM0ZWVmNTgyYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNo
ZS1zZXJ2aWNlLXdvcmtlci1wZW5kaW5nLXByb21pc2UuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9wYWdlLWNhY2hlLXNlcnZpY2Utd29ya2Vy
LXBlbmRpbmctcHJvbWlzZS5odHRwcy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNoaW5nLmh0bWwKaW5kZXggNGYyNmFmOTI0ZTIzZWFj
YThkYzNlMzZmMmVkZTlhNjVjYjYzMzI3Yi4uNTExZWY4NWJhMWU2MWFhNTM5MzNiOWNmNjA3NGQy
M2NjZmRiMmQwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvcGFnZS1jYWNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvcGFnZS1jYWNoaW5nLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
YmVhY29uL3N1cHBvcnQvc2VuZEJlYWNvbi1vbnBhZ2VoaWRlLXdpbmRvdy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJlYWNvbi1vbnBhZ2VoaWRlLXdpbmRv
dy5odG1sCmluZGV4IGNiZTE5NTA5YzU2ZGRkYWMwNDZmNmRhNzVkNDQwZWE5ZjVlNWQyYzguLmEz
NzhhNTQ4ZWYzMzI3YjI5MjM4MDUyZjRjYmE2MzllNmJjNThmZTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9zdXBwb3J0L3NlbmRCZWFjb24tb25wYWdlaGlkZS13aW5k
b3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vc3VwcG9ydC9zZW5kQmVh
Y29uLW9ucGFnZWhpZGUtd2luZG93Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbGVnYWN5LWFuaW1h
dGlvbi1lbmdpbmUvYW5pbWF0aW9ucy9yZXN1bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sIGIvTGF5
b3V0VGVzdHMvbGVnYWN5LWFuaW1hdGlvbi1lbmdpbmUvYW5pbWF0aW9ucy9yZXN1bWUtYWZ0ZXIt
cGFnZS1jYWNoZS5odG1sCmluZGV4IGRlZDM4NzU2ZjFlNzAxYzYyNzI0ZmRlNzFiODhiNDExNTIz
NjdkOTcuLmIxMWMwZWE1ZDgxMDliOGFhNTE0YTJkYTNjNjllOGEwOTk0ZDMyZmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2xlZ2FjeS1hbmltYXRpb24tZW5naW5lL2FuaW1hdGlvbnMvcmVzdW1l
LWFmdGVyLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9sZWdhY3ktYW5pbWF0aW9u
LWVuZ2luZS9hbmltYXRpb25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpXZWJBbmltYXRp
b25zQ1NTSW50ZWdyYXRpb25FbmFibGVkPWZhbHNlIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpXZWJBbmltYXRpb25zQ1NT
SW50ZWdyYXRpb25FbmFibGVkPWZhbHNlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0t
PgogPHN0eWxlPgogQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7CiAgICAgZnJvbSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS5o
dG1sIGIvTGF5b3V0VGVzdHMvbG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UuaHRt
bAppbmRleCA5ODRmNjQwNmE5MDYzMmNmMDg2NDEwMjU4MDM5NTdhM2M4NTNiZmRiLi4zNTU1ZWNj
MThkYzZjYWUxOTk1YzA4NWUyOWMwZWFhMGM5YTkzMzQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9sb2FkZXIvZ28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2xvYWRlci9nby1iYWNrLWNhY2hlZC1tYWluLXJlc291cmNlLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPGh0bWw+CiA8aGVhZD4KICAgICA8dGl0bGU+VGVzdCByZXNvdXJjZSBsb2FkIGNhbGxi
YWNrcyBnb2luZyBiYWNrIHRvIGEgY2FjaGVkIG1haW4gcmVzb3VyY2U8L3RpdGxlPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbG9hZGVyL2dvLWJhY2stdG8tZGlmZmVyZW50LXdpbmRvdy1zaXpl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNp
emUuaHRtbAppbmRleCA1ODQzZTdmNThiMWY4NjBhYzdmZTZkODBkZWYwNWM5OWM5ODU5MzMzLi4w
MTYyYmFhOGY5YjRlMjA3NmY0OWI5NTZkY2YwYTgwYmMwNGMwZDU0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9sb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9sb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxzY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBsdWdpbi1mYWxs
YmFjay5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvY3Jhc2gtY2xvc2luZy1wYWdlLXdpdGgtbWVk
aWEtYXMtcGx1Z2luLWZhbGxiYWNrLmh0bWwKaW5kZXggODE5NTkxZWRiZTUzMDI0ZmQwMjkzYjQy
NDM1ZGJiMmEyOGUxNjEyNi4uYzVkOGM3NDEzNmMxOTRjODU0ZGIxODA1MGE3ZDI5MmFjMGZlMGY1
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvY3Jhc2gtY2xvc2luZy1wYWdlLXdpdGgt
bWVkaWEtYXMtcGx1Z2luLWZhbGxiYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY3Jh
c2gtY2xvc2luZy1wYWdlLXdpdGgtbWVkaWEtYXMtcGx1Z2luLWZhbGxiYWNrLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPHNjcmlwdD4KIHZhciBjaGlsZFdpbmRvdzsKIDwvc2NyaXB0PgpAQCAtMTMs
NyArMTMsNyBAQCBJZiBpdCBkb2Vzbid0IGNyYXNoLCBpdCBwYXNzZXMuPGJyPgogaWYgKHdpbmRv
dy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKHRydWUpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRCYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKHRydWUpOwogICAg
IHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7CiAgICAgdGVzdFJ1bm5lci5zZXRD
bG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7CiAgICAgdmFyIGJ1dHRvbiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJidXR0b24iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNoZS5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1wYWdlLWNhY2hlLmh0bWwK
aW5kZXggMDEyY2U0YWNkMTgwOTMxMGNlM2QxZGJkZmRkZDIzZjgzYTFlYWZmMy4uYzhkYzM2ZjY2
MjQ3NTQ5MzgyY2MyZTJkODQ2YzQyYWYzNmQ2MTEzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1wYWdlLWNhY2hlLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvcmVzdG9yZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbCBiL0xh
eW91dFRlc3RzL21lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWwKaW5kZXggZTk1MDUx
ODMyYjYyYjU2ZDU5YTRkNDk2ZmQ5NDA5NDg2MThlYzM4Mi4uMWFkMjU3MWExNTcyYjhkZTRmNjZl
Njg3MTU5NDBmYzMwYmY0ZDU4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvcmVzdG9y
ZS1mcm9tLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9yZXN0b3JlLWZy
b20tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogICAgIDxoZWFkPgog
ICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9maXhlZC9maXhlZC1iYWNrLWZvcndhcmQuaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pb3MvZml4ZWQvZml4ZWQtYmFjay1mb3J3YXJk
Lmh0bWwKaW5kZXggZDA2NDA0MzNkMGI2ZDE5MDAxN2VhZmUwNTAxZWRhZmU4ZmVhY2FkZS4uMzU2
MWVlZTJiN2ZlZDk0OTdjMGVlNmFkNmMwODVhYjBmZDkwNTEwYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL2lvcy9maXhlZC9maXhlZC1iYWNrLWZvcndhcmQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2ZpeGVkL2ZpeGVkLWJhY2stZm9yd2FyZC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jhc2gtcmVzdG9yaW5nLXBsdWdpbi1wYWdl
LWZyb20tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9jcmFzaC1yZXN0b3Jp
bmctcGx1Z2luLXBhZ2UtZnJvbS1wYWdlLWNhY2hlLmh0bWwKaW5kZXggNmY4ODRmMzU2Yzg3MDA2
NzY0MGYwMTQyYzhlNTRiZTE1Y2E0YzkzMC4uMTBkYzk5NGJmZDI2YTg1MTU3NjZiNGE2Zjg5MzNk
YjQwYWFiNTc1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9jcmFzaC1yZXN0b3Jp
bmctcGx1Z2luLXBhZ2UtZnJvbS1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGx1
Z2lucy9jcmFzaC1yZXN0b3JpbmctcGx1Z2luLXBhZ2UtZnJvbS1wYWdlLWNhY2hlLmh0bWwKQEAg
LTEsMTAgKzEsMTAgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIg
JiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQ
YWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnModHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEJhY2tGb3J3YXJkQ2FjaGVTdXBwb3J0c1BsdWdpbnModHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIHBh
Z2VTaG93bigpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvZnJhbWVzZXQtd2l0
aC1wbHVnaW4tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnJhbWVzZXQtd2l0aC1w
bHVnaW4tZnJhbWUuaHRtbAppbmRleCBjYTg1YmRjYjYyOTcwZDk3NzZlYzMxOGJkMjkwMTI1NmNi
NWRiZGEzLi5iMjk5MDZjZTVlMDFkYzI5YWQ5NmJhNDMwNTJhYmEyYmQ2OTAyNTk1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9mcmFtZXNldC13aXRoLXBsdWdpbi1mcmFtZS5odG1s
CkBAIC0xLDExICsxLDExIEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgY2hhcnNldD0idXRmLTgiPgogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzKSB7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKLSAgICAgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEJhY2tGb3J3YXJkQ2FjaGVTdXBwb3J0c1BsdWdpbnModHJ1ZSk7CiAgICAg
fQogPC9zY3JpcHQ+CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUt
cGx1Z2luLXBhZ2UtY2FjaGUtd29ya3MuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvbmV0c2Nh
cGUtcGx1Z2luLXBhZ2UtY2FjaGUtd29ya3MuaHRtbAppbmRleCA0ZjgyMzQxNzZjMGJjY2ZmZTI1
MzI3YzNmZmUzMDdiMmEyM2FhMTFiLi43N2YyYmU0ZGYzMmVlZmI3NWJmZmNkODE2ZTgwZjliZjU1
ZDA3MDU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1w
YWdlLWNhY2hlLXdvcmtzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1w
bHVnaW4tcGFnZS1jYWNoZS13b3Jrcy5odG1sCkBAIC0xLDEwICsxLDEwIEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8
c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKHRy
dWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRCYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQ
bHVnaW5zKHRydWUpOwogfQogCiB2YXIgc2F2ZWRUZXN0T2JqZWN0ID0gbnVsbDsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNoZS5o
dG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvSURCUmVxdWVzdC1wYWdlLWNhY2hl
Lmh0bWwKaW5kZXggNmRlODA2M2RmOGQ1Y2VhM2ViYTU3NWEwZGE4Zjg0OGEyMjE0NGEyZi4uYzdj
NTk0YjYzODMyZWFiZGM3ZGFmY2FhZDAzOWE4NTMyYTNhNWU3OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvSURCUmVxdWVzdC1wYWdlLWNhY2hlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvSURCUmVxdWVzdC1wYWdlLWNhY2hlLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24tcGFnZS1j
YWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24t
cGFnZS1jYWNoZS5odG1sCmluZGV4IDJjODc4OTFkMTM3Mjk0Zjc2ODAxZWZjZGJiYTg3YjhjZWQ0
MmFkOWMuLmJiZDdjNWRlY2U5NDQyMWY2MWViNWM1YjljMWY5NDNjN2EzZDliMTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2Fj
aGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJh
Y2stc3dpcGUuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBl
Lmh0bWwKaW5kZXggNjU2NWIwNzhkMGQ0NTRlNDdhMzFiZjU0ODFiZGU2OTNjMDFkOGVkNC4uZDJm
YmEyMzU1ZDhlNDdlNGM0ZDBkNGUxYWFlM2ZjYmMyYjE2ODhhNCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3dpcGUvYmFzaWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxo
ZWFkPgogPHN0eWxlPgogaHRtbCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWlu
LWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL21haW4t
ZnJhbWUtcGlubmluZy1yZXF1aXJlbWVudC5odG1sCmluZGV4IGM4MWYzZTY0ZGY0M2E2MGZmMmYw
YzA4MjM1YzA4NzM1NjZlZmNmNzQuLmI4NWFkMWIzZWYzZDdmY2Q1YTNiNjQ3YjlkNjY3MjIzMjdi
NzY0YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmluZy1y
ZXF1aXJlbWVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL21haW4tZnJhbWUtcGlubmlu
Zy1yZXF1aXJlbWVudC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHN0eWxlPgogaHRt
bCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2st
c3dpcGUuaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lw
ZS5odG1sCmluZGV4IGEwMTE5ZjE2MzMxYzZiNTA0NzVkN2ZkZDYzMGViZThkMjc5MDhlMTYuLjgz
ZWRhYjg2OTFmN2RiOTNlODk1ODBjYWI2ZjgzYjMzZDk3M2NjY2MgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1jYWNoZWQtYmFjay1zd2lwZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDxoZWFkPgogPHN0eWxlPgogaHRtbCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
d2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1s
IGIvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3
aXBpbmctY3Jhc2guaHRtbAppbmRleCAwMmZkNDRlNDFlYzFmM2ExZjE0ZDBjMTAwMzMwZTE0YWUy
NGFiYTg3Li5kMzU2ZDIxN2NhNzNmMzU3YzU3ZDI5MWVkZDIyYzJkMDc1ZDI1MDBjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUt
c3dpcGluZy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9n
cmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PGhlYWQ+CiA8c3R5bGU+CiBodG1sIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL3B1
c2hzdGF0ZS13aXRoLW1hbnVhbC1zY3JvbGxyZXN0b3JhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
c3dpcGUvcHVzaHN0YXRlLXdpdGgtbWFudWFsLXNjcm9sbHJlc3RvcmF0aW9uLmh0bWwKaW5kZXgg
MWYxZDdhZTA3NzA0ZDU5YzJlZGZkYzM1MWFkYzNjOTNlYTUxMGYzOS4uM2YwYWRmMjEyODNjNGQw
MmNkMTIwNThhMmNmZTNlNjNkNTg4ODA2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3dpcGUv
cHVzaHN0YXRlLXdpdGgtbWFudWFsLXNjcm9sbHJlc3RvcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvc3dpcGUvcHVzaHN0YXRlLXdpdGgtbWFudWFsLXNjcm9sbHJlc3RvcmF0aW9uLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPGhlYWQ+CiA8c3R5bGU+CiBodG1sIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL251bGwtcGFyZW50LWJhY2stY3Jhc2gu
aHRtbCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL251bGwtcGFyZW50LWJh
Y2stY3Jhc2guaHRtbAppbmRleCA3N2MzYzBhODYyZDA1MjExYjYzYzVmZTEzMjU3MGI5YjQyMGE1
YjZjLi4yMzI1NGU1ODY1ODI4MDFkODhhOGM1MDE0YTc2YmE3ZWYyOWRkMjg1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9udWxsLXBhcmVudC1iYWNrLWNy
YXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbnVsbC1w
YXJlbnQtYmFjay1jcmFzaC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvdGls
ZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy90aWxlZC1kcmF3aW5nLXNjcm9sbC1wb3NpdGlvbi1w
YWdlLWNhY2hlLXJlc3RvcmF0aW9uLmh0bWwKaW5kZXggYmRkMDg3NTI1ZjQ0YmM2NTVjY2M2MzAz
NjAwZWZlNGEzNmRhODFjNC4uYWQ5MGM4NzE5MDg1MzU3ODE3NGRiYWE3YjhlMGE3NjQ1MTgwOGY2
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy90aWxlZC1kcmF3aW5nLXNj
cm9sbC1wb3NpdGlvbi1wYWdlLWNhY2hlLXJlc3RvcmF0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvdGlsZWQtZHJhd2luZy90aWxlZC1kcmF3aW5nLXNjcm9sbC1wb3NpdGlvbi1wYWdlLWNhY2hl
LXJlc3RvcmF0aW9uLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2Rh
dGFjaGFubmVsLXBhZ2UtY2FjaGUtc2VuZC5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFj
aGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUtc2VuZC5odG1sCmluZGV4IDVmODRhMjM5ZDkx
YzNkYjU3MTM4YjZjYTczMjNhOWI2ZjVlM2RkZDcuLmM0YmQ3NGYwOGM3NzMzODk3MTMyZDZkMWI3
OGE4MDExMDRhYWJkZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5l
bC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJy
dGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1zZW5kLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUuaHRtbCBi
L0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLmh0
bWwKaW5kZXggMTcwYmI5ZmRmNzExOGEyN2U2NGVjZWM5ZWU4ZGVhODZlOGM5NTZhYy4uZGNmNTcw
ZGFlNWE1OGE0NjM3YTM5OGZkOWI4YTYwYzVhNzg1NjNkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381143</attachid>
            <date>2019-10-16 17:59:39 -0700</date>
            <delta_ts>2019-10-16 18:44:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203048-20191016175930.patch</filename>
            <type>text/plain</type>
            <size>387013</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxMjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRmZDE5NDI1NDUyZTI5
NTIyNDdhM2QxN2EwYTBjOTYwNDZmZmVjOS4uNWJlMjk1NzQ3NGM2MzkwODdlMzk5MjU0YjExMThh
NzY3ODFiYTFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxOCBAQAorMjAxOS0xMC0xNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUg
dG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hlIHRvIEJhY2tGb3J3YXJkQ2FjaGUgZm9yIGNs
YXJpdHkgYW5kIGNvbnNpc3RlbmN5IHdpdGggdGhlIFVJUHJvY2VzcydzIFdlYkJhY2tGb3J3YXJk
Q2FjaGUuCisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpzdXNwZW5kKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzdXNwZW5kKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dDo6c3VzcGVuZCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQW5pbWF0aW9uOjpjYW5TdXNwZW5kRm9yRG9j
dW1lbnRTdXNwZW5zaW9uIGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dQcm94eTo6Y2xlYXJKU1dpbmRvd1Byb3hp
ZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyk6CisgICAgICAgICogYmluZGluZ3MvanMvV2luZG93UHJv
eHkuaDoKKyAgICAgICAgKiBkb20vQWN0aXZlRE9NT2JqZWN0Lmg6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNjaGVkdWxlU3R5bGVSZWNhbGMpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6Om5lZWRzU3R5bGVSZWNhbGMgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0NhY2hlQW5kRm9yY2VT
dHlsZVJlY2FsYyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3JlYXRlUmVuZGVyVHJl
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkQmVjb21lQ3VycmVudERvY3VtZW50
SW5GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXR0YWNoVG9DYWNoZWRGcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV0YWNoRnJvbUNhY2hlZEZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkanVzdEZvY3VzZWROb2RlT25Ob2RlUmVtb3ZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnRha2VET01XaW5kb3dGcm9tKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpzZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc3Vt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dG9wRG9jdW1lbnQgY29uc3QpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSBjb25zdCk6CisgICAgICAgICogZG9tL0Z1bGxzY3JlZW5NYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRW50ZXJGdWxs
c2NyZWVuKToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1
bGxzY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6RnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpGdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRXhp
dEZ1bGxzY3JlZW4pOgorICAgICAgICAqIGRvbS9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAg
ICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMp
OgorICAgICAgICAqIGhpc3RvcnkvQmFja0ZvcndhcmRDYWNoZS5jcHA6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjps
b2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNhbkNhY2hlRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Y2FuQ2FjaGVQYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbik6CisgICAgICAg
IChXZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjpCYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OmR1bXAgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QmFja0ZvcndhcmRDYWNoZTo6Y2FuQ2FjaGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QmFja0ZvcndhcmRDYWNoZTo6cHJ1bmVUb1NpemVOb3cpOgorICAgICAgICAoV2ViQ29yZTo6QmFj
a0ZvcndhcmRDYWNoZTo6c2V0TWF4U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2Fy
ZENhY2hlOjpmcmFtZUNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJk
Q2FjaGU6Om1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrRm9yd2FyZENhY2hlOjptYXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6Om1hcmtQYWdlc0ZvckNhcHRp
b25QcmVmZXJlbmNlc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0QmFja0ZvcndhcmRD
YWNoZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OmFkZElmQ2Fj
aGVhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OnRha2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QmFja0ZvcndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3YXJkQ2FjaGU6OmdldCk6CisgICAgICAgIChXZWJD
b3JlOjpCYWNrRm9yd2FyZENhY2hlOjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6QmFja0Zv
cndhcmRDYWNoZTo6cHJ1bmUpOgorICAgICAgICAqIGhpc3RvcnkvQmFja0ZvcndhcmRDYWNoZS5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaC4KKyAgICAg
ICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEZy
YW1lQmFzZTo6cmVzdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRGcmFtZTo6Q2FjaGVk
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkRnJhbWU6OmNsZWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZEZyYW1lOjpkZXN0cm95KToKKyAgICAgICAgKiBoaXN0b3J5L0NhY2hl
ZEZyYW1lUGxhdGZvcm1EYXRhLmg6CisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0Q2FjaGVkUGFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0VVJMKToKKyAgICAgICAgKiBoaXN0b3J5L0hpc3Rv
cnlJdGVtLmg6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6aXNJbkJhY2tGb3J3YXJk
Q2FjaGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnJlc3VtZSk6CisgICAgICAgICogaHRtbC9IVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcik6CisgICAgICAgICogaHRtbC9IVE1MU291cmNlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU291cmNlRWxlbWVudDo6c3VzcGVuZCk6
CisgICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OmF1dG9wbGF5UGVybWl0dGVkIGNvbnN0KToKKyAgICAg
ICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXI6OmFkZFN1YnJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1l
bnRMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oOgor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6Y2xvc2VVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNsZWFy
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVycyk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c3RvcEZvckJhY2tGb3J3YXJkQ2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6ZnJhbWVEZXRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
ZGV0YWNoRnJvbVBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVjZWl2
ZWRNYWluUmVzb3VyY2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c2hv
dWxkUGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6ZGlzcGF0Y2hVbmxvYWRFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlcjo6bG9hZFByb3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZp
ZXdTdGF0ZVRvSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVz
dG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3Rv
cnlDb250cm9sbGVyOjppbnZhbGlkYXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjp1cGRhdGVGb3JSZWxvYWQpOgorICAgICAgICAq
IGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Y2FuQ2FjaGVJbkJhY2tGb3J3YXJkQ2FjaGUpOgor
ICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZTo6bG9hZCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlc3VtZUZyb21CYWNrRm9yd2FyZENhY2hlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6ZGVjcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5l
cnNDb3VudCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RP
TVdpbmRvd0V4dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNp
b246OnN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvd0V4dGVuc2lvbjo6cmVzdW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIHBh
Z2UvRE9NV2luZG93RXh0ZW5zaW9uLmg6CisgICAgICAgICogcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0tleXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpiYWNr
Rm9yd2FyZENhY2hlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5
czo6YmFja0ZvcndhcmRDYWNoZUZhaWx1cmVLZXkpOgorICAgICAgICAqIHBhZ2UvRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmg6CisgICAgICAgICogcGFnZS9FdmVudFNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudFNvdXJjZTo6c2NoZWR1bGVSZWNvbm5lY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFNvdXJjZTo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRT
b3VyY2U6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRTb3VyY2U6
OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRTb3VyY2U6OmFib3J0Q29ubmVjdGlv
bkF0dGVtcHQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRTb3VyY2U6OnN1c3BlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRTb3VyY2U6OnJlc3VtZSk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudFNvdXJjZTo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRT
b3VyY2UuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lOjpzZXRWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXREb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6d2lsbERldGFjaFBhZ2UpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlkUmVzdG9yZUZy
b21CYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0Q29u
dGVudHNTaXplKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXdM
YXlvdXRDb250ZXh0OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0
Q29udGV4dDo6c2NoZWR1bGVMYXlvdXQpOgorICAgICAgICAqIHBhZ2UvTWVtb3J5UmVsZWFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpyZWxlYXNlQ3JpdGljYWxNZW1vcnkpOgorICAgICAgICAo
V2ViQ29yZTo6cmVsZWFzZU1lbW9yeSk6CisgICAgICAgICogcGFnZS9NZW1vcnlSZWxlYXNlLmg6
CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6On5QYWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFZpZXdTY2FsZUZhY3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgICogcGFnZS9Q
YWdlLmg6CisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZUdyb3VwOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL1Bl
cmZvcm1hbmNlTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZUxvZ2dp
bmc6Om1lbW9yeVVzYWdlU3RhdGlzdGljcyk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy55YW1s
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3NCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzQmFzZTo6dXNlc0JhY2tGb3J3YXJkQ2FjaGVDaGFuZ2VkKToKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzQmFzZS5oOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQmFzZTo6c2V0TmVlZHNTdHlsZVJlY2Fs
Yyk6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6dXBkYXRl
QW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb25Db250cm9sbGVyUHJp
dmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
QW5pbWF0aW9uQ29udHJvbGxlcjo6Y2FuY2VsQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NBbmltYXRpb25Db250cm9sbGVyOjp1cGRhdGVBbmltYXRpb25zKToKKyAgICAgICAgKiBw
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6CisgICAgICAgICogcGFnZS9h
bmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJh
bWVBbmltYXRpb246OnNlbmRBbmltYXRpb25FdmVudCk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUpOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlDb250ZW50QXJlYVNjcm9sbGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0eWxlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OndpbGxSZW1vdmVTY3JvbGxpbmdMYXllcldpdGhC
YWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGlkQWRk
U2Nyb2xsaW5nTGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRDb3ZlcmFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
aW1wbGVMaW5lTGF5b3V0Ojpjb2xsZWN0Tm9uRW1wdHlMZWFmUmVuZGVyQmxvY2tGbG93c0ZvckN1
cnJlbnRQYWdlKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRV
cGRhdGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6Y2xlYXJCYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6YmFja0ZvcndhcmRDYWNoZVNpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpwcmV2ZW50RG9jdW1lbnRGb3JFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGUp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6c3VzcGVuZCk6CisKIDIwMTktMTAtMTYgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0
aXN0aWNzIChleHBlcmltZW50YWwpOiBCbG9jayBhbGwgdGhpcmQtcGFydHkgY29va2llcyBvbiB3
ZWJzaXRlcyB3aXRob3V0IHByaW9yIHVzZXIgaW50ZXJhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZGFjNzky
NjExMmQ5NmNjNzNlNTJlZTgyZWI1YzYxNDY1OWYyOWQzNy4uMDk0NTFhMmM2YTMxNTMzMzAwOGUw
YTE1Y2Y1NDViOWMxOTFlMjdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NCBAQAorMjAxOS0xMC0x
NiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdl
Q2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJp
c3RlbnNlbi4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hlIHRvIEJhY2tGb3J3YXJkQ2FjaGUg
Zm9yIGNsYXJpdHkgYW5kIGNvbnNpc3RlbmN5IHdpdGggdGhlIFVJUHJvY2VzcydzIFdlYkJhY2tG
b3J3YXJkQ2FjaGUuCisKKyAgICAgICAgKiBTaGFyZWQvQ2FjaGVNb2RlbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OmNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMpOgorICAgICAgICAqIFNoYXJlZC9D
YWNoZU1vZGVsLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xpZW50Lmg6CisgICAgICAgIChBUEk6
Ok5hdmlnYXRpb25DbGllbnQ6OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwOgorICAgICAg
ICAoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFBh
Z2VDYWNoZUVuYWJsZWQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNoZUVuYWJs
ZWQpOgorICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyk6
CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgt
W1dLUHJlZmVyZW5jZXMgX3NldFVzZXNQYWdlQ2FjaGU6XSk6CisgICAgICAgICgtW1dLUHJlZmVy
ZW5jZXMgX3VzZXNQYWdlQ2FjaGVdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0UGFn
ZUNhY2hlU3VwcG9ydHNQbHVnaW5zOl0pOgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9wYWdl
Q2FjaGVTdXBwb3J0c1BsdWdpbnNdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uIHBhZ2VDYWNoZUVuYWJsZWRdKToKKyAgICAgICAgKC1bX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uIHNldFBhZ2VDYWNoZUVuYWJsZWQ6XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF9zZXR0aW5n
c19nZXRfZW5hYmxlX3BhZ2VfY2FjaGUpOgorICAgICAgICAod2Via2l0X3NldHRpbmdzX3NldF9l
bmFibGVfcGFnZV9jYWNoZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06Cisg
ICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKToK
KyAgICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50Ojp3aWxs
R29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZhaWxQcm92aXNpb25h
bE5hdmlnYXRpb25XaXRoRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6
Ok5hdmlnYXRpb25DbGllbnQ6OmRpZENvbW1pdE5hdmlnYXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZpbmlzaERvY3VtZW50TG9h
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6
ZGlkRmluaXNoTmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6
TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IpOgorICAgICAgICAo
V2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmRpZFJlYWNoTWFp
bkZyYW1lTG9hZFRlcm1pbmFsU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZFVzZUJhY2tGb3J3
YXJkQ2FjaGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1cGRhdGVCYWNrRm9yd2FyZENhY2hlQ2FwYWNp
dHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVC
YWNrRm9yd2FyZExpc3RJdGVtLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbUlzSW5CYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OnRvQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEdvVG9IaXN0b3J5SXRl
bSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJk
Q2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUGx1
Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRnJh
bWVMb2FkZXJDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50Ojpmb3JjZUxheW91dE9uUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpyZW1vdmVJdGVtKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnN1c3BlbmRGb3JQcm9jZXNzU3dhcCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdl
YlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRDYWNoZU1vZGVsKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRCYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjbGVhckNhY2hlZFBhZ2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDE5LTEwLTE2ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBSZW1vdmUgdWJpcXVpdHkgY2xpZW50
IHJ1bGUgZnJvbSBzYW5kYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggMDc4OTkw
MzJlM2NkMWYyMmY5NTE3ZTcyYWZlYWNlZGJjN2I1Y2RmNS4uZDNmMDI5MzI2MzEwNzIzN2RlNzE4
ZTcyMmY1YzU2N2VjMWVlOTE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDE5LTEwLTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMwNDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUg
dG8gQmFja0ZvcndhcmRDYWNoZSBmb3IgY2xhcml0eSBhbmQgY29uc2lzdGVuY3kgd2l0aCB0aGUg
VUlQcm9jZXNzJ3MgV2ViQmFja0ZvcndhcmRDYWNoZS4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
VUlLaXREZWxlZ2F0ZS5oOgorCiAyMDE5LTEwLTA5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBSZW1vdmUgcmVkdW5kYW50IHVzZXMgb2YgVVNFKFVJS0lU
X0VESVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMDYxYWUxYjRhZGZiYjM2
NjI0YjRjYjk2ZjRjNDk1ZGRlMWQ4MWY4MS4uOTNmN2VlMzJkMzhlYTNhYTBlYjM4MDBmZDUxNDdi
YTQwMTQzYTdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBA
CisyMDE5LTEwLTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMwNDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUgdG8gQmFja0Zv
cndhcmRDYWNoZSBmb3IgY2xhcml0eSBhbmQgY29uc2lzdGVuY3kgd2l0aCB0aGUgVUlQcm9jZXNz
J3MgV2ViQmFja0ZvcndhcmRDYWNoZS4KKworICAgICAgICAqIEhpc3RvcnkvQmFja0ZvcndhcmRM
aXN0Lm1tOgorICAgICAgICAoQmFja0ZvcndhcmRMaXN0OjphZGRJdGVtKToKKyAgICAgICAgKEJh
Y2tGb3J3YXJkTGlzdDo6c2V0Q2FwYWNpdHkpOgorICAgICAgICAqIEhpc3RvcnkvV2ViQmFja0Zv
cndhcmRMaXN0Lm1tOgorICAgICAgICAoLVtXZWJCYWNrRm9yd2FyZExpc3QgcGFnZUNhY2hlU2l6
ZV0pOgorICAgICAgICAqIEhpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW06CisgICAgICAgICogSGlz
dG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaDoKKyAgICAgICAgKiBNaXNjL1dlYkNhY2hlLm1t
OgorICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICgrW1dlYkNv
cmVTdGF0aXN0aWNzIGNhY2hlZFBhZ2VDb3VudF0pOgorICAgICAgICAoK1tXZWJDb3JlU3RhdGlz
dGljcyBjYWNoZWRGcmFtZUNvdW50XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dE9u
UmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUubW06CisgICAgICAgICogV2ViVmlldy9XZWJIVE1M
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbGF5b3V0VG9NaW5pbXVtUGFnZVdpZHRo
OmhlaWdodDpvcmlnaW5hbFBhZ2VXaWR0aDpvcmlnaW5hbFBhZ2VIZWlnaHQ6bWF4aW11bVNocmlu
a1JhdGlvOmFkanVzdGluZ1ZpZXdTaXplOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBzZXRO
ZWVkc0xheW91dDpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgc2V0TmVlZHNUb0FwcGx5U3R5
bGVzOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmll
dyBfY2xvc2VdKToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgor
ICAgICAgICAoK1tXZWJWaWV3IF9zZXRDYWNoZU1vZGVsOl0pOgorCiAyMDE5LTEwLTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLMl0gTW92ZSBiYWNrL2Zv
cndhcmQgY2FjaGUgZW50cnkgZXhwaXJhdGlvbiBmcm9tIHRoZSBXZWJQcm9jZXNzIHRvIHRoZSBV
SVByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCAzNDk3ZTQ4Y2E5ZjM2NTFi
N2Y4YzkyMGNjZTIxZjkxYmYxMTk3ODFhLi4zNjJkZDFlOWE5ZGQzNjAwZGViODM0ZDYzY2RhMzA5
MmNiODJjZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTktMTAtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgUGFnZUNhY2hlIHRvIEJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzA0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9y
d2FyZENhY2hlIGZvciBjbGFyaXR5IGFuZCBjb25zaXN0ZW5jeSB3aXRoIHRoZSBVSVByb2Nlc3Mn
cyBXZWJCYWNrRm9yd2FyZENhY2hlLgorCisgICAgICAgICogQmFja0ZvcndhcmRMaXN0LmNwcDoK
KyAgICAgICAgKEJhY2tGb3J3YXJkTGlzdDo6YWRkSXRlbSk6CisgICAgICAgIChCYWNrRm9yd2Fy
ZExpc3Q6OnNldENhcGFjaXR5KToKKyAgICAgICAgKiBXZWJDb3JlU3RhdGlzdGljcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlU3RhdGlzdGljczo6Y2FjaGVkUGFnZUNvdW50KToKKyAgICAgICAgKFdl
YkNvcmVTdGF0aXN0aWNzOjpjYWNoZWRGcmFtZUNvdW50KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlkUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlZpc2l0ZWRMaW5rU3RvcmUuY3BwOgorICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkZyYW1lOjphY2Nlc3NpYmxlIGNvbnN0KToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoK
KyAgICAgICAgKFdlYlZpZXc6OnNldENhY2hlTW9kZWwpOgorICAgICAgICAoV2ViVmlldzo6bm90
aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxOS0xMC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBlZGl0aW5nL2FzeW5j
LWNsaXBib2FyZC9jbGlwYm9hcmQtaW50ZXJmYWNlcy5odG1sIGlzIGZhaWxpbmcgaW4gV2ViS2l0
MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOWMyYjIwNDg0YjlmZjQzMTYxNGIwZWU3ZTJjOGY0N2Iy
ZGQ5NDc1ZS4uZTg1ZDllM2Y1Mzc0ZTUyMzVkOTEyNGEzNzE5NGEzYjI3NDI3OTk5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC01MjAsMTMgKzUyMCwxMyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyQ2xpZW50LmgKICAg
ICBmaWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaAogCisgICAgaGlzdG9yeS9CYWNrRm9yd2FyZENh
Y2hlLmgKICAgICBoaXN0b3J5L0JhY2tGb3J3YXJkQ2xpZW50LmgKICAgICBoaXN0b3J5L0JhY2tG
b3J3YXJkQ29udHJvbGxlci5oCiAgICAgaGlzdG9yeS9CYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVy
LmgKICAgICBoaXN0b3J5L0NhY2hlZEZyYW1lLmgKICAgICBoaXN0b3J5L0NhY2hlZEZyYW1lUGxh
dGZvcm1EYXRhLmgKICAgICBoaXN0b3J5L0hpc3RvcnlJdGVtLmgKLSAgICBoaXN0b3J5L1BhZ2VD
YWNoZS5oCiAKICAgICBodG1sL0F1dG9jYXBpdGFsaXplLmgKICAgICBodG1sL0F1dG9jYXBpdGFs
aXplVHlwZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcAppbmRleCAxZWM3MzZmYjhiZWM4Mjc1ZWQ0ZGY4NzhmODBkY2JlOTViNGEw
NzUxLi5hY2RhZjc5ZTNlMTMzY2NlZDVlNDdiOGE1NjU5YmIyNDQxZjE5NWY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAt
MTY1LDcgKzE2NSw3IEBAIGJvb2wgR2VvbG9jYXRpb246OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1
c3BlbnNpb24oKSBjb25zdAogICAgIAogdm9pZCBHZW9sb2NhdGlvbjo6c3VzcGVuZChSZWFzb25G
b3JTdXNwZW5zaW9uIHJlYXNvbikKIHsKLSAgICBpZiAocmVhc29uID09IFJlYXNvbkZvclN1c3Bl
bnNpb246OlBhZ2VDYWNoZSkgeworICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lv
bjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICBzdG9wKCk7CiAgICAgICAgIG1fcmVzZXRP
blJlc3VtZSA9IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IGQ1YWZkNDQ1OTcxYTg0NTBh
YjM4NWE1MDAyMGViNmUyMTk2MTI5MmYuLjZjMTZmYmM5MmRjYTgyMDcxZjIyZGM1YjYwZmY5MzZk
ZDFlODE2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRl
ci9NZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBjb25zdCBjaGFyKiBN
ZWRpYVJlY29yZGVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIAogYm9vbCBNZWRpYVJl
Y29yZGVyOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gZmFsc2U7IC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gYmV0dGVyIGhlcmUgYXMgdGhpcyBw
cmV2ZW50cyBlbnRlcmluZyBQYWdlQ2FjaGUuCisgICAgcmV0dXJuIGZhbHNlOyAvLyBGSVhNRTog
V2Ugc2hvdWxkIGRvIGJldHRlciBoZXJlIGFzIHRoaXMgcHJldmVudHMgZW50ZXJpbmcgQmFja0Zv
cndhcmRDYWNoZS4KIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gTWVkaWFSZWNvcmRlcjo6c3RhcnRS
ZWNvcmRpbmcoT3B0aW9uYWw8aW50PiB0aW1lc2xpY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgw
NjlkNTJhMDU2ZjA1N2NiYTE2ZDExMDQ5OTMxYzFhZGI0OWI0NzQuLmZkMTIwZmE5MmI0YmUyN2Nm
ZDY0NTIxY2Q4NzZhYTQ0MzAzZGViYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC01MDYsNyArNTA2
LDcgQEAgYm9vbCBSVENQZWVyQ29ubmVjdGlvbjo6Y2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVu
c2lvbigpIGNvbnN0CiAKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbiByZWFzb24pCiB7Ci0gICAgaWYgKHJlYXNvbiAhPSBSZWFzb25Gb3JTdXNwZW5z
aW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKHJlYXNvbiAhPSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpC
YWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Nob3VsZERlbGF5VGFz
a3MgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcAppbmRleCAzMDM4YTk3ZDU5NTIzOGMwNDMwOTJmMDRlOWM2NWZhZDBlMDExMWEwLi5i
MzJiZjk4YjI1OGRjZWMzOTg4ZWE1YThhMzRiN2JlYzU4MzNmMzk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNTA4LDcgKzUwOCw3
IEBAIHZvaWQgV2ViU29ja2V0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQog
ICAgIG1fc2hvdWxkRGVsYXlFdmVudEZpcmluZyA9IHRydWU7CiAKICAgICBpZiAobV9jaGFubmVs
KSB7Ci0gICAgICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hl
KSB7CisgICAgICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0Zvcndh
cmRDYWNoZSkgewogICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIGRpZENsb3NlKCkgdG8g
YmUgY2FsbGVkLgogICAgICAgICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xv
c2VkIGR1ZSB0byBzdXNwZW5zaW9uLiIpOwogICAgICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggZDliYjlhZjE5YWMxYzYyMzY5NDk0ZTFlYjFkMmQ1N2JhYjNmNTQ1My4uZmZiZGE5NjIzMGQ2
MWY1OGM5YzEyNWU0ZjU3OTRhZWE0YTlmZGIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTEwODUsMTEg
KzEwODUsMTEgQEAgZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5jcHAKIGZpbGVhcGkvTmV0d29ya1Nl
bmRRdWV1ZS5jcHAKIGZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAKIAoraGlzdG9y
eS9CYWNrRm9yd2FyZENhY2hlLmNwcAogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3Bw
CiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAogaGlzdG9yeS9DYWNoZWRQYWdlLmNwcAogaGlzdG9y
eS9IaXN0b3J5SXRlbS5jcHAKLWhpc3RvcnkvUGFnZUNhY2hlLmNwcAogCiBodG1sL0F1dG9maWxs
LmNwcAogaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNiMzY2NzkxNGU2ZDBmYTdm
ZmRjYjdlZWI4MGY0OWVmODcwZjYxMTIuLjkxNTU0ODM1OTgwY2IzMDIxMjE4MDliZmU0NGY0ODMw
YjRmYzA4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTQxMCw3ICs0MTAsNyBAQAogCQkxNDMyRTg0NzBDNTE0OTM4MDBCMTUw
MEYgLyogR0NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDMyRTg0NjBDNTE0OTM4MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ0NzZBQTgx
NURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFBNzE1REM0QkIxMDAzMDVEQjIgLyogV3JpdGlu
Z01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxNDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1
NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9OwotCQkxNDc3RTc3NzBCRjQxMzRBMDAxNTI4
NzIgLyogUGFnZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMTQ3N0U3NzcwQkY0MTM0
QTAwMTUyODcyIC8qIEJhY2tGb3J3YXJkQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzdFNzc1MEJGNDEzNEEwMDE1Mjg3MiAvKiBCYWNrRm9y
d2FyZENhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMTQ3OUZBRUUxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzlGQUU2MTA5QUUzNzUwMERF
RDY1NSAvKiBSZW5kZXJSdWJ5LmggKi87IH07CiAJCTE0NzlGQUYwMTA5QUUzNzUwMERFRDY1NSAv
KiBSZW5kZXJSdWJ5QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQ3OUZBRTgxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnlCYXNlLmggKi87
IH07CiAJCTE0NzlGQUYyMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5UnVuLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc5RkFFQTEwOUFFMzc1
MDBERUQ2NTUgLyogUmVuZGVyUnVieVJ1bi5oICovOyB9OwpAQCAtNTkxNyw4ICs1OTE3LDggQEAK
IAkJMTQ0NzZBQTcxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NhbGxiYWNrRGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ5RTI4NjEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxs
YmFja0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDYWxs
YmFja0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNDc3RTc3NDBCRjQx
MzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkx
NDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUyODcyIC8qIEJhY2tGb3J3YXJkQ2FjaGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJhY2tGb3J3YXJkQ2FjaGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyog
QmFja0ZvcndhcmRDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFj
a0ZvcndhcmRDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc5RkFFNTEw
OUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJSdWJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMTQ3OUZBRTYxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyUnVieS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxNDc5RkFFNzEwOUFFMzc1MDBERUQ2NTUgLyogUmVuZGVyUnVieUJhc2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUnVieUJhc2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg4NzQsNiArMTg4NzQsOCBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1MTYwRjQ5MjBCMEFBNzE1MDBDMUQy
QUYgLyogbWFjICovLAorCQkJCTE0NzdFNzc0MEJGNDEzNEEwMDE1Mjg3MiAvKiBCYWNrRm9yd2Fy
ZENhY2hlLmNwcCAqLywKKwkJCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogQmFja0Zvcndh
cmRDYWNoZS5oICovLAogCQkJCTUxNzQxRDBCMEIwNzI1OUEwMEVENDQyQyAvKiBCYWNrRm9yd2Fy
ZENsaWVudC5oICovLAogCQkJCUJDQThDODFEMTFFM0QzNjkwMDgxMkZCNyAvKiBCYWNrRm9yd2Fy
ZENvbnRyb2xsZXIuY3BwICovLAogCQkJCUJDQThDODFDMTFFM0QzNjkwMDgxMkZCNyAvKiBCYWNr
Rm9yd2FyZENvbnRyb2xsZXIuaCAqLywKQEAgLTE4ODg1LDggKzE4ODg3LDYgQEAKIAkJCQk1MTAx
ODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5oICovLAogCQkJCTUxNzQxRDBFMEIw
NzI1OUEwMEVENDQyQyAvKiBIaXN0b3J5SXRlbS5jcHAgKi8sCiAJCQkJNTE3NDFEMEQwQjA3MjU5
QTAwRUQ0NDJDIC8qIEhpc3RvcnlJdGVtLmggKi8sCi0JCQkJMTQ3N0U3NzQwQkY0MTM0QTAwMTUy
ODcyIC8qIFBhZ2VDYWNoZS5jcHAgKi8sCi0JCQkJMTQ3N0U3NzUwQkY0MTM0QTAwMTUyODcyIC8q
IFBhZ2VDYWNoZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBoaXN0b3J5OwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTI4NzM0LDYgKzI4NzM0LDcgQEAKIAkJCQlGNDVDMjMxRTE5OTVC
NzNCMDBBNkUyRTMgLyogQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyOUE4MTIzODBGQkI5QzFEMDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTFDOUYyRjkxQUUzQkVCMDAwOTVCNjFDIC8qIEFYVGV4dFN0YXRlQ2hhbmdlSW50
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkxNDc3RTc3NzBCRjQxMzRBMDAxNTI4NzIgLyogQmFj
a0ZvcndhcmRDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3NDFEMEYwQjA3MjU5QTAwRUQ0
NDJDIC8qIEJhY2tGb3J3YXJkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E4QzgxRTEx
RTNEMzY5MDA4MTJGQjcgLyogQmFja0ZvcndhcmRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUExQjg3RDIwODdDNEMwMDA5NzlBNzUgLyogQmFja0ZvcndhcmRJdGVtSWRlbnRpZmll
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTIxOCw3ICszMTIxOSw2IEBACiAJCQkJMzc3NEFCQTUw
RkEyMUVCNDAwQUQ3REU5IC8qIE92ZXJsYXBUZXN0UmVxdWVzdENsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjVBMjE0NjgwOTdBMzI5MTAwQjkwNTBBIC8qIFBhZ2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkxMjc4RDVFMjFERURBRDYwMEI1NzE4NCAvKiBQYWdlQXVkaXRBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMTQ3N0U3NzcwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0Q1RTVCNUYxQTE1Q0U1NDAwMEM2MDlFIC8qIFBhZ2VDb25maWd1
cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNDMjFGQUE0NEJDMDAzN0QxRTYgLyog
UGFnZUNvbnNvbGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREFFRDIwMzExNkYyNDQ0ODAw
NzBFQzBGIC8qIFBhZ2VDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKaW5kZXggMzE5NGIzMjc0NzVmZjE2ZTlhZGQx
MTQyOWM2OGUwZTU1YmFlNDFmZi4uNWYwYzkwMDNkZmY3N2UwNzE3ZDZkOGY1YmU2OTY4NjIwZmI1
MmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAgLTEx
NjEsNyArMTE2MSw3IEBAIGJvb2wgV2ViQW5pbWF0aW9uOjpjYW5TdXNwZW5kRm9yRG9jdW1lbnRT
dXNwZW5zaW9uKCkgY29uc3QKIHsKICAgICAvLyBVc2UgdGhlIGJhc2UgY2xhc3MncyBpbXBsZW1l
bnRhdGlvbiBvZiBoYXNQZW5kaW5nQWN0aXZpdHkoKSBzaW5jZSB3ZSB3b3VsZG4ndCB3YW50IHRo
ZSBjdXN0b20gaW1wbGVtZW50YXRpb24KICAgICAvLyBpbiB0aGlzIGNsYXNzIGRlc2lnbmVkIHRv
IGtlZXAgSlMgd3JhcHBlcnMgYWxpdmUgdG8gaW50ZXJmZXJlIHdpdGggdGhlIGFiaWxpdHkgZm9y
IGEgcGFnZSB1c2luZyBhbmltYXRpb25zCi0gICAgLy8gdG8gZW50ZXIgdGhlIHBhZ2UgY2FjaGUu
CisgICAgLy8gdG8gZW50ZXIgdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICByZXR1cm4gIUFj
dGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcAppbmRleCAwMmUzYzcyNGYxNjFjZmRiZGE3NWJh
N2ViMDA1NzA1NDJlY2NmZDE3Li5kZTBiZjg4NzlmODNiOTY1ZmZiYWZiOWQyMDkwM2EyMGJhNGFm
ZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93UHJveHkuY3BwCkBAIC0x
MjYsNyArMTI2LDcgQEAgSlNXaW5kb3dQcm94eSYgV2luZG93UHJveHk6OmNyZWF0ZUpTV2luZG93
UHJveHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQoRE9NV3JhcHBlclcKICAgICByZXR1cm4gd2luZG93
UHJveHk7CiB9CiAKLXZvaWQgV2luZG93UHJveHk6OmNsZWFySlNXaW5kb3dQcm94aWVzTm90TWF0
Y2hpbmdET01XaW5kb3coQWJzdHJhY3RET01XaW5kb3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2lu
Z0ludG9QYWdlQ2FjaGUpCit2b2lkIFdpbmRvd1Byb3h5OjpjbGVhckpTV2luZG93UHJveGllc05v
dE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9NV2luZG93KiBuZXdET01XaW5kb3csIGJvb2wg
Z29pbmdJbnRvQmFja0ZvcndhcmRDYWNoZSkKIHsKICAgICBpZiAobV9qc1dpbmRvd1Byb3hpZXMu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBXaW5k
b3dQcm94eTo6Y2xlYXJKU1dpbmRvd1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyhBYnN0cmFj
dERPTVdpbmRvdyogbmUKIAogICAgIC8vIEl0J3MgbGlrZWx5IHRoYXQgcmVzZXR0aW5nIG91ciB3
aW5kb3dzIGNyZWF0ZWQgYSBsb3Qgb2YgZ2FyYmFnZSwgdW5sZXNzCiAgICAgLy8gaXQgd2VudCBp
biBhIGJhY2svZm9yd2FyZCBjYWNoZS4KLSAgICBpZiAoIWdvaW5nSW50b1BhZ2VDYWNoZSkKKyAg
ICBpZiAoIWdvaW5nSW50b0JhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIGNvbGxlY3RHYXJiYWdl
QWZ0ZXJXaW5kb3dQcm94eURlc3RydWN0aW9uKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XaW5kb3dQcm94eS5oCmluZGV4IDQ3MjJlNDkzYjA2MDlkOTExNzZhNjJhZDM1Nzg0MGVk
MGQ3N2RlODMuLjJjODA4YmRjNzljNzI3MzdlMTVhMWJhNDE3MTA1NTNhZWZjMjhhNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93UHJveHkuaApAQCAtNzgsNyArNzgsNyBAQCBw
dWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KERPTVdyYXBwZXJXb3JsZCYpOwogCi0gICAgdm9pZCBjbGVhckpTV2luZG93UHJveGllc05v
dE1hdGNoaW5nRE9NV2luZG93KEFic3RyYWN0RE9NV2luZG93KiwgYm9vbCBnb2luZ0ludG9QYWdl
Q2FjaGUpOworICAgIHZvaWQgY2xlYXJKU1dpbmRvd1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRv
dyhBYnN0cmFjdERPTVdpbmRvdyosIGJvb2wgZ29pbmdJbnRvQmFja0ZvcndhcmRDYWNoZSk7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERPTVdpbmRvdyhBYnN0cmFjdERPTVdpbmRvdyop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggODU3OTk4YWZmNmYyMzcw
MGE2YTYyZjVhMWZhMDI3NjM4OTlkM2VlYS4uNmI4Yjk4NmYzNzk2Yzc0ODlkMGFmMmM5NTc1M2Ni
YjY5MGRjMjY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaApAQCAtMzksNyAr
MzksNyBAQCBjbGFzcyBEb2N1bWVudDsKIGVudW0gY2xhc3MgUmVhc29uRm9yU3VzcGVuc2lvbiB7
CiAgICAgSmF2YVNjcmlwdERlYnVnZ2VyUGF1c2VkLAogICAgIFdpbGxEZWZlckxvYWRpbmcsCi0g
ICAgUGFnZUNhY2hlLAorICAgIEJhY2tGb3J3YXJkQ2FjaGUsCiAgICAgUGFnZVdpbGxCZVN1c3Bl
bmRlZCwKIH07CiAKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhlc2UgdGhy
ZWUgZnVuY3Rpb25zIG11c3Qgbm90IGhhdmUgYSBzaWRlIGVmZmVjdCBvZiBjcmVhdGluZyBvciBk
ZXN0cm95aW5nCiAgICAgLy8gYW55IEFjdGl2ZURPTU9iamVjdC4gVGhhdCBtZWFucyB0aGV5IG11
c3Qgbm90IHJlc3VsdCBpbiBjYWxscyB0byBhcmJpdHJhcnkgSmF2YVNjcmlwdC4KLSAgICB2aXJ0
dWFsIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0ID0gMDsgLy8g
UmV0dXJuaW5nIGZhbHNlIGluIGNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSB3aWxs
IHByZXZlbnQgdGhlIHBhZ2UgZnJvbSBlbnRlcmluZyB0aGUgUGFnZUNhY2hlLgorICAgIHZpcnR1
YWwgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkgY29uc3QgPSAwOyAvLyBS
ZXR1cm5pbmcgZmFsc2UgaW4gY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIHdpbGwg
cHJldmVudCB0aGUgcGFnZSBmcm9tIGVudGVyaW5nIHRoZSBCYWNrRm9yd2FyZENhY2hlLgogICAg
IHZpcnR1YWwgdm9pZCBzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24pOwogICAgIHZpcnR1YWwg
dm9pZCByZXN1bWUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNTg2MzI0YmMxNDNi
MDMwNGNiYmFhOGJiMjQ2ZTYwMzM3Y2MzYjkzNi4uNGQ0MGM0MGI3YzMyNzI5NDM1MzA3YWVlOTcy
NjhmZTAzZjI2YzFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02MjMsNyArNjIzLDcg
QEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgcmVtb3ZlRnJvbUNvbnRleHRzTWFwKCk7CiAK
ICAgICBBU1NFUlQoIXJlbmRlclZpZXcoKSk7Ci0gICAgQVNTRVJUKG1fcGFnZUNhY2hlU3RhdGUg
IT0gSW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSAhPSBJ
bkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIEFTU0VSVChtX3Jhbmdlcy5pc0VtcHR5KCkpOwogICAg
IEFTU0VSVCghbV9wYXJlbnRUcmVlU2NvcGUpOwogICAgIEFTU0VSVCghbV9kaXNhYmxlZEZpZWxk
c2V0RWxlbWVudHNDb3VudCk7CkBAIC0xODI4LDcgKzE4MjgsNyBAQCB2b2lkIERvY3VtZW50Ojpz
Y2hlZHVsZVN0eWxlUmVjYWxjKCkKIHsKICAgICBBU1NFUlQoIW1fcmVuZGVyVmlldyB8fCAhaW5I
aXRUZXN0aW5nKCkpOwogCi0gICAgaWYgKG1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpIHx8
IHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKG1fc3R5bGVSZWNh
bGNUaW1lci5pc0FjdGl2ZSgpIHx8IGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IE5vdEluQmFj
a0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKGNoaWxkTmVlZHNT
dHlsZVJlY2FsYygpIHx8IG1fbmVlZHNGdWxsU3R5bGVSZWJ1aWxkKTsKQEAgLTIwMDksNyArMjAw
OSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0LCB1bnNp
Z25lZCBvZmZzZXRPZlJlcGxhY2VkVGV4dCwgdW5zCiAKIGJvb2wgRG9jdW1lbnQ6Om5lZWRzU3R5
bGVSZWNhbGMoKSBjb25zdAogewotICAgIGlmIChwYWdlQ2FjaGVTdGF0ZSgpICE9IE5vdEluUGFn
ZUNhY2hlKQorICAgIGlmIChiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBOb3RJbkJhY2tGb3J3
YXJkQ2FjaGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX25lZWRzRnVsbFN0
eWxlUmVidWlsZCkKQEAgLTIyOTUsNyArMjI5NSw3IEBAIHZvaWQgRG9jdW1lbnQ6OmludmFsaWRh
dGVNYXRjaGVkUHJvcGVydGllc0NhY2hlQW5kRm9yY2VTdHlsZVJlY2FsYygpCiB7CiAgICAgaWYg
KGF1dG8qIHJlc29sdmVyID0gc3R5bGVTY29wZSgpLnJlc29sdmVySWZFeGlzdHMoKSkKICAgICAg
ICAgcmVzb2x2ZXItPmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0NhY2hlKCk7Ci0gICAgaWYg
KHBhZ2VDYWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUgfHwgIXJlbmRlclZpZXcoKSkKKyAg
ICBpZiAoYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gTm90SW5CYWNrRm9yd2FyZENhY2hlIHx8
ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVybjsKICAgICBzY2hlZHVsZUZ1bGxTdHlsZVJl
YnVpbGQoKTsKIH0KQEAgLTIzMTQsNyArMjMxNCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldElzUmVz
b2x2aW5nVHJlZVN0eWxlKGJvb2wgdmFsdWUpCiB2b2lkIERvY3VtZW50OjpjcmVhdGVSZW5kZXJU
cmVlKCkKIHsKICAgICBBU1NFUlQoIXJlbmRlclZpZXcoKSk7Ci0gICAgQVNTRVJUKG1fcGFnZUNh
Y2hlU3RhdGUgIT0gSW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSAhPSBJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIEFTU0VSVCghbV9heE9iamVjdENhY2hl
IHx8IHRoaXMgIT0gJnRvcERvY3VtZW50KCkpOwogCiAgICAgaWYgKG1faXNOb25SZW5kZXJlZFBs
YWNlaG9sZGVyKQpAQCAtMjM1NCw3ICsyMzU0LDcgQEAgdm9pZCBEb2N1bWVudDo6ZGlkQmVjb21l
Q3VycmVudERvY3VtZW50SW5GcmFtZSgpCiAKICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgc2NoZWR1
bGVkIHRhc2sgc3RhdGUgb2YgdGhlIGRvY3VtZW50IG1hdGNoZXMgdGhlIERPTSBzdXNwZW5zaW9u
IHN0YXRlIG9mIHRoZSBmcmFtZS4gSXQgY2FuCiAgICAgLy8gYmUgb3V0IG9mIHN5bmMgaWYgdGhl
IERPTSBzdXNwZW5zaW9uIHN0YXRlIGNoYW5nZWQgd2hpbGUgdGhlIGRvY3VtZW50IHdhcyBub3Qg
aW4gdGhlIGZyYW1lIChwb3NzaWJseSBpbiB0aGUKLSAgICAvLyBwYWdlIGNhY2hlLCBvciBzaW1w
bHkgbmV3bHkgY3JlYXRlZCkuCisgICAgLy8gYmFjay9mb3J3YXJkIGNhY2hlLCBvciBzaW1wbHkg
bmV3bHkgY3JlYXRlZCkuCiAgICAgaWYgKG1fZnJhbWUtPmFjdGl2ZURPTU9iamVjdHNBbmRBbmlt
YXRpb25zU3VzcGVuZGVkKCkpIHsKICAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkud2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5hYmxlZCgpKSB7
CiAgICAgICAgICAgICBpZiAoYXV0byogdGltZWxpbmUgPSBleGlzdGluZ1RpbWVsaW5lKCkpCkBA
IC0yMzk3LDcgKzIzOTcsNyBAQCB2b2lkIERvY3VtZW50OjphdHRhY2hUb0NhY2hlZEZyYW1lKENh
Y2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoY2FjaGVk
RnJhbWUuZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAgICBBU1NFUlQoY2FjaGVkRnJhbWUudmlldygp
KTsKLSAgICBBU1NFUlQobV9wYWdlQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUp
OworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5CYWNr
Rm9yd2FyZENhY2hlKTsKICAgICBvYnNlcnZlRnJhbWUoJmNhY2hlZEZyYW1lLnZpZXcoKS0+ZnJh
bWUoKSk7CiB9CiAKQEAgLTI0MDYsNyArMjQwNiw3IEBAIHZvaWQgRG9jdW1lbnQ6OmRldGFjaEZy
b21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZUJhc2UmIGNhY2hlZEZyYW1lKQogICAgIEFTU0VSVF9V
TlVTRUQoY2FjaGVkRnJhbWUsIGNhY2hlZEZyYW1lLnZpZXcoKSk7CiAgICAgUkVMRUFTRV9BU1NF
UlQoY2FjaGVkRnJhbWUuZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAgICBBU1NFUlQobV9mcmFtZSA9
PSAmY2FjaGVkRnJhbWUudmlldygpLT5mcmFtZSgpKTsKLSAgICBBU1NFUlQobV9wYWdlQ2FjaGVT
dGF0ZSA9PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAgIEFTU0VSVChtX2JhY2tGb3J3YXJk
Q2FjaGVTdGF0ZSA9PSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKTsKICAgICBkZXRhY2hG
cm9tRnJhbWUoKTsKIH0KIApAQCAtMjU2OSwxMCArMjU2OSwxMCBAQCB2b2lkIERvY3VtZW50Ojpw
cmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKQogCiAgICAgbV9oYXNQcmVwYXJlZEZvckRlc3RydWN0aW9u
ID0gdHJ1ZTsKIAotICAgIC8vIE5vdGUgdGhhdCBtX3BhZ2VDYWNoZVN0YXRlIGNhbiBiZSBEb2N1
bWVudDo6QWJvdXRUb0VudGVyUGFnZUNhY2hlIGlmIG91ciBmcmFtZQorICAgIC8vIE5vdGUgdGhh
dCBtX2JhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBjYW4gYmUgRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJh
Y2tGb3J3YXJkQ2FjaGUgaWYgb3VyIGZyYW1lCiAgICAgLy8gd2FzIHJlbW92ZWQgaW4gYW4gb25w
YWdlaGlkZSBldmVudCBoYW5kbGVyIGZpcmVkIHdoZW4gdGhlIHRvcC1sZXZlbCBmcmFtZSBpcwot
ICAgIC8vIGFib3V0IHRvIGVudGVyIHRoZSBwYWdlIGNhY2hlLgotICAgIFJFTEVBU0VfQVNTRVJU
KG1fcGFnZUNhY2hlU3RhdGUgIT0gRG9jdW1lbnQ6OkluUGFnZUNhY2hlKTsKKyAgICAvLyBhYm91
dCB0byBlbnRlciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgorICAgIFJFTEVBU0VfQVNTRVJUKG1f
YmFja0ZvcndhcmRDYWNoZVN0YXRlICE9IERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2FjaGUpOwog
fQogCiB2b2lkIERvY3VtZW50OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCkBAIC00MDUzLDcg
KzQwNTMsNyBAQCBzdGF0aWMgYm9vbCBpc05vZGVJblN1YnRyZWUoTm9kZSYgbm9kZSwgTm9kZSYg
Y29udGFpbmVyLCBEb2N1bWVudDo6Tm9kZVJlbW92YWwgbgogCiB2b2lkIERvY3VtZW50OjphZGp1
c3RGb2N1c2VkTm9kZU9uTm9kZVJlbW92YWwoTm9kZSYgbm9kZSwgTm9kZVJlbW92YWwgbm9kZVJl
bW92YWwpCiB7Ci0gICAgaWYgKCFtX2ZvY3VzZWRFbGVtZW50IHx8IHBhZ2VDYWNoZVN0YXRlKCkg
IT0gTm90SW5QYWdlQ2FjaGUpIC8vIElmIHRoZSBkb2N1bWVudCBpcyBpbiB0aGUgcGFnZSBjYWNo
ZSwgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIGNsZWFyIG91dCB0aGUgZm9jdXNlZCBub2RlLgorICAg
IGlmICghbV9mb2N1c2VkRWxlbWVudCB8fCBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBOb3RJ
bkJhY2tGb3J3YXJkQ2FjaGUpIC8vIElmIHRoZSBkb2N1bWVudCBpcyBpbiB0aGUgYmFjay9mb3J3
YXJkIGNhY2hlLCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gY2xlYXIgb3V0IHRoZSBmb2N1c2VkIG5v
ZGUuCiAgICAgICAgIHJldHVybjsKIAogICAgIEVsZW1lbnQqIGZvY3VzZWRFbGVtZW50ID0gbm9k
ZS50cmVlU2NvcGUoKS5mb2N1c2VkRWxlbWVudEluU2NvcGUoKTsKQEAgLTQxMjEsNyArNDEyMSw3
IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jCiAgICAgaWYgKG1fZm9jdXNlZEVsZW1lbnQgPT0g
bmV3Rm9jdXNlZEVsZW1lbnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKHBhZ2VD
YWNoZVN0YXRlKCkgIT0gTm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKGJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZSgpICE9IE5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgYm9vbCBmb2N1c0NoYW5nZUJsb2NrZWQgPSBmYWxzZTsKQEAgLTQ1NjEsNyArNDU2MSw3
IEBAIHZvaWQgRG9jdW1lbnQ6OnRha2VET01XaW5kb3dGcm9tKERvY3VtZW50JiBkb2N1bWVudCkK
ICAgICBBU1NFUlQoIW1fZG9tV2luZG93KTsKICAgICBBU1NFUlQoZG9jdW1lbnQubV9kb21XaW5k
b3cpOwogICAgIC8vIEEgdmFsaWQgRE9NV2luZG93IGlzIG5lZWRlZCBieSBDYWNoZWRGcmFtZSBm
b3IgaXRzIGRvY3VtZW50cy4KLSAgICBBU1NFUlQocGFnZUNhY2hlU3RhdGUoKSA9PSBOb3RJblBh
Z2VDYWNoZSk7CisgICAgQVNTRVJUKGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IE5vdEluQmFj
a0ZvcndhcmRDYWNoZSk7CiAKICAgICBtX2RvbVdpbmRvdyA9IFdURk1vdmUoZG9jdW1lbnQubV9k
b21XaW5kb3cpOwogICAgIG1fZG9tV2luZG93LT5kaWRTZWN1cmVUcmFuc2l0aW9uVG8oKnRoaXMp
OwpAQCAtNTA4MywyMSArNTA4MywyMSBAQCBVUkwgRG9jdW1lbnQ6OmNvbXBsZXRlVVJMKGNvbnN0
IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVybiBjb21wbGV0ZVVSTCh1cmwsIG1fYmFzZVVS
TCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnNldFBhZ2VDYWNoZVN0YXRlKFBhZ2VDYWNoZVN0YXRl
IHN0YXRlKQordm9pZCBEb2N1bWVudDo6c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKEJhY2tGb3J3
YXJkQ2FjaGVTdGF0ZSBzdGF0ZSkKIHsKLSAgICBpZiAobV9wYWdlQ2FjaGVTdGF0ZSA9PSBzdGF0
ZSkKKyAgICBpZiAobV9iYWNrRm9yd2FyZENhY2hlU3RhdGUgPT0gc3RhdGUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFnZUNhY2hlU3RhdGUgPSBzdGF0ZTsKKyAgICBtX2JhY2tGb3J3YXJk
Q2FjaGVTdGF0ZSA9IHN0YXRlOwogCiAgICAgRnJhbWVWaWV3KiB2ID0gdmlldygpOwogICAgIFBh
Z2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAKICAgICBzd2l0Y2ggKHN0YXRlKSB7Ci0gICAgY2Fz
ZSBJblBhZ2VDYWNoZToKKyAgICBjYXNlIEluQmFja0ZvcndhcmRDYWNoZToKICAgICAgICAgaWYg
KHYpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBzb21lIHNjcm9sbGluZyByZWxh
dGVkIHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4gd2hlbmV2ZXIgYSBwYWdlIGdvZXMgaW50byB0
aGUKLSAgICAgICAgICAgIC8vIHBhZ2UgY2FjaGUgYW5kIHNpbWlsYXIgd29yayB0aGF0IG5lZWRz
IHRvIG9jY3VyIHdoZW4gaXQgY29tZXMgb3V0LiBUaGlzIGlzIHdoZXJlIHdlIGRvIHRoZSB3b3Jr
CisgICAgICAgICAgICAvLyBiYWNrL2ZvcndhcmQgY2FjaGUgYW5kIHNpbWlsYXIgd29yayB0aGF0
IG5lZWRzIHRvIG9jY3VyIHdoZW4gaXQgY29tZXMgb3V0LiBUaGlzIGlzIHdoZXJlIHdlIGRvIHRo
ZSB3b3JrCiAgICAgICAgICAgICAvLyB0aGF0IG5lZWRzIHRvIGhhcHBlbiB3aGVuIHdlIGVudGVy
LCBhbmQgdGhlIHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4gd2hlbiB3ZSBleGl0IGlzIGluCiAg
ICAgICAgICAgICAvLyBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5k
Vmlld1N0YXRlKCkuIEl0IGNhbid0IGJlIGhlcmUgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzCiAg
ICAgICAgICAgICAvLyBjYWxsZWQgdG9vIGVhcmx5IG9uIGluIHRoZSBwcm9jZXNzIG9mIGEgcGFn
ZSBleGl0aW5nIHRoZSBjYWNoZSBmb3IgdGhhdCB3b3JrIHRvIGJlIHBvc3NpYmxlIGluIHRoaXMK
QEAgLTUxMjEsMTEgKzUxMjEsMTEgQEAgdm9pZCBEb2N1bWVudDo6c2V0UGFnZUNhY2hlU3RhdGUo
UGFnZUNhY2hlU3RhdGUgc3RhdGUpCiAKICAgICAgICAgY2xlYXJTaGFyZWRPYmplY3RQb29sKCk7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTm90SW5QYWdlQ2FjaGU6CisgICAgY2FzZSBOb3RJ
bkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAgICAgIGlmIChjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSkK
ICAgICAgICAgICAgIHNjaGVkdWxlU3R5bGVSZWNhbGMoKTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBBYm91dFRvRW50ZXJQYWdlQ2FjaGU6CisgICAgY2FzZSBBYm91dFRvRW50ZXJCYWNrRm9y
d2FyZENhY2hlOgogICAgICAgICBicmVhazsKICAgICB9CiB9CkBAIC01MTQ4LDcgKzUxNDgsNyBA
QCB2b2lkIERvY3VtZW50OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogCiAj
aWZuZGVmIE5ERUJVRwogICAgIC8vIENsZWFyIHRoZSB1cGRhdGUgZmxhZyB0byBiZSBhYmxlIHRv
IGNoZWNrIGlmIHRoZSB2aWV3cG9ydCBhcmd1bWVudHMgdXBkYXRlCi0gICAgLy8gaXMgZGlzcGF0
Y2hlZCwgYWZ0ZXIgdGhlIGRvY3VtZW50IGlzIHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUu
CisgICAgLy8gaXMgZGlzcGF0Y2hlZCwgYWZ0ZXIgdGhlIGRvY3VtZW50IGlzIHJlc3RvcmVkIGZy
b20gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9w
ZXJ0aWVzQ2hhbmdlZCA9IGZhbHNlOwogI2VuZGlmCiAKQEAgLTUxNjksNyArNTE2OSw3IEBAIHZv
aWQgRG9jdW1lbnQ6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiAjZW5kaWYK
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2aWNlV29ya2VyRW5hYmxlZCgpICYmIHJlYXNvbiA9
PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiByZWFz
b24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgc2V0
U2VydmljZVdvcmtlckNvbm5lY3Rpb24obnVsbHB0cik7CiAjZW5kaWYKIApAQCAtNTIxNCw3ICs1
MjE0LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVzdW1lKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29u
KQogICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXJ2
aWNlV29ya2VyRW5hYmxlZCgpICYmIHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdl
Q2FjaGUpCisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c2VydmljZVdvcmtlckVuYWJsZWQoKSAmJiByZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6
QmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgc2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24oU2Vy
dmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5leGlzdGluZ1NlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uKCkpOwogI2VuZGlmCiB9CkBAIC01NTM0LDcgKzU1MzQsNyBAQCBEb2N1bWVudCYgRG9j
dW1lbnQ6OnRvcERvY3VtZW50KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzcGVjaWFs
LWNhc2luZyBhdm9pZHMgaW5jb3JyZWN0bHkgZGV0ZXJtaW5lZCB0b3AgZG9jdW1lbnRzIGR1cmlu
ZyB0aGUgcHJvY2VzcwogICAgIC8vIG9mIEFYT2JqZWN0Q2FjaGUgdGVhcmRvd24gb3Igbm90aWZp
Y2F0aW9uIHBvc3RpbmcgZm9yIGNhY2hlZCBvciBiZWluZy1kZXN0cm95ZWQgZG9jdW1lbnRzLgot
ICAgIGlmIChwYWdlQ2FjaGVTdGF0ZSgpID09IE5vdEluUGFnZUNhY2hlICYmICFtX3JlbmRlclRy
ZWVCZWluZ0Rlc3Ryb3llZCkgeworICAgIGlmIChiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBO
b3RJbkJhY2tGb3J3YXJkQ2FjaGUgJiYgIW1fcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKSB7CiAg
ICAgICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PERvY3Vt
ZW50Jj4oKnRoaXMpOwogICAgICAgICAvLyBUaGlzIHNob3VsZCBhbHdheXMgYmUgbm9uLW51bGwu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDc1MzE1ZmU1MWMwNGI3MzMwMGI4ZDQ1MzYyZmQ1NjYw
MDczMDUyYTcuLjk4NmY5YjcxOTI5Y2JiODc3ZDk1OGI1ZDU4YTU5OTVlODYxNjQ4YWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xMDczLDEwICsxMDczLDEwIEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZmluaXNoZWRQYXJzaW5nKCk7CiAKLSAgICBlbnVtIFBhZ2VDYWNoZVN0YXRlIHsgTm90SW5Q
YWdlQ2FjaGUsIEFib3V0VG9FbnRlclBhZ2VDYWNoZSwgSW5QYWdlQ2FjaGUgfTsKKyAgICBlbnVt
IEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdEluQmFja0ZvcndhcmRDYWNoZSwgQWJvdXRUb0Vu
dGVyQmFja0ZvcndhcmRDYWNoZSwgSW5CYWNrRm9yd2FyZENhY2hlIH07CiAKLSAgICBQYWdlQ2Fj
aGVTdGF0ZSBwYWdlQ2FjaGVTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUNhY2hlU3RhdGU7
IH0KLSAgICB2b2lkIHNldFBhZ2VDYWNoZVN0YXRlKFBhZ2VDYWNoZVN0YXRlKTsKKyAgICBCYWNr
Rm9yd2FyZENhY2hlU3RhdGUgYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9iYWNrRm9yd2FyZENhY2hlU3RhdGU7IH0KKyAgICB2b2lkIHNldEJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZShCYWNrRm9yd2FyZENhY2hlU3RhdGUpOwogCiAgICAgdm9pZCByZWdpc3RlckZvckRvY3Vt
ZW50U3VzcGVuc2lvbkNhbGxiYWNrcyhFbGVtZW50Jik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyRm9y
RG9jdW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tzKEVsZW1lbnQmKTsKQEAgLTE5NTAsNyArMTk1MCw3
IEBAIHByaXZhdGU6CiAgICAgSW5oZXJpdGVkQm9vbCBtX2Rlc2lnbk1vZGUgeyBpbmhlcml0IH07
CiAgICAgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIG1fbWVkaWFTdGF0ZSB7IE1lZGlh
UHJvZHVjZXI6OklzTm90UGxheWluZyB9OwogICAgIGJvb2wgbV91c2VySGFzSW50ZXJhY3RlZFdp
dGhNZWRpYUVsZW1lbnQgeyBmYWxzZSB9OwotICAgIFBhZ2VDYWNoZVN0YXRlIG1fcGFnZUNhY2hl
U3RhdGUgeyBOb3RJblBhZ2VDYWNoZSB9OworICAgIEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBtX2Jh
Y2tGb3J3YXJkQ2FjaGVTdGF0ZSB7IE5vdEluQmFja0ZvcndhcmRDYWNoZSB9OwogICAgIE9wdGlv
bmFsPFJlZmVycmVyUG9saWN5PiBtX3JlZmVycmVyUG9saWN5OwogICAgIFJlYWR5U3RhdGUgbV9y
ZWFkeVN0YXRlIHsgQ29tcGxldGUgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFu
YWdlci5jcHAKaW5kZXggODVjNzhhODcyMzY1ZDg5MDM4Njk2NWZlMDAyMjEyOWUxZjJlNGZmZS4u
MWU0Mjg3MWJjMmIyM2NmOThhZTBkMjI3Y2Y1YTcwNWU3NDY2Yjg3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgc3RhdGljIHZv
aWQgdW53cmFwRnVsbHNjcmVlblJlbmRlcmVyKFJlbmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5S
ZW5kZXJlciwgRWxlbWUKIAogdm9pZCBGdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEVudGVyRnVsbHNj
cmVlbihFbGVtZW50JiBlbGVtZW50KQogewotICAgIGlmICghZG9jdW1lbnQoKS5oYXNMaXZpbmdS
ZW5kZXJUcmVlKCkgfHwgZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpO
b3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoIWRvY3VtZW50KCkuaGFzTGl2aW5nUmVuZGVyVHJlZSgp
IHx8IGRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdElu
QmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gUHJvdGVjdCBhZ2Fp
bnN0IGJlaW5nIGNhbGxlZCBhZnRlciB0aGUgZG9jdW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9t
IHRoZSBwYWdlLgpAQCAtNDE3LDcgKzQxNyw3IEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZEVudGVyRnVsbHNjcmVlbigpCiAgICAgaWYgKCFtX2Z1bGxzY3JlZW5FbGVtZW50KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBwYWdlQ2FjaGVT
dGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoIWhhc0xpdmluZ1Jl
bmRlclRyZWUoKSB8fCBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5C
YWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2Z1bGxzY3JlZW5FbGVt
ZW50LT5kaWRCZWNvbWVGdWxsc2NyZWVuRWxlbWVudCgpOwpAQCAtNDI5LDcgKzQyOSw3IEBAIHZv
aWQgRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVlbigpCiAgICAgaWYgKCFmdWxs
c2NyZWVuRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFoYXNMaXZpbmdSZW5k
ZXJUcmVlKCkgfHwgcGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUp
CisgICAgaWYgKCFoYXNMaXZpbmdSZW5kZXJUcmVlKCkgfHwgYmFja0ZvcndhcmRDYWNoZVN0YXRl
KCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZnVsbHNjcmVlbkVsZW1lbnQtPndpbGxTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgp
OwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHZvaWQgRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxs
c2NyZWVuKCkKICAgICBpZiAoIWZ1bGxzY3JlZW5FbGVtZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8fCBwYWdlQ2FjaGVTdGF0ZSgpICE9IERv
Y3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoIWhhc0xpdmluZ1JlbmRlclRyZWUoKSB8
fCBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENh
Y2hlKQogICAgICAgICByZXR1cm47CiAgICAgZnVsbHNjcmVlbkVsZW1lbnQtPnNldENvbnRhaW5z
RnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVzKGZhbHNl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBlMjczNDE4ZmI1
ZThiNmU0YTIwNDFhZGVlZTM5MmE3YzBjNzgyYTIxLi5iZmQyMTdmZDExOTVhMGM5ZjEzMTA3ZWJk
ZjdmM2I5YTAwNzNkZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVl
bk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaApA
QCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgRnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9kb2N1bWVudC5mcmFtZSgpOyB9CiAgICAgRWxlbWVudCogZG9jdW1lbnRFbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKTsgfQogICAgIGJvb2wg
aGFzTGl2aW5nUmVuZGVyVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQuaGFzTGl2aW5n
UmVuZGVyVHJlZSgpOyB9Ci0gICAgRG9jdW1lbnQ6OlBhZ2VDYWNoZVN0YXRlIHBhZ2VDYWNoZVN0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5wYWdlQ2FjaGVTdGF0ZSgpOyB9CisgICAg
RG9jdW1lbnQ6OkJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSBiYWNrRm9yd2FyZENhY2hlU3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX2RvY3VtZW50LmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpOyB9CiAgICAg
dm9pZCBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQoKSB7IG1fZG9jdW1lbnQuc2NoZWR1bGVGdWxs
U3R5bGVSZWJ1aWxkKCk7IH0KIAogICAgIC8vIFczQyBGdWxsc2NyZWVuIEFQSQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IDAwMTAzODc5ODc4
YTBmZTdjN2ZlY2ZlYzU3MWEzNDFlZTVkMjU0OTAuLjNlYTliMzhkZDIzMzgwNWU3NjU0ZjQ0NGMx
MjliMjdjN2VmYjMwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKQEAgLTI3OCw3ICsyNzgsNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKFJlYXNvbkZvclN1c3BlbnNpb24gd2h5KQogICAg
IGNoZWNrQ29uc2lzdGVuY3koKTsKIAogICAgIGlmIChtX2FjdGl2ZURPTU9iamVjdHNBcmVTdXNw
ZW5kZWQpIHsKLSAgICAgICAgLy8gQSBwYWdlIG1heSBzdWJzZXF1ZW50bHkgc3VzcGVuZCBET00g
b2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50ZXJpbmcgdGhlIHBhZ2UgY2FjaGUsIGFmdGVyIHRo
ZSBlbWJlZGRpbmcKKyAgICAgICAgLy8gQSBwYWdlIG1heSBzdWJzZXF1ZW50bHkgc3VzcGVuZCBE
T00gb2JqZWN0cywgc2F5IGFzIHBhcnQgb2YgZW50ZXJpbmcgdGhlIGJhY2svZm9yd2FyZCBjYWNo
ZSwgYWZ0ZXIgdGhlIGVtYmVkZGluZwogICAgICAgICAvLyBjbGllbnQgcmVxdWVzdGVkIHRoZSBw
YWdlIGJlIHN1c3BlbmRlZC4gV2UgaWdub3JlIHN1Y2ggcmVxdWVzdHMgc28gbG9uZyBhcyB0aGUg
ZW1iZWRkaW5nIGNsaWVudCByZXF1ZXN0ZWQKICAgICAgICAgLy8gdGhlIHN1c3BlbnNpb24gZmly
c3QuIFNlZSA8cmRhcjovL3Byb2JsZW0vMTM3NTQ4OTY+IGZvciBtb3JlIGRldGFpbHMuCiAgICAg
ICAgIEFTU0VSVChtX3JlYXNvbkZvclN1c3BlbmRpbmdBY3RpdmVET01PYmplY3RzID09IFJlYXNv
bkZvclN1c3BlbnNpb246OlBhZ2VXaWxsQmVTdXNwZW5kZWQpOwpAQCAtMzA4LDggKzMwOCw4IEBA
IHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhSZWFz
b25Gb3JTdXNwZW5zaW9uIHdoeSkKICAgICAgICAgcmV0dXJuIFNob3VsZENvbnRpbnVlOjpZZXM7
CiAgICAgfSk7CiAKLSAgICAvLyBJbiBjYXNlIHRoZXJlIHdlcmUgcGVuZGluZyBtZXNzYWdlcyBh
dCB0aGUgdGltZSB0aGUgc2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0IGVudGVyZWQgUGFnZUNhY2hl
LAotICAgIC8vIG1ha2Ugc3VyZSB0aG9zZSBnZXQgZGlzcGF0Y2hlZCBzaG9ydGx5IGFmdGVyIHJl
c3RvcmluZyBmcm9tIFBhZ2VDYWNoZS4KKyAgICAvLyBJbiBjYXNlIHRoZXJlIHdlcmUgcGVuZGlu
ZyBtZXNzYWdlcyBhdCB0aGUgdGltZSB0aGUgc2NyaXB0IGV4ZWN1dGlvbiBjb250ZXh0IGVudGVy
ZWQgdGhlIEJhY2tGb3J3YXJkQ2FjaGUsCisgICAgLy8gbWFrZSBzdXJlIHRob3NlIGdldCBkaXNw
YXRjaGVkIHNob3J0bHkgYWZ0ZXIgcmVzdG9yaW5nIGZyb20gdGhlIEJhY2tGb3J3YXJkQ2FjaGUu
CiAgICAgcHJvY2Vzc01lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzU29vbigpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzczNTNm
ODNjY2ViZGM0NDIzODlhYTJhNDNjYzFiYTNjZGM3MGE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENhY2hlLmNwcApAQCAtMCwwICsxLDU1NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgor
CisjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKKyNpbmNsdWRlICJCYWNrRm9yd2Fy
ZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCisjaW5jbHVkZSAiRE9NV2lu
ZG93LmgiCisjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmgiCisjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkZvY3Vz
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIu
aCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgorI2luY2x1ZGUgIkhpc3RvcnlDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiSWdub3JlT3BlbnNE
dXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTY3JpcHREaXNhbGxvd2VkU2NvcGUuaCIKKyNpbmNs
dWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSA8
cGFsL0xvZ2dpbmcuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+Cisj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3Bl
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0NvbmNhdGVuYXRlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2RlZmluZSBQQ0xP
RyguLi4pIExPRyhCYWNrRm9yd2FyZENhY2hlLCAiJSpzJXMiLCBpbmRlbnRMZXZlbCo0LCAiIiwg
bWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgpLmRhdGEoKSkKKworc3RhdGljIGlubGluZSB2
b2lkIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQmIGNsaWVudCwgY29uc3QgU3RyaW5nJiByZWFzb24pCit7CisgICAgY2xp
ZW50LmxvZ0RpYWdub3N0aWNNZXNzYWdlKERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0Zvcndh
cmRDYWNoZUZhaWx1cmVLZXkoKSwgcmVhc29uLCBTaG91bGRTYW1wbGU6Ok5vKTsKK30KKworc3Rh
dGljIGlubGluZSB2b2lkIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3Nh
Z2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCit7CisgICAgaWYgKCFwYWdlKQor
ICAgICAgICByZXR1cm47CisKKyAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0
aWNNZXNzYWdlKHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCksIHJlYXNvbik7Cit9CisK
K3N0YXRpYyBib29sIGNhbkNhY2hlRnJhbWUoRnJhbWUmIGZyYW1lLCBEaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIHVuc2lnbmVkIGluZGVudExldmVsKQor
eworICAgIFBDTE9HKCIrLS0tIik7CisgICAgRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyID0gZnJh
bWUubG9hZGVyKCk7CisKKyAgICAvLyBQcmV2ZW50IHBhZ2UgY2FjaGluZyBpZiBhIHN1YmZyYW1l
IGlzIHN0aWxsIGluIHByb3Zpc2lvbmFsIGxvYWQgc3RhZ2UuCisgICAgLy8gV2Ugb25seSBkbyB0
aGlzIGNoZWNrIGZvciBzdWJmcmFtZXMgYmVjYXVzZSB0aGUgbWFpbiBmcmFtZSBpcyByZXVzZWQg
d2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2UuCisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFt
ZSgpICYmIGZyYW1lTG9hZGVyLnN0YXRlKCkgPT0gRnJhbWVTdGF0ZVByb3Zpc2lvbmFsKSB7Cisg
ICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgaW4gcHJvdmlzaW9uYWwgbG9hZCBzdGFnZSIpOwor
ICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnByb3Zpc2lvbmFsTG9h
ZEtleSgpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmIChmcmFtZS5p
c01haW5GcmFtZSgpICYmIGZyYW1lTG9hZGVyLnN0YXRlTWFjaGluZSgpLmlzRGlzcGxheWluZ0lu
aXRpYWxFbXB0eURvY3VtZW50KCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1NYWluRnJhbWUgaXMg
ZGlzcGxheWluZyBpbml0aWFsIGVtcHR5IGRvY3VtZW50Iik7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICBpZiAoIWZyYW1lLmRvY3VtZW50KCkpIHsKKyAgICAgICAgUENMT0co
IiAgIC1GcmFtZSBoYXMgbm8gZG9jdW1lbnQiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKworICAgIGlmICghZnJhbWUuZG9jdW1lbnQoKS0+ZnJhbWUoKSkgeworICAgICAgICBQQ0xP
RygiICAgLURvY3VtZW50IGlzIGRldGFjaGVkIGZyb20gZnJhbWUiKTsKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBEb2N1
bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZUxvYWRlci5kb2N1bWVudExvYWRlcigp
OworICAgIGlmICghZG9jdW1lbnRMb2FkZXIpIHsKKyAgICAgICAgUENMT0coIiAgIC1UaGVyZSBp
cyBubyBEb2N1bWVudExvYWRlciBvYmplY3QiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNo
ZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpub0RvY3VtZW50TG9hZGVyS2V5KCkpOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgVVJMIGN1cnJlbnRVUkwgPSBkb2N1bWVudExvYWRlci0+dXJs
KCk7CisgICAgVVJMIG5ld1VSTCA9IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2Fk
ZXIoKSA/IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+dXJsKCkgOiBV
UkwoKTsKKyAgICBpZiAoIW5ld1VSTC5pc0VtcHR5KCkpCisgICAgICAgIFBDTE9HKCIgRGV0ZXJt
aW5pbmcgaWYgZnJhbWUgY2FuIGJlIGNhY2hlZCBuYXZpZ2F0aW5nIGZyb20gKCIsIGN1cnJlbnRV
Ukwuc3RyaW5nKCksICIpIHRvICgiLCBuZXdVUkwuc3RyaW5nKCksICIpOiIpOworICAgIGVsc2UK
KyAgICAgICAgUENMT0coIiBEZXRlcm1pbmluZyBpZiBzdWJmcmFtZSB3aXRoIFVSTCAoIiwgY3Vy
cmVudFVSTC5zdHJpbmcoKSwgIikgY2FuIGJlIGNhY2hlZDoiKTsKKworICAgIGJvb2wgaXNDYWNo
ZWFibGUgPSB0cnVlOworICAgIC8vIERvIG5vdCBjYWNoZSBlcnJvciBwYWdlcyAodGhlc2UgY2Fu
IGJlIHJlY29nbml6ZWQgYXMgcGFnZXMgd2l0aCBzdWJzdGl0dXRlIGRhdGEgb3IgdW5yZWFjaGFi
bGUgVVJMcykuCisgICAgaWYgKGRvY3VtZW50TG9hZGVyLT5zdWJzdGl0dXRlRGF0YSgpLmlzVmFs
aWQoKSAmJiAhZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRhKCkuZmFpbGluZ1VSTCgpLmlz
RW1wdHkoKSkgeworICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGlzIGFuIGVycm9yIHBhZ2UiKTsK
KyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppc0Vycm9yUGFnZUtl
eSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAgaWYgKGZyYW1l
TG9hZGVyLnN1YmZyYW1lTG9hZGVyKCkuY29udGFpbnNQbHVnaW5zKCkgJiYgIWZyYW1lLnBhZ2Uo
KS0+c2V0dGluZ3MoKS5iYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKCkpIHsKKyAgICAg
ICAgUENMT0coIiAgIC1GcmFtZSBjb250YWlucyBwbHVnaW5zIik7CisgICAgICAgIGxvZ0JhY2tG
b3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aGFzUGx1Z2luc0tleSgpKTsKKyAgICAgICAgaXND
YWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkgJiYg
IWZyYW1lTG9hZGVyLmhpc3RvcnkoKS5jdXJyZW50SXRlbSgpKSB7CisgICAgICAgIFBDTE9HKCIg
ICAtTWFpbiBmcmFtZSBoYXMgbm8gY3VycmVudCBoaXN0b3J5IGl0ZW0iKTsKKyAgICAgICAgbG9n
QmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0N1cnJlbnRIaXN0b3J5SXRlbUtleSgp
KTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisgICAgaWYgKGZyYW1lTG9h
ZGVyLnF1aWNrUmVkaXJlY3RDb21pbmcoKSkgeworICAgICAgICBQQ0xPRygiICAgLVF1aWNrIHJl
ZGlyZWN0IGlzIGNvbWluZyIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURp
YWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnF1aXJrUmVkaXJlY3RDb21pbmdLZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0g
ZmFsc2U7CisgICAgfQorICAgIGlmIChkb2N1bWVudExvYWRlci0+aXNMb2FkaW5nKCkpIHsKKyAg
ICAgICAgUENMT0coIiAgIC1Eb2N1bWVudExvYWRlciBpcyBzdGlsbCBsb2FkaW5nIik7CisgICAg
ICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNMb2FkaW5nS2V5KCkpOwor
ICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKyAgICBpZiAoZG9jdW1lbnRMb2Fk
ZXItPmlzU3RvcHBpbmcoKSkgeworICAgICAgICBQQ0xPRygiICAgLURvY3VtZW50TG9hZGVyIGlz
IGluIHRoZSBtaWRkbGUgb2Ygc3RvcHBpbmciKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNo
ZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpkb2N1bWVudExvYWRlclN0b3BwaW5nS2V5KCkpOworICAgICAgICBp
c0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKworICAgIFZlY3RvcjxBY3RpdmVET01PYmplY3Qq
PiB1bnN1c3BlbmRhYmxlT2JqZWN0czsKKyAgICBpZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiAhZnJh
bWUuZG9jdW1lbnQoKS0+Y2FuU3VzcGVuZEFjdGl2ZURPTU9iamVjdHNGb3JEb2N1bWVudFN1c3Bl
bnNpb24oJnVuc3VzcGVuZGFibGVPYmplY3RzKSkgeworICAgICAgICBQQ0xPRygiICAgLVRoZSBk
b2N1bWVudCBjYW5ub3Qgc3VzcGVuZCBpdHMgYWN0aXZlIERPTSBPYmplY3RzIik7CisgICAgICAg
IGZvciAoYXV0byogYWN0aXZlRE9NT2JqZWN0IDogdW5zdXNwZW5kYWJsZU9iamVjdHMpIHsKKyAg
ICAgICAgICAgIFBDTE9HKCIgICAgLSBVbnN1c3BlbmRhYmxlOiAiLCBhY3RpdmVET01PYmplY3Qt
PmFjdGl2ZURPTU9iamVjdE5hbWUoKSk7CisgICAgICAgICAgICBkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5sb2dEaWFnbm9zdGljTWVzc2FnZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnVuc3VzcGVu
ZGFibGVET01PYmplY3RLZXkoKSwgYWN0aXZlRE9NT2JqZWN0LT5hY3RpdmVET01PYmplY3ROYW1l
KCksIFNob3VsZFNhbXBsZTo6Tm8pOworICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGFjdGl2ZURP
TU9iamVjdCk7CisgICAgICAgIH0KKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpjYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tleSgpKTsKKyAgICAgICAgaXND
YWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGludmVz
dGlnYXRpbmcgY2FjaGluZyBmcmFtZXMgdGhhdCBoYXZlIGFuIGFzc29jaWF0ZWQKKyAgICAvLyBh
cHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9ibGVtLzU5MTc4OTk+IHRyYWNrcyB0aGF0IHdv
cmsuCisgICAgaWYgKCFkb2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5jYW5D
YWNoZUluQmFja0ZvcndhcmRDYWNoZSgpKSB7CisgICAgICAgIFBDTE9HKCIgICAtVGhlIERvY3Vt
ZW50TG9hZGVyIHVzZXMgYW4gYXBwbGljYXRpb24gY2FjaGUiKTsKKyAgICAgICAgbG9nQmFja0Zv
cndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjphcHBsaWNhdGlvbkNhY2hlS2V5KCkpOworICAgICAg
ICBpc0NhY2hlYWJsZSA9IGZhbHNlOworICAgIH0KKyAgICBpZiAoIWZyYW1lTG9hZGVyLmNsaWVu
dCgpLmNhbkNhY2hlUGFnZSgpKSB7CisgICAgICAgIFBDTE9HKCIgICAtVGhlIGNsaWVudCBzYXlz
IHRoaXMgZnJhbWUgY2Fubm90IGJlIGNhY2hlZCIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENh
Y2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFn
bm9zdGljTG9nZ2luZ0tleXM6OmRlbmllZEJ5Q2xpZW50S2V5KCkpOworICAgICAgICBpc0NhY2hl
YWJsZSA9IGZhbHNlOworICAgIH0KKworICAgIGZvciAoRnJhbWUqIGNoaWxkID0gZnJhbWUudHJl
ZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGlu
ZygpKSB7CisgICAgICAgIGlmICghY2FuQ2FjaGVGcmFtZSgqY2hpbGQsIGRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LCBpbmRlbnRMZXZlbCArIDEpKQorICAgICAgICAgICAgaXNDYWNoZWFibGUgPSBm
YWxzZTsKKyAgICB9CisgICAgCisgICAgUENMT0coaXNDYWNoZWFibGUgPyAiIEZyYW1lIENBTiBi
ZSBjYWNoZWQiIDogIiBGcmFtZSBDQU5OT1QgYmUgY2FjaGVkIik7CisgICAgUENMT0coIistLS0i
KTsKKyAgICAKKyAgICByZXR1cm4gaXNDYWNoZWFibGU7Cit9CisKK3N0YXRpYyBib29sIGNhbkNh
Y2hlUGFnZShQYWdlJiBwYWdlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKCFwYWdlLmlzUmVzdG9y
aW5nQ2FjaGVkUGFnZSgpKTsKKworICAgIHVuc2lnbmVkIGluZGVudExldmVsID0gMDsKKyAgICBQ
Q0xPRygiLS0tLS0tLS1cbiBEZXRlcm1pbmluZyBpZiBwYWdlIGNhbiBiZSBjYWNoZWQ6Iik7CisK
KyAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQgPSBw
YWdlLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7CisgICAgYm9vbCBpc0NhY2hlYWJsZSA9IGNh
bkNhY2hlRnJhbWUocGFnZS5tYWluRnJhbWUoKSwgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIGlu
ZGVudExldmVsICsgMSk7CisKKyAgICBpZiAoIXBhZ2Uuc2V0dGluZ3MoKS51c2VzQmFja0Zvcndh
cmRDYWNoZSgpIHx8IHBhZ2UuaXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZEJ5V2ViSW5zcGVjdG9y
KCkpIHsKKyAgICAgICAgUENMT0coIiAgIC1QYWdlIHNldHRpbmdzIHNheXMgYi9mIGNhY2hlIGRp
c2FibGVkIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01l
c3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6aXNE
aXNhYmxlZEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICB9CisjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
aWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7CisgICAgICAg
IFBDTE9HKCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VNb3Rpb24iKTsKKyAgICAgICAgbG9nQmFj
a0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkZXZpY2VNb3Rpb25LZXkoKSk7CisgICAgICAg
IGlzQ2FjaGVhYmxlID0gZmFsc2U7CisgICAgfQorICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7CisgICAgICAgIFBDTE9HKCIgICAtUGFnZSBp
cyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hl
RmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OmRldmljZU9yaWVudGF0aW9uS2V5KCkpOworICAgICAgICBpc0NhY2hl
YWJsZSA9IGZhbHNlOworICAgIH0KKyNlbmRpZgorCisgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlw
ZSA9IHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkubG9hZFR5cGUoKTsKKyAgICBzd2l0Y2ggKGxv
YWRUeXBlKSB7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWxvYWQ6CisgICAgICAgIC8vIE5v
IHBvaW50IHdyaXRpbmcgdG8gdGhlIGNhY2hlIG9uIGEgcmVsb2FkLCBzaW5jZSB3ZSB3aWxsIGp1
c3Qgd3JpdGUgb3ZlciBpdCBhZ2FpbiB3aGVuIHdlIGxlYXZlIHRoYXQgcGFnZS4KKyAgICAgICAg
UENMT0coIiAgIC1Mb2FkIHR5cGUgaXM6IFJlbG9hZCIpOworICAgICAgICBsb2dCYWNrRm9yd2Fy
ZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBE
aWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlbG9hZEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUg
PSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpTYW1lOiAv
LyB1c2VyIGxvYWRzIHNhbWUgVVJMIGFnYWluIChidXQgbm90IHJlbG9hZCBidXR0b24pCisgICAg
ICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhlIGNhY2hlIG9uIGEgc2FtZSBsb2FkLCBzaW5j
ZSB3ZSB3aWxsIGp1c3Qgd3JpdGUgb3ZlciBpdCBhZ2FpbiB3aGVuIHdlIGxlYXZlIHRoYXQgcGFn
ZS4KKyAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5cGUgaXM6IFNhbWUiKTsKKyAgICAgICAgbG9n
QmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2lu
Z0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzYW1lTG9hZEtleSgpKTsKKyAgICAgICAg
aXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRU
eXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q6CisgICAgICAgIC8vIERvbid0
IHdyaXRlIHRvIHRoZSBjYWNoZSBpZiBpbiB0aGUgbWlkZGxlIG9mIGEgcmVkaXJlY3QsIHNpbmNl
IHdlIHdpbGwgd2FudCB0byBzdG9yZSB0aGUgZmluYWwgcGFnZSB3ZSBlbmQgdXAgb24uCisgICAg
ICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2Fy
ZExpc3QiKTsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVz
c2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZWRp
cmVjdEtleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZXBsYWNlOgorICAgICAgICAvLyBObyBwb2ludCB3
cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHJlcGxhY2UsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0
ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgorICAgICAgICBQQ0xPRygi
ICAgLUxvYWQgdHlwZSBpczogUmVwbGFjZSIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hl
RmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OnJlcGxhY2VLZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxlID0gZmFs
c2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9y
aWdpbjogeworICAgICAgICAvLyBObyBwb2ludCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHJl
bG9hZCwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRlIG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2
ZSB0aGF0IHBhZ2UuCisgICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWxvYWRGcm9t
T3JpZ2luIik7CisgICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01l
c3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmVs
b2FkRnJvbU9yaWdpbktleSgpKTsKKyAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6UmVsb2FkRXhwaXJlZE9u
bHk6IHsKKyAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxv
YWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUg
dGhhdCBwYWdlLgorICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkUmV2YWxp
ZGF0aW5nRXhwaXJlZCIpOworICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdu
b3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OnJlbG9hZFJldmFsaWRhdGluZ0V4cGlyZWRLZXkoKSk7CisgICAgICAgIGlzQ2FjaGVhYmxl
ID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6
OlN0YW5kYXJkOgorICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6QmFjazoKKyAgICBjYXNlIEZyYW1l
TG9hZFR5cGU6OkZvcndhcmQ6CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0Zv
cndhcmQ6IC8vIGEgbXVsdGktaXRlbSBob3AgaW4gdGhlIGJhY2tmb3J3YXJkIGxpc3QKKyAgICAg
ICAgLy8gQ2FjaGVhYmxlLgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgCisgICAgaWYgKGlz
Q2FjaGVhYmxlKQorICAgICAgICBQQ0xPRygiIFBhZ2UgQ0FOIGJlIGNhY2hlZFxuLS0tLS0tLS0i
KTsKKyAgICBlbHNlCisgICAgICAgIFBDTE9HKCIgUGFnZSBDQU5OT1QgYmUgY2FjaGVkXG4tLS0t
LS0tLSIpOworCisgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgp
LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNhbkNhY2hlS2V5KCksIGlzQ2FjaGVhYmxlID8gRGlh
Z25vc3RpY0xvZ2dpbmdSZXN1bHRQYXNzIDogRGlhZ25vc3RpY0xvZ2dpbmdSZXN1bHRGYWlsLCBT
aG91bGRTYW1wbGU6Ok5vKTsKKyAgICByZXR1cm4gaXNDYWNoZWFibGU7Cit9CisKK0JhY2tGb3J3
YXJkQ2FjaGUmIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEJhY2tGb3J3YXJkQ2FjaGU+IGdsb2JhbEJhY2tGb3J3YXJkQ2FjaGU7Cisg
ICAgcmV0dXJuIGdsb2JhbEJhY2tGb3J3YXJkQ2FjaGU7Cit9CisKK0JhY2tGb3J3YXJkQ2FjaGU6
OkJhY2tGb3J3YXJkQ2FjaGUoKQoreworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxh
ZzsKKyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10geworICAgICAgICBQQUw6OnJlZ2lz
dGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0JhY2tGb3J3YXJkQ2FjaGUi
LCBbXSB7CisgICAgICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5kdW1wKCk7
CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2b2lkIEJhY2tGb3J3YXJkQ2FjaGU6OmR1bXAo
KSBjb25zdAoreworICAgIFdURkxvZ0Fsd2F5cygiQmFjay9Gb3J3YXJkIENhY2hlOiIpOworICAg
IGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKKyAgICAgICAgQ2FjaGVkUGFnZSYgY2FjaGVk
UGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiICBQYWdl
ICVwLCBkb2N1bWVudCAlcCAlcyIsICZjYWNoZWRQYWdlLnBhZ2UoKSwgY2FjaGVkUGFnZS5kb2N1
bWVudCgpLCBjYWNoZWRQYWdlLmRvY3VtZW50KCkgPyBjYWNoZWRQYWdlLmRvY3VtZW50KCktPnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CisgICAgfQorfQorCitib29sIEJhY2tG
b3J3YXJkQ2FjaGU6OmNhbkNhY2hlKFBhZ2UmIHBhZ2UpIGNvbnN0Cit7CisgICAgaWYgKCFtX21h
eFNpemUpIHsKKyAgICAgICAgbG9nQmFja0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVz
c2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppc0Rpc2FibGVkS2V5KCkpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKE1lbW9yeVByZXNzdXJlSGFuZGxl
cjo6c2luZ2xldG9uKCkuaXNVbmRlck1lbW9yeVByZXNzdXJlKCkpIHsKKyAgICAgICAgbG9nQmFj
a0ZvcndhcmRDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSgmcGFnZSwgRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjp1bmRlck1lbW9yeVByZXNzdXJlS2V5KCkpOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIAorICAgIHJldHVybiBjYW5DYWNoZVBhZ2UocGFnZSk7Cit9CisKK3Zv
aWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmVUb1NpemVOb3codW5zaWduZWQgc2l6ZSwgUHJ1bmlu
Z1JlYXNvbiBwcnVuaW5nUmVhc29uKQoreworICAgIFNldEZvclNjb3BlPHVuc2lnbmVkPiBjaGFu
Z2UobV9tYXhTaXplLCBzaXplKTsKKyAgICBwcnVuZShwcnVuaW5nUmVhc29uKTsKK30KKwordm9p
ZCBCYWNrRm9yd2FyZENhY2hlOjpzZXRNYXhTaXplKHVuc2lnbmVkIG1heFNpemUpCit7CisgICAg
bV9tYXhTaXplID0gbWF4U2l6ZTsKKyAgICBwcnVuZShQcnVuaW5nUmVhc29uOjpOb25lKTsKK30K
KwordW5zaWduZWQgQmFja0ZvcndhcmRDYWNoZTo6ZnJhbWVDb3VudCgpIGNvbnN0Cit7CisgICAg
dW5zaWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMuc2l6ZSgpOworICAgIGZvciAoYXV0byYgaXRl
bSA6IG1faXRlbXMpIHsKKyAgICAgICAgQVNTRVJUKGl0ZW0tPm1fY2FjaGVkUGFnZSk7CisgICAg
ICAgIGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNoZWRQYWdlLT5jYWNoZWRNYWluRnJhbWUoKS0+
ZGVzY2VuZGFudEZyYW1lQ291bnQoKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIGZyYW1lQ291
bnQ7Cit9CisKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6bWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdl
U2NhbGVDaGFuZ2VkKFBhZ2UmIHBhZ2UpCit7CisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9pdGVt
cykgeworICAgICAgICBDYWNoZWRQYWdlJiBjYWNoZWRQYWdlID0gKml0ZW0tPm1fY2FjaGVkUGFn
ZTsKKyAgICAgICAgaWYgKCZwYWdlLm1haW5GcmFtZSgpID09ICZjYWNoZWRQYWdlLmNhY2hlZE1h
aW5GcmFtZSgpLT52aWV3KCktPmZyYW1lKCkpCisgICAgICAgICAgICBjYWNoZWRQYWdlLm1hcmtG
b3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgQmFja0Zvcndh
cmRDYWNoZTo6bWFya1BhZ2VzRm9yQ29udGVudHNTaXplQ2hhbmdlZChQYWdlJiBwYWdlKQorewor
ICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKKyAgICAgICAgQ2FjaGVkUGFnZSYgY2Fj
aGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7CisgICAgICAgIGlmICgmcGFnZS5tYWluRnJh
bWUoKSA9PSAmY2FjaGVkUGFnZS5jYWNoZWRNYWluRnJhbWUoKS0+dmlldygpLT5mcmFtZSgpKQor
ICAgICAgICAgICAgY2FjaGVkUGFnZS5tYXJrRm9yQ29udGVudHNTaXplQ2hhbmdlZCgpOworICAg
IH0KK30KKworI2lmIEVOQUJMRShWSURFT19UUkFDSykKK3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6
bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRv
JiBpdGVtIDogbV9pdGVtcykgeworICAgICAgICBBU1NFUlQoaXRlbS0+bV9jYWNoZWRQYWdlKTsK
KyAgICAgICAgaXRlbS0+bV9jYWNoZWRQYWdlLT5tYXJrRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hh
bmdlZCgpOworICAgIH0KK30KKyNlbmRpZgorCitzdGF0aWMgU3RyaW5nIHBydW5pbmdSZWFzb25U
b0RpYWdub3N0aWNMb2dnaW5nS2V5KFBydW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKK3sKKyAg
ICBzd2l0Y2ggKHBydW5pbmdSZWFzb24pIHsKKyAgICBjYXNlIFBydW5pbmdSZWFzb246Ok1lbW9y
eVByZXNzdXJlOgorICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWRE
dWVUb01lbW9yeVByZXNzdXJlS2V5KCk7CisgICAgY2FzZSBQcnVuaW5nUmVhc29uOjpQcm9jZXNz
U3VzcGVuZGVkOgorICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWRE
dWVUb1Byb2Nlc3NTdXNwZW5kZWQoKTsKKyAgICBjYXNlIFBydW5pbmdSZWFzb246OlJlYWNoZWRN
YXhTaXplOgorICAgICAgICByZXR1cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVU
b01heFNpemVSZWFjaGVkKCk7CisgICAgY2FzZSBQcnVuaW5nUmVhc29uOjpOb25lOgorICAgICAg
ICBicmVhazsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShQ
YWdlJiBwYWdlLCBEb2N1bWVudDo6QmFja0ZvcndhcmRDYWNoZVN0YXRlIEJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSkKK3sKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZwYWdlLm1haW5GcmFtZSgpOyBm
cmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIGlm
IChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1l
bnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZShCYWNrRm9yd2FyZENhY2hlU3RhdGUpOworICAg
IH0KK30KKworLy8gV2hlbiBlbnRlcmluZyBiYWNrL2ZvcndhcmQgY2FjaGUsIHRlYXIgZG93biB0
aGUgcmVuZGVyIHRyZWUgYmVmb3JlIHNldHRpbmcgdGhlIGluLWNhY2hlIGZsYWcuCisvLyBUaGlz
IG1haW50YWlucyB0aGUgaW52YXJpYW50IHRoYXQgcmVuZGVyIHRyZWVzIGFyZSBuZXZlciBwcmVz
ZW50IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCisvLyBOb3RlIHRoYXQgZGVzdHJ1Y3Rpb24g
aGFwcGVucyBib3R0b20tdXAgc28gdGhhdCB0aGUgbWFpbiBmcmFtZSdzIHRyZWUgZGllcyBsYXN0
Lgorc3RhdGljIHZvaWQgZGVzdHJveVJlbmRlclRyZWUoRnJhbWUmIG1haW5GcmFtZSkKK3sKKyAg
ICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZS50cmVlKCkudHJhdmVyc2VQcmV2aW91cyhD
YW5XcmFwOjpZZXMpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlUHJldmlv
dXMoQ2FuV3JhcDo6Tm8pKSB7CisgICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50KCkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUtPmRvY3Vt
ZW50KCk7CisgICAgICAgIGlmIChkb2N1bWVudC5oYXNMaXZpbmdSZW5kZXJUcmVlKCkpCisgICAg
ICAgICAgICBkb2N1bWVudC5kZXN0cm95UmVuZGVyVHJlZSgpOworICAgIH0KK30KKworc3RhdGlj
IHZvaWQgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNpdmVseShGcmFtZSYgZnJhbWUpCit7CisgICAg
YXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIHN0b3BMb2FkaW5nKCkgd2lsbCBmaXJlIHRoZSBwYWdl
aGlkZSBldmVudCBpbiBlYWNoIHN1YmZyYW1lIGFuZCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHN0
YXRlcworICAgIC8vIHRoYXQgdGhlIHBhcmVudCBkb2N1bWVudCdzIGlnbm9yZS1vcGVucy1kdXJp
bmctdW5sb2FkIGNvdW50ZXIgc2hvdWxkIGJlIGluY3JlbWVudGVkIHdoaWxlIHRoZQorICAgIC8v
IHBhZ2VoaWRlIGV2ZW50IGlzIGJlaW5nIGZpcmVkIGluIGl0cyBzdWJmcmFtZXM6CisgICAgLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvYnJvd3NlcnMuaHRtbCN1bmxv
YWQtYS1kb2N1bWVudAorICAgIElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRl
ciBpZ25vcmVPcGVuc0R1cmluZ1VubG9hZENvdW50SW5jcmVtZW50ZXIoZG9jdW1lbnQpOworCisg
ICAgZnJhbWUubG9hZGVyKCkuc3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3lVbmxvYWRBbmRQ
YWdlSGlkZSk7CisKKyAgICBmb3IgKFJlZlB0cjxGcmFtZT4gY2hpbGQgPSBmcmFtZS50cmVlKCku
Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkp
CisgICAgICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZlbHkoKmNoaWxkKTsKK30KKworYm9v
bCBCYWNrRm9yd2FyZENhY2hlOjphZGRJZkNhY2hlYWJsZShIaXN0b3J5SXRlbSYgaXRlbSwgUGFn
ZSogcGFnZSkKK3sKKyAgICBpZiAoaXRlbS5pc0luQmFja0ZvcndhcmRDYWNoZSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLnN0b3BGb3JCYWNrRm9yd2FyZENhY2hl
KCk7CisKKyAgICBpZiAoIWNhbkNhY2hlKCpwYWdlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghcGFnZS0+aXNVdGlsaXR5UGFnZSgpLCAiVXRpbGl0
eSBwYWdlcyBzdWNoIGFzIFNWR0ltYWdlIHBhZ2VzIHNob3VsZCBuZXZlciBnbyBpbnRvIEJhY2tG
b3J3YXJkQ2FjaGUiKTsKKworICAgIHNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgqcGFnZSwgRG9j
dW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUpOworCisgICAgLy8gRm9jdXMgdGhl
IG1haW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1c2VkIHN1YmZyYW1lIChpZiB3ZSBoYXZlIG9u
ZSkuIFdlIGRvIHRoaXMgaGVyZSwKKyAgICAvLyBiZWZvcmUgdGhlIHBhZ2UgZW50ZXJzIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUsIHdoaWxlIHdlIHN0aWxsIGNhbiBkaXNwYXRjaCBET00gYmx1ci9m
b2N1cyBldmVudHMuCisgICAgaWYgKHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRGcmFt
ZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJnBh
Z2UtPm1haW5GcmFtZSgpKTsKKworICAgIC8vIEZpcmUgdGhlIHBhZ2VoaWRlIGV2ZW50IGluIGFs
bCBmcmFtZXMuCisgICAgZmlyZVBhZ2VIaWRlRXZlbnRSZWN1cnNpdmVseShwYWdlLT5tYWluRnJh
bWUoKSk7CisKKyAgICBkZXN0cm95UmVuZGVyVHJlZShwYWdlLT5tYWluRnJhbWUoKSk7CisKKyAg
ICAvLyBTdG9wIGFsbCBsb2FkcyBhZ2FpbiBiZWZvcmUgY2hlY2tpbmcgaWYgd2UgY2FuIHN0aWxs
IGNhY2hlIHRoZSBwYWdlIGFmdGVyIGZpcmluZyB0aGUgcGFnZWhpZGUKKyAgICAvLyBldmVudCwg
c2luY2UgdGhlIHBhZ2UgbWF5IGhhdmUgc3RhcnRlZCBwaW5nIGxvYWRzIGluIGl0cyBwYWdlaGlk
ZSBldmVudCBoYW5kbGVyLgorICAgIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLnN0b3BGb3JC
YWNrRm9yd2FyZENhY2hlKCk7CisKKyAgICAvLyBDaGVjayB0aGF0IHRoZSBwYWdlIGlzIHN0aWxs
IHBhZ2UtY2FjaGVhYmxlIGFmdGVyIGZpcmluZyB0aGUgcGFnZWhpZGUgZXZlbnQuIFRoZSBKUyBl
dmVudCBoYW5kbGVycworICAgIC8vIGNvdWxkIGhhdmUgYWx0ZXJlZCB0aGUgcGFnZSBpbiBhIHdh
eSB0aGF0IGNvdWxkIHByZXZlbnQgY2FjaGluZy4KKyAgICBpZiAoIWNhbkNhY2hlKCpwYWdlKSkg
eworICAgICAgICBzZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUoKnBhZ2UsIERvY3VtZW50OjpOb3RJ
bkJhY2tGb3J3YXJkQ2FjaGUpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAg
c2V0QmFja0ZvcndhcmRDYWNoZVN0YXRlKCpwYWdlLCBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENh
Y2hlKTsKKworICAgIHsKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IGZpcmUgYW55IEpT
IGV2ZW50cyBpbiB0aGlzIHNjb3BlLgorICAgICAgICBTY3JpcHREaXNhbGxvd2VkU2NvcGU6Oklu
TWFpblRocmVhZCBzY3JpcHREaXNhbGxvd2VkU2NvcGU7CisKKyAgICAgICAgaXRlbS5zZXRDYWNo
ZWRQYWdlKG1ha2VVbmlxdWU8Q2FjaGVkUGFnZT4oKnBhZ2UpKTsKKyAgICAgICAgaXRlbS5tX3By
dW5pbmdSZWFzb24gPSBQcnVuaW5nUmVhc29uOjpOb25lOworICAgICAgICBtX2l0ZW1zLmFkZCgm
aXRlbSk7CisgICAgfQorICAgIHBydW5lKFBydW5pbmdSZWFzb246OlJlYWNoZWRNYXhTaXplKTsK
KworICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJCYWNrRm9yd2FyZENhY2hlOjph
ZGRJZkNhY2hlYWJsZSBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpLCBtYXhTaXplKCkpOworCisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiBCYWNrRm9yd2Fy
ZENhY2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQoreworICAgIGlmICgh
aXRlbS5tX2NhY2hlZFBhZ2UpIHsKKyAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9
IFBydW5pbmdSZWFzb246Ok5vbmUpCisgICAgICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dn
aW5nS2V5KGl0ZW0ubV9wcnVuaW5nUmVhc29uKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKworICAgIG1faXRlbXMucmVtb3ZlKCZpdGVtKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZSA9IGl0ZW0udGFrZUNhY2hlZFBhZ2UoKTsKKworICAgIFJF
TEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJCYWNrRm9yd2FyZENhY2hlOjp0YWtlIGl0ZW06
ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5pZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7CisKKyAgICBpZiAoY2FjaGVkUGFnZS0+aGFz
RXhwaXJlZCgpIHx8IChwYWdlICYmIHBhZ2UtPmlzUmVzb3VyY2VDYWNoaW5nRGlzYWJsZWRCeVdl
Ykluc3BlY3RvcigpKSkgeworICAgICAgICBMT0coQmFja0ZvcndhcmRDYWNoZSwgIk5vdCByZXN0
b3JpbmcgcGFnZSBmb3IgJXMgZnJvbSBiYWNrL2ZvcndhcmQgY2FjaGUgYmVjYXVzZSBjYWNoZSBl
bnRyeSBoYXMgZXhwaXJlZCIsIGl0ZW0udXJsKCkuc3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOwor
ICAgICAgICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2Us
IERpYWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtleSgpKTsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGNhY2hlZFBhZ2U7Cit9CisKK3ZvaWQgQmFja0Zv
cndhcmRDYWNoZTo6cmVtb3ZlQWxsSXRlbXNGb3JQYWdlKFBhZ2UmIHBhZ2UpCit7CisjaWYgIUFT
U0VSVF9ESVNBQkxFRAorICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNJblJlbW92ZUFsbEl0
ZW1zRm9yUGFnZSwgIldlIHNob3VsZCBub3QgcmVlbnRlciB0aGlzIG1ldGhvZCIpOworICAgIFNl
dEZvclNjb3BlPGJvb2w+IGluUmVtb3ZlQWxsSXRlbXNGb3JQYWdlU2NvcGUgeyBtX2lzSW5SZW1v
dmVBbGxJdGVtc0ZvclBhZ2UsIHRydWUgfTsKKyNlbmRpZgorCisgICAgZm9yIChhdXRvIGl0ID0g
bV9pdGVtcy5iZWdpbigpOyBpdCAhPSBtX2l0ZW1zLmVuZCgpOykgeworICAgICAgICAvLyBJbmNy
ZW1lbnQgaXRlcmF0b3IgZmlyc3Qgc28gaXQgc3RheXMgdmFsaWQgYWZ0ZXIgdGhlIHJlbW92YWwu
CisgICAgICAgIGF1dG8gY3VycmVudCA9IGl0OworICAgICAgICArK2l0OworICAgICAgICBpZiAo
JigqY3VycmVudCktPm1fY2FjaGVkUGFnZS0+cGFnZSgpID09ICZwYWdlKSB7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPRyhCYWNrRm9yd2FyZENhY2hlLCAiQmFja0ZvcndhcmRDYWNoZTo6cmVtb3Zl
QWxsSXRlbXNGb3JQYWdlIHJlbW92aW5nIGl0ZW06ICVzLCBzaXplOiAldSAvICV1IiwgKCpjdXJy
ZW50KS0+aWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpIC0g
MSwgbWF4U2l6ZSgpKTsKKyAgICAgICAgICAgICgqY3VycmVudCktPnNldENhY2hlZFBhZ2UobnVs
bHB0cik7CisgICAgICAgICAgICBtX2l0ZW1zLnJlbW92ZShjdXJyZW50KTsKKyAgICAgICAgfQor
ICAgIH0KK30KKworQ2FjaGVkUGFnZSogQmFja0ZvcndhcmRDYWNoZTo6Z2V0KEhpc3RvcnlJdGVt
JiBpdGVtLCBQYWdlKiBwYWdlKQoreworICAgIENhY2hlZFBhZ2UqIGNhY2hlZFBhZ2UgPSBpdGVt
Lm1fY2FjaGVkUGFnZS5nZXQoKTsKKyAgICBpZiAoIWNhY2hlZFBhZ2UpIHsKKyAgICAgICAgaWYg
KGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUpCisgICAgICAgICAg
ICBsb2dCYWNrRm9yd2FyZENhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIHBydW5p
bmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KGl0ZW0ubV9wcnVuaW5nUmVhc29uKSk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChjYWNoZWRQYWdlLT5oYXNF
eHBpcmVkKCkgfHwgKHBhZ2UgJiYgcGFnZS0+aXNSZXNvdXJjZUNhY2hpbmdEaXNhYmxlZEJ5V2Vi
SW5zcGVjdG9yKCkpKSB7CisgICAgICAgIExPRyhCYWNrRm9yd2FyZENhY2hlLCAiTm90IHJlc3Rv
cmluZyBwYWdlIGZvciAlcyBmcm9tIGJhY2svZm9yd2FyZCBjYWNoZSBiZWNhdXNlIGNhY2hlIGVu
dHJ5IGhhcyBleHBpcmVkIiwgaXRlbS51cmwoKS5zdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7Cisg
ICAgICAgIGxvZ0JhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwg
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpleHBpcmVkS2V5KCkpOworICAgICAgICByZW1vdmUoaXRl
bSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gY2FjaGVkUGFn
ZTsKK30KKwordm9pZCBCYWNrRm9yd2FyZENhY2hlOjpyZW1vdmUoSGlzdG9yeUl0ZW0mIGl0ZW0p
Cit7CisgICAgLy8gU2FmZWx5IGlnbm9yZSBhdHRlbXB0cyB0byByZW1vdmUgaXRlbXMgbm90IGlu
IHRoZSBjYWNoZS4KKyAgICBpZiAoIWl0ZW0ubV9jYWNoZWRQYWdlKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2l0ZW1zLnJlbW92ZSgmaXRlbSk7CisgICAgaXRlbS5zZXRDYWNoZWRQYWdlKG51
bGxwdHIpOworCisgICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIkJhY2tGb3J3YXJk
Q2FjaGU6OnJlbW92ZSBpdGVtOiAlcywgc2l6ZTogJXUgLyAldSIsIGl0ZW0uaWRlbnRpZmllcigp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgpLCBtYXhTaXplKCkpOworCit9CisK
K3ZvaWQgQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUoUHJ1bmluZ1JlYXNvbiBwcnVuaW5nUmVhc29u
KQoreworICAgIHdoaWxlIChwYWdlQ291bnQoKSA+IG1heFNpemUoKSkgeworICAgICAgICBhdXRv
IG9sZGVzdEl0ZW0gPSBtX2l0ZW1zLnRha2VGaXJzdCgpOworICAgICAgICBvbGRlc3RJdGVtLT5z
ZXRDYWNoZWRQYWdlKG51bGxwdHIpOworICAgICAgICBvbGRlc3RJdGVtLT5tX3BydW5pbmdSZWFz
b24gPSBwcnVuaW5nUmVhc29uOworICAgICAgICBSRUxFQVNFX0xPRyhCYWNrRm9yd2FyZENhY2hl
LCAiQmFja0ZvcndhcmRDYWNoZTo6cHJ1bmUgcmVtb3ZpbmcgaXRlbTogJXMsIHNpemU6ICV1IC8g
JXUiLCBvbGRlc3RJdGVtLT5pZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFn
ZUNvdW50KCksIG1heFNpemUoKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDYWNoZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFl
NGU2MGZhNDZlZWY2ZjYyNGExNDBmMGUyY2UxY2U0M2IwM2NlMTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ2FjaGUuaApAQCAtMCwwICsxLDkw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFBhZ2U7
CitjbGFzcyBGcmFtZTsKK2NsYXNzIFBhZ2U7CisKK2VudW0gY2xhc3MgUHJ1bmluZ1JlYXNvbiB7
IE5vbmUsIFByb2Nlc3NTdXNwZW5kZWQsIE1lbW9yeVByZXNzdXJlLCBSZWFjaGVkTWF4U2l6ZSB9
OworCitjbGFzcyBCYWNrRm9yd2FyZENhY2hlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShC
YWNrRm9yd2FyZENhY2hlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICAvLyBGdW5jdGlvbiB0byBvYnRhaW4gdGhlIGdsb2JhbCBiYWNrL2ZvcndhcmQgY2FjaGUu
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEJhY2tGb3J3YXJkQ2FjaGUmIHNpbmdsZXRvbigp
OworCisgICAgYm9vbCBjYW5DYWNoZShQYWdlJikgY29uc3Q7CisKKyAgICAvLyBVc2VkIHdoZW4g
bWVtb3J5IGlzIGxvdyB0byBwcnVuZSBzb21lIGNhY2hlZCBwYWdlcy4KKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHBydW5lVG9TaXplTm93KHVuc2lnbmVkIG1heFNpemUsIFBydW5pbmdSZWFzb24p
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWF4U2l6ZSh1bnNpZ25lZCk7IC8vIG51bWJl
ciBvZiBwYWdlcyB0byBjYWNoZS4KKyAgICB1bnNpZ25lZCBtYXhTaXplKCkgY29uc3QgeyByZXR1
cm4gbV9tYXhTaXplOyB9CisKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFkZElmQ2FjaGVhYmxl
KEhpc3RvcnlJdGVtJiwgUGFnZSopOyAvLyBQcnVuZXMgaWYgbWF4U2l6ZSgpIGlzIGV4Y2VlZGVk
LgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlKEhpc3RvcnlJdGVtJik7CisgICAgQ2Fj
aGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVtJiwgUGFnZSopOworICAgIHN0ZDo6dW5pcXVlX3B0cjxD
YWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJdGVtJiwgUGFnZSopOworCisgICAgdm9pZCByZW1vdmVB
bGxJdGVtc0ZvclBhZ2UoUGFnZSYpOworCisgICAgdW5zaWduZWQgcGFnZUNvdW50KCkgY29uc3Qg
eyByZXR1cm4gbV9pdGVtcy5zaXplKCk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBm
cmFtZUNvdW50KCkgY29uc3Q7CisKKyAgICB2b2lkIG1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNj
YWxlQ2hhbmdlZChQYWdlJik7CisgICAgdm9pZCBtYXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFu
Z2VkKFBhZ2UmKTsKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgdm9pZCBtYXJrUGFnZXNG
b3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBC
YWNrRm9yd2FyZENhY2hlKCk7CisgICAgfkJhY2tGb3J3YXJkQ2FjaGUoKSA9IGRlbGV0ZTsgLy8g
TWFrZSBzdXJlIG5vYm9keSBhY2NpZGVudGFsbHkgY2FsbHMgZGVsZXRlIC0tIFdlYkNvcmUgZG9l
cyBub3QgZGVsZXRlIHNpbmdsZXRvbnMuCisKKyAgICBzdGF0aWMgYm9vbCBjYW5DYWNoZVBhZ2VD
b250YWluaW5nVGhpc0ZyYW1lKEZyYW1lJik7CisKKyAgICB2b2lkIHBydW5lKFBydW5pbmdSZWFz
b24pOworICAgIHZvaWQgZHVtcCgpIGNvbnN0OworCisgICAgTGlzdEhhc2hTZXQ8UmVmUHRyPEhp
c3RvcnlJdGVtPj4gbV9pdGVtczsKKyAgICB1bnNpZ25lZCBtX21heFNpemUgezB9OworCisjaWYg
IUFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wgbV9pc0luUmVtb3ZlQWxsSXRlbXNGb3JQYWdlIHsg
ZmFsc2UgfTsKKyNlbmRpZgorCisgICAgZnJpZW5kIGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95ZWQ8
QmFja0ZvcndhcmRDYWNoZT47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCmluZGV4IDhmMWU0ZGEwMzZhNDJiNGI1ZWY3MGFm
NWViZDEzYjAzODZlOGYyN2YuLjg3YWIxNzMxM2QzNjJkM2FlZDkwMzU4MTM2YjhjNzMyOTc0NjI5
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCkBAIC0yNiw2ICsyNiw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRnJhbWUuaCIKIAorI2lu
Y2x1ZGUgIkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJDU1NBbmltYXRpb25Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkRnJhbWVQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJD
YWNoZWRQYWdlLmgiCkBAIC00MSw3ICs0Miw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIk5hdmlnYXRpb25EaXNhYmxlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRl
ICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTVkdE
b2N1bWVudEV4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0x
MDYsMTMgKzEwNiwxMyBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAg
IGlmIChtX2RvY3VtZW50LT5zdmdFeHRlbnNpb25zKCkpCiAgICAgICAgICAgICBtX2RvY3VtZW50
LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCkudW5wYXVzZUFuaW1hdGlvbnMoKTsKIAotICAgICAgICBt
X2RvY3VtZW50LT5yZXN1bWUoUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKTsKKyAgICAg
ICAgbV9kb2N1bWVudC0+cmVzdW1lKFJlYXNvbkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2Fj
aGUpOwogCiAgICAgICAgIC8vIEl0IGlzIG5lY2Vzc2FyeSB0byB1cGRhdGUgYW55IHBsYXRmb3Jt
IHNjcmlwdCBvYmplY3RzIGFmdGVyIHJlc3RvcmluZyB0aGUKICAgICAgICAgLy8gY2FjaGVkIHBh
Z2UuCiAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS51cGRhdGVQbGF0Zm9ybVNjcmlwdE9iamVjdHMo
KTsKIAotICAgICAgICBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdl
Q2FjaGUoKTsKKyAgICAgICAgZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmRpZFJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgICAgIHBydW5lRGV0YWNoZWRDaGlsZEZyYW1lcygp
OwogCkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQog
ICAgIH0KICNlbmRpZgogCi0gICAgZnJhbWUtPnZpZXcoKS0+ZGlkUmVzdG9yZUZyb21QYWdlQ2Fj
aGUoKTsKKyAgICBmcmFtZS0+dmlldygpLT5kaWRSZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUo
KTsKIH0KIAogQ2FjaGVkRnJhbWU6OkNhY2hlZEZyYW1lKEZyYW1lJiBmcmFtZSkKQEAgLTE1MCw3
ICsxNTAsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIEFT
U0VSVChtX2RvY3VtZW50KTsKICAgICBBU1NFUlQobV9kb2N1bWVudExvYWRlcik7CiAgICAgQVNT
RVJUKG1fdmlldyk7Ci0gICAgQVNTRVJUKG1fZG9jdW1lbnQtPnBhZ2VDYWNoZVN0YXRlKCkgPT0g
RG9jdW1lbnQ6OkluUGFnZUNhY2hlKTsKKyAgICBBU1NFUlQobV9kb2N1bWVudC0+YmFja0Zvcndh
cmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZSk7CiAKICAgICBS
RUxFQVNFX0FTU0VSVChtX2RvY3VtZW50LT5kb21XaW5kb3coKSk7CiAgICAgUkVMRUFTRV9BU1NF
UlQobV9kb2N1bWVudC0+ZnJhbWUoKSk7CkBAIC0xNjksMTQgKzE2OSwxNCBAQCBDYWNoZWRGcmFt
ZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIFJFTEVBU0VfQVNTRVJUKG1fZG9jdW1l
bnQtPmRvbVdpbmRvdygpLT5mcmFtZSgpKTsKIAogICAgIC8vIEFjdGl2ZSBET00gb2JqZWN0cyBt
dXN0IGJlIHN1c3BlbmRlZCBiZWZvcmUgd2UgY2FjaGUgdGhlIGZyYW1lIHNjcmlwdCBkYXRhLgot
ICAgIG1fZG9jdW1lbnQtPnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKTsK
KyAgICBtX2RvY3VtZW50LT5zdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJk
Q2FjaGUpOwogCiAgICAgbV9jYWNoZWRGcmFtZVNjcmlwdERhdGEgPSBtYWtlVW5pcXVlPFNjcmlw
dENhY2hlZEZyYW1lRGF0YT4oZnJhbWUpOwogCi0gICAgbV9kb2N1bWVudC0+ZG9tV2luZG93KCkt
PnN1c3BlbmRGb3JQYWdlQ2FjaGUoKTsKKyAgICBtX2RvY3VtZW50LT5kb21XaW5kb3coKS0+c3Vz
cGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKIAogICAgIC8vIENsZWFyIEZyYW1lVmlldyB0byBy
ZXNldCBmbGFncyBzdWNoIGFzICdmaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRDYWxsYmFja1Bl
bmRpbmcnIHNvIHRoYXQgdGhlCi0gICAgLy8gJ0RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dCcgY2FsbGJhY2sgZ2V0cyBjYWxsZWQgYWdhaW5zdCB3aGVuIHJlc3RvcmluZyBmcm9tIFBhZ2VD
YWNoZS4KKyAgICAvLyAnRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0JyBjYWxsYmFjayBn
ZXRzIGNhbGxlZCBhZ2FpbnN0IHdoZW4gcmVzdG9yaW5nIGZyb20gdGhlIEJhY2tGb3J3YXJkQ2Fj
aGUuCiAgICAgbV92aWV3LT5yZXNldExheW91dE1pbGVzdG9uZXMoKTsKIAogICAgIC8vIFRoZSBt
YWluIGZyYW1lIGlzIHJldXNlZCBmb3IgdGhlIG5hdmlnYXRpb24gYW5kIHRoZSBvcGVuZXIgbGlu
ayB0byBpdHMgc2hvdWxkIHRodXMgcGVyc2lzdC4KQEAgLTE4NSwxMyArMTg1LDEzIEBAIENhY2hl
ZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAKICAgICBmcmFtZS5sb2FkZXIoKS5j
bGllbnQoKS5zYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRGcmFtZSh0aGlzKTsKIAotICAgIC8vIGRv
Y3VtZW50V2lsbFN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjYW4gc2V0IHVwIGEgbGF5b3V0IHRpbWVy
IG9uIHRoZSBGcmFtZVZpZXcsIHNvIGNsZWFyIHRpbWVycyBhZnRlciB0aGF0LgorICAgIC8vIGRv
Y3VtZW50V2lsbFN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkgY2FuIHNldCB1cCBhIGxheW91
dCB0aW1lciBvbiB0aGUgRnJhbWVWaWV3LCBzbyBjbGVhciB0aW1lcnMgYWZ0ZXIgdGhhdC4KICAg
ICBmcmFtZS5jbGVhclRpbWVycygpOwogCiAgICAgLy8gRGVjb25zdHJ1Y3QgdGhlIEZyYW1lVHJl
ZSwgdG8gcmVzdG9yZSBpdCBsYXRlci4KICAgICAvLyBXZSBkbyB0aGlzIGZvciB0d28gcmVhc29u
czoKICAgICAvLyAxIC0gV2UgcmV1c2UgdGhlIG1haW4gZnJhbWUsIHNvIHdoZW4gaXQgbmF2aWdh
dGVzIHRvIGEgbmV3IHBhZ2UgbG9hZCBpdCBuZWVkcyB0byBzdGFydCB3aXRoIGEgYmxhbmsgRnJh
bWVUcmVlLgotICAgIC8vIDIgLSBJdCdzIG11Y2ggZWFzaWVyIHRvIGRlc3Ryb3kgYSBDYWNoZWRG
cmFtZSB3aGlsZSBpdCByZXNpZGVzIGluIHRoZSBQYWdlQ2FjaGUgaWYgaXQgaXMgZGlzY29ubmVj
dGVkIGZyb20gaXRzIHBhcmVudC4KKyAgICAvLyAyIC0gSXQncyBtdWNoIGVhc2llciB0byBkZXN0
cm95IGEgQ2FjaGVkRnJhbWUgd2hpbGUgaXQgcmVzaWRlcyBpbiB0aGUgQmFja0ZvcndhcmRDYWNo
ZSBpZiBpdCBpcyBkaXNjb25uZWN0ZWQgZnJvbSBpdHMgcGFyZW50LgogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNpemUoKTsgKytpKQogICAgICAgICBmcmFtZS50
cmVlKCkucmVtb3ZlQ2hpbGQobV9jaGlsZEZyYW1lc1tpXS0+dmlldygpLT5mcmFtZSgpKTsKIApA
QCAtMjM1LDExICsyMzUsMTEgQEAgdm9pZCBDYWNoZWRGcmFtZTo6Y2xlYXIoKQogICAgIGlmICgh
bV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gY2xlYXIoKSBzaG91bGQgb25s
eSBiZSBjYWxsZWQgZm9yIEZyYW1lcyByZXByZXNlbnRpbmcgZG9jdW1lbnRzIHRoYXQgYXJlIG5v
IGxvbmdlciBpbiB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBjbGVhcigpIHNob3VsZCBvbmx5IGJl
IGNhbGxlZCBmb3IgRnJhbWVzIHJlcHJlc2VudGluZyBkb2N1bWVudHMgdGhhdCBhcmUgbm8gbG9u
Z2VyIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgLy8gVGhpcyBtZWFucyB0aGUgQ2Fj
aGVkRnJhbWUgaGFzIGJlZW46CiAgICAgLy8gMSAtIFN1Y2Nlc3NmdWxseSByZXN0b3JlKCknZCBi
eSBnb2luZyBiYWNrL2ZvcndhcmQuCi0gICAgLy8gMiAtIGRlc3Ryb3koKSdlZCBiZWNhdXNlIHRo
ZSBQYWdlQ2FjaGUgaXMgcHJ1bmluZyBvciB0aGUgV2ViVmlldyB3YXMgY2xvc2VkLgotICAgIEFT
U0VSVChtX2RvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VD
YWNoZSk7CisgICAgLy8gMiAtIGRlc3Ryb3koKSdlZCBiZWNhdXNlIHRoZSBCYWNrRm9yd2FyZENh
Y2hlIGlzIHBydW5pbmcgb3IgdGhlIFdlYlZpZXcgd2FzIGNsb3NlZC4KKyAgICBBU1NFUlQobV9k
b2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zv
cndhcmRDYWNoZSk7CiAgICAgQVNTRVJUKG1fdmlldyk7CiAgICAgQVNTRVJUKCFtX2RvY3VtZW50
LT5mcmFtZSgpIHx8IG1fZG9jdW1lbnQtPmZyYW1lKCkgPT0gJm1fdmlldy0+ZnJhbWUoKSk7CiAK
QEAgLTI1OSw4ICsyNTksOCBAQCB2b2lkIENhY2hlZEZyYW1lOjpkZXN0cm95KCkKICAgICBpZiAo
IW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICAvLyBPbmx5IENhY2hlZEZy
YW1lcyB0aGF0IGFyZSBzdGlsbCBpbiB0aGUgUGFnZUNhY2hlIHNob3VsZCBiZSBkZXN0cm95ZWQg
aW4gdGhpcyBtYW5uZXIKLSAgICBBU1NFUlQobV9kb2N1bWVudC0+cGFnZUNhY2hlU3RhdGUoKSA9
PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpOworICAgIC8vIE9ubHkgQ2FjaGVkRnJhbWVzIHRoYXQg
YXJlIHN0aWxsIGluIHRoZSBCYWNrRm9yd2FyZENhY2hlIHNob3VsZCBiZSBkZXN0cm95ZWQgaW4g
dGhpcyBtYW5uZXIKKyAgICBBU1NFUlQobV9kb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRl
KCkgPT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgQVNTRVJUKG1fdmlldyk7
CiAgICAgQVNTRVJUKCFtX2RvY3VtZW50LT5mcmFtZSgpKTsKIApAQCAtMjgxLDExICsyODEsMTEg
QEAgdm9pZCBDYWNoZWRGcmFtZTo6ZGVzdHJveSgpCiAKICAgICBtX3ZpZXctPmZyYW1lKCkuYW5p
bWF0aW9uKCkuZGV0YWNoRnJvbURvY3VtZW50KG1fZG9jdW1lbnQuZ2V0KCkpOwogCi0gICAgLy8g
RklYTUU6IFdoeSBkbyB3ZSBuZWVkIHRvIGNhbGwgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMgaGVy
ZT8gV2hlbiB0aGUgZG9jdW1lbnQgaXMgaW4gcGFnZSBjYWNoZSwgdGhpcyBtZXRob2Qgd29uJ3Qg
d29yaworICAgIC8vIEZJWE1FOiBXaHkgZG8gd2UgbmVlZCB0byBjYWxsIHJlbW92ZUFsbEV2ZW50
TGlzdGVuZXJzIGhlcmU/IFdoZW4gdGhlIGRvY3VtZW50IGlzIGluIGJhY2svZm9yd2FyZCBjYWNo
ZSwgdGhpcyBtZXRob2Qgd29uJ3Qgd29yawogICAgIC8vIGZ1bGx5IGFueXdheSwgYmVjYXVzZSB0
aGUgZG9jdW1lbnQgd29uJ3QgYmUgYWJsZSB0byBhY2Nlc3MgaXRzIERPTVdpbmRvdyBvYmplY3Qg
KGR1ZSB0byBiZWluZyBmcmFtZWxlc3MpLgogICAgIG1fZG9jdW1lbnQtPnJlbW92ZUFsbEV2ZW50
TGlzdGVuZXJzKCk7CiAKLSAgICBtX2RvY3VtZW50LT5zZXRQYWdlQ2FjaGVTdGF0ZShEb2N1bWVu
dDo6Tm90SW5QYWdlQ2FjaGUpOworICAgIG1fZG9jdW1lbnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVT
dGF0ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsKICAgICBtX2RvY3VtZW50LT5w
cmVwYXJlRm9yRGVzdHJ1Y3Rpb24oKTsKIAogICAgIGNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lUGxhdGZvcm1EYXRhLmgKaW5kZXggZjk3M2JhNjRjZDQ2
NTE4ZGRmY2JkZDY5NDljMzc3YzhkMWY5ZjM1My4uZWE4YzI2MTg3NDhkMWMwMzhhYzU3NGU5YjFk
MzMwNWZmNWZiN2NmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRG
cmFtZVBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJh
bWVQbGF0Zm9ybURhdGEuaApAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIGdpdmUgZWFjaCBwbGF0Zm9ybSBh
IHZlc3NlbCB0byBzdG9yZSBwbGF0Zm9ybSBkYXRhIHdoZW4gYSBwYWdlCi0vLyBnb2VzIGludG8g
dGhlIEJhY2svRm9yd2FyZCBwYWdlIGNhY2hlLCBhbmQgcGVyZm9ybSBzb21lIGFjdGlvbiB3aXRo
IHRoYXQgZGF0YSB3aGVuIHRoZSBwYWdlIGNvbWVzIG91dC4gIAorLy8gZ29lcyBpbnRvIHRoZSBi
YWNrL2ZvcndhcmQgY2FjaGUsIGFuZCBwZXJmb3JtIHNvbWUgYWN0aW9uIHdpdGggdGhhdCBkYXRh
IHdoZW4gdGhlIHBhZ2UgY29tZXMgb3V0LgogLy8gRWFjaCBwbGF0Zm9ybSBzaG91bGQgc3ViY2xh
c3MgdGhpcyBjbGFzcyBhcyBuZWNjZXNzYXJ5CiAKIGNsYXNzIENhY2hlZEZyYW1lUGxhdGZvcm1E
YXRhIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKaW5kZXggYTc5MjM0ZGIy
YWRiZGVhZmI2NjBkMzdlMjc0NTIyMWY0YmVkZTdlNC4uZDUzNzdhYjBmN2NjMWYzZTQ3MTk3NWMy
MDgwMGJlZTExODUyMTJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0
b3J5SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAK
QEAgLTI2LDEwICsyNiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhpc3Rv
cnlJdGVtLmgiCiAKKyNpbmNsdWRlICJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUGFnZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiS2V5ZWRDb2Rpbmcu
aCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZm
ZXIuaCIKQEAgLTE3NCw5ICsxNzQsOSBAQCBib29sIEhpc3RvcnlJdGVtOjpoYXNDYWNoZWRQYWdl
RXhwaXJlZCgpIGNvbnN0CiAKIHZvaWQgSGlzdG9yeUl0ZW06OnNldENhY2hlZFBhZ2Uoc3RkOjp1
bmlxdWVfcHRyPENhY2hlZFBhZ2U+JiYgY2FjaGVkUGFnZSkKIHsKLSAgICBib29sIHdhc0luUGFn
ZUNhY2hlID0gaXNJblBhZ2VDYWNoZSgpOworICAgIGJvb2wgd2FzSW5CYWNrRm9yd2FyZENhY2hl
ID0gaXNJbkJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICBtX2NhY2hlZFBhZ2UgPSBXVEZNb3ZlKGNh
Y2hlZFBhZ2UpOwotICAgIGlmICh3YXNJblBhZ2VDYWNoZSAhPSBpc0luUGFnZUNhY2hlKCkpCisg
ICAgaWYgKHdhc0luQmFja0ZvcndhcmRDYWNoZSAhPSBpc0luQmFja0ZvcndhcmRDYWNoZSgpKQog
ICAgICAgICBub3RpZnlDaGFuZ2VkKCk7CiB9CiAKQEAgLTIyMiw3ICsyMjIsNyBAQCB2b2lkIEhp
c3RvcnlJdGVtOjpzZXRVUkxTdHJpbmcoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAKIHZvaWQg
SGlzdG9yeUl0ZW06OnNldFVSTChjb25zdCBVUkwmIHVybCkKIHsKLSAgICBQYWdlQ2FjaGU6OnNp
bmdsZXRvbigpLnJlbW92ZSgqdGhpcyk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9u
KCkucmVtb3ZlKCp0aGlzKTsKICAgICBzZXRVUkxTdHJpbmcodXJsLnN0cmluZygpKTsKICAgICBj
bGVhckRvY3VtZW50U3RhdGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaApp
bmRleCBmODU1MDhmMTIzZGFlMmNkZjliZmJkNTAzZmVlZTNlOTE2NDc5NDliLi41MmNhYjgzNDQw
MzQ5NDczNzRhYjBhZDA0MmUyNzRkOGQyMjc4NWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0
b3J5SXRlbS5oCkBAIC01OSw3ICs1OSw3IEBAIGVudW0gY2xhc3MgUHJ1bmluZ1JlYXNvbjsKIFdF
QkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkICgqbm90aWZ5SGlzdG9yeUl0ZW1DaGFuZ2VkKShIaXN0
b3J5SXRlbSYpOwogCiBjbGFzcyBIaXN0b3J5SXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPEhpc3Rv
cnlJdGVtPiB7Ci0gICAgZnJpZW5kIGNsYXNzIFBhZ2VDYWNoZTsKKyAgICBmcmllbmQgY2xhc3Mg
QmFja0ZvcndhcmRDYWNoZTsKIAogcHVibGljOiAKICAgICBzdGF0aWMgUmVmPEhpc3RvcnlJdGVt
PiBjcmVhdGUoKQpAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBjb25z
dCBTdHJpbmcmIHRpdGxlKCkgY29uc3Q7CiAgICAgCi0gICAgYm9vbCBpc0luUGFnZUNhY2hlKCkg
Y29uc3QgeyByZXR1cm4gbV9jYWNoZWRQYWdlLmdldCgpOyB9CisgICAgYm9vbCBpc0luQmFja0Zv
cndhcmRDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkUGFnZS5nZXQoKTsgfQogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgaGFzQ2FjaGVkUGFnZUV4cGlyZWQoKSBjb25zdDsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0QWx0ZXJuYXRlVGl0bGUoY29uc3QgU3RyaW5nJik7CkBAIC0y
NjYsNyArMjY2LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Rm9ybURhdGE+IG1fZm9ybURhdGE7
CiAgICAgU3RyaW5nIG1fZm9ybUNvbnRlbnRUeXBlOwogCi0gICAgLy8gUGFnZUNhY2hlIGNvbnRy
b2xzIHRoZXNlIGZpZWxkcy4KKyAgICAvLyBCYWNrRm9yd2FyZENhY2hlIGNvbnRyb2xzIHRoZXNl
IGZpZWxkcy4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gbV9jYWNoZWRQYWdlOwog
ICAgIFBydW5pbmdSZWFzb24gbV9wcnVuaW5nUmVhc29uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1Bh
Z2VDYWNoZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkMWYzODIxMGZmY2Ez
MTUzMThlNzE3ZDYwNTQwNTVhNmM1MGJmMjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNTU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcs
IDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlBhZ2VDYWNoZS5oIgotCi0jaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIK
LSNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRQYWdl
LmgiCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJv
bGxlci5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgotI2luY2x1
ZGUgIkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCi0jaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudExvYWRl
ci5oIgotI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0j
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgot
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkhpc3RvcnlDb250cm9sbGVyLmgiCi0j
aW5jbHVkZSAiSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmgiCi0jaW5j
bHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTY3JpcHREaXNh
bGxvd2VkU2NvcGUuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlN1YmZyYW1l
TG9hZGVyLmgiCi0jaW5jbHVkZSA8cGFsL0xvZ2dpbmcuaD4KLSNpbmNsdWRlIDx3dGYvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5j
bHVkZSA8d3RmL1NldEZvclNjb3BlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotI2RlZmluZSBQQ0xPRyguLi4pIExPRyhCYWNrRm9yd2FyZENhY2hlLCAiJSpzJXMi
LCBpbmRlbnRMZXZlbCo0LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgpLmRhdGEo
KSkKLQotc3RhdGljIGlubGluZSB2b2lkIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVz
c2FnZShEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgY2xpZW50LCBjb25zdCBTdHJpbmcmIHJlYXNv
bikKLXsKLSAgICBjbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjpwYWdlQ2FjaGVGYWlsdXJlS2V5KCksIHJlYXNvbiwgU2hvdWxkU2FtcGxlOjpObyk7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3Nh
Z2UoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCi17Ci0gICAgaWYgKCFwYWdlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3Nh
Z2UocGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKSwgcmVhc29uKTsKLX0KLQotc3RhdGlj
IGJvb2wgY2FuQ2FjaGVGcmFtZShGcmFtZSYgZnJhbWUsIERpYWdub3N0aWNMb2dnaW5nQ2xpZW50
JiBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgdW5zaWduZWQgaW5kZW50TGV2ZWwpCi17Ci0gICAg
UENMT0coIistLS0iKTsKLSAgICBGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIgPSBmcmFtZS5sb2Fk
ZXIoKTsKLQotICAgIC8vIFByZXZlbnQgcGFnZSBjYWNoaW5nIGlmIGEgc3ViZnJhbWUgaXMgc3Rp
bGwgaW4gcHJvdmlzaW9uYWwgbG9hZCBzdGFnZS4KLSAgICAvLyBXZSBvbmx5IGRvIHRoaXMgY2hl
Y2sgZm9yIHN1YmZyYW1lcyBiZWNhdXNlIHRoZSBtYWluIGZyYW1lIGlzIHJldXNlZCB3aGVuIG5h
dmlnYXRpbmcgdG8gYSBuZXcgcGFnZS4KLSAgICBpZiAoIWZyYW1lLmlzTWFpbkZyYW1lKCkgJiYg
ZnJhbWVMb2FkZXIuc3RhdGUoKSA9PSBGcmFtZVN0YXRlUHJvdmlzaW9uYWwpIHsKLSAgICAgICAg
UENMT0coIiAgIC1GcmFtZSBpcyBpbiBwcm92aXNpb25hbCBsb2FkIHN0YWdlIik7Ci0gICAgICAg
IGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcm92aXNpb25hbExvYWRLZXkoKSk7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSAm
JiBmcmFtZUxvYWRlci5zdGF0ZU1hY2hpbmUoKS5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1
bWVudCgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtTWFpbkZyYW1lIGlzIGRpc3BsYXlpbmcgaW5p
dGlhbCBlbXB0eSBkb2N1bWVudCIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0g
ICAgaWYgKCFmcmFtZS5kb2N1bWVudCgpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaGFz
IG5vIGRvY3VtZW50Iik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAo
IWZyYW1lLmRvY3VtZW50KCktPmZyYW1lKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVu
dCBpcyBkZXRhY2hlZCBmcm9tIGZyYW1lIik7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgRG9jdW1lbnRMb2FkZXIqIGRv
Y3VtZW50TG9hZGVyID0gZnJhbWVMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKTsKLSAgICBpZiAoIWRv
Y3VtZW50TG9hZGVyKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtVGhlcmUgaXMgbm8gRG9jdW1lbnRM
b2FkZXIgb2JqZWN0Iik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVz
c2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpub0Rv
Y3VtZW50TG9hZGVyS2V5KCkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAg
VVJMIGN1cnJlbnRVUkwgPSBkb2N1bWVudExvYWRlci0+dXJsKCk7Ci0gICAgVVJMIG5ld1VSTCA9
IGZyYW1lTG9hZGVyLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSA/IGZyYW1lTG9hZGVyLnBy
b3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+dXJsKCkgOiBVUkwoKTsKLSAgICBpZiAoIW5ld1VS
TC5pc0VtcHR5KCkpCi0gICAgICAgIFBDTE9HKCIgRGV0ZXJtaW5pbmcgaWYgZnJhbWUgY2FuIGJl
IGNhY2hlZCBuYXZpZ2F0aW5nIGZyb20gKCIsIGN1cnJlbnRVUkwuc3RyaW5nKCksICIpIHRvICgi
LCBuZXdVUkwuc3RyaW5nKCksICIpOiIpOwotICAgIGVsc2UKLSAgICAgICAgUENMT0coIiBEZXRl
cm1pbmluZyBpZiBzdWJmcmFtZSB3aXRoIFVSTCAoIiwgY3VycmVudFVSTC5zdHJpbmcoKSwgIikg
Y2FuIGJlIGNhY2hlZDoiKTsKLSAgICAgCi0gICAgYm9vbCBpc0NhY2hlYWJsZSA9IHRydWU7Ci0g
ICAgLy8gRG8gbm90IGNhY2hlIGVycm9yIHBhZ2VzICh0aGVzZSBjYW4gYmUgcmVjb2duaXplZCBh
cyBwYWdlcyB3aXRoIHN1YnN0aXR1dGUgZGF0YSBvciB1bnJlYWNoYWJsZSBVUkxzKS4KLSAgICBp
ZiAoZG9jdW1lbnRMb2FkZXItPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxpZCgpICYmICFkb2N1bWVu
dExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5mYWlsaW5nVVJMKCkuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgYW4gZXJyb3IgcGFnZSIpOwotICAgICAgICBsb2dQYWdl
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERp
YWdub3N0aWNMb2dnaW5nS2V5czo6aXNFcnJvclBhZ2VLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVh
YmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChmcmFtZUxvYWRlci5zdWJmcmFtZUxvYWRlcigp
LmNvbnRhaW5zUGx1Z2lucygpICYmICFmcmFtZS5wYWdlKCktPnNldHRpbmdzKCkucGFnZUNhY2hl
U3VwcG9ydHNQbHVnaW5zKCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1GcmFtZSBjb250YWlucyBw
bHVnaW5zIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShk
aWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpoYXNQbHVnaW5z
S2V5KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAgIH0KLSAgICBpZiAoZnJh
bWUuaXNNYWluRnJhbWUoKSAmJiAhZnJhbWVMb2FkZXIuaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCkp
IHsKLSAgICAgICAgUENMT0coIiAgIC1NYWluIGZyYW1lIGhhcyBubyBjdXJyZW50IGhpc3Rvcnkg
aXRlbSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9DdXJyZW50SGlz
dG9yeUl0ZW1LZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAg
IGlmIChmcmFtZUxvYWRlci5xdWlja1JlZGlyZWN0Q29taW5nKCkpIHsKLSAgICAgICAgUENMT0co
IiAgIC1RdWljayByZWRpcmVjdCBpcyBjb21pbmciKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFp
bHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OnF1aXJrUmVkaXJlY3RDb21pbmdLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVh
YmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChkb2N1bWVudExvYWRlci0+aXNMb2FkaW5nKCkp
IHsKLSAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudExvYWRlciBpcyBzdGlsbCBsb2FkaW5nIik7
Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppc0xvYWRpbmdLZXkoKSk7Ci0g
ICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChkb2N1bWVudExvYWRl
ci0+aXNTdG9wcGluZygpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtRG9jdW1lbnRMb2FkZXIgaXMg
aW4gdGhlIG1pZGRsZSBvZiBzdG9wcGluZyIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJl
RGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6ZG9jdW1lbnRMb2FkZXJTdG9wcGluZ0tleSgpKTsKLSAgICAgICAgaXNDYWNoZWFi
bGUgPSBmYWxzZTsKLSAgICB9Ci0KLSAgICBWZWN0b3I8QWN0aXZlRE9NT2JqZWN0Kj4gdW5zdXNw
ZW5kYWJsZU9iamVjdHM7Ci0gICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgIWZyYW1lLmRvY3Vt
ZW50KCktPmNhblN1c3BlbmRBY3RpdmVET01PYmplY3RzRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCZ1
bnN1c3BlbmRhYmxlT2JqZWN0cykpIHsKLSAgICAgICAgUENMT0coIiAgIC1UaGUgZG9jdW1lbnQg
Y2Fubm90IHN1c3BlbmQgaXRzIGFjdGl2ZSBET00gT2JqZWN0cyIpOwotICAgICAgICBmb3IgKGF1
dG8qIGFjdGl2ZURPTU9iamVjdCA6IHVuc3VzcGVuZGFibGVPYmplY3RzKSB7Ci0gICAgICAgICAg
ICBQQ0xPRygiICAgIC0gVW5zdXNwZW5kYWJsZTogIiwgYWN0aXZlRE9NT2JqZWN0LT5hY3RpdmVE
T01PYmplY3ROYW1lKCkpOwotICAgICAgICAgICAgZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9n
RGlhZ25vc3RpY01lc3NhZ2UoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bnN1c3BlbmRhYmxlRE9N
T2JqZWN0S2V5KCksIGFjdGl2ZURPTU9iamVjdC0+YWN0aXZlRE9NT2JqZWN0TmFtZSgpLCBTaG91
bGRTYW1wbGU6Ok5vKTsKLSAgICAgICAgICAgIFVOVVNFRF9QQVJBTShhY3RpdmVET01PYmplY3Qp
OwotICAgICAgICB9Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2Fn
ZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5ub3RT
dXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxz
ZTsKLSAgICB9Ci0KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGludmVzdGlnYXRpbmcgY2FjaGlu
ZyBmcmFtZXMgdGhhdCBoYXZlIGFuIGFzc29jaWF0ZWQKLSAgICAvLyBhcHBsaWNhdGlvbiBjYWNo
ZS4gPHJkYXI6Ly9wcm9ibGVtLzU5MTc4OTk+IHRyYWNrcyB0aGF0IHdvcmsuCi0gICAgaWYgKCFk
b2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5jYW5DYWNoZUluUGFnZUNhY2hl
KCkpIHsKLSAgICAgICAgUENMT0coIiAgIC1UaGUgRG9jdW1lbnRMb2FkZXIgdXNlcyBhbiBhcHBs
aWNhdGlvbiBjYWNoZSIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01l
c3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6YXBw
bGljYXRpb25DYWNoZUtleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9
Ci0gICAgaWYgKCFmcmFtZUxvYWRlci5jbGllbnQoKS5jYW5DYWNoZVBhZ2UoKSkgewotICAgICAg
ICBQQ0xPRygiICAgLVRoZSBjbGllbnQgc2F5cyB0aGlzIGZyYW1lIGNhbm5vdCBiZSBjYWNoZWQi
KTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0
aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmRlbmllZEJ5Q2xpZW50S2V5
KCkpOwotICAgICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAgIH0KLQotICAgIGZvciAoRnJh
bWUqIGNoaWxkID0gZnJhbWUudHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hp
bGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICghY2FuQ2FjaGVGcmFtZSgq
Y2hpbGQsIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBpbmRlbnRMZXZlbCArIDEpKQotICAgICAg
ICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgUENMT0coaXNDYWNo
ZWFibGUgPyAiIEZyYW1lIENBTiBiZSBjYWNoZWQiIDogIiBGcmFtZSBDQU5OT1QgYmUgY2FjaGVk
Iik7Ci0gICAgUENMT0coIistLS0iKTsKLSAgICAKLSAgICByZXR1cm4gaXNDYWNoZWFibGU7Ci19
Ci0KLXN0YXRpYyBib29sIGNhbkNhY2hlUGFnZShQYWdlJiBwYWdlKQotewotICAgIFJFTEVBU0Vf
QVNTRVJUKCFwYWdlLmlzUmVzdG9yaW5nQ2FjaGVkUGFnZSgpKTsKLQotICAgIHVuc2lnbmVkIGlu
ZGVudExldmVsID0gMDsKLSAgICBQQ0xPRygiLS0tLS0tLS1cbiBEZXRlcm1pbmluZyBpZiBwYWdl
IGNhbiBiZSBjYWNoZWQ6Iik7Ci0KLSAgICBEaWFnbm9zdGljTG9nZ2luZ0NsaWVudCYgZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQgPSBwYWdlLmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCk7Ci0gICAg
Ym9vbCBpc0NhY2hlYWJsZSA9IGNhbkNhY2hlRnJhbWUocGFnZS5tYWluRnJhbWUoKSwgZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQsIGluZGVudExldmVsICsgMSk7Ci0KLSAgICBpZiAoIXBhZ2Uuc2V0
dGluZ3MoKS51c2VzUGFnZUNhY2hlKCkgfHwgcGFnZS5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVk
QnlXZWJJbnNwZWN0b3IoKSkgewotICAgICAgICBQQ0xPRygiICAgLVBhZ2Ugc2V0dGluZ3Mgc2F5
cyBiL2YgY2FjaGUgZGlzYWJsZWQiKTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdu
b3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LCBEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OmlzRGlzYWJsZWRLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAg
fQotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmICFQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyOjppc0FjdGl2ZUF0KCZwYWdlKSkgewot
ICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcgRGV2aWNlTW90aW9uIik7Ci0gICAgICAg
IGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpkZXZpY2VNb3Rpb25LZXkoKSk7Ci0gICAgICAg
IGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmlzQWN0aXZlQXQoJnBhZ2UpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtUGFnZSBp
cyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJl
RGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNMb2dn
aW5nS2V5czo6ZGV2aWNlT3JpZW50YXRpb25LZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0g
ZmFsc2U7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlID0gcGFn
ZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5sb2FkVHlwZSgpOwotICAgIHN3aXRjaCAobG9hZFR5cGUp
IHsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZDoKLSAgICAgICAgLy8gTm8gcG9pbnQg
d3JpdGluZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0
ZSBvdmVyIGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgotICAgICAgICBQQ0xPRygi
ICAgLUxvYWQgdHlwZSBpczogUmVsb2FkIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVE
aWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpyZWxvYWRLZXkoKSk7Ci0gICAgICAgIGlzQ2FjaGVhYmxlID0gZmFsc2U7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6U2FtZTogLy8gdXNlciBsb2FkcyBz
YW1lIFVSTCBhZ2FpbiAoYnV0IG5vdCByZWxvYWQgYnV0dG9uKQotICAgICAgICAvLyBObyBwb2lu
dCB3cml0aW5nIHRvIHRoZSBjYWNoZSBvbiBhIHNhbWUgbG9hZCwgc2luY2Ugd2Ugd2lsbCBqdXN0
IHdyaXRlIG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2ZSB0aGF0IHBhZ2UuCi0gICAgICAgIFBD
TE9HKCIgICAtTG9hZCB0eXBlIGlzOiBTYW1lIik7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1
cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGljTG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpzYW1lTG9hZEtleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUgPSBmYWxzZTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2Nr
ZWRCYWNrRm9yd2FyZExpc3Q6Ci0gICAgICAgIC8vIERvbid0IHdyaXRlIHRvIHRoZSBjYWNoZSBp
ZiBpbiB0aGUgbWlkZGxlIG9mIGEgcmVkaXJlY3QsIHNpbmNlIHdlIHdpbGwgd2FudCB0byBzdG9y
ZSB0aGUgZmluYWwgcGFnZSB3ZSBlbmQgdXAgb24uCi0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0
eXBlIGlzOiBSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3QiKTsKLSAgICAgICAgbG9n
UGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50
LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJlZGlyZWN0S2V5KCkpOwotICAgICAgICBpc0NhY2hl
YWJsZSA9IGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJl
cGxhY2U6Ci0gICAgICAgIC8vIE5vIHBvaW50IHdyaXRpbmcgdG8gdGhlIGNhY2hlIG9uIGEgcmVw
bGFjZSwgc2luY2Ugd2Ugd2lsbCBqdXN0IHdyaXRlIG92ZXIgaXQgYWdhaW4gd2hlbiB3ZSBsZWF2
ZSB0aGF0IHBhZ2UuCi0gICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZXBsYWNlIik7
Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZShkaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpyZXBsYWNlS2V5KCkpOwotICAg
ICAgICBpc0NhY2hlYWJsZSA9IGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEZyYW1l
TG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW46IHsKLSAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGlu
ZyB0byB0aGUgY2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVy
IGl0IGFnYWluIHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgotICAgICAgICBQQ0xPRygiICAgLUxv
YWQgdHlwZSBpczogUmVsb2FkRnJvbU9yaWdpbiIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cmVsb2FkRnJvbU9yaWdpbktleSgpKTsKLSAgICAgICAgaXNDYWNoZWFibGUg
PSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6
UmVsb2FkRXhwaXJlZE9ubHk6IHsKLSAgICAgICAgLy8gTm8gcG9pbnQgd3JpdGluZyB0byB0aGUg
Y2FjaGUgb24gYSByZWxvYWQsIHNpbmNlIHdlIHdpbGwganVzdCB3cml0ZSBvdmVyIGl0IGFnYWlu
IHdoZW4gd2UgbGVhdmUgdGhhdCBwYWdlLgotICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBp
czogUmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZCIpOwotICAgICAgICBsb2dQYWdlQ2FjaGVGYWls
dXJlRGlhZ25vc3RpY01lc3NhZ2UoZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQsIERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cmVsb2FkUmV2YWxpZGF0aW5nRXhwaXJlZEtleSgpKTsKLSAgICAgICAgaXND
YWNoZWFibGUgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgRnJhbWVM
b2FkVHlwZTo6U3RhbmRhcmQ6Ci0gICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpCYWNrOgotICAgIGNh
c2UgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZDoKLSAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OkluZGV4
ZWRCYWNrRm9yd2FyZDogLy8gYSBtdWx0aS1pdGVtIGhvcCBpbiB0aGUgYmFja2ZvcndhcmQgbGlz
dAotICAgICAgICAvLyBDYWNoZWFibGUuCi0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAKLSAg
ICBpZiAoaXNDYWNoZWFibGUpCi0gICAgICAgIFBDTE9HKCIgUGFnZSBDQU4gYmUgY2FjaGVkXG4t
LS0tLS0tLSIpOwotICAgIGVsc2UKLSAgICAgICAgUENMT0coIiBQYWdlIENBTk5PVCBiZSBjYWNo
ZWRcbi0tLS0tLS0tIik7Ci0KLSAgICBkaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5sb2dEaWFnbm9z
dGljTWVzc2FnZVdpdGhSZXN1bHQoRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXko
KSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjYW5DYWNoZUtleSgpLCBpc0NhY2hlYWJsZSA/IERp
YWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcyA6IERpYWdub3N0aWNMb2dnaW5nUmVzdWx0RmFpbCwg
U2hvdWxkU2FtcGxlOjpObyk7Ci0gICAgcmV0dXJuIGlzQ2FjaGVhYmxlOwotfQotCi1QYWdlQ2Fj
aGUmIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
UGFnZUNhY2hlPiBnbG9iYWxQYWdlQ2FjaGU7Ci0gICAgcmV0dXJuIGdsb2JhbFBhZ2VDYWNoZTsK
LX0KLQotUGFnZUNhY2hlOjpQYWdlQ2FjaGUoKQotewotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxh
ZyBvbmNlRmxhZzsKLSAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewotICAgICAgICBQ
QUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd1BhZ2VDYWNo
ZSIsIFtdIHsKLSAgICAgICAgICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuZHVtcCgpOwotICAg
ICAgICB9KTsKLSAgICB9KTsKLX0KLQotdm9pZCBQYWdlQ2FjaGU6OmR1bXAoKSBjb25zdAotewot
ICAgIFdURkxvZ0Fsd2F5cygiXG5QYWdlIENhY2hlOiIpOwotICAgIGZvciAoYXV0byYgaXRlbSA6
IG1faXRlbXMpIHsKLSAgICAgICAgQ2FjaGVkUGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2Nh
Y2hlZFBhZ2U7Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiICBQYWdlICVwLCBkb2N1bWVudCAlcCAl
cyIsICZjYWNoZWRQYWdlLnBhZ2UoKSwgY2FjaGVkUGFnZS5kb2N1bWVudCgpLCBjYWNoZWRQYWdl
LmRvY3VtZW50KCkgPyBjYWNoZWRQYWdlLmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkgOiAiIik7Ci0gICAgfQotfQotCi1ib29sIFBhZ2VDYWNoZTo6Y2FuQ2FjaGUoUGFn
ZSYgcGFnZSkgY29uc3QKLXsKLSAgICBpZiAoIW1fbWF4U2l6ZSkgewotICAgICAgICBsb2dQYWdl
Q2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UoJnBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5
czo6aXNEaXNhYmxlZEtleSgpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAg
IGlmIChNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5kZXJNZW1vcnlQcmVz
c3VyZSgpKSB7Ci0gICAgICAgIGxvZ1BhZ2VDYWNoZUZhaWx1cmVEaWFnbm9zdGljTWVzc2FnZSgm
cGFnZSwgRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjp1bmRlck1lbW9yeVByZXNzdXJlS2V5KCkpOwot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBjYW5DYWNoZVBh
Z2UocGFnZSk7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjpwcnVuZVRvU2l6ZU5vdyh1bnNpZ25lZCBz
aXplLCBQcnVuaW5nUmVhc29uIHBydW5pbmdSZWFzb24pCi17Ci0gICAgU2V0Rm9yU2NvcGU8dW5z
aWduZWQ+IGNoYW5nZShtX21heFNpemUsIHNpemUpOwotICAgIHBydW5lKHBydW5pbmdSZWFzb24p
OwotfQotCi12b2lkIFBhZ2VDYWNoZTo6c2V0TWF4U2l6ZSh1bnNpZ25lZCBtYXhTaXplKQotewot
ICAgIG1fbWF4U2l6ZSA9IG1heFNpemU7Ci0gICAgcHJ1bmUoUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7
Ci19Ci0KLXVuc2lnbmVkIFBhZ2VDYWNoZTo6ZnJhbWVDb3VudCgpIGNvbnN0Ci17Ci0gICAgdW5z
aWduZWQgZnJhbWVDb3VudCA9IG1faXRlbXMuc2l6ZSgpOwotICAgIGZvciAoYXV0byYgaXRlbSA6
IG1faXRlbXMpIHsKLSAgICAgICAgQVNTRVJUKGl0ZW0tPm1fY2FjaGVkUGFnZSk7Ci0gICAgICAg
IGZyYW1lQ291bnQgKz0gaXRlbS0+bV9jYWNoZWRQYWdlLT5jYWNoZWRNYWluRnJhbWUoKS0+ZGVz
Y2VuZGFudEZyYW1lQ291bnQoKTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIGZyYW1lQ291bnQ7
Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjptYXJrUGFnZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5n
ZWQoUGFnZSYgcGFnZSkKLXsKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2l0ZW1zKSB7Ci0gICAg
ICAgIENhY2hlZFBhZ2UmIGNhY2hlZFBhZ2UgPSAqaXRlbS0+bV9jYWNoZWRQYWdlOwotICAgICAg
ICBpZiAoJnBhZ2UubWFpbkZyYW1lKCkgPT0gJmNhY2hlZFBhZ2UuY2FjaGVkTWFpbkZyYW1lKCkt
PnZpZXcoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNhY2hlZFBhZ2UubWFya0ZvckRldmljZU9y
UGFnZVNjYWxlQ2hhbmdlZCgpOwotICAgIH0KLX0KLQotdm9pZCBQYWdlQ2FjaGU6Om1hcmtQYWdl
c0ZvckNvbnRlbnRzU2l6ZUNoYW5nZWQoUGFnZSYgcGFnZSkKLXsKLSAgICBmb3IgKGF1dG8mIGl0
ZW0gOiBtX2l0ZW1zKSB7Ci0gICAgICAgIENhY2hlZFBhZ2UmIGNhY2hlZFBhZ2UgPSAqaXRlbS0+
bV9jYWNoZWRQYWdlOwotICAgICAgICBpZiAoJnBhZ2UubWFpbkZyYW1lKCkgPT0gJmNhY2hlZFBh
Z2UuY2FjaGVkTWFpbkZyYW1lKCktPnZpZXcoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNhY2hl
ZFBhZ2UubWFya0ZvckNvbnRlbnRzU2l6ZUNoYW5nZWQoKTsKLSAgICB9Ci19Ci0KLSNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCi12b2lkIFBhZ2VDYWNoZTo6bWFya1BhZ2VzRm9yQ2FwdGlvblByZWZl
cmVuY2VzQ2hhbmdlZCgpCi17Ci0gICAgZm9yIChhdXRvJiBpdGVtIDogbV9pdGVtcykgewotICAg
ICAgICBBU1NFUlQoaXRlbS0+bV9jYWNoZWRQYWdlKTsKLSAgICAgICAgaXRlbS0+bV9jYWNoZWRQ
YWdlLT5tYXJrRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwotICAgIH0KLX0KLSNlbmRp
ZgotCi1zdGF0aWMgU3RyaW5nIHBydW5pbmdSZWFzb25Ub0RpYWdub3N0aWNMb2dnaW5nS2V5KFBy
dW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKLXsKLSAgICBzd2l0Y2ggKHBydW5pbmdSZWFzb24p
IHsKLSAgICBjYXNlIFBydW5pbmdSZWFzb246Ok1lbW9yeVByZXNzdXJlOgotICAgICAgICByZXR1
cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01lbW9yeVByZXNzdXJlS2V5KCk7
Ci0gICAgY2FzZSBQcnVuaW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOgotICAgICAgICByZXR1
cm4gRGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb1Byb2Nlc3NTdXNwZW5kZWQoKTsK
LSAgICBjYXNlIFBydW5pbmdSZWFzb246OlJlYWNoZWRNYXhTaXplOgotICAgICAgICByZXR1cm4g
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpwcnVuZWREdWVUb01heFNpemVSZWFjaGVkKCk7Ci0gICAg
Y2FzZSBQcnVuaW5nUmVhc29uOjpOb25lOgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXN0YXRp
YyB2b2lkIHNldFBhZ2VDYWNoZVN0YXRlKFBhZ2UmIHBhZ2UsIERvY3VtZW50OjpQYWdlQ2FjaGVT
dGF0ZSBwYWdlQ2FjaGVTdGF0ZSkKLXsKLSAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZwYWdlLm1h
aW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7
Ci0gICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQotICAgICAg
ICAgICAgZG9jdW1lbnQtPnNldFBhZ2VDYWNoZVN0YXRlKHBhZ2VDYWNoZVN0YXRlKTsKLSAgICB9
Ci19Ci0KLS8vIFdoZW4gZW50ZXJpbmcgcGFnZSBjYWNoZSwgdGVhciBkb3duIHRoZSByZW5kZXIg
dHJlZSBiZWZvcmUgc2V0dGluZyB0aGUgaW4tY2FjaGUgZmxhZy4KLS8vIFRoaXMgbWFpbnRhaW5z
IHRoZSBpbnZhcmlhbnQgdGhhdCByZW5kZXIgdHJlZXMgYXJlIG5ldmVyIHByZXNlbnQgaW4gdGhl
IHBhZ2UgY2FjaGUuCi0vLyBOb3RlIHRoYXQgZGVzdHJ1Y3Rpb24gaGFwcGVucyBib3R0b20tdXAg
c28gdGhhdCB0aGUgbWFpbiBmcmFtZSdzIHRyZWUgZGllcyBsYXN0Lgotc3RhdGljIHZvaWQgZGVz
dHJveVJlbmRlclRyZWUoRnJhbWUmIG1haW5GcmFtZSkKLXsKLSAgICBmb3IgKEZyYW1lKiBmcmFt
ZSA9IG1haW5GcmFtZS50cmVlKCkudHJhdmVyc2VQcmV2aW91cyhDYW5XcmFwOjpZZXMpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlUHJldmlvdXMoQ2FuV3JhcDo6Tm8pKSB7
Ci0gICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgICAgIGlm
IChkb2N1bWVudC5oYXNMaXZpbmdSZW5kZXJUcmVlKCkpCi0gICAgICAgICAgICBkb2N1bWVudC5k
ZXN0cm95UmVuZGVyVHJlZSgpOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgZmlyZVBhZ2VIaWRl
RXZlbnRSZWN1cnNpdmVseShGcmFtZSYgZnJhbWUpCi17Ci0gICAgYXV0byogZG9jdW1lbnQgPSBm
cmFtZS5kb2N1bWVudCgpOwotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIC8vIHN0b3BMb2FkaW5nKCkgd2lsbCBmaXJlIHRoZSBwYWdlaGlkZSBldmVudCBpbiBlYWNo
IHN1YmZyYW1lIGFuZCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHN0YXRlcwotICAgIC8vIHRoYXQg
dGhlIHBhcmVudCBkb2N1bWVudCdzIGlnbm9yZS1vcGVucy1kdXJpbmctdW5sb2FkIGNvdW50ZXIg
c2hvdWxkIGJlIGluY3JlbWVudGVkIHdoaWxlIHRoZQotICAgIC8vIHBhZ2VoaWRlIGV2ZW50IGlz
IGJlaW5nIGZpcmVkIGluIGl0cyBzdWJmcmFtZXM6Ci0gICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy9tdWx0aXBhZ2UvYnJvd3NlcnMuaHRtbCN1bmxvYWQtYS1kb2N1bWVudAotICAg
IElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlciBpZ25vcmVPcGVuc0R1cmlu
Z1VubG9hZENvdW50SW5jcmVtZW50ZXIoZG9jdW1lbnQpOwotCi0gICAgZnJhbWUubG9hZGVyKCku
c3RvcExvYWRpbmcoVW5sb2FkRXZlbnRQb2xpY3lVbmxvYWRBbmRQYWdlSGlkZSk7Ci0KLSAgICBm
b3IgKFJlZlB0cjxGcmFtZT4gY2hpbGQgPSBmcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGZpcmVQYWdl
SGlkZUV2ZW50UmVjdXJzaXZlbHkoKmNoaWxkKTsKLX0KLQotYm9vbCBQYWdlQ2FjaGU6OmFkZElm
Q2FjaGVhYmxlKEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQotewotICAgIGlmIChpdGVt
LmlzSW5QYWdlQ2FjaGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFwYWdl
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIo
KS5zdG9wRm9yUGFnZUNhY2hlKCk7Ci0KLSAgICBpZiAoIWNhbkNhY2hlKCpwYWdlKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghcGFnZS0+aXNVdGls
aXR5UGFnZSgpLCAiVXRpbGl0eSBwYWdlcyBzdWNoIGFzIFNWR0ltYWdlIHBhZ2VzIHNob3VsZCBu
ZXZlciBnbyBpbnRvIFBhZ2VDYWNoZSIpOwotCi0gICAgc2V0UGFnZUNhY2hlU3RhdGUoKnBhZ2Us
IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOwotCi0gICAgLy8gRm9jdXMgdGhlIG1h
aW4gZnJhbWUsIGRlZm9jdXNpbmcgYSBmb2N1c2VkIHN1YmZyYW1lIChpZiB3ZSBoYXZlIG9uZSku
IFdlIGRvIHRoaXMgaGVyZSwKLSAgICAvLyBiZWZvcmUgdGhlIHBhZ2UgZW50ZXJzIHRoZSBwYWdl
IGNhY2hlLCB3aGlsZSB3ZSBzdGlsbCBjYW4gZGlzcGF0Y2ggRE9NIGJsdXIvZm9jdXMgZXZlbnRz
LgotICAgIGlmIChwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkRnJhbWUoKSkKLSAgICAg
ICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEZyYW1lKCZwYWdlLT5tYWluRnJh
bWUoKSk7Ci0KLSAgICAvLyBGaXJlIHRoZSBwYWdlaGlkZSBldmVudCBpbiBhbGwgZnJhbWVzLgot
ICAgIGZpcmVQYWdlSGlkZUV2ZW50UmVjdXJzaXZlbHkocGFnZS0+bWFpbkZyYW1lKCkpOwotCi0g
ICAgZGVzdHJveVJlbmRlclRyZWUocGFnZS0+bWFpbkZyYW1lKCkpOwotCi0gICAgLy8gU3RvcCBh
bGwgbG9hZHMgYWdhaW4gYmVmb3JlIGNoZWNraW5nIGlmIHdlIGNhbiBzdGlsbCBjYWNoZSB0aGUg
cGFnZSBhZnRlciBmaXJpbmcgdGhlIHBhZ2VoaWRlCi0gICAgLy8gZXZlbnQsIHNpbmNlIHRoZSBw
YWdlIG1heSBoYXZlIHN0YXJ0ZWQgcGluZyBsb2FkcyBpbiBpdHMgcGFnZWhpZGUgZXZlbnQgaGFu
ZGxlci4KLSAgICBwYWdlLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5zdG9wRm9yUGFnZUNhY2hlKCk7
Ci0KLSAgICAvLyBDaGVjayB0aGF0IHRoZSBwYWdlIGlzIHN0aWxsIHBhZ2UtY2FjaGVhYmxlIGFm
dGVyIGZpcmluZyB0aGUgcGFnZWhpZGUgZXZlbnQuIFRoZSBKUyBldmVudCBoYW5kbGVycwotICAg
IC8vIGNvdWxkIGhhdmUgYWx0ZXJlZCB0aGUgcGFnZSBpbiBhIHdheSB0aGF0IGNvdWxkIHByZXZl
bnQgY2FjaGluZy4KLSAgICBpZiAoIWNhbkNhY2hlKCpwYWdlKSkgewotICAgICAgICBzZXRQYWdl
Q2FjaGVTdGF0ZSgqcGFnZSwgRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHNldFBhZ2VDYWNoZVN0YXRlKCpwYWdlLCBEb2N1bWVu
dDo6SW5QYWdlQ2FjaGUpOwotCi0gICAgewotICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3Qg
ZmlyZSBhbnkgSlMgZXZlbnRzIGluIHRoaXMgc2NvcGUuCi0gICAgICAgIFNjcmlwdERpc2FsbG93
ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKLQotICAgICAgICBp
dGVtLnNldENhY2hlZFBhZ2UobWFrZVVuaXF1ZTxDYWNoZWRQYWdlPigqcGFnZSkpOwotICAgICAg
ICBpdGVtLm1fcHJ1bmluZ1JlYXNvbiA9IFBydW5pbmdSZWFzb246Ok5vbmU7Ci0gICAgICAgIG1f
aXRlbXMuYWRkKCZpdGVtKTsKLSAgICB9Ci0gICAgcHJ1bmUoUHJ1bmluZ1JlYXNvbjo6UmVhY2hl
ZE1heFNpemUpOwotCi0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNo
ZTo6YWRkSWZDYWNoZWFibGUgaXRlbTogJXMsIHNpemU6ICV1IC8gJXUiLCBpdGVtLmlkZW50aWZp
ZXIoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBwYWdlQ291bnQoKSwgbWF4U2l6ZSgpKTsKLQot
ICAgIHJldHVybiB0cnVlOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gUGFnZUNh
Y2hlOjp0YWtlKEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQotewotICAgIGlmICghaXRl
bS5tX2NhY2hlZFBhZ2UpIHsKLSAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBy
dW5pbmdSZWFzb246Ok5vbmUpCi0gICAgICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25v
c3RpY01lc3NhZ2UocGFnZSwgcHJ1bmluZ1JlYXNvblRvRGlhZ25vc3RpY0xvZ2dpbmdLZXkoaXRl
bS5tX3BydW5pbmdSZWFzb24pKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0g
ICAgbV9pdGVtcy5yZW1vdmUoJml0ZW0pOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdl
PiBjYWNoZWRQYWdlID0gaXRlbS50YWtlQ2FjaGVkUGFnZSgpOwotCi0gICAgUkVMRUFTRV9MT0co
QmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6dGFrZSBpdGVtOiAlcywgc2l6ZTogJXUgLyAl
dSIsIGl0ZW0uaWRlbnRpZmllcigpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHBhZ2VDb3VudCgp
LCBtYXhTaXplKCkpOwotCi0gICAgaWYgKGNhY2hlZFBhZ2UtPmhhc0V4cGlyZWQoKSB8fCAocGFn
ZSAmJiBwYWdlLT5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVkQnlXZWJJbnNwZWN0b3IoKSkpIHsK
LSAgICAgICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJOb3QgcmVzdG9yaW5nIHBhZ2UgZm9yICVz
IGZyb20gYmFjay9mb3J3YXJkIGNhY2hlIGJlY2F1c2UgY2FjaGUgZW50cnkgaGFzIGV4cGlyZWQi
LCBpdGVtLnVybCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgbG9nUGFnZUNh
Y2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERpYWdub3N0aWNMb2dnaW5nS2V5czo6
ZXhwaXJlZEtleSgpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0
dXJuIGNhY2hlZFBhZ2U7Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjpyZW1vdmVBbGxJdGVtc0ZvclBh
Z2UoUGFnZSYgcGFnZSkKLXsKLSNpZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgQVNTRVJUX1dJVEhf
TUVTU0FHRSghbV9pc0luUmVtb3ZlQWxsSXRlbXNGb3JQYWdlLCAiV2Ugc2hvdWxkIG5vdCByZWVu
dGVyIHRoaXMgbWV0aG9kIik7Ci0gICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5SZW1vdmVBbGxJdGVt
c0ZvclBhZ2VTY29wZSB7IG1faXNJblJlbW92ZUFsbEl0ZW1zRm9yUGFnZSwgdHJ1ZSB9OwotI2Vu
ZGlmCi0KLSAgICBmb3IgKGF1dG8gaXQgPSBtX2l0ZW1zLmJlZ2luKCk7IGl0ICE9IG1faXRlbXMu
ZW5kKCk7KSB7Ci0gICAgICAgIC8vIEluY3JlbWVudCBpdGVyYXRvciBmaXJzdCBzbyBpdCBzdGF5
cyB2YWxpZCBhZnRlciB0aGUgcmVtb3ZhbC4KLSAgICAgICAgYXV0byBjdXJyZW50ID0gaXQ7Ci0g
ICAgICAgICsraXQ7Ci0gICAgICAgIGlmICgmKCpjdXJyZW50KS0+bV9jYWNoZWRQYWdlLT5wYWdl
KCkgPT0gJnBhZ2UpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKEJhY2tGb3J3YXJkQ2FjaGUs
ICJQYWdlQ2FjaGU6OnJlbW92ZUFsbEl0ZW1zRm9yUGFnZSByZW1vdmluZyBpdGVtOiAlcywgc2l6
ZTogJXUgLyAldSIsICgqY3VycmVudCktPmlkZW50aWZpZXIoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCBwYWdlQ291bnQoKSAtIDEsIG1heFNpemUoKSk7Ci0gICAgICAgICAgICAoKmN1cnJlbnQp
LT5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOwotICAgICAgICAgICAgbV9pdGVtcy5yZW1vdmUoY3Vy
cmVudCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLUNhY2hlZFBhZ2UqIFBhZ2VDYWNoZTo6Z2V0
KEhpc3RvcnlJdGVtJiBpdGVtLCBQYWdlKiBwYWdlKQotewotICAgIENhY2hlZFBhZ2UqIGNhY2hl
ZFBhZ2UgPSBpdGVtLm1fY2FjaGVkUGFnZS5nZXQoKTsKLSAgICBpZiAoIWNhY2hlZFBhZ2UpIHsK
LSAgICAgICAgaWYgKGl0ZW0ubV9wcnVuaW5nUmVhc29uICE9IFBydW5pbmdSZWFzb246Ok5vbmUp
Ci0gICAgICAgICAgICBsb2dQYWdlQ2FjaGVGYWlsdXJlRGlhZ25vc3RpY01lc3NhZ2UocGFnZSwg
cHJ1bmluZ1JlYXNvblRvRGlhZ25vc3RpY0xvZ2dpbmdLZXkoaXRlbS5tX3BydW5pbmdSZWFzb24p
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgaWYgKGNhY2hlZFBhZ2Ut
Pmhhc0V4cGlyZWQoKSB8fCAocGFnZSAmJiBwYWdlLT5pc1Jlc291cmNlQ2FjaGluZ0Rpc2FibGVk
QnlXZWJJbnNwZWN0b3IoKSkpIHsKLSAgICAgICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJOb3Qg
cmVzdG9yaW5nIHBhZ2UgZm9yICVzIGZyb20gYmFjay9mb3J3YXJkIGNhY2hlIGJlY2F1c2UgY2Fj
aGUgZW50cnkgaGFzIGV4cGlyZWQiLCBpdGVtLnVybCgpLnN0cmluZygpLmFzY2lpKCkuZGF0YSgp
KTsKLSAgICAgICAgbG9nUGFnZUNhY2hlRmFpbHVyZURpYWdub3N0aWNNZXNzYWdlKHBhZ2UsIERp
YWdub3N0aWNMb2dnaW5nS2V5czo6ZXhwaXJlZEtleSgpKTsKLSAgICAgICAgcmVtb3ZlKGl0ZW0p
OwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIGNhY2hlZFBhZ2U7
Ci19Ci0KLXZvaWQgUGFnZUNhY2hlOjpyZW1vdmUoSGlzdG9yeUl0ZW0mIGl0ZW0pCi17Ci0gICAg
Ly8gU2FmZWx5IGlnbm9yZSBhdHRlbXB0cyB0byByZW1vdmUgaXRlbXMgbm90IGluIHRoZSBjYWNo
ZS4KLSAgICBpZiAoIWl0ZW0ubV9jYWNoZWRQYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2l0ZW1zLnJlbW92ZSgmaXRlbSk7Ci0gICAgaXRlbS5zZXRDYWNoZWRQYWdlKG51bGxwdHIpOwot
Ci0gICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6cmVtb3ZlIGl0
ZW06ICVzLCBzaXplOiAldSAvICV1IiwgaXRlbS5pZGVudGlmaWVyKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7Ci0KLX0KLQotdm9pZCBQYWdlQ2FjaGU6
OnBydW5lKFBydW5pbmdSZWFzb24gcHJ1bmluZ1JlYXNvbikKLXsKLSAgICB3aGlsZSAocGFnZUNv
dW50KCkgPiBtYXhTaXplKCkpIHsKLSAgICAgICAgYXV0byBvbGRlc3RJdGVtID0gbV9pdGVtcy50
YWtlRmlyc3QoKTsKLSAgICAgICAgb2xkZXN0SXRlbS0+c2V0Q2FjaGVkUGFnZShudWxscHRyKTsK
LSAgICAgICAgb2xkZXN0SXRlbS0+bV9wcnVuaW5nUmVhc29uID0gcHJ1bmluZ1JlYXNvbjsKLSAg
ICAgICAgUkVMRUFTRV9MT0coQmFja0ZvcndhcmRDYWNoZSwgIlBhZ2VDYWNoZTo6cHJ1bmUgcmVt
b3ZpbmcgaXRlbTogJXMsIHNpemU6ICV1IC8gJXUiLCBvbGRlc3RJdGVtLT5pZGVudGlmaWVyKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcGFnZUNvdW50KCksIG1heFNpemUoKSk7Ci0gICAgfQot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L1BhZ2VDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTIxMWNjNDU5ZmVlZmVkZmJmYTk0NDkyNzcy
ZTg5ZDAzMjAxMTU4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCi0jaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvTGlzdEhhc2hTZXQuaD4KLSNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBD
YWNoZWRQYWdlOwotY2xhc3MgRnJhbWU7Ci1jbGFzcyBQYWdlOwotCi1lbnVtIGNsYXNzIFBydW5p
bmdSZWFzb24geyBOb25lLCBQcm9jZXNzU3VzcGVuZGVkLCBNZW1vcnlQcmVzc3VyZSwgUmVhY2hl
ZE1heFNpemUgfTsKLQotY2xhc3MgUGFnZUNhY2hlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShQYWdlQ2FjaGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICAvLyBG
dW5jdGlvbiB0byBvYnRhaW4gdGhlIGdsb2JhbCBwYWdlIGNhY2hlLgotICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBQYWdlQ2FjaGUmIHNpbmdsZXRvbigpOwotCi0gICAgYm9vbCBjYW5DYWNoZShQ
YWdlJikgY29uc3Q7Ci0KLSAgICAvLyBVc2VkIHdoZW4gbWVtb3J5IGlzIGxvdyB0byBwcnVuZSBz
b21lIGNhY2hlZCBwYWdlcy4KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBydW5lVG9TaXplTm93
KHVuc2lnbmVkIG1heFNpemUsIFBydW5pbmdSZWFzb24pOwotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0TWF4U2l6ZSh1bnNpZ25lZCk7IC8vIG51bWJlciBvZiBwYWdlcyB0byBjYWNoZS4KLSAg
ICB1bnNpZ25lZCBtYXhTaXplKCkgY29uc3QgeyByZXR1cm4gbV9tYXhTaXplOyB9Ci0KLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGFkZElmQ2FjaGVhYmxlKEhpc3RvcnlJdGVtJiwgUGFnZSopOyAv
LyBQcnVuZXMgaWYgbWF4U2l6ZSgpIGlzIGV4Y2VlZGVkLgotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVtb3ZlKEhpc3RvcnlJdGVtJik7Ci0gICAgQ2FjaGVkUGFnZSogZ2V0KEhpc3RvcnlJdGVt
JiwgUGFnZSopOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDYWNoZWRQYWdlPiB0YWtlKEhpc3RvcnlJ
dGVtJiwgUGFnZSopOwotCi0gICAgdm9pZCByZW1vdmVBbGxJdGVtc0ZvclBhZ2UoUGFnZSYpOwot
Ci0gICAgdW5zaWduZWQgcGFnZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9pdGVtcy5zaXplKCk7
IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB1bnNpZ25lZCBmcmFtZUNvdW50KCkgY29uc3Q7Ci0KLSAg
ICB2b2lkIG1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZChQYWdlJik7Ci0gICAg
dm9pZCBtYXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFuZ2VkKFBhZ2UmKTsKLSNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCi0gICAgdm9pZCBtYXJrUGFnZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFu
Z2VkKCk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBQYWdlQ2FjaGUoKTsKLSAgICB+UGFnZUNh
Y2hlKCkgPSBkZWxldGU7IC8vIE1ha2Ugc3VyZSBub2JvZHkgYWNjaWRlbnRhbGx5IGNhbGxzIGRl
bGV0ZSAtLSBXZWJDb3JlIGRvZXMgbm90IGRlbGV0ZSBzaW5nbGV0b25zLgotCi0gICAgc3RhdGlj
IGJvb2wgY2FuQ2FjaGVQYWdlQ29udGFpbmluZ1RoaXNGcmFtZShGcmFtZSYpOwotCi0gICAgdm9p
ZCBwcnVuZShQcnVuaW5nUmVhc29uKTsKLSAgICB2b2lkIGR1bXAoKSBjb25zdDsKLQotICAgIExp
c3RIYXNoU2V0PFJlZlB0cjxIaXN0b3J5SXRlbT4+IG1faXRlbXM7Ci0gICAgdW5zaWduZWQgbV9t
YXhTaXplIHswfTsKLQotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBib29sIG1faXNJblJlbW92
ZUFsbEl0ZW1zRm9yUGFnZSB7IGZhbHNlIH07Ci0jZW5kaWYKLQotICAgIGZyaWVuZCBjbGFzcyBX
VEY6Ok5ldmVyRGVzdHJveWVkPFBhZ2VDYWNoZT47Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBjZmVhMjcx
ZjJmNjAyZDg2YzMyMDk2YjVmMTBjOGI0M2RkZTVjMzM5Li45ZmE3MzhhYmM3MTEwNmQ3NmFjNDk0
YjhkNmU1ZjhiMDc3ZWUwNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAKQEAgLTU3NTksNyArNTc1OSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3VzcGVu
ZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKICAgICBtX3Jlc3VtZVRhc2tRdWV1ZS5jYW5j
ZWxUYXNrKCk7CiAKICAgICBzd2l0Y2ggKHJlYXNvbikgewotICAgIGNhc2UgUmVhc29uRm9yU3Vz
cGVuc2lvbjo6UGFnZUNhY2hlOgorICAgIGNhc2UgUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0Zv
cndhcmRDYWNoZToKICAgICAgICAgc3RvcFdpdGhvdXREZXN0cm95aW5nTWVkaWFQbGF5ZXIoKTsK
ICAgICAgICAgc2V0QnVmZmVyaW5nUG9saWN5KEJ1ZmZlcmluZ1BvbGljeTo6TWFrZVJlc291cmNl
c1B1cmdlYWJsZSk7CiAgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5hZGRCZWhhdmlvclJlc3RyaWN0
aW9uKE1lZGlhRWxlbWVudFNlc3Npb246OlJlcXVpcmVQYWdlQ29uc2VudFRvUmVzdW1lTWVkaWEp
OwpAQCAtNTc4Nyw3ICs1Nzg3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZXN1bWUoKQog
ICAgIG1fbWVkaWFTZXNzaW9uLT51cGRhdGVCdWZmZXJpbmdQb2xpY3koKTsKIAogICAgIGlmICht
X2Vycm9yICYmIG1fZXJyb3ItPmNvZGUoKSA9PSBNZWRpYUVycm9yOjpNRURJQV9FUlJfQUJPUlRF
RCAmJiAhbV9yZXN1bWVUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2soKSkgewotICAgICAgICAvLyBS
ZXN0YXJ0IHRoZSBsb2FkIGlmIGl0IHdhcyBhYm9ydGVkIGluIHRoZSBtaWRkbGUgYnkgbW92aW5n
IHRoZSBkb2N1bWVudCB0byB0aGUgcGFnZSBjYWNoZS4KKyAgICAgICAgLy8gUmVzdGFydCB0aGUg
bG9hZCBpZiBpdCB3YXMgYWJvcnRlZCBpbiB0aGUgbWlkZGxlIGJ5IG1vdmluZyB0aGUgZG9jdW1l
bnQgdG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICAgICAgLy8gbV9lcnJvciBpcyBvbmx5
IGxlZnQgYXQgTUVESUFfRVJSX0FCT1JURUQgd2hlbiB0aGUgZG9jdW1lbnQgYmVjb21lcyBpbmFj
dGl2ZSAoaXQgaXMgc2V0IHRvCiAgICAgICAgIC8vICBNRURJQV9FUlJfQUJPUlRFRCB3aGlsZSB0
aGUgYWJvcnRFdmVudCBpcyBiZWluZyBzZW50LCBidXQgY2xlYXJlZCBpbW1lZGlhdGVseSBhZnRl
cndhcmRzKS4KICAgICAgICAgLy8gVGhpcyBiZWhhdmlvciBpcyBub3Qgc3BlY2lmaWVkIGJ1dCBp
dCBzZWVtcyBsaWtlIGEgc2Vuc2libGUgdGhpbmcgdG8gZG8uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAppbmRleCBjNTZjM2M0ODg1OGI2MzlhZWQz
MTljNzI3ZjZmODYyYzVmNjQzZTU4Li44YTFlZTBkMjNjMjZjMjgyMTM5M2Q4ODJmZmVlMTU2Nzk1
YzQyOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5jcHAKQEAgLTE4NCwxMyArMTg0LDEzIEBAIGJvb2wgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
d291bGRMb2FkQXNQbHVnSW4oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVVSTCwgY29uc3QKIAogUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OmNyZWF0ZUVsZW1l
bnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
IGluc2VydGlvblBvc2l0aW9uKQogewotICAgIEFTU0VSVChkb2N1bWVudCgpLnBhZ2VDYWNoZVN0
YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQo
KS5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENh
Y2hlKTsKIAogICAgIGlmIChkaXNwbGF5U3RhdGUoKSA+PSBQcmVwYXJpbmdQbHVnaW5SZXBsYWNl
bWVudCkKICAgICAgICAgcmV0dXJuIEhUTUxQbHVnSW5FbGVtZW50OjpjcmVhdGVFbGVtZW50UmVu
ZGVyZXIoV1RGTW92ZShzdHlsZSksIGluc2VydGlvblBvc2l0aW9uKTsKIAogICAgIC8vIE9uY2Ug
YSBwbHVnLWluIGVsZW1lbnQgY3JlYXRlcyBpdHMgcmVuZGVyZXIsIGl0IG5lZWRzIHRvIGJlIHRv
bGQgd2hlbiB0aGUgZG9jdW1lbnQgZ29lcwotICAgIC8vIGluYWN0aXZlIG9yIHJlYWN0aXZhdGVz
IHNvIGl0IGNhbiBjbGVhciB0aGUgcmVuZGVyZXIgYmVmb3JlIGdvaW5nIGludG8gdGhlIHBhZ2Ug
Y2FjaGUuCisgICAgLy8gaW5hY3RpdmUgb3IgcmVhY3RpdmF0ZXMgc28gaXQgY2FuIGNsZWFyIHRo
ZSByZW5kZXJlciBiZWZvcmUgZ29pbmcgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAg
IGlmICghbV9uZWVkc0RvY3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcykgewogICAgICAgICBtX25l
ZWRzRG9jdW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQo
KS5yZWdpc3RlckZvckRvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrcygqdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCmluZGV4IDg4ZWM1YTc2YTYwZWNiZjYw
ZWNkMjI1ODExY2JmMzMyZmUxMjNiY2EuLmRkNWQ4NWM1NGI5MWZmYmNmYjIwNGVjZmQ2Yjc0YjRi
NDIzZjNhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCkBA
IC0xMzUsNyArMTM1LDcgQEAgYm9vbCBIVE1MU291cmNlRWxlbWVudDo6Y2FuU3VzcGVuZEZvckRv
Y3VtZW50U3VzcGVuc2lvbigpIGNvbnN0CiB2b2lkIEhUTUxTb3VyY2VFbGVtZW50OjpzdXNwZW5k
KFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogewogICAgIC8vIEZJWE1FOiBTaG91bGRuJ3Qg
dGhpcyBhbHNvIHN0b3AgdGhlIHRpbWVyIGZvciBQYWdlV2lsbEJlU3VzcGVuZGVkPwotICAgIGlm
IChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKSB7CisgICAgaWYgKHJl
YXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAg
IG1fc2hvdWxkUmVzY2hlZHVsZUVycm9yRXZlbnRPblJlc3VtZSA9IG1fZXJyb3JFdmVudFRpbWVy
LmlzQWN0aXZlKCk7CiAgICAgICAgIG1fZXJyb3JFdmVudFRpbWVyLnN0b3AoKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAppbmRleCAyODQwNmZj
MmZlZTgxYTFhZWE2ZjRmNDc1ZjVhNWE4ZDk2ZmExM2E2Li4yYTRjOGY1M2Q5OTVhYjllZGE0NWNk
NTBiMzY2Zjk2NzQ4NjU0ZjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50
U2Vzc2lvbi5jcHAKQEAgLTMxMiw3ICszMTIsNyBAQCBTdWNjZXNzT3I8TWVkaWFQbGF5YmFja0Rl
bmlhbFJlYXNvbj4gTWVkaWFFbGVtZW50U2Vzc2lvbjo6cGxheWJhY2tQZXJtaXR0ZWQoKSBjbwog
Ym9vbCBNZWRpYUVsZW1lbnRTZXNzaW9uOjphdXRvcGxheVBlcm1pdHRlZCgpIGNvbnN0CiB7CiAg
ICAgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV9lbGVtZW50LmRvY3VtZW50KCk7Ci0gICAg
aWYgKGRvY3VtZW50LnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hl
KQorICAgIGlmIChkb2N1bWVudC5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6
Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGRv
Y3VtZW50LmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggZmJhMjY2
YWVlNmMxYjgwZDdlNWZhYzBlNzMyMzQ2MTE4OTgwNmFlNS4uNWZlMzA3ZGM1NDdjZGE1MTAzMDMw
YjYzMWUyZDEwMGM1YmE3MTA4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCkBAIC0xNjU0LDE3ICsxNjU0LDE3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmFkZFN1
YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCiAKICNpZiAhQVNTRVJUX0RJ
U0FCTEVECiAgICAgaWYgKGRvY3VtZW50KCkpIHsKLSAgICAgICAgc3dpdGNoIChkb2N1bWVudCgp
LT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAgIGNhc2UgRG9jdW1lbnQ6Ok5vdEluUGFnZUNh
Y2hlOgorICAgICAgICBzd2l0Y2ggKGRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgp
KSB7CisgICAgICAgIGNhc2UgRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZToKICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2Fj
aGU6IHsKLSAgICAgICAgICAgIC8vIEEgcGFnZSBhYm91dCB0byBlbnRlciBQYWdlQ2FjaGUgc2hv
dWxkIG9ubHkgYmUgYWJsZSB0byBzdGFydCBwaW5nIGxvYWRzLgorICAgICAgICBjYXNlIERvY3Vt
ZW50OjpBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlOiB7CisgICAgICAgICAgICAvLyBBIHBh
Z2UgYWJvdXQgdG8gZW50ZXIgdGhlIEJhY2tGb3J3YXJkQ2FjaGUgc2hvdWxkIG9ubHkgYmUgYWJs
ZSB0byBzdGFydCBwaW5nIGxvYWRzLgogICAgICAgICAgICAgYXV0byogY2FjaGVkUmVzb3VyY2Ug
PSBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCkucmVzb3VyY2VGb3JSZXF1ZXN0KGxvYWRlci0+cmVx
dWVzdCgpLCBsb2FkZXItPmZyYW1lTG9hZGVyKCktPmZyYW1lKCkucGFnZSgpLT5zZXNzaW9uSUQo
KSk7CiAgICAgICAgICAgICBBU1NFUlQoY2FjaGVkUmVzb3VyY2UgJiYgQ2FjaGVkUmVzb3VyY2U6
OnNob3VsZFVzZVBpbmdMb2FkKGNhY2hlZFJlc291cmNlLT50eXBlKCkpKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2UgRG9jdW1lbnQ6OkluUGFnZUNhY2hlOgot
ICAgICAgICAgICAgLy8gQSBwYWdlIGluIHRoZSBQYWdlQ2FjaGUgc2hvdWxkIG5vdCBiZSBhYmxl
IHRvIHN0YXJ0IGxvYWRzLgorICAgICAgICBjYXNlIERvY3VtZW50OjpJbkJhY2tGb3J3YXJkQ2Fj
aGU6CisgICAgICAgICAgICAvLyBBIHBhZ2UgaW4gdGhlIEJhY2tGb3J3YXJkQ2FjaGUgc2hvdWxk
IG5vdCBiZSBhYmxlIHRvIHN0YXJ0IGxvYWRzLgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuaAppbmRleCBkZmZlZDQwOGMxZGVhODA3YjFkYTJiNTQ1OTk0NGE0YjZk
ZTVjMTdjLi45ZjM4ZjllYjQyMzBjZjVlODM3MGVlODYwNDMzNDVlYjJiMTgyZGQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaApAQCAtNTM5LDcgKzUzOSw3IEBAIHByaXZh
dGU6CiAKICAgICAvLyBXZSByZXRhaW4gYWxsIHRoZSByZWNlaXZlZCByZXNwb25zZXMgc28gd2Ug
Y2FuIHBsYXkgYmFjayB0aGUKICAgICAvLyBXZWJSZXNvdXJjZUxvYWREZWxlZ2F0ZSBtZXNzYWdl
cyBpZiB0aGUgaXRlbSBpcyBsb2FkZWQgZnJvbSB0aGUKLSAgICAvLyBwYWdlIGNhY2hlLgorICAg
IC8vIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBWZWN0b3I8UmVzb3VyY2VSZXNwb25zZT4gbV9y
ZXNwb25zZXM7CiAgICAgYm9vbCBtX3N0b3BSZWNvcmRpbmdSZXNwb25zZXMgeyBmYWxzZSB9Owog
ICAgIApAQCAtNTc5LDcgKzU3OSw2IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8Q3VzdG9tSGVh
ZGVyRmllbGRzPiBtX2N1c3RvbUhlYWRlckZpZWxkczsKICAgICAKLSAgICBib29sIG1fc3VicmVz
b3VyY2VMb2FkZXJzQXJlUGFnZUNhY2hlQWNjZXB0YWJsZSB7IGZhbHNlIH07CiAgICAgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSBtX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeyBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyB9OwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEFwcGxpY2F0aW9uQ2FjaGVIb3N0PiBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5k
ZXggZTU5NmZhMDNlMTFjYmZjY2MxNTY2ZGVmZGJmNzc1ZDgyYjVkMzk4ZS4uMDljY2Q1YTIyNzc3
ZmNiZWIxYTc4ZTFjZTk4OGM2NjQyNjUzNGZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFdFQkNP
UkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGll
bnQgewogCiAgICAgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oRG9jdW1lbnRMb2FkZXIqKSBmaW5h
bCB7IH0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wgZm9yY2VMYXlvdXRPblJl
c3RvcmVGcm9tUGFnZUNhY2hlKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGZv
cmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQogI2VuZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZvck5vbkhUTUwoKSBmaW5hbCB7
IH0KIApAQCAtMTY0LDcgKzE2NCw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogI2VuZGlmCiAgICAgdm9p
ZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgZmluYWwgeyB9CiAKLSAgICB2b2lk
IGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmluYWwgeyB9CisgICAgdm9pZCBkaWRSZXN0b3Jl
RnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgZGlzcGF0Y2hEaWRC
ZWNvbWVGcmFtZXNldChib29sKSBmaW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKaW5kZXggYzk3M2UxNzUyYjBlN2E5YTBlMTlhMjg2N2UzNGMxNzFmMTc0ZGJmZi4u
YjIwMzc1YTUwZDlhNDVhZDU5MTg5MzlhYTQ0ZWJmZWRlMWY4NzVmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKKyNpbmNsdWRl
ICJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiQmVmb3JlVW5sb2FkRXZlbnQuaCIKICNpbmNsdWRlICJDYWNoZWRQYWdlLmgi
CkBAIC05Miw3ICs5Myw2IEBACiAjaW5jbHVkZSAiTmF2aWdhdGlvblNjaGVkdWxlci5oIgogI2lu
Y2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgi
CiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNl
TG9nZ2luZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgpAQCAtNTQ4LDggKzU0
OCw4IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmNsb3NlVVJMKCkKICAgICAgICAgLy8gSWYgdGhpcyBp
cyB0aGUgU1ZHRG9jdW1lbnQgb2YgYW4gU1ZHSW1hZ2UsIG5vIG5lZWQgdG8gZGlzcGF0Y2ggZXZl
bnRzIG9yIHJlY2FsY1N0eWxlLgogICAgICAgICB1bmxvYWRFdmVudFBvbGljeSA9IFVubG9hZEV2
ZW50UG9saWN5Tm9uZTsKICAgICB9IGVsc2UgewotICAgICAgICAvLyBTaG91bGQgb25seSBzZW5k
IHRoZSBwYWdlaGlkZSBldmVudCBoZXJlIGlmIHRoZSBjdXJyZW50IGRvY3VtZW50IGV4aXN0cyBh
bmQgaGFzIG5vdCBiZWVuIHBsYWNlZCBpbiB0aGUgcGFnZSBjYWNoZS4KLSAgICAgICAgdW5sb2Fk
RXZlbnRQb2xpY3kgPSBjdXJyZW50RG9jdW1lbnQgJiYgY3VycmVudERvY3VtZW50LT5wYWdlQ2Fj
aGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSA/IFVubG9hZEV2ZW50UG9saWN5
VW5sb2FkQW5kUGFnZUhpZGUgOiBVbmxvYWRFdmVudFBvbGljeVVubG9hZE9ubHk7CisgICAgICAg
IC8vIFNob3VsZCBvbmx5IHNlbmQgdGhlIHBhZ2VoaWRlIGV2ZW50IGhlcmUgaWYgdGhlIGN1cnJl
bnQgZG9jdW1lbnQgZXhpc3RzIGFuZCBoYXMgbm90IGJlZW4gcGxhY2VkIGluIHRoZSBiYWNrL2Zv
cndhcmQgY2FjaGUuCisgICAgICAgIHVubG9hZEV2ZW50UG9saWN5ID0gY3VycmVudERvY3VtZW50
ICYmIGN1cnJlbnREb2N1bWVudC0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6
Ok5vdEluQmFja0ZvcndhcmRDYWNoZSA/IFVubG9hZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhp
ZGUgOiBVbmxvYWRFdmVudFBvbGljeVVubG9hZE9ubHk7CiAgICAgfQogCiAgICAgc3RvcExvYWRp
bmcodW5sb2FkRXZlbnRQb2xpY3kpOwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmNsZWFyKERvY3VtZW50KiBuZXdEb2N1bWVudCwgYm9vbCBjbGVhcldpbmRvd1Byb3BlcnRp
ZXMsIGJvb2wKICAgICBib29sIG5lZWRlZENsZWFyID0gbV9uZWVkc0NsZWFyOwogICAgIG1fbmVl
ZHNDbGVhciA9IGZhbHNlOwogCi0gICAgaWYgKG5lZWRlZENsZWFyICYmIG1fZnJhbWUuZG9jdW1l
bnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpIHsKKyAgICBp
ZiAobmVlZGVkQ2xlYXIgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3Rh
dGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAgIG1fZnJhbWUu
ZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCkt
PnN0b3BBY3RpdmVET01PYmplY3RzKCk7CiAgICAgICAgIGJvb2wgaGFkTGl2aW5nUmVuZGVyVHJl
ZSA9IG1fZnJhbWUuZG9jdW1lbnQoKS0+aGFzTGl2aW5nUmVuZGVyVHJlZSgpOwpAQCAtNjUzLDcg
KzY1Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsZWFyKERvY3VtZW50KiBuZXdEb2N1bWVudCwg
Ym9vbCBjbGVhcldpbmRvd1Byb3BlcnRpZXMsIGJvb2wKICAgICBpZiAoY2xlYXJXaW5kb3dQcm9w
ZXJ0aWVzKSB7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVXaW5kb3dE
aXNjYXJkZWQobV9mcmFtZSwgbV9mcmFtZS5kb2N1bWVudCgpLT5kb21XaW5kb3coKSk7CiAgICAg
ICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnJlc2V0VW5sZXNzU3VzcGVuZGVk
Rm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7Ci0gICAgICAgIG1fZnJhbWUud2luZG93UHJveHkoKS5j
bGVhckpTV2luZG93UHJveGllc05vdE1hdGNoaW5nRE9NV2luZG93KG5ld0RvY3VtZW50LT5kb21X
aW5kb3coKSwgbV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpOworICAgICAgICBtX2ZyYW1lLndpbmRvd1Byb3h5KCku
Y2xlYXJKU1dpbmRvd1Byb3hpZXNOb3RNYXRjaGluZ0RPTVdpbmRvdyhuZXdEb2N1bWVudC0+ZG9t
V2luZG93KCksIG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0g
RG9jdW1lbnQ6OkFib3V0VG9FbnRlckJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgICAgIGlmIChz
aG91bGRDbGVhcldpbmRvd05hbWUobV9mcmFtZSwgKm5ld0RvY3VtZW50KSkKICAgICAgICAgICAg
IG1fZnJhbWUudHJlZSgpLnNldE5hbWUobnVsbEF0b20oKSk7CkBAIC0xODE0LDcgKzE4MTQsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoT3B0aW9uU2V0PFJlbG9hZE9wdGlvbj4gb3B0aW9u
cykKIAogdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMoQ2xlYXJQcm92aXNpb25hbEl0
ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3ksIFN0b3BMb2FkaW5nUG9saWN5IHN0
b3BMb2FkaW5nUG9saWN5KQogewotICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCkgJiYgbV9mcmFt
ZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpJblBhZ2VDYWNoZSkK
KyAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0Zv
cndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKHN0b3BMb2FkaW5nUG9saWN5ID09IFN0b3BMb2FkaW5nUG9s
aWN5OjpQcmV2ZW50RHVyaW5nVW5sb2FkRXZlbnRzICYmICFpc1N0b3BMb2FkaW5nQWxsb3dlZCgp
KQpAQCAtMTg1Miw3ICsxODUyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3RvcEFsbExvYWRlcnMo
Q2xlYXJQcm92aXNpb25hbEl0ZW1Qb2xpY3kgY2xlYXJQcm92aXNpb25hbEl0ZW0KICAgICBtX2lu
U3RvcEFsbExvYWRlcnMgPSBmYWxzZTsgICAgCiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OnN0b3BG
b3JQYWdlQ2FjaGUoKQordm9pZCBGcmFtZUxvYWRlcjo6c3RvcEZvckJhY2tGb3J3YXJkQ2FjaGUo
KQogewogICAgIC8vIFN0b3AgcHJvdmlzaW9uYWwgbG9hZHMgaW4gc3ViZnJhbWVzIChUaGUgb25l
IGluIHRoZSBtYWluIGZyYW1lIGlzIGFib3V0IHRvIGJlIGNvbW1pdHRlZCkuCiAgICAgaWYgKCFt
X2ZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKQEAgLTE4NjYsNyArMTg2Niw3IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnN0b3BGb3JQYWdlQ2FjaGUoKQogICAgICAgICBtX2RvY3VtZW50TG9hZGVyLT5zdG9w
TG9hZGluZygpOwogCiAgICAgZm9yIChSZWZQdHI8RnJhbWU+IGNoaWxkID0gbV9mcmFtZS50cmVl
KCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLm5leHRTaWJsaW5n
KCkpCi0gICAgICAgIGNoaWxkLT5sb2FkZXIoKS5zdG9wRm9yUGFnZUNhY2hlKCk7CisgICAgICAg
IGNoaWxkLT5sb2FkZXIoKS5zdG9wRm9yQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgLy8gV2Ug
Y2FuY2VsIHBlbmRpbmcgbmF2aWdhdGlvbnMgJiBwb2xpY3kgY2hlY2tzICphZnRlciogY2FuY2Vs
bGluZyBsb2FkcyBiZWNhdXNlIGNhbmNlbGxpbmcgbG9hZHMgbWlnaHQgZW5kIHVwCiAgICAgLy8g
cnVubmluZyBzY3JpcHQsIHdoaWNoIGNvdWxkIHNjaGVkdWxlIG5ldyBuYXZpZ2F0aW9ucy4KQEAg
LTIwMTYsNyArMjAxNiw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9h
ZCgpCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUGFnZT4gY2FjaGVkUGFnZTsKICAgICBp
ZiAobV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2UgJiYgaGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgp
KQotICAgICAgICBjYWNoZWRQYWdlID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS50YWtlKCpoaXN0
b3J5KCkucHJvdmlzaW9uYWxJdGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAgICAgY2FjaGVk
UGFnZSA9IEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnRha2UoKmhpc3RvcnkoKS5wcm92
aXNpb25hbEl0ZW0oKSwgbV9mcmFtZS5wYWdlKCkpOwogCiAgICAgTE9HKEJhY2tGb3J3YXJkQ2Fj
aGUsICJXZWJDb3JlTG9hZGluZyAlczogQWJvdXQgdG8gY29tbWl0IHByb3Zpc2lvbmFsIGxvYWQg
ZnJvbSBwcmV2aW91cyBVUkwgJyVzJyB0byBuZXcgVVJMICclcycgd2l0aCBjYWNoZWQgcGFnZSAl
cCIsIG1fZnJhbWUudHJlZSgpLnVuaXF1ZU5hbWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLAog
ICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCkgPyBtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgpLnN0
cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5kYXRhKCkgOiAiIiwKQEAgLTIw
MjcsNyArMjAyNyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgp
CiAgICAgaWYgKCFtX2ZyYW1lLnRyZWUoKS5wYXJlbnQoKSAmJiBoaXN0b3J5KCkuY3VycmVudEl0
ZW0oKSAmJiBoaXN0b3J5KCkuY3VycmVudEl0ZW0oKSAhPSBoaXN0b3J5KCkucHJvdmlzaW9uYWxJ
dGVtKCkpIHsKICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHdlIG5lZWQgdG8gY2FjaGUgdGhl
IHBhZ2Ugd2UgYXJlIG5hdmlnYXRpbmcgYXdheSBmcm9tIGludG8gdGhlIGJhY2svZm9yd2FyZCBj
YWNoZS4KICAgICAgICAgLy8gV2UgYXJlIGRvaW5nIHRoaXMgaGVyZSBiZWNhdXNlIHdlIGtub3cg
Zm9yIHN1cmUgdGhhdCBhIG5ldyBwYWdlIGlzIGFib3V0IHRvIGJlIGxvYWRlZC4KLSAgICAgICAg
UGFnZUNhY2hlOjpzaW5nbGV0b24oKS5hZGRJZkNhY2hlYWJsZSgqaGlzdG9yeSgpLmN1cnJlbnRJ
dGVtKCksIG1fZnJhbWUucGFnZSgpKTsKKyAgICAgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xl
dG9uKCkuYWRkSWZDYWNoZWFibGUoKmhpc3RvcnkoKS5jdXJyZW50SXRlbSgpLCBtX2ZyYW1lLnBh
Z2UoKSk7CiAgICAgICAgIAogICAgICAgICBXZWJDb3JlOjpqZXR0aXNvbkV4cGVuc2l2ZU9iamVj
dHNPblRvcExldmVsTmF2aWdhdGlvbigpOwogICAgIH0KQEAgLTIxMDQsMTEgKzIxMDQsMTEgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKCkKICAgICAgICAgLy8gTm90
ZSwgZGlkUmVjZWl2ZURvY1R5cGUgaXMgZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGZvciBjYWNoZWQg
cGFnZXMuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTkwNjc1OD4gZm9yIG1vcmUgZGV0YWlscy4KICAg
ICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2Ut
PmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKG1fZnJhbWUpOwotICAgICAgICBtX2ZyYW1lLmRv
Y3VtZW50KCktPnJlc3VtZShSZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUpOworICAgICAg
ICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9y
d2FyZENhY2hlKTsKIAogICAgICAgICAvLyBGb3JjZSBhIGxheW91dCB0byB1cGRhdGUgdmlldyBz
aXplIGFuZCB0aGVyZWJ5IHVwZGF0ZSBzY3JvbGxiYXJzLgogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgICAgIGlmICghbV9jbGllbnQuZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNh
Y2hlKCkpCisgICAgICAgIGlmICghbV9jbGllbnQuZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFj
a0ZvcndhcmRDYWNoZSgpKQogICAgICAgICAgICAgbV9mcmFtZS52aWV3KCktPmZvcmNlTGF5b3V0
KCk7CiAjZWxzZQogICAgICAgICBtX2ZyYW1lLnZpZXcoKS0+Zm9yY2VMYXlvdXQoKTsKQEAgLTIz
MzAsNyArMjMzMCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Om9wZW4oQ2FjaGVkRnJhbWVCYXNlJiBj
YWNoZWRGcmFtZSkKICAgICBjbGVhcihkb2N1bWVudC5wdHIoKSwgdHJ1ZSwgdHJ1ZSwgY2FjaGVk
RnJhbWUuaXNNYWluRnJhbWUoKSk7CiAKICAgICBkb2N1bWVudC0+YXR0YWNoVG9DYWNoZWRGcmFt
ZShjYWNoZWRGcmFtZSk7Ci0gICAgZG9jdW1lbnQtPnNldFBhZ2VDYWNoZVN0YXRlKERvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgZG9jdW1lbnQtPnNldEJhY2tGb3J3YXJkQ2FjaGVTdGF0
ZShEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIG1fbmVlZHNDbGVhciA9
IHRydWU7CiAgICAgbV9pc0NvbXBsZXRlID0gZmFsc2U7CkBAIC0yMzYwLDcgKzIzNjAsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpvcGVuKENhY2hlZEZyYW1lQmFzZSYgY2FjaGVkRnJhbWUpCiAgICAg
CiAgICAgbV9mcmFtZS5zZXREb2N1bWVudChkb2N1bWVudC5jb3B5UmVmKCkpOwogCi0gICAgZG9j
dW1lbnQtPmRvbVdpbmRvdygpLT5yZXN1bWVGcm9tUGFnZUNhY2hlKCk7CisgICAgZG9jdW1lbnQt
PmRvbVdpbmRvdygpLT5yZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgdXBkYXRl
Rmlyc3RQYXJ0eUZvckNvb2tpZXMoKTsKIApAQCAtMjgyOCw3ICsyODI4LDcgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6ZnJhbWVEZXRhY2hlZCgpCiAgICAgICAgIGNoZWNrQ29tcGxldGVuZXNzTm93KCk7
CiAgICAgfQogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAh
PSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUpIHsKKyAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5i
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9yd2FyZENhY2hlKSB7
CiAgICAgICAgIHN0b3BBbGxMb2FkZXJzQW5kQ2hlY2tDb21wbGV0ZW5lc3MoKTsKICAgICAgICAg
bV9mcmFtZS5kb2N1bWVudCgpLT5zdG9wQWN0aXZlRE9NT2JqZWN0cygpOwogICAgIH0KQEAgLTI4
NDQsOCArMjg0NCw4IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQoKQogICAg
IGNsb3NlVVJMKCk7CiAgICAgaGlzdG9yeSgpLnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0
ZVRvSXRlbShoaXN0b3J5KCkuY3VycmVudEl0ZW0oKSk7CiAgICAgZGV0YWNoQ2hpbGRyZW4oKTsK
LSAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50
OjpJblBhZ2VDYWNoZSkgewotICAgICAgICAvLyBzdG9wQWxsTG9hZGVycygpIG5lZWRzIHRvIGJl
IGNhbGxlZCBhZnRlciBkZXRhY2hDaGlsZHJlbigpIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgaW4g
dGhlIHBhZ2UgY2FjaGUsCisgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRD
YWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZSkgeworICAgICAgICAv
LyBzdG9wQWxsTG9hZGVycygpIG5lZWRzIHRvIGJlIGNhbGxlZCBhZnRlciBkZXRhY2hDaGlsZHJl
bigpIGlmIHRoZSBkb2N1bWVudCBpcyBub3QgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwKICAg
ICAgICAgLy8gYmVjYXVzZSBkZXRhY2hlZENoaWxkcmVuKCkgd2lsbCB0cmlnZ2VyIHRoZSB1bmxv
YWQgZXZlbnQgaGFuZGxlcnMgb2YgYW55IGNoaWxkIGZyYW1lcywgYW5kIHRob3NlIGV2ZW50CiAg
ICAgICAgIC8vIGhhbmRsZXJzIG1pZ2h0IHN0YXJ0IGEgbmV3IHN1YnJlc291cmNlIGxvYWQgaW4g
dGhpcyBmcmFtZS4KICAgICAgICAgc3RvcEFsbExvYWRlcnMoU2hvdWxkQ2xlYXJQcm92aXNpb25h
bEl0ZW0sIFN0b3BMb2FkaW5nUG9saWN5OjpBbHdheXNTdG9wTG9hZGluZyk7CkBAIC0zMTgwLDcg
KzMxODAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWNlaXZlZE1haW5SZXNvdXJjZUVycm9yKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBpZiAobV9zdWJtaXR0ZWRGb3JtVVJM
ID09IG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+b3JpZ2luYWxSZXF1ZXN0Q29weSgpLnVy
bCgpKQogICAgICAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMID0gVVJMKCk7CiAgICAgICAgICAg
ICAKLSAgICAgICAgLy8gV2UgbWlnaHQgaGF2ZSBtYWRlIGEgcGFnZSBjYWNoZSBpdGVtLCBidXQg
bm93IHdlJ3JlIGJhaWxpbmcgb3V0IGR1ZSB0byBhbiBlcnJvciBiZWZvcmUgd2UgZXZlcgorICAg
ICAgICAvLyBXZSBtaWdodCBoYXZlIG1hZGUgYSBiYWNrL2ZvcndhcmQgY2FjaGUgaXRlbSwgYnV0
IG5vdyB3ZSdyZSBiYWlsaW5nIG91dCBkdWUgdG8gYW4gZXJyb3IgYmVmb3JlIHdlIGV2ZXIKICAg
ICAgICAgLy8gdHJhbnNpdGlvbmVkIHRvIHRoZSBuZXcgcGFnZSAoYmVmb3JlIFdlYkZyYW1lU3Rh
dGUgPT0gY29tbWl0KS4gIFRoZSBnb2FsIGhlcmUgaXMgdG8gcmVzdG9yZSBhbnkgc3RhdGUKICAg
ICAgICAgLy8gc28gdGhhdCB0aGUgZXhpc3RpbmcgdmlldyAodGhhdCB3ZW5ldmVyIGdvdCBmYXIg
ZW5vdWdoIHRvIHJlcGxhY2UpIGNhbiBjb250aW51ZSBiZWluZyB1c2VkLgogICAgICAgICBoaXN0
b3J5KCkuaW52YWxpZGF0ZUN1cnJlbnRJdGVtQ2FjaGVkUGFnZSgpOwpAQCAtMzIzMSw3ICszMjMx
LDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6c2hvdWxkUGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbihi
b29sIGlzRm9ybVN1Ym1pc3Npb24sIGNvbnN0IFMKICAgICByZXR1cm4gKCFpc0Zvcm1TdWJtaXNz
aW9uIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGh0dHBNZXRob2QsICJnZXQiKSkK
ICAgICAgICAgJiYgIWlzUmVsb2FkKGxvYWRUeXBlKQogICAgICAgICAmJiBsb2FkVHlwZSAhPSBG
cmFtZUxvYWRUeXBlOjpTYW1lCi0gICAgICAgICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNh
Y2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5QYWdlQ2FjaGUKKyAgICAgICAgJiYgbV9mcmFtZS5k
b2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6SW5CYWNrRm9y
d2FyZENhY2hlCiAgICAgICAgICYmICFzaG91bGRSZWxvYWQobV9mcmFtZS5kb2N1bWVudCgpLT51
cmwoKSwgdXJsKQogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGp1c3Qgc2Nyb2xsIGlmIGEg
bGluayBmcm9tIHdpdGhpbiBhCiAgICAgICAgIC8vIGZyYW1lc2V0IGlzIHRyeWluZyB0byByZWxv
YWQgdGhlIGZyYW1lc2V0IGludG8gX3RvcC4KQEAgLTMzMTUsMTMgKzMzMTUsMTMgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6ZGlzcGF0Y2hVbmxvYWRFdmVudHMoVW5sb2FkRXZlbnRQb2xpY3kgdW5sb2Fk
RXZlbnRQb2xpY3kpCiAgICAgICAgIGlmIChtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0
Y2hlZCA9PSBQYWdlRGlzbWlzc2FsVHlwZTo6Tm9uZSkgewogICAgICAgICAgICAgaWYgKHVubG9h
ZEV2ZW50UG9saWN5ID09IFVubG9hZEV2ZW50UG9saWN5VW5sb2FkQW5kUGFnZUhpZGUpIHsKICAg
ICAgICAgICAgICAgICBtX3BhZ2VEaXNtaXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCA9IFBhZ2VE
aXNtaXNzYWxUeXBlOjpQYWdlSGlkZTsKLSAgICAgICAgICAgICAgICBtX2ZyYW1lLmRvY3VtZW50
KCktPmRvbVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50KFBhZ2VUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkucGFnZWhpZGVFdmVudCwgbV9mcmFtZS5kb2N1bWVudCgpLT5wYWdlQ2Fj
aGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJQYWdlQ2FjaGUpLCBtX2ZyYW1lLmRv
Y3VtZW50KCkpOworICAgICAgICAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9tV2luZG93
KCktPmRpc3BhdGNoRXZlbnQoUGFnZVRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5wYWdlaGlkZUV2ZW50LCBtX2ZyYW1lLmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0
ZSgpID09IERvY3VtZW50OjpBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hlKSwgbV9mcmFtZS5k
b2N1bWVudCgpKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gRklYTUU6IHVwZGF0
ZSBQYWdlIFZpc2liaWxpdHkgc3RhdGUgaGVyZS4KICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY3NzAKIAotICAgICAgICAgICAgaWYgKG1f
ZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdl
Q2FjaGUpIHsKKyAgICAgICAgICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCktPmJhY2tGb3J3YXJk
Q2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpIHsKICAgICAg
ICAgICAgICAgICBSZWY8RXZlbnQ+IHVubG9hZEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnVubG9hZEV2ZW50LCBFdmVudDo6Q2FuQnViYmxlOjpObywgRXZlbnQ6OklzQ2FuY2VsYWJs
ZTo6Tm8pKTsKICAgICAgICAgICAgICAgICAvLyBUaGUgRG9jdW1lbnRMb2FkZXIgKGFuZCB0aHVz
IGl0cyBMb2FkVGltaW5nKSBtaWdodCBnZXQgZGVzdHJveWVkCiAgICAgICAgICAgICAgICAgLy8g
d2hpbGUgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50LCBzbyBwcm90ZWN0IGl0IHRvIHByZXZlbnQgd3Jp
dGluZyB0aGUgZW5kCkBAIC0zMzQ1LDcgKzMzNDUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkaXNw
YXRjaFVubG9hZEV2ZW50cyhVbmxvYWRFdmVudFBvbGljeSB1bmxvYWRFdmVudFBvbGljeSkKICAg
ICBpZiAoIW1fZnJhbWUuZG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1f
ZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBEb2N1bWVudDo6Tm90SW5QYWdl
Q2FjaGUpCisgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRl
KCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgLy8gRG9uJ3QgcmVtb3ZlIGV2ZW50IGxpc3RlbmVycyBmcm9tIGEgdHJhbnNpdGlvbmFs
IGVtcHR5IGRvY3VtZW50IChzZWUgYnVnIDI4NzE2IGZvciBtb3JlIGluZm9ybWF0aW9uKS4KQEAg
LTM1MDUsMTMgKzM1MDUsMTMgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKIAogICAgIGlmIChp
c0JhY2tGb3J3YXJkTG9hZFR5cGUodHlwZSkpIHsKICAgICAgICAgYXV0byYgZGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQgPSBtX2ZyYW1lLnBhZ2UoKS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKTsK
LSAgICAgICAgaWYgKGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSAmJiBoaXN0b3J5KCkucHJv
dmlzaW9uYWxJdGVtKCktPmlzSW5QYWdlQ2FjaGUoKSkgewotICAgICAgICAgICAgZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNM
b2dnaW5nS2V5czo6cGFnZUNhY2hlS2V5KCksIERpYWdub3N0aWNMb2dnaW5nS2V5czo6cmV0cmll
dmFsS2V5KCksIERpYWdub3N0aWNMb2dnaW5nUmVzdWx0UGFzcywgU2hvdWxkU2FtcGxlOjpZZXMp
OworICAgICAgICBpZiAoaGlzdG9yeSgpLnByb3Zpc2lvbmFsSXRlbSgpICYmIGhpc3RvcnkoKS5w
cm92aXNpb25hbEl0ZW0oKS0+aXNJbkJhY2tGb3J3YXJkQ2FjaGUoKSkgeworICAgICAgICAgICAg
ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERp
YWdub3N0aWNMb2dnaW5nS2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFBhc3MsIFNo
b3VsZFNhbXBsZTo6WWVzKTsKICAgICAgICAgICAgIGxvYWRQcm92aXNpb25hbEl0ZW1Gcm9tQ2Fj
aGVkUGFnZSgpOwogICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVM
b2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5OiBjYW4ndCBjb250aW51ZSBsb2FkaW5nIGZyYW1lIGJl
Y2F1c2UgaXQgd2lsbCBiZSBsb2FkZWQgZnJvbSBjYWNoZSAoZnJhbWUgPSAlcCwgbWFpbiA9ICVk
KSIsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9Ci0gICAgICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmxvZ0RpYWdub3N0
aWNNZXNzYWdlV2l0aFJlc3VsdChEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnBhZ2VDYWNoZUtleSgp
LCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJpZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2lu
Z1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVzKTsKKyAgICAgICAgZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQubG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KERpYWdub3N0aWNMb2dnaW5n
S2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnJldHJp
ZXZhbEtleSgpLCBEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdEZhaWwsIFNob3VsZFNhbXBsZTo6WWVz
KTsKICAgICB9CiAKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IGNvbXBsZXRpb25IYW5k
bGVyID0gW3RoaXMsIHByb3RlY3RlZEZyYW1lID0gbWFrZVJlZihtX2ZyYW1lKV0gKCkgbXV0YWJs
ZSB7CkBAIC0zNjgwLDcgKzM2ODAsNyBAQCBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRJbnRlcnJ1
cHRMb2FkRm9yWEZyYW1lT3B0aW9ucyhjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGNvbgogdm9pZCBG
cmFtZUxvYWRlcjo6bG9hZFByb3Zpc2lvbmFsSXRlbUZyb21DYWNoZWRQYWdlKCkKIHsKICAgICBE
b2N1bWVudExvYWRlciogcHJvdmlzaW9uYWxMb2FkZXIgPSBwcm92aXNpb25hbERvY3VtZW50TG9h
ZGVyKCk7Ci0gICAgTE9HKEJhY2tGb3J3YXJkQ2FjaGUsICJXZWJDb3JlUGFnZUNhY2hlOiBMb2Fk
aW5nIHByb3Zpc2lvbmFsIERvY3VtZW50TG9hZGVyICVwIHdpdGggVVJMICclcycgZnJvbSBDYWNo
ZWRQYWdlIiwgcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpLCBwcm92aXNpb25hbERvY3VtZW50
TG9hZGVyKCktPnVybCgpLnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5k
YXRhKCkpOworICAgIExPRyhCYWNrRm9yd2FyZENhY2hlLCAiRnJhbWVMb2FkZXI6OmxvYWRQcm92
aXNpb25hbEl0ZW1Gcm9tQ2FjaGVkUGFnZSBMb2FkaW5nIHByb3Zpc2lvbmFsIERvY3VtZW50TG9h
ZGVyICVwIHdpdGggVVJMICclcycgZnJvbSBDYWNoZWRQYWdlIiwgcHJvdmlzaW9uYWxEb2N1bWVu
dExvYWRlcigpLCBwcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCktPnVybCgpLnN0cmluZ0NlbnRl
ckVsbGlwc2l6ZWRUb0xlbmd0aCgpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgcHJlcGFyZUZvckxv
YWRTdGFydCgpOwogCkBAIC0zNzY4LDcgKzM3NjgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
RGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJv
bQogCiAgICAgU2V0Rm9yU2NvcGU8TG9hZENvbnRpbnVpbmdTdGF0ZT4gY29udGludWluZ0xvYWRH
dWFyZChtX2N1cnJlbnRMb2FkQ29udGludWluZ1N0YXRlLCBzaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgPT0gU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpZZXMgPyBMb2FkQ29udGludWlu
Z1N0YXRlOjpDb250aW51aW5nV2l0aEhpc3RvcnlJdGVtIDogTG9hZENvbnRpbnVpbmdTdGF0ZTo6
Tm90Q29udGludWluZyk7CiAKLSAgICBpZiAoQ2FjaGVkUGFnZSogY2FjaGVkUGFnZSA9IFBhZ2VD
YWNoZTo6c2luZ2xldG9uKCkuZ2V0KGl0ZW0sIG1fZnJhbWUucGFnZSgpKSkgeworICAgIGlmIChD
YWNoZWRQYWdlKiBjYWNoZWRQYWdlID0gQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0
KGl0ZW0sIG1fZnJhbWUucGFnZSgpKSkgewogICAgICAgICBhdXRvIGRvY3VtZW50TG9hZGVyID0g
Y2FjaGVkUGFnZS0+ZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAgbV9jbGllbnQudXBkYXRlQ2Fj
aGVkRG9jdW1lbnRMb2FkZXIoKmRvY3VtZW50TG9hZGVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaAppbmRleCBhMzcxNmQ5ZWZiYmE5OGQ0NjRhOWY5YTM0MThiNDk2NjJjZTkzM2Nl
Li41YjNhYzEwNDVhMzBjOGI2YjczMjYxMjUxNzQzZGYxODYwOWNiMTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHN0b3BBbGxMb2FkZXJzQW5kQ2hlY2tDb21wbGV0ZW5lc3MoKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHN0b3BBbGxMb2FkZXJzKENsZWFyUHJvdmlzaW9uYWxJdGVtUG9saWN5ID0gU2hvdWxk
Q2xlYXJQcm92aXNpb25hbEl0ZW0sIFN0b3BMb2FkaW5nUG9saWN5ID0gU3RvcExvYWRpbmdQb2xp
Y3k6OlByZXZlbnREdXJpbmdVbmxvYWRFdmVudHMpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c3RvcEZvclVzZXJDYW5jZWwoYm9vbCBkZWZlckNoZWNrTG9hZENvbXBsZXRlID0gZmFsc2UpOwot
ICAgIHZvaWQgc3RvcEZvclBhZ2VDYWNoZSgpOworICAgIHZvaWQgc3RvcEZvckJhY2tGb3J3YXJk
Q2FjaGUoKTsKICAgICB2b2lkIHN0b3AoKTsKICAgICB2b2lkIHN0b3BMb2FkaW5nKFVubG9hZEV2
ZW50UG9saWN5KTsKICAgICBib29sIGNsb3NlVVJMKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDhjN2YxNzVmMDhjOWQxNGJkM2ZmMTUyYzI2MzE2MWIw
MGVmYmIxYTcuLjk4ZGY5NDVmNTI4N2Q2MTc3NGIzMmQzZmVkOTRjNGVlYTk3MGZlYWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMjksNyArMTI5LDcg
QEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAvLyBSZXR1cm5zIHRy
dWUgaWYgdGhlIGNsaWVudCBmb3JjZWQgdGhlIGxheW91dC4KLSAgICB2aXJ0dWFsIGJvb2wgZm9y
Y2VMYXlvdXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBm
b3JjZUxheW91dE9uUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKCkgPSAwOwogI2VuZGlmCiAg
ICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9yTm9uSFRNTCgpID0gMDsKIApAQCAtMjc4LDcg
KzI3OCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9uVG9D
b21taXR0ZWRGb3JOZXdQYWdlKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVG
cm9tUGFnZUNhY2hlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJvbUJhY2tG
b3J3YXJkQ2FjaGUoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVG
cmFtZXNldChib29sKSA9IDA7IC8vIENhbiBjaGFuZ2UgZHVlIHRvIG5hdmlnYXRpb24gb3IgRE9N
IG1vZGlmaWNhdGlvbi4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3Rv
cnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5jcHAKaW5kZXggMDZhNzE0ZmFiYjNiYTBhN2YxMjVlMDJlM2YwNjgwNmNmM2NhMzE4ZC4uNjRm
MTkxMzFmYmQzYjA0OGRiNTJmZjkyODgwNWRkYjM3ODU5Y2M5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlzdG9yeUNvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUg
IkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJDYWNoZWRQYWdlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTQ0LDcg
KzQ1LDYgQEAKICNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIK
ICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoLmgiCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgSGlz
dG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShIaXN0
b3J5SXRlbSogaXRlbSkKICAgICBpZiAoIWl0ZW0gfHwgIWZyYW1lVmlldykKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+cGFnZUNhY2hlU3RhdGUoKSAhPSBE
b2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCisgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+YmFj
a0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkK
ICAgICAgICAgaXRlbS0+c2V0U2Nyb2xsUG9zaXRpb24oZnJhbWVWaWV3LT5jYWNoZWRTY3JvbGxQ
b3NpdGlvbigpKTsKICAgICBlbHNlCiAgICAgICAgIGl0ZW0tPnNldFNjcm9sbFBvc2l0aW9uKGZy
YW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKSk7CkBAIC0xMzcsOSArMTM3LDkgQEAgdm9pZCBIaXN0
b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkKICAgICBh
dXRvIHZpZXcgPSBtYWtlUmVmUHRyKG1fZnJhbWUudmlldygpKTsKIAogICAgIC8vIEZJWE1FOiBU
aGVyZSBpcyBzb21lIHNjcm9sbGluZyByZWxhdGVkIHdvcmsgdGhhdCBuZWVkcyB0byBoYXBwZW4g
d2hlbmV2ZXIgYSBwYWdlIGdvZXMgaW50byB0aGUKLSAgICAvLyBwYWdlIGNhY2hlIGFuZCBzaW1p
bGFyIHdvcmsgdGhhdCBuZWVkcyB0byBvY2N1ciB3aGVuIGl0IGNvbWVzIG91dC4gVGhpcyBpcyB3
aGVyZSB3ZSBkbyB0aGUgd29yaworICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZSBhbmQgc2ltaWxh
ciB3b3JrIHRoYXQgbmVlZHMgdG8gb2NjdXIgd2hlbiBpdCBjb21lcyBvdXQuIFRoaXMgaXMgd2hl
cmUgd2UgZG8gdGhlIHdvcmsKICAgICAvLyB0aGF0IG5lZWRzIHRvIGhhcHBlbiB3aGVuIHdlIGV4
aXQsIGFuZCB0aGUgd29yayB0aGF0IG5lZWRzIHRvIGhhcHBlbiB3aGVuIHdlIGVudGVyIGlzIGlu
Ci0gICAgLy8gRG9jdW1lbnQ6OnNldElzSW5QYWdlQ2FjaGUoYm9vbCkuIEl0IHdvdWxkIGJlIG5p
Y2UgaWYgdGhlcmUgd2FzIG1vcmUgc3ltbWV0cnkgaW4gdGhlc2Ugc3BvdHMuCisgICAgLy8gRG9j
dW1lbnQ6OnNldElzSW5CYWNrRm9yd2FyZENhY2hlKGJvb2wpLiBJdCB3b3VsZCBiZSBuaWNlIGlm
IHRoZXJlIHdhcyBtb3JlIHN5bW1ldHJ5IGluIHRoZXNlIHNwb3RzLgogICAgIC8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODY5OAogICAgIGlmICh2aWV3KSB7CiAg
ICAgICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKQEAgLTI2MSw4ICsyNjEsOCBAQCB2
b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlkYXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCkK
ICAgICBpZiAoIWN1cnJlbnRJdGVtKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIFdoZW4g
d2UgYXJlIHByZS1jb21taXQsIHRoZSBjdXJyZW50SXRlbSBpcyB3aGVyZSBhbnkgcGFnZSBjYWNo
ZSBkYXRhIHJlc2lkZXMuCi0gICAgc3RkOjp1bmlxdWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBh
Z2UgPSBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnRha2UoKmN1cnJlbnRJdGVtKCksIG1fZnJhbWUu
cGFnZSgpKTsKKyAgICAvLyBXaGVuIHdlIGFyZSBwcmUtY29tbWl0LCB0aGUgY3VycmVudEl0ZW0g
aXMgd2hlcmUgYW55IGJhY2svZm9yd2FyZCBjYWNoZSBkYXRhIHJlc2lkZXMuCisgICAgc3RkOjp1
bmlxdWVfcHRyPENhY2hlZFBhZ2U+IGNhY2hlZFBhZ2UgPSBCYWNrRm9yd2FyZENhY2hlOjpzaW5n
bGV0b24oKS50YWtlKCpjdXJyZW50SXRlbSgpLCBtX2ZyYW1lLnBhZ2UoKSk7CiAgICAgaWYgKCFj
YWNoZWRQYWdlKQogICAgICAgICByZXR1cm47CiAKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIEhp
c3RvcnlDb250cm9sbGVyOjppbnZhbGlkYXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCkKICAgICAK
ICAgICBBU1NFUlQoY2FjaGVkUGFnZS0+ZG9jdW1lbnQoKSA9PSBtX2ZyYW1lLmRvY3VtZW50KCkp
OwogICAgIGlmIChjYWNoZWRQYWdlLT5kb2N1bWVudCgpID09IG1fZnJhbWUuZG9jdW1lbnQoKSkg
ewotICAgICAgICBjYWNoZWRQYWdlLT5kb2N1bWVudCgpLT5zZXRQYWdlQ2FjaGVTdGF0ZShEb2N1
bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgICAgICBjYWNoZWRQYWdlLT5kb2N1bWVudCgpLT5z
ZXRCYWNrRm9yd2FyZENhY2hlU3RhdGUoRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7
CiAgICAgICAgIGNhY2hlZFBhZ2UtPmNsZWFyKCk7CiAgICAgfQogfQpAQCAtMzU1LDcgKzM1NSw3
IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnVwZGF0ZUZvclJlbG9hZCgpCiAgICAgTE9HKEhp
c3RvcnksICJIaXN0b3J5Q29udHJvbGxlciAlcCB1cGRhdGVGb3JSZWxvYWQ6IFVwZGF0aW5nIEhp
c3RvcnkgZm9yIHJlbG9hZCBpbiBmcmFtZSAlcCAobWFpbiBmcmFtZSAlZCkgJXMiLCB0aGlzLCAm
bV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFtZSgpLCBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50
TG9hZGVyKCkgPyBtX2ZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CiAKICAgICBpZiAobV9jdXJyZW50SXRlbSkgewotICAg
ICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZSgqbV9jdXJyZW50SXRlbSk7CisgICAg
ICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZSgqbV9jdXJyZW50SXRlbSk7
CiAgICAgCiAgICAgICAgIGlmIChtX2ZyYW1lLmxvYWRlcigpLmxvYWRUeXBlKCkgPT0gRnJhbWVM
b2FkVHlwZTo6UmVsb2FkIHx8IG1fZnJhbWUubG9hZGVyKCkubG9hZFR5cGUoKSA9PSBGcmFtZUxv
YWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luKQogICAgICAgICAgICAgc2F2ZVNjcm9sbFBvc2l0aW9u
QW5kVmlld1N0YXRlVG9JdGVtKG1fY3VycmVudEl0ZW0uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKaW5k
ZXggZTMxMzFjY2RkYmMwNGJlZjJjZTZkMTY2NzE0NjFmNGNlYzg1ZDhkZS4uODk5Y2JhNGY5NzVl
MmNmMGJjZWQyNTk3Yjc0MmU2YWVlMjQ1YmZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCkBAIC0yOTQsNyAr
Mjk0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bWF5YmVMb2FkRmFsbGJhY2tTeW5j
aHJvbm91c2x5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYKICAgICB9CiB9CiAKLWJvb2wgQXBwbGlj
YXRpb25DYWNoZUhvc3Q6OmNhbkNhY2hlSW5QYWdlQ2FjaGUoKQorYm9vbCBBcHBsaWNhdGlvbkNh
Y2hlSG9zdDo6Y2FuQ2FjaGVJbkJhY2tGb3J3YXJkQ2FjaGUoKQogewogICAgIHJldHVybiAhYXBw
bGljYXRpb25DYWNoZSgpICYmICFjYW5kaWRhdGVBcHBsaWNhdGlvbkNhY2hlR3JvdXAoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmgKaW5kZXggZTA5NGQwODRlZTk0YWJkODVkNjZkM2E0ZjRlNTg4MTUzNzE4YTE0MC4u
NWIyYWExYzYxYzhjZDZhNzllNzFhZjM3NmQ3ZGRlZDQyOTM3Zjg4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKQEAg
LTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtYXliZUxvYWRTeW5jaHJvbm91c2x5
KFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlRXJyb3ImLCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4mKTsKICAgICB2b2lkIG1heWJlTG9hZEZhbGxiYWNrU3luY2hyb25v
dXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUVycm9yJiwgUmVzb3VyY2VSZXNw
b25zZSYsIFJlZlB0cjxTaGFyZWRCdWZmZXI+Jik7CiAKLSAgICBib29sIGNhbkNhY2hlSW5QYWdl
Q2FjaGUoKTsKKyAgICBib29sIGNhbkNhY2hlSW5CYWNrRm9yd2FyZENhY2hlKCk7CiAKICAgICBT
dGF0dXMgc3RhdHVzKCkgY29uc3Q7CiAgICAgYm9vbCB1cGRhdGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDRiMTZmNTk3NjFkOGM3
NWE2ZjBiYTAyMWRiYzIwMzM0MDg3ZWVlMDkuLjY5NmFkOGI0OWEwZGY2NDM0NWJkMWRiNzY3ODI1
ZjZkMDhkYTQ3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmNwcApAQCAtMTk1LDIzICsxOTUsMjMgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9h
ZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgY2FjaGVkUmVzb3VyY2VMb2FkZXIpCiAgICAgfQogICAg
IEZyYW1lJiBmcmFtZSA9ICpjYWNoZWRSZXNvdXJjZUxvYWRlci5mcmFtZSgpOwogCi0gICAgLy8g
UHJldmVudCBuZXcgbG9hZHMgaWYgd2UgYXJlIGluIHRoZSBQYWdlQ2FjaGUgb3IgYmVpbmcgYWRk
ZWQgdG8gdGhlIFBhZ2VDYWNoZS4KKyAgICAvLyBQcmV2ZW50IG5ldyBsb2FkcyBpZiB3ZSBhcmUg
aW4gdGhlIEJhY2tGb3J3YXJkQ2FjaGUgb3IgYmVpbmcgYWRkZWQgdG8gdGhlIEJhY2tGb3J3YXJk
Q2FjaGUuCiAgICAgLy8gV2UgcXVlcnkgdGhlIHRvcCBkb2N1bWVudCBiZWNhdXNlIG5ldyBmcmFt
ZXMgbWF5IGJlIGNyZWF0ZWQgaW4gcGFnZWhpZGUgZXZlbnQgaGFuZGxlcnMKLSAgICAvLyBhbmQg
dGhlaXIgcGFnZUNhY2hlU3RhdGUgd2lsbCBub3QgcmVmbGVjdCB0aGUgZmFjdCB0aGF0IHRoZXkg
YXJlIGFib3V0IHRvIGVudGVyIHBhZ2UKKyAgICAvLyBhbmQgdGhlaXIgYmFja0ZvcndhcmRDYWNo
ZVN0YXRlIHdpbGwgbm90IHJlZmxlY3QgdGhlIGZhY3QgdGhhdCB0aGV5IGFyZSBhYm91dCB0byBl
bnRlciBwYWdlCiAgICAgLy8gY2FjaGUuCiAgICAgaWYgKGF1dG8qIHRvcERvY3VtZW50ID0gZnJh
bWUubWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkgewotICAgICAgICBzd2l0Y2ggKHRvcERvY3VtZW50
LT5wYWdlQ2FjaGVTdGF0ZSgpKSB7Ci0gICAgICAgIGNhc2UgRG9jdW1lbnQ6Ok5vdEluUGFnZUNh
Y2hlOgorICAgICAgICBzd2l0Y2ggKHRvcERvY3VtZW50LT5iYWNrRm9yd2FyZENhY2hlU3RhdGUo
KSkgeworICAgICAgICBjYXNlIERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGU6CiAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBEb2N1bWVudDo6QWJvdXRUb0VudGVyUGFnZUNh
Y2hlOgorICAgICAgICBjYXNlIERvY3VtZW50OjpBYm91dFRvRW50ZXJCYWNrRm9yd2FyZENhY2hl
OgogICAgICAgICAgICAgLy8gQmVhY29ucyBhcmUgYWxsb3dlZCB0byBnbyB0aHJvdWdoIGluICdw
YWdlaGlkZScgZXZlbnQgaGFuZGxlcnMuCiAgICAgICAgICAgICBpZiAoc2hvdWxkVXNlUGluZ0xv
YWQodHlwZSgpKSkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFib3V0IHRvIGVudGVyIHBhZ2UgY2FjaGUgKGZyYW1lID0g
JXApIiwgJmZyYW1lKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6
IEFib3V0IHRvIGVudGVyIGJhY2svZm9yd2FyZCBjYWNoZSAoZnJhbWUgPSAlcCkiLCAmZnJhbWUp
OwogICAgICAgICAgICAgZmFpbEJlZm9yZVN0YXJ0aW5nKCk7CiAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGNhc2UgRG9jdW1lbnQ6OkluUGFnZUNhY2hlOgotICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgibG9hZDogQWxyZWFkeSBpbiBwYWdlIGNhY2hlIChmcmFtZSA9ICVw
KSIsICZmcmFtZSk7CisgICAgICAgIGNhc2UgRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZToK
KyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvYWQ6IEFscmVhZHkgaW4gYmFj
ay9mb3J3YXJkIGNhY2hlIChmcmFtZSA9ICVwKSIsICZmcmFtZSk7CiAgICAgICAgICAgICBmYWls
QmVmb3JlU3RhcnRpbmcoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDRjNTcxZWJmMzg1OTNkM2ZiODhkZTEwYmE3MDk3YTc3
N2IwYWJkNDAuLjBiNmI2MGMxZDVjYTAwNjFjNWJjOGUzZWYwOWU4Y2FlZjZlNTk4ZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTU1OCwyNSArNTU4LDI1IEBAIHZvaWQgRE9NV2lu
ZG93OjpyZXNldFVubGVzc1N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbigpCiAgICAgd2ls
bERlc3Ryb3lEb2N1bWVudEluRnJhbWUoKTsKIH0KIAotdm9pZCBET01XaW5kb3c6OnN1c3BlbmRG
b3JQYWdlQ2FjaGUoKQordm9pZCBET01XaW5kb3c6OnN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hl
KCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBpc1N1c3BlbmRpbmdPYnNlcnZlcnMobV9pc1N1
c3BlbmRpbmdPYnNlcnZlcnMsIHRydWUpOwogICAgIFJFTEVBU0VfQVNTRVJUKGZyYW1lKCkpOwog
CiAgICAgZm9yIChhdXRvKiBvYnNlcnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycykpIHsK
ICAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkKLSAgICAgICAgICAg
IG9ic2VydmVyLT5zdXNwZW5kRm9yUGFnZUNhY2hlKCk7CisgICAgICAgICAgICBvYnNlcnZlci0+
c3VzcGVuZEZvckJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICB9CiAgICAgUkVMRUFTRV9BU1NFUlQo
ZnJhbWUoKSk7CiAKICAgICBtX3N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbiA9IHRydWU7
CiB9CiAKLXZvaWQgRE9NV2luZG93OjpyZXN1bWVGcm9tUGFnZUNhY2hlKCkKK3ZvaWQgRE9NV2lu
ZG93OjpyZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7CiAgICAgZm9yIChhdXRvKiBvYnNl
cnZlciA6IGNvcHlUb1ZlY3RvcihtX29ic2VydmVycykpIHsKICAgICAgICAgaWYgKG1fb2JzZXJ2
ZXJzLmNvbnRhaW5zKG9ic2VydmVyKSkKLSAgICAgICAgICAgIG9ic2VydmVyLT5yZXN1bWVGcm9t
UGFnZUNhY2hlKCk7CisgICAgICAgICAgICBvYnNlcnZlci0+cmVzdW1lRnJvbUJhY2tGb3J3YXJk
Q2FjaGUoKTsKICAgICB9CiAKICAgICBtX3N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbiA9
IGZhbHNlOwpAQCAtMjA1Nyw3ICsyMDU3LDcgQEAgdm9pZCBET01XaW5kb3c6OmRlY3JlbWVudFNj
cm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMt
PmRvY3VtZW50KCk7CiAgICAgaWYgKCEtLW1fc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50ICYmIGRv
Y3VtZW50ID09ICZkb2N1bWVudC0+dG9wRG9jdW1lbnQoKSkgewogICAgICAgICBGcmFtZSogZnJh
bWUgPSB0aGlzLT5mcmFtZSgpOwotICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSAm
JiBkb2N1bWVudC0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUp
CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpICYmIGRvY3VtZW50LT5iYWNrRm9y
d2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKQogICAg
ICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxO
b3RpZmljYXRpb25zKCpmcmFtZSwgZmFsc2UpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5oCmluZGV4IDBkYTRmYjAzYjAyNjFjMDhjODc2M2I4YzhlMzVkNWE3ZDA3NjM4NGUuLmQzNjgy
MGFlM2VhYmYzNWM3YmE2OGM3MWVkNDlkZGU1YjJhYjUyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaApAQCAtMTIzLDggKzEyMyw4IEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZp
cnR1YWwgfk9ic2VydmVyKCkgeyB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRGb3JQ
YWdlQ2FjaGUoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHJlc3VtZUZyb21QYWdlQ2FjaGUo
KSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRGb3JCYWNrRm9yd2FyZENhY2hlKCkg
eyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIHsg
fQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hlZEZy
YW1lKCkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUdsb2JhbE9iamVjdElu
RnJhbWUoKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2hHbG9iYWxPYmplY3RG
cm9tRnJhbWUoKSB7IH0KQEAgLTEzNCw4ICsxMzQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJl
Z2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAgIHZvaWQgcmVzZXRVbmxlc3NTdXNwZW5k
ZWRGb3JEb2N1bWVudFN1c3BlbnNpb24oKTsKLSAgICB2b2lkIHN1c3BlbmRGb3JQYWdlQ2FjaGUo
KTsKLSAgICB2b2lkIHJlc3VtZUZyb21QYWdlQ2FjaGUoKTsKKyAgICB2b2lkIHN1c3BlbmRGb3JC
YWNrRm9yd2FyZENhY2hlKCk7CisgICAgdm9pZCByZXN1bWVGcm9tQmFja0ZvcndhcmRDYWNoZSgp
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIGZyYW1lKCkgY29uc3QgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmNwcAppbmRleCAyYjdiOGMzMmFl
Y2UwZDNhNDc4ZjdmMDNhZDEwMmIxZmJmOTk2ODc2Li41YzgyZTYwN2I0NWJiMTUzYjhiMDJmZTgy
MGU5YTk5OGViZjUzNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
d0V4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNp
b24uY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIEZyYW1lKiBET01XaW5kb3dFeHRlbnNpb246OmZyYW1l
KCkgY29uc3QKICAgICByZXR1cm4gbV93aW5kb3cgPyBtX3dpbmRvdy0+ZnJhbWUoKSA6IG51bGxw
dHI7CiB9CiAKLXZvaWQgRE9NV2luZG93RXh0ZW5zaW9uOjpzdXNwZW5kRm9yUGFnZUNhY2hlKCkK
K3ZvaWQgRE9NV2luZG93RXh0ZW5zaW9uOjpzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSgpCiB7
CiAgICAgLy8gQ2FsbGluZyBvdXQgdG8gdGhlIGNsaWVudCBtaWdodCByZXN1bHQgaW4gdGhpcyBE
T01XaW5kb3dFeHRlbnNpb24gYmVpbmcgZGVzdHJveWVkCiAgICAgLy8gd2hpbGUgdGhlcmUgaXMg
c3RpbGwgd29yayB0byBkby4KQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBET01XaW5kb3dFeHRlbnNp
b246OnN1c3BlbmRGb3JQYWdlQ2FjaGUoKQogICAgIG1fZGlzY29ubmVjdGVkRnJhbWUgPSBXVEZN
b3ZlKGZyYW1lKTsKIH0KIAotdm9pZCBET01XaW5kb3dFeHRlbnNpb246OnJlc3VtZUZyb21QYWdl
Q2FjaGUoKQordm9pZCBET01XaW5kb3dFeHRlbnNpb246OnJlc3VtZUZyb21CYWNrRm9yd2FyZENh
Y2hlKCkKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgQVNTRVJUKG1fZGlzY29ubmVjdGVk
RnJhbWUgPT0gZnJhbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvd0V4dGVuc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dFeHRlbnNpb24u
aAppbmRleCA0ODBkOThlZTE3MDM4NTM1NGU4MjhhN2E4ZDM2MzY0MjU3YjAzNjJmLi45NGVkNmNh
ZWRjM2E0ZjdjNTQ3Y2ZhNjgzOWM2YmI1MzcxMWQ0YTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93RXh0ZW5zaW9uLmgKQEAgLTQ0LDggKzQ0LDggQEAgcHVibGljOgogCiAgICAgV0VC
Q09SRV9FWFBPUlQgfkRPTVdpbmRvd0V4dGVuc2lvbigpOwogCi0gICAgdm9pZCBzdXNwZW5kRm9y
UGFnZUNhY2hlKCkgZmluYWw7Ci0gICAgdm9pZCByZXN1bWVGcm9tUGFnZUNhY2hlKCkgZmluYWw7
CisgICAgdm9pZCBzdXNwZW5kRm9yQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOworICAgIHZvaWQg
cmVzdW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbDsKICAgICB2b2lkIHdpbGxEZXN0cm95
R2xvYmFsT2JqZWN0SW5DYWNoZWRGcmFtZSgpIGZpbmFsOwogICAgIHZvaWQgd2lsbERlc3Ryb3lH
bG9iYWxPYmplY3RJbkZyYW1lKCkgZmluYWw7CiAgICAgdm9pZCB3aWxsRGV0YWNoR2xvYmFsT2Jq
ZWN0RnJvbUZyYW1lKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rp
YWdub3N0aWNMb2dnaW5nS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNM
b2dnaW5nS2V5cy5jcHAKaW5kZXggYjllNjE4NjQ4OWQ0OGZhZGZjYjkzNDViMjJkZjEwNzJhMWI1
NjVhOS4uOThiZDBjNzhjZDAwNmNkOWU4NjYwOTZhYjJkOTg3MGQ0NGI1NTNiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcApAQCAtMjA4LDE0ICsy
MDgsMTQgQEAgU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm90SW5NZW1vcnlDYWNoZUtl
eSgpCiAgICAgcmV0dXJuICJub3RJbk1lbW9yeUNhY2hlIl9zOwogfQogCi1TdHJpbmcgRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVLZXkoKQorU3RyaW5nIERpYWdub3N0aWNMb2dnaW5n
S2V5czo6YmFja0ZvcndhcmRDYWNoZUtleSgpCiB7Ci0gICAgcmV0dXJuICJwYWdlQ2FjaGUiX3M7
CisgICAgcmV0dXJuICJiYWNrRm9yd2FyZENhY2hlIl9zOwogfQogCi1TdHJpbmcgRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzOjpwYWdlQ2FjaGVGYWlsdXJlS2V5KCkKK1N0cmluZyBEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OmJhY2tGb3J3YXJkQ2FjaGVGYWlsdXJlS2V5KCkKIHsKLSAgICByZXR1cm4gInBh
Z2VDYWNoZUZhaWx1cmUiX3M7CisgICAgcmV0dXJuICJiYWNrRm9yd2FyZENhY2hlRmFpbHVyZSJf
czsKIH0KIAogU3RyaW5nIERpYWdub3N0aWNMb2dnaW5nS2V5czo6bm9Eb2N1bWVudExvYWRlcktl
eSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5
cy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaAppbmRleCBk
NDU5YzRkMjRmMzE0MTVlMjZkOThlNGRlNTgwMDQ1YmY2NWVjYWZiLi45NzJhMGRmYjM0NTgxYWEw
YTlkZmI2YWIyOTI1YTQ1Y2IwOWI1Y2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmgKQEAgLTExNCw4ICsxMTQsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFN0cmluZyBub3RJbk1lbW9yeUNhY2hlS2V5KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFN0cmluZyBvY2N1cnJlZEtleSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcg
b3RoZXJLZXkoKTsKLSAgICBzdGF0aWMgU3RyaW5nIHBhZ2VDYWNoZUtleSgpOwotICAgIHN0YXRp
YyBTdHJpbmcgcGFnZUNhY2hlRmFpbHVyZUtleSgpOworICAgIHN0YXRpYyBTdHJpbmcgYmFja0Zv
cndhcmRDYWNoZUtleSgpOworICAgIHN0YXRpYyBTdHJpbmcgYmFja0ZvcndhcmRDYWNoZUZhaWx1
cmVLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHBhZ2VDb250YWluc0F0TGVhc3RPbmVNZWRpYUVu
Z2luZUtleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcGFnZUNvbnRhaW5zQXRMZWFzdE9uZVBsdWdp
bktleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcGFnZUNvbnRhaW5zTWVkaWFFbmdpbmVLZXkoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKaW5kZXggNzE0ZTlkYzA4YjIxNTYyNjE3OTgx
MWYzMmE5M2U1M2Y3NjZjM2U4Zi4uZjFmNWIzMmIwNjY3NzAzZjIxMzQzYWZjOGY1Mjc1NzQ2MWFl
ZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKQEAgLTE0Myw3ICsxNDMsNyBA
QCB2b2lkIEV2ZW50U291cmNlOjpzY2hlZHVsZUluaXRpYWxDb25uZWN0KCkKIAogdm9pZCBFdmVu
dFNvdXJjZTo6c2NoZWR1bGVSZWNvbm5lY3QoKQogewotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhf
U0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JQYWdlQ2FjaGUpOworICAgIFJF
TEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JC
YWNrRm9yd2FyZENhY2hlKTsKICAgICBtX3N0YXRlID0gQ09OTkVDVElORzsKICAgICBtX2Nvbm5l
Y3RUaW1lci5zdGFydE9uZVNob3QoMV9tcyAqIG1fcmVjb25uZWN0RGVsYXkpOwogICAgIGRpc3Bh
dGNoRXJyb3JFdmVudCgpOwpAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRp
ZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXNwCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gQ09OTkVDVElORyk7CiAgICAgQVNTRVJUKG1f
cmVxdWVzdEluRmxpZ2h0KTsKLSAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKCFtX2lzU3VzcGVuZGVkRm9yUGFnZUNhY2hlKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFtX2lzU3VzcGVuZGVkRm9yQmFja0ZvcndhcmRDYWNo
ZSk7CiAKICAgICBpZiAoIXJlc3BvbnNlSXNWYWxpZChyZXNwb25zZSkpIHsKICAgICAgICAgZG9F
eHBsaWNpdExvYWRDYW5jZWxsYXRpb24oKTsKQEAgLTIyMSw3ICsyMjEsNyBAQCB2b2lkIEV2ZW50
U291cmNlOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewog
ICAgIEFTU0VSVChtX3N0YXRlID09IE9QRU4pOwogICAgIEFTU0VSVChtX3JlcXVlc3RJbkZsaWdo
dCk7Ci0gICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1
c3BlbmRlZEZvclBhZ2VDYWNoZSk7CisgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgYXBw
ZW5kKG1fcmVjZWl2ZUJ1ZmZlciwgbV9kZWNvZGVyLT5kZWNvZGUoZGF0YSwgbGVuZ3RoKSk7CiAg
ICAgcGFyc2VFdmVudFN0cmVhbSgpOwpAQCAtMjMxLDcgKzIzMSw3IEBAIHZvaWQgRXZlbnRTb3Vy
Y2U6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZykKIHsKICAgICBBU1NFUlQobV9zdGF0
ZSA9PSBPUEVOKTsKICAgICBBU1NFUlQobV9yZXF1ZXN0SW5GbGlnaHQpOwotICAgIFJFTEVBU0Vf
QVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JQYWdlQ2Fj
aGUpOworICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNT
dXNwZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGFwcGVuZChtX3JlY2VpdmVCdWZm
ZXIsIG1fZGVjb2Rlci0+Zmx1c2goKSk7CiAgICAgcGFyc2VFdmVudFN0cmVhbSgpOwpAQCAtMjU5
LDcgKzI1OSw3IEBAIHZvaWQgRXZlbnRTb3VyY2U6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiAgICAgQVNTRVJUKG1fcmVxdWVzdEluRmxpZ2h0KTsKIAogICAgIC8vIFRoaXMg
aXMgdGhlIGNhc2Ugd2hlcmUgdGhlIGxvYWQgZ2V0cyBjYW5jZWxsZWQgb24gbmF2aWdhdGluZyBh
d2F5LiBXZSBvbmx5IGZpcmUgYW4gZXJyb3IgZXZlbnQgYW5kIGF0dGVtcHQgdG8gcmVjb25uZWN0
Ci0gICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcgcmVzdW1lZCBmcm9tIHBhZ2UgY2FjaGUuCisg
ICAgLy8gaWYgd2UgZW5kIHVwIGdldHRpbmcgcmVzdW1lZCBmcm9tIGJhY2svZm9yd2FyZCBjYWNo
ZS4KICAgICBpZiAoZXJyb3IuaXNDYW5jZWxsYXRpb24oKSAmJiAhbV9pc0RvaW5nRXhwbGljaXRD
YW5jZWxsYXRpb24pIHsKICAgICAgICAgbV9zaG91bGRSZWNvbm5lY3RPblJlc3VtZSA9IHRydWU7
CiAgICAgICAgIG1fcmVxdWVzdEluRmxpZ2h0ID0gZmFsc2U7CkBAIC0yNzcsNyArMjc3LDcgQEAg
dm9pZCBFdmVudFNvdXJjZTo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHZv
aWQgRXZlbnRTb3VyY2U6OmFib3J0Q29ubmVjdGlvbkF0dGVtcHQoKQogewogICAgIEFTU0VSVCht
X3N0YXRlID09IENPTk5FQ1RJTkcpOwotICAgIFJFTEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlf
SU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JQYWdlQ2FjaGUpOworICAgIFJFTEVBU0VfQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW1faXNTdXNwZW5kZWRGb3JCYWNrRm9yd2Fy
ZENhY2hlKTsKIAogICAgIGlmIChtX3JlcXVlc3RJbkZsaWdodCkKICAgICAgICAgZG9FeHBsaWNp
dExvYWRDYW5jZWxsYXRpb24oKTsKQEAgLTQxMCwxOSArNDEwLDE5IEBAIGJvb2wgRXZlbnRTb3Vy
Y2U6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKSBjb25zdAogCiB2b2lkIEV2ZW50
U291cmNlOjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogewotICAgIGlmIChy
ZWFzb24gIT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6UGFnZUNhY2hlKQorICAgIGlmIChyZWFzb24g
IT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSA9IHRydWU7Ci0gICAgUkVMRUFTRV9B
U1NFUlRfV0lUSF9NRVNTQUdFKCFtX3JlcXVlc3RJbkZsaWdodCwgIkxvYWRzIGdldCBjYW5jZWxs
ZWQgYmVmb3JlIGVudGVyaW5nIFBhZ2VDYWNoZS4iKTsKKyAgICBtX2lzU3VzcGVuZGVkRm9yQmFj
a0ZvcndhcmRDYWNoZSA9IHRydWU7CisgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKCFt
X3JlcXVlc3RJbkZsaWdodCwgIkxvYWRzIGdldCBjYW5jZWxsZWQgYmVmb3JlIGVudGVyaW5nIHRo
ZSBCYWNrRm9yd2FyZENhY2hlLiIpOwogfQogCiB2b2lkIEV2ZW50U291cmNlOjpyZXN1bWUoKQog
ewotICAgIGlmICghbV9pc1N1c3BlbmRlZEZvclBhZ2VDYWNoZSkKKyAgICBpZiAoIW1faXNTdXNw
ZW5kZWRGb3JCYWNrRm9yd2FyZENhY2hlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2lzU3Vz
cGVuZGVkRm9yUGFnZUNhY2hlID0gZmFsc2U7CisgICAgbV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3
YXJkQ2FjaGUgPSBmYWxzZTsKICAgICBpZiAoc3RkOjpleGNoYW5nZShtX3Nob3VsZFJlY29ubmVj
dE9uUmVzdW1lLCBmYWxzZSkpIHsKICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5w
b3N0VGFzayhbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhp
cyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CiAgICAgICAgICAgICBpZiAoIWlzQ29udGV4
dFN0b3BwZWQoKSkKQEAgLTQzMyw3ICs0MzMsNyBAQCB2b2lkIEV2ZW50U291cmNlOjpyZXN1bWUo
KQogCiB2b2lkIEV2ZW50U291cmNlOjpkaXNwYXRjaE1lc3NhZ2VFdmVudCgpCiB7Ci0gICAgUkVM
RUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighbV9pc1N1c3BlbmRlZEZvclBh
Z2VDYWNoZSk7CisgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTigh
bV9pc1N1c3BlbmRlZEZvckJhY2tGb3J3YXJkQ2FjaGUpOwogCiAgICAgaWYgKCFtX2N1cnJlbnRs
eVBhcnNlZEV2ZW50SWQuaXNOdWxsKCkpCiAgICAgICAgIG1fbGFzdEV2ZW50SWQgPSBXVEZNb3Zl
KG1fY3VycmVudGx5UGFyc2VkRXZlbnRJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmgKaW5k
ZXggZDc4MTAxM2U1OWNiNmY4NjVkZGZiNWQ0ZmIwYzM4NTFkMWVkNzA4ZS4uMzU1OTE0NGY3ZWQy
MjlhYWM1MGYwN2E0YjU0YjU3NDhjZWViMzcwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudFNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2Uu
aApAQCAtMTE4LDcgKzExOCw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFVDaGFyPiBtX3JlY2Vp
dmVCdWZmZXI7CiAgICAgYm9vbCBtX2Rpc2NhcmRUcmFpbGluZ05ld2xpbmUgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9yZXF1ZXN0SW5GbGlnaHQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1N1c3Bl
bmRlZEZvclBhZ2VDYWNoZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzU3VzcGVuZGVkRm9yQmFj
a0ZvcndhcmRDYWNoZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzRG9pbmdFeHBsaWNpdENhbmNl
bGxhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFJlY29ubmVjdE9uUmVzdW1lIHsg
ZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA2NDY2YTYwMjI2MmVmNjM2N2ZmMWJl
M2M2YTk1MzEyMzE1ZmZmNmJiLi42ZjA3N2M0MGJmOTMyNTUyMDIzYjdjZDI1ZGE1MTk1NzYyM2Ex
MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZy
YW1lLmgiCiAKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgorI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJDU1NBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmgiCkBAIC03Myw3ICs3NCw2IEBACiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIK
ICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUg
IlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUgIlByb2Nlc3NXYXJtaW5nLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCkBAIC0y
MzAsNyArMjMwLDcgQEAgdm9pZCBGcmFtZTo6c2V0VmlldyhSZWZQdHI8RnJhbWVWaWV3PiYmIHZp
ZXcpCiAgICAgLy8gUHJlcGFyZSBmb3IgZGVzdHJ1Y3Rpb24gbm93LCBzbyBhbnkgdW5sb2FkIGV2
ZW50IGhhbmRsZXJzIGdldCBydW4gYW5kIHRoZSBET01XaW5kb3cgaXMKICAgICAvLyBub3RpZmll
ZC4gSWYgd2Ugd2FpdCB1bnRpbCB0aGUgdmlldyBpcyBkZXN0cm95ZWQsIHRoZW4gdGhpbmdzIHdv
bid0IGJlIGhvb2tlZCB1cCBlbm91Z2ggZm9yCiAgICAgLy8gdGhlc2UgY2FsbHMgdG8gd29yay4K
LSAgICBpZiAoIXZpZXcgJiYgbV9kb2MgJiYgbV9kb2MtPnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9j
dW1lbnQ6OkluUGFnZUNhY2hlKQorICAgIGlmICghdmlldyAmJiBtX2RvYyAmJiBtX2RvYy0+YmFj
a0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6OkluQmFja0ZvcndhcmRDYWNoZSkKICAg
ICAgICAgbV9kb2MtPnByZXBhcmVGb3JEZXN0cnVjdGlvbigpOwogICAgIAogICAgIGlmIChtX3Zp
ZXcpCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBGcmFtZTo6c2V0RG9jdW1lbnQoUmVmUHRyPERv
Y3VtZW50PiYmIG5ld0RvY3VtZW50KQogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKG1fZG9jICYm
IG1fZG9jLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpJblBhZ2VDYWNoZSkKKyAgICBp
ZiAobV9kb2MgJiYgbV9kb2MtPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpJ
bkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIG1fZG9jLT5wcmVwYXJlRm9yRGVzdHJ1Y3Rpb24o
KTsKIAogICAgIG1fZG9jID0gbmV3RG9jdW1lbnQuY29weVJlZigpOwpAQCAtNzA2LDcgKzcwNiw3
IEBAIHZvaWQgRnJhbWU6OndpbGxEZXRhY2hQYWdlKCkKICAgICAvLyAtIFdoZW4gY2FsbGluZyBG
cmFtZTo6c2V0VmlldygpIHdpdGggYSBudWxsIEZyYW1lVmlldyouIFRoaXMgaXMgYWx3YXlzIGRv
bmUgYmVmb3JlIGNhbGxpbmcKICAgICAvLyAgIEZyYW1lOjp3aWxsRGV0YWNoUGFnZSAodGhpcyBm
dW5jdGlvbi4pIEhlbmNlIHRoZSBhc3NlcnRpb24gYmVsb3cuCiAgICAgLy8KLSAgICAvLyAtIFdo
ZW4gYWRkaW5nIGEgZG9jdW1lbnQgdG8gdGhlIHBhZ2UgY2FjaGUsIHRoZSB0cmVlIGlzIHRvcm4g
ZG93biBiZWZvcmUgaW5zdGFudGlhdGluZworICAgIC8vIC0gV2hlbiBhZGRpbmcgYSBkb2N1bWVu
dCB0byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0aGUgdHJlZSBpcyB0b3JuIGRvd24gYmVmb3Jl
IGluc3RhbnRpYXRpbmcKICAgICAvLyAgIHRoZSBDYWNoZWRQYWdlK0NhY2hlZEZyYW1lIG9iamVj
dCB0cmVlLgogICAgIEFTU0VSVCghZG9jdW1lbnQoKSB8fCAhZG9jdW1lbnQoKS0+cmVuZGVyVmll
dygpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBiMGEzZTU2NDgxNjUxNGU0
ZDAxMjQ3NjZmNmQ1MzY4Y2ZiZTM5YTc5Li43OGMzZGI0NTNjZDk1NTlkZTg5NzgxMTc0MTI0Y2Iy
ZTQ4MWU5MjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisj
aW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkNTU0FuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgpAQCAtNjksNyArNzAsNiBAQAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgi
CiAjaW5jbHVkZSAiT3ZlcmZsb3dFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRl
ICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5o
IgpAQCAtNTUzLDkgKzU1Myw5IEBAIFJlZjxTY3JvbGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Ny
b2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogICAgIHJldHVybiBTY3Jv
bGxWaWV3OjpjcmVhdGVTY3JvbGxiYXIob3JpZW50YXRpb24pOwogfQogCi12b2lkIEZyYW1lVmll
dzo6ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKQordm9pZCBGcmFtZVZpZXc6OmRpZFJlc3RvcmVG
cm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7Ci0gICAgLy8gV2hlbiByZXN0b3JpbmcgZnJvbSBwYWdl
IGNhY2hlLCB0aGUgbWFpbiBmcmFtZSBzdGF5cyBpbiBwbGFjZSB3aGlsZSBzdWJmcmFtZXMgZ2V0
IHN3YXBwZWQgaW4uCisgICAgLy8gV2hlbiByZXN0b3JpbmcgZnJvbSBiYWNrL2ZvcndhcmQgY2Fj
aGUsIHRoZSBtYWluIGZyYW1lIHN0YXlzIGluIHBsYWNlIHdoaWxlIHN1YmZyYW1lcyBnZXQgc3dh
cHBlZCBpbi4KICAgICAvLyBXZSB1cGRhdGUgdGhlIHNjcm9sbGFibGUgYXJlYSBzZXQgdG8gZW5z
dXJlIHRoYXQgc2Nyb2xsaW5nIGRhdGEgc3RydWN0dXJlcyBnZXQgaW52YWxpZGF0ZWQuCiAgICAg
dXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoKTsKIH0KQEAgLTYwMSw3ICs2MDEsNyBAQCB2b2lkIEZy
YW1lVmlldzo6c2V0Q29udGVudHNTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAKICAgICBpZiAo
ZnJhbWUoKS5pc01haW5GcmFtZSgpKSB7CiAgICAgICAgIHBhZ2UtPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmRpZENoYW5nZURvY3VtZW50U2l6ZSgpOwotICAgICAgICBQYWdlQ2FjaGU6OnNpbmds
ZXRvbigpLm1hcmtQYWdlc0ZvckNvbnRlbnRzU2l6ZUNoYW5nZWQoKnBhZ2UpOworICAgICAgICBC
YWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5tYXJrUGFnZXNGb3JDb250ZW50c1NpemVDaGFu
Z2VkKCpwYWdlKTsKICAgICB9CiAgICAgbGF5b3V0Q29udGV4dCgpLmVuYWJsZVNldE5lZWRzTGF5
b3V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA0MDc4ZWVmN2Y4MzhhY2NhMzgz
Y2MxZDVlNzdlZDhiNTA4NzQzOTVkLi5lZjUxOTQzMmU0MmRiNTNhOGM1MTI1MzlhYzNkNzU1ZjM2
YTVkMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTU1NCw3ICs1NTQsNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBQYWdlIGFuZCBGcmFtZVZpZXcgYm90aCBzdG9yZSBhIFBhZ2luYXRpb24g
dmFsdWUuIFBhZ2U6OnBhZ2luYXRpb24oKSBpcyBzZXQgb25seSBieSBBUEksCiAgICAgLy8gYW5k
IEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIGlzIHNldCBvbmx5IGJ5IENTUy4gUGFnZTo6cGFnaW5h
dGlvbigpIHdpbGwgYWZmZWN0IGFsbAotICAgIC8vIEZyYW1lVmlld3MgaW4gdGhlIHBhZ2UgY2Fj
aGUsIGJ1dCBGcmFtZVZpZXc6OnBhZ2luYXRpb24oKSBvbmx5IGFmZmVjdHMgdGhlIGN1cnJlbnQK
KyAgICAvLyBGcmFtZVZpZXdzIGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGJ1dCBGcmFtZVZp
ZXc6OnBhZ2luYXRpb24oKSBvbmx5IGFmZmVjdHMgdGhlIGN1cnJlbnQKICAgICAvLyBGcmFtZVZp
ZXcuIEZyYW1lVmlldzo6cGFnaW5hdGlvbigpIHdpbGwgcmV0dXJuIG1fcGFnaW5hdGlvbiBpZiBp
dCBoYXMgYmVlbiBzZXQuIE90aGVyd2lzZSwKICAgICAvLyBpdCB3aWxsIHJldHVybiBQYWdlOjpw
YWdpbmF0aW9uKCkgc2luY2UgY3VycmVudGx5IHRoZXJlIGFyZSBubyBjYWxsZXJzIHRoYXQgbmVl
ZCB0bwogICAgIC8vIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHR3by4KQEAgLTY0Myw3ICs2NDMs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxi
YXJPbkxlZnQoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2Fj
aGUoKTsKKyAgICB2b2lkIGRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAg
dm9pZCB3aWxsRGVzdHJveVJlbmRlclRyZWUoKTsKICAgICB2b2lkIGRpZERlc3Ryb3lSZW5kZXJU
cmVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNw
cAppbmRleCAzMjJmNjc5N2I5NDZkMWRjOWNkNThmODI4ODYwZGJhZGNiZDcxZjQxLi4xYzllMzE1
NWFlNjgxYWQ1MGM0NzJmZjliYzEzZWZjMzRmNjEzMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTE0NSw4ICsxNDUsOCBAQCB2b2lk
IEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCgpCiAgICAgQVNTRVJUKCF2aWV3KCkuaXNQ
YWludGluZygpKTsKICAgICBBU1NFUlQoZnJhbWUoKS52aWV3KCkgPT0gJnZpZXcoKSk7CiAgICAg
QVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQoKSk7Ci0gICAgQVNTRVJUKGZyYW1lKCkuZG9jdW1lbnQo
KS0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUKLSAgICAgICAg
fHwgZnJhbWUoKS5kb2N1bWVudCgpLT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpBYm91
dFRvRW50ZXJQYWdlQ2FjaGUpOworICAgIEFTU0VSVChmcmFtZSgpLmRvY3VtZW50KCktPmJhY2tG
b3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUKKyAg
ICAgICAgfHwgZnJhbWUoKS5kb2N1bWVudCgpLT5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBE
b2N1bWVudDo6QWJvdXRUb0VudGVyQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgaWYgKCFjYW5QZXJm
b3JtTGF5b3V0KCkpIHsKICAgICAgICAgTE9HKExheW91dCwgIiAgaXMgbm90IGFsbG93ZWQsIGJh
aWxpbmciKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzM0LDcgKzMzNCw3IEBAIHZvaWQgRnJhbWVW
aWV3TGF5b3V0Q29udGV4dDo6ZGlzYWJsZVNldE5lZWRzTGF5b3V0KCkKIAogdm9pZCBGcmFtZVZp
ZXdMYXlvdXRDb250ZXh0OjpzY2hlZHVsZUxheW91dCgpCiB7Ci0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBhc3NlcnQgdGhlIHBhZ2UgaXMgbm90IGluIHRoZSBwYWdlIGNhY2hlLCBidXQgdGhhdCBp
cyBjYXVzaW5nCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhlIHBhZ2UgaXMgbm90
IGluIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUsIGJ1dCB0aGF0IGlzIGNhdXNpbmcKICAgICAvLyB0
b28gbWFueSBmYWxzZSBhc3NlcnRpb25zLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzcyMTgxMTg+Lgog
ICAgIEFTU0VSVChmcmFtZSgpLnZpZXcoKSA9PSAmdmlldygpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWVtb3J5UmVsZWFzZS5jcHAKaW5kZXggMGQ3M2U0YjM0MTY0ZjllNTdlN2ZjMzA1YTdiZmE3MjZk
MDdkYzY4OC4uZTZiNGUwNGViZWZjNWI0ZmE1YTRjNzNmOTVhNzE3MTYyZTU3YWE5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTWVtb3J5UmVsZWFzZS5oIgogCisjaW5jbHVkZSAiQmFj
a0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkNTU0ZvbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCkBAIC00
Miw3ICs0Myw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hl
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1ZGUg
IlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVGhyZWFkLmgiCiAjaW5jbHVkZSAi
U3R5bGVTY29wZS5oIgpAQCAtNzcsMTIgKzc3LDEyIEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VOb25j
cml0aWNhbE1lbW9yeShNYWludGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCiAg
ICAgSW5saW5lU3R5bGVTaGVldE93bmVyOjpjbGVhckNhY2hlKCk7CiB9CiAKLXN0YXRpYyB2b2lk
IHJlbGVhc2VDcml0aWNhbE1lbW9yeShTeW5jaHJvbm91cyBzeW5jaHJvbm91cywgTWFpbnRhaW5Q
YWdlQ2FjaGUgbWFpbnRhaW5QYWdlQ2FjaGUsIE1haW50YWluTWVtb3J5Q2FjaGUgbWFpbnRhaW5N
ZW1vcnlDYWNoZSkKK3N0YXRpYyB2b2lkIHJlbGVhc2VDcml0aWNhbE1lbW9yeShTeW5jaHJvbm91
cyBzeW5jaHJvbm91cywgTWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlIG1haW50YWluQmFja0Zvcndh
cmRDYWNoZSwgTWFpbnRhaW5NZW1vcnlDYWNoZSBtYWludGFpbk1lbW9yeUNhY2hlKQogewogICAg
IC8vIFJpZ2h0IG5vdywgdGhlIG9ubHkgcmVhc29uIHdlIGNhbGwgcmVsZWFzZSBjcml0aWNhbCBt
ZW1vcnkgd2hpbGUgbm90IHVuZGVyIG1lbW9yeSBwcmVzc3VyZSBpcyBpZiB0aGUgcHJvY2VzcyBp
cyBhYm91dCB0byBiZSBzdXNwZW5kZWQuCi0gICAgaWYgKG1haW50YWluUGFnZUNhY2hlID09IE1h
aW50YWluUGFnZUNhY2hlOjpObykgeworICAgIGlmIChtYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUg
PT0gTWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlOjpObykgewogICAgICAgICBQcnVuaW5nUmVhc29u
IHBydW5pbmdSZWFzb24gPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpLmlzVW5k
ZXJNZW1vcnlQcmVzc3VyZSgpID8gUHJ1bmluZ1JlYXNvbjo6TWVtb3J5UHJlc3N1cmUgOiBQcnVu
aW5nUmVhc29uOjpQcm9jZXNzU3VzcGVuZGVkOwotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRv
bigpLnBydW5lVG9TaXplTm93KDAsIHBydW5pbmdSZWFzb24pOworICAgICAgICBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBwcnVuaW5nUmVhc29uKTsKICAg
ICB9CiAKICAgICBpZiAobWFpbnRhaW5NZW1vcnlDYWNoZSA9PSBNYWludGFpbk1lbW9yeUNhY2hl
OjpObykgewpAQCAtMTE4LDE0ICsxMTgsMTQgQEAgc3RhdGljIHZvaWQgcmVsZWFzZUNyaXRpY2Fs
TWVtb3J5KFN5bmNocm9ub3VzIHN5bmNocm9ub3VzLCBNYWludGFpblBhZ2VDYWNoZSBtYWkKICAg
ICB9CiB9CiAKLXZvaWQgcmVsZWFzZU1lbW9yeShDcml0aWNhbCBjcml0aWNhbCwgU3luY2hyb25v
dXMgc3luY2hyb25vdXMsIE1haW50YWluUGFnZUNhY2hlIG1haW50YWluUGFnZUNhY2hlLCBNYWlu
dGFpbk1lbW9yeUNhY2hlIG1haW50YWluTWVtb3J5Q2FjaGUpCit2b2lkIHJlbGVhc2VNZW1vcnko
Q3JpdGljYWwgY3JpdGljYWwsIFN5bmNocm9ub3VzIHN5bmNocm9ub3VzLCBNYWludGFpbkJhY2tG
b3J3YXJkQ2FjaGUgbWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlLCBNYWludGFpbk1lbW9yeUNhY2hl
IG1haW50YWluTWVtb3J5Q2FjaGUpCiB7CiAgICAgVHJhY2VTY29wZSBzY29wZShNZW1vcnlQcmVz
c3VyZUhhbmRsZXJTdGFydCwgTWVtb3J5UHJlc3N1cmVIYW5kbGVyRW5kLCBzdGF0aWNfY2FzdDx1
aW50NjRfdD4oY3JpdGljYWwpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc3luY2hyb25vdXMpKTsK
IAogICAgIGlmIChjcml0aWNhbCA9PSBDcml0aWNhbDo6WWVzKSB7CiAgICAgICAgIC8vIFJldHVy
biB1bnVzZWQgcGFnZXMgYmFjayB0byB0aGUgT1Mgbm93IGFzIHRoaXMgd2lsbCBsaWtlbHkgZ2l2
ZSB1cyBhIGxpdHRsZSBtZW1vcnkgdG8gd29yayB3aXRoLgogICAgICAgICBXVEY6OnJlbGVhc2VG
YXN0TWFsbG9jRnJlZU1lbW9yeSgpOwotICAgICAgICByZWxlYXNlQ3JpdGljYWxNZW1vcnkoc3lu
Y2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hlLCBtYWludGFpbk1lbW9yeUNhY2hlKTsKKyAgICAg
ICAgcmVsZWFzZUNyaXRpY2FsTWVtb3J5KHN5bmNocm9ub3VzLCBtYWludGFpbkJhY2tGb3J3YXJk
Q2FjaGUsIG1haW50YWluTWVtb3J5Q2FjaGUpOwogICAgIH0KIAogICAgIHJlbGVhc2VOb25jcml0
aWNhbE1lbW9yeShtYWludGFpbk1lbW9yeUNhY2hlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxl
YXNlLmgKaW5kZXggM2UwNmIzMDQ5Mzc5ZDE2YzA4OGIxZTg3N2YwNmQ0ZjMxYmY5NjVhMi4uNmU1
ZWJkODg1YzRjNjA3MzI0MjJkZWE3MGI5MWNlYzI0MjQxMGEyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9N
ZW1vcnlSZWxlYXNlLmgKQEAgLTI5LDEwICsyOSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWVudW0gY2xhc3MgTWFpbnRhaW5QYWdlQ2FjaGUgOiBib29sIHsgTm8sIFllcyB9OworZW51
bSBjbGFzcyBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgOiBib29sIHsgTm8sIFllcyB9OwogZW51
bSBjbGFzcyBNYWludGFpbk1lbW9yeUNhY2hlIDogYm9vbCB7IE5vLCBZZXMgfTsKIAotV0VCQ09S
RV9FWFBPUlQgdm9pZCByZWxlYXNlTWVtb3J5KENyaXRpY2FsLCBTeW5jaHJvbm91cywgTWFpbnRh
aW5QYWdlQ2FjaGUgPSBNYWludGFpblBhZ2VDYWNoZTo6Tm8sIE1haW50YWluTWVtb3J5Q2FjaGUg
PSBNYWludGFpbk1lbW9yeUNhY2hlOjpObyk7CitXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VN
ZW1vcnkoQ3JpdGljYWwsIFN5bmNocm9ub3VzLCBNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGUgPSBN
YWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6Ok5vLCBNYWludGFpbk1lbW9yeUNhY2hlID0gTWFpbnRh
aW5NZW1vcnlDYWNoZTo6Tm8pOwogdm9pZCBwbGF0Zm9ybVJlbGVhc2VNZW1vcnkoQ3JpdGljYWwp
Owogdm9pZCBqZXR0aXNvbkV4cGVuc2l2ZU9iamVjdHNPblRvcExldmVsTmF2aWdhdGlvbigpOwog
V0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3Rlck1lbW9yeVJlbGVhc2VOb3RpZnlDYWxsYmFja3Mo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDYzY2I1ZmY2NGQ4NWViM2U1YzUxZTc5NDA1MTk1MjU4
MmYyZDA1MTQuLjNmMTQ2N2JlMWMwYWVkMjEyNWIzNzc3NWIwYmE1NTY0NTNhN2VlYjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25TdGF0ZUNoYW5nZUxpc3RlbmVyLmgi
CiAjaW5jbHVkZSAiQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgiCisjaW5jbHVkZSAiQmFja0Zv
cndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ2xpZW50LmgiCiAjaW5jbHVkZSAi
QmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uQ29udHJvbGxl
ci5oIgpAQCAtNzMsNyArNzQsNiBAQAogI2luY2x1ZGUgIkxvd1Bvd2VyTW9kZU5vdGlmaWVyLmgi
CiAjaW5jbHVkZSAiTWVkaWFDYW5TdGFydExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9y
LmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbmZpZ3VyYXRpb24u
aCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dh
YmxlLmgiCkBAIC0zNTksNyArMzU5LDcgQEAgUGFnZTo6flBhZ2UoKQogCiAgICAgYmFja0Zvcndh
cmQoKS5jbG9zZSgpOwogICAgIGlmICghaXNVdGlsaXR5UGFnZSgpKQotICAgICAgICBQYWdlQ2Fj
aGU6OnNpbmdsZXRvbigpLnJlbW92ZUFsbEl0ZW1zRm9yUGFnZSgqdGhpcyk7CisgICAgICAgIEJh
Y2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92ZUFsbEl0ZW1zRm9yUGFnZSgqdGhpcyk7
CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgcGFnZUNvdW50ZXIuZGVjcmVtZW50KCk7CkBAIC0xMDcx
LDcgKzEwNzEsNyBAQCB2b2lkIFBhZ2U6OnNldFZpZXdTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV92aWV3U2NhbGVGYWN0b3IgPSBzY2FsZTsKLSAgICBQ
YWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdl
ZCgqdGhpcyk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9y
RGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlzKTsKIH0KIAogdm9pZCBQYWdlOjpzZXREZXZp
Y2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvcikKQEAgLTEwODcsNyArMTA4Nyw3IEBAIHZv
aWQgUGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgc2V0
TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7CiAKICAgICBtYWluRnJhbWUoKS5kZXZpY2VP
clBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKLSAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLm1h
cmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCgqdGhpcyk7CisgICAgQmFja0Zvcndh
cmRDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2Vk
KCp0aGlzKTsKIAogICAgIHBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRpZENoYW5nZURldmljZVNj
YWxlRmFjdG9yKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDk5YTVlZWI1ZjRhZjQyOGU4MjQyZTBm
MTY3MzkxODk2ZmMzMjFlMDUuLjgzMWYwYTA3YzBmNjRiZDczODlhN2QxNTM0ZDQxZjQ5YTFlYzcw
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC00MTMsNyArNDEzLDcgQEAgcHVibGljOgogCiAgICAgLy8g
UGFnZSBhbmQgRnJhbWVWaWV3IGJvdGggc3RvcmUgYSBQYWdpbmF0aW9uIHZhbHVlLiBQYWdlOjpw
YWdpbmF0aW9uKCkgaXMgc2V0IG9ubHkgYnkgQVBJLAogICAgIC8vIGFuZCBGcmFtZVZpZXc6OnBh
Z2luYXRpb24oKSBpcyBzZXQgb25seSBieSBDU1MuIFBhZ2U6OnBhZ2luYXRpb24oKSB3aWxsIGFm
ZmVjdCBhbGwKLSAgICAvLyBGcmFtZVZpZXdzIGluIHRoZSBwYWdlIGNhY2hlLCBidXQgRnJhbWVW
aWV3OjpwYWdpbmF0aW9uKCkgb25seSBhZmZlY3RzIHRoZSBjdXJyZW50CisgICAgLy8gRnJhbWVW
aWV3cyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCBidXQgRnJhbWVWaWV3OjpwYWdpbmF0aW9u
KCkgb25seSBhZmZlY3RzIHRoZSBjdXJyZW50CiAgICAgLy8gRnJhbWVWaWV3LgogICAgIGNvbnN0
IFBhZ2luYXRpb24mIHBhZ2luYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3BhZ2luYXRpb247IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBhZ2luYXRpb24oY29uc3QgUGFnaW5hdGlvbiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCmluZGV4IDY0YTNkMzc4MGI0MjgxZWViYTg5M2Fj
ZTM1N2ZiZWM1OTM5MGM3OTAuLjQ3NGIwMjk1MDcxNGM0MWMyNmVmYTk1MmY2ZTE2MjMyZDkwMDdm
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAKQEAgLTI2LDExICsyNiwxMSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogCisjaW5jbHVkZSAiQmFj
a0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5j
bHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBJbmxpbmVzLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvU3RydWN0dXJlSW5saW5lcy5oPgpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgUGFnZUdyb3Vw
OjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKIHsKICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBt
X3BhZ2VzKQogICAgICAgICBwYWdlLT5jYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7Ci0gICAg
UGFnZUNhY2hlOjpzaW5nbGV0b24oKS5tYXJrUGFnZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFu
Z2VkKCk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yQ2Fw
dGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwogfQogCiBDYXB0aW9uVXNlclByZWZlcmVuY2VzJiBQ
YWdlR3JvdXA6OmNhcHRpb25QcmVmZXJlbmNlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlTG9nZ2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlTG9nZ2luZy5jcHAKaW5kZXggYjkwNGMyM2VkYmVhYzc0MTJmMDliMGMzM2I1OWNhMWZj
YjI3MDE3ZC4uMzZlMzhkNDc5MTdlM2YyY2RiOWRkYThjMDBiYjJkNTJhZDRiNjMwMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nLmNwcApAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlTG9nZ2luZy5oIgog
CisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIkNvbW1vblZNLmgiCiAj
aW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTM1LDcgKzM2
LDYgQEAKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTksOCArNTksOCBAQCBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzaXplX3Q+IFBl
cmZvcm1hbmNlTG9nZ2luZzo6bWVtb3J5VXNhZ2VTdGF0aXN0aWNzKFNob3VsZEluYwogICAgIHN0
YXRzLmFkZCgiamF2YXNjcmlwdF9nY19oZWFwX2NhcGFjaXR5Iiwgdm0uaGVhcC5jYXBhY2l0eSgp
KTsKICAgICBzdGF0cy5hZGQoImphdmFzY3JpcHRfZ2NfaGVhcF9leHRyYV9tZW1vcnlfc2l6ZSIs
IHZtLmhlYXAuZXh0cmFNZW1vcnlTaXplKCkpOwogCi0gICAgYXV0byYgcGFnZUNhY2hlID0gUGFn
ZUNhY2hlOjpzaW5nbGV0b24oKTsKLSAgICBzdGF0cy5hZGQoInBhZ2VjYWNoZV9wYWdlX2NvdW50
IiwgcGFnZUNhY2hlLnBhZ2VDb3VudCgpKTsKKyAgICBhdXRvJiBiYWNrRm9yd2FyZENhY2hlID0g
QmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCk7CisgICAgc3RhdHMuYWRkKCJiYWNrZm9yd2Fy
ZF9jYWNoZV9wYWdlX2NvdW50IiwgYmFja0ZvcndhcmRDYWNoZS5wYWdlQ291bnQoKSk7CiAKICAg
ICBzdGF0cy5hZGQoImRvY3VtZW50X2NvdW50IiwgRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpLnNp
emUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCA4OGMzNzg5Y2IxMzViZDJk
NjAwODA3MWQ1NTI4NjJiMzVlZDEzNzgzLi4zNTc3MGFmYjBlMzY1YWZmOTExYWFjMWY1ZmZhZDE2
Mzg4M2VjYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC0xNzcsNyArMTc3LDcg
QEAgdHJlYXRzQW55VGV4dENTU0xpbmtBc1N0eWxlc2hlZXQ6CiAgIGluaXRpYWw6IGZhbHNlCiBz
aHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0OgogICBpbml0aWFsOiB0cnVlCi1wYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnM6CitiYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zOgogICBpbml0
aWFsOiBmYWxzZQogc2hvd3NVUkxzSW5Ub29sVGlwczoKICAgaW5pdGlhbDogZmFsc2UKQEAgLTcx
Niw5ICs3MTYsOSBAQCBwbHVnaW5zRW5hYmxlZDoKICAgZ2V0dGVyOiBhcmVQbHVnaW5zRW5hYmxl
ZAogICBvbkNoYW5nZTogcGx1Z2luc0VuYWJsZWRDaGFuZ2VkCiAKLXVzZXNQYWdlQ2FjaGU6Cit1
c2VzQmFja0ZvcndhcmRDYWNoZToKICAgaW5pdGlhbDogZmFsc2UKLSAgb25DaGFuZ2U6IHVzZXNQ
YWdlQ2FjaGVDaGFuZ2VkCisgIG9uQ2hhbmdlOiB1c2VzQmFja0ZvcndhcmRDYWNoZUNoYW5nZWQK
IAogZG5zUHJlZmV0Y2hpbmdFbmFibGVkOgogICBpbml0aWFsOiBmYWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5nc0Jhc2UuY3BwCmluZGV4IDI3ZWVhNmMwYWI5MzhlYmM4Zjk2NWRhY2I4MjAzMTE0
NDMxNjBiOWEuLmM5ODk5YWRlZjA5M2ZiNGYxYzE1MDg3Y2RjZjdhMmEzZGJiNGYwMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJTZXR0aW5nc0Jhc2UuaCIKIAogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5oIgorI2luY2x1ZGUg
IkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNvb2tpZVN0b3Jh
Z2UuaCIKQEAgLTQwLDcgKzQxLDYgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRl
ICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2FjaGUu
aCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMzYyLDEzICszNjIsMTMgQEAg
dm9pZCBTZXR0aW5nc0Jhc2U6OnVzZXJTdHlsZVNoZWV0TG9jYXRpb25DaGFuZ2VkKCkKICAgICAg
ICAgbV9wYWdlLT51c2VyU3R5bGVTaGVldExvY2F0aW9uQ2hhbmdlZCgpOwogfQogCi12b2lkIFNl
dHRpbmdzQmFzZTo6dXNlc1BhZ2VDYWNoZUNoYW5nZWQoKQordm9pZCBTZXR0aW5nc0Jhc2U6OnVz
ZXNCYWNrRm9yd2FyZENhY2hlQ2hhbmdlZCgpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGlmICghbV9wYWdlLT5zZXR0aW5ncygpLnVzZXNQYWdlQ2FjaGUoKSkK
LSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5n
UmVhc29uOjpOb25lKTsKKyAgICBpZiAoIW1fcGFnZS0+c2V0dGluZ3MoKS51c2VzQmFja0Zvcndh
cmRDYWNoZSgpKQorICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wcnVuZVRv
U2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25lKTsKIH0KIAogdm9pZCBTZXR0aW5nc0Jhc2U6
OmRuc1ByZWZldGNoaW5nRW5hYmxlZENoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5nc0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNl
LmgKaW5kZXggYjg1MDFjYjcxYTk0YzFhYTA3YmYxYTEyZmJmNTkzNTE3MzZkZGIwZi4uMWQ5ODNh
MjBhNzY2NDkzYTk5Njk4OWNlMGNmODBiZmE5Mjc1NjYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzQmFzZS5oCkBAIC0xODUsNyArMTg1LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgaW1hZ2Vz
RW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIHBsdWdpbnNFbmFibGVkQ2hhbmdlZCgpOwogICAg
IHZvaWQgdXNlclN0eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQoKTsKLSAgICB2b2lkIHVzZXNQYWdl
Q2FjaGVDaGFuZ2VkKCk7CisgICAgdm9pZCB1c2VzQmFja0ZvcndhcmRDYWNoZUNoYW5nZWQoKTsK
ICAgICB2b2lkIGRuc1ByZWZldGNoaW5nRW5hYmxlZENoYW5nZWQoKTsKICAgICB2b2lkIHN0b3Jh
Z2VCbG9ja2luZ1BvbGljeUNoYW5nZWQoKTsKICAgICB2b2lkIGJhY2tncm91bmRTaG91bGRFeHRl
bmRCZXlvbmRQYWdlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmNwcAppbmRleCBkZWNhNmMxYzg1N2E2MjQzNDVkOGQ5ZGYzMzBmZGFj
Yjg3MzQxNzg0Li4wYTZhZmY5ZDcxYjRjNWM1OGNmOGQ3YjdjZmFkYTViNWM4N2ViZmU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcApAQCAt
ODEsNyArODEsNyBAQCB2b2lkIEFuaW1hdGlvbkJhc2U6OnNldE5lZWRzU3R5bGVSZWNhbGMoRWxl
bWVudCogZWxlbWVudCkKICAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVudC0+ZG9jdW1lbnQoKS5y
ZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJU
KGVsZW1lbnQtPmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5Q
YWdlQ2FjaGUpOworICAgIEFTU0VSVChlbGVtZW50LT5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2Fj
aGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgIGVsZW1l
bnQtPmludmFsaWRhdGVTdHlsZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9DU1NBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDEzYzMxZjU3
NjRiN2IyMjRhMmI3ZWE1NWFlMzNhNmIzOTg2Yjk2ZDIuLmNhODkwZTc3YjA5OWQzMGI5ZjFiYWVl
ZjY2Njk5ZGM0MjNiNTJhZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NTU0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAg
T3B0aW9uYWw8U2Vjb25kcz4gQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnVwZGF0ZUFu
aW1hdGlvbnMoU2V0Q2hhbmdlZCBjYWwKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9ICpjb21wb3Np
dGVBbmltYXRpb24ua2V5OwotICAgICAgICAgICAgICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50
KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOworICAgICAg
ICAgICAgICAgIEFTU0VSVChlbGVtZW50LmRvY3VtZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRl
KCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAgICAgICAgICAgICAg
ZWxlbWVudC5pbnZhbGlkYXRlU3R5bGUoKTsKICAgICAgICAgICAgICAgICBjYWxsZWRTZXRDaGFu
Z2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIENTU0Fu
aW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goRWxlbWVudCYgZWxl
bWVudCwgY29uc3QgQQogdm9pZCBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxl
bWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBtX2VsZW1lbnRD
aGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoZWxlbWVudCk7Ci0gICAgQVNTRVJUKG1fZWxlbWVudENo
YW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpID09IERv
Y3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKG1fZWxlbWVudENoYW5nZXNUb0Rp
c3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBEb2N1
bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlKTsKICAgICBzdGFydFVwZGF0ZVN0eWxlSWZOZWVk
ZWREaXNwYXRjaGVyKCk7CiB9CiAKQEAgLTYwOSw3ICs2MDksNyBAQCB2b2lkIENTU0FuaW1hdGlv
bkNvbnRyb2xsZXI6OmNhbmNlbEFuaW1hdGlvbnMoRWxlbWVudCYgZWxlbWVudCkKIAogICAgIGlm
IChlbGVtZW50LmRvY3VtZW50KCkucmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICBBU1NFUlQoZWxlbWVudC5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICBBU1NFUlQoZWxlbWVudC5kb2N1bWVu
dCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJk
Q2FjaGUpOwogICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlKCk7CiB9CiAKQEAgLTYxOSw3ICs2
MTksNyBAQCBBbmltYXRpb25VcGRhdGUgQ1NTQW5pbWF0aW9uQ29udHJvbGxlcjo6dXBkYXRlQW5p
bWF0aW9ucyhFbGVtZW50JiBlbGVtZW50LCBjb25zdAogICAgIGlmICghaGFzT3JIYWRBbmltYXRp
b25zKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5w
YWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICBpZiAoZWxl
bWVudC5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJ
bkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICAvLyBEb24ndCBy
dW4gdHJhbnNpdGlvbnMgd2hlbiBwcmludGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAppbmRleCAwNDc3YTllN2QwODVlMjc3
N2RhZmIyY2IxY2Y5ZDliMzk5ZGM5NzRjLi44MzI1YTU5MTlhZjhkYTQwODc4Yjk2NDU1YTQ2MTQ2
MThhMWU4MzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBs
aWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1w
bGljaXRBbmltYXRpb24uY3BwCkBAIC0yMTIsNyArMjEyLDcgQEAgYm9vbCBJbXBsaWNpdEFuaW1h
dGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGRv
dWJsZQogICAgICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGV2ZW50CiAgICAgICAgICAgICBhdXRv
IGVsZW1lbnQgPSBtYWtlUmVmUHRyKHRoaXMtPmVsZW1lbnQoKSk7CiAKLSAgICAgICAgICAgIEFT
U0VSVCghZWxlbWVudCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0g
RG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKKyAgICAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8
fCBlbGVtZW50LT5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpOwogICAgICAgICAgICAgaWYgKCFlbGVtZW50KQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmluZGV4IDlhZjVmMDg0YzUwMTM2NjAz
ZDUyNGIyMGZiYTE2ZjU5NWJiOTc5ZmEuLmY5MWQzYTU1YzVjOWM3OTg0YTAyNDYxMjgzOTA3NTdj
NDFmNDFlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZy
YW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlm
cmFtZUFuaW1hdGlvbi5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBib29sIEtleWZyYW1lQW5pbWF0
aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBkb3Vi
bGUgZQogICAgICAgICAvLyBEaXNwYXRjaCB0aGUgZXZlbnQKICAgICAgICAgYXV0byBlbGVtZW50
ID0gbWFrZVJlZlB0cih0aGlzLT5lbGVtZW50KCkpOwogCi0gICAgICAgIEFTU0VSVCghZWxlbWVu
dCB8fCBlbGVtZW50LT5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5v
dEluUGFnZUNhY2hlKTsKKyAgICAgICAgQVNTRVJUKCFlbGVtZW50IHx8IGVsZW1lbnQtPmRvY3Vt
ZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0Zvcndh
cmRDYWNoZSk7CiAgICAgICAgIGlmICghZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA1ZjBhOTc2M2U3M2UxNTBkZTA5ZmYwMGQ4
MGM4YTQ2YjVjMDI0OTNkLi41NGE5MGUwODVmZmJkZjNlNGE5ZTk0MmNjYzM5NjMxZTM1MWE2NmYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMjQ2LDE0ICsyNDYsMTQgQEAgYm9vbCBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoU2Nyb2xs
YWJsZUFyZWEmIHNjcm8KICAgICBpZiAoIWNvb3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3
KCpmcmFtZVZpZXcpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29sIGluUGFnZUNh
Y2hlID0gZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCktPnBhZ2VDYWNoZVN0YXRlKCkgIT0g
RG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlOworICAgIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlID0g
ZnJhbWVWaWV3LT5mcmFtZSgpLmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9
IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGU7CiAgICAgYm9vbCBpblByb2dyYW1tYXRp
Y1Njcm9sbCA9IHNjcm9sbGFibGVBcmVhLmN1cnJlbnRTY3JvbGxUeXBlKCkgPT0gU2Nyb2xsVHlw
ZTo6UHJvZ3JhbW1hdGljOwotICAgIGlmIChpblByb2dyYW1tYXRpY1Njcm9sbCB8fCBpblBhZ2VD
YWNoZSkKKyAgICBpZiAoaW5Qcm9ncmFtbWF0aWNTY3JvbGwgfHwgaW5CYWNrRm9yd2FyZENhY2hl
KQogICAgICAgICB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoc2Nyb2xsaW5n
Tm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgeyB9LCBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMsIFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlNldCk7CiAKLSAgICAvLyBJZiB0aGlzIGZyYW1l
IHZpZXcncyBkb2N1bWVudCBpcyBiZWluZyBwdXQgaW50byB0aGUgcGFnZSBjYWNoZSwgd2UgZG9u
J3Qgd2FudCB0byB1cGRhdGUgb3VyCisgICAgLy8gSWYgdGhpcyBmcmFtZSB2aWV3J3MgZG9jdW1l
bnQgaXMgYmVpbmcgcHV0IGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgd2UgZG9uJ3Qgd2Fu
dCB0byB1cGRhdGUgb3VyCiAgICAgLy8gbWFpbiBmcmFtZSBzY3JvbGwgcG9zaXRpb24uIEp1c3Qg
bGV0IHRoZSBGcmFtZVZpZXcgdGhpbmsgdGhhdCB3ZSBkaWQuCi0gICAgaWYgKGluUGFnZUNhY2hl
KQorICAgIGlmIChpbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgYXV0byogc3RhdGVOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2Rl
PihtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c3RhdGVOb2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlEKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
aW5kZXggN2Y0ZTRiZjFlZDlhZmIyMzg3NThhZGNiMGJkZDcyNTFlNmRhNTgxMS4uZjU5MTc2NzJl
ZWZkZjFmNTIzY2RmNjkyNDZiMjM4NjA0OTRmYjJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtMTE0MSw3ICsxMTQxLDcgQEAg
Ym9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2hvdWxkU2Nyb2xsYmFyUGFydGljaXBhdGVJbkhpdFRl
c3RpbmcoU2Nyb2xsYmFyKiBzY3JvbGwKIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5
Q29udGVudEFyZWFTY3JvbGxlZChjb25zdCBGbG9hdFNpemUmIGRlbHRhKQogewotICAgIC8vIFRo
aXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBwYWdlIGlzIGdvaW5nIGludG8gdGhlIHBhZ2Ug
Y2FjaGUsIGJ1dCB0aGUgcGFnZQorICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4g
YSBwYWdlIGlzIGdvaW5nIGludG8gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSwgYnV0IHRoZSBwYWdl
CiAgICAgLy8gaXNuJ3QgcmVhbGx5IHNjcm9sbGluZyBpbiB0aGF0IGNhc2UuIFdlIHNob3VsZCBv
bmx5IHBhc3MgdGhlIG1lc3NhZ2Ugb24gdG8gdGhlCiAgICAgLy8gU2Nyb2xsZXJJbXBQYWlyIHdo
ZW4gd2UncmUgcmVhbGx5IHNjcm9sbGluZyBvbiBhbiBhY3RpdmUgcGFnZS4KICAgICBpZiAoW21f
c2Nyb2xsZXJJbXBQYWlyIG92ZXJsYXlTY3JvbGxlclN0YXRlSXNMb2NrZWRdKQpAQCAtMTQxOCw3
ICsxNDE4LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSgp
CiAgICAgICAgIGhvcml6b250YWxTY3JvbGxiYXItPnNldEZyYW1lUmVjdChJbnRSZWN0KDAsIDAs
IHRoaWNrbmVzcywgdGhpY2tuZXNzKSk7CiAgICAgfQogCi0gICAgLy8gSWYgbV9uZWVkc1Njcm9s
bGVyU3R5bGVVcGRhdGUgaXMgdHJ1ZSwgdGhlbiB0aGUgcGFnZSBpcyByZXN0b3JpbmcgZnJvbSB0
aGUgcGFnZSBjYWNoZSwgYW5kIAorICAgIC8vIElmIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRl
IGlzIHRydWUsIHRoZW4gdGhlIHBhZ2UgaXMgcmVzdG9yaW5nIGZyb20gdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZSwgYW5kCiAgICAgLy8gYSByZWxheW91dCB3aWxsIGhhcHBlbiBvbiBpdHMgb3duLiBP
dGhlcndpc2UsIHdlIG11c3QgaW5pdGlhdGUgYSByZS1sYXlvdXQgb3Vyc2VsdmVzLgogICAgIHNj
cm9sbGFibGVBcmVhKCkuc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKG5ld1N0eWxlID09IE5TU2Nyb2xs
ZXJTdHlsZU92ZXJsYXkgPyBTY3JvbGxiYXJTdHlsZTo6T3ZlcmxheSA6IFNjcm9sbGJhclN0eWxl
OjpBbHdheXNWaXNpYmxlLCAhbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGUpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGUwNzg1
ZWM0MzM3ODQxZGI4NTgzMGYxODFmYjA4OWY3NTc3ZjU2YzUuLjIxNGY2MDk1NzdmOGE4ZjBiNTc1
ZmQ1MWFhNTRhMzYzNjQ5ZTMxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yNzgwLDggKzI3ODAsOCBAQCB2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllciwgR3JhcAogICAgIGlmICgocGFpbnRzSW50b1dpbmRvdygpIHx8IHBhaW50c0ludG9Db21w
b3NpdGVkQW5jZXN0b3IoKSkgJiYgZ3JhcGhpY3NMYXllci0+cGFpbnRpbmdQaGFzZSgpICE9IE9w
dGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4oR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2U6OkNoaWxkQ2xpcHBpbmdNYXNrKSkgewogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKSAm
JiAhT1MoV0lORE9XUykKICAgICAgICAgLy8gRklYTUU6IExvb2tzIGxpa2UgdGhlIENBTGF5ZXIg
dHJlZSBpcyBvdXQgb2Ygc3luYyB3aXRoIHRoZSBHcmFwaGljc0xheWVyIGhlaXJhcmNoeQotICAg
ICAgICAvLyB3aGVuIHBhZ2VzIGFyZSByZXN0b3JlZCBmcm9tIHRoZSBQYWdlQ2FjaGUuCi0gICAg
ICAgIC8vIDxyZGFyOi8vcHJvYmxlbS84NzEyNTg3PiBBU1NFUlQ6IFdoZW4gR29pbmcgQmFjayB0
byBQYWdlIHdpdGggUGx1Z2lucyBpbiBQYWdlQ2FjaGUKKyAgICAgICAgLy8gd2hlbiBwYWdlcyBh
cmUgcmVzdG9yZWQgZnJvbSB0aGUgQmFja0ZvcndhcmRDYWNoZS4KKyAgICAgICAgLy8gPHJkYXI6
Ly9wcm9ibGVtLzg3MTI1ODc+IEFTU0VSVDogV2hlbiBHb2luZyBCYWNrIHRvIFBhZ2Ugd2l0aCBQ
bHVnaW5zIGluIEJhY2tGb3J3YXJkQ2FjaGUKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAjZW5kaWYKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBjMGRkMDYwYjVkMzNjOWVkZGZhMzBm
N2Q1MzRkYTdkOTc5MzI4YzQ4Li5mZjlmZWJmYWVkMjBjNmYxN2ZjMWI1OGM1MDdiZTUwNjU0MzM0
N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcApAQCAtNzE2LDggKzcxNiw4IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAK
ICAgICBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIuc3RvcCgpOwogCi0gICAgQVNTRVJU
KG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5v
dEluUGFnZUNhY2hlCi0gICAgICAgIHx8IG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNo
ZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlclBhZ2VDYWNoZSk7CisgICAgQVNTRVJU
KG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3Vt
ZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUKKyAgICAgICAgfHwgbV9yZW5kZXJWaWV3LmRvY3Vt
ZW50KCkuYmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6OkFib3V0VG9FbnRlckJh
Y2tGb3J3YXJkQ2FjaGUpOwogICAgIAogICAgIC8vIENvbXBvc2l0aW5nIGxheWVycyB3aWxsIGJl
IHVwZGF0ZWQgaW4gRG9jdW1lbnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKGJvb2wpIGlmIHN1
cHByZXNzZWQgaGVyZS4KICAgICBpZiAoIW1fcmVuZGVyVmlldy5kb2N1bWVudCgpLnZpc3VhbFVw
ZGF0ZXNBbGxvd2VkKCkpCkBAIC00NjUyLDcgKzQ2NTIsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6d2lsbFJlbW92ZVNjcm9sbGluZ0xheWVyV2l0aEJhY2tpbmcoUmVuZGVyTGF5ZXIm
IGxheQogICAgICAgICByZXR1cm47CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIEFT
U0VSVChtX3JlbmRlclZpZXcuZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSk7CisgICAgQVNTRVJUKG1fcmVuZGVyVmlldy5kb2N1bWVudCgpLmJh
Y2tGb3J3YXJkQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUp
OwogICAgIGlmIChtX2xlZ2FjeVNjcm9sbGluZ0xheWVyQ29vcmRpbmF0b3IpCiAgICAgICAgIG1f
bGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29yZGluYXRvci0+cmVtb3ZlU2Nyb2xsaW5nTGF5ZXIobGF5
ZXIsIGJhY2tpbmcpOwogI2Vsc2UKQEAgLTQ2NjgsNyArNDY2OCw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpkaWRBZGRTY3JvbGxpbmdMYXllcihSZW5kZXJMYXllciYgbGF5ZXIpCiAg
ICAgICAgIHJldHVybjsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQVNTRVJUKG1f
cmVuZGVyVmlldy5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdElu
UGFnZUNhY2hlKTsKKyAgICBBU1NFUlQobV9yZW5kZXJWaWV3LmRvY3VtZW50KCkuYmFja0Zvcndh
cmRDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSk7CiAgICAg
aWYgKG1fbGVnYWN5U2Nyb2xsaW5nTGF5ZXJDb29yZGluYXRvcikKICAgICAgICAgbV9sZWdhY3lT
Y3JvbGxpbmdMYXllckNvb3JkaW5hdG9yLT5hZGRTY3JvbGxpbmdMYXllcihsYXllcik7CiAjZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
CmluZGV4IDY1MmQ2MDE1MTJkNmVmMDJmZjU4MDkxNTU3MTNmNjc1ZThkMDc2NGIuLjA3OGY3OWJh
ZDAyMzg5M2UyMmQxNjI5MzA4YzdmYjQ0YjQ3ZjU5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTE5Myw3ICsxOTMsNyBAQCBw
dWJsaWM6CiAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgd2hlbiBzdGF0ZSBjaGFuZ2VzIGFuZCB3
ZSBkbyBub3QgZXhlcGVjdCBhIHN0eWxlIHVwZGF0ZSBvciBsYXlvdXQgdG8gaGFwcGVuIHNvb24g
KGUuZy4gd2hlbgogICAgIC8vIHdlIGRpc2NvdmVyIHRoYXQgYW4gaWZyYW1lIGlzIG92ZXJsYXBw
ZWQgZHVyaW5nIHBhaW50aW5nKS4KICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclVw
ZGF0ZSgpOwotICAgIC8vIFRoaXMgaXMgdXNlZCB0byBjYW5jZWwgYW55IHBlbmRpbmcgdXBkYXRl
IHRpbWVycyB3aGVuIHRoZSBkb2N1bWVudCBnb2VzIGludG8gcGFnZSBjYWNoZS4KKyAgICAvLyBU
aGlzIGlzIHVzZWQgdG8gY2FuY2VsIGFueSBwZW5kaW5nIHVwZGF0ZSB0aW1lcnMgd2hlbiB0aGUg
ZG9jdW1lbnQgZ29lcyBpbnRvIGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICB2b2lkIGNhbmNlbENv
bXBvc2l0aW5nTGF5ZXJVcGRhdGUoKTsKIAogICAgIC8vIFVwZGF0ZSB0aGUgY29tcG9zaXRpbmcg
c3RhdGUgb2YgdGhlIGdpdmVuIGxheWVyLiBSZXR1cm5zIHRydWUgaWYgdGhhdCBzdGF0ZSBjaGFu
Z2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGNhYWM1Y2Rl
MGVkODQ3YmRjMjBlNWNhN2E1ZjFlZDgwMTBjNGJmNWYuLjc2ZTI4ZDdkZjM0Mjk4MTM5YzI4ZDZi
ZTM3ZDY3M2I3M2YzYjczOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKQEAgLTcyMyw3ICs3MjMsNyBAQCBwdWJsaWM6CiAgICAgICovCiAgICAgdmlydHVhbCBMYXlv
dXRSZWN0IGxvY2FsQ2FyZXRSZWN0KElubGluZUJveCosIHVuc2lnbmVkIGNhcmV0T2Zmc2V0LCBM
YXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSBudWxscHRyKTsKIAotICAgIC8vIFdo
ZW4gcGVyZm9ybWluZyBhIGdsb2JhbCBkb2N1bWVudCB0ZWFyLWRvd24sIG9yIHdoZW4gZ29pbmcg
aW50byB0aGUgcGFnZSBjYWNoZSwgdGhlIHJlbmRlcmVyIG9mIHRoZSBkb2N1bWVudCBpcyBjbGVh
cmVkLgorICAgIC8vIFdoZW4gcGVyZm9ybWluZyBhIGdsb2JhbCBkb2N1bWVudCB0ZWFyLWRvd24s
IG9yIHdoZW4gZ29pbmcgaW50byB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLCB0aGUgcmVuZGVyZXIg
b2YgdGhlIGRvY3VtZW50IGlzIGNsZWFyZWQuCiAgICAgYm9vbCByZW5kZXJUcmVlQmVpbmdEZXN0
cm95ZWQoKSBjb25zdDsKIAogICAgIHZvaWQgZGVzdHJveSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRDb3ZlcmFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmNwcAppbmRleCBhYzEw
OWRiYzM0MmY4Yzc3ODZkYWU3ODVjZmZkOTVjNjAwZmZjODJmLi41NWY1ZmQzNzA3NmI4MjUzY2Ux
NTk5ZjcwY2FmZTZjY2RhNWQyMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvU2ltcGxlTGluZUxheW91dENvdmVyYWdlLmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIHN0
YXRpYyB2b2lkIGNvbGxlY3ROb25FbXB0eUxlYWZSZW5kZXJCbG9ja0Zsb3dzKGNvbnN0IFJlbmRl
ck9iamVjdCYgcmVuZGVyZXIsIEhhCiBzdGF0aWMgdm9pZCBjb2xsZWN0Tm9uRW1wdHlMZWFmUmVu
ZGVyQmxvY2tGbG93c0ZvckN1cnJlbnRQYWdlKEhhc2hTZXQ8Y29uc3QgUmVuZGVyQmxvY2tGbG93
Kj4mIGxlYWZSZW5kZXJlcnMpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvKiBkb2N1bWVudCA6IERv
Y3VtZW50OjphbGxEb2N1bWVudHMoKSkgewotICAgICAgICBpZiAoIWRvY3VtZW50LT5yZW5kZXJW
aWV3KCkgfHwgZG9jdW1lbnQtPnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFn
ZUNhY2hlKQorICAgICAgICBpZiAoIWRvY3VtZW50LT5yZW5kZXJWaWV3KCkgfHwgZG9jdW1lbnQt
PmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJbkJhY2tGb3J3YXJkQ2Fj
aGUpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKCFkb2N1bWVudC0+aXNIVE1M
RG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQtPmlzWEhUTUxEb2N1bWVudCgpKQogICAgICAgICAgICAg
Y29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5k
ZXggYTAwZjRmZTBmNGNjYjUyZGQ4MzFhOTRlMjZhNTg2NGU1YzFiNzkyNy4uMDJhMGUzN2UwY2E5
M2JlOGY3ZThjZjRkNWM1OWQ5ZWI1YzE2YTUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVHJlZVJlc29sdmVyLmNwcApAQCAtMjk2LDcgKzI5Niw3IEBAIEVsZW1lbnRVcGRhdGUgVHJl
ZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJl
bmRlclN0CiAgICAgICAgIC8vIEZpcnN0LCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGFueSBu
ZXcgQ1NTIGFuaW1hdGlvbiBvY2N1cmluZyBvbiB0aGlzIGVsZW1lbnQgaGFzIGEgbWF0Y2hpbmcg
V2ViQW5pbWF0aW9uCiAgICAgICAgIC8vIG9uIHRoZSBkb2N1bWVudCB0aW1lbGluZS4gTm90ZSB0
aGF0IHdlIGdldCB0aW1lbGluZSgpIG9uIHRoZSBEb2N1bWVudCBoZXJlIGJlY2F1c2Ugd2UgbmVl
ZCBhIHRpbWVsaW5lIGNyZWF0ZWQKICAgICAgICAgLy8gaW4gY2FzZSBubyBXZWIgQW5pbWF0aW9u
cyBoYXZlIGJlZW4gY3JlYXRlZCB0aHJvdWdoIHRoZSBKUyBBUEkuCi0gICAgICAgIGlmIChlbGVt
ZW50LmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2Fj
aGUgJiYgIWVsZW1lbnQuZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCktPnByaW50aW5nKCkpIHsKKyAg
ICAgICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQoKS5iYWNrRm9yd2FyZENhY2hlU3RhdGUoKSA9PSBE
b2N1bWVudDo6Tm90SW5CYWNrRm9yd2FyZENhY2hlICYmICFlbGVtZW50LmRvY3VtZW50KCkucmVu
ZGVyVmlldygpLT5wcmludGluZygpKSB7CiAgICAgICAgICAgICBpZiAob2xkU3R5bGUgJiYgKG9s
ZFN0eWxlLT5oYXNUcmFuc2l0aW9ucygpIHx8IG5ld1N0eWxlLT5oYXNUcmFuc2l0aW9ucygpKSkK
ICAgICAgICAgICAgICAgICBtX2RvY3VtZW50LnRpbWVsaW5lKCkudXBkYXRlQ1NTVHJhbnNpdGlv
bnNGb3JFbGVtZW50KGVsZW1lbnQsICpvbGRTdHlsZSwgKm5ld1N0eWxlKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDhmOGM1YzdkOTI3YzA3OTYyOWQ2N2VkMTVhYzAy
Mzg1NTZkNDkyOWEuLjRiYzcxMjBjMDE3MjhiY2Q2MzBkYTc0YzhlYzI3MWFlYzM5M2VkMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUgIkF1ZGlvU2Vzc2lvbi5o
IgogI2luY2x1ZGUgIkF1dG9maWxsLmgiCisjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgog
I2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdl
LmgiCiAjaW5jbHVkZSAiQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oIgpAQCAtMTI3LDcgKzEyOCw2
IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yTWVkaWFEZXZpY2VzLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0xvYWRJbmZvcm1hdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYWdlQ2Fj
aGUuaCIKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUgIlBhdGhVdGlsaXRpZXMu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKQEAgLTkyMiwxNCArOTIyLDE0
IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRHcmlkTWF4VHJhY2tzTGltaXQodW5zaWduZWQgbWF4VHJh
Y2tMaW1pdCkKICAgICBHcmlkUG9zaXRpb246OnNldE1heFBvc2l0aW9uRm9yVGVzdGluZyhtYXhU
cmFja0xpbWl0KTsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OmNsZWFyUGFnZUNhY2hlKCkKK3ZvaWQg
SW50ZXJuYWxzOjpjbGVhckJhY2tGb3J3YXJkQ2FjaGUoKQogewotICAgIFBhZ2VDYWNoZTo6c2lu
Z2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNvbjo6Tm9uZSk7CisgICAgQmFj
a0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucHJ1bmVUb1NpemVOb3coMCwgUHJ1bmluZ1JlYXNv
bjo6Tm9uZSk7CiB9CiAKLXVuc2lnbmVkIEludGVybmFsczo6cGFnZUNhY2hlU2l6ZSgpIGNvbnN0
Cit1bnNpZ25lZCBJbnRlcm5hbHM6OmJhY2tGb3J3YXJkQ2FjaGVTaXplKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQoKTsKKyAgICByZXR1cm4g
QmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkucGFnZUNvdW50KCk7CiB9CiAKIGNsYXNzIFVu
c3VzcGVuZGFibGVBY3RpdmVET01PYmplY3QgZmluYWwgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0
LCBwdWJsaWMgUmVmQ291bnRlZDxVbnN1c3BlbmRhYmxlQWN0aXZlRE9NT2JqZWN0PiB7CkBAIC05
NDcsNyArOTQ3LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QgeyByZXR1cm4gIlVuc3VzcGVuZGFibGVBY3RpdmVET01PYmplY3QiOyB9CiB9
OwogCi12b2lkIEludGVybmFsczo6cHJldmVudERvY3VtZW50Rm9yRW50ZXJpbmdQYWdlQ2FjaGUo
KQordm9pZCBJbnRlcm5hbHM6OnByZXZlbnREb2N1bWVudEZvckVudGVyaW5nQmFja0ZvcndhcmRD
YWNoZSgpCiB7CiAgICAgaWYgKGF1dG8qIGNvbnRleHQgPSBjb250ZXh0RG9jdW1lbnQoKSkKICAg
ICAgICAgbV91bnN1c3BlbmRhYmxlQWN0aXZlRE9NT2JqZWN0ID0gVW5zdXNwZW5kYWJsZUFjdGl2
ZURPTU9iamVjdDo6Y3JlYXRlKCpjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IGJhMmJiOTc0YTkyY2VmMWFjN2UzNDQ3NmViYjEyZWFlZGQ3MDdhODkuLjE5Zjc4OWY5
MDMwZjlhMjQ4Njg3ZTk1ZjAxZmRhYWRkZTU4NWRkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMTY5LDkgKzE2OSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0R3JpZE1h
eFRyYWNrc0xpbWl0KHVuc2lnbmVkKTsKIAotICAgIHZvaWQgY2xlYXJQYWdlQ2FjaGUoKTsKLSAg
ICB1bnNpZ25lZCBwYWdlQ2FjaGVTaXplKCkgY29uc3Q7Ci0gICAgdm9pZCBwcmV2ZW50RG9jdW1l
bnRGb3JFbnRlcmluZ1BhZ2VDYWNoZSgpOworICAgIHZvaWQgY2xlYXJCYWNrRm9yd2FyZENhY2hl
KCk7CisgICAgdW5zaWduZWQgYmFja0ZvcndhcmRDYWNoZVNpemUoKSBjb25zdDsKKyAgICB2b2lk
IHByZXZlbnREb2N1bWVudEZvckVudGVyaW5nQmFja0ZvcndhcmRDYWNoZSgpOwogCiAgICAgdm9p
ZCBkaXNhYmxlVGlsZVNpemVVcGRhdGVEZWxheSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKaW5kZXggMWVlZTNjOWQzYWUzYjI2ZWU3ZjRhZDEyNzA5ODU1NmJhZGM2MmVjMy4u
MDFkYjI0MmQwYmM5OTQyMDYwMTU2NDY1YmY3NzFkMTQyN2RhMmNkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjA3LDkgKzIwNyw5IEBAIGVudW0gQ29tcG9zaXRpbmdQ
b2xpY3kgewogICAgIHZvaWQgc2V0T3ZlcnJpZGVSZXNvdXJjZUxvYWRQcmlvcml0eShSZXNvdXJj
ZUxvYWRQcmlvcml0eSBwcmlvcml0eSk7CiAgICAgdm9pZCBzZXRTdHJpY3RSYXdSZXNvdXJjZVZh
bGlkYXRpb25Qb2xpY3lEaXNhYmxlZChib29sZWFuIGRpc2FibGVkKTsKIAotICAgIHZvaWQgY2xl
YXJQYWdlQ2FjaGUoKTsKLSAgICB1bnNpZ25lZCBsb25nIHBhZ2VDYWNoZVNpemUoKTsKLSAgICB2
b2lkIHByZXZlbnREb2N1bWVudEZvckVudGVyaW5nUGFnZUNhY2hlKCk7CisgICAgdm9pZCBjbGVh
ckJhY2tGb3J3YXJkQ2FjaGUoKTsKKyAgICB1bnNpZ25lZCBsb25nIGJhY2tGb3J3YXJkQ2FjaGVT
aXplKCk7CisgICAgdm9pZCBwcmV2ZW50RG9jdW1lbnRGb3JFbnRlcmluZ0JhY2tGb3J3YXJkQ2Fj
aGUoKTsKIAogICAgIENTU1N0eWxlRGVjbGFyYXRpb24gY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zp
c2l0ZWRJbmZvKEVsZW1lbnQgZWxlbWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCmluZGV4IDdmMGUwMzVjNWY5NTVlNGUxYTBmNzNhNzliNzg4NDcwZGU5NjYyZWIuLjUz
YzQ4MDcxYmU5NWRjMTViOGNkODAxNzhjODA3YTkyOGUzMmEzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMTE2Myw4ICsxMTYzLDggQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKICAgICAgICAgbV9kaXNw
YXRjaEVycm9yT25SZXN1bWluZyA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHJlYXNvbiA9PSBS
ZWFzb25Gb3JTdXNwZW5zaW9uOjpQYWdlQ2FjaGUgJiYgbV9sb2FkZXIpIHsKLSAgICAgICAgLy8g
R29pbmcgaW50byBQYWdlQ2FjaGUsIGFib3J0IHRoZSByZXF1ZXN0IGFuZCBkaXNwYXRjaCBhIG5l
dHdvcmsgZXJyb3Igb24gcmVzdW1pbmcuCisgICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNw
ZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlICYmIG1fbG9hZGVyKSB7CisgICAgICAgIC8vIEdvaW5n
IGludG8gdGhlIEJhY2tGb3J3YXJkQ2FjaGUsIGFib3J0IHRoZSByZXF1ZXN0IGFuZCBkaXNwYXRj
aCBhIG5ldHdvcmsgZXJyb3Igb24gcmVzdW1pbmcuCiAgICAgICAgIGdlbmVyaWNFcnJvcigpOwog
ICAgICAgICBtX2Rpc3BhdGNoRXJyb3JPblJlc3VtaW5nID0gdHJ1ZTsKICAgICAgICAgYm9vbCBh
Ym9ydGVkID0gaW50ZXJuYWxBYm9ydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ2FjaGVNb2RlbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmNwcApp
bmRleCBmMDllYzZkOGIyNWVhZTQyZjg1ZDA1Yzc1MDI4ZDEwZGYzMjY3NjQ2Li45Y2JkNmFiOWFj
MTA5NTc2ODZiYWRjMDMyMTdkMWQ2MWUyNDhiMTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9DYWNoZU1vZGVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1v
ZGVsLmNwcApAQCAtMzMsMTQgKzMzLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lk
IGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsLCB1bnNpZ25l
ZCYgY2FjaGVUb3RhbENhcGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIHVu
c2lnbmVkJiBjYWNoZU1heERlYWRDYXBhY2l0eSwgU2Vjb25kcyYgZGVhZERlY29kZWREYXRhRGVs
ZXRpb25JbnRlcnZhbCwgdW5zaWduZWQmIHBhZ2VDYWNoZUNhcGFjaXR5KQordm9pZCBjYWxjdWxh
dGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWwgY2FjaGVNb2RlbCwgdW5zaWduZWQmIGNhY2hl
VG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWluRGVhZENhcGFjaXR5LCB1bnNpZ25lZCYg
Y2FjaGVNYXhEZWFkQ2FwYWNpdHksIFNlY29uZHMmIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50
ZXJ2YWwsIHVuc2lnbmVkJiBiYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHkpCiB7CiAgICAgdWludDY0
X3QgbWVtb3J5U2l6ZSA9IHJhbVNpemUoKSAvIE1COwogCiAgICAgc3dpdGNoIChjYWNoZU1vZGVs
KSB7CiAgICAgY2FzZSBDYWNoZU1vZGVsOjpEb2N1bWVudFZpZXdlcjogewotICAgICAgICAvLyBQ
YWdlIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykKLSAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkg
PSAwOworICAgICAgICAvLyBiYWNrL2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQor
ICAgICAgICBiYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHkgPSAwOwogCiAgICAgICAgIC8vIE9iamVj
dCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykKICAgICAgICAgaWYgKG1lbW9yeVNpemUgPj0g
MjA0OCkKQEAgLTYwLDEzICs2MCwxMyBAQCB2b2lkIGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMo
Q2FjaGVNb2RlbCBjYWNoZU1vZGVsLCB1bnNpZ25lZCYgY2FjaGVUb3RhbENhcGFjaQogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDYWNoZU1vZGVsOjpEb2N1bWVudEJyb3dzZXI6IHsK
LSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIGJh
Y2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIGlmIChtZW1vcnlT
aXplID49IDUxMikKLSAgICAgICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKKyAgICAgICAg
ICAgIGJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSA9IDI7CiAgICAgICAgIGVsc2UgaWYgKG1lbW9y
eVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAxOworICAgICAg
ICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNo
ZUNhcGFjaXR5ID0gMDsKIAogICAgICAgICAvLyBPYmplY3QgY2FjaGUgY2FwYWNpdGllcyAoaW4g
Ynl0ZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXplID49IDIwNDgpCkBAIC04NiwxMyArODYsMTMg
QEAgdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWwgY2FjaGVNb2RlbCwg
dW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2kKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNh
c2UgQ2FjaGVNb2RlbDo6UHJpbWFyeVdlYkJyb3dzZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNo
ZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIGJhY2svZm9yd2FyZCBjYWNoZSBjYXBh
Y2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIGlmIChtZW1vcnlTaXplID49IDUxMikKLSAgICAgICAg
ICAgIHBhZ2VDYWNoZUNhcGFjaXR5ID0gMjsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVD
YXBhY2l0eSA9IDI7CiAgICAgICAgIGVsc2UgaWYgKG1lbW9yeVNpemUgPj0gMjU2KQotICAgICAg
ICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAxOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNo
ZUNhcGFjaXR5ID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcGFnZUNhY2hlQ2FwYWNp
dHkgPSAwOworICAgICAgICAgICAgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5ID0gMDsKIAogICAg
ICAgICAvLyBPYmplY3QgY2FjaGUgY2FwYWNpdGllcyAoaW4gYnl0ZXMpCiAgICAgICAgIC8vIChU
ZXN0aW5nIGluZGljYXRlcyB0aGF0IHZhbHVlIC8gTUIgZGVwZW5kcyBoZWF2aWx5IG9uIGNvbnRl
bnQgYW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DYWNoZU1vZGVsLmgKaW5kZXggZjIzOTUzOGU2NzhlYmRmYzA4
MTRlZGM3NmJmODYzZTJmM2MyNTdjYS4uY2Q2NDhiNDdiZjNmNWRmNDczNDQ3ZWY1MjZlZDU5MDEy
MjAwNmE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ2FjaGVNb2RlbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhY2hlTW9kZWwuaApAQCAtMzcsNyArMzcsNyBAQCBl
bnVtIGNsYXNzIENhY2hlTW9kZWwgOiB1aW50OF90IHsKICAgICBQcmltYXJ5V2ViQnJvd3Nlcgog
fTsKIAotdm9pZCBjYWxjdWxhdGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWwsIHVuc2lnbmVk
JiBjYWNoZVRvdGFsQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgdW5z
aWduZWQmIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBTZWNvbmRzJiBkZWFkRGVjb2RlZERhdGFEZWxl
dGlvbkludGVydmFsLCB1bnNpZ25lZCYgcGFnZUNhY2hlQ2FwYWNpdHkpOwordm9pZCBjYWxjdWxh
dGVNZW1vcnlDYWNoZVNpemVzKENhY2hlTW9kZWwsIHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNp
dHksIHVuc2lnbmVkJiBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVh
ZENhcGFjaXR5LCBTZWNvbmRzJiBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLCB1bnNp
Z25lZCYgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KTsKIHZvaWQgY2FsY3VsYXRlVVJMQ2FjaGVT
aXplcyhDYWNoZU1vZGVsLCB1aW50NjRfdCBkaXNrRnJlZVNpemUsIHVuc2lnbmVkJiB1cmxDYWNo
ZU1lbW9yeUNhcGFjaXR5LCB1aW50NjRfdCYgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkpOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1s
CmluZGV4IDY2NTk0OTMwNDdiN2ZlOTJjMmMxMjI1NGE0ZjM2MDgxZDUxODRiZTEuLjRmMGI2YzY0
NDY0NTQ5Nzc4ZmRkYWMwZjA4ODQ4N2U3NmM1MTI5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTU1LDExICsxNTUsMTEgQEAgTG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZhbHNlCiAK
LVVzZXNQYWdlQ2FjaGU6CitVc2VzQmFja0ZvcndhcmRDYWNoZToKICAgdHlwZTogYm9vbAogICBk
ZWZhdWx0VmFsdWU6IHRydWUKIAotUGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zOgorQmFja0Zvcndh
cmRDYWNoZVN1cHBvcnRzUGx1Z2luczoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IHRy
dWUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uQ2xp
ZW50LmgKaW5kZXggY2QyMmEyNjc2NDY4ZDE4MjM0YTYwODQyZmU5ZDkxNjcxYjIwYTg3ZC4uMzhj
Yzc1MGNiMmM0MTgxYzA4ZTAxNjVkZjM2MGQ3NGM4Mjk3YTk1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbkNsaWVudC5oCkBAIC0xMzgsNyArMTM4
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNvbHZlV2ViR0xMb2FkUG9saWN5KFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RGOjpVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0
IHsgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5OjpXZWJHTEFsbG93
Q3JlYXRpb24pOyB9CiAjZW5kaWYKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgd2lsbEdvVG9CYWNr
Rm9yd2FyZExpc3RJdGVtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJiwgYm9vbCBpblBhZ2VDYWNoZSkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYktpdDo6V2ViUGFnZVBy
b3h5JiwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBpbkJhY2tGb3J3YXJk
Q2FjaGUpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5OYXZp
Z2F0aW9uR2VzdHVyZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRW5kTmF2aWdhdGlvbkdlc3R1cmUoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBib29sIHdp
bGxOYXZpZ2F0ZSwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uY3BwCmluZGV4IGUzNzM5MzRjMjNkZGY1ZDVkOTkzOWE3NTE5NzlmMDVjOTM1YWMw
ZTEuLjFlMDBhNWU4OTQzZThlNmFhY2QyYjVjMTc3MWJhNmZjZDA0NDU1MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uY3BwCkBAIC02OSw3ICs2OSw3IEBAIFJlZjxQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24+IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y29weSgpCiAgICAgY29weS0+bV9wcm9jZXNz
U3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyID0gdGhpcy0+bV9wcm9jZXNzU3dhcHNPbldpbmRv
d09wZW5XaXRoT3BlbmVyOwogICAgIGNvcHktPm1faXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0Vu
YWJsZWRCeUNsaWVudCA9IHRoaXMtPm1faXNBdXRvbWF0aWNQcm9jZXNzV2FybWluZ0VuYWJsZWRC
eUNsaWVudDsKICAgICBjb3B5LT5tX3VzZXNXZWJQcm9jZXNzQ2FjaGUgPSB0aGlzLT5tX3VzZXNX
ZWJQcm9jZXNzQ2FjaGU7Ci0gICAgY29weS0+bV91c2VzUGFnZUNhY2hlID0gdGhpcy0+bV91c2Vz
UGFnZUNhY2hlOworICAgIGNvcHktPm1fdXNlc0JhY2tGb3J3YXJkQ2FjaGUgPSB0aGlzLT5tX3Vz
ZXNCYWNrRm9yd2FyZENhY2hlOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGNvcHktPm1fc3Vw
cHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlID0gdGhpcy0+bV9zdXBw
cmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2U7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3Vy
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uaAppbmRleCAxZmE3OTAxN2FmODY0ZWM5NmRlMmVmODE5ZWE3OWJmMThhMjI4MzJm
Li4zOTZmM2U1MzQyYmVhYTY3Y2Y2NzNjYWM1MjY0ZGZhZjk0NjdkNTVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCkBAIC02OCw4ICs2OCw4IEBAIHB1YmxpYzoKICAgICBib29sIGNsaWVudFdvdWxkQmVu
ZWZpdEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2FybWluZygpIGNvbnN0IHsgcmV0dXJuIG1fY2xp
ZW50V291bGRCZW5lZml0RnJvbUF1dG9tYXRpY1Byb2Nlc3NQcmV3YXJtaW5nOyB9CiAgICAgdm9p
ZCBzZXRDbGllbnRXb3VsZEJlbmVmaXRGcm9tQXV0b21hdGljUHJvY2Vzc1ByZXdhcm1pbmcoYm9v
bCB2YWx1ZSkgeyBtX2NsaWVudFdvdWxkQmVuZWZpdEZyb21BdXRvbWF0aWNQcm9jZXNzUHJld2Fy
bWluZyA9IHZhbHVlOyB9CiAKLSAgICB2b2lkIHNldFVzZXNQYWdlQ2FjaGUoYm9vbCB2YWx1ZSkg
eyBtX3VzZXNQYWdlQ2FjaGUgPSB2YWx1ZTsgfQotICAgIGJvb2wgdXNlc1BhZ2VDYWNoZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdXNlc1BhZ2VDYWNoZTsgfQorICAgIHZvaWQgc2V0VXNlc0JhY2tGb3J3
YXJkQ2FjaGUoYm9vbCB2YWx1ZSkgeyBtX3VzZXNCYWNrRm9yd2FyZENhY2hlID0gdmFsdWU7IH0K
KyAgICBib29sIHVzZXNCYWNrRm9yd2FyZENhY2hlKCkgY29uc3QgeyByZXR1cm4gbV91c2VzQmFj
a0ZvcndhcmRDYWNoZTsgfQogCiAgICAgY29uc3QgV1RGOjpTdHJpbmcmIGluamVjdGVkQnVuZGxl
UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0ZWRCdW5kbGVQYXRoOyB9CiAgICAgdm9pZCBz
ZXRJbmplY3RlZEJ1bmRsZVBhdGgoY29uc3QgV1RGOjpTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0
aCkgeyBtX2luamVjdGVkQnVuZGxlUGF0aCA9IGluamVjdGVkQnVuZGxlUGF0aDsgfQpAQCAtMTY5
LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Byb2Nlc3NTd2Fwc09uV2luZG93T3Bl
bldpdGhPcGVuZXIgeyBmYWxzZSB9OwogICAgIE9wdGlvbmFsPGJvb2w+IG1faXNBdXRvbWF0aWNQ
cm9jZXNzV2FybWluZ0VuYWJsZWRCeUNsaWVudDsKICAgICBib29sIG1fdXNlc1dlYlByb2Nlc3ND
YWNoZSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX3VzZXNQYWdlQ2FjaGUgeyB0cnVlIH07CisgICAg
Ym9vbCBtX3VzZXNCYWNrRm9yd2FyZENhY2hlIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9jbGllbnRX
b3VsZEJlbmVmaXRGcm9tQXV0b21hdGljUHJvY2Vzc1ByZXdhcm1pbmcgeyBmYWxzZSB9OwogICAg
IFdURjo6U3RyaW5nIG1fY3VzdG9tV2ViQ29udGVudFNlcnZpY2VCdW5kbGVJZGVudGlmaWVyOwog
ICAgIGJvb2wgbV9zaG91bGRDb25maWd1cmVKU0NGb3JUZXN0aW5nIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYjM0
ZjRiYzc3ZGFkODhkZmVhMDdlODdiYWE2NjM4MTc1YmUzZWI1MC4uODg4MDJhMmU4MWJiMzEwNjk3
OTFlMGJiM2UyNjY5NDlkNTE3Zjc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTYxMCwyMiArNjEwLDIyIEBAIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlCiAKIHZvaWQgV0tQcmVmZXJlbmNlc1NldFBhZ2VDYWNoZUVuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQogewotICAgIHRvSW1w
bChwcmVmZXJlbmNlc1JlZiktPnNldFVzZXNQYWdlQ2FjaGUoZW5hYmxlZCk7CisgICAgdG9JbXBs
KHByZWZlcmVuY2VzUmVmKS0+c2V0VXNlc0JhY2tGb3J3YXJkQ2FjaGUoZW5hYmxlZCk7CiB9CiAK
IGJvb2wgV0tQcmVmZXJlbmNlc0dldFBhZ2VDYWNoZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+dXNl
c1BhZ2VDYWNoZSgpOworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT51c2VzQmFj
a0ZvcndhcmRDYWNoZSgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBw
b3J0c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBwYWdlQ2Fj
aGVTdXBwb3J0c1BsdWdpbnMpCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRQYWdlQ2FjaGVTdXBwb3J0
c1BsdWdpbnMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBiYWNrRm9yd2Fy
ZENhY2hlU3VwcG9ydHNQbHVnaW5zKQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNl
dFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyhwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMpOworICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEJhY2tGb3J3YXJkQ2FjaGVTdXBwb3J0c1BsdWdp
bnMoYmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyk7CiB9CiAKIGJvb2wgV0tQcmVmZXJl
bmNlc0dldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5wYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnMoKTsKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YmFj
a0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucygpOwogfQogCiB2b2lkIFdLUHJlZmVyZW5jZXNT
ZXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
c1JlZiwgYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRleCAxOTQyNjBlMGMyZWNkYzA5ZjRiZmFhOTY2NzU4
NzVmYmE1ODJmYjQwLi5jMWE3MzA4ZDNkNTU0OTg3ODE1MzBhZDliYTJmN2M2MzUzMWM3NDNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNl
cy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNl
cy5tbQpAQCAtOTQ0LDIyICs5NDQsMjIgQEAgLSAoQk9PTClfbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZAogCiAtICh2b2lkKV9zZXRVc2VzUGFnZUNhY2hlOihCT09MKWVuYWJsZWQKIHsK
LSAgICBfcHJlZmVyZW5jZXMtPnNldFVzZXNQYWdlQ2FjaGUoZW5hYmxlZCk7CisgICAgX3ByZWZl
cmVuY2VzLT5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZShlbmFibGVkKTsKIH0KIAogLSAoQk9PTClf
dXNlc1BhZ2VDYWNoZQogewotICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPnVzZXNQYWdlQ2FjaGUo
KTsKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT51c2VzQmFja0ZvcndhcmRDYWNoZSgpOwogfQog
CiAtICh2b2lkKV9zZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnM6KEJPT0wpZW5hYmxlZAogewot
ICAgIF9wcmVmZXJlbmNlcy0+c2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKGVuYWJsZWQpOwor
ICAgIF9wcmVmZXJlbmNlcy0+c2V0QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyhlbmFi
bGVkKTsKIH0KIAogLSAoQk9PTClfcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zCiB7Ci0gICAgcmV0
dXJuIF9wcmVmZXJlbmNlcy0+cGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKCk7CisgICAgcmV0dXJu
IF9wcmVmZXJlbmNlcy0+YmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucygpOwogfQogCiAt
ICh2b2lkKV9zZXRTaG91bGRQcmludEJhY2tncm91bmRzOihCT09MKWVuYWJsZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLm1tCmluZGV4IDg3N2Q1MmNhZDMwZTBmZTM4ZjNjOWVhNzNiOTg5
MjU3MzhmMjU4ZTMuLjBiNjc3YmNjNGY4MjAyY2UyMzk5NWEwODJiYmI1YjAzODIwZmM4YjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9v
bENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5tbQpAQCAtMzEzLDEyICszMTMsMTIgQEAgLSAo
Qk9PTClwcm9jZXNzU3dhcHNPbldpbmRvd09wZW5XaXRoT3BlbmVyCiAKIC0gKEJPT0wpcGFnZUNh
Y2hlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLT51c2Vz
UGFnZUNhY2hlKCk7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnVzZXNC
YWNrRm9yd2FyZENhY2hlKCk7CiB9CiAKIC0gKHZvaWQpc2V0UGFnZUNhY2hlRW5hYmxlZDooQk9P
TCllbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24tPnNldFVz
ZXNQYWdlQ2FjaGUoZW5hYmxlZCk7CisgICAgcmV0dXJuIF9wcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24tPnNldFVzZXNCYWNrRm9yd2FyZENhY2hlKGVuYWJsZWQpOwogfQogCiAtIChCT09MKXVzZXNT
aW5nbGVXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggYWUyNzhjNzYyNTA5M2VjNTUxMTAzYjM4NzFmMGI4
YTQ5NjUwOTRmZS4uZTU3MDE2YjM1YzFiMWM1ZjA0Zjc5MmY1ODMxMjg3NDJlYTVhOWQwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2V0dGluZ3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNldHRpbmdz
LmNwcApAQCAtMjk4NCw3ICsyOTg0LDcgQEAgZ2Jvb2xlYW4gd2Via2l0X3NldHRpbmdzX2dldF9l
bmFibGVfcGFnZV9jYWNoZShXZWJLaXRTZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdzKSwgRkFMU0UpOwogCi0g
ICAgcmV0dXJuIHNldHRpbmdzLT5wcml2LT5wcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgpOwor
ICAgIHJldHVybiBzZXR0aW5ncy0+cHJpdi0+cHJlZmVyZW5jZXMtPnVzZXNCYWNrRm9yd2FyZENh
Y2hlKCk7CiB9CiAKIC8qKgpAQCAtMjk5OSwxMSArMjk5OSwxMSBAQCB2b2lkIHdlYmtpdF9zZXR0
aW5nc19zZXRfZW5hYmxlX3BhZ2VfY2FjaGUoV2ViS2l0U2V0dGluZ3MqIHNldHRpbmdzLCBnYm9v
bGVhbiBlbgogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1NFVFRJTkdTKHNldHRpbmdz
KSk7CiAKICAgICBXZWJLaXRTZXR0aW5nc1ByaXZhdGUqIHByaXYgPSBzZXR0aW5ncy0+cHJpdjsK
LSAgICBib29sIGN1cnJlbnRWYWx1ZSA9IHByaXYtPnByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hl
KCk7CisgICAgYm9vbCBjdXJyZW50VmFsdWUgPSBwcml2LT5wcmVmZXJlbmNlcy0+dXNlc0JhY2tG
b3J3YXJkQ2FjaGUoKTsKICAgICBpZiAoY3VycmVudFZhbHVlID09IGVuYWJsZWQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNhY2hlKGVuYWJs
ZWQpOworICAgIHByaXYtPnByZWZlcmVuY2VzLT5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZShlbmFi
bGVkKTsKICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLXBh
Z2UtY2FjaGUiKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTmF2aWdhdGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZp
Z2F0aW9uU3RhdGUuaAppbmRleCBiM2EzZDZmYmE5Njc0NmFiNDJlMjQxNTU5MzQzYTQ4OGQ1Y2Y3
NjNlLi4wZGZkZTdjOTg2ODAxZDhjMTg1ODJjMmE4YTM1NzkyNWFlNmMyMDI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaApAQCAtMTI4LDcg
KzEyOCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICB2b2lkIHdlYkdM
TG9hZFBvbGljeShXZWJQYWdlUHJveHkmLCBjb25zdCBVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OldlYkdMTG9hZFBvbGljeSk+JiYpIGNvbnN0IGZpbmFsOwogICAgICAgICB2
b2lkIHJlc29sdmVXZWJHTExvYWRQb2xpY3koV2ViUGFnZVByb3h5JiwgY29uc3QgVVJMJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpXZWJHTExvYWRQb2xpY3kpPiYmKSBjb25zdCBm
aW5hbDsKLSAgICAgICAgYm9vbCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oV2ViUGFnZVBy
b3h5JiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYsIGJvb2wgaW5QYWdlQ2FjaGUpIGZpbmFsOwor
ICAgICAgICBib29sIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShXZWJQYWdlUHJveHkmLCBX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgYm9vbCBpbkJhY2tGb3J3YXJkQ2FjaGUpIGZpbmFsOwog
ICAgICAgICBib29sIGRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW4oV2ViUGFnZVByb3h5JiwgQVBJ
OjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAgIGJvb2wgZGlkQmxvY2tJbnNlY3VyZVBsdWdp
blZlcnNpb24oV2ViUGFnZVByb3h5JiwgQVBJOjpEaWN0aW9uYXJ5JikgZmluYWw7CiAgICAgICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdl
YktpdDo6UGx1Z2luTW9kdWxlTG9hZFBvbGljeSwgQVBJOjpEaWN0aW9uYXJ5JiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJLaXQ6OlBsdWdpbk1vZHVsZUxvYWRQb2xpY3ksIGNvbnN0IFdURjo6
U3RyaW5nJik+JiYpIGZpbmFsOwpAQCAtMjQwLDcgKzI0MCw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgd2ViVmlld0JhY2tGb3J3YXJkTGlzdEl0ZW1BZGRlZFJlbW92ZWQgOiAxOwogICAgICAg
ICBib29sIHdlYlZpZXdEaWRGYWlsVG9Jbml0aWFsaXplUGx1Z0luV2l0aEluZm8gOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdEaWRCbG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvIDog
MTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtSW5QYWdl
Q2FjaGUgOiAxOworICAgICAgICBib29sIHdlYlZpZXdXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW1JbkJhY2tGb3J3YXJkQ2FjaGUgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xp
Y3lGb3JQbHVnaW5Mb2FkV2l0aEN1cnJlbnRQb2xpY3lQbHVnaW5JbmZvQ29tcGxldGlvbkhhbmRs
ZXIgOiAxOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5tbQppbmRleCA2YjE1YzA2YmQ5ZWZhMTlhZDYzNmIzMjlhMmE3NmE2YmU4
NTVjZGQ4Li45NGFlOWIxMzBmYjg5OTkzOGU5Y2UyNjFiNWU2OGUxM2U1MmUwMWIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCkBAIC0x
OTIsNyArMTkyLDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZ2F0
ZShpZCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+IGRlbGVnYXRlKQogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dlYkdMTG9hZFBvbGljeUZv
clVSTCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Ondl
YkdMTG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9uYXZpZ2F0aW9u
RGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZXNvbHZlV2ViR0xMb2FkUG9saWN5Rm9yVVJMID0gW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVzb2x2ZVdlYkdM
TG9hZFBvbGljeUZvclVSTDpkZWNpc2lvbkhhbmRsZXI6KV07Ci0gICAgbV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW1JblBhZ2VDYWNo
ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxH
b1RvQmFja0ZvcndhcmRMaXN0SXRlbTppblBhZ2VDYWNoZTopXTsKKyAgICBtX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUluQmFja0Zv
cndhcmRDYWNoZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OndpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTppblBhZ2VDYWNoZTopXTsKICAgICBtX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5X
aXRoSW5mbyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3
OmRpZEZhaWxUb0luaXRpYWxpemVQbHVnSW5XaXRoSW5mbzopXTsKICAgICBtX25hdmlnYXRpb25E
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9uV2l0aElu
Zm8gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWRC
bG9ja0luc2VjdXJlUGx1Z2luVmVyc2lvbldpdGhJbmZvOildOwogICAgIG1fbmF2aWdhdGlvbkRl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3QmFja0ZvcndhcmRMaXN0SXRlbUFkZGVkUmVtb3ZlZCA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmJhY2tGb3J3YXJk
TGlzdEl0ZW1BZGRlZDpyZW1vdmVkOildOwpAQCAtNDYyLDE2ICs0NjIsMTYgQEAgYm9vbCBOYXZp
Z2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChX
ZWJQYWdlUHJveHkmLAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE5hdmlnYXRpb25TdGF0
ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdlYlBhZ2VQ
cm94eSYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIGJvb2wgaW5QYWdlQ2FjaGUpCiti
b29sIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6d2lsbEdvVG9CYWNrRm9yd2Fy
ZExpc3RJdGVtKFdlYlBhZ2VQcm94eSYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIGJv
b2wgaW5CYWNrRm9yd2FyZENhY2hlKQogewotICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9u
YXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW1JblBhZ2VDYWNoZSkKKyAgICBpZiAoIW1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtSW5CYWNrRm9y
d2FyZENhY2hlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIG5hdmlnYXRpb25E
ZWxlZ2F0ZSA9IG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpOwog
ICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBbKGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+KW5hdmlnYXRpb25EZWxlZ2F0ZSBf
d2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgd2lsbEdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtOndyYXBwZXIoaXRlbSkgaW5QYWdlQ2FjaGU6aW5QYWdlQ2FjaGVdOworICAgIFsoaWQg
PFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3
Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06
d3JhcHBlcihpdGVtKSBpblBhZ2VDYWNoZTppbkJhY2tGb3J3YXJkQ2FjaGVdOwogICAgIHJldHVy
biB0cnVlOwogfQogI2VuZGlmCkBAIC03NTQsNyArNzU0LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3Rh
dGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKFdlYlBh
Z2VQcm8KICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxs
IGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91
Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBu
YXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBz
b21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAgIGlm
IChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Rp
ZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uVXNlckluZm8pCiAgICAgICAgIFsoaWQgPFdLTmF2
aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZT4pbmF2aWdhdGlvbkRlbGVnYXRlIF93ZWJWaWV3Om1fbmF2
aWdhdGlvblN0YXRlLm1fd2ViVmlldyBkaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbjp3cmFw
cGVyKG5hdmlnYXRpb24pIHVzZXJJbmZvOnVzZXJJbmZvID8gc3RhdGljX2Nhc3Q8aWQgPE5TU2Vj
dXJlQ29kaW5nPj4odXNlckluZm8tPndyYXBwZXIoKSkgOiBuaWxdOwpAQCAtNzcxLDcgKzc3MSw3
IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQg
bmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Ig
c29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQn
cyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2Zv
cndhcmQgY2FjaGUuCiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0
aW9uU3RhdGUubV93ZWJWaWV3IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TmF2aWdhdGlvbjp3cmFwcGVyKG5hdmlnYXRpb24pXTsKIH0KQEAgLTgzNCw3ICs4MzQsNyBAQCBz
dGF0aWMgUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0ZUVycm9yV2l0aFJlY292ZXJ5QXR0ZW1wdGVy
KFdLV2ViVmlldyAqd2ViVmlldywgVwogLy8gRklYTUU6IFNob3VsZG4ndCBuZWVkIHRvIHBhc3Mg
dGhlIFdlYkZyYW1lUHJveHkgaW4gaGVyZS4gQXQgbW9zdCwgYSBGcmFtZUhhbmRsZS4KIHZvaWQg
TmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRGYWlsUHJvdmlzaW9uYWxOYXZp
Z2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgd2ViRnJh
bWVQcm94eSwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiBlcnJvciwgQVBJOjpPYmplY3QqKQogewotICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJy
ZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgor
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVs
bCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJv
dWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAKICAgICAvLyBGSVhNRTogU2V0IHRoZSBlcnJv
ciBvbiB0aGUgbmF2aWdhdGlvbiBvYmplY3QuCiAKQEAgLTg3Miw3ICs4NzIsNyBAQCB2b2lkIE5h
dmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkQ29tbWl0TmF2aWdhdGlvbihXZWJQ
YWdlUHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBp
cyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0
aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNz
ZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkg
bnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUu
CiAKICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93
ZWJWaWV3IGRpZENvbW1pdE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0aW9uKV07CiB9CkBAIC04
ODYsNyArODg2LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRp
ZEZpbmlzaERvY3VtZW50TG9hZChXZWJQYWdlUHJveHkmIHBhZ2UKICAgICBpZiAoIW5hdmlnYXRp
b25EZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBh
c3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRs
eSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhl
cmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2gg
dGhlIGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0
aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpKSBfd2ViVmlldzpt
X25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgbmF2aWdhdGlvbkRpZEZpbmlzaERvY3VtZW50TG9h
ZDp3cmFwcGVyKG5hdmlnYXRpb24pXTsKIH0KQEAgLTkwMCw3ICs5MDAsNyBAQCB2b2lkIE5hdmln
YXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkRmluaXNoTmF2aWdhdGlvbihXZWJQYWdl
UHJveHkmIHBhZ2UsCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbiBpcyBu
b3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVsbCBmb3Igc29tZSBuYXZpZ2F0aW9u
cyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0
IHRoYXQgbmF2aWdhdGlvbiBpcyBub3QgbnVsbCBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgbnVs
bCBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAK
ICAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJW
aWV3IGRpZEZpbmlzaE5hdmlnYXRpb246d3JhcHBlcihuYXZpZ2F0aW9uKV07CiB9CkBAIC05MTYs
NyArOTE2LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRpZEZh
aWxOYXZpZ2F0aW9uV2l0aEVycm9yKFdlYlBhZ2VQcm94eSYKICAgICBpZiAoIW5hdmlnYXRpb25E
ZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3Nl
cnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSBu
dWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBuYXZpZ2F0aW9uIGlzIG5vdCBudWxsIGhlcmUs
IGJ1dCBpdCdzIGN1cnJlbnRseSBudWxsIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhl
IGJhY2svZm9yd2FyZCBjYWNoZS4KIAogICAgIGF1dG8gZXJyb3JXaXRoUmVjb3ZlcnlBdHRlbXB0
ZXIgPSBjcmVhdGVFcnJvcldpdGhSZWNvdmVyeUF0dGVtcHRlcihtX25hdmlnYXRpb25TdGF0ZS5t
X3dlYlZpZXcsIHdlYkZyYW1lUHJveHksIGVycm9yKTsKICAgICBpZiAobV9uYXZpZ2F0aW9uU3Rh
dGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRGYWlsTmF2aWdhdGlvbldp
dGhFcnJvclVzZXJJbmZvKQpAQCAtOTM0LDcgKzkzNCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRl
OjpOYXZpZ2F0aW9uQ2xpZW50OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKFdlYlBhZ2VQcm94
eSYsCiAgICAgaWYgKCFuYXZpZ2F0aW9uRGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgYXNzZXJ0IHRoYXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJv
IGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91
Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBhc3NlcnQgdGhhdCBu
YXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9y
IHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogCiAgICAg
W3N0YXRpY19jYXN0PGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9u
RGVsZWdhdGUuZ2V0KCkpIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyBuYXZp
Z2F0aW9uOndyYXBwZXIobmF2aWdhdGlvbikgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbjp0b1dL
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUobmF2aWdhdGlvblR5cGUpXTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuY3BwCmluZGV4IGI0
ODI3NzI5ZDcyNDIxNTJlYjQ3NTE2YjgwZTRkYTA3NWFmYjc1M2UuLjM1NjIzNTU1N2E3ZWM3ZmM0
NmEzZGFhMzVlN2M4ZDk4OTI2ZTBhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMjE3LDcgKzIxNyw3IEBAIHZvaWQgVmll
d0dlc3R1cmVDb250cm9sbGVyOjpkaWRSZWFjaE1haW5GcmFtZUxvYWRUZXJtaW5hbFN0YXRlKCkK
ICAgICBpZiAoIW1fc25hcHNob3RSZW1vdmFsVHJhY2tlci5ldmVudE9jY3VycmVkKFNuYXBzaG90
UmVtb3ZhbFRyYWNrZXI6Ok1haW5GcmFtZUxvYWQpKQogICAgICAgICByZXR1cm47CiAKLSAgICAv
LyBDb21pbmcgYmFjayBmcm9tIHRoZSBwYWdlIGNhY2hlIHdpbGwgcmVzdWx0IGluIGdldHRpbmcg
YSBsb2FkIGV2ZW50LCBidXQgbm8gZmlyc3QgdmlzdWFsbHkgbm9uLWVtcHR5IGxheW91dC4KKyAg
ICAvLyBDb21pbmcgYmFjayBmcm9tIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgd2lsbCByZXN1bHQg
aW4gZ2V0dGluZyBhIGxvYWQgZXZlbnQsIGJ1dCBubyBmaXJzdCB2aXN1YWxseSBub24tZW1wdHkg
bGF5b3V0LgogICAgIC8vIFdlYkNvcmUgY29uc2lkZXJzIGEgbG9hZGVkIGRvY3VtZW50IGVub3Vn
aCB0byBiZSBjb25zaWRlcmVkIHZpc3VhbGx5IG5vbi1lbXB0eSwgc28gdGhhdCdzIGdvb2QKICAg
ICAvLyBlbm91Z2ggZm9yIHVzIHRvby4KICAgICBtX3NuYXBzaG90UmVtb3ZhbFRyYWNrZXIuY2Fu
Y2VsT3V0c3RhbmRpbmdFdmVudChTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpWaXN1YWxseU5vbkVt
cHR5TGF5b3V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IGIzNzI1NThmZWM3NDBlOTBmMzE3ZmQ3MmQ4OWMwYTk4ZTYzZmViNWYuLjJjYzk2OTM2YzcwZDNi
YjkzMzljZmJmYTUxOGIyN2RkZWZmYmJmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtODE1LDcgKzgxNSw3IEBAIFdlYkJhY2tGb3J3YXJkQ2FjaGUmIFdl
YlBhZ2VQcm94eTo6YmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0CiAKIGJvb2wgV2ViUGFnZVByb3h5
OjpzaG91bGRVc2VCYWNrRm9yd2FyZENhY2hlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcmVm
ZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgpICYmIGJhY2tGb3J3YXJkQ2FjaGUoKS5jYXBhY2l0eSgp
ID4gMDsKKyAgICByZXR1cm4gbV9wcmVmZXJlbmNlcy0+dXNlc0JhY2tGb3J3YXJkQ2FjaGUoKSAm
JiBiYWNrRm9yd2FyZENhY2hlKCkuY2FwYWNpdHkoKSA+IDA7CiB9CiAKIHZvaWQgV2ViUGFnZVBy
b3h5Ojpzd2FwVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFn
ZUlkZW50aWZpZXIgd2ViUGFnZUlELCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4m
JiBkcmF3aW5nQXJlYSwgUmVmUHRyPFdlYkZyYW1lUHJveHk+JiYgbWFpbkZyYW1lKQpAQCAtMTU2
NywxMiArMTU2NywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQmFja0ZvcndhcmRM
aXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkLCBWZWN0bwogICAgIG1fcGFnZUxvYWRT
dGF0ZS5zZXRDYW5Hb0ZvcndhcmQodHJhbnNhY3Rpb24sIG1fYmFja0ZvcndhcmRMaXN0LT5mb3J3
YXJkSXRlbSgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxHb1RvQmFja0ZvcndhcmRM
aXN0SXRlbShjb25zdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiBpdGVtSUQsIGJvb2wgaW5Q
YWdlQ2FjaGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
KGNvbnN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImIGl0ZW1JRCwgYm9vbCBpbkJhY2tGb3J3
YXJkQ2FjaGUpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVu
dCgpKTsKIAogICAgIGlmIChhdXRvKiBpdGVtID0gbV9iYWNrRm9yd2FyZExpc3QtPml0ZW1Gb3JJ
RChpdGVtSUQpKQotICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPndpbGxHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbSgqdGhpcywgKml0ZW0sIGluUGFnZUNhY2hlKTsKKyAgICAgICAgbV9uYXZpZ2F0
aW9uQ2xpZW50LT53aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oKnRoaXMsICppdGVtLCBpbkJh
Y2tGb3J3YXJkQ2FjaGUpOwogfQogCiBib29sIFdlYlBhZ2VQcm94eTo6c2hvdWxkS2VlcEN1cnJl
bnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0p
CkBAIC00MDgzLDcgKzQwODMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgICAgIG1f
cHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0
IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFn
ZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZp
Z2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNv
bWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFt
ZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0
ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsKQEAgLTQxNTAsNyArNDE1MCw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZVNoYXJlZChSZWY8CiAgICAgTUVTU0FHRV9DSEVDSyhwcm9jZXNzLCBmcmFtZSk7CiAg
ICAgTUVTU0FHRV9DSEVDS19VUkwocHJvY2VzcywgcmVxdWVzdC51cmwoKSk7CiAKLSAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHpl
cm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhy
b3VnaCB0aGUgcGFnZSBjYWNoZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hl
Y2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5
IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uSUQg
PyBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwog
ICAgIGlmIChuYXZpZ2F0aW9uKQogICAgICAgICBuYXZpZ2F0aW9uLT5hcHBlbmRSZWRpcmVjdGlv
blVSTChyZXF1ZXN0LnVybCgpKTsKQEAgLTQyNDQsNyArNDI0NCw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwCiAgICAgICAgICAgICBhdXRvbWF0aW9uU2Vzc2lvbi0+bmF2aWdhdGlvbk9jY3Vy
cmVkRm9yRnJhbWUoKmZyYW1lKTsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1l
c3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9uSUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3Mg
Y3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2aWdhdGlvbnMgdGhyb3VnaCB0aGUgcGFnZSBjYWNo
ZS4KKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG1lc3NhZ2UgY2hlY2sgdGhhdCBuYXZpZ2F0aW9u
SUQgaXMgbm90IHplcm8gaGVyZSwgYnV0IGl0J3MgY3VycmVudGx5IHplcm8gZm9yIHNvbWUgbmF2
aWdhdGlvbnMgdGhyb3VnaCB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIFJlZlB0cjxBUEk6
Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247CiAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYm
IG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLnRh
a2VOYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CkBAIC00MzE5LDcgKzQzMTksNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZwogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwog
Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBtZXNzYWdlIGNoZWNrIHRoYXQgbmF2aWdhdGlvbklE
IGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdzIGN1cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmln
YXRpb25zIHRocm91Z2ggdGhlIHBhZ2UgY2FjaGUuCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBt
ZXNzYWdlIGNoZWNrIHRoYXQgbmF2aWdhdGlvbklEIGlzIG5vdCB6ZXJvIGhlcmUsIGJ1dCBpdCdz
IGN1cnJlbnRseSB6ZXJvIGZvciBzb21lIG5hdmlnYXRpb25zIHRocm91Z2ggdGhlIGJhY2svZm9y
d2FyZCBjYWNoZS4KICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwogICAg
IGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQgJiYgKG5hdmlnYXRpb24g
PSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkpKSB7CiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKQEAgLTQ0MzYsNyArNDQzNiw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0CiAgICAgICAgICAgICBhdXRvbWF0aW9uU2Vzc2lvbi0+ZG9jdW1l
bnRMb2FkZWRGb3JGcmFtZSgqZnJhbWUpOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQg
aXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdl
IGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmln
YXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29t
ZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1l
KCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRl
KCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDQ1NSw3ICs0NDU1LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWcKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsK
IAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25J
RCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZp
Z2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
bWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQn
cyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2Zv
cndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZp
Z2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAt
NDUwMCw3ICs0NTAwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXQKICAgICBXZWJGcmFtZVBy
b3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9D
SEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2Fn
ZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJy
ZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNhY2hlLgor
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBp
cyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0
aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2
aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdh
dGlvbihuYXZpZ2F0aW9uSUQpOwpAQCAtNDU0Myw3ICs0NTQzLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWkKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogICAgIE1FU1NB
R0VfQ0hFQ0tfVVJMKG1fcHJvY2VzcywgdXJsKTsKIAotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
bWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRpb25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQn
cyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBuYXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBwYWdlIGNh
Y2hlLgorICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbWVzc2FnZSBjaGVjayB0aGF0IG5hdmlnYXRp
b25JRCBpcyBub3QgemVybyBoZXJlLCBidXQgaXQncyBjdXJyZW50bHkgemVybyBmb3Igc29tZSBu
YXZpZ2F0aW9ucyB0aHJvdWdoIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgUmVmUHRyPEFQ
STo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkg
JiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCku
bmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA3ODVjYzczYzBlNWM2ZDVkNThmYzc4ZGFlMTU0NWJiMTQyMTNhODk4Li5jNmE0
ZmRjZmEzNWVjYjU0MTI5YTk3YjQ1MDg4YTJmYzEwNDczNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTU4LDcgKzU1OCw3IEBAIHB1YmxpYzoKICAgICBSZWZQ
dHI8QVBJOjpOYXZpZ2F0aW9uPiBnb1RvQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0mKTsKICAgICB2b2lkIHRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQg
ZGlkQ2hhbmdlQmFja0ZvcndhcmRMaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGFkZGVkSXRl
bSwgVmVjdG9yPFJlZjxXZWJCYWNrRm9yd2FyZExpc3RJdGVtPj4mJiByZW1vdmVkKTsKLSAgICB2
b2lkIHdpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyJiwgYm9vbCBpblBhZ2VDYWNoZSk7CisgICAgdm9pZCB3aWxsR29Ub0Jh
Y2tGb3J3YXJkTGlzdEl0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmll
ciYsIGJvb2wgaW5CYWNrRm9yd2FyZENhY2hlKTsKIAogICAgIGJvb2wgc2hvdWxkS2VlcEN1cnJl
bnRCYWNrRm9yd2FyZExpc3RJdGVtSW5MaXN0KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDMwNDNlY2U0ZTg1MTkyZjFmYzAyOTg1YWE3ZDY5MWU3MDIzZDExN2UuLjdiOWZlMjA4NDJj
N2QwODhlNDc4NDJiMGFiYzQxMWZhNzczY2JjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIzMCw3ICsyMzAsNyBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJhY2tGb3J3YXJkQmFja0xpc3RDb3VudCgpIC0+
ICh1aW50MzJfdCBjb3VudCkgU3luY2hyb25vdXMKICAgICBCYWNrRm9yd2FyZEZvcndhcmRMaXN0
Q291bnQoKSAtPiAodWludDMyX3QgY291bnQpIFN5bmNocm9ub3VzCiAgICAgQmFja0ZvcndhcmRD
bGVhcigpCi0gICAgV2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHN0cnVjdCBXZWJDb3JlOjpC
YWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgYm9vbCBpblBhZ2VDYWNoZSkKKyAgICBX
aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0oc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRl
bUlkZW50aWZpZXIgaXRlbUlELCBib29sIGluQmFja0ZvcndhcmRDYWNoZSkKIAogICAgICMgVW5k
by9SZWRvIG1lc3NhZ2VzCiAgICAgUmVnaXN0ZXJFZGl0Q29tbWFuZEZvclVuZG8odWludDY0X3Qg
Y29tbWFuZElELCBTdHJpbmcgbGFiZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKaW5kZXggYzA2ZDZjNmI3N2E3NGVlN2Q5MzliNzU4ZTAxZmNhZTZmY2E2ODEw
Ny4uMjc4ZTRjNzNmYmRlM2MwOGVmZWRhZjEyMzc4OTAwYjE5YmY2MDVkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTU3Miw3ICsxNTcyLDcgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZD
YW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6dXBkYXRlQmFj
a0ZvcndhcmRDYWNoZUNhcGFjaXR5KCkKIHsKLSAgICBpZiAoIW1fY29uZmlndXJhdGlvbi0+dXNl
c1BhZ2VDYWNoZSgpKQorICAgIGlmICghbV9jb25maWd1cmF0aW9uLT51c2VzQmFja0ZvcndhcmRD
YWNoZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICB1bnNpZ25lZCBkdW1teSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCmluZGV4
IGQ4ZTNhOWYyMzE4N2VmYjNiNWIwNzY0YTE0YjEyZDVlOGM1MGIyMDUuLjc3OTg3ODIzMWY5Yzg0
MDU1NTRmNGNhYTJjNzE3N2I0ODQ1ZDkxZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNUYXJnZXRJdGVtKFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbVJlZiBpdGVtCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbUlzSW5QYWdlQ2FjaGUoV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
UmVmIGl0ZW1SZWYpCitib29sIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5CYWNrRm9y
d2FyZENhY2hlKFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQogewogICAg
IHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uaAppbmRleCBmMDBlYWQ0NjY2MTk4OTU3NWJjMmI5ZGU3YWM5ZDliMjFkNTU3
ZWE2Li5jOWE2MDM1MWY2NWY4NjlmNDI5MWQ2ODUyYjA3OGE4ZmVmZTUwMWM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVC
YWNrRm9yd2FyZExpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oCkBAIC00NCw3ICs0
NCw3IEBAIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1D
b3B5VGl0bGUoV0tCdW5kbGVCYWNrRm9yd2FyZExpCiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtQ29weVRhcmdldChXS0J1bmRsZUJhY2tGb3J3YXJkTGlz
dEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVDQVRFRDsKIFdLX0VYUE9SVCBib29sIFdLQnVu
ZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzVGFyZ2V0SXRlbShXS0J1bmRsZUJhY2tGb3J3YXJkTGlz
dEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVDQVRFRDsKIAotV0tfRVhQT1JUIGJvb2wgV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSXNJblBhZ2VDYWNoZShXS0J1bmRsZUJhY2tGb3J3YXJk
TGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVDQVRFRDsKK1dLX0VYUE9SVCBib29sIFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUlzSW5CYWNrRm9yd2FyZENhY2hlKFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtKSBXS19DX0FQSV9ERVBSRUNBVEVEOwogV0tfRVhQT1JU
IGJvb2wgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtSGFzQ2FjaGVkUGFnZUV4cGlyZWQoV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0pIFdLX0NfQVBJX0RFUFJFQ0FURUQ7CiAK
IFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbUNvcHlDaGls
ZHJlbihXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSkgV0tfQ19BUElfREVQUkVD
QVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAppbmRleCAwZWNhNGMxZDMy
MGNlOTBkZWMxY2VhODM1NGZlMjI2ZTcwZjQ0NTMyLi4wMjY5NWQzZWI4OWY1ZTY0MDkzODQxNDI0
OWU3ZjVjOWY4MmFjNDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCkBA
IC0xMTUsNyArMTE1LDcgQEAgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIHRvQmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlKGNvbnN0IFdlYkNvcmU6Okhpc3RvcnlJdGVtJgogICAgIHN0YXRlLnBhZ2VT
dGF0ZS5tYWluRnJhbWVTdGF0ZSA9IHRvRnJhbWVTdGF0ZShoaXN0b3J5SXRlbSk7CiAgICAgc3Rh
dGUucGFnZVN0YXRlLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBoaXN0b3J5SXRlbS5z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCk7CiAgICAgc3RhdGUucGFnZVN0YXRlLnNlc3Np
b25TdGF0ZU9iamVjdCA9IGhpc3RvcnlJdGVtLnN0YXRlT2JqZWN0KCk7Ci0gICAgc3RhdGUuaGFz
Q2FjaGVkUGFnZSA9IGhpc3RvcnlJdGVtLmlzSW5QYWdlQ2FjaGUoKTsKKyAgICBzdGF0ZS5oYXND
YWNoZWRQYWdlID0gaGlzdG9yeUl0ZW0uaXNJbkJhY2tGb3J3YXJkQ2FjaGUoKTsKICAgICByZXR1
cm4gc3RhdGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGNjZWQx
MWZhYmRlMWViYTkyYmQ2YzdlMGNiMTZiNTc5OTczZDNhNGMuLjc4ZGE0N2NhOWUxOWNmZTdmZDZl
YzcxY2ZhZGU3OTZlZTVkOTU2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApA
QCAtMTA0LDcgKzEwNCw3IEBAIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpXZWJGcmFtZUxvYWRlckNs
aWVudCgpCiAgICAgLCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luVmlldyhmYWxzZSkKICAgICAs
IG1fZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbihmYWxzZSkKICAgICAsIG1fZnJhbWVIYXNDdXN0
b21Db250ZW50UHJvdmlkZXIoZmFsc2UpCi0gICAgLCBtX2ZyYW1lQ2FtZUZyb21QYWdlQ2FjaGUo
ZmFsc2UpCisgICAgLCBtX2ZyYW1lQ2FtZUZyb21CYWNrRm9yd2FyZENhY2hlKGZhbHNlKQogewog
fQogCkBAIC0xMjA2LDcgKzEyMDYsNyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91
bGRHb1RvSGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0pIGNvbnN0CiAgICAgV2ViUGFnZSog
d2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Oldp
bGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVtLmlkZW50aWZpZXIoKSwgaXRlbS5pc0luUGFn
ZUNhY2hlKCkpKTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Oldp
bGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbShpdGVtLmlkZW50aWZpZXIoKSwgaXRlbS5pc0luQmFj
a0ZvcndhcmRDYWNoZSgpKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE0NjUsNyArMTQ2
NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZy
b21DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopCiB7CiAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKS0+cmVzcG9uc2UoKTsKICAgICBtX2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyID0g
bV9mcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBtX2ZyYW1lLT5wYWdlKCktPnNob3VsZFVzZUN1c3Rv
bUNvbnRlbnRQcm92aWRlckZvclJlc3BvbnNlKHJlc3BvbnNlKTsKLSAgICBtX2ZyYW1lQ2FtZUZy
b21QYWdlQ2FjaGUgPSB0cnVlOworICAgIG1fZnJhbWVDYW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUg
PSB0cnVlOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21t
aXR0ZWRGb3JOZXdQYWdlKCkKQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogCiAgICAgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPSBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKTsKICAgICBtX2ZyYW1lSGFzQ3VzdG9tQ29u
dGVudFByb3ZpZGVyID0gaXNNYWluRnJhbWUgJiYgd2ViUGFnZS0+c2hvdWxkVXNlQ3VzdG9tQ29u
dGVudFByb3ZpZGVyRm9yUmVzcG9uc2UocmVzcG9uc2UpOwotICAgIG1fZnJhbWVDYW1lRnJvbVBh
Z2VDYWNoZSA9IGZhbHNlOworICAgIG1fZnJhbWVDYW1lRnJvbUJhY2tGb3J3YXJkQ2FjaGUgPSBm
YWxzZTsKIAogICAgIFNjcm9sbGJhck1vZGUgZGVmYXVsdFNjcm9sbGJhck1vZGUgPSBzaG91bGRI
aWRlU2Nyb2xsYmFycyA/IFNjcm9sbGJhckFsd2F5c09mZiA6IFNjcm9sbGJhckF1dG87CiAKQEAg
LTE1MzMsOSArMTUzMyw5IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25U
b0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpCiB7Ci0gICAgbV9mcmFtZUNhbWVG
cm9tUGFnZUNhY2hlID0gdHJ1ZTsKKyAgICBtX2ZyYW1lQ2FtZUZyb21CYWNrRm9yd2FyZENhY2hl
ID0gdHJ1ZTsKIH0KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNv
bWVGcmFtZXNldChib29sIHZhbHVlKQpAQCAtMTU5Niw3ICsxNTk2LDcgQEAgUmVmUHRyPFdpZGdl
dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRN
TFBsdWdJbkVsZW0KICAgICBwYXJhbWV0ZXJzLnZhbHVlcyA9IHBhcmFtVmFsdWVzOwogICAgIHBh
cmFtZXRlcnMubWltZVR5cGUgPSBtaW1lVHlwZTsKICAgICBwYXJhbWV0ZXJzLmlzRnVsbEZyYW1l
UGx1Z2luID0gbG9hZE1hbnVhbGx5OwotICAgIHBhcmFtZXRlcnMuc2hvdWxkVXNlTWFudWFsTG9h
ZGVyID0gcGFyYW1ldGVycy5pc0Z1bGxGcmFtZVBsdWdpbiAmJiAhbV9mcmFtZUNhbWVGcm9tUGFn
ZUNhY2hlOworICAgIHBhcmFtZXRlcnMuc2hvdWxkVXNlTWFudWFsTG9hZGVyID0gcGFyYW1ldGVy
cy5pc0Z1bGxGcmFtZVBsdWdpbiAmJiAhbV9mcmFtZUNhbWVGcm9tQmFja0ZvcndhcmRDYWNoZTsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBwYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUgPSBt
X2ZyYW1lLT5wYWdlKCktPmxheWVySG9zdGluZ01vZGUoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCBhZmExN2E0OTY3Y2ZjMDNhNmM5NDhkYjk5Y2U4MDE0MjVkZWM0
N2YxLi42MTFmY2I4NmRiZTYzYWQ3MzNiMTIwMTc1NmExNTJkZGNiOTM2MWMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogICAgIAogICAg
IHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgZmluYWw7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3Jl
RnJvbVBhZ2VDYWNoZSgpIGZpbmFsOworICAgIGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9t
QmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwogI2VuZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZv
ck5vbkhUTUwoKSBmaW5hbDsKICAgICAKQEAgLTIwNiw3ICsyMDYsNyBAQCBwcml2YXRlOgogI2Vu
ZGlmCiAgICAgdm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkgZmluYWw7CiAK
LSAgICB2b2lkIGRpZFJlc3RvcmVGcm9tUGFnZUNhY2hlKCkgZmluYWw7CisgICAgdm9pZCBkaWRS
ZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKSBmaW5hbDsKIAogICAgIHZvaWQgZGlzcGF0Y2hE
aWRCZWNvbWVGcmFtZXNldChib29sKSBmaW5hbDsKIApAQCAtMjgxLDcgKzI4MSw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luVmlldzsKICAgICBib29sIG1f
ZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlvbjsKICAgICBib29sIG1fZnJhbWVIYXNDdXN0b21Db250
ZW50UHJvdmlkZXI7Ci0gICAgYm9vbCBtX2ZyYW1lQ2FtZUZyb21QYWdlQ2FjaGU7CisgICAgYm9v
bCBtX2ZyYW1lQ2FtZUZyb21CYWNrRm9yd2FyZENhY2hlOwogICAgIGJvb2wgbV91c2VJY29uTG9h
ZGluZ0NsaWVudCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKICAgICBPcHRpb25hbDxGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vzc0lkZW50aWZpZXI+IG1f
ZnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVu
dElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2Vi
RnJhbWVMb2FkZXJDbGllbnRJT1MubW0KaW5kZXggZmNhOWJkZjA2ZWRhYTNiNDk4N2IxOTg1NGU5
MzNjZTZmMzQ3NWNiMS4uOGZhZjMxZWE0YjdiMzBlNTdkYzQ4ZWQyNjRhYzk2YWEyMTRmZGRkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9X
ZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCkBAIC01Myw3ICs1
Myw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJlc3RvcmVGcmFtZUhpZXJhcmNo
eUZvckNhY2hlZEZyYW1lKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIFdlYkZy
YW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dE9uUmVzdG9yZUZyb21QYWdlQ2FjaGUoKQorYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Zm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFja0Zvcndh
cmRDYWNoZSgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xs
ZXIuY3BwCmluZGV4IDRiYjRlMzQ0MjYyNzI1ODE4YmQ0MDA5MGQ5ZGFlZWMwZjU2MzI5ZTUuLjJh
ZGQyMWJiZWU5NDlhMDhkNGJiMmMxMWY4YjY0MzFiNTEwZWI5NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1Zpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVkTGlua1RhYmxl
Q29udHJvbGxlci5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJWaXNpdGVkTGlua1Rh
YmxlQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcAppbmRleCBk
ODBkN2Y5NTdhOTYzYmQyYjlkZmI5MmJiZDk1NWI4ZDVkNTI0NDBmLi45MTc0ZmUxZjk5YzJmYTUz
YjkzZDdmOTJkZGUyZGYxZGFiZTQ1NmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCkBAIC0z
NCwxMCArMzQsMTAgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlDb250cm9sbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHk6OnJlbW92ZUl0ZW0oY29uc3QgQmFja0ZvcndhcmRJdGVtSWRl
bnRpZmllciYgaXRlbUlECiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm47CiAgICAgICAg
IAotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3ZlKCppdGVtKTsKKyAgICBCYWNrRm9y
d2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoKml0ZW0pOwogICAgIFdlYkNvcmU6OlBhZ2U6
OmNsZWFyUHJldmlvdXNJdGVtRnJvbUFsbFBhZ2VzKGl0ZW0uZ2V0KCkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDA4MTc5Mjc2M2Ji
Y2FiMzg1Y2FhMjc1YzM1MGJmNjlkNzc4ZmFjYjAuLmRmOTYxZTQwOWM1YTgzOWFiMThjZDU1Mjdl
NmY4NDk2Yzg2NzkzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9T
YW1wbGluZ1Byb2ZpbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXJjaGl2ZVJlc291cmNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2Fy
ZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ29tbW9uVk0uaD4KQEAgLTE5Miw3ICsxOTMsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
TW91c2VFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bp
bmdMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgpA
QCAtMTQ5MCwxMiArMTQ5MCwxMiBAQCB2b2lkIFdlYlBhZ2U6OnN1c3BlbmRGb3JQcm9jZXNzU3dh
cCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIVBhZ2VDYWNoZTo6c2luZ2xl
dG9uKCkuYWRkSWZDYWNoZWFibGUoKmN1cnJlbnRIaXN0b3J5SXRlbSwgY29yZVBhZ2UoKSkpIHsK
KyAgICBpZiAoIUJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLmFkZElmQ2FjaGVhYmxlKCpj
dXJyZW50SGlzdG9yeUl0ZW0sIGNvcmVQYWdlKCkpKSB7CiAgICAgICAgIGZhaWxlZFRvU3VzcGVu
ZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gUGFnZSBjYWNoZSBkb2VzIG5v
dCBicmVhayB0aGUgb3BlbmVyIGxpbmsgZm9yIHRoZSBtYWluIGZyYW1lIChvbmx5IGRvZXMgc28g
Zm9yIHRoZSBzdWJmcmFtZXMpIGJlY2F1c2UgdGhlCisgICAgLy8gQmFjay9mb3J3YXJkIGNhY2hl
IGRvZXMgbm90IGJyZWFrIHRoZSBvcGVuZXIgbGluayBmb3IgdGhlIG1haW4gZnJhbWUgKG9ubHkg
ZG9lcyBzbyBmb3IgdGhlIHN1YmZyYW1lcykgYmVjYXVzZSB0aGUKICAgICAvLyBtYWluIGZyYW1l
IGlzIG5vcm1hbGx5IHJlLXVzZWQgZm9yIHRoZSBuYXZpZ2F0aW9uLiBIb3dldmVyLCBpbiB0aGUg
Y2FzZSBvZiBwcm9jZXNzLXN3YXBwaW5nLCB0aGUgbWFpbiBmcmFtZQogICAgIC8vIGlzIG5vdyBo
b3N0ZWQgaW4gYW5vdGhlciBwcm9jZXNzIGFuZCB0aGUgb25lIGluIHRoaXMgcHJvY2VzcyBpcyBp
biB0aGUgY2FjaGUuCiAgICAgaWYgKG1fbWFpbkZyYW1lICYmIG1fbWFpbkZyYW1lLT5jb3JlRnJh
bWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBjNjZjODA1
ZDYxZTRjMjUxNmUyNjhhM2VmOTRhZmQ4OGRiNjhlNzU4Li42YzMyYjQyN2I1ZTgxZjZlN2Y2Mzg2
NzZmYmUyYjFhNTY4OGFkYTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCkBAIC04Miw2ICs4Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Jh
Y2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NQVU1vbml0b3IuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlLmg+CkBAIC0xMDcsNyArMTA4LDYgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oPgpAQCAtMzA2LDkgKzMwNiw5IEBA
IHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgICAgICAgICB9CiAjZW5kaWYKIAotICAgICAg
ICAgICAgYXV0byBtYWludGFpblBhZ2VDYWNoZSA9IG1faXNTdXNwZW5kaW5nID8gV2ViQ29yZTo6
TWFpbnRhaW5QYWdlQ2FjaGU6OlllcyA6IFdlYkNvcmU6Ok1haW50YWluUGFnZUNhY2hlOjpObzsK
KyAgICAgICAgICAgIGF1dG8gbWFpbnRhaW5CYWNrRm9yd2FyZENhY2hlID0gbV9pc1N1c3BlbmRp
bmcgPyBXZWJDb3JlOjpNYWludGFpbkJhY2tGb3J3YXJkQ2FjaGU6OlllcyA6IFdlYkNvcmU6Ok1h
aW50YWluQmFja0ZvcndhcmRDYWNoZTo6Tm87CiAgICAgICAgICAgICBhdXRvIG1haW50YWluTWVt
b3J5Q2FjaGUgPSBtX2lzU3VzcGVuZGluZyAmJiBtX2hhc1N1c3BlbmRlZFBhZ2VQcm94eSA/IFdl
YkNvcmU6Ok1haW50YWluTWVtb3J5Q2FjaGU6OlllcyA6IFdlYkNvcmU6Ok1haW50YWluTWVtb3J5
Q2FjaGU6Ok5vOwotICAgICAgICAgICAgV2ViQ29yZTo6cmVsZWFzZU1lbW9yeShjcml0aWNhbCwg
c3luY2hyb25vdXMsIG1haW50YWluUGFnZUNhY2hlLCBtYWludGFpbk1lbW9yeUNhY2hlKTsKKyAg
ICAgICAgICAgIFdlYkNvcmU6OnJlbGVhc2VNZW1vcnkoY3JpdGljYWwsIHN5bmNocm9ub3VzLCBt
YWludGFpbkJhY2tGb3J3YXJkQ2FjaGUsIG1haW50YWluTWVtb3J5Q2FjaGUpOwogICAgICAgICB9
KTsKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQog
ICAgICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0U2hvdWxkVXNlUGVyaW9kaWNNZW1vcnlN
b25pdG9yKHRydWUpOwpAQCAtNDcxLDE1ICs0NzEsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYg
cAogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpOwogfQogCi1ib29sIFdlYlBy
b2Nlc3M6Omhhc1BhZ2VSZXF1aXJpbmdQYWdlQ2FjaGVXaGlsZVN1c3BlbmRlZCgpIGNvbnN0Ci17
Ci0gICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKSB7Ci0gICAgICAgIGlm
IChwYWdlLT5pc1N1c3BlbmRlZCgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBXZWJQcm9jZXNzOjphcmVBbGxQYWdlc1N1c3Bl
bmRlZCgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygp
KSB7CkBAIC02MzEsMTMgKzYyMiwxMyBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldENhY2hlTW9kZWwo
Q2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHVuc2lnbmVkIGNhY2hlTWluRGVhZENhcGFjaXR5
ID0gMDsKICAgICB1bnNpZ25lZCBjYWNoZU1heERlYWRDYXBhY2l0eSA9IDA7CiAgICAgU2Vjb25k
cyBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsOwotICAgIHVuc2lnbmVkIHBhZ2VDYWNo
ZVNpemUgPSAwOwotICAgIGNhbGN1bGF0ZU1lbW9yeUNhY2hlU2l6ZXMoY2FjaGVNb2RlbCwgY2Fj
aGVUb3RhbENhcGFjaXR5LCBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgY2FjaGVNYXhEZWFkQ2FwYWNp
dHksIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsIHBhZ2VDYWNoZVNpemUpOworICAg
IHVuc2lnbmVkIGJhY2tGb3J3YXJkQ2FjaGVTaXplID0gMDsKKyAgICBjYWxjdWxhdGVNZW1vcnlD
YWNoZVNpemVzKGNhY2hlTW9kZWwsIGNhY2hlVG90YWxDYXBhY2l0eSwgY2FjaGVNaW5EZWFkQ2Fw
YWNpdHksIGNhY2hlTWF4RGVhZENhcGFjaXR5LCBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVy
dmFsLCBiYWNrRm9yd2FyZENhY2hlU2l6ZSk7CiAKICAgICBhdXRvJiBtZW1vcnlDYWNoZSA9IE1l
bW9yeUNhY2hlOjpzaW5nbGV0b24oKTsKICAgICBtZW1vcnlDYWNoZS5zZXRDYXBhY2l0aWVzKGNh
Y2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFj
aXR5KTsKICAgICBtZW1vcnlDYWNoZS5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFs
KGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwotICAgIFBhZ2VDYWNoZTo6c2luZ2xl
dG9uKCkuc2V0TWF4U2l6ZShwYWdlQ2FjaGVTaXplKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpz
aW5nbGV0b24oKS5zZXRNYXhTaXplKGJhY2tGb3J3YXJkQ2FjaGVTaXplKTsKIAogICAgIHBsYXRm
b3JtU2V0Q2FjaGVNb2RlbChjYWNoZU1vZGVsKTsKIH0KQEAgLTEzMDksNyArMTMwMCw3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4gd2Vic2l0ZURhdGFUeXBlcywKICAgICBVTlVTRURfUEFSQU0obW9kaWZpZWRTaW5jZSk7CiAK
ICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6Ok1lbW9y
eUNhY2hlKSkgewotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93
KDAsIFBydW5pbmdSZWFzb246Ok5vbmUpOworICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5n
bGV0b24oKS5wcnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25lKTsKICAgICAgICAg
TWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLmV2aWN0UmVzb3VyY2VzKHNlc3Npb25JRCgpKTsKIAog
ICAgICAgICBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpzaW5nbGV0b24oKS5jbGVh
cigpOwpAQCAtMTc3Niw3ICsxNzY3LDcgQEAgYm9vbCBXZWJQcm9jZXNzOjpoYXNWaXNpYmxlV2Vi
UGFnZSgpIGNvbnN0CiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0QmFja0ZvcndhcmRDYWNoZUNhcGFj
aXR5KHVuc2lnbmVkIGNhcGFjaXR5KQogewotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuc2V0
TWF4U2l6ZShjYXBhY2l0eSk7CisgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCkuc2V0
TWF4U2l6ZShjYXBhY2l0eSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJDYWNoZWRQYWdl
KEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTE3ODUsNyArMTc3Niw3IEBA
IHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJDYWNoZWRQYWdlKEJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXIgYmFja0ZvcndhcmRJdGVtSUQsIENvCiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoKTsKIAotICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkucmVtb3Zl
KCppdGVtKTsKKyAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoKml0ZW0p
OwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCmluZGV4IGRkNjBlOGQ4MWUyZmFlMTI2ZjA0NTk1N2MxY2JjNmUyMzllZGE5OGIu
LjhjMjQ2YWZhNzdmZTE1ZmFmOTk0ZTA4OWU3N2YxM2YzZTUyNjk1Y2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzkwLDcgKzM5MCw2IEBAIHByaXZhdGU6CiAgICAg
ZW51bSBjbGFzcyBTaG91bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCB7IE5vLCBZZXMg
fTsKICAgICB2b2lkIGFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVu
UmVhZHlUb1N1c3BlbmQpOwogCi0gICAgYm9vbCBoYXNQYWdlUmVxdWlyaW5nUGFnZUNhY2hlV2hp
bGVTdXNwZW5kZWQoKSBjb25zdDsKICAgICBib29sIGFyZUFsbFBhZ2VzU3VzcGVuZGVkKCkgY29u
c3Q7CiAKICAgICB2b2lkIGVuc3VyZUF1dG9tYXRpb25TZXNzaW9uUHJveHkoY29uc3QgU3RyaW5n
JiBzZXNzaW9uSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lv
cy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dl
YlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCmluZGV4IDk4OTc0NTYzN2RhM2MxNGQ3OGI5NzJjYTQ1
NTYwYzk0YjMwMDk3NmUuLjJkYjczOGZmMDUzZDlmNzU3MDBiNDM2ZDE5ZWI5ZmQ2OGI2MDdhMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxl
Z2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxl
Z2F0ZS5oCkBAIC04Miw3ICs4Miw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdlYk1l
ZGlhQ2FwdHVyZVR5cGUpIHsKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgZWxl
bWVudERpZEZvY3VzTm9kZTooRE9NTm9kZSAqKW5vZGU7CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZp
ZXcgKil3ZWJWaWV3IGVsZW1lbnREaWRCbHVyTm9kZTooRE9NTm9kZSAqKW5vZGU7CiAKLS8vIFBh
Z2VDYWNoZSBzdXBwb3J0CisvLyBCYWNrRm9yd2FyZENhY2hlIHN1cHBvcnQKIC0gKHZvaWQpd2Vi
Vmlld0RpZFJlc3RvcmVGcm9tUGFnZUNhY2hlOihXZWJWaWV3ICopd2ViVmlldzsKIAogLSAoTlNW
aWV3ICopd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgcGx1Z0luVmlld1dpdGhBcmd1bWVudHM6
KE5TRGljdGlvbmFyeSAqKWFyZ3VtZW50cyBmcm9tUGx1Z0luUGFja2FnZTooV2ViUGx1Z2luUGFj
a2FnZSAqKXBhY2thZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0
b3J5L0JhY2tGb3J3YXJkTGlzdC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3Rvcnkv
QmFja0ZvcndhcmRMaXN0Lm1tCmluZGV4IGI3MDk1YTdkZTI4NjlmMWY2ZjU0ZWY1OTlkNThhYTNm
MWRhZTI5ZDQuLmQwNTRhMWI5NGQwMDE4ODRhYzQzODQ5YTE0N2VlOTZjZDFiMzdjY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvQmFja0ZvcndhcmRMaXN0Lm1t
CkBAIC0yNiw3ICsyNiw3IEBACiAKICNpbmNsdWRlICJCYWNrRm9yd2FyZExpc3QuaCIKIAotI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2Fy
ZENhY2hlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01OCw3ICs1OCw3IEBA
IHZvaWQgQmFja0ZvcndhcmRMaXN0OjphZGRJdGVtKFJlZjxIaXN0b3J5SXRlbT4mJiBuZXdJdGVt
KQogICAgICAgICB3aGlsZSAobV9lbnRyaWVzLnNpemUoKSA+IHRhcmdldFNpemUpIHsKICAgICAg
ICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9IG1fZW50cmllcy50YWtlTGFzdCgpOwogICAg
ICAgICAgICAgbV9lbnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwotICAgICAgICAgICAgUGFn
ZUNhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CisgICAgICAgICAgICBCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKS5yZW1vdmUoaXRlbSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAg
LTY4LDcgKzY4LDcgQEAgdm9pZCBCYWNrRm9yd2FyZExpc3Q6OmFkZEl0ZW0oUmVmPEhpc3RvcnlJ
dGVtPiYmIG5ld0l0ZW0pCiAgICAgICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9IFdURk1vdmUo
bV9lbnRyaWVzWzBdKTsKICAgICAgICAgbV9lbnRyaWVzLnJlbW92ZSgwKTsKICAgICAgICAgbV9l
bnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRv
bigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCku
cmVtb3ZlKGl0ZW0pOwogICAgICAgICAtLW1fY3VycmVudDsKICAgICB9CiAKQEAgLTE2Myw3ICsx
NjMsNyBAQCB2b2lkIEJhY2tGb3J3YXJkTGlzdDo6c2V0Q2FwYWNpdHkoaW50IHNpemUpCiAgICAg
d2hpbGUgKHNpemUgPCBzdGF0aWNfY2FzdDxpbnQ+KG1fZW50cmllcy5zaXplKCkpKSB7CiAgICAg
ICAgIFJlZjxIaXN0b3J5SXRlbT4gaXRlbSA9IG1fZW50cmllcy50YWtlTGFzdCgpOwogICAgICAg
ICBtX2VudHJ5SGFzaC5yZW1vdmUoaXRlbS5wdHIoKSk7Ci0gICAgICAgIFBhZ2VDYWNoZTo6c2lu
Z2xldG9uKCkucmVtb3ZlKGl0ZW0pOworICAgICAgICBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0
b24oKS5yZW1vdmUoaXRlbSk7CiAgICAgfQogCiAgICAgaWYgKCFzaXplKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJCYWNrRm9yd2FyZExpc3QubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQppbmRl
eCBkZjYyZGE5NjZjNzlkM2E2M2ExZmUwNjNiMTA1MDJkODNjZjg5MDdiLi4xOGYwMTNhMGE4NzVi
ZDM2ZTg5NTU4NjYzNGFiN2Q4YjBhOGIwMmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9IaXN0b3J5L1dlYkJhY2tGb3J3YXJkTGlzdC5tbQpAQCAtNDAsOCArNDAsOCBA
QAogI2ltcG9ydCAiV2ViVHlwZXNJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVmlld1ByaXZhdGUu
aCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5
SXRlbS5oPgotI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KQEAgLTMzOSw3ICszMzksNyBAQCAtICh2b2lkKXNl
dFBhZ2VDYWNoZVNpemU6KE5TVUludGVnZXIpc2l6ZQogCiAtIChOU1VJbnRlZ2VyKXBhZ2VDYWNo
ZVNpemUKIHsKLSAgICByZXR1cm4gW2NvcmUoc2VsZiktPndlYlZpZXcoKSB1c2VzUGFnZUNhY2hl
XSA/IFdlYkNvcmU6OlBhZ2VDYWNoZTo6c2luZ2xldG9uKCkubWF4U2l6ZSgpIDogMDsKKyAgICBy
ZXR1cm4gW2NvcmUoc2VsZiktPndlYlZpZXcoKSB1c2VzUGFnZUNhY2hlXSA/IFdlYkNvcmU6OkJh
Y2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLm1heFNpemUoKSA6IDA7CiB9CiAKIC0gKGludCli
YWNrTGlzdENvdW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5
L1dlYkhpc3RvcnlJdGVtLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJI
aXN0b3J5SXRlbS5tbQppbmRleCBjN2MwMjdiMzQwZDAwYWMyZjAyZTg3OThmMTRhNjJhY2U3ODU4
ZWVlLi5hOGQzYmMyMDY4ZjJjNzYzZjk1NTdkODFjN2Y1ZGRmMGY1YjdlMDQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dlYkhpc3RvcnlJdGVtLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hpc3RvcnkvV2ViSGlzdG9yeUl0ZW0ubW0KQEAgLTQz
LDkgKzQzLDkgQEAKICNpbXBvcnQgIldlYlBsdWdpbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldl
YlR5cGVzSW50ZXJuYWwuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0luaXRpYWxpemVUaHJl
YWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFja0ZvcndhcmRDYWNoZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbWFnZS5oPgotI2ltcG9y
dCA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2suaD4K
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Bc3Nl
cnRpb25zLmg+CkBAIC01OTgsOSArNTk4LDkgQEAgLSAodm9pZClfc2V0U2Nyb2xsUG9pbnQ6KENH
UG9pbnQpc2Nyb2xsUG9pbnQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLS0g
KEJPT0wpX2lzSW5QYWdlQ2FjaGUKKy0gKEJPT0wpX2lzSW5CYWNrRm9yd2FyZENhY2hlCiB7Ci0g
ICAgcmV0dXJuIGNvcmUoX3ByaXZhdGUpLT5pc0luUGFnZUNhY2hlKCk7CisgICAgcmV0dXJuIGNv
cmUoX3ByaXZhdGUpLT5pc0luQmFja0ZvcndhcmRDYWNoZSgpOwogfQogCiAtIChCT09MKV9oYXND
YWNoZWRQYWdlRXhwaXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlz
dG9yeS9XZWJIaXN0b3J5SXRlbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0hp
c3RvcnkvV2ViSGlzdG9yeUl0ZW1Qcml2YXRlLmgKaW5kZXggOWQwYWE4ZDE4YWQwOTYxNjgwN2Vl
MjUyNDkyOGZjYTZiZmY5ODUzOS4uYmE1ZDU1Y2M3NDRkZTk0NjM2YzI1NmRkYTk5MjU1OTFjMDky
MmU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvSGlzdG9yeS9XZWJIaXN0
b3J5SXRlbVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9IaXN0b3J5L1dl
Ykhpc3RvcnlJdGVtUHJpdmF0ZS5oCkBAIC03Nyw3ICs3Nyw3IEBAIGV4dGVybiBOU1N0cmluZyAq
V2ViVmlld3BvcnRGaXRDb3ZlclZhbHVlOwogLSAodm9pZClfc2V0U2Nyb2xsUG9pbnQ6KENHUG9p
bnQpc2Nyb2xsUG9pbnQ7CiAjZW5kaWYKIAotLSAoQk9PTClfaXNJblBhZ2VDYWNoZTsKKy0gKEJP
T0wpX2lzSW5CYWNrRm9yd2FyZENhY2hlOwogLSAoQk9PTClfaGFzQ2FjaGVkUGFnZUV4cGlyZWQ7
CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ2Fj
aGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNhY2hlLm1tCmluZGV4IGI1
MGIyMWM4NWJjZGJmNzI1OTk0MGM0MzZiMGJlMmUzNjQ0OGZmY2EuLjUxMzdlNDFjMjQyZmNhNTVj
NGEwOTRiNjQzMzczZTllMGE2ZmVjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL01pc2MvV2ViQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJDYWNoZS5tbQpAQCAtNDYsOSArNDYsOSBAQAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAj
aW1wb3J0ICJNZW1vcnlNZWFzdXJlLmgiCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFsLmgiCisj
aW1wb3J0IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ2Fj
aGVkSW1hZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KLSNpbXBvcnQgPFdlYkNvcmUv
UGFnZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRSdW4uaD4KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNvcmVTdGF0
aXN0aWNzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGlj
cy5tbQppbmRleCBjODY4NGM0NmM1YjBkMjE1MmJlOWNhYzFkNzgyYzRlNGZiMGIwNDBjLi40NjY2
NjUzNDJhMWVhMzlmNzcwYjc2MDg0YjRiYjJjYzM4ZTUzYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KQEAgLTMzLDYgKzMzLDcg
QEAKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3Jl
L0pTTG9jay5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvTWVtb3J5U3RhdGlzdGljcy5oPgor
I2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Nv
bW1vblZNLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZS5oPgpAQCAtNDAsNyArNDEsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9HbHlwaFBhZ2Uu
aD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0pTRE9NV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9QYWdlQ29uc29sZUNsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QcmludENvbnRl
eHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4dC5oPgpAQCAtMjI0LDEyICsy
MjQsMTIgQEAgKyAodm9pZClyZXR1cm5GcmVlTWVtb3J5VG9TeXN0ZW0KIAogKyAoaW50KWNhY2hl
ZFBhZ2VDb3VudAogewotICAgIHJldHVybiBQYWdlQ2FjaGU6OnNpbmdsZXRvbigpLnBhZ2VDb3Vu
dCgpOworICAgIHJldHVybiBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQo
KTsKIH0KIAogKyAoaW50KWNhY2hlZEZyYW1lQ291bnQKIHsKLSAgICByZXR1cm4gUGFnZUNhY2hl
OjpzaW5nbGV0b24oKS5mcmFtZUNvdW50KCk7CisgICAgcmV0dXJuIEJhY2tGb3J3YXJkQ2FjaGU6
OnNpbmdsZXRvbigpLmZyYW1lQ291bnQoKTsKIH0KIAogLy8gRGVwcmVjYXRlZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggYzIxYmRjZjcxMDYzOTY5ZTExY2JkYmIwYTViOTNlNWJhYTg2
ZDgzNC4uYjRlZTllNjA2YzU3ZmNmNTcyZTExMzg2MzliYzE0NTM0ZjM3ODkwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBt
YWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsKICAgICBi
b29sIGhhc0hUTUxWaWV3KCkgY29uc3QgZmluYWw7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICBib29sIGZvcmNlTGF5b3V0T25SZXN0b3JlRnJvbVBhZ2VDYWNoZSgpIGZpbmFsOworICAg
IGJvb2wgZm9yY2VMYXlvdXRPblJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZpbmFsOwog
I2VuZGlmCiAgICAgdm9pZCBmb3JjZUxheW91dEZvck5vbkhUTUwoKSBmaW5hbDsKIApAQCAtMTg0
LDcgKzE4NCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lkIHRyYW5zaXRpb25Ub0NvbW1p
dHRlZEZvck5ld1BhZ2UoKSBmaW5hbDsKIAotICAgIHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2Fj
aGUoKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlc3RvcmVGcm9tQmFja0ZvcndhcmRDYWNoZSgpIGZp
bmFsOwogCiAgICAgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDJlMzUzNzU1NjgxZjM5NWQzOWNjNjkx
ZjdjYzcwZTVlNWIwMDk0ODQuLmEzZTk4MzM4YjY0ODllYWM5NmI3YzFkMDk3OWQyNTU2MWZhMGM1
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0yMzksMTAgKzIzOSwxMCBAQCBi
b29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpoYXNIVE1MVmlldygpIGNvbnN0CiB9CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQotYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Zm9yY2VMYXlv
dXRPblJlc3RvcmVGcm9tUGFnZUNhY2hlKCkKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZv
cmNlTGF5b3V0T25SZXN0b3JlRnJvbUJhY2tGb3J3YXJkQ2FjaGUoKQogewogICAgIE5TVmlldyA8
V2ViRG9jdW1lbnRWaWV3PiAqdmlldyA9IFttX3dlYkZyYW1lLT5fcHJpdmF0ZS0+d2ViRnJhbWVW
aWV3IGRvY3VtZW50Vmlld107Ci0gICAgLy8gVGhpcyBnZXRzIGNhbGxlZCB0byBsYXkgb3V0IGEg
cGFnZSByZXN0b3JlZCBmcm9tIHRoZSBwYWdlIGNhY2hlLgorICAgIC8vIFRoaXMgZ2V0cyBjYWxs
ZWQgdG8gbGF5IG91dCBhIHBhZ2UgcmVzdG9yZWQgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hl
LgogICAgIC8vIFRvIHdvcmsgYXJvdW5kIHRpbWluZyBwcm9ibGVtcyB3aXRoIFVJS2l0LCByZXN0
b3JlIGZpeGVkIAogICAgIC8vIGxheW91dCBzZXR0aW5ncyBoZXJlLgogICAgIFdlYlZpZXcqIHdl
YlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwpAQCAtMTQ5NSw3ICsxNDk1LDcg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3
UGFnZSgpCiAgICAgfQogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3Jl
RnJvbVBhZ2VDYWNoZSgpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSZXN0b3JlRnJv
bUJhY2tGb3J3YXJkQ2FjaGUoKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2Vi
VmlldyAqd2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0
b3JlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRl
ZExpbmtTdG9yZS5tbQppbmRleCAwODQ0YjM5ZDM2NzA1NTNhMDkzMjI3MWNlZGI3MzkwNzBhMTg1
YzhiLi5kNTdkY2M1ZDUxMGY5NDA3OTFhYTcwMDE0NWNmOTQ1M2M1NzUwMjJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaXNpdGVkTGlua1N0
b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZp
c2l0ZWRMaW5rU3RvcmUubW0KQEAgLTMwLDcgKzMwLDcgQEAKICNpbXBvcnQgIldlYkhpc3RvcnlE
ZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViSGlzdG9yeUludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJW
aWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRp
b25zLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXggYmM3NzRkNzY1NjE2YTVh
OGM0YTMwMjkxNWRhNzliYjM1MzkzYjAzNy4uYzJlZmI3N2MzZTgzNDEzZjVhYzNiN2MxOWIwNWJh
NWM0YWQ5ZTM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3Lm1tCkBAIC0zMzQyLDcgKzMzNDIsNyBAQCAtICh2b2lkKWxheW91dFRvTWluaW11bVBh
Z2VXaWR0aDooZmxvYXQpbWluUGFnZUxvZ2ljYWxXaWR0aCBoZWlnaHQ6KGZsb2F0KW1pblBhZwog
ICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKGNvcmVGcmFtZS0+
ZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoY29yZUZyYW1lLT5kb2N1bWVudCgpLT5wYWdlQ2Fj
aGVTdGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKKyAgICAgICAg
aWYgKGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+YmFja0ZvcndhcmRDYWNoZVN0YXRlKCkgIT0gV2Vi
Q29yZTo6RG9jdW1lbnQ6Ok5vdEluQmFja0ZvcndhcmRDYWNoZSkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgY29yZUZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7
CiAgICAgfQpAQCAtMzg1NCw3ICszODU0LDcgQEAgLSAodm9pZClzZXROZWVkc0xheW91dDogKEJP
T0wpZmxhZwogICAgIGlmICghZmxhZykKICAgICAgICAgcmV0dXJuOyAvLyBUaGVyZSdzIG5vIHdh
eSB0byBzYXkgeW91IGRvbid0IG5lZWQgYSBsYXlvdXQuCiAgICAgaWYgKGF1dG8qIGZyYW1lID0g
Y29yZShbc2VsZiBfZnJhbWVdKSkgewotICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYg
ZnJhbWUtPmRvY3VtZW50KCktPnBhZ2VDYWNoZVN0YXRlKCkgIT0gV2ViQ29yZTo6RG9jdW1lbnQ6
Ok5vdEluUGFnZUNhY2hlKQorICAgICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUt
PmRvY3VtZW50KCktPmJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50
OjpOb3RJbkJhY2tGb3J3YXJkQ2FjaGUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlm
IChhdXRvKiB2aWV3ID0gZnJhbWUtPnZpZXcoKSkKICAgICAgICAgICAgIHZpZXctPnNldE5lZWRz
TGF5b3V0QWZ0ZXJWaWV3Q29uZmlndXJhdGlvbkNoYW5nZSgpOwpAQCAtMzg2Nyw3ICszODY3LDcg
QEAgLSAodm9pZClzZXROZWVkc1RvQXBwbHlTdHlsZXM6IChCT09MKWZsYWcKICAgICBpZiAoIWZs
YWcpCiAgICAgICAgIHJldHVybjsgLy8gVGhlcmUncyBubyB3YXkgdG8gc2F5IHlvdSBkb24ndCBu
ZWVkIGEgc3R5bGUgcmVjYWxjLgogICAgIGlmIChhdXRvKiBmcmFtZSA9IGNvcmUoW3NlbGYgX2Zy
YW1lXSkpIHsKLSAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVu
dCgpLT5wYWdlQ2FjaGVTdGF0ZSgpICE9IFdlYkNvcmU6OkRvY3VtZW50OjpOb3RJblBhZ2VDYWNo
ZSkKKyAgICAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5i
YWNrRm9yd2FyZENhY2hlU3RhdGUoKSAhPSBXZWJDb3JlOjpEb2N1bWVudDo6Tm90SW5CYWNrRm9y
d2FyZENhY2hlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+c2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDQ4ODZjODQ5MzE3OGViNTFlMWM5NDM4Njlm
MTM5NTdmNzZlYTMyN2UuLjRlZWEzMWQ5ZDI5YmQ3Yjk5Y2QwN2Q5MjRjYjNiMDM3NGE2MmIyMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzMCw2
ICsxMzAsNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQmFja0Zvcndh
cmRDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oPgpAQCAtMTg1LDcgKzE4Niw2IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL05vdGlmaWNhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb25Db250
cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFn
ZUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+
CkBAIC0yMzY3LDggKzIzNjcsOCBAQCAtICh2b2lkKV9jbG9zZQogCiAgICAgX3ByaXZhdGUtPmdy
b3VwLT5yZW1vdmVXZWJWaWV3KHNlbGYpOwogCi0gICAgLy8gRGVsZXRlaW5nIHRoZSBXZWJDb3Jl
OjpQYWdlIHdpbGwgY2xlYXIgdGhlIHBhZ2UgY2FjaGUgc28gd2UgY2FsbCBkZXN0cm95IG9uCi0g
ICAgLy8gYWxsIHRoZSBwbHVnLWlucyBpbiB0aGUgcGFnZSBjYWNoZSB0byBicmVhayBhbnkgcmV0
YWluIGN5Y2xlcy4KKyAgICAvLyBEZWxldGVpbmcgdGhlIFdlYkNvcmU6OlBhZ2Ugd2lsbCBjbGVh
ciB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIHNvIHdlIGNhbGwgZGVzdHJveSBvbgorICAgIC8vIGFs
bCB0aGUgcGx1Zy1pbnMgaW4gdGhlIGJhY2svZm9yd2FyZCBjYWNoZSB0byBicmVhayBhbnkgcmV0
YWluIGN5Y2xlcy4KICAgICAvLyBTZWUgY29tbWVudCBpbiBIaXN0b3J5SXRlbTo6cmVsZWFzZUFs
bFBlbmRpbmdQYWdlQ2FjaGVzKCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgYXV0byogcGFn
ZSA9IF9wcml2YXRlLT5wYWdlOwogICAgIF9wcml2YXRlLT5wYWdlID0gbnVsbHB0cjsKQEAgLTI5
MTEsOCArMjkxMSw4IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdlZDooV2ViUHJlZmVyZW5j
ZXMgKilwcmVmZXJlbmNlcwogICAgIHNldHRpbmdzLnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKGNv
cmUoW3ByZWZlcmVuY2VzIGVkaXRhYmxlTGlua0JlaGF2aW9yXSkpOwogICAgIHNldHRpbmdzLnNl
dFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMg
dGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy5z
ZXRET01QYXN0ZUFsbG93ZWQoW3ByZWZlcmVuY2VzIGlzRE9NUGFzdGVBbGxvd2VkXSk7Ci0gICAg
c2V0dGluZ3Muc2V0VXNlc1BhZ2VDYWNoZShbc2VsZiB1c2VzUGFnZUNhY2hlXSk7Ci0gICAgc2V0
dGluZ3Muc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKFtwcmVmZXJlbmNlcyBwYWdlQ2FjaGVT
dXBwb3J0c1BsdWdpbnNdKTsKKyAgICBzZXR0aW5ncy5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZShb
c2VsZiB1c2VzUGFnZUNhY2hlXSk7CisgICAgc2V0dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNoZVN1
cHBvcnRzUGx1Z2lucyhbcHJlZmVyZW5jZXMgcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zXSk7CiAg
ICAgc2V0dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNoZUV4cGlyYXRpb25JbnRlcnZhbChTZWNvbmRz
IHsgW3ByZWZlcmVuY2VzIF9iYWNrRm9yd2FyZENhY2hlRXhwaXJhdGlvbkludGVydmFsXSB9KTsK
IAogICAgIHNldHRpbmdzLnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoW3ByZWZlcmVuY2VzIGRl
dmVsb3BlckV4dHJhc0VuYWJsZWRdKTsKQEAgLTQzNTksNyArNDM1OSw3IEBAIC0gKE5TQXJyYXkg
KilfdG91Y2hFdmVudFJlZ2lvbnMKICNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogCiAv
LyBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgV2ViQmFja0ZvcndhcmRMaXN0
IEFQSSwgd2UgaG9ub3IgYm90aAotLy8gYSBwZXItV2ViVmlldyBhbmQgYSBwZXItcHJlZmVyZW5j
ZXMgc2V0dGluZyBmb3Igd2hldGhlciB0byB1c2UgdGhlIHBhZ2UgY2FjaGUuCisvLyBhIHBlci1X
ZWJWaWV3IGFuZCBhIHBlci1wcmVmZXJlbmNlcyBzZXR0aW5nIGZvciB3aGV0aGVyIHRvIHVzZSB0
aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogCiAtIChCT09MKXVzZXNQYWdlQ2FjaGUKIHsKQEAgLTg3
OTcsNyArODc5Nyw3IEBAICsgKHZvaWQpX3NldENhY2hlTW9kZWw6KFdlYkNhY2hlTW9kZWwpY2Fj
aGVNb2RlbAogCiAgICAgc3dpdGNoIChjYWNoZU1vZGVsKSB7CiAgICAgY2FzZSBXZWJDYWNoZU1v
ZGVsRG9jdW1lbnRWaWV3ZXI6IHsKLSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4g
cGFnZXMpCisgICAgICAgIC8vIEJhY2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMp
CiAgICAgICAgIHBhZ2VDYWNoZVNpemUgPSAwOwogCiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBj
YXBhY2l0aWVzIChpbiBieXRlcykKQEAgLTg4MzMsNyArODgzMyw3IEBAICsgKHZvaWQpX3NldENh
Y2hlTW9kZWw6KFdlYkNhY2hlTW9kZWwpY2FjaGVNb2RlbAogICAgICAgICBicmVhazsKICAgICB9
CiAgICAgY2FzZSBXZWJDYWNoZU1vZGVsRG9jdW1lbnRCcm93c2VyOiB7Ci0gICAgICAgIC8vIFBh
Z2UgY2FjaGUgY2FwYWNpdHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNrL2ZvcndhcmQgY2Fj
aGUgY2FwYWNpdHkgKGluIHBhZ2VzKQogICAgICAgICBpZiAobWVtU2l6ZSA+PSA1MTIpCiAgICAg
ICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAy
NTYpCkBAIC04ODg0LDcgKzg4ODQsNyBAQCArICh2b2lkKV9zZXRDYWNoZU1vZGVsOihXZWJDYWNo
ZU1vZGVsKWNhY2hlTW9kZWwKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgV2ViQ2Fj
aGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNp
dHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNrL2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGlu
IHBhZ2VzKQogICAgICAgICBpZiAobWVtU2l6ZSA+PSA1MTIpCiAgICAgICAgICAgICBwYWdlQ2Fj
aGVTaXplID0gMjsKICAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAyNTYpCkBAIC04OTY3LDcg
Kzg5NjcsNyBAQCArICh2b2lkKV9zZXRDYWNoZU1vZGVsOihXZWJDYWNoZU1vZGVsKWNhY2hlTW9k
ZWwKICAgICBtZW1vcnlDYWNoZS5zZXRDYXBhY2l0aWVzKGNhY2hlTWluRGVhZENhcGFjaXR5LCBj
YWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFjaXR5KTsKICAgICBtZW1vcnlDYWNo
ZS5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsKGRlYWREZWNvZGVkRGF0YURlbGV0
aW9uSW50ZXJ2YWwpOwogCi0gICAgYXV0byYgcGFnZUNhY2hlID0gV2ViQ29yZTo6UGFnZUNhY2hl
OjpzaW5nbGV0b24oKTsKKyAgICBhdXRvJiBwYWdlQ2FjaGUgPSBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZENhY2hlOjpzaW5nbGV0b24oKTsKICAgICBwYWdlQ2FjaGUuc2V0TWF4U2l6ZShwYWdlQ2FjaGVT
aXplKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIG5zdXJsQ2FjaGVNZW1vcnlDYXBh
Y2l0eSA9IHN0ZDo6bWF4KG5zdXJsQ2FjaGVNZW1vcnlDYXBhY2l0eSwgW25zdXJsQ2FjaGUgbWVt
b3J5Q2FwYWNpdHldKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0JhY2tG
b3J3YXJkTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9CYWNrRm9yd2FyZExpc3Qu
Y3BwCmluZGV4IGRhZWExNjFhMTA1YmEyZWI0ZjY3MThiNTI3YjM1MzRhODg0OTc0OTYuLmIyMDE0
OGZkZWQyYTQ2Y2MyNmM0ZDBkZjc5NDI3MThhNmY1OGMyODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0JhY2tGb3J3YXJkTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQmFja0ZvcndhcmRMaXN0LmNwcApAQCAtMjcsMTIgKzI3LDEyIEBACiAjaW5jbHVk
ZSAiV2ViS2l0RExMLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRMaXN0LmgiCiAKKyNpbmNsdWRl
IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgRGVmYXVsdENhcGFjaXR5ID0gMTAwOwpAQCAtNjQsNyArNjQsNyBAQCB2b2lk
IEJhY2tGb3J3YXJkTGlzdDo6YWRkSXRlbShSZWY8SGlzdG9yeUl0ZW0+JiYgbmV3SXRlbSkKICAg
ICAgICAgd2hpbGUgKG1fZW50cmllcy5zaXplKCkgPiB0YXJnZXRTaXplKSB7CiAgICAgICAgICAg
ICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2VudHJpZXMudGFrZUxhc3QoKTsKICAgICAgICAg
ICAgIG1fZW50cnlIYXNoLnJlbW92ZShpdGVtLnB0cigpKTsKLSAgICAgICAgICAgIFBhZ2VDYWNo
ZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOworICAgICAgICAgICAgQmFja0ZvcndhcmRDYWNo
ZTo6c2luZ2xldG9uKCkucmVtb3ZlKGl0ZW0pOwogICAgICAgICB9CiAgICAgfQogCkBAIC03NCw3
ICs3NCw3IEBAIHZvaWQgQmFja0ZvcndhcmRMaXN0OjphZGRJdGVtKFJlZjxIaXN0b3J5SXRlbT4m
JiBuZXdJdGVtKQogICAgICAgICBSZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBXVEZNb3ZlKG1fZW50
cmllc1swXSk7CiAgICAgICAgIG1fZW50cmllcy5yZW1vdmUoMCk7CiAgICAgICAgIG1fZW50cnlI
YXNoLnJlbW92ZShpdGVtLnB0cigpKTsKLSAgICAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5y
ZW1vdmUoaXRlbSk7CisgICAgICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnJlbW92
ZShpdGVtKTsKICAgICAgICAgLS1tX2N1cnJlbnQ7CiAgICAgfQogCkBAIC0xNzAsNyArMTcwLDcg
QEAgdm9pZCBCYWNrRm9yd2FyZExpc3Q6OnNldENhcGFjaXR5KGludCBzaXplKQogICAgIHdoaWxl
IChzaXplIDwgc3RhdGljX2Nhc3Q8aW50PihtX2VudHJpZXMuc2l6ZSgpKSkgewogICAgICAgICBS
ZWY8SGlzdG9yeUl0ZW0+IGl0ZW0gPSBtX2VudHJpZXMudGFrZUxhc3QoKTsKICAgICAgICAgbV9l
bnRyeUhhc2gucmVtb3ZlKGl0ZW0ucHRyKCkpOwotICAgICAgICBQYWdlQ2FjaGU6OnNpbmdsZXRv
bigpLnJlbW92ZShpdGVtKTsKKyAgICAgICAgQmFja0ZvcndhcmRDYWNoZTo6c2luZ2xldG9uKCku
cmVtb3ZlKGl0ZW0pOwogICAgIH0KIAogICAgIGlmICghc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAppbmRleCA5MTIwYWNjOGUwYjlmOTVlNTY3
OTYxNGMwOTg4MjExZjJlODUzNzcyLi45Yzk2YTY3ZTlkMGMxZjkwNDQyZjBiNDBjNDQ4MjZiNWM1
NmI1YTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3RhdGlz
dGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN0YXRpc3RpY3Mu
Y3BwCkBAIC0yOSwxMyArMjksMTMgQEAKICNpbmNsdWRlICJDT01Qcm9wZXJ0eUJhZy5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L01lbW9yeVN0YXRpc3RpY3MuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01X
aW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvR0NDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HbHlwaFBhZ2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDb25zb2xlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KQEAg
LTMyMCw3ICszMjAsNyBAQCBIUkVTVUxUIFdlYkNvcmVTdGF0aXN0aWNzOjpjYWNoZWRQYWdlQ291
bnQoX091dF8gSU5UKiBjb3VudCkKICAgICBpZiAoIWNvdW50KQogICAgICAgICByZXR1cm4gRV9Q
T0lOVEVSOwogCi0gICAgKmNvdW50ID0gUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQo
KTsKKyAgICAqY291bnQgPSBCYWNrRm9yd2FyZENhY2hlOjpzaW5nbGV0b24oKS5wYWdlQ291bnQo
KTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAtMzI5LDYgKzMyOSw2IEBAIEhSRVNVTFQgV2Vi
Q29yZVN0YXRpc3RpY3M6OmNhY2hlZEZyYW1lQ291bnQoX091dF8gSU5UKiBjb3VudCkKICAgICBp
ZiAoIWNvdW50KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwogCi0gICAgKmNvdW50ID0gUGFn
ZUNhY2hlOjpzaW5nbGV0b24oKS5mcmFtZUNvdW50KCk7CisgICAgKmNvdW50ID0gQmFja0Zvcndh
cmRDYWNoZTo6c2luZ2xldG9uKCkuZnJhbWVDb3VudCgpOwogICAgIHJldHVybiBTX09LOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDI2MjExZmE5Njc4MDZhNDRmYWFkMDY4
YTA3OGIxMzYzMThlZTRiMGYuLmFiMGYxZDUxMGZkNDU2MDdkNDVmNzlkNDM0ODczMzQ1MGE1MzRl
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTk5Miw3ICs5OTIsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdl
KCkKICAgICBjb3JlKG1fd2ViRnJhbWUpLT5jcmVhdGVWaWV3KGVuY2xvc2luZ0ludFJlY3QobG9n
aWNhbEZyYW1lKS5zaXplKCksIGJhY2tncm91bmRDb2xvciwgLyogZml4ZWRMYXlvdXRTaXplICov
IHsgfSwgLyogZml4ZWRWaXNpYmxlQ29udGVudFJlY3QgKi8geyB9KTsKIH0KIAotdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKQordm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9yZUZyb21CYWNrRm9yd2FyZENhY2hlKCkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggODU2ZjUyNWZkY2U5M2RkZjRmZTdmZGVhZmY0
MjU1ZTVmZjU0Nzc1MC4uNjc2YThkNjFjNTM4OTBiOTlhNGU0NDc3ODBlNWZhZDBjOTI5MjY4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNzYsNyArMTc2LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJlcGFyZUZvckRh
dGFTb3VyY2VSZXBsYWNlbWVudCgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBkaWRSZXN0b3JlRnJv
bVBhZ2VDYWNoZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVzdG9yZUZyb21CYWNrRm9yd2Fy
ZENhY2hlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQo
Ym9vbCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYlZpc2l0ZWRMaW5rU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5jcHAKaW5kZXggMmE1ZTEw
NTM2N2EwZmZmNjk1ZjgwNTMxYmM0YjVjN2I5OTk5OWQ3My4uMjAwYTYzYzZjNWRkZGQ5Mjc4YzA0
YjRkMmZkNDEzMTAyNDFhOTc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViVmlzaXRlZExpbmtTdG9yZS5jcHAKQEAgLTI3
LDcgKzI3LDcgQEAKIAogI2luY2x1ZGUgIldlYkhpc3RvcnkuaCIKICNpbmNsdWRlICJXZWJWaWV3
LmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Jh
Y2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKaW5k
ZXggMWE2YTczYjZlZThlYjA3YWU2NmI5MjVlODY4ODk1OTc1MzAxZTIzZi4uYTg3MjYwZjQ1YjY2
MjQxNWM1ZWUxZTM3MGY0Yjc4ZTczMjZlMTAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZy
YW1lLmNwcApAQCAtMjExOSw3ICsyMTE5LDcgQEAgQ09NUHRyPElBY2Nlc3NpYmxlPiBXZWJGcmFt
ZTo6YWNjZXNzaWJsZSgpIGNvbnN0CiAgICAgZWxzZSBpZiAoIW1fYWNjZXNzaWJsZSB8fCBtX2Fj
Y2Vzc2libGUtPmRvY3VtZW50KCkgIT0gY3VycmVudERvY3VtZW50KSB7CiAgICAgICAgIC8vIEVp
dGhlciB3ZSd2ZSBuZXZlciBoYWQgYSB3cmFwcGVyIGZvciB0aGlzIGZyYW1lJ3MgdG9wLWxldmVs
IERvY3VtZW50LAogICAgICAgICAvLyB0aGUgRG9jdW1lbnQgcmVuZGVyZXIgd2FzIGRlc3Ryb3ll
ZCBhbmQgaXRzIHdyYXBwZXIgd2FzIGRldGFjaGVkLCBvcgotICAgICAgICAvLyB0aGUgcHJldmlv
dXMgRG9jdW1lbnQgaXMgaW4gdGhlIHBhZ2UgY2FjaGUsIGFuZCB0aGUgY3VycmVudCBkb2N1bWVu
dAorICAgICAgICAvLyB0aGUgcHJldmlvdXMgRG9jdW1lbnQgaXMgaW4gdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZSwgYW5kIHRoZSBjdXJyZW50IGRvY3VtZW50CiAgICAgICAgIC8vIG5lZWRzIHRvIGJl
IHdyYXBwZWQuCiAgICAgICAgIG1fYWNjZXNzaWJsZSA9IG5ldyBBY2Nlc3NpYmxlRG9jdW1lbnQo
Y3VycmVudERvY3VtZW50LCB3ZWJWaWV3KCktPnZpZXdXaW5kb3coKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3OTBjMWExYjg5OGJmNWQwMzE2MGNkMjliYjhm
MDcyNDRlNDU2ODYyLi40NmY0ZjQ1N2NiMmFmZjk3ZTBiYjc0YmU1MzgxZDllNGQ1ZWRhZjI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtNzksNiArNzksNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0JTdHJpbmcuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3
YXJkQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQml0bWFwSW5mby5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaD4KQEAgLTEzMSw4ICsxMzIsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UmVsZWFzZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29uZmlndXJhdGlvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CkBA
IC01NDAsMTMgKzUzOSwxMyBAQCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVN
b2RlbCBjYWNoZU1vZGVsKQogICAgIHVuc2lnbmVkIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsK
ICAgICBTZWNvbmRzIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWw7CiAKLSAgICB1bnNp
Z25lZCBwYWdlQ2FjaGVTaXplID0gMDsKKyAgICB1bnNpZ25lZCBiYWNrRm9yd2FyZENhY2hlU2l6
ZSA9IDA7CiAKIAogICAgIHN3aXRjaCAoY2FjaGVNb2RlbCkgewogICAgIGNhc2UgV2ViQ2FjaGVN
b2RlbERvY3VtZW50Vmlld2VyOiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNpdHkgKGlu
IHBhZ2VzKQotICAgICAgICBwYWdlQ2FjaGVTaXplID0gMDsKKyAgICAgICAgLy8gQmFjay9mb3J3
YXJkIGNhY2hlIGNhcGFjaXR5IChpbiBwYWdlcykKKyAgICAgICAgYmFja0ZvcndhcmRDYWNoZVNp
emUgPSAwOwogCiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBhY2l0aWVzIChpbiBieXRlcykK
ICAgICAgICAgaWYgKG1lbVNpemUgPj0gMjA0OCkKQEAgLTU3MSwxNSArNTcwLDE1IEBAIHZvaWQg
V2ViVmlldzo6c2V0Q2FjaGVNb2RlbChXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICBjYXNlIFdlYkNhY2hlTW9kZWxEb2N1bWVudEJyb3dzZXI6IHsK
LSAgICAgICAgLy8gUGFnZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCisgICAgICAgIC8vIEJh
Y2svZm9yd2FyZCBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpCiAgICAgICAgIGlmIChtZW1TaXpl
ID49IDEwMjQpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMzsKKyAgICAgICAgICAgIGJh
Y2tGb3J3YXJkQ2FjaGVTaXplID0gMzsKICAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSA1MTIp
Ci0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gMjsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJk
Q2FjaGVTaXplID0gMjsKICAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAyNTYpCi0gICAgICAg
ICAgICBwYWdlQ2FjaGVTaXplID0gMTsKKyAgICAgICAgICAgIGJhY2tGb3J3YXJkQ2FjaGVTaXpl
ID0gMTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDA7CisgICAg
ICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDA7CiAKICAgICAgICAgLy8gT2JqZWN0IGNh
Y2hlIGNhcGFjaXRpZXMgKGluIGJ5dGVzKQogICAgICAgICBpZiAobWVtU2l6ZSA+PSAyMDQ4KQpA
QCAtNjE3LDE4ICs2MTYsMTggQEAgdm9pZCBXZWJWaWV3OjpzZXRDYWNoZU1vZGVsKFdlYkNhY2hl
TW9kZWwgY2FjaGVNb2RlbCkKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgV2ViQ2Fj
aGVNb2RlbFByaW1hcnlXZWJCcm93c2VyOiB7Ci0gICAgICAgIC8vIFBhZ2UgY2FjaGUgY2FwYWNp
dHkgKGluIHBhZ2VzKQorICAgICAgICAvLyBCYWNrL2ZvcndhcmQgY2FjaGUgY2FwYWNpdHkgKGlu
IHBhZ2VzKQogICAgICAgICAvLyAoUmVzZWFyY2ggaW5kaWNhdGVzIHRoYXQgdmFsdWUgLyBwYWdl
IGRyb3BzIHN1YnN0YW50aWFsbHkgYWZ0ZXIgMyBwYWdlcy4pCiAgICAgICAgIGlmIChtZW1TaXpl
ID49IDIwNDgpCi0gICAgICAgICAgICBwYWdlQ2FjaGVTaXplID0gNTsKKyAgICAgICAgICAgIGJh
Y2tGb3J3YXJkQ2FjaGVTaXplID0gNTsKICAgICAgICAgZWxzZSBpZiAobWVtU2l6ZSA+PSAxMDI0
KQotICAgICAgICAgICAgcGFnZUNhY2hlU2l6ZSA9IDQ7CisgICAgICAgICAgICBiYWNrRm9yd2Fy
ZENhY2hlU2l6ZSA9IDQ7CiAgICAgICAgIGVsc2UgaWYgKG1lbVNpemUgPj0gNTEyKQotICAgICAg
ICAgICAgcGFnZUNhY2hlU2l6ZSA9IDM7CisgICAgICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6
ZSA9IDM7CiAgICAgICAgIGVsc2UgaWYgKG1lbVNpemUgPj0gMjU2KQotICAgICAgICAgICAgcGFn
ZUNhY2hlU2l6ZSA9IDI7CisgICAgICAgICAgICBiYWNrRm9yd2FyZENhY2hlU2l6ZSA9IDI7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBhZ2VDYWNoZVNpemUgPSAxOworICAgICAgICAgICAg
YmFja0ZvcndhcmRDYWNoZVNpemUgPSAxOwogCiAgICAgICAgIC8vIE9iamVjdCBjYWNoZSBjYXBh
Y2l0aWVzIChpbiBieXRlcykKICAgICAgICAgLy8gKFRlc3RpbmcgaW5kaWNhdGVzIHRoYXQgdmFs
dWUgLyBNQiBkZXBlbmRzIGhlYXZpbHkgb24gY29udGVudCBhbmQKQEAgLTY4Niw3ICs2ODUsNyBA
QCB2b2lkIFdlYlZpZXc6OnNldENhY2hlTW9kZWwoV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQog
ICAgIGF1dG8mIG1lbW9yeUNhY2hlID0gTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpOwogICAgIG1l
bW9yeUNhY2hlLnNldENhcGFjaXRpZXMoY2FjaGVNaW5EZWFkQ2FwYWNpdHksIGNhY2hlTWF4RGVh
ZENhcGFjaXR5LCBjYWNoZVRvdGFsQ2FwYWNpdHkpOwogICAgIG1lbW9yeUNhY2hlLnNldERlYWRE
ZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwoZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZh
bCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5zZXRNYXhTaXplKHBhZ2VDYWNoZVNpemUp
OworICAgIEJhY2tGb3J3YXJkQ2FjaGU6OnNpbmdsZXRvbigpLnNldE1heFNpemUoYmFja0Zvcndh
cmRDYWNoZVNpemUpOwogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKICAgICAvLyBEb24ndCBz
aHJpbmsgYSBiaWcgZGlzayBjYWNoZSwgc2luY2UgdGhhdCB3b3VsZCBjYXVzZSBjaHVybi4KQEAg
LTUzODUsNyArNTM4NCw3IEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFu
Z2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICBociA9IHByZWZlcmVuY2Vz
LT51c2VzUGFnZUNhY2hlKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAg
cmV0dXJuIGhyOwotICAgIHNldHRpbmdzLnNldFVzZXNQYWdlQ2FjaGUoISFlbmFibGVkKTsKKyAg
ICBzZXR0aW5ncy5zZXRVc2VzQmFja0ZvcndhcmRDYWNoZSghIWVuYWJsZWQpOwogCiAgICAgaHIg
PSBwcmVmZXJlbmNlcy0+aXNET01QYXN0ZUFsbG93ZWQoJmVuYWJsZWQpOwogICAgIGlmIChGQUlM
RUQoaHIpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDA0MjZmNDJjNjUyYmE5NWMxZDc4NDVlOTI1ODZjZDAzYTdiNDRiNjguLmE3Y2VmYzg5MzNh
NzRkOTZhMTUzZGM5Y2RjNDg2MGE4YmU4ZjdjNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxOS0xMC0xNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUg
dG8gQmFja0ZvcndhcmRDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAzMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICBSZW5hbWUgUGFnZUNhY2hlIHRvIEJhY2tGb3J3YXJkQ2FjaGUgZm9yIGNs
YXJpdHkgYW5kIGNvbnNpc3RlbmN5IHdpdGggdGhlIFVJUHJvY2VzcydzIFdlYkJhY2tGb3J3YXJk
Q2FjaGUuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHA6CisgICAg
ICAgIChUZXN0T3B0aW9uczo6VGVzdE9wdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L1Rlc3RPcHRpb25zLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6
CisgICAgICAgIChvdmVycmlkZVByZWZlcmVuY2VDYWxsYmFjayk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoc2V0V2ViUHJlZmVyZW5j
ZXNGb3JUZXN0T3B0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5k
ZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1
ZXMpOgorICAgICAgICAoc2V0V2ViUHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlOjp3aWxsRGlzY29ubmVjdERPTVdpbmRv
d0V4dGVuc2lvbkZyb21HbG9iYWxPYmplY3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6RE9N
V2luZG93RXh0ZW5zaW9uTm9DYWNoZTo6ZGlkUmVjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uVG9H
bG9iYWxPYmplY3QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJl
bW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVt
b3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZV9CdW5kbGUuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2FjaGVU
ZXN0OjpEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3QpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6RGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tG
b3J3YXJkQ2FjaGVUZXN0OjpkaWRDcmVhdGVQYWdlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9MYXlvdXRNaWxlc3RvbmVzV2l0aEFsbENvbnRlbnRJbkZyYW1lLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHA6Cisg
ICAgICAgICh0ZXN0V2ViS2l0U2V0dGluZ3MpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6
Om92ZXJyaWRlUHJlZmVyZW5jZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVu
Y2VzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6dXBkYXRlVGVzdE9wdGlvbnNG
cm9tVGVzdEhlYWRlcik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5o
OgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6aGFzU2FtZUluaXRpYWxpemF0aW9uT3B0aW9u
cyBjb25zdCk6CisgICAgICAgICogbGxkYi9sbGRiX3dlYmtpdC5weToKKyAgICAgICAgKFdlYkNv
cmVGcmFtZV9TdW1tYXJ5UHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZURvY3VtZW50X1N1bW1h
cnlQcm92aWRlcik6CisgICAgICAgIChXZWJDb3JlRG9jdW1lbnRQcm92aWRlci5wYWdlX2NhY2hl
X3N0YXRlKToKKwogMjAxOS0xMC0xNiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5j
b20+CiAKICAgICAgICAgUHl0aG9uIDM6IEFkZCBzdXBwb3J0IGluIHdlYmtpdHB5LmNvbW1vbi5u
ZXQuYnVnemlsbGEKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25z
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNwcAppbmRleCAxZmY4NDll
MTdhODViNmYyZmRhOGE5MGVhNDBhYWI5Mjk5MzY2NWFiLi41NTZlZWMyNzY2MzdlODFiOTNmNzdk
OTY1OTM3NWNmYzJhNDk1OTU5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCkBA
IC04MSw4ICs4MSw4IEBAIFRlc3RPcHRpb25zOjpUZXN0T3B0aW9ucyhjb25zdCBzdGQ6OnN0cmlu
ZyYgcGF0aE9yVVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgYWJzb2x1CiAgICAgICAgICAgICBlbmFi
bGVJbnRlcnNlY3Rpb25PYnNlcnZlciA9IHBhcnNlQm9vbGVhblRlc3RIZWFkZXJWYWx1ZSh2YWx1
ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAidXNlRXBoZW1lcmFsU2Vzc2lvbiIpCiAgICAg
ICAgICAgICB1c2VFcGhlbWVyYWxTZXNzaW9uID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVl
KHZhbHVlKTsKLSAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJlbmFibGVQYWdlQ2FjaGUiKQotICAg
ICAgICAgICAgZW5hYmxlUGFnZUNhY2hlID0gcGFyc2VCb29sZWFuVGVzdEhlYWRlclZhbHVlKHZh
bHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJlbmFibGVCYWNrRm9yd2FyZENhY2hlIikK
KyAgICAgICAgICAgIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUgPSBwYXJzZUJvb2xlYW5UZXN0SGVh
ZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZU1lbnVJdGVt
RWxlbWVudCIpCiAgICAgICAgICAgICBlbmFibGVNZW51SXRlbUVsZW1lbnQgPSBwYXJzZUJvb2xl
YW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAgICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJs
ZUtleWdlbkVsZW1lbnQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9w
dGlvbnMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKaW5kZXggMDk2OWIx
ODZiZmEwMWIzMDM1MzhmYWNmZTBlOTQ2MjFlZjllN2U2Ny4uZTUzMzVlODMxMTRlNzllNWI1NGQ4
NjFjM2QyM2ZmY2ViYmE3MGEwYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dE9wdGlvbnMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oCkBAIC0z
Myw3ICszMyw3IEBAIHN0cnVjdCBUZXN0T3B0aW9ucyB7CiAgICAgYm9vbCB1c2VBY2NlbGVyYXRl
ZERyYXdpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXIg
eyBmYWxzZSB9OwogICAgIGJvb2wgdXNlRXBoZW1lcmFsU2Vzc2lvbiB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBlbmFibGVQYWdlQ2FjaGUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZSB7IGZhbHNlIH07CiAgICAgYm9vbCBlbmFibGVNZW51SXRlbUVsZW1lbnQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgZW5hYmxlS2V5Z2VuRWxlbWVudCB7IGZhbHNlIH07CiAgICAgYm9vbCBl
bmFibGVNb2Rlcm5NZWRpYUNvbnRyb2xzIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVu
bmVyLmNwcAppbmRleCAxNDdlYjMxZTE4OTk4MDhhZmU0ZDlkNjIxY2U0YmJhZWI4NjljMzcwLi4z
ODEwMDY4OGZkODY3YmY2NjI5NTJiYjU1MzFhNGE2ZjZlNGQyOTM3IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmNwcApAQCAtNTgzLDggKzU4Myw4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIG92
ZXJyaWRlUHJlZmVyZW5jZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmCiAgICAgYXV0byB2YWx1ZSA9IGFkb3B0KEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwg
YXJndW1lbnRzWzFdLCBleGNlcHRpb24pKTsKICAgICBBU1NFUlQoISpleGNlcHRpb24pOwogCi0g
ICAgLy8gU2hvdWxkIHVzZSBgPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPmAgaW5zdGVhZC4KLSAgICBSRUxFQVNFX0FTU0VSVCghSlNTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhrZXkuZ2V0KCksICJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5j
ZUtleSIpKTsKKyAgICAvLyBTaG91bGQgdXNlIGA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPmAgaW5zdGVhZC4KKyAgICBSRUxFQVNFX0FT
U0VSVCghSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXkuZ2V0KCksICJXZWJLaXRVc2Vz
QmFja0ZvcndhcmRDYWNoZVByZWZlcmVuY2VLZXkiKSk7CiAKICAgICBUZXN0UnVubmVyKiBjb250
cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlz
T2JqZWN0KSk7CiAgICAgY29udHJvbGxlci0+b3ZlcnJpZGVQcmVmZXJlbmNlKGtleS5nZXQoKSwg
dmFsdWUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CmluZGV4IGVjZmE0ODdjMjQ3Y2NmN2EzMWQ1OGZjNjhiNTJhMDc3ZGQ5MGRjNjQuLjE4ODBiYmU1
MzI3N2MwODgwNGVkY2UwZTJkNWY3YjkwMzlkZjFjYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEwMzAsNyArMTAzMCw3IEBAIHN0YXRpYyB2b2lk
IHNldFdlYlByZWZlcmVuY2VzRm9yVGVzdE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlv
bnMpCiAgICAgcHJlZmVyZW5jZXMucmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQgPSBvcHRpb25z
LmVuYWJsZVJlcXVlc3RJZGxlQ2FsbGJhY2s7CiAgICAgcHJlZmVyZW5jZXMuYXN5bmNDbGlwYm9h
cmRBUElFbmFibGVkID0gb3B0aW9ucy5lbmFibGVBc3luY0NsaXBib2FyZEFQSTsKICAgICBwcmVm
ZXJlbmNlcy5wcml2YXRlQnJvd3NpbmdFbmFibGVkID0gb3B0aW9ucy51c2VFcGhlbWVyYWxTZXNz
aW9uOwotICAgIHByZWZlcmVuY2VzLnVzZXNQYWdlQ2FjaGUgPSBvcHRpb25zLmVuYWJsZVBhZ2VD
YWNoZTsKKyAgICBwcmVmZXJlbmNlcy51c2VzUGFnZUNhY2hlID0gb3B0aW9ucy5lbmFibGVCYWNr
Rm9yd2FyZENhY2hlOwogfQogCiAvLyBDYWxsZWQgb25jZSBvbiBEdW1wUmVuZGVyVHJlZSBzdGFy
dHVwLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
Njg4NDg2YTg5MGRjZTkyMWRkMzEwZmZjNGNlMzBhMmY4MjE0OGY1NC4uMjRkOGFkMDVkZjFlNDFk
OThjM2U1ZjA5YjJmOTczYjA5MDZhZWMzMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCkBAIC05MTQsNyArOTE0LDcgQEAgc3RhdGljIHZvaWQgc2V0V2Vi
UHJlZmVyZW5jZXNGb3JUZXN0T3B0aW9ucyhJV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzLCBj
b25zdAogICAgIHByZWZzUHJpdmF0ZS0+c2V0UmVxdWVzdElkbGVDYWxsYmFja0VuYWJsZWQob3B0
aW9ucy5lbmFibGVSZXF1ZXN0SWRsZUNhbGxiYWNrKTsKICAgICBwcmVmc1ByaXZhdGUtPnNldEFz
eW5jQ2xpcGJvYXJkQVBJRW5hYmxlZChvcHRpb25zLmVuYWJsZUFzeW5jQ2xpcGJvYXJkQVBJKTsK
ICAgICBwcmVmZXJlbmNlcy0+c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChvcHRpb25zLnVzZUVw
aGVtZXJhbFNlc3Npb24pOwotICAgIHByZWZlcmVuY2VzLT5zZXRVc2VzUGFnZUNhY2hlKG9wdGlv
bnMuZW5hYmxlUGFnZUNhY2hlKTsKKyAgICBwcmVmZXJlbmNlcy0+c2V0VXNlc1BhZ2VDYWNoZShv
cHRpb25zLmVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUpOwogfQogCiBzdGF0aWMgU3RyaW5nIGFwcGxp
Y2F0aW9uSWQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
RE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwCmluZGV4IDJkMDQzNWMwZTJhMzcwZjhj
YzQzNzY2MTYwZDczYzhjNjExZDE3NzguLjU1YWEzN2UxMzAyYzI2ZDJlOTUwM2QwNWE4OGJjNzE0
NWNmYzY1MzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RP
TVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgVEVT
VChXZWJLaXQsIERJU0FCTEVEX0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljKQogICAgIFdLQ29udGV4
dFNldEluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnRleHQuZ2V0KCksICZpbmplY3RlZEJ1bmRsZUNs
aWVudC5iYXNlKTsKICAgICAKICAgICAvLyBUaGUgZGVmYXVsdCBjYWNoZSBtb2RlbCBoYXMgYSBj
YXBhY2l0eSBvZiAwLCBzbyBpdCBpcyBuZWNlc3NhcnkgdG8gc3dpdGNoIHRvIGEgY2FjaGUKLSAg
ICAvLyBtb2RlbCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBwYWdlIGNhY2hlLgorICAgIC8v
IG1vZGVsIHRoYXQgYWN0dWFsbHkgYWxsb3dzIGZvciBhIGJhY2svZm9yd2FyZCBjYWNoZS4KICAg
ICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKGNvbnRleHQuZ2V0KCksIGtXS0NhY2hlTW9kZWxEb2N1
bWVudEJyb3dzZXIpOwogCiAgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQo
KSwgcGFnZUdyb3VwLmdldCgpKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBURVNUKFdlYktpdCwgRElT
QUJMRURfRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMpCiAgICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7
CiAgICAgZmluaXNoZWQgPSBmYWxzZTsKIAotICAgIC8vIE1ha2Ugc3VyZSB0aGUgMiBkaXNjb25u
ZWN0ZWQgZXh0ZW5zaW9ucyBpbiB0aGUgcGFnZSBjYWNoZSBhbmQgdGhlIDQgYWN0aXZlIGV4dGVu
c2lvbnMgYXJlIGFsbCByZW1vdmVkLgorICAgIC8vIE1ha2Ugc3VyZSB0aGUgMiBkaXNjb25uZWN0
ZWQgZXh0ZW5zaW9ucyBpbiB0aGUgYmFjay9mb3J3YXJkIGNhY2hlIGFuZCB0aGUgNCBhY3RpdmUg
ZXh0ZW5zaW9ucyBhcmUgYWxsIHJlbW92ZWQuCiAgICAgV0tQYWdlQ2xvc2Uod2ViVmlldy5wYWdl
KCkpOwogCiAgICAgVXRpbDo6cnVuKCZmaW5pc2hlZCk7CkBAIC0xNTAsNyArMTUwLDcgQEAgVEVT
VChXZWJLaXQsIERPTVdpbmRvd0V4dGVuc2lvbkNyYXNoT25SZWxvYWQpCiAgICAgV0tDb250ZXh0
U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dC5nZXQoKSwgJmluamVjdGVkQnVuZGxlQ2xp
ZW50LmJhc2UpOwogCiAgICAgLy8gVGhlIGRlZmF1bHQgY2FjaGUgbW9kZWwgaGFzIGEgY2FwYWNp
dHkgb2YgMCwgc28gaXQgaXMgbmVjZXNzYXJ5IHRvIHN3aXRjaCB0byBhIGNhY2hlCi0gICAgLy8g
bW9kZWwgdGhhdCBhY3R1YWxseSBhbGxvd3MgZm9yIGEgcGFnZSBjYWNoZS4KKyAgICAvLyBtb2Rl
bCB0aGF0IGFjdHVhbGx5IGFsbG93cyBmb3IgYSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tD
b250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRC
cm93c2VyKTsKIAogICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBh
Z2VHcm91cC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCmluZGV4IGJjNTBiNWUy
YjAwYzU5MDg0NzA2MTc2MmFlM2RkNzBmNGY1MWI5ZWIuLmUxNjk2ZDViZDY1Njk0NzI3OGY5NDc0
ODUyNTMxNzJiYzQ5YjdjYTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwCkBAIC05NSw3
ICs5NSw3IEBAIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hl
KQogCiAgICAgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoY29udGV4dC5nZXQoKSwg
JmluamVjdGVkQnVuZGxlQ2xpZW50LmJhc2UpOwogCi0gICAgLy8gRGlzYWJsZSB0aGUgcGFnZSBj
YWNoZS4KKyAgICAvLyBEaXNhYmxlIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUuCiAgICAgV0tDb250
ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsRG9jdW1lbnRWaWV3
ZXIpOwogCiAgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdy
b3VwLmdldCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcAppbmRl
eCA0MGI3N2YxZGIwNTEyNjk3ZmY1OWNjNjllNmUwMjc5YThiNjIwN2E3Li5kYzIzZTY3YzZmNmMx
OGNlNDg4ZWM2ZTdjZDM3ZTIxYmZhZWE1NmY0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9ET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRE9NV2luZG93RXh0ZW5zaW9uTm9D
YWNoZV9CdW5kbGUuY3BwCkBAIC0yMzUsMTMgKzIzNSwxMyBAQCB2b2lkIERPTVdpbmRvd0V4dGVu
c2lvbk5vQ2FjaGU6Omdsb2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWUoV0tCdW5kbGVGcmFt
ZVJlZgogCiB2b2lkIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGU6OndpbGxEaXNjb25uZWN0RE9N
V2luZG93RXh0ZW5zaW9uRnJvbUdsb2JhbE9iamVjdChXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lv
blJlZiBleHRlbnNpb24pCiB7Ci0gICAgLy8gTm8gaXRlbXMgc2hvdWxkIGJlIGdvaW5nIGludG8g
YSAwLWNhcGFjaXR5IHBhZ2UgY2FjaGUuCisgICAgLy8gTm8gaXRlbXMgc2hvdWxkIGJlIGdvaW5n
IGludG8gYSAwLWNhcGFjaXR5IGJhY2svZm9yd2FyZCBjYWNoZS4KICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAogdm9pZCBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlOjpkaWRSZWNvbm5l
Y3RET01XaW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9iamVjdChXS0J1bmRsZURPTVdpbmRvd0V4dGVu
c2lvblJlZikKIHsKLSAgICAvLyBObyBpdGVtcyBzaG91bGQgYmUgY29taW5nIG91dCBvZiBhIDAt
Y2FwYWNpdHkgcGFnZSBjYWNoZS4KKyAgICAvLyBObyBpdGVtcyBzaG91bGQgYmUgY29taW5nIG91
dCBvZiBhIDAtY2FwYWNpdHkgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2Fj
aGUuY3BwCmluZGV4IDE1OGM2NDBkYzM5YWM4OWUyNTY2Zjk3YjQ1Yzk0MjI2OWQ1ZTc3MDIuLmZl
OWY1NDNjMmJlZTMzZTg3YmMwYzNiN2IyZDVhZTg5NjVmY2IzODYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5Q
YWdlQ2FjaGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0RpZFJl
bW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGUuY3BwCkBAIC03MCw5ICs3MCw5IEBAIHN0
YXRpYyB2b2lkIHNldEluamVjdGVkQnVuZGxlQ2xpZW50KFdLUGFnZVJlZiBwYWdlKQogICAgIFdL
UGFnZVNldFBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudChwYWdlLCAmaW5qZWN0ZWRCdW5kbGVDbGll
bnQuYmFzZSk7CiB9CiAKLVRFU1QoV2ViS2l0LCBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUlu
UGFnZUNhY2hlKQorVEVTVChXZWJLaXQsIERpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNr
Rm9yd2FyZENhY2hlKQogewotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9
IGFkb3B0V0soVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiRGlkUmVt
b3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3Rl
ZEJ1bmRsZVRlc3QoIkRpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hl
IikpOwogICAgIC8vIEVuYWJsZSB0aGUgcGFnZSBjYWNoZSBzbyB3ZSBjYW4gdGVzdCB0aGUgV0tC
dW5kbGVQYWdlRGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2sgQVBJCiAgICAgV0tD
b250ZXh0U2V0Q2FjaGVNb2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsUHJpbWFyeVdl
YkJyb3dzZXIpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlX0J1bmRsZS5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUlu
UGFnZUNhY2hlX0J1bmRsZS5jcHAKaW5kZXggOTkxZGU4NTAwNGUwNTFlNDFkYjAwM2UyZDE4MWRj
MDYyZGRlNzFiNS4uMjZiNTI0ZWRmNGNlYTI4MGFmYmVmYzg5OGVkNzk3YjU0YmZmN2Y0ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvRGlkUmVtb3ZlRnJhbWVG
cm9tSGllYXJjaHlJblBhZ2VDYWNoZV9CdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0L0RpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVfQnVu
ZGxlLmNwcApAQCAtMzUsMTQgKzM1LDE0IEBACiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
IAotY2xhc3MgRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZVRlc3QgOiBwdWJs
aWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKK2NsYXNzIERpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5
SW5CYWNrRm9yd2FyZENhY2hlVGVzdCA6IHB1YmxpYyBJbmplY3RlZEJ1bmRsZVRlc3QgewogcHVi
bGljOgotICAgIERpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVUZXN0KGNvbnN0
IHN0ZDo6c3RyaW5nJiBpZGVudGlmaWVyKTsKKyAgICBEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNo
eUluQmFja0ZvcndhcmRDYWNoZVRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50aWZpZXIpOwog
CiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZVBhZ2UoV0tCdW5kbGVSZWYsIFdLQnVuZGxlUGFn
ZVJlZik7CiB9OwogCi1zdGF0aWMgSW5qZWN0ZWRCdW5kbGVUZXN0OjpSZWdpc3RlcjxEaWRSZW1v
dmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdD4gcmVnaXN0cmFyKCJEaWRSZW1vdmVG
cmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlIik7CitzdGF0aWMgSW5qZWN0ZWRCdW5kbGVUZXN0
OjpSZWdpc3RlcjxEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRl
c3Q+IHJlZ2lzdHJhcigiRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJbkJhY2tGb3J3YXJkQ2Fj
aGUiKTsKIAogc3RhdGljIHVuc2lnbmVkIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeUNvdW50
OwogCkBAIC01NiwxMiArNTYsMTIgQEAgdm9pZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHlD
YWxsYmFjayhXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZgogICAgIFdLQnVu
ZGxlUGFnZVBvc3RNZXNzYWdlKHBhZ2UsIG1lc3NhZ2UuZ2V0KCksIG1lc3NhZ2UuZ2V0KCkpOwog
fQogCi1EaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluUGFnZUNhY2hlVGVzdDo6RGlkUmVtb3Zl
RnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZVRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50
aWZpZXIpCitEaWRSZW1vdmVGcmFtZUZyb21IaWVhcmNoeUluQmFja0ZvcndhcmRDYWNoZVRlc3Q6
OkRpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlVGVzdChjb25zdCBz
dGQ6OnN0cmluZyYgaWRlbnRpZmllcikKICAgICA6IEluamVjdGVkQnVuZGxlVGVzdChpZGVudGlm
aWVyKQogewogfQogCi12b2lkIERpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGVU
ZXN0OjpkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBh
Z2UpCit2b2lkIERpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5CYWNrRm9yd2FyZENhY2hlVGVz
dDo6ZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdl
KQogewogICAgIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY4IHBhZ2VMb2FkZXJDbGllbnQ7CiAg
ICAgbWVtc2V0KCZwYWdlTG9hZGVyQ2xpZW50LCAwLCBzaXplb2YocGFnZUxvYWRlckNsaWVudCkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTGF5b3V0TWls
ZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFtZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9MYXlvdXRNaWxlc3RvbmVzV2l0aEFsbENvbnRlbnRJbkZyYW1lLmNwcAppbmRl
eCA1NjQ2YmQ4MTk3NWU4ZTU4MzJhMTU0NjlmZmJjNDFjOGVkZDU1YzZlLi4xYTZjYmIxNTMwY2I3
NDNmMzBjZjg1NTM2M2VmZTQ0NTQxYjY2YzQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9MYXlvdXRNaWxlc3RvbmVzV2l0aEFsbENvbnRlbnRJbkZyYW1lLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9MYXlvdXRNaWxlc3RvbmVz
V2l0aEFsbENvbnRlbnRJbkZyYW1lLmNwcApAQCAtNzYsNyArNzYsNyBAQCBURVNUKFdlYktpdCwg
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0QWZ0ZXJQYWdlQ2FjaGVSZXN0b3JlKQogewogICAg
IFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3Jl
YXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOwogCi0gICAgV0tDb250ZXh0U2V0Q2FjaGVN
b2RlbChjb250ZXh0LmdldCgpLCBrV0tDYWNoZU1vZGVsUHJpbWFyeVdlYkJyb3dzZXIpOyAvLyBF
bmFibGVzIHRoZSBQYWdlIENhY2hlLgorICAgIFdLQ29udGV4dFNldENhY2hlTW9kZWwoY29udGV4
dC5nZXQoKSwga1dLQ2FjaGVNb2RlbFByaW1hcnlXZWJCcm93c2VyKTsgLy8gRW5hYmxlcyB0aGUg
YmFjay9mb3J3YXJkIGNhY2hlLgogCiAgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4
dC5nZXQoKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGVlNDAzNzhl
MmVkNjVlNjEyNDBjZjkwMjQ1N2U3NzU2MDg0YTQ1YTQuLjhkMjRiYmJhMzg1OTdiYmMzYzAyZTE1
ZGYwMGE0ZDJmM2ZiODAyYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAt
MjQ4NCw3ICsyNDg0LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUmV1c2VTdXNwZW5kZWRQcm9jZXNz
KQogc3RhdGljIGNvbnN0IGNoYXIqIGZhaWxzVG9FbnRlclBhZ2VDYWNoZVRlc3RCeXRlcyA9IFIi
UFNPTlJFU09VUkNFKAogPGJvZHk+CiA8c2NyaXB0PgotLy8gUGFnZXMgd2l0aCBkZWRpY2F0ZWQg
d29ya2VycyBkbyBub3QgZ28gaW50byBwYWdlIGNhY2hlLgorLy8gUGFnZXMgd2l0aCBkZWRpY2F0
ZWQgd29ya2VycyBkbyBub3QgZ28gaW50byBiYWNrL2ZvcndhcmQgY2FjaGUuCiB2YXIgbXlXb3Jr
ZXIgPSBuZXcgV29ya2VyKCd3b3JrZXIuanMnKTsKIDwvc2NyaXB0PgogPC9ib2R5PgpAQCAtMzY5
OSw3ICszNjk5LDcgQEAgVEVTVChQcm9jZXNzU3dhcCwgUGFnZVNob3dIaWRlKQogICAgIH0KIH0K
IAotLy8gRGlzYWJsaW5nIHRoZSBwYWdlIGNhY2hlIGV4cGxpY2l0bHkgaXMgKGZvciBzb21lIHJl
YXNvbikgbm90IGF2YWlsYWJsZSBvbiBpT1MuCisvLyBEaXNhYmxpbmcgdGhlIGJhY2svZm9yd2Fy
ZCBjYWNoZSBleHBsaWNpdGx5IGlzIChmb3Igc29tZSByZWFzb24pIG5vdCBhdmFpbGFibGUgb24g
aU9TLgogI2lmICFUQVJHRVRfT1NfSVBIT05FCiBzdGF0aWMgY29uc3QgY2hhciogbG9hZFVubG9h
ZEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCiA8c2NyaXB0PgpAQCAtNTc4Miw3ICs1NzgyLDcgQEAg
VEVTVChQcm9jZXNzU3dhcCwgR29CYWNrVG9TdXNwZW5kZWRQYWdlV2l0aE1haW5GcmFtZUlEVGhh
dElzTm90T25lKQogICAgIGF1dG8gcGlkMyA9IFtjcmVhdGVkV2ViVmlldyBfd2ViUHJvY2Vzc0lk
ZW50aWZpZXJdOwogICAgIEVYUEVDVF9ORShwaWQxLCBwaWQzKTsgLy8gU2hvdWxkIGhhdmUgcHJv
Y2Vzcy1zd2FwcGVkLgogCi0gICAgLy8gTmF2aWdhdGUgYmFjayB0byB0aGUgc3VzcGVuZGVkIHBh
Z2UgKHNob3VsZCB1c2UgdGhlIHBhZ2UgY2FjaGUpLgorICAgIC8vIE5hdmlnYXRlIGJhY2sgdG8g
dGhlIHN1c3BlbmRlZCBwYWdlIChzaG91bGQgdXNlIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUpLgog
ICAgIFtjcmVhdGVkV2ViVmlldyBnb0JhY2tdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRNZXNzYWdlKTsKICAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKQEAgLTU4
MTksNyArNTgxOSw3IEBAIGJvZHkgewogPC9oZWFkPgogPGJvZHk+CiA8c2NyaXB0PgotLy8gUGFn
ZXMgd2l0aCBkZWRpY2F0ZWQgd29ya2VycyBkbyBub3QgZ28gaW50byBwYWdlIGNhY2hlLgorLy8g
UGFnZXMgd2l0aCBkZWRpY2F0ZWQgd29ya2VycyBkbyBub3QgZ28gaW50byBiYWNrL2ZvcndhcmQg
Y2FjaGUuCiB2YXIgbXlXb3JrZXIgPSBuZXcgV29ya2VyKCd3b3JrZXIuanMnKTsKIDwvc2NyaXB0
PgogPGEgaWQ9InRlc3RMaW5rIiBocmVmPSJwc29uOi8vd3d3LmFwcGxlLmNvbS9tYWluLmh0bWwi
PlRlc3Q8L2E+CkBAIC01OTI3LDcgKzU5MjcsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogY29udGVu
dEJsb2NraW5nQWZ0ZXJQcm9jZXNzU3dhcFRlc3RCeXRlcyA9IFIiUFNPTlJFU09VUkNFKAogPGJv
ZHk+CiA8c2NyaXB0PgogbGV0IHdhc1N1YmZyYW1lTG9hZGVkID0gZmFsc2U7Ci0vLyBQYWdlcyB3
aXRoIGRlZGljYXRlZCB3b3JrZXJzIGRvIG5vdCBnbyBpbnRvIHBhZ2UgY2FjaGUuCisvLyBQYWdl
cyB3aXRoIGRlZGljYXRlZCB3b3JrZXJzIGRvIG5vdCBnbyBpbnRvIGJhY2svZm9yd2FyZCBjYWNo
ZS4KIHZhciBteVdvcmtlciA9IG5ldyBXb3JrZXIoJ3dvcmtlci5qcycpOwogPC9zY3JpcHQ+CiA8
aWZyYW1lIHNyYz0iYmxvY2ttZS5odG1sIj48L2lmcmFtZT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0U2V0dGluZ3MuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAK
aW5kZXggM2E0MGMyOTM1YjIwMWIwNTZlODllY2VhNmFmMmE0OWIwYzdhZjJlOS4uOGU5OTQ0YWQx
YmJkMTQxNmY2NzVmOWY2ZmM3OGI3YjM3YWY5YmZkOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRTZXR0aW5ncy5jcHAK
QEAgLTI3Niw3ICsyNzYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0U2V0dGluZ3MoVGVzdCos
IGdjb25zdHBvaW50ZXIpCiAgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfc2l0ZV9zcGVj
aWZpY19xdWlya3Moc2V0dGluZ3MsIEZBTFNFKTsKICAgICBnX2Fzc2VydF9mYWxzZSh3ZWJraXRf
c2V0dGluZ3NfZ2V0X2VuYWJsZV9zaXRlX3NwZWNpZmljX3F1aXJrcyhzZXR0aW5ncykpOwogCi0g
ICAgLy8gQnkgZGVmYXVsdCwgcGFnZSBjYWNoZSBpcyBlbmFibGVkLgorICAgIC8vIEJ5IGRlZmF1
bHQsIHRoZSBiYWNrL2ZvcndhcmQgY2FjaGUgaXMgZW5hYmxlZC4KICAgICBnX2Fzc2VydF90cnVl
KHdlYmtpdF9zZXR0aW5nc19nZXRfZW5hYmxlX3BhZ2VfY2FjaGUoc2V0dGluZ3MpKTsKICAgICB3
ZWJraXRfc2V0dGluZ3Nfc2V0X2VuYWJsZV9wYWdlX2NhY2hlKHNldHRpbmdzLCBGQUxTRSk7CiAg
ICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3NldHRpbmdzX2dldF9lbmFibGVfcGFnZV9jYWNoZShz
ZXR0aW5ncykpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggYjRmMGI0YjYzYTRlZWRjM2VjM2EyYmVmZjVkMjE2Y2Zj
YjkxOTZmOS4uY2UzMjEzNzU2YzlmMDUwYzk2YTY4M2JjNTE5YTRmOTRhNDMyZmM0ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCkBAIC04NjAsOCArODYwLDggQEAgc3RhdGljIGlubGluZSBib29sIHRvQm9vbChKU1N0cmlu
Z1JlZiB2YWx1ZSkKIHZvaWQgVGVzdFJ1bm5lcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKEpTU3RyaW5n
UmVmIHByZWZlcmVuY2UsIEpTU3RyaW5nUmVmIHZhbHVlKQogewogICAgIGF1dG8mIGluamVjdGVk
QnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOwotICAgIC8vIFNob3VsZCB1c2Ug
YDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT5gIGlu
c3RlYWQuCi0gICAgUkVMRUFTRV9BU1NFUlQoIUpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
cHJlZmVyZW5jZSwgIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IikpOworICAgIC8v
IFNob3VsZCB1c2UgYDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+YCBpbnN0ZWFkLgorICAgIFJFTEVBU0VfQVNTRVJUKCFKU1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKHByZWZlcmVuY2UsICJXZWJLaXRVc2VzQmFja0ZvcndhcmRDYWNo
ZVByZWZlcmVuY2VLZXkiKSk7CiAKICAgICAvLyBGSVhNRTogaGFuZGxlIG5vbi1ib29sZWFuIHBy
ZWZlcmVuY2VzLgogICAgIFdLQnVuZGxlT3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZvclRlc3RSdW5u
ZXIoaW5qZWN0ZWRCdW5kbGUuYnVuZGxlKCksIGluamVjdGVkQnVuZGxlLnBhZ2VHcm91cCgpLCB0
b1dLKHByZWZlcmVuY2UpLmdldCgpLCB0b0Jvb2wodmFsdWUpKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZWE5YzZhNWViYzhhZTllYWY0OTYzNTQwYzc4
YjVkODhhMTI0Nzk5ZS4uNzU0NWZiZmRmNTQ3YjE4OGY3Y2E0YTVkYWNkMWQ1YzFhZDI1MGEzYiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTg0Niw3ICs4
NDYsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpyZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50
VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpbwogICAgIFdLUHJlZmVyZW5jZXNTZXRBbGxv
d0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyhwcmVmZXJlbmNlcywg
b3B0aW9ucy5hbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscyk7
CiAgICAgV0tQcmVmZXJlbmNlc1NldENvbG9yRmlsdGVyRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0
aW9ucy5lbmFibGVDb2xvckZpbHRlcik7CiAgICAgV0tQcmVmZXJlbmNlc1NldFB1bmNoT3V0V2hp
dGVCYWNrZ3JvdW5kc0luRGFya01vZGUocHJlZmVyZW5jZXMsIG9wdGlvbnMucHVuY2hPdXRXaGl0
ZUJhY2tncm91bmRzSW5EYXJrTW9kZSk7Ci0gICAgV0tQcmVmZXJlbmNlc1NldFBhZ2VDYWNoZUVu
YWJsZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlUGFnZUNhY2hlKTsKKyAgICBXS1ByZWZl
cmVuY2VzU2V0UGFnZUNhY2hlRW5hYmxlZChwcmVmZXJlbmNlcywgb3B0aW9ucy5lbmFibGVCYWNr
Rm9yd2FyZENhY2hlKTsKICAgICBXS1ByZWZlcmVuY2VzU2V0TGF6eUltYWdlTG9hZGluZ0VuYWJs
ZWQocHJlZmVyZW5jZXMsIG9wdGlvbnMuZW5hYmxlTGF6eUltYWdlTG9hZGluZyk7CiAKICAgICBz
dGF0aWMgV0tTdHJpbmdSZWYgZGVmYXVsdFRleHRFbmNvZGluZyA9IFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJJU08tODg1OS0xIik7CkBAIC0xNDI5LDggKzE0MjksOCBAQCBzdGF0aWMg
dm9pZCB1cGRhdGVUZXN0T3B0aW9uc0Zyb21UZXN0SGVhZGVyKFRlc3RPcHRpb25zJiB0ZXN0T3B0
aW9ucywgY29uc3Qgc3RkOgogICAgICAgICAgICAgdGVzdE9wdGlvbnMuY29udGVudE1vZGUgPSB7
IHZhbHVlLmNfc3RyKCkgfTsKICAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJlbmFibGVBcHBOYXAi
KQogICAgICAgICAgICAgdGVzdE9wdGlvbnMuZW5hYmxlQXBwTmFwID0gcGFyc2VCb29sZWFuVGVz
dEhlYWRlclZhbHVlKHZhbHVlKTsKLSAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJlbmFibGVQYWdl
Q2FjaGUiKQotICAgICAgICAgICAgdGVzdE9wdGlvbnMuZW5hYmxlUGFnZUNhY2hlID0gcGFyc2VC
b29sZWFuVGVzdEhlYWRlclZhbHVlKHZhbHVlKTsKKyAgICAgICAgZWxzZSBpZiAoa2V5ID09ICJl
bmFibGVCYWNrRm9yd2FyZENhY2hlIikKKyAgICAgICAgICAgIHRlc3RPcHRpb25zLmVuYWJsZUJh
Y2tGb3J3YXJkQ2FjaGUgPSBwYXJzZUJvb2xlYW5UZXN0SGVhZGVyVmFsdWUodmFsdWUpOwogICAg
ICAgICBlbHNlIGlmIChrZXkgPT0gImVuYWJsZUxhenlJbWFnZUxvYWRpbmciKQogICAgICAgICAg
ICAgdGVzdE9wdGlvbnMuZW5hYmxlTGF6eUltYWdlTG9hZGluZyA9IHBhcnNlQm9vbGVhblRlc3RI
ZWFkZXJWYWx1ZSh2YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGtleSA9PSAiYWxsb3dzTGlua1By
ZXZpZXciKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCmluZGV4IGNiNmE1ZDU2ZGY0
NWNjZTJkNDU1Y2EyZDk4YzY0YTIzNDUwNjc2MzYuLjUxNWQ1YmZiZGUyZGI3OWQxZDUzOGRiZjcy
MTU2MzZlNDBmOWNhNzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9w
dGlvbnMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKQEAgLTk0
LDcgKzk0LDcgQEAgc3RydWN0IFRlc3RPcHRpb25zIHsKICAgICBib29sIHNob3VsZEhhbmRsZVJ1
bk9wZW5QYW5lbCB7IHRydWUgfTsKICAgICBib29sIHNob3VsZFByZXNlbnRQb3BvdmVycyB7IHRy
dWUgfTsKICAgICBib29sIGVuYWJsZUFwcE5hcCB7IGZhbHNlIH07Ci0gICAgYm9vbCBlbmFibGVQ
YWdlQ2FjaGUgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlQmFja0ZvcndhcmRDYWNoZSB7IGZh
bHNlIH07CiAgICAgYm9vbCBlbmFibGVMYXp5SW1hZ2VMb2FkaW5nIHsgZmFsc2UgfTsKICAgICBi
b29sIGFsbG93c0xpbmtQcmV2aWV3IHsgdHJ1ZSB9OwogCkBAIC0xNTQsNyArMTU0LDcgQEAgc3Ry
dWN0IFRlc3RPcHRpb25zIHsKICAgICAgICAgICAgIHx8IGNvbnRlbnRJbnNldFRvcCAhPSBvcHRp
b25zLmNvbnRlbnRJbnNldFRvcAogICAgICAgICAgICAgfHwgY29udGVudE1vZGUgIT0gb3B0aW9u
cy5jb250ZW50TW9kZQogICAgICAgICAgICAgfHwgZW5hYmxlQXBwTmFwICE9IG9wdGlvbnMuZW5h
YmxlQXBwTmFwCi0gICAgICAgICAgICB8fCBlbmFibGVQYWdlQ2FjaGUgIT0gb3B0aW9ucy5lbmFi
bGVQYWdlQ2FjaGUKKyAgICAgICAgICAgIHx8IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGUgIT0gb3B0
aW9ucy5lbmFibGVCYWNrRm9yd2FyZENhY2hlCiAgICAgICAgICAgICB8fCBlbmFibGVMYXp5SW1h
Z2VMb2FkaW5nICE9IG9wdGlvbnMuZW5hYmxlTGF6eUltYWdlTG9hZGluZwogICAgICAgICAgICAg
fHwgYWxsb3dzTGlua1ByZXZpZXcgIT0gb3B0aW9ucy5hbGxvd3NMaW5rUHJldmlldykKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL2xsZGIvbGxkYl93ZWJraXQu
cHkgYi9Ub29scy9sbGRiL2xsZGJfd2Via2l0LnB5CmluZGV4IGY1YWUyYzE5MzhiZDhhNTE0MDE2
YjIwZTU3MDVmMTNmNWVmZjM4MzYuLmQ1ODA4OTk3YWM3MWQxYTA1NDlkYTBlNWFhOGQ5YjFlNGM5
MzU2MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2xsZGIvbGxkYl93ZWJraXQucHkKKysrIGIvVG9vbHMv
bGxkYi9sbGRiX3dlYmtpdC5weQpAQCAtMjM5LDE5ICsyMzksMTkgQEAgZGVmIFdlYkNvcmVGcmFt
ZV9TdW1tYXJ5UHJvdmlkZXIodmFsb2JqLCBkaWN0KToKICAgICBpZiBkb2N1bWVudDoKICAgICAg
ICAgb3JpZ2luID0gZG9jdW1lbnQub3JpZ2luKCkKICAgICAgICAgdXJsID0gZG9jdW1lbnQudXJs
KCkKLSAgICAgICAgcGFnZUNhY2hlU3RhdGUgPSBkb2N1bWVudC5wYWdlX2NhY2hlX3N0YXRlKCkK
KyAgICAgICAgYmFja0ZvcndhcmRDYWNoZVN0YXRlID0gZG9jdW1lbnQucGFnZV9jYWNoZV9zdGF0
ZSgpCiAgICAgZWxzZToKICAgICAgICAgb3JpZ2luID0gJycKICAgICAgICAgdXJsID0gJycKLSAg
ICAgICAgcGFnZUNhY2hlU3RhdGUgPSAnJwotICAgIHJldHVybiAneyBvcmlnaW4gPSAlcywgdXJs
ID0gJXMsIGlzTWFpbkZyYW1lID0gJWQsIHBhZ2VDYWNoZVN0YXRlID0gJXMgfScgJSAob3JpZ2lu
LCB1cmwsIHByb3ZpZGVyLmlzX21haW5fZnJhbWUoKSwgcGFnZUNhY2hlU3RhdGUpCisgICAgICAg
IGJhY2tGb3J3YXJkQ2FjaGVTdGF0ZSA9ICcnCisgICAgcmV0dXJuICd7IG9yaWdpbiA9ICVzLCB1
cmwgPSAlcywgaXNNYWluRnJhbWUgPSAlZCwgYmFja0ZvcndhcmRDYWNoZVN0YXRlID0gJXMgfScg
JSAob3JpZ2luLCB1cmwsIHByb3ZpZGVyLmlzX21haW5fZnJhbWUoKSwgYmFja0ZvcndhcmRDYWNo
ZVN0YXRlKQogCiAKIGRlZiBXZWJDb3JlRG9jdW1lbnRfU3VtbWFyeVByb3ZpZGVyKHZhbG9iaiwg
ZGljdCk6CiAgICAgcHJvdmlkZXIgPSBXZWJDb3JlRG9jdW1lbnRQcm92aWRlcih2YWxvYmosIGRp
Y3QpCiAgICAgZnJhbWUgPSBwcm92aWRlci5mcmFtZSgpCiAgICAgaW5fbWFpbl9mcmFtZSA9ICcl
ZCcgJSBmcmFtZS5pc19tYWluX2ZyYW1lKCkgaWYgZnJhbWUgZWxzZSAnRGV0YWNoZWQnCi0gICAg
cmV0dXJuICd7IG9yaWdpbiA9ICVzLCB1cmwgPSAlcywgaW5NYWluRnJhbWUgPSAlcywgcGFnZUNh
Y2hlU3RhdGUgPSAlcyB9JyAlIChwcm92aWRlci5vcmlnaW4oKSwgcHJvdmlkZXIudXJsKCksIGlu
X21haW5fZnJhbWUsIHByb3ZpZGVyLnBhZ2VfY2FjaGVfc3RhdGUoKSkKKyAgICByZXR1cm4gJ3sg
b3JpZ2luID0gJXMsIHVybCA9ICVzLCBpbk1haW5GcmFtZSA9ICVzLCBiYWNrRm9yd2FyZENhY2hl
U3RhdGUgPSAlcyB9JyAlIChwcm92aWRlci5vcmlnaW4oKSwgcHJvdmlkZXIudXJsKCksIGluX21h
aW5fZnJhbWUsIHByb3ZpZGVyLnBhZ2VfY2FjaGVfc3RhdGUoKSkKIAogCiBkZWYgYnRqcyhkZWJ1
Z2dlciwgY29tbWFuZCwgcmVzdWx0LCBpbnRlcm5hbF9kaWN0KToKQEAgLTcyMyw3ICs3MjMsNyBA
QCBjbGFzcyBXZWJDb3JlRG9jdW1lbnRQcm92aWRlcjoKICAgICAgICAgcmV0dXJuIFdlYkNvcmVT
ZWN1cml0eU9yaWdpblByb3ZpZGVyKHNlY3VyaXR5X29yaWdpbl9wdHIsIGRpY3QoKSkudG9fc3Ry
aW5nKCkKIAogICAgIGRlZiBwYWdlX2NhY2hlX3N0YXRlKHNlbGYpOgotICAgICAgICByZXR1cm4g
c2VsZi52YWxvYmouR2V0Q2hpbGRNZW1iZXJXaXRoTmFtZSgnbV9wYWdlQ2FjaGVTdGF0ZScpLkdl
dFZhbHVlKCkKKyAgICAgICAgcmV0dXJuIHNlbGYudmFsb2JqLkdldENoaWxkTWVtYmVyV2l0aE5h
bWUoJ21fYmFja0ZvcndhcmRDYWNoZVN0YXRlJykuR2V0VmFsdWUoKQogCiAgICAgZGVmIGZyYW1l
KHNlbGYpOgogICAgICAgICBmcmFtZV9wdHIgPSBzZWxmLnZhbG9iai5HZXRDaGlsZE1lbWJlcldp
dGhOYW1lKCdtX2ZyYW1lJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5MmUzNTFiZTVkY2NkYTY4Mjg1YTdmMWIwNDE3NGM2
ZmMxY2YxMTRiLi4yMTU1ZWVkZmFkN2NiYTQwZmM2ZTM4ZGVjZjNkZTQyODQzMjI0MGM0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTY3IEBACisyMDE5LTEwLTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVuYW1lIFBhZ2VDYWNoZSB0byBCYWNrRm9yd2FyZENhY2hlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMwNDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFJlbmFtZSBQ
YWdlQ2FjaGUgdG8gQmFja0ZvcndhcmRDYWNoZSBmb3IgY2xhcml0eSBhbmQgY29uc2lzdGVuY3kg
d2l0aCB0aGUgVUlQcm9jZXNzJ3MgV2ViQmFja0ZvcndhcmRDYWNoZS4KKworICAgICAgICAqIGFu
aW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3Np
dGluZy9hY2NlbGVyYXRlZC1sYXllcnMtYWZ0ZXItYmFjay5odG1sOgorICAgICAgICAqIGNvbXBv
c2l0aW5nL2lmcmFtZXMvcGFnZS1jYWNoZS1sYXllci10cmVlLmh0bWw6CisgICAgICAgICogY29t
cG9zaXRpbmcvcGFnZS1jYWNoZS1iYWNrLWNyYXNoLmh0bWw6CisgICAgICAgICogY29tcG9zaXRp
bmcvc2hvdy1jb21wb3NpdGVkLWlmcmFtZS1vbi1iYWNrLWJ1dHRvbi5odG1sOgorICAgICAgICAq
IGVkaXRpbmcvbWFjL2lucHV0L3VuY29uZmlybWVkLXRleHQtbmF2aWdhdGlvbi13aXRoLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFn
ZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2ZvbnRsb2FkZXItcGFnZS1jYWNoZS5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL0RldmljZU1vdGlvbi9uby1wYWdlLWNhY2hlLmh0bWw6
CisgICAgICAgICogZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vZXZlbnQtYWZ0ZXItbmF2aWdh
dGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL25vLXBhZ2Ut
Y2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5h
dmlnYXRpb24tYmFjay5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL29udW5sb2FkLWJhY2st
dG8tcGFnZS1jYWNoZS5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2VoaWRlLXRpbWVv
dXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9wYWdlaGlkZS14aHItb3Blbi5odG1sOgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdp
dGgtZnJhbWVzLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUt
b24tYmFjay1jYWNoZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVy
cy5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvYXV0b2NvbXBsZXRlLW9mZi13aXRoLWRlZmF1
bHQtdmFsdWUtZG9lcy1ub3QtY2xlYXIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mcmFt
ZS1jcmFzaC13aXRoLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mcmFt
ZS11bmxvYWQtbmF2aWdhdGUtYW5kLXNldFRpbWVvdXQtYXNzZXJ0LWZhaWwuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2ZyYW1lcy9wYWdlLWhpZGUtZG9jdW1lbnQtb3Blbi5odG1sOgorICAgICAgICAq
IGZhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMt
dmlhLXN0eWxlLXVwZGF0ZS5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL3Jlc3RvcmluZy1w
YWdlLWNhY2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hh
cm5lc3MvcGFnZS1jYWNoZS1jcmFzaC1vbi1kYXRhLXVybHMuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2hhcm5lc3MvdXNlLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvYmFj
ay1mcm9tLXBhZ2Utd2l0aC1mb2N1c2VkLWlmcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvaGlz
dG9yeS9nby1iYWNrLXRvLWlmcmFtZS13aXRoLXBsdWdpbi5odG1sOgorICAgICAgICAqIGZhc3Qv
aGlzdG9yeS9nby1iYWNrLXRvLW9iamVjdC1zdWJmcmFtZS5odG1sOgorICAgICAgICAqIGZhc3Qv
aGlzdG9yeS9oaXN0b3J5LWJhY2std2hpbGUtcGRmLWluLXBhZ2VjYWNoZS5odG1sOgorICAgICAg
ICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLU1lc3NhZ2VQb3J0LXBlbmRpbmctbWVzc2FnZS5o
dG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWFmdGVyLXdpbmRvdy1vcGVu
Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtYmFjay1uYXZpZ2F0aW9u
LWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmct
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5n
Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29u
dGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZUltYWdl
Qml0bWFwLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlT2Jq
ZWN0VVJMLXVzaW5nLW9wZW4tcGFuZWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFn
ZS1jYWNoZS1kZXN0cm95LWRvY3VtZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtZWxlbWVudC1zdGF0ZS1mb2N1c2VkLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtZXhlY3V0ZS1zY3JpcHQtZHVyaW5nLXJlc3RvcmUuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtb25lc2hvdC5o
dG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2
ZS13YXRjaGVyLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9j
YXRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pZnJhbWUtanMt
dXJsLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaW5kZXhlZC1jbG9z
ZWQtZGIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLW9w
ZW5lZC1kYi5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNv
dXJjZS1jbG9zZWQtMi5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1l
ZGlhLXNvdXJjZS1jbG9zZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1tZWRpYS1zb3VyY2Utb3BlbmVkLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtbmF2aWdhdGUtZHVyaW5nLXJlc3RvcmUuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tbm9uLXN1c3BlbmRhYmxlLmh0bWw6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLXN1c3BlbmRhYmxlLmh0bWw6
CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcmVtb3ZlZC1zb3VyY2UtYnVmZmVy
Lmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2Nv
bnRleHQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdWJmcmFtZXMt
d2l0aC1wcm92aXNpb25hbC1sb2FkLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtc3VzcGVuZGVkLWF1ZGlvY29udGV4dC5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLW5vLXRyYW5zYWN0aW9uLWRiLmh0bWw6CisgICAgICAg
ICogZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlv
bi5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdpdGgtb3BlbmVyLmh0
bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3BhZ2VoaWRlLXJlbW92ZS1pZnJhbWUtY3Jhc2gu
aHRtbDoKKyAgICAgICAgKiBmYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUtd2luZG93
LXdpdGgtaWZyYW1lLmh0bWw6CisgICAgICAgICogZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdl
LWNhY2hlLXdpbmRvdy13aXRoLW9wZW5lci5odG1sOgorICAgICAgICAqIGZhc3QvaGlzdG9yeS90
aW1lZC1yZWZyZXNoLWluLWNhY2hlZC1mcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvaW1hZ2Vz
L2FuaW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJmY2FjaGUuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2xvYWRlci9mcmFtZXMtd2l0aC11bmxvYWQtaGFuZGxlcnMtaW4tcGFnZS1jYWNoZS5odG1sOgor
ICAgICAgICAqIGZhc3QvbG9hZGVyL2ltYWdlLWluLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2xvYWRlci9pbnB1dC1lbGVtZW50LXBhZ2UtY2FjaGUtY3Jhc2guaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3
YXJkLW5hdmlnYXRpb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRo
LXBvc3QtdG8tbmV3LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sOgor
ICAgICAgICAqIGZhc3QvbG9hZGVyL3Njcm9sbC1wb3NpdGlvbi1yZXN0b3JlZC1vbi1iYWNrLmh0
bWw6CisgICAgICAgICogZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL25vLXBvcHN0YXRlLXdoZW4t
YmFjay10by1zdGF0ZWxlc3MtZW50cnktd2l0aC1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICog
ZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3BvcHN0YXRlLWZpcmVzLXdpdGgtcGFnZS1jYWNoZS5o
dG1sOgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Vuc2NoZWR1bGUtcmVsYXlvdXQtYWZ0ZXItdW5s
b2FkLmh0bWw6CisgICAgICAgICogZmFzdC9sb2FkZXIvd2luZG93LXByb3BlcnRpZXMtcmVzdG9y
ZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogZmFzdC9vdmVyZmxvdy9o
b3Jpem9udGFsLXNjcm9sbC1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxp
bmcvaWZyYW1lLXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sOgorICAgICAgICAqIGZhc3Qvc2Ny
b2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC1hZnRlci1wYWdlc2hvdy5odG1s
OgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2Fy
ZC5odG1sOgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1zY3JvbGwtYmFjay1m
b3J3YXJkLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsYWJs
ZS1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICogZmFzdC9zY3JvbGxpbmcvcGFnZS1jYWNoZS1i
YWNrLW92ZXJmbG93LXNjcm9sbC1yZXN0b3JlLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0LWF1
dG9zaXppbmcvaW9zL3RleHQtYXV0b3NpemluZy1hZnRlci1iYWNrLmh0bWw6CisgICAgICAgICog
ZmFzdC92aWV3cG9ydC9pb3Mvdmlld3BvcnQtc2hyaW5rLXRvLWZpdC1vbi1uZXctbmF2aWdhdGlv
bi5odG1sOgorICAgICAgICAqIGZhc3Qvdmlld3BvcnQvdmlld3BvcnQtMTI4Lmh0bWw6CisgICAg
ICAgICogZmFzdC93b3JrZXJzL3dvcmtlci1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9jYWNoZS9kaXNwbGF5LWltYWdlLXVuc2V0LWFsbG93cy1jYWNoZWQtaW1hZ2UtbG9h
ZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtcGFn
ZS1jYWNoZS1jb25uZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50c291cmNl
L2V2ZW50c291cmNlLXBhZ2UtY2FjaGUtY29ubmVjdGluZy5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvbG9hZGluZy9tYWluLXJlc291cmNlLWRlbGVnYXRlcy1vbi1iYWNrLW5hdmlnYXRpb24u
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hlZC1sb2FkLWJhY2st
dG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9sb2Fk
aW5nL3VuZmluaXNoZWQtbWFpbi1yZXNvdXJjZS1iYWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNr
cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvcmVsb2FkLWFmdGVyLWRpYWxvZy5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVycm9yLXBh
Z2UuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtaW4tcGFnZS1j
YWNoZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1uby1zdG9y
ZS1zdWJmcmFtZS1pbi1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL2ltYWdlLWxvYWQtaW4tcGFnZWhpZGUtaGFuZGxlci5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hl
c3RvcmFnZS1wZW5kaW5nLXByb21pc2UuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmln
YXRpb24vcGFnZS1jYWNoZS1mYWlsZWQteGhyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1mcmFnbWVudC1yZWZlcnJlci5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1uby1jdXJyZW50LWhp
c3RvcnlJdGVtLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2Fj
aGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxvYWQtYXN5bmMtZGVsZWdhdGVzLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxv
YWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5k
aW5nLWltYWdlLWxvYWQtY2FjaGUtcGFydGl0aW9uLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1pbWFnZS1sb2FkLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1sb2FkLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1waW5nLWxv
YWQtY3Jvc3Mtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtc2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHItaW4tcGFn
ZWhpZGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS14
aHIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2h0dHBz
LWluLXBhZ2UtY2FjaGUtMy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9z
dWJmcmFtZS1wYWdlaGlkZS1oYW5kbGVyLXN0YXJ0cy1sb2FkLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRsZXItc3RhcnRzLWxvYWQy
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2luZG93
LW9wZW4taW5zZXJ0LXNjcmlwdC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3Mtb3JpZ2luLXdpbmRvdy1vcGVuLWphdmFzY3JpcHQtdXJsLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9uYXZpZ2F0ZS13aGVuLXJlc3RvcmluZy1jYWNoZWQtcGFnZS5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1jbGljay1hbmQt
Zm9ybS1zdWJtaXNzaW9uLWZyb20taW5hY3RpdmUtZG9td2luZG93Lmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2
ZS13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQt
c2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzItcHNvbi5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3Rp
dmUtd2luZG93Mi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklF
RC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93My5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXdoZW4tZW50ZXJpbmctcGFnZS1j
YWNoZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc3Rv
cC1vbi1yZXN1bWUtaW4tZXJyb3ItaGFuZGxlci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJv
bS1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
Y2xpZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9wYWdlLWNhY2hlLXNlcnZpY2Utd29y
a2VyLXBlbmRpbmctcHJvbWlzZS5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGluZy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L2JlYWNv
bi9zdXBwb3J0L3NlbmRCZWFjb24tb25wYWdlaGlkZS13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBs
ZWdhY3ktYW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hl
Lmh0bWw6CisgICAgICAgICogbG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UuaHRt
bDoKKyAgICAgICAgKiBsb2FkZXIvZ28tYmFjay10by1kaWZmZXJlbnQtd2luZG93LXNpemUuaHRt
bDoKKyAgICAgICAgKiBtZWRpYS9jcmFzaC1jbG9zaW5nLXBhZ2Utd2l0aC1tZWRpYS1hcy1wbHVn
aW4tZmFsbGJhY2suaHRtbDoKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBtZWRpYS9yZXN0b3JlLWZyb20tcGFnZS1j
YWNoZS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9pb3MvZml4ZWQvZml4ZWQtYmFjay1m
b3J3YXJkLmh0bWw6CisgICAgICAgICogcGx1Z2lucy9jcmFzaC1yZXN0b3JpbmctcGx1Z2luLXBh
Z2UtZnJvbS1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogcGx1Z2lucy9mcmFtZXNldC13aXRo
LXBsdWdpbi1mcmFtZS5odG1sOgorICAgICAgICAqIHBsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBh
Z2UtY2FjaGUtd29ya3MuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9JREJSZXF1
ZXN0LXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbi1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogc3dpcGUvYmFzaWMtY2FjaGVkLWJh
Y2stc3dpcGUuaHRtbDoKKyAgICAgICAgKiBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWly
ZW1lbnQuaHRtbDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUu
aHRtbDoKKyAgICAgICAgKiBzd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUt
c3dpcGluZy1jcmFzaC5odG1sOgorICAgICAgICAqIHN3aXBlL3B1c2hzdGF0ZS13aXRoLW1hbnVh
bC1zY3JvbGxyZXN0b3JhdGlvbi5odG1sOgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL251bGwtcGFyZW50LWJhY2stY3Jhc2guaHRtbDoKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5n
L3RpbGVkLWRyYXdpbmctc2Nyb2xsLXBvc2l0aW9uLXBhZ2UtY2FjaGUtcmVzdG9yYXRpb24uaHRt
bDoKKyAgICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS1z
ZW5kLmh0bWw6CisgICAgICAgICogd2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2Ut
Y2FjaGUuaHRtbDoKKwogMjAxOS0xMC0xNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBpT1M6IGlucHV0bW9kZT1ub25lIGlzIG5vdCByZXNwZWN0ZWQg
d2l0aCBhIGhhcmR3YXJlIGtleWJvYXJkIGF0dGFjaGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hbmltYXRpb25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL3Jlc3VtZS1hZnRlci1wYWdlLWNhY2hlLmh0bWwKaW5kZXggYTY2MjJlZTMwODEy
OTE4ZTYzZDU2ZjI0ZjNkZWE1NTQyOTE0NTNjNy4uZTk4YzQ5OWVkN2I0MDI1ZjViNTA3MzRlYWQ0
M2MzZDllMWYxN2QyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9yZXN1bWUt
YWZ0ZXItcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcmVzdW1l
LWFmdGVyLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c3R5bGU+CiBALXdlYmtp
dC1rZXlmcmFtZXMgYm91bmNlIHsKICAgICBmcm9tIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2FjY2VsZXJhdGVkLWxheWVycy1hZnRlci1iYWNrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9hY2NlbGVyYXRlZC1sYXllcnMtYWZ0ZXItYmFjay5odG1sCmluZGV4
IDNiNjFhNDRjM2M2NTg1MzA4YjJkZGE1ZTVhOTU1YmExNmMxNDE2MWYuLmE1ZmJjMTViNGU0ZGQz
NDhkY2JmZDVlNzZmYzQxMjE5NTJiNDUzYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2FjY2VsZXJhdGVkLWxheWVycy1hZnRlci1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvYWNjZWxlcmF0ZWQtbGF5ZXJzLWFmdGVyLWJhY2suaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUFj
Y2VsZXJhdGVkRHJhd2luZz10cnVlIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IURPQ1RZ
UEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VBY2NlbGVyYXRlZERyYXdpbmc9
dHJ1ZSBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIAogPGh0bWw+CiA8aGVhZD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcGFnZS1jYWNoZS1s
YXllci10cmVlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pZnJhbWVzL3BhZ2UtY2Fj
aGUtbGF5ZXItdHJlZS5odG1sCmluZGV4IDk2YzY5OGYzNzQwODJlOTYxODNmN2U2YWRmZjcwOTM3
MzUzNzZlOWYuLjA1NGFhMTg5M2U0MTYzMWI3YmNhMjI0NzM2OWNmOGNjZTQ1MmI4YmEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2lmcmFtZXMvcGFnZS1jYWNoZS1sYXllci10
cmVlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaWZyYW1lcy9wYWdlLWNhY2hl
LWxheWVyLXRyZWUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1s
PgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9wYWdlLWNhY2hl
LWJhY2stY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhZ2UtY2FjaGUtYmFj
ay1jcmFzaC5odG1sCmluZGV4IDhmNjhiY2Q4ZmE5NWU1Y2JkOWMwM2EwZjM5NDE1MzEzMmZiOGEw
YWUuLmM2N2YyMTQyMGI4OGZjMDdiMDdkYzJhMjc1ZGNlOWNjMTM5ZGJkYzYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhZ2UtY2FjaGUtYmFjay1jcmFzaC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3BhZ2UtY2FjaGUtYmFjay1jcmFzaC5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1
ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hl
PXRydWUgXSAtLT4KIDxzdHlsZT4KIC5vdXRlciB7IHBvc2l0aW9uOiBmaXhlZDsgfQogLmlubmVy
IHsgcG9zaXRpb246IGFic29sdXRlOyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy9zaG93LWNvbXBvc2l0ZWQtaWZyYW1lLW9uLWJhY2stYnV0dG9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9zaG93LWNvbXBvc2l0ZWQtaWZyYW1lLW9uLWJhY2stYnV0dG9uLmh0
bWwKaW5kZXggNTY5NWU3NGYzMDllMTc0MGNhN2U5ODQ4YzRhM2IzMmZjM2YyZWE0My4uMGU2OGEz
ZDU0NWFhODYyZDYwNzc5NzQwN2M1ZmI5MGYzOTcyNzYzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvc2hvdy1jb21wb3NpdGVkLWlmcmFtZS1vbi1iYWNrLWJ1dHRvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3Nob3ctY29tcG9zaXRlZC1pZnJhbWUtb24t
YmFjay1idXR0b24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1s
PgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL21hYy9pbnB1dC91bmNv
bmZpcm1lZC10ZXh0LW5hdmlnYXRpb24td2l0aC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL21hYy9pbnB1dC91bmNvbmZpcm1lZC10ZXh0LW5hdmlnYXRpb24td2l0aC1wYWdl
LWNhY2hlLmh0bWwKaW5kZXggMzg4NzdjYmQwZTgyNzZmMmNjNDBjNjRiYjc2ZjVlMTk0YmVhMzA4
YS4uN2I4ZDc5MmM2NzNhNzY1ZDBjN2Y0Nzk0ZWMwZmIyZjZmOTRkNTIwNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9tYWMvaW5wdXQvdW5jb25maXJtZWQtdGV4dC1uYXZpZ2F0aW9u
LXdpdGgtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvbWFjL2lucHV0
L3VuY29uZmlybWVkLXRleHQtbmF2aWdhdGlvbi13aXRoLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHRpdGxlPlRlc3Qgd2hhdCBoYXBwZW5zIHdoZW4g
bmF2aWdhdGluZyBmcm9tIGEgcGFnZSB3aXRoIHVuY29uZmlybWVkIGlubGluZSBpbnB1dCB3aGVu
IHRoZSBwYWdlIGlzIGNhY2hlYWJsZTwvdGl0bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvd2ViZ2wvY2FudmFzLXdlYmdsLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBj
YmEzMjc5MzEzMGVkYWM1NmViY2IyMDk2OTU4OGI5NGM3YzY4NDZlLi45YzdjODM3ZmQyYTg0MzUz
OGMyNzE1NTc1NTg4NzQ4NDRjODVhNDY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9jYW52YXMtd2ViZ2wtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2NhbnZhcy13ZWJnbC1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KIDxzdHlsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2ZvbnRsb2FkZXItcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvZm9udGxvYWRlci1wYWdlLWNhY2hlLmh0bWwKaW5kZXggN2EyMGEwYzFhMjkyNTIwYjQwMjU4
OTQzNzg2OGMyNDY2YmNkYWY3Mi4uOTg3OTJjY2UyYjQ1MTY2MzM1MDYwN2ZmOWFjZTMxZTM2MjZm
MzQzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNh
Y2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udGxvYWRlci1wYWdlLWNhY2hl
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBh
Z2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFkb2N0eXBlIGh0bWw+CiA8aHRtbD4KIDxzdHlsZT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU1vdGlvbi9uby1wYWdlLWNh
Y2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VNb3Rpb24vbm8tcGFnZS1jYWNo
ZS5odG1sCmluZGV4IDU5ZTczODMxOTE4MGU4OGVjZmYwZGE4YzY2NzMzYTc4M2Q2OTU2OGQuLmU2
ZjllYmUyNTMxMjM4MDE2ZjUwNzhkNjhmZWVjYjI2NjQ1NGU2YWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0RldmljZU1vdGlvbi9uby1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlTW90aW9uL25vLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9ldmVudC1hZnRlci1uYXZpZ2F0aW9u
Lmh0bWwKaW5kZXggMjM4YjM3MTRmMDI3YmJkOWViNjM1ZGUwYmE4MjkyZGVkNTlhNmNkNC4uMzYw
MjUxODg5NzNlOGJkMjhmOGE3NmUxOWY4ZjIwOGExY2RlN2UwZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL2V2ZW50LWFm
dGVyLW5hdmlnYXRpb24uaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1wYWdl
LWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9uby1w
YWdlLWNhY2hlLmh0bWwKaW5kZXggNjY1MWY1MTZkZTlmNDEyMDY5MjNmOGFiZDg1OWY0Y2UwMzFi
ZTljMy4uNWVjNjQ5MTgyZjRmNzIwOTk2NmY2MGJiODdmOTdlMmRiOWU1YTEzNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vbm8tcGFnZS1jYWNoZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0RldmljZU9yaWVudGF0aW9uL25vLXBhZ2Ut
Y2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5hdmlnYXRpb24t
YmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3RpbWVyLXJlc3VtZS1vbi1u
YXZpZ2F0aW9uLWJhY2suaHRtbAppbmRleCAzMDJhNDI0MGI4ZDNjMWIxMjQ1MTJmMTExMjVmZDNm
NjlmODZjYjFmLi4yYWVjODQ4NjlkYjE2YjI5ZGU2M2E4Mzg2ZGFmMjQwY2Q5YTQ3ZGJjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9uLW5hdmln
YXRpb24tYmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy90aW1lci1y
ZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+CiA8
c2NyaXB0PgogdmFyIHRpbWVvdXRWYWx1ZSA9IDEwMDsgLy9tcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvb251bmxvYWQtYmFjay10by1wYWdlLWNhY2hlLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9vbnVubG9hZC1iYWNrLXRvLXBhZ2UtY2FjaGUuaHRtbAppbmRl
eCBmMDE4NGYzN2M2YmEwOWUzMDMyMWU5ODBmMjY2NWMyY2M2NTIyZTA0Li4yNGMwYTFlZjQzZmE5
ZjcyMWQ1ZTM5YTkwMDNkYmNkNzJlY2Q1YjhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9vbnVubG9hZC1iYWNrLXRvLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9vbnVubG9hZC1iYWNrLXRvLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+CiA8
aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhp
ZGUtdGltZW91dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhpZGUtdGltZW91
dC5odG1sCmluZGV4IDQ4MDFlZTg4NjkxODU4MzdmMTllN2M2ZjEzYWU5YzVhZWQxMjE1NmYuLmEx
NzNkYjM4YTU1OWEwZmI4OTA1ZGM4YTUwNWQzZGVkM2IwYTNlNmUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXRpbWVvdXQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9wYWdlaGlkZS10aW1lb3V0Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0
bWw+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhpZGUt
eGhyLW9wZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXhoci1vcGVu
Lmh0bWwKaW5kZXggYTNiOWI1Y2UzN2UwNGVkMjgxYWIyZGI1MzZlMTkxYzIzYzcwZTNmZi4uNTE3
ZjQxYjY4OTkzODQwNWU0MzRlYjY5M2RlOTAxMDMyNjAzOTFlYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhpZGUteGhyLW9wZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9wYWdlaGlkZS14aHItb3Blbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxo
dG1sPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93
LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC13aXRoLWZyYW1lcy5o
dG1sCmluZGV4IDQyMTI4NmQ1MDAwOTgzM2Y1NTBmYjgxNTAyZGJkZjIyYjZkMzEyODguLmYyZjMy
MDEyNjgwZTAyYWVjY2Y1MTY0ZDcyZWIwYjc3NWY1ZDhhYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLXdpdGgtZnJh
bWVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUt
b24tYmFjay1jYWNoZWQtd2l0aC1mcmFtZXMuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4K
IDxib2R5PgogVGVzdCBwYWdlc2hvdy9wYWdlaGlkZSBldmVudCBiZWhhdmlvciB3aGVuIG5hdmln
YXRpbmcgYXdheSBmcm9tIGEgcGFnZSB3aXRoIGZyYW1lcywgcHV0dGluZyB0aGUgcGFnZSBpbiB0
aGUgcGFnZSBjYWNoZSwgdGhlbiBiYWNrIHRvIGl0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VzaG93LXBhZ2VoaWRlLW9uLWJhY2stY2FjaGVkLmh0bWwK
aW5kZXggY2Y5MjFiZmNkOGJmMWMxMjkxMDY3MWRhNTgxZjRkMjIzYzlmOGEyYS4uMGNiYmFhYzU5
NTE2MGQ0MjllZTdlNTVlYmNjYTg4ZWI5YWM4ZmZkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvcGFnZXNob3ctcGFnZWhpZGUtb24tYmFjay1jYWNoZWQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9wYWdlc2hvdy1wYWdlaGlkZS1vbi1iYWNrLWNhY2hlZC5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDxwPlRlc3QgcGFnZXNob3cvcGFnZWhpZGUgZXZlbnQgYmVo
YXZpb3Igd2hlbiBuYXZpZ2F0aW5nIGJhY2sgdG8gYW4gY2FjaGVkIHBhZ2UuPC9wPgogPHNjcmlw
dD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc3VzcGVuZC10aW1lcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3N1
c3BlbmQtdGltZXJzLmh0bWwKaW5kZXggM2M4NWY0ODFlNDM2OGQ0ZjAzMTM2M2ZkMzkyMTVjNTQ5
NzUxZTlkOC4uNmVhODk4MWYxNGFmYzY0NDY2ZTJkMmE4OGYyNzRmNjY1ZDU4ZDgzNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc3VzcGVuZC10aW1lcnMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zdXNwZW5kLXRpbWVycy5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvYXV0b2NvbXBsZXRlLW9mZi13aXRoLWRlZmF1bHQtdmFsdWUtZG9lcy1u
b3QtY2xlYXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvYXV0b2NvbXBsZXRlLW9mZi13
aXRoLWRlZmF1bHQtdmFsdWUtZG9lcy1ub3QtY2xlYXIuaHRtbAppbmRleCBiM2ZkZDJhZTg1ZGMz
ZGM1OTEwNDMyMmQwMDgyNGRhM2ZhNmFmNzM1Li40NTU2MDcxMjhmYTk0NDRjODc2N2IxOWIwNzA5
NzFlNzdmOTRlNzVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2F1dG9jb21w
bGV0ZS1vZmYtd2l0aC1kZWZhdWx0LXZhbHVlLWRvZXMtbm90LWNsZWFyLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvY29tcGxldGUtb2ZmLXdpdGgtZGVmYXVsdC12YWx1ZS1k
b2VzLW5vdC1jbGVhci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzY3JpcHQ+CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJh
bWUtY3Jhc2gtd2l0aC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9m
cmFtZS1jcmFzaC13aXRoLXBhZ2UtY2FjaGUuaHRtbAppbmRleCBhMjk5Y2Y4NTNmMzc1NGMyMzc4
NmRhNzY0MDk2MzAxNDU3MDI1YjhhLi42ZGYwZTQyZTFhMzIwNmJkN2M4N2Q4ZGFkNjg4NjVmYzM1
M2Q0MzZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1jcmFzaC13
aXRoLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1j
cmFzaC13aXRoLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxzY3Jp
cHQ+CiB3aW5kb3cuZmluaXNoID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvZnJhbWUtdW5sb2FkLW5hdmlnYXRlLWFuZC1zZXRUaW1lb3V0LWFzc2VydC1m
YWlsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS11bmxvYWQtbmF2aWdhdGUt
YW5kLXNldFRpbWVvdXQtYXNzZXJ0LWZhaWwuaHRtbAppbmRleCAzODMyZDY3ZGY1MzdhMWM1YmJh
NzY4OGFjYzU0M2ZlOTk5NjU0YjgyLi5kZTdmZmVkODU1MjA0ZmQwNzEzYTA1MjZjOTk3ZWM0OWRj
OTcwMzJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS11bmxvYWQt
bmF2aWdhdGUtYW5kLXNldFRpbWVvdXQtYXNzZXJ0LWZhaWwuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9mcmFtZS11bmxvYWQtbmF2aWdhdGUtYW5kLXNldFRpbWVvdXQtYXNzZXJ0
LWZhaWwuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9wYWdlLWhpZGUtZG9jdW1l
bnQtb3Blbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcGFnZS1oaWRlLWRvY3VtZW50
LW9wZW4uaHRtbAppbmRleCA5NWMxNGFiM2E1ZTBhZGQxMmJkMDI0NGUzYTFlNWVkYmE3ZDYyMzJm
Li5jNTA0OTJhYTI3NjMxMmY3N2I4M2U0NzZhNGUxZWM2OTcxZjZkZDdjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9wYWdlLWhpZGUtZG9jdW1lbnQtb3Blbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3BhZ2UtaGlkZS1kb2N1bWVudC1vcGVuLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiBQYXNzZXMgaWYgaXQgZG9lcyBub3QgY3Jh
c2guCiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzdG9y
aW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2NyaXB0cy12aWEtc3R5bGUtdXBkYXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0b3JpbmctcGFnZS1jYWNoZS1zaG91bGQt
bm90LXJ1bi1zY3JpcHRzLXZpYS1zdHlsZS11cGRhdGUuaHRtbAppbmRleCBkYjFkMTRlODZkMWYy
ZmY4MTYxZWFlZTFhYzlkOGYwNjI3ZmIwY2JhLi5iZDAzZTkzMzBlNDkxNTA0YTU1ODIzM2NhY2U2
YzI1MDU5ZjdiN2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0b3Jp
bmctcGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLXZpYS1zdHlsZS11cGRhdGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXN0b3JpbmctcGFnZS1jYWNoZS1zaG91
bGQtbm90LXJ1bi1zY3JpcHRzLXZpYS1zdHlsZS11cGRhdGUuaHRtbApAQCAtMSw0ICsxLDQgQEAK
LTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CkBAIC0xMCw3ICsxMCw3IEBAIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRv
d3MoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5z
KHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRCYWNrRm9yd2FyZENhY2hlU3VwcG9y
dHNQbHVnaW5zKHRydWUpOwogfQogCiBsZXQgbmV3V2luZG93OwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mcmFtZXMvcmVzdG9yaW5nLXBhZ2UtY2FjaGUtc2hvdWxkLW5vdC1ydW4tc2Ny
aXB0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvcmVzdG9yaW5nLXBhZ2UtY2FjaGUt
c2hvdWxkLW5vdC1ydW4tc2NyaXB0cy5odG1sCmluZGV4IGMxNDViNTA5NWIwMTg4ODAyYzA1NGIw
MWZmOGMwM2QzYjBmYmQ5ZTUuLjY3MjVlNjRkMDdmODg3MWI2M2ZjZDU4NGZlNmRkZTFlMjdhYjEx
NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc3RvcmluZy1wYWdlLWNh
Y2hlLXNob3VsZC1ub3QtcnVuLXNjcmlwdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9yZXN0b3JpbmctcGFnZS1jYWNoZS1zaG91bGQtbm90LXJ1bi1zY3JpcHRzLmh0bWwKQEAg
LTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10
cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2Fj
aGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3BhZ2UtY2FjaGUtY3Jhc2gtb24tZGF0YS11cmxz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcGFnZS1jYWNoZS1jcmFzaC1vbi1kYXRh
LXVybHMuaHRtbAppbmRleCAxMTg3YzYwZTUzZjhkYWRmODRhMGEzMzU2ZTUxNmI3MzAxYzczMDg2
Li4yMTkxZWVkNDg0OTE4ZjhkNWJjZTBiNzEwNjhlZTkyYzU4YzFmODQ3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcGFnZS1jYWNoZS1jcmFzaC1vbi1kYXRhLXVybHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvcGFnZS1jYWNoZS1jcmFzaC1vbi1kYXRh
LXVybHMuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxzY3JpcHQ+CiB3aW5kb3cuZmlu
aXNoID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Vz
ZS1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvdXNlLXBhZ2UtY2Fj
aGUuaHRtbAppbmRleCBhMDIzYmNhOTFkM2YxMjViZmU1MGQ2MDUzODFhMTU0YzFmNjhhYjk1Li42
MDU0NTIyMzJlNzBlNDE1Nzg1ZWE4NTVlZDJjNzczNGI2ZDBiZTM2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2hhcm5lc3MvdXNlLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2hhcm5lc3MvdXNlLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRt
bD4KIDxzY3JpcHQ+CiB3aW5kb3cuZmluaXNoID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2JhY2stZnJvbS1wYWdlLXdpdGgtZm9jdXNlZC1pZnJhbWUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9iYWNrLWZyb20tcGFnZS13aXRoLWZvY3Vz
ZWQtaWZyYW1lLmh0bWwKaW5kZXggNmQzZjg0YjM1ZDVjMWQ5MzZjN2MxYjM4ZDE1NWVlM2FmYjEw
OWU4Yi4uZTgwZTYyZjJhODJmZTU0YTBhNjJlZjczOTg0YTE0ODE3MWQ1NjJmYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2JhY2stZnJvbS1wYWdlLXdpdGgtZm9jdXNlZC1p
ZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvYmFjay1mcm9tLXBhZ2Ut
d2l0aC1mb2N1c2VkLWlmcmFtZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9n
by1iYWNrLXRvLWlmcmFtZS13aXRoLXBsdWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L2dvLWJhY2stdG8taWZyYW1lLXdpdGgtcGx1Z2luLmh0bWwKaW5kZXggM2M0NGFkNTI2NWZl
MmM2ODA2OTA1N2Y2NWQyNjAxNGZlYjIyNDJhZi4uNWRkYWI4M2RiYjNiNzFkNjc2OTc2YzU3ODg1
YzM0NTlkOTVmNWUwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2dvLWJh
Y2stdG8taWZyYW1lLXdpdGgtcGx1Z2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L2dvLWJhY2stdG8taWZyYW1lLXdpdGgtcGx1Z2luLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KICAgPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvZ28tYmFjay10by1vYmplY3Qtc3ViZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9nby1iYWNrLXRvLW9iamVjdC1zdWJmcmFtZS5odG1sCmluZGV4IGYw
OGQwNTYxZDBjNGY1YWUxN2NjODFlMzYyMjY4NDIyNjM1YzYwZGIuLmFmMDgzNWI1NTQxYzEyNmU2
NTQ5YmEwNmUxZjZiN2NiMTdjYzljYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9nby1iYWNrLXRvLW9iamVjdC1zdWJmcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9nby1iYWNrLXRvLW9iamVjdC1zdWJmcmFtZS5odG1sCkBAIC0xLDQgKzEsNCBA
QAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAt
LT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9oaXN0b3J5LWJhY2std2hpbGUtcGRmLWluLXBhZ2VjYWNoZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay13aGlsZS1wZGYtaW4tcGFn
ZWNhY2hlLmh0bWwKaW5kZXggMWI1ODFmYTkxZDQ1ZGU0ZTZiZjZmOWZiMWE3OWYyOTM2NDU1OWQ2
ZC4uY2ZiYzA2NzViYmIwM2FlZjdiOGQyYzYwMzk4ODJjZTMxMmI2NTMzMCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay13aGlsZS1wZGYtaW4tcGFnZWNh
Y2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L2hpc3RvcnktYmFjay13aGls
ZS1wZGYtaW4tcGFnZWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtTWVzc2FnZVBvcnQtcGVuZGluZy1tZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1NZXNzYWdlUG9ydC1wZW5kaW5nLW1lc3NhZ2UuaHRtbApp
bmRleCBjZWNmNjA0MGJhYzFkMzk4YWFiMjQyNmUwMmM4ZGIwNGVlMzY1NjFkLi5hMDg2NThlNTVh
ZTM2NDEwZDhlZTMyZTFjZDk1MDE2YzAzM2VjZWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1NZXNzYWdlUG9ydC1wZW5kaW5nLW1lc3NhZ2UuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1NZXNzYWdlUG9ydC1wZW5k
aW5nLW1lc3NhZ2UuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1s
PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1hZnRlci13aW5kb3ctb3Blbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtYWZ0ZXItd2luZG93LW9wZW4uaHRtbAppbmRleCBmY2Q1ZGU0MGQxZmFiM2Q1MGQwNmQw
ZWQzNDM4NTJhYTRkNWE2OGY5Li40ODlmZjg0YzMxMzI0ZjljY2VlYWY2YTlhNzI3MGIzNzE2MzRi
YTg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1hZnRl
ci13aW5kb3ctb3Blbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLWFmdGVyLXdpbmRvdy1vcGVuLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtYmFjay1uYXZpZ2F0aW9uLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1iYWNrLW5hdmlnYXRpb24tY3Jhc2guaHRtbAppbmRleCAwMmY4
MTcwOGI5ZjBiMzJmNDg3MWYwYTc3NmFhZjZkMmRkYTRiMzBiLi5jNzhkNTM2YmY3YTZiZTE1NWM5
NzhhMmUzMGEyNjY5OTFiN2Q3NGJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1iYWNrLW5hdmlnYXRpb24tY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1iYWNrLW5hdmlnYXRpb24tY3Jhc2guaHRtbApAQCAt
MSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRy
dWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNo
ZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy1leHBlY3Rl
ZC50eHQKaW5kZXggNjI3OWRhOTI2ZTg0ZDIyMzg0YjIxZDkyYmQzYjMyYWJlMTRiOTMyOC4uOGU3
OTI3MWJlZTMyNzFkMGQ3ZWY2YzkzYjJkNjcxMzI1MjJiYjc0YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmctZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5nLWV4cGVjdGVkLnR4
dApAQCAtNiw5ICs2LDkgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIHBhZ2VzaG93IC0gbm90
IGZyb20gY2FjaGUKIHBhZ2VoaWRlIC0gZW50ZXJpbmcgY2FjaGUKIHBhZ2VzaG93IC0gZnJvbSBj
YWNoZQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLnBhZ2VDYWNoZVNpemUoKSA+IDAgaXMgdHJ1ZQot
d2luZG93LmludGVybmFscy5jbGVhclBhZ2VDYWNoZSgpCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMu
cGFnZUNhY2hlU2l6ZSgpIGlzIDAKK1BBU1Mgd2luZG93LmludGVybmFscy5iYWNrRm9yd2FyZENh
Y2hlU2l6ZSgpID4gMCBpcyB0cnVlCit3aW5kb3cuaW50ZXJuYWxzLmNsZWFyQmFja0ZvcndhcmRD
YWNoZSgpCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMuYmFja0ZvcndhcmRDYWNoZVNpemUoKSBpcyAw
CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbGVhcmluZy5odG1sCmluZGV4
IDhhYTk3MmEyYzk1OWZmNTExMDM1ODdiYzkyMjRhMjZjZTY4ZWU4NWMuLmRmOGI0N2JhZTJjYjA5
ZTdlZDI2NjgzMWE0NTQzOGJhOGJjNDIxMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLWNsZWFyaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9o
aXN0b3J5L3BhZ2UtY2FjaGUtY2xlYXJpbmcuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CkBAIC0xMyw5ICsxMyw5IEBAIGlmICghd2luZG93Lmlu
dGVybmFscykKIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsIGZ1bmN0aW9uKGV2
ZW50KSB7CiAgICAgZGVidWcoInBhZ2VzaG93IC0gIiArIChldmVudC5wZXJzaXN0ZWQgPyAiIiA6
ICJub3QgIikgKyAiZnJvbSBjYWNoZSIpOwogICAgIGlmIChldmVudC5wZXJzaXN0ZWQpIHsKLSAg
ICAgICAgc2hvdWxkQmVUcnVlKCJ3aW5kb3cuaW50ZXJuYWxzLnBhZ2VDYWNoZVNpemUoKSA+IDAi
KTsKLSAgICAgICAgZXZhbEFuZExvZygid2luZG93LmludGVybmFscy5jbGVhclBhZ2VDYWNoZSgp
Iik7Ci0gICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50ZXJuYWxzLnBhZ2VDYWNoZVNpemUoKSIs
ICIwIik7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgid2luZG93LmludGVybmFscy5iYWNrRm9yd2Fy
ZENhY2hlU2l6ZSgpID4gMCIpOworICAgICAgICBldmFsQW5kTG9nKCJ3aW5kb3cuaW50ZXJuYWxz
LmNsZWFyQmFja0ZvcndhcmRDYWNoZSgpIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaW50
ZXJuYWxzLmJhY2tGb3J3YXJkQ2FjaGVTaXplKCkiLCAiMCIpOwogICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKICAgICB9CiB9LCBmYWxzZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jbG9zZWQtYXVkaW9jb250ZXh0Lmh0bWwKaW5kZXggZmZl
NWIyOTlhNTZjODJjMjA2ZWNlODM1MzZlMjNhNDJmZGE3YzBiYy4uYWFhZTUxMGQ1NzEyZjFjZGM4
M2Q1MDM4MjBjZDhhZTI5NGVmY2Q3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L3BhZ2UtY2FjaGUtY2xvc2VkLWF1ZGlvY29udGV4dC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNsb3NlZC1hdWRpb2NvbnRleHQuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVJbWFnZUJpdG1hcC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlSW1hZ2VCaXRtYXAu
aHRtbAppbmRleCA5OWI2NTEzNjk2ZmQ3NjlkYTc4NWU3Y2MzYzg1NGQyODFjMTUxM2VkLi42OTZm
ZGRjNjdmYzk5NmI4ZTk1NjEyOGU3MDEwNTU2ZWY1ZGQ2ZTI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVJbWFnZUJpdG1hcC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWNyZWF0ZUltYWdlQml0bWFwLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlT2JqZWN0
VVJMLXVzaW5nLW9wZW4tcGFuZWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
LWNhY2hlLWNyZWF0ZU9iamVjdFVSTC11c2luZy1vcGVuLXBhbmVsLmh0bWwKaW5kZXggYmZjYzJl
OWRhOGY5MzZlMmZmZDY1YzZjNTAzNjgxYmQ1YTA0YmY4MS4uZjBmZDZlYjc2ZDczNTU2NGE2YTI0
M2Q2NmVkMzlkMmNmOGQ5MWYwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtY3JlYXRlT2JqZWN0VVJMLXVzaW5nLW9wZW4tcGFuZWwuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1jcmVhdGVPYmplY3RVUkwtdXNpbmct
b3Blbi1wYW5lbC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWNyZWF0ZU9iamVjdFVSTC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtY3JlYXRlT2JqZWN0VVJMLmh0bWwKaW5kZXggYTYyOGM4MmFjMzA4MzdhMTgxYjZhMjA2MTIz
ZDBlMTE0NmE0NGE2Zi4uNTU2YzE5NTBjMWE4OWRjOGExZTZmZDJmZDNiYmFjOTY3MmYzODE2YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3JlYXRlT2Jq
ZWN0VVJMLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtY3Jl
YXRlT2JqZWN0VVJMLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtZGVzdHJveS1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtZGVzdHJveS1kb2N1bWVudC5odG1sCmluZGV4IDZkMWQ3YmY3MzI4YTFjNmMxMDRhNDAy
OTI2M2U1NDEyYzJhOGNiMzUuLjk5ZDVlNTMxMjI1OTczZjU2MGQxODdmNDg1MjkzZWQ2ZDAzZjgy
M2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWRlc3Ry
b3ktZG9jdW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNo
ZS1kZXN0cm95LWRvY3VtZW50Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWVsZW1lbnQtc3RhdGUtZm9j
dXNlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZWxlbWVudC1z
dGF0ZS1mb2N1c2VkLmh0bWwKaW5kZXggZmRlZjVlZjYzYzliMzUyNGE2YTAxNzQwYTU1MDY5Mzg3
ODBhOGNiNS4uZmNkOTFlNWY1NmIxZmQ4YWZmOTQxNmJmYmUyNWVhNDEzMjBkMDMzNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZWxlbWVudC1zdGF0ZS1m
b2N1c2VkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZWxl
bWVudC1zdGF0ZS1mb2N1c2VkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtZXhlY3V0ZS1zY3JpcHQtZHVyaW5nLXJlc3RvcmUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWV4ZWN1dGUtc2NyaXB0LWR1cmluZy1yZXN0b3JlLmh0
bWwKaW5kZXggMmUzNGY0OTYyYzk0ZmMwZWU2ZDg5NjcwZmE2ZTVlMjNmYTdkMzg0Yy4uYzQ3Yzc0
ZWI2ZGQ1NTE0Y2ZmZDMzY2E2MGQwOTM0NWVjZGQyODZlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZXhlY3V0ZS1zY3JpcHQtZHVyaW5nLXJlc3RvcmUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1leGVjdXRlLXNj
cmlwdC1kdXJpbmctcmVzdG9yZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVzaG90Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtb25lc2hvdC5odG1sCmlu
ZGV4IDBjZTQ4MDM4ZDVlYTk4MDc2NGEwOGFjZDk1NjA2NmM3YWY5ZTRjNjIuLjhkZjk4MDhlMzQw
NzVlNjhiZjViMzRiOTc4NGVlODFiYTYwMjI0MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS1vbmVzaG90Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZl
LW9uZXNob3QuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1n
ZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24tYWN0aXZlLXdhdGNoZXIuaHRtbAppbmRleCA5NGMwNzcy
ZTRmODA0OWUzNWM3ZjI3MDkxYmQyNmNjZjk2MTJiOGUwLi4zMDkwNWM2NDZhZjYwOTdiZjI2MWRm
MTQ5N2FkODBlYjZkODk1MDQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rvcnkv
cGFnZS1jYWNoZS1nZW9sb2NhdGlvbi1hY3RpdmUtd2F0Y2hlci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLWFjdGl2ZS13YXRjaGVyLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWdlb2xvY2F0aW9uLmh0
bWwKaW5kZXggNDg0NmFiNjQ3OGY1NDJkZjZmNzc3OGI0NDViOTg2MzI0M2EwYWQyNC4uM2QwNjQx
NjQ2OGZjNTExZmVhNjEwMjgxMThhMTQwYmZjOTNlN2ZiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZ2VvbG9jYXRpb24uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1nZW9sb2NhdGlvbi5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KIDxo
dG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1pZnJhbWUtanMtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1pZnJhbWUtanMtdXJsLmh0bWwKaW5kZXggY2NjNmE1MzlkMDEwN2NmNTBlNTY3YmY4ZDM0
ZjEwMmM5YzVhMzQ2NS4uNDVlYzNhNmM4MzZkMGFjMWNjZmU4YjBhY2UxNjBjZTI4MmI1MTc4ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtaWZyYW1lLWpz
LXVybC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLWlmcmFt
ZS1qcy11cmwuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgog
PGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1p
bmRleGVkLWNsb3NlZC1kYi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtaW5kZXhlZC1jbG9zZWQtZGIuaHRtbAppbmRleCBjYzA5NzYxNWZjYzAxZDIyYTJiMzYxNmJk
MTg2YzQwNGM5ODc4NTEzLi5kMDc0MTIwYTQ3YTI1YzVlMzg5MTYwZjNiMTc1NTFhOTMxYjc0OGNi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVk
LWNsb3NlZC1kYi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LWluZGV4ZWQtY2xvc2VkLWRiLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtaW5kZXhlZC1vcGVuZWQtZGIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9y
eS9wYWdlLWNhY2hlLWluZGV4ZWQtb3BlbmVkLWRiLmh0bWwKaW5kZXggY2FhNzdjYmZhOTY4NzVh
YzVkZmY5ZjJhYmNiM2U5MDY3YTBkNjQ1Ni4uN2Q2YmRiMmMwYWY3Y2NjYzA3MWY0MzNhNzRlNGMx
NjFhOGJiMDRlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtaW5kZXhlZC1vcGVuZWQtZGIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rvcnkv
cGFnZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1jbG9zZWQtMi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC0yLmh0bWwKaW5k
ZXggZDhlM2M0ZjMwMzViM2VhNTE0ODMxNmZhNGFhMTRlMDZhM2UzNmYzOC4uZDUxNjFjY2ExNzU1
M2ExNGE3MmI4ZGIyNDBjYjZhOGEzYzYxNmE3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC0yLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLWNsb3NlZC0yLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNl
LWNsb3NlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbWVkaWEt
c291cmNlLWNsb3NlZC5odG1sCmluZGV4IDgxOGYwMjY1MmQ4MjhjMzkzYjQ5ZjAxYjcwNjZlMmYz
MGI5MmJlNjcuLjI4YTdjMWY1MWE1MDI4NDFiZTlmMTQxMWM4OTMxYWIyYWZlMDBmNTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXNvdXJjZS1j
bG9zZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRp
YS1zb3VyY2UtY2xvc2VkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8
aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtbWVkaWEtc291cmNlLW9wZW5lZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtbWVkaWEtc291cmNlLW9wZW5lZC5odG1sCmluZGV4IDk1NWFmOTViMmYxOTEz
Njk5NjEwZWEyOTZjMmRmYTE5Y2FlMThmZTEuLjBiNWY2YWE1NmZhN2VkMWZmOWE4ZjAyNzE0ZGY3
M2YzZGE4MTM0YTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNh
Y2hlLW1lZGlhLXNvdXJjZS1vcGVuZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1tZWRpYS1zb3VyY2Utb3BlbmVkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbmF2aWdhdGUtZHVyaW5nLXJlc3RvcmUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5hdmlnYXRlLWR1cmluZy1yZXN0b3Jl
Lmh0bWwKaW5kZXggOTc5NjdhZTM4YTlkZjczMmVmYzdjMWZlZDhkYmI3ZjRhMjVjYjVjMC4uZjQ4
OGU0NWEzMGFlN2Y1YmI1YmFkZTQxNzJjZWIzOGRhMGFmMWRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbmF2aWdhdGUtZHVyaW5nLXJlc3RvcmUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1uYXZpZ2F0ZS1kdXJp
bmctcmVzdG9yZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8Ym9keT4KQEAgLTEzLDcgKzEzLDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
dGVzdFJ1bm5lci5jbGVhckJhY2tGb3J3YXJkTGlzdCgpOwogICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGludGVybmFscy5j
bGVhclBhZ2VDYWNoZSgpOworICAgIGludGVybmFscy5jbGVhckJhY2tGb3J3YXJkQ2FjaGUoKTsK
IH0KIHNlc3Npb25TdG9yYWdlLnRlc3RTdGFnZSA9ICdpbml0aWFsJzsKIGxldCBwZXJzaXN0ZWQg
PSBmYWxzZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LW5vdGlmaWNhdGlvbi1ub24tc3VzcGVuZGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLW5vdGlmaWNhdGlvbi1ub24tc3VzcGVuZGFibGUuaHRtbAppbmRleCBh
NjJlOTdiNGM4Y2MyZGE5OWEzYmY4ZjdkY2Q4ZGZkNDQ1YTE4NWZhLi41M2RiYWNiNGM2N2MyODI5
NjMzN2UzYzA0ZDUzNmVlMTk1ZjRiODgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS1ub3RpZmljYXRpb24tbm9uLXN1c3BlbmRhYmxlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLW5vbi1zdXNw
ZW5kYWJsZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW5v
dGlmaWNhdGlvbi1zdXNwZW5kYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtbm90aWZpY2F0aW9uLXN1c3BlbmRhYmxlLmh0bWwKaW5kZXggNTFjYmE1ZDRhMDE1
MGYzOGQ1ZDI4Y2JmMGRlZjFmMDUyMDY5MDNlNi4uMDRiN2JkNmNmMjhiNzMwYTQ3ZmFhMTZkZmJh
YTYxZGM3NWZiMjdhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtbm90aWZpY2F0aW9uLXN1c3BlbmRhYmxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9oaXN0b3J5L3BhZ2UtY2FjaGUtbm90aWZpY2F0aW9uLXN1c3BlbmRhYmxlLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtcmVtb3ZlZC1zb3VyY2UtYnVmZmVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1yZW1vdmVkLXNvdXJj
ZS1idWZmZXIuaHRtbAppbmRleCAwZTI4YWNmNTRhNDliNjJhYjZkYjE4YjU4MWJmN2E3YWU2ZWM3
NDhjLi5iYTFkYzc0OTM3MjU4OWUzMmU1NWQxYjkwNjA3YmY2NWVkZDNiYmU0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1yZW1vdmVkLXNvdXJjZS1idWZm
ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1yZW1vdmVk
LXNvdXJjZS1idWZmZXIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxo
dG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3BhZ2UtY2FjaGUtcnVubmluZy1hdWRpb2NvbnRleHQuaHRtbAppbmRleCA3OWI1MjU1NmFmMGM1
MzM1YTJhMDkyMmFhNGQ0ODAzNzJkMGU0Mzg1Li40OWVhY2ZkNTM5OWMzNmIyNWRiYWNlNGM4NWI5
ZmY0NWQzODYxN2M4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1j
YWNoZS1ydW5uaW5nLWF1ZGlvY29udGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlz
dG9yeS9wYWdlLWNhY2hlLXJ1bm5pbmctYXVkaW9jb250ZXh0Lmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0t
PgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3ViZnJhbWVzLXdpdGgtcHJvdmlzaW9uYWwtbG9h
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3ViZnJhbWVzLXdp
dGgtcHJvdmlzaW9uYWwtbG9hZC5odG1sCmluZGV4IGNiOTQ1MWZiZDk2ZDNkZGE5MmNjY2UyYmJj
NTYwY2QwNjBkZWI3NmIuLjM2ZDUwZmQ5MjQ3NWU5ZDdlYjllYjc4ZWQyM2JmNjcwZTcwMWQwYzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1YmZyYW1l
cy13aXRoLXByb3Zpc2lvbmFsLWxvYWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS1zdWJmcmFtZXMtd2l0aC1wcm92aXNpb25hbC1sb2FkLmh0bWwKQEAgLTEs
NCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVl
IF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9
dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3VzcGVuZGVkLWF1ZGlvY29udGV4
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtc3VzcGVuZGVkLWF1
ZGlvY29udGV4dC5odG1sCmluZGV4IDMxNTQ0MDFjZTkzMjQ2MGUxZTA2ZjZiNjRmOGY2ZjhiMTBm
ZjZkYzMuLjE3ZWNjMGE0OTY0NzY3YTBlZGMxZjA0NWEyNGNjNDQ2Yzk4OTJhMjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXN1c3BlbmRlZC1hdWRpb2Nv
bnRleHQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1zdXNw
ZW5kZWQtYXVkaW9jb250ZXh0Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2UtY2FjaGUtd2ViZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLW5vLXRyYW5zYWN0aW9uLWRiLmh0
bWwKaW5kZXggYTRmNTY1NTUwMTcyYTFjMTc0ODI3YjM3ODk0NjFkNDdiYzNmYmEzMS4uMmQxNDE0
NGIxYWIwNGM1OWQ5OWQ1YzVmMWU2Y2NiZDNkYzA1NDY3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFz
ZS1uby10cmFuc2FjdGlvbi1kYi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9w
YWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rpb24uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJhbnNhY3Rp
b24uaHRtbAppbmRleCAwZWFiMjNkZmI4Nzg4MjU1YzZiN2U2N2QzOWIxNTAyODBlOTRhNzYzLi41
NTk2M2JjZmY0NDk3NzhhMjJlODEwN2RmOTc5MmMxZjIyMjZhMTcyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5z
YWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2Vi
ZGF0YWJhc2UtcGVuZGluZy10cmFuc2FjdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLXdpdGgtb3BlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS13aXRoLW9wZW5lci5odG1sCmluZGV4IGY4ZTQwZTQ2ZmJmMWVkMjc4
NzhmYzdmZWZkNDA0Njk2NmEzY2E3NDMuLmEyZmIzYmNjYWQ3NzUxZWMwOThjZTdkNDI5OTE1M2Vj
ZjRhNTJlZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdlLWNhY2hl
LXdpdGgtb3BlbmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3BhZ2UtY2Fj
aGUtd2l0aC1vcGVuZXIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxo
dG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZWhp
ZGUtcmVtb3ZlLWlmcmFtZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Bh
Z2VoaWRlLXJlbW92ZS1pZnJhbWUtY3Jhc2guaHRtbAppbmRleCA1Y2M1MTQzZmNmZTBmNmU0YmU5
MmYwNTMxZjcyOTIxZDNjOWU4ZjA2Li44MDg2NmQxZjAzYTc4ZTYzZmFiYzlhYTQzZGE5ZTM4YWZk
OGZkYWIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcGFnZWhpZGUtcmVt
b3ZlLWlmcmFtZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9wYWdl
aGlkZS1yZW1vdmUtaWZyYW1lLWNyYXNoLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0
b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLXdpbmRvdy13aXRoLWlmcmFtZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLXdpbmRvdy13aXRoLWlmcmFt
ZS5odG1sCmluZGV4IGZkNjJiZDM4Mjg2NjZhODc2YjBkZWUxY2I0YTVkMzIyYWRhNzc3ZmIuLjQ5
NDgzNWI4YmQ2NGIyMWE5ZDZkMTYwYjMyNzkxYTFlZjNjZjgyYjAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1pZnJh
bWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2Fj
aGUtd2luZG93LXdpdGgtaWZyYW1lLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0
bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5
L3Jlc291cmNlcy9wYWdlLWNhY2hlLXdpbmRvdy13aXRoLW9wZW5lci5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9wYWdlLWNhY2hlLXdpbmRvdy13aXRoLW9wZW5lci5o
dG1sCmluZGV4IGJhNjMwMTFmMTAwMDQ3MDRjYjVjM2YxNmU0ZTI4Nzg3MTliMDc2YmIuLjNjYWYz
NmUwZTFmM2MxZTJjMDZkZjFkYmJmYjI4MmE1NTcyN2ZjYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaGlzdG9yeS9yZXNvdXJjZXMvcGFnZS1jYWNoZS13aW5kb3ctd2l0aC1vcGVuZXIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvcmVzb3VyY2VzL3BhZ2UtY2FjaGUt
d2luZG93LXdpdGgtb3BlbmVyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3Rp
bWVkLXJlZnJlc2gtaW4tY2FjaGVkLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvdGltZWQtcmVmcmVzaC1pbi1jYWNoZWQtZnJhbWUuaHRtbAppbmRleCAyNDI4MDE2Y2E2NmM5
MDY3YTMyMDEyMTdlNmM0ZjdmMGIyODQxOTQ3Li4wMzM0MWFjNzA1NzNmMGNmOTA0NzRhNmE2MDFh
ODU1NjQzNWU4Njc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hpc3RvcnkvdGltZWQt
cmVmcmVzaC1pbi1jYWNoZWQtZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hpc3Rv
cnkvdGltZWQtcmVmcmVzaC1pbi1jYWNoZWQtZnJhbWUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
Ym9keSBvbmxvYWQ9InJlZGlyZWN0KCkiPgogPCEtLSBOZWVkcyB0byB0YWtlIHR3byBzZWNvbmRz
LCBiZWNhdXNlIGEgZmFzdGVyIHJlZnJlc2ggd291bGQgcmVzdWx0IGluIG5vdCBjcmVhdGluZyBh
IGIvZiBpdGVtIGZvciB0aGUgbmF2aWdhdGlvbiAtLT4KIDxpZnJhbWUgc3JjPSdkYXRhOnRleHQv
aHRtbCw8bWV0YSBodHRwLWVxdWl2PSJSZWZyZXNoIiBjb250ZW50PSIyOyBVUkw9YWJvdXQ6Ymxh
bmsiPjxzY3JpcHQ+aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7IHdpbmRvdy5vbnBhZ2VoaWRlPWZ1
bmN0aW9uKGUpe2FsZXJ0KCZhcG9zO3BhZ2VoaWRlICZhcG9zOyArIGUucGVyc2lzdGVkKX07IH08
L3NjcmlwdD4nPjwvaWZyYW1lPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
YW5pbWF0ZWQtZ2lmLXJlc3RvcmVkLWZyb20tYmZjYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXJlc3RvcmVkLWZyb20tYmZjYWNoZS5odG1sCmluZGV4IDgy
OGJjYmFhZWJjNDc5MDk5MDViZGQ4ODdhNWM5MmQ5OTg0Y2RjZTMuLjY0YjE1MTA1OWJlYTIyMjVm
YmNmMWU0ODU2YzZhMmRjYTVjM2JmMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2FuaW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJmY2FjaGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtcmVzdG9yZWQtZnJvbS1iZmNhY2hlLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9sb2FkZXIvZnJhbWVzLXdpdGgtdW5sb2FkLWhhbmRsZXJzLWluLXBhZ2UtY2FjaGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1lcy13aXRoLXVubG9hZC1oYW5kbGVycy1p
bi1wYWdlLWNhY2hlLmh0bWwKaW5kZXggYjgxZjg3NzNhMjhlMzhkZTllYzU0MmFhMGY5NmM2MDVm
MmU1MTM3Zi4uYTM3ZDI3ZWJkZGZiMDgwYTg4NjRmNTY4YjllMmU3NjdkNzczMWFhMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZnJhbWVzLXdpdGgtdW5sb2FkLWhhbmRsZXJz
LWluLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mcmFtZXMt
d2l0aC11bmxvYWQtaGFuZGxlcnMtaW4tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAot
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4K
IDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvaW1hZ2UtaW4tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
aW1hZ2UtaW4tcGFnZS1jYWNoZS5odG1sCmluZGV4IDdkNDMxMDNiMzMyYzFjM2I5ZWM1ZmE1Y2Yy
Y2VmMTIwNzkxOTQzM2MuLjk3YzliYzAxMTRhYTI1ZWRkZjhlMzNjZTZjMDk3YWQwNzcyNjBjODYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ltYWdlLWluLXBhZ2UtY2FjaGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9pbWFnZS1pbi1wYWdlLWNhY2hlLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvaW5wdXQtZWxlbWVudC1wYWdlLWNhY2hl
LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9pbnB1dC1lbGVtZW50LXBhZ2Ut
Y2FjaGUtY3Jhc2guaHRtbAppbmRleCBjODZiMjU4OWNkZTI2Mzk4NTNlZWMxNmM3YzNjMzE3Yzdl
ZTI0NzYzLi43ZjFiZmUzY2JhYjJhZWYwN2QzNjFhNzNiZmQyMDk2MjIzNDBmYmZhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9pbnB1dC1lbGVtZW50LXBhZ2UtY2FjaGUtY3Jh
c2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9pbnB1dC1lbGVtZW50LXBhZ2Ut
Y2FjaGUtY3Jhc2guaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtbmV3
LXRhcmdldC1hZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1u
YXZpZ2F0aW9uLmh0bWwKaW5kZXggYzU4YzcyNmQwYzlhMzRlMTgzNmM2N2ZhYjJkYzMyNWNlMjQ2
MmVjNi4uMTA0N2QwN2RmOWRjMTYwOGI5Y2ZhMWEwNTZhZDc2M2MyNDA0OThkOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1uZXctdGFyZ2V0LWFmdGVy
LWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2Fk
ZXIvbmF2aWdhdGUtd2l0aC1uZXctdGFyZ2V0LWFmdGVyLWJhY2stZm9yd2FyZC1uYXZpZ2F0aW9u
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBh
Z2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tG
b3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0LXRv
LW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL25hdmlnYXRlLXdpdGgtcG9zdC10by1uZXctdGFyZ2V0LWFmdGVyLWJh
Y2stZm9yd2FyZC1uYXZpZ2F0aW9uLmh0bWwKaW5kZXggMmZjMjM5NTQ0NjM5YzFmMTZjNmY3ZGQw
OWU3MjRkNTRmY2Y0YjhjNS4uYzJiNzA1MzExZjViZjQxMjk2YWUyZWUwZjQ4ODhiNDkwY2Q4MTQz
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvbmF2aWdhdGUtd2l0aC1wb3N0
LXRvLW5ldy10YXJnZXQtYWZ0ZXItYmFjay1mb3J3YXJkLW5hdmlnYXRpb24uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9uYXZpZ2F0ZS13aXRoLXBvc3QtdG8tbmV3LXRhcmdldC1h
ZnRlci1iYWNrLWZvcndhcmQtbmF2aWdhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9D
VFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL3Njcm9sbC1wb3NpdGlvbi1yZXN0b3JlZC1vbi1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9zY3JvbGwtcG9zaXRpb24tcmVzdG9yZWQtb24tYmFjay5odG1sCmluZGV4
IDc4MGVjNjA0MDk1NTQ2MWM0ZTZjMDcxYmFhODNkZTg1ODY2YjVlNTcuLjExMzE0YTUzZjI4Yjll
ZWUzMWMzOWRjMThiZTcwNDAzOTA2ZDY2YjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL3Njcm9sbC1wb3NpdGlvbi1yZXN0b3JlZC1vbi1iYWNrLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmVkLW9uLWJhY2suaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9uby1wb3BzdGF0ZS13aGVuLWJhY2st
dG8tc3RhdGVsZXNzLWVudHJ5LXdpdGgtcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9sb2FkZXIvc3RhdGVvYmplY3RzL25vLXBvcHN0YXRlLXdoZW4tYmFjay10by1zdGF0ZWxlc3Mt
ZW50cnktd2l0aC1wYWdlLWNhY2hlLmh0bWwKaW5kZXggYmIwNDYwYjExNzRkYjNiNWNjODkyMmU1
MTNkODc3OWYzNWU0MDIxMy4uZjA0NTM4M2I0OGJiZDIyOThhNzI4Yjk4YjhmNGE2YzU2YjRjNWE0
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL25vLXBv
cHN0YXRlLXdoZW4tYmFjay10by1zdGF0ZWxlc3MtZW50cnktd2l0aC1wYWdlLWNhY2hlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL25vLXBvcHN0YXRlLXdo
ZW4tYmFjay10by1zdGF0ZWxlc3MtZW50cnktd2l0aC1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3BvcHN0YXRlLWZpcmVzLXdpdGgtcGFn
ZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3RhdGVvYmplY3RzL3BvcHN0
YXRlLWZpcmVzLXdpdGgtcGFnZS1jYWNoZS5odG1sCmluZGV4IDU0MDNjMWY3ZDk2OGM2MzNiNWVm
MjUzNjRmY2M4NzdhNWY4MWRkYTEuLjhlNDAzMGM0MTUyZDEwNjY1ZTljYzkwNzc1ZThjMTljNzAy
MWM0NGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9w
b3BzdGF0ZS1maXJlcy13aXRoLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9zdGF0ZW9iamVjdHMvcG9wc3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNhY2hlLmh0bWwK
QEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNo
ZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvdW5zY2hlZHVsZS1yZWxheW91dC1hZnRlci11
bmxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Vuc2NoZWR1bGUtcmVsYXlvdXQt
YWZ0ZXItdW5sb2FkLmh0bWwKaW5kZXggNjkyYzcwNmVhNDRiNzljNDViYzJjZjM3OWYwYzNkNTQy
MjUwZTI3YS4uMzExMGVhYjQxNWVmOTM2MmVhMzE3OTQyZDE2NjY0MTFjMDMwNjQ1NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvdW5zY2hlZHVsZS1yZWxheW91dC1hZnRlci11
bmxvYWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bnNjaGVkdWxlLXJlbGF5
b3V0LWFmdGVyLXVubG9hZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGJvZHk+CiA8
cHJlIGlkPSJsb2ciPjwvcHJlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
d2luZG93LXByb3BlcnRpZXMtcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci93aW5kb3ctcHJvcGVydGllcy1yZXN0b3JlZC1mcm9tLXBhZ2UtY2Fj
aGUuaHRtbAppbmRleCA5MzQzNWE1MTc1OWQ0NzhlNWExZDAzNTYxNWY1MDUwNDQwNDFmYTBkLi4z
NjUwNmU2Y2Y4ZDI1NTllM2EzYzFiZTZjYjAwOTMwNWMzOTJmNzRjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2xvYWRlci93aW5kb3ctcHJvcGVydGllcy1yZXN0b3JlZC1mcm9tLXBhZ2Ut
Y2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci93aW5kb3ctcHJvcGVydGll
cy1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0
PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24tcGFnZS1jYWNoZS5odG1sCmluZGV4IGQyZTkzYWE5NjE1OTJiMDk5MzY1NTljYTUy
MDRhY2E1NjA3ODY4MDguLjc4YjI4MWNkNTNhY2ViNzNjNzBiYmQzMzYwYzA3NDVjNzdlZGM0NmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQ
RSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvb3Zl
cmZsb3cvaG9yaXpvbnRhbC1zY3JvbGwtYWZ0ZXItYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9vdmVyZmxvdy9ob3Jpem9udGFsLXNjcm9sbC1hZnRlci1iYWNrLmh0bWwKaW5kZXggMTRhN2Q5
YjA0NDMzMDkwNTkxNDE5ZWI2ZWE3YWFiMzEyNDg3N2U5Zi4uNzAzY2U2NGY2NDg3YjgxYzE5OGJm
ZGM1MGRjNzZhNTk3YjY3ZmIwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9vdmVyZmxv
dy9ob3Jpem9udGFsLXNjcm9sbC1hZnRlci1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9vdmVyZmxvdy9ob3Jpem9udGFsLXNjcm9sbC1hZnRlci1iYWNrLmh0bWwKQEAgLTEsNCArMSw0
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPGh0bWw+CiA8c2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9pZnJhbWUtc2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Njcm9sbGluZy9pZnJhbWUtc2Nyb2xsYWJsZS1hZnRlci1iYWNrLmh0bWwKaW5kZXggZjAw
NjVmZDM2ZmFjY2Q1OTQyYzAwZGI1YWQxMDNkYWI4YjNmZTRmZC4uMmI4NDdkODIwMjEzN2FjMjY5
MzVmMWFhOTlkNmY1NzZhMjc2YTI4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaWZyYW1lLXNjcm9sbGFibGUtYWZ0ZXItYmFjay5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc2Nyb2xsaW5nL2lmcmFtZS1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3Mvc2Nyb2xsLWV2ZW50cy1iYWNrLWZvcndhcmQt
YWZ0ZXItcGFnZXNob3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3Jv
bGwtZXZlbnRzLWJhY2stZm9yd2FyZC1hZnRlci1wYWdlc2hvdy5odG1sCmluZGV4IDVhNmJkODli
YWI0ZjA5M2E2ODU0NTBkMjg1Y2Y3ZGUwNTBlZDhlOWEuLmQ3MTMzMmI4Y2E3ZmMxMmEzZTUxM2M1
ODk0ZTQ3OWViM2U2ZTEyNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5n
L2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC1hZnRlci1wYWdlc2hvdy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2Fy
ZC1hZnRlci1wYWdlc2hvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lv
cy9zY3JvbGwtZXZlbnRzLWJhY2stZm9yd2FyZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLmh0bWwKaW5kZXggZTJmOTg2Njg0
MzVlNjk1ZDM4N2U2ZjEzNjcwODk5MmYyZWI3ZDM5ZS4uYzExNTE5NmUwNmI3NjRhYjE1ZTdlMjY0
M2UwODZlOWM4YzMxNjA0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
aW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvaW9zL3Njcm9sbC1ldmVudHMtYmFjay1mb3J3YXJkLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9sbC1iYWNrLWZvcndhcmQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1zY3JvbGwtYmFjay1mb3J3
YXJkLmh0bWwKaW5kZXggMTE2NTQ0NzUxZjEyY2Q4ZGI1NjlkYWIyMmQwMjBkY2QyZTIzMmEzMC4u
MWNkYTJiZWEzZjFiYWRhZmY2ZTdiMDYyM2YxNTQxYmM0ZTg5M2ZiMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvaW9zL3RvdWNoLXNjcm9sbC1iYWNrLWZvcndhcmQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9pb3MvdG91Y2gtc2Nyb2xsLWJhY2st
Zm9yd2FyZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1
ZSBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1
ZSBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvb3ZlcmZsb3ctc2Nyb2xsYWJs
ZS1hZnRlci1iYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1z
Y3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbAppbmRleCAwN2UxMzVhOTIzMzFlMmE1YjlkNmM5ZWRi
M2I3MTgyYjlhNDg1YTdiLi4xZWRlNjYxNDZjODRkMDliNGJkMmFmOTExYWQxYzJhNjA4MDMzNzdk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVyZmxvdy1zY3JvbGxh
YmxlLWFmdGVyLWJhY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9vdmVy
Zmxvdy1zY3JvbGxhYmxlLWFmdGVyLWJhY2suaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nj
cm9sbGluZy9wYWdlLWNhY2hlLWJhY2stb3ZlcmZsb3ctc2Nyb2xsLXJlc3RvcmUuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3BhZ2UtY2FjaGUtYmFjay1vdmVyZmxvdy1zY3JvbGwt
cmVzdG9yZS5odG1sCmluZGV4IDY5MTc2YTdlODIzMzJlYmQ2NjRiNWM3ZTRhNTI0NTIxZDY1NmY2
ZmMuLjZmN2RmMDc2YzlhMGIxOTYwZmNlYjYyZDRmZjI0ZmZjMjQyZDBhZjggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3BhZ2UtY2FjaGUtYmFjay1vdmVyZmxvdy1zY3Jv
bGwtcmVzdG9yZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL3BhZ2UtY2Fj
aGUtYmFjay1vdmVyZmxvdy1zY3JvbGwtcmVzdG9yZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxz
dHlsZT4KICNwdWZmaW4gewogICAgIGZvbnQ6IEFoZW0gMTBweDsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL2lvcy90ZXh0LWF1dG9zaXppbmctYWZ0ZXItYmFj
ay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL3RleHQtYXV0b3Np
emluZy1hZnRlci1iYWNrLmh0bWwKaW5kZXggZTYyMWM4ODUwZDI2ZWRlZTg5MjcyNzVkYzhjOGUx
NDZjNzg4Y2EwNy4uZWZlZWU1ZmYxZDk1ZDk0NWQ2ODJkMzMwMzk3Y2JjOTlhOGY2NWNkNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL3RleHQtYXV0b3Np
emluZy1hZnRlci1iYWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXpp
bmcvaW9zL3RleHQtYXV0b3NpemluZy1hZnRlci1iYWNrLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdw
b3J0PXRydWUgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIAogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvaW9zL3ZpZXdwb3J0LXNocmluay10by1maXQtb24tbmV3
LW5hdmlnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvaW9zL3ZpZXdwb3J0
LXNocmluay10by1maXQtb24tbmV3LW5hdmlnYXRpb24uaHRtbAppbmRleCA5YmIzZDlhODUwYjYz
ZjAxYzdiMTY1MGEzNmU0YTBmNmUyNTRjOTgwLi5kODEzN2JhNDdhOGEyNGY1NjQzNzk3ZGI5ZmUy
NTJjNzllZTY3OTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy92
aWV3cG9ydC1zaHJpbmstdG8tZml0LW9uLW5ldy1uYXZpZ2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC92aWV3cG9ydC9pb3Mvdmlld3BvcnQtc2hyaW5rLXRvLWZpdC1vbi1uZXctbmF2
aWdhdGlvbi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgc2hvdWxkSWdub3JlTWV0YVZpZXdwb3J0PXRydWUgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IHNob3VsZElnbm9yZU1ldGFWaWV3cG9ydD10cnVlIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogCiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92
aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvdmll
d3BvcnQtMTI4Lmh0bWwKaW5kZXggM2ZlYjAwZDlhOWU3ZDkwNmViYTljODA5ZmNiNzFmYzNmY2E1
ZjkwZi4uNDZlODM4MjAxZjg1ODlhNDZlYzMwOTA2ODQ2YzZmNDc5ZTA5NjUyMyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC92aWV3cG9ydC0xMjguaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3ZpZXdwb3J0L3ZpZXdwb3J0LTEyOC5odG1sCkBAIC0xLDQgKzEsNCBAQAot
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4K
IDxodG1sPgogICAgIDxoZWFkPgogICAgICAgICA8dGl0bGU+Vmlld3BvcnQgbWV0YSBkYXRhIHN0
b3JlZCBpbiBwYWdlIGNhY2hlLjwvdGl0bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvd29ya2VyLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy93b3JrZXItcGFnZS1jYWNoZS5odG1sCmluZGV4IDM1NDJjMzY5NmQzZDMwZDljMzVlMDkwNDdk
OTZlMTMzY2MyY2VkN2MuLjE0MTYzMWVmNjJjNTY3NzQ0ZDlhODU3OGU1Y2U4ZGE0YWQwN2M0ZGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy93b3JrZXItcGFnZS1jYWNoZS5odG1s
CkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2Fj
aGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2Fy
ZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY2FjaGUvZGlzcGxheS1pbWFnZS11bnNldC1hbGxvd3MtY2FjaGVkLWltYWdlLWxv
YWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvZGlzcGxheS1pbWFnZS11bnNl
dC1hbGxvd3MtY2FjaGVkLWltYWdlLWxvYWQuaHRtbAppbmRleCBmZjU4MTVlODk3YzE3ZWYxZmFm
NTg4OTRhZWE0MThlMmVkNjU3ODNmLi40NzI4MjIyYzA2MTNjMGQyMjBiY2MxMTU2ZWZmNDhlMmI4
MTU4OTg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL2Rpc3BsYXkt
aW1hZ2UtdW5zZXQtYWxsb3dzLWNhY2hlZC1pbWFnZS1sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jYWNoZS9kaXNwbGF5LWltYWdlLXVuc2V0LWFsbG93cy1jYWNoZWQtaW1h
Z2UtbG9hZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJj
ZS1wYWdlLWNhY2hlLWNvbm5lY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVu
dHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5lY3RlZC5odG1sCmluZGV4IGM2Njlm
MmMwMGEyMThjZjBjODAyNGIyOTU1ZTY1NzA1Njk4ZGI2ZGQuLjIwNWQ5YzAxM2M3OGRjZGNlZWUz
OWZiZGJiMDZmMzY1YTA0NmNkM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0ZWQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLXBhZ2UtY2FjaGUt
Y29ubmVjdGVkLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVu
YWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4K
IDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9l
dmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5lY3RpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtcGFnZS1jYWNoZS1jb25uZWN0aW5nLmh0bWwK
aW5kZXggYjA1ZTQ3NGI5OTdiYTYzMDEyOGJlNjljMDVlMTliZGY4MzczOWM1NS4uZWQ2ZmE5NzJj
MThlNDI1ZDg1Yzg3OTQ0OGE2NDQ5ZDE5ZWZlNjI1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1wYWdlLWNhY2hlLWNvbm5lY3Rpbmcu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNl
LXBhZ2UtY2FjaGUtY29ubmVjdGluZy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bG9hZGluZy9tYWluLXJlc291cmNlLWRlbGVnYXRlcy1vbi1iYWNrLW5hdmlnYXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9tYWluLXJlc291cmNlLWRlbGVnYXRlcy1v
bi1iYWNrLW5hdmlnYXRpb24uaHRtbAppbmRleCAwNDk0ODc1OWJjOTk0YWUzMmE2MWZhOWIyNGQ2
ZDAwZDY1MTRjODliLi5mMWUxZjhkOWFhOGNiMTczZWRlODIwMDJlZmExN2JhMTVkMTRhMmJjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvbWFpbi1yZXNvdXJjZS1k
ZWxlZ2F0ZXMtb24tYmFjay1uYXZpZ2F0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2FkaW5nL21haW4tcmVzb3VyY2UtZGVsZWdhdGVzLW9uLWJhY2stbmF2aWdhdGlvbi5o
dG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdl
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9y
d2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLWxvYWQt
YmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbG9hZGluZy91bmZpbmlzaGVkLWxvYWQtYmFjay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3Mu
aHRtbAppbmRleCBjYTU3ODhlMDc4MzAzNjQ0ZGE4ZmMwMThjM2ZmNmVlODgzMGJjMzMyLi45NGNm
ZjdhYTlmNWRmYzQ5NTI4NTkxMGZiZGRmNDFmNDYwODk0MWFmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hlZC1sb2FkLWJhY2stdG8tY2FjaGVkLXBh
Z2UtY2FsbGJhY2tzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Vu
ZmluaXNoZWQtbG9hZC1iYWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDxzY3JpcHQ+CiAKIHdpbmRvdy5vbnBhZ2VzaG93ID0gZnVuY3Rpb24oZXZ0KSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hlZC1t
YWluLXJlc291cmNlLWJhY2stdG8tY2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvdW5maW5pc2hlZC1tYWluLXJlc291cmNlLWJhY2stdG8t
Y2FjaGVkLXBhZ2UtY2FsbGJhY2tzLmh0bWwKaW5kZXggZjJhYzY2YWQxZjY5MGU0MTI2MTcwODFi
ZjM1NTc3NTJiMTZiNDZmNC4uZDg5NjU4MDc0MTM5MmQ2NzhkZGMxNTkyZTRiOTI1Nzk1NTIxMmQ1
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3VuZmluaXNoZWQt
bWFpbi1yZXNvdXJjZS1iYWNrLXRvLWNhY2hlZC1wYWdlLWNhbGxiYWNrcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy91bmZpbmlzaGVkLW1haW4tcmVzb3VyY2UtYmFj
ay10by1jYWNoZWQtcGFnZS1jYWxsYmFja3MuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8c2NyaXB0
PgogCiB3aW5kb3cub25wYWdlc2hvdyA9IGZ1bmN0aW9uKGV2dCkgewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3JlbG9hZC1hZnRlci1kaWFsb2cuaHRtbAppbmRleCAz
ZmU2ODAwYzg4Y2UwOWVkOTI5MTA3NmFmNWIwNDIxNGU0MTRhZDgxLi5hMDdhMDNiMzcyOTg2MmY0
YmFiYzM5YjBhNzdjOTc1MzdmMmMwZWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21lZGlhL3JlbG9hZC1hZnRlci1kaWFsb2cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL3JlbG9hZC1hZnRlci1kaWFsb2cuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8
IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogICAgIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3ItcGFnZS5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2dvLWJhY2stdG8tZXJyb3ItcGFnZS5odG1s
CmluZGV4IDE4YmQxMzlkYTBlZmQ1NzE1ZmNmMWY0NWE2OGE1NzU5YThmODM0YzcuLjFlZmZjNjg4
ZDc1OTE1NTBjNWM5MTkxZGUxNzM4MjgzNGViNWI5Y2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVycm9yLXBhZ2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZ28tYmFjay10by1lcnJvci1wYWdlLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VD
YWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3
YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWwKaW5kZXggZWVl
OWIyNjg3YzNiZmNhZjBkMjRkNGY5NjRlOTI3YmM3ZjBhOWFkYy4uM2YwOTg2NzU2YmZhZDkzYmVj
YWFhNGYzNWY2YjQzNmI3MjA5ZTcyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtaW4tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDxzY3JpcHQ+CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1YmZyYW1l
LWluLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9o
dHRwcy1uby1zdG9yZS1zdWJmcmFtZS1pbi1wYWdlLWNhY2hlLmh0bWwKaW5kZXggOTgwZjIwYjYw
Njc5NTAxYTQ0NDMyOGQ1ODA3NGU1MGMyMjNmMjA5ZS4uMjNkNTgzZDBjOTUxZDQyNzJhZmYyMzc2
N2RkMTcxMjY3Y2E2YTlkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL2h0dHBzLW5vLXN0b3JlLXN1YmZyYW1lLWluLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaHR0cHMtbm8tc3RvcmUtc3ViZnJhbWUt
aW4tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzY3JpcHQ+CiAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL2ltYWdlLWxvYWQtaW4tcGFnZWhpZGUtaGFuZGxlci5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ltYWdlLWxvYWQtaW4tcGFnZWhpZGUtaGFuZGxlci5odG1s
CmluZGV4IGYwOThmMTQwYzljZDY1OTRkMDc1OTJlN2EzNmM5ZWVkOWI3YjJhYTkuLjkwM2Y5MzNi
MjUzN2YyMzc1ZTViNzJkOTBjNTAwNmE5YjAxOTI4YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9pbWFnZS1sb2FkLWluLXBhZ2VoaWRlLWhhbmRsZXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi1w
YWdlaGlkZS1oYW5kbGVyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPGh0bWw+PGhlYWQ+CiA8dGl0
bGU+SW1hZ2UgbG9hZCBpbiBwYWdlaGlkZSBoYW5kbGVyPC90aXRsZT4KIDxzY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21j
YWNoZS1wZW5kaW5nLXByb21pc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sCmluZGV4IGRiZTc2
NWRmYmEwYmU1M2E1MmE1NjEwMDhkNjFjNmNjMzg2ZmJjZWMuLjc1ZWJmY2U5NzEzMzJjNWQwM2I3
M2FiZjg1MDgzNzUwN2VjMTBiYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBlbmRpbmctcHJvbWlzZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlLXBl
bmRpbmctcHJvbWlzZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wYWdlLWNhY2hlLWRvbWNhY2hlc3RvcmFnZS1wZW5kaW5nLXByb21pc2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWRvbWNhY2hlc3RvcmFnZS1w
ZW5kaW5nLXByb21pc2UuaHRtbAppbmRleCBkMDVlNWUwOTIwNTJkZGY3M2ZmNGZmMDE3NWU5OGUx
YmQ5MGEyYjEzLi5jMjIzZGQ5NjJlZmQwMjllZTJmNDE0MjRjOGJiNmE5MjYxZWM0YjI0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1kb21j
YWNoZXN0b3JhZ2UtcGVuZGluZy1wcm9taXNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZG9tY2FjaGVzdG9yYWdlLXBlbmRpbmctcHJvbWlz
ZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hl
LWZhaWxlZC14aHIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdl
LWNhY2hlLWZhaWxlZC14aHIuaHRtbAppbmRleCA3MmQwYmM5NzZjMDdiNWI0NWE0MDI3NzBkZDY1
MGUxYzdlYzk0ODcxLi43YzkxMDMzMmI1M2E4ZWVkNjhlYzc0YmJmNjgzMTcyMWRhN2ZjZTQ5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1m
YWlsZWQteGhyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtZmFpbGVkLXhoci5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLWZvbnRmYWNlc2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1mb250ZmFjZXNldC5odG1sCmluZGV4IGVmOWY1YzMy
Mzg2M2NjZTg0ODcyZTcyYmM2ZjBjM2VhNmQwZmE4YzAuLjVkNjI0NDVmYWI3OWE5YzgxNTAwNzdk
YzZhYjhmYTdkNzliYzViNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYWdlLWNhY2hlLWZvbnRmYWNlc2V0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZm9udGZhY2VzZXQuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1mcmFnbWVudC1yZWZlcnJl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtZnJh
Z21lbnQtcmVmZXJyZXIuaHRtbAppbmRleCAwMjY3ZTVkZmIzM2M1NjQ4NDNkYzYwMDI1MzJjMzc2
YTdmNDUyOWZkLi4zZGQ1MDdkYjA4NGFkZjgyZTE1NjQ2ZjI4NjNhYmNiZmQ4MGM0NDY1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1mcmFn
bWVudC1yZWZlcnJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wYWdlLWNhY2hlLWZyYWdtZW50LXJlZmVycmVyLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLW5vLWN1cnJlbnQtaGlzdG9yeUl0
ZW0uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlm
cmFtZS1uby1jdXJyZW50LWhpc3RvcnlJdGVtLmh0bWwKaW5kZXggYmM4ODc2NDYwY2NhMzJlMTEy
ODM3M2Q5YzhlNDRhZGJjYjk5ZDljZi4uNTFmMjQ5NWU4ZGYyYzliN2YwNjczYmJhNmE4Y2FiZTJk
NWJkMzFkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtaWZyYW1lLW5vLWN1cnJlbnQtaGlzdG9yeUl0ZW0uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtbm8tY3VycmVudC1o
aXN0b3J5SXRlbS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9w
YWdlLWNhY2hlLWlmcmFtZS1wcm92aXNpb25hbC1sb2FkLWFzeW5jLWRlbGVnYXRlcy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLXByb3Zp
c2lvbmFsLWxvYWQtYXN5bmMtZGVsZWdhdGVzLmh0bWwKaW5kZXggMDM4ZjA4YTI5NDU3YTk2YjNh
ZWMzNTc3ODY5OTU4YjJlNzhlM2YzNS4uZDE0YzMzNzIyMGEzY2Q3ZWZhZjEzNzg3YTBhZjEwYWE5
NTUzNTNiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxvYWQtYXN5bmMtZGVsZWdhdGVzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLXBy
b3Zpc2lvbmFsLWxvYWQtYXN5bmMtZGVsZWdhdGVzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZyYW1lLXByb3Zpc2lvbmFsLWxvYWQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLWlmcmFtZS1w
cm92aXNpb25hbC1sb2FkLmh0bWwKaW5kZXggMDFmNjNiZGE4NDQyNzNhNTA2MTQxZjIyZDAwMWRi
NTEyNDk4YjZjZC4uMTg1ZWVkYWE1Y2Y5NjFiZjBiOGU4MGRmOGYyNjE4ODAxMzhjNzIxMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtaWZy
YW1lLXByb3Zpc2lvbmFsLWxvYWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGFnZS1jYWNoZS1pZnJhbWUtcHJvdmlzaW9uYWwtbG9hZC5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2Ut
bG9hZC1jYWNoZS1wYXJ0aXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2UtbG9hZC1jYWNoZS1wYXJ0aXRpb24uaHRtbApp
bmRleCA0ODBiMWNiZjY1N2VkODNmY2Y1ZDVhMTM0Zjc4Y2Y5YTFiMzU5OTU3Li5mY2M0N2FjNWVh
MWM4YjBiNDlhMWYzYWIzZmNhOTY4YjRkMzY2YTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWltYWdlLWxvYWQtY2FjaGUt
cGFydGl0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtcGVuZGluZy1pbWFnZS1sb2FkLWNhY2hlLXBhcnRpdGlvbi5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctaW1hZ2Ut
bG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUt
cGVuZGluZy1pbWFnZS1sb2FkLmh0bWwKaW5kZXggNDU3ZTIxNzNlNWU2MmJmYWNkZWVkNWVlOTA4
OWI3NjQzNWYzYzkxYy4uNmRmOTQ2ZDY0NmMyNjBiNDNmYzQ1ZTVlM2VmN2M2ODIxZjVkMzBkZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUt
cGVuZGluZy1pbWFnZS1sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1pbWFnZS1sb2FkLmh0bWwKQEAgLTEsNCArMSw0IEBA
Ci08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0t
PgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUtcGVuZGluZy1sb2FkLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWxvYWQu
aHRtbAppbmRleCA0NTk1Mzc1ZDIxNzdmMzVmMjBkYWM0YzljZGQ0ZTg4NzNkN2JlMDJkLi4xNzZm
MWI4MmIzNzRjNDcyNjJhZDVkNDQzNTM2MzdjMGIyY2RmZjA0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLWxvYWQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5n
LWxvYWQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhl
YWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1j
YWNoZS1wZW5kaW5nLXBpbmctbG9hZC1jcm9zcy1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLWNyb3NzLW9y
aWdpbi5odG1sCmluZGV4IDEzYjBmOTJjYTk3NWNkMWVkNDQzNjM1MDZiZWYyMDAzMjM5YjUxZGMu
LjUyNDkwZTRjZjhiMzA2NDAwM2UxNTc3NTIwYjMwM2Y3ZTgwYjIyY2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1s
b2FkLWNyb3NzLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLWNyb3NzLW9yaWdpbi5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFi
bGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGJvZHk+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hl
LXBlbmRpbmctcGluZy1sb2FkLXNhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1wZW5kaW5nLXBpbmctbG9hZC1zYW1lLW9yaWdpbi5o
dG1sCmluZGV4IDA1N2ZjODk5NmFmYzQxYjcyYzM3MjY5YTkwNTdiMjYwN2QyNjUyOGQuLmViODU3
NTI2ZTdlMzljOTc0Y2IzYjA2NzNhMWE1ZmIwMGJhM2Q0YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXBlbmRpbmctcGluZy1sb2FkLXNh
bWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUtcGVuZGluZy1waW5nLWxvYWQtc2FtZS1vcmlnaW4uaHRtbApAQCAtMSw0ICsxLDQg
QEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4K
KzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0g
LS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFnZS1jYWNoZS1yZXF1ZXN0QW5pbWF0aW9uRnJh
bWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXJl
cXVlc3RBbmltYXRpb25GcmFtZS5odG1sCmluZGV4IDYxY2FmMDdmZmFjZWYwZWM2NGI2ZGU2OTg4
MzZhMmI2YjBlMGMzOGYuLjY5OWYwYmJiZGZmMzk1NmQyMTNiZjdmYzJkZDI0MTVjNjM4NjA3ZmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hl
LXJlcXVlc3RBbmltYXRpb25GcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wYWdlLWNhY2hlLXJlcXVlc3RBbmltYXRpb25GcmFtZS5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYWdlLWNhY2hlLXhoci1pbi1wYWdlaGlk
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhy
LWluLXBhZ2VoaWRlLmh0bWwKaW5kZXggMGIxMTMwMWQ3NmRlYmFlNDE1MzdhMTIxZTFlNTA3M2Y0
N2I5ZDk1ZC4uYTJmMWY0Y2FkZmNlYWNlZDhiNzcxMWQwYjkyZWRmMTc0YWYxYWExMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhyLWlu
LXBhZ2VoaWRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bh
Z2UtY2FjaGUteGhyLWluLXBhZ2VoaWRlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBF
IGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3BhZ2UtY2FjaGUteGhyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcGFnZS1jYWNoZS14aHIuaHRtbAppbmRleCA1MjJkNzg3MTYyNzM3ZDBkY2My
YjRjOTJhNDQwYmEwM2YwMTZkMjBmLi4zNzNiNTVkNjMyMTBmYTRkZGQxOGFkYTA0YTY4N2NjN2Y5
ZjgyMmQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFn
ZS1jYWNoZS14aHIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cGFnZS1jYWNoZS14aHIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxo
dG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcmVzb3VyY2VzL2h0dHBzLWluLXBhZ2UtY2FjaGUtMy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9odHRwcy1pbi1wYWdlLWNhY2hlLTMuaHRtbApp
bmRleCA3ZGZmZjI4Yjc3MWZiMGMwMjZlZDNlZmM2M2ViNGI0MzRkZjAxYWQ4Li5lODFhMDUzNzg0
M2E2MGJjNTNlMWEwNTEwNTExYzAzYjhiY2YwZGFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2h0dHBzLWluLXBhZ2UtY2FjaGUtMy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMt
aW4tcGFnZS1jYWNoZS0zLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPHNjcmlwdD4KIHdpbmRvdy5v
bnBhZ2VzaG93ID0gZnVuY3Rpb24oZXZ0KSB7CiAJaWYgKCFldnQucGVyc2lzdGVkKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRl
LWhhbmRsZXItc3RhcnRzLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9zdWJmcmFtZS1wYWdlaGlkZS1oYW5kbGVyLXN0YXJ0cy1sb2FkLmh0bWwKaW5kZXggYTM0
NGUyNjcxNTI4ODhhZTlhYTliYTQ5ZDEwOTczYTk2ZjliMWNiNC4uYjEyYjFhMjZiMjhlNDBlMzIw
Mzk5YTI2MDhhMmQ4Y2RiMGY3YzY3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3N1YmZyYW1lLXBhZ2VoaWRlLWhhbmRsZXItc3RhcnRzLWxvYWQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3ViZnJhbWUtcGFnZWhpZGUt
aGFuZGxlci1zdGFydHMtbG9hZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1s
PgogPGh0bWw+CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3ViZnJhbWUtcGFnZWhpZGUtaGFuZGxlci1zdGFy
dHMtbG9hZDIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWJmcmFt
ZS1wYWdlaGlkZS1oYW5kbGVyLXN0YXJ0cy1sb2FkMi5odG1sCmluZGV4IGMzYzM3NTU1YjNjMDU0
NTI1MjE4MDc5Yzg2NDAxMzQxMzdlYjQ0ZTQuLjY2NjQ3NWNmNWE4ZjhhM2NhMWZmZWQxYjEyYTk5
Yjg2MWYwZmEwODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9zdWJmcmFtZS1wYWdlaGlkZS1oYW5kbGVyLXN0YXJ0cy1sb2FkMi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWJmcmFtZS1wYWdlaGlkZS1oYW5kbGVyLXN0
YXJ0cy1sb2FkMi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1pbnNlcnQtc2NyaXB0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ct
b3Blbi1pbnNlcnQtc2NyaXB0Lmh0bWwKaW5kZXggMTE2NGI3NTA5NGQxNGI0YWJmMTJlYzA4YTdj
YzI5ZmZhYjJiNWNmMy4uYWEwN2IxZjRlYjkyOTljNTFlMjk0NTM0NGIwZWIxZGRhN2ZmNjU5ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d2luZG93LW9wZW4taW5zZXJ0LXNjcmlwdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdpbmRvdy1vcGVuLWluc2VydC1zY3JpcHQuaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hl
PXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRD
YWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ct
b3Blbi1qYXZhc2NyaXB0LXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4td2luZG93LW9wZW4tamF2YXNjcmlwdC11cmwuaHRtbAppbmRleCAyNjZi
YTljZTljYjAzMzcwNTA4ZjE3ZjExYjBjOTRlZDg3OGFjN2RkLi5hNmJkNDQyN2M0YTZiM2MzZjg1
OTY3ZjgyMjcxNjllOTFjNDk1NzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13aW5kb3ctb3Blbi1qYXZhc2NyaXB0LXVybC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdpbmRvdy1v
cGVuLWphdmFzY3JpcHQtdXJsLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+
CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9uYXZpZ2F0ZS13aGVuLXJlc3RvcmluZy1jYWNoZWQtcGFnZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYXZpZ2F0ZS13aGVuLXJlc3RvcmluZy1jYWNoZWQtcGFn
ZS5odG1sCmluZGV4IGIxMWE0ZmE5OTY4OTFjMGU2MzFiODBhNWMxYzc4MWZiNzY0NDk5MTcuLmRk
NmY4YzFmNzcyY2FiMjQwNDdlMjhkYjVlYjg3MzcxYmNjOGMxOTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVk
LXBhZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25hdmlnYXRl
LXdoZW4tcmVzdG9yaW5nLWNhY2hlZC1wYWdlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NU
WVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpAQCAtNjMsNyArNjMsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkKIAogICAgICAgICAgIC8vIFByZXZlbnQgZW50ZXJpbmcgUGFnZUNhY2hlLgogICAgICAg
ICAgIGlmICh3LmludGVybmFscykKLSAgICAgICAgICAgIHcuaW50ZXJuYWxzLnByZXZlbnREb2N1
bWVudEZvckVudGVyaW5nUGFnZUNhY2hlKCk7CisgICAgICAgICAgICB3LmludGVybmFscy5wcmV2
ZW50RG9jdW1lbnRGb3JFbnRlcmluZ0JhY2tGb3J3YXJkQ2FjaGUoKTsKIAogICAgICAgICAgIGNo
aWxkX2ZyYW1lID0gdy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2lmcmFtZScpKTsKICAgICAgICAgICBjaGlsZF9mcmFtZS5jb250ZW50V2luZG93Lm9u
dW5sb2FkID0gKCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1pc3Npb24tZnJvbS1pbmFjdGl2ZS1k
b213aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklF
RC1jbGljay1hbmQtZm9ybS1zdWJtaXNzaW9uLWZyb20taW5hY3RpdmUtZG9td2luZG93Lmh0bWwK
aW5kZXggMTMzMTRlNjE3NWExOWFjODY0NWEwNGEzNjZiMGU0YzRlNDA1MGU1MS4uZmU0NjM0ZDEz
YWU1ZDJiZTBjMmM4MmNlNDBkMWEyMjQ1NzBmODRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELWNsaWNrLWFuZC1mb3JtLXN1Ym1pc3Npb24t
ZnJvbS1pbmFjdGl2ZS1kb213aW5kb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzcy1ERU5JRUQtY2xpY2stYW5kLWZvcm0tc3VibWlzc2lvbi1mcm9tLWluYWN0
aXZlLWRvbXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRv
LWluYWN0aXZlLXdpbmRvdy5odG1sCmluZGV4IDI5NjE5NzY1MDQxZmY1YTNmOTZlODY0NTBiMTAw
OTVjNzE5NmZmNzEuLjRkMGJiYTk5MDc5MDQ3MDY2OTQ0Mzc4MDhjOGI2YzlmYTgwZDU0MWUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3Jp
cHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13
aW5kb3cuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5J
RUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzItcHNvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNjcmlwdC1pbmplY3QtaW50by1p
bmFjdGl2ZS13aW5kb3cyLXBzb24uaHRtbAppbmRleCA2YTNiZDE4Mzc1OTUyZDcxNDBlZWZjYTE4
YjMyZjBmNWRhMTczOTAwLi45YzkyODU2ODNjYmRjNjdjODRiNTRjYzNiZjk4YzFlZTQ1YmQ0NDk1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQt
c2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzItcHNvbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8t
aW5hY3RpdmUtd2luZG93Mi1wc29uLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVByb2Nlc3NTd2FwT25OYXZpZ2F0aW9u
PXRydWUgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb249dHJ1ZSBlbmFi
bGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXNj
cmlwdC1pbmplY3QtaW50by1pbmFjdGl2ZS13aW5kb3cyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdp
bmRvdzIuaHRtbAppbmRleCA4NGJjNWJlOTgzZmUwYjYzYzY1ZWI1Y2EwYWM2YzkwZWY4NjQ3Njg5
Li4zMWNhODY0OTBhZWMzZmU3MDgyODc1NWUyZDE4YTI5MDRjMTNmM2Q4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1p
bnRvLWluYWN0aXZlLXdpbmRvdzIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzIuaHRt
bApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNh
Y2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0Zvcndh
cmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQtc2NyaXB0
LWluamVjdC1pbnRvLWluYWN0aXZlLXdpbmRvdzMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93
My5odG1sCmluZGV4IDhkNmJmMmMzMmQxM2UzMGNhZmIyMGZlOGJlMjRiN2QxMTRmNDc4ZDAuLjNl
MWZhZTdjN2RkOTVlMjMwOWYwMWIyMDZhZGJjM2I5MDQ3OTg4M2QgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8t
aW5hY3RpdmUtd2luZG93My5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzLURFTklFRC1zY3JpcHQtaW5qZWN0LWludG8taW5hY3RpdmUtd2luZG93My5odG1sCkBA
IC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9
dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENh
Y2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvY2xvc2VkLXdo
ZW4tZW50ZXJpbmctcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9jbG9zZWQtd2hlbi1lbnRlcmluZy1wYWdlLWNhY2hlLmh0bWwKaW5k
ZXggNGU3MTQzYjVmOGVlMGEyYTExZDRiYzBiOWQ4ZjM4ZWU0NDhkZGY3ZS4uZTY4NDI0NzJhOWJi
N2ZiZTYzMTY3ODU1OTk5YTE5MWEyYmUwZDlkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9jbG9zZWQtd2hlbi1lbnRlcmluZy1wYWdlLWNh
Y2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9jbG9zZWQtd2hlbi1lbnRlcmluZy1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgog
PCFET0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zdG9wLW9uLXJlc3VtZS1pbi1lcnJvci1o
YW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L3N0b3Atb24tcmVzdW1lLWluLWVycm9yLWhhbmRsZXIuaHRtbAppbmRleCA0YWMyMGMwMDNlNTVi
N2MzN2I0ZWVmZmViNjZiNDBmODY5M2ZjZjQxLi4yNjA2NzgwZjYxODFkNjMwMDFlY2Y0MzRhZTll
NDFjYzAzOTU1ZTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3N0b3Atb24tcmVzdW1lLWluLWVycm9yLWhhbmRsZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3N0b3Atb24tcmVzdW1l
LWluLWVycm9yLWhhbmRsZXIuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4K
IDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZyb20tcGFn
ZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xp
ZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbApp
bmRleCA1YmIwYmVlMWY4MTlmODFiMTdhZmZjOTFmM2Y3YTFkNTRjMWYzZjlkLi41ZDU4NTNlM2E0
NjAyNjI3ZTYxM2M5ZjBlNDBmMTJlZjZiMDAwNmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJl
c3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJv
bS1wYWdlLWNhY2hlLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBdIC0tPgogPCFET0NUWVBFIGh0bWw+CiA8aHRt
bD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvY2xpZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVk
LWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdlLWNhY2hlLmh0bWwKaW5kZXggYmVjMTFlYTkxMTg4
MWU4YWVjMGU3MDZkODA0YjU5ZGU4M2I1YmM2ZS4uYzIyZWI0YjRmYmNmYjdjZDViZjczNDYyYjc0
YjFkNmVmZDZjNDg2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvY2xpZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQt
cmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13b3Jr
ZXItcGVuZGluZy1wcm9taXNlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9wYWdlLWNhY2hlLXNlcnZpY2Utd29ya2VyLXBlbmRpbmctcHJvbWlzZS5o
dHRwcy5odG1sCmluZGV4IDA5ZjA1NjgzZjdhOWFjNzVjZWNiZWQxZWVmYTczY2I4OGE3MjA3NTEu
LjZkYjVkMzAwZmI5M2RhNjMyYmM5MzM1YTRhYmU2NzljNGVlZjU4MmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2UtY2FjaGUtc2VydmljZS13
b3JrZXItcGVuZGluZy1wcm9taXNlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcGFnZS1jYWNoZS1zZXJ2aWNlLXdvcmtlci1wZW5kaW5nLXBy
b21pc2UuaHR0cHMuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
ZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1s
PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9wYWdlLWNhY2hpbmcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3BhZ2UtY2FjaGluZy5odG1sCmluZGV4IDRmMjZhZjkyNGUyM2VhY2E4ZGMzZTM2ZjJl
ZGU5YTY1Y2I2MzMyN2IuLjUxMWVmODViYTFlNjFhYTUzOTMzYjljZjYwNzRkMjNjY2ZkYjJkMGUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3BhZ2Ut
Y2FjaGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3BhZ2UtY2FjaGluZy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0
bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9zdXBw
b3J0L3NlbmRCZWFjb24tb25wYWdlaGlkZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L2JlYWNvbi9zdXBwb3J0L3NlbmRCZWFjb24tb25wYWdlaGlkZS13aW5kb3cuaHRtbAppbmRl
eCBjYmUxOTUwOWM1NmRkZGFjMDQ2ZjZkYTc1ZDQ0MGVhOWY1ZTVkMmM4Li5hMzc4YTU0OGVmMzMy
N2IyOTIzODA1MmY0Y2JhNjM5ZTZiYzU4ZmUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9iZWFjb24vc3VwcG9ydC9zZW5kQmVhY29uLW9ucGFnZWhpZGUtd2luZG93Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL3N1cHBvcnQvc2VuZEJlYWNvbi1vbnBhZ2Vo
aWRlLXdpbmRvdy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
bmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2xlZ2FjeS1hbmltYXRpb24tZW5naW5l
L2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2xl
Z2FjeS1hbmltYXRpb24tZW5naW5lL2FuaW1hdGlvbnMvcmVzdW1lLWFmdGVyLXBhZ2UtY2FjaGUu
aHRtbAppbmRleCBkZWQzODc1NmYxZTcwMWM2MjcyNGZkZTcxYjg4YjQxMTUyMzY3ZDk3Li5iMTFj
MGVhNWQ4MTA5YjhhYTUxNGEyZGEzYzY5ZThhMDk5NGQzMmZmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9sZWdhY3ktYW5pbWF0aW9uLWVuZ2luZS9hbmltYXRpb25zL3Jlc3VtZS1hZnRlci1wYWdl
LWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbGVnYWN5LWFuaW1hdGlvbi1lbmdpbmUvYW5p
bWF0aW9ucy9yZXN1bWUtYWZ0ZXItcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6V2ViQW5pbWF0aW9uc0NTU0ludGVn
cmF0aW9uRW5hYmxlZD1mYWxzZSBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6V2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9u
RW5hYmxlZD1mYWxzZSBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxzdHlsZT4K
IEAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UgewogICAgIGZyb20gewpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UuaHRtbCBiL0xheW91
dFRlc3RzL2xvYWRlci9nby1iYWNrLWNhY2hlZC1tYWluLXJlc291cmNlLmh0bWwKaW5kZXggOTg0
ZjY0MDZhOTA2MzJjZjA4NjQxMDI1ODAzOTU3YTNjODUzYmZkYi4uMzU1NWVjYzE4ZGM2Y2FlMTk5
NWMwODVlMjljMGVhYTBjOWE5MzM0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbG9hZGVyL2dv
LWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9sb2FkZXIv
Z28tYmFjay1jYWNoZWQtbWFpbi1yZXNvdXJjZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1s
PgogPGhlYWQ+CiAgICAgPHRpdGxlPlRlc3QgcmVzb3VyY2UgbG9hZCBjYWxsYmFja3MgZ29pbmcg
YmFjayB0byBhIGNhY2hlZCBtYWluIHJlc291cmNlPC90aXRsZT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2xvYWRlci9nby1iYWNrLXRvLWRpZmZlcmVudC13aW5kb3ctc2l6ZS5odG1sIGIvTGF5
b3V0VGVzdHMvbG9hZGVyL2dvLWJhY2stdG8tZGlmZmVyZW50LXdpbmRvdy1zaXplLmh0bWwKaW5k
ZXggNTg0M2U3ZjU4YjFmODYwYWM3ZmU2ZDgwZGVmMDVjOTljOTg1OTMzMy4uMDE2MmJhYThmOWI0
ZTIwNzZmNDliOTU2ZGNmMGE4MGJjMDRjMGQ1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbG9h
ZGVyL2dvLWJhY2stdG8tZGlmZmVyZW50LXdpbmRvdy1zaXplLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbG9hZGVyL2dvLWJhY2stdG8tZGlmZmVyZW50LXdpbmRvdy1zaXplLmh0bWwKQEAgLTEsNCAr
MSw0IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0g
LS0+Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1
ZSBdIC0tPgogPGh0bWw+CiA8c2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9jcmFzaC1jbG9zaW5nLXBhZ2Utd2l0aC1tZWRpYS1hcy1wbHVnaW4tZmFsbGJhY2suaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBsdWdp
bi1mYWxsYmFjay5odG1sCmluZGV4IDgxOTU5MWVkYmU1MzAyNGZkMDI5M2I0MjQzNWRiYjJhMjhl
MTYxMjYuLmM1ZDhjNzQxMzZjMTk0Yzg1NGRiMTgwNTBhN2QyOTJhYzBmZTBmNTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL21lZGlhL2NyYXNoLWNsb3NpbmctcGFnZS13aXRoLW1lZGlhLWFzLXBs
dWdpbi1mYWxsYmFjay5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2NyYXNoLWNsb3Npbmct
cGFnZS13aXRoLW1lZGlhLWFzLXBsdWdpbi1mYWxsYmFjay5odG1sCkBAIC0xLDQgKzEsNCBAQAot
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4K
IDxzY3JpcHQ+CiB2YXIgY2hpbGRXaW5kb3c7CiA8L3NjcmlwdD4KQEAgLTEzLDcgKzEzLDcgQEAg
SWYgaXQgZG9lc24ndCBjcmFzaCwgaXQgcGFzc2VzLjxicj4KIGlmICh3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyh0cnVlKTsKICAgICB0ZXN0UnVubmVy
LnNldENhbk9wZW5XaW5kb3dzKHRydWUpOwogICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5p
bmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwogICAgIHZhciBidXR0b24gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYnV0dG9uIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNoZS5odG1sCmluZGV4IDAxMmNl
NGFjZDE4MDkzMTBjZTNkMWRiZGZkZGQyM2Y4M2ExZWFmZjMuLmM4ZGMzNmY2NjI0NzU0OTM4MmNj
MmUyZDg0NmM0MmFmMzZkNjExMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3Jlc3RvcmUtZnJvbS1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9yZXN0b3JlLWZyb20tcGFnZS1jYWNoZS5odG1sCmluZGV4IGU5NTA1MTgzMmI2MmI1NmQ1
OWE0ZDQ5NmZkOTQwOTQ4NjE4ZWMzODIuLjFhZDI1NzFhMTU3MmI4ZGU0ZjY2ZTY4NzE1OTQwZmMz
MGJmNGQ1ODUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3Jlc3RvcmUtZnJvbS1wYWdl
LWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvcmVzdG9yZS1mcm9tLXBhZ2UtY2Fj
aGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aHRtbD4KICAgICA8aGVhZD4KICAgICAgICAgPHNj
cmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9pb3MvZml4ZWQvZml4ZWQtYmFjay1mb3J3YXJkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvaW9zL2ZpeGVkL2ZpeGVkLWJhY2stZm9yd2FyZC5odG1sCmluZGV4
IGQwNjQwNDMzZDBiNmQxOTAwMTdlYWZlMDUwMWVkYWZlOGZlYWNhZGUuLjM1NjFlZWUyYjdmZWQ5
NDk3YzBlZTZhZDZjMDg1YWIwZmQ5MDUxMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9pb3MvZml4ZWQvZml4ZWQtYmFjay1mb3J3YXJkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL2lvcy9maXhlZC9maXhlZC1iYWNrLWZvcndhcmQuaHRtbApAQCAtMSw0
ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUg
XSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10
cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbHVnaW5zL2NyYXNoLXJlc3RvcmluZy1wbHVnaW4tcGFnZS1mcm9tLXBhZ2Ut
Y2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jhc2gtcmVzdG9yaW5nLXBsdWdpbi1w
YWdlLWZyb20tcGFnZS1jYWNoZS5odG1sCmluZGV4IDZmODg0ZjM1NmM4NzAwNjc2NDBmMDE0MmM4
ZTU0YmUxNWNhNGM5MzAuLjEwZGM5OTRiZmQyNmE4NTE1NzY2YjRhNmY4OTMzZGI0MGFhYjU3NTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jhc2gtcmVzdG9yaW5nLXBsdWdpbi1w
YWdlLWZyb20tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvY3Jhc2gt
cmVzdG9yaW5nLXBsdWdpbi1wYWdlLWZyb20tcGFnZS1jYWNoZS5odG1sCkBAIC0xLDEwICsxLDEw
IEBACi08IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZVBhZ2VDYWNoZT10cnVlIF0gLS0+
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGVuYWJsZUJhY2tGb3J3YXJkQ2FjaGU9dHJ1ZSBd
IC0tPgogPGhlYWQ+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5p
bnRlcm5hbHMpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZUNhY2hlU3Vw
cG9ydHNQbHVnaW5zKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRCYWNrRm9yd2Fy
ZENhY2hlU3VwcG9ydHNQbHVnaW5zKHRydWUpOwogfQogCiBmdW5jdGlvbiBwYWdlU2hvd24oKSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZy
YW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1l
Lmh0bWwKaW5kZXggY2E4NWJkY2I2Mjk3MGQ5Nzc2ZWMzMThiZDI5MDEyNTZjYjVkYmRhMy4uYjI5
OTA2Y2U1ZTAxZGMyOWFkOTZiYTQzMDUyYWJhMmJkNjkwMjU5NSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGx1Z2lucy9mcmFtZXNldC13aXRoLXBsdWdpbi1mcmFtZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL3BsdWdpbnMvZnJhbWVzZXQtd2l0aC1wbHVnaW4tZnJhbWUuaHRtbApAQCAtMSwxMSAr
MSwxMSBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBd
IC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRy
dWUgXSAtLT4KIDxodG1sPgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9
InV0Zi04Ij4KICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykg
ewogICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CiAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0
ZW5pbmcoIkZ1bGx5RW5hYmxlZCIpCi0gICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRQYWdl
Q2FjaGVTdXBwb3J0c1BsdWdpbnModHJ1ZSk7CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRCYWNrRm9yd2FyZENhY2hlU3VwcG9ydHNQbHVnaW5zKHRydWUpOwogICAgIH0KIDwvc2NyaXB0
PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1wYWdl
LWNhY2hlLXdvcmtzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL25ldHNjYXBlLXBsdWdpbi1w
YWdlLWNhY2hlLXdvcmtzLmh0bWwKaW5kZXggNGY4MjM0MTc2YzBiY2NmZmUyNTMyN2MzZmZlMzA3
YjJhMjNhYTExYi4uNzdmMmJlNGRmMzJlZWZiNzViZmZjZDgxNmU4MGY5YmY1NWQwNzA1OCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9uZXRzY2FwZS1wbHVnaW4tcGFnZS1jYWNoZS13
b3Jrcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBhZ2Ut
Y2FjaGUtd29ya3MuaHRtbApAQCAtMSwxMCArMSwxMCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxodG1sPgogPHNjcmlwdD4KIGlm
ICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucyh0cnVlKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QmFja0ZvcndhcmRDYWNoZVN1cHBvcnRzUGx1Z2lucyh0cnVl
KTsKIH0KIAogdmFyIHNhdmVkVGVzdE9iamVjdCA9IG51bGw7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJSZXF1ZXN0LXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNoZS5odG1sCmluZGV4
IDZkZTgwNjNkZjhkNWNlYTNlYmE1NzVhMGRhOGY4NDhhMjIxNDRhMmYuLmM3YzU5NGI2MzgzMmVh
YmRjN2RhZmNhYWQwMzlhODUzMmEzYTVlNzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlJlcXVlc3QtcGFnZS1jYWNoZS5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUuaHRtbCBi
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLXBhZ2UtY2FjaGUu
aHRtbAppbmRleCAyYzg3ODkxZDEzNzI5NGY3NjgwMWVmY2RiYmE4N2I4Y2VkNDJhZDljLi5iYmQ3
YzVkZWNlOTQ0MjFmNjFlYjVjNWI5YzFmOTQzYzdhM2Q5YjE3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi1wYWdlLWNhY2hlLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24tcGFnZS1jYWNo
ZS5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N3aXBlL2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0
bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9iYXNpYy1jYWNoZWQtYmFjay1zd2lwZS5odG1sCmluZGV4
IDY1NjViMDc4ZDBkNDU0ZTQ3YTMxYmY1NDgxYmRlNjkzYzAxZDhlZDQuLmQyZmJhMjM1NWQ4ZTQ3
ZTRjNGQwZDRlMWFhZTNmY2JjMmIxNjg4YTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBl
L2Jhc2ljLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvc3dpcGUvYmFz
aWMtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzdHls
ZT4KIGh0bWwgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvbWFpbi1mcmFtZS1waW5u
aW5nLXJlcXVpcmVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5p
bmctcmVxdWlyZW1lbnQuaHRtbAppbmRleCBjODFmM2U2NGRmNDNhNjBmZjJmMGMwODIzNWMwODcz
NTY2ZWZjZjc0Li5iODVhZDFiM2VmM2Q3ZmNkNWEzYjY0N2I5ZDY2NzIyMzI3Yjc2NGFhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1l
bnQuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
UGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFj
a0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aGVhZD4KIDxzdHlsZT4KIGh0bWwgewpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0YXRlLWNhY2hlZC1iYWNrLXN3aXBlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAppbmRl
eCBhMDExOWYxNjMzMWM2YjUwNDc1ZDdmZGQ2MzBlYmU4ZDI3OTA4ZTE2Li44M2VkYWI4NjkxZjdk
YjkzZTg5NTgwY2FiNmY4M2IzM2Q5NzNjY2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lw
ZS9wdXNoU3RhdGUtY2FjaGVkLWJhY2stc3dpcGUuaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8aGVh
ZD4KIDxzdHlsZT4KIGh0bWwgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3dpcGUvcHVzaFN0
YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbCBiL0xheW91dFRl
c3RzL3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNo
Lmh0bWwKaW5kZXggMDJmZDQ0ZTQxZWMxZjNhMWYxNGQwYzEwMDMzMGUxNGFlMjRhYmE4Ny4uZDM1
NmQyMTdjYTczZjM1N2M1N2QyOTFlZGQyMmMyZDA3NWQyNTAwYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3dpcGUvcHVzaFN0YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jh
c2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJh
Y2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDxoZWFkPgogPHN0
eWxlPgogaHRtbCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zd2lwZS9wdXNoc3RhdGUtd2l0
aC1tYW51YWwtc2Nyb2xscmVzdG9yYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL3N3aXBlL3B1c2hz
dGF0ZS13aXRoLW1hbnVhbC1zY3JvbGxyZXN0b3JhdGlvbi5odG1sCmluZGV4IDFmMWQ3YWUwNzcw
NGQ1OWMyZWRmZGMzNTFhZGMzYzkzZWE1MTBmMzkuLjNmMGFkZjIxMjgzYzRkMDJjZDEyMDU4YTJj
ZmUzZTYzZDU4ODgwNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N3aXBlL3B1c2hzdGF0ZS13
aXRoLW1hbnVhbC1zY3JvbGxyZXN0b3JhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3N3aXBl
L3B1c2hzdGF0ZS13aXRoLW1hbnVhbC1zY3JvbGxyZXN0b3JhdGlvbi5odG1sCkBAIC0xLDQgKzEs
NCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0t
PgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUg
XSAtLT4KIDxoZWFkPgogPHN0eWxlPgogaHRtbCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9udWxsLXBhcmVudC1iYWNrLWNyYXNoLmh0bWwgYi9MYXlv
dXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9udWxsLXBhcmVudC1iYWNrLWNyYXNoLmh0
bWwKaW5kZXggNzdjM2MwYTg2MmQwNTIxMWI2M2M1ZmUxMzI1NzBiOWI0MjBhNWI2Yy4uMjMyNTRl
NTg2NTgyODAxZDg4YThjNTAxNGE3NmJhN2VmMjlkZDI4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvbnVsbC1wYXJlbnQtYmFjay1jcmFzaC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL251bGwtcGFyZW50LWJhY2st
Y3Jhc2guaHRtbApAQCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5h
YmxlUGFnZUNhY2hlPXRydWUgXSAtLT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxl
QmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhl
YWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3RpbGVkLWRyYXdpbmct
c2Nyb2xsLXBvc2l0aW9uLXBhZ2UtY2FjaGUtcmVzdG9yYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1y
ZXN0b3JhdGlvbi5odG1sCmluZGV4IGJkZDA4NzUyNWY0NGJjNjU1Y2NjNjMwMzYwMGVmZTRhMzZk
YTgxYzQuLmFkOTBjODcxOTA4NTM1NzgxNzRkYmFhN2I4ZTBhNzY0NTE4MDhmNjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRp
b24tcGFnZS1jYWNoZS1yZXN0b3JhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRy
YXdpbmcvdGlsZWQtZHJhd2luZy1zY3JvbGwtcG9zaXRpb24tcGFnZS1jYWNoZS1yZXN0b3JhdGlv
bi5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQ
YWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNr
Rm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+CiA8aGVhZD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1w
YWdlLWNhY2hlLXNlbmQuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRh
Y2hhbm5lbC1wYWdlLWNhY2hlLXNlbmQuaHRtbAppbmRleCA1Zjg0YTIzOWQ5MWMzZGI1NzEzOGI2
Y2E3MzIzYTliNmY1ZTNkZGQ3Li5jNGJkNzRmMDhjNzczMzg5NzEzMmQ2ZDFiNzhhODAxMTA0YWFi
ZGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5u
ZWwtcGFnZS1jYWNoZS1zZW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFu
bmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUtc2VuZC5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVQYWdlQ2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBlbmFibGVCYWNrRm9yd2FyZENhY2hlPXRydWUgXSAtLT4KIDwh
RE9DVFlQRSBodG1sPgogPGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJydGMvZGF0YWNoYW5uZWwvZGF0YWNoYW5uZWwtcGFnZS1jYWNoZS5odG1sCmluZGV4IDE3
MGJiOWZkZjcxMThhMjdlNjRlY2VjOWVlOGRlYTg2ZThjOTU2YWMuLmRjZjU3MGRhZTVhNThhNDYz
N2EzOThmZDliOGE2MGM1YTc4NTYzZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnJ0Yy9k
YXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
d2VicnRjL2RhdGFjaGFubmVsL2RhdGFjaGFubmVsLXBhZ2UtY2FjaGUuaHRtbApAQCAtMSw0ICsx
LDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlUGFnZUNhY2hlPXRydWUgXSAt
LT4KKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZW5hYmxlQmFja0ZvcndhcmRDYWNoZT10cnVl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGJvZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>