<?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>237695</bug_id>
          
          <creation_ts>2022-03-09 17:25:16 -0800</creation_ts>
          <short_desc>Optimize further the passing of data across threads</short_desc>
          <delta_ts>2022-03-10 11:45:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>toyoshim</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1849928</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 17:25:16 -0800</bug_when>
    <thetext>Optimize further the passing of data across threads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849930</commentid>
    <comment_count>1</comment_count>
      <attachid>454302</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 17:27:51 -0800</bug_when>
    <thetext>Created attachment 454302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849935</commentid>
    <comment_count>2</comment_count>
      <attachid>454304</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 17:58:18 -0800</bug_when>
    <thetext>Created attachment 454304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849938</commentid>
    <comment_count>3</comment_count>
      <attachid>454307</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 18:36:16 -0800</bug_when>
    <thetext>Created attachment 454307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849945</commentid>
    <comment_count>4</comment_count>
      <attachid>454308</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-09 19:19:33 -0800</bug_when>
    <thetext>Created attachment 454308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850083</commentid>
    <comment_count>5</comment_count>
      <attachid>454360</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-10 07:29:23 -0800</bug_when>
    <thetext>Created attachment 454360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850180</commentid>
    <comment_count>6</comment_count>
      <attachid>454360</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-10 10:52:24 -0800</bug_when>
    <thetext>Comment on attachment 454360
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850197</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-10 11:44:34 -0800</bug_when>
    <thetext>Committed r291123 (248283@main): &lt;https://commits.webkit.org/248283@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454360.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850199</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-10 11:45:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/90112799&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454302</attachid>
            <date>2022-03-09 17:27:51 -0800</date>
            <delta_ts>2022-03-09 18:32:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237695-20220309172750.patch</filename>
            <type>text/plain</type>
            <size>109173</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjFhMDJjZjI3NTE2MmJjMTVkM2YwMzc5MjdkMGRmZTExODNiM2RjLi44ZjMyYTI1NjA2NWJmZGEy
ZTg0MzBlODczZmU2NDIwMGU4M2I0ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wMy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3MgdGhy
ZWFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
Njk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0
aW1pemUgZnVydGhlciB0aGUgcGFzc2luZyBvZiBkYXRhIGFjcm9zcyB0aHJlYWRzIGJ5IGxldmVy
YWdpbmcgdGhlIG9wdGltaXplZAorICAgICAgICB2ZXJzaW9uIG9mIGlzb2xhdGVkQ29weSgpIG9u
IHItdmFsdWUgcmVmZXJlbmNlcyB3aGVuZXZlciBwb3NzaWJsZS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0OjpzZW5kTWVzc2FnZVRvVGFyZ2V0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Lmg6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICog
dG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbk92ZXJy
aWRlczo6aW5pdGlhbGl6ZU92ZXJyaWRlRm9yKToKKwogMjAyMi0wMy0wOSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBTdG9w
IHVzaW5nIHRoZSBlbnYgdmFyIFdFQktJVF9JTlNQRUNUT1JfU0VSVkVSIHRvIGNvbm5lY3QgdG8g
dGhlIGluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVlM2RmOTZkOGRlOTQ5OGFhNDhlMjEyODc4M2Jh
OTVmY2U0MDk5NjYuLmU5Mjk5Mzc2ODQ0MmFjOTVjMjdkYzUyMTE1ZWU3ZmE3ZGE1YWU5NGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMzEgQEAKKzIwMjItMDMtMDkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBmdXJ0aGVyIHRoZSBwYXNzaW5nIG9m
IGRhdGEgYWNyb3NzIHRocmVhZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3Mg
dGhyZWFkcyBieSBsZXZlcmFnaW5nIHRoZSBvcHRpbWl6ZWQKKyAgICAgICAgdmVyc2lvbiBvZiBp
c29sYXRlZENvcHkoKSBvbiByLXZhbHVlIHJlZmVyZW5jZXMgd2hlbmV2ZXIgcG9zc2libGUuCisK
KyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjpxdWVyeUNhY2hlKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9Dcm9zc1RocmVhZFJlY29y
ZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6cmVjb3Jkc0RhdGFGcm9tUmVjb3Jkcyk6CisgICAg
ICAgIChXZWJDb3JlOjpyZWNvcmRzRGF0YU9yRXJyb3JGcm9tUmVjb3Jkcyk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6YmF0Y2hQdXRP
cGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGV0YWNoZWRSVENEYXRhQ2hhbm5lbDo6RGV0YWNoZWRSVENEYXRhQ2hh
bm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjpkZWNvZGUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmRldGFjaCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24p
OgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE6Omlzb2xhdGVkQ29weSk6CisgICAg
ICAgICogTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oOgorICAgICAgICAq
IE1vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFuYWdlcjo6
cGVyc2lzdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVt
QWNjZXNzR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU3RvcmFnZUNvbm5l
Y3Rpb246OmdldFBlcnNpc3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTdG9yYWdlQ29u
bmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy9zdG9y
YWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VW
ZXJzaW9uV3JhcHBlcjo6Q2hhbmdlVmVyc2lvbldyYXBwZXIpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
YW5nZVZlcnNpb25XcmFwcGVyOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmNoYW5nZVZlcnNp
b24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6OmFkZE9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxFcnJvcjo6U1FMRXJyb3IpOgorICAgICAgICAq
IE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWw6OnByb2Nlc3NGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbENsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5k
c2hha2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpzZXRVUkwp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y29ubmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpmYWlsKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aDoKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YTo6dG9FeGNlcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YTo6dG9FeGNlcHRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdl
bnQ6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiBwYWdlL0NhY2hlU3Rv
cmFnZVByb3ZpZGVyLmg6CisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlRGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZSk6
CisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VySW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9y
UHJveHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VySW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpw
b3N0TWVzc2FnZVRvRGVidWdnZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVu
dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpq
b2JSZWplY3RlZEluU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ6Omlzb2xhdGVkQ29weSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2Ny
aXB0Ojppc29sYXRlZENvcHkpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb246OnNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnM6Omlzb2xhdGVk
Q29weSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25PcHRpb25zLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckRlYnVnZ2FibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckRlYnVn
Z2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VUb1dv
cmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OnNl
bmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnBvc3RNZXNzYWdlVG9EZWJ1Z2dl
cik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0
Y2gpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OmltcG9ydFJl
Y29yZHMpOgorCiAyMDIyLTAzLTA5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFtjc3MtbGlzdHNdIGNzcy9jc3MtbGlzdHMvaW5oZXJpdC1vdmVyd3JpdGVz
Lmh0bWwgYW5kIGNzcy9jc3MtbGlzdHMvbGktY291bnRlci1pbmNyZW1lbnQtY29tcHV0ZWQtc3R5
bGUuaHRtbCBhcmUgdW5pcXVlIGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzNDczZDE0MzE4M2IyOGE5
Y2NiZDJhZjdiYTE0MTEyM2MxNWNkNDcuLjJkNzc1NWNlOTc5MTc0OTdlY2Q4OGEwNTg5YTM2MTZk
ZTYxODMwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjItMDMtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBmdXJ0aGVyIHRoZSBw
YXNzaW5nIG9mIGRhdGEgYWNyb3NzIHRocmVhZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0
YSBhY3Jvc3MgdGhyZWFkcyBieSBsZXZlcmFnaW5nIHRoZSBvcHRpbWl6ZWQKKyAgICAgICAgdmVy
c2lvbiBvZiBpc29sYXRlZENvcHkoKSBvbiByLXZhbHVlIHJlZmVyZW5jZXMgd2hlbmV2ZXIgcG9z
c2libGUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVz
c2FnZUVycm9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lz
dGVtR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b246OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJQYWdlRGVidWdnYWJsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VEZWJ1
Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNo
ZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldENoYW5uZWw6OmZhaWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpk
aWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9y
YWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9u
OjpnZXRQZXJzaXN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6
ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIyLTAzLTA5ICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgYWNjZXNzaWJpbGl0eSBsaWJy
YXJ5IHNob3VsZCBiZSBzb2Z0IGxpbmtlZCBvcHRpb25hbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVj
dGlvblRvVGFyZ2V0LmNwcAppbmRleCA3ZDA2ZmFkZWRhYTE0NWZjYWZlODYzYjIwOTE1OWFkN2Jm
Zjc3YWI1Li5mMTZmMWNlZTZiYmM0MzhjYWY2OGVlMzdkOGYxYjZkMDE1YmFmZTVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVt
b3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBS
ZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwKGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9u
LCBib29sIGF1dG9tYXRpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW1vdGVDb25u
ZWN0aW9uVG9UYXJnZXQ6OnNlbmRNZXNzYWdlVG9UYXJnZXQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQordm9pZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNlbmRNZXNzYWdlVG9UYXJnZXQoU3Ry
aW5nJiYgbWVzc2FnZSkKIHsKICAgICBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQqIHRhcmdldCA9
IG51bGxwdHI7CiAgICAgewpAQCAtODIsNyArODIsNyBAQCB2b2lkIFJlbW90ZUNvbm5lY3Rpb25U
b1RhcmdldDo6c2VuZE1lc3NhZ2VUb1RhcmdldChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAg
ICAgIHRhcmdldCA9IG1fdGFyZ2V0OwogICAgIH0KIAotICAgIHRhcmdldC0+ZGlzcGF0Y2hNZXNz
YWdlRnJvbVJlbW90ZShtZXNzYWdlKTsKKyAgICB0YXJnZXQtPmRpc3BhdGNoTWVzc2FnZUZyb21S
ZW1vdGUoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIHZvaWQgUmVtb3RlQ29ubmVjdGlvblRvVGFy
Z2V0OjpjbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCmluZGV4IGRmYjc5
NjI4OTA5YzEwYzQ3YWM2YTU1N2ZhZDc1M2NiMDI0ZWIwYjIuLjg0MzkxNzc1ZDY0ZGIxYTI0NWI5
Yzk5NWU2ZjEzODk2MzIwNWRjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5o
CkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lk
IHNlbmRNZXNzYWdlVG9UYXJnZXQoTlNTdHJpbmcgKik7CiAjZWxzZQotICAgIHZvaWQgc2VuZE1l
c3NhZ2VUb1RhcmdldChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlVG9UYXJn
ZXQoU3RyaW5nJiYpOwogI2VuZGlmCiAgICAgdm9pZCBjbG9zZSgpOwogICAgIHZvaWQgdGFyZ2V0
Q2xvc2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCmluZGV4IDBlN2I1YjI5
NDdiMGUwOGVkNjkzNzYyOTZjMWRiZGU4MGZlNzIwMmUuLmM5ZWY4ODU1Y2FhY2IxMjI3ODk0YWUx
YWY3ZjZkYzIxOGY4NmE5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCkBA
IC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZW1vdGVDb250cm9sQWxsb3dlZCgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJv
bVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKSA9IDA7CiAKICNpZiBVU0UoQ0YpCiAgICAgLy8gVGhl
IGRpc3BhdGNoIGJsb2NrIHdpbGwgYmUgc2NoZWR1bGVkIG9uIGEgZ2xvYmFsIHJ1biBsb29wIGlm
IG51bGwgaXMgcmV0dXJuZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDQ1YmQyZjliMGQxMjlk
ZjhiN2E2NTEwYjkwODYxM2Y1ZDY3ZjA1NmQuLmU3ZDNjZTk0MjFlNWRjMTJlMDliYWYwMmJlNTUw
NDJhZmFkNjA3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yMTMwLDcgKzIxMzAsNyBAQCBK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIAogICAgIFRocmVhZDo6Y3JlYXRlKAogICAgICAg
ICAiSlNDIEFnZW50IiwKLSAgICAgICAgW3NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmlzb2xhdGVk
Q29weSgpLCB3b3JrZXJQYXRoID0gd29ya2VyUGF0aC5pc29sYXRlZENvcHkoKSwgJmRpZFN0YXJ0
TG9jaywgJmRpZFN0YXJ0Q29uZGl0aW9uLCAmZGlkU3RhcnRdICgpIHsKKyAgICAgICAgW3NvdXJj
ZUNvZGUgPSBXVEZNb3ZlKHNvdXJjZUNvZGUpLmlzb2xhdGVkQ29weSgpLCB3b3JrZXJQYXRoID0g
V1RGTW92ZSh3b3JrZXJQYXRoKS5pc29sYXRlZENvcHkoKSwgJmRpZFN0YXJ0TG9jaywgJmRpZFN0
YXJ0Q29uZGl0aW9uLCAmZGlkU3RhcnRdICgpIHsKICAgICAgICAgICAgIENvbW1hbmRMaW5lIGNv
bW1hbmRMaW5lKENvbW1hbmRMaW5lOjpDb21tYW5kTGluZUZvcldvcmtlcnMpOwogICAgICAgICAg
ICAgY29tbWFuZExpbmUubV9pbnRlcmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgICAgcnVuSlND
KApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3REZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RGVidWdnYWJsZS5jcHAKaW5kZXggMzdkM2MyODk2MTEyMjlkYWFjOWU5ZjJhODdlNmM5
YTg5MzEwMjIyMy4uZGU1ZTM3ZDBmYTM0MDJlNzc2ZjFmZmY4MmNkMWU1NDY4ZTY2ZmYxYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1
Z2dhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUuY3BwCkBAIC02NCwxMSArNjQsMTEgQEAgdm9pZCBKU0dsb2JhbE9iamVj
dERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5uZWwp
CiAgICAgbV9nbG9iYWxPYmplY3QuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9u
dGVuZChmcm9udGVuZENoYW5uZWwpOwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJs
ZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lk
IEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJp
bmcmJiBtZXNzYWdlKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJm1fZ2xvYmFsT2JqZWN0
LnZtKCkpOwogCi0gICAgbV9nbG9iYWxPYmplY3QuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc3Bh
dGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKKyAgICBtX2dsb2JhbE9iamVjdC5pbnNw
ZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKFdURk1vdmUobWVz
c2FnZSkpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6cGF1c2VXYWl0aW5n
Rm9yQXV0b21hdGljSW5zcGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCmluZGV4IDk1NTA4ZDRmZjFj
MzA1MDI4NGY5YWIyMjU1YjhjNjI2ZWQ4ZGIwMGQuLjc4YzQ1MGM1YjVmZDM2ZWFjNTQ3MDcyNGRk
NWNjNjY0ZmY1NjQzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wg
aXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZh
bHNlKSBmaW5hbDsKICAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5u
ZWwmKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUo
U3RyaW5nJiYgbWVzc2FnZSkgZmluYWw7CiAKICAgICBib29sIGF1dG9tYXRpY0luc3BlY3Rpb25B
bGxvd2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgcGF1c2VXYWl0
aW5nRm9yQXV0b21hdGljSW5zcGVjdGlvbigpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKaW5kZXggMzBmNWU3NmM5MTRlNjQ4
ODFlNDE4ZTZlMzkzYjJiOTI1NDc3MWMzZi4uN2EzYjM3OTI0YmU1NjA1NDdmYzJkZmZlMzMyZDNl
NjZiZjhhOTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0
aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rp
b25PdmVycmlkZXMuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgYm9vbCBGdW5jdGlvbk92ZXJyaWRl
czo6aW5pdGlhbGl6ZU92ZXJyaWRlRm9yKGNvbnN0IFNvdXJjZUNvZGUmIG9yaWdDb2RlLCBGdW5j
dGkKICAgICBTdHJpbmcgbmV3Qm9keTsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBv
dmVycmlkZXMubV9sb2NrIH07Ci0gICAgICAgIGF1dG8gaXQgPSBvdmVycmlkZXMubV9lbnRyaWVz
LmZpbmQoc291cmNlQm9keVN0cmluZy5pc29sYXRlZENvcHkoKSk7CisgICAgICAgIGF1dG8gaXQg
PSBvdmVycmlkZXMubV9lbnRyaWVzLmZpbmQoV1RGTW92ZShzb3VyY2VCb2R5U3RyaW5nKS5pc29s
YXRlZENvcHkoKSk7CiAgICAgICAgIGlmIChpdCA9PSBvdmVycmlkZXMubV9lbnRyaWVzLmVuZCgp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBuZXdCb2R5ID0gaXQtPnZhbHVl
Lmlzb2xhdGVkQ29weSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA3N2RhZDQ4NWNjMGM1Y2Y3NDVmYzJiYjFj
MDAxYWUxYjU5YzE5MWM2Li4zNGU3MDgyMDE4OTc3YWU3OTcyMDM1ZTAwYjNkNzA0ODBiMWUyM2Ew
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIERPTUNhY2hlRW5naW5lOjpDYWNoZUlk
ZW50aWZpZXJDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJldHJpZXZlQ2FjaGVz
KGNvbnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIERPTUNhY2hlRW5n
aW5lOjpDYWNoZUluZm9zQ2FsbGJhY2smJikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJldHJp
ZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJldHJpZXZlUmVjb3Jk
c09wdGlvbnMmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgUmV0
cmlldmVSZWNvcmRzT3B0aW9ucyYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3QgY2Fj
aGVJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9ucyYm
LCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
VmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRJ
ZGVudGlmaWVyc0NhbGxiYWNrJiYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L0RPTUNhY2hlLmNwcAppbmRleCAyZDQ2ZDFjZGJjNzE3ZjNjOTI5OWVmYTg2M2E1NDkyNjM4M2Fm
NWRmLi4wNjIyZDQ1ZjU1ZWU4NDgzNTE4NzdhNTM4Y2NmYTk4NTBjYzk1NjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtNDYwLDcgKzQ2MCw3IEBAIHZv
aWQgRE9NQ2FjaGU6OmtleXMoc3RkOjpvcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBDYWNo
ZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvCiB2b2lkIERPTUNhY2hlOjpxdWVyeUNhY2hlKFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zLCBTaG91
bGRSZXRyaWV2ZVJlc3BvbnNlcyBzaG91bGRSZXRyaWV2ZVJlc3BvbnNlcywgUmVjb3Jkc0NhbGxi
YWNrJiYgY2FsbGJhY2spCiB7CiAgICAgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyByZXRyaWV2ZU9w
dGlvbnMgeyBXVEZNb3ZlKHJlcXVlc3QpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNyb3Nz
T3JpZ2luRW1iZWRkZXJQb2xpY3koKSwgKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJp
dHlPcmlnaW4oKSwgb3B0aW9ucy5pZ25vcmVTZWFyY2gsIG9wdGlvbnMuaWdub3JlTWV0aG9kLCBv
cHRpb25zLmlnbm9yZVZhcnksIHNob3VsZFJldHJpZXZlUmVzcG9uc2VzID09IFNob3VsZFJldHJp
ZXZlUmVzcG9uc2VzOjpZZXMgfTsKLSAgICBtX2Nvbm5lY3Rpb24tPnJldHJpZXZlUmVjb3Jkcyht
X2lkZW50aWZpZXIsIHJldHJpZXZlT3B0aW9ucywgW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9IG1h
a2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShh
dXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX2Nvbm5lY3Rpb24tPnJldHJpZXZlUmVjb3Jk
cyhtX2lkZW50aWZpZXIsIFdURk1vdmUocmV0cmlldmVPcHRpb25zKSwgW3RoaXMsIHBlbmRpbmdB
Y3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1faXNTdG9w
cGVkKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhET01DYWNoZUVuZ2luZTo6Y29udmVydFRvRXhj
ZXB0aW9uQW5kTG9nKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgRE9NQ2FjaGVFbmdpbmU6OkVy
cm9yOjpTdG9wcGVkKSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmNwcAppbmRleCBiZDIwNGE5Yzc5ZjQ1MTRjZjkwMDNlY2UzNjZkYTM0Y2YxY2VjNWM1Li40NmZk
ZWZmNGJjZTQ3NWFiZjIxNzMyMTViYzIwYmVlYTI3ODc3NDU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5jcHAKQEAgLTU2LDE1ICs1NiwxNSBAQCBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZWNvcmREYXRh
IHsKICAgICB1aW50NjRfdCByZXNwb25zZUJvZHlTaXplOwogfTsKIAotc3RhdGljIENyb3NzVGhy
ZWFkUmVjb3JkRGF0YSB0b0Nyb3NzVGhyZWFkUmVjb3JkRGF0YShjb25zdCBSZWNvcmQmIHJlY29y
ZCkKK3N0YXRpYyBDcm9zc1RocmVhZFJlY29yZERhdGEgdG9Dcm9zc1RocmVhZFJlY29yZERhdGEo
UmVjb3JkJiYgcmVjb3JkKQogewogICAgIHJldHVybiBDcm9zc1RocmVhZFJlY29yZERhdGEgewog
ICAgICAgICByZWNvcmQuaWRlbnRpZmllciwKICAgICAgICAgcmVjb3JkLnVwZGF0ZVJlc3BvbnNl
Q291bnRlciwKICAgICAgICAgcmVjb3JkLnJlcXVlc3RIZWFkZXJzR3VhcmQsCi0gICAgICAgIHJl
Y29yZC5yZXF1ZXN0Lmlzb2xhdGVkQ29weSgpLAotICAgICAgICByZWNvcmQub3B0aW9ucy5pc29s
YXRlZENvcHkoKSwKLSAgICAgICAgcmVjb3JkLnJlZmVycmVyLmlzb2xhdGVkQ29weSgpLAorICAg
ICAgICBXVEZNb3ZlKHJlY29yZC5yZXF1ZXN0KS5pc29sYXRlZENvcHkoKSwKKyAgICAgICAgV1RG
TW92ZShyZWNvcmQub3B0aW9ucykuaXNvbGF0ZWRDb3B5KCksCisgICAgICAgIFdURk1vdmUocmVj
b3JkLnJlZmVycmVyKS5pc29sYXRlZENvcHkoKSwKICAgICAgICAgcmVjb3JkLnJlc3BvbnNlSGVh
ZGVyc0d1YXJkLAogICAgICAgICByZWNvcmQucmVzcG9uc2UuY3Jvc3NUaHJlYWREYXRhKCksCiAg
ICAgICAgIGlzb2xhdGVkUmVzcG9uc2VCb2R5KHJlY29yZC5yZXNwb25zZUJvZHkpLApAQCAtODgs
MTcgKzg4LDE3IEBAIHN0YXRpYyBSZWNvcmQgZnJvbUNyb3NzVGhyZWFkUmVjb3JkRGF0YShDcm9z
c1RocmVhZFJlY29yZERhdGEmJiBkYXRhKQogICAgIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUgVmVj
dG9yPENyb3NzVGhyZWFkUmVjb3JkRGF0YT4gcmVjb3Jkc0RhdGFGcm9tUmVjb3Jkcyhjb25zdCBW
ZWN0b3I8UmVjb3JkPiYgcmVjb3JkcykKK3N0YXRpYyBpbmxpbmUgVmVjdG9yPENyb3NzVGhyZWFk
UmVjb3JkRGF0YT4gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhWZWN0b3I8UmVjb3JkPiYmIHJlY29y
ZHMpCiB7Ci0gICAgcmV0dXJuIFdURjo6bWFwKHJlY29yZHMsIHRvQ3Jvc3NUaHJlYWRSZWNvcmRE
YXRhKTsKKyAgICByZXR1cm4gV1RGOjptYXAoV1RGTW92ZShyZWNvcmRzKSwgdG9Dcm9zc1RocmVh
ZFJlY29yZERhdGEpOwogfQogCi1zdGF0aWMgaW5saW5lIEV4cGVjdGVkPFZlY3RvcjxDcm9zc1Ro
cmVhZFJlY29yZERhdGE+LCBFcnJvcj4gcmVjb3Jkc0RhdGFPckVycm9yRnJvbVJlY29yZHMoY29u
c3QgUmVjb3Jkc09yRXJyb3ImIHJlc3VsdCkKK3N0YXRpYyBpbmxpbmUgRXhwZWN0ZWQ8VmVjdG9y
PENyb3NzVGhyZWFkUmVjb3JkRGF0YT4sIEVycm9yPiByZWNvcmRzRGF0YU9yRXJyb3JGcm9tUmVj
b3JkcyhSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkKIHsKICAgICBpZiAoIXJlc3VsdC5oYXNfdmFs
dWUoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJlc3VsdC5lcnJvcigpKTsKKyAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFdURk1vdmUocmVzdWx0KS5lcnJvcigpKTsKIAot
ICAgIHJldHVybiByZWNvcmRzRGF0YUZyb21SZWNvcmRzKHJlc3VsdC52YWx1ZSgpKTsKKyAgICBy
ZXR1cm4gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhXVEZNb3ZlKHJlc3VsdCkudmFsdWUoKSk7CiB9
CiAKIHN0YXRpYyBpbmxpbmUgVmVjdG9yPFJlY29yZD4gcmVjb3Jkc0Zyb21SZWNvcmRzRGF0YShW
ZWN0b3I8Q3Jvc3NUaHJlYWRSZWNvcmREYXRhPiYmIHJlY29yZHNEYXRhKQpAQCAtMTk1LDE0ICsx
OTUsMTQgQEAgdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZUNhY2hl
c0NvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnQKICAgICAgICAgY2FsbGJhY2soV1RGTW92
ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRy
aWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXRyaWV2ZVJlY29y
ZHNPcHRpb25zJiBvcHRpb25zLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZHNDYWxs
YmFjayYmIGNhbGxiYWNrKQogewogICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0gKytt
X2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKICAgICBtX3JldHJpZXZlUmVjb3Jkc1BlbmRpbmdSZXF1
ZXN0cy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAgIGNh
bGxPbk1haW5UaHJlYWQoW3dvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkgfSwg
bWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRl
bnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENvcHko
KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZlUmVj
b3JkcyhjYWNoZUlkZW50aWZpZXIsIG9wdGlvbnMsIFt3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdv
cmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkg
bXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zv
ck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRzKHJlc3VsdCksIHJl
cXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5U
aHJlYWQoW3dvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkgfSwgbWFpblRocmVh
ZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwg
Y2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKS5pc29sYXRlZENvcHko
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZlUmVj
b3JkcyhjYWNoZUlkZW50aWZpZXIsIFdURk1vdmUob3B0aW9ucyksIFt3b3JrZXJUaHJlYWQgPSBX
VEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYm
IHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5w
b3N0VGFza0Zvck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRzKFdU
Rk1vdmUocmVzdWx0KSksIHJlcXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUg
ewogICAgICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuY2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbigpLnJldHJpZXZlUmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0SWRl
bnRpZmllciwgcmVjb3Jkc09yRXJyb3JGcm9tUmVjb3Jkc0RhdGEoV1RGTW92ZShyZXN1bHQpKSk7
CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAg
fSk7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
OjpiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFYKICAgICB1aW50
NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CiAgICAg
bV9iYXRjaERlbGV0ZUFuZFB1dFBlbmRpbmdSZXF1ZXN0cy5hZGQocmVxdWVzdElkZW50aWZpZXIs
IFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dvcmtlclRocmVh
ZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21h
aW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCBy
ZWNvcmRzRGF0YSA9IHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVjb3JkcyldKCkgbXV0YWJsZSB7
CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS50aHJl
YWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIHJl
cXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlY29yZHNEYXRhID0gcmVjb3Jkc0Rh
dGFGcm9tUmVjb3JkcyhXVEZNb3ZlKHJlY29yZHMpKV0oKSBtdXRhYmxlIHsKICAgICAgICAgbWFp
blRocmVhZENvbm5lY3Rpb24tPmJhdGNoUHV0T3BlcmF0aW9uKGNhY2hlSWRlbnRpZmllciwgcmVj
b3Jkc0Zyb21SZWNvcmRzRGF0YShXVEZNb3ZlKHJlY29yZHNEYXRhKSksIFt3b3JrZXJUaHJlYWQg
PSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUmVjb3JkSWRlbnRp
ZmllcnNPckVycm9yJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIHdvcmtlclRocmVh
ZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9
IFdURk1vdmUocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAg
ICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24oKS5wdXRSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3Vs
dCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA3MTRkMjk0NDE3YzRkNzE5M2FhZjZmOWEy
MTYyY2I2Nzk1YmY4ZTY5Li4xNWM2Zjk0N2YyNTNiYTVhYmNmOWM0NzM5OWRiYWU2ZjRmM2QyOTAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgRE9NQ2FjaGVFbmdpbmU6OkNh
Y2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmV0cmlldmVDYWNoZXMo
Y29uc3QgQ2xpZW50T3JpZ2luJiwgdWludDY0X3QgdXBkYXRlQ291bnRlciwgRE9NQ2FjaGVFbmdp
bmU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKSBmaW5hbDsKIAotICAgIHZvaWQgcmV0cmlldmVSZWNv
cmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmV0cmlldmVSZWNvcmRzT3B0aW9u
cyYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBy
ZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBSZXRyaWV2ZVJlY29yZHNP
cHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CiAgICAg
dm9pZCBiYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpS
ZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYmF0Y2hQdXRPcGVy
YXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxl
U3lzdGVtLmNwcAppbmRleCBiNzAwZDg0NDRiMjBlYmQ3MGU5ZTUzNDE0ZTE3NjU5YjFmYTQ1ZWI0
Li45ZjQ4MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0y
NTcsNyArMjU3LDcgQEAgdm9pZCBET01GaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1EaXIKIAogICAgIG1fd29ya1F1ZXVl
LT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHQgPSBSZWYg
eyBjb250ZXh0IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
ciksIGZ1bGxQYXRoID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUoZnVsbFBhdGgpKSwgZGlyZWN0
b3J5VmlydHVhbFBhdGggPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShkaXJlY3RvcnlWaXJ0dWFs
UGF0aCkpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIGxpc3RlZENoaWxkcmVuID0gbGlzdERp
cmVjdG9yeVdpdGhNZXRhZGF0YShmdWxsUGF0aCk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0ID0gV1RGTW92
ZShjb250ZXh0KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgbGlzdGVkQ2hpbGRyZW4gPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShsaXN0ZWRDaGlsZHJl
bikpLCBkaXJlY3RvcnlWaXJ0dWFsUGF0aCA9IGRpcmVjdG9yeVZpcnR1YWxQYXRoLmlzb2xhdGVk
Q29weSgpXSgpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29udGV4dCA9IFdURk1vdmUoY29udGV4dCks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGxpc3RlZENo
aWxkcmVuID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUobGlzdGVkQ2hpbGRyZW4pKSwgZGlyZWN0
b3J5VmlydHVhbFBhdGggPSBXVEZNb3ZlKGRpcmVjdG9yeVZpcnR1YWxQYXRoKS5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRvRmlsZVN5
c3RlbUVudHJpZXMoY29udGV4dCwgcHJvdGVjdGVkVGhpcywgV1RGTW92ZShsaXN0ZWRDaGlsZHJl
biksIGRpcmVjdG9yeVZpcnR1YWxQYXRoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9EZXRhY2hlZFJUQ0RhdGFD
aGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRD
RGF0YUNoYW5uZWwuaAppbmRleCAwZjM2Yzc4MzdmMTViYjIwMDVkMjVmZTZiYjQyMzc5OTgwZjE3
MmZlLi4xNThiNTgzMzNiNjc0ZmU0Yzc5ZDk0MjE2OTI1OGI4NWZjOTgwNjk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRDRGF0YUNoYW5u
ZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRD
RGF0YUNoYW5uZWwuaApAQCAtMzgsMTAgKzM4LDEwIEBAIHN0cnVjdCBEZXRhY2hlZFJUQ0RhdGFD
aGFubmVsIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXRhY2hlZFJUQ0RhdGFDaGFubmVs
KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBEZXRhY2hlZFJU
Q0RhdGFDaGFubmVsKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGxhYmVsLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmIG9wdGlvbnMsIFJUQ0RhdGFD
aGFubmVsU3RhdGUgc3RhdGUpCisgICAgRGV0YWNoZWRSVENEYXRhQ2hhbm5lbChSVENEYXRhQ2hh
bm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFubmVs
SW5pdCYmIG9wdGlvbnMsIFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCiAgICAgICAgIDogaWRl
bnRpZmllcihpZGVudGlmaWVyKQotICAgICAgICAsIGxhYmVsKGxhYmVsLmlzb2xhdGVkQ29weSgp
KQotICAgICAgICAsIG9wdGlvbnMob3B0aW9ucy5pc29sYXRlZENvcHkoKSkKKyAgICAgICAgLCBs
YWJlbChXVEZNb3ZlKGxhYmVsKS5pc29sYXRlZENvcHkoKSkKKyAgICAgICAgLCBvcHRpb25zKFdU
Rk1vdmUob3B0aW9ucykuaXNvbGF0ZWRDb3B5KCkpCiAgICAgICAgICwgc3RhdGUoc3RhdGUpCiAg
ICAgewogICAgIH0KQEAgLTgzLDcgKzgzLDcgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rk
Ojp1bmlxdWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+IERldGFjaGVkUlRDRGF0YUMKICAg
ICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1ha2VVbmlx
dWU8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4oKmlkZW50aWZpZXIsIFdURk1vdmUobGFiZWwpLCAq
b3B0aW9ucywgKnN0YXRlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxEZXRhY2hlZFJUQ0RhdGFD
aGFubmVsPigqaWRlbnRpZmllciwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucykudmFs
dWUoKSwgKnN0YXRlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAppbmRl
eCA4ZjgzMzczZGJjNzRiNTJjNDU1NTMwNmE1MDU2ZDJmZGUwZWFhZTc1Li4wYjEwNjI2ZTMzYmE1
OTRhYTM4ZWIzYWQxZDY5NTZhNWU1NTE1MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApAQCAtMzAzLDcgKzMwMyw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPiBSVENEYXRhQ2hhbm5l
bDo6ZGV0YWNoKCkKICAgICBMb2NrZXIgbG9ja2VyIHsgc19ydGNEYXRhQ2hhbm5lbExvY2FsTWFw
TG9jayB9OwogICAgIHJ0Y0RhdGFDaGFubmVsTG9jYWxNYXAoKS5hZGQoaWRlbnRpZmllcigpLmNo
YW5uZWxJZGVudGlmaWVyLCBXVEZNb3ZlKG1faGFuZGxlcikpOwogCi0gICAgcmV0dXJuIG1ha2VV
bmlxdWU8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4oaWRlbnRpZmllcigpLCBsYWJlbCgpLmlzb2xh
dGVkQ29weSgpLCBvcHRpb25zKCksIHN0YXRlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxEZXRh
Y2hlZFJUQ0RhdGFDaGFubmVsPihpZGVudGlmaWVyKCksIFN0cmluZyB7IGxhYmVsKCkgfSwgUlRD
RGF0YUNoYW5uZWxJbml0IHsgb3B0aW9ucygpIH0sIHN0YXRlKTsKIH0KIAogdm9pZCBSVENEYXRh
Q2hhbm5lbDo6cmVtb3ZlRnJvbURhdGFDaGFubmVsTG9jYWxNYXBJZk5lZWRlZCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKaW5k
ZXggNjk0ZmFmNDA4ZTZmNTJjNGI0NDg0M2NkNGFkYWQ3NGZmZDU1Zjg0Zi4uZGE2MTA1MWJhOTZk
OGQwNWQ0NmQ4MWNkZmZkZDZjMGI5OWVmNGQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaApAQCAtNjUsNyArNjUsNyBAQCBw
dWJsaWM6CiAgICAgUlRDUHJpb3JpdHlUeXBlIHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4gbV9v
cHRpb25zLnByaW9yaXR5OyB9OwogICAgIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYgb3B0aW9u
cygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQogCi0gICAgU3RyaW5nIGxhYmVsKCkgY29u
c3QgeyByZXR1cm4gbV9sYWJlbDsgfQorICAgIGNvbnN0IFN0cmluZyYgbGFiZWwoKSBjb25zdCB7
IHJldHVybiBtX2xhYmVsOyB9CiAgICAgUlRDRGF0YUNoYW5uZWxTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3Qge3JldHVybiBtX3JlYWR5U3RhdGU7IH0KICAgICBzaXplX3QgYnVmZmVyZWRBbW91bnQo
KSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcmVkQW1vdW50OyB9CiAgICAgc2l6ZV90IGJ1ZmZlcmVk
QW1vdW50TG93VGhyZXNob2xkKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXJlZEFtb3VudExvd1Ro
cmVzaG9sZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcAppbmRleCA1NmMzMjQzMjlhZDEzZjNmNjE4YWM3MTQ3ZTZjMTEx
MmE4ZDZkMGQyLi4yNDIwOGM2YzQ0YmU4NGY3ODJiZDQ3YzAwZWU1MTkzYTkwZDIwMDg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmNwcApAQCAtNTIsMjEgKzUyLDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKE5vdGlmaWNhdGlvbik7CiAKLVJlZjxOb3RpZmljYXRpb24+
IE5vdGlmaWNhdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMpCitSZWY8Tm90aWZpY2F0
aW9uPiBOb3RpZmljYXRpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBTdHJpbmcmJiB0aXRsZSwgT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBub3RpZmlj
YXRpb24gPSBhZG9wdFJlZigqbmV3IE5vdGlmaWNhdGlvbihjb250ZXh0LCB0aXRsZSwgb3B0aW9u
cykpOworICAgIGF1dG8gbm90aWZpY2F0aW9uID0gYWRvcHRSZWYoKm5ldyBOb3RpZmljYXRpb24o
Y29udGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0aW9ucykpKTsKICAgICBub3RpZmlj
YXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIG5vdGlmaWNhdGlvbi0+c2hvd1Nvb24oKTsK
ICAgICByZXR1cm4gbm90aWZpY2F0aW9uOwogfQogCi1Ob3RpZmljYXRpb246Ok5vdGlmaWNhdGlv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRpdGxlLCBj
b25zdCBPcHRpb25zJiBvcHRpb25zKQorTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgdGl0bGUsIE9wdGlvbnMmJiBvcHRp
b25zKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQotICAgICwgbV90aXRsZSh0aXRs
ZS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fdGl0bGUoV1RGTW92ZSh0aXRsZSkuaXNvbGF0ZWRD
b3B5KCkpCiAgICAgLCBtX2RpcmVjdGlvbihvcHRpb25zLmRpcikKLSAgICAsIG1fbGFuZyhvcHRp
b25zLmxhbmcuaXNvbGF0ZWRDb3B5KCkpCi0gICAgLCBtX2JvZHkob3B0aW9ucy5ib2R5Lmlzb2xh
dGVkQ29weSgpKQotICAgICwgbV90YWcob3B0aW9ucy50YWcuaXNvbGF0ZWRDb3B5KCkpCisgICAg
LCBtX2xhbmcoV1RGTW92ZShvcHRpb25zLmxhbmcpLmlzb2xhdGVkQ29weSgpKQorICAgICwgbV9i
b2R5KFdURk1vdmUob3B0aW9ucy5ib2R5KS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fdGFnKFdU
Rk1vdmUob3B0aW9ucy50YWcpLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9zdGF0ZShJZGxlKQog
ICAgICwgbV9jb250ZXh0SWRlbnRpZmllcihjb250ZXh0LmlkZW50aWZpZXIoKSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaApp
bmRleCAwMmEzN2JmYzc2YzJlZmFjNzU0OTRkNzZiYjUzZjI3ODFkMjJmYzI2Li40YWE5YjM0MWZj
MWM0MTNmNzAzNjUyOTk2ZmE2NzAzYjVhMDAyYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCkBAIC02NCw3ICs2NCw3IEBA
IHB1YmxpYzoKICAgICAgICAgU3RyaW5nIHRhZzsKICAgICAgICAgU3RyaW5nIGljb247CiAgICAg
fTsKLSAgICBzdGF0aWMgUmVmPE5vdGlmaWNhdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBPcHRpb25zJik7CisgICAgc3RhdGlj
IFJlZjxOb3RpZmljYXRpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5n
JiYgdGl0bGUsIE9wdGlvbnMmJik7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+
Tm90aWZpY2F0aW9uKCk7CiAKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ6OmRlcmVmOwogCiBwcml2YXRlOgotICAgIE5vdGlmaWNhdGlv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgT3B0
aW9ucyYpOworICAgIE5vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5n
JiYgdGl0bGUsIE9wdGlvbnMmJik7CiAgICAgTm90aWZpY2F0aW9uKGNvbnN0IE5vdGlmaWNhdGlv
biYpOwogCiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3Bw
CmluZGV4IDIzZGIzMjcwYWI3ODdlNTMyMDU2NGFlZGNkYmVkMDFjNTc5MjQ0MTQuLjdjMjFlOWNj
NGFjNDA5MzQ0OTY2NzQzOWFlYTViMWM3MjViNjQ5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3BwCkBAIC0z
MCwxNyArMzAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QdXNoU3Vic2NyaXB0aW9u
RGF0YSBQdXNoU3Vic2NyaXB0aW9uRGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK1B1c2hTdWJz
Y3JpcHRpb25EYXRhIFB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENvcHkoKSBjb25zdCAm
CiB7Ci0gICAgUHVzaFN1YnNjcmlwdGlvbkRhdGEgcmVzdWx0OwotICAgIHJlc3VsdC5pZGVudGlm
aWVyID0gaWRlbnRpZmllcjsKLSAgICByZXN1bHQuZW5kcG9pbnQgPSBlbmRwb2ludC5pc29sYXRl
ZENvcHkoKTsKLSAgICByZXN1bHQuZXhwaXJhdGlvblRpbWUgPSBleHBpcmF0aW9uVGltZTsKLSAg
ICByZXN1bHQuc2VydmVyVkFQSURQdWJsaWNLZXkgPSBzZXJ2ZXJWQVBJRFB1YmxpY0tleTsKLSAg
ICByZXN1bHQuY2xpZW50RUNESFB1YmxpY0tleSA9IGNsaWVudEVDREhQdWJsaWNLZXk7Ci0gICAg
cmVzdWx0LnNoYXJlZEF1dGhlbnRpY2F0aW9uU2VjcmV0ID0gc2hhcmVkQXV0aGVudGljYXRpb25T
ZWNyZXQ7CisgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgZW5kcG9pbnQuaXNvbGF0ZWRDb3B5KCks
IGV4cGlyYXRpb25UaW1lLCBzZXJ2ZXJWQVBJRFB1YmxpY0tleSwgY2xpZW50RUNESFB1YmxpY0tl
eSwgc2hhcmVkQXV0aGVudGljYXRpb25TZWNyZXQgfTsKK30KIAotICAgIHJldHVybiByZXN1bHQ7
CitQdXNoU3Vic2NyaXB0aW9uRGF0YSBQdXNoU3Vic2NyaXB0aW9uRGF0YTo6aXNvbGF0ZWRDb3B5
KCkgJiYKK3sKKyAgICByZXR1cm4geyBpZGVudGlmaWVyLCBXVEZNb3ZlKGVuZHBvaW50KS5pc29s
YXRlZENvcHkoKSwgZXhwaXJhdGlvblRpbWUsIFdURk1vdmUoc2VydmVyVkFQSURQdWJsaWNLZXkp
LCBXVEZNb3ZlKGNsaWVudEVDREhQdWJsaWNLZXkpLCBXVEZNb3ZlKHNoYXJlZEF1dGhlbnRpY2F0
aW9uU2VjcmV0KSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmgKaW5k
ZXggNjM1ZjlmYzgxZTljNjllNzY1ZWFiZDBlMWFlMjExYWUzYmRhNWFkNC4uYmMyMTU4N2JlMTlh
MDRiNzNmNDJhODQ0ZjU5M2Q4NDg2YjFjODZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuaApAQCAtNDIsNyArNDIs
OCBAQCBzdHJ1Y3QgUHVzaFN1YnNjcmlwdGlvbkRhdGEgewogICAgIFZlY3Rvcjx1aW50OF90PiBj
bGllbnRFQ0RIUHVibGljS2V5OwogICAgIFZlY3Rvcjx1aW50OF90PiBzaGFyZWRBdXRoZW50aWNh
dGlvblNlY3JldDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hTdWJzY3JpcHRpb25EYXRhIGlz
b2xhdGVkQ29weSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hTdWJzY3JpcHRpb25E
YXRhIGlzb2xhdGVkQ29weSgpIGNvbnN0ICY7CisgICAgV0VCQ09SRV9FWFBPUlQgUHVzaFN1YnNj
cmlwdGlvbkRhdGEgaXNvbGF0ZWRDb3B5KCkgJiY7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbkRhdGE+IGRlY29kZShE
ZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvRHVt
bXlTdG9yYWdlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1t
eVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IGRhNDU3YTQ2YjEyM2MzNTg0M2ZmOTRhNmE4MmNmYzI3
NDg4MWYxYjMuLjBjZmZkMjdiZWYwYjljMGE0MGY3ZmE4NDQ5M2Y0YzE5MDAxMjMwNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92aWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92
aWRlci5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBEdW1teVN0b3JhZ2VDb25uZWN0aW9uKCkpOwogICAgICAgICB9CiAKLSAgICAg
ICAgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rp
b246OlBlcnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB2
b2lkIGdldFBlcnNpc3RlZChDbGllbnRPcmlnaW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNp
c3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgICAgICB7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIH0KQEAgLTU0LDcgKzU0LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAgICAg
ICAgfQogCi0gICAgICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBDbGllbnRP
cmlnaW4mLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0
aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KENs
aWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBj
b21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSk7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgK
aW5kZXggYmNlYzIyOTQ3NGZlY2I4M2QzOTNkY2JlZWNlOTliY2RmNWZmZWY3Ni4uZDAxYjg0YmVl
YmI1YTE3ZGI1ZmI3OTJlYzVjOTQ0ZDc3ZmM3YWU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTM5LDExICszOSwxMSBA
QCBjbGFzcyBTdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxT
dG9yYWdlQ29ubmVjdGlvbj4gewogcHVibGljOgogICAgIHZpcnR1YWwgflN0b3JhZ2VDb25uZWN0
aW9uKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIFBlcnNpc3RDYWxsYmFjayA9IENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+OwotICAgIHZpcnR1YWwgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3Qg
Q2xpZW50T3JpZ2luJiwgUGVyc2lzdENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Z2V0UGVyc2lzdGVkKENsaWVudE9yaWdpbiYmLCBQZXJzaXN0Q2FsbGJhY2smJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBwZXJzaXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFBlcnNpc3RDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQogICAg
IHVzaW5nIERpcmVjdG9yeUluZm8gPSBzdGQ6OnBhaXI8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+PjsKICAgICB1c2luZyBHZXRE
aXJlY3RvcnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RGly
ZWN0b3J5SW5mbz4mJik+OwotICAgIHZpcnR1YWwgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5
KGNvbnN0IENsaWVudE9yaWdpbiYsIEdldERpcmVjdG9yeUNhbGxiYWNrJiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShDbGllbnRPcmlnaW4mJiwgR2V0RGly
ZWN0b3J5Q2FsbGJhY2smJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5k
ZXggY2Q0NjYzMGRiNzBjMGJiOGU4MDljNzRiOTg3OTk1ZjQ5YjczNWVhNy4uMmJhYjRmOWIyZDY4
OTdjNjYyMDlmNTZmMDJlYzQ4OWVlYjVlMGNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQg
U3RvcmFnZU1hbmFnZXI6OnBlcnNpc3RlZChET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4m
JiBwcm9taXNlKQogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVjdGlvbkluZm9P
ckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25uZWN0aW9uSW5m
byA9IGNvbm5lY3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAg
Y29ubmVjdGlvbkluZm8uY29ubmVjdGlvbi5nZXRQZXJzaXN0ZWQoY29ubmVjdGlvbkluZm8ub3Jp
Z2luLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgcGVyc2lzdGVkKSBtdXRhYmxl
IHsKKyAgICBjb25uZWN0aW9uSW5mby5jb25uZWN0aW9uLmdldFBlcnNpc3RlZChXVEZNb3ZlKGNv
bm5lY3Rpb25JbmZvLm9yaWdpbiksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYm9vbCBw
ZXJzaXN0ZWQpIG11dGFibGUgewogICAgICAgICBwcm9taXNlLnJlc29sdmUocGVyc2lzdGVkKTsK
ICAgICB9KTsKIH0KQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpmaWxl
U3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhYwog
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVjdGlvbkluZm9PckV4Y2VwdGlvbi5y
ZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25uZWN0aW9uSW5mbyA9IGNvbm5lY3Rp
b25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgY29ubmVjdGlvbklu
Zm8uY29ubmVjdGlvbi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbm5lY3Rpb25JbmZvLm9yaWdp
biwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCB3ZWFrTmF2aWdhdG9yID0gbV9uYXZpZ2F0
b3JdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb25JbmZvLmNvbm5lY3Rp
b24uZmlsZVN5c3RlbUdldERpcmVjdG9yeShXVEZNb3ZlKGNvbm5lY3Rpb25JbmZvLm9yaWdpbiks
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgd2Vha05hdmlnYXRvciA9IG1fbmF2aWdhdG9y
XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Rv
cmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZDVkY2NjMzRjZDMxMTBiOGVi
NTdhY2ZmN2RjZjQ0NzE2YzMyZGMwNS4uYTFmYjA0ZmM5MTgwMjRmZjhmZDBkNDFiYzdjMWIxYTcx
NjVkY2FhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dvcmtl
clN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3Jh
Z2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC01OCwxNCArNTgsMTQgQEAgdm9pZCBX
b3JrZXJTdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQoKQogICAgIG1fc2NvcGUgPSBudWxs
cHRyOwogfQogCi12b2lkIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246Omdl
dFBlcnNpc3RlZChDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJz
aXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQobV9zY29wZSk7
CiAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9ICsrbV9sYXN0Q2FsbGJhY2tJZGVudGlm
aWVyOwogICAgIG1fZ2V0UGVyc2lzdGVkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nh
bGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkg
fSwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgIGNhbGxP
bk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9z
Y29wZS0+dGhyZWFkKCkgfSwgb3JpZ2luID0gV1RGTW92ZShvcmlnaW4pLmlzb2xhdGVkQ29weSgp
XSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDb25uZWN0aW9uID0gd29ya2Vy
VGhyZWFkLT53b3JrZXJMb2FkZXJQcm94eSgpLnN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgICAg
IGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhy
ZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShib29sIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNr
SWRlbnRpZmllciwgcmVzdWx0XSAoYXV0byYgc2NvcGUpIG11dGFibGUgewpAQCAtNzUsNyArNzUs
NyBAQCB2b2lkIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29uc3QgQ2xp
ZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDbwogICAgICAgICBpZiAoIW1haW5UaHJlYWRDb25u
ZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIG1haW5UaHJlYWRDYWxsYmFjayhmYWxzZSk7CiAK
LSAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmdldFBlcnNpc3RlZChvcmlnaW4sIFdURk1v
dmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5n
ZXRQZXJzaXN0ZWQoV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykp
OwogICAgIH0pOwogfQogCkBAIC04NSwyMSArODUsMjEgQEAgdm9pZCBXb3JrZXJTdG9yYWdlQ29u
bmVjdGlvbjo6ZGlkR2V0UGVyc2lzdGVkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgYm9v
bAogICAgICAgICBjYWxsYmFjayhwZXJzaXN0ZWQpOwogfQogCi12b2lkIFdvcmtlclN0b3JhZ2VD
b25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXREaXJl
Y3RvcnkoQ2xpZW50T3JpZ2luJiYgb3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0
b3J5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQobV9zY29wZSk7
CiAgICAgCiAgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSArK21fbGFzdENhbGxiYWNrSWRl
bnRpZmllcjsKICAgICBtX2dldERpcmVjdG9yeUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlm
aWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFk
KFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVh
ZCgpIH0sIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICBj
YWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7
IG1fc2NvcGUtPnRocmVhZCgpIH0sIG9yaWdpbiA9IFdURk1vdmUob3JpZ2luKS5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IHdv
cmtlclRocmVhZC0+d29ya2VyTG9hZGVyUHJveHkoKS5zdG9yYWdlQ29ubmVjdGlvbigpOwogICAg
ICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtl
clRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7
CiAgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2Nh
bGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUocmVzdWx0
KSldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8V29y
a2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5zdG9yYWdlQ29ubmVjdGlvbigpLmRpZEdldERpcmVjdG9y
eShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9LCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfTsKLSAgICAgICAgbWFpblRo
cmVhZENvbm5lY3Rpb24tPmZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkob3JpZ2luLCBXVEZNb3ZlKG1h
aW5UaHJlYWRDYWxsYmFjaykpOworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+ZmlsZVN5
c3RlbUdldERpcmVjdG9yeShXVEZNb3ZlKG9yaWdpbiksIFdURk1vdmUobWFpblRocmVhZENhbGxi
YWNrKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggODQ1YmY5MzZhODkyNTkw
NTVmODMzNDk1YjhjOGRkMDczYzM2N2MzOC4uNmFhMjg4YWMyOTRhZTEwMTMwYWM0OTEyMjE4NTZk
NGMzODgxZjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dv
cmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9y
YWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQzLDggKzQzLDggQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZEdldERpcmVjdG9yeSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIEV4
Y2VwdGlvbk9yPFN0b3JhZ2VDb25uZWN0aW9uOjpEaXJlY3RvcnlJbmZvPiYmKTsKIAogICAgIC8v
IFN0b3JhZ2VDb25uZWN0aW9uCi0gICAgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgQ2xpZW50T3Jp
Z2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2
b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFnZUNv
bm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0UGVy
c2lzdGVkKENsaWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVyc2lzdENhbGxiYWNr
JiYpIGZpbmFsOworICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShDbGllbnRPcmlnaW4m
JiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOwogCiAg
ICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxTY29wZT4gbV9zY29wZTsKICAgICB1aW50NjRfdCBtX2xh
c3RDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCmluZGV4IDgy
ZTc4MDI2NTFlM2IwMGNmOTMxMzdiY2M0NTM2MDdmNzEzMTkyYmYuLjk0ZWY1MDk1NThiNmMyNjU5
ZmRmYTNkNjg5YjRiMGQyODM3M2Q4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCkBAIC0zNSw5
ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2hhbmdlVmVyc2lvbldyYXBwZXI6
OkNoYW5nZVZlcnNpb25XcmFwcGVyKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29uc3QgU3Ry
aW5nJiBuZXdWZXJzaW9uKQotICAgIDogbV9vbGRWZXJzaW9uKG9sZFZlcnNpb24uaXNvbGF0ZWRD
b3B5KCkpCi0gICAgLCBtX25ld1ZlcnNpb24obmV3VmVyc2lvbi5pc29sYXRlZENvcHkoKSkKK0No
YW5nZVZlcnNpb25XcmFwcGVyOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcihTdHJpbmcmJiBvbGRWZXJz
aW9uLCBTdHJpbmcmJiBuZXdWZXJzaW9uKQorICAgIDogbV9vbGRWZXJzaW9uKFdURk1vdmUob2xk
VmVyc2lvbikuaXNvbGF0ZWRDb3B5KCkpCisgICAgLCBtX25ld1ZlcnNpb24oV1RGTW92ZShuZXdW
ZXJzaW9uKS5pc29sYXRlZENvcHkoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oCmluZGV4IGVi
N2VmZTNjNDM3NGZkOGYyZDhmYzczMGMzMWQ3ZmM0YmQzNTZlZWUuLjFiMTI4NzdiYjFlYjFlOTc0
ZWNiNDllZTMyOTYwODAxZTM1ZDkwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmgKQEAgLTM3LDcgKzM3
LDcgQEAgY2xhc3MgU1FMRXJyb3I7CiAKIGNsYXNzIENoYW5nZVZlcnNpb25XcmFwcGVyIDogcHVi
bGljIFNRTFRyYW5zYWN0aW9uV3JhcHBlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDaGFu
Z2VWZXJzaW9uV3JhcHBlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29uc3Qg
U3RyaW5nJiBuZXdWZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENoYW5nZVZlcnNpb25X
cmFwcGVyKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pKTsgfQorICAgIHN0YXRpYyBSZWY8Q2hhbmdl
VmVyc2lvbldyYXBwZXI+IGNyZWF0ZShTdHJpbmcmJiBvbGRWZXJzaW9uLCBTdHJpbmcmJiBuZXdW
ZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENoYW5nZVZlcnNpb25XcmFwcGVyKFdURk1v
dmUob2xkVmVyc2lvbiksIFdURk1vdmUobmV3VmVyc2lvbikpKTsgfQogCiAgICAgYm9vbCBwZXJm
b3JtUHJlZmxpZ2h0KFNRTFRyYW5zYWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBwZXJmb3Jt
UG9zdGZsaWdodChTUUxUcmFuc2FjdGlvbiYpIG92ZXJyaWRlOwpAQCAtNDUsNyArNDUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBoYW5kbGVDb21taXRGYWlsZWRBZnRlclBvc3RmbGlnaHQoU1FMVHJh
bnNhY3Rpb24mKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBDaGFuZ2VWZXJzaW9uV3JhcHBl
cihjb25zdCBTdHJpbmcmIG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbik7Cisg
ICAgQ2hhbmdlVmVyc2lvbldyYXBwZXIoU3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYgbmV3
VmVyc2lvbik7CiAKICAgICBTdHJpbmcgbV9vbGRWZXJzaW9uOwogICAgIFN0cmluZyBtX25ld1Zl
cnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
Y3BwCmluZGV4IDc3ZmZkOTMxOTdkNmUyM2JlMjAxMTBhM2UzYjkyNWU3OTdjYTJlZmYuLjVhZjM3
MDlkYTJhNDhlNmNmMjQ0YWQxOWYwODc5NjRhNDRmMDRjZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01ODIsOSArNTgyLDkgQEAg
dm9pZCBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCkKICAgICBjbG9zZSgpOwogfQog
Ci12b2lkIERhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwg
Y29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4m
JiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiBlcnJvckNh
bGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaykKK3ZvaWQgRGF0
YWJhc2U6OmNoYW5nZVZlcnNpb24oU3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYgbmV3VmVy
c2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxT
UUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRD
YWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAgcnVuVHJhbnNhY3Rpb24oV1RGTW92
ZShjYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxi
YWNrKSwgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OmNyZWF0ZShvbGRWZXJzaW9uLCBuZXdWZXJzaW9u
KSwgZmFsc2UpOworICAgIHJ1blRyYW5zYWN0aW9uKFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3Zl
KGVycm9yQ2FsbGJhY2spLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIENoYW5nZVZlcnNpb25X
cmFwcGVyOjpjcmVhdGUoV1RGTW92ZShvbGRWZXJzaW9uKSwgV1RGTW92ZShuZXdWZXJzaW9uKSks
IGZhbHNlKTsKIH0KIAogdm9pZCBEYXRhYmFzZTo6dHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2Fs
bGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgK
aW5kZXggNWUzYmU4NTRmMDA5Y2Y2MGE2ZWEwOGRkZWY2N2Q1ZTJmMWE1ZTBlNy4uOWIwMDJkNGE1
YmY3OWM3NWQ4Y2I1NGVlMWYwZDg3ODZkMmYzODAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBEaXJlY3Qgc3VwcG9ydCBmb3IgdGhlIERPTSBBUEkKICAgICBTdHJpbmcgdmVyc2lv
bigpIGNvbnN0OwotICAgIHZvaWQgY2hhbmdlVmVyc2lvbihjb25zdCBTdHJpbmcmIG9sZFZlcnNp
b24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJlZlB0cjxWb2lk
Q2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIGNoYW5nZVZlcnNpb24oU3Ry
aW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYgbmV3VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0
aW9uQ2FsbGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJl
ZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKICAgICB2b2lkIHRyYW5zYWN0
aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNhY3Rp
b25FcnJvckNhbGxiYWNrPiYmLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFj
ayk7CiAgICAgdm9pZCByZWFkVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJlZlB0cjxWb2lk
Q2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDA2N2ZkMzkx
MzkwYzg1ZGMyZDQ5ZGY0MDgwMTYyYjQzYzRmNDIzY2UuLjllYjM5MWM2ZDBiZDZkNDg2MDUxMGVk
YWI3Mjg5MzM5OTUwNmJjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTU0MiwxNCArNTQyLDE0IEBAIHZv
aWQgRGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0YWJhc2UoRGF0YWJhc2UmIGRhdGFiYXNlKQog
ICAgIGF1dG8qIG5hbWVNYXAgPSBtX29wZW5EYXRhYmFzZU1hcC0+Z2V0KG9yaWdpbik7CiAgICAg
aWYgKCFuYW1lTWFwKSB7CiAgICAgICAgIG5hbWVNYXAgPSBuZXcgRGF0YWJhc2VOYW1lTWFwOwot
ICAgICAgICBtX29wZW5EYXRhYmFzZU1hcC0+YWRkKG9yaWdpbi5pc29sYXRlZENvcHkoKSwgbmFt
ZU1hcCk7CisgICAgICAgIG1fb3BlbkRhdGFiYXNlTWFwLT5hZGQoV1RGTW92ZShvcmlnaW4pLmlz
b2xhdGVkQ29weSgpLCBuYW1lTWFwKTsKICAgICB9CiAKICAgICBTdHJpbmcgbmFtZSA9IGRhdGFi
YXNlLnN0cmluZ0lkZW50aWZpZXJJc29sYXRlZENvcHkoKTsKICAgICBhdXRvKiBkYXRhYmFzZVNl
dCA9IG5hbWVNYXAtPmdldChuYW1lKTsKICAgICBpZiAoIWRhdGFiYXNlU2V0KSB7CiAgICAgICAg
IGRhdGFiYXNlU2V0ID0gbmV3IERhdGFiYXNlU2V0OwotICAgICAgICBuYW1lTWFwLT5zZXQobmFt
ZS5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VTZXQpOworICAgICAgICBuYW1lTWFwLT5zZXQoV1RG
TW92ZShuYW1lKS5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VTZXQpOwogICAgIH0KIAogICAgIGRh
dGFiYXNlU2V0LT5hZGQoJmRhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMRXJyb3IuaAppbmRleCAxNDVjYTUwMDMzNTc2ZTcwMjdlODAyZjBkMjljODI1
OTI0NGE1YWNhLi43N2NlMWExY2FjMTUwOTQ4YzM0MTA0ZWRkMzNiMTBhMGRkNTlmMGM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oCkBAIC0zNSw3
ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1FMRXJyb3IgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMRXJyb3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFNRTEVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQorICAgIHN0
YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBTdHJpbmcmJiBtZXNzYWdl
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNRTEVycm9yKGNvZGUsIFdURk1vdmUobWVzc2FnZSkp
KTsgfQogICAgIHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25z
dCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBj
cmVhdGUoY29kZSwgbWFrZVN0cmluZyhtZXNzYWdlLCAiICgiLCBzcWxpdGVDb2RlLCAnKScpKTsK
QEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6Ci0gICAgU1FMRXJy
b3IodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSA6IG1fY29kZShjb2RlKSwg
bV9tZXNzYWdlKG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCkpIHsgfQorICAgIFNRTEVycm9yKHVuc2ln
bmVkIGNvZGUsIFN0cmluZyYmIG1lc3NhZ2UpIDogbV9jb2RlKGNvZGUpLCBtX21lc3NhZ2UoV1RG
TW92ZShtZXNzYWdlKS5pc29sYXRlZENvcHkoKSkgeyB9CiAgICAgdW5zaWduZWQgbV9jb2RlOwog
ICAgIFN0cmluZyBtX21lc3NhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAppbmRl
eCBmN2NmMGUxNzBjNjM5ZTk5NjRjODcyMGI4YTQ5ZTA1OWZlNWEwNTNmLi5lNjUzMTVhNTE1OWUx
YjhmZTE1Y2JhOTk2NTdhODA3Y2RhODZlMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBidWZmZXJl
ZEFtb3VudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNv
bnN0IFN0cmluZyYgcmVhc29uKSA9IDA7CiAgICAgLy8gTG9nIHRoZSByZWFzb24gdGV4dCBhbmQg
Y2xvc2UgdGhlIGNvbm5lY3Rpb24uIFdpbGwgY2FsbCBkaWRDbG9zZSgpLgotICAgIHZpcnR1YWwg
dm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZh
aWwoU3RyaW5nJiYgcmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3QoKSA9
IDA7IC8vIFdpbGwgc3VwcHJlc3MgZGlkQ2xvc2UoKS4KIAogICAgIHZpcnR1YWwgdm9pZCBzdXNw
ZW5kKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyLmNwcAppbmRleCA3YjE0NDFkMzFjYmNiZjcwYTM5MTJhOWEyMTA1NzVhZDM1Y2Y1OTMy
Li5hOWNjNTQxMGE4M2M3NzY1MmRlZjU4N2RiNDg1ZjIwNTQ5OThmYjFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMTYyLDEx
ICsxNjIsMTEgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6
OmRpZENvbm5lY3QoKQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAKLXZvaWQg
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2Fn
ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2FnZSkKIHsKLSAg
ICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrPihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1lc3NhZ2UgPSBt
ZXNzYWdlLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAgICBt
X3BlbmRpbmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpU
YXNrPihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1lc3NhZ2UgPSBXVEZN
b3ZlKG1lc3NhZ2UpLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11
dGFibGUgewogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlk
UmVjZWl2ZU1lc3NhZ2UobWVzc2FnZSk7CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgfSkpOwogCiAgICAgaWYgKCFtX3N1c3Bl
bmRlZCkKQEAgLTIxNywxMSArMjE3LDExIEBAIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyOjpkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlCiAgICAg
ICAgIHByb2Nlc3NQZW5kaW5nVGFza3MoKTsKIH0KIAotdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5n
JiByZWFzb24pCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6
ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiByZWFzb24pCiB7Ci0gICAgbV9wZW5kaW5n
VGFza3MuYXBwZW5kKG1ha2VVbmlxdWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4oW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCByZWFzb24gPSByZWFzb24uaXNvbGF0
ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgIG1fcGVuZGluZ1Rhc2tz
LmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcmVhc29uID0gV1RGTW92ZShyZWFzb24pLmlz
b2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewogICAgICAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VF
cnJvcihyZWFzb24pOworICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IoV1RGTW92ZShyZWFzb24pKTsKICAgICB9KSk7CiAKICAgICBpZiAoIW1fc3VzcGVuZGVkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmluZGV4
IDZhZWJhNTNlOGZjNDIzNGU4MzFkZTFkN2Q2OTkwMDU2Yjc4MTZiY2MuLjk2NTgwMjIzZWYwNGE3
YmFiNDdkMGQyMDhlMzM4OWVlOGE5MTYxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKQEAgLTc0LDEyICs3NCwxMiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjbGVhckNsaWVudCgpOwogCiAgICAgdm9pZCBkaWRDb25uZWN0KCk7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmlu
YXJ5RGF0YShWZWN0b3I8dWludDhfdD4mJik7CiAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFt
b3VudCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCk7CiAgICAgdm9pZCBkaWRTdGFydENsb3NpbmdI
YW5kc2hha2UoKTsKICAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZlcmVk
QW1vdW50LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OjpDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlv
blN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwotICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbik7CisgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyYmIHJlYXNvbik7CiAgICAgdm9pZCBk
aWRVcGdyYWRlVVJMKCk7CiAKICAgICB2b2lkIHN1c3BlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggODE2ZWNlYjE2YmIxNjI1
ZjczMDNjYzI4YzI3ZjZkNjBlOTA2MWRhNy4uZjk3M2U1YmQzYjkwZTNhNGNjNzM1MjE0ZDlhMzE5
YWRmOTIxZTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHAKQEAgLTU2NiwyMSArNTY2LDIxIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRDb25u
ZWN0KCkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbXNnKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKFN0cmlu
ZyYmIG1lc3NhZ2UpCiB7Ci0gICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVjZWl2
ZU1lc3NhZ2UoKSBUZXh0IG1lc3NhZ2UgJyVzJyIsIHRoaXMsIG1zZy51dGY4KCkuZGF0YSgpKTsK
LSAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNv
Y2tldCwgW3RoaXMsIG1zZ10geworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJl
Y2VpdmVNZXNzYWdlKCkgVGV4dCBtZXNzYWdlICclcyciLCB0aGlzLCBtZXNzYWdlLnV0ZjgoKS5k
YXRhKCkpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJj
ZTo6V2ViU29ja2V0LCBbdGhpcywgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSldKCkgbXV0YWJs
ZSB7CiAgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRl
bmRzKCkpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogaW5zcGVjdG9yID0gbV9jaGFubmVsLT5j
aGFubmVsSW5zcGVjdG9yKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHV0ZjhNZXNzYWdlID0g
bXNnLnV0ZjgoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHV0ZjhNZXNzYWdlID0gbWVzc2FnZS51
dGY4KCk7CiAgICAgICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNlaXZlV2ViU29ja2V0RnJh
bWUoV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6Y3JlYXRlRnJhbWUodXRmOE1lc3NhZ2UuZGF0
YUFzVUludDhQdHIoKSwgdXRmOE1lc3NhZ2UubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpPcENv
ZGU6Ok9wQ29kZVRleHQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBBU1NF
UlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNz
YWdlRXZlbnQ6OmNyZWF0ZShtc2csIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0
cmluZygpKSk7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RG
TW92ZShtZXNzYWdlKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkp
KTsKICAgICB9KTsKIH0KIApAQCAtNjA4LDEwICs2MDgsMTAgQEAgdm9pZCBXZWJTb2NrZXQ6OmRp
ZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90PiYmIGJpbmFyeURhdGEpCiAgICAgfSk7
CiB9CiAKLXZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5n
JiYgcmVhc29uKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJlY2VpdmVF
cnJvck1lc3NhZ2UoKSIsIHRoaXMpOwotICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgq
dGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgcmVhc29uXSB7CisgICAgcXVldWVU
YXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlz
LCByZWFzb24gPSBXVEZNb3ZlKHJlYXNvbildIHsKICAgICAgICAgaWYgKG1fc3RhdGUgPT0gQ0xP
U0VEKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IDBjMzZh
MjM2MTEzN2UwODY1ODVhMDE3YjljNmIxZjVlMTc4ZTZlZTYuLmU2ODYzZTQ2ZGEwN2QxOGI2ZDkx
NWViMTVjMjRjZGYyMmRiNmE2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmgKQEAgLTExMyw5ICsxMTMsOSBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgdm9pZCBkaWRDb25u
ZWN0KCkgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2Fn
ZSkgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShWZWN0b3I8dWludDhfdD4m
JikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYg
cmVhc29uKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYg
cmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVk
IGJ1ZmZlcmVkQW1vdW50KSBmaW5hbDsKICAgICB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFr
ZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVmZmVyZWRB
bW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBj
b2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggYmIxMjUy
NDFmNjMxOWNkNTQ3NGY3NTcyYjdkMWJmNDM2MmJmMGZlMS4uZGY1NjM1OWM2ZmRhMDUyMTAzZDk3
YjNkOGE1ZDEwODQ5MTk3NWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjEyLDcgKzIxMiw3IEBAIHZv
aWQgV2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29u
KQogICAgICAgICBtX2Nsb3NpbmdUaW1lci5zdGFydE9uZVNob3QoVENQTWF4aW11bVNlZ21lbnRM
aWZldGltZSAqIDIpOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoY29uc3QgU3Ry
aW5nJiByZWFzb24pCit2b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoU3RyaW5nJiYgcmVhc29u
KQogewogICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGZhaWwo
KSByZWFzb249JyVzJyIsIHRoaXMsIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKICAgICBBU1NFUlQo
IW1fc3VzcGVuZGVkKTsKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgbV9oYXNDb250aW51b3VzRnJhbWUgPSBm
YWxzZTsKICAgICBtX2NvbnRpbnVvdXNGcmFtZURhdGEuY2xlYXIoKTsKICAgICBpZiAobV9jbGll
bnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKHJlYXNvbik7Cisg
ICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKFdURk1vdmUocmVhc29uKSk7
CiAKICAgICBpZiAobV9oYW5kbGUgJiYgIW1fY2xvc2VkKQogICAgICAgICBtX2hhbmRsZS0+ZGlz
Y29ubmVjdCgpOyAvLyBXaWxsIGNhbGwgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oKSBidXQgbWF5YmUg
bm90IHN5bmNocm9ub3VzbHkuCkBAIC0zODAsNyArMzgwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlLCBjb25z
dCBTb2MKICAgICB9CiAgICAgbV9zaG91bGREaXNjYXJkUmVjZWl2ZWREYXRhID0gdHJ1ZTsKICAg
ICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9y
KG1lc3NhZ2UpOworICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihXVEZN
b3ZlKG1lc3NhZ2UpKTsKICAgICBoYW5kbGUuZGlzY29ubmVjdCgpOwogfQogCkBAIC01NDYsNyAr
NTQ2LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIGlmIChy
ZXN1bHQgPT0gV2ViU29ja2V0RnJhbWU6OkZyYW1lSW5jb21wbGV0ZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIGlmIChyZXN1bHQgPT0gV2ViU29ja2V0RnJhbWU6OkZyYW1lRXJyb3IpIHsK
LSAgICAgICAgZmFpbChlcnJvclN0cmluZyk7CisgICAgICAgIGZhaWwoV1RGTW92ZShlcnJvclN0
cmluZykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02MjIsNyArNjIyLDcg
QEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAgICAg
IGlmIChtZXNzYWdlLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBu
b3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iKTsKICAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdl
KTsKKyAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdURk1v
dmUobWVzc2FnZSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtX2NvbnRpbnVvdXNGcmFtZU9w
Q29kZSA9PSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQmluYXJ5KQogICAgICAgICAgICAgICAgIG1f
Y2xpZW50LT5kaWRSZWNlaXZlQmluYXJ5RGF0YShXVEZNb3ZlKGNvbnRpbnVvdXNGcmFtZURhdGEp
KTsKICAgICAgICAgfQpAQCAtNjM5LDcgKzYzOSw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6
cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQogICAgICAg
ICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiIp
OwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZl
TWVzc2FnZShtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1l
c3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBt
X2hhc0NvbnRpbnVvdXNGcmFtZSA9IHRydWU7CiAgICAgICAgICAgICBtX2NvbnRpbnVvdXNGcmFt
ZU9wQ29kZSA9IFdlYlNvY2tldEZyYW1lOjpPcENvZGVUZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggOGMwOGUy
NmI5ZmJhZTdlYWJiY2E2MDE4YjY3Y2I3YWEyOWY2NWUyMC4uNjNmZTYyYTc2OGJkZjkyMDkyMGE4
YWY3M2M1MjA0MzI0NmIzZDhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKEJsb2ImKSBm
aW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBmaW5hbDsgLy8gU3RhcnQg
Y2xvc2luZyBoYW5kc2hha2UuCi0gICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKSBm
aW5hbDsKKyAgICB2b2lkIGZhaWwoU3RyaW5nJiYgcmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRp
c2Nvbm5lY3QoKSBmaW5hbDsKIAogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
Q2xpZW50LmgKaW5kZXggN2Y3MTMxY2ExOWU3OGMwYzc0YWE0OTc4OTQ1MGI2MTY1MzdiZDBmYy4u
ZGNmOTE0MGY5MDRhMWZjZTc3MmEyN2JmZWRlMmExYjQwMDU4YjI4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENs
aWVudC5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIFdlYlNvY2tldENoYW5uZWxDbGllbnQgOiBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViU29ja2V0Q2hhbm5lbENsaWVudD4gewogcHVibGljOgog
ICAgIHZpcnR1YWwgfldlYlNvY2tldENoYW5uZWxDbGllbnQoKSA9IGRlZmF1bHQ7CiAgICAgdmly
dHVhbCB2b2lkIGRpZENvbm5lY3QoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoU3RyaW5nJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURh
dGEoVmVjdG9yPHVpbnQ4X3Q+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRl
QnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgPSAwOwogICAgIGVudW0gQ2xvc2luZ0hh
bmRzaGFrZUNvbXBsZXRpb25TdGF0dXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAppbmRleCBjNDUzOGI5OGQw
YmI5MmVhOWQ2MWQyOWI3ZjA5NTE3MDg2N2RmZjU1Li5mNzY5Njc0OTMzNzIwMTdkMzYzZTNhMTJl
NzdmNTViZDUwMjU4NTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApAQCAtMTMzLDExICsxMzMsNiBAQCBj
b25zdCBVUkwmIFdlYlNvY2tldEhhbmRzaGFrZTo6dXJsKCkgY29uc3QKICAgICByZXR1cm4gbV91
cmw7CiB9CiAKLXZvaWQgV2ViU29ja2V0SGFuZHNoYWtlOjpzZXRVUkwoY29uc3QgVVJMJiB1cmwp
Ci17Ci0gICAgbV91cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCk7Ci19Ci0KIC8vIEZJWE1FOiBSZXR1
cm4gdHlwZSBzaG91bGQganVzdCBiZSBTdHJpbmcsIG5vdCBjb25zdCBTdHJpbmcuCiBjb25zdCBT
dHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpob3N0KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDc3NjMyNWZiNGE5ZGI4MzZlZGE0NjRm
YThhZjA2ZWY2NGI1OTllOTYuLmJiZDYzMTUzYWVmNDQwZTA5N2M3M2E1MjcyOGEyNWY4NmM2NzVj
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMTE4
LDEwICsxMTgsMTAgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y2xv
c2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKQogICAgICAgICBtX2JyaWRnZS0+Y2xv
c2UoY29kZSwgcmVhc29uKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OmZhaWwoU3RyaW5nJiYgcmVhc29uKQogewogICAgIGlmIChtX2JyaWRn
ZSkKLSAgICAgICAgbV9icmlkZ2UtPmZhaWwocmVhc29uKTsKKyAgICAgICAgbV9icmlkZ2UtPmZh
aWwoV1RGTW92ZShyZWFzb24pKTsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCkBAIC0yMjUsMTIgKzIyNSwxMiBAQCB2b2lkIFdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpjbG9zZShpbnQgY29kZSwgY29uc3QgU3Ry
aW5nJiByZWFzbwogICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmNsb3NlKGNvZGUsIHJlYXNv
bik7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmZh
aWwoY29uc3QgU3RyaW5nJiByZWFzb24pCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpQZWVyOjpmYWlsKFN0cmluZyYmIHJlYXNvbikKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIGlmICghbV9tYWluV2ViU29ja2V0Q2hhbm5lbCkKICAgICAgICAgcmV0
dXJuOwotICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmZhaWwocmVhc29uKTsKKyAgICBtX21h
aW5XZWJTb2NrZXRDaGFubmVsLT5mYWlsKFdURk1vdmUocmVhc29uKSk7CiB9CiAKIHZvaWQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpc2Nvbm5lY3QoKQpAQCAtMjcy
LDEzICsyNzIsMTMgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVl
cjo6ZGlkQ29ubmVjdCgpCiAgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKLXZvaWQgV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBl
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKIAotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3Jr
ZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xp
ZW50V3JhcHBlciwgbWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgIG1fbG9hZGVyUHJveHkucG9zdFRh
c2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3JhcHBl
ciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlciwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSkuaXNv
bGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewog
ICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29w
ZSgpIHx8IGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIHdvcmtlckNs
aWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOworICAgICAgICB3b3JrZXJD
bGllbnRXcmFwcGVyLT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICB9
LCBtX3Rhc2tNb2RlKTsKIH0KIApAQCAtMzIzLDEzICszMjMsMTMgQEAgdm9pZCBXb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVk
QnVmZmVyZWQKICAgICB9LCBtX3Rhc2tNb2RlKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJp
bmcmIHJlYXNvbikKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYgcmVhc29uKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29y
a2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNs
aWVudFdyYXBwZXIsIHJlYXNvbiA9IHJlYXNvbi5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFz
a0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFwcGVy
ID0gbV93b3JrZXJDbGllbnRXcmFwcGVyLCByZWFzb24gPSBXVEZNb3ZlKHJlYXNvbikuaXNvbGF0
ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewogICAg
ICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29wZSgp
IHx8IGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIHdvcmtlckNsaWVu
dFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsKKyAgICAgICAgd29ya2Vy
Q2xpZW50V3JhcHBlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihXVEZNb3ZlKHJlYXNvbikpOwog
ICAgIH0sIG1fdGFza01vZGUpOwogfQogCkBAIC00MTIsMTUgKzQxMiwxNCBAQCB2b2lkIFdvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmNvbm5lY3QoY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cgogICAgICAgICAKICAgICAgICAgLy8gRklYTUU6IG1ha2UgdGhpcyBtaXhl
ZCBjb250ZW50IGNoZWNrIGVxdWl2YWxlbnQgdG8gdGhlIGRvY3VtZW50IG1peGVkIGNvbnRlbnQg
Y2hlY2sgY3VycmVudGx5IGluIFdlYlNvY2tldDo6Y29ubmVjdCgpCiAgICAgICAgIGlmIChhdXRv
KiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKLSAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBlcnJvclN0cmluZyA9IE1peGVkQ29udGVudENoZWNrZXI6OmNoZWNrRm9yTWl4ZWRD
b250ZW50SW5GcmFtZVRyZWUoKmZyYW1lLCB1cmwpOwotICAgICAgICAgICAgaWYgKGVycm9yU3Ry
aW5nKSB7Ci0gICAgICAgICAgICAgICAgcGVlci0+ZmFpbChlcnJvclN0cmluZy52YWx1ZSgpKTsK
KyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yU3RyaW5nID0gTWl4ZWRDb250ZW50Q2hlY2tlcjo6
Y2hlY2tGb3JNaXhlZENvbnRlbnRJbkZyYW1lVHJlZSgqZnJhbWUsIHVybCkpIHsKKyAgICAgICAg
ICAgICAgICBwZWVyLT5mYWlsKFdURk1vdmUoZXJyb3JTdHJpbmcpLnZhbHVlKCkpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlm
IChwZWVyLT5jb25uZWN0KHVybCwgcHJvdG9jb2wpID09IFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjpDb25uZWN0U3RhdHVzOjpLTykKLSAgICAgICAgICAgIHBlZXItPmRpZFJlY2VpdmVNZXNz
YWdlRXJyb3IobnVsbFN0cmluZygpKTsKKyAgICAgICAgICAgIHBlZXItPmRpZFJlY2VpdmVNZXNz
YWdlRXJyb3IoU3RyaW5nIHsgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTUyMCwxNyArNTE5LDE3IEBA
IHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y2xvc2UoaW50
IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhCiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikK
K3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6ZmFpbChTdHJp
bmcmJiByZWFzb24pCiB7CiAgICAgaWYgKCFtX3BlZXIpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihbcGVlciA9IG1fcGVlciwgcmVhc29uID0g
cmVhc29uLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7
CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKFtwZWVyID0gbV9wZWVyLCByZWFz
b24gPSBXVEZNb3ZlKHJlYXNvbikuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
ICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNEb2N1bWVudCgpKTsKICAg
ICAgICAgQVNTRVJUKHBlZXIpOwogCi0gICAgICAgIHBlZXItPmZhaWwocmVhc29uKTsKKyAgICAg
ICAgcGVlci0+ZmFpbChXVEZNb3ZlKHJlYXNvbikpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDM2OWE2ZmExNmQ0YzQ0MjQ3ZGQwNmNl
MDZkN2FhYTc1ODAzNGJmYWMuLjQwYTNmYTcwY2MyM2NhODAxMjI4MTQ2Mjk0ZDA1YzcxYmU4MjRl
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC02Myw3ICs2
Myw3IEBAIHB1YmxpYzoKICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3Vs
dCBzZW5kKEJsb2ImKSBmaW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBm
aW5hbDsKLSAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOworICAgIHZv
aWQgZmFpbChTdHJpbmcmJiByZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzY29ubmVjdCgpIGZp
bmFsOyAvLyBXaWxsIHN1cHByZXNzIGRpZENsb3NlKCkuCiAgICAgdm9pZCBzdXNwZW5kKCkgZmlu
YWw7CiAgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKQEAgLTgyLDE5ICs4MiwxOSBAQCBwdWJsaWM6
CiAgICAgICAgIHZvaWQgc2VuZChCbG9iJik7CiAgICAgICAgIHZvaWQgYnVmZmVyZWRBbW91bnQo
KTsKICAgICAgICAgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwot
ICAgICAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOworICAgICAgICB2b2lkIGZh
aWwoU3RyaW5nJiYgcmVhc29uKTsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAgICAgICAg
IHZvaWQgc3VzcGVuZCgpOwogICAgICAgICB2b2lkIHJlc3VtZSgpOwogCiAgICAgICAgIC8vIFdl
YlNvY2tldENoYW5uZWxDbGllbnQgZnVuY3Rpb25zLgogICAgICAgICB2b2lkIGRpZENvbm5lY3Qo
KSBmaW5hbDsKLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpIGZpbmFsOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZyYmIG1l
c3NhZ2UpIGZpbmFsOwogICAgICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1
aW50OF90PiYmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1
bnNpZ25lZCBidWZmZXJlZEFtb3VudCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkU3RhcnRDbG9z
aW5nSGFuZHNoYWtlKCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5o
YW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1
bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7Ci0gICAgICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7
CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiByZWFzb24pIGZp
bmFsOwogICAgICAgICB2b2lkIGRpZFVwZ3JhZGVVUkwoKSBmaW5hbDsKIAogICAgIHByaXZhdGU6
CkBAIC0xMjYsNyArMTI2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChCbG9iJik7CiAgICAgICAgIHVuc2lnbmVkIGJ1ZmZl
cmVkQW1vdW50KCk7CiAgICAgICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYg
cmVhc29uKTsKLSAgICAgICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKTsKKyAgICAg
ICAgdm9pZCBmYWlsKFN0cmluZyYmIHJlYXNvbik7CiAgICAgICAgIHZvaWQgZGlzY29ubmVjdCgp
OwogICAgICAgICB2b2lkIHN1c3BlbmQoKTsKICAgICAgICAgdm9pZCByZXN1bWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25EYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXhjZXB0aW9uRGF0YS5oCmluZGV4IDk4NTMzNzZmMWM0ZGRjZmQxYTUxYWQ0YWVhYzlk
MDY0ZWU5OWY1NDkuLmNlMGNhZTM2N2YyY2M1MTFhMjUyYTY1MmUzYzYyNTRkYWJhMWI5M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25EYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaApAQCAtNDAsMTAgKzQwLDggQEAgc3RydWN0IEV4
Y2VwdGlvbkRhdGEgewogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxFeGNlcHRpb25EYXRhPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgRXhjZXB0aW9u
IHRvRXhjZXB0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBj
b2RlLCBTdHJpbmcgeyBtZXNzYWdlIH0gfTsKLSAgICB9CisgICAgRXhjZXB0aW9uIHRvRXhjZXB0
aW9uKCkgY29uc3QgJiB7IHJldHVybiBFeGNlcHRpb24geyBjb2RlLCBTdHJpbmcgeyBtZXNzYWdl
IH0gfTsgfQorICAgIEV4Y2VwdGlvbiB0b0V4Y2VwdGlvbigpICYmIHsgcmV0dXJuIEV4Y2VwdGlv
biB7IGNvZGUsIFdURk1vdmUobWVzc2FnZSkgfTsgfQogfTsKIAogdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggYzEzMzc0YjE2MWVlYmJmNjc4NjBhMDAwOWJlYzE0
YTM1YzUzMjk5Zi4uZmUxY2MyZGJiOTg2M2NkNDQ4MDQ3NmQyZTIxYTVhMjI5ZGM4YTBlOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JX
b3JrZXJBZ2VudC5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCBQcm90b2NvbDo6RXJyb3JTdHJpbmdP
cjx2b2lkPiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1lc3NhZ2VUb1dvcmtlcihjb25zdCBT
dAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNlbmRN
ZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmIHByb3h5LCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpzZW5kTWVz
c2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiBwcm94eSwgU3Ry
aW5nJiYgbWVzc2FnZSkKIHsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2hNZXNz
YWdlRnJvbVdvcmtlcihwcm94eS5pZGVudGlmaWVyKCksIG1lc3NhZ2UpOworICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5kaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKHByb3h5LmlkZW50aWZpZXIo
KSwgV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNo
b3VsZFdhaXRGb3JEZWJ1Z2dlck9uU3RhcnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IDkwNTY3
YmIwMjEwZWRlOWQzZDcyZDhkMDI1MzQ5NzM3MzdjMGE2ZjEuLmUxYmJkOGY5NDZlNDFmMzAxYThm
Zjg3Zjc0YWZlMzk5ZDYxZmVjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVi
bGljOgogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2VuZE1l
c3NhZ2VUb1dvcmtlcihjb25zdCBTdHJpbmcmIHdvcmtlcklkLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpOwogCiAgICAgLy8gV29ya2VySW5zcGVjdG9yUHJveHk6OlBhZ2VDaGFubmVsCi0gICAgdm9p
ZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5Jiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRv
RnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmLCBTdHJpbmcmJiBtZXNzYWdlKTsKIAogICAg
IC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIGJvb2wgc2hvdWxkV2FpdEZvckRlYnVn
Z2VyT25TdGFydCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNo
ZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92
aWRlci5oCmluZGV4IGVlZjYyNTcyYTc1OGI2ZmVjYTdjYjBhNzU2ZjQxY2QxODU4MDlhYTcuLmE0
Nzk3YTU2YmZhNmQwNjAyZDM0OTk3Y2IwMThlMzgxYzQ2ZDcxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgog
ICAgICAgICB2b2lkIG9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwgRE9N
Q2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAg
ICB2b2lkIHJlbW92ZSh1aW50NjRfdCwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNh
bGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0IENs
aWVudE9yaWdpbiYsIHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZvc0NhbGxiYWNr
JiYpIGZpbmFsIHsgfQotICAgICAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCwgY29u
c3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJh
Y2smJikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90LCBS
ZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2sm
JikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3Qs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hlRW5n
aW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lk
IGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90LCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWwg
eyB9CiAgICAgICAgIHZvaWQgcmVmZXJlbmNlKHVpbnQ2NF90KSBmaW5hbCB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKaW5kZXggZDljZGU0ZjVlOTgyZDgzYzBkOTMxOTBh
OTgwMmQ1Mjc1ODMwOWNmNS4uYjM5YmJkZDQ4YTU0YTQ3MmM4OWJhMGMyNDkyNWUyNjMxYWJjYjli
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKQEAgLTc5LDkgKzc5LDkg
QEAgdm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5u
ZWwpCiAgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRlbmQo
Y2hhbm5lbCk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21S
ZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlzcGF0
Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKQogewotICAgIG1fcGFnZS5pbnNw
ZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1lc3NhZ2UpOwor
ICAgIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250
ZW5kKFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpzZXRJbmRp
Y2F0aW5nKGJvb2wgaW5kaWNhdGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZURlYnVnZ2FibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuaApp
bmRleCA1OGZjNDc3Y2Y0MzUzYjUyN2NjM2ZkMmQxOTllNGM3ZmIwMTJiYTFiLi44YmQ2ZmJhNzk1
ZWIzZGM4OGVlNzE4NzYzOTRiNTc4ZDk3N2E1YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVi
dWdnYWJsZS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdChJ
bnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0g
ZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIGRp
c2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKLSAgICB2b2lkIGRp
c3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKKyAg
ICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2FnZSkgZmluYWw7
CiAgICAgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIGZpbmFsOwogCiAgICAgY29uc3QgU3RyaW5n
JiBuYW1lT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX25hbWVPdmVycmlkZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAppbmRleCBiYTEx
ZGRhMTY3ZmUxMGExMjFjZDExY2I5YmUyN2Q5MmJjNTE4MmY4Li42MjQ5MWZlYzJhNGE1MDcxYmZk
NjBmMjQ3OWMxNmE3ZTkzYTgwM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtMTM4LDEyICsxMzgsMTIgQEAgdm9pZCBXb3JrZXJJ
bnNwZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VUb1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoY29u
c3QgU3RyaW5nJgogICAgIH0pOwogfQogCi12b2lkIFdvcmtlckluc3BlY3RvclByb3h5OjpzZW5k
TWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQg
V29ya2VySW5zcGVjdG9yUHJveHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoU3Ry
aW5nJiYgbWVzc2FnZSkKIHsKICAgICBpZiAoIW1fcGFnZUNoYW5uZWwpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fcGFnZUNoYW5uZWwtPnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQo
KnRoaXMsIG1lc3NhZ2UpOworICAgIG1fcGFnZUNoYW5uZWwtPnNlbmRNZXNzYWdlRnJvbVdvcmtl
clRvRnJvbnRlbmQoKnRoaXMsIFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3Bl
Y3RvclByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5
LmgKaW5kZXggODMzNGQ0N2QzNGRlZjc1ZDRiYmNlMzM2ZTI4ZWJmZThkNzZiMjAyZi4uODNhY2I1
ZmRkYmExMDQ0MTQ3ZTc4NGFiNjllNWM5MGZmYjViMDhmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6
CiAgICAgY2xhc3MgUGFnZUNoYW5uZWwgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+
UGFnZUNoYW5uZWwoKSA9IGRlZmF1bHQ7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVzc2Fn
ZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiwgY29uc3QgU3RyaW5n
JikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9u
dGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSYsIFN0cmluZyYmKSA9IDA7CiAgICAgfTsKIAogICAg
IHN0YXRpYyBXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4mIGFsbFdvcmtlckluc3Bl
Y3RvclByb3hpZXMoKTsKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29ubmVj
dFRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihQYWdlQ2hhbm5lbCYpOwogICAgIHZvaWQgZGlz
Y29ubmVjdEZyb21Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7CiAgICAgdm9pZCBzZW5kTWVz
c2FnZVRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lk
IHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CisgICAgdm9p
ZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFN0cmluZyYmKTsKIAogcHJpdmF0ZToK
ICAgICBleHBsaWNpdCBXb3JrZXJJbnNwZWN0b3JQcm94eShjb25zdCBTdHJpbmcmIGlkZW50aWZp
ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cAppbmRleCA2YWQyMTc3NjM1NWI3MjU5MDU1ZmZkYmRlODgwYzczYmJlZGYxNzc2Li5jYjZjNjIy
YmYzOTgyYjg2ZTY3ODI3MjkzMzM4YTBlYjI4ZmFmNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMjEzLDkgKzIxMyw5IEBAIHZv
aWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25z
dCBTdHJpbmcmIGVycm9yTWVzc2FnCiAKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RN
ZXNzYWdlVG9EZWJ1Z2dlcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgbWVz
c2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBtZXNzYWdlID0gbWVz
c2FnZS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX21heUJlRGVz
dHJveWVkKQotICAgICAgICAgICAgbV9pbnNwZWN0b3JQcm94eS0+c2VuZE1lc3NhZ2VGcm9tV29y
a2VyVG9Gcm9udGVuZChtZXNzYWdlKTsKKyAgICAgICAgICAgIG1faW5zcGVjdG9yUHJveHktPnNl
bmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVu
dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKaW5kZXggYjRjZWQzYjYwM2I0OWJjNjgwMDBiYzZhMTQ0ZTMzMzQ4ZDEz
MzdlZi4uMTM3Mzg5ODkxNjhjZWEyM2MyNmY2MjE2Njk1N2E1ZGM3NGE2ZDQ1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKQEAgLTkyLDIxICs5MiwyMiBAQCBib29sIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRhc2tG
b3JKb2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllcgogICAgIHJldHVy
biBpc1Bvc3RlZDsKIH0KIAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmpvYlJlamVjdGVkSW5T
ZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgY29uc3QgRXhj
ZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JS
ZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZpZXIs
IEV4Y2VwdGlvbkRhdGEmJiBleGNlcHRpb25EYXRhKQogewotICAgIHBvc3RUYXNrRm9ySm9iKGpv
YklkZW50aWZpZXIsIElzSm9iQ29tcGxldGU6OlllcywgW2V4Y2VwdGlvbkRhdGEgPSBleGNlcHRp
b25EYXRhLmlzb2xhdGVkQ29weSgpXSAoYXV0byYgam9iKSB7Ci0gICAgICAgIGpvYi5mYWlsZWRX
aXRoRXhjZXB0aW9uKGV4Y2VwdGlvbkRhdGEudG9FeGNlcHRpb24oKSk7CisgICAgcG9zdFRhc2tG
b3JKb2Ioam9iSWRlbnRpZmllciwgSXNKb2JDb21wbGV0ZTo6WWVzLCBbZXhjZXB0aW9uRGF0YSA9
IFdURk1vdmUoZXhjZXB0aW9uRGF0YSkuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBqb2IpIG11dGFi
bGUgeworICAgICAgICBqb2IuZmFpbGVkV2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGV4Y2VwdGlvbkRh
dGEpLnRvRXhjZXB0aW9uKCkpOwogICAgIH0pOwogfQogCiB2b2lkIFNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIHJlZ2lz
dHJhdGlvbkRhdGEsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVuUmVz
b2x2ZWQpCiB7Ci0gICAgYm9vbCBpc1Bvc3RlZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50aWZp
ZXIsIElzSm9iQ29tcGxldGU6OlllcywgW3JlZ2lzdHJhdGlvbkRhdGEgPSByZWdpc3RyYXRpb25E
YXRhLmlzb2xhdGVkQ29weSgpLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWRdIChhdXRvJiBqb2Ip
IG11dGFibGUgeworICAgIGF1dG8gcmVnaXN0cmF0aW9uS2V5ID0gcmVnaXN0cmF0aW9uRGF0YS5r
ZXk7CisgICAgYm9vbCBpc1Bvc3RlZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50aWZpZXIsIElz
Sm9iQ29tcGxldGU6OlllcywgW3JlZ2lzdHJhdGlvbkRhdGEgPSBXVEZNb3ZlKHJlZ2lzdHJhdGlv
bkRhdGEpLmlzb2xhdGVkQ29weSgpLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWRdIChhdXRvJiBq
b2IpIG11dGFibGUgewogICAgICAgICBqb2IucmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFdURk1v
dmUocmVnaXN0cmF0aW9uRGF0YSksIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CiAgICAgfSk7
CiAKICAgICBpZiAoIWlzUG9zdGVkICYmIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCA9PSBTaG91
bGROb3RpZnlXaGVuUmVzb2x2ZWQ6OlllcykKLSAgICAgICAgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlv
blByb21pc2UocmVnaXN0cmF0aW9uRGF0YS5rZXkpOworICAgICAgICBkaWRSZXNvbHZlUmVnaXN0
cmF0aW9uUHJvbWlzZShyZWdpc3RyYXRpb25LZXkpOwogfQogCiB2b2lkIFNXQ2xpZW50Q29ubmVj
dGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmll
ciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiYgcmVnaXN0cmF0
aW9uS2V5LCBGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGY5NTQw
NGI3NGI2ZDQ4MmRlN2U2OGEwNWVhNTMyZTFiODg2OGY0YzEuLjA1ZmRkMDNhZWY0M2M1ZDA2MGZj
N2YxYmNjNDVjOGFjYmM4Yzg1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgU1dDbGllbnRDb25uZWN0aW9uKCk7CiAK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdvcmtl
ckpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGpvYlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIEV4
Y2VwdGlvbkRhdGEmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RyYXRpb25Kb2JS
ZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YSYmLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2VySm9i
SWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYmLCBGZXRjaE9wdGlvbnM6
OkNhY2hlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29u
dGV4dElkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFNlcnZpY2VXb3JrZXJE
YXRhJiYgc291cmNlLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHAK
aW5kZXggNjhmMGU2MGVjNzQ3NGFiZTA2YjI2MTE0MmM3Zjc1MmViMjRjZGMyYy4uNThkOTZlZjU4
OWNhODE1Y2NjOTMyMzI4OTllNjMzZGI3ZmJmYzAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCkBA
IC01NiwxMSArNTYsMTYgQEAgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUgdG9T
ZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlKFNjcmlwdEV4ZWN1dGkKICAgICByZXR1cm4gU2Vy
dmljZVdvcmtlckNsaWVudEZyYW1lVHlwZTo6TmVzdGVkOwogfQogCi1TZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK1Nl
cnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENv
cHkoKSBjb25zdCAmCiB7CiAgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgdHlwZSwgZnJhbWVUeXBl
LCB1cmwuaXNvbGF0ZWRDb3B5KCksIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIH07CiB9
CiAKK1NlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29s
YXRlZENvcHkoKSAmJgoreworICAgIHJldHVybiB7IGlkZW50aWZpZXIsIHR5cGUsIGZyYW1lVHlw
ZSwgV1RGTW92ZSh1cmwpLmlzb2xhdGVkQ29weSgpLCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRp
YXRlZCB9OworfQorCiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YTo6ZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewogICAgIGJvb2wg
aXNEb2N1bWVudCA9IGlzPERvY3VtZW50Pihjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKaW5kZXgg
ZTI4YjJiYzU3OGJlYjI4YmYwMTdkOTNhYjExMzZlYWFiNmZjYzFmOS4uMzk3NWQ1MTgxNjVjYWI0
NzgzNGM5MWIxZTQxMjk2Y2U4MTI2MTFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKQEAgLTQ3LDcgKzQ3
LDggQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsKICAgICBVUkwgdXJsOwogICAg
IExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkOwogCi0gICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7
CisgICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29uc3QgJjsKKyAg
ICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBpc29sYXRlZENvcHkoKSAmJjsKIAogICAgIHN0YXRp
YyBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YS5oCmluZGV4IDQ2YTlmYTcwMTI5ZTM3NWM1OTY4MWJiYTZlMzBlYTk4
YWJjYjFkODcuLjlhNjZkNDhiMGEyOWQ5ZjI5M2EzMmJmZmU4NGE1N2MwZDc3NzI3YTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRleHREYXRhLmgKQEAgLTc5LDcgKzc5LDggQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YSB7CiAgICAgICAgICAgICB9fTsKICAgICAgICAgfQogCi0gICAgICAgIEltcG9ydGVk
U2NyaXB0IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgc2NyaXB0Lmlzb2xhdGVkQ29w
eSgpLCByZXNwb25zZVVSTC5pc29sYXRlZENvcHkoKSwgbWltZVR5cGUuaXNvbGF0ZWRDb3B5KCkg
fTsgfQorICAgICAgICBJbXBvcnRlZFNjcmlwdCBpc29sYXRlZENvcHkoKSBjb25zdCAmIHsgcmV0
dXJuIHsgc2NyaXB0Lmlzb2xhdGVkQ29weSgpLCByZXNwb25zZVVSTC5pc29sYXRlZENvcHkoKSwg
bWltZVR5cGUuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgICAgICBJbXBvcnRlZFNjcmlwdCBpc29s
YXRlZENvcHkoKSAmJiB7IHJldHVybiB7IFdURk1vdmUoc2NyaXB0KS5pc29sYXRlZENvcHkoKSwg
V1RGTW92ZShyZXNwb25zZVVSTCkuaXNvbGF0ZWRDb3B5KCksIFdURk1vdmUobWltZVR5cGUpLmlz
b2xhdGVkQ29weSgpIH07IH0KICAgICB9OwogCiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24uY3BwCmluZGV4IGY3YTQ0NWQxNjVmYWFjYWFmN2MyYzg0ZmQzMmUwNTk3YjRiNWVjN2UuLmZi
MTAyMjE4NzE3ZGQ1MWE2ZWUzMTA0MTM4YmRjMWRmYjg3ZjBjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5jcHAKQEAgLTI2OSw3ICsyNjksNyBAQCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXImIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb246Om5hdmlnYXRpb25QcmVsb2FkKCkKIH0KIAogI2lmIEVO
QUJMRShOT1RJRklDQVRJT05fRVZFTlQpCi12b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246
OnNob3dOb3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgY29uc3QgTm90aWZpY2F0aW9uT3B0aW9ucyYgb3B0aW9ucywgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbjo6c2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBT
dHJpbmcmJiB0aXRsZSwgTm90aWZpY2F0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIERPTVByb21pc2VE
ZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikgewog
ICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3RyYXRp
b24gZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmUgd29ya2VyIl9zIH0pOwpAQCAtMjkyLDcgKzI5Miw3
IEBAIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0CiAKICAgICAvLyBUaGUgTm90aWZpY2F0aW9uIGlz
IGtlcHQgYWxpdmUgYnkgdmlydHVlIG9mIGJlaW5nIHNob3coKSduIHNvb24uCiAgICAgLy8gRklY
TUU6IFdoZW4gaW1wbGVtZW50aW5nIGdldE5vdGlmaWNhdGlvbnMoKSwgc3RvcmUgdGhpcyBOb3Rp
ZmljYXRpb24gaW4gdGhlIHJlZ2lzdHJhdGlvbidzIG5vdGlmaWNhdGlvbiBsaXN0LgotICAgIGF1
dG8gbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uOjpjcmVhdGUoY29udGV4dCwgdGl0bGUsIG9w
dGlvbnMpOworICAgIGF1dG8gbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uOjpjcmVhdGUoY29u
dGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0aW9ucykpOwogCiAgICAgY29udGV4dC5l
dmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbcHJvbWlz
ZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIHByb21pc2UucmVzb2x2
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggMzM0MzM3YTZiZWM2N2YxZjYyNGI4MzBlYjBm
ZDY0MDNjNzM0ZTE3OS4uZjdjYzkwZWViNDA3OWE0ZmRmMTIxZTJjZjcxZDg1NzBmNTc1ZjZhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICAgICAg
U3RyaW5nIHRhZzsKICAgICB9OwogCi0gICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBOb3RpZmljYXRpb25P
cHRpb25zJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgc2hvd05vdGlm
aWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYgdGl0bGUsIE5vdGlmaWNh
dGlvbk9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgZ2V0
Tm90aWZpY2F0aW9ucyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgR2V0Tm90aWZpY2F0
aW9uT3B0aW9ucyYgZmlsdGVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2VxdWVuY2U8SURMSW50
ZXJmYWNlPE5vdGlmaWNhdGlvbj4+Pik7CiAKICAgICB2b2lkIGFkZE5vdGlmaWNhdGlvblRvTGlz
dChOb3RpZmljYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuY3BwCmlu
ZGV4IGVmMDJhN2ZmYzBlODcxNzMxYjIyNmIzNjdjNDEwNWFlYTc4ZGFjYTQuLjAyNTU0YTBiNTdi
YTZjNWY3NTZkOTZjMDY0Y2NhNjkwYWY5NzRkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25PcHRpb25zLmNwcApAQCAtMzAsMTEgKzMwLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbk9wdGlvbnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CitTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uT3B0aW9ucyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9uczo6aXNvbGF0ZWRDb3B5
KCkgY29uc3QgJgogewogICAgIHJldHVybiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9u
cyB7IHNjb3BlLmlzb2xhdGVkQ29weSgpLCB0eXBlLCB1cGRhdGVWaWFDYWNoZSB9OwogfQogCitT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
T3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkgJiYKK3sKKyAgICByZXR1cm4gU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbk9wdGlvbnMgeyBXVEZNb3ZlKHNjb3BlKS5pc29sYXRlZENvcHkoKSwgdHlwZSwg
dXBkYXRlVmlhQ2FjaGUgfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMu
aAppbmRleCA5ZTM2OTBlYTczZjMzNjg5NjRmZDQ2YzkxNTU2ZTU5MWZiZGM2YTNlLi4yZjViZjlk
M2JjMzljNGEzOWUwNmNkMjVjYzgxOGE3N2Q0MzhkNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbk9wdGlvbnMuaApAQCAtMzksNyArMzksOCBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnMgewogICAgIFdvcmtlclR5cGUgdHlwZTsKICAgICBTZXJ2aWNlV29ya2Vy
VXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGU7CiAKLSAgICBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdDsKKyAgICBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdCAmOworICAgIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25PcHRpb25zIGlzb2xhdGVkQ29weSgpICYmOwogCiAgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25PcHRpb25zPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVn
Z2FibGUuY3BwCmluZGV4IDQxMmU1Njk1NzI1MzZmYmViZTA4YmEzMjk1Mjk2OGFkNzkzNmU4MGMu
LjRmYjQwNDBiY2RiZGNhZDhhZWRjZDZjZGQwZGRkMWNhYmI0YmViOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dh
YmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyRGVidWdnYWJsZS5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgdm9pZCBTZXJ2aWNlV29y
a2VyRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwpCiAgICAg
bV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJveHkoKS5kaXNjb25uZWN0RnJv
bVdvcmtlcihjaGFubmVsKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyRGVidWdnYWJsZTo6ZGlz
cGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFNlcnZp
Y2VXb3JrZXJEZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYmIG1l
c3NhZ2UpCiB7Ci0gICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJveHko
KS5zZW5kTWVzc2FnZVRvV29ya2VyKG1lc3NhZ2UpOworICAgIG1fc2VydmljZVdvcmtlclRocmVh
ZFByb3h5Lmluc3BlY3RvclByb3h5KCkuc2VuZE1lc3NhZ2VUb1dvcmtlcihXVEZNb3ZlKG1lc3Nh
Z2UpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1
Z2dhYmxlLmgKaW5kZXggNTliZmMzY2ZkN2Y3YWM0NmRlNmQyNTRkZWY1ZjExOGMwZGI5ZTg1Yy4u
ZTFkMDBmNzI1ZGNlYmM0NmNiMmY3MmMzOWEzYmZjMzQ4NTQ3MjQyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2Fi
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyRGVidWdnYWJsZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25u
ZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKICAg
ICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKLSAg
ICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBm
aW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2Fn
ZSkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlclRocmVhZFByb3h5JiBtX3Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9y
UHJveHkuY3BwCmluZGV4IDczZjJjNWNlOTE2YWNiNjU1MjExM2JjODJjOTg4OWM5MTcyMzhmODUu
LjI0ODUwYzRmZTc0NWYyZTc2NTgyZTY0YzUxNWE5NzFlNGQzMjljYjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0
b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtODAsMTkgKzgwLDE5IEBAIHZvaWQg
U2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpkaXNjb25uZWN0RnJvbVdvcmtlcihGcm9udGVu
ZENoYW5uZWwmIGNoYW5uZWwpCiAgICAgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckluc3Bl
Y3RvclByb3h5OjpzZW5kTWVzc2FnZVRvV29ya2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3Zv
aWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZVRvV29ya2VyKFN0cmlu
ZyYmIG1lc3NhZ2UpCiB7Ci0gICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkudGhyZWFkKCku
cnVuTG9vcCgpLnBvc3REZWJ1Z2dlclRhc2soW21lc3NhZ2UgPSBtZXNzYWdlLmlzb2xhdGVkQ29w
eSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgIG1fc2VydmljZVdv
cmtlclRocmVhZFByb3h5LnRocmVhZCgpLnJ1bkxvb3AoKS5wb3N0RGVidWdnZXJUYXNrKFttZXNz
YWdlID0gV1RGTW92ZShtZXNzYWdlKS5pc29sYXRlZENvcHkoKV0gKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpIHsKICAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KGNv
bnRleHQpLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQo
bWVzc2FnZSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5
OjpzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K3ZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZUZyb21Xb3JrZXJU
b0Zyb250ZW5kKFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKCFtX2NoYW5uZWwpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fY2hhbm5lbC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKG1lc3Nh
Z2UpOworICAgIG1fY2hhbm5lbC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKFdURk1vdmUobWVzc2Fn
ZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHku
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJ
bnNwZWN0b3JQcm94eS5oCmluZGV4IDM2YTgwYzlkNDViZmM0M2ZhMjg0NTNiYzE0ZjU5NzE0NTdh
MzVlYTIuLjc0MWUwYWU3NzkwMDlmZmVlODAxZTRiMWI1ZDcyNDNkZDM3ZjI1MjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJ
bnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oCkBAIC01Miw4ICs1Miw4IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgY29ubmVjdFRvV29ya2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVs
Jik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbVdvcmtlcihJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbCYpOwotICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlcihjb25zdCBTdHJpbmcmKTsKLSAg
ICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2VyKFN0cmluZyYmKTsKKyAgICB2b2lkIHNlbmRNZXNz
YWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoU3RyaW5nJiYpOwogCiBwcml2YXRlOgogICAgIFNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eSYgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBhOTRlNmQxZTc2NWQzNTkyMTA1ODcz
NDAxMzFjMGEzOTE5ZTZlODdmLi44YTIxOTQxODMzYmJhOGEwZGE2MDQ4YzNiYjc2ZTg2MDA1MWQ0
ZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTEyNiw5ICsx
MjYsOSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6cG9zdFRhc2tUb0xvYWRlcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdAogCiB2b2lkIFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eTo6cG9zdE1lc3NhZ2VUb0RlYnVnZ2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsK
LSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYg
eyAqdGhpcyB9LCBtZXNzYWdlID0gbWVzc2FnZS5pc29sYXRlZENvcHkoKV0geworICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0s
IG1lc3NhZ2UgPSBtZXNzYWdlLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogICAgICAgICAv
LyBGSVhNRTogSGFuZGxlIHRlcm1pbmF0ZWQgY2FzZS4KLSAgICAgICAgbV9pbnNwZWN0b3JQcm94
eS5zZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKG1lc3NhZ2UpOworICAgICAgICBtX2lu
c3BlY3RvclByb3h5LnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV1RGTW92ZShtZXNz
YWdlKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIFNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eTo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNv
bm5lY3RpbwogCiAgICAgQVNTRVJUKCFtX29uZ29pbmdGZXRjaFRhc2tzLmNvbnRhaW5zKGtleSkp
OwogICAgIG1fb25nb2luZ0ZldGNoVGFza3MuYWRkKGtleSwgY2xpZW50LmNvcHlSZWYoKSk7Ci0g
ICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwgcmVx
dWVzdCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJl
cikuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBmZXRj
aElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwgY2xp
ZW50SWRlbnRpZmllciA9IFdURk1vdmUoY2xpZW50SWRlbnRpZmllcikuaXNvbGF0ZWRDb3B5KCks
IHJlc3VsdGluZ0NsaWVudElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlc3VsdGluZ0NsaWVudElkZW50
aWZpZXIpLmlzb2xhdGVkQ29weSgpXShhdXRvJikgbXV0YWJsZSB7CisgICAgcG9zdFRhc2tGb3JN
b2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwgcmVxdWVzdCA9IHJlcXVlc3Qu
aXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlcikuaXNvbGF0ZWRDb3B5
KCksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLmlzb2xhdGVkQ29weSgpLCBmZXRjaElkZW50
aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwgY2xpZW50SWRl
bnRpZmllciA9IFdURk1vdmUoY2xpZW50SWRlbnRpZmllcikuaXNvbGF0ZWRDb3B5KCksIHJlc3Vs
dGluZ0NsaWVudElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlc3VsdGluZ0NsaWVudElkZW50aWZpZXIp
Lmlzb2xhdGVkQ29weSgpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgIHRocmVhZCgpLnF1ZXVl
VGFza1RvRmlyZUZldGNoRXZlbnQoV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBX
VEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyLCBpc1Nl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQsIFdURk1vdmUoY2xpZW50SWRlbnRp
ZmllciksIFdURk1vdmUocmVzdWx0aW5nQ2xpZW50SWRlbnRpZmllcikpOwogICAgIH0sIFdvcmtl
clJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApp
bmRleCBkNDdlN2I4MDVjNjJkMzRkMmQ4MmQ1ZmRmN2Q3N2Q0NWY4ZDc3YzFjLi4yYTYxNDZlYTFh
MzBjZGZhNmQ1NzJkNmE0NTQ0YzY4OGUzNzcyNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNl
LmNwcApAQCAtNjA1LDcgKzYwNSw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1w
b3J0UmVjb3JkcygpCiAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEgeyBXVEZNb3ZlKCprZXkpLCByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBX
VEZNb3ZlKHNjb3BlVVJMKSwgKnVwZGF0ZVZpYUNhY2hlLCBsYXN0VXBkYXRlQ2hlY2tUaW1lLCBz
dGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShzZXJ2aWNlV29ya2VyRGF0YSkgfTsK
ICAgICAgICAgYXV0byBjb250ZXh0RGF0YSA9IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7IHN0
ZDo6bnVsbG9wdCwgV1RGTW92ZShyZWdpc3RyYXRpb24pLCB3b3JrZXJJZGVudGlmaWVyLCBXVEZN
b3ZlKHNjcmlwdCksIFdURk1vdmUoKmNlcnRpZmljYXRlSW5mbyksIFdURk1vdmUoKmNvbnRlbnRT
ZWN1cml0eVBvbGljeSksIFdURk1vdmUoKmNvZXApLCBXVEZNb3ZlKHJlZmVycmVyUG9saWN5KSwg
V1RGTW92ZShzY3JpcHRVUkwpLCAqd29ya2VyVHlwZSwgdHJ1ZSwgTGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQ6OlllcywgV1RGTW92ZShzY3JpcHRSZXNvdXJjZU1hcCksIHN0ZDo6bnVsbG9w
dCwgV1RGTW92ZSgqbmF2aWdhdGlvblByZWxvYWRTdGF0ZSkgfTsKIAotICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29udGV4dERhdGEgPSBj
b250ZXh0RGF0YS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHREYXRhID0gV1RG
TW92ZShjb250ZXh0RGF0YSkuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5hZGRSZWdpc3RyYXRpb25Ub1N0b3JlKFdURk1vdmUoY29udGV4dERh
dGEpKTsKICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAppbmRleCAxYjA5NjAxNDg2Y2RhZjEw
OWMzODY2Y2IyODI0NDZjZjM3MGE0NDUzLi4zMDAyNjgxZTAyOWYxZDlkMzM3YzUyODY1MmU4NmIx
MmE0ZTE5YjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTb2NrZXRDaGFubmVsLmNwcApAQCAtMTI0LDkgKzEyNCw5IEBAIHZvaWQgTmV0d29ya1Nv
Y2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYg
cmVhc29uKQogICAgIGZpbmlzaENsb3NpbmdJZlBvc3NpYmxlKCk7CiB9CiAKLXZvaWQgTmV0d29y
a1NvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiBlcnJv
ck1lc3NhZ2UpCit2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVy
cm9yKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBtX2Vycm9yTWVzc2FnZSA9IGVycm9y
TWVzc2FnZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKICAg
ICBtX2Vycm9yVGltZXIuc3RhcnRPbmVTaG90KE5ldHdvcmtQcm9jZXNzOjpyYW5kb21DbG9zZWRQ
b3J0RGVsYXkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1NvY2tldENoYW5uZWwuaAppbmRleCA5MGY0NjVkY2JjNjA1NDNjYzU4Mjg1NDk3M2Fi
MzE2OGI4NTcwZTVhLi5mOTczY2ZjZTQ5Mjg1ODU5N2ExYWIxNzdhMTRmZGRiODc4MTIxOWRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFu
bmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hh
bm5lbC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlVGV4
dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKGNvbnN0IHVp
bnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQg
c2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IoU3RyaW5nJiYpOwogICAgIHZvaWQgZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNl
KFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5j
cHAKaW5kZXggN2NiYWYxZWZmNTQ0Mjg3ZGQzYWU4ODE2NzFhZGU1NTY2NThmOGZmMy4uZTQ0MDkw
ODE0ODU4NjY3ODgwZTcxN2Y1ZGJjMjM1MzkyYzcxNDZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
ZGlkSW5jcmVhc2VRdW90YShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFF1bwogICAg
IH0pOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3RlbUdldERpcmVj
dG9yeShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3RlbUdl
dERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYmIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggOTlhNDUzMTdkYmUzYjRmY2YwNGE5MmFhMWI1ZWFl
MDY3ZTdmNWQ3MC4uMmFiYjBmYjBlMzk4ZTc0ZjYwMTU4MmFlODVjNWU3OWMzMjU1OWU5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gTWVzc2FnZSBoYW5kbGVycyBmb3IgRmlsZVN5c3RlbS4KICAgICB2b2lkIHBlcnNpc3RlZChj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKICAgICB2b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBmaWxlU3lzdGVtR2V0RGly
ZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBmaWxlU3lz
dGVtR2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkNsaWVudE9yaWdpbiYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgY2xv
c2VIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAgIHZvaWQg
aXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKICAgICB2b2lkIG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCA3YzYzZmYzNTJlZTI3ODkw
MjkxMWZlOGVhNzY5ZjAxYmMzYTE2YzllLi41NmU4ODRjOTAyZjVjYzhjNzg4Y2U0MDM2MGE2MTY0
YmFlODIxNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMTE2LDkgKzExNiw5IEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNldFByb2Nlc3NQb29sKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2wqIHByb2Nlc3NQb29sKQogCiAvLyBJbnNwZWN0b3I6OlJlbW90ZUF1dG9tYXRpb25UYXJn
ZXQgQVBJCiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRpc3BhdGNoTWVzc2FnZUZyb21S
ZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKQogewotICAgIG1fYmFj
a2VuZERpc3BhdGNoZXItPmRpc3BhdGNoKG1lc3NhZ2UpOworICAgIG1fYmFja2VuZERpc3BhdGNo
ZXItPmRpc3BhdGNoKFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiBjaGFubmVsLCBib29s
IGlzQXV0b21hdGljQ29ubmVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oCmluZGV4IDEyYjdmMTkzMjJlYTc3ZjBiNjFhYTRmMDAzMTYyYzMyZWI5NzE5MjcuLjlm
NjVjYzgwNTY2NDRjYzA1NDMyYTJlODkxNTllNGEzODkwZDI3M2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
LmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNU
T1IpCiAgICAgLy8gSW5zcGVjdG9yOjpSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0IEFQSQogICAgIFN0
cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSWRlbnRpZmllcjsgfQotICAgIHZv
aWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAg
IHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKTsKICAgICB2
b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGlj
Q29ubmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSk7CiAgICAg
dm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJik7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdn
YWJsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVn
Z2FibGUuY3BwCmluZGV4IDY5ZTQ1NzY2MDA0ZGE2M2VkYTNmZWUwNGU0NWNhZTZmZTc0ZDIzZTYu
LjQ2M2ZmZDJjY2RlOGZmYTYxMTdhNzU0MWRiZGViYjBlYWU1OGYyYzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdnYWJsZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxlLmNw
cApAQCAtNzksOSArNzksOSBAQCB2b2lkIFdlYlBhZ2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZy
b250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKICAgICBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigp
LmRpc2Nvbm5lY3RGcm9udGVuZChjaGFubmVsKTsKIH0KIAotdm9pZCBXZWJQYWdlRGVidWdnYWJs
ZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lk
IFdlYlBhZ2VEZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYmIG1l
c3NhZ2UpCiB7Ci0gICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNwYXRjaE1lc3Nh
Z2VGcm9tRnJvbnRlbmQobWVzc2FnZSk7CisgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIo
KS5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIHZv
aWQgV2ViUGFnZURlYnVnZ2FibGU6OnNldEluZGljYXRpbmcoYm9vbCBpbmRpY2F0aW5nKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dh
YmxlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVnZ2Fi
bGUuaAppbmRleCA4Zjg0OGRlMTE2YTYxNDU4ZDE4MzNlYTgwOWZjMDZlZmQ1ZWU3YTNkLi4yZjE5
OWNhNTRhMDRiNWMwZDhjOTcyYjU3NDg4MTg4MTdlNjExODYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVnZ2FibGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVnZ2FibGUuaApAQCAtNDks
NyArNDksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVu
ZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVk
aWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7CiAgICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rv
cjo6RnJvbnRlbmRDaGFubmVsJikgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9t
UmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaE1l
c3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYmIG1lc3NhZ2UpIGZpbmFsOwogICAgIHZvaWQgc2V0SW5k
aWNhdGluZyhib29sKSBmaW5hbDsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlKCkg
Y29uc3QgeyByZXR1cm4gbV9uYW1lT3ZlcnJpZGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApp
bmRleCA3MGM0ZjgyM2YzYmY2NjI1ZDU1M2M4NzkzMjNhZjllMzFmMmQwMGQ1Li5jNzY4OGZlZTNj
NTc3Zjc2YjkxZWYwYjM3Y2I1ZGRhNGViMGE0NGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmll
dmVDYWNoZXMoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnCiAgICAgY29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVj
dGlvbjo6Q2FjaGVzKG9yaWdpbiwgdXBkYXRlQ291bnRlciksIFdURk1vdmUoY2FsbGJhY2spKTsK
IH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHModWlu
dDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRp
b25zJiBvcHRpb25zLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYg
Y2FsbGJhY2spCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlUmVjb3Jk
cyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJldHJpZXZlUmVjb3Jkc09wdGlv
bnMmJiBvcHRpb25zLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYg
Y2FsbGJhY2spCiB7CiAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6UmV0cmlldmVSZWNvcmRzKGNhY2hlSWRl
bnRpZmllciwgb3B0aW9ucyksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bi5oCmluZGV4IDE3YWM0MGEyMWJmZWZmZWY2OWVkN2IwNzkyNGQzNTNiYWQzZmYxMTkuLmU4YzFl
ZGI5MDQyMGNiOGJmYzI4OWNiMDQyZGRhYzcyYzgwNmZkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
aApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90IGNh
Y2hlSWRlbnRpZmllciwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNh
bGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmV0cmlldmVDYWNoZXMoY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiwgdWludDY0X3QgdXBkYXRlQ291bnRlciwgV2ViQ29yZTo6RE9NQ2FjaGVF
bmdpbmU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKSBmaW5hbDsKIAotICAgIHZvaWQgcmV0cmlldmVS
ZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmV0cmlldmVS
ZWNvcmRzT3B0aW9ucyYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2sm
JikgZmluYWw7CisgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYsIFdlYkNvcmU6OkRPTUNhY2hl
RW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBiYXRjaERlbGV0ZU9w
ZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OkNhY2hlUXVlcnlPcHRpb25zJiYsIFdlYkNvcmU6OkRPTUNhY2hl
RW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYmF0
Y2hQdXRPcGVyYXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6
RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggY2EwNjA4YWI3
OTgzNzhhMzM1Y2I5ZGJlZTUwZTEzYzAyMDQ4NWUzYy4uZWJjNTNlYmZhOTEwOWM0OTE0Yjg5ZDc0
OWEwNGMwZjVkY2QxNjdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTIxMiwxNCArMjEyLDE0IEBAIHZvaWQg
V2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKQog
ICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpD
bG9zZSB7IGNvZGUsIHJlYXNvbiB9KTsKIH0KIAotdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpmYWls
KGNvbnN0IFN0cmluZyYgcmVhc29uKQordm9pZCBXZWJTb2NrZXRDaGFubmVsOjpmYWlsKFN0cmlu
ZyYmIHJlYXNvbikKIHsKICAgICAvLyBUaGUgY2xpZW50IGNhbiBjbG9zZSB0aGUgY2hhbm5lbCwg
cG90ZW50aWFsbHkgcmVtb3ZpbmcgdGhlIGxhc3QgcmVmZXJlbmNlLgogICAgIFJlZiBwcm90ZWN0
ZWRUaGlzIHsgKnRoaXMgfTsKIAogICAgIGxvZ0Vycm9yTWVzc2FnZShyZWFzb24pOwogICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVh
c29uKTsKKyAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nIHsg
cmVhc29uIH0pOwogCiAgICAgaWYgKG1faXNDbG9zaW5nKQogICAgICAgICByZXR1cm47CkBAIC0y
NjAsNyArMjYwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dChTdHJp
bmcmJiBtZXNzYWdlKQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlKTsKKyAgICBtX2NsaWVudC0+ZGlk
UmVjZWl2ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkKQEAg
LTMwOCw3ICszMDgsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBsb2dF
cnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKLSAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2VFcnJvcihlcnJvck1lc3NhZ2UpOworICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVy
cm9yKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6
bmV0d29ya1Byb2Nlc3NDcmFzaGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCA4OThiNmE0MTg4NTY5MTM4NjRmY2Vm
NzJiNDBmZWY4MGVlMTA3MjczLi44ZjEyNTcyYjU5NjBlOTYwZTMxODE2NzkyNzU3ZmYxZjg3YmMz
ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU2VuZFJlc3VsdCBz
ZW5kKFdlYkNvcmU6OkJsb2ImKSBmaW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uKSBmaW5hbDsKLSAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOwor
ICAgIHZvaWQgZmFpbChTdHJpbmcmJiByZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzY29ubmVj
dCgpIGZpbmFsOwogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwogICAgIHZvaWQgcmVzdW1lKCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCBlNzA5MDUwNzM5OTJh
ZGU0ZjQ5NzFhNDc2MGMwMjczNzgzN2ZhODEyLi42NTU0NGFjNDJlYzcyNGFhZmJjZWNlYWUzODVi
NjI4OTg1NGY4MmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTQxLDcg
KzQxLDcgQEAgUmVmPFdlYlN0b3JhZ2VDb25uZWN0aW9uPiBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6
Y3JlYXRlKCkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTdG9yYWdlQ29ubmVjdGlvbik7
CiB9CiAKLXZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmdldFBlcnNpc3RlZChjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxs
YmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6Z2V0
UGVyc2lzdGVkKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbiwgU3RvcmFnZUNvbm5lY3Rp
b246OlBlcnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGNvbm5lY3Rp
b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
UGVyc2lzdGVkKG9yaWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KQEAgLTUx
LDcgKzUxLDcgQEAgdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lzdChjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgU3RvcmFnZUMKICAgICBjb25uZWN0aW9uKCkuc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlBlcnNpc3Qo
b3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlN0b3Jh
Z2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYgb3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2sm
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0
ZW1HZXREaXJlY3RvcnkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luLCBTdG9yYWdlQ29u
bmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBhdXRvJiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwogICAgIGNvbm5lY3Rpb24uc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkZpbGVTeXN0ZW1H
ZXREaXJlY3Rvcnkob3JpZ2luKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0
aW9uLmgKaW5kZXggODIyNjVkZjRhMWU0ODhkNGZlZmJhMGQ0NjQ2YjZiZGIxNjRlOWEyMy4uZWEy
ZDQ4MjY0NWNjOTBjODA0ODJiODM1NmM1NTJjZjBhMGRhZmI1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VD
b25uZWN0aW9uLmgKQEAgLTQzLDkgKzQzLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vi
U3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgZ2V0UGVy
c2lzdGVkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFN0b3JhZ2VDb25uZWN0aW9uOjpQ
ZXJzaXN0Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRQZXJzaXN0ZWQoV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiYsIFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2FsbGJhY2smJikgZmlu
YWw7CiAgICAgdm9pZCBwZXJzaXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFN0b3Jh
Z2VDb25uZWN0aW9uOjpQZXJzaXN0Q2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBmaWxlU3lz
dGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFN0b3JhZ2VDb25u
ZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGZpbGVTeXN0
ZW1HZXREaXJlY3RvcnkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFN0b3JhZ2VDb25uZWN0aW9u
OjpHZXREaXJlY3RvcnlDYWxsYmFjayYmKSBmaW5hbDsKIAogICAgIElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbigpOwogfTsK
</data>
<flag name="commit-queue"
          id="481915"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454304</attachid>
            <date>2022-03-09 17:58:18 -0800</date>
            <delta_ts>2022-03-09 18:43:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237695-20220309175817.patch</filename>
            <type>text/plain</type>
            <size>109917</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjFhMDJjZjI3NTE2MmJjMTVkM2YwMzc5MjdkMGRmZTExODNiM2RjLi44ZjMyYTI1NjA2NWJmZGEy
ZTg0MzBlODczZmU2NDIwMGU4M2I0ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wMy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3MgdGhy
ZWFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
Njk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0
aW1pemUgZnVydGhlciB0aGUgcGFzc2luZyBvZiBkYXRhIGFjcm9zcyB0aHJlYWRzIGJ5IGxldmVy
YWdpbmcgdGhlIG9wdGltaXplZAorICAgICAgICB2ZXJzaW9uIG9mIGlzb2xhdGVkQ29weSgpIG9u
IHItdmFsdWUgcmVmZXJlbmNlcyB3aGVuZXZlciBwb3NzaWJsZS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0OjpzZW5kTWVzc2FnZVRvVGFyZ2V0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Lmg6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICog
dG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbk92ZXJy
aWRlczo6aW5pdGlhbGl6ZU92ZXJyaWRlRm9yKToKKwogMjAyMi0wMy0wOSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBTdG9w
IHVzaW5nIHRoZSBlbnYgdmFyIFdFQktJVF9JTlNQRUNUT1JfU0VSVkVSIHRvIGNvbm5lY3QgdG8g
dGhlIGluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVlM2RmOTZkOGRlOTQ5OGFhNDhlMjEyODc4M2Jh
OTVmY2U0MDk5NjYuLmU5Mjk5Mzc2ODQ0MmFjOTVjMjdkYzUyMTE1ZWU3ZmE3ZGE1YWU5NGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMzEgQEAKKzIwMjItMDMtMDkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBmdXJ0aGVyIHRoZSBwYXNzaW5nIG9m
IGRhdGEgYWNyb3NzIHRocmVhZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3Mg
dGhyZWFkcyBieSBsZXZlcmFnaW5nIHRoZSBvcHRpbWl6ZWQKKyAgICAgICAgdmVyc2lvbiBvZiBp
c29sYXRlZENvcHkoKSBvbiByLXZhbHVlIHJlZmVyZW5jZXMgd2hlbmV2ZXIgcG9zc2libGUuCisK
KyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjpxdWVyeUNhY2hlKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9Dcm9zc1RocmVhZFJlY29y
ZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6cmVjb3Jkc0RhdGFGcm9tUmVjb3Jkcyk6CisgICAg
ICAgIChXZWJDb3JlOjpyZWNvcmRzRGF0YU9yRXJyb3JGcm9tUmVjb3Jkcyk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6YmF0Y2hQdXRP
cGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGV0YWNoZWRSVENEYXRhQ2hhbm5lbDo6RGV0YWNoZWRSVENEYXRhQ2hh
bm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjpkZWNvZGUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmRldGFjaCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24p
OgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE6Omlzb2xhdGVkQ29weSk6CisgICAg
ICAgICogTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oOgorICAgICAgICAq
IE1vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFuYWdlcjo6
cGVyc2lzdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVt
QWNjZXNzR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU3RvcmFnZUNvbm5l
Y3Rpb246OmdldFBlcnNpc3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTdG9yYWdlQ29u
bmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy9zdG9y
YWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VW
ZXJzaW9uV3JhcHBlcjo6Q2hhbmdlVmVyc2lvbldyYXBwZXIpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
YW5nZVZlcnNpb25XcmFwcGVyOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmNoYW5nZVZlcnNp
b24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6OmFkZE9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxFcnJvcjo6U1FMRXJyb3IpOgorICAgICAgICAq
IE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWw6OnByb2Nlc3NGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbENsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5k
c2hha2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpzZXRVUkwp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y29ubmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpmYWlsKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aDoKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YTo6dG9FeGNlcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YTo6dG9FeGNlcHRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdl
bnQ6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiBwYWdlL0NhY2hlU3Rv
cmFnZVByb3ZpZGVyLmg6CisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlRGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZSk6
CisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VySW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9y
UHJveHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VySW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpw
b3N0TWVzc2FnZVRvRGVidWdnZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVu
dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpq
b2JSZWplY3RlZEluU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ6Omlzb2xhdGVkQ29weSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2Ny
aXB0Ojppc29sYXRlZENvcHkpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb246OnNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnM6Omlzb2xhdGVk
Q29weSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25PcHRpb25zLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckRlYnVnZ2FibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckRlYnVn
Z2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VUb1dv
cmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OnNl
bmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnBvc3RNZXNzYWdlVG9EZWJ1Z2dl
cik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0
Y2gpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OmltcG9ydFJl
Y29yZHMpOgorCiAyMDIyLTAzLTA5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFtjc3MtbGlzdHNdIGNzcy9jc3MtbGlzdHMvaW5oZXJpdC1vdmVyd3JpdGVz
Lmh0bWwgYW5kIGNzcy9jc3MtbGlzdHMvbGktY291bnRlci1pbmNyZW1lbnQtY29tcHV0ZWQtc3R5
bGUuaHRtbCBhcmUgdW5pcXVlIGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzNDczZDE0MzE4M2IyOGE5
Y2NiZDJhZjdiYTE0MTEyM2MxNWNkNDcuLjJkNzc1NWNlOTc5MTc0OTdlY2Q4OGEwNTg5YTM2MTZk
ZTYxODMwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjItMDMtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBmdXJ0aGVyIHRoZSBw
YXNzaW5nIG9mIGRhdGEgYWNyb3NzIHRocmVhZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0
YSBhY3Jvc3MgdGhyZWFkcyBieSBsZXZlcmFnaW5nIHRoZSBvcHRpbWl6ZWQKKyAgICAgICAgdmVy
c2lvbiBvZiBpc29sYXRlZENvcHkoKSBvbiByLXZhbHVlIHJlZmVyZW5jZXMgd2hlbmV2ZXIgcG9z
c2libGUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVz
c2FnZUVycm9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lz
dGVtR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b246OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJQYWdlRGVidWdnYWJsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VEZWJ1
Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNo
ZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldENoYW5uZWw6OmZhaWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpk
aWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9y
YWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9u
OjpnZXRQZXJzaXN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6
ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIyLTAzLTA5ICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgYWNjZXNzaWJpbGl0eSBsaWJy
YXJ5IHNob3VsZCBiZSBzb2Z0IGxpbmtlZCBvcHRpb25hbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVj
dGlvblRvVGFyZ2V0LmNwcAppbmRleCA3ZDA2ZmFkZWRhYTE0NWZjYWZlODYzYjIwOTE1OWFkN2Jm
Zjc3YWI1Li5mMTZmMWNlZTZiYmM0MzhjYWY2OGVlMzdkOGYxYjZkMDE1YmFmZTVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVt
b3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBS
ZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwKGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9u
LCBib29sIGF1dG9tYXRpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW1vdGVDb25u
ZWN0aW9uVG9UYXJnZXQ6OnNlbmRNZXNzYWdlVG9UYXJnZXQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQordm9pZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNlbmRNZXNzYWdlVG9UYXJnZXQoU3Ry
aW5nJiYgbWVzc2FnZSkKIHsKICAgICBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQqIHRhcmdldCA9
IG51bGxwdHI7CiAgICAgewpAQCAtODIsNyArODIsNyBAQCB2b2lkIFJlbW90ZUNvbm5lY3Rpb25U
b1RhcmdldDo6c2VuZE1lc3NhZ2VUb1RhcmdldChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAg
ICAgIHRhcmdldCA9IG1fdGFyZ2V0OwogICAgIH0KIAotICAgIHRhcmdldC0+ZGlzcGF0Y2hNZXNz
YWdlRnJvbVJlbW90ZShtZXNzYWdlKTsKKyAgICB0YXJnZXQtPmRpc3BhdGNoTWVzc2FnZUZyb21S
ZW1vdGUoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIHZvaWQgUmVtb3RlQ29ubmVjdGlvblRvVGFy
Z2V0OjpjbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCmluZGV4IGRmYjc5
NjI4OTA5YzEwYzQ3YWM2YTU1N2ZhZDc1M2NiMDI0ZWIwYjIuLjg0MzkxNzc1ZDY0ZGIxYTI0NWI5
Yzk5NWU2ZjEzODk2MzIwNWRjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5o
CkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lk
IHNlbmRNZXNzYWdlVG9UYXJnZXQoTlNTdHJpbmcgKik7CiAjZWxzZQotICAgIHZvaWQgc2VuZE1l
c3NhZ2VUb1RhcmdldChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlVG9UYXJn
ZXQoU3RyaW5nJiYpOwogI2VuZGlmCiAgICAgdm9pZCBjbG9zZSgpOwogICAgIHZvaWQgdGFyZ2V0
Q2xvc2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCmluZGV4IDBlN2I1YjI5
NDdiMGUwOGVkNjkzNzYyOTZjMWRiZGU4MGZlNzIwMmUuLmM5ZWY4ODU1Y2FhY2IxMjI3ODk0YWUx
YWY3ZjZkYzIxOGY4NmE5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCkBA
IC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZW1vdGVDb250cm9sQWxsb3dlZCgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJv
bVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKSA9IDA7CiAKICNpZiBVU0UoQ0YpCiAgICAgLy8gVGhl
IGRpc3BhdGNoIGJsb2NrIHdpbGwgYmUgc2NoZWR1bGVkIG9uIGEgZ2xvYmFsIHJ1biBsb29wIGlm
IG51bGwgaXMgcmV0dXJuZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXQuY3BwCmluZGV4IDBhYzJhMjJlNzhkYmRjMWU3MmY3MzEzZGM2NmZlNDliMTg1Y2RlODAuLjVl
MjM2YTJjNGUwMjY3OGExNWI4M2U4N2ZmNzdmZmQwZTFhM2RhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCkBAIC0zNDUsNyArMzQ1LDcgQEAgdm9pZCBS
ZW1vdGVJbnNwZWN0b3I6OnNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IEV2ZW50JiBldmVudCkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb25uZWN0aW9uVG9UYXJnZXQtPnNl
bmRNZXNzYWdlVG9UYXJnZXQoZXZlbnQubWVzc2FnZS52YWx1ZSgpKTsKKyAgICBjb25uZWN0aW9u
VG9UYXJnZXQtPnNlbmRNZXNzYWdlVG9UYXJnZXQoU3RyaW5nIHsgZXZlbnQubWVzc2FnZS52YWx1
ZSgpIH0pOwogfQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6c3RhcnRBdXRvbWF0aW9uU2Vzc2lv
bihjb25zdCBFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDQ1YmQyZjliMGQx
MjlkZjhiN2E2NTEwYjkwODYxM2Y1ZDY3ZjA1NmQuLmU3ZDNjZTk0MjFlNWRjMTJlMDliYWYwMmJl
NTUwNDJhZmFkNjA3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yMTMwLDcgKzIxMzAsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIAogICAgIFRocmVhZDo6Y3JlYXRlKAogICAg
ICAgICAiSlNDIEFnZW50IiwKLSAgICAgICAgW3NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmlzb2xh
dGVkQ29weSgpLCB3b3JrZXJQYXRoID0gd29ya2VyUGF0aC5pc29sYXRlZENvcHkoKSwgJmRpZFN0
YXJ0TG9jaywgJmRpZFN0YXJ0Q29uZGl0aW9uLCAmZGlkU3RhcnRdICgpIHsKKyAgICAgICAgW3Nv
dXJjZUNvZGUgPSBXVEZNb3ZlKHNvdXJjZUNvZGUpLmlzb2xhdGVkQ29weSgpLCB3b3JrZXJQYXRo
ID0gV1RGTW92ZSh3b3JrZXJQYXRoKS5pc29sYXRlZENvcHkoKSwgJmRpZFN0YXJ0TG9jaywgJmRp
ZFN0YXJ0Q29uZGl0aW9uLCAmZGlkU3RhcnRdICgpIHsKICAgICAgICAgICAgIENvbW1hbmRMaW5l
IGNvbW1hbmRMaW5lKENvbW1hbmRMaW5lOjpDb21tYW5kTGluZUZvcldvcmtlcnMpOwogICAgICAg
ICAgICAgY29tbWFuZExpbmUubV9pbnRlcmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgICAgcnVu
SlNDKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3REZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZS5jcHAKaW5kZXggMzdkM2MyODk2MTEyMjlkYWFjOWU5ZjJhODdl
NmM5YTg5MzEwMjIyMy4uZGU1ZTM3ZDBmYTM0MDJlNzc2ZjFmZmY4MmNkMWU1NDY4ZTY2ZmYxYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdERlYnVnZ2FibGUuY3BwCkBAIC02NCwxMSArNjQsMTEgQEAgdm9pZCBKU0dsb2JhbE9i
amVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5u
ZWwpCiAgICAgbV9nbG9iYWxPYmplY3QuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RG
cm9udGVuZChmcm9udGVuZENoYW5uZWwpOwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdn
YWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2
b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShT
dHJpbmcmJiBtZXNzYWdlKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJm1fZ2xvYmFsT2Jq
ZWN0LnZtKCkpOwogCi0gICAgbV9nbG9iYWxPYmplY3QuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRp
c3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKKyAgICBtX2dsb2JhbE9iamVjdC5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKFdURk1vdmUo
bWVzc2FnZSkpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6cGF1c2VXYWl0
aW5nRm9yQXV0b21hdGljSW5zcGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCmluZGV4IDk1NTA4ZDRm
ZjFjMzA1MDI4NGY5YWIyMjU1YjhjNjI2ZWQ4ZGIwMGQuLjc4YzQ1MGM1YjVmZDM2ZWFjNTQ3MDcy
NGRkNWNjNjY0ZmY1NjQzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJv
b2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9
IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENo
YW5uZWwmKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1v
dGUoU3RyaW5nJiYgbWVzc2FnZSkgZmluYWw7CiAKICAgICBib29sIGF1dG9tYXRpY0luc3BlY3Rp
b25BbGxvd2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgcGF1c2VX
YWl0aW5nRm9yQXV0b21hdGljSW5zcGVjdGlvbigpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKaW5kZXggMzBmNWU3NmM5MTRl
NjQ4ODFlNDE4ZTZlMzkzYjJiOTI1NDc3MWMzZi4uN2EzYjM3OTI0YmU1NjA1NDdmYzJkZmZlMzMy
ZDNlNjZiZjhhOTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1
bmN0aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVu
Y3Rpb25PdmVycmlkZXMuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgYm9vbCBGdW5jdGlvbk92ZXJy
aWRlczo6aW5pdGlhbGl6ZU92ZXJyaWRlRm9yKGNvbnN0IFNvdXJjZUNvZGUmIG9yaWdDb2RlLCBG
dW5jdGkKICAgICBTdHJpbmcgbmV3Qm9keTsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBvdmVycmlkZXMubV9sb2NrIH07Ci0gICAgICAgIGF1dG8gaXQgPSBvdmVycmlkZXMubV9lbnRy
aWVzLmZpbmQoc291cmNlQm9keVN0cmluZy5pc29sYXRlZENvcHkoKSk7CisgICAgICAgIGF1dG8g
aXQgPSBvdmVycmlkZXMubV9lbnRyaWVzLmZpbmQoV1RGTW92ZShzb3VyY2VCb2R5U3RyaW5nKS5p
c29sYXRlZENvcHkoKSk7CiAgICAgICAgIGlmIChpdCA9PSBvdmVycmlkZXMubV9lbnRyaWVzLmVu
ZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBuZXdCb2R5ID0gaXQtPnZh
bHVlLmlzb2xhdGVkQ29weSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA3N2RhZDQ4NWNjMGM1Y2Y3NDVmYzJi
YjFjMDAxYWUxYjU5YzE5MWM2Li4zNGU3MDgyMDE4OTc3YWU3OTcyMDM1ZTAwYjNkNzA0ODBiMWUy
M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIERPTUNhY2hlRW5naW5lOjpDYWNo
ZUlkZW50aWZpZXJDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJldHJpZXZlQ2Fj
aGVzKGNvbnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIERPTUNhY2hl
RW5naW5lOjpDYWNoZUluZm9zQ2FsbGJhY2smJikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJl
dHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJldHJpZXZlUmVj
b3Jkc09wdGlvbnMmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNr
JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
ciwgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIERPTUNhY2hlRW5naW5lOjpSZWNv
cmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0RPTUNhY2hlLmNwcAppbmRleCAyZDQ2ZDFjZGJjNzE3ZjNjOTI5OWVmYTg2M2E1NDkyNjM4
M2FmNWRmLi4wNjIyZDQ1ZjU1ZWU4NDgzNTE4NzdhNTM4Y2NmYTk4NTBjYzk1NjI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtNDYwLDcgKzQ2MCw3IEBA
IHZvaWQgRE9NQ2FjaGU6OmtleXMoc3RkOjpvcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBD
YWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvCiB2b2lkIERPTUNhY2hlOjpxdWVyeUNhY2hlKFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zLCBT
aG91bGRSZXRyaWV2ZVJlc3BvbnNlcyBzaG91bGRSZXRyaWV2ZVJlc3BvbnNlcywgUmVjb3Jkc0Nh
bGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyByZXRyaWV2
ZU9wdGlvbnMgeyBXVEZNb3ZlKHJlcXVlc3QpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3koKSwgKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgb3B0aW9ucy5pZ25vcmVTZWFyY2gsIG9wdGlvbnMuaWdub3JlTWV0aG9k
LCBvcHRpb25zLmlnbm9yZVZhcnksIHNob3VsZFJldHJpZXZlUmVzcG9uc2VzID09IFNob3VsZFJl
dHJpZXZlUmVzcG9uc2VzOjpZZXMgfTsKLSAgICBtX2Nvbm5lY3Rpb24tPnJldHJpZXZlUmVjb3Jk
cyhtX2lkZW50aWZpZXIsIHJldHJpZXZlT3B0aW9ucywgW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9
IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX2Nvbm5lY3Rpb24tPnJldHJpZXZlUmVj
b3JkcyhtX2lkZW50aWZpZXIsIFdURk1vdmUocmV0cmlldmVPcHRpb25zKSwgW3RoaXMsIHBlbmRp
bmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1faXNT
dG9wcGVkKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhET01DYWNoZUVuZ2luZTo6Y29udmVydFRv
RXhjZXB0aW9uQW5kTG9nKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgRE9NQ2FjaGVFbmdpbmU6
OkVycm9yOjpTdG9wcGVkKSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAppbmRleCBiZDIwNGE5Yzc5ZjQ1MTRjZjkwMDNlY2UzNjZkYTM0Y2YxY2VjNWM1Li40
NmZkZWZmNGJjZTQ3NWFiZjIxNzMyMTViYzIwYmVlYTI3ODc3NDU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5jcHAKQEAgLTU2LDE1ICs1NiwxNSBAQCBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZWNvcmRE
YXRhIHsKICAgICB1aW50NjRfdCByZXNwb25zZUJvZHlTaXplOwogfTsKIAotc3RhdGljIENyb3Nz
VGhyZWFkUmVjb3JkRGF0YSB0b0Nyb3NzVGhyZWFkUmVjb3JkRGF0YShjb25zdCBSZWNvcmQmIHJl
Y29yZCkKK3N0YXRpYyBDcm9zc1RocmVhZFJlY29yZERhdGEgdG9Dcm9zc1RocmVhZFJlY29yZERh
dGEoUmVjb3JkJiYgcmVjb3JkKQogewogICAgIHJldHVybiBDcm9zc1RocmVhZFJlY29yZERhdGEg
ewogICAgICAgICByZWNvcmQuaWRlbnRpZmllciwKICAgICAgICAgcmVjb3JkLnVwZGF0ZVJlc3Bv
bnNlQ291bnRlciwKICAgICAgICAgcmVjb3JkLnJlcXVlc3RIZWFkZXJzR3VhcmQsCi0gICAgICAg
IHJlY29yZC5yZXF1ZXN0Lmlzb2xhdGVkQ29weSgpLAotICAgICAgICByZWNvcmQub3B0aW9ucy5p
c29sYXRlZENvcHkoKSwKLSAgICAgICAgcmVjb3JkLnJlZmVycmVyLmlzb2xhdGVkQ29weSgpLAor
ICAgICAgICBXVEZNb3ZlKHJlY29yZC5yZXF1ZXN0KS5pc29sYXRlZENvcHkoKSwKKyAgICAgICAg
V1RGTW92ZShyZWNvcmQub3B0aW9ucykuaXNvbGF0ZWRDb3B5KCksCisgICAgICAgIFdURk1vdmUo
cmVjb3JkLnJlZmVycmVyKS5pc29sYXRlZENvcHkoKSwKICAgICAgICAgcmVjb3JkLnJlc3BvbnNl
SGVhZGVyc0d1YXJkLAogICAgICAgICByZWNvcmQucmVzcG9uc2UuY3Jvc3NUaHJlYWREYXRhKCks
CiAgICAgICAgIGlzb2xhdGVkUmVzcG9uc2VCb2R5KHJlY29yZC5yZXNwb25zZUJvZHkpLApAQCAt
ODgsMTcgKzg4LDE3IEBAIHN0YXRpYyBSZWNvcmQgZnJvbUNyb3NzVGhyZWFkUmVjb3JkRGF0YShD
cm9zc1RocmVhZFJlY29yZERhdGEmJiBkYXRhKQogICAgIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUg
VmVjdG9yPENyb3NzVGhyZWFkUmVjb3JkRGF0YT4gcmVjb3Jkc0RhdGFGcm9tUmVjb3Jkcyhjb25z
dCBWZWN0b3I8UmVjb3JkPiYgcmVjb3JkcykKK3N0YXRpYyBpbmxpbmUgVmVjdG9yPENyb3NzVGhy
ZWFkUmVjb3JkRGF0YT4gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhWZWN0b3I8UmVjb3JkPiYmIHJl
Y29yZHMpCiB7Ci0gICAgcmV0dXJuIFdURjo6bWFwKHJlY29yZHMsIHRvQ3Jvc3NUaHJlYWRSZWNv
cmREYXRhKTsKKyAgICByZXR1cm4gV1RGOjptYXAoV1RGTW92ZShyZWNvcmRzKSwgdG9Dcm9zc1Ro
cmVhZFJlY29yZERhdGEpOwogfQogCi1zdGF0aWMgaW5saW5lIEV4cGVjdGVkPFZlY3RvcjxDcm9z
c1RocmVhZFJlY29yZERhdGE+LCBFcnJvcj4gcmVjb3Jkc0RhdGFPckVycm9yRnJvbVJlY29yZHMo
Y29uc3QgUmVjb3Jkc09yRXJyb3ImIHJlc3VsdCkKK3N0YXRpYyBpbmxpbmUgRXhwZWN0ZWQ8VmVj
dG9yPENyb3NzVGhyZWFkUmVjb3JkRGF0YT4sIEVycm9yPiByZWNvcmRzRGF0YU9yRXJyb3JGcm9t
UmVjb3JkcyhSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkKIHsKICAgICBpZiAoIXJlc3VsdC5oYXNf
dmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJlc3VsdC5lcnJvcigpKTsK
KyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFdURk1vdmUocmVzdWx0KS5lcnJvcigpKTsK
IAotICAgIHJldHVybiByZWNvcmRzRGF0YUZyb21SZWNvcmRzKHJlc3VsdC52YWx1ZSgpKTsKKyAg
ICByZXR1cm4gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhXVEZNb3ZlKHJlc3VsdCkudmFsdWUoKSk7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgVmVjdG9yPFJlY29yZD4gcmVjb3Jkc0Zyb21SZWNvcmRzRGF0
YShWZWN0b3I8Q3Jvc3NUaHJlYWRSZWNvcmREYXRhPiYmIHJlY29yZHNEYXRhKQpAQCAtMTk1LDE0
ICsxOTUsMTQgQEAgdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZUNh
Y2hlc0NvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnQKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpy
ZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXRyaWV2ZVJl
Y29yZHNPcHRpb25zJiBvcHRpb25zLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQg
V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNh
Y2hlSWRlbnRpZmllciwgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZHND
YWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0g
KyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKICAgICBtX3JldHJpZXZlUmVjb3Jkc1BlbmRpbmdS
ZXF1ZXN0cy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAg
IGNhbGxPbk1haW5UaHJlYWQoW3dvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkg
fSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0
SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZl
UmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIG9wdGlvbnMsIFt3b3JrZXJUaHJlYWQgPSBXVEZNb3Zl
KHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYmIHJlc3Vs
dCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRzKHJlc3VsdCks
IHJlcXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkgfSwgbWFpblRo
cmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmll
ciwgY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKS5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZl
UmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIFdURk1vdmUob3B0aW9ucyksIFt3b3JrZXJUaHJlYWQg
PSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJv
ciYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3Ao
KS5wb3N0VGFza0Zvck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRz
KFdURk1vdmUocmVzdWx0KSksIHJlcXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFi
bGUgewogICAgICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSku
Y2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpLnJldHJpZXZlUmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0
SWRlbnRpZmllciwgcmVjb3Jkc09yRXJyb3JGcm9tUmVjb3Jkc0RhdGEoV1RGTW92ZShyZXN1bHQp
KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAg
ICAgfSk7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFYKICAgICB1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CiAg
ICAgbV9iYXRjaERlbGV0ZUFuZFB1dFBlbmRpbmdSZXF1ZXN0cy5hZGQocmVxdWVzdElkZW50aWZp
ZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dvcmtlclRo
cmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVy
LCByZWNvcmRzRGF0YSA9IHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVjb3JkcyldKCkgbXV0YWJs
ZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS50
aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24s
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlY29yZHNEYXRhID0gcmVjb3Jk
c0RhdGFGcm9tUmVjb3JkcyhXVEZNb3ZlKHJlY29yZHMpKV0oKSBtdXRhYmxlIHsKICAgICAgICAg
bWFpblRocmVhZENvbm5lY3Rpb24tPmJhdGNoUHV0T3BlcmF0aW9uKGNhY2hlSWRlbnRpZmllciwg
cmVjb3Jkc0Zyb21SZWNvcmRzRGF0YShXVEZNb3ZlKHJlY29yZHNEYXRhKSksIFt3b3JrZXJUaHJl
YWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUmVjb3JkSWRl
bnRpZmllcnNPckVycm9yJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIHdvcmtlclRo
cmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3Vs
dCA9IFdURk1vdmUocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAg
ICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24oKS5wdXRSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKHJl
c3VsdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dv
cmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA3MTRkMjk0NDE3YzRkNzE5M2FhZjZm
OWEyMTYyY2I2Nzk1YmY4ZTY5Li4xNWM2Zjk0N2YyNTNiYTVhYmNmOWM0NzM5OWRiYWU2ZjRmM2Qy
OTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dv
cmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgRE9NQ2FjaGVFbmdpbmU6
OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmV0cmlldmVDYWNo
ZXMoY29uc3QgQ2xpZW50T3JpZ2luJiwgdWludDY0X3QgdXBkYXRlQ291bnRlciwgRE9NQ2FjaGVF
bmdpbmU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKSBmaW5hbDsKIAotICAgIHZvaWQgcmV0cmlldmVS
ZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmV0cmlldmVSZWNvcmRzT3B0
aW9ucyYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBSZXRyaWV2ZVJlY29y
ZHNPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CiAg
ICAgdm9pZCBiYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hlRW5naW5l
OjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYmF0Y2hQdXRP
cGVyYXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6
OlJlY29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9E
T01GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcAppbmRleCBiNzAwZDg0NDRiMjBlYmQ3MGU5ZTUzNDE0ZTE3NjU5YjFmYTQ1
ZWI0Li45ZjQ4MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBA
IC0yNTcsNyArMjU3LDcgQEAgdm9pZCBET01GaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1EaXIKIAogICAgIG1fd29ya1F1
ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHQgPSBS
ZWYgeyBjb250ZXh0IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIGZ1bGxQYXRoID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUoZnVsbFBhdGgpKSwgZGly
ZWN0b3J5VmlydHVhbFBhdGggPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShkaXJlY3RvcnlWaXJ0
dWFsUGF0aCkpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIGxpc3RlZENoaWxkcmVuID0gbGlz
dERpcmVjdG9yeVdpdGhNZXRhZGF0YShmdWxsUGF0aCk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0ID0gV1RG
TW92ZShjb250ZXh0KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgbGlzdGVkQ2hpbGRyZW4gPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShsaXN0ZWRDaGls
ZHJlbikpLCBkaXJlY3RvcnlWaXJ0dWFsUGF0aCA9IGRpcmVjdG9yeVZpcnR1YWxQYXRoLmlzb2xh
dGVkQ29weSgpXSgpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29udGV4dCA9IFdURk1vdmUoY29udGV4
dCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGxpc3Rl
ZENoaWxkcmVuID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUobGlzdGVkQ2hpbGRyZW4pKSwgZGly
ZWN0b3J5VmlydHVhbFBhdGggPSBXVEZNb3ZlKGRpcmVjdG9yeVZpcnR1YWxQYXRoKS5pc29sYXRl
ZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRvRmls
ZVN5c3RlbUVudHJpZXMoY29udGV4dCwgcHJvdGVjdGVkVGhpcywgV1RGTW92ZShsaXN0ZWRDaGls
ZHJlbiksIGRpcmVjdG9yeVZpcnR1YWxQYXRoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9EZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVk
UlRDRGF0YUNoYW5uZWwuaAppbmRleCAwZjM2Yzc4MzdmMTViYjIwMDVkMjVmZTZiYjQyMzc5OTgw
ZjE3MmZlLi4xNThiNTgzMzNiNjc0ZmU0Yzc5ZDk0MjE2OTI1OGI4NWZjOTgwNjk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRDRGF0YUNo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVk
UlRDRGF0YUNoYW5uZWwuaApAQCAtMzgsMTAgKzM4LDEwIEBAIHN0cnVjdCBEZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXRhY2hlZFJUQ0RhdGFDaGFu
bmVsKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBEZXRhY2hl
ZFJUQ0RhdGFDaGFubmVsKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmIG9wdGlvbnMsIFJUQ0Rh
dGFDaGFubmVsU3RhdGUgc3RhdGUpCisgICAgRGV0YWNoZWRSVENEYXRhQ2hhbm5lbChSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFu
bmVsSW5pdCYmIG9wdGlvbnMsIFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCiAgICAgICAgIDog
aWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICAgICAsIGxhYmVsKGxhYmVsLmlzb2xhdGVkQ29w
eSgpKQotICAgICAgICAsIG9wdGlvbnMob3B0aW9ucy5pc29sYXRlZENvcHkoKSkKKyAgICAgICAg
LCBsYWJlbChXVEZNb3ZlKGxhYmVsKS5pc29sYXRlZENvcHkoKSkKKyAgICAgICAgLCBvcHRpb25z
KFdURk1vdmUob3B0aW9ucykuaXNvbGF0ZWRDb3B5KCkpCiAgICAgICAgICwgc3RhdGUoc3RhdGUp
CiAgICAgewogICAgIH0KQEAgLTgzLDcgKzgzLDcgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+IERldGFjaGVkUlRDRGF0YUMK
ICAgICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1ha2VV
bmlxdWU8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4oKmlkZW50aWZpZXIsIFdURk1vdmUobGFiZWwp
LCAqb3B0aW9ucywgKnN0YXRlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxEZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsPigqaWRlbnRpZmllciwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucyku
dmFsdWUoKSwgKnN0YXRlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApp
bmRleCA4ZjgzMzczZGJjNzRiNTJjNDU1NTMwNmE1MDU2ZDJmZGUwZWFhZTc1Li4wYjEwNjI2ZTMz
YmE1OTRhYTM4ZWIzYWQxZDY5NTZhNWU1NTE1MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApAQCAtMzAzLDcgKzMw
Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPiBSVENEYXRhQ2hh
bm5lbDo6ZGV0YWNoKCkKICAgICBMb2NrZXIgbG9ja2VyIHsgc19ydGNEYXRhQ2hhbm5lbExvY2Fs
TWFwTG9jayB9OwogICAgIHJ0Y0RhdGFDaGFubmVsTG9jYWxNYXAoKS5hZGQoaWRlbnRpZmllcigp
LmNoYW5uZWxJZGVudGlmaWVyLCBXVEZNb3ZlKG1faGFuZGxlcikpOwogCi0gICAgcmV0dXJuIG1h
a2VVbmlxdWU8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4oaWRlbnRpZmllcigpLCBsYWJlbCgpLmlz
b2xhdGVkQ29weSgpLCBvcHRpb25zKCksIHN0YXRlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxE
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsPihpZGVudGlmaWVyKCksIFN0cmluZyB7IGxhYmVsKCkgfSwg
UlRDRGF0YUNoYW5uZWxJbml0IHsgb3B0aW9ucygpIH0sIHN0YXRlKTsKIH0KIAogdm9pZCBSVENE
YXRhQ2hhbm5lbDo6cmVtb3ZlRnJvbURhdGFDaGFubmVsTG9jYWxNYXBJZk5lZWRlZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgK
aW5kZXggNjk0ZmFmNDA4ZTZmNTJjNGI0NDg0M2NkNGFkYWQ3NGZmZDU1Zjg0Zi4uZGE2MTA1MWJh
OTZkOGQwNWQ0NmQ4MWNkZmZkZDZjMGI5OWVmNGQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaApAQCAtNjUsNyArNjUsNyBA
QCBwdWJsaWM6CiAgICAgUlRDUHJpb3JpdHlUeXBlIHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4g
bV9vcHRpb25zLnByaW9yaXR5OyB9OwogICAgIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYgb3B0
aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQogCi0gICAgU3RyaW5nIGxhYmVsKCkg
Y29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQorICAgIGNvbnN0IFN0cmluZyYgbGFiZWwoKSBjb25z
dCB7IHJldHVybiBtX2xhYmVsOyB9CiAgICAgUlRDRGF0YUNoYW5uZWxTdGF0ZSByZWFkeVN0YXRl
KCkgY29uc3Qge3JldHVybiBtX3JlYWR5U3RhdGU7IH0KICAgICBzaXplX3QgYnVmZmVyZWRBbW91
bnQoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcmVkQW1vdW50OyB9CiAgICAgc2l6ZV90IGJ1ZmZl
cmVkQW1vdW50TG93VGhyZXNob2xkKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXJlZEFtb3VudExv
d1RocmVzaG9sZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcAppbmRleCA1NmMzMjQzMjlhZDEzZjNmNjE4YWM3MTQ3ZTZj
MTExMmE4ZDZkMGQyLi4yNDIwOGM2YzQ0YmU4NGY3ODJiZDQ3YzAwZWU1MTkzYTkwZDIwMDg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmNwcApAQCAtNTIsMjEgKzUyLDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE5vdGlmaWNhdGlvbik7CiAKLVJlZjxOb3RpZmljYXRp
b24+IE5vdGlmaWNhdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMpCitSZWY8Tm90aWZp
Y2F0aW9uPiBOb3RpZmljYXRpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBTdHJpbmcmJiB0aXRsZSwgT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBub3Rp
ZmljYXRpb24gPSBhZG9wdFJlZigqbmV3IE5vdGlmaWNhdGlvbihjb250ZXh0LCB0aXRsZSwgb3B0
aW9ucykpOworICAgIGF1dG8gbm90aWZpY2F0aW9uID0gYWRvcHRSZWYoKm5ldyBOb3RpZmljYXRp
b24oY29udGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0aW9ucykpKTsKICAgICBub3Rp
ZmljYXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIG5vdGlmaWNhdGlvbi0+c2hvd1Nvb24o
KTsKICAgICByZXR1cm4gbm90aWZpY2F0aW9uOwogfQogCi1Ob3RpZmljYXRpb246Ok5vdGlmaWNh
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBPcHRpb25zJiBvcHRpb25zKQorTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgdGl0bGUsIE9wdGlvbnMmJiBv
cHRpb25zKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQotICAgICwgbV90aXRsZSh0
aXRsZS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fdGl0bGUoV1RGTW92ZSh0aXRsZSkuaXNvbGF0
ZWRDb3B5KCkpCiAgICAgLCBtX2RpcmVjdGlvbihvcHRpb25zLmRpcikKLSAgICAsIG1fbGFuZyhv
cHRpb25zLmxhbmcuaXNvbGF0ZWRDb3B5KCkpCi0gICAgLCBtX2JvZHkob3B0aW9ucy5ib2R5Lmlz
b2xhdGVkQ29weSgpKQotICAgICwgbV90YWcob3B0aW9ucy50YWcuaXNvbGF0ZWRDb3B5KCkpCisg
ICAgLCBtX2xhbmcoV1RGTW92ZShvcHRpb25zLmxhbmcpLmlzb2xhdGVkQ29weSgpKQorICAgICwg
bV9ib2R5KFdURk1vdmUob3B0aW9ucy5ib2R5KS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fdGFn
KFdURk1vdmUob3B0aW9ucy50YWcpLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9zdGF0ZShJZGxl
KQogICAgICwgbV9jb250ZXh0SWRlbnRpZmllcihjb250ZXh0LmlkZW50aWZpZXIoKSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
aAppbmRleCAwMmEzN2JmYzc2YzJlZmFjNzU0OTRkNzZiYjUzZjI3ODFkMjJmYzI2Li40YWE5YjM0
MWZjMWM0MTNmNzAzNjUyOTk2ZmE2NzAzYjVhMDAyYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCkBAIC02NCw3ICs2NCw3
IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIHRhZzsKICAgICAgICAgU3RyaW5nIGljb247CiAg
ICAgfTsKLSAgICBzdGF0aWMgUmVmPE5vdGlmaWNhdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBPcHRpb25zJik7CisgICAgc3Rh
dGljIFJlZjxOb3RpZmljYXRpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3Ry
aW5nJiYgdGl0bGUsIE9wdGlvbnMmJik7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB+Tm90aWZpY2F0aW9uKCk7CiAKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OmRlcmVmOwogCiBwcml2YXRlOgotICAgIE5vdGlmaWNh
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
T3B0aW9ucyYpOworICAgIE5vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3Ry
aW5nJiYgdGl0bGUsIE9wdGlvbnMmJik7CiAgICAgTm90aWZpY2F0aW9uKGNvbnN0IE5vdGlmaWNh
dGlvbiYpOwogCiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEu
Y3BwCmluZGV4IDIzZGIzMjcwYWI3ODdlNTMyMDU2NGFlZGNkYmVkMDFjNTc5MjQ0MTQuLjdjMjFl
OWNjNGFjNDA5MzQ0OTY2NzQzOWFlYTViMWM3MjViNjQ5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3BwCkBA
IC0zMCwxNyArMzAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QdXNoU3Vic2NyaXB0
aW9uRGF0YSBQdXNoU3Vic2NyaXB0aW9uRGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK1B1c2hT
dWJzY3JpcHRpb25EYXRhIFB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENvcHkoKSBjb25z
dCAmCiB7Ci0gICAgUHVzaFN1YnNjcmlwdGlvbkRhdGEgcmVzdWx0OwotICAgIHJlc3VsdC5pZGVu
dGlmaWVyID0gaWRlbnRpZmllcjsKLSAgICByZXN1bHQuZW5kcG9pbnQgPSBlbmRwb2ludC5pc29s
YXRlZENvcHkoKTsKLSAgICByZXN1bHQuZXhwaXJhdGlvblRpbWUgPSBleHBpcmF0aW9uVGltZTsK
LSAgICByZXN1bHQuc2VydmVyVkFQSURQdWJsaWNLZXkgPSBzZXJ2ZXJWQVBJRFB1YmxpY0tleTsK
LSAgICByZXN1bHQuY2xpZW50RUNESFB1YmxpY0tleSA9IGNsaWVudEVDREhQdWJsaWNLZXk7Ci0g
ICAgcmVzdWx0LnNoYXJlZEF1dGhlbnRpY2F0aW9uU2VjcmV0ID0gc2hhcmVkQXV0aGVudGljYXRp
b25TZWNyZXQ7CisgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgZW5kcG9pbnQuaXNvbGF0ZWRDb3B5
KCksIGV4cGlyYXRpb25UaW1lLCBzZXJ2ZXJWQVBJRFB1YmxpY0tleSwgY2xpZW50RUNESFB1Ymxp
Y0tleSwgc2hhcmVkQXV0aGVudGljYXRpb25TZWNyZXQgfTsKK30KIAotICAgIHJldHVybiByZXN1
bHQ7CitQdXNoU3Vic2NyaXB0aW9uRGF0YSBQdXNoU3Vic2NyaXB0aW9uRGF0YTo6aXNvbGF0ZWRD
b3B5KCkgJiYKK3sKKyAgICByZXR1cm4geyBpZGVudGlmaWVyLCBXVEZNb3ZlKGVuZHBvaW50KS5p
c29sYXRlZENvcHkoKSwgZXhwaXJhdGlvblRpbWUsIFdURk1vdmUoc2VydmVyVkFQSURQdWJsaWNL
ZXkpLCBXVEZNb3ZlKGNsaWVudEVDREhQdWJsaWNLZXkpLCBXVEZNb3ZlKHNoYXJlZEF1dGhlbnRp
Y2F0aW9uU2VjcmV0KSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmgK
aW5kZXggNjM1ZjlmYzgxZTljNjllNzY1ZWFiZDBlMWFlMjExYWUzYmRhNWFkNC4uYmMyMTU4N2Jl
MTlhMDRiNzNmNDJhODQ0ZjU5M2Q4NDg2YjFjODZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuaApAQCAtNDIsNyAr
NDIsOCBAQCBzdHJ1Y3QgUHVzaFN1YnNjcmlwdGlvbkRhdGEgewogICAgIFZlY3Rvcjx1aW50OF90
PiBjbGllbnRFQ0RIUHVibGljS2V5OwogICAgIFZlY3Rvcjx1aW50OF90PiBzaGFyZWRBdXRoZW50
aWNhdGlvblNlY3JldDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hTdWJzY3JpcHRpb25EYXRh
IGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hTdWJzY3JpcHRp
b25EYXRhIGlzb2xhdGVkQ29weSgpIGNvbnN0ICY7CisgICAgV0VCQ09SRV9FWFBPUlQgUHVzaFN1
YnNjcmlwdGlvbkRhdGEgaXNvbGF0ZWRDb3B5KCkgJiY7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbkRhdGE+IGRlY29k
ZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
RHVtbXlTdG9yYWdlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9E
dW1teVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IGRhNDU3YTQ2YjEyM2MzNTg0M2ZmOTRhNmE4MmNm
YzI3NDg4MWYxYjMuLjBjZmZkMjdiZWYwYjljMGE0MGY3ZmE4NDQ5M2Y0YzE5MDAxMjMwNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQ
cm92aWRlci5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEdW1teVN0b3JhZ2VDb25uZWN0aW9uKCkpOwogICAgICAgICB9CiAKLSAg
ICAgICAgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5l
Y3Rpb246OlBlcnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAg
ICB2b2lkIGdldFBlcnNpc3RlZChDbGllbnRPcmlnaW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBl
cnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgICAgICB7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIH0KQEAgLTU0LDcgKzU0
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAg
ICAgICAgfQogCi0gICAgICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBDbGll
bnRPcmlnaW4mLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5
KENsaWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2sm
JiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSk7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9u
LmgKaW5kZXggYmNlYzIyOTQ3NGZlY2I4M2QzOTNkY2JlZWNlOTliY2RmNWZmZWY3Ni4uZDAxYjg0
YmVlYmI1YTE3ZGI1ZmI3OTJlYzVjOTQ0ZDc3ZmM3YWU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTM5LDExICszOSwx
MSBAQCBjbGFzcyBTdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxTdG9yYWdlQ29ubmVjdGlvbj4gewogcHVibGljOgogICAgIHZpcnR1YWwgflN0b3JhZ2VDb25u
ZWN0aW9uKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIFBlcnNpc3RDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+OwotICAgIHZpcnR1YWwgdm9pZCBnZXRQZXJzaXN0ZWQoY29u
c3QgQ2xpZW50T3JpZ2luJiwgUGVyc2lzdENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0UGVyc2lzdGVkKENsaWVudE9yaWdpbiYmLCBQZXJzaXN0Q2FsbGJhY2smJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBwZXJzaXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFBlcnNpc3RDYWxs
YmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQog
ICAgIHVzaW5nIERpcmVjdG9yeUluZm8gPSBzdGQ6OnBhaXI8RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+PjsKICAgICB1c2luZyBH
ZXREaXJlY3RvcnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
RGlyZWN0b3J5SW5mbz4mJik+OwotICAgIHZpcnR1YWwgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KGNvbnN0IENsaWVudE9yaWdpbiYsIEdldERpcmVjdG9yeUNhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShDbGllbnRPcmlnaW4mJiwgR2V0
RGlyZWN0b3J5Q2FsbGJhY2smJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAK
aW5kZXggY2Q0NjYzMGRiNzBjMGJiOGU4MDljNzRiOTg3OTk1ZjQ5YjczNWVhNy4uMmJhYjRmOWIy
ZDY4OTdjNjYyMDlmNTZmMDJlYzQ4OWVlYjVlMGNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZv
aWQgU3RvcmFnZU1hbmFnZXI6OnBlcnNpc3RlZChET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVh
bj4mJiBwcm9taXNlKQogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVjdGlvbklu
Zm9PckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25uZWN0aW9u
SW5mbyA9IGNvbm5lY3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0g
ICAgY29ubmVjdGlvbkluZm8uY29ubmVjdGlvbi5nZXRQZXJzaXN0ZWQoY29ubmVjdGlvbkluZm8u
b3JpZ2luLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgcGVyc2lzdGVkKSBtdXRh
YmxlIHsKKyAgICBjb25uZWN0aW9uSW5mby5jb25uZWN0aW9uLmdldFBlcnNpc3RlZChXVEZNb3Zl
KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYm9v
bCBwZXJzaXN0ZWQpIG11dGFibGUgewogICAgICAgICBwcm9taXNlLnJlc29sdmUocGVyc2lzdGVk
KTsKICAgICB9KTsKIH0KQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpm
aWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
YwogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVjdGlvbkluZm9PckV4Y2VwdGlv
bi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25uZWN0aW9uSW5mbyA9IGNvbm5l
Y3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgY29ubmVjdGlv
bkluZm8uY29ubmVjdGlvbi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbm5lY3Rpb25JbmZvLm9y
aWdpbiwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCB3ZWFrTmF2aWdhdG9yID0gbV9uYXZp
Z2F0b3JdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb25JbmZvLmNvbm5l
Y3Rpb24uZmlsZVN5c3RlbUdldERpcmVjdG9yeShXVEZNb3ZlKGNvbm5lY3Rpb25JbmZvLm9yaWdp
biksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgd2Vha05hdmlnYXRvciA9IG1fbmF2aWdh
dG9yXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9y
YWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZDVkY2NjMzRjZDMxMTBi
OGViNTdhY2ZmN2RjZjQ0NzE2YzMyZGMwNS4uYTFmYjA0ZmM5MTgwMjRmZjhmZDBkNDFiYzdjMWIx
YTcxNjVkY2FhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dv
cmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC01OCwxNCArNTgsMTQgQEAgdm9p
ZCBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQoKQogICAgIG1fc2NvcGUgPSBu
dWxscHRyOwogfQogCi12b2lkIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQo
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2Fs
bGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246
OmdldFBlcnNpc3RlZChDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpQ
ZXJzaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQobV9zY29w
ZSk7CiAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9ICsrbV9sYXN0Q2FsbGJhY2tJZGVu
dGlmaWVyOwogICAgIG1fZ2V0UGVyc2lzdGVkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZp
ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQo
W2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFk
KCkgfSwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgIGNh
bGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsg
bV9zY29wZS0+dGhyZWFkKCkgfSwgb3JpZ2luID0gV1RGTW92ZShvcmlnaW4pLmlzb2xhdGVkQ29w
eSgpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDb25uZWN0aW9uID0gd29y
a2VyVGhyZWFkLT53b3JrZXJMb2FkZXJQcm94eSgpLnN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAg
ICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2Vy
VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShib29sIHJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxi
YWNrSWRlbnRpZmllciwgcmVzdWx0XSAoYXV0byYgc2NvcGUpIG11dGFibGUgewpAQCAtNzUsNyAr
NzUsNyBAQCB2b2lkIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29uc3Qg
Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDbwogICAgICAgICBpZiAoIW1haW5UaHJlYWRD
b25uZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIG1haW5UaHJlYWRDYWxsYmFjayhmYWxzZSk7
CiAKLSAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmdldFBlcnNpc3RlZChvcmlnaW4sIFdU
Rk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9u
LT5nZXRQZXJzaXN0ZWQoV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFj
aykpOwogICAgIH0pOwogfQogCkBAIC04NSwyMSArODUsMjEgQEAgdm9pZCBXb3JrZXJTdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkR2V0UGVyc2lzdGVkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwg
Ym9vbAogICAgICAgICBjYWxsYmFjayhwZXJzaXN0ZWQpOwogfQogCi12b2lkIFdvcmtlclN0b3Jh
Z2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVudE9yaWdpbiYg
b3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkoQ2xpZW50T3JpZ2luJiYgb3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGly
ZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQobV9zY29w
ZSk7CiAgICAgCiAgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSArK21fbGFzdENhbGxiYWNr
SWRlbnRpZmllcjsKICAgICBtX2dldERpcmVjdG9yeUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAKLSAgICBjYWxsT25NYWluVGhy
ZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRo
cmVhZCgpIH0sIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJl
ZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG9yaWdpbiA9IFdURk1vdmUob3JpZ2luKS5pc29sYXRl
ZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWluVGhyZWFkQ29ubmVjdGlvbiA9
IHdvcmtlclRocmVhZC0+d29ya2VyTG9hZGVyUHJveHkoKS5zdG9yYWdlQ29ubmVjdGlvbigpOwog
ICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdv
cmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUo
W2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUocmVz
dWx0KSldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5zdG9yYWdlQ29ubmVjdGlvbigpLmRpZEdldERpcmVj
dG9yeShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfTsKLSAgICAgICAgbWFp
blRocmVhZENvbm5lY3Rpb24tPmZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkob3JpZ2luLCBXVEZNb3Zl
KG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Zmls
ZVN5c3RlbUdldERpcmVjdG9yeShXVEZNb3ZlKG9yaWdpbiksIFdURk1vdmUobWFpblRocmVhZENh
bGxiYWNrKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggODQ1YmY5MzZhODky
NTkwNTVmODMzNDk1YjhjOGRkMDczYzM2N2MzOC4uNmFhMjg4YWMyOTRhZTEwMTMwYWM0OTEyMjE4
NTZkNGMzODgxZjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQzLDggKzQzLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEdldERpcmVjdG9yeSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIs
IEV4Y2VwdGlvbk9yPFN0b3JhZ2VDb25uZWN0aW9uOjpEaXJlY3RvcnlJbmZvPiYmKTsKIAogICAg
IC8vIFN0b3JhZ2VDb25uZWN0aW9uCi0gICAgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgQ2xpZW50
T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxsYmFjayYmKSBmaW5hbDsKLSAg
ICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFn
ZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0
UGVyc2lzdGVkKENsaWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVyc2lzdENhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShDbGllbnRPcmln
aW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOwog
CiAgICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxTY29wZT4gbV9zY29wZTsKICAgICB1aW50NjRfdCBt
X2xhc3RDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCmluZGV4
IDgyZTc4MDI2NTFlM2IwMGNmOTMxMzdiY2M0NTM2MDdmNzEzMTkyYmYuLjk0ZWY1MDk1NThiNmMy
NjU5ZmRmYTNkNjg5YjRiMGQyODM3M2Q4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCkBAIC0z
NSw5ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2hhbmdlVmVyc2lvbldyYXBw
ZXI6OkNoYW5nZVZlcnNpb25XcmFwcGVyKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29uc3Qg
U3RyaW5nJiBuZXdWZXJzaW9uKQotICAgIDogbV9vbGRWZXJzaW9uKG9sZFZlcnNpb24uaXNvbGF0
ZWRDb3B5KCkpCi0gICAgLCBtX25ld1ZlcnNpb24obmV3VmVyc2lvbi5pc29sYXRlZENvcHkoKSkK
K0NoYW5nZVZlcnNpb25XcmFwcGVyOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcihTdHJpbmcmJiBvbGRW
ZXJzaW9uLCBTdHJpbmcmJiBuZXdWZXJzaW9uKQorICAgIDogbV9vbGRWZXJzaW9uKFdURk1vdmUo
b2xkVmVyc2lvbikuaXNvbGF0ZWRDb3B5KCkpCisgICAgLCBtX25ld1ZlcnNpb24oV1RGTW92ZShu
ZXdWZXJzaW9uKS5pc29sYXRlZENvcHkoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oCmluZGV4
IGViN2VmZTNjNDM3NGZkOGYyZDhmYzczMGMzMWQ3ZmM0YmQzNTZlZWUuLjFiMTI4NzdiYjFlYjFl
OTc0ZWNiNDllZTMyOTYwODAxZTM1ZDkwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmgKQEAgLTM3LDcg
KzM3LDcgQEAgY2xhc3MgU1FMRXJyb3I7CiAKIGNsYXNzIENoYW5nZVZlcnNpb25XcmFwcGVyIDog
cHVibGljIFNRTFRyYW5zYWN0aW9uV3JhcHBlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxD
aGFuZ2VWZXJzaW9uV3JhcHBlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29u
c3QgU3RyaW5nJiBuZXdWZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENoYW5nZVZlcnNp
b25XcmFwcGVyKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pKTsgfQorICAgIHN0YXRpYyBSZWY8Q2hh
bmdlVmVyc2lvbldyYXBwZXI+IGNyZWF0ZShTdHJpbmcmJiBvbGRWZXJzaW9uLCBTdHJpbmcmJiBu
ZXdWZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENoYW5nZVZlcnNpb25XcmFwcGVyKFdU
Rk1vdmUob2xkVmVyc2lvbiksIFdURk1vdmUobmV3VmVyc2lvbikpKTsgfQogCiAgICAgYm9vbCBw
ZXJmb3JtUHJlZmxpZ2h0KFNRTFRyYW5zYWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBwZXJm
b3JtUG9zdGZsaWdodChTUUxUcmFuc2FjdGlvbiYpIG92ZXJyaWRlOwpAQCAtNDUsNyArNDUsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBoYW5kbGVDb21taXRGYWlsZWRBZnRlclBvc3RmbGlnaHQoU1FM
VHJhbnNhY3Rpb24mKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBDaGFuZ2VWZXJzaW9uV3Jh
cHBlcihjb25zdCBTdHJpbmcmIG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbik7
CisgICAgQ2hhbmdlVmVyc2lvbldyYXBwZXIoU3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYg
bmV3VmVyc2lvbik7CiAKICAgICBTdHJpbmcgbV9vbGRWZXJzaW9uOwogICAgIFN0cmluZyBtX25l
d1ZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2UuY3BwCmluZGV4IDc3ZmZkOTMxOTdkNmUyM2JlMjAxMTBhM2UzYjkyNWU3OTdjYTJlZmYuLjVh
ZjM3MDlkYTJhNDhlNmNmMjQ0YWQxOWYwODc5NjRhNDRmMDRjZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01ODIsOSArNTgyLDkg
QEAgdm9pZCBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCkKICAgICBjbG9zZSgpOwog
fQogCi12b2lkIERhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lv
biwgY29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFj
az4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiBlcnJv
ckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaykKK3ZvaWQg
RGF0YWJhc2U6OmNoYW5nZVZlcnNpb24oU3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYgbmV3
VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0
cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZv
aWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAgcnVuVHJhbnNhY3Rpb24oV1RG
TW92ZShjYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0Nh
bGxiYWNrKSwgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OmNyZWF0ZShvbGRWZXJzaW9uLCBuZXdWZXJz
aW9uKSwgZmFsc2UpOworICAgIHJ1blRyYW5zYWN0aW9uKFdURk1vdmUoY2FsbGJhY2spLCBXVEZN
b3ZlKGVycm9yQ2FsbGJhY2spLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIENoYW5nZVZlcnNp
b25XcmFwcGVyOjpjcmVhdGUoV1RGTW92ZShvbGRWZXJzaW9uKSwgV1RGTW92ZShuZXdWZXJzaW9u
KSksIGZhbHNlKTsKIH0KIAogdm9pZCBEYXRhYmFzZTo6dHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNz
Q2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmgKaW5kZXggNWUzYmU4NTRmMDA5Y2Y2MGE2ZWEwOGRkZWY2N2Q1ZTJmMWE1ZTBlNy4uOWIwMDJk
NGE1YmY3OWM3NWQ4Y2I1NGVlMWYwZDg3ODZkMmYzODAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBEaXJlY3Qgc3VwcG9ydCBmb3IgdGhlIERPTSBBUEkKICAgICBTdHJpbmcgdmVy
c2lvbigpIGNvbnN0OwotICAgIHZvaWQgY2hhbmdlVmVyc2lvbihjb25zdCBTdHJpbmcmIG9sZFZl
cnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJlZlB0cjxW
b2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIGNoYW5nZVZlcnNpb24o
U3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYgbmV3VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYs
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKICAgICB2b2lkIHRyYW5z
YWN0aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrPiYmLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxs
YmFjayk7CiAgICAgdm9pZCByZWFkVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJlZlB0cjxW
b2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDA2N2Zk
MzkxMzkwYzg1ZGMyZDQ5ZGY0MDgwMTYyYjQzYzRmNDIzY2UuLjllYjM5MWM2ZDBiZDZkNDg2MDUx
MGVkYWI3Mjg5MzM5OTUwNmJjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTU0MiwxNCArNTQyLDE0IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0YWJhc2UoRGF0YWJhc2UmIGRhdGFiYXNl
KQogICAgIGF1dG8qIG5hbWVNYXAgPSBtX29wZW5EYXRhYmFzZU1hcC0+Z2V0KG9yaWdpbik7CiAg
ICAgaWYgKCFuYW1lTWFwKSB7CiAgICAgICAgIG5hbWVNYXAgPSBuZXcgRGF0YWJhc2VOYW1lTWFw
OwotICAgICAgICBtX29wZW5EYXRhYmFzZU1hcC0+YWRkKG9yaWdpbi5pc29sYXRlZENvcHkoKSwg
bmFtZU1hcCk7CisgICAgICAgIG1fb3BlbkRhdGFiYXNlTWFwLT5hZGQoV1RGTW92ZShvcmlnaW4p
Lmlzb2xhdGVkQ29weSgpLCBuYW1lTWFwKTsKICAgICB9CiAKICAgICBTdHJpbmcgbmFtZSA9IGRh
dGFiYXNlLnN0cmluZ0lkZW50aWZpZXJJc29sYXRlZENvcHkoKTsKICAgICBhdXRvKiBkYXRhYmFz
ZVNldCA9IG5hbWVNYXAtPmdldChuYW1lKTsKICAgICBpZiAoIWRhdGFiYXNlU2V0KSB7CiAgICAg
ICAgIGRhdGFiYXNlU2V0ID0gbmV3IERhdGFiYXNlU2V0OwotICAgICAgICBuYW1lTWFwLT5zZXQo
bmFtZS5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VTZXQpOworICAgICAgICBuYW1lTWFwLT5zZXQo
V1RGTW92ZShuYW1lKS5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VTZXQpOwogICAgIH0KIAogICAg
IGRhdGFiYXNlU2V0LT5hZGQoJmRhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMRXJyb3IuaAppbmRleCAxNDVjYTUwMDMzNTc2ZTcwMjdlODAyZjBkMjlj
ODI1OTI0NGE1YWNhLi43N2NlMWExY2FjMTUwOTQ4YzM0MTA0ZWRkMzNiMTBhMGRkNTlmMGM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1FMRXJyb3IgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMRXJyb3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNRTEVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQorICAg
IHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBTdHJpbmcmJiBtZXNz
YWdlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNRTEVycm9yKGNvZGUsIFdURk1vdmUobWVzc2Fn
ZSkpKTsgfQogICAgIHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBj
b25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBjcmVhdGUoY29kZSwgbWFrZVN0cmluZyhtZXNzYWdlLCAiICgiLCBzcWxpdGVDb2RlLCAnKScp
KTsKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6Ci0gICAgU1FM
RXJyb3IodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSA6IG1fY29kZShjb2Rl
KSwgbV9tZXNzYWdlKG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCkpIHsgfQorICAgIFNRTEVycm9yKHVu
c2lnbmVkIGNvZGUsIFN0cmluZyYmIG1lc3NhZ2UpIDogbV9jb2RlKGNvZGUpLCBtX21lc3NhZ2Uo
V1RGTW92ZShtZXNzYWdlKS5pc29sYXRlZENvcHkoKSkgeyB9CiAgICAgdW5zaWduZWQgbV9jb2Rl
OwogICAgIFN0cmluZyBtX21lc3NhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApp
bmRleCBmN2NmMGUxNzBjNjM5ZTk5NjRjODcyMGI4YTQ5ZTA1OWZlNWEwNTNmLi5lNjUzMTVhNTE1
OWUxYjhmZTE1Y2JhOTk2NTdhODA3Y2RhODZlMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBidWZm
ZXJlZEFtb3VudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUs
IGNvbnN0IFN0cmluZyYgcmVhc29uKSA9IDA7CiAgICAgLy8gTG9nIHRoZSByZWFzb24gdGV4dCBh
bmQgY2xvc2UgdGhlIGNvbm5lY3Rpb24uIFdpbGwgY2FsbCBkaWRDbG9zZSgpLgotICAgIHZpcnR1
YWwgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGZhaWwoU3RyaW5nJiYgcmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3Qo
KSA9IDA7IC8vIFdpbGwgc3VwcHJlc3MgZGlkQ2xvc2UoKS4KIAogICAgIHZpcnR1YWwgdm9pZCBz
dXNwZW5kKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyLmNwcAppbmRleCA3YjE0NDFkMzFjYmNiZjcwYTM5MTJhOWEyMTA1NzVhZDM1Y2Y1
OTMyLi5hOWNjNTQxMGE4M2M3NzY1MmRlZjU4N2RiNDg1ZjIwNTQ5OThmYjFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMTYy
LDExICsxNjIsMTEgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI6OmRpZENvbm5lY3QoKQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAKLXZv
aWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVz
c2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2FnZSkKIHsK
LSAgICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpUYXNrPihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1lc3NhZ2Ug
PSBtZXNzYWdlLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAg
ICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrPihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1lc3NhZ2UgPSBX
VEZNb3ZlKG1lc3NhZ2UpLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IG11dGFibGUgewogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+
ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZSk7CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVj
ZWl2ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgfSkpOwogCiAgICAgaWYgKCFtX3N1
c3BlbmRlZCkKQEAgLTIxNywxMSArMjE3LDExIEBAIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyOjpkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlCiAg
ICAgICAgIHByb2Nlc3NQZW5kaW5nVGFza3MoKTsKIH0KIAotdm9pZCBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3Ry
aW5nJiByZWFzb24pCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiByZWFzb24pCiB7Ci0gICAgbV9wZW5k
aW5nVGFza3MuYXBwZW5kKG1ha2VVbmlxdWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4o
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCByZWFzb24gPSByZWFzb24uaXNv
bGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgIG1fcGVuZGluZ1Rh
c2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcmVhc29uID0gV1RGTW92ZShyZWFzb24p
Lmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewogICAg
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2VFcnJvcihyZWFzb24pOworICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoV1RGTW92ZShyZWFzb24pKTsKICAgICB9KSk7CiAKICAgICBpZiAoIW1fc3VzcGVuZGVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmlu
ZGV4IDZhZWJhNTNlOGZjNDIzNGU4MzFkZTFkN2Q2OTkwMDU2Yjc4MTZiY2MuLjk2NTgwMjIzZWYw
NGE3YmFiNDdkMGQyMDhlMzM4OWVlOGE5MTYxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKQEAgLTc0LDEyICs3NCwxMiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhckNsaWVudCgpOwogCiAgICAgdm9pZCBkaWRDb25uZWN0KCk7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZl
QmluYXJ5RGF0YShWZWN0b3I8dWludDhfdD4mJik7CiAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJl
ZEFtb3VudCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCk7CiAgICAgdm9pZCBkaWRTdGFydENsb3Np
bmdIYW5kc2hha2UoKTsKICAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZl
cmVkQW1vdW50LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OjpDbG9zaW5nSGFuZHNoYWtlQ29tcGxl
dGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyYmIHJlYXNvbik7CiAgICAgdm9p
ZCBkaWRVcGdyYWRlVVJMKCk7CiAKICAgICB2b2lkIHN1c3BlbmQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggODE2ZWNlYjE2YmIx
NjI1ZjczMDNjYzI4YzI3ZjZkNjBlOTA2MWRhNy4uZjk3M2U1YmQzYjkwZTNhNGNjNzM1MjE0ZDlh
MzE5YWRmOTIxZTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKQEAgLTU2NiwyMSArNTY2LDIxIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRD
b25uZWN0KCkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdl
KGNvbnN0IFN0cmluZyYgbXNnKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKFN0
cmluZyYmIG1lc3NhZ2UpCiB7Ci0gICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVj
ZWl2ZU1lc3NhZ2UoKSBUZXh0IG1lc3NhZ2UgJyVzJyIsIHRoaXMsIG1zZy51dGY4KCkuZGF0YSgp
KTsKLSAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Oldl
YlNvY2tldCwgW3RoaXMsIG1zZ10geworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRp
ZFJlY2VpdmVNZXNzYWdlKCkgVGV4dCBtZXNzYWdlICclcyciLCB0aGlzLCBtZXNzYWdlLnV0Zjgo
KS5kYXRhKCkpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1Nv
dXJjZTo6V2ViU29ja2V0LCBbdGhpcywgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSldKCkgbXV0
YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJv
bnRlbmRzKCkpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogaW5zcGVjdG9yID0gbV9jaGFubmVs
LT5jaGFubmVsSW5zcGVjdG9yKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHV0ZjhNZXNzYWdl
ID0gbXNnLnV0ZjgoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHV0ZjhNZXNzYWdlID0gbWVzc2Fn
ZS51dGY4KCk7CiAgICAgICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNlaXZlV2ViU29ja2V0
RnJhbWUoV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6Y3JlYXRlRnJhbWUodXRmOE1lc3NhZ2Uu
ZGF0YUFzVUludDhQdHIoKSwgdXRmOE1lc3NhZ2UubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpP
cENvZGU6Ok9wQ29kZVRleHQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBB
U1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChN
ZXNzYWdlRXZlbnQ6OmNyZWF0ZShtc2csIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50
b1N0cmluZygpKSk7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUo
V1RGTW92ZShtZXNzYWdlKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5n
KCkpKTsKICAgICB9KTsKIH0KIApAQCAtNjA4LDEwICs2MDgsMTAgQEAgdm9pZCBXZWJTb2NrZXQ6
OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90PiYmIGJpbmFyeURhdGEpCiAgICAg
fSk7CiB9CiAKLXZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0
cmluZyYgcmVhc29uKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3Ry
aW5nJiYgcmVhc29uKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJlY2Vp
dmVFcnJvck1lc3NhZ2UoKSIsIHRoaXMpOwotICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2
ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgcmVhc29uXSB7CisgICAgcXVl
dWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0
aGlzLCByZWFzb24gPSBXVEZNb3ZlKHJlYXNvbildIHsKICAgICAgICAgaWYgKG1fc3RhdGUgPT0g
Q0xPU0VEKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IDBj
MzZhMjM2MTEzN2UwODY1ODVhMDE3YjljNmIxZjVlMTc4ZTZlZTYuLmU2ODYzZTQ2ZGEwN2QxOGI2
ZDkxNWViMTVjMjRjZGYyMmRiNmE2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTExMyw5ICsxMTMsOSBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgdm9pZCBkaWRD
b25uZWN0KCkgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVz
c2FnZSkgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShWZWN0b3I8dWludDhf
dD4mJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5n
JiYgcmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2ln
bmVkIGJ1ZmZlcmVkQW1vdW50KSBmaW5hbDsKICAgICB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRz
aGFrZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVmZmVy
ZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9y
dCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggYmIx
MjUyNDFmNjMxOWNkNTQ3NGY3NTcyYjdkMWJmNDM2MmJmMGZlMS4uZGY1NjM1OWM2ZmRhMDUyMTAz
ZDk3YjNkOGE1ZDEwODQ5MTk3NWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjEyLDcgKzIxMiw3IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uKQogICAgICAgICBtX2Nsb3NpbmdUaW1lci5zdGFydE9uZVNob3QoVENQTWF4aW11bVNlZ21l
bnRMaWZldGltZSAqIDIpOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoY29uc3Qg
U3RyaW5nJiByZWFzb24pCit2b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoU3RyaW5nJiYgcmVh
c29uKQogewogICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGZh
aWwoKSByZWFzb249JyVzJyIsIHRoaXMsIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKICAgICBBU1NF
UlQoIW1fc3VzcGVuZGVkKTsKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgbV9oYXNDb250aW51b3VzRnJhbWUg
PSBmYWxzZTsKICAgICBtX2NvbnRpbnVvdXNGcmFtZURhdGEuY2xlYXIoKTsKICAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKHJlYXNvbik7
CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKFdURk1vdmUocmVhc29u
KSk7CiAKICAgICBpZiAobV9oYW5kbGUgJiYgIW1fY2xvc2VkKQogICAgICAgICBtX2hhbmRsZS0+
ZGlzY29ubmVjdCgpOyAvLyBXaWxsIGNhbGwgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oKSBidXQgbWF5
YmUgbm90IHN5bmNocm9ub3VzbHkuCkBAIC0zODAsNyArMzgwLDcgQEAgdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlLCBj
b25zdCBTb2MKICAgICB9CiAgICAgbV9zaG91bGREaXNjYXJkUmVjZWl2ZWREYXRhID0gdHJ1ZTsK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVy
cm9yKG1lc3NhZ2UpOworICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihX
VEZNb3ZlKG1lc3NhZ2UpKTsKICAgICBoYW5kbGUuZGlzY29ubmVjdCgpOwogfQogCkBAIC01NDYs
NyArNTQ2LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIGlm
IChyZXN1bHQgPT0gV2ViU29ja2V0RnJhbWU6OkZyYW1lSW5jb21wbGV0ZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmIChyZXN1bHQgPT0gV2ViU29ja2V0RnJhbWU6OkZyYW1lRXJyb3Ip
IHsKLSAgICAgICAgZmFpbChlcnJvclN0cmluZyk7CisgICAgICAgIGZhaWwoV1RGTW92ZShlcnJv
clN0cmluZykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02MjIsNyArNjIy
LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAg
ICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICBmYWlsKCJDb3Vs
ZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iKTsKICAgICAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNz
YWdlKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdU
Rk1vdmUobWVzc2FnZSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtX2NvbnRpbnVvdXNGcmFt
ZU9wQ29kZSA9PSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQmluYXJ5KQogICAgICAgICAgICAgICAg
IG1fY2xpZW50LT5kaWRSZWNlaXZlQmluYXJ5RGF0YShXVEZNb3ZlKGNvbnRpbnVvdXNGcmFtZURh
dGEpKTsKICAgICAgICAgfQpAQCAtNjM5LDcgKzYzOSw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5l
bDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQogICAg
ICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04
LiIpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlTWVzc2FnZShtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBtX2hhc0NvbnRpbnVvdXNGcmFtZSA9IHRydWU7CiAgICAgICAgICAgICBtX2NvbnRpbnVvdXNG
cmFtZU9wQ29kZSA9IFdlYlNvY2tldEZyYW1lOjpPcENvZGVUZXh0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggOGMw
OGUyNmI5ZmJhZTdlYWJiY2E2MDE4YjY3Y2I3YWEyOWY2NWUyMC4uNjNmZTYyYTc2OGJkZjkyMDky
MGE4YWY3M2M1MjA0MzI0NmIzZDhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC03OSw3ICs3OSw3IEBAIHB1Ymxp
YzoKICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKEJsb2Im
KSBmaW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgpIGNvbnN0IGZpbmFsOwogICAg
IHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBmaW5hbDsgLy8gU3Rh
cnQgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29u
KSBmaW5hbDsKKyAgICB2b2lkIGZhaWwoU3RyaW5nJiYgcmVhc29uKSBmaW5hbDsKICAgICB2b2lk
IGRpc2Nvbm5lY3QoKSBmaW5hbDsKIAogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsQ2xpZW50LmgKaW5kZXggN2Y3MTMxY2ExOWU3OGMwYzc0YWE0OTc4OTQ1MGI2MTY1MzdiZDBm
Yy4uZGNmOTE0MGY5MDRhMWZjZTc3MmEyN2JmZWRlMmExYjQwMDU4YjI4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bENsaWVudC5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIFdlYlNvY2tldENoYW5uZWxDbGllbnQg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViU29ja2V0Q2hhbm5lbENsaWVudD4gewogcHVibGlj
OgogICAgIHZpcnR1YWwgfldlYlNvY2tldENoYW5uZWxDbGllbnQoKSA9IGRlZmF1bHQ7CiAgICAg
dmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoU3RyaW5nJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFy
eURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBk
YXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgPSAwOwogICAgIGVudW0gQ2xvc2lu
Z0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAppbmRleCBjNDUzOGI5
OGQwYmI5MmVhOWQ2MWQyOWI3ZjA5NTE3MDg2N2RmZjU1Li5mNzY5Njc0OTMzNzIwMTdkMzYzZTNh
MTJlNzdmNTViZDUwMjU4NTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApAQCAtMTMzLDExICsxMzMsNiBA
QCBjb25zdCBVUkwmIFdlYlNvY2tldEhhbmRzaGFrZTo6dXJsKCkgY29uc3QKICAgICByZXR1cm4g
bV91cmw7CiB9CiAKLXZvaWQgV2ViU29ja2V0SGFuZHNoYWtlOjpzZXRVUkwoY29uc3QgVVJMJiB1
cmwpCi17Ci0gICAgbV91cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCk7Ci19Ci0KIC8vIEZJWE1FOiBS
ZXR1cm4gdHlwZSBzaG91bGQganVzdCBiZSBTdHJpbmcsIG5vdCBjb25zdCBTdHJpbmcuCiBjb25z
dCBTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpob3N0KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDc3NjMyNWZiNGE5ZGI4MzZlZGE0
NjRmYThhZjA2ZWY2NGI1OTllOTYuLmJiZDYzMTUzYWVmNDQwZTA5N2M3M2E1MjcyOGEyNWY4NmM2
NzVjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAt
MTE4LDEwICsxMTgsMTAgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKQogICAgICAgICBtX2JyaWRnZS0+
Y2xvc2UoY29kZSwgcmVhc29uKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKK3ZvaWQgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OmZhaWwoU3RyaW5nJiYgcmVhc29uKQogewogICAgIGlmIChtX2Jy
aWRnZSkKLSAgICAgICAgbV9icmlkZ2UtPmZhaWwocmVhc29uKTsKKyAgICAgICAgbV9icmlkZ2Ut
PmZhaWwoV1RGTW92ZShyZWFzb24pKTsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCkBAIC0yMjUsMTIgKzIyNSwxMiBAQCB2b2lkIFdvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpjbG9zZShpbnQgY29kZSwgY29uc3Qg
U3RyaW5nJiByZWFzbwogICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmNsb3NlKGNvZGUsIHJl
YXNvbik7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpQZWVyOjpmYWlsKFN0cmluZyYmIHJlYXNvbikKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogICAgIGlmICghbV9tYWluV2ViU29ja2V0Q2hhbm5lbCkKICAgICAgICAg
cmV0dXJuOwotICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmZhaWwocmVhc29uKTsKKyAgICBt
X21haW5XZWJTb2NrZXRDaGFubmVsLT5mYWlsKFdURk1vdmUocmVhc29uKSk7CiB9CiAKIHZvaWQg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpc2Nvbm5lY3QoKQpAQCAt
MjcyLDEzICsyNzIsMTMgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
UGVlcjo6ZGlkQ29ubmVjdCgpCiAgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKLXZvaWQgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6
OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2Vy
Q2xpZW50V3JhcHBlciwgbWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgIG1fbG9hZGVyUHJveHkucG9z
dFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3Jh
cHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlciwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSku
aXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUg
ewogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxT
Y29wZSgpIHx8IGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIHdvcmtl
ckNsaWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOworICAgICAgICB3b3Jr
ZXJDbGllbnRXcmFwcGVyLT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAg
ICB9LCBtX3Rhc2tNb2RlKTsKIH0KIApAQCAtMzIzLDEzICszMjMsMTMgQEAgdm9pZCBXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5k
bGVkQnVmZmVyZWQKICAgICB9LCBtX3Rhc2tNb2RlKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBT
dHJpbmcmIHJlYXNvbikKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBl
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYgcmVhc29uKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtl
ckNsaWVudFdyYXBwZXIsIHJlYXNvbiA9IHJlYXNvbi5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0
VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFw
cGVyID0gbV93b3JrZXJDbGllbnRXcmFwcGVyLCByZWFzb24gPSBXVEZNb3ZlKHJlYXNvbikuaXNv
bGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewog
ICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29w
ZSgpIHx8IGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIHdvcmtlckNs
aWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsKKyAgICAgICAgd29y
a2VyQ2xpZW50V3JhcHBlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihXVEZNb3ZlKHJlYXNvbikp
OwogICAgIH0sIG1fdGFza01vZGUpOwogfQogCkBAIC00MTIsMTUgKzQxMiwxNCBAQCB2b2lkIFdv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmNvbm5lY3QoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cgogICAgICAgICAKICAgICAgICAgLy8gRklYTUU6IG1ha2UgdGhpcyBt
aXhlZCBjb250ZW50IGNoZWNrIGVxdWl2YWxlbnQgdG8gdGhlIGRvY3VtZW50IG1peGVkIGNvbnRl
bnQgY2hlY2sgY3VycmVudGx5IGluIFdlYlNvY2tldDo6Y29ubmVjdCgpCiAgICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKLSAgICAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBlcnJvclN0cmluZyA9IE1peGVkQ29udGVudENoZWNrZXI6OmNoZWNrRm9yTWl4
ZWRDb250ZW50SW5GcmFtZVRyZWUoKmZyYW1lLCB1cmwpOwotICAgICAgICAgICAgaWYgKGVycm9y
U3RyaW5nKSB7Ci0gICAgICAgICAgICAgICAgcGVlci0+ZmFpbChlcnJvclN0cmluZy52YWx1ZSgp
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yU3RyaW5nID0gTWl4ZWRDb250ZW50Q2hlY2tl
cjo6Y2hlY2tGb3JNaXhlZENvbnRlbnRJbkZyYW1lVHJlZSgqZnJhbWUsIHVybCkpIHsKKyAgICAg
ICAgICAgICAgICBwZWVyLT5mYWlsKFdURk1vdmUoZXJyb3JTdHJpbmcpLnZhbHVlKCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAg
IGlmIChwZWVyLT5jb25uZWN0KHVybCwgcHJvdG9jb2wpID09IFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpDb25uZWN0U3RhdHVzOjpLTykKLSAgICAgICAgICAgIHBlZXItPmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IobnVsbFN0cmluZygpKTsKKyAgICAgICAgICAgIHBlZXItPmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IoU3RyaW5nIHsgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTUyMCwxNyArNTE5LDE3
IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y2xvc2Uo
aW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhCiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNv
bikKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6ZmFpbChT
dHJpbmcmJiByZWFzb24pCiB7CiAgICAgaWYgKCFtX3BlZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihbcGVlciA9IG1fcGVlciwgcmVhc29u
ID0gcmVhc29uLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KSB7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKFtwZWVyID0gbV9wZWVyLCBy
ZWFzb24gPSBXVEZNb3ZlKHJlYXNvbikuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNEb2N1bWVudCgpKTsK
ICAgICAgICAgQVNTRVJUKHBlZXIpOwogCi0gICAgICAgIHBlZXItPmZhaWwocmVhc29uKTsKKyAg
ICAgICAgcGVlci0+ZmFpbChXVEZNb3ZlKHJlYXNvbikpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDM2OWE2ZmExNmQ0YzQ0MjQ3ZGQw
NmNlMDZkN2FhYTc1ODAzNGJmYWMuLjQwYTNmYTcwY2MyM2NhODAxMjI4MTQ2Mjk0ZDA1YzcxYmU4
MjRlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC02Myw3
ICs2Myw3IEBAIHB1YmxpYzoKICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJl
c3VsdCBzZW5kKEJsb2ImKSBmaW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgpIGNv
bnN0IGZpbmFsOwogICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29u
KSBmaW5hbDsKLSAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOworICAg
IHZvaWQgZmFpbChTdHJpbmcmJiByZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzY29ubmVjdCgp
IGZpbmFsOyAvLyBXaWxsIHN1cHByZXNzIGRpZENsb3NlKCkuCiAgICAgdm9pZCBzdXNwZW5kKCkg
ZmluYWw7CiAgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKQEAgLTgyLDE5ICs4MiwxOSBAQCBwdWJs
aWM6CiAgICAgICAgIHZvaWQgc2VuZChCbG9iJik7CiAgICAgICAgIHZvaWQgYnVmZmVyZWRBbW91
bnQoKTsKICAgICAgICAgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24p
OwotICAgICAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOworICAgICAgICB2b2lk
IGZhaWwoU3RyaW5nJiYgcmVhc29uKTsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAgICAg
ICAgIHZvaWQgc3VzcGVuZCgpOwogICAgICAgICB2b2lkIHJlc3VtZSgpOwogCiAgICAgICAgIC8v
IFdlYlNvY2tldENoYW5uZWxDbGllbnQgZnVuY3Rpb25zLgogICAgICAgICB2b2lkIGRpZENvbm5l
Y3QoKSBmaW5hbDsKLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpIGZpbmFsOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZyYm
IG1lc3NhZ2UpIGZpbmFsOwogICAgICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rv
cjx1aW50OF90PiYmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3Vu
dCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkU3RhcnRD
bG9zaW5nSGFuZHNoYWtlKCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQg
dW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVz
LCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7Ci0gICAg
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbikgZmlu
YWw7CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiByZWFzb24p
IGZpbmFsOwogICAgICAgICB2b2lkIGRpZFVwZ3JhZGVVUkwoKSBmaW5hbDsKIAogICAgIHByaXZh
dGU6CkBAIC0xMjYsNyArMTI2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChCbG9iJik7CiAgICAgICAgIHVuc2lnbmVkIGJ1
ZmZlcmVkQW1vdW50KCk7CiAgICAgICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uKTsKLSAgICAgICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKTsKKyAg
ICAgICAgdm9pZCBmYWlsKFN0cmluZyYmIHJlYXNvbik7CiAgICAgICAgIHZvaWQgZGlzY29ubmVj
dCgpOwogICAgICAgICB2b2lkIHN1c3BlbmQoKTsKICAgICAgICAgdm9pZCByZXN1bWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25EYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXhjZXB0aW9uRGF0YS5oCmluZGV4IDk4NTMzNzZmMWM0ZGRjZmQxYTUxYWQ0YWVh
YzlkMDY0ZWU5OWY1NDkuLmNlMGNhZTM2N2YyY2M1MTFhMjUyYTY1MmUzYzYyNTRkYWJhMWI5M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25EYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaApAQCAtNDAsMTAgKzQwLDggQEAgc3RydWN0
IEV4Y2VwdGlvbkRhdGEgewogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgRXhjZXB0
aW9uIHRvRXhjZXB0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBjb2RlLCBTdHJpbmcgeyBtZXNzYWdlIH0gfTsKLSAgICB9CisgICAgRXhjZXB0aW9uIHRvRXhj
ZXB0aW9uKCkgY29uc3QgJiB7IHJldHVybiBFeGNlcHRpb24geyBjb2RlLCBTdHJpbmcgeyBtZXNz
YWdlIH0gfTsgfQorICAgIEV4Y2VwdGlvbiB0b0V4Y2VwdGlvbigpICYmIHsgcmV0dXJuIEV4Y2Vw
dGlvbiB7IGNvZGUsIFdURk1vdmUobWVzc2FnZSkgfTsgfQogfTsKIAogdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggYzEzMzc0YjE2MWVlYmJmNjc4NjBhMDAwOWJl
YzE0YTM1YzUzMjk5Zi4uZmUxY2MyZGJiOTg2M2NkNDQ4MDQ3NmQyZTIxYTVhMjI5ZGM4YTBlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCBQcm90b2NvbDo6RXJyb3JTdHJp
bmdPcjx2b2lkPiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1lc3NhZ2VUb1dvcmtlcihjb25z
dCBTdAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNl
bmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmIHByb3h5
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpzZW5k
TWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiBwcm94eSwg
U3RyaW5nJiYgbWVzc2FnZSkKIHsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2hN
ZXNzYWdlRnJvbVdvcmtlcihwcm94eS5pZGVudGlmaWVyKCksIG1lc3NhZ2UpOworICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyLT5kaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKHByb3h5LmlkZW50aWZp
ZXIoKSwgV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yV29ya2VyQWdlbnQ6
OnNob3VsZFdhaXRGb3JEZWJ1Z2dlck9uU3RhcnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IDkw
NTY3YmIwMjEwZWRlOWQzZDcyZDhkMDI1MzQ5NzM3MzdjMGE2ZjEuLmUxYmJkOGY5NDZlNDFmMzAx
YThmZjg3Zjc0YWZlMzk5ZDYxZmVjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAg
cHVibGljOgogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2Vu
ZE1lc3NhZ2VUb1dvcmtlcihjb25zdCBTdHJpbmcmIHdvcmtlcklkLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOwogCiAgICAgLy8gV29ya2VySW5zcGVjdG9yUHJveHk6OlBhZ2VDaGFubmVsCi0gICAg
dm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5
JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtl
clRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmLCBTdHJpbmcmJiBtZXNzYWdlKTsKIAog
ICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIGJvb2wgc2hvdWxkV2FpdEZvckRl
YnVnZ2VyT25TdGFydCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
YWNoZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQ
cm92aWRlci5oCmluZGV4IGVlZjYyNTcyYTc1OGI2ZmVjYTdjYjBhNzU2ZjQxY2QxODU4MDlhYTcu
LmE0Nzk3YTU2YmZhNmQwNjAyZDM0OTk3Y2IwMThlMzgxYzQ2ZDcxNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGlj
OgogICAgICAgICB2b2lkIG9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwg
RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAg
ICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmll
ckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0
IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZvc0NhbGxi
YWNrJiYpIGZpbmFsIHsgfQotICAgICAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCwg
Y29uc3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2Fs
bGJhY2smJikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90
LCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJh
Y2smJikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0
X3QsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hl
RW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2
b2lkIGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90LCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmlu
YWwgeyB9CiAgICAgICAgIHZvaWQgcmVmZXJlbmNlKHVpbnQ2NF90KSBmaW5hbCB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKaW5kZXggZDljZGU0ZjVlOTgyZDgzYzBkOTMx
OTBhOTgwMmQ1Mjc1ODMwOWNmNS4uYjM5YmJkZDQ4YTU0YTQ3MmM4OWJhMGMyNDkyNWUyNjMxYWJj
YjliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKQEAgLTc5LDkgKzc5
LDkgQEAgdm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNo
YW5uZWwpCiAgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRl
bmQoY2hhbm5lbCk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZy
b21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlz
cGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKQogewotICAgIG1fcGFnZS5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1lc3NhZ2Up
OworICAgIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZy
b250ZW5kKFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpzZXRJ
bmRpY2F0aW5nKGJvb2wgaW5kaWNhdGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZURlYnVnZ2FibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUu
aAppbmRleCA1OGZjNDc3Y2Y0MzUzYjUyN2NjM2ZkMmQxOTllNGM3ZmIwMTJiYTFiLi44YmQ2ZmJh
Nzk1ZWIzZGM4OGVlNzE4NzYzOTRiNTc4ZDk3N2E1YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
RGVidWdnYWJsZS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29ubmVj
dChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9u
ID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lk
IGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKLSAgICB2b2lk
IGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsK
KyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2FnZSkgZmlu
YWw7CiAgICAgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIGZpbmFsOwogCiAgICAgY29uc3QgU3Ry
aW5nJiBuYW1lT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX25hbWVPdmVycmlkZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAppbmRleCBi
YTExZGRhMTY3ZmUxMGExMjFjZDExY2I5YmUyN2Q5MmJjNTE4MmY4Li42MjQ5MWZlYzJhNGE1MDcx
YmZkNjBmMjQ3OWMxNmE3ZTkzYTgwM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtMTM4LDEyICsxMzgsMTIgQEAgdm9pZCBXb3Jr
ZXJJbnNwZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VUb1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIo
Y29uc3QgU3RyaW5nJgogICAgIH0pOwogfQogCi12b2lkIFdvcmtlckluc3BlY3RvclByb3h5Ojpz
ZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3Zv
aWQgV29ya2VySW5zcGVjdG9yUHJveHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQo
U3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBpZiAoIW1fcGFnZUNoYW5uZWwpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFnZUNoYW5uZWwtPnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRl
bmQoKnRoaXMsIG1lc3NhZ2UpOworICAgIG1fcGFnZUNoYW5uZWwtPnNlbmRNZXNzYWdlRnJvbVdv
cmtlclRvRnJvbnRlbmQoKnRoaXMsIFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlcklu
c3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclBy
b3h5LmgKaW5kZXggODMzNGQ0N2QzNGRlZjc1ZDRiYmNlMzM2ZTI4ZWJmZThkNzZiMjAyZi4uODNh
Y2I1ZmRkYmExMDQ0MTQ3ZTc4NGFiNjllNWM5MGZmYjViMDhmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJs
aWM6CiAgICAgY2xhc3MgUGFnZUNoYW5uZWwgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVh
bCB+UGFnZUNoYW5uZWwoKSA9IGRlZmF1bHQ7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVz
c2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiwgY29uc3QgU3Ry
aW5nJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9G
cm9udGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSYsIFN0cmluZyYmKSA9IDA7CiAgICAgfTsKIAog
ICAgIHN0YXRpYyBXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4mIGFsbFdvcmtlcklu
c3BlY3RvclByb3hpZXMoKTsKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29u
bmVjdFRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihQYWdlQ2hhbm5lbCYpOwogICAgIHZvaWQg
ZGlzY29ubmVjdEZyb21Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7CiAgICAgdm9pZCBzZW5k
TWVzc2FnZVRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihjb25zdCBTdHJpbmcmKTsKLSAgICB2
b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CisgICAg
dm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFN0cmluZyYmKTsKIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBXb3JrZXJJbnNwZWN0b3JQcm94eShjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAppbmRleCA2YWQyMTc3NjM1NWI3MjU5MDU1ZmZkYmRlODgwYzczYmJlZGYxNzc2Li5jYjZj
NjIyYmYzOTgyYjg2ZTY3ODI3MjkzMzM4YTBlYjI4ZmFmNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMjEzLDkgKzIxMyw5IEBA
IHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnCiAKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBv
c3RNZXNzYWdlVG9EZWJ1Z2dlcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
bWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBtZXNzYWdlID0g
bWVzc2FnZS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX21heUJl
RGVzdHJveWVkKQotICAgICAgICAgICAgbV9pbnNwZWN0b3JQcm94eS0+c2VuZE1lc3NhZ2VGcm9t
V29ya2VyVG9Gcm9udGVuZChtZXNzYWdlKTsKKyAgICAgICAgICAgIG1faW5zcGVjdG9yUHJveHkt
PnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAg
fSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0Ns
aWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYjRjZWQzYjYwM2I0OWJjNjgwMDBiYzZhMTQ0ZTMzMzQ4
ZDEzMzdlZi4uMTM3Mzg5ODkxNjhjZWEyM2MyNmY2MjE2Njk1N2E1ZGM3NGE2ZDQ1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5jcHAKQEAgLTkyLDIxICs5MiwyMiBAQCBib29sIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRh
c2tGb3JKb2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllcgogICAgIHJl
dHVybiBpc1Bvc3RlZDsKIH0KIAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmpvYlJlamVjdGVk
SW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgY29uc3Qg
RXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpq
b2JSZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZp
ZXIsIEV4Y2VwdGlvbkRhdGEmJiBleGNlcHRpb25EYXRhKQogewotICAgIHBvc3RUYXNrRm9ySm9i
KGpvYklkZW50aWZpZXIsIElzSm9iQ29tcGxldGU6OlllcywgW2V4Y2VwdGlvbkRhdGEgPSBleGNl
cHRpb25EYXRhLmlzb2xhdGVkQ29weSgpXSAoYXV0byYgam9iKSB7Ci0gICAgICAgIGpvYi5mYWls
ZWRXaXRoRXhjZXB0aW9uKGV4Y2VwdGlvbkRhdGEudG9FeGNlcHRpb24oKSk7CisgICAgcG9zdFRh
c2tGb3JKb2Ioam9iSWRlbnRpZmllciwgSXNKb2JDb21wbGV0ZTo6WWVzLCBbZXhjZXB0aW9uRGF0
YSA9IFdURk1vdmUoZXhjZXB0aW9uRGF0YSkuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBqb2IpIG11
dGFibGUgeworICAgICAgICBqb2IuZmFpbGVkV2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGV4Y2VwdGlv
bkRhdGEpLnRvRXhjZXB0aW9uKCkpOwogICAgIH0pOwogfQogCiB2b2lkIFNXQ2xpZW50Q29ubmVj
dGlvbjo6cmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRl
bnRpZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIHJl
Z2lzdHJhdGlvbkRhdGEsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVu
UmVzb2x2ZWQpCiB7Ci0gICAgYm9vbCBpc1Bvc3RlZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50
aWZpZXIsIElzSm9iQ29tcGxldGU6OlllcywgW3JlZ2lzdHJhdGlvbkRhdGEgPSByZWdpc3RyYXRp
b25EYXRhLmlzb2xhdGVkQ29weSgpLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWRdIChhdXRvJiBq
b2IpIG11dGFibGUgeworICAgIGF1dG8gcmVnaXN0cmF0aW9uS2V5ID0gcmVnaXN0cmF0aW9uRGF0
YS5rZXk7CisgICAgYm9vbCBpc1Bvc3RlZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50aWZpZXIs
IElzSm9iQ29tcGxldGU6OlllcywgW3JlZ2lzdHJhdGlvbkRhdGEgPSBXVEZNb3ZlKHJlZ2lzdHJh
dGlvbkRhdGEpLmlzb2xhdGVkQ29weSgpLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWRdIChhdXRv
JiBqb2IpIG11dGFibGUgewogICAgICAgICBqb2IucmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFdU
Rk1vdmUocmVnaXN0cmF0aW9uRGF0YSksIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CiAgICAg
fSk7CiAKICAgICBpZiAoIWlzUG9zdGVkICYmIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCA9PSBT
aG91bGROb3RpZnlXaGVuUmVzb2x2ZWQ6OlllcykKLSAgICAgICAgZGlkUmVzb2x2ZVJlZ2lzdHJh
dGlvblByb21pc2UocmVnaXN0cmF0aW9uRGF0YS5rZXkpOworICAgICAgICBkaWRSZXNvbHZlUmVn
aXN0cmF0aW9uUHJvbWlzZShyZWdpc3RyYXRpb25LZXkpOwogfQogCiB2b2lkIFNXQ2xpZW50Q29u
bmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiYgcmVnaXN0
cmF0aW9uS2V5LCBGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGY5
NTQwNGI3NGI2ZDQ4MmRlN2U2OGEwNWVhNTMyZTFiODg2OGY0YzEuLjA1ZmRkMDNhZWY0M2M1ZDA2
MGZjN2YxYmNjNDVjOGFjYmM4Yzg1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJs
aWM6CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgU1dDbGllbnRDb25uZWN0aW9uKCk7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdv
cmtlckpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGpvYlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIs
IEV4Y2VwdGlvbkRhdGEmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RyYXRpb25K
b2JSZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YSYmLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2Vy
Sm9iSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYmLCBGZXRjaE9wdGlv
bnM6OkNhY2hlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9u
Q29udGV4dElkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFNlcnZpY2VXb3Jr
ZXJEYXRhJiYgc291cmNlLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5j
cHAKaW5kZXggNjhmMGU2MGVjNzQ3NGFiZTA2YjI2MTE0MmM3Zjc1MmViMjRjZGMyYy4uNThkOTZl
ZjU4OWNhODE1Y2NjOTMyMzI4OTllNjMzZGI3ZmJmYzAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3Bw
CkBAIC01NiwxMSArNTYsMTYgQEAgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUg
dG9TZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlKFNjcmlwdEV4ZWN1dGkKICAgICByZXR1cm4g
U2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZTo6TmVzdGVkOwogfQogCi1TZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QK
K1NlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRl
ZENvcHkoKSBjb25zdCAmCiB7CiAgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgdHlwZSwgZnJhbWVU
eXBlLCB1cmwuaXNvbGF0ZWRDb3B5KCksIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIH07
CiB9CiAKK1NlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpp
c29sYXRlZENvcHkoKSAmJgoreworICAgIHJldHVybiB7IGlkZW50aWZpZXIsIHR5cGUsIGZyYW1l
VHlwZSwgV1RGTW92ZSh1cmwpLmlzb2xhdGVkQ29weSgpLCBsYXN0TmF2aWdhdGlvbldhc0FwcElu
aXRpYXRlZCB9OworfQorCiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YTo6ZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewogICAgIGJv
b2wgaXNEb2N1bWVudCA9IGlzPERvY3VtZW50Pihjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKaW5k
ZXggZTI4YjJiYzU3OGJlYjI4YmYwMTdkOTNhYjExMzZlYWFiNmZjYzFmOS4uMzk3NWQ1MTgxNjVj
YWI0NzgzNGM5MWIxZTQxMjk2Y2U4MTI2MTFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKQEAgLTQ3LDcg
KzQ3LDggQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsKICAgICBVUkwgdXJsOwog
ICAgIExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkOwogCi0gICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29u
c3Q7CisgICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29uc3QgJjsK
KyAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBpc29sYXRlZENvcHkoKSAmJjsKIAogICAgIHN0
YXRpYyBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YS5oCmluZGV4IDQ2YTlmYTcwMTI5ZTM3NWM1OTY4MWJiYTZlMzBl
YTk4YWJjYjFkODcuLjlhNjZkNDhiMGEyOWQ5ZjI5M2EzMmJmZmU4NGE1N2MwZDc3NzI3YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRleHREYXRhLmgKQEAgLTc5LDcgKzc5LDggQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSB7CiAgICAgICAgICAgICB9fTsKICAgICAgICAgfQogCi0gICAgICAgIEltcG9y
dGVkU2NyaXB0IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgc2NyaXB0Lmlzb2xhdGVk
Q29weSgpLCByZXNwb25zZVVSTC5pc29sYXRlZENvcHkoKSwgbWltZVR5cGUuaXNvbGF0ZWRDb3B5
KCkgfTsgfQorICAgICAgICBJbXBvcnRlZFNjcmlwdCBpc29sYXRlZENvcHkoKSBjb25zdCAmIHsg
cmV0dXJuIHsgc2NyaXB0Lmlzb2xhdGVkQ29weSgpLCByZXNwb25zZVVSTC5pc29sYXRlZENvcHko
KSwgbWltZVR5cGUuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgICAgICBJbXBvcnRlZFNjcmlwdCBp
c29sYXRlZENvcHkoKSAmJiB7IHJldHVybiB7IFdURk1vdmUoc2NyaXB0KS5pc29sYXRlZENvcHko
KSwgV1RGTW92ZShyZXNwb25zZVVSTCkuaXNvbGF0ZWRDb3B5KCksIFdURk1vdmUobWltZVR5cGUp
Lmlzb2xhdGVkQ29weSgpIH07IH0KICAgICB9OwogCiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNl
V29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24uY3BwCmluZGV4IGY3YTQ0NWQxNjVmYWFjYWFmN2MyYzg0ZmQzMmUwNTk3YjRiNWVjN2Uu
LmZiMTAyMjE4NzE3ZGQ1MWE2ZWUzMTA0MTM4YmRjMWRmYjg3ZjBjOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi5jcHAKQEAgLTI2OSw3ICsyNjksNyBAQCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIm
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246Om5hdmlnYXRpb25QcmVsb2FkKCkKIH0KIAogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05fRVZFTlQpCi12b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b246OnNob3dOb3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgTm90aWZpY2F0aW9uT3B0aW9ucyYgb3B0aW9ucywgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBTdHJpbmcmJiB0aXRsZSwgTm90aWZpY2F0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikg
ewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3Ry
YXRpb24gZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmUgd29ya2VyIl9zIH0pOwpAQCAtMjkyLDcgKzI5
Miw3IEBAIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0CiAKICAgICAvLyBUaGUgTm90aWZpY2F0aW9u
IGlzIGtlcHQgYWxpdmUgYnkgdmlydHVlIG9mIGJlaW5nIHNob3coKSduIHNvb24uCiAgICAgLy8g
RklYTUU6IFdoZW4gaW1wbGVtZW50aW5nIGdldE5vdGlmaWNhdGlvbnMoKSwgc3RvcmUgdGhpcyBO
b3RpZmljYXRpb24gaW4gdGhlIHJlZ2lzdHJhdGlvbidzIG5vdGlmaWNhdGlvbiBsaXN0LgotICAg
IGF1dG8gbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uOjpjcmVhdGUoY29udGV4dCwgdGl0bGUs
IG9wdGlvbnMpOworICAgIGF1dG8gbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uOjpjcmVhdGUo
Y29udGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0aW9ucykpOwogCiAgICAgY29udGV4
dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIHByb21pc2UucmVz
b2x2ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggMzM0MzM3YTZiZWM2N2YxZjYyNGI4MzBl
YjBmZDY0MDNjNzM0ZTE3OS4uZjdjYzkwZWViNDA3OWE0ZmRmMTIxZTJjZjcxZDg1NzBmNTc1ZjZh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgU3RyaW5nIHRhZzsKICAgICB9OwogCi0gICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBOb3RpZmljYXRp
b25PcHRpb25zJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgc2hvd05v
dGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYgdGl0bGUsIE5vdGlm
aWNhdGlvbk9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQg
Z2V0Tm90aWZpY2F0aW9ucyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgR2V0Tm90aWZp
Y2F0aW9uT3B0aW9ucyYgZmlsdGVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2VxdWVuY2U8SURM
SW50ZXJmYWNlPE5vdGlmaWNhdGlvbj4+Pik7CiAKICAgICB2b2lkIGFkZE5vdGlmaWNhdGlvblRv
TGlzdChOb3RpZmljYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuY3Bw
CmluZGV4IGVmMDJhN2ZmYzBlODcxNzMxYjIyNmIzNjdjNDEwNWFlYTc4ZGFjYTQuLjAyNTU0YTBi
NTdiYTZjNWY3NTZkOTZjMDY0Y2NhNjkwYWY5NzRkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25PcHRpb25zLmNwcApAQCAtMzAsMTEgKzMwLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CitTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9ucyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9uczo6aXNvbGF0ZWRD
b3B5KCkgY29uc3QgJgogewogICAgIHJldHVybiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0
aW9ucyB7IHNjb3BlLmlzb2xhdGVkQ29weSgpLCB0eXBlLCB1cGRhdGVWaWFDYWNoZSB9OwogfQog
CitTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uT3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkgJiYKK3sKKyAgICByZXR1cm4gU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbk9wdGlvbnMgeyBXVEZNb3ZlKHNjb3BlKS5pc29sYXRlZENvcHkoKSwgdHlw
ZSwgdXBkYXRlVmlhQ2FjaGUgfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlv
bnMuaAppbmRleCA5ZTM2OTBlYTczZjMzNjg5NjRmZDQ2YzkxNTU2ZTU5MWZiZGM2YTNlLi4yZjVi
ZjlkM2JjMzljNGEzOWUwNmNkMjVjYzgxOGE3N2Q0MzhkNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnMuaApAQCAtMzksNyArMzksOCBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbk9wdGlvbnMgewogICAgIFdvcmtlclR5cGUgdHlwZTsKICAgICBTZXJ2aWNlV29y
a2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGU7CiAKLSAgICBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdDsKKyAgICBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdCAmOworICAgIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25PcHRpb25zIGlzb2xhdGVkQ29weSgpICYmOwogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25PcHRpb25zPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRl
YnVnZ2FibGUuY3BwCmluZGV4IDQxMmU1Njk1NzI1MzZmYmViZTA4YmEzMjk1Mjk2OGFkNzkzNmU4
MGMuLjRmYjQwNDBiY2RiZGNhZDhhZWRjZDZjZGQwZGRkMWNhYmI0YmViOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1
Z2dhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwpCiAg
ICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJveHkoKS5kaXNjb25uZWN0
RnJvbVdvcmtlcihjaGFubmVsKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyRGVidWdnYWJsZTo6
ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFNl
cnZpY2VXb3JrZXJEZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYm
IG1lc3NhZ2UpCiB7Ci0gICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJv
eHkoKS5zZW5kTWVzc2FnZVRvV29ya2VyKG1lc3NhZ2UpOworICAgIG1fc2VydmljZVdvcmtlclRo
cmVhZFByb3h5Lmluc3BlY3RvclByb3h5KCkuc2VuZE1lc3NhZ2VUb1dvcmtlcihXVEZNb3ZlKG1l
c3NhZ2UpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJE
ZWJ1Z2dhYmxlLmgKaW5kZXggNTliZmMzY2ZkN2Y3YWM0NmRlNmQyNTRkZWY1ZjExOGMwZGI5ZTg1
Yy4uZTFkMDBmNzI1ZGNlYmM0NmNiMmY3MmMzOWEzYmZjMzQ4NTQ3MjQyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVn
Z2FibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyRGVidWdnYWJsZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWND
b25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsK
ICAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsK
LSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVz
c2FnZSkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlclRocmVhZFByb3h5JiBt
X3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVj
dG9yUHJveHkuY3BwCmluZGV4IDczZjJjNWNlOTE2YWNiNjU1MjExM2JjODJjOTg4OWM5MTcyMzhm
ODUuLjI0ODUwYzRmZTc0NWYyZTc2NTgyZTY0YzUxNWE5NzFlNGQzMjljYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNw
ZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtODAsMTkgKzgwLDE5IEBAIHZv
aWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpkaXNjb25uZWN0RnJvbVdvcmtlcihGcm9u
dGVuZENoYW5uZWwmIGNoYW5uZWwpCiAgICAgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlcklu
c3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZVRvV29ya2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K3ZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZVRvV29ya2VyKFN0
cmluZyYmIG1lc3NhZ2UpCiB7Ci0gICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkudGhyZWFk
KCkucnVuTG9vcCgpLnBvc3REZWJ1Z2dlclRhc2soW21lc3NhZ2UgPSBtZXNzYWdlLmlzb2xhdGVk
Q29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgIG1fc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LnRocmVhZCgpLnJ1bkxvb3AoKS5wb3N0RGVidWdnZXJUYXNrKFtt
ZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKS5pc29sYXRlZENvcHkoKV0gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpIHsKICAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KGNvbnRleHQpLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRl
bmQobWVzc2FnZSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclBy
b3h5OjpzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKK3ZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZUZyb21Xb3Jr
ZXJUb0Zyb250ZW5kKFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKCFtX2NoYW5uZWwpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fY2hhbm5lbC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKG1l
c3NhZ2UpOworICAgIG1fY2hhbm5lbC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKFdURk1vdmUobWVz
c2FnZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDM2YTgwYzlkNDViZmM0M2ZhMjg0NTNiYzE0ZjU5NzE0
NTdhMzVlYTIuLjc0MWUwYWU3NzkwMDlmZmVlODAxZTRiMWI1ZDcyNDNkZDM3ZjI1MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oCkBAIC01Miw4ICs1Miw4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdFRvV29ya2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFu
bmVsJik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbVdvcmtlcihJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbCYpOwotICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlcihjb25zdCBTdHJpbmcmKTsK
LSAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2VyKFN0cmluZyYmKTsKKyAgICB2b2lkIHNlbmRN
ZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoU3RyaW5nJiYpOwogCiBwcml2YXRlOgogICAgIFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eSYgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBhOTRlNmQxZTc2NWQzNTkyMTA1
ODczNDAxMzFjMGEzOTE5ZTZlODdmLi44YTIxOTQxODMzYmJhOGEwZGE2MDQ4YzNiYjc2ZTg2MDA1
MWQ0ZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTEyNiw5
ICsxMjYsOSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6cG9zdFRhc2tUb0xvYWRl
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdAogCiB2b2lkIFNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6cG9zdE1lc3NhZ2VUb0RlYnVnZ2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
IHsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9LCBtZXNzYWdlID0gbWVzc2FnZS5pc29sYXRlZENvcHkoKV0geworICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH0sIG1lc3NhZ2UgPSBtZXNzYWdlLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIHRlcm1pbmF0ZWQgY2FzZS4KLSAgICAgICAgbV9pbnNwZWN0b3JQ
cm94eS5zZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKG1lc3NhZ2UpOworICAgICAgICBt
X2luc3BlY3RvclByb3h5LnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV1RGTW92ZSht
ZXNzYWdlKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eTo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IGNvbm5lY3RpbwogCiAgICAgQVNTRVJUKCFtX29uZ29pbmdGZXRjaFRhc2tzLmNvbnRhaW5zKGtl
eSkpOwogICAgIG1fb25nb2luZ0ZldGNoVGFza3MuYWRkKGtleSwgY2xpZW50LmNvcHlSZWYoKSk7
Ci0gICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwg
cmVxdWVzdCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZl
cnJlcikuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBm
ZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwg
Y2xpZW50SWRlbnRpZmllciA9IFdURk1vdmUoY2xpZW50SWRlbnRpZmllcikuaXNvbGF0ZWRDb3B5
KCksIHJlc3VsdGluZ0NsaWVudElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlc3VsdGluZ0NsaWVudElk
ZW50aWZpZXIpLmlzb2xhdGVkQ29weSgpXShhdXRvJikgbXV0YWJsZSB7CisgICAgcG9zdFRhc2tG
b3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwgcmVxdWVzdCA9IHJlcXVl
c3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlcikuaXNvbGF0ZWRD
b3B5KCksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLmlzb2xhdGVkQ29weSgpLCBmZXRjaElk
ZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwgY2xpZW50
SWRlbnRpZmllciA9IFdURk1vdmUoY2xpZW50SWRlbnRpZmllcikuaXNvbGF0ZWRDb3B5KCksIHJl
c3VsdGluZ0NsaWVudElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlc3VsdGluZ0NsaWVudElkZW50aWZp
ZXIpLmlzb2xhdGVkQ29weSgpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgIHRocmVhZCgpLnF1
ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyLCBp
c1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQsIFdURk1vdmUoY2xpZW50SWRl
bnRpZmllciksIFdURk1vdmUocmVzdWx0aW5nQ2xpZW50SWRlbnRpZmllcikpOwogICAgIH0sIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNw
cAppbmRleCBkNDdlN2I4MDVjNjJkMzRkMmQ4MmQ1ZmRmN2Q3N2Q0NWY4ZDc3YzFjLi4yYTYxNDZl
YTFhMzBjZGZhNmQ1NzJkNmE0NTQ0YzY4OGUzNzcyNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFi
YXNlLmNwcApAQCAtNjA1LDcgKzYwNSw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6
aW1wb3J0UmVjb3JkcygpCiAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEgeyBXVEZNb3ZlKCprZXkpLCByZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBXVEZNb3ZlKHNjb3BlVVJMKSwgKnVwZGF0ZVZpYUNhY2hlLCBsYXN0VXBkYXRlQ2hlY2tUaW1l
LCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShzZXJ2aWNlV29ya2VyRGF0YSkg
fTsKICAgICAgICAgYXV0byBjb250ZXh0RGF0YSA9IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7
IHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShyZWdpc3RyYXRpb24pLCB3b3JrZXJJZGVudGlmaWVyLCBX
VEZNb3ZlKHNjcmlwdCksIFdURk1vdmUoKmNlcnRpZmljYXRlSW5mbyksIFdURk1vdmUoKmNvbnRl
bnRTZWN1cml0eVBvbGljeSksIFdURk1vdmUoKmNvZXApLCBXVEZNb3ZlKHJlZmVycmVyUG9saWN5
KSwgV1RGTW92ZShzY3JpcHRVUkwpLCAqd29ya2VyVHlwZSwgdHJ1ZSwgTGFzdE5hdmlnYXRpb25X
YXNBcHBJbml0aWF0ZWQ6OlllcywgV1RGTW92ZShzY3JpcHRSZXNvdXJjZU1hcCksIHN0ZDo6bnVs
bG9wdCwgV1RGTW92ZSgqbmF2aWdhdGlvblByZWxvYWRTdGF0ZSkgfTsKIAotICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29udGV4dERhdGEg
PSBjb250ZXh0RGF0YS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHREYXRhID0g
V1RGTW92ZShjb250ZXh0RGF0YSkuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5hZGRSZWdpc3RyYXRpb25Ub1N0b3JlKFdURk1vdmUoY29udGV4
dERhdGEpKTsKICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAppbmRleCAxYjA5NjAxNDg2Y2Rh
ZjEwOWMzODY2Y2IyODI0NDZjZjM3MGE0NDUzLi4zMDAyNjgxZTAyOWYxZDlkMzM3YzUyODY1MmU4
NmIxMmE0ZTE5YjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcApAQCAtMTI0LDkgKzEyNCw5IEBAIHZvaWQgTmV0d29y
a1NvY2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogICAgIGZpbmlzaENsb3NpbmdJZlBvc3NpYmxlKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1NvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCit2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBtX2Vycm9yTWVzc2FnZSA9IGVy
cm9yTWVzc2FnZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsK
ICAgICBtX2Vycm9yVGltZXIuc3RhcnRPbmVTaG90KE5ldHdvcmtQcm9jZXNzOjpyYW5kb21DbG9z
ZWRQb3J0RGVsYXkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAppbmRleCA5MGY0NjVkY2JjNjA1NDNjYzU4Mjg1NDk3
M2FiMzE2OGI4NTcwZTVhLi5mOTczY2ZjZTQ5Mjg1ODU5N2ExYWIxNzdhMTRmZGRiODc4MTIxOWRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0
Q2hhbm5lbC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZl
VGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKGNvbnN0
IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWdu
ZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwotICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoU3RyaW5nJiYpOwogICAgIHZvaWQgZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QoV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3Bv
bnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5jcHAKaW5kZXggN2NiYWYxZWZmNTQ0Mjg3ZGQzYWU4ODE2NzFhZGU1NTY2NThmOGZmMy4uZTQ0
MDkwODE0ODU4NjY3ODgwZTcxN2Y1ZGJjMjM1MzkyYzcxNDZjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6ZGlkSW5jcmVhc2VRdW90YShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFF1bwog
ICAgIH0pOwogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3RlbUdldERp
cmVjdG9yeShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3Rl
bUdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYmIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggOTlhNDUzMTdkYmUzYjRmY2YwNGE5MmFhMWI1
ZWFlMDY3ZTdmNWQ3MC4uMmFiYjBmYjBlMzk4ZTc0ZjYwMTU4MmFlODVjNWU3OWMzMjU1OWU5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtMTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycyBmb3IgRmlsZVN5c3RlbS4KICAgICB2b2lkIHBlcnNpc3Rl
ZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICB2b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBmaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAgdm9pZCBmaWxl
U3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkNsaWVudE9yaWdp
biYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQg
Y2xvc2VIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIpOwogICAgIHZv
aWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICB2b2lkIG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5l
d05hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCA3YzYzZmYzNTJlZTI3
ODkwMjkxMWZlOGVhNzY5ZjAxYmMzYTE2YzllLi41NmU4ODRjOTAyZjVjYzhjNzg4Y2U0MDM2MGE2
MTY0YmFlODIxNzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMTE2LDkgKzExNiw5IEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNldFByb2Nlc3NQb29sKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQogCiAvLyBJbnNwZWN0b3I6OlJlbW90ZUF1dG9tYXRpb25U
YXJnZXQgQVBJCiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRpc3BhdGNoTWVzc2FnZUZy
b21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKQogewotICAgIG1f
YmFja2VuZERpc3BhdGNoZXItPmRpc3BhdGNoKG1lc3NhZ2UpOworICAgIG1fYmFja2VuZERpc3Bh
dGNoZXItPmRpc3BhdGNoKFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiBjaGFubmVsLCBi
b29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiwgYm9vbCBpbW1lZGlhdGVseVBhdXNlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oCmluZGV4IDEyYjdmMTkzMjJlYTc3ZjBiNjFhYTRmMDAzMTYyYzMyZWI5NzE5Mjcu
LjlmNjVjYzgwNTY2NDRjYzA1NDMyYTJlODkxNTllNGEzODkwZDI3M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmgKQEAgLTEzNyw3ICsxMzcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpCiAgICAgLy8gSW5zcGVjdG9yOjpSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0IEFQSQogICAg
IFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSWRlbnRpZmllcjsgfQotICAg
IHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwor
ICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKTsKICAg
ICB2b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21h
dGljQ29ubmVjdGlvbiA9IGZhbHNlLCBib29sIGltbWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSk7CiAg
ICAgdm9pZCBkaXNjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJik7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVi
dWdnYWJsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURl
YnVnZ2FibGUuY3BwCmluZGV4IDY5ZTQ1NzY2MDA0ZGE2M2VkYTNmZWUwNGU0NWNhZTZmZTc0ZDIz
ZTYuLjQ2M2ZmZDJjY2RlOGZmYTYxMTdhNzU0MWRiZGViYjBlYWU1OGYyYzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdnYWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxl
LmNwcApAQCAtNzksOSArNzksOSBAQCB2b2lkIFdlYlBhZ2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0
KEZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKICAgICBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxl
cigpLmRpc2Nvbm5lY3RGcm9udGVuZChjaGFubmVsKTsKIH0KIAotdm9pZCBXZWJQYWdlRGVidWdn
YWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2
b2lkIFdlYlBhZ2VEZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYm
IG1lc3NhZ2UpCiB7Ci0gICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNwYXRjaE1l
c3NhZ2VGcm9tRnJvbnRlbmQobWVzc2FnZSk7CisgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xs
ZXIoKS5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAK
IHZvaWQgV2ViUGFnZURlYnVnZ2FibGU6OnNldEluZGljYXRpbmcoYm9vbCBpbmRpY2F0aW5nKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1
Z2dhYmxlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVn
Z2FibGUuaAppbmRleCA4Zjg0OGRlMTE2YTYxNDU4ZDE4MzNlYTgwOWZjMDZlZmQ1ZWU3YTNkLi4y
ZjE5OWNhNTRhMDRiNWMwZDhjOTcyYjU3NDg4MTg4MTdlNjExODYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVnZ2FibGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVnZ2FibGUuaApAQCAt
NDksNyArNDksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbm5lY3QoSW5zcGVjdG9yOjpGcm9u
dGVuZENoYW5uZWwmLCBib29sIGlzQXV0b21hdGljQ29ubmVjdGlvbiA9IGZhbHNlLCBib29sIGlt
bWVkaWF0ZWx5UGF1c2UgPSBmYWxzZSkgZmluYWw7CiAgICAgdm9pZCBkaXNjb25uZWN0KEluc3Bl
Y3Rvcjo6RnJvbnRlbmRDaGFubmVsJikgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VG
cm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7CisgICAgdm9pZCBkaXNwYXRj
aE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYmIG1lc3NhZ2UpIGZpbmFsOwogICAgIHZvaWQgc2V0
SW5kaWNhdGluZyhib29sKSBmaW5hbDsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRl
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lT3ZlcnJpZGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNw
cAppbmRleCA3MGM0ZjgyM2YzYmY2NjI1ZDU1M2M4NzkzMjNhZjllMzFmMmQwMGQ1Li5jNzY4OGZl
ZTNjNTc3Zjc2YjkxZWYwYjM3Y2I1ZGRhNGViMGE0NGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0
cmlldmVDYWNoZXMoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnCiAgICAgY29ubmVj
dGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6Q2FjaGVTdG9yYWdlRW5naW5lQ29u
bmVjdGlvbjo6Q2FjaGVzKG9yaWdpbiwgdXBkYXRlQ291bnRlciksIFdURk1vdmUoY2FsbGJhY2sp
KTsKIH0KIAotdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHMo
dWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNP
cHRpb25zJiBvcHRpb25zLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNr
JiYgY2FsbGJhY2spCit2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlUmVj
b3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJldHJpZXZlUmVjb3Jkc09w
dGlvbnMmJiBvcHRpb25zLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNr
JiYgY2FsbGJhY2spCiB7CiAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6UmV0cmlldmVSZWNvcmRzKGNhY2hl
SWRlbnRpZmllciwgb3B0aW9ucyksIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi5oCmluZGV4IDE3YWM0MGEyMWJmZWZmZWY2OWVkN2IwNzkyNGQzNTNiYWQzZmYxMTkuLmU4
YzFlZGI5MDQyMGNiOGJmYzI4OWNiMDQyZGRhYzcyYzgwNmZkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90
IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmll
ckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmV0cmlldmVDYWNoZXMoY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiwgdWludDY0X3QgdXBkYXRlQ291bnRlciwgV2ViQ29yZTo6RE9NQ2Fj
aGVFbmdpbmU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKSBmaW5hbDsKIAotICAgIHZvaWQgcmV0cmll
dmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmV0cmll
dmVSZWNvcmRzT3B0aW9ucyYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJh
Y2smJikgZmluYWw7CisgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYsIFdlYkNvcmU6OkRPTUNh
Y2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBiYXRjaERlbGV0
ZU9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkNhY2hlUXVlcnlPcHRpb25zJiYsIFdlYkNvcmU6OkRPTUNh
Y2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQg
YmF0Y2hQdXRPcGVyYXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29y
ZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggY2EwNjA4
YWI3OTgzNzhhMzM1Y2I5ZGJlZTUwZTEzYzAyMDQ4NWUzYy4uZWJjNTNlYmZhOTEwOWM0OTE0Yjg5
ZDc0OWEwNGMwZjVkY2QxNjdmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTIxMiwxNCArMjEyLDE0IEBAIHZv
aWQgV2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29u
KQogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVs
OjpDbG9zZSB7IGNvZGUsIHJlYXNvbiB9KTsKIH0KIAotdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpm
YWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQordm9pZCBXZWJTb2NrZXRDaGFubmVsOjpmYWlsKFN0
cmluZyYmIHJlYXNvbikKIHsKICAgICAvLyBUaGUgY2xpZW50IGNhbiBjbG9zZSB0aGUgY2hhbm5l
bCwgcG90ZW50aWFsbHkgcmVtb3ZpbmcgdGhlIGxhc3QgcmVmZXJlbmNlLgogICAgIFJlZiBwcm90
ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKIAogICAgIGxvZ0Vycm9yTWVzc2FnZShyZWFzb24pOwogICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3Io
cmVhc29uKTsKKyAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5n
IHsgcmVhc29uIH0pOwogCiAgICAgaWYgKG1faXNDbG9zaW5nKQogICAgICAgICByZXR1cm47CkBA
IC0yNjAsNyArMjYwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dChT
dHJpbmcmJiBtZXNzYWdlKQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlKTsKKyAgICBtX2NsaWVudC0+
ZGlkUmVjZWl2ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0
Q2hhbm5lbDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0YSkK
QEAgLTMwOCw3ICszMDgsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNz
YWdlRXJyb3IoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBs
b2dFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKLSAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcihlcnJvck1lc3NhZ2UpOworICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5l
bDo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCA4OThiNmE0MTg4NTY5MTM4NjRm
Y2VmNzJiNDBmZWY4MGVlMTA3MjczLi44ZjEyNTcyYjU5NjBlOTYwZTMxODE2NzkyNzU3ZmYxZjg3
YmMzZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJT
b2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
U29ja2V0Q2hhbm5lbC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgU2VuZFJlc3Vs
dCBzZW5kKFdlYkNvcmU6OkJsb2ImKSBmaW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3Vu
dCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYg
cmVhc29uKSBmaW5hbDsKLSAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFs
OworICAgIHZvaWQgZmFpbChTdHJpbmcmJiByZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzY29u
bmVjdCgpIGZpbmFsOwogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwogICAgIHZvaWQgcmVzdW1l
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCBlNzA5MDUwNzM5
OTJhZGU0ZjQ5NzFhNDc2MGMwMjczNzgzN2ZhODEyLi42NTU0NGFjNDJlYzcyNGFhZmJjZWNlYWUz
ODViNjI4OTg1NGY4MmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTQx
LDcgKzQxLDcgQEAgUmVmPFdlYlN0b3JhZ2VDb25uZWN0aW9uPiBXZWJTdG9yYWdlQ29ubmVjdGlv
bjo6Y3JlYXRlKCkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTdG9yYWdlQ29ubmVjdGlv
bik7CiB9CiAKLXZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmdldFBlcnNpc3RlZChjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RD
YWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6
Z2V0UGVyc2lzdGVkKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbiwgU3RvcmFnZUNvbm5l
Y3Rpb246OlBlcnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGNvbm5l
Y3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdl
cjo6UGVyc2lzdGVkKG9yaWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KQEAg
LTUxLDcgKzUxLDcgQEAgdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6cGVyc2lzdChjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgU3RvcmFnZUMKICAgICBjb25uZWN0aW9uKCku
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlBlcnNp
c3Qob3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYlN0
b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYgb3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVT
eXN0ZW1HZXREaXJlY3RvcnkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luLCBTdG9yYWdl
Q29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhdXRvJiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwogICAgIGNvbm5lY3Rpb24uc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkZpbGVTeXN0
ZW1HZXREaXJlY3Rvcnkob3JpZ2luKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25u
ZWN0aW9uLmgKaW5kZXggODIyNjVkZjRhMWU0ODhkNGZlZmJhMGQ0NjQ2YjZiZGIxNjRlOWEyMy4u
ZWEyZDQ4MjY0NWNjOTBjODA0ODJiODM1NmM1NTJjZjBhMGRhZmI1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3Jh
Z2VDb25uZWN0aW9uLmgKQEAgLTQzLDkgKzQzLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8
V2ViU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZSgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgZ2V0
UGVyc2lzdGVkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFN0b3JhZ2VDb25uZWN0aW9u
OjpQZXJzaXN0Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRQZXJzaXN0ZWQoV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiYsIFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2FsbGJhY2smJikg
ZmluYWw7CiAgICAgdm9pZCBwZXJzaXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFN0
b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBmaWxl
U3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIFN0b3JhZ2VD
b25uZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGZpbGVT
eXN0ZW1HZXREaXJlY3RvcnkoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIFN0b3JhZ2VDb25uZWN0
aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYmKSBmaW5hbDsKIAogICAgIElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbigpOwogfTsK
</data>
<flag name="commit-queue"
          id="481917"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454307</attachid>
            <date>2022-03-09 18:36:16 -0800</date>
            <delta_ts>2022-03-09 19:33:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237695-20220309183615.patch</filename>
            <type>text/plain</type>
            <size>111590</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjFhMDJjZjI3NTE2MmJjMTVkM2YwMzc5MjdkMGRmZTExODNiM2RjLi44ZjMyYTI1NjA2NWJmZGEy
ZTg0MzBlODczZmU2NDIwMGU4M2I0ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wMy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3MgdGhy
ZWFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
Njk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0
aW1pemUgZnVydGhlciB0aGUgcGFzc2luZyBvZiBkYXRhIGFjcm9zcyB0aHJlYWRzIGJ5IGxldmVy
YWdpbmcgdGhlIG9wdGltaXplZAorICAgICAgICB2ZXJzaW9uIG9mIGlzb2xhdGVkQ29weSgpIG9u
IHItdmFsdWUgcmVmZXJlbmNlcyB3aGVuZXZlciBwb3NzaWJsZS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0OjpzZW5kTWVzc2FnZVRvVGFyZ2V0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Lmg6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICog
dG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbk92ZXJy
aWRlczo6aW5pdGlhbGl6ZU92ZXJyaWRlRm9yKToKKwogMjAyMi0wMy0wOSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBTdG9w
IHVzaW5nIHRoZSBlbnYgdmFyIFdFQktJVF9JTlNQRUNUT1JfU0VSVkVSIHRvIGNvbm5lY3QgdG8g
dGhlIGluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVlM2RmOTZkOGRlOTQ5OGFhNDhlMjEyODc4M2Jh
OTVmY2U0MDk5NjYuLmU5Mjk5Mzc2ODQ0MmFjOTVjMjdkYzUyMTE1ZWU3ZmE3ZGE1YWU5NGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMzEgQEAKKzIwMjItMDMtMDkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBmdXJ0aGVyIHRoZSBwYXNzaW5nIG9m
IGRhdGEgYWNyb3NzIHRocmVhZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3Mg
dGhyZWFkcyBieSBsZXZlcmFnaW5nIHRoZSBvcHRpbWl6ZWQKKyAgICAgICAgdmVyc2lvbiBvZiBp
c29sYXRlZENvcHkoKSBvbiByLXZhbHVlIHJlZmVyZW5jZXMgd2hlbmV2ZXIgcG9zc2libGUuCisK
KyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjpxdWVyeUNhY2hlKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9Dcm9zc1RocmVhZFJlY29y
ZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6cmVjb3Jkc0RhdGFGcm9tUmVjb3Jkcyk6CisgICAg
ICAgIChXZWJDb3JlOjpyZWNvcmRzRGF0YU9yRXJyb3JGcm9tUmVjb3Jkcyk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6YmF0Y2hQdXRP
cGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGV0YWNoZWRSVENEYXRhQ2hhbm5lbDo6RGV0YWNoZWRSVENEYXRhQ2hh
bm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjpkZWNvZGUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmRldGFjaCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24p
OgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE6Omlzb2xhdGVkQ29weSk6CisgICAg
ICAgICogTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oOgorICAgICAgICAq
IE1vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFuYWdlcjo6
cGVyc2lzdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVt
QWNjZXNzR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU3RvcmFnZUNvbm5l
Y3Rpb246OmdldFBlcnNpc3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTdG9yYWdlQ29u
bmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy9zdG9y
YWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VW
ZXJzaW9uV3JhcHBlcjo6Q2hhbmdlVmVyc2lvbldyYXBwZXIpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
YW5nZVZlcnNpb25XcmFwcGVyOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmNoYW5nZVZlcnNp
b24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6OmFkZE9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxFcnJvcjo6U1FMRXJyb3IpOgorICAgICAgICAq
IE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWw6OnByb2Nlc3NGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbENsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5k
c2hha2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpzZXRVUkwp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y29ubmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpmYWlsKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aDoKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YTo6dG9FeGNlcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YTo6dG9FeGNlcHRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdl
bnQ6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiBwYWdlL0NhY2hlU3Rv
cmFnZVByb3ZpZGVyLmg6CisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlRGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZSk6
CisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VySW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9y
UHJveHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VySW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpw
b3N0TWVzc2FnZVRvRGVidWdnZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVu
dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpq
b2JSZWplY3RlZEluU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ6Omlzb2xhdGVkQ29weSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2Ny
aXB0Ojppc29sYXRlZENvcHkpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb246OnNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnM6Omlzb2xhdGVk
Q29weSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25PcHRpb25zLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckRlYnVnZ2FibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckRlYnVn
Z2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VUb1dv
cmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OnNl
bmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnBvc3RNZXNzYWdlVG9EZWJ1Z2dl
cik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0
Y2gpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OmltcG9ydFJl
Y29yZHMpOgorCiAyMDIyLTAzLTA5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFtjc3MtbGlzdHNdIGNzcy9jc3MtbGlzdHMvaW5oZXJpdC1vdmVyd3JpdGVz
Lmh0bWwgYW5kIGNzcy9jc3MtbGlzdHMvbGktY291bnRlci1pbmNyZW1lbnQtY29tcHV0ZWQtc3R5
bGUuaHRtbCBhcmUgdW5pcXVlIGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzNDczZDE0MzE4M2IyOGE5
Y2NiZDJhZjdiYTE0MTEyM2MxNWNkNDcuLjJkNzc1NWNlOTc5MTc0OTdlY2Q4OGEwNTg5YTM2MTZk
ZTYxODMwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjItMDMtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBmdXJ0aGVyIHRoZSBw
YXNzaW5nIG9mIGRhdGEgYWNyb3NzIHRocmVhZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0
YSBhY3Jvc3MgdGhyZWFkcyBieSBsZXZlcmFnaW5nIHRoZSBvcHRpbWl6ZWQKKyAgICAgICAgdmVy
c2lvbiBvZiBpc29sYXRlZENvcHkoKSBvbiByLXZhbHVlIHJlZmVyZW5jZXMgd2hlbmV2ZXIgcG9z
c2libGUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVz
c2FnZUVycm9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lz
dGVtR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b246OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJQYWdlRGVidWdnYWJsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VEZWJ1
Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNo
ZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldENoYW5uZWw6OmZhaWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpk
aWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9y
YWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9u
OjpnZXRQZXJzaXN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6
ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIyLTAzLTA5ICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgYWNjZXNzaWJpbGl0eSBsaWJy
YXJ5IHNob3VsZCBiZSBzb2Z0IGxpbmtlZCBvcHRpb25hbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVj
dGlvblRvVGFyZ2V0LmNwcAppbmRleCA3ZDA2ZmFkZWRhYTE0NWZjYWZlODYzYjIwOTE1OWFkN2Jm
Zjc3YWI1Li5mMTZmMWNlZTZiYmM0MzhjYWY2OGVlMzdkOGYxYjZkMDE1YmFmZTVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVt
b3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBS
ZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwKGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9u
LCBib29sIGF1dG9tYXRpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW1vdGVDb25u
ZWN0aW9uVG9UYXJnZXQ6OnNlbmRNZXNzYWdlVG9UYXJnZXQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQordm9pZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNlbmRNZXNzYWdlVG9UYXJnZXQoU3Ry
aW5nJiYgbWVzc2FnZSkKIHsKICAgICBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQqIHRhcmdldCA9
IG51bGxwdHI7CiAgICAgewpAQCAtODIsNyArODIsNyBAQCB2b2lkIFJlbW90ZUNvbm5lY3Rpb25U
b1RhcmdldDo6c2VuZE1lc3NhZ2VUb1RhcmdldChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAg
ICAgIHRhcmdldCA9IG1fdGFyZ2V0OwogICAgIH0KIAotICAgIHRhcmdldC0+ZGlzcGF0Y2hNZXNz
YWdlRnJvbVJlbW90ZShtZXNzYWdlKTsKKyAgICB0YXJnZXQtPmRpc3BhdGNoTWVzc2FnZUZyb21S
ZW1vdGUoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIHZvaWQgUmVtb3RlQ29ubmVjdGlvblRvVGFy
Z2V0OjpjbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCmluZGV4IGRmYjc5
NjI4OTA5YzEwYzQ3YWM2YTU1N2ZhZDc1M2NiMDI0ZWIwYjIuLjg0MzkxNzc1ZDY0ZGIxYTI0NWI5
Yzk5NWU2ZjEzODk2MzIwNWRjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5o
CkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lk
IHNlbmRNZXNzYWdlVG9UYXJnZXQoTlNTdHJpbmcgKik7CiAjZWxzZQotICAgIHZvaWQgc2VuZE1l
c3NhZ2VUb1RhcmdldChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlVG9UYXJn
ZXQoU3RyaW5nJiYpOwogI2VuZGlmCiAgICAgdm9pZCBjbG9zZSgpOwogICAgIHZvaWQgdGFyZ2V0
Q2xvc2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCmluZGV4IDBlN2I1YjI5
NDdiMGUwOGVkNjkzNzYyOTZjMWRiZGU4MGZlNzIwMmUuLmM5ZWY4ODU1Y2FhY2IxMjI3ODk0YWUx
YWY3ZjZkYzIxOGY4NmE5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCkBA
IC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZW1vdGVDb250cm9sQWxsb3dlZCgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJv
bVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKSA9IDA7CiAKICNpZiBVU0UoQ0YpCiAgICAgLy8gVGhl
IGRpc3BhdGNoIGJsb2NrIHdpbGwgYmUgc2NoZWR1bGVkIG9uIGEgZ2xvYmFsIHJ1biBsb29wIGlm
IG51bGwgaXMgcmV0dXJuZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXQuY3BwCmluZGV4IDBhYzJhMjJlNzhkYmRjMWU3MmY3MzEzZGM2NmZlNDliMTg1Y2RlODAuLjVl
MjM2YTJjNGUwMjY3OGExNWI4M2U4N2ZmNzdmZmQwZTFhM2RhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCkBAIC0zNDUsNyArMzQ1LDcgQEAgdm9pZCBS
ZW1vdGVJbnNwZWN0b3I6OnNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IEV2ZW50JiBldmVudCkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb25uZWN0aW9uVG9UYXJnZXQtPnNl
bmRNZXNzYWdlVG9UYXJnZXQoZXZlbnQubWVzc2FnZS52YWx1ZSgpKTsKKyAgICBjb25uZWN0aW9u
VG9UYXJnZXQtPnNlbmRNZXNzYWdlVG9UYXJnZXQoU3RyaW5nIHsgZXZlbnQubWVzc2FnZS52YWx1
ZSgpIH0pOwogfQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6c3RhcnRBdXRvbWF0aW9uU2Vzc2lv
bihjb25zdCBFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDQ1YmQyZjliMGQx
MjlkZjhiN2E2NTEwYjkwODYxM2Y1ZDY3ZjA1NmQuLmU3ZDNjZTk0MjFlNWRjMTJlMDliYWYwMmJl
NTUwNDJhZmFkNjA3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yMTMwLDcgKzIxMzAsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIAogICAgIFRocmVhZDo6Y3JlYXRlKAogICAg
ICAgICAiSlNDIEFnZW50IiwKLSAgICAgICAgW3NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmlzb2xh
dGVkQ29weSgpLCB3b3JrZXJQYXRoID0gd29ya2VyUGF0aC5pc29sYXRlZENvcHkoKSwgJmRpZFN0
YXJ0TG9jaywgJmRpZFN0YXJ0Q29uZGl0aW9uLCAmZGlkU3RhcnRdICgpIHsKKyAgICAgICAgW3Nv
dXJjZUNvZGUgPSBXVEZNb3ZlKHNvdXJjZUNvZGUpLmlzb2xhdGVkQ29weSgpLCB3b3JrZXJQYXRo
ID0gV1RGTW92ZSh3b3JrZXJQYXRoKS5pc29sYXRlZENvcHkoKSwgJmRpZFN0YXJ0TG9jaywgJmRp
ZFN0YXJ0Q29uZGl0aW9uLCAmZGlkU3RhcnRdICgpIHsKICAgICAgICAgICAgIENvbW1hbmRMaW5l
IGNvbW1hbmRMaW5lKENvbW1hbmRMaW5lOjpDb21tYW5kTGluZUZvcldvcmtlcnMpOwogICAgICAg
ICAgICAgY29tbWFuZExpbmUubV9pbnRlcmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgICAgcnVu
SlNDKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3REZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZS5jcHAKaW5kZXggMzdkM2MyODk2MTEyMjlkYWFjOWU5ZjJhODdl
NmM5YTg5MzEwMjIyMy4uZGU1ZTM3ZDBmYTM0MDJlNzc2ZjFmZmY4MmNkMWU1NDY4ZTY2ZmYxYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdERlYnVnZ2FibGUuY3BwCkBAIC02NCwxMSArNjQsMTEgQEAgdm9pZCBKU0dsb2JhbE9i
amVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5u
ZWwpCiAgICAgbV9nbG9iYWxPYmplY3QuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RG
cm9udGVuZChmcm9udGVuZENoYW5uZWwpOwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdn
YWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2
b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShT
dHJpbmcmJiBtZXNzYWdlKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJm1fZ2xvYmFsT2Jq
ZWN0LnZtKCkpOwogCi0gICAgbV9nbG9iYWxPYmplY3QuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRp
c3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKKyAgICBtX2dsb2JhbE9iamVjdC5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKFdURk1vdmUo
bWVzc2FnZSkpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6cGF1c2VXYWl0
aW5nRm9yQXV0b21hdGljSW5zcGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCmluZGV4IDk1NTA4ZDRm
ZjFjMzA1MDI4NGY5YWIyMjU1YjhjNjI2ZWQ4ZGIwMGQuLjc4YzQ1MGM1YjVmZDM2ZWFjNTQ3MDcy
NGRkNWNjNjY0ZmY1NjQzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJv
b2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9
IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENo
YW5uZWwmKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1v
dGUoU3RyaW5nJiYgbWVzc2FnZSkgZmluYWw7CiAKICAgICBib29sIGF1dG9tYXRpY0luc3BlY3Rp
b25BbGxvd2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgcGF1c2VX
YWl0aW5nRm9yQXV0b21hdGljSW5zcGVjdGlvbigpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKaW5kZXggMzBmNWU3NmM5MTRl
NjQ4ODFlNDE4ZTZlMzkzYjJiOTI1NDc3MWMzZi4uN2EzYjM3OTI0YmU1NjA1NDdmYzJkZmZlMzMy
ZDNlNjZiZjhhOTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1
bmN0aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVu
Y3Rpb25PdmVycmlkZXMuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgYm9vbCBGdW5jdGlvbk92ZXJy
aWRlczo6aW5pdGlhbGl6ZU92ZXJyaWRlRm9yKGNvbnN0IFNvdXJjZUNvZGUmIG9yaWdDb2RlLCBG
dW5jdGkKICAgICBTdHJpbmcgbmV3Qm9keTsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBvdmVycmlkZXMubV9sb2NrIH07Ci0gICAgICAgIGF1dG8gaXQgPSBvdmVycmlkZXMubV9lbnRy
aWVzLmZpbmQoc291cmNlQm9keVN0cmluZy5pc29sYXRlZENvcHkoKSk7CisgICAgICAgIGF1dG8g
aXQgPSBvdmVycmlkZXMubV9lbnRyaWVzLmZpbmQoV1RGTW92ZShzb3VyY2VCb2R5U3RyaW5nKS5p
c29sYXRlZENvcHkoKSk7CiAgICAgICAgIGlmIChpdCA9PSBvdmVycmlkZXMubV9lbnRyaWVzLmVu
ZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBuZXdCb2R5ID0gaXQtPnZh
bHVlLmlzb2xhdGVkQ29weSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA3N2RhZDQ4NWNjMGM1Y2Y3NDVmYzJi
YjFjMDAxYWUxYjU5YzE5MWM2Li4zNGU3MDgyMDE4OTc3YWU3OTcyMDM1ZTAwYjNkNzA0ODBiMWUy
M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIERPTUNhY2hlRW5naW5lOjpDYWNo
ZUlkZW50aWZpZXJDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJldHJpZXZlQ2Fj
aGVzKGNvbnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIERPTUNhY2hl
RW5naW5lOjpDYWNoZUluZm9zQ2FsbGJhY2smJikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJl
dHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJldHJpZXZlUmVj
b3Jkc09wdGlvbnMmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNr
JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
ciwgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIERPTUNhY2hlRW5naW5lOjpSZWNv
cmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0RPTUNhY2hlLmNwcAppbmRleCAyZDQ2ZDFjZGJjNzE3ZjNjOTI5OWVmYTg2M2E1NDkyNjM4
M2FmNWRmLi4wNjIyZDQ1ZjU1ZWU4NDgzNTE4NzdhNTM4Y2NmYTk4NTBjYzk1NjI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtNDYwLDcgKzQ2MCw3IEBA
IHZvaWQgRE9NQ2FjaGU6OmtleXMoc3RkOjpvcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBD
YWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvCiB2b2lkIERPTUNhY2hlOjpxdWVyeUNhY2hlKFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zLCBT
aG91bGRSZXRyaWV2ZVJlc3BvbnNlcyBzaG91bGRSZXRyaWV2ZVJlc3BvbnNlcywgUmVjb3Jkc0Nh
bGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyByZXRyaWV2
ZU9wdGlvbnMgeyBXVEZNb3ZlKHJlcXVlc3QpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3koKSwgKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgb3B0aW9ucy5pZ25vcmVTZWFyY2gsIG9wdGlvbnMuaWdub3JlTWV0aG9k
LCBvcHRpb25zLmlnbm9yZVZhcnksIHNob3VsZFJldHJpZXZlUmVzcG9uc2VzID09IFNob3VsZFJl
dHJpZXZlUmVzcG9uc2VzOjpZZXMgfTsKLSAgICBtX2Nvbm5lY3Rpb24tPnJldHJpZXZlUmVjb3Jk
cyhtX2lkZW50aWZpZXIsIHJldHJpZXZlT3B0aW9ucywgW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9
IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX2Nvbm5lY3Rpb24tPnJldHJpZXZlUmVj
b3JkcyhtX2lkZW50aWZpZXIsIFdURk1vdmUocmV0cmlldmVPcHRpb25zKSwgW3RoaXMsIHBlbmRp
bmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1faXNT
dG9wcGVkKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhET01DYWNoZUVuZ2luZTo6Y29udmVydFRv
RXhjZXB0aW9uQW5kTG9nKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgRE9NQ2FjaGVFbmdpbmU6
OkVycm9yOjpTdG9wcGVkKSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAppbmRleCBiZDIwNGE5Yzc5ZjQ1MTRjZjkwMDNlY2UzNjZkYTM0Y2YxY2VjNWM1Li40
NmZkZWZmNGJjZTQ3NWFiZjIxNzMyMTViYzIwYmVlYTI3ODc3NDU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5jcHAKQEAgLTU2LDE1ICs1NiwxNSBAQCBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZWNvcmRE
YXRhIHsKICAgICB1aW50NjRfdCByZXNwb25zZUJvZHlTaXplOwogfTsKIAotc3RhdGljIENyb3Nz
VGhyZWFkUmVjb3JkRGF0YSB0b0Nyb3NzVGhyZWFkUmVjb3JkRGF0YShjb25zdCBSZWNvcmQmIHJl
Y29yZCkKK3N0YXRpYyBDcm9zc1RocmVhZFJlY29yZERhdGEgdG9Dcm9zc1RocmVhZFJlY29yZERh
dGEoUmVjb3JkJiYgcmVjb3JkKQogewogICAgIHJldHVybiBDcm9zc1RocmVhZFJlY29yZERhdGEg
ewogICAgICAgICByZWNvcmQuaWRlbnRpZmllciwKICAgICAgICAgcmVjb3JkLnVwZGF0ZVJlc3Bv
bnNlQ291bnRlciwKICAgICAgICAgcmVjb3JkLnJlcXVlc3RIZWFkZXJzR3VhcmQsCi0gICAgICAg
IHJlY29yZC5yZXF1ZXN0Lmlzb2xhdGVkQ29weSgpLAotICAgICAgICByZWNvcmQub3B0aW9ucy5p
c29sYXRlZENvcHkoKSwKLSAgICAgICAgcmVjb3JkLnJlZmVycmVyLmlzb2xhdGVkQ29weSgpLAor
ICAgICAgICBXVEZNb3ZlKHJlY29yZC5yZXF1ZXN0KS5pc29sYXRlZENvcHkoKSwKKyAgICAgICAg
V1RGTW92ZShyZWNvcmQub3B0aW9ucykuaXNvbGF0ZWRDb3B5KCksCisgICAgICAgIFdURk1vdmUo
cmVjb3JkLnJlZmVycmVyKS5pc29sYXRlZENvcHkoKSwKICAgICAgICAgcmVjb3JkLnJlc3BvbnNl
SGVhZGVyc0d1YXJkLAogICAgICAgICByZWNvcmQucmVzcG9uc2UuY3Jvc3NUaHJlYWREYXRhKCks
CiAgICAgICAgIGlzb2xhdGVkUmVzcG9uc2VCb2R5KHJlY29yZC5yZXNwb25zZUJvZHkpLApAQCAt
ODgsMTcgKzg4LDE3IEBAIHN0YXRpYyBSZWNvcmQgZnJvbUNyb3NzVGhyZWFkUmVjb3JkRGF0YShD
cm9zc1RocmVhZFJlY29yZERhdGEmJiBkYXRhKQogICAgIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUg
VmVjdG9yPENyb3NzVGhyZWFkUmVjb3JkRGF0YT4gcmVjb3Jkc0RhdGFGcm9tUmVjb3Jkcyhjb25z
dCBWZWN0b3I8UmVjb3JkPiYgcmVjb3JkcykKK3N0YXRpYyBpbmxpbmUgVmVjdG9yPENyb3NzVGhy
ZWFkUmVjb3JkRGF0YT4gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhWZWN0b3I8UmVjb3JkPiYmIHJl
Y29yZHMpCiB7Ci0gICAgcmV0dXJuIFdURjo6bWFwKHJlY29yZHMsIHRvQ3Jvc3NUaHJlYWRSZWNv
cmREYXRhKTsKKyAgICByZXR1cm4gV1RGOjptYXAoV1RGTW92ZShyZWNvcmRzKSwgdG9Dcm9zc1Ro
cmVhZFJlY29yZERhdGEpOwogfQogCi1zdGF0aWMgaW5saW5lIEV4cGVjdGVkPFZlY3RvcjxDcm9z
c1RocmVhZFJlY29yZERhdGE+LCBFcnJvcj4gcmVjb3Jkc0RhdGFPckVycm9yRnJvbVJlY29yZHMo
Y29uc3QgUmVjb3Jkc09yRXJyb3ImIHJlc3VsdCkKK3N0YXRpYyBpbmxpbmUgRXhwZWN0ZWQ8VmVj
dG9yPENyb3NzVGhyZWFkUmVjb3JkRGF0YT4sIEVycm9yPiByZWNvcmRzRGF0YU9yRXJyb3JGcm9t
UmVjb3JkcyhSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkKIHsKICAgICBpZiAoIXJlc3VsdC5oYXNf
dmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJlc3VsdC5lcnJvcigpKTsK
KyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFdURk1vdmUocmVzdWx0KS5lcnJvcigpKTsK
IAotICAgIHJldHVybiByZWNvcmRzRGF0YUZyb21SZWNvcmRzKHJlc3VsdC52YWx1ZSgpKTsKKyAg
ICByZXR1cm4gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhXVEZNb3ZlKHJlc3VsdCkudmFsdWUoKSk7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgVmVjdG9yPFJlY29yZD4gcmVjb3Jkc0Zyb21SZWNvcmRzRGF0
YShWZWN0b3I8Q3Jvc3NUaHJlYWRSZWNvcmREYXRhPiYmIHJlY29yZHNEYXRhKQpAQCAtMTk1LDE0
ICsxOTUsMTQgQEAgdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZUNh
Y2hlc0NvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnQKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpy
ZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXRyaWV2ZVJl
Y29yZHNPcHRpb25zJiBvcHRpb25zLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQg
V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNh
Y2hlSWRlbnRpZmllciwgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZHND
YWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0g
KyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKICAgICBtX3JldHJpZXZlUmVjb3Jkc1BlbmRpbmdS
ZXF1ZXN0cy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAg
IGNhbGxPbk1haW5UaHJlYWQoW3dvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkg
fSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0
SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZl
UmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIG9wdGlvbnMsIFt3b3JrZXJUaHJlYWQgPSBXVEZNb3Zl
KHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYmIHJlc3Vs
dCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRzKHJlc3VsdCks
IHJlcXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkgfSwgbWFpblRo
cmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmll
ciwgY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKS5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZl
UmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIFdURk1vdmUob3B0aW9ucyksIFt3b3JrZXJUaHJlYWQg
PSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJv
ciYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3Ao
KS5wb3N0VGFza0Zvck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRz
KFdURk1vdmUocmVzdWx0KSksIHJlcXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFi
bGUgewogICAgICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSku
Y2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpLnJldHJpZXZlUmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0
SWRlbnRpZmllciwgcmVjb3Jkc09yRXJyb3JGcm9tUmVjb3Jkc0RhdGEoV1RGTW92ZShyZXN1bHQp
KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAg
ICAgfSk7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFYKICAgICB1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CiAg
ICAgbV9iYXRjaERlbGV0ZUFuZFB1dFBlbmRpbmdSZXF1ZXN0cy5hZGQocmVxdWVzdElkZW50aWZp
ZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dvcmtlclRo
cmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVy
LCByZWNvcmRzRGF0YSA9IHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVjb3JkcyldKCkgbXV0YWJs
ZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS50
aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24s
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlY29yZHNEYXRhID0gcmVjb3Jk
c0RhdGFGcm9tUmVjb3JkcyhXVEZNb3ZlKHJlY29yZHMpKV0oKSBtdXRhYmxlIHsKICAgICAgICAg
bWFpblRocmVhZENvbm5lY3Rpb24tPmJhdGNoUHV0T3BlcmF0aW9uKGNhY2hlSWRlbnRpZmllciwg
cmVjb3Jkc0Zyb21SZWNvcmRzRGF0YShXVEZNb3ZlKHJlY29yZHNEYXRhKSksIFt3b3JrZXJUaHJl
YWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUmVjb3JkSWRl
bnRpZmllcnNPckVycm9yJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIHdvcmtlclRo
cmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3Vs
dCA9IFdURk1vdmUocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAg
ICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24oKS5wdXRSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKHJl
c3VsdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dv
cmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA3MTRkMjk0NDE3YzRkNzE5M2FhZjZm
OWEyMTYyY2I2Nzk1YmY4ZTY5Li4xNWM2Zjk0N2YyNTNiYTVhYmNmOWM0NzM5OWRiYWU2ZjRmM2Qy
OTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dv
cmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgRE9NQ2FjaGVFbmdpbmU6
OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmV0cmlldmVDYWNo
ZXMoY29uc3QgQ2xpZW50T3JpZ2luJiwgdWludDY0X3QgdXBkYXRlQ291bnRlciwgRE9NQ2FjaGVF
bmdpbmU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKSBmaW5hbDsKIAotICAgIHZvaWQgcmV0cmlldmVS
ZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmV0cmlldmVSZWNvcmRzT3B0
aW9ucyYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBSZXRyaWV2ZVJlY29y
ZHNPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CiAg
ICAgdm9pZCBiYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hlRW5naW5l
OjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYmF0Y2hQdXRP
cGVyYXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6
OlJlY29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9E
T01GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcAppbmRleCBiNzAwZDg0NDRiMjBlYmQ3MGU5ZTUzNDE0ZTE3NjU5YjFmYTQ1
ZWI0Li45ZjQ4MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBA
IC0yNTcsNyArMjU3LDcgQEAgdm9pZCBET01GaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1EaXIKIAogICAgIG1fd29ya1F1
ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHQgPSBS
ZWYgeyBjb250ZXh0IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIGZ1bGxQYXRoID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUoZnVsbFBhdGgpKSwgZGly
ZWN0b3J5VmlydHVhbFBhdGggPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShkaXJlY3RvcnlWaXJ0
dWFsUGF0aCkpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIGxpc3RlZENoaWxkcmVuID0gbGlz
dERpcmVjdG9yeVdpdGhNZXRhZGF0YShmdWxsUGF0aCk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0ID0gV1RG
TW92ZShjb250ZXh0KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgbGlzdGVkQ2hpbGRyZW4gPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShsaXN0ZWRDaGls
ZHJlbikpLCBkaXJlY3RvcnlWaXJ0dWFsUGF0aCA9IGRpcmVjdG9yeVZpcnR1YWxQYXRoLmlzb2xh
dGVkQ29weSgpXSgpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29udGV4dCA9IFdURk1vdmUoY29udGV4
dCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGxpc3Rl
ZENoaWxkcmVuID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUobGlzdGVkQ2hpbGRyZW4pKSwgZGly
ZWN0b3J5VmlydHVhbFBhdGggPSBXVEZNb3ZlKGRpcmVjdG9yeVZpcnR1YWxQYXRoKS5pc29sYXRl
ZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRvRmls
ZVN5c3RlbUVudHJpZXMoY29udGV4dCwgcHJvdGVjdGVkVGhpcywgV1RGTW92ZShsaXN0ZWRDaGls
ZHJlbiksIGRpcmVjdG9yeVZpcnR1YWxQYXRoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9EZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVk
UlRDRGF0YUNoYW5uZWwuaAppbmRleCAwZjM2Yzc4MzdmMTViYjIwMDVkMjVmZTZiYjQyMzc5OTgw
ZjE3MmZlLi4xNThiNTgzMzNiNjc0ZmU0Yzc5ZDk0MjE2OTI1OGI4NWZjOTgwNjk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRDRGF0YUNo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVk
UlRDRGF0YUNoYW5uZWwuaApAQCAtMzgsMTAgKzM4LDEwIEBAIHN0cnVjdCBEZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXRhY2hlZFJUQ0RhdGFDaGFu
bmVsKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBEZXRhY2hl
ZFJUQ0RhdGFDaGFubmVsKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmIG9wdGlvbnMsIFJUQ0Rh
dGFDaGFubmVsU3RhdGUgc3RhdGUpCisgICAgRGV0YWNoZWRSVENEYXRhQ2hhbm5lbChSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFu
bmVsSW5pdCYmIG9wdGlvbnMsIFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCiAgICAgICAgIDog
aWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICAgICAsIGxhYmVsKGxhYmVsLmlzb2xhdGVkQ29w
eSgpKQotICAgICAgICAsIG9wdGlvbnMob3B0aW9ucy5pc29sYXRlZENvcHkoKSkKKyAgICAgICAg
LCBsYWJlbChXVEZNb3ZlKGxhYmVsKS5pc29sYXRlZENvcHkoKSkKKyAgICAgICAgLCBvcHRpb25z
KFdURk1vdmUob3B0aW9ucykuaXNvbGF0ZWRDb3B5KCkpCiAgICAgICAgICwgc3RhdGUoc3RhdGUp
CiAgICAgewogICAgIH0KQEAgLTgzLDcgKzgzLDcgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+IERldGFjaGVkUlRDRGF0YUMK
ICAgICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1ha2VV
bmlxdWU8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4oKmlkZW50aWZpZXIsIFdURk1vdmUobGFiZWwp
LCAqb3B0aW9ucywgKnN0YXRlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxEZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsPigqaWRlbnRpZmllciwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucyku
dmFsdWUoKSwgKnN0YXRlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApp
bmRleCA4ZjgzMzczZGJjNzRiNTJjNDU1NTMwNmE1MDU2ZDJmZGUwZWFhZTc1Li4wYjEwNjI2ZTMz
YmE1OTRhYTM4ZWIzYWQxZDY5NTZhNWU1NTE1MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApAQCAtMzAzLDcgKzMw
Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPiBSVENEYXRhQ2hh
bm5lbDo6ZGV0YWNoKCkKICAgICBMb2NrZXIgbG9ja2VyIHsgc19ydGNEYXRhQ2hhbm5lbExvY2Fs
TWFwTG9jayB9OwogICAgIHJ0Y0RhdGFDaGFubmVsTG9jYWxNYXAoKS5hZGQoaWRlbnRpZmllcigp
LmNoYW5uZWxJZGVudGlmaWVyLCBXVEZNb3ZlKG1faGFuZGxlcikpOwogCi0gICAgcmV0dXJuIG1h
a2VVbmlxdWU8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4oaWRlbnRpZmllcigpLCBsYWJlbCgpLmlz
b2xhdGVkQ29weSgpLCBvcHRpb25zKCksIHN0YXRlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxE
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsPihpZGVudGlmaWVyKCksIFN0cmluZyB7IGxhYmVsKCkgfSwg
UlRDRGF0YUNoYW5uZWxJbml0IHsgb3B0aW9ucygpIH0sIHN0YXRlKTsKIH0KIAogdm9pZCBSVENE
YXRhQ2hhbm5lbDo6cmVtb3ZlRnJvbURhdGFDaGFubmVsTG9jYWxNYXBJZk5lZWRlZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgK
aW5kZXggNjk0ZmFmNDA4ZTZmNTJjNGI0NDg0M2NkNGFkYWQ3NGZmZDU1Zjg0Zi4uZGE2MTA1MWJh
OTZkOGQwNWQ0NmQ4MWNkZmZkZDZjMGI5OWVmNGQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaApAQCAtNjUsNyArNjUsNyBA
QCBwdWJsaWM6CiAgICAgUlRDUHJpb3JpdHlUeXBlIHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4g
bV9vcHRpb25zLnByaW9yaXR5OyB9OwogICAgIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYgb3B0
aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQogCi0gICAgU3RyaW5nIGxhYmVsKCkg
Y29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQorICAgIGNvbnN0IFN0cmluZyYgbGFiZWwoKSBjb25z
dCB7IHJldHVybiBtX2xhYmVsOyB9CiAgICAgUlRDRGF0YUNoYW5uZWxTdGF0ZSByZWFkeVN0YXRl
KCkgY29uc3Qge3JldHVybiBtX3JlYWR5U3RhdGU7IH0KICAgICBzaXplX3QgYnVmZmVyZWRBbW91
bnQoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcmVkQW1vdW50OyB9CiAgICAgc2l6ZV90IGJ1ZmZl
cmVkQW1vdW50TG93VGhyZXNob2xkKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXJlZEFtb3VudExv
d1RocmVzaG9sZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcAppbmRleCA1NmMzMjQzMjlhZDEzZjNmNjE4YWM3MTQ3ZTZj
MTExMmE4ZDZkMGQyLi4yNDIwOGM2YzQ0YmU4NGY3ODJiZDQ3YzAwZWU1MTkzYTkwZDIwMDg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmNwcApAQCAtNTIsMjEgKzUyLDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE5vdGlmaWNhdGlvbik7CiAKLVJlZjxOb3RpZmljYXRp
b24+IE5vdGlmaWNhdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMpCitSZWY8Tm90aWZp
Y2F0aW9uPiBOb3RpZmljYXRpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBTdHJpbmcmJiB0aXRsZSwgT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBub3Rp
ZmljYXRpb24gPSBhZG9wdFJlZigqbmV3IE5vdGlmaWNhdGlvbihjb250ZXh0LCB0aXRsZSwgb3B0
aW9ucykpOworICAgIGF1dG8gbm90aWZpY2F0aW9uID0gYWRvcHRSZWYoKm5ldyBOb3RpZmljYXRp
b24oY29udGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0aW9ucykpKTsKICAgICBub3Rp
ZmljYXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIG5vdGlmaWNhdGlvbi0+c2hvd1Nvb24o
KTsKICAgICByZXR1cm4gbm90aWZpY2F0aW9uOwogfQogCi1Ob3RpZmljYXRpb246Ok5vdGlmaWNh
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBPcHRpb25zJiBvcHRpb25zKQorTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgdGl0bGUsIE9wdGlvbnMmJiBv
cHRpb25zKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQotICAgICwgbV90aXRsZSh0
aXRsZS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fdGl0bGUoV1RGTW92ZSh0aXRsZSkuaXNvbGF0
ZWRDb3B5KCkpCiAgICAgLCBtX2RpcmVjdGlvbihvcHRpb25zLmRpcikKLSAgICAsIG1fbGFuZyhv
cHRpb25zLmxhbmcuaXNvbGF0ZWRDb3B5KCkpCi0gICAgLCBtX2JvZHkob3B0aW9ucy5ib2R5Lmlz
b2xhdGVkQ29weSgpKQotICAgICwgbV90YWcob3B0aW9ucy50YWcuaXNvbGF0ZWRDb3B5KCkpCisg
ICAgLCBtX2xhbmcoV1RGTW92ZShvcHRpb25zLmxhbmcpLmlzb2xhdGVkQ29weSgpKQorICAgICwg
bV9ib2R5KFdURk1vdmUob3B0aW9ucy5ib2R5KS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fdGFn
KFdURk1vdmUob3B0aW9ucy50YWcpLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9zdGF0ZShJZGxl
KQogICAgICwgbV9jb250ZXh0SWRlbnRpZmllcihjb250ZXh0LmlkZW50aWZpZXIoKSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
aAppbmRleCAwMmEzN2JmYzc2YzJlZmFjNzU0OTRkNzZiYjUzZjI3ODFkMjJmYzI2Li40YWE5YjM0
MWZjMWM0MTNmNzAzNjUyOTk2ZmE2NzAzYjVhMDAyYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCkBAIC02NCw3ICs2NCw3
IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIHRhZzsKICAgICAgICAgU3RyaW5nIGljb247CiAg
ICAgfTsKLSAgICBzdGF0aWMgUmVmPE5vdGlmaWNhdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBPcHRpb25zJik7CisgICAgc3Rh
dGljIFJlZjxOb3RpZmljYXRpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3Ry
aW5nJiYgdGl0bGUsIE9wdGlvbnMmJik7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB+Tm90aWZpY2F0aW9uKCk7CiAKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OmRlcmVmOwogCiBwcml2YXRlOgotICAgIE5vdGlmaWNh
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
T3B0aW9ucyYpOworICAgIE5vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3Ry
aW5nJiYgdGl0bGUsIE9wdGlvbnMmJik7CiAgICAgTm90aWZpY2F0aW9uKGNvbnN0IE5vdGlmaWNh
dGlvbiYpOwogCiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEu
Y3BwCmluZGV4IDIzZGIzMjcwYWI3ODdlNTMyMDU2NGFlZGNkYmVkMDFjNTc5MjQ0MTQuLjdjMjFl
OWNjNGFjNDA5MzQ0OTY2NzQzOWFlYTViMWM3MjViNjQ5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3BwCkBA
IC0zMCwxNyArMzAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QdXNoU3Vic2NyaXB0
aW9uRGF0YSBQdXNoU3Vic2NyaXB0aW9uRGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK1B1c2hT
dWJzY3JpcHRpb25EYXRhIFB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENvcHkoKSBjb25z
dCAmCiB7Ci0gICAgUHVzaFN1YnNjcmlwdGlvbkRhdGEgcmVzdWx0OwotICAgIHJlc3VsdC5pZGVu
dGlmaWVyID0gaWRlbnRpZmllcjsKLSAgICByZXN1bHQuZW5kcG9pbnQgPSBlbmRwb2ludC5pc29s
YXRlZENvcHkoKTsKLSAgICByZXN1bHQuZXhwaXJhdGlvblRpbWUgPSBleHBpcmF0aW9uVGltZTsK
LSAgICByZXN1bHQuc2VydmVyVkFQSURQdWJsaWNLZXkgPSBzZXJ2ZXJWQVBJRFB1YmxpY0tleTsK
LSAgICByZXN1bHQuY2xpZW50RUNESFB1YmxpY0tleSA9IGNsaWVudEVDREhQdWJsaWNLZXk7Ci0g
ICAgcmVzdWx0LnNoYXJlZEF1dGhlbnRpY2F0aW9uU2VjcmV0ID0gc2hhcmVkQXV0aGVudGljYXRp
b25TZWNyZXQ7CisgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgZW5kcG9pbnQuaXNvbGF0ZWRDb3B5
KCksIGV4cGlyYXRpb25UaW1lLCBzZXJ2ZXJWQVBJRFB1YmxpY0tleSwgY2xpZW50RUNESFB1Ymxp
Y0tleSwgc2hhcmVkQXV0aGVudGljYXRpb25TZWNyZXQgfTsKK30KIAotICAgIHJldHVybiByZXN1
bHQ7CitQdXNoU3Vic2NyaXB0aW9uRGF0YSBQdXNoU3Vic2NyaXB0aW9uRGF0YTo6aXNvbGF0ZWRD
b3B5KCkgJiYKK3sKKyAgICByZXR1cm4geyBpZGVudGlmaWVyLCBXVEZNb3ZlKGVuZHBvaW50KS5p
c29sYXRlZENvcHkoKSwgZXhwaXJhdGlvblRpbWUsIFdURk1vdmUoc2VydmVyVkFQSURQdWJsaWNL
ZXkpLCBXVEZNb3ZlKGNsaWVudEVDREhQdWJsaWNLZXkpLCBXVEZNb3ZlKHNoYXJlZEF1dGhlbnRp
Y2F0aW9uU2VjcmV0KSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmgK
aW5kZXggNjM1ZjlmYzgxZTljNjllNzY1ZWFiZDBlMWFlMjExYWUzYmRhNWFkNC4uYmMyMTU4N2Jl
MTlhMDRiNzNmNDJhODQ0ZjU5M2Q4NDg2YjFjODZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuaApAQCAtNDIsNyAr
NDIsOCBAQCBzdHJ1Y3QgUHVzaFN1YnNjcmlwdGlvbkRhdGEgewogICAgIFZlY3Rvcjx1aW50OF90
PiBjbGllbnRFQ0RIUHVibGljS2V5OwogICAgIFZlY3Rvcjx1aW50OF90PiBzaGFyZWRBdXRoZW50
aWNhdGlvblNlY3JldDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hTdWJzY3JpcHRpb25EYXRh
IGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hTdWJzY3JpcHRp
b25EYXRhIGlzb2xhdGVkQ29weSgpIGNvbnN0ICY7CisgICAgV0VCQ09SRV9FWFBPUlQgUHVzaFN1
YnNjcmlwdGlvbkRhdGEgaXNvbGF0ZWRDb3B5KCkgJiY7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbkRhdGE+IGRlY29k
ZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
RHVtbXlTdG9yYWdlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9E
dW1teVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IGRhNDU3YTQ2YjEyM2MzNTg0M2ZmOTRhNmE4MmNm
YzI3NDg4MWYxYjMuLjBjZmZkMjdiZWYwYjljMGE0MGY3ZmE4NDQ5M2Y0YzE5MDAxMjMwNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQ
cm92aWRlci5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEdW1teVN0b3JhZ2VDb25uZWN0aW9uKCkpOwogICAgICAgICB9CiAKLSAg
ICAgICAgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5l
Y3Rpb246OlBlcnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAg
ICB2b2lkIGdldFBlcnNpc3RlZChDbGllbnRPcmlnaW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBl
cnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgICAgICB7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIH0KQEAgLTU0LDcgKzU0
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAg
ICAgICAgfQogCi0gICAgICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBDbGll
bnRPcmlnaW4mLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5
KENsaWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2sm
JiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSk7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9u
LmgKaW5kZXggYmNlYzIyOTQ3NGZlY2I4M2QzOTNkY2JlZWNlOTliY2RmNWZmZWY3Ni4uZDAxYjg0
YmVlYmI1YTE3ZGI1ZmI3OTJlYzVjOTQ0ZDc3ZmM3YWU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTM5LDExICszOSwx
MSBAQCBjbGFzcyBTdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxTdG9yYWdlQ29ubmVjdGlvbj4gewogcHVibGljOgogICAgIHZpcnR1YWwgflN0b3JhZ2VDb25u
ZWN0aW9uKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIFBlcnNpc3RDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+OwotICAgIHZpcnR1YWwgdm9pZCBnZXRQZXJzaXN0ZWQoY29u
c3QgQ2xpZW50T3JpZ2luJiwgUGVyc2lzdENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0UGVyc2lzdGVkKENsaWVudE9yaWdpbiYmLCBQZXJzaXN0Q2FsbGJhY2smJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBwZXJzaXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFBlcnNpc3RDYWxs
YmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQog
ICAgIHVzaW5nIERpcmVjdG9yeUluZm8gPSBzdGQ6OnBhaXI8RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+PjsKICAgICB1c2luZyBH
ZXREaXJlY3RvcnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
RGlyZWN0b3J5SW5mbz4mJik+OwotICAgIHZpcnR1YWwgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KGNvbnN0IENsaWVudE9yaWdpbiYsIEdldERpcmVjdG9yeUNhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShDbGllbnRPcmlnaW4mJiwgR2V0
RGlyZWN0b3J5Q2FsbGJhY2smJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAK
aW5kZXggY2Q0NjYzMGRiNzBjMGJiOGU4MDljNzRiOTg3OTk1ZjQ5YjczNWVhNy4uMmJhYjRmOWIy
ZDY4OTdjNjYyMDlmNTZmMDJlYzQ4OWVlYjVlMGNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZv
aWQgU3RvcmFnZU1hbmFnZXI6OnBlcnNpc3RlZChET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVh
bj4mJiBwcm9taXNlKQogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVjdGlvbklu
Zm9PckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25uZWN0aW9u
SW5mbyA9IGNvbm5lY3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0g
ICAgY29ubmVjdGlvbkluZm8uY29ubmVjdGlvbi5nZXRQZXJzaXN0ZWQoY29ubmVjdGlvbkluZm8u
b3JpZ2luLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgcGVyc2lzdGVkKSBtdXRh
YmxlIHsKKyAgICBjb25uZWN0aW9uSW5mby5jb25uZWN0aW9uLmdldFBlcnNpc3RlZChXVEZNb3Zl
KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYm9v
bCBwZXJzaXN0ZWQpIG11dGFibGUgewogICAgICAgICBwcm9taXNlLnJlc29sdmUocGVyc2lzdGVk
KTsKICAgICB9KTsKIH0KQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpm
aWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
YwogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVjdGlvbkluZm9PckV4Y2VwdGlv
bi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25uZWN0aW9uSW5mbyA9IGNvbm5l
Y3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgY29ubmVjdGlv
bkluZm8uY29ubmVjdGlvbi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbm5lY3Rpb25JbmZvLm9y
aWdpbiwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCB3ZWFrTmF2aWdhdG9yID0gbV9uYXZp
Z2F0b3JdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb25JbmZvLmNvbm5l
Y3Rpb24uZmlsZVN5c3RlbUdldERpcmVjdG9yeShXVEZNb3ZlKGNvbm5lY3Rpb25JbmZvLm9yaWdp
biksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgd2Vha05hdmlnYXRvciA9IG1fbmF2aWdh
dG9yXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9y
YWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZDVkY2NjMzRjZDMxMTBi
OGViNTdhY2ZmN2RjZjQ0NzE2YzMyZGMwNS4uYTFmYjA0ZmM5MTgwMjRmZjhmZDBkNDFiYzdjMWIx
YTcxNjVkY2FhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dv
cmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC01OCwxNCArNTgsMTQgQEAgdm9p
ZCBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQoKQogICAgIG1fc2NvcGUgPSBu
dWxscHRyOwogfQogCi12b2lkIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQo
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2Fs
bGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246
OmdldFBlcnNpc3RlZChDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpQ
ZXJzaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQobV9zY29w
ZSk7CiAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9ICsrbV9sYXN0Q2FsbGJhY2tJZGVu
dGlmaWVyOwogICAgIG1fZ2V0UGVyc2lzdGVkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZp
ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQo
W2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFk
KCkgfSwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgIGNh
bGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsg
bV9zY29wZS0+dGhyZWFkKCkgfSwgb3JpZ2luID0gV1RGTW92ZShvcmlnaW4pLmlzb2xhdGVkQ29w
eSgpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDb25uZWN0aW9uID0gd29y
a2VyVGhyZWFkLT53b3JrZXJMb2FkZXJQcm94eSgpLnN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAg
ICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2Vy
VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShib29sIHJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxi
YWNrSWRlbnRpZmllciwgcmVzdWx0XSAoYXV0byYgc2NvcGUpIG11dGFibGUgewpAQCAtNzUsNyAr
NzUsNyBAQCB2b2lkIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29uc3Qg
Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDbwogICAgICAgICBpZiAoIW1haW5UaHJlYWRD
b25uZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIG1haW5UaHJlYWRDYWxsYmFjayhmYWxzZSk7
CiAKLSAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmdldFBlcnNpc3RlZChvcmlnaW4sIFdU
Rk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9u
LT5nZXRQZXJzaXN0ZWQoV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFj
aykpOwogICAgIH0pOwogfQogCkBAIC04NSwyMSArODUsMjEgQEAgdm9pZCBXb3JrZXJTdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkR2V0UGVyc2lzdGVkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwg
Ym9vbAogICAgICAgICBjYWxsYmFjayhwZXJzaXN0ZWQpOwogfQogCi12b2lkIFdvcmtlclN0b3Jh
Z2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVudE9yaWdpbiYg
b3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkoQ2xpZW50T3JpZ2luJiYgb3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGly
ZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQobV9zY29w
ZSk7CiAgICAgCiAgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSArK21fbGFzdENhbGxiYWNr
SWRlbnRpZmllcjsKICAgICBtX2dldERpcmVjdG9yeUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAKLSAgICBjYWxsT25NYWluVGhy
ZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRo
cmVhZCgpIH0sIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJl
ZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG9yaWdpbiA9IFdURk1vdmUob3JpZ2luKS5pc29sYXRl
ZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWluVGhyZWFkQ29ubmVjdGlvbiA9
IHdvcmtlclRocmVhZC0+d29ya2VyTG9hZGVyUHJveHkoKS5zdG9yYWdlQ29ubmVjdGlvbigpOwog
ICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdv
cmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUo
W2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUocmVz
dWx0KSldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5zdG9yYWdlQ29ubmVjdGlvbigpLmRpZEdldERpcmVj
dG9yeShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfTsKLSAgICAgICAgbWFp
blRocmVhZENvbm5lY3Rpb24tPmZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkob3JpZ2luLCBXVEZNb3Zl
KG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Zmls
ZVN5c3RlbUdldERpcmVjdG9yeShXVEZNb3ZlKG9yaWdpbiksIFdURk1vdmUobWFpblRocmVhZENh
bGxiYWNrKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggODQ1YmY5MzZhODky
NTkwNTVmODMzNDk1YjhjOGRkMDczYzM2N2MzOC4uNmFhMjg4YWMyOTRhZTEwMTMwYWM0OTEyMjE4
NTZkNGMzODgxZjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQzLDggKzQzLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEdldERpcmVjdG9yeSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIs
IEV4Y2VwdGlvbk9yPFN0b3JhZ2VDb25uZWN0aW9uOjpEaXJlY3RvcnlJbmZvPiYmKTsKIAogICAg
IC8vIFN0b3JhZ2VDb25uZWN0aW9uCi0gICAgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgQ2xpZW50
T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxsYmFjayYmKSBmaW5hbDsKLSAg
ICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFn
ZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0
UGVyc2lzdGVkKENsaWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVyc2lzdENhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShDbGllbnRPcmln
aW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOwog
CiAgICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxTY29wZT4gbV9zY29wZTsKICAgICB1aW50NjRfdCBt
X2xhc3RDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCmluZGV4
IDgyZTc4MDI2NTFlM2IwMGNmOTMxMzdiY2M0NTM2MDdmNzEzMTkyYmYuLjk0ZWY1MDk1NThiNmMy
NjU5ZmRmYTNkNjg5YjRiMGQyODM3M2Q4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCkBAIC0z
NSw5ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2hhbmdlVmVyc2lvbldyYXBw
ZXI6OkNoYW5nZVZlcnNpb25XcmFwcGVyKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29uc3Qg
U3RyaW5nJiBuZXdWZXJzaW9uKQotICAgIDogbV9vbGRWZXJzaW9uKG9sZFZlcnNpb24uaXNvbGF0
ZWRDb3B5KCkpCi0gICAgLCBtX25ld1ZlcnNpb24obmV3VmVyc2lvbi5pc29sYXRlZENvcHkoKSkK
K0NoYW5nZVZlcnNpb25XcmFwcGVyOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcihTdHJpbmcmJiBvbGRW
ZXJzaW9uLCBTdHJpbmcmJiBuZXdWZXJzaW9uKQorICAgIDogbV9vbGRWZXJzaW9uKFdURk1vdmUo
b2xkVmVyc2lvbikuaXNvbGF0ZWRDb3B5KCkpCisgICAgLCBtX25ld1ZlcnNpb24oV1RGTW92ZShu
ZXdWZXJzaW9uKS5pc29sYXRlZENvcHkoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oCmluZGV4
IGViN2VmZTNjNDM3NGZkOGYyZDhmYzczMGMzMWQ3ZmM0YmQzNTZlZWUuLjFiMTI4NzdiYjFlYjFl
OTc0ZWNiNDllZTMyOTYwODAxZTM1ZDkwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmgKQEAgLTM3LDcg
KzM3LDcgQEAgY2xhc3MgU1FMRXJyb3I7CiAKIGNsYXNzIENoYW5nZVZlcnNpb25XcmFwcGVyIDog
cHVibGljIFNRTFRyYW5zYWN0aW9uV3JhcHBlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxD
aGFuZ2VWZXJzaW9uV3JhcHBlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29u
c3QgU3RyaW5nJiBuZXdWZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENoYW5nZVZlcnNp
b25XcmFwcGVyKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pKTsgfQorICAgIHN0YXRpYyBSZWY8Q2hh
bmdlVmVyc2lvbldyYXBwZXI+IGNyZWF0ZShTdHJpbmcmJiBvbGRWZXJzaW9uLCBTdHJpbmcmJiBu
ZXdWZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENoYW5nZVZlcnNpb25XcmFwcGVyKFdU
Rk1vdmUob2xkVmVyc2lvbiksIFdURk1vdmUobmV3VmVyc2lvbikpKTsgfQogCiAgICAgYm9vbCBw
ZXJmb3JtUHJlZmxpZ2h0KFNRTFRyYW5zYWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBwZXJm
b3JtUG9zdGZsaWdodChTUUxUcmFuc2FjdGlvbiYpIG92ZXJyaWRlOwpAQCAtNDUsNyArNDUsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBoYW5kbGVDb21taXRGYWlsZWRBZnRlclBvc3RmbGlnaHQoU1FM
VHJhbnNhY3Rpb24mKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBDaGFuZ2VWZXJzaW9uV3Jh
cHBlcihjb25zdCBTdHJpbmcmIG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbik7
CisgICAgQ2hhbmdlVmVyc2lvbldyYXBwZXIoU3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYg
bmV3VmVyc2lvbik7CiAKICAgICBTdHJpbmcgbV9vbGRWZXJzaW9uOwogICAgIFN0cmluZyBtX25l
d1ZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2UuY3BwCmluZGV4IDc3ZmZkOTMxOTdkNmUyM2JlMjAxMTBhM2UzYjkyNWU3OTdjYTJlZmYuLjVh
ZjM3MDlkYTJhNDhlNmNmMjQ0YWQxOWYwODc5NjRhNDRmMDRjZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01ODIsOSArNTgyLDkg
QEAgdm9pZCBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCkKICAgICBjbG9zZSgpOwog
fQogCi12b2lkIERhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lv
biwgY29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFj
az4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiBlcnJv
ckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaykKK3ZvaWQg
RGF0YWJhc2U6OmNoYW5nZVZlcnNpb24oU3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYgbmV3
VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0
cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZv
aWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAgcnVuVHJhbnNhY3Rpb24oV1RG
TW92ZShjYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0Nh
bGxiYWNrKSwgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OmNyZWF0ZShvbGRWZXJzaW9uLCBuZXdWZXJz
aW9uKSwgZmFsc2UpOworICAgIHJ1blRyYW5zYWN0aW9uKFdURk1vdmUoY2FsbGJhY2spLCBXVEZN
b3ZlKGVycm9yQ2FsbGJhY2spLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIENoYW5nZVZlcnNp
b25XcmFwcGVyOjpjcmVhdGUoV1RGTW92ZShvbGRWZXJzaW9uKSwgV1RGTW92ZShuZXdWZXJzaW9u
KSksIGZhbHNlKTsKIH0KIAogdm9pZCBEYXRhYmFzZTo6dHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNz
Q2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmgKaW5kZXggNWUzYmU4NTRmMDA5Y2Y2MGE2ZWEwOGRkZWY2N2Q1ZTJmMWE1ZTBlNy4uOWIwMDJk
NGE1YmY3OWM3NWQ4Y2I1NGVlMWYwZDg3ODZkMmYzODAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBEaXJlY3Qgc3VwcG9ydCBmb3IgdGhlIERPTSBBUEkKICAgICBTdHJpbmcgdmVy
c2lvbigpIGNvbnN0OwotICAgIHZvaWQgY2hhbmdlVmVyc2lvbihjb25zdCBTdHJpbmcmIG9sZFZl
cnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJlZlB0cjxW
b2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIGNoYW5nZVZlcnNpb24o
U3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYgbmV3VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYs
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKICAgICB2b2lkIHRyYW5z
YWN0aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrPiYmLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxs
YmFjayk7CiAgICAgdm9pZCByZWFkVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJlZlB0cjxW
b2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDA2N2Zk
MzkxMzkwYzg1ZGMyZDQ5ZGY0MDgwMTYyYjQzYzRmNDIzY2UuLjllYjM5MWM2ZDBiZDZkNDg2MDUx
MGVkYWI3Mjg5MzM5OTUwNmJjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTU0MiwxNCArNTQyLDE0IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0YWJhc2UoRGF0YWJhc2UmIGRhdGFiYXNl
KQogICAgIGF1dG8qIG5hbWVNYXAgPSBtX29wZW5EYXRhYmFzZU1hcC0+Z2V0KG9yaWdpbik7CiAg
ICAgaWYgKCFuYW1lTWFwKSB7CiAgICAgICAgIG5hbWVNYXAgPSBuZXcgRGF0YWJhc2VOYW1lTWFw
OwotICAgICAgICBtX29wZW5EYXRhYmFzZU1hcC0+YWRkKG9yaWdpbi5pc29sYXRlZENvcHkoKSwg
bmFtZU1hcCk7CisgICAgICAgIG1fb3BlbkRhdGFiYXNlTWFwLT5hZGQoV1RGTW92ZShvcmlnaW4p
Lmlzb2xhdGVkQ29weSgpLCBuYW1lTWFwKTsKICAgICB9CiAKICAgICBTdHJpbmcgbmFtZSA9IGRh
dGFiYXNlLnN0cmluZ0lkZW50aWZpZXJJc29sYXRlZENvcHkoKTsKICAgICBhdXRvKiBkYXRhYmFz
ZVNldCA9IG5hbWVNYXAtPmdldChuYW1lKTsKICAgICBpZiAoIWRhdGFiYXNlU2V0KSB7CiAgICAg
ICAgIGRhdGFiYXNlU2V0ID0gbmV3IERhdGFiYXNlU2V0OwotICAgICAgICBuYW1lTWFwLT5zZXQo
bmFtZS5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VTZXQpOworICAgICAgICBuYW1lTWFwLT5zZXQo
V1RGTW92ZShuYW1lKS5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VTZXQpOwogICAgIH0KIAogICAg
IGRhdGFiYXNlU2V0LT5hZGQoJmRhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMRXJyb3IuaAppbmRleCAxNDVjYTUwMDMzNTc2ZTcwMjdlODAyZjBkMjlj
ODI1OTI0NGE1YWNhLi43N2NlMWExY2FjMTUwOTQ4YzM0MTA0ZWRkMzNiMTBhMGRkNTlmMGM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1FMRXJyb3IgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMRXJyb3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNRTEVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQorICAg
IHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBTdHJpbmcmJiBtZXNz
YWdlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNRTEVycm9yKGNvZGUsIFdURk1vdmUobWVzc2Fn
ZSkpKTsgfQogICAgIHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBj
b25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBjcmVhdGUoY29kZSwgbWFrZVN0cmluZyhtZXNzYWdlLCAiICgiLCBzcWxpdGVDb2RlLCAnKScp
KTsKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6Ci0gICAgU1FM
RXJyb3IodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSA6IG1fY29kZShjb2Rl
KSwgbV9tZXNzYWdlKG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCkpIHsgfQorICAgIFNRTEVycm9yKHVu
c2lnbmVkIGNvZGUsIFN0cmluZyYmIG1lc3NhZ2UpIDogbV9jb2RlKGNvZGUpLCBtX21lc3NhZ2Uo
V1RGTW92ZShtZXNzYWdlKS5pc29sYXRlZENvcHkoKSkgeyB9CiAgICAgdW5zaWduZWQgbV9jb2Rl
OwogICAgIFN0cmluZyBtX21lc3NhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApp
bmRleCBmN2NmMGUxNzBjNjM5ZTk5NjRjODcyMGI4YTQ5ZTA1OWZlNWEwNTNmLi5lNjUzMTVhNTE1
OWUxYjhmZTE1Y2JhOTk2NTdhODA3Y2RhODZlMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBidWZm
ZXJlZEFtb3VudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUs
IGNvbnN0IFN0cmluZyYgcmVhc29uKSA9IDA7CiAgICAgLy8gTG9nIHRoZSByZWFzb24gdGV4dCBh
bmQgY2xvc2UgdGhlIGNvbm5lY3Rpb24uIFdpbGwgY2FsbCBkaWRDbG9zZSgpLgotICAgIHZpcnR1
YWwgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGZhaWwoU3RyaW5nJiYgcmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3Qo
KSA9IDA7IC8vIFdpbGwgc3VwcHJlc3MgZGlkQ2xvc2UoKS4KIAogICAgIHZpcnR1YWwgdm9pZCBz
dXNwZW5kKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyLmNwcAppbmRleCA3YjE0NDFkMzFjYmNiZjcwYTM5MTJhOWEyMTA1NzVhZDM1Y2Y1
OTMyLi5hOWNjNTQxMGE4M2M3NzY1MmRlZjU4N2RiNDg1ZjIwNTQ5OThmYjFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMTYy
LDExICsxNjIsMTEgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI6OmRpZENvbm5lY3QoKQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAKLXZv
aWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVz
c2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2FnZSkKIHsK
LSAgICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpUYXNrPihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1lc3NhZ2Ug
PSBtZXNzYWdlLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAg
ICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrPihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1lc3NhZ2UgPSBX
VEZNb3ZlKG1lc3NhZ2UpLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IG11dGFibGUgewogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+
ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZSk7CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVj
ZWl2ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgfSkpOwogCiAgICAgaWYgKCFtX3N1
c3BlbmRlZCkKQEAgLTIxNywxMSArMjE3LDExIEBAIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyOjpkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlCiAg
ICAgICAgIHByb2Nlc3NQZW5kaW5nVGFza3MoKTsKIH0KIAotdm9pZCBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3Ry
aW5nJiByZWFzb24pCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiByZWFzb24pCiB7Ci0gICAgbV9wZW5k
aW5nVGFza3MuYXBwZW5kKG1ha2VVbmlxdWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4o
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCByZWFzb24gPSByZWFzb24uaXNv
bGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgIG1fcGVuZGluZ1Rh
c2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcmVhc29uID0gV1RGTW92ZShyZWFzb24p
Lmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewogICAg
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2VFcnJvcihyZWFzb24pOworICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoV1RGTW92ZShyZWFzb24pKTsKICAgICB9KSk7CiAKICAgICBpZiAoIW1fc3VzcGVuZGVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmlu
ZGV4IDZhZWJhNTNlOGZjNDIzNGU4MzFkZTFkN2Q2OTkwMDU2Yjc4MTZiY2MuLjk2NTgwMjIzZWYw
NGE3YmFiNDdkMGQyMDhlMzM4OWVlOGE5MTYxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKQEAgLTc0LDEyICs3NCwxMiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhckNsaWVudCgpOwogCiAgICAgdm9pZCBkaWRDb25uZWN0KCk7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZl
QmluYXJ5RGF0YShWZWN0b3I8dWludDhfdD4mJik7CiAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJl
ZEFtb3VudCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCk7CiAgICAgdm9pZCBkaWRTdGFydENsb3Np
bmdIYW5kc2hha2UoKTsKICAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZl
cmVkQW1vdW50LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OjpDbG9zaW5nSGFuZHNoYWtlQ29tcGxl
dGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyYmIHJlYXNvbik7CiAgICAgdm9p
ZCBkaWRVcGdyYWRlVVJMKCk7CiAKICAgICB2b2lkIHN1c3BlbmQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggODE2ZWNlYjE2YmIx
NjI1ZjczMDNjYzI4YzI3ZjZkNjBlOTA2MWRhNy4uZjk3M2U1YmQzYjkwZTNhNGNjNzM1MjE0ZDlh
MzE5YWRmOTIxZTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKQEAgLTU2NiwyMSArNTY2LDIxIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRD
b25uZWN0KCkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdl
KGNvbnN0IFN0cmluZyYgbXNnKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKFN0
cmluZyYmIG1lc3NhZ2UpCiB7Ci0gICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVj
ZWl2ZU1lc3NhZ2UoKSBUZXh0IG1lc3NhZ2UgJyVzJyIsIHRoaXMsIG1zZy51dGY4KCkuZGF0YSgp
KTsKLSAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Oldl
YlNvY2tldCwgW3RoaXMsIG1zZ10geworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRp
ZFJlY2VpdmVNZXNzYWdlKCkgVGV4dCBtZXNzYWdlICclcyciLCB0aGlzLCBtZXNzYWdlLnV0Zjgo
KS5kYXRhKCkpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1Nv
dXJjZTo6V2ViU29ja2V0LCBbdGhpcywgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSldKCkgbXV0
YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJv
bnRlbmRzKCkpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogaW5zcGVjdG9yID0gbV9jaGFubmVs
LT5jaGFubmVsSW5zcGVjdG9yKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHV0ZjhNZXNzYWdl
ID0gbXNnLnV0ZjgoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHV0ZjhNZXNzYWdlID0gbWVzc2Fn
ZS51dGY4KCk7CiAgICAgICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNlaXZlV2ViU29ja2V0
RnJhbWUoV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6Y3JlYXRlRnJhbWUodXRmOE1lc3NhZ2Uu
ZGF0YUFzVUludDhQdHIoKSwgdXRmOE1lc3NhZ2UubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpP
cENvZGU6Ok9wQ29kZVRleHQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBB
U1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChN
ZXNzYWdlRXZlbnQ6OmNyZWF0ZShtc2csIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50
b1N0cmluZygpKSk7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUo
V1RGTW92ZShtZXNzYWdlKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5n
KCkpKTsKICAgICB9KTsKIH0KIApAQCAtNjA4LDEwICs2MDgsMTAgQEAgdm9pZCBXZWJTb2NrZXQ6
OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90PiYmIGJpbmFyeURhdGEpCiAgICAg
fSk7CiB9CiAKLXZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0
cmluZyYgcmVhc29uKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3Ry
aW5nJiYgcmVhc29uKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJlY2Vp
dmVFcnJvck1lc3NhZ2UoKSIsIHRoaXMpOwotICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2
ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgcmVhc29uXSB7CisgICAgcXVl
dWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0
aGlzLCByZWFzb24gPSBXVEZNb3ZlKHJlYXNvbildIHsKICAgICAgICAgaWYgKG1fc3RhdGUgPT0g
Q0xPU0VEKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IDBj
MzZhMjM2MTEzN2UwODY1ODVhMDE3YjljNmIxZjVlMTc4ZTZlZTYuLmU2ODYzZTQ2ZGEwN2QxOGI2
ZDkxNWViMTVjMjRjZGYyMmRiNmE2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTExMyw5ICsxMTMsOSBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgdm9pZCBkaWRD
b25uZWN0KCkgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVz
c2FnZSkgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShWZWN0b3I8dWludDhf
dD4mJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5n
JiYgcmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2ln
bmVkIGJ1ZmZlcmVkQW1vdW50KSBmaW5hbDsKICAgICB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRz
aGFrZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVmZmVy
ZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9y
dCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggYmIx
MjUyNDFmNjMxOWNkNTQ3NGY3NTcyYjdkMWJmNDM2MmJmMGZlMS4uZGY1NjM1OWM2ZmRhMDUyMTAz
ZDk3YjNkOGE1ZDEwODQ5MTk3NWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjEyLDcgKzIxMiw3IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uKQogICAgICAgICBtX2Nsb3NpbmdUaW1lci5zdGFydE9uZVNob3QoVENQTWF4aW11bVNlZ21l
bnRMaWZldGltZSAqIDIpOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoY29uc3Qg
U3RyaW5nJiByZWFzb24pCit2b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoU3RyaW5nJiYgcmVh
c29uKQogewogICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGZh
aWwoKSByZWFzb249JyVzJyIsIHRoaXMsIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKICAgICBBU1NF
UlQoIW1fc3VzcGVuZGVkKTsKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgbV9oYXNDb250aW51b3VzRnJhbWUg
PSBmYWxzZTsKICAgICBtX2NvbnRpbnVvdXNGcmFtZURhdGEuY2xlYXIoKTsKICAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKHJlYXNvbik7
CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKFdURk1vdmUocmVhc29u
KSk7CiAKICAgICBpZiAobV9oYW5kbGUgJiYgIW1fY2xvc2VkKQogICAgICAgICBtX2hhbmRsZS0+
ZGlzY29ubmVjdCgpOyAvLyBXaWxsIGNhbGwgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oKSBidXQgbWF5
YmUgbm90IHN5bmNocm9ub3VzbHkuCkBAIC0zODAsNyArMzgwLDcgQEAgdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlLCBj
b25zdCBTb2MKICAgICB9CiAgICAgbV9zaG91bGREaXNjYXJkUmVjZWl2ZWREYXRhID0gdHJ1ZTsK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVy
cm9yKG1lc3NhZ2UpOworICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihX
VEZNb3ZlKG1lc3NhZ2UpKTsKICAgICBoYW5kbGUuZGlzY29ubmVjdCgpOwogfQogCkBAIC01NDYs
NyArNTQ2LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIGlm
IChyZXN1bHQgPT0gV2ViU29ja2V0RnJhbWU6OkZyYW1lSW5jb21wbGV0ZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmIChyZXN1bHQgPT0gV2ViU29ja2V0RnJhbWU6OkZyYW1lRXJyb3Ip
IHsKLSAgICAgICAgZmFpbChlcnJvclN0cmluZyk7CisgICAgICAgIGZhaWwoV1RGTW92ZShlcnJv
clN0cmluZykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02MjIsNyArNjIy
LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAg
ICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICBmYWlsKCJDb3Vs
ZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iKTsKICAgICAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNz
YWdlKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdU
Rk1vdmUobWVzc2FnZSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtX2NvbnRpbnVvdXNGcmFt
ZU9wQ29kZSA9PSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQmluYXJ5KQogICAgICAgICAgICAgICAg
IG1fY2xpZW50LT5kaWRSZWNlaXZlQmluYXJ5RGF0YShXVEZNb3ZlKGNvbnRpbnVvdXNGcmFtZURh
dGEpKTsKICAgICAgICAgfQpAQCAtNjM5LDcgKzYzOSw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5l
bDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQogICAg
ICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04
LiIpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlTWVzc2FnZShtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBtX2hhc0NvbnRpbnVvdXNGcmFtZSA9IHRydWU7CiAgICAgICAgICAgICBtX2NvbnRpbnVvdXNG
cmFtZU9wQ29kZSA9IFdlYlNvY2tldEZyYW1lOjpPcENvZGVUZXh0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggOGMw
OGUyNmI5ZmJhZTdlYWJiY2E2MDE4YjY3Y2I3YWEyOWY2NWUyMC4uNjNmZTYyYTc2OGJkZjkyMDky
MGE4YWY3M2M1MjA0MzI0NmIzZDhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC03OSw3ICs3OSw3IEBAIHB1Ymxp
YzoKICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKEJsb2Im
KSBmaW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgpIGNvbnN0IGZpbmFsOwogICAg
IHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBmaW5hbDsgLy8gU3Rh
cnQgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29u
KSBmaW5hbDsKKyAgICB2b2lkIGZhaWwoU3RyaW5nJiYgcmVhc29uKSBmaW5hbDsKICAgICB2b2lk
IGRpc2Nvbm5lY3QoKSBmaW5hbDsKIAogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsQ2xpZW50LmgKaW5kZXggN2Y3MTMxY2ExOWU3OGMwYzc0YWE0OTc4OTQ1MGI2MTY1MzdiZDBm
Yy4uZGNmOTE0MGY5MDRhMWZjZTc3MmEyN2JmZWRlMmExYjQwMDU4YjI4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bENsaWVudC5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIFdlYlNvY2tldENoYW5uZWxDbGllbnQg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViU29ja2V0Q2hhbm5lbENsaWVudD4gewogcHVibGlj
OgogICAgIHZpcnR1YWwgfldlYlNvY2tldENoYW5uZWxDbGllbnQoKSA9IGRlZmF1bHQ7CiAgICAg
dmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoU3RyaW5nJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFy
eURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBk
YXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgPSAwOwogICAgIGVudW0gQ2xvc2lu
Z0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAppbmRleCBjNDUzOGI5
OGQwYmI5MmVhOWQ2MWQyOWI3ZjA5NTE3MDg2N2RmZjU1Li5mNzY5Njc0OTMzNzIwMTdkMzYzZTNh
MTJlNzdmNTViZDUwMjU4NTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApAQCAtMTMzLDExICsxMzMsNiBA
QCBjb25zdCBVUkwmIFdlYlNvY2tldEhhbmRzaGFrZTo6dXJsKCkgY29uc3QKICAgICByZXR1cm4g
bV91cmw7CiB9CiAKLXZvaWQgV2ViU29ja2V0SGFuZHNoYWtlOjpzZXRVUkwoY29uc3QgVVJMJiB1
cmwpCi17Ci0gICAgbV91cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCk7Ci19Ci0KIC8vIEZJWE1FOiBS
ZXR1cm4gdHlwZSBzaG91bGQganVzdCBiZSBTdHJpbmcsIG5vdCBjb25zdCBTdHJpbmcuCiBjb25z
dCBTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpob3N0KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDc3NjMyNWZiNGE5ZGI4MzZlZGE0
NjRmYThhZjA2ZWY2NGI1OTllOTYuLmJiZDYzMTUzYWVmNDQwZTA5N2M3M2E1MjcyOGEyNWY4NmM2
NzVjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAt
MTE4LDEwICsxMTgsMTAgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKQogICAgICAgICBtX2JyaWRnZS0+
Y2xvc2UoY29kZSwgcmVhc29uKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKK3ZvaWQgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OmZhaWwoU3RyaW5nJiYgcmVhc29uKQogewogICAgIGlmIChtX2Jy
aWRnZSkKLSAgICAgICAgbV9icmlkZ2UtPmZhaWwocmVhc29uKTsKKyAgICAgICAgbV9icmlkZ2Ut
PmZhaWwoV1RGTW92ZShyZWFzb24pKTsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCkBAIC0yMjUsMTIgKzIyNSwxMiBAQCB2b2lkIFdvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpjbG9zZShpbnQgY29kZSwgY29uc3Qg
U3RyaW5nJiByZWFzbwogICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmNsb3NlKGNvZGUsIHJl
YXNvbik7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpQZWVyOjpmYWlsKFN0cmluZyYmIHJlYXNvbikKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogICAgIGlmICghbV9tYWluV2ViU29ja2V0Q2hhbm5lbCkKICAgICAgICAg
cmV0dXJuOwotICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmZhaWwocmVhc29uKTsKKyAgICBt
X21haW5XZWJTb2NrZXRDaGFubmVsLT5mYWlsKFdURk1vdmUocmVhc29uKSk7CiB9CiAKIHZvaWQg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpc2Nvbm5lY3QoKQpAQCAt
MjcyLDEzICsyNzIsMTMgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
UGVlcjo6ZGlkQ29ubmVjdCgpCiAgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKLXZvaWQgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6
OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2Vy
Q2xpZW50V3JhcHBlciwgbWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgIG1fbG9hZGVyUHJveHkucG9z
dFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3Jh
cHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlciwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSku
aXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUg
ewogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxT
Y29wZSgpIHx8IGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIHdvcmtl
ckNsaWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOworICAgICAgICB3b3Jr
ZXJDbGllbnRXcmFwcGVyLT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAg
ICB9LCBtX3Rhc2tNb2RlKTsKIH0KIApAQCAtMzIzLDEzICszMjMsMTMgQEAgdm9pZCBXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5k
bGVkQnVmZmVyZWQKICAgICB9LCBtX3Rhc2tNb2RlKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBT
dHJpbmcmIHJlYXNvbikKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBl
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYgcmVhc29uKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtl
ckNsaWVudFdyYXBwZXIsIHJlYXNvbiA9IHJlYXNvbi5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0
VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFw
cGVyID0gbV93b3JrZXJDbGllbnRXcmFwcGVyLCByZWFzb24gPSBXVEZNb3ZlKHJlYXNvbikuaXNv
bGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewog
ICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29w
ZSgpIHx8IGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIHdvcmtlckNs
aWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsKKyAgICAgICAgd29y
a2VyQ2xpZW50V3JhcHBlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihXVEZNb3ZlKHJlYXNvbikp
OwogICAgIH0sIG1fdGFza01vZGUpOwogfQogCkBAIC00MTIsMTUgKzQxMiwxNCBAQCB2b2lkIFdv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmNvbm5lY3QoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cgogICAgICAgICAKICAgICAgICAgLy8gRklYTUU6IG1ha2UgdGhpcyBt
aXhlZCBjb250ZW50IGNoZWNrIGVxdWl2YWxlbnQgdG8gdGhlIGRvY3VtZW50IG1peGVkIGNvbnRl
bnQgY2hlY2sgY3VycmVudGx5IGluIFdlYlNvY2tldDo6Y29ubmVjdCgpCiAgICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKLSAgICAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBlcnJvclN0cmluZyA9IE1peGVkQ29udGVudENoZWNrZXI6OmNoZWNrRm9yTWl4
ZWRDb250ZW50SW5GcmFtZVRyZWUoKmZyYW1lLCB1cmwpOwotICAgICAgICAgICAgaWYgKGVycm9y
U3RyaW5nKSB7Ci0gICAgICAgICAgICAgICAgcGVlci0+ZmFpbChlcnJvclN0cmluZy52YWx1ZSgp
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yU3RyaW5nID0gTWl4ZWRDb250ZW50Q2hlY2tl
cjo6Y2hlY2tGb3JNaXhlZENvbnRlbnRJbkZyYW1lVHJlZSgqZnJhbWUsIHVybCkpIHsKKyAgICAg
ICAgICAgICAgICBwZWVyLT5mYWlsKFdURk1vdmUoZXJyb3JTdHJpbmcpLnZhbHVlKCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAg
IGlmIChwZWVyLT5jb25uZWN0KHVybCwgcHJvdG9jb2wpID09IFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpDb25uZWN0U3RhdHVzOjpLTykKLSAgICAgICAgICAgIHBlZXItPmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IobnVsbFN0cmluZygpKTsKKyAgICAgICAgICAgIHBlZXItPmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IoU3RyaW5nIHsgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTUyMCwxNyArNTE5LDE3
IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y2xvc2Uo
aW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhCiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNv
bikKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6ZmFpbChT
dHJpbmcmJiByZWFzb24pCiB7CiAgICAgaWYgKCFtX3BlZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihbcGVlciA9IG1fcGVlciwgcmVhc29u
ID0gcmVhc29uLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KSB7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKFtwZWVyID0gbV9wZWVyLCBy
ZWFzb24gPSBXVEZNb3ZlKHJlYXNvbikuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNEb2N1bWVudCgpKTsK
ICAgICAgICAgQVNTRVJUKHBlZXIpOwogCi0gICAgICAgIHBlZXItPmZhaWwocmVhc29uKTsKKyAg
ICAgICAgcGVlci0+ZmFpbChXVEZNb3ZlKHJlYXNvbikpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDM2OWE2ZmExNmQ0YzQ0MjQ3ZGQw
NmNlMDZkN2FhYTc1ODAzNGJmYWMuLjQwYTNmYTcwY2MyM2NhODAxMjI4MTQ2Mjk0ZDA1YzcxYmU4
MjRlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC02Myw3
ICs2Myw3IEBAIHB1YmxpYzoKICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJl
c3VsdCBzZW5kKEJsb2ImKSBmaW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgpIGNv
bnN0IGZpbmFsOwogICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29u
KSBmaW5hbDsKLSAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOworICAg
IHZvaWQgZmFpbChTdHJpbmcmJiByZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzY29ubmVjdCgp
IGZpbmFsOyAvLyBXaWxsIHN1cHByZXNzIGRpZENsb3NlKCkuCiAgICAgdm9pZCBzdXNwZW5kKCkg
ZmluYWw7CiAgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKQEAgLTgyLDE5ICs4MiwxOSBAQCBwdWJs
aWM6CiAgICAgICAgIHZvaWQgc2VuZChCbG9iJik7CiAgICAgICAgIHZvaWQgYnVmZmVyZWRBbW91
bnQoKTsKICAgICAgICAgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24p
OwotICAgICAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOworICAgICAgICB2b2lk
IGZhaWwoU3RyaW5nJiYgcmVhc29uKTsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAgICAg
ICAgIHZvaWQgc3VzcGVuZCgpOwogICAgICAgICB2b2lkIHJlc3VtZSgpOwogCiAgICAgICAgIC8v
IFdlYlNvY2tldENoYW5uZWxDbGllbnQgZnVuY3Rpb25zLgogICAgICAgICB2b2lkIGRpZENvbm5l
Y3QoKSBmaW5hbDsKLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpIGZpbmFsOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZyYm
IG1lc3NhZ2UpIGZpbmFsOwogICAgICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rv
cjx1aW50OF90PiYmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3Vu
dCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkU3RhcnRD
bG9zaW5nSGFuZHNoYWtlKCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQg
dW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVz
LCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7Ci0gICAg
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbikgZmlu
YWw7CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiByZWFzb24p
IGZpbmFsOwogICAgICAgICB2b2lkIGRpZFVwZ3JhZGVVUkwoKSBmaW5hbDsKIAogICAgIHByaXZh
dGU6CkBAIC0xMjYsNyArMTI2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChCbG9iJik7CiAgICAgICAgIHVuc2lnbmVkIGJ1
ZmZlcmVkQW1vdW50KCk7CiAgICAgICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uKTsKLSAgICAgICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKTsKKyAg
ICAgICAgdm9pZCBmYWlsKFN0cmluZyYmIHJlYXNvbik7CiAgICAgICAgIHZvaWQgZGlzY29ubmVj
dCgpOwogICAgICAgICB2b2lkIHN1c3BlbmQoKTsKICAgICAgICAgdm9pZCByZXN1bWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25EYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXhjZXB0aW9uRGF0YS5oCmluZGV4IDk4NTMzNzZmMWM0ZGRjZmQxYTUxYWQ0YWVh
YzlkMDY0ZWU5OWY1NDkuLmNlMGNhZTM2N2YyY2M1MTFhMjUyYTY1MmUzYzYyNTRkYWJhMWI5M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25EYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaApAQCAtNDAsMTAgKzQwLDggQEAgc3RydWN0
IEV4Y2VwdGlvbkRhdGEgewogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgRXhjZXB0
aW9uIHRvRXhjZXB0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBjb2RlLCBTdHJpbmcgeyBtZXNzYWdlIH0gfTsKLSAgICB9CisgICAgRXhjZXB0aW9uIHRvRXhj
ZXB0aW9uKCkgY29uc3QgJiB7IHJldHVybiBFeGNlcHRpb24geyBjb2RlLCBTdHJpbmcgeyBtZXNz
YWdlIH0gfTsgfQorICAgIEV4Y2VwdGlvbiB0b0V4Y2VwdGlvbigpICYmIHsgcmV0dXJuIEV4Y2Vw
dGlvbiB7IGNvZGUsIFdURk1vdmUobWVzc2FnZSkgfTsgfQogfTsKIAogdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggYzEzMzc0YjE2MWVlYmJmNjc4NjBhMDAwOWJl
YzE0YTM1YzUzMjk5Zi4uZmUxY2MyZGJiOTg2M2NkNDQ4MDQ3NmQyZTIxYTVhMjI5ZGM4YTBlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCBQcm90b2NvbDo6RXJyb3JTdHJp
bmdPcjx2b2lkPiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1lc3NhZ2VUb1dvcmtlcihjb25z
dCBTdAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNl
bmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmIHByb3h5
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpzZW5k
TWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiBwcm94eSwg
U3RyaW5nJiYgbWVzc2FnZSkKIHsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2hN
ZXNzYWdlRnJvbVdvcmtlcihwcm94eS5pZGVudGlmaWVyKCksIG1lc3NhZ2UpOworICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyLT5kaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKHByb3h5LmlkZW50aWZp
ZXIoKSwgV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yV29ya2VyQWdlbnQ6
OnNob3VsZFdhaXRGb3JEZWJ1Z2dlck9uU3RhcnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IDkw
NTY3YmIwMjEwZWRlOWQzZDcyZDhkMDI1MzQ5NzM3MzdjMGE2ZjEuLmUxYmJkOGY5NDZlNDFmMzAx
YThmZjg3Zjc0YWZlMzk5ZDYxZmVjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAg
cHVibGljOgogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2Vu
ZE1lc3NhZ2VUb1dvcmtlcihjb25zdCBTdHJpbmcmIHdvcmtlcklkLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOwogCiAgICAgLy8gV29ya2VySW5zcGVjdG9yUHJveHk6OlBhZ2VDaGFubmVsCi0gICAg
dm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5
JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtl
clRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmLCBTdHJpbmcmJiBtZXNzYWdlKTsKIAog
ICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIGJvb2wgc2hvdWxkV2FpdEZvckRl
YnVnZ2VyT25TdGFydCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
YWNoZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQ
cm92aWRlci5oCmluZGV4IGVlZjYyNTcyYTc1OGI2ZmVjYTdjYjBhNzU2ZjQxY2QxODU4MDlhYTcu
LmE0Nzk3YTU2YmZhNmQwNjAyZDM0OTk3Y2IwMThlMzgxYzQ2ZDcxNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGlj
OgogICAgICAgICB2b2lkIG9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwg
RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAg
ICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmll
ckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0
IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZvc0NhbGxi
YWNrJiYpIGZpbmFsIHsgfQotICAgICAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCwg
Y29uc3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2Fs
bGJhY2smJikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90
LCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJh
Y2smJikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0
X3QsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hl
RW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2
b2lkIGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90LCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmlu
YWwgeyB9CiAgICAgICAgIHZvaWQgcmVmZXJlbmNlKHVpbnQ2NF90KSBmaW5hbCB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKaW5kZXggZDljZGU0ZjVlOTgyZDgzYzBkOTMx
OTBhOTgwMmQ1Mjc1ODMwOWNmNS4uYjM5YmJkZDQ4YTU0YTQ3MmM4OWJhMGMyNDkyNWUyNjMxYWJj
YjliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKQEAgLTc5LDkgKzc5
LDkgQEAgdm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNo
YW5uZWwpCiAgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRl
bmQoY2hhbm5lbCk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZy
b21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlz
cGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKQogewotICAgIG1fcGFnZS5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1lc3NhZ2Up
OworICAgIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZy
b250ZW5kKFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpzZXRJ
bmRpY2F0aW5nKGJvb2wgaW5kaWNhdGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZURlYnVnZ2FibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUu
aAppbmRleCA1OGZjNDc3Y2Y0MzUzYjUyN2NjM2ZkMmQxOTllNGM3ZmIwMTJiYTFiLi44YmQ2ZmJh
Nzk1ZWIzZGM4OGVlNzE4NzYzOTRiNTc4ZDk3N2E1YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
RGVidWdnYWJsZS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29ubmVj
dChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9u
ID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lk
IGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKLSAgICB2b2lk
IGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsK
KyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2FnZSkgZmlu
YWw7CiAgICAgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIGZpbmFsOwogCiAgICAgY29uc3QgU3Ry
aW5nJiBuYW1lT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX25hbWVPdmVycmlkZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAppbmRleCBi
YTExZGRhMTY3ZmUxMGExMjFjZDExY2I5YmUyN2Q5MmJjNTE4MmY4Li42MjQ5MWZlYzJhNGE1MDcx
YmZkNjBmMjQ3OWMxNmE3ZTkzYTgwM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtMTM4LDEyICsxMzgsMTIgQEAgdm9pZCBXb3Jr
ZXJJbnNwZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VUb1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIo
Y29uc3QgU3RyaW5nJgogICAgIH0pOwogfQogCi12b2lkIFdvcmtlckluc3BlY3RvclByb3h5Ojpz
ZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3Zv
aWQgV29ya2VySW5zcGVjdG9yUHJveHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQo
U3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBpZiAoIW1fcGFnZUNoYW5uZWwpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFnZUNoYW5uZWwtPnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRl
bmQoKnRoaXMsIG1lc3NhZ2UpOworICAgIG1fcGFnZUNoYW5uZWwtPnNlbmRNZXNzYWdlRnJvbVdv
cmtlclRvRnJvbnRlbmQoKnRoaXMsIFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlcklu
c3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclBy
b3h5LmgKaW5kZXggODMzNGQ0N2QzNGRlZjc1ZDRiYmNlMzM2ZTI4ZWJmZThkNzZiMjAyZi4uODNh
Y2I1ZmRkYmExMDQ0MTQ3ZTc4NGFiNjllNWM5MGZmYjViMDhmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJs
aWM6CiAgICAgY2xhc3MgUGFnZUNoYW5uZWwgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVh
bCB+UGFnZUNoYW5uZWwoKSA9IGRlZmF1bHQ7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVz
c2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiwgY29uc3QgU3Ry
aW5nJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9G
cm9udGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSYsIFN0cmluZyYmKSA9IDA7CiAgICAgfTsKIAog
ICAgIHN0YXRpYyBXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4mIGFsbFdvcmtlcklu
c3BlY3RvclByb3hpZXMoKTsKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29u
bmVjdFRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihQYWdlQ2hhbm5lbCYpOwogICAgIHZvaWQg
ZGlzY29ubmVjdEZyb21Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7CiAgICAgdm9pZCBzZW5k
TWVzc2FnZVRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihjb25zdCBTdHJpbmcmKTsKLSAgICB2
b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CisgICAg
dm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFN0cmluZyYmKTsKIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBXb3JrZXJJbnNwZWN0b3JQcm94eShjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAppbmRleCA2YWQyMTc3NjM1NWI3MjU5MDU1ZmZkYmRlODgwYzczYmJlZGYxNzc2Li5jYjZj
NjIyYmYzOTgyYjg2ZTY3ODI3MjkzMzM4YTBlYjI4ZmFmNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMjEzLDkgKzIxMyw5IEBA
IHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnCiAKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBv
c3RNZXNzYWdlVG9EZWJ1Z2dlcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
bWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBtZXNzYWdlID0g
bWVzc2FnZS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX21heUJl
RGVzdHJveWVkKQotICAgICAgICAgICAgbV9pbnNwZWN0b3JQcm94eS0+c2VuZE1lc3NhZ2VGcm9t
V29ya2VyVG9Gcm9udGVuZChtZXNzYWdlKTsKKyAgICAgICAgICAgIG1faW5zcGVjdG9yUHJveHkt
PnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAg
fSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0Ns
aWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYjRjZWQzYjYwM2I0OWJjNjgwMDBiYzZhMTQ0ZTMzMzQ4
ZDEzMzdlZi4uMTM3Mzg5ODkxNjhjZWEyM2MyNmY2MjE2Njk1N2E1ZGM3NGE2ZDQ1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5jcHAKQEAgLTkyLDIxICs5MiwyMiBAQCBib29sIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRh
c2tGb3JKb2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllcgogICAgIHJl
dHVybiBpc1Bvc3RlZDsKIH0KIAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmpvYlJlamVjdGVk
SW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgY29uc3Qg
RXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpq
b2JSZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZp
ZXIsIEV4Y2VwdGlvbkRhdGEmJiBleGNlcHRpb25EYXRhKQogewotICAgIHBvc3RUYXNrRm9ySm9i
KGpvYklkZW50aWZpZXIsIElzSm9iQ29tcGxldGU6OlllcywgW2V4Y2VwdGlvbkRhdGEgPSBleGNl
cHRpb25EYXRhLmlzb2xhdGVkQ29weSgpXSAoYXV0byYgam9iKSB7Ci0gICAgICAgIGpvYi5mYWls
ZWRXaXRoRXhjZXB0aW9uKGV4Y2VwdGlvbkRhdGEudG9FeGNlcHRpb24oKSk7CisgICAgcG9zdFRh
c2tGb3JKb2Ioam9iSWRlbnRpZmllciwgSXNKb2JDb21wbGV0ZTo6WWVzLCBbZXhjZXB0aW9uRGF0
YSA9IFdURk1vdmUoZXhjZXB0aW9uRGF0YSkuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBqb2IpIG11
dGFibGUgeworICAgICAgICBqb2IuZmFpbGVkV2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGV4Y2VwdGlv
bkRhdGEpLnRvRXhjZXB0aW9uKCkpOwogICAgIH0pOwogfQogCiB2b2lkIFNXQ2xpZW50Q29ubmVj
dGlvbjo6cmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRl
bnRpZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIHJl
Z2lzdHJhdGlvbkRhdGEsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVu
UmVzb2x2ZWQpCiB7Ci0gICAgYm9vbCBpc1Bvc3RlZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50
aWZpZXIsIElzSm9iQ29tcGxldGU6OlllcywgW3JlZ2lzdHJhdGlvbkRhdGEgPSByZWdpc3RyYXRp
b25EYXRhLmlzb2xhdGVkQ29weSgpLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWRdIChhdXRvJiBq
b2IpIG11dGFibGUgeworICAgIGF1dG8gcmVnaXN0cmF0aW9uS2V5ID0gcmVnaXN0cmF0aW9uRGF0
YS5rZXk7CisgICAgYm9vbCBpc1Bvc3RlZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50aWZpZXIs
IElzSm9iQ29tcGxldGU6OlllcywgW3JlZ2lzdHJhdGlvbkRhdGEgPSBXVEZNb3ZlKHJlZ2lzdHJh
dGlvbkRhdGEpLmlzb2xhdGVkQ29weSgpLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWRdIChhdXRv
JiBqb2IpIG11dGFibGUgewogICAgICAgICBqb2IucmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFdU
Rk1vdmUocmVnaXN0cmF0aW9uRGF0YSksIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CiAgICAg
fSk7CiAKICAgICBpZiAoIWlzUG9zdGVkICYmIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCA9PSBT
aG91bGROb3RpZnlXaGVuUmVzb2x2ZWQ6OlllcykKLSAgICAgICAgZGlkUmVzb2x2ZVJlZ2lzdHJh
dGlvblByb21pc2UocmVnaXN0cmF0aW9uRGF0YS5rZXkpOworICAgICAgICBkaWRSZXNvbHZlUmVn
aXN0cmF0aW9uUHJvbWlzZShyZWdpc3RyYXRpb25LZXkpOwogfQogCiB2b2lkIFNXQ2xpZW50Q29u
bmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiYgcmVnaXN0
cmF0aW9uS2V5LCBGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGY5
NTQwNGI3NGI2ZDQ4MmRlN2U2OGEwNWVhNTMyZTFiODg2OGY0YzEuLjA1ZmRkMDNhZWY0M2M1ZDA2
MGZjN2YxYmNjNDVjOGFjYmM4Yzg1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJs
aWM6CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgU1dDbGllbnRDb25uZWN0aW9uKCk7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdv
cmtlckpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGpvYlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIs
IEV4Y2VwdGlvbkRhdGEmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RyYXRpb25K
b2JSZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YSYmLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2Vy
Sm9iSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYmLCBGZXRjaE9wdGlv
bnM6OkNhY2hlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9u
Q29udGV4dElkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFNlcnZpY2VXb3Jr
ZXJEYXRhJiYgc291cmNlLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5j
cHAKaW5kZXggNjhmMGU2MGVjNzQ3NGFiZTA2YjI2MTE0MmM3Zjc1MmViMjRjZGMyYy4uNThkOTZl
ZjU4OWNhODE1Y2NjOTMyMzI4OTllNjMzZGI3ZmJmYzAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3Bw
CkBAIC01NiwxMSArNTYsMTYgQEAgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUg
dG9TZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlKFNjcmlwdEV4ZWN1dGkKICAgICByZXR1cm4g
U2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZTo6TmVzdGVkOwogfQogCi1TZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QK
K1NlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRl
ZENvcHkoKSBjb25zdCAmCiB7CiAgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgdHlwZSwgZnJhbWVU
eXBlLCB1cmwuaXNvbGF0ZWRDb3B5KCksIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIH07
CiB9CiAKK1NlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpp
c29sYXRlZENvcHkoKSAmJgoreworICAgIHJldHVybiB7IGlkZW50aWZpZXIsIHR5cGUsIGZyYW1l
VHlwZSwgV1RGTW92ZSh1cmwpLmlzb2xhdGVkQ29weSgpLCBsYXN0TmF2aWdhdGlvbldhc0FwcElu
aXRpYXRlZCB9OworfQorCiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YTo6ZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewogICAgIGJv
b2wgaXNEb2N1bWVudCA9IGlzPERvY3VtZW50Pihjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKaW5k
ZXggZTI4YjJiYzU3OGJlYjI4YmYwMTdkOTNhYjExMzZlYWFiNmZjYzFmOS4uMzk3NWQ1MTgxNjVj
YWI0NzgzNGM5MWIxZTQxMjk2Y2U4MTI2MTFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKQEAgLTQ3LDcg
KzQ3LDggQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsKICAgICBVUkwgdXJsOwog
ICAgIExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkOwogCi0gICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29u
c3Q7CisgICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29uc3QgJjsK
KyAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBpc29sYXRlZENvcHkoKSAmJjsKIAogICAgIHN0
YXRpYyBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YS5oCmluZGV4IDQ2YTlmYTcwMTI5ZTM3NWM1OTY4MWJiYTZlMzBl
YTk4YWJjYjFkODcuLjlhNjZkNDhiMGEyOWQ5ZjI5M2EzMmJmZmU4NGE1N2MwZDc3NzI3YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRleHREYXRhLmgKQEAgLTc5LDcgKzc5LDggQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSB7CiAgICAgICAgICAgICB9fTsKICAgICAgICAgfQogCi0gICAgICAgIEltcG9y
dGVkU2NyaXB0IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgc2NyaXB0Lmlzb2xhdGVk
Q29weSgpLCByZXNwb25zZVVSTC5pc29sYXRlZENvcHkoKSwgbWltZVR5cGUuaXNvbGF0ZWRDb3B5
KCkgfTsgfQorICAgICAgICBJbXBvcnRlZFNjcmlwdCBpc29sYXRlZENvcHkoKSBjb25zdCAmIHsg
cmV0dXJuIHsgc2NyaXB0Lmlzb2xhdGVkQ29weSgpLCByZXNwb25zZVVSTC5pc29sYXRlZENvcHko
KSwgbWltZVR5cGUuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgICAgICBJbXBvcnRlZFNjcmlwdCBp
c29sYXRlZENvcHkoKSAmJiB7IHJldHVybiB7IFdURk1vdmUoc2NyaXB0KS5pc29sYXRlZENvcHko
KSwgV1RGTW92ZShyZXNwb25zZVVSTCkuaXNvbGF0ZWRDb3B5KCksIFdURk1vdmUobWltZVR5cGUp
Lmlzb2xhdGVkQ29weSgpIH07IH0KICAgICB9OwogCiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNl
V29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24uY3BwCmluZGV4IGY3YTQ0NWQxNjVmYWFjYWFmN2MyYzg0ZmQzMmUwNTk3YjRiNWVjN2Uu
LmZiMTAyMjE4NzE3ZGQ1MWE2ZWUzMTA0MTM4YmRjMWRmYjg3ZjBjOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi5jcHAKQEAgLTI2OSw3ICsyNjksNyBAQCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIm
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246Om5hdmlnYXRpb25QcmVsb2FkKCkKIH0KIAogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05fRVZFTlQpCi12b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b246OnNob3dOb3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgTm90aWZpY2F0aW9uT3B0aW9ucyYgb3B0aW9ucywgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBTdHJpbmcmJiB0aXRsZSwgTm90aWZpY2F0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikg
ewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3Ry
YXRpb24gZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmUgd29ya2VyIl9zIH0pOwpAQCAtMjkyLDcgKzI5
Miw3IEBAIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0CiAKICAgICAvLyBUaGUgTm90aWZpY2F0aW9u
IGlzIGtlcHQgYWxpdmUgYnkgdmlydHVlIG9mIGJlaW5nIHNob3coKSduIHNvb24uCiAgICAgLy8g
RklYTUU6IFdoZW4gaW1wbGVtZW50aW5nIGdldE5vdGlmaWNhdGlvbnMoKSwgc3RvcmUgdGhpcyBO
b3RpZmljYXRpb24gaW4gdGhlIHJlZ2lzdHJhdGlvbidzIG5vdGlmaWNhdGlvbiBsaXN0LgotICAg
IGF1dG8gbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uOjpjcmVhdGUoY29udGV4dCwgdGl0bGUs
IG9wdGlvbnMpOworICAgIGF1dG8gbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uOjpjcmVhdGUo
Y29udGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0aW9ucykpOwogCiAgICAgY29udGV4
dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIHByb21pc2UucmVz
b2x2ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggMzM0MzM3YTZiZWM2N2YxZjYyNGI4MzBl
YjBmZDY0MDNjNzM0ZTE3OS4uZjdjYzkwZWViNDA3OWE0ZmRmMTIxZTJjZjcxZDg1NzBmNTc1ZjZh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgU3RyaW5nIHRhZzsKICAgICB9OwogCi0gICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBOb3RpZmljYXRp
b25PcHRpb25zJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgc2hvd05v
dGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYgdGl0bGUsIE5vdGlm
aWNhdGlvbk9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQg
Z2V0Tm90aWZpY2F0aW9ucyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgR2V0Tm90aWZp
Y2F0aW9uT3B0aW9ucyYgZmlsdGVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2VxdWVuY2U8SURM
SW50ZXJmYWNlPE5vdGlmaWNhdGlvbj4+Pik7CiAKICAgICB2b2lkIGFkZE5vdGlmaWNhdGlvblRv
TGlzdChOb3RpZmljYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuY3Bw
CmluZGV4IGVmMDJhN2ZmYzBlODcxNzMxYjIyNmIzNjdjNDEwNWFlYTc4ZGFjYTQuLjAyNTU0YTBi
NTdiYTZjNWY3NTZkOTZjMDY0Y2NhNjkwYWY5NzRkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25PcHRpb25zLmNwcApAQCAtMzAsMTEgKzMwLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CitTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9ucyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9uczo6aXNvbGF0ZWRD
b3B5KCkgY29uc3QgJgogewogICAgIHJldHVybiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0
aW9ucyB7IHNjb3BlLmlzb2xhdGVkQ29weSgpLCB0eXBlLCB1cGRhdGVWaWFDYWNoZSB9OwogfQog
CitTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uT3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkgJiYKK3sKKyAgICByZXR1cm4gU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbk9wdGlvbnMgeyBXVEZNb3ZlKHNjb3BlKS5pc29sYXRlZENvcHkoKSwgdHlw
ZSwgdXBkYXRlVmlhQ2FjaGUgfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlv
bnMuaAppbmRleCA5ZTM2OTBlYTczZjMzNjg5NjRmZDQ2YzkxNTU2ZTU5MWZiZGM2YTNlLi4yZjVi
ZjlkM2JjMzljNGEzOWUwNmNkMjVjYzgxOGE3N2Q0MzhkNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnMuaApAQCAtMzksNyArMzksOCBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbk9wdGlvbnMgewogICAgIFdvcmtlclR5cGUgdHlwZTsKICAgICBTZXJ2aWNlV29y
a2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGU7CiAKLSAgICBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdDsKKyAgICBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdCAmOworICAgIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25PcHRpb25zIGlzb2xhdGVkQ29weSgpICYmOwogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25PcHRpb25zPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRl
YnVnZ2FibGUuY3BwCmluZGV4IDQxMmU1Njk1NzI1MzZmYmViZTA4YmEzMjk1Mjk2OGFkNzkzNmU4
MGMuLjRmYjQwNDBiY2RiZGNhZDhhZWRjZDZjZGQwZGRkMWNhYmI0YmViOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1
Z2dhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwpCiAg
ICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJveHkoKS5kaXNjb25uZWN0
RnJvbVdvcmtlcihjaGFubmVsKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyRGVidWdnYWJsZTo6
ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFNl
cnZpY2VXb3JrZXJEZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYm
IG1lc3NhZ2UpCiB7Ci0gICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJv
eHkoKS5zZW5kTWVzc2FnZVRvV29ya2VyKG1lc3NhZ2UpOworICAgIG1fc2VydmljZVdvcmtlclRo
cmVhZFByb3h5Lmluc3BlY3RvclByb3h5KCkuc2VuZE1lc3NhZ2VUb1dvcmtlcihXVEZNb3ZlKG1l
c3NhZ2UpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJE
ZWJ1Z2dhYmxlLmgKaW5kZXggNTliZmMzY2ZkN2Y3YWM0NmRlNmQyNTRkZWY1ZjExOGMwZGI5ZTg1
Yy4uZTFkMDBmNzI1ZGNlYmM0NmNiMmY3MmMzOWEzYmZjMzQ4NTQ3MjQyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVn
Z2FibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyRGVidWdnYWJsZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWND
b25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsK
ICAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsK
LSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVz
c2FnZSkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlclRocmVhZFByb3h5JiBt
X3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVj
dG9yUHJveHkuY3BwCmluZGV4IDczZjJjNWNlOTE2YWNiNjU1MjExM2JjODJjOTg4OWM5MTcyMzhm
ODUuLjI0ODUwYzRmZTc0NWYyZTc2NTgyZTY0YzUxNWE5NzFlNGQzMjljYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNw
ZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtODAsMTkgKzgwLDE5IEBAIHZv
aWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpkaXNjb25uZWN0RnJvbVdvcmtlcihGcm9u
dGVuZENoYW5uZWwmIGNoYW5uZWwpCiAgICAgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlcklu
c3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZVRvV29ya2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K3ZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZVRvV29ya2VyKFN0
cmluZyYmIG1lc3NhZ2UpCiB7Ci0gICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkudGhyZWFk
KCkucnVuTG9vcCgpLnBvc3REZWJ1Z2dlclRhc2soW21lc3NhZ2UgPSBtZXNzYWdlLmlzb2xhdGVk
Q29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgIG1fc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LnRocmVhZCgpLnJ1bkxvb3AoKS5wb3N0RGVidWdnZXJUYXNrKFtt
ZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKS5pc29sYXRlZENvcHkoKV0gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpIHsKICAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KGNvbnRleHQpLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRl
bmQobWVzc2FnZSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclBy
b3h5OjpzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKK3ZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZUZyb21Xb3Jr
ZXJUb0Zyb250ZW5kKFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKCFtX2NoYW5uZWwpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fY2hhbm5lbC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKG1l
c3NhZ2UpOworICAgIG1fY2hhbm5lbC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKFdURk1vdmUobWVz
c2FnZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDM2YTgwYzlkNDViZmM0M2ZhMjg0NTNiYzE0ZjU5NzE0
NTdhMzVlYTIuLjc0MWUwYWU3NzkwMDlmZmVlODAxZTRiMWI1ZDcyNDNkZDM3ZjI1MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oCkBAIC01Miw4ICs1Miw4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdFRvV29ya2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFu
bmVsJik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbVdvcmtlcihJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbCYpOwotICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlcihjb25zdCBTdHJpbmcmKTsK
LSAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2VyKFN0cmluZyYmKTsKKyAgICB2b2lkIHNlbmRN
ZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoU3RyaW5nJiYpOwogCiBwcml2YXRlOgogICAgIFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eSYgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBhOTRlNmQxZTc2NWQzNTkyMTA1
ODczNDAxMzFjMGEzOTE5ZTZlODdmLi44YTIxOTQxODMzYmJhOGEwZGE2MDQ4YzNiYjc2ZTg2MDA1
MWQ0ZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTEyNiw5
ICsxMjYsOSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6cG9zdFRhc2tUb0xvYWRl
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdAogCiB2b2lkIFNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6cG9zdE1lc3NhZ2VUb0RlYnVnZ2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
IHsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9LCBtZXNzYWdlID0gbWVzc2FnZS5pc29sYXRlZENvcHkoKV0geworICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH0sIG1lc3NhZ2UgPSBtZXNzYWdlLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIHRlcm1pbmF0ZWQgY2FzZS4KLSAgICAgICAgbV9pbnNwZWN0b3JQ
cm94eS5zZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKG1lc3NhZ2UpOworICAgICAgICBt
X2luc3BlY3RvclByb3h5LnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV1RGTW92ZSht
ZXNzYWdlKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eTo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IGNvbm5lY3RpbwogCiAgICAgQVNTRVJUKCFtX29uZ29pbmdGZXRjaFRhc2tzLmNvbnRhaW5zKGtl
eSkpOwogICAgIG1fb25nb2luZ0ZldGNoVGFza3MuYWRkKGtleSwgY2xpZW50LmNvcHlSZWYoKSk7
Ci0gICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwg
cmVxdWVzdCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZl
cnJlcikuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBm
ZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwg
Y2xpZW50SWRlbnRpZmllciA9IFdURk1vdmUoY2xpZW50SWRlbnRpZmllcikuaXNvbGF0ZWRDb3B5
KCksIHJlc3VsdGluZ0NsaWVudElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlc3VsdGluZ0NsaWVudElk
ZW50aWZpZXIpLmlzb2xhdGVkQ29weSgpXShhdXRvJikgbXV0YWJsZSB7CisgICAgcG9zdFRhc2tG
b3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwgcmVxdWVzdCA9IHJlcXVl
c3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlcikuaXNvbGF0ZWRD
b3B5KCksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLmlzb2xhdGVkQ29weSgpLCBmZXRjaElk
ZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwgY2xpZW50
SWRlbnRpZmllciA9IFdURk1vdmUoY2xpZW50SWRlbnRpZmllcikuaXNvbGF0ZWRDb3B5KCksIHJl
c3VsdGluZ0NsaWVudElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlc3VsdGluZ0NsaWVudElkZW50aWZp
ZXIpLmlzb2xhdGVkQ29weSgpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgIHRocmVhZCgpLnF1
ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyLCBp
c1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQsIFdURk1vdmUoY2xpZW50SWRl
bnRpZmllciksIFdURk1vdmUocmVzdWx0aW5nQ2xpZW50SWRlbnRpZmllcikpOwogICAgIH0sIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNw
cAppbmRleCBkNDdlN2I4MDVjNjJkMzRkMmQ4MmQ1ZmRmN2Q3N2Q0NWY4ZDc3YzFjLi4yYTYxNDZl
YTFhMzBjZGZhNmQ1NzJkNmE0NTQ0YzY4OGUzNzcyNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFi
YXNlLmNwcApAQCAtNjA1LDcgKzYwNSw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6
aW1wb3J0UmVjb3JkcygpCiAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEgeyBXVEZNb3ZlKCprZXkpLCByZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBXVEZNb3ZlKHNjb3BlVVJMKSwgKnVwZGF0ZVZpYUNhY2hlLCBsYXN0VXBkYXRlQ2hlY2tUaW1l
LCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShzZXJ2aWNlV29ya2VyRGF0YSkg
fTsKICAgICAgICAgYXV0byBjb250ZXh0RGF0YSA9IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7
IHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShyZWdpc3RyYXRpb24pLCB3b3JrZXJJZGVudGlmaWVyLCBX
VEZNb3ZlKHNjcmlwdCksIFdURk1vdmUoKmNlcnRpZmljYXRlSW5mbyksIFdURk1vdmUoKmNvbnRl
bnRTZWN1cml0eVBvbGljeSksIFdURk1vdmUoKmNvZXApLCBXVEZNb3ZlKHJlZmVycmVyUG9saWN5
KSwgV1RGTW92ZShzY3JpcHRVUkwpLCAqd29ya2VyVHlwZSwgdHJ1ZSwgTGFzdE5hdmlnYXRpb25X
YXNBcHBJbml0aWF0ZWQ6OlllcywgV1RGTW92ZShzY3JpcHRSZXNvdXJjZU1hcCksIHN0ZDo6bnVs
bG9wdCwgV1RGTW92ZSgqbmF2aWdhdGlvblByZWxvYWRTdGF0ZSkgfTsKIAotICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29udGV4dERhdGEg
PSBjb250ZXh0RGF0YS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHREYXRhID0g
V1RGTW92ZShjb250ZXh0RGF0YSkuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5hZGRSZWdpc3RyYXRpb25Ub1N0b3JlKFdURk1vdmUoY29udGV4
dERhdGEpKTsKICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAppbmRleCAxYjA5NjAxNDg2Y2Rh
ZjEwOWMzODY2Y2IyODI0NDZjZjM3MGE0NDUzLi4zMDAyNjgxZTAyOWYxZDlkMzM3YzUyODY1MmU4
NmIxMmE0ZTE5YjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcApAQCAtMTI0LDkgKzEyNCw5IEBAIHZvaWQgTmV0d29y
a1NvY2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogICAgIGZpbmlzaENsb3NpbmdJZlBvc3NpYmxlKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1NvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCit2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBtX2Vycm9yTWVzc2FnZSA9IGVy
cm9yTWVzc2FnZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsK
ICAgICBtX2Vycm9yVGltZXIuc3RhcnRPbmVTaG90KE5ldHdvcmtQcm9jZXNzOjpyYW5kb21DbG9z
ZWRQb3J0RGVsYXkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAppbmRleCA5MGY0NjVkY2JjNjA1NDNjYzU4Mjg1NDk3
M2FiMzE2OGI4NTcwZTVhLi5mOTczY2ZjZTQ5Mjg1ODU5N2ExYWIxNzdhMTRmZGRiODc4MTIxOWRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0
Q2hhbm5lbC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZl
VGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKGNvbnN0
IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWdu
ZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwotICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoU3RyaW5nJiYpOwogICAgIHZvaWQgZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QoV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3Bv
bnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCmluZGV4IGE2
ZTUwODNiZDkxYWY1MDFlNTBkNDA3ZGFlNTYzZmNmZDViMmM5MTIuLmNhZjgxNWU5YjVkMWQ2MTMx
MDQ5NTMxZWI5OTRiMWJjMmVkODkyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApAQCAtMTc3LDcgKzE3Nyw3
IEBAIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2soV2ViU29ja2V0
VGFzayogdGFzaywgR0Vycm9yKiBlcnJvcikKICAgICB0YXNrLT5kaWRGYWlsKFN0cmluZzo6ZnJv
bVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAotdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRGYWls
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQordm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRGYWls
KFN0cmluZyYmIGVycm9yTWVzc2FnZSkKIHsKICAgICBpZiAobV9yZWNlaXZlZERpZEZhaWwpCiAg
ICAgICAgIHJldHVybjsKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRp
ZEZhaWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiAgICAgICAgIGdfc2lnbmFsX2hhbmRs
ZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwog
ICAgICAgICBtX2hhbmRzaGFrZU1lc3NhZ2UgPSBudWxscHRyOwogICAgIH0KLSAgICBtX2NoYW5u
ZWwuZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihlcnJvck1lc3NhZ2UpOworICAgIG1fY2hhbm5lbC5k
aWRSZWNlaXZlTWVzc2FnZUVycm9yKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgaWYgKCFt
X2Nvbm5lY3Rpb24pIHsKICAgICAgICAgZGlkQ2xvc2UoU09VUF9XRUJTT0NLRVRfQ0xPU0VfQUJO
T1JNQUwsIHsgfSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKaW5kZXggN2E2ZjRkMTZiN2Rm
MzZjMGI5ZTc5NTA4ODU5NDNjY2QzN2QzYmZmNi4uN2M0MDdjMDFlZDNmNjVmNDc0YzI1YzJlZTI0
YWMyYmJkMGMwYzE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIHZvaWQgZGlkQ29ubmVjdChHUmVmUHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0
aW9uPiYmKTsKLSAgICB2b2lkIGRpZEZhaWwoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkaWRG
YWlsKFN0cmluZyYmKTsKICAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNv
bnN0IFN0cmluZyYgcmVhc29uKTsKICAgICB2b2lkIGRlbGF5RmFpbFRpbWVyRmlyZWQoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA3Y2JhZjFlZmY1NDQyODdkZDNhZTg4MTY3
MWFkZTU1NjY1OGY4ZmYzLi5lNDQwOTA4MTQ4NTg2Njc4ODBlNzE3ZjVkYmMyMzUzOTJjNzE0NmM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQg
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpkaWRJbmNyZWFzZVF1b3RhKFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYmIG9yaWdpbiwgUXVvCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
Y29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCA5OWE0NTMx
N2RiZTNiNGZjZjA0YTkyYWExYjVlYWUwNjdlN2Y1ZDcwLi4yYWJiMGZiMGUzOThlNzRmNjAxNTgy
YWU4NWM1ZTc5YzMyNTU5ZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC0xMTUsNyAr
MTE1LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzIGZvciBGaWxlU3lzdGVt
LgogICAgIHZvaWQgcGVyc2lzdGVkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcGVyc2lzdChjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAg
ICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4p
PiYmKTsKKyAgICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uJiwg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+KT4mJik7CiAgICAgdm9pZCBjbG9zZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllcik7CiAgICAgdm9pZCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgbW92ZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9w
dGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3Bw
CmluZGV4IDdjNjNmZjM1MmVlMjc4OTAyOTExZmU4ZWE3NjlmMDFiYzNhMTZjOWUuLjU2ZTg4NGM5
MDJmNWNjOGM3ODhjZTQwMzYwYTYxNjRiYWU4MjE3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3Bw
CkBAIC0xMTYsOSArMTE2LDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0UHJvY2Vz
c1Bvb2woV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAKIC8vIEluc3BlY3Rv
cjo6UmVtb3RlQXV0b21hdGlvblRhcmdldCBBUEkKIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYm
IG1lc3NhZ2UpCiB7Ci0gICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2gobWVzc2FnZSk7
CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2goV1RGTW92ZShtZXNzYWdlKSk7CiB9
CiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVu
ZENoYW5uZWwmIGNoYW5uZWwsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uLCBib29sIGltbWVk
aWF0ZWx5UGF1c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggMTJiN2YxOTMyMmVhNzdmMGI2MWFh
NGYwMDMxNjJjMzJlYjk3MTkyNy4uOWY2NWNjODA1NjY0NGNjMDU0MzJhMmU4OTE1OWU0YTM4OTBk
MjczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtMTM3LDcgKzEzNyw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICAgICAvLyBJbnNwZWN0b3I6OlJlbW90ZUF1dG9t
YXRpb25UYXJnZXQgQVBJCiAgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Np
b25JZGVudGlmaWVyOyB9Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0
cmluZyYmIG1lc3NhZ2UpOwogICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRl
bHlQYXVzZSA9IGZhbHNlKTsKICAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVu
ZENoYW5uZWwmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJQYWdlRGVidWdnYWJsZS5jcHAKaW5kZXggNjllNDU3NjYwMDRkYTYzZWRh
M2ZlZTA0ZTQ1Y2FlNmZlNzRkMjNlNi4uNDYzZmZkMmNjZGU4ZmZhNjExN2E3NTQxZGJkZWJiMGVh
ZTU4ZjJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dl
YlBhZ2VEZWJ1Z2dhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViUGFnZURlYnVnZ2FibGUuY3BwCkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgV2ViUGFnZURl
YnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBjaGFubmVsKQogICAgIG1fcGFn
ZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOwogfQog
Ci12b2lkIFdlYlBhZ2VEZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV2ViUGFnZURlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2Fn
ZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2FnZSkKIHsKLSAgICBtX3BhZ2UuaW5zcGVjdG9yQ29u
dHJvbGxlcigpLmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKKyAgICBtX3Bh
Z2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChXVEZN
b3ZlKG1lc3NhZ2UpKTsKIH0KIAogdm9pZCBXZWJQYWdlRGVidWdnYWJsZTo6c2V0SW5kaWNhdGlu
Zyhib29sIGluZGljYXRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViUGFnZURlYnVnZ2FibGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJQYWdlRGVidWdnYWJsZS5oCmluZGV4IDhmODQ4ZGUxMTZhNjE0NThkMTgzM2Vh
ODA5ZmMwNmVmZDVlZTdhM2QuLjJmMTk5Y2E1NGEwNGI1YzBkOGM5NzJiNTc0ODgxODgxN2U2MTE4
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdl
RGVidWdnYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQ
YWdlRGVidWdnYWJsZS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29u
bmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0
aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKICAgICB2
b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKLSAgICB2
b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5h
bDsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2FnZSkg
ZmluYWw7CiAgICAgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIGZpbmFsOwogCiAgICAgY29uc3Qg
U3RyaW5nJiBuYW1lT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX25hbWVPdmVycmlkZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDcwYzRmODIzZjNiZjY2MjVkNTUzYzg3OTMyM2Fm
OWUzMWYyZDAwZDUuLmM3Njg4ZmVlM2M1NzdmNzZiOTFlZjBiMzdjYjVkZGE0ZWIwYTQ0Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBXZWJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZUNhY2hlcyhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIG9yaWcKICAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpD
YWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpDYWNoZXMob3JpZ2luLCB1cGRhdGVDb3VudGVy
KSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCi12b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rp
b246OnJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJldHJpZXZlUmVjb3Jkc09wdGlvbnMmIG9wdGlvbnMsIFdlYkNvcmU6OkRPTUNhY2hlRW5n
aW5lOjpSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmIG9wdGlvbnMsIFdlYkNvcmU6OkRPTUNhY2hlRW5n
aW5lOjpSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBjb25uZWN0aW9uKCkuc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpS
ZXRyaWV2ZVJlY29yZHMoY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zKSwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9X
ZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggMTdhYzQwYTIxYmZlZmZlZjY5ZWQ3YjA3
OTI0ZDM1M2JhZDNmZjExOS4uZThjMWVkYjkwNDIwY2I4YmZjMjg5Y2IwNDJkZGFjNzJjODA2ZmRi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2Vi
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCByZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpET01DYWNoZUVu
Z2luZTo6Q2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZXRyaWV2
ZUNhY2hlcyhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCB1aW50NjRfdCB1cGRhdGVDb3Vu
dGVyLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZvc0NhbGxiYWNrJiYpIGZpbmFs
OwogCi0gICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiwgV2ViQ29yZTo6RE9NQ2FjaGVF
bmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJldHJpZXZlUmVjb3Jk
cyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJldHJpZXZlUmVjb3Jkc09wdGlv
bnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbDsK
ICAgICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlv
bnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2sm
JikgZmluYWw7CiAgICAgdm9pZCBiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50
aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBXZWJDb3Jl
OjpET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hh
bm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsLmNwcAppbmRleCBjYTA2MDhhYjc5ODM3OGEzMzVjYjlkYmVlNTBlMTNjMDIwNDg1ZTNjLi5l
YmM1M2ViZmE5MTA5YzQ5MTRiODlkNzQ5YTA0YzBmNWRjZDE2N2YzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAt
MjEyLDE0ICsyMTIsMTQgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjbG9zZShpbnQgY29kZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgTWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6
TmV0d29ya1NvY2tldENoYW5uZWw6OkNsb3NlIHsgY29kZSwgcmVhc29uIH0pOwogfQogCi12b2lk
IFdlYlNvY2tldENoYW5uZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCit2b2lkIFdlYlNv
Y2tldENoYW5uZWw6OmZhaWwoU3RyaW5nJiYgcmVhc29uKQogewogICAgIC8vIFRoZSBjbGllbnQg
Y2FuIGNsb3NlIHRoZSBjaGFubmVsLCBwb3RlbnRpYWxseSByZW1vdmluZyB0aGUgbGFzdCByZWZl
cmVuY2UuCiAgICAgUmVmIHByb3RlY3RlZFRoaXMgeyAqdGhpcyB9OwogCiAgICAgbG9nRXJyb3JN
ZXNzYWdlKHJlYXNvbik7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlk
UmVjZWl2ZU1lc3NhZ2VFcnJvcihyZWFzb24pOworICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZU1lc3NhZ2VFcnJvcihTdHJpbmcgeyByZWFzb24gfSk7CiAKICAgICBpZiAobV9pc0Nsb3Npbmcp
CiAgICAgICAgIHJldHVybjsKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmRpZFJlY2VpdmVUZXh0KFN0cmluZyYmIG1lc3NhZ2UpCiAgICAgaWYgKCFtX2NsaWVudCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3Nh
Z2UpOworICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsK
IH0KIAogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlQmluYXJ5RGF0YShJUEM6OkRh
dGFSZWZlcmVuY2UmJiBkYXRhKQpAQCAtMzA4LDcgKzMwOCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGxvZ0Vycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOwotICAgIG1f
Y2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKGVycm9yTWVzc2FnZSk7CisgICAgbV9jbGll
bnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKIH0KIAog
dm9pZCBXZWJTb2NrZXRDaGFubmVsOjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4
IDg5OGI2YTQxODg1NjkxMzg2NGZjZWY3MmI0MGZlZjgwZWUxMDcyNzMuLjhmMTI1NzJiNTk2MGU5
NjBlMzE4MTY3OTI3NTdmZjFmODdiYzNkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJp
dmF0ZToKICAgICBTZW5kUmVzdWx0IHNlbmQoV2ViQ29yZTo6QmxvYiYpIGZpbmFsOwogICAgIHVu
c2lnbmVkIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjbG9zZShpbnQg
Y29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOwotICAgIHZvaWQgZmFpbChjb25zdCBT
dHJpbmcmIHJlYXNvbikgZmluYWw7CisgICAgdm9pZCBmYWlsKFN0cmluZyYmIHJlYXNvbikgZmlu
YWw7CiAgICAgdm9pZCBkaXNjb25uZWN0KCkgZmluYWw7CiAgICAgdm9pZCBzdXNwZW5kKCkgZmlu
YWw7CiAgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCmluZGV4IGU3MDkwNTA3Mzk5MmFkZTRmNDk3MWE0NzYwYzAyNzM3ODM3ZmE4MTIuLjY1NTQ0
YWM0MmVjNzI0YWFmYmNlY2VhZTM4NWI2Mjg5ODU0ZjgyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VD
b25uZWN0aW9uLmNwcApAQCAtNDEsNyArNDEsNyBAQCBSZWY8V2ViU3RvcmFnZUNvbm5lY3Rpb24+
IFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGUoKQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFdlYlN0b3JhZ2VDb25uZWN0aW9uKTsKIH0KIAotdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6
Z2V0UGVyc2lzdGVkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBTdG9yYWdl
Q29ubmVjdGlvbjo6UGVyc2lzdENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YlN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYg
b3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVyc2lzdENhbGxiYWNrJiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpQZXJzaXN0ZWQob3JpZ2luKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQpAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFdlYlN0b3JhZ2VDb25uZWN0
aW9uOjpwZXJzaXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBTdG9yYWdl
QwogICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtT
dG9yYWdlTWFuYWdlcjo6UGVyc2lzdChvcmlnaW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKLXZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXREaXJlY3Rv
cnkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9u
OjpHZXREaXJlY3RvcnlDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTdG9y
YWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeShXZWJDb3JlOjpDbGllbnRPcmln
aW4mJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7
CiAgICAgY29ubmVjdGlvbi5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6RmlsZVN5c3RlbUdldERpcmVjdG9yeShvcmlnaW4pLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA4MjI2NWRmNGExZTQ4OGQ0ZmVmYmEw
ZDQ2NDZiNmJkYjE2NGU5YTIzLi5lYTJkNDgyNjQ1Y2M5MGM4MDQ4MmI4MzU2YzU1MmNmMGEwZGFm
YjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNDMsOSArNDMsOSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxXZWJTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlKCk7CiAKIHBy
aXZhdGU6Ci0gICAgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
JiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lk
IGdldFBlcnNpc3RlZChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246
OlBlcnNpc3RDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxsYmFjayYmKSBm
aW5hbDsKLSAgICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgV2ViQ29yZTo6Q2xp
ZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZp
bmFsOworICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShXZWJDb3JlOjpDbGllbnRPcmln
aW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOwog
CiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCk7CiB9Owo=
</data>
<flag name="commit-queue"
          id="481922"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454308</attachid>
            <date>2022-03-09 19:19:33 -0800</date>
            <delta_ts>2022-03-10 07:29:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237695-20220309191932.patch</filename>
            <type>text/plain</type>
            <size>111794</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MjFhMDJjZjI3NTE2MmJjMTVkM2YwMzc5MjdkMGRmZTExODNiM2RjLi44ZjMyYTI1NjA2NWJmZGEy
ZTg0MzBlODczZmU2NDIwMGU4M2I0ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wMy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3MgdGhy
ZWFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
Njk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0
aW1pemUgZnVydGhlciB0aGUgcGFzc2luZyBvZiBkYXRhIGFjcm9zcyB0aHJlYWRzIGJ5IGxldmVy
YWdpbmcgdGhlIG9wdGltaXplZAorICAgICAgICB2ZXJzaW9uIG9mIGlzb2xhdGVkQ29weSgpIG9u
IHItdmFsdWUgcmVmZXJlbmNlcyB3aGVuZXZlciBwb3NzaWJsZS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0OjpzZW5kTWVzc2FnZVRvVGFyZ2V0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Lmg6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICog
dG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbk92ZXJy
aWRlczo6aW5pdGlhbGl6ZU92ZXJyaWRlRm9yKToKKwogMjAyMi0wMy0wOSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBTdG9w
IHVzaW5nIHRoZSBlbnYgdmFyIFdFQktJVF9JTlNQRUNUT1JfU0VSVkVSIHRvIGNvbm5lY3QgdG8g
dGhlIGluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVlM2RmOTZkOGRlOTQ5OGFhNDhlMjEyODc4M2Jh
OTVmY2U0MDk5NjYuLmU5Mjk5Mzc2ODQ0MmFjOTVjMjdkYzUyMTE1ZWU3ZmE3ZGE1YWU5NGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMzEgQEAKKzIwMjItMDMtMDkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBmdXJ0aGVyIHRoZSBwYXNzaW5nIG9m
IGRhdGEgYWNyb3NzIHRocmVhZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3Mg
dGhyZWFkcyBieSBsZXZlcmFnaW5nIHRoZSBvcHRpbWl6ZWQKKyAgICAgICAgdmVyc2lvbiBvZiBp
c29sYXRlZENvcHkoKSBvbiByLXZhbHVlIHJlZmVyZW5jZXMgd2hlbmV2ZXIgcG9zc2libGUuCisK
KyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNh
Y2hlOjpxdWVyeUNhY2hlKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9Dcm9zc1RocmVhZFJlY29y
ZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6cmVjb3Jkc0RhdGFGcm9tUmVjb3Jkcyk6CisgICAg
ICAgIChXZWJDb3JlOjpyZWNvcmRzRGF0YU9yRXJyb3JGcm9tUmVjb3Jkcyk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6YmF0Y2hQdXRP
cGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNoZWRSVENEYXRhQ2hhbm5lbC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGV0YWNoZWRSVENEYXRhQ2hhbm5lbDo6RGV0YWNoZWRSVENEYXRhQ2hh
bm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjpkZWNvZGUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmRldGFjaCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24p
OgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE6Omlzb2xhdGVkQ29weSk6CisgICAg
ICAgICogTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oOgorICAgICAgICAq
IE1vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92aWRlci5oOgorICAgICAgICAqIE1vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFuYWdlcjo6
cGVyc2lzdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVt
QWNjZXNzR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvV29ya2VyU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU3RvcmFnZUNvbm5l
Y3Rpb246OmdldFBlcnNpc3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTdG9yYWdlQ29u
bmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy9zdG9y
YWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VW
ZXJzaW9uV3JhcHBlcjo6Q2hhbmdlVmVyc2lvbldyYXBwZXIpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
YW5nZVZlcnNpb25XcmFwcGVyOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmNoYW5nZVZlcnNp
b24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVRyYWNrZXI6OmFkZE9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxFcnJvcjo6U1FMRXJyb3IpOgorICAgICAgICAq
IE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWw6OnByb2Nlc3NGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbENsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5k
c2hha2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpzZXRVUkwp
OiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y29ubmVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpmYWlsKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aDoKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6RXhj
ZXB0aW9uRGF0YTo6dG9FeGNlcHRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YTo6dG9FeGNlcHRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yV29ya2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yV29ya2VyQWdl
bnQ6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaDoKKyAgICAgICAgKiBwYWdlL0NhY2hlU3Rv
cmFnZVByb3ZpZGVyLmg6CisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlRGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZSk6
CisgICAgICAgICogcGFnZS9QYWdlRGVidWdnYWJsZS5oOgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VySW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9y
UHJveHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VySW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpw
b3N0TWVzc2FnZVRvRGVidWdnZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVu
dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpq
b2JSZWplY3RlZEluU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ6Omlzb2xhdGVkQ29weSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2Ny
aXB0Ojppc29sYXRlZENvcHkpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb246OnNob3dOb3RpZmljYXRpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zOjppc29sYXRlZENvcHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnM6Omlzb2xhdGVk
Q29weSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25PcHRpb25zLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckRlYnVnZ2FibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckRlYnVn
Z2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VUb1dv
cmtlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OnNl
bmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnBvc3RNZXNzYWdlVG9EZWJ1Z2dl
cik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0
Y2gpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OmltcG9ydFJl
Y29yZHMpOgorCiAyMDIyLTAzLTA5ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFtjc3MtbGlzdHNdIGNzcy9jc3MtbGlzdHMvaW5oZXJpdC1vdmVyd3JpdGVz
Lmh0bWwgYW5kIGNzcy9jc3MtbGlzdHMvbGktY291bnRlci1pbmNyZW1lbnQtY29tcHV0ZWQtc3R5
bGUuaHRtbCBhcmUgdW5pcXVlIGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYzNDczZDE0MzE4M2IyOGE5
Y2NiZDJhZjdiYTE0MTEyM2MxNWNkNDcuLjJkNzc1NWNlOTc5MTc0OTdlY2Q4OGEwNTg5YTM2MTZk
ZTYxODMwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjItMDMtMDkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBPcHRpbWl6ZSBmdXJ0aGVyIHRoZSBw
YXNzaW5nIG9mIGRhdGEgYWNyb3NzIHRocmVhZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0
YSBhY3Jvc3MgdGhyZWFkcyBieSBsZXZlcmFnaW5nIHRoZSBvcHRpbWl6ZWQKKyAgICAgICAgdmVy
c2lvbiBvZiBpc29sYXRlZENvcHkoKSBvbiByLXZhbHVlIHJlZmVyZW5jZXMgd2hlbmV2ZXIgcG9z
c2libGUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVz
c2FnZUVycm9yKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5l
bC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lz
dGVtR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b246OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJQYWdlRGVidWdnYWJsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VEZWJ1
Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNo
ZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNv
Y2tldENoYW5uZWw6OmZhaWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpk
aWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9y
YWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9u
OjpnZXRQZXJzaXN0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6
ZmlsZVN5c3RlbUdldERpcmVjdG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIyLTAzLTA5ICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgYWNjZXNzaWJpbGl0eSBsaWJy
YXJ5IHNob3VsZCBiZSBzb2Z0IGxpbmtlZCBvcHRpb25hbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVj
dGlvblRvVGFyZ2V0LmNwcAppbmRleCA3ZDA2ZmFkZWRhYTE0NWZjYWZlODYzYjIwOTE1OWFkN2Jm
Zjc3YWI1Li5mMTZmMWNlZTZiYmM0MzhjYWY2OGVlMzdkOGYxYjZkMDE1YmFmZTVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVt
b3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgYm9vbCBS
ZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNldHVwKGJvb2wgaXNBdXRvbWF0aWNJbnNwZWN0aW9u
LCBib29sIGF1dG9tYXRpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW1vdGVDb25u
ZWN0aW9uVG9UYXJnZXQ6OnNlbmRNZXNzYWdlVG9UYXJnZXQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQordm9pZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQ6OnNlbmRNZXNzYWdlVG9UYXJnZXQoU3Ry
aW5nJiYgbWVzc2FnZSkKIHsKICAgICBSZW1vdGVDb250cm9sbGFibGVUYXJnZXQqIHRhcmdldCA9
IG51bGxwdHI7CiAgICAgewpAQCAtODIsNyArODIsNyBAQCB2b2lkIFJlbW90ZUNvbm5lY3Rpb25U
b1RhcmdldDo6c2VuZE1lc3NhZ2VUb1RhcmdldChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAg
ICAgIHRhcmdldCA9IG1fdGFyZ2V0OwogICAgIH0KIAotICAgIHRhcmdldC0+ZGlzcGF0Y2hNZXNz
YWdlRnJvbVJlbW90ZShtZXNzYWdlKTsKKyAgICB0YXJnZXQtPmRpc3BhdGNoTWVzc2FnZUZyb21S
ZW1vdGUoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIHZvaWQgUmVtb3RlQ29ubmVjdGlvblRvVGFy
Z2V0OjpjbG9zZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9SZW1vdGVDb25uZWN0aW9uVG9UYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCmluZGV4IGRmYjc5
NjI4OTA5YzEwYzQ3YWM2YTU1N2ZhZDc1M2NiMDI0ZWIwYjIuLjg0MzkxNzc1ZDY0ZGIxYTI0NWI5
Yzk5NWU2ZjEzODk2MzIwNWRjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5o
CkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lk
IHNlbmRNZXNzYWdlVG9UYXJnZXQoTlNTdHJpbmcgKik7CiAjZWxzZQotICAgIHZvaWQgc2VuZE1l
c3NhZ2VUb1RhcmdldChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlVG9UYXJn
ZXQoU3RyaW5nJiYpOwogI2VuZGlmCiAgICAgdm9pZCBjbG9zZSgpOwogICAgIHZvaWQgdGFyZ2V0
Q2xvc2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Jl
bW90ZS9SZW1vdGVDb250cm9sbGFibGVUYXJnZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCmluZGV4IDBlN2I1YjI5
NDdiMGUwOGVkNjkzNzYyOTZjMWRiZGU4MGZlNzIwMmUuLmM5ZWY4ODU1Y2FhY2IxMjI3ODk0YWUx
YWY3ZjZkYzIxOGY4NmE5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oCkBA
IC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZW1vdGVDb250cm9sQWxsb3dlZCgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJv
bVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKSA9IDA7CiAKICNpZiBVU0UoQ0YpCiAgICAgLy8gVGhl
IGRpc3BhdGNoIGJsb2NrIHdpbGwgYmUgc2NoZWR1bGVkIG9uIGEgZ2xvYmFsIHJ1biBsb29wIGlm
IG51bGwgaXMgcmV0dXJuZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3JlbW90ZS9zb2NrZXQvUmVtb3RlSW5zcGVjdG9yU29ja2V0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2Nr
ZXQuY3BwCmluZGV4IDBhYzJhMjJlNzhkYmRjMWU3MmY3MzEzZGM2NmZlNDliMTg1Y2RlODAuLjVl
MjM2YTJjNGUwMjY3OGExNWI4M2U4N2ZmNzdmZmQwZTFhM2RhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JT
b2NrZXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL3Nv
Y2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwCkBAIC0zNDUsNyArMzQ1LDcgQEAgdm9pZCBS
ZW1vdGVJbnNwZWN0b3I6OnNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IEV2ZW50JiBldmVudCkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjb25uZWN0aW9uVG9UYXJnZXQtPnNl
bmRNZXNzYWdlVG9UYXJnZXQoZXZlbnQubWVzc2FnZS52YWx1ZSgpKTsKKyAgICBjb25uZWN0aW9u
VG9UYXJnZXQtPnNlbmRNZXNzYWdlVG9UYXJnZXQoU3RyaW5nIHsgZXZlbnQubWVzc2FnZS52YWx1
ZSgpIH0pOwogfQogCiB2b2lkIFJlbW90ZUluc3BlY3Rvcjo6c3RhcnRBdXRvbWF0aW9uU2Vzc2lv
bihjb25zdCBFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDQ1YmQyZjliMGQx
MjlkZjhiN2E2NTEwYjkwODYxM2Y1ZDY3ZjA1NmQuLmU3ZDNjZTk0MjFlNWRjMTJlMDliYWYwMmJl
NTUwNDJhZmFkNjA3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0yMTMwLDcgKzIxMzAsNyBA
QCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIAogICAgIFRocmVhZDo6Y3JlYXRlKAogICAg
ICAgICAiSlNDIEFnZW50IiwKLSAgICAgICAgW3NvdXJjZUNvZGUgPSBzb3VyY2VDb2RlLmlzb2xh
dGVkQ29weSgpLCB3b3JrZXJQYXRoID0gd29ya2VyUGF0aC5pc29sYXRlZENvcHkoKSwgJmRpZFN0
YXJ0TG9jaywgJmRpZFN0YXJ0Q29uZGl0aW9uLCAmZGlkU3RhcnRdICgpIHsKKyAgICAgICAgW3Nv
dXJjZUNvZGUgPSBXVEZNb3ZlKHNvdXJjZUNvZGUpLmlzb2xhdGVkQ29weSgpLCB3b3JrZXJQYXRo
ID0gV1RGTW92ZSh3b3JrZXJQYXRoKS5pc29sYXRlZENvcHkoKSwgJmRpZFN0YXJ0TG9jaywgJmRp
ZFN0YXJ0Q29uZGl0aW9uLCAmZGlkU3RhcnRdICgpIHsKICAgICAgICAgICAgIENvbW1hbmRMaW5l
IGNvbW1hbmRMaW5lKENvbW1hbmRMaW5lOjpDb21tYW5kTGluZUZvcldvcmtlcnMpOwogICAgICAg
ICAgICAgY29tbWFuZExpbmUubV9pbnRlcmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgICAgcnVu
SlNDKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3REZWJ1Z2dhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZS5jcHAKaW5kZXggMzdkM2MyODk2MTEyMjlkYWFjOWU5ZjJhODdl
NmM5YTg5MzEwMjIyMy4uZGU1ZTM3ZDBmYTM0MDJlNzc2ZjFmZmY4MmNkMWU1NDY4ZTY2ZmYxYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdERlYnVnZ2FibGUuY3BwCkBAIC02NCwxMSArNjQsMTEgQEAgdm9pZCBKU0dsb2JhbE9i
amVjdERlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJvbnRlbmRDaGFubmVsJiBmcm9udGVuZENoYW5u
ZWwpCiAgICAgbV9nbG9iYWxPYmplY3QuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RG
cm9udGVuZChmcm9udGVuZENoYW5uZWwpOwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdn
YWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2
b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShT
dHJpbmcmJiBtZXNzYWdlKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrZXIoJm1fZ2xvYmFsT2Jq
ZWN0LnZtKCkpOwogCi0gICAgbV9nbG9iYWxPYmplY3QuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRp
c3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKKyAgICBtX2dsb2JhbE9iamVjdC5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKFdURk1vdmUo
bWVzc2FnZSkpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZTo6cGF1c2VXYWl0
aW5nRm9yQXV0b21hdGljSW5zcGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCmluZGV4IDk1NTA4ZDRm
ZjFjMzA1MDI4NGY5YWIyMjU1YjhjNjI2ZWQ4ZGIwMGQuLjc4YzQ1MGM1YjVmZDM2ZWFjNTQ3MDcy
NGRkNWNjNjY0ZmY1NjQzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oCkBAIC01NCw3ICs1NCw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJv
b2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9
IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENo
YW5uZWwmKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1v
dGUoU3RyaW5nJiYgbWVzc2FnZSkgZmluYWw7CiAKICAgICBib29sIGF1dG9tYXRpY0luc3BlY3Rp
b25BbGxvd2VkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgcGF1c2VX
YWl0aW5nRm9yQXV0b21hdGljSW5zcGVjdGlvbigpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90b29scy9GdW5jdGlvbk92ZXJyaWRlcy5jcHAKaW5kZXggMzBmNWU3NmM5MTRl
NjQ4ODFlNDE4ZTZlMzkzYjJiOTI1NDc3MWMzZi4uN2EzYjM3OTI0YmU1NjA1NDdmYzJkZmZlMzMy
ZDNlNjZiZjhhOTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0Z1
bmN0aW9uT3ZlcnJpZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVu
Y3Rpb25PdmVycmlkZXMuY3BwCkBAIC0xNzAsNyArMTcwLDcgQEAgYm9vbCBGdW5jdGlvbk92ZXJy
aWRlczo6aW5pdGlhbGl6ZU92ZXJyaWRlRm9yKGNvbnN0IFNvdXJjZUNvZGUmIG9yaWdDb2RlLCBG
dW5jdGkKICAgICBTdHJpbmcgbmV3Qm9keTsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIg
eyBvdmVycmlkZXMubV9sb2NrIH07Ci0gICAgICAgIGF1dG8gaXQgPSBvdmVycmlkZXMubV9lbnRy
aWVzLmZpbmQoc291cmNlQm9keVN0cmluZy5pc29sYXRlZENvcHkoKSk7CisgICAgICAgIGF1dG8g
aXQgPSBvdmVycmlkZXMubV9lbnRyaWVzLmZpbmQoV1RGTW92ZShzb3VyY2VCb2R5U3RyaW5nKS5p
c29sYXRlZENvcHkoKSk7CiAgICAgICAgIGlmIChpdCA9PSBvdmVycmlkZXMubV9lbnRyaWVzLmVu
ZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBuZXdCb2R5ID0gaXQtPnZh
bHVlLmlzb2xhdGVkQ29weSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA3N2RhZDQ4NWNjMGM1Y2Y3NDVmYzJi
YjFjMDAxYWUxYjU5YzE5MWM2Li4zNGU3MDgyMDE4OTc3YWU3OTcyMDM1ZTAwYjNkNzA0ODBiMWUy
M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIERPTUNhY2hlRW5naW5lOjpDYWNo
ZUlkZW50aWZpZXJDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJldHJpZXZlQ2Fj
aGVzKGNvbnN0IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIERPTUNhY2hl
RW5naW5lOjpDYWNoZUluZm9zQ2FsbGJhY2smJikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJl
dHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJldHJpZXZlUmVj
b3Jkc09wdGlvbnMmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwg
UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNr
JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3Qg
Y2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZVF1ZXJ5T3B0aW9u
cyYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
ciwgVmVjdG9yPERPTUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIERPTUNhY2hlRW5naW5lOjpSZWNv
cmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0RPTUNhY2hlLmNwcAppbmRleCAyZDQ2ZDFjZGJjNzE3ZjNjOTI5OWVmYTg2M2E1NDkyNjM4
M2FmNWRmLi4wNjIyZDQ1ZjU1ZWU4NDgzNTE4NzdhNTM4Y2NmYTk4NTBjYzk1NjI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcApAQCAtNDYwLDcgKzQ2MCw3IEBA
IHZvaWQgRE9NQ2FjaGU6OmtleXMoc3RkOjpvcHRpb25hbDxSZXF1ZXN0SW5mbz4mJiBpbmZvLCBD
YWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvCiB2b2lkIERPTUNhY2hlOjpxdWVyeUNhY2hlKFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IENhY2hlUXVlcnlPcHRpb25zJiBvcHRpb25zLCBT
aG91bGRSZXRyaWV2ZVJlc3BvbnNlcyBzaG91bGRSZXRyaWV2ZVJlc3BvbnNlcywgUmVjb3Jkc0Nh
bGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyByZXRyaWV2
ZU9wdGlvbnMgeyBXVEZNb3ZlKHJlcXVlc3QpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmNy
b3NzT3JpZ2luRW1iZWRkZXJQb2xpY3koKSwgKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgb3B0aW9ucy5pZ25vcmVTZWFyY2gsIG9wdGlvbnMuaWdub3JlTWV0aG9k
LCBvcHRpb25zLmlnbm9yZVZhcnksIHNob3VsZFJldHJpZXZlUmVzcG9uc2VzID09IFNob3VsZFJl
dHJpZXZlUmVzcG9uc2VzOjpZZXMgfTsKLSAgICBtX2Nvbm5lY3Rpb24tPnJldHJpZXZlUmVjb3Jk
cyhtX2lkZW50aWZpZXIsIHJldHJpZXZlT3B0aW9ucywgW3RoaXMsIHBlbmRpbmdBY3Rpdml0eSA9
IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX2Nvbm5lY3Rpb24tPnJldHJpZXZlUmVj
b3JkcyhtX2lkZW50aWZpZXIsIFdURk1vdmUocmV0cmlldmVPcHRpb25zKSwgW3RoaXMsIHBlbmRp
bmdBY3Rpdml0eSA9IG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1faXNT
dG9wcGVkKSB7CiAgICAgICAgICAgICBjYWxsYmFjayhET01DYWNoZUVuZ2luZTo6Y29udmVydFRv
RXhjZXB0aW9uQW5kTG9nKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgRE9NQ2FjaGVFbmdpbmU6
OkVycm9yOjpTdG9wcGVkKSk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAppbmRleCBiZDIwNGE5Yzc5ZjQ1MTRjZjkwMDNlY2UzNjZkYTM0Y2YxY2VjNWM1Li40
NmZkZWZmNGJjZTQ3NWFiZjIxNzMyMTViYzIwYmVlYTI3ODc3NDU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbi5jcHAKQEAgLTU2LDE1ICs1NiwxNSBAQCBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZWNvcmRE
YXRhIHsKICAgICB1aW50NjRfdCByZXNwb25zZUJvZHlTaXplOwogfTsKIAotc3RhdGljIENyb3Nz
VGhyZWFkUmVjb3JkRGF0YSB0b0Nyb3NzVGhyZWFkUmVjb3JkRGF0YShjb25zdCBSZWNvcmQmIHJl
Y29yZCkKK3N0YXRpYyBDcm9zc1RocmVhZFJlY29yZERhdGEgdG9Dcm9zc1RocmVhZFJlY29yZERh
dGEoUmVjb3JkJiYgcmVjb3JkKQogewogICAgIHJldHVybiBDcm9zc1RocmVhZFJlY29yZERhdGEg
ewogICAgICAgICByZWNvcmQuaWRlbnRpZmllciwKICAgICAgICAgcmVjb3JkLnVwZGF0ZVJlc3Bv
bnNlQ291bnRlciwKICAgICAgICAgcmVjb3JkLnJlcXVlc3RIZWFkZXJzR3VhcmQsCi0gICAgICAg
IHJlY29yZC5yZXF1ZXN0Lmlzb2xhdGVkQ29weSgpLAotICAgICAgICByZWNvcmQub3B0aW9ucy5p
c29sYXRlZENvcHkoKSwKLSAgICAgICAgcmVjb3JkLnJlZmVycmVyLmlzb2xhdGVkQ29weSgpLAor
ICAgICAgICBXVEZNb3ZlKHJlY29yZC5yZXF1ZXN0KS5pc29sYXRlZENvcHkoKSwKKyAgICAgICAg
V1RGTW92ZShyZWNvcmQub3B0aW9ucykuaXNvbGF0ZWRDb3B5KCksCisgICAgICAgIFdURk1vdmUo
cmVjb3JkLnJlZmVycmVyKS5pc29sYXRlZENvcHkoKSwKICAgICAgICAgcmVjb3JkLnJlc3BvbnNl
SGVhZGVyc0d1YXJkLAogICAgICAgICByZWNvcmQucmVzcG9uc2UuY3Jvc3NUaHJlYWREYXRhKCks
CiAgICAgICAgIGlzb2xhdGVkUmVzcG9uc2VCb2R5KHJlY29yZC5yZXNwb25zZUJvZHkpLApAQCAt
ODgsMTcgKzg4LDE3IEBAIHN0YXRpYyBSZWNvcmQgZnJvbUNyb3NzVGhyZWFkUmVjb3JkRGF0YShD
cm9zc1RocmVhZFJlY29yZERhdGEmJiBkYXRhKQogICAgIH07CiB9CiAKLXN0YXRpYyBpbmxpbmUg
VmVjdG9yPENyb3NzVGhyZWFkUmVjb3JkRGF0YT4gcmVjb3Jkc0RhdGFGcm9tUmVjb3Jkcyhjb25z
dCBWZWN0b3I8UmVjb3JkPiYgcmVjb3JkcykKK3N0YXRpYyBpbmxpbmUgVmVjdG9yPENyb3NzVGhy
ZWFkUmVjb3JkRGF0YT4gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhWZWN0b3I8UmVjb3JkPiYmIHJl
Y29yZHMpCiB7Ci0gICAgcmV0dXJuIFdURjo6bWFwKHJlY29yZHMsIHRvQ3Jvc3NUaHJlYWRSZWNv
cmREYXRhKTsKKyAgICByZXR1cm4gV1RGOjptYXAoV1RGTW92ZShyZWNvcmRzKSwgdG9Dcm9zc1Ro
cmVhZFJlY29yZERhdGEpOwogfQogCi1zdGF0aWMgaW5saW5lIEV4cGVjdGVkPFZlY3RvcjxDcm9z
c1RocmVhZFJlY29yZERhdGE+LCBFcnJvcj4gcmVjb3Jkc0RhdGFPckVycm9yRnJvbVJlY29yZHMo
Y29uc3QgUmVjb3Jkc09yRXJyb3ImIHJlc3VsdCkKK3N0YXRpYyBpbmxpbmUgRXhwZWN0ZWQ8VmVj
dG9yPENyb3NzVGhyZWFkUmVjb3JkRGF0YT4sIEVycm9yPiByZWNvcmRzRGF0YU9yRXJyb3JGcm9t
UmVjb3JkcyhSZWNvcmRzT3JFcnJvciYmIHJlc3VsdCkKIHsKICAgICBpZiAoIXJlc3VsdC5oYXNf
dmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHJlc3VsdC5lcnJvcigpKTsK
KyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFdURk1vdmUocmVzdWx0KS5lcnJvcigpKTsK
IAotICAgIHJldHVybiByZWNvcmRzRGF0YUZyb21SZWNvcmRzKHJlc3VsdC52YWx1ZSgpKTsKKyAg
ICByZXR1cm4gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhXVEZNb3ZlKHJlc3VsdCkudmFsdWUoKSk7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgVmVjdG9yPFJlY29yZD4gcmVjb3Jkc0Zyb21SZWNvcmRzRGF0
YShWZWN0b3I8Q3Jvc3NUaHJlYWRSZWNvcmREYXRhPiYmIHJlY29yZHNEYXRhKQpAQCAtMTk1LDE0
ICsxOTUsMTQgQEAgdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZUNh
Y2hlc0NvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnQKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpy
ZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXRyaWV2ZVJl
Y29yZHNPcHRpb25zJiBvcHRpb25zLCBSZWNvcmRzQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQg
V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNh
Y2hlSWRlbnRpZmllciwgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZHND
YWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0g
KyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKICAgICBtX3JldHJpZXZlUmVjb3Jkc1BlbmRpbmdS
ZXF1ZXN0cy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAg
IGNhbGxPbk1haW5UaHJlYWQoW3dvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkg
fSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0
SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZl
UmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIG9wdGlvbnMsIFt3b3JrZXJUaHJlYWQgPSBXVEZNb3Zl
KHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJvciYmIHJlc3Vs
dCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRzKHJlc3VsdCks
IHJlcXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkgfSwgbWFpblRo
cmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmll
ciwgY2FjaGVJZGVudGlmaWVyLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKS5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPnJldHJpZXZl
UmVjb3JkcyhjYWNoZUlkZW50aWZpZXIsIFdURk1vdmUob3B0aW9ucyksIFt3b3JrZXJUaHJlYWQg
PSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXShSZWNvcmRzT3JFcnJv
ciYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3Ao
KS5wb3N0VGFza0Zvck1vZGUoW3Jlc3VsdCA9IHJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRz
KFdURk1vdmUocmVzdWx0KSksIHJlcXVlc3RJZGVudGlmaWVyXSAoYXV0byYgc2NvcGUpIG11dGFi
bGUgewogICAgICAgICAgICAgICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSku
Y2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpLnJldHJpZXZlUmVjb3Jkc0NvbXBsZXRlZChyZXF1ZXN0
SWRlbnRpZmllciwgcmVjb3Jkc09yRXJyb3JGcm9tUmVjb3Jkc0RhdGEoV1RGTW92ZShyZXN1bHQp
KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAg
ICAgfSk7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOjpiYXRjaFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFYKICAgICB1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CiAg
ICAgbV9iYXRjaERlbGV0ZUFuZFB1dFBlbmRpbmdSZXF1ZXN0cy5hZGQocmVxdWVzdElkZW50aWZp
ZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dvcmtlclRo
cmVhZCA9IFJlZiB7IG1fc2NvcGUudGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBt
X21haW5UaHJlYWRDb25uZWN0aW9uLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVy
LCByZWNvcmRzRGF0YSA9IHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVjb3JkcyldKCkgbXV0YWJs
ZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS50
aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24s
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlY29yZHNEYXRhID0gcmVjb3Jk
c0RhdGFGcm9tUmVjb3JkcyhXVEZNb3ZlKHJlY29yZHMpKV0oKSBtdXRhYmxlIHsKICAgICAgICAg
bWFpblRocmVhZENvbm5lY3Rpb24tPmJhdGNoUHV0T3BlcmF0aW9uKGNhY2hlSWRlbnRpZmllciwg
cmVjb3Jkc0Zyb21SZWNvcmRzRGF0YShXVEZNb3ZlKHJlY29yZHNEYXRhKSksIFt3b3JrZXJUaHJl
YWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVyXSAoUmVjb3JkSWRl
bnRpZmllcnNPckVycm9yJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIHdvcmtlclRo
cmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3Vs
dCA9IFdURk1vdmUocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAg
ICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24oKS5wdXRSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKHJl
c3VsdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dv
cmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA3MTRkMjk0NDE3YzRkNzE5M2FhZjZm
OWEyMTYyY2I2Nzk1YmY4ZTY5Li4xNWM2Zjk0N2YyNTNiYTVhYmNmOWM0NzM5OWRiYWU2ZjRmM2Qy
OTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hl
U3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dv
cmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgRE9NQ2FjaGVFbmdpbmU6
OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmV0cmlldmVDYWNo
ZXMoY29uc3QgQ2xpZW50T3JpZ2luJiwgdWludDY0X3QgdXBkYXRlQ291bnRlciwgRE9NQ2FjaGVF
bmdpbmU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKSBmaW5hbDsKIAotICAgIHZvaWQgcmV0cmlldmVS
ZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmV0cmlldmVSZWNvcmRzT3B0
aW9ucyYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBSZXRyaWV2ZVJlY29y
ZHNPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgZmluYWw7CiAg
ICAgdm9pZCBiYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hlRW5naW5l
OjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYmF0Y2hQdXRP
cGVyYXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6
OlJlY29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9E
T01GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcAppbmRleCBiNzAwZDg0NDRiMjBlYmQ3MGU5ZTUzNDE0ZTE3NjU5YjFmYTQ1
ZWI0Li45ZjQ4MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBA
IC0yNTcsNyArMjU3LDcgQEAgdm9pZCBET01GaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1EaXIKIAogICAgIG1fd29ya1F1
ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHQgPSBS
ZWYgeyBjb250ZXh0IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIGZ1bGxQYXRoID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUoZnVsbFBhdGgpKSwgZGly
ZWN0b3J5VmlydHVhbFBhdGggPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShkaXJlY3RvcnlWaXJ0
dWFsUGF0aCkpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIGxpc3RlZENoaWxkcmVuID0gbGlz
dERpcmVjdG9yeVdpdGhNZXRhZGF0YShmdWxsUGF0aCk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0ID0gV1RG
TW92ZShjb250ZXh0KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgbGlzdGVkQ2hpbGRyZW4gPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShsaXN0ZWRDaGls
ZHJlbikpLCBkaXJlY3RvcnlWaXJ0dWFsUGF0aCA9IGRpcmVjdG9yeVZpcnR1YWxQYXRoLmlzb2xh
dGVkQ29weSgpXSgpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29udGV4dCA9IFdURk1vdmUoY29udGV4
dCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGxpc3Rl
ZENoaWxkcmVuID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUobGlzdGVkQ2hpbGRyZW4pKSwgZGly
ZWN0b3J5VmlydHVhbFBhdGggPSBXVEZNb3ZlKGRpcmVjdG9yeVZpcnR1YWxQYXRoKS5pc29sYXRl
ZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHRvRmls
ZVN5c3RlbUVudHJpZXMoY29udGV4dCwgcHJvdGVjdGVkVGhpcywgV1RGTW92ZShsaXN0ZWRDaGls
ZHJlbiksIGRpcmVjdG9yeVZpcnR1YWxQYXRoKSk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9EZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVk
UlRDRGF0YUNoYW5uZWwuaAppbmRleCAwZjM2Yzc4MzdmMTViYjIwMDVkMjVmZTZiYjQyMzc5OTgw
ZjE3MmZlLi4xNThiNTgzMzNiNjc0ZmU0Yzc5ZDk0MjE2OTI1OGI4NWZjOTgwNjk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRDRGF0YUNo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVk
UlRDRGF0YUNoYW5uZWwuaApAQCAtMzgsMTAgKzM4LDEwIEBAIHN0cnVjdCBEZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXRhY2hlZFJUQ0RhdGFDaGFu
bmVsKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBEZXRhY2hl
ZFJUQ0RhdGFDaGFubmVsKFJUQ0RhdGFDaGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCBSVENEYXRhQ2hhbm5lbEluaXQmIG9wdGlvbnMsIFJUQ0Rh
dGFDaGFubmVsU3RhdGUgc3RhdGUpCisgICAgRGV0YWNoZWRSVENEYXRhQ2hhbm5lbChSVENEYXRh
Q2hhbm5lbElkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgbGFiZWwsIFJUQ0RhdGFDaGFu
bmVsSW5pdCYmIG9wdGlvbnMsIFJUQ0RhdGFDaGFubmVsU3RhdGUgc3RhdGUpCiAgICAgICAgIDog
aWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICAgICAsIGxhYmVsKGxhYmVsLmlzb2xhdGVkQ29w
eSgpKQotICAgICAgICAsIG9wdGlvbnMob3B0aW9ucy5pc29sYXRlZENvcHkoKSkKKyAgICAgICAg
LCBsYWJlbChXVEZNb3ZlKGxhYmVsKS5pc29sYXRlZENvcHkoKSkKKyAgICAgICAgLCBvcHRpb25z
KFdURk1vdmUob3B0aW9ucykuaXNvbGF0ZWRDb3B5KCkpCiAgICAgICAgICwgc3RhdGUoc3RhdGUp
CiAgICAgewogICAgIH0KQEAgLTgzLDcgKzgzLDcgQEAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+IERldGFjaGVkUlRDRGF0YUMK
ICAgICBpZiAoIXN0YXRlKQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIG1ha2VV
bmlxdWU8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4oKmlkZW50aWZpZXIsIFdURk1vdmUobGFiZWwp
LCAqb3B0aW9ucywgKnN0YXRlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxEZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsPigqaWRlbnRpZmllciwgV1RGTW92ZShsYWJlbCksIFdURk1vdmUob3B0aW9ucyku
dmFsdWUoKSwgKnN0YXRlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApp
bmRleCA4ZjgzMzczZGJjNzRiNTJjNDU1NTMwNmE1MDU2ZDJmZGUwZWFhZTc1Li4wYjEwNjI2ZTMz
YmE1OTRhYTM4ZWIzYWQxZDY5NTZhNWU1NTE1MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApAQCAtMzAzLDcgKzMw
Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPiBSVENEYXRhQ2hh
bm5lbDo6ZGV0YWNoKCkKICAgICBMb2NrZXIgbG9ja2VyIHsgc19ydGNEYXRhQ2hhbm5lbExvY2Fs
TWFwTG9jayB9OwogICAgIHJ0Y0RhdGFDaGFubmVsTG9jYWxNYXAoKS5hZGQoaWRlbnRpZmllcigp
LmNoYW5uZWxJZGVudGlmaWVyLCBXVEZNb3ZlKG1faGFuZGxlcikpOwogCi0gICAgcmV0dXJuIG1h
a2VVbmlxdWU8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4oaWRlbnRpZmllcigpLCBsYWJlbCgpLmlz
b2xhdGVkQ29weSgpLCBvcHRpb25zKCksIHN0YXRlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxE
ZXRhY2hlZFJUQ0RhdGFDaGFubmVsPihpZGVudGlmaWVyKCksIFN0cmluZyB7IGxhYmVsKCkgfSwg
UlRDRGF0YUNoYW5uZWxJbml0IHsgb3B0aW9ucygpIH0sIHN0YXRlKTsKIH0KIAogdm9pZCBSVENE
YXRhQ2hhbm5lbDo6cmVtb3ZlRnJvbURhdGFDaGFubmVsTG9jYWxNYXBJZk5lZWRlZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVs
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgK
aW5kZXggNjk0ZmFmNDA4ZTZmNTJjNGI0NDg0M2NkNGFkYWQ3NGZmZDU1Zjg0Zi4uZGE2MTA1MWJh
OTZkOGQwNWQ0NmQ4MWNkZmZkZDZjMGI5OWVmNGQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaApAQCAtNjUsNyArNjUsNyBA
QCBwdWJsaWM6CiAgICAgUlRDUHJpb3JpdHlUeXBlIHByaW9yaXR5KCkgY29uc3QgeyByZXR1cm4g
bV9vcHRpb25zLnByaW9yaXR5OyB9OwogICAgIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYgb3B0
aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQogCi0gICAgU3RyaW5nIGxhYmVsKCkg
Y29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQorICAgIGNvbnN0IFN0cmluZyYgbGFiZWwoKSBjb25z
dCB7IHJldHVybiBtX2xhYmVsOyB9CiAgICAgUlRDRGF0YUNoYW5uZWxTdGF0ZSByZWFkeVN0YXRl
KCkgY29uc3Qge3JldHVybiBtX3JlYWR5U3RhdGU7IH0KICAgICBzaXplX3QgYnVmZmVyZWRBbW91
bnQoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcmVkQW1vdW50OyB9CiAgICAgc2l6ZV90IGJ1ZmZl
cmVkQW1vdW50TG93VGhyZXNob2xkKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXJlZEFtb3VudExv
d1RocmVzaG9sZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcAppbmRleCA1NmMzMjQzMjlhZDEzZjNmNjE4YWM3MTQ3ZTZj
MTExMmE4ZDZkMGQyLi4yNDIwOGM2YzQ0YmU4NGY3ODJiZDQ3YzAwZWU1MTkzYTkwZDIwMDg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmNwcApAQCAtNTIsMjEgKzUyLDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RG
X01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKE5vdGlmaWNhdGlvbik7CiAKLVJlZjxOb3RpZmljYXRp
b24+IE5vdGlmaWNhdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMpCitSZWY8Tm90aWZp
Y2F0aW9uPiBOb3RpZmljYXRpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBTdHJpbmcmJiB0aXRsZSwgT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBub3Rp
ZmljYXRpb24gPSBhZG9wdFJlZigqbmV3IE5vdGlmaWNhdGlvbihjb250ZXh0LCB0aXRsZSwgb3B0
aW9ucykpOworICAgIGF1dG8gbm90aWZpY2F0aW9uID0gYWRvcHRSZWYoKm5ldyBOb3RpZmljYXRp
b24oY29udGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0aW9ucykpKTsKICAgICBub3Rp
ZmljYXRpb24tPnN1c3BlbmRJZk5lZWRlZCgpOwogICAgIG5vdGlmaWNhdGlvbi0+c2hvd1Nvb24o
KTsKICAgICByZXR1cm4gbm90aWZpY2F0aW9uOwogfQogCi1Ob3RpZmljYXRpb246Ok5vdGlmaWNh
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBjb25zdCBPcHRpb25zJiBvcHRpb25zKQorTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYgdGl0bGUsIE9wdGlvbnMmJiBv
cHRpb25zKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250ZXh0KQotICAgICwgbV90aXRsZSh0
aXRsZS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fdGl0bGUoV1RGTW92ZSh0aXRsZSkuaXNvbGF0
ZWRDb3B5KCkpCiAgICAgLCBtX2RpcmVjdGlvbihvcHRpb25zLmRpcikKLSAgICAsIG1fbGFuZyhv
cHRpb25zLmxhbmcuaXNvbGF0ZWRDb3B5KCkpCi0gICAgLCBtX2JvZHkob3B0aW9ucy5ib2R5Lmlz
b2xhdGVkQ29weSgpKQotICAgICwgbV90YWcob3B0aW9ucy50YWcuaXNvbGF0ZWRDb3B5KCkpCisg
ICAgLCBtX2xhbmcoV1RGTW92ZShvcHRpb25zLmxhbmcpLmlzb2xhdGVkQ29weSgpKQorICAgICwg
bV9ib2R5KFdURk1vdmUob3B0aW9ucy5ib2R5KS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fdGFn
KFdURk1vdmUob3B0aW9ucy50YWcpLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9zdGF0ZShJZGxl
KQogICAgICwgbV9jb250ZXh0SWRlbnRpZmllcihjb250ZXh0LmlkZW50aWZpZXIoKSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
aAppbmRleCAwMmEzN2JmYzc2YzJlZmFjNzU0OTRkNzZiYjUzZjI3ODFkMjJmYzI2Li40YWE5YjM0
MWZjMWM0MTNmNzAzNjUyOTk2ZmE2NzAzYjVhMDAyYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCkBAIC02NCw3ICs2NCw3
IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIHRhZzsKICAgICAgICAgU3RyaW5nIGljb247CiAg
ICAgfTsKLSAgICBzdGF0aWMgUmVmPE5vdGlmaWNhdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBPcHRpb25zJik7CisgICAgc3Rh
dGljIFJlZjxOb3RpZmljYXRpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3Ry
aW5nJiYgdGl0bGUsIE9wdGlvbnMmJik7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB+Tm90aWZpY2F0aW9uKCk7CiAKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgVGhyZWFkU2FmZVJlZkNvdW50ZWQ6OmRlcmVmOwogCiBwcml2YXRlOgotICAgIE5vdGlmaWNh
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
T3B0aW9ucyYpOworICAgIE5vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3Ry
aW5nJiYgdGl0bGUsIE9wdGlvbnMmJik7CiAgICAgTm90aWZpY2F0aW9uKGNvbnN0IE5vdGlmaWNh
dGlvbiYpOwogCiAgICAgdm9pZCBjb250ZXh0RGVzdHJveWVkKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEu
Y3BwCmluZGV4IDIzZGIzMjcwYWI3ODdlNTMyMDU2NGFlZGNkYmVkMDFjNTc5MjQ0MTQuLjdjMjFl
OWNjNGFjNDA5MzQ0OTY2NzQzOWFlYTViMWM3MjViNjQ5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3BwCkBA
IC0zMCwxNyArMzAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QdXNoU3Vic2NyaXB0
aW9uRGF0YSBQdXNoU3Vic2NyaXB0aW9uRGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK1B1c2hT
dWJzY3JpcHRpb25EYXRhIFB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENvcHkoKSBjb25z
dCAmCiB7Ci0gICAgUHVzaFN1YnNjcmlwdGlvbkRhdGEgcmVzdWx0OwotICAgIHJlc3VsdC5pZGVu
dGlmaWVyID0gaWRlbnRpZmllcjsKLSAgICByZXN1bHQuZW5kcG9pbnQgPSBlbmRwb2ludC5pc29s
YXRlZENvcHkoKTsKLSAgICByZXN1bHQuZXhwaXJhdGlvblRpbWUgPSBleHBpcmF0aW9uVGltZTsK
LSAgICByZXN1bHQuc2VydmVyVkFQSURQdWJsaWNLZXkgPSBzZXJ2ZXJWQVBJRFB1YmxpY0tleTsK
LSAgICByZXN1bHQuY2xpZW50RUNESFB1YmxpY0tleSA9IGNsaWVudEVDREhQdWJsaWNLZXk7Ci0g
ICAgcmVzdWx0LnNoYXJlZEF1dGhlbnRpY2F0aW9uU2VjcmV0ID0gc2hhcmVkQXV0aGVudGljYXRp
b25TZWNyZXQ7CisgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgZW5kcG9pbnQuaXNvbGF0ZWRDb3B5
KCksIGV4cGlyYXRpb25UaW1lLCBzZXJ2ZXJWQVBJRFB1YmxpY0tleSwgY2xpZW50RUNESFB1Ymxp
Y0tleSwgc2hhcmVkQXV0aGVudGljYXRpb25TZWNyZXQgfTsKK30KIAotICAgIHJldHVybiByZXN1
bHQ7CitQdXNoU3Vic2NyaXB0aW9uRGF0YSBQdXNoU3Vic2NyaXB0aW9uRGF0YTo6aXNvbGF0ZWRD
b3B5KCkgJiYKK3sKKyAgICByZXR1cm4geyBpZGVudGlmaWVyLCBXVEZNb3ZlKGVuZHBvaW50KS5p
c29sYXRlZENvcHkoKSwgZXhwaXJhdGlvblRpbWUsIFdURk1vdmUoc2VydmVyVkFQSURQdWJsaWNL
ZXkpLCBXVEZNb3ZlKGNsaWVudEVDREhQdWJsaWNLZXkpLCBXVEZNb3ZlKHNoYXJlZEF1dGhlbnRp
Y2F0aW9uU2VjcmV0KSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmgK
aW5kZXggNjM1ZjlmYzgxZTljNjllNzY1ZWFiZDBlMWFlMjExYWUzYmRhNWFkNC4uYmMyMTU4N2Jl
MTlhMDRiNzNmNDJhODQ0ZjU5M2Q4NDg2YjFjODZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuaApAQCAtNDIsNyAr
NDIsOCBAQCBzdHJ1Y3QgUHVzaFN1YnNjcmlwdGlvbkRhdGEgewogICAgIFZlY3Rvcjx1aW50OF90
PiBjbGllbnRFQ0RIUHVibGljS2V5OwogICAgIFZlY3Rvcjx1aW50OF90PiBzaGFyZWRBdXRoZW50
aWNhdGlvblNlY3JldDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hTdWJzY3JpcHRpb25EYXRh
IGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFB1c2hTdWJzY3JpcHRp
b25EYXRhIGlzb2xhdGVkQ29weSgpIGNvbnN0ICY7CisgICAgV0VCQ09SRV9FWFBPUlQgUHVzaFN1
YnNjcmlwdGlvbkRhdGEgaXNvbGF0ZWRDb3B5KCkgJiY7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHVzaFN1YnNjcmlwdGlvbkRhdGE+IGRlY29k
ZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
RHVtbXlTdG9yYWdlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9E
dW1teVN0b3JhZ2VQcm92aWRlci5oCmluZGV4IGRhNDU3YTQ2YjEyM2MzNTg0M2ZmOTRhNmE4MmNm
YzI3NDg4MWYxYjMuLjBjZmZkMjdiZWYwYjljMGE0MGY3ZmE4NDQ5M2Y0YzE5MDAxMjMwNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9EdW1teVN0b3JhZ2VQ
cm92aWRlci5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBEdW1teVN0b3JhZ2VDb25uZWN0aW9uKCkpOwogICAgICAgICB9CiAKLSAg
ICAgICAgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5l
Y3Rpb246OlBlcnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAg
ICB2b2lkIGdldFBlcnNpc3RlZChDbGllbnRPcmlnaW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBl
cnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgICAgICB7CiAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIH0KQEAgLTU0LDcgKzU0
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAg
ICAgICAgfQogCi0gICAgICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBDbGll
bnRPcmlnaW4mLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5
KENsaWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2sm
JiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICAgICAgewogICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfSk7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9u
LmgKaW5kZXggYmNlYzIyOTQ3NGZlY2I4M2QzOTNkY2JlZWNlOTliY2RmNWZmZWY3Ni4uZDAxYjg0
YmVlYmI1YTE3ZGI1ZmI3OTJlYzVjOTQ0ZDc3ZmM3YWU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTM5LDExICszOSwx
MSBAQCBjbGFzcyBTdG9yYWdlQ29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxTdG9yYWdlQ29ubmVjdGlvbj4gewogcHVibGljOgogICAgIHZpcnR1YWwgflN0b3JhZ2VDb25u
ZWN0aW9uKCkgPSBkZWZhdWx0OwogICAgIHVzaW5nIFBlcnNpc3RDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+OwotICAgIHZpcnR1YWwgdm9pZCBnZXRQZXJzaXN0ZWQoY29u
c3QgQ2xpZW50T3JpZ2luJiwgUGVyc2lzdENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0UGVyc2lzdGVkKENsaWVudE9yaWdpbiYmLCBQZXJzaXN0Q2FsbGJhY2smJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBwZXJzaXN0KGNvbnN0IENsaWVudE9yaWdpbiYsIFBlcnNpc3RDYWxs
YmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQog
ICAgIHVzaW5nIERpcmVjdG9yeUluZm8gPSBzdGQ6OnBhaXI8RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFJlZlB0cjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+PjsKICAgICB1c2luZyBH
ZXREaXJlY3RvcnlDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
RGlyZWN0b3J5SW5mbz4mJik+OwotICAgIHZpcnR1YWwgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KGNvbnN0IENsaWVudE9yaWdpbiYsIEdldERpcmVjdG9yeUNhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShDbGllbnRPcmlnaW4mJiwgR2V0
RGlyZWN0b3J5Q2FsbGJhY2smJikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAK
aW5kZXggY2Q0NjYzMGRiNzBjMGJiOGU4MDljNzRiOTg3OTk1ZjQ5YjczNWVhNy4uMmJhYjRmOWIy
ZDY4OTdjNjYyMDlmNTZmMDJlYzQ4OWVlYjVlMGNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZv
aWQgU3RvcmFnZU1hbmFnZXI6OnBlcnNpc3RlZChET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVh
bj4mJiBwcm9taXNlKQogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVjdGlvbklu
Zm9PckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25uZWN0aW9u
SW5mbyA9IGNvbm5lY3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0g
ICAgY29ubmVjdGlvbkluZm8uY29ubmVjdGlvbi5nZXRQZXJzaXN0ZWQoY29ubmVjdGlvbkluZm8u
b3JpZ2luLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGJvb2wgcGVyc2lzdGVkKSBtdXRh
YmxlIHsKKyAgICBjb25uZWN0aW9uSW5mby5jb25uZWN0aW9uLmdldFBlcnNpc3RlZChXVEZNb3Zl
KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYm9v
bCBwZXJzaXN0ZWQpIG11dGFibGUgewogICAgICAgICBwcm9taXNlLnJlc29sdmUocGVyc2lzdGVk
KTsKICAgICB9KTsKIH0KQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpm
aWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
YwogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVjdGlvbkluZm9PckV4Y2VwdGlv
bi5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25uZWN0aW9uSW5mbyA9IGNvbm5l
Y3Rpb25JbmZvT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgY29ubmVjdGlv
bkluZm8uY29ubmVjdGlvbi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbm5lY3Rpb25JbmZvLm9y
aWdpbiwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCB3ZWFrTmF2aWdhdG9yID0gbV9uYXZp
Z2F0b3JdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgIGNvbm5lY3Rpb25JbmZvLmNvbm5l
Y3Rpb24uZmlsZVN5c3RlbUdldERpcmVjdG9yeShXVEZNb3ZlKGNvbm5lY3Rpb25JbmZvLm9yaWdp
biksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgd2Vha05hdmlnYXRvciA9IG1fbmF2aWdh
dG9yXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9y
YWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZDVkY2NjMzRjZDMxMTBi
OGViNTdhY2ZmN2RjZjQ0NzE2YzMyZGMwNS4uYTFmYjA0ZmM5MTgwMjRmZjhmZDBkNDFiYzdjMWIx
YTcxNjVkY2FhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1dv
cmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC01OCwxNCArNTgsMTQgQEAgdm9p
ZCBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbjo6c2NvcGVDbG9zZWQoKQogICAgIG1fc2NvcGUgPSBu
dWxscHRyOwogfQogCi12b2lkIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQo
Y29uc3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2Fs
bGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246
OmdldFBlcnNpc3RlZChDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpQ
ZXJzaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQobV9zY29w
ZSk7CiAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9ICsrbV9sYXN0Q2FsbGJhY2tJZGVu
dGlmaWVyOwogICAgIG1fZ2V0UGVyc2lzdGVkQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZp
ZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQo
W2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFk
KCkgfSwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgIGNh
bGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsg
bV9zY29wZS0+dGhyZWFkKCkgfSwgb3JpZ2luID0gV1RGTW92ZShvcmlnaW4pLmlzb2xhdGVkQ29w
eSgpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDb25uZWN0aW9uID0gd29y
a2VyVGhyZWFkLT53b3JrZXJMb2FkZXJQcm94eSgpLnN0b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAg
ICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2Vy
VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShib29sIHJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxi
YWNrSWRlbnRpZmllciwgcmVzdWx0XSAoYXV0byYgc2NvcGUpIG11dGFibGUgewpAQCAtNzUsNyAr
NzUsNyBAQCB2b2lkIFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29uc3Qg
Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDbwogICAgICAgICBpZiAoIW1haW5UaHJlYWRD
b25uZWN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIG1haW5UaHJlYWRDYWxsYmFjayhmYWxzZSk7
CiAKLSAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmdldFBlcnNpc3RlZChvcmlnaW4sIFdU
Rk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9u
LT5nZXRQZXJzaXN0ZWQoV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFj
aykpOwogICAgIH0pOwogfQogCkBAIC04NSwyMSArODUsMjEgQEAgdm9pZCBXb3JrZXJTdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkR2V0UGVyc2lzdGVkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwg
Ym9vbAogICAgICAgICBjYWxsYmFjayhwZXJzaXN0ZWQpOwogfQogCi12b2lkIFdvcmtlclN0b3Jh
Z2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVudE9yaWdpbiYg
b3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkoQ2xpZW50T3JpZ2luJiYgb3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGly
ZWN0b3J5Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQobV9zY29w
ZSk7CiAgICAgCiAgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSArK21fbGFzdENhbGxiYWNr
SWRlbnRpZmllcjsKICAgICBtX2dldERpcmVjdG9yeUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVu
dGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAKLSAgICBjYWxsT25NYWluVGhy
ZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRo
cmVhZCgpIH0sIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJl
ZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG9yaWdpbiA9IFdURk1vdmUob3JpZ2luKS5pc29sYXRl
ZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWluVGhyZWFkQ29ubmVjdGlvbiA9
IHdvcmtlclRocmVhZC0+d29ya2VyTG9hZGVyUHJveHkoKS5zdG9yYWdlQ29ubmVjdGlvbigpOwog
ICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdv
cmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUo
W2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUocmVz
dWx0KSldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5zdG9yYWdlQ29ubmVjdGlvbigpLmRpZEdldERpcmVj
dG9yeShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9
LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfTsKLSAgICAgICAgbWFp
blRocmVhZENvbm5lY3Rpb24tPmZpbGVTeXN0ZW1HZXREaXJlY3Rvcnkob3JpZ2luLCBXVEZNb3Zl
KG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Zmls
ZVN5c3RlbUdldERpcmVjdG9yeShXVEZNb3ZlKG9yaWdpbiksIFdURk1vdmUobWFpblRocmVhZENh
bGxiYWNrKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RvcmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggODQ1YmY5MzZhODky
NTkwNTVmODMzNDk1YjhjOGRkMDczYzM2N2MzOC4uNmFhMjg4YWMyOTRhZTEwMTMwYWM0OTEyMjE4
NTZkNGMzODgxZjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTQzLDggKzQzLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZEdldERpcmVjdG9yeSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIs
IEV4Y2VwdGlvbk9yPFN0b3JhZ2VDb25uZWN0aW9uOjpEaXJlY3RvcnlJbmZvPiYmKTsKIAogICAg
IC8vIFN0b3JhZ2VDb25uZWN0aW9uCi0gICAgdm9pZCBnZXRQZXJzaXN0ZWQoY29uc3QgQ2xpZW50
T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxsYmFjayYmKSBmaW5hbDsKLSAg
ICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiwgU3RvcmFn
ZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0
UGVyc2lzdGVkKENsaWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVyc2lzdENhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShDbGllbnRPcmln
aW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOwog
CiAgICAgV2Vha1B0cjxXb3JrZXJHbG9iYWxTY29wZT4gbV9zY29wZTsKICAgICB1aW50NjRfdCBt
X2xhc3RDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCmluZGV4
IDgyZTc4MDI2NTFlM2IwMGNmOTMxMzdiY2M0NTM2MDdmNzEzMTkyYmYuLjk0ZWY1MDk1NThiNmMy
NjU5ZmRmYTNkNjg5YjRiMGQyODM3M2Q4YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCkBAIC0z
NSw5ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2hhbmdlVmVyc2lvbldyYXBw
ZXI6OkNoYW5nZVZlcnNpb25XcmFwcGVyKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29uc3Qg
U3RyaW5nJiBuZXdWZXJzaW9uKQotICAgIDogbV9vbGRWZXJzaW9uKG9sZFZlcnNpb24uaXNvbGF0
ZWRDb3B5KCkpCi0gICAgLCBtX25ld1ZlcnNpb24obmV3VmVyc2lvbi5pc29sYXRlZENvcHkoKSkK
K0NoYW5nZVZlcnNpb25XcmFwcGVyOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcihTdHJpbmcmJiBvbGRW
ZXJzaW9uLCBTdHJpbmcmJiBuZXdWZXJzaW9uKQorICAgIDogbV9vbGRWZXJzaW9uKFdURk1vdmUo
b2xkVmVyc2lvbikuaXNvbGF0ZWRDb3B5KCkpCisgICAgLCBtX25ld1ZlcnNpb24oV1RGTW92ZShu
ZXdWZXJzaW9uKS5pc29sYXRlZENvcHkoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oCmluZGV4
IGViN2VmZTNjNDM3NGZkOGYyZDhmYzczMGMzMWQ3ZmM0YmQzNTZlZWUuLjFiMTI4NzdiYjFlYjFl
OTc0ZWNiNDllZTMyOTYwODAxZTM1ZDkwMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmgKQEAgLTM3LDcg
KzM3LDcgQEAgY2xhc3MgU1FMRXJyb3I7CiAKIGNsYXNzIENoYW5nZVZlcnNpb25XcmFwcGVyIDog
cHVibGljIFNRTFRyYW5zYWN0aW9uV3JhcHBlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxD
aGFuZ2VWZXJzaW9uV3JhcHBlcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29u
c3QgU3RyaW5nJiBuZXdWZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENoYW5nZVZlcnNp
b25XcmFwcGVyKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24pKTsgfQorICAgIHN0YXRpYyBSZWY8Q2hh
bmdlVmVyc2lvbldyYXBwZXI+IGNyZWF0ZShTdHJpbmcmJiBvbGRWZXJzaW9uLCBTdHJpbmcmJiBu
ZXdWZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IENoYW5nZVZlcnNpb25XcmFwcGVyKFdU
Rk1vdmUob2xkVmVyc2lvbiksIFdURk1vdmUobmV3VmVyc2lvbikpKTsgfQogCiAgICAgYm9vbCBw
ZXJmb3JtUHJlZmxpZ2h0KFNRTFRyYW5zYWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBwZXJm
b3JtUG9zdGZsaWdodChTUUxUcmFuc2FjdGlvbiYpIG92ZXJyaWRlOwpAQCAtNDUsNyArNDUsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBoYW5kbGVDb21taXRGYWlsZWRBZnRlclBvc3RmbGlnaHQoU1FM
VHJhbnNhY3Rpb24mKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBDaGFuZ2VWZXJzaW9uV3Jh
cHBlcihjb25zdCBTdHJpbmcmIG9sZFZlcnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbik7
CisgICAgQ2hhbmdlVmVyc2lvbldyYXBwZXIoU3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYg
bmV3VmVyc2lvbik7CiAKICAgICBTdHJpbmcgbV9vbGRWZXJzaW9uOwogICAgIFN0cmluZyBtX25l
d1ZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2UuY3BwCmluZGV4IDc3ZmZkOTMxOTdkNmUyM2JlMjAxMTBhM2UzYjkyNWU3OTdjYTJlZmYuLjVh
ZjM3MDlkYTJhNDhlNmNmMjQ0YWQxOWYwODc5NjRhNDRmMDRjZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC01ODIsOSArNTgyLDkg
QEAgdm9pZCBEYXRhYmFzZTo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCkKICAgICBjbG9zZSgpOwog
fQogCi12b2lkIERhdGFiYXNlOjpjaGFuZ2VWZXJzaW9uKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lv
biwgY29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFj
az4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiBlcnJv
ckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaykKK3ZvaWQg
RGF0YWJhc2U6OmNoYW5nZVZlcnNpb24oU3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYgbmV3
VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0
cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZv
aWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2spCiB7Ci0gICAgcnVuVHJhbnNhY3Rpb24oV1RG
TW92ZShjYWxsYmFjayksIFdURk1vdmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0Nh
bGxiYWNrKSwgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OmNyZWF0ZShvbGRWZXJzaW9uLCBuZXdWZXJz
aW9uKSwgZmFsc2UpOworICAgIHJ1blRyYW5zYWN0aW9uKFdURk1vdmUoY2FsbGJhY2spLCBXVEZN
b3ZlKGVycm9yQ2FsbGJhY2spLCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIENoYW5nZVZlcnNp
b25XcmFwcGVyOjpjcmVhdGUoV1RGTW92ZShvbGRWZXJzaW9uKSwgV1RGTW92ZShuZXdWZXJzaW9u
KSksIGZhbHNlKTsKIH0KIAogdm9pZCBEYXRhYmFzZTo6dHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9y
Q2FsbGJhY2s+JiYgZXJyb3JDYWxsYmFjaywgUmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNz
Q2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmgKaW5kZXggNWUzYmU4NTRmMDA5Y2Y2MGE2ZWEwOGRkZWY2N2Q1ZTJmMWE1ZTBlNy4uOWIwMDJk
NGE1YmY3OWM3NWQ4Y2I1NGVlMWYwZDg3ODZkMmYzODAwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6
CiAKICAgICAvLyBEaXJlY3Qgc3VwcG9ydCBmb3IgdGhlIERPTSBBUEkKICAgICBTdHJpbmcgdmVy
c2lvbigpIGNvbnN0OwotICAgIHZvaWQgY2hhbmdlVmVyc2lvbihjb25zdCBTdHJpbmcmIG9sZFZl
cnNpb24sIGNvbnN0IFN0cmluZyYgbmV3VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJlZlB0cjxW
b2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKKyAgICB2b2lkIGNoYW5nZVZlcnNpb24o
U3RyaW5nJiYgb2xkVmVyc2lvbiwgU3RyaW5nJiYgbmV3VmVyc2lvbiwgUmVmUHRyPFNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYs
IFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKICAgICB2b2lkIHRyYW5z
YWN0aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmLCBSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25FcnJvckNhbGxiYWNrPiYmLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxs
YmFjayk7CiAgICAgdm9pZCByZWFkVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJlZlB0cjxW
b2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDA2N2Zk
MzkxMzkwYzg1ZGMyZDQ5ZGY0MDgwMTYyYjQzYzRmNDIzY2UuLjllYjM5MWM2ZDBiZDZkNDg2MDUx
MGVkYWI3Mjg5MzM5OTUwNmJjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTU0MiwxNCArNTQyLDE0IEBA
IHZvaWQgRGF0YWJhc2VUcmFja2VyOjphZGRPcGVuRGF0YWJhc2UoRGF0YWJhc2UmIGRhdGFiYXNl
KQogICAgIGF1dG8qIG5hbWVNYXAgPSBtX29wZW5EYXRhYmFzZU1hcC0+Z2V0KG9yaWdpbik7CiAg
ICAgaWYgKCFuYW1lTWFwKSB7CiAgICAgICAgIG5hbWVNYXAgPSBuZXcgRGF0YWJhc2VOYW1lTWFw
OwotICAgICAgICBtX29wZW5EYXRhYmFzZU1hcC0+YWRkKG9yaWdpbi5pc29sYXRlZENvcHkoKSwg
bmFtZU1hcCk7CisgICAgICAgIG1fb3BlbkRhdGFiYXNlTWFwLT5hZGQoV1RGTW92ZShvcmlnaW4p
Lmlzb2xhdGVkQ29weSgpLCBuYW1lTWFwKTsKICAgICB9CiAKICAgICBTdHJpbmcgbmFtZSA9IGRh
dGFiYXNlLnN0cmluZ0lkZW50aWZpZXJJc29sYXRlZENvcHkoKTsKICAgICBhdXRvKiBkYXRhYmFz
ZVNldCA9IG5hbWVNYXAtPmdldChuYW1lKTsKICAgICBpZiAoIWRhdGFiYXNlU2V0KSB7CiAgICAg
ICAgIGRhdGFiYXNlU2V0ID0gbmV3IERhdGFiYXNlU2V0OwotICAgICAgICBuYW1lTWFwLT5zZXQo
bmFtZS5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VTZXQpOworICAgICAgICBuYW1lTWFwLT5zZXQo
V1RGTW92ZShuYW1lKS5pc29sYXRlZENvcHkoKSwgZGF0YWJhc2VTZXQpOwogICAgIH0KIAogICAg
IGRhdGFiYXNlU2V0LT5hZGQoJmRhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMRXJyb3IuaAppbmRleCAxNDVjYTUwMDMzNTc2ZTcwMjdlODAyZjBkMjlj
ODI1OTI0NGE1YWNhLi43N2NlMWExY2FjMTUwOTQ4YzM0MTA0ZWRkMzNiMTBhMGRkNTlmMGM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oCkBAIC0z
NSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1FMRXJyb3IgOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMRXJyb3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNRTEVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQorICAg
IHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBTdHJpbmcmJiBtZXNz
YWdlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNRTEVycm9yKGNvZGUsIFdURk1vdmUobWVzc2Fn
ZSkpKTsgfQogICAgIHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBj
b25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSkKICAgICB7CiAgICAgICAgIHJldHVy
biBjcmVhdGUoY29kZSwgbWFrZVN0cmluZyhtZXNzYWdlLCAiICgiLCBzcWxpdGVDb2RlLCAnKScp
KTsKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgIH07CiAKIHByaXZhdGU6Ci0gICAgU1FM
RXJyb3IodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSA6IG1fY29kZShjb2Rl
KSwgbV9tZXNzYWdlKG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCkpIHsgfQorICAgIFNRTEVycm9yKHVu
c2lnbmVkIGNvZGUsIFN0cmluZyYmIG1lc3NhZ2UpIDogbV9jb2RlKGNvZGUpLCBtX21lc3NhZ2Uo
V1RGTW92ZShtZXNzYWdlKS5pc29sYXRlZENvcHkoKSkgeyB9CiAgICAgdW5zaWduZWQgbV9jb2Rl
OwogICAgIFN0cmluZyBtX21lc3NhZ2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApp
bmRleCBmN2NmMGUxNzBjNjM5ZTk5NjRjODcyMGI4YTQ5ZTA1OWZlNWEwNTNmLi5lNjUzMTVhNTE1
OWUxYjhmZTE1Y2JhOTk2NTdhODA3Y2RhODZlMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBidWZm
ZXJlZEFtb3VudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoaW50IGNvZGUs
IGNvbnN0IFN0cmluZyYgcmVhc29uKSA9IDA7CiAgICAgLy8gTG9nIHRoZSByZWFzb24gdGV4dCBh
bmQgY2xvc2UgdGhlIGNvbm5lY3Rpb24uIFdpbGwgY2FsbCBkaWRDbG9zZSgpLgotICAgIHZpcnR1
YWwgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGZhaWwoU3RyaW5nJiYgcmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3Qo
KSA9IDA7IC8vIFdpbGwgc3VwcHJlc3MgZGlkQ2xvc2UoKS4KIAogICAgIHZpcnR1YWwgdm9pZCBz
dXNwZW5kKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyLmNwcAppbmRleCA3YjE0NDFkMzFjYmNiZjcwYTM5MTJhOWEyMTA1NzVhZDM1Y2Y1
OTMyLi5hOWNjNTQxMGE4M2M3NzY1MmRlZjU4N2RiNDg1ZjIwNTQ5OThmYjFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMTYy
LDExICsxNjIsMTEgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI6OmRpZENvbm5lY3QoKQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAKLXZv
aWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVz
c2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2FnZSkKIHsK
LSAgICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpUYXNrPihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1lc3NhZ2Ug
PSBtZXNzYWdlLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAg
ICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpUYXNrPihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1lc3NhZ2UgPSBX
VEZNb3ZlKG1lc3NhZ2UpLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IG11dGFibGUgewogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+
ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZSk7CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVj
ZWl2ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgfSkpOwogCiAgICAgaWYgKCFtX3N1
c3BlbmRlZCkKQEAgLTIxNywxMSArMjE3LDExIEBAIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyOjpkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlCiAg
ICAgICAgIHByb2Nlc3NQZW5kaW5nVGFza3MoKTsKIH0KIAotdm9pZCBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3Ry
aW5nJiByZWFzb24pCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiByZWFzb24pCiB7Ci0gICAgbV9wZW5k
aW5nVGFza3MuYXBwZW5kKG1ha2VVbmlxdWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4o
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCByZWFzb24gPSByZWFzb24uaXNv
bGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgIG1fcGVuZGluZ1Rh
c2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcmVhc29uID0gV1RGTW92ZShyZWFzb24p
Lmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewogICAg
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2VFcnJvcihyZWFzb24pOworICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoV1RGTW92ZShyZWFzb24pKTsKICAgICB9KSk7CiAKICAgICBpZiAoIW1fc3VzcGVuZGVk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmlu
ZGV4IDZhZWJhNTNlOGZjNDIzNGU4MzFkZTFkN2Q2OTkwMDU2Yjc4MTZiY2MuLjk2NTgwMjIzZWYw
NGE3YmFiNDdkMGQyMDhlMzM4OWVlOGE5MTYxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKQEAgLTc0LDEyICs3NCwxMiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhckNsaWVudCgpOwogCiAgICAgdm9pZCBkaWRDb25uZWN0KCk7Ci0gICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZl
QmluYXJ5RGF0YShWZWN0b3I8dWludDhfdD4mJik7CiAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJl
ZEFtb3VudCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCk7CiAgICAgdm9pZCBkaWRTdGFydENsb3Np
bmdIYW5kc2hha2UoKTsKICAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZl
cmVkQW1vdW50LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OjpDbG9zaW5nSGFuZHNoYWtlQ29tcGxl
dGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyYmIHJlYXNvbik7CiAgICAgdm9p
ZCBkaWRVcGdyYWRlVVJMKCk7CiAKICAgICB2b2lkIHN1c3BlbmQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggODE2ZWNlYjE2YmIx
NjI1ZjczMDNjYzI4YzI3ZjZkNjBlOTA2MWRhNy4uZjk3M2U1YmQzYjkwZTNhNGNjNzM1MjE0ZDlh
MzE5YWRmOTIxZTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKQEAgLTU2NiwyMSArNTY2LDIxIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRD
b25uZWN0KCkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdl
KGNvbnN0IFN0cmluZyYgbXNnKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKFN0
cmluZyYmIG1lc3NhZ2UpCiB7Ci0gICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVj
ZWl2ZU1lc3NhZ2UoKSBUZXh0IG1lc3NhZ2UgJyVzJyIsIHRoaXMsIG1zZy51dGY4KCkuZGF0YSgp
KTsKLSAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6Oldl
YlNvY2tldCwgW3RoaXMsIG1zZ10geworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRp
ZFJlY2VpdmVNZXNzYWdlKCkgVGV4dCBtZXNzYWdlICclcyciLCB0aGlzLCBtZXNzYWdlLnV0Zjgo
KS5kYXRhKCkpOworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1Nv
dXJjZTo6V2ViU29ja2V0LCBbdGhpcywgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSldKCkgbXV0
YWJsZSB7CiAgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJv
bnRlbmRzKCkpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogaW5zcGVjdG9yID0gbV9jaGFubmVs
LT5jaGFubmVsSW5zcGVjdG9yKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHV0ZjhNZXNzYWdl
ID0gbXNnLnV0ZjgoKTsKKyAgICAgICAgICAgICAgICBhdXRvIHV0ZjhNZXNzYWdlID0gbWVzc2Fn
ZS51dGY4KCk7CiAgICAgICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNlaXZlV2ViU29ja2V0
RnJhbWUoV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6Y3JlYXRlRnJhbWUodXRmOE1lc3NhZ2Uu
ZGF0YUFzVUludDhQdHIoKSwgdXRmOE1lc3NhZ2UubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpP
cENvZGU6Ok9wQ29kZVRleHQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBB
U1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAgICAgZGlzcGF0Y2hFdmVudChN
ZXNzYWdlRXZlbnQ6OmNyZWF0ZShtc2csIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50
b1N0cmluZygpKSk7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoTWVzc2FnZUV2ZW50OjpjcmVhdGUo
V1RGTW92ZShtZXNzYWdlKSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5n
KCkpKTsKICAgICB9KTsKIH0KIApAQCAtNjA4LDEwICs2MDgsMTAgQEAgdm9pZCBXZWJTb2NrZXQ6
OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90PiYmIGJpbmFyeURhdGEpCiAgICAg
fSk7CiB9CiAKLXZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0
cmluZyYgcmVhc29uKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3Ry
aW5nJiYgcmVhc29uKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJlY2Vp
dmVFcnJvck1lc3NhZ2UoKSIsIHRoaXMpOwotICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2
ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgcmVhc29uXSB7CisgICAgcXVl
dWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0
aGlzLCByZWFzb24gPSBXVEZNb3ZlKHJlYXNvbildIHsKICAgICAgICAgaWYgKG1fc3RhdGUgPT0g
Q0xPU0VEKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IDBj
MzZhMjM2MTEzN2UwODY1ODVhMDE3YjljNmIxZjVlMTc4ZTZlZTYuLmU2ODYzZTQ2ZGEwN2QxOGI2
ZDkxNWViMTVjMjRjZGYyMmRiNmE2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTExMyw5ICsxMTMsOSBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgdm9pZCBkaWRD
b25uZWN0KCkgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVz
c2FnZSkgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0YShWZWN0b3I8dWludDhf
dD4mJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5n
JiYgcmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2ln
bmVkIGJ1ZmZlcmVkQW1vdW50KSBmaW5hbDsKICAgICB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRz
aGFrZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVmZmVy
ZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9y
dCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggYmIx
MjUyNDFmNjMxOWNkNTQ3NGY3NTcyYjdkMWJmNDM2MmJmMGZlMS4uZGY1NjM1OWM2ZmRhMDUyMTAz
ZDk3YjNkOGE1ZDEwODQ5MTk3NWY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjEyLDcgKzIxMiw3IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uKQogICAgICAgICBtX2Nsb3NpbmdUaW1lci5zdGFydE9uZVNob3QoVENQTWF4aW11bVNlZ21l
bnRMaWZldGltZSAqIDIpOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoY29uc3Qg
U3RyaW5nJiByZWFzb24pCit2b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoU3RyaW5nJiYgcmVh
c29uKQogewogICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGZh
aWwoKSByZWFzb249JyVzJyIsIHRoaXMsIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKICAgICBBU1NF
UlQoIW1fc3VzcGVuZGVkKTsKQEAgLTIzOCw3ICsyMzgsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgbV9oYXNDb250aW51b3VzRnJhbWUg
PSBmYWxzZTsKICAgICBtX2NvbnRpbnVvdXNGcmFtZURhdGEuY2xlYXIoKTsKICAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKHJlYXNvbik7
CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKFdURk1vdmUocmVhc29u
KSk7CiAKICAgICBpZiAobV9oYW5kbGUgJiYgIW1fY2xvc2VkKQogICAgICAgICBtX2hhbmRsZS0+
ZGlzY29ubmVjdCgpOyAvLyBXaWxsIGNhbGwgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oKSBidXQgbWF5
YmUgbm90IHN5bmNocm9ub3VzbHkuCkBAIC0zODAsNyArMzgwLDcgQEAgdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpkaWRGYWlsU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlLCBj
b25zdCBTb2MKICAgICB9CiAgICAgbV9zaG91bGREaXNjYXJkUmVjZWl2ZWREYXRhID0gdHJ1ZTsK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVy
cm9yKG1lc3NhZ2UpOworICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihX
VEZNb3ZlKG1lc3NhZ2UpKTsKICAgICBoYW5kbGUuZGlzY29ubmVjdCgpOwogfQogCkBAIC01NDYs
NyArNTQ2LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIGlm
IChyZXN1bHQgPT0gV2ViU29ja2V0RnJhbWU6OkZyYW1lSW5jb21wbGV0ZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGlmIChyZXN1bHQgPT0gV2ViU29ja2V0RnJhbWU6OkZyYW1lRXJyb3Ip
IHsKLSAgICAgICAgZmFpbChlcnJvclN0cmluZyk7CisgICAgICAgIGZhaWwoV1RGTW92ZShlcnJv
clN0cmluZykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02MjIsNyArNjIy
LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAg
ICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgICAgICBmYWlsKCJDb3Vs
ZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iKTsKICAgICAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNz
YWdlKTsKKyAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdU
Rk1vdmUobWVzc2FnZSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtX2NvbnRpbnVvdXNGcmFt
ZU9wQ29kZSA9PSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQmluYXJ5KQogICAgICAgICAgICAgICAg
IG1fY2xpZW50LT5kaWRSZWNlaXZlQmluYXJ5RGF0YShXVEZNb3ZlKGNvbnRpbnVvdXNGcmFtZURh
dGEpKTsKICAgICAgICAgfQpAQCAtNjM5LDcgKzYzOSw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5l
bDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQogICAg
ICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04
LiIpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlTWVzc2FnZShtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBtX2hhc0NvbnRpbnVvdXNGcmFtZSA9IHRydWU7CiAgICAgICAgICAgICBtX2NvbnRpbnVvdXNG
cmFtZU9wQ29kZSA9IFdlYlNvY2tldEZyYW1lOjpPcENvZGVUZXh0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggOGMw
OGUyNmI5ZmJhZTdlYWJiY2E2MDE4YjY3Y2I3YWEyOWY2NWUyMC4uNjNmZTYyYTc2OGJkZjkyMDky
MGE4YWY3M2M1MjA0MzI0NmIzZDhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC03OSw3ICs3OSw3IEBAIHB1Ymxp
YzoKICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKEJsb2Im
KSBmaW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgpIGNvbnN0IGZpbmFsOwogICAg
IHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBmaW5hbDsgLy8gU3Rh
cnQgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29u
KSBmaW5hbDsKKyAgICB2b2lkIGZhaWwoU3RyaW5nJiYgcmVhc29uKSBmaW5hbDsKICAgICB2b2lk
IGRpc2Nvbm5lY3QoKSBmaW5hbDsKIAogICAgIHZvaWQgc3VzcGVuZCgpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsQ2xpZW50LmgKaW5kZXggN2Y3MTMxY2ExOWU3OGMwYzc0YWE0OTc4OTQ1MGI2MTY1MzdiZDBm
Yy4uZGNmOTE0MGY5MDRhMWZjZTc3MmEyN2JmZWRlMmExYjQwMDU4YjI4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bENsaWVudC5oCkBAIC0zOSw5ICszOSw5IEBAIGNsYXNzIFdlYlNvY2tldENoYW5uZWxDbGllbnQg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViU29ja2V0Q2hhbm5lbENsaWVudD4gewogcHVibGlj
OgogICAgIHZpcnR1YWwgfldlYlNvY2tldENoYW5uZWxDbGllbnQoKSA9IGRlZmF1bHQ7CiAgICAg
dmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoU3RyaW5nJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFy
eURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBk
YXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgPSAwOwogICAgIGVudW0gQ2xvc2lu
Z0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAppbmRleCBjNDUzOGI5
OGQwYmI5MmVhOWQ2MWQyOWI3ZjA5NTE3MDg2N2RmZjU1Li5mNzY5Njc0OTMzNzIwMTdkMzYzZTNh
MTJlNzdmNTViZDUwMjU4NTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcApAQCAtMTMzLDExICsxMzMsNiBA
QCBjb25zdCBVUkwmIFdlYlNvY2tldEhhbmRzaGFrZTo6dXJsKCkgY29uc3QKICAgICByZXR1cm4g
bV91cmw7CiB9CiAKLXZvaWQgV2ViU29ja2V0SGFuZHNoYWtlOjpzZXRVUkwoY29uc3QgVVJMJiB1
cmwpCi17Ci0gICAgbV91cmwgPSB1cmwuaXNvbGF0ZWRDb3B5KCk7Ci19Ci0KIC8vIEZJWE1FOiBS
ZXR1cm4gdHlwZSBzaG91bGQganVzdCBiZSBTdHJpbmcsIG5vdCBjb25zdCBTdHJpbmcuCiBjb25z
dCBTdHJpbmcgV2ViU29ja2V0SGFuZHNoYWtlOjpob3N0KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDc3NjMyNWZiNGE5ZGI4MzZlZGE0
NjRmYThhZjA2ZWY2NGI1OTllOTYuLmJiZDYzMTUzYWVmNDQwZTA5N2M3M2E1MjcyOGEyNWY4NmM2
NzVjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAt
MTE4LDEwICsxMTgsMTAgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKQogICAgICAgICBtX2JyaWRnZS0+
Y2xvc2UoY29kZSwgcmVhc29uKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKK3ZvaWQgV29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OmZhaWwoU3RyaW5nJiYgcmVhc29uKQogewogICAgIGlmIChtX2Jy
aWRnZSkKLSAgICAgICAgbV9icmlkZ2UtPmZhaWwocmVhc29uKTsKKyAgICAgICAgbV9icmlkZ2Ut
PmZhaWwoV1RGTW92ZShyZWFzb24pKTsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCkBAIC0yMjUsMTIgKzIyNSwxMiBAQCB2b2lkIFdvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpjbG9zZShpbnQgY29kZSwgY29uc3Qg
U3RyaW5nJiByZWFzbwogICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmNsb3NlKGNvZGUsIHJl
YXNvbik7CiB9CiAKLXZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6
OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpQZWVyOjpmYWlsKFN0cmluZyYmIHJlYXNvbikKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogICAgIGlmICghbV9tYWluV2ViU29ja2V0Q2hhbm5lbCkKICAgICAgICAg
cmV0dXJuOwotICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmZhaWwocmVhc29uKTsKKyAgICBt
X21haW5XZWJTb2NrZXRDaGFubmVsLT5mYWlsKFdURk1vdmUocmVhc29uKSk7CiB9CiAKIHZvaWQg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpc2Nvbm5lY3QoKQpAQCAt
MjcyLDEzICsyNzIsMTMgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
UGVlcjo6ZGlkQ29ubmVjdCgpCiAgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKLXZvaWQgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6
OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2Vy
Q2xpZW50V3JhcHBlciwgbWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgIG1fbG9hZGVyUHJveHkucG9z
dFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3Jh
cHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlciwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSku
aXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUg
ewogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxT
Y29wZSgpIHx8IGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIHdvcmtl
ckNsaWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOworICAgICAgICB3b3Jr
ZXJDbGllbnRXcmFwcGVyLT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAg
ICB9LCBtX3Rhc2tNb2RlKTsKIH0KIApAQCAtMzIzLDEzICszMjMsMTMgQEAgdm9pZCBXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5k
bGVkQnVmZmVyZWQKICAgICB9LCBtX3Rhc2tNb2RlKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBT
dHJpbmcmIHJlYXNvbikKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBl
ZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYgcmVhc29uKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRv
V29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtl
ckNsaWVudFdyYXBwZXIsIHJlYXNvbiA9IHJlYXNvbi5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0
VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFw
cGVyID0gbV93b3JrZXJDbGllbnRXcmFwcGVyLCByZWFzb24gPSBXVEZNb3ZlKHJlYXNvbikuaXNv
bGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewog
ICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNXb3JrZXJHbG9iYWxTY29w
ZSgpIHx8IGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSk7Ci0gICAgICAgIHdvcmtlckNs
aWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsKKyAgICAgICAgd29y
a2VyQ2xpZW50V3JhcHBlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihXVEZNb3ZlKHJlYXNvbikp
OwogICAgIH0sIG1fdGFza01vZGUpOwogfQogCkBAIC00MTIsMTUgKzQxMiwxNCBAQCB2b2lkIFdv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmNvbm5lY3QoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cgogICAgICAgICAKICAgICAgICAgLy8gRklYTUU6IG1ha2UgdGhpcyBt
aXhlZCBjb250ZW50IGNoZWNrIGVxdWl2YWxlbnQgdG8gdGhlIGRvY3VtZW50IG1peGVkIGNvbnRl
bnQgY2hlY2sgY3VycmVudGx5IGluIFdlYlNvY2tldDo6Y29ubmVjdCgpCiAgICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKLSAgICAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBlcnJvclN0cmluZyA9IE1peGVkQ29udGVudENoZWNrZXI6OmNoZWNrRm9yTWl4
ZWRDb250ZW50SW5GcmFtZVRyZWUoKmZyYW1lLCB1cmwpOwotICAgICAgICAgICAgaWYgKGVycm9y
U3RyaW5nKSB7Ci0gICAgICAgICAgICAgICAgcGVlci0+ZmFpbChlcnJvclN0cmluZy52YWx1ZSgp
KTsKKyAgICAgICAgICAgIGlmIChhdXRvIGVycm9yU3RyaW5nID0gTWl4ZWRDb250ZW50Q2hlY2tl
cjo6Y2hlY2tGb3JNaXhlZENvbnRlbnRJbkZyYW1lVHJlZSgqZnJhbWUsIHVybCkpIHsKKyAgICAg
ICAgICAgICAgICBwZWVyLT5mYWlsKFdURk1vdmUoZXJyb3JTdHJpbmcpLnZhbHVlKCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAg
IGlmIChwZWVyLT5jb25uZWN0KHVybCwgcHJvdG9jb2wpID09IFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpDb25uZWN0U3RhdHVzOjpLTykKLSAgICAgICAgICAgIHBlZXItPmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IobnVsbFN0cmluZygpKTsKKyAgICAgICAgICAgIHBlZXItPmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IoU3RyaW5nIHsgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTUyMCwxNyArNTE5LDE3
IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y2xvc2Uo
aW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhCiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNv
bikKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6ZmFpbChT
dHJpbmcmJiByZWFzb24pCiB7CiAgICAgaWYgKCFtX3BlZXIpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tUb0xvYWRlcihbcGVlciA9IG1fcGVlciwgcmVhc29u
ID0gcmVhc29uLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KSB7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKFtwZWVyID0gbV9wZWVyLCBy
ZWFzb24gPSBXVEZNb3ZlKHJlYXNvbikuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNEb2N1bWVudCgpKTsK
ICAgICAgICAgQVNTRVJUKHBlZXIpOwogCi0gICAgICAgIHBlZXItPmZhaWwocmVhc29uKTsKKyAg
ICAgICAgcGVlci0+ZmFpbChXVEZNb3ZlKHJlYXNvbikpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDM2OWE2ZmExNmQ0YzQ0MjQ3ZGQw
NmNlMDZkN2FhYTc1ODAzNGJmYWMuLjQwYTNmYTcwY2MyM2NhODAxMjI4MTQ2Mjk0ZDA1YzcxYmU4
MjRlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC02Myw3
ICs2Myw3IEBAIHB1YmxpYzoKICAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFJl
c3VsdCBzZW5kKEJsb2ImKSBmaW5hbDsKICAgICB1bnNpZ25lZCBidWZmZXJlZEFtb3VudCgpIGNv
bnN0IGZpbmFsOwogICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29u
KSBmaW5hbDsKLSAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOworICAg
IHZvaWQgZmFpbChTdHJpbmcmJiByZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzY29ubmVjdCgp
IGZpbmFsOyAvLyBXaWxsIHN1cHByZXNzIGRpZENsb3NlKCkuCiAgICAgdm9pZCBzdXNwZW5kKCkg
ZmluYWw7CiAgICAgdm9pZCByZXN1bWUoKSBmaW5hbDsKQEAgLTgyLDE5ICs4MiwxOSBAQCBwdWJs
aWM6CiAgICAgICAgIHZvaWQgc2VuZChCbG9iJik7CiAgICAgICAgIHZvaWQgYnVmZmVyZWRBbW91
bnQoKTsKICAgICAgICAgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24p
OwotICAgICAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOworICAgICAgICB2b2lk
IGZhaWwoU3RyaW5nJiYgcmVhc29uKTsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAgICAg
ICAgIHZvaWQgc3VzcGVuZCgpOwogICAgICAgICB2b2lkIHJlc3VtZSgpOwogCiAgICAgICAgIC8v
IFdlYlNvY2tldENoYW5uZWxDbGllbnQgZnVuY3Rpb25zLgogICAgICAgICB2b2lkIGRpZENvbm5l
Y3QoKSBmaW5hbDsKLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpIGZpbmFsOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKFN0cmluZyYm
IG1lc3NhZ2UpIGZpbmFsOwogICAgICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rv
cjx1aW50OF90PiYmKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3Vu
dCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkU3RhcnRD
bG9zaW5nSGFuZHNoYWtlKCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQg
dW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVz
LCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7Ci0gICAg
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbikgZmlu
YWw7CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiByZWFzb24p
IGZpbmFsOwogICAgICAgICB2b2lkIGRpZFVwZ3JhZGVVUkwoKSBmaW5hbDsKIAogICAgIHByaXZh
dGU6CkBAIC0xMjYsNyArMTI2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWw6OlNlbmRSZXN1bHQgc2VuZChCbG9iJik7CiAgICAgICAgIHVuc2lnbmVkIGJ1
ZmZlcmVkQW1vdW50KCk7CiAgICAgICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uKTsKLSAgICAgICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKTsKKyAg
ICAgICAgdm9pZCBmYWlsKFN0cmluZyYmIHJlYXNvbik7CiAgICAgICAgIHZvaWQgZGlzY29ubmVj
dCgpOwogICAgICAgICB2b2lkIHN1c3BlbmQoKTsKICAgICAgICAgdm9pZCByZXN1bWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25EYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXhjZXB0aW9uRGF0YS5oCmluZGV4IDk4NTMzNzZmMWM0ZGRjZmQxYTUxYWQ0YWVh
YzlkMDY0ZWU5OWY1NDkuLmNlMGNhZTM2N2YyY2M1MTFhMjUyYTY1MmUzYzYyNTRkYWJhMWI5M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25EYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaApAQCAtNDAsMTAgKzQwLDggQEAgc3RydWN0
IEV4Y2VwdGlvbkRhdGEgewogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgRXhjZXB0
aW9uIHRvRXhjZXB0aW9uKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBjb2RlLCBTdHJpbmcgeyBtZXNzYWdlIH0gfTsKLSAgICB9CisgICAgRXhjZXB0aW9uIHRvRXhj
ZXB0aW9uKCkgY29uc3QgJiB7IHJldHVybiBFeGNlcHRpb24geyBjb2RlLCBTdHJpbmcgeyBtZXNz
YWdlIH0gfTsgfQorICAgIEV4Y2VwdGlvbiB0b0V4Y2VwdGlvbigpICYmIHsgcmV0dXJuIEV4Y2Vw
dGlvbiB7IGNvZGUsIFdURk1vdmUobWVzc2FnZSkgfTsgfQogfTsKIAogdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yV29ya2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKaW5kZXggYzEzMzc0YjE2MWVlYmJmNjc4NjBhMDAwOWJl
YzE0YTM1YzUzMjk5Zi4uZmUxY2MyZGJiOTg2M2NkNDQ4MDQ3NmQyZTIxYTVhMjI5ZGM4YTBlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3Jr
ZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JXb3JrZXJBZ2VudC5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCBQcm90b2NvbDo6RXJyb3JTdHJp
bmdPcjx2b2lkPiBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2VuZE1lc3NhZ2VUb1dvcmtlcihjb25z
dCBTdAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNl
bmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmIHByb3h5
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIEluc3BlY3RvcldvcmtlckFnZW50OjpzZW5k
TWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiBwcm94eSwg
U3RyaW5nJiYgbWVzc2FnZSkKIHsKLSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2hN
ZXNzYWdlRnJvbVdvcmtlcihwcm94eS5pZGVudGlmaWVyKCksIG1lc3NhZ2UpOworICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyLT5kaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyKHByb3h5LmlkZW50aWZp
ZXIoKSwgV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yV29ya2VyQWdlbnQ6
OnNob3VsZFdhaXRGb3JEZWJ1Z2dlck9uU3RhcnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCmluZGV4IDkw
NTY3YmIwMjEwZWRlOWQzZDcyZDhkMDI1MzQ5NzM3MzdjMGE2ZjEuLmUxYmJkOGY5NDZlNDFmMzAx
YThmZjg3Zjc0YWZlMzk5ZDYxZmVjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAg
cHVibGljOgogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2Vu
ZE1lc3NhZ2VUb1dvcmtlcihjb25zdCBTdHJpbmcmIHdvcmtlcklkLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOwogCiAgICAgLy8gV29ya2VySW5zcGVjdG9yUHJveHk6OlBhZ2VDaGFubmVsCi0gICAg
dm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5
JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtl
clRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmLCBTdHJpbmcmJiBtZXNzYWdlKTsKIAog
ICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgogICAgIGJvb2wgc2hvdWxkV2FpdEZvckRl
YnVnZ2VyT25TdGFydCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
YWNoZVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQ
cm92aWRlci5oCmluZGV4IGVlZjYyNTcyYTc1OGI2ZmVjYTdjYjBhNzU2ZjQxY2QxODU4MDlhYTcu
LmE0Nzk3YTU2YmZhNmQwNjAyZDM0OTk3Y2IwMThlMzgxYzQ2ZDcxNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NhY2hlU3RvcmFnZVByb3ZpZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGlj
OgogICAgICAgICB2b2lkIG9wZW4oY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU3RyaW5nJiwg
RE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAg
ICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hlSWRlbnRpZmll
ckNhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0
IENsaWVudE9yaWdpbiYsIHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJbmZvc0NhbGxi
YWNrJiYpIGZpbmFsIHsgfQotICAgICAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCwg
Y29uc3QgUmV0cmlldmVSZWNvcmRzT3B0aW9ucyYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2Fs
bGJhY2smJikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90
LCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJh
Y2smJikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgYmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0
X3QsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25zJiYsIERPTUNhY2hl
RW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsIHsgfQogICAgICAgICB2
b2lkIGJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90LCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJl
Y29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmlu
YWwgeyB9CiAgICAgICAgIHZvaWQgcmVmZXJlbmNlKHVpbnQ2NF90KSBmaW5hbCB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKaW5kZXggZDljZGU0ZjVlOTgyZDgzYzBkOTMx
OTBhOTgwMmQ1Mjc1ODMwOWNmNS4uYjM5YmJkZDQ4YTU0YTQ3MmM4OWJhMGMyNDkyNWUyNjMxYWJj
YjliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAKQEAgLTc5LDkgKzc5
LDkgQEAgdm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNo
YW5uZWwpCiAgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNjb25uZWN0RnJvbnRl
bmQoY2hhbm5lbCk7CiB9CiAKLXZvaWQgUGFnZURlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZy
b21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlz
cGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKQogewotICAgIG1fcGFnZS5p
bnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1lc3NhZ2Up
OworICAgIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdlRnJvbUZy
b250ZW5kKFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpzZXRJ
bmRpY2F0aW5nKGJvb2wgaW5kaWNhdGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZURlYnVnZ2FibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUu
aAppbmRleCA1OGZjNDc3Y2Y0MzUzYjUyN2NjM2ZkMmQxOTllNGM3ZmIwMTJiYTFiLi44YmQ2ZmJh
Nzk1ZWIzZGM4OGVlNzE4NzYzOTRiNTc4ZDk3N2E1YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
RGVidWdnYWJsZS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29ubmVj
dChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9u
ID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lk
IGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKLSAgICB2b2lk
IGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsK
KyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2FnZSkgZmlu
YWw7CiAgICAgdm9pZCBzZXRJbmRpY2F0aW5nKGJvb2wpIGZpbmFsOwogCiAgICAgY29uc3QgU3Ry
aW5nJiBuYW1lT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX25hbWVPdmVycmlkZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAppbmRleCBi
YTExZGRhMTY3ZmUxMGExMjFjZDExY2I5YmUyN2Q5MmJjNTE4MmY4Li42MjQ5MWZlYzJhNGE1MDcx
YmZkNjBmMjQ3OWMxNmE3ZTkzYTgwM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtMTM4LDEyICsxMzgsMTIgQEAgdm9pZCBXb3Jr
ZXJJbnNwZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VUb1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIo
Y29uc3QgU3RyaW5nJgogICAgIH0pOwogfQogCi12b2lkIFdvcmtlckluc3BlY3RvclByb3h5Ojpz
ZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3Zv
aWQgV29ya2VySW5zcGVjdG9yUHJveHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQo
U3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBpZiAoIW1fcGFnZUNoYW5uZWwpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFnZUNoYW5uZWwtPnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRl
bmQoKnRoaXMsIG1lc3NhZ2UpOworICAgIG1fcGFnZUNoYW5uZWwtPnNlbmRNZXNzYWdlRnJvbVdv
cmtlclRvRnJvbnRlbmQoKnRoaXMsIFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlcklu
c3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclBy
b3h5LmgKaW5kZXggODMzNGQ0N2QzNGRlZjc1ZDRiYmNlMzM2ZTI4ZWJmZThkNzZiMjAyZi4uODNh
Y2I1ZmRkYmExMDQ0MTQ3ZTc4NGFiNjllNWM5MGZmYjViMDhmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJs
aWM6CiAgICAgY2xhc3MgUGFnZUNoYW5uZWwgewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVh
bCB+UGFnZUNoYW5uZWwoKSA9IGRlZmF1bHQ7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVz
c2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiwgY29uc3QgU3Ry
aW5nJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9G
cm9udGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSYsIFN0cmluZyYmKSA9IDA7CiAgICAgfTsKIAog
ICAgIHN0YXRpYyBXZWFrSGFzaFNldDxXb3JrZXJJbnNwZWN0b3JQcm94eT4mIGFsbFdvcmtlcklu
c3BlY3RvclByb3hpZXMoKTsKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29u
bmVjdFRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihQYWdlQ2hhbm5lbCYpOwogICAgIHZvaWQg
ZGlzY29ubmVjdEZyb21Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKCk7CiAgICAgdm9pZCBzZW5k
TWVzc2FnZVRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihjb25zdCBTdHJpbmcmKTsKLSAgICB2
b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CisgICAg
dm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKFN0cmluZyYmKTsKIAogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBXb3JrZXJJbnNwZWN0b3JQcm94eShjb25zdCBTdHJpbmcmIGlkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5
LmNwcAppbmRleCA2YWQyMTc3NjM1NWI3MjU5MDU1ZmZkYmRlODgwYzczYmJlZGYxNzc2Li5jYjZj
NjIyYmYzOTgyYjg2ZTY3ODI3MjkzMzM4YTBlYjI4ZmFmNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtMjEzLDkgKzIxMyw5IEBA
IHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChj
b25zdCBTdHJpbmcmIGVycm9yTWVzc2FnCiAKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBv
c3RNZXNzYWdlVG9EZWJ1Z2dlcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
bWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBtZXNzYWdlID0g
bWVzc2FnZS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX21heUJl
RGVzdHJveWVkKQotICAgICAgICAgICAgbV9pbnNwZWN0b3JQcm94eS0+c2VuZE1lc3NhZ2VGcm9t
V29ya2VyVG9Gcm9udGVuZChtZXNzYWdlKTsKKyAgICAgICAgICAgIG1faW5zcGVjdG9yUHJveHkt
PnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAg
fSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0Ns
aWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYjRjZWQzYjYwM2I0OWJjNjgwMDBiYzZhMTQ0ZTMzMzQ4
ZDEzMzdlZi4uMTM3Mzg5ODkxNjhjZWEyM2MyNmY2MjE2Njk1N2E1ZGM3NGE2ZDQ1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5jcHAKQEAgLTkyLDIxICs5MiwyMiBAQCBib29sIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRh
c2tGb3JKb2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllcgogICAgIHJl
dHVybiBpc1Bvc3RlZDsKIH0KIAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmpvYlJlamVjdGVk
SW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgY29uc3Qg
RXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpq
b2JSZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZp
ZXIsIEV4Y2VwdGlvbkRhdGEmJiBleGNlcHRpb25EYXRhKQogewotICAgIHBvc3RUYXNrRm9ySm9i
KGpvYklkZW50aWZpZXIsIElzSm9iQ29tcGxldGU6OlllcywgW2V4Y2VwdGlvbkRhdGEgPSBleGNl
cHRpb25EYXRhLmlzb2xhdGVkQ29weSgpXSAoYXV0byYgam9iKSB7Ci0gICAgICAgIGpvYi5mYWls
ZWRXaXRoRXhjZXB0aW9uKGV4Y2VwdGlvbkRhdGEudG9FeGNlcHRpb24oKSk7CisgICAgcG9zdFRh
c2tGb3JKb2Ioam9iSWRlbnRpZmllciwgSXNKb2JDb21wbGV0ZTo6WWVzLCBbZXhjZXB0aW9uRGF0
YSA9IFdURk1vdmUoZXhjZXB0aW9uRGF0YSkuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBqb2IpIG11
dGFibGUgeworICAgICAgICBqb2IuZmFpbGVkV2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGV4Y2VwdGlv
bkRhdGEpLnRvRXhjZXB0aW9uKCkpOwogICAgIH0pOwogfQogCiB2b2lkIFNXQ2xpZW50Q29ubmVj
dGlvbjo6cmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRl
bnRpZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIHJl
Z2lzdHJhdGlvbkRhdGEsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVu
UmVzb2x2ZWQpCiB7Ci0gICAgYm9vbCBpc1Bvc3RlZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50
aWZpZXIsIElzSm9iQ29tcGxldGU6OlllcywgW3JlZ2lzdHJhdGlvbkRhdGEgPSByZWdpc3RyYXRp
b25EYXRhLmlzb2xhdGVkQ29weSgpLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWRdIChhdXRvJiBq
b2IpIG11dGFibGUgeworICAgIGF1dG8gcmVnaXN0cmF0aW9uS2V5ID0gcmVnaXN0cmF0aW9uRGF0
YS5rZXk7CisgICAgYm9vbCBpc1Bvc3RlZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50aWZpZXIs
IElzSm9iQ29tcGxldGU6OlllcywgW3JlZ2lzdHJhdGlvbkRhdGEgPSBXVEZNb3ZlKHJlZ2lzdHJh
dGlvbkRhdGEpLmlzb2xhdGVkQ29weSgpLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWRdIChhdXRv
JiBqb2IpIG11dGFibGUgewogICAgICAgICBqb2IucmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFdU
Rk1vdmUocmVnaXN0cmF0aW9uRGF0YSksIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CiAgICAg
fSk7CiAKICAgICBpZiAoIWlzUG9zdGVkICYmIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCA9PSBT
aG91bGROb3RpZnlXaGVuUmVzb2x2ZWQ6OlllcykKLSAgICAgICAgZGlkUmVzb2x2ZVJlZ2lzdHJh
dGlvblByb21pc2UocmVnaXN0cmF0aW9uRGF0YS5rZXkpOworICAgICAgICBkaWRSZXNvbHZlUmVn
aXN0cmF0aW9uUHJvbWlzZShyZWdpc3RyYXRpb25LZXkpOwogfQogCiB2b2lkIFNXQ2xpZW50Q29u
bmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiYgcmVnaXN0
cmF0aW9uS2V5LCBGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGY5
NTQwNGI3NGI2ZDQ4MmRlN2U2OGEwNWVhNTMyZTFiODg2OGY0YzEuLjA1ZmRkMDNhZWY0M2M1ZDA2
MGZjN2YxYmNjNDVjOGFjYmM4Yzg1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJs
aWM6CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgU1dDbGllbnRDb25uZWN0aW9uKCk7
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdv
cmtlckpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGpvYlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIs
IEV4Y2VwdGlvbkRhdGEmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RyYXRpb25K
b2JSZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YSYmLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2Vy
Sm9iSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYmLCBGZXRjaE9wdGlv
bnM6OkNhY2hlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9u
Q29udGV4dElkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFNlcnZpY2VXb3Jr
ZXJEYXRhJiYgc291cmNlLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5j
cHAKaW5kZXggNjhmMGU2MGVjNzQ3NGFiZTA2YjI2MTE0MmM3Zjc1MmViMjRjZGMyYy4uNThkOTZl
ZjU4OWNhODE1Y2NjOTMyMzI4OTllNjMzZGI3ZmJmYzAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3Bw
CkBAIC01NiwxMSArNTYsMTYgQEAgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUg
dG9TZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlKFNjcmlwdEV4ZWN1dGkKICAgICByZXR1cm4g
U2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZTo6TmVzdGVkOwogfQogCi1TZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QK
K1NlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRl
ZENvcHkoKSBjb25zdCAmCiB7CiAgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgdHlwZSwgZnJhbWVU
eXBlLCB1cmwuaXNvbGF0ZWRDb3B5KCksIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIH07
CiB9CiAKK1NlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpp
c29sYXRlZENvcHkoKSAmJgoreworICAgIHJldHVybiB7IGlkZW50aWZpZXIsIHR5cGUsIGZyYW1l
VHlwZSwgV1RGTW92ZSh1cmwpLmlzb2xhdGVkQ29weSgpLCBsYXN0TmF2aWdhdGlvbldhc0FwcElu
aXRpYXRlZCB9OworfQorCiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YTo6ZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewogICAgIGJv
b2wgaXNEb2N1bWVudCA9IGlzPERvY3VtZW50Pihjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKaW5k
ZXggZTI4YjJiYzU3OGJlYjI4YmYwMTdkOTNhYjExMzZlYWFiNmZjYzFmOS4uMzk3NWQ1MTgxNjVj
YWI0NzgzNGM5MWIxZTQxMjk2Y2U4MTI2MTFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKQEAgLTQ3LDcg
KzQ3LDggQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsKICAgICBVUkwgdXJsOwog
ICAgIExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkOwogCi0gICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29u
c3Q7CisgICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29uc3QgJjsK
KyAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBpc29sYXRlZENvcHkoKSAmJjsKIAogICAgIHN0
YXRpYyBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YS5oCmluZGV4IDQ2YTlmYTcwMTI5ZTM3NWM1OTY4MWJiYTZlMzBl
YTk4YWJjYjFkODcuLjlhNjZkNDhiMGEyOWQ5ZjI5M2EzMmJmZmU4NGE1N2MwZDc3NzI3YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRleHREYXRhLmgKQEAgLTc5LDcgKzc5LDggQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSB7CiAgICAgICAgICAgICB9fTsKICAgICAgICAgfQogCi0gICAgICAgIEltcG9y
dGVkU2NyaXB0IGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0dXJuIHsgc2NyaXB0Lmlzb2xhdGVk
Q29weSgpLCByZXNwb25zZVVSTC5pc29sYXRlZENvcHkoKSwgbWltZVR5cGUuaXNvbGF0ZWRDb3B5
KCkgfTsgfQorICAgICAgICBJbXBvcnRlZFNjcmlwdCBpc29sYXRlZENvcHkoKSBjb25zdCAmIHsg
cmV0dXJuIHsgc2NyaXB0Lmlzb2xhdGVkQ29weSgpLCByZXNwb25zZVVSTC5pc29sYXRlZENvcHko
KSwgbWltZVR5cGUuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgICAgICBJbXBvcnRlZFNjcmlwdCBp
c29sYXRlZENvcHkoKSAmJiB7IHJldHVybiB7IFdURk1vdmUoc2NyaXB0KS5pc29sYXRlZENvcHko
KSwgV1RGTW92ZShyZXNwb25zZVVSTCkuaXNvbGF0ZWRDb3B5KCksIFdURk1vdmUobWltZVR5cGUp
Lmlzb2xhdGVkQ29weSgpIH07IH0KICAgICB9OwogCiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNl
V29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24uY3BwCmluZGV4IGY3YTQ0NWQxNjVmYWFjYWFmN2MyYzg0ZmQzMmUwNTk3YjRiNWVjN2Uu
LmZiMTAyMjE4NzE3ZGQ1MWE2ZWUzMTA0MTM4YmRjMWRmYjg3ZjBjOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi5jcHAKQEAgLTI2OSw3ICsyNjksNyBAQCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIm
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246Om5hdmlnYXRpb25QcmVsb2FkKCkKIH0KIAogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05fRVZFTlQpCi12b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b246OnNob3dOb3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgTm90aWZpY2F0aW9uT3B0aW9ucyYgb3B0aW9ucywgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBTdHJpbmcmJiB0aXRsZSwgTm90aWZpY2F0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIERPTVByb21p
c2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikg
ewogICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3Ry
YXRpb24gZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmUgd29ya2VyIl9zIH0pOwpAQCAtMjkyLDcgKzI5
Miw3IEBAIHZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0CiAKICAgICAvLyBUaGUgTm90aWZpY2F0aW9u
IGlzIGtlcHQgYWxpdmUgYnkgdmlydHVlIG9mIGJlaW5nIHNob3coKSduIHNvb24uCiAgICAgLy8g
RklYTUU6IFdoZW4gaW1wbGVtZW50aW5nIGdldE5vdGlmaWNhdGlvbnMoKSwgc3RvcmUgdGhpcyBO
b3RpZmljYXRpb24gaW4gdGhlIHJlZ2lzdHJhdGlvbidzIG5vdGlmaWNhdGlvbiBsaXN0LgotICAg
IGF1dG8gbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uOjpjcmVhdGUoY29udGV4dCwgdGl0bGUs
IG9wdGlvbnMpOworICAgIGF1dG8gbm90aWZpY2F0aW9uID0gTm90aWZpY2F0aW9uOjpjcmVhdGUo
Y29udGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0aW9ucykpOwogCiAgICAgY29udGV4
dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CiAgICAgICAgIHByb21pc2UucmVz
b2x2ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggMzM0MzM3YTZiZWM2N2YxZjYyNGI4MzBl
YjBmZDY0MDNjNzM0ZTE3OS4uZjdjYzkwZWViNDA3OWE0ZmRmMTIxZTJjZjcxZDg1NzBmNTc1ZjZh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgU3RyaW5nIHRhZzsKICAgICB9OwogCi0gICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBOb3RpZmljYXRp
b25PcHRpb25zJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgc2hvd05v
dGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYgdGl0bGUsIE5vdGlm
aWNhdGlvbk9wdGlvbnMmJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQg
Z2V0Tm90aWZpY2F0aW9ucyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgR2V0Tm90aWZp
Y2F0aW9uT3B0aW9ucyYgZmlsdGVyLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMU2VxdWVuY2U8SURM
SW50ZXJmYWNlPE5vdGlmaWNhdGlvbj4+Pik7CiAKICAgICB2b2lkIGFkZE5vdGlmaWNhdGlvblRv
TGlzdChOb3RpZmljYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuY3Bw
CmluZGV4IGVmMDJhN2ZmYzBlODcxNzMxYjIyNmIzNjdjNDEwNWFlYTc4ZGFjYTQuLjAyNTU0YTBi
NTdiYTZjNWY3NTZkOTZjMDY0Y2NhNjkwYWY5NzRkZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25PcHRpb25zLmNwcApAQCAtMzAsMTEgKzMwLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnM6Omlzb2xhdGVkQ29weSgpIGNvbnN0CitTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9ucyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9uczo6aXNvbGF0ZWRD
b3B5KCkgY29uc3QgJgogewogICAgIHJldHVybiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0
aW9ucyB7IHNjb3BlLmlzb2xhdGVkQ29weSgpLCB0eXBlLCB1cGRhdGVWaWFDYWNoZSB9OwogfQog
CitTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uT3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkgJiYKK3sKKyAgICByZXR1cm4gU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbk9wdGlvbnMgeyBXVEZNb3ZlKHNjb3BlKS5pc29sYXRlZENvcHkoKSwgdHlw
ZSwgdXBkYXRlVmlhQ2FjaGUgfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlv
bnMuaAppbmRleCA5ZTM2OTBlYTczZjMzNjg5NjRmZDQ2YzkxNTU2ZTU5MWZiZGM2YTNlLi4yZjVi
ZjlkM2JjMzljNGEzOWUwNmNkMjVjYzgxOGE3N2Q0MzhkNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnMuaApAQCAtMzksNyArMzksOCBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbk9wdGlvbnMgewogICAgIFdvcmtlclR5cGUgdHlwZTsKICAgICBTZXJ2aWNlV29y
a2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGU7CiAKLSAgICBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdDsKKyAgICBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uT3B0aW9ucyBpc29sYXRlZENvcHkoKSBjb25zdCAmOworICAgIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25PcHRpb25zIGlzb2xhdGVkQ29weSgpICYmOwogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25PcHRpb25zPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRl
YnVnZ2FibGUuY3BwCmluZGV4IDQxMmU1Njk1NzI1MzZmYmViZTA4YmEzMjk1Mjk2OGFkNzkzNmU4
MGMuLjRmYjQwNDBiY2RiZGNhZDhhZWRjZDZjZGQwZGRkMWNhYmI0YmViOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJEZWJ1
Z2dhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwpCiAg
ICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJveHkoKS5kaXNjb25uZWN0
RnJvbVdvcmtlcihjaGFubmVsKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyRGVidWdnYWJsZTo6
ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFNl
cnZpY2VXb3JrZXJEZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYm
IG1lc3NhZ2UpCiB7Ci0gICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaW5zcGVjdG9yUHJv
eHkoKS5zZW5kTWVzc2FnZVRvV29ya2VyKG1lc3NhZ2UpOworICAgIG1fc2VydmljZVdvcmtlclRo
cmVhZFByb3h5Lmluc3BlY3RvclByb3h5KCkuc2VuZE1lc3NhZ2VUb1dvcmtlcihXVEZNb3ZlKG1l
c3NhZ2UpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJE
ZWJ1Z2dhYmxlLmgKaW5kZXggNTliZmMzY2ZkN2Y3YWM0NmRlNmQyNTRkZWY1ZjExOGMwZGI5ZTg1
Yy4uZTFkMDBmNzI1ZGNlYmM0NmNiMmY3MmMzOWEzYmZjMzQ4NTQ3MjQyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVn
Z2FibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyRGVidWdnYWJsZS5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWND
b25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsK
ICAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsK
LSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVz
c2FnZSkgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlclRocmVhZFByb3h5JiBt
X3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVj
dG9yUHJveHkuY3BwCmluZGV4IDczZjJjNWNlOTE2YWNiNjU1MjExM2JjODJjOTg4OWM5MTcyMzhm
ODUuLjI0ODUwYzRmZTc0NWYyZTc2NTgyZTY0YzUxNWE5NzFlNGQzMjljYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNw
ZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcApAQCAtODAsMTkgKzgwLDE5IEBAIHZv
aWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpkaXNjb25uZWN0RnJvbVdvcmtlcihGcm9u
dGVuZENoYW5uZWwmIGNoYW5uZWwpCiAgICAgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlcklu
c3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZVRvV29ya2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K3ZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZVRvV29ya2VyKFN0
cmluZyYmIG1lc3NhZ2UpCiB7Ci0gICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkudGhyZWFk
KCkucnVuTG9vcCgpLnBvc3REZWJ1Z2dlclRhc2soW21lc3NhZ2UgPSBtZXNzYWdlLmlzb2xhdGVk
Q29weSgpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgeworICAgIG1fc2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LnRocmVhZCgpLnJ1bkxvb3AoKS5wb3N0RGVidWdnZXJUYXNrKFtt
ZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKS5pc29sYXRlZENvcHkoKV0gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQpIHsKICAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KGNvbnRleHQpLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRl
bmQobWVzc2FnZSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclBy
b3h5OjpzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKK3ZvaWQgU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZUZyb21Xb3Jr
ZXJUb0Zyb250ZW5kKFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKCFtX2NoYW5uZWwpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fY2hhbm5lbC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKG1l
c3NhZ2UpOworICAgIG1fY2hhbm5lbC0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKFdURk1vdmUobWVz
c2FnZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJv
eHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDM2YTgwYzlkNDViZmM0M2ZhMjg0NTNiYzE0ZjU5NzE0
NTdhMzVlYTIuLjc0MWUwYWU3NzkwMDlmZmVlODAxZTRiMWI1ZDcyNDNkZDM3ZjI1MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eS5oCkBAIC01Miw4ICs1Miw4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdFRvV29ya2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFu
bmVsJik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbVdvcmtlcihJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbCYpOwotICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1dvcmtlcihjb25zdCBTdHJpbmcmKTsK
LSAgICB2b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2VyKFN0cmluZyYmKTsKKyAgICB2b2lkIHNlbmRN
ZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoU3RyaW5nJiYpOwogCiBwcml2YXRlOgogICAgIFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eSYgbV9zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBhOTRlNmQxZTc2NWQzNTkyMTA1
ODczNDAxMzFjMGEzOTE5ZTZlODdmLi44YTIxOTQxODMzYmJhOGEwZGE2MDQ4YzNiYjc2ZTg2MDA1
MWQ0ZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTEyNiw5
ICsxMjYsOSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6cG9zdFRhc2tUb0xvYWRl
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdAogCiB2b2lkIFNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6cG9zdE1lc3NhZ2VUb0RlYnVnZ2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
IHsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9LCBtZXNzYWdlID0gbWVzc2FnZS5pc29sYXRlZENvcHkoKV0geworICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH0sIG1lc3NhZ2UgPSBtZXNzYWdlLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIHRlcm1pbmF0ZWQgY2FzZS4KLSAgICAgICAgbV9pbnNwZWN0b3JQ
cm94eS5zZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zyb250ZW5kKG1lc3NhZ2UpOworICAgICAgICBt
X2luc3BlY3RvclByb3h5LnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV1RGTW92ZSht
ZXNzYWdlKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eTo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IGNvbm5lY3RpbwogCiAgICAgQVNTRVJUKCFtX29uZ29pbmdGZXRjaFRhc2tzLmNvbnRhaW5zKGtl
eSkpOwogICAgIG1fb25nb2luZ0ZldGNoVGFza3MuYWRkKGtleSwgY2xpZW50LmNvcHlSZWYoKSk7
Ci0gICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwg
cmVxdWVzdCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZl
cnJlcikuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBm
ZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwg
Y2xpZW50SWRlbnRpZmllciA9IFdURk1vdmUoY2xpZW50SWRlbnRpZmllcikuaXNvbGF0ZWRDb3B5
KCksIHJlc3VsdGluZ0NsaWVudElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlc3VsdGluZ0NsaWVudElk
ZW50aWZpZXIpLmlzb2xhdGVkQ29weSgpXShhdXRvJikgbXV0YWJsZSB7CisgICAgcG9zdFRhc2tG
b3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH0sIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwgcmVxdWVzdCA9IHJlcXVl
c3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlcikuaXNvbGF0ZWRD
b3B5KCksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLmlzb2xhdGVkQ29weSgpLCBmZXRjaElk
ZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwgY2xpZW50
SWRlbnRpZmllciA9IFdURk1vdmUoY2xpZW50SWRlbnRpZmllcikuaXNvbGF0ZWRDb3B5KCksIHJl
c3VsdGluZ0NsaWVudElkZW50aWZpZXIgPSBXVEZNb3ZlKHJlc3VsdGluZ0NsaWVudElkZW50aWZp
ZXIpLmlzb2xhdGVkQ29weSgpXShhdXRvJikgbXV0YWJsZSB7CiAgICAgICAgIHRocmVhZCgpLnF1
ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyLCBp
c1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQsIFdURk1vdmUoY2xpZW50SWRl
bnRpZmllciksIFdURk1vdmUocmVzdWx0aW5nQ2xpZW50SWRlbnRpZmllcikpOwogICAgIH0sIFdv
cmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNw
cAppbmRleCBkNDdlN2I4MDVjNjJkMzRkMmQ4MmQ1ZmRmN2Q3N2Q0NWY4ZDc3YzFjLi4yYTYxNDZl
YTFhMzBjZGZhNmQ1NzJkNmE0NTQ0YzY4OGUzNzcyNDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFi
YXNlLmNwcApAQCAtNjA1LDcgKzYwNSw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6
aW1wb3J0UmVjb3JkcygpCiAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEgeyBXVEZNb3ZlKCprZXkpLCByZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBXVEZNb3ZlKHNjb3BlVVJMKSwgKnVwZGF0ZVZpYUNhY2hlLCBsYXN0VXBkYXRlQ2hlY2tUaW1l
LCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShzZXJ2aWNlV29ya2VyRGF0YSkg
fTsKICAgICAgICAgYXV0byBjb250ZXh0RGF0YSA9IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7
IHN0ZDo6bnVsbG9wdCwgV1RGTW92ZShyZWdpc3RyYXRpb24pLCB3b3JrZXJJZGVudGlmaWVyLCBX
VEZNb3ZlKHNjcmlwdCksIFdURk1vdmUoKmNlcnRpZmljYXRlSW5mbyksIFdURk1vdmUoKmNvbnRl
bnRTZWN1cml0eVBvbGljeSksIFdURk1vdmUoKmNvZXApLCBXVEZNb3ZlKHJlZmVycmVyUG9saWN5
KSwgV1RGTW92ZShzY3JpcHRVUkwpLCAqd29ya2VyVHlwZSwgdHJ1ZSwgTGFzdE5hdmlnYXRpb25X
YXNBcHBJbml0aWF0ZWQ6OlllcywgV1RGTW92ZShzY3JpcHRSZXNvdXJjZU1hcCksIHN0ZDo6bnVs
bG9wdCwgV1RGTW92ZSgqbmF2aWdhdGlvblByZWxvYWRTdGF0ZSkgfTsKIAotICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29udGV4dERhdGEg
PSBjb250ZXh0RGF0YS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNvbnRleHREYXRhID0g
V1RGTW92ZShjb250ZXh0RGF0YSkuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5hZGRSZWdpc3RyYXRpb25Ub1N0b3JlKFdURk1vdmUoY29udGV4
dERhdGEpKTsKICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcAppbmRleCAxYjA5NjAxNDg2Y2Rh
ZjEwOWMzODY2Y2IyODI0NDZjZjM3MGE0NDUzLi4zMDAyNjgxZTAyOWYxZDlkMzM3YzUyODY1MmU4
NmIxMmE0ZTE5YjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcApAQCAtMTI0LDkgKzEyNCw5IEBAIHZvaWQgTmV0d29y
a1NvY2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogICAgIGZpbmlzaENsb3NpbmdJZlBvc3NpYmxlKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1NvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpCit2b2lkIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBtX2Vycm9yTWVzc2FnZSA9IGVy
cm9yTWVzc2FnZTsKKyAgICBtX2Vycm9yTWVzc2FnZSA9IFdURk1vdmUoZXJyb3JNZXNzYWdlKTsK
ICAgICBtX2Vycm9yVGltZXIuc3RhcnRPbmVTaG90KE5ldHdvcmtQcm9jZXNzOjpyYW5kb21DbG9z
ZWRQb3J0RGVsYXkoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAppbmRleCA5MGY0NjVkY2JjNjA1NDNjYzU4Mjg1NDk3
M2FiMzE2OGI4NTcwZTVhLi5mOTczY2ZjZTQ5Mjg1ODU5N2ExYWIxNzdhMTRmZGRiODc4MTIxOWRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0
Q2hhbm5lbC5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZl
VGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKGNvbnN0
IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWdu
ZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwotICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoU3RyaW5nJiYpOwogICAgIHZvaWQgZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QoV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3Bv
bnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCmluZGV4IGE2
ZTUwODNiZDkxYWY1MDFlNTBkNDA3ZGFlNTYzZmNmZDViMmM5MTIuLjRiY2U4ODg0OGM2NzMyNjBh
YTVjNjdiNjk0NGI3MTUyYjVkMTVkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcApAQCAtMTc3LDcgKzE3Nyw3
IEBAIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlkUmVjZWl2ZUVycm9yQ2FsbGJhY2soV2ViU29ja2V0
VGFzayogdGFzaywgR0Vycm9yKiBlcnJvcikKICAgICB0YXNrLT5kaWRGYWlsKFN0cmluZzo6ZnJv
bVVURjgoZXJyb3ItPm1lc3NhZ2UpKTsKIH0KIAotdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRGYWls
KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQordm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRGYWls
KFN0cmluZyYmIGVycm9yTWVzc2FnZSkKIHsKICAgICBpZiAobV9yZWNlaXZlZERpZEZhaWwpCiAg
ICAgICAgIHJldHVybjsKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkIFdlYlNvY2tldFRhc2s6OmRp
ZEZhaWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiAgICAgICAgIGdfc2lnbmFsX2hhbmRs
ZXJzX2Rpc2Nvbm5lY3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwog
ICAgICAgICBtX2hhbmRzaGFrZU1lc3NhZ2UgPSBudWxscHRyOwogICAgIH0KLSAgICBtX2NoYW5u
ZWwuZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihlcnJvck1lc3NhZ2UpOworICAgIG1fY2hhbm5lbC5k
aWRSZWNlaXZlTWVzc2FnZUVycm9yKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgaWYgKCFt
X2Nvbm5lY3Rpb24pIHsKICAgICAgICAgZGlkQ2xvc2UoU09VUF9XRUJTT0NLRVRfQ0xPU0VfQUJO
T1JNQUwsIHsgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIFdl
YlNvY2tldFRhc2s6OnJlc3VtZSgpCiAKIHZvaWQgV2ViU29ja2V0VGFzazo6ZGVsYXlGYWlsVGlt
ZXJGaXJlZCgpCiB7Ci0gICAgZGlkRmFpbChtX2RlbGF5RXJyb3JNZXNzYWdlKTsKKyAgICBkaWRG
YWlsKFdURk1vdmUobV9kZWxheUVycm9yTWVzc2FnZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJT
b2NrZXRUYXNrU291cC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNv
Y2tldFRhc2tTb3VwLmgKaW5kZXggN2E2ZjRkMTZiN2RmMzZjMGI5ZTc5NTA4ODU5NDNjY2QzN2Qz
YmZmNi4uN2M0MDdjMDFlZDNmNjVmNDc0YzI1YzJlZTI0YWMyYmJkMGMwYzE5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3Vw
LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQgZGlkQ29u
bmVjdChHUmVmUHRyPFNvdXBXZWJzb2NrZXRDb25uZWN0aW9uPiYmKTsKLSAgICB2b2lkIGRpZEZh
aWwoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBkaWRGYWlsKFN0cmluZyYmKTsKICAgICB2b2lk
IGRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKICAg
ICB2b2lkIGRlbGF5RmFpbFRpbWVyRmlyZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCA3Y2JhZjFlZmY1NDQyODdkZDNhZTg4MTY3MWFkZTU1NjY1OGY4ZmYzLi5lNDQwOTA4
MTQ4NTg2Njc4ODBlNzE3ZjVkYmMyMzUzOTJjNzE0NmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcApAQCAtMzI3LDcgKzMyNyw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpk
aWRJbmNyZWFzZVF1b3RhKFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbiwgUXVvCiAgICAg
fSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCA5OWE0NTMxN2RiZTNiNGZjZjA0YTkyYWExYjVlYWUw
NjdlN2Y1ZDcwLi4yYWJiMGZiMGUzOThlNzRmNjAxNTgyYWU4NWM1ZTc5YzMyNTU5ZTk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05l
dHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC0xMTUsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICAv
LyBNZXNzYWdlIGhhbmRsZXJzIGZvciBGaWxlU3lzdGVtLgogICAgIHZvaWQgcGVyc2lzdGVkKGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogICAgIHZvaWQgcGVyc2lzdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJl
Y3RvcnkoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGZpbGVTeXN0
ZW1HZXREaXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBjbG9z
ZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CiAgICAgdm9pZCBp
c1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogICAgIHZvaWQgbW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDdjNjNmZjM1MmVlMjc4OTAy
OTExZmU4ZWE3NjlmMDFiYzNhMTZjOWUuLjU2ZTg4NGM5MDJmNWNjOGM3ODhjZTQwMzYwYTYxNjRi
YWU4MjE3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0xMTYsOSArMTE2LDkgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0UHJvY2Vzc1Bvb2woV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbCogcHJvY2Vzc1Bvb2wpCiAKIC8vIEluc3BlY3Rvcjo6UmVtb3RlQXV0b21hdGlvblRhcmdl
dCBBUEkKIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJl
bW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpk
aXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYmIG1lc3NhZ2UpCiB7Ci0gICAgbV9iYWNr
ZW5kRGlzcGF0Y2hlci0+ZGlzcGF0Y2gobWVzc2FnZSk7CisgICAgbV9iYWNrZW5kRGlzcGF0Y2hl
ci0+ZGlzcGF0Y2goV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OmNvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmIGNoYW5uZWwsIGJvb2wg
aXNBdXRvbWF0aWNDb25uZWN0aW9uLCBib29sIGltbWVkaWF0ZWx5UGF1c2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmgKaW5kZXggMTJiN2YxOTMyMmVhNzdmMGI2MWFhNGYwMDMxNjJjMzJlYjk3MTkyNy4uOWY2
NWNjODA1NjY0NGNjMDU0MzJhMmU4OTE1OWU0YTM4OTBkMjczYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
aApAQCAtMTM3LDcgKzEzNyw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RP
UikKICAgICAvLyBJbnNwZWN0b3I6OlJlbW90ZUF1dG9tYXRpb25UYXJnZXQgQVBJCiAgICAgU3Ry
aW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb25JZGVudGlmaWVyOyB9Ci0gICAgdm9p
ZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAg
dm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYmIG1lc3NhZ2UpOwogICAgIHZv
aWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWND
b25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSA9IGZhbHNlKTsKICAgICB2
b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwmKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dh
YmxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdn
YWJsZS5jcHAKaW5kZXggNjllNDU3NjYwMDRkYTYzZWRhM2ZlZTA0ZTQ1Y2FlNmZlNzRkMjNlNi4u
NDYzZmZkMmNjZGU4ZmZhNjExN2E3NTQxZGJkZWJiMGVhZTU4ZjJjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVnZ2FibGUuY3Bw
CkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgV2ViUGFnZURlYnVnZ2FibGU6OmRpc2Nvbm5lY3QoRnJv
bnRlbmRDaGFubmVsJiBjaGFubmVsKQogICAgIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCku
ZGlzY29ubmVjdEZyb250ZW5kKGNoYW5uZWwpOwogfQogCi12b2lkIFdlYlBhZ2VEZWJ1Z2dhYmxl
OjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQg
V2ViUGFnZURlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVz
c2FnZSkKIHsKLSAgICBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc3BhdGNoTWVzc2Fn
ZUZyb21Gcm9udGVuZChtZXNzYWdlKTsKKyAgICBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigp
LmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAogdm9p
ZCBXZWJQYWdlRGVidWdnYWJsZTo6c2V0SW5kaWNhdGluZyhib29sIGluZGljYXRpbmcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVnZ2Fi
bGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdnYWJs
ZS5oCmluZGV4IDhmODQ4ZGUxMTZhNjE0NThkMTgzM2VhODA5ZmMwNmVmZDVlZTdhM2QuLjJmMTk5
Y2E1NGEwNGI1YzBkOGM5NzJiNTc0ODgxODgxN2U2MTE4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdnYWJsZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdnYWJsZS5oCkBAIC00OSw3
ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5k
Q2hhbm5lbCYsIGJvb2wgaXNBdXRvbWF0aWNDb25uZWN0aW9uID0gZmFsc2UsIGJvb2wgaW1tZWRp
YXRlbHlQYXVzZSA9IGZhbHNlKSBmaW5hbDsKICAgICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9y
OjpGcm9udGVuZENoYW5uZWwmKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21S
ZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoTWVz
c2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2FnZSkgZmluYWw7CiAgICAgdm9pZCBzZXRJbmRp
Y2F0aW5nKGJvb2wpIGZpbmFsOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUoKSBj
b25zdCB7IHJldHVybiBtX25hbWVPdmVycmlkZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmlu
ZGV4IDcwYzRmODIzZjNiZjY2MjVkNTUzYzg3OTMyM2FmOWUzMWYyZDAwZDUuLmM3Njg4ZmVlM2M1
NzdmNzZiOTFlZjBiMzdjYjVkZGE0ZWIwYTQ0Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAK
QEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2
ZUNhY2hlcyhjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWcKICAgICBjb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0
aW9uOjpDYWNoZXMob3JpZ2luLCB1cGRhdGVDb3VudGVyKSwgV1RGTW92ZShjYWxsYmFjaykpOwog
fQogCi12b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlUmVjb3Jkcyh1aW50
NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJldHJpZXZlUmVjb3Jkc09wdGlv
bnMmIG9wdGlvbnMsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3ZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRz
KHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9u
cyYmIG9wdGlvbnMsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJiBj
YWxsYmFjaykKIHsKICAgICBjb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpSZXRyaWV2ZVJlY29yZHMoY2FjaGVJZGVu
dGlmaWVyLCBvcHRpb25zKSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmgKaW5kZXggMTdhYzQwYTIxYmZlZmZlZjY5ZWQ3YjA3OTI0ZDM1M2JhZDNmZjExOS4uZThjMWVk
YjkwNDIwY2I4YmZjMjg5Y2IwNDJkZGFjNzJjODA2ZmRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5o
CkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmUodWludDY0X3QgY2Fj
aGVJZGVudGlmaWVyLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyQ2Fs
bGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZXRyaWV2ZUNhY2hlcyhjb25zdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mLCB1aW50NjRfdCB1cGRhdGVDb3VudGVyLCBXZWJDb3JlOjpET01DYWNoZUVu
Z2luZTo6Q2FjaGVJbmZvc0NhbGxiYWNrJiYpIGZpbmFsOwogCi0gICAgdm9pZCByZXRyaWV2ZVJl
Y29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXRyaWV2ZVJl
Y29yZHNPcHRpb25zJiwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYm
KSBmaW5hbDsKKyAgICB2b2lkIHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlJldHJpZXZlUmVjb3Jkc09wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVF
bmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGJhdGNoRGVsZXRlT3Bl
cmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgV2ViQ29yZTo6Q2FjaGVRdWVyeU9wdGlvbnMmJiwgV2ViQ29yZTo6RE9NQ2FjaGVF
bmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBiYXRj
aFB1dE9wZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpE
T01DYWNoZUVuZ2luZTo6UmVjb3JkPiYmLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3Jk
SWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBjYTA2MDhhYjc5
ODM3OGEzMzVjYjlkYmVlNTBlMTNjMDIwNDg1ZTNjLi5lYmM1M2ViZmE5MTA5YzQ5MTRiODlkNzQ5
YTA0YzBmNWRjZDE2N2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjEyLDE0ICsyMTIsMTQgQEAgdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAg
ICAgTWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OkNs
b3NlIHsgY29kZSwgcmVhc29uIH0pOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwo
Y29uc3QgU3RyaW5nJiByZWFzb24pCit2b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoU3RyaW5n
JiYgcmVhc29uKQogewogICAgIC8vIFRoZSBjbGllbnQgY2FuIGNsb3NlIHRoZSBjaGFubmVsLCBw
b3RlbnRpYWxseSByZW1vdmluZyB0aGUgbGFzdCByZWZlcmVuY2UuCiAgICAgUmVmIHByb3RlY3Rl
ZFRoaXMgeyAqdGhpcyB9OwogCiAgICAgbG9nRXJyb3JNZXNzYWdlKHJlYXNvbik7CiAgICAgaWYg
KG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihyZWFz
b24pOworICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcgeyBy
ZWFzb24gfSk7CiAKICAgICBpZiAobV9pc0Nsb3NpbmcpCiAgICAgICAgIHJldHVybjsKQEAgLTI2
MCw3ICsyNjAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVUZXh0KFN0cmlu
ZyYmIG1lc3NhZ2UpCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
bV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOworICAgIG1fY2xpZW50LT5kaWRS
ZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAogdm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpkaWRSZWNlaXZlQmluYXJ5RGF0YShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhKQpAQCAt
MzA4LDcgKzMwOCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZU1lc3NhZ2VF
cnJvcihTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIGxvZ0Vy
cm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOwotICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKGVycm9yTWVzc2FnZSk7CisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKIH0KIAogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpu
ZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDg5OGI2YTQxODg1NjkxMzg2NGZjZWY3
MmI0MGZlZjgwZWUxMDcyNzMuLjhmMTI1NzJiNTk2MGU5NjBlMzE4MTY3OTI3NTdmZjFmODdiYzNk
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBTZW5kUmVzdWx0IHNl
bmQoV2ViQ29yZTo6QmxvYiYpIGZpbmFsOwogICAgIHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KCkg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFz
b24pIGZpbmFsOwotICAgIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7Cisg
ICAgdm9pZCBmYWlsKFN0cmluZyYmIHJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBkaXNjb25uZWN0
KCkgZmluYWw7CiAgICAgdm9pZCBzdXNwZW5kKCkgZmluYWw7CiAgICAgdm9pZCByZXN1bWUoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGU3MDkwNTA3Mzk5MmFk
ZTRmNDk3MWE0NzYwYzAyNzM3ODM3ZmE4MTIuLjY1NTQ0YWM0MmVjNzI0YWFmYmNlY2VhZTM4NWI2
Mjg5ODU0ZjgyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtNDEsNyAr
NDEsNyBAQCBSZWY8V2ViU3RvcmFnZUNvbm5lY3Rpb24+IFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpj
cmVhdGUoKQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlN0b3JhZ2VDb25uZWN0aW9uKTsK
IH0KIAotdm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6Z2V0UGVyc2lzdGVkKGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVyc2lzdENhbGxi
YWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQ
ZXJzaXN0ZWQoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luLCBTdG9yYWdlQ29ubmVjdGlv
bjo6UGVyc2lzdENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgY29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpQ
ZXJzaXN0ZWQob3JpZ2luKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpAQCAtNTEs
NyArNTEsNyBAQCB2b2lkIFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpwZXJzaXN0KGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBTdG9yYWdlQwogICAgIGNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6UGVyc2lzdChv
cmlnaW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViU3RvcmFn
ZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3Rl
bUdldERpcmVjdG9yeShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFN0b3JhZ2VDb25u
ZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGF1dG8mIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CiAgICAgY29ubmVjdGlvbi5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6RmlsZVN5c3RlbUdl
dERpcmVjdG9yeShvcmlnaW4pLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rp
b24uaAppbmRleCA4MjI2NWRmNGExZTQ4OGQ0ZmVmYmEwZDQ2NDZiNmJkYjE2NGU5YTIzLi5lYTJk
NDgyNjQ1Y2M5MGM4MDQ4MmI4MzU2YzU1MmNmMGEwZGFmYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNv
bm5lY3Rpb24uaApAQCAtNDMsOSArNDMsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJT
dG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlKCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBnZXRQZXJz
aXN0ZWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBl
cnNpc3RDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldFBlcnNpc3RlZChXZWJDb3JlOjpD
bGllbnRPcmlnaW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxsYmFjayYmKSBmaW5h
bDsKICAgICB2b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgU3RvcmFn
ZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIGZpbGVTeXN0
ZW1HZXREaXJlY3RvcnkoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgU3RvcmFnZUNvbm5l
Y3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmlsZVN5c3Rl
bUdldERpcmVjdG9yeShXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwgU3RvcmFnZUNvbm5lY3Rpb246
OkdldERpcmVjdG9yeUNhbGxiYWNrJiYpIGZpbmFsOwogCiAgICAgSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uKCk7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454360</attachid>
            <date>2022-03-10 07:29:23 -0800</date>
            <delta_ts>2022-03-10 11:44:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237695-20220310072922.patch</filename>
            <type>text/plain</type>
            <size>111679</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MDMyODllZmU2YWE4MzZlNTQxOWU3NjM3NGNhM2UyMDU0ZGEyNDhmLi44MzBjMDNiY2ZlOGE3YzQ4
YmY5MTMwNGQyMmYwMzkwNDhmZTk1M2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMi0wMy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3MgdGhy
ZWFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
Njk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3B0
aW1pemUgZnVydGhlciB0aGUgcGFzc2luZyBvZiBkYXRhIGFjcm9zcyB0aHJlYWRzIGJ5IGxldmVy
YWdpbmcgdGhlIG9wdGltaXplZAorICAgICAgICB2ZXJzaW9uIG9mIGlzb2xhdGVkQ29weSgpIG9u
IHItdmFsdWUgcmVmZXJlbmNlcyB3aGVuZXZlciBwb3NzaWJsZS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6UmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0OjpzZW5kTWVzc2FnZVRvVGFyZ2V0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0Lmg6CisgICAg
ICAgICoganNjLmNwcDoKKyAgICAgICAgKEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdERlYnVnZ2FibGUuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdERlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmg6CisgICAgICAgICog
dG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwOgorICAgICAgICAoSlNDOjpGdW5jdGlvbk92ZXJy
aWRlczo6aW5pdGlhbGl6ZU92ZXJyaWRlRm9yKToKKwogMjAyMi0wMy0wOCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBXZWIg
SW5zcGVjdG9yOiBtYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSB0aGUgcmVtb3RlIGluc3BlY3RvciBm
cm9tIG90aGVyIGJyb3dzZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhkODg0NjRhZTgxYjdiZWI3NDg4OWZi
ZTZiM2Y4YzAxZDYwYmEwZS4uNDFmNGU1ZTE3MGVmOWJhM2U2MzZkNjk3MjYyZDU4YTA5MzU3ZGFk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMSBAQAorMjAyMi0wMy0wOSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Np
bmcgb2YgZGF0YSBhY3Jvc3MgdGhyZWFkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3Njk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgT3B0aW1pemUgZnVydGhlciB0aGUgcGFzc2luZyBvZiBkYXRhIGFj
cm9zcyB0aHJlYWRzIGJ5IGxldmVyYWdpbmcgdGhlIG9wdGltaXplZAorICAgICAgICB2ZXJzaW9u
IG9mIGlzb2xhdGVkQ29weSgpIG9uIHItdmFsdWUgcmVmZXJlbmNlcyB3aGVuZXZlciBwb3NzaWJs
ZS4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NQ2FjaGU6OnF1ZXJ5Q2FjaGUpOgorICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0Nyb3NzVGhyZWFk
UmVjb3JkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpyZWNvcmRzRGF0YUZyb21SZWNvcmRzKToK
KyAgICAgICAgKFdlYkNvcmU6OnJlY29yZHNEYXRhT3JFcnJvckZyb21SZWNvcmRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlUmVjb3Jk
cyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpiYXRj
aFB1dE9wZXJhdGlvbik6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0
ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeSk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9EZXRhY2hlZFJUQ0RhdGFDaGFubmVsLmg6
CisgICAgICAgIChXZWJDb3JlOjpEZXRhY2hlZFJUQ0RhdGFDaGFubmVsOjpEZXRhY2hlZFJUQ0Rh
dGFDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkRldGFjaGVkUlRDRGF0YUNoYW5uZWw6OmRl
Y29kZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENEYXRhQ2hhbm5lbDo6ZGV0YWNoKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmg6CisgICAgICAgICogTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmlj
YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246Ok5vdGlmaWNh
dGlvbik6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oOgor
ICAgICAgICAqIE1vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UHVzaFN1YnNjcmlwdGlvbkRhdGE6Omlzb2xhdGVkQ29weSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YTo6aXNvbGF0ZWRDb3B5KToK
KyAgICAgICAgKiBNb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmg6CisgICAg
ICAgICogTW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVByb3ZpZGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9z
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYW5h
Z2VyOjpwZXJzaXN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hbmFnZXI6OmZpbGVT
eXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkpOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9Xb3Jr
ZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTdG9yYWdl
Q29ubmVjdGlvbjo6Z2V0UGVyc2lzdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclN0b3Jh
Z2VDb25uZWN0aW9uOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVz
L3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
YW5nZVZlcnNpb25XcmFwcGVyOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcik6CisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6Y2hhbmdl
VmVyc2lvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6YWRkT3BlbkRhdGFiYXNlKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxFcnJv
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTEVycm9yOjpTUUxFcnJvcik6CisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2VFcnJvcik6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVz
c2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaDoKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXRDaGFubmVsOjpmYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dENoYW5uZWw6OmRpZEZhaWxTb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dEhhbmRzaGFrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OnNl
dFVSTCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpmYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpmYWlsKToKKyAgICAgICAgKFdlYkNvcmU6
OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRSZWNlaXZlTWVzc2Fn
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpjb25uZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6OmZhaWwpOgor
ICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5oOgorICAgICAgICAqIGRvbS9FeGNlcHRpb25EYXRhLmg6CisgICAgICAgIChXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhOjp0b0V4Y2VwdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpF
eGNlcHRpb25EYXRhOjp0b0V4Y2VwdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JXb3JrZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JXb3Jr
ZXJBZ2VudDo6c2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZCk6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oOgorICAgICAgICAqIHBhZ2UvQ2Fj
aGVTdG9yYWdlUHJvdmlkZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVt
b3RlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VEZWJ1Z2dhYmxlLmg6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJJbnNw
ZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZCk6CisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJv
eHk6OnBvc3RNZXNzYWdlVG9EZWJ1Z2dlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NX
Q2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rp
b246OmpvYlJlamVjdGVkSW5TZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25u
ZWN0aW9uOjpyZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKToKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE6Omlzb2xhdGVkQ29weSk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdDo6aXNvbGF0ZWRDb3B5IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0
ZWRTY3JpcHQ6Omlzb2xhdGVkQ29weSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbik6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnM6Omlzb2xhdGVkQ29weSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9uczo6aXNv
bGF0ZWRDb3B5KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnMuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyRGVidWdnYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
RGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZSk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVnZ2FibGUuaDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2Fn
ZVRvV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94
eTo6c2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZCk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5Lmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6cG9zdE1lc3NhZ2VUb0Rl
YnVnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c3Rh
cnRGZXRjaCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25E
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWdpc3RyYXRpb25EYXRhYmFzZTo6aW1w
b3J0UmVjb3Jkcyk6CisKIDIwMjItMDMtMTAgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgQWRkIGNvbnRleHQucm91bmRSZWN0IHN1cHBvcnQgdG8gT2ZmU2NyZWVu
Q2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDViYzVhMDhiYjU3OThiNDg5NDY5NzFlNjRhMGYxYjdhMmFlYTZm
ZTUuLmZiYjljNDgyMjJjNWFjZGYxOTBjNDAyMTQ5M2E5MmRkMmNlOGY1YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzggQEAKKzIwMjItMDMtMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBPcHRpbWl6ZSBmdXJ0aGVyIHRoZSBwYXNzaW5nIG9mIGRhdGEgYWNyb3Nz
IHRocmVhZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNzY5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE9wdGltaXplIGZ1cnRoZXIgdGhlIHBhc3Npbmcgb2YgZGF0YSBhY3Jvc3MgdGhyZWFkcyBieSBs
ZXZlcmFnaW5nIHRoZSBvcHRpbWl6ZWQKKyAgICAgICAgdmVyc2lvbiBvZiBpc29sYXRlZENvcHko
KSBvbiByLXZhbHVlIHJlZmVyZW5jZXMgd2hlbmV2ZXIgcG9zc2libGUuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRpc3BhdGNoTWVzc2FnZUZy
b21SZW1vdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdnYWJs
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VEZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3Nh
Z2VGcm9tUmVtb3RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1
Z2dhYmxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmZhaWwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9y
eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVj
dGlvbi5oOgorCiAyMDIyLTAzLTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgUmVtb3RlVmlkZW9TYW1wbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVDb25uZWN0
aW9uVG9UYXJnZXQuY3BwCmluZGV4IDdkMDZmYWRlZGFhMTQ1ZmNhZmU4NjNiMjA5MTU5YWQ3YmZm
NzdhYjUuLmYxNmYxY2VlNmJiYzQzOGNhZjY4ZWUzN2Q4ZjFiNmQwMTViYWZlNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUNvbm5lY3Rp
b25Ub1RhcmdldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1v
dGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmNwcApAQCAtNzIsNyArNzIsNyBAQCBib29sIFJl
bW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6c2V0dXAoYm9vbCBpc0F1dG9tYXRpY0luc3BlY3Rpb24s
IGJvb2wgYXV0b21hdGljYQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJlbW90ZUNvbm5l
Y3Rpb25Ub1RhcmdldDo6c2VuZE1lc3NhZ2VUb1RhcmdldChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
Cit2b2lkIFJlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldDo6c2VuZE1lc3NhZ2VUb1RhcmdldChTdHJp
bmcmJiBtZXNzYWdlKQogewogICAgIFJlbW90ZUNvbnRyb2xsYWJsZVRhcmdldCogdGFyZ2V0ID0g
bnVsbHB0cjsKICAgICB7CkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgUmVtb3RlQ29ubmVjdGlvblRv
VGFyZ2V0OjpzZW5kTWVzc2FnZVRvVGFyZ2V0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICAg
ICAgdGFyZ2V0ID0gbV90YXJnZXQ7CiAgICAgfQogCi0gICAgdGFyZ2V0LT5kaXNwYXRjaE1lc3Nh
Z2VGcm9tUmVtb3RlKG1lc3NhZ2UpOworICAgIHRhcmdldC0+ZGlzcGF0Y2hNZXNzYWdlRnJvbVJl
bW90ZShXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAogdm9pZCBSZW1vdGVDb25uZWN0aW9uVG9UYXJn
ZXQ6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL1JlbW90ZUNvbm5lY3Rpb25Ub1RhcmdldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKaW5kZXggZGZiNzk2
Mjg5MDljMTBjNDdhYzZhNTU3ZmFkNzUzY2IwMjRlYjBiMi4uODQzOTE3NzVkNjRkYjFhMjQ1Yjlj
OTk1ZTZmMTM4OTYzMjA1ZGMwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29ubmVjdGlvblRvVGFyZ2V0LmgK
QEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZvaWQg
c2VuZE1lc3NhZ2VUb1RhcmdldChOU1N0cmluZyAqKTsKICNlbHNlCi0gICAgdm9pZCBzZW5kTWVz
c2FnZVRvVGFyZ2V0KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2VuZE1lc3NhZ2VUb1Rhcmdl
dChTdHJpbmcmJik7CiAjZW5kaWYKICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCB0YXJnZXRD
bG9zZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVt
b3RlL1JlbW90ZUNvbnRyb2xsYWJsZVRhcmdldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmgKaW5kZXggMGU3YjViMjk0
N2IwZTA4ZWQ2OTM3NjI5NmMxZGJkZTgwZmU3MjAyZS4uYzllZjg4NTVjYWFjYjEyMjc4OTRhZTFh
ZjdmNmRjMjE4Zjg2YTkyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlQ29udHJvbGxhYmxlVGFyZ2V0LmgKQEAg
LTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIH07CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIHJlbW90ZUNvbnRyb2xBbGxvd2VkKCkgY29uc3Qg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9t
UmVtb3RlKFN0cmluZyYmIG1lc3NhZ2UpID0gMDsKIAogI2lmIFVTRShDRikKICAgICAvLyBUaGUg
ZGlzcGF0Y2ggYmxvY2sgd2lsbCBiZSBzY2hlZHVsZWQgb24gYSBnbG9iYWwgcnVuIGxvb3AgaWYg
bnVsbCBpcyByZXR1cm5lZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcmVtb3RlL3NvY2tldC9SZW1vdGVJbnNwZWN0b3JTb2NrZXQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNvY2tl
dC5jcHAKaW5kZXggMGFjMmEyMmU3OGRiZGMxZTcyZjczMTNkYzY2ZmU0OWIxODVjZGU4MC4uNWUy
MzZhMmM0ZTAyNjc4YTE1YjgzZTg3ZmY3N2ZmZDBlMWEzZGEzYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29ja2V0L1JlbW90ZUluc3BlY3RvclNv
Y2tldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvc29j
a2V0L1JlbW90ZUluc3BlY3RvclNvY2tldC5jcHAKQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIFJl
bW90ZUluc3BlY3Rvcjo6c2VuZE1lc3NhZ2VUb0JhY2tlbmQoY29uc3QgRXZlbnQmIGV2ZW50KQog
ICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNvbm5lY3Rpb25Ub1RhcmdldC0+c2Vu
ZE1lc3NhZ2VUb1RhcmdldChldmVudC5tZXNzYWdlLnZhbHVlKCkpOworICAgIGNvbm5lY3Rpb25U
b1RhcmdldC0+c2VuZE1lc3NhZ2VUb1RhcmdldChTdHJpbmcgeyBldmVudC5tZXNzYWdlLnZhbHVl
KCkgfSk7CiB9CiAKIHZvaWQgUmVtb3RlSW5zcGVjdG9yOjpzdGFydEF1dG9tYXRpb25TZXNzaW9u
KGNvbnN0IEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggNDViZDJmOWIwZDEy
OWRmOGI3YTY1MTBiOTA4NjEzZjVkNjdmMDU2ZC4uZTdkM2NlOTQyMWU1ZGMxMmUwOWJhZjAyYmU1
NTA0MmFmYWQ2MDdkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTIxMzAsNyArMjEzMCw3IEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgCiAgICAgVGhyZWFkOjpjcmVhdGUoCiAgICAg
ICAgICJKU0MgQWdlbnQiLAotICAgICAgICBbc291cmNlQ29kZSA9IHNvdXJjZUNvZGUuaXNvbGF0
ZWRDb3B5KCksIHdvcmtlclBhdGggPSB3b3JrZXJQYXRoLmlzb2xhdGVkQ29weSgpLCAmZGlkU3Rh
cnRMb2NrLCAmZGlkU3RhcnRDb25kaXRpb24sICZkaWRTdGFydF0gKCkgeworICAgICAgICBbc291
cmNlQ29kZSA9IFdURk1vdmUoc291cmNlQ29kZSkuaXNvbGF0ZWRDb3B5KCksIHdvcmtlclBhdGgg
PSBXVEZNb3ZlKHdvcmtlclBhdGgpLmlzb2xhdGVkQ29weSgpLCAmZGlkU3RhcnRMb2NrLCAmZGlk
U3RhcnRDb25kaXRpb24sICZkaWRTdGFydF0gKCkgewogICAgICAgICAgICAgQ29tbWFuZExpbmUg
Y29tbWFuZExpbmUoQ29tbWFuZExpbmU6OkNvbW1hbmRMaW5lRm9yV29ya2Vycyk7CiAgICAgICAg
ICAgICBjb21tYW5kTGluZS5tX2ludGVyYWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICBydW5K
U0MoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdERlYnVnZ2FibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3REZWJ1Z2dhYmxlLmNwcAppbmRleCAzN2QzYzI4OTYxMTIyOWRhYWM5ZTlmMmE4N2U2
YzlhODkzMTAyMjIzLi5kZTVlMzdkMGZhMzQwMmU3NzZmMWZmZjgyY2QxZTU0NjhlNjZmZjFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdERl
YnVnZ2FibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RGVidWdnYWJsZS5jcHAKQEAgLTY0LDExICs2NCwxMSBAQCB2b2lkIEpTR2xvYmFsT2Jq
ZWN0RGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9udGVuZENoYW5uZWwmIGZyb250ZW5kQ2hhbm5l
bCkKICAgICBtX2dsb2JhbE9iamVjdC5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzY29ubmVjdEZy
b250ZW5kKGZyb250ZW5kQ2hhbm5lbCk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3REZWJ1Z2dh
YmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3Zv
aWQgSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0
cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcigmbV9nbG9iYWxPYmpl
Y3Qudm0oKSk7CiAKLSAgICBtX2dsb2JhbE9iamVjdC5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlz
cGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKG1lc3NhZ2UpOworICAgIG1fZ2xvYmFsT2JqZWN0Lmlu
c3BlY3RvckNvbnRyb2xsZXIoKS5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoV1RGTW92ZSht
ZXNzYWdlKSk7CiB9CiAKIHZvaWQgSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlOjpwYXVzZVdhaXRp
bmdGb3JBdXRvbWF0aWNJbnNwZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKaW5kZXggOTU1MDhkNGZm
MWMzMDUwMjg0ZjlhYjIyNTViOGM2MjZlZDhkYjAwZC4uNzhjNDUwYzViNWZkMzZlYWM1NDcwNzI0
ZGQ1Y2M2NjRmZjU2NDM5OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiwgYm9v
bCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0g
ZmFsc2UpIGZpbmFsOwogICAgIHZvaWQgZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hh
bm5lbCYpIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90
ZShTdHJpbmcmJiBtZXNzYWdlKSBmaW5hbDsKIAogICAgIGJvb2wgYXV0b21hdGljSW5zcGVjdGlv
bkFsbG93ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBwYXVzZVdh
aXRpbmdGb3JBdXRvbWF0aWNJbnNwZWN0aW9uKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdG9vbHMvRnVuY3Rpb25PdmVycmlkZXMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0Z1bmN0aW9uT3ZlcnJpZGVzLmNwcAppbmRleCAzMGY1ZTc2YzkxNGU2
NDg4MWU0MThlNmUzOTNiMmI5MjU0NzcxYzNmLi43YTNiMzc5MjRiZTU2MDU0N2ZjMmRmZmUzMzJk
M2U2NmJmOGE5NWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvRnVu
Y3Rpb25PdmVycmlkZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9GdW5j
dGlvbk92ZXJyaWRlcy5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCBib29sIEZ1bmN0aW9uT3ZlcnJp
ZGVzOjppbml0aWFsaXplT3ZlcnJpZGVGb3IoY29uc3QgU291cmNlQ29kZSYgb3JpZ0NvZGUsIEZ1
bmN0aQogICAgIFN0cmluZyBuZXdCb2R5OwogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7
IG92ZXJyaWRlcy5tX2xvY2sgfTsKLSAgICAgICAgYXV0byBpdCA9IG92ZXJyaWRlcy5tX2VudHJp
ZXMuZmluZChzb3VyY2VCb2R5U3RyaW5nLmlzb2xhdGVkQ29weSgpKTsKKyAgICAgICAgYXV0byBp
dCA9IG92ZXJyaWRlcy5tX2VudHJpZXMuZmluZChXVEZNb3ZlKHNvdXJjZUJvZHlTdHJpbmcpLmlz
b2xhdGVkQ29weSgpKTsKICAgICAgICAgaWYgKGl0ID09IG92ZXJyaWRlcy5tX2VudHJpZXMuZW5k
KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIG5ld0JvZHkgPSBpdC0+dmFs
dWUuaXNvbGF0ZWRDb3B5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDc3ZGFkNDg1Y2MwYzVjZjc0NWZjMmJi
MWMwMDFhZTFiNTljMTkxYzYuLjM0ZTcwODIwMTg5NzdhZTc5NzIwMzVlMDBiM2Q3MDQ4MGIxZTIz
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbi5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgRE9NQ2FjaGVFbmdpbmU6OkNhY2hl
SWRlbnRpZmllckNhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmV0cmlldmVDYWNo
ZXMoY29uc3QgQ2xpZW50T3JpZ2luJiwgdWludDY0X3QgdXBkYXRlQ291bnRlciwgRE9NQ2FjaGVF
bmdpbmU6OkNhY2hlSW5mb3NDYWxsYmFjayYmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmV0
cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmV0cmlldmVSZWNv
cmRzT3B0aW9ucyYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2smJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBS
ZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRzQ2FsbGJhY2sm
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBiYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRfdCBj
YWNoZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIENhY2hlUXVlcnlPcHRpb25z
JiYsIERPTUNhY2hlRW5naW5lOjpSZWNvcmRJZGVudGlmaWVyc0NhbGxiYWNrJiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgYmF0Y2hQdXRPcGVyYXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVy
LCBWZWN0b3I8RE9NQ2FjaGVFbmdpbmU6OlJlY29yZD4mJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29y
ZElkZW50aWZpZXJzQ2FsbGJhY2smJikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGUuY3BwCmluZGV4IDJkNDZkMWNkYmM3MTdmM2M5Mjk5ZWZhODYzYTU0OTI2Mzgz
YWY1ZGYuLjA2MjJkNDVmNTVlZTg0ODM1MTg3N2E1MzhjY2ZhOTg1MGNjOTU2MjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwCkBAIC00NjAsNyArNDYwLDcgQEAg
dm9pZCBET01DYWNoZTo6a2V5cyhzdGQ6Om9wdGlvbmFsPFJlcXVlc3RJbmZvPiYmIGluZm8sIENh
Y2hlUXVlcnlPcHRpb25zJiYgb3B0aW8KIHZvaWQgRE9NQ2FjaGU6OnF1ZXJ5Q2FjaGUoUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgQ2FjaGVRdWVyeU9wdGlvbnMmIG9wdGlvbnMsIFNo
b3VsZFJldHJpZXZlUmVzcG9uc2VzIHNob3VsZFJldHJpZXZlUmVzcG9uc2VzLCBSZWNvcmRzQ2Fs
bGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBSZXRyaWV2ZVJlY29yZHNPcHRpb25zIHJldHJpZXZl
T3B0aW9ucyB7IFdURk1vdmUocmVxdWVzdCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Y3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeSgpLCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1
cml0eU9yaWdpbigpLCBvcHRpb25zLmlnbm9yZVNlYXJjaCwgb3B0aW9ucy5pZ25vcmVNZXRob2Qs
IG9wdGlvbnMuaWdub3JlVmFyeSwgc2hvdWxkUmV0cmlldmVSZXNwb25zZXMgPT0gU2hvdWxkUmV0
cmlldmVSZXNwb25zZXM6OlllcyB9OwotICAgIG1fY29ubmVjdGlvbi0+cmV0cmlldmVSZWNvcmRz
KG1faWRlbnRpZmllciwgcmV0cmlldmVPcHRpb25zLCBbdGhpcywgcGVuZGluZ0FjdGl2aXR5ID0g
bWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgIG1fY29ubmVjdGlvbi0+cmV0cmlldmVSZWNv
cmRzKG1faWRlbnRpZmllciwgV1RGTW92ZShyZXRyaWV2ZU9wdGlvbnMpLCBbdGhpcywgcGVuZGlu
Z0FjdGl2aXR5ID0gbWFrZVBlbmRpbmdBY3Rpdml0eSgqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAobV9pc1N0
b3BwZWQpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKERPTUNhY2hlRW5naW5lOjpjb252ZXJ0VG9F
eGNlcHRpb25BbmRMb2coc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBET01DYWNoZUVuZ2luZTo6
RXJyb3I6OlN0b3BwZWQpKTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCmluZGV4IGJkMjA0YTljNzlmNDUxNGNmOTAwM2VjZTM2NmRhMzRjZjFjZWM1YzUuLjQ2
ZmRlZmY0YmNlNDc1YWJmMjE3MzIxNWJjMjBiZWVhMjc4Nzc0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcApAQCAtNTYsMTUgKzU2LDE1IEBAIHN0cnVjdCBDcm9zc1RocmVhZFJlY29yZERh
dGEgewogICAgIHVpbnQ2NF90IHJlc3BvbnNlQm9keVNpemU7CiB9OwogCi1zdGF0aWMgQ3Jvc3NU
aHJlYWRSZWNvcmREYXRhIHRvQ3Jvc3NUaHJlYWRSZWNvcmREYXRhKGNvbnN0IFJlY29yZCYgcmVj
b3JkKQorc3RhdGljIENyb3NzVGhyZWFkUmVjb3JkRGF0YSB0b0Nyb3NzVGhyZWFkUmVjb3JkRGF0
YShSZWNvcmQmJiByZWNvcmQpCiB7CiAgICAgcmV0dXJuIENyb3NzVGhyZWFkUmVjb3JkRGF0YSB7
CiAgICAgICAgIHJlY29yZC5pZGVudGlmaWVyLAogICAgICAgICByZWNvcmQudXBkYXRlUmVzcG9u
c2VDb3VudGVyLAogICAgICAgICByZWNvcmQucmVxdWVzdEhlYWRlcnNHdWFyZCwKLSAgICAgICAg
cmVjb3JkLnJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksCi0gICAgICAgIHJlY29yZC5vcHRpb25zLmlz
b2xhdGVkQ29weSgpLAotICAgICAgICByZWNvcmQucmVmZXJyZXIuaXNvbGF0ZWRDb3B5KCksCisg
ICAgICAgIFdURk1vdmUocmVjb3JkLnJlcXVlc3QpLmlzb2xhdGVkQ29weSgpLAorICAgICAgICBX
VEZNb3ZlKHJlY29yZC5vcHRpb25zKS5pc29sYXRlZENvcHkoKSwKKyAgICAgICAgV1RGTW92ZShy
ZWNvcmQucmVmZXJyZXIpLmlzb2xhdGVkQ29weSgpLAogICAgICAgICByZWNvcmQucmVzcG9uc2VI
ZWFkZXJzR3VhcmQsCiAgICAgICAgIHJlY29yZC5yZXNwb25zZS5jcm9zc1RocmVhZERhdGEoKSwK
ICAgICAgICAgaXNvbGF0ZWRSZXNwb25zZUJvZHkocmVjb3JkLnJlc3BvbnNlQm9keSksCkBAIC04
OCwxNyArODgsMTcgQEAgc3RhdGljIFJlY29yZCBmcm9tQ3Jvc3NUaHJlYWRSZWNvcmREYXRhKENy
b3NzVGhyZWFkUmVjb3JkRGF0YSYmIGRhdGEpCiAgICAgfTsKIH0KIAotc3RhdGljIGlubGluZSBW
ZWN0b3I8Q3Jvc3NUaHJlYWRSZWNvcmREYXRhPiByZWNvcmRzRGF0YUZyb21SZWNvcmRzKGNvbnN0
IFZlY3RvcjxSZWNvcmQ+JiByZWNvcmRzKQorc3RhdGljIGlubGluZSBWZWN0b3I8Q3Jvc3NUaHJl
YWRSZWNvcmREYXRhPiByZWNvcmRzRGF0YUZyb21SZWNvcmRzKFZlY3RvcjxSZWNvcmQ+JiYgcmVj
b3JkcykKIHsKLSAgICByZXR1cm4gV1RGOjptYXAocmVjb3JkcywgdG9Dcm9zc1RocmVhZFJlY29y
ZERhdGEpOworICAgIHJldHVybiBXVEY6Om1hcChXVEZNb3ZlKHJlY29yZHMpLCB0b0Nyb3NzVGhy
ZWFkUmVjb3JkRGF0YSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgRXhwZWN0ZWQ8VmVjdG9yPENyb3Nz
VGhyZWFkUmVjb3JkRGF0YT4sIEVycm9yPiByZWNvcmRzRGF0YU9yRXJyb3JGcm9tUmVjb3Jkcyhj
b25zdCBSZWNvcmRzT3JFcnJvciYgcmVzdWx0KQorc3RhdGljIGlubGluZSBFeHBlY3RlZDxWZWN0
b3I8Q3Jvc3NUaHJlYWRSZWNvcmREYXRhPiwgRXJyb3I+IHJlY29yZHNEYXRhT3JFcnJvckZyb21S
ZWNvcmRzKFJlY29yZHNPckVycm9yJiYgcmVzdWx0KQogewogICAgIGlmICghcmVzdWx0Lmhhc192
YWx1ZSgpKQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocmVzdWx0LmVycm9yKCkpOwor
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoV1RGTW92ZShyZXN1bHQpLmVycm9yKCkpOwog
Ci0gICAgcmV0dXJuIHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVzdWx0LnZhbHVlKCkpOworICAg
IHJldHVybiByZWNvcmRzRGF0YUZyb21SZWNvcmRzKFdURk1vdmUocmVzdWx0KS52YWx1ZSgpKTsK
IH0KIAogc3RhdGljIGlubGluZSBWZWN0b3I8UmVjb3JkPiByZWNvcmRzRnJvbVJlY29yZHNEYXRh
KFZlY3RvcjxDcm9zc1RocmVhZFJlY29yZERhdGE+JiYgcmVjb3Jkc0RhdGEpCkBAIC0xOTUsMTQg
KzE5NSwxNCBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZlQ2Fj
aGVzQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudAogICAgICAgICBjYWxsYmFjayhXVEZN
b3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJl
dHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJldHJpZXZlUmVj
b3Jkc09wdGlvbnMmIG9wdGlvbnMsIFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBX
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHModWludDY0X3QgY2Fj
aGVJZGVudGlmaWVyLCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiYgb3B0aW9ucywgUmVjb3Jkc0Nh
bGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIgPSAr
K21fbGFzdFJlcXVlc3RJZGVudGlmaWVyOwogICAgIG1fcmV0cmlldmVSZWNvcmRzUGVuZGluZ1Jl
cXVlc3RzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwogCi0gICAg
Y2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS50aHJlYWQoKSB9
LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIHJlcXVlc3RJ
ZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29w
eSgpXSgpIG11dGFibGUgewotICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+cmV0cmlldmVS
ZWNvcmRzKGNhY2hlSWRlbnRpZmllciwgb3B0aW9ucywgW3dvcmtlclRocmVhZCA9IFdURk1vdmUo
d29ya2VyVGhyZWFkKSwgcmVxdWVzdElkZW50aWZpZXJdKFJlY29yZHNPckVycm9yJiYgcmVzdWx0
KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNr
Rm9yTW9kZShbcmVzdWx0ID0gcmVjb3Jkc0RhdGFPckVycm9yRnJvbVJlY29yZHMocmVzdWx0KSwg
cmVxdWVzdElkZW50aWZpZXJdIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgY2FsbE9uTWFp
blRocmVhZChbd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS50aHJlYWQoKSB9LCBtYWluVGhy
ZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIHJlcXVlc3RJZGVudGlmaWVy
LCBjYWNoZUlkZW50aWZpZXIsIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLmlzb2xhdGVkQ29w
eSgpXSgpIG11dGFibGUgeworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+cmV0cmlldmVS
ZWNvcmRzKGNhY2hlSWRlbnRpZmllciwgV1RGTW92ZShvcHRpb25zKSwgW3dvcmtlclRocmVhZCA9
IFdURk1vdmUod29ya2VyVGhyZWFkKSwgcmVxdWVzdElkZW50aWZpZXJdKFJlY29yZHNPckVycm9y
JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgp
LnBvc3RUYXNrRm9yTW9kZShbcmVzdWx0ID0gcmVjb3Jkc0RhdGFPckVycm9yRnJvbVJlY29yZHMo
V1RGTW92ZShyZXN1bHQpKSwgcmVxdWVzdElkZW50aWZpZXJdIChhdXRvJiBzY29wZSkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5j
YWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkucmV0cmlldmVSZWNvcmRzQ29tcGxldGVkKHJlcXVlc3RJ
ZGVudGlmaWVyLCByZWNvcmRzT3JFcnJvckZyb21SZWNvcmRzRGF0YShXVEZNb3ZlKHJlc3VsdCkp
KTsKICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAg
ICB9KTsKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rp
b246OmJhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVgogICAgIHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0gKyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKICAg
ICBtX2JhdGNoRGVsZXRlQW5kUHV0UGVuZGluZ1JlcXVlc3RzLmFkZChyZXF1ZXN0SWRlbnRpZmll
ciwgV1RGTW92ZShjYWxsYmFjaykpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbd29ya2VyVGhy
ZWFkID0gUmVmIHsgbV9zY29wZS50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1f
bWFpblRocmVhZENvbm5lY3Rpb24sIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIs
IHJlY29yZHNEYXRhID0gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhyZWNvcmRzKV0oKSBtdXRhYmxl
IHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLnRo
cmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwg
cmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgcmVjb3Jkc0RhdGEgPSByZWNvcmRz
RGF0YUZyb21SZWNvcmRzKFdURk1vdmUocmVjb3JkcykpXSgpIG11dGFibGUgewogICAgICAgICBt
YWluVGhyZWFkQ29ubmVjdGlvbi0+YmF0Y2hQdXRPcGVyYXRpb24oY2FjaGVJZGVudGlmaWVyLCBy
ZWNvcmRzRnJvbVJlY29yZHNEYXRhKFdURk1vdmUocmVjb3Jkc0RhdGEpKSwgW3dvcmtlclRocmVh
ZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKSwgcmVxdWVzdElkZW50aWZpZXJdIChSZWNvcmRJZGVu
dGlmaWVyc09yRXJyb3ImJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICAgICAgd29ya2VyVGhy
ZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0
ID0gV1RGTW92ZShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAgICAg
ICAgIGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuY2FjaGVTdG9yYWdlQ29ubmVj
dGlvbigpLnB1dFJlY29yZHNDb21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUocmVz
dWx0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDcxNGQyOTQ0MTdjNGQ3MTkzYWFmNmY5
YTIxNjJjYjY3OTViZjhlNjkuLjE1YzZmOTQ3ZjI1M2JhNWFiY2Y5YzQ3Mzk5ZGJhZTZmNGYzZDI5
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZW1vdmUodWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBET01DYWNoZUVuZ2luZTo6
Q2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZXRyaWV2ZUNhY2hl
cyhjb25zdCBDbGllbnRPcmlnaW4mLCB1aW50NjRfdCB1cGRhdGVDb3VudGVyLCBET01DYWNoZUVu
Z2luZTo6Q2FjaGVJbmZvc0NhbGxiYWNrJiYpIGZpbmFsOwogCi0gICAgdm9pZCByZXRyaWV2ZVJl
Y29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBSZXRyaWV2ZVJlY29yZHNPcHRp
b25zJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lk
IHJldHJpZXZlUmVjb3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFJldHJpZXZlUmVjb3Jk
c09wdGlvbnMmJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmKSBmaW5hbDsKICAg
ICB2b2lkIGJhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2FjaGVRdWVyeU9wdGlvbnMmJiwgRE9NQ2FjaGVFbmdpbmU6
OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBiYXRjaFB1dE9w
ZXJhdGlvbih1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxET01DYWNoZUVuZ2luZTo6
UmVjb3JkPiYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBm
aW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RP
TUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZp
bGVTeXN0ZW0uY3BwCmluZGV4IGI3MDBkODQ0NGIyMGViZDcwZTllNTM0MTRlMTc2NTliMWZhNDVl
YjQuLjlmNDgxZGM2MjlhYTc3YTYwZGE1YzVlZTA0NGE3MzZiZDQ2ZDNkMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAg
LTI1Nyw3ICsyNTcsNyBAQCB2b2lkIERPTUZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmlsZVN5c3RlbURpcgogCiAgICAgbV93b3JrUXVl
dWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29udGV4dCA9IFJl
ZiB7IGNvbnRleHQgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgZnVsbFBhdGggPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShmdWxsUGF0aCkpLCBkaXJl
Y3RvcnlWaXJ0dWFsUGF0aCA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGRpcmVjdG9yeVZpcnR1
YWxQYXRoKSldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbGlzdGVkQ2hpbGRyZW4gPSBsaXN0
RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGZ1bGxQYXRoKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGNvbnRleHQgPSBXVEZN
b3ZlKGNvbnRleHQpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBsaXN0ZWRDaGlsZHJlbiA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGxpc3RlZENoaWxk
cmVuKSksIGRpcmVjdG9yeVZpcnR1YWxQYXRoID0gZGlyZWN0b3J5VmlydHVhbFBhdGguaXNvbGF0
ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3Rl
ZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0ID0gV1RGTW92ZShjb250ZXh0
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbGlzdGVk
Q2hpbGRyZW4gPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShsaXN0ZWRDaGlsZHJlbikpLCBkaXJl
Y3RvcnlWaXJ0dWFsUGF0aCA9IFdURk1vdmUoZGlyZWN0b3J5VmlydHVhbFBhdGgpLmlzb2xhdGVk
Q29weSgpXSgpIG11dGFibGUgewogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIodG9GaWxl
U3lzdGVtRW50cmllcyhjb250ZXh0LCBwcm90ZWN0ZWRUaGlzLCBXVEZNb3ZlKGxpc3RlZENoaWxk
cmVuKSwgZGlyZWN0b3J5VmlydHVhbFBhdGgpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RldGFjaGVkUlRDRGF0
YUNoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNoZWRS
VENEYXRhQ2hhbm5lbC5oCmluZGV4IDBmMzZjNzgzN2YxNWJiMjAwNWQyNWZlNmJiNDIzNzk5ODBm
MTcyZmUuLjE1OGI1ODMzM2I2NzRmZTRjNzlkOTQyMTY5MjU4Yjg1ZmM5ODA2OTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNoZWRSVENEYXRhQ2hh
bm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vRGV0YWNoZWRS
VENEYXRhQ2hhbm5lbC5oCkBAIC0zOCwxMCArMzgsMTAgQEAgc3RydWN0IERldGFjaGVkUlRDRGF0
YUNoYW5uZWwgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERldGFjaGVkUlRDRGF0YUNoYW5u
ZWwpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIERldGFjaGVk
UlRDRGF0YUNoYW5uZWwoUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbGFiZWwsIGNvbnN0IFJUQ0RhdGFDaGFubmVsSW5pdCYgb3B0aW9ucywgUlRDRGF0
YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKKyAgICBEZXRhY2hlZFJUQ0RhdGFDaGFubmVsKFJUQ0RhdGFD
aGFubmVsSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBsYWJlbCwgUlRDRGF0YUNoYW5u
ZWxJbml0JiYgb3B0aW9ucywgUlRDRGF0YUNoYW5uZWxTdGF0ZSBzdGF0ZSkKICAgICAgICAgOiBp
ZGVudGlmaWVyKGlkZW50aWZpZXIpCi0gICAgICAgICwgbGFiZWwobGFiZWwuaXNvbGF0ZWRDb3B5
KCkpCi0gICAgICAgICwgb3B0aW9ucyhvcHRpb25zLmlzb2xhdGVkQ29weSgpKQorICAgICAgICAs
IGxhYmVsKFdURk1vdmUobGFiZWwpLmlzb2xhdGVkQ29weSgpKQorICAgICAgICAsIG9wdGlvbnMo
V1RGTW92ZShvcHRpb25zKS5pc29sYXRlZENvcHkoKSkKICAgICAgICAgLCBzdGF0ZShzdGF0ZSkK
ICAgICB7CiAgICAgfQpAQCAtODMsNyArODMsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGQ6OnVuaXF1ZV9wdHI8RGV0YWNoZWRSVENEYXRhQ2hhbm5lbD4gRGV0YWNoZWRSVENEYXRhQwog
ICAgIGlmICghc3RhdGUpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICByZXR1cm4gbWFrZVVu
aXF1ZTxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPigqaWRlbnRpZmllciwgV1RGTW92ZShsYWJlbCks
ICpvcHRpb25zLCAqc3RhdGUpOworICAgIHJldHVybiBtYWtlVW5pcXVlPERldGFjaGVkUlRDRGF0
YUNoYW5uZWw+KCppZGVudGlmaWVyLCBXVEZNb3ZlKGxhYmVsKSwgV1RGTW92ZShvcHRpb25zKS52
YWx1ZSgpLCAqc3RhdGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCmlu
ZGV4IDhmODMzNzNkYmM3NGI1MmM0NTU1MzA2YTUwNTZkMmZkZTBlYWFlNzUuLjBiMTA2MjZlMzNi
YTU5NGFhMzhlYjNhZDFkNjk1NmE1ZTU1MTUxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCkBAIC0zMDMsNyArMzAz
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPERldGFjaGVkUlRDRGF0YUNoYW5uZWw+IFJUQ0RhdGFDaGFu
bmVsOjpkZXRhY2goKQogICAgIExvY2tlciBsb2NrZXIgeyBzX3J0Y0RhdGFDaGFubmVsTG9jYWxN
YXBMb2NrIH07CiAgICAgcnRjRGF0YUNoYW5uZWxMb2NhbE1hcCgpLmFkZChpZGVudGlmaWVyKCku
Y2hhbm5lbElkZW50aWZpZXIsIFdURk1vdmUobV9oYW5kbGVyKSk7CiAKLSAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxEZXRhY2hlZFJUQ0RhdGFDaGFubmVsPihpZGVudGlmaWVyKCksIGxhYmVsKCkuaXNv
bGF0ZWRDb3B5KCksIG9wdGlvbnMoKSwgc3RhdGUpOworICAgIHJldHVybiBtYWtlVW5pcXVlPERl
dGFjaGVkUlRDRGF0YUNoYW5uZWw+KGlkZW50aWZpZXIoKSwgU3RyaW5nIHsgbGFiZWwoKSB9LCBS
VENEYXRhQ2hhbm5lbEluaXQgeyBvcHRpb25zKCkgfSwgc3RhdGUpOwogfQogCiB2b2lkIFJUQ0Rh
dGFDaGFubmVsOjpyZW1vdmVGcm9tRGF0YUNoYW5uZWxMb2NhbE1hcElmTmVlZGVkKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaApp
bmRleCA2OTRmYWY0MDhlNmY1MmM0YjQ0ODQzY2Q0YWRhZDc0ZmZkNTVmODRmLi5kYTYxMDUxYmE5
NmQ4ZDA1ZDQ2ZDgxY2RmZmRkNmMwYjk5ZWY0ZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oCkBAIC02NSw3ICs2NSw3IEBA
IHB1YmxpYzoKICAgICBSVENQcmlvcml0eVR5cGUgcHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBt
X29wdGlvbnMucHJpb3JpdHk7IH07CiAgICAgY29uc3QgUlRDRGF0YUNoYW5uZWxJbml0JiBvcHRp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9CiAKLSAgICBTdHJpbmcgbGFiZWwoKSBj
b25zdCB7IHJldHVybiBtX2xhYmVsOyB9CisgICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFiZWw7IH0KICAgICBSVENEYXRhQ2hhbm5lbFN0YXRlIHJlYWR5U3RhdGUo
KSBjb25zdCB7cmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQogICAgIHNpemVfdCBidWZmZXJlZEFtb3Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyZWRBbW91bnQ7IH0KICAgICBzaXplX3QgYnVmZmVy
ZWRBbW91bnRMb3dUaHJlc2hvbGQoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcmVkQW1vdW50TG93
VGhyZXNob2xkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IDU2YzMyNDMyOWFkMTNmM2Y2MThhYzcxNDdlNmMx
MTEyYThkNmQwZDIuLjI0MjA4YzZjNDRiZTg0Zjc4MmJkNDdjMDBlZTUxOTNhOTBkMjAwODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uY3BwCkBAIC01MiwyMSArNTIsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTm90aWZpY2F0aW9uKTsKIAotUmVmPE5vdGlmaWNhdGlv
bj4gTm90aWZpY2F0aW9uOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgT3B0aW9ucyYgb3B0aW9ucykKK1JlZjxOb3RpZmlj
YXRpb24+IE5vdGlmaWNhdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFN0cmluZyYmIHRpdGxlLCBPcHRpb25zJiYgb3B0aW9ucykKIHsKLSAgICBhdXRvIG5vdGlm
aWNhdGlvbiA9IGFkb3B0UmVmKCpuZXcgTm90aWZpY2F0aW9uKGNvbnRleHQsIHRpdGxlLCBvcHRp
b25zKSk7CisgICAgYXV0byBub3RpZmljYXRpb24gPSBhZG9wdFJlZigqbmV3IE5vdGlmaWNhdGlv
bihjb250ZXh0LCBXVEZNb3ZlKHRpdGxlKSwgV1RGTW92ZShvcHRpb25zKSkpOwogICAgIG5vdGlm
aWNhdGlvbi0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgbm90aWZpY2F0aW9uLT5zaG93U29vbigp
OwogICAgIHJldHVybiBub3RpZmljYXRpb247CiB9CiAKLU5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGl0bGUs
IGNvbnN0IE9wdGlvbnMmIG9wdGlvbnMpCitOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiB0aXRsZSwgT3B0aW9ucyYmIG9w
dGlvbnMpCiAgICAgOiBBY3RpdmVET01PYmplY3QoJmNvbnRleHQpCi0gICAgLCBtX3RpdGxlKHRp
dGxlLmlzb2xhdGVkQ29weSgpKQorICAgICwgbV90aXRsZShXVEZNb3ZlKHRpdGxlKS5pc29sYXRl
ZENvcHkoKSkKICAgICAsIG1fZGlyZWN0aW9uKG9wdGlvbnMuZGlyKQotICAgICwgbV9sYW5nKG9w
dGlvbnMubGFuZy5pc29sYXRlZENvcHkoKSkKLSAgICAsIG1fYm9keShvcHRpb25zLmJvZHkuaXNv
bGF0ZWRDb3B5KCkpCi0gICAgLCBtX3RhZyhvcHRpb25zLnRhZy5pc29sYXRlZENvcHkoKSkKKyAg
ICAsIG1fbGFuZyhXVEZNb3ZlKG9wdGlvbnMubGFuZykuaXNvbGF0ZWRDb3B5KCkpCisgICAgLCBt
X2JvZHkoV1RGTW92ZShvcHRpb25zLmJvZHkpLmlzb2xhdGVkQ29weSgpKQorICAgICwgbV90YWco
V1RGTW92ZShvcHRpb25zLnRhZykuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3N0YXRlKElkbGUp
CiAgICAgLCBtX2NvbnRleHRJZGVudGlmaWVyKGNvbnRleHQuaWRlbnRpZmllcigpKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5o
CmluZGV4IDAyYTM3YmZjNzZjMmVmYWM3NTQ5NGQ3NmJiNTNmMjc4MWQyMmZjMjYuLjRhYTliMzQx
ZmMxYzQxM2Y3MDM2NTI5OTZmYTY3MDNiNWEwMDJhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKQEAgLTY0LDcgKzY0LDcg
QEAgcHVibGljOgogICAgICAgICBTdHJpbmcgdGFnOwogICAgICAgICBTdHJpbmcgaWNvbjsKICAg
ICB9OwotICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IE9wdGlvbnMmKTsKKyAgICBzdGF0
aWMgUmVmPE5vdGlmaWNhdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBTdHJp
bmcmJiB0aXRsZSwgT3B0aW9ucyYmKTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IH5Ob3RpZmljYXRpb24oKTsKIApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBUaHJlYWRTYWZlUmVmQ291bnRlZDo6ZGVyZWY7CiAKIHByaXZhdGU6Ci0gICAgTm90aWZpY2F0
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBP
cHRpb25zJik7CisgICAgTm90aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBTdHJp
bmcmJiB0aXRsZSwgT3B0aW9ucyYmKTsKICAgICBOb3RpZmljYXRpb24oY29uc3QgTm90aWZpY2F0
aW9uJik7CiAKICAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5j
cHAKaW5kZXggMjNkYjMyNzBhYjc4N2U1MzIwNTY0YWVkY2RiZWQwMWM1NzkyNDQxNC4uN2MyMWU5
Y2M0YWM0MDkzNDQ5NjY3NDM5YWVhNWIxYzcyNWI2NDkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5jcHAKQEAg
LTMwLDE3ICszMCwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVB1c2hTdWJzY3JpcHRp
b25EYXRhIFB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENvcHkoKSBjb25zdAorUHVzaFN1
YnNjcmlwdGlvbkRhdGEgUHVzaFN1YnNjcmlwdGlvbkRhdGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0
ICYKIHsKLSAgICBQdXNoU3Vic2NyaXB0aW9uRGF0YSByZXN1bHQ7Ci0gICAgcmVzdWx0LmlkZW50
aWZpZXIgPSBpZGVudGlmaWVyOwotICAgIHJlc3VsdC5lbmRwb2ludCA9IGVuZHBvaW50Lmlzb2xh
dGVkQ29weSgpOwotICAgIHJlc3VsdC5leHBpcmF0aW9uVGltZSA9IGV4cGlyYXRpb25UaW1lOwot
ICAgIHJlc3VsdC5zZXJ2ZXJWQVBJRFB1YmxpY0tleSA9IHNlcnZlclZBUElEUHVibGljS2V5Owot
ICAgIHJlc3VsdC5jbGllbnRFQ0RIUHVibGljS2V5ID0gY2xpZW50RUNESFB1YmxpY0tleTsKLSAg
ICByZXN1bHQuc2hhcmVkQXV0aGVudGljYXRpb25TZWNyZXQgPSBzaGFyZWRBdXRoZW50aWNhdGlv
blNlY3JldDsKKyAgICByZXR1cm4geyBpZGVudGlmaWVyLCBlbmRwb2ludC5pc29sYXRlZENvcHko
KSwgZXhwaXJhdGlvblRpbWUsIHNlcnZlclZBUElEUHVibGljS2V5LCBjbGllbnRFQ0RIUHVibGlj
S2V5LCBzaGFyZWRBdXRoZW50aWNhdGlvblNlY3JldCB9OworfQogCi0gICAgcmV0dXJuIHJlc3Vs
dDsKK1B1c2hTdWJzY3JpcHRpb25EYXRhIFB1c2hTdWJzY3JpcHRpb25EYXRhOjppc29sYXRlZENv
cHkoKSAmJgoreworICAgIHJldHVybiB7IGlkZW50aWZpZXIsIFdURk1vdmUoZW5kcG9pbnQpLmlz
b2xhdGVkQ29weSgpLCBleHBpcmF0aW9uVGltZSwgV1RGTW92ZShzZXJ2ZXJWQVBJRFB1YmxpY0tl
eSksIFdURk1vdmUoY2xpZW50RUNESFB1YmxpY0tleSksIFdURk1vdmUoc2hhcmVkQXV0aGVudGlj
YXRpb25TZWNyZXQpIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHVzaC1hcGkvUHVzaFN1YnNjcmlwdGlvbkRhdGEuaApp
bmRleCA2MzVmOWZjODFlOWM2OWU3NjVlYWJkMGUxYWUyMTFhZTNiZGE1YWQ0Li5iYzIxNTg3YmUx
OWEwNGI3M2Y0MmE4NDRmNTkzZDg0ODZiMWM4NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3B1c2gtYXBpL1B1c2hTdWJzY3JpcHRpb25EYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wdXNoLWFwaS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oCkBAIC00Miw3ICs0
Miw4IEBAIHN0cnVjdCBQdXNoU3Vic2NyaXB0aW9uRGF0YSB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IGNsaWVudEVDREhQdWJsaWNLZXk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHNoYXJlZEF1dGhlbnRp
Y2F0aW9uU2VjcmV0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgUHVzaFN1YnNjcmlwdGlvbkRhdGEg
aXNvbGF0ZWRDb3B5KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUHVzaFN1YnNjcmlwdGlv
bkRhdGEgaXNvbGF0ZWRDb3B5KCkgY29uc3QgJjsKKyAgICBXRUJDT1JFX0VYUE9SVCBQdXNoU3Vi
c2NyaXB0aW9uRGF0YSBpc29sYXRlZENvcHkoKSAmJjsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQdXNoU3Vic2NyaXB0aW9uRGF0YT4gZGVjb2Rl
KERlY29kZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9E
dW1teVN0b3JhZ2VQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1
bW15U3RvcmFnZVByb3ZpZGVyLmgKaW5kZXggZGE0NTdhNDZiMTIzYzM1ODQzZmY5NGE2YTgyY2Zj
Mjc0ODgxZjFiMy4uMGNmZmQyN2JlZjBiOWMwYTQwZjdmYTg0NDkzZjRjMTkwMDEyMzA0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL0R1bW15U3RvcmFnZVBy
b3ZpZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IER1bW15U3RvcmFnZUNvbm5lY3Rpb24oKSk7CiAgICAgICAgIH0KIAotICAg
ICAgICB2b2lkIGdldFBlcnNpc3RlZChjb25zdCBDbGllbnRPcmlnaW4mLCBTdG9yYWdlQ29ubmVj
dGlvbjo6UGVyc2lzdENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAg
IHZvaWQgZ2V0UGVyc2lzdGVkKENsaWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVy
c2lzdENhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKICAgICAgICAgfQpAQCAtNTQsNyArNTQs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAg
ICAgICB9CiAKLSAgICAgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbnN0IENsaWVu
dE9yaWdpbiYsIFN0b3JhZ2VDb25uZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3Rvcnko
Q2xpZW50T3JpZ2luJiYsIFN0b3JhZ2VDb25uZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYm
IGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9KTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24u
aAppbmRleCBiY2VjMjI5NDc0ZmVjYjgzZDM5M2RjYmVlY2U5OWJjZGY1ZmZlZjc2Li5kMDFiODRi
ZWViYjVhMTdkYjVmYjc5MmVjNWM5NDRkNzdmYzdhZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtMzksMTEgKzM5LDEx
IEBAIGNsYXNzIFN0b3JhZ2VDb25uZWN0aW9uIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFN0b3JhZ2VDb25uZWN0aW9uPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U3RvcmFnZUNvbm5l
Y3Rpb24oKSA9IGRlZmF1bHQ7CiAgICAgdXNpbmcgUGVyc2lzdENhbGxiYWNrID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT47Ci0gICAgdmlydHVhbCB2b2lkIGdldFBlcnNpc3RlZChjb25z
dCBDbGllbnRPcmlnaW4mLCBQZXJzaXN0Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBnZXRQZXJzaXN0ZWQoQ2xpZW50T3JpZ2luJiYsIFBlcnNpc3RDYWxsYmFjayYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHBlcnNpc3QoY29uc3QgQ2xpZW50T3JpZ2luJiwgUGVyc2lzdENhbGxi
YWNrJiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CiAg
ICAgdXNpbmcgRGlyZWN0b3J5SW5mbyA9IHN0ZDo6cGFpcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgUmVmUHRyPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4+OwogICAgIHVzaW5nIEdl
dERpcmVjdG9yeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxE
aXJlY3RvcnlJbmZvPiYmKT47Ci0gICAgdmlydHVhbCB2b2lkIGZpbGVTeXN0ZW1HZXREaXJlY3Rv
cnkoY29uc3QgQ2xpZW50T3JpZ2luJiwgR2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KENsaWVudE9yaWdpbiYmLCBHZXRE
aXJlY3RvcnlDYWxsYmFjayYmKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApp
bmRleCBjZDQ2NjMwZGI3MGMwYmI4ZTgwOWM3NGI5ODc5OTVmNDliNzM1ZWE3Li4yYmFiNGY5YjJk
Njg5N2M2NjIwOWY1NmYwMmVjNDg5ZWViNWUwY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgdm9p
ZCBTdG9yYWdlTWFuYWdlcjo6cGVyc2lzdGVkKERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFu
PiYmIHByb21pc2UpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChjb25uZWN0aW9uSW5m
b09yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKICAgICBhdXRvIGNvbm5lY3Rpb25J
bmZvID0gY29ubmVjdGlvbkluZm9PckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAg
ICBjb25uZWN0aW9uSW5mby5jb25uZWN0aW9uLmdldFBlcnNpc3RlZChjb25uZWN0aW9uSW5mby5v
cmlnaW4sIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYm9vbCBwZXJzaXN0ZWQpIG11dGFi
bGUgeworICAgIGNvbm5lY3Rpb25JbmZvLmNvbm5lY3Rpb24uZ2V0UGVyc2lzdGVkKFdURk1vdmUo
Y29ubmVjdGlvbkluZm8ub3JpZ2luKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShib29s
IHBlcnNpc3RlZCkgbXV0YWJsZSB7CiAgICAgICAgIHByb21pc2UucmVzb2x2ZShwZXJzaXN0ZWQp
OwogICAgIH0pOwogfQpAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmZp
bGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFj
CiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChjb25uZWN0aW9uSW5mb09yRXhjZXB0aW9u
LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKICAgICBhdXRvIGNvbm5lY3Rpb25JbmZvID0gY29ubmVj
dGlvbkluZm9PckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICBjb25uZWN0aW9u
SW5mby5jb25uZWN0aW9uLmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29ubmVjdGlvbkluZm8ub3Jp
Z2luLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHdlYWtOYXZpZ2F0b3IgPSBtX25hdmln
YXRvcl0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbkluZm8uY29ubmVj
dGlvbi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5KFdURk1vdmUoY29ubmVjdGlvbkluZm8ub3JpZ2lu
KSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCB3ZWFrTmF2aWdhdG9yID0gbV9uYXZpZ2F0
b3JdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3Jh
Z2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCBkNWRjY2MzNGNkMzExMGI4
ZWI1N2FjZmY3ZGNmNDQ3MTZjMzJkYzA1Li5hMWZiMDRmYzkxODAyNGZmOGZkMGQ0MWJjN2MxYjFh
NzE2NWRjYWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvV29y
a2VyU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Rv
cmFnZS9Xb3JrZXJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTU4LDE0ICs1OCwxNCBAQCB2b2lk
IFdvcmtlclN0b3JhZ2VDb25uZWN0aW9uOjpzY29wZUNsb3NlZCgpCiAgICAgbV9zY29wZSA9IG51
bGxwdHI7CiB9CiAKLXZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246OmdldFBlcnNpc3RlZChj
b25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbiwgU3RvcmFnZUNvbm5lY3Rpb246OlBlcnNpc3RDYWxs
YmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbjo6
Z2V0UGVyc2lzdGVkKENsaWVudE9yaWdpbiYmIG9yaWdpbiwgU3RvcmFnZUNvbm5lY3Rpb246OlBl
cnNpc3RDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChtX3Njb3Bl
KTsKIAogICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gKyttX2xhc3RDYWxsYmFja0lkZW50
aWZpZXI7CiAgICAgbV9nZXRQZXJzaXN0ZWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmll
ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChb
Y2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQo
KSB9LCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CisgICAgY2Fs
bE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBt
X3Njb3BlLT50aHJlYWQoKSB9LCBvcmlnaW4gPSBXVEZNb3ZlKG9yaWdpbikuaXNvbGF0ZWRDb3B5
KCldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENvbm5lY3Rpb24gPSB3b3Jr
ZXJUaHJlYWQtPndvcmtlckxvYWRlclByb3h5KCkuc3RvcmFnZUNvbm5lY3Rpb24oKTsKICAgICAg
ICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJU
aHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJh
Y2tJZGVudGlmaWVyLCByZXN1bHRdIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CkBAIC03NSw3ICs3
NSw3IEBAIHZvaWQgV29ya2VyU3RvcmFnZUNvbm5lY3Rpb246OmdldFBlcnNpc3RlZChjb25zdCBD
bGllbnRPcmlnaW4mIG9yaWdpbiwgU3RvcmFnZUNvCiAgICAgICAgIGlmICghbWFpblRocmVhZENv
bm5lY3Rpb24pCiAgICAgICAgICAgICByZXR1cm4gbWFpblRocmVhZENhbGxiYWNrKGZhbHNlKTsK
IAotICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Z2V0UGVyc2lzdGVkKG9yaWdpbiwgV1RG
TW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24t
PmdldFBlcnNpc3RlZChXVEZNb3ZlKG9yaWdpbiksIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNr
KSk7CiAgICAgfSk7CiB9CiAKQEAgLTg1LDIxICs4NSwyMSBAQCB2b2lkIFdvcmtlclN0b3JhZ2VD
b25uZWN0aW9uOjpkaWRHZXRQZXJzaXN0ZWQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBi
b29sCiAgICAgICAgIGNhbGxiYWNrKHBlcnNpc3RlZCk7CiB9CiAKLXZvaWQgV29ya2VyU3RvcmFn
ZUNvbm5lY3Rpb246OmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29uc3QgQ2xpZW50T3JpZ2luJiBv
cmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpHZXREaXJlY3RvcnlDYWxsYmFjayYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBXb3JrZXJTdG9yYWdlQ29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERp
cmVjdG9yeShDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpHZXREaXJl
Y3RvcnlDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChtX3Njb3Bl
KTsKICAgICAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9ICsrbV9sYXN0Q2FsbGJhY2tJ
ZGVudGlmaWVyOwogICAgIG1fZ2V0RGlyZWN0b3J5Q2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50
aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIAotICAgIGNhbGxPbk1haW5UaHJl
YWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhy
ZWFkKCkgfSwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAg
IGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVm
IHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgb3JpZ2luID0gV1RGTW92ZShvcmlnaW4pLmlzb2xhdGVk
Q29weSgpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDb25uZWN0aW9uID0g
d29ya2VyVGhyZWFkLT53b3JrZXJMb2FkZXJQcm94eSgpLnN0b3JhZ2VDb25uZWN0aW9uKCk7CiAg
ICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxl
IHsKICAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShb
Y2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShyZXN1
bHQpKV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBkb3duY2FzdDxX
b3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLnN0b3JhZ2VDb25uZWN0aW9uKCkuZGlkR2V0RGlyZWN0
b3J5KGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIH0s
IFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9OwotICAgICAgICBtYWlu
VGhyZWFkQ29ubmVjdGlvbi0+ZmlsZVN5c3RlbUdldERpcmVjdG9yeShvcmlnaW4sIFdURk1vdmUo
bWFpblRocmVhZENhbGxiYWNrKSk7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5maWxl
U3lzdGVtR2V0RGlyZWN0b3J5KFdURk1vdmUob3JpZ2luKSwgV1RGTW92ZShtYWluVGhyZWFkQ2Fs
bGJhY2spKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdG9yYWdlL1dvcmtlclN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA4NDViZjkzNmE4OTI1
OTA1NWY4MzM0OTViOGM4ZGQwNzNjMzY3YzM4Li42YWEyODhhYzI5NGFlMTAxMzBhYzQ5MTIyMTg1
NmQ0YzM4ODFmMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2Uv
V29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
b3JhZ2UvV29ya2VyU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNDMsOCArNDMsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkR2V0RGlyZWN0b3J5KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwg
RXhjZXB0aW9uT3I8U3RvcmFnZUNvbm5lY3Rpb246OkRpcmVjdG9yeUluZm8+JiYpOwogCiAgICAg
Ly8gU3RvcmFnZUNvbm5lY3Rpb24KLSAgICB2b2lkIGdldFBlcnNpc3RlZChjb25zdCBDbGllbnRP
cmlnaW4mLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVyc2lzdENhbGxiYWNrJiYpIGZpbmFsOwotICAg
IHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBDbGllbnRPcmlnaW4mLCBTdG9yYWdl
Q29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRQ
ZXJzaXN0ZWQoQ2xpZW50T3JpZ2luJiYsIFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2FsbGJh
Y2smJikgZmluYWw7CisgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KENsaWVudE9yaWdp
biYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgZmluYWw7CiAK
ICAgICBXZWFrUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBtX3Njb3BlOwogICAgIHVpbnQ2NF90IG1f
bGFzdENhbGxiYWNrSWRlbnRpZmllciB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKaW5kZXgg
ODJlNzgwMjY1MWUzYjAwY2Y5MzEzN2JjYzQ1MzYwN2Y3MTMxOTJiZi4uOTRlZjUwOTU1OGI2YzI2
NTlmZGZhM2Q2ODliNGIwZDI4MzczZDhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKQEAgLTM1
LDkgKzM1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DaGFuZ2VWZXJzaW9uV3JhcHBl
cjo6Q2hhbmdlVmVyc2lvbldyYXBwZXIoY29uc3QgU3RyaW5nJiBvbGRWZXJzaW9uLCBjb25zdCBT
dHJpbmcmIG5ld1ZlcnNpb24pCi0gICAgOiBtX29sZFZlcnNpb24ob2xkVmVyc2lvbi5pc29sYXRl
ZENvcHkoKSkKLSAgICAsIG1fbmV3VmVyc2lvbihuZXdWZXJzaW9uLmlzb2xhdGVkQ29weSgpKQor
Q2hhbmdlVmVyc2lvbldyYXBwZXI6OkNoYW5nZVZlcnNpb25XcmFwcGVyKFN0cmluZyYmIG9sZFZl
cnNpb24sIFN0cmluZyYmIG5ld1ZlcnNpb24pCisgICAgOiBtX29sZFZlcnNpb24oV1RGTW92ZShv
bGRWZXJzaW9uKS5pc29sYXRlZENvcHkoKSkKKyAgICAsIG1fbmV3VmVyc2lvbihXVEZNb3ZlKG5l
d1ZlcnNpb24pLmlzb2xhdGVkQ29weSgpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmgKaW5kZXgg
ZWI3ZWZlM2M0Mzc0ZmQ4ZjJkOGZjNzMwYzMxZDdmYzRiZDM1NmVlZS4uMWIxMjg3N2JiMWViMWU5
NzRlY2I0OWVlMzI5NjA4MDFlMzVkOTAyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaApAQCAtMzcsNyAr
MzcsNyBAQCBjbGFzcyBTUUxFcnJvcjsKIAogY2xhc3MgQ2hhbmdlVmVyc2lvbldyYXBwZXIgOiBw
dWJsaWMgU1FMVHJhbnNhY3Rpb25XcmFwcGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPENo
YW5nZVZlcnNpb25XcmFwcGVyPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBvbGRWZXJzaW9uLCBjb25z
dCBTdHJpbmcmIG5ld1ZlcnNpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2hhbmdlVmVyc2lv
bldyYXBwZXIob2xkVmVyc2lvbiwgbmV3VmVyc2lvbikpOyB9CisgICAgc3RhdGljIFJlZjxDaGFu
Z2VWZXJzaW9uV3JhcHBlcj4gY3JlYXRlKFN0cmluZyYmIG9sZFZlcnNpb24sIFN0cmluZyYmIG5l
d1ZlcnNpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ2hhbmdlVmVyc2lvbldyYXBwZXIoV1RG
TW92ZShvbGRWZXJzaW9uKSwgV1RGTW92ZShuZXdWZXJzaW9uKSkpOyB9CiAKICAgICBib29sIHBl
cmZvcm1QcmVmbGlnaHQoU1FMVHJhbnNhY3Rpb24mKSBvdmVycmlkZTsKICAgICBib29sIHBlcmZv
cm1Qb3N0ZmxpZ2h0KFNRTFRyYW5zYWN0aW9uJikgb3ZlcnJpZGU7CkBAIC00NSw3ICs0NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZUNvbW1pdEZhaWxlZEFmdGVyUG9zdGZsaWdodChTUUxU
cmFuc2FjdGlvbiYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIENoYW5nZVZlcnNpb25XcmFw
cGVyKGNvbnN0IFN0cmluZyYgb2xkVmVyc2lvbiwgY29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uKTsK
KyAgICBDaGFuZ2VWZXJzaW9uV3JhcHBlcihTdHJpbmcmJiBvbGRWZXJzaW9uLCBTdHJpbmcmJiBu
ZXdWZXJzaW9uKTsKIAogICAgIFN0cmluZyBtX29sZFZlcnNpb247CiAgICAgU3RyaW5nIG1fbmV3
VmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZS5jcHAKaW5kZXggNzdmZmQ5MzE5N2Q2ZTIzYmUyMDExMGEzZTNiOTI1ZTc5N2NhMmVmZi4uNWFm
MzcwOWRhMmE0OGU2Y2YyNDRhZDE5ZjA4Nzk2NGE0NGYwNGNlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTU4Miw5ICs1ODIsOSBA
QCB2b2lkIERhdGFiYXNlOjptYXJrQXNEZWxldGVkQW5kQ2xvc2UoKQogICAgIGNsb3NlKCk7CiB9
CiAKLXZvaWQgRGF0YWJhc2U6OmNoYW5nZVZlcnNpb24oY29uc3QgU3RyaW5nJiBvbGRWZXJzaW9u
LCBjb25zdCBTdHJpbmcmIG5ld1ZlcnNpb24sIFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNr
PiYmIGNhbGxiYWNrLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiYmIGVycm9y
Q2FsbGJhY2ssIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxiYWNrKQordm9pZCBE
YXRhYmFzZTo6Y2hhbmdlVmVyc2lvbihTdHJpbmcmJiBvbGRWZXJzaW9uLCBTdHJpbmcmJiBuZXdW
ZXJzaW9uLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRy
PFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiBlcnJvckNhbGxiYWNrLCBSZWZQdHI8Vm9p
ZENhbGxiYWNrPiYmIHN1Y2Nlc3NDYWxsYmFjaykKIHsKLSAgICBydW5UcmFuc2FjdGlvbihXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShlcnJvckNhbGxiYWNrKSwgV1RGTW92ZShzdWNjZXNzQ2Fs
bGJhY2spLCBDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6Y3JlYXRlKG9sZFZlcnNpb24sIG5ld1ZlcnNp
b24pLCBmYWxzZSk7CisgICAgcnVuVHJhbnNhY3Rpb24oV1RGTW92ZShjYWxsYmFjayksIFdURk1v
dmUoZXJyb3JDYWxsYmFjayksIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgQ2hhbmdlVmVyc2lv
bldyYXBwZXI6OmNyZWF0ZShXVEZNb3ZlKG9sZFZlcnNpb24pLCBXVEZNb3ZlKG5ld1ZlcnNpb24p
KSwgZmFsc2UpOwogfQogCiB2b2lkIERhdGFiYXNlOjp0cmFuc2FjdGlvbihSZWZQdHI8U1FMVHJh
bnNhY3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjaz4mJiBlcnJvckNhbGxiYWNrLCBSZWZQdHI8Vm9pZENhbGxiYWNrPiYmIHN1Y2Nlc3ND
YWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
aAppbmRleCA1ZTNiZTg1NGYwMDljZjYwYTZlYTA4ZGRlZjY3ZDVlMmYxYTVlMGU3Li45YjAwMmQ0
YTViZjc5Yzc1ZDhjYjU0ZWUxZjBkODc4NmQyZjM4MDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoK
IAogICAgIC8vIERpcmVjdCBzdXBwb3J0IGZvciB0aGUgRE9NIEFQSQogICAgIFN0cmluZyB2ZXJz
aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBjaGFuZ2VWZXJzaW9uKGNvbnN0IFN0cmluZyYgb2xkVmVy
c2lvbiwgY29uc3QgU3RyaW5nJiBuZXdWZXJzaW9uLCBSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxs
YmFjaz4mJiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiwgUmVmUHRyPFZv
aWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2spOworICAgIHZvaWQgY2hhbmdlVmVyc2lvbihT
dHJpbmcmJiBvbGRWZXJzaW9uLCBTdHJpbmcmJiBuZXdWZXJzaW9uLCBSZWZQdHI8U1FMVHJhbnNh
Y3Rpb25DYWxsYmFjaz4mJiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiwg
UmVmUHRyPFZvaWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2spOwogICAgIHZvaWQgdHJhbnNh
Y3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYsIFJlZlB0cjxTUUxUcmFuc2Fj
dGlvbkVycm9yQ2FsbGJhY2s+JiYsIFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYgc3VjY2Vzc0NhbGxi
YWNrKTsKICAgICB2b2lkIHJlYWRUcmFuc2FjdGlvbihSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxs
YmFjaz4mJiwgUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4mJiwgUmVmUHRyPFZv
aWRDYWxsYmFjaz4mJiBzdWNjZXNzQ2FsbGJhY2spOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggMDY3ZmQz
OTEzOTBjODVkYzJkNDlkZjQwODAxNjJiNDNjNGY0MjNjZS4uOWViMzkxYzZkMGJkNmQ0ODYwNTEw
ZWRhYjcyODkzMzk5NTA2YmM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApAQCAtNTQyLDE0ICs1NDIsMTQgQEAg
dm9pZCBEYXRhYmFzZVRyYWNrZXI6OmFkZE9wZW5EYXRhYmFzZShEYXRhYmFzZSYgZGF0YWJhc2Up
CiAgICAgYXV0byogbmFtZU1hcCA9IG1fb3BlbkRhdGFiYXNlTWFwLT5nZXQob3JpZ2luKTsKICAg
ICBpZiAoIW5hbWVNYXApIHsKICAgICAgICAgbmFtZU1hcCA9IG5ldyBEYXRhYmFzZU5hbWVNYXA7
Ci0gICAgICAgIG1fb3BlbkRhdGFiYXNlTWFwLT5hZGQob3JpZ2luLmlzb2xhdGVkQ29weSgpLCBu
YW1lTWFwKTsKKyAgICAgICAgbV9vcGVuRGF0YWJhc2VNYXAtPmFkZChXVEZNb3ZlKG9yaWdpbiku
aXNvbGF0ZWRDb3B5KCksIG5hbWVNYXApOwogICAgIH0KIAogICAgIFN0cmluZyBuYW1lID0gZGF0
YWJhc2Uuc3RyaW5nSWRlbnRpZmllcklzb2xhdGVkQ29weSgpOwogICAgIGF1dG8qIGRhdGFiYXNl
U2V0ID0gbmFtZU1hcC0+Z2V0KG5hbWUpOwogICAgIGlmICghZGF0YWJhc2VTZXQpIHsKICAgICAg
ICAgZGF0YWJhc2VTZXQgPSBuZXcgRGF0YWJhc2VTZXQ7Ci0gICAgICAgIG5hbWVNYXAtPnNldChu
YW1lLmlzb2xhdGVkQ29weSgpLCBkYXRhYmFzZVNldCk7CisgICAgICAgIG5hbWVNYXAtPnNldChX
VEZNb3ZlKG5hbWUpLmlzb2xhdGVkQ29weSgpLCBkYXRhYmFzZVNldCk7CiAgICAgfQogCiAgICAg
ZGF0YWJhc2VTZXQtPmFkZCgmZGF0YWJhc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxFcnJvci5oCmluZGV4IDE0NWNhNTAwMzM1NzZlNzAyN2U4MDJmMGQyOWM4
MjU5MjQ0YTVhY2EuLjc3Y2UxYTFjYWMxNTA5NDhjMzQxMDRlZGQzM2IxMGEwZGQ1OWYwYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXJyb3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmgKQEAgLTM1
LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTUUxFcnJvciA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxFcnJvcj4gewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1FMRXJyb3IoY29kZSwgbWVzc2FnZSkpOyB9CisgICAg
c3RhdGljIFJlZjxTUUxFcnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIFN0cmluZyYmIG1lc3Nh
Z2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1FMRXJyb3IoY29kZSwgV1RGTW92ZShtZXNzYWdl
KSkpOyB9CiAgICAgc3RhdGljIFJlZjxTUUxFcnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIGNv
bnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGNyZWF0ZShjb2RlLCBtYWtlU3RyaW5nKG1lc3NhZ2UsICIgKCIsIHNxbGl0ZUNvZGUsICcpJykp
OwpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKLSAgICBTUUxF
cnJvcih1bnNpZ25lZCBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIDogbV9jb2RlKGNvZGUp
LCBtX21lc3NhZ2UobWVzc2FnZS5pc29sYXRlZENvcHkoKSkgeyB9CisgICAgU1FMRXJyb3IodW5z
aWduZWQgY29kZSwgU3RyaW5nJiYgbWVzc2FnZSkgOiBtX2NvZGUoY29kZSksIG1fbWVzc2FnZShX
VEZNb3ZlKG1lc3NhZ2UpLmlzb2xhdGVkQ29weSgpKSB7IH0KICAgICB1bnNpZ25lZCBtX2NvZGU7
CiAgICAgU3RyaW5nIG1fbWVzc2FnZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCmlu
ZGV4IGY3Y2YwZTE3MGM2MzllOTk2NGM4NzIwYjhhNDllMDU5ZmU1YTA1M2YuLmU2NTMxNWE1MTU5
ZTFiOGZlMTVjYmE5OTY1N2E4MDdjZGE4NmUwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5oCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ1ZmZl
cmVkQW1vdW50KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShpbnQgY29kZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pID0gMDsKICAgICAvLyBMb2cgdGhlIHJlYXNvbiB0ZXh0IGFu
ZCBjbG9zZSB0aGUgY29ubmVjdGlvbi4gV2lsbCBjYWxsIGRpZENsb3NlKCkuCi0gICAgdmlydHVh
bCB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZmFpbChTdHJpbmcmJiByZWFzb24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzY29ubmVjdCgp
ID0gMDsgLy8gV2lsbCBzdXBwcmVzcyBkaWRDbG9zZSgpLgogCiAgICAgdmlydHVhbCB2b2lkIHN1
c3BlbmQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXIuY3BwCmluZGV4IDdiMTQ0MWQzMWNiY2JmNzBhMzkxMmE5YTIxMDU3NWFkMzVjZjU5
MzIuLmE5Y2M1NDEwYTgzYzc3NjUyZGVmNTg3ZGI0ODVmMjA1NDk5OGZiMWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCkBAIC0xNjIs
MTEgKzE2MiwxMSBAQCB2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6ZGlkQ29ubmVjdCgpCiAgICAgICAgIHByb2Nlc3NQZW5kaW5nVGFza3MoKTsKIH0KIAotdm9p
ZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2FnZShTdHJpbmcmJiBtZXNzYWdlKQogewot
ICAgIG1fcGVuZGluZ1Rhc2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2s+KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgbWVzc2FnZSA9
IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAg
IG1fcGVuZGluZ1Rhc2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2s+KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgbWVzc2FnZSA9IFdU
Rk1vdmUobWVzc2FnZSkuaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jikg
bXV0YWJsZSB7CiAgICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgIG1fY2xpZW50LT5k
aWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlKTsKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICB9KSk7CiAKICAgICBpZiAoIW1fc3Vz
cGVuZGVkKQpAQCAtMjE3LDExICsyMTcsMTEgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXI6OmRpZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZlcmUKICAg
ICAgICAgcHJvY2Vzc1BlbmRpbmdUYXNrcygpOwogfQogCi12b2lkIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJp
bmcmIHJlYXNvbikKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyYmIHJlYXNvbikKIHsKLSAgICBtX3BlbmRp
bmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPihb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHJlYXNvbiA9IHJlYXNvbi5pc29s
YXRlZENvcHkoKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgbV9wZW5kaW5nVGFz
a3MuYXBwZW5kKG1ha2VVbmlxdWU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4oW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCByZWFzb24gPSBXVEZNb3ZlKHJlYXNvbiku
aXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CiAgICAg
ICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKHJlYXNvbik7CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VF
cnJvcihXVEZNb3ZlKHJlYXNvbikpOwogICAgIH0pKTsKIAogICAgIGlmICghbV9zdXNwZW5kZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKaW5k
ZXggNmFlYmE1M2U4ZmM0MjM0ZTgzMWRlMWQ3ZDY5OTAwNTZiNzgxNmJjYy4uOTY1ODAyMjNlZjA0
YTdiYWI0N2QwZDIwOGUzMzg5ZWU4YTkxNjE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaApAQCAtNzQsMTIgKzc0LDEyIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNsZWFyQ2xpZW50KCk7CiAKICAgICB2b2lkIGRpZENvbm5lY3QoKTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShTdHJpbmcmJiBtZXNzYWdlKTsKICAgICB2b2lkIGRpZFJlY2VpdmVC
aW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90PiYmKTsKICAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KTsKICAgICB2b2lkIGRpZFN0YXJ0Q2xvc2lu
Z0hhbmRzaGFrZSgpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVmZmVy
ZWRBbW91bnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQ6OkNsb3NpbmdIYW5kc2hha2VDb21wbGV0
aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29uKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYgcmVhc29uKTsKICAgICB2b2lk
IGRpZFVwZ3JhZGVVUkwoKTsKIAogICAgIHZvaWQgc3VzcGVuZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCA4MTZlY2ViMTZiYjE2
MjVmNzMwM2NjMjhjMjdmNmQ2MGU5MDYxZGE3Li5mOTczZTViZDNiOTBlM2E0Y2M3MzUyMTRkOWEz
MTlhZGY5MjFlNGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcApAQCAtNTY2LDIxICs1NjYsMjEgQEAgdm9pZCBXZWJTb2NrZXQ6OmRpZENv
bm5lY3QoKQogICAgIH0pOwogfQogCi12b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29uc3QgU3RyaW5nJiBtc2cpCit2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2UoU3Ry
aW5nJiYgbWVzc2FnZSkKIHsKLSAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBkaWRSZWNl
aXZlTWVzc2FnZSgpIFRleHQgbWVzc2FnZSAnJXMnIiwgdGhpcywgbXNnLnV0ZjgoKS5kYXRhKCkp
OwotICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2Vi
U29ja2V0LCBbdGhpcywgbXNnXSB7CisgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlk
UmVjZWl2ZU1lc3NhZ2UoKSBUZXh0IG1lc3NhZ2UgJyVzJyIsIHRoaXMsIG1lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291
cmNlOjpXZWJTb2NrZXQsIFt0aGlzLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKG1fc3RhdGUgIT0gT1BFTikKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICBpZiAoVU5MSUtFTFkoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9u
dGVuZHMoKSkpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBpbnNwZWN0b3IgPSBtX2NoYW5uZWwt
PmNoYW5uZWxJbnNwZWN0b3IoKSkgewotICAgICAgICAgICAgICAgIGF1dG8gdXRmOE1lc3NhZ2Ug
PSBtc2cudXRmOCgpOworICAgICAgICAgICAgICAgIGF1dG8gdXRmOE1lc3NhZ2UgPSBtZXNzYWdl
LnV0ZjgoKTsKICAgICAgICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRG
cmFtZShXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVhdGVGcmFtZSh1dGY4TWVzc2FnZS5k
YXRhQXNVSW50OFB0cigpLCB1dGY4TWVzc2FnZS5sZW5ndGgoKSwgV2ViU29ja2V0RnJhbWU6Ok9w
Q29kZTo6T3BDb2RlVGV4dCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIEFT
U0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgICAgICBkaXNwYXRjaEV2ZW50KE1l
c3NhZ2VFdmVudDo6Y3JlYXRlKG1zZywgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRv
U3RyaW5nKCkpKTsKKyAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6OmNyZWF0ZShX
VEZNb3ZlKG1lc3NhZ2UpLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsKS0+dG9TdHJpbmco
KSkpOwogICAgIH0pOwogfQogCkBAIC02MDgsMTAgKzYwOCwxMCBAQCB2b2lkIFdlYlNvY2tldDo6
ZGlkUmVjZWl2ZUJpbmFyeURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYgYmluYXJ5RGF0YSkKICAgICB9
KTsKIH0KIAotdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3Ry
aW5nJiByZWFzb24pCit2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJp
bmcmJiByZWFzb24pCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVjZWl2
ZUVycm9yTWVzc2FnZSgpIiwgdGhpcyk7Ci0gICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZl
KCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzLCByZWFzb25dIHsKKyAgICBxdWV1
ZVRhc2tLZWVwaW5nT2JqZWN0QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3Ro
aXMsIHJlYXNvbiA9IFdURk1vdmUocmVhc29uKV0gewogICAgICAgICBpZiAobV9zdGF0ZSA9PSBD
TE9TRUQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fc3RhdGUgPSBDTE9TRUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggMGMz
NmEyMzYxMTM3ZTA4NjU4NWEwMTdiOWM2YjFmNWUxNzhlNmVlNi4uZTY4NjNlNDZkYTA3ZDE4YjZk
OTE1ZWIxNWMyNGNkZjIyZGI2YTZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuaApAQCAtMTEzLDkgKzExMyw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAgICB2b2lkIGRpZENv
bm5lY3QoKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShTdHJpbmcmJiBtZXNz
YWdlKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90
PiYmKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5n
JiByZWFzb24pIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcm
JiByZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWdu
ZWQgYnVmZmVyZWRBbW91bnQpIGZpbmFsOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNo
YWtlKCkgZmluYWw7CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJl
ZEFtb3VudCwgQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0
IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBiYjEy
NTI0MWY2MzE5Y2Q1NDc0Zjc1NzJiN2QxYmY0MzYyYmYwZmUxLi5kZjU2MzU5YzZmZGEwNTIxMDNk
OTdiM2Q4YTVkMTA4NDkxOTc1ZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yMTIsNyArMjEyLDcgQEAg
dm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFz
b24pCiAgICAgICAgIG1fY2xvc2luZ1RpbWVyLnN0YXJ0T25lU2hvdChUQ1BNYXhpbXVtU2VnbWVu
dExpZmV0aW1lICogMik7CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChjb25zdCBT
dHJpbmcmIHJlYXNvbikKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChTdHJpbmcmJiByZWFz
b24pCiB7CiAgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgZmFp
bCgpIHJlYXNvbj0nJXMnIiwgdGhpcywgcmVhc29uLnV0ZjgoKS5kYXRhKCkpOwogICAgIEFTU0VS
VCghbV9zdXNwZW5kZWQpOwpAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5l
bDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKICAgICBtX2hhc0NvbnRpbnVvdXNGcmFtZSA9
IGZhbHNlOwogICAgIG1fY29udGludW91c0ZyYW1lRGF0YS5jbGVhcigpOwogICAgIGlmIChtX2Ns
aWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsK
KyAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoV1RGTW92ZShyZWFzb24p
KTsKIAogICAgIGlmIChtX2hhbmRsZSAmJiAhbV9jbG9zZWQpCiAgICAgICAgIG1faGFuZGxlLT5k
aXNjb25uZWN0KCk7IC8vIFdpbGwgY2FsbCBkaWRDbG9zZVNvY2tldFN0cmVhbSgpIGJ1dCBtYXli
ZSBub3Qgc3luY2hyb25vdXNseS4KQEAgLTM4MCw3ICszODAsNyBAQCB2b2lkIFdlYlNvY2tldENo
YW5uZWw6OmRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlJiBoYW5kbGUsIGNv
bnN0IFNvYwogICAgIH0KICAgICBtX3Nob3VsZERpc2NhcmRSZWNlaXZlZERhdGEgPSB0cnVlOwog
ICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IobWVzc2FnZSk7CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKFdU
Rk1vdmUobWVzc2FnZSkpOwogICAgIGhhbmRsZS5kaXNjb25uZWN0KCk7CiB9CiAKQEAgLTU0Niw3
ICs1NDYsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgaWYg
KHJlc3VsdCA9PSBXZWJTb2NrZXRGcmFtZTo6RnJhbWVJbmNvbXBsZXRlKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKHJlc3VsdCA9PSBXZWJTb2NrZXRGcmFtZTo6RnJhbWVFcnJvcikg
ewotICAgICAgICBmYWlsKGVycm9yU3RyaW5nKTsKKyAgICAgICAgZmFpbChXVEZNb3ZlKGVycm9y
U3RyaW5nKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTYyMiw3ICs2MjIs
NyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICAg
ICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxk
IG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiIpOwogICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3Nh
Z2UpOworICAgICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoV1RG
TW92ZShtZXNzYWdlKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fY29udGludW91c0ZyYW1l
T3BDb2RlID09IFdlYlNvY2tldEZyYW1lOjpPcENvZGVCaW5hcnkpCiAgICAgICAgICAgICAgICAg
bV9jbGllbnQtPmRpZFJlY2VpdmVCaW5hcnlEYXRhKFdURk1vdmUoY29udGludW91c0ZyYW1lRGF0
YSkpOwogICAgICAgICB9CkBAIC02MzksNyArNjM5LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVs
Ojpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkpCiAgICAg
ICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTgu
Iik7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2Vp
dmVNZXNzYWdlKG1lc3NhZ2UpOworICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZl
TWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IG1faGFzQ29udGludW91c0ZyYW1lID0gdHJ1ZTsKICAgICAgICAgICAgIG1fY29udGludW91c0Zy
YW1lT3BDb2RlID0gV2ViU29ja2V0RnJhbWU6Ok9wQ29kZVRleHQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCA4YzA4
ZTI2YjlmYmFlN2VhYmJjYTYwMThiNjdjYjdhYTI5ZjY1ZTIwLi42M2ZlNjJhNzY4YmRmOTIwOTIw
YThhZjczYzUyMDQzMjQ2YjNkOGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGlj
OgogICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHNlbmQoQmxvYiYp
IGZpbmFsOwogICAgIHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOyAvLyBTdGFy
dCBjbG9zaW5nIGhhbmRzaGFrZS4KLSAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24p
IGZpbmFsOworICAgIHZvaWQgZmFpbChTdHJpbmcmJiByZWFzb24pIGZpbmFsOwogICAgIHZvaWQg
ZGlzY29ubmVjdCgpIGZpbmFsOwogCiAgICAgdm9pZCBzdXNwZW5kKCkgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWxDbGllbnQuaAppbmRleCA3ZjcxMzFjYTE5ZTc4YzBjNzRhYTQ5Nzg5NDUwYjYxNjUzN2JkMGZj
Li5kY2Y5MTQwZjkwNGExZmNlNzcyYTI3YmZlZGUyYTFiNDAwNThiMjg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
Q2xpZW50LmgKQEAgLTM5LDkgKzM5LDkgQEAgY2xhc3MgV2ViU29ja2V0Q2hhbm5lbENsaWVudCA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJTb2NrZXRDaGFubmVsQ2xpZW50PiB7CiBwdWJsaWM6
CiAgICAgdmlydHVhbCB+V2ViU29ja2V0Q2hhbm5lbENsaWVudCgpID0gZGVmYXVsdDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29ubmVjdCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShTdHJpbmcmJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQmluYXJ5
RGF0YShWZWN0b3I8dWludDhfdD4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRh
dGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKSA9IDA7CiAgICAgZW51bSBDbG9zaW5n
SGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IGM0NTM4Yjk4
ZDBiYjkyZWE5ZDYxZDI5YjdmMDk1MTcwODY3ZGZmNTUuLmY3Njk2NzQ5MzM3MjAxN2QzNjNlM2Ex
MmU3N2Y1NWJkNTAyNTg1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC0xMzMsMTEgKzEzMyw2IEBA
IGNvbnN0IFVSTCYgV2ViU29ja2V0SGFuZHNoYWtlOjp1cmwoKSBjb25zdAogICAgIHJldHVybiBt
X3VybDsKIH0KIAotdm9pZCBXZWJTb2NrZXRIYW5kc2hha2U6OnNldFVSTChjb25zdCBVUkwmIHVy
bCkKLXsKLSAgICBtX3VybCA9IHVybC5pc29sYXRlZENvcHkoKTsKLX0KLQogLy8gRklYTUU6IFJl
dHVybiB0eXBlIHNob3VsZCBqdXN0IGJlIFN0cmluZywgbm90IGNvbnN0IFN0cmluZy4KIGNvbnN0
IFN0cmluZyBXZWJTb2NrZXRIYW5kc2hha2U6Omhvc3QoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggNzc2MzI1ZmI0YTlkYjgzNmVkYTQ2
NGZhOGFmMDZlZjY0YjU5OWU5Ni4uYmJkNjMxNTNhZWY0NDBlMDk3YzczYTUyNzI4YTI1Zjg2YzY3
NWM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0x
MTgsMTAgKzExOCwxMCBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpj
bG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgICAgIG1fYnJpZGdlLT5j
bG9zZShjb2RlLCByZWFzb24pOwogfQogCi12b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQordm9pZCBXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChTdHJpbmcmJiByZWFzb24pCiB7CiAgICAgaWYgKG1fYnJp
ZGdlKQotICAgICAgICBtX2JyaWRnZS0+ZmFpbChyZWFzb24pOworICAgICAgICBtX2JyaWRnZS0+
ZmFpbChXVEZNb3ZlKHJlYXNvbikpOwogfQogCiB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKQEAgLTIyNSwxMiArMjI1LDEyIEBAIHZvaWQgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmNsb3NlKGludCBjb2RlLCBjb25zdCBT
dHJpbmcmIHJlYXNvCiAgICAgbV9tYWluV2ViU29ja2V0Q2hhbm5lbC0+Y2xvc2UoY29kZSwgcmVh
c29uKTsKIH0KIAotdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6
ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OlBlZXI6OmZhaWwoU3RyaW5nJiYgcmVhc29uKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAgICAgaWYgKCFtX21haW5XZWJTb2NrZXRDaGFubmVsKQogICAgICAgICBy
ZXR1cm47Ci0gICAgbV9tYWluV2ViU29ja2V0Q2hhbm5lbC0+ZmFpbChyZWFzb24pOworICAgIG1f
bWFpbldlYlNvY2tldENoYW5uZWwtPmZhaWwoV1RGTW92ZShyZWFzb24pKTsKIH0KIAogdm9pZCBX
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlzY29ubmVjdCgpCkBAIC0y
NzIsMTMgKzI3MiwxMyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQ
ZWVyOjpkaWRDb25uZWN0KCkKICAgICB9LCBtX3Rhc2tNb2RlKTsKIH0KIAotdm9pZCBXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFwcGVyID0gbV93b3JrZXJD
bGllbnRXcmFwcGVyLCBtZXNzYWdlID0gbWVzc2FnZS5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0
VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFw
cGVyID0gbV93b3JrZXJDbGllbnRXcmFwcGVyLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKS5p
c29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7
CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNj
b3BlKCkgfHwgY29udGV4dC5pc1dvcmtsZXRHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgd29ya2Vy
Q2xpZW50V3JhcHBlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZSk7CisgICAgICAgIHdvcmtl
ckNsaWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogICAg
IH0sIG1fdGFza01vZGUpOwogfQogCkBAIC0zMjMsMTMgKzMyMywxMyBAQCB2b2lkIFdvcmtlclRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRs
ZWRCdWZmZXJlZAogICAgIH0sIG1fdGFza01vZGUpOwogfQogCi12b2lkIFdvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0
cmluZyYgcmVhc29uKQordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiByZWFzb24pCiB7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKIAotICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9X
b3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2Vy
Q2xpZW50V3JhcHBlciwgcmVhc29uID0gcmVhc29uLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICBtX2xvYWRlclByb3h5LnBvc3RU
YXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3dvcmtlckNsaWVudFdyYXBw
ZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIsIHJlYXNvbiA9IFdURk1vdmUocmVhc29uKS5pc29s
YXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CiAg
ICAgICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3Bl
KCkgfHwgY29udGV4dC5pc1dvcmtsZXRHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgd29ya2VyQ2xp
ZW50V3JhcHBlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihyZWFzb24pOworICAgICAgICB3b3Jr
ZXJDbGllbnRXcmFwcGVyLT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKFdURk1vdmUocmVhc29uKSk7
CiAgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKQEAgLTQxMiwxNSArNDEyLDE0IEBAIHZvaWQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y29ubmVjdChjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyCiAgICAgICAgIAogICAgICAgICAvLyBGSVhNRTogbWFrZSB0aGlzIG1p
eGVkIGNvbnRlbnQgY2hlY2sgZXF1aXZhbGVudCB0byB0aGUgZG9jdW1lbnQgbWl4ZWQgY29udGVu
dCBjaGVjayBjdXJyZW50bHkgaW4gV2ViU29ja2V0Ojpjb25uZWN0KCkKICAgICAgICAgaWYgKGF1
dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewotICAgICAgICAgICAgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IGVycm9yU3RyaW5nID0gTWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2hlY2tGb3JNaXhl
ZENvbnRlbnRJbkZyYW1lVHJlZSgqZnJhbWUsIHVybCk7Ci0gICAgICAgICAgICBpZiAoZXJyb3JT
dHJpbmcpIHsKLSAgICAgICAgICAgICAgICBwZWVyLT5mYWlsKGVycm9yU3RyaW5nLnZhbHVlKCkp
OworICAgICAgICAgICAgaWYgKGF1dG8gZXJyb3JTdHJpbmcgPSBNaXhlZENvbnRlbnRDaGVja2Vy
OjpjaGVja0Zvck1peGVkQ29udGVudEluRnJhbWVUcmVlKCpmcmFtZSwgdXJsKSkgeworICAgICAg
ICAgICAgICAgIHBlZXItPmZhaWwoV1RGTW92ZShlcnJvclN0cmluZykudmFsdWUoKSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAg
aWYgKHBlZXItPmNvbm5lY3QodXJsLCBwcm90b2NvbCkgPT0gVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OkNvbm5lY3RTdGF0dXM6OktPKQotICAgICAgICAgICAgcGVlci0+ZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcihudWxsU3RyaW5nKCkpOworICAgICAgICAgICAgcGVlci0+ZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcihTdHJpbmcgeyB9KTsKICAgICB9KTsKIH0KIApAQCAtNTIwLDE3ICs1MTksMTcg
QEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpjbG9zZShp
bnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWEKICAgICB9KTsKIH0KIAotdm9pZCBXb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29u
KQordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpmYWlsKFN0
cmluZyYmIHJlYXNvbikKIHsKICAgICBpZiAoIW1fcGVlcikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza1RvTG9hZGVyKFtwZWVyID0gbV9wZWVyLCByZWFzb24g
PSByZWFzb24uaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IHsKKyAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrVG9Mb2FkZXIoW3BlZXIgPSBtX3BlZXIsIHJl
YXNvbiA9IFdURk1vdmUocmVhc29uKS5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc0RvY3VtZW50KCkpOwog
ICAgICAgICBBU1NFUlQocGVlcik7CiAKLSAgICAgICAgcGVlci0+ZmFpbChyZWFzb24pOworICAg
ICAgICBwZWVyLT5mYWlsKFdURk1vdmUocmVhc29uKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggMzY5YTZmYTE2ZDRjNDQyNDdkZDA2
Y2UwNmQ3YWFhNzU4MDM0YmZhYy4uNDBhM2ZhNzBjYzIzY2E4MDEyMjgxNDYyOTRkMDVjNzFiZTgy
NGU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtl
clRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKQEAgLTYzLDcg
KzYzLDcgQEAgcHVibGljOgogICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVz
dWx0IHNlbmQoQmxvYiYpIGZpbmFsOwogICAgIHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KCkgY29u
c3QgZmluYWw7CiAgICAgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24p
IGZpbmFsOwotICAgIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7CisgICAg
dm9pZCBmYWlsKFN0cmluZyYmIHJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBkaXNjb25uZWN0KCkg
ZmluYWw7IC8vIFdpbGwgc3VwcHJlc3MgZGlkQ2xvc2UoKS4KICAgICB2b2lkIHN1c3BlbmQoKSBm
aW5hbDsKICAgICB2b2lkIHJlc3VtZSgpIGZpbmFsOwpAQCAtODIsMTkgKzgyLDE5IEBAIHB1Ymxp
YzoKICAgICAgICAgdm9pZCBzZW5kKEJsb2ImKTsKICAgICAgICAgdm9pZCBidWZmZXJlZEFtb3Vu
dCgpOwogICAgICAgICB2b2lkIGNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7
Ci0gICAgICAgIHZvaWQgZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbik7CisgICAgICAgIHZvaWQg
ZmFpbChTdHJpbmcmJiByZWFzb24pOwogICAgICAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKICAgICAg
ICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgICAgIHZvaWQgcmVzdW1lKCk7CiAKICAgICAgICAgLy8g
V2ViU29ja2V0Q2hhbm5lbENsaWVudCBmdW5jdGlvbnMuCiAgICAgICAgIHZvaWQgZGlkQ29ubmVj
dCgpIGZpbmFsOwotICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkgZmluYWw7CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoU3RyaW5nJiYg
bWVzc2FnZSkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoVmVjdG9y
PHVpbnQ4X3Q+JiYpIGZpbmFsOwogICAgICAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50
KHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRTdGFydENs
b3NpbmdIYW5kc2hha2UoKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCB1
bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMs
IHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKSBmaW5hbDsKLSAgICAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29uKSBmaW5h
bDsKKyAgICAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyYmIHJlYXNvbikg
ZmluYWw7CiAgICAgICAgIHZvaWQgZGlkVXBncmFkZVVSTCgpIGZpbmFsOwogCiAgICAgcHJpdmF0
ZToKQEAgLTEyNiw3ICsxMjYsNyBAQCBwcml2YXRlOgogICAgICAgICBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6U2VuZFJlc3VsdCBzZW5kKEJsb2ImKTsKICAgICAgICAgdW5zaWduZWQgYnVm
ZmVyZWRBbW91bnQoKTsKICAgICAgICAgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5n
JiByZWFzb24pOwotICAgICAgICB2b2lkIGZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pOworICAg
ICAgICB2b2lkIGZhaWwoU3RyaW5nJiYgcmVhc29uKTsKICAgICAgICAgdm9pZCBkaXNjb25uZWN0
KCk7CiAgICAgICAgIHZvaWQgc3VzcGVuZCgpOwogICAgICAgICB2b2lkIHJlc3VtZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FeGNlcHRpb25EYXRhLmgKaW5kZXggOTg1MzM3NmYxYzRkZGNmZDFhNTFhZDRhZWFj
OWQwNjRlZTk5ZjU0OS4uY2UwY2FlMzY3ZjJjYzUxMWEyNTJhNjUyZTNjNjI1NGRhYmExYjkzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkRhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uRGF0YS5oCkBAIC00MCwxMCArNDAsOCBAQCBzdHJ1Y3Qg
RXhjZXB0aW9uRGF0YSB7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IGRlY29kZShEZWNvZGVyJik7CiAKLSAgICBFeGNlcHRp
b24gdG9FeGNlcHRpb24oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IGNvZGUsIFN0cmluZyB7IG1lc3NhZ2UgfSB9OwotICAgIH0KKyAgICBFeGNlcHRpb24gdG9FeGNl
cHRpb24oKSBjb25zdCAmIHsgcmV0dXJuIEV4Y2VwdGlvbiB7IGNvZGUsIFN0cmluZyB7IG1lc3Nh
Z2UgfSB9OyB9CisgICAgRXhjZXB0aW9uIHRvRXhjZXB0aW9uKCkgJiYgeyByZXR1cm4gRXhjZXB0
aW9uIHsgY29kZSwgV1RGTW92ZShtZXNzYWdlKSB9OyB9CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JXb3JrZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvcldvcmtlckFnZW50LmNwcAppbmRleCBjMTMzNzRiMTYxZWViYmY2Nzg2MGEwMDA5YmVj
MTRhMzVjNTMyOTlmLi5mZTFjYzJkYmI5ODYzY2Q0NDgwNDc2ZDJlMjFhNWEyMjlkYzhhMGU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvcldvcmtl
ckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
cldvcmtlckFnZW50LmNwcApAQCAtMTA3LDkgKzEwNyw5IEBAIFByb3RvY29sOjpFcnJvclN0cmlu
Z09yPHZvaWQ+IEluc3BlY3RvcldvcmtlckFnZW50OjpzZW5kTWVzc2FnZVRvV29ya2VyKGNvbnN0
IFN0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6c2Vu
ZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSYgcHJveHks
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgSW5zcGVjdG9yV29ya2VyQWdlbnQ6OnNlbmRN
ZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmIHByb3h5LCBT
dHJpbmcmJiBtZXNzYWdlKQogewotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5kaXNwYXRjaE1l
c3NhZ2VGcm9tV29ya2VyKHByb3h5LmlkZW50aWZpZXIoKSwgbWVzc2FnZSk7CisgICAgbV9mcm9u
dGVuZERpc3BhdGNoZXItPmRpc3BhdGNoTWVzc2FnZUZyb21Xb3JrZXIocHJveHkuaWRlbnRpZmll
cigpLCBXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAogYm9vbCBJbnNwZWN0b3JXb3JrZXJBZ2VudDo6
c2hvdWxkV2FpdEZvckRlYnVnZ2VyT25TdGFydCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvcldvcmtlckFnZW50LmgKaW5kZXggOTA1
NjdiYjAyMTBlZGU5ZDNkNzJkOGQwMjUzNDk3MzczN2MwYTZmMS4uZTFiYmQ4Zjk0NmU0MWYzMDFh
OGZmODdmNzRhZmUzOTlkNjFmZWMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JXb3JrZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yV29ya2VyQWdlbnQuaApAQCAtNTQsNyArNTQsNyBAQCBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBzZW5k
TWVzc2FnZVRvV29ya2VyKGNvbnN0IFN0cmluZyYgd29ya2VySWQsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSk7CiAKICAgICAvLyBXb3JrZXJJbnNwZWN0b3JQcm94eTo6UGFnZUNoYW5uZWwKLSAgICB2
b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkm
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZvaWQgc2VuZE1lc3NhZ2VGcm9tV29ya2Vy
VG9Gcm9udGVuZChXb3JrZXJJbnNwZWN0b3JQcm94eSYsIFN0cmluZyYmIG1lc3NhZ2UpOwogCiAg
ICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCiAgICAgYm9vbCBzaG91bGRXYWl0Rm9yRGVi
dWdnZXJPblN0YXJ0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
Y2hlU3RvcmFnZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhY2hlU3RvcmFnZVBy
b3ZpZGVyLmgKaW5kZXggZWVmNjI1NzJhNzU4YjZmZWNhN2NiMGE3NTZmNDFjZDE4NTgwOWFhNy4u
YTQ3OTdhNTZiZmE2ZDA2MDJkMzQ5OTdjYjAxOGUzODFjNDZkNzE3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHZvaWQgb3Blbihjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmLCBE
T01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWwgeyB9CiAgICAg
ICAgIHZvaWQgcmVtb3ZlKHVpbnQ2NF90LCBET01DYWNoZUVuZ2luZTo6Q2FjaGVJZGVudGlmaWVy
Q2FsbGJhY2smJikgZmluYWwgeyB9CiAgICAgICAgIHZvaWQgcmV0cmlldmVDYWNoZXMoY29uc3Qg
Q2xpZW50T3JpZ2luJiwgdWludDY0X3QsIERPTUNhY2hlRW5naW5lOjpDYWNoZUluZm9zQ2FsbGJh
Y2smJikgZmluYWwgeyB9Ci0gICAgICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90LCBj
b25zdCBSZXRyaWV2ZVJlY29yZHNPcHRpb25zJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxs
YmFjayYmKSBmaW5hbCB7IH0KKyAgICAgICAgdm9pZCByZXRyaWV2ZVJlY29yZHModWludDY0X3Qs
IFJldHJpZXZlUmVjb3Jkc09wdGlvbnMmJiwgRE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFj
ayYmKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBiYXRjaERlbGV0ZU9wZXJhdGlvbih1aW50NjRf
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgQ2FjaGVRdWVyeU9wdGlvbnMmJiwgRE9NQ2FjaGVF
bmdpbmU6OlJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJikgZmluYWwgeyB9CiAgICAgICAgIHZv
aWQgYmF0Y2hQdXRPcGVyYXRpb24odWludDY0X3QsIFZlY3RvcjxET01DYWNoZUVuZ2luZTo6UmVj
b3JkPiYmLCBET01DYWNoZUVuZ2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5h
bCB7IH0KICAgICAgICAgdm9pZCByZWZlcmVuY2UodWludDY0X3QpIGZpbmFsIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcAppbmRleCBkOWNkZTRmNWU5ODJkODNjMGQ5MzE5
MGE5ODAyZDUyNzU4MzA5Y2Y1Li5iMzliYmRkNDhhNTRhNDcyYzg5YmEwYzI0OTI1ZTI2MzFhYmNi
OWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VEZWJ1Z2dhYmxlLmNwcApAQCAtNzksOSArNzks
OSBAQCB2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCYgY2hh
bm5lbCkKICAgICBtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc2Nvbm5lY3RGcm9udGVu
ZChjaGFubmVsKTsKIH0KIAotdm9pZCBQYWdlRGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJv
bVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFBhZ2VEZWJ1Z2dhYmxlOjpkaXNw
YXRjaE1lc3NhZ2VGcm9tUmVtb3RlKFN0cmluZyYmIG1lc3NhZ2UpCiB7Ci0gICAgbV9wYWdlLmlu
c3BlY3RvckNvbnRyb2xsZXIoKS5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQobWVzc2FnZSk7
CisgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5kaXNwYXRjaE1lc3NhZ2VGcm9tRnJv
bnRlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIHZvaWQgUGFnZURlYnVnZ2FibGU6OnNldElu
ZGljYXRpbmcoYm9vbCBpbmRpY2F0aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlRGVidWdnYWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlRGVidWdnYWJsZS5o
CmluZGV4IDU4ZmM0NzdjZjQzNTNiNTI3Y2MzZmQyZDE5OWU0YzdmYjAxMmJhMWIuLjhiZDZmYmE3
OTVlYjNkYzg4ZWU3MTg3NjM5NGI1NzhkOTc3YTViNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZURlYnVnZ2FibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VE
ZWJ1Z2dhYmxlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb25uZWN0
KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24g
PSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpIGZpbmFsOwogICAgIHZvaWQg
ZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYpIGZpbmFsOwotICAgIHZvaWQg
ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGZpbmFsOwor
ICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKSBmaW5h
bDsKICAgICB2b2lkIHNldEluZGljYXRpbmcoYm9vbCkgZmluYWw7CiAKICAgICBjb25zdCBTdHJp
bmcmIG5hbWVPdmVycmlkZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZU92ZXJyaWRlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IGJh
MTFkZGExNjdmZTEwYTEyMWNkMTFjYjliZTI3ZDkyYmM1MTgyZjguLjYyNDkxZmVjMmE0YTUwNzFi
ZmQ2MGYyNDc5YzE2YTdlOTNhODAzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VySW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VySW5zcGVjdG9yUHJveHkuY3BwCkBAIC0xMzgsMTIgKzEzOCwxMiBAQCB2b2lkIFdvcmtl
ckluc3BlY3RvclByb3h5OjpzZW5kTWVzc2FnZVRvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihj
b25zdCBTdHJpbmcmCiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VySW5zcGVjdG9yUHJveHk6OnNl
bmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9p
ZCBXb3JrZXJJbnNwZWN0b3JQcm94eTo6c2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChT
dHJpbmcmJiBtZXNzYWdlKQogewogICAgIGlmICghbV9wYWdlQ2hhbm5lbCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9wYWdlQ2hhbm5lbC0+c2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVu
ZCgqdGhpcywgbWVzc2FnZSk7CisgICAgbV9wYWdlQ2hhbm5lbC0+c2VuZE1lc3NhZ2VGcm9tV29y
a2VyVG9Gcm9udGVuZCgqdGhpcywgV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VySW5z
cGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VySW5zcGVjdG9yUHJv
eHkuaAppbmRleCA4MzM0ZDQ3ZDM0ZGVmNzVkNGJiY2UzMzZlMjhlYmZlOGQ3NmIyMDJmLi44M2Fj
YjVmZGRiYTEwNDQxNDdlNzg0YWI2OWU1YzkwZmZiNWIwOGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5oCkBAIC01Niw3ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICBjbGFzcyBQYWdlQ2hhbm5lbCB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFs
IH5QYWdlQ2hhbm5lbCgpID0gZGVmYXVsdDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNlbmRNZXNz
YWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoV29ya2VySW5zcGVjdG9yUHJveHkmLCBjb25zdCBTdHJp
bmcmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVzc2FnZUZyb21Xb3JrZXJUb0Zy
b250ZW5kKFdvcmtlckluc3BlY3RvclByb3h5JiwgU3RyaW5nJiYpID0gMDsKICAgICB9OwogCiAg
ICAgc3RhdGljIFdlYWtIYXNoU2V0PFdvcmtlckluc3BlY3RvclByb3h5PiYgYWxsV29ya2VySW5z
cGVjdG9yUHJveGllcygpOwpAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25u
ZWN0VG9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2VDaGFubmVsJik7CiAgICAgdm9pZCBk
aXNjb25uZWN0RnJvbVdvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKTsKICAgICB2b2lkIHNlbmRN
ZXNzYWdlVG9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsKKyAgICB2
b2lkIHNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoU3RyaW5nJiYpOwogCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IFdvcmtlckluc3BlY3RvclByb3h5KGNvbnN0IFN0cmluZyYgaWRlbnRp
Zmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwCmluZGV4IDZhZDIxNzc2MzU1YjcyNTkwNTVmZmRiZGU4ODBjNzNiYmVkZjE3NzYuLmNiNmM2
MjJiZjM5ODJiODZlNjc4MjcyOTMzMzhhMGViMjhmYWY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0yMTMsOSArMjEzLDkgQEAg
dm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWcKIAogdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9z
dE1lc3NhZ2VUb0RlYnVnZ2VyKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBSdW5Mb29w
OjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBt
ZXNzYWdlID0gbWVzc2FnZS5pc29sYXRlZENvcHkoKV0geworICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG1lc3NhZ2UgPSBt
ZXNzYWdlLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1fbWF5QmVE
ZXN0cm95ZWQpCi0gICAgICAgICAgICBtX2luc3BlY3RvclByb3h5LT5zZW5kTWVzc2FnZUZyb21X
b3JrZXJUb0Zyb250ZW5kKG1lc3NhZ2UpOworICAgICAgICAgICAgbV9pbnNwZWN0b3JQcm94eS0+
c2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGll
bnRDb25uZWN0aW9uLmNwcAppbmRleCBiNGNlZDNiNjAzYjQ5YmM2ODAwMGJjNmExNDRlMzMzNDhk
MTMzN2VmLi4xMzczODk4OTE2OGNlYTIzYzI2ZjYyMTY2OTU3YTVkYzc0YTZkNDUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9u
LmNwcApAQCAtOTIsMjEgKzkyLDIyIEBAIGJvb2wgU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0VGFz
a0ZvckpvYihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVyCiAgICAgcmV0
dXJuIGlzUG9zdGVkOwogfQogCi12b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6am9iUmVqZWN0ZWRJ
blNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVyLCBjb25zdCBF
eGNlcHRpb25EYXRhJiBleGNlcHRpb25EYXRhKQordm9pZCBTV0NsaWVudENvbm5lY3Rpb246Ompv
YlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmll
ciwgRXhjZXB0aW9uRGF0YSYmIGV4Y2VwdGlvbkRhdGEpCiB7Ci0gICAgcG9zdFRhc2tGb3JKb2Io
am9iSWRlbnRpZmllciwgSXNKb2JDb21wbGV0ZTo6WWVzLCBbZXhjZXB0aW9uRGF0YSA9IGV4Y2Vw
dGlvbkRhdGEuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBqb2IpIHsKLSAgICAgICAgam9iLmZhaWxl
ZFdpdGhFeGNlcHRpb24oZXhjZXB0aW9uRGF0YS50b0V4Y2VwdGlvbigpKTsKKyAgICBwb3N0VGFz
a0ZvckpvYihqb2JJZGVudGlmaWVyLCBJc0pvYkNvbXBsZXRlOjpZZXMsIFtleGNlcHRpb25EYXRh
ID0gV1RGTW92ZShleGNlcHRpb25EYXRhKS5pc29sYXRlZENvcHkoKV0gKGF1dG8mIGpvYikgbXV0
YWJsZSB7CisgICAgICAgIGpvYi5mYWlsZWRXaXRoRXhjZXB0aW9uKFdURk1vdmUoZXhjZXB0aW9u
RGF0YSkudG9FeGNlcHRpb24oKSk7CiAgICAgfSk7CiB9CiAKIHZvaWQgU1dDbGllbnRDb25uZWN0
aW9uOjpyZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVu
dGlmaWVyIGpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgcmVn
aXN0cmF0aW9uRGF0YSwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkIHNob3VsZE5vdGlmeVdoZW5S
ZXNvbHZlZCkKIHsKLSAgICBib29sIGlzUG9zdGVkID0gcG9zdFRhc2tGb3JKb2Ioam9iSWRlbnRp
ZmllciwgSXNKb2JDb21wbGV0ZTo6WWVzLCBbcmVnaXN0cmF0aW9uRGF0YSA9IHJlZ2lzdHJhdGlv
bkRhdGEuaXNvbGF0ZWRDb3B5KCksIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZF0gKGF1dG8mIGpv
YikgbXV0YWJsZSB7CisgICAgYXV0byByZWdpc3RyYXRpb25LZXkgPSByZWdpc3RyYXRpb25EYXRh
LmtleTsKKyAgICBib29sIGlzUG9zdGVkID0gcG9zdFRhc2tGb3JKb2Ioam9iSWRlbnRpZmllciwg
SXNKb2JDb21wbGV0ZTo6WWVzLCBbcmVnaXN0cmF0aW9uRGF0YSA9IFdURk1vdmUocmVnaXN0cmF0
aW9uRGF0YSkuaXNvbGF0ZWRDb3B5KCksIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZF0gKGF1dG8m
IGpvYikgbXV0YWJsZSB7CiAgICAgICAgIGpvYi5yZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oV1RG
TW92ZShyZWdpc3RyYXRpb25EYXRhKSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsKICAgICB9
KTsKIAogICAgIGlmICghaXNQb3N0ZWQgJiYgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkID09IFNo
b3VsZE5vdGlmeVdoZW5SZXNvbHZlZDo6WWVzKQotICAgICAgICBkaWRSZXNvbHZlUmVnaXN0cmF0
aW9uUHJvbWlzZShyZWdpc3RyYXRpb25EYXRhLmtleSk7CisgICAgICAgIGRpZFJlc29sdmVSZWdp
c3RyYXRpb25Qcm9taXNlKHJlZ2lzdHJhdGlvbktleSk7CiB9CiAKIHZvaWQgU1dDbGllbnRDb25u
ZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlm
aWVyIGpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmJiByZWdpc3Ry
YXRpb25LZXksIEZldGNoT3B0aW9uczo6Q2FjaGUgY2FjaGVQb2xpY3kpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggZjk1
NDA0Yjc0YjZkNDgyZGU3ZTY4YTA1ZWE1MzJlMWI4ODY4ZjRjMS4uMDVmZGQwM2FlZjQzYzVkMDYw
ZmM3ZjFiY2M0NWM4YWNiYzhjODVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1Ymxp
YzoKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBTV0NsaWVudENvbm5lY3Rpb24oKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgam9iUmVqZWN0ZWRJblNlcnZlcihTZXJ2aWNlV29y
a2VySm9iSWRlbnRpZmllciwgY29uc3QgRXhjZXB0aW9uRGF0YSYpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgam9iUmVqZWN0ZWRJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwg
RXhjZXB0aW9uRGF0YSYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdHJhdGlvbkpv
YlJlc29sdmVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhJiYsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKFNlcnZpY2VXb3JrZXJK
b2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiYsIEZldGNoT3B0aW9u
czo6Q2FjaGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZGVzdGluYXRpb25D
b250ZXh0SWRlbnRpZmllciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtl
ckRhdGEmJiBzb3VyY2UsIFN0cmluZyYmIHNvdXJjZU9yaWdpbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNw
cAppbmRleCA2OGYwZTYwZWM3NDc0YWJlMDZiMjYxMTQyYzdmNzUyZWIyNGNkYzJjLi41OGQ5NmVm
NTg5Y2E4MTVjY2M5MzIzMjg5OWU2MzNkYjdmYmZjMDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHAK
QEAgLTU2LDExICs1NiwxNiBAQCBzdGF0aWMgU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZSB0
b1NlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUoU2NyaXB0RXhlY3V0aQogICAgIHJldHVybiBT
ZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlOjpOZXN0ZWQ7CiB9CiAKLVNlcnZpY2VXb3JrZXJD
bGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkoKSBjb25zdAor
U2VydmljZVdvcmtlckNsaWVudERhdGEgU2VydmljZVdvcmtlckNsaWVudERhdGE6Omlzb2xhdGVk
Q29weSgpIGNvbnN0ICYKIHsKICAgICByZXR1cm4geyBpZGVudGlmaWVyLCB0eXBlLCBmcmFtZVR5
cGUsIHVybC5pc29sYXRlZENvcHkoKSwgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgfTsK
IH0KIAorU2VydmljZVdvcmtlckNsaWVudERhdGEgU2VydmljZVdvcmtlckNsaWVudERhdGE6Omlz
b2xhdGVkQ29weSgpICYmCit7CisgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgdHlwZSwgZnJhbWVU
eXBlLCBXVEZNb3ZlKHVybCkuaXNvbGF0ZWRDb3B5KCksIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkIH07Cit9CisKIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhOjpmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgYm9v
bCBpc0RvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KGNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaAppbmRl
eCBlMjhiMmJjNTc4YmViMjhiZjAxN2Q5M2FiMTEzNmVhYWI2ZmNjMWY5Li4zOTc1ZDUxODE2NWNh
YjQ3ODM0YzkxYjFlNDEyOTZjZTgxMjYxMWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaApAQCAtNDcsNyAr
NDcsOCBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudERhdGEgewogICAgIFVSTCB1cmw7CiAg
ICAgTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0
aWF0ZWQ7CiAKLSAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBpc29sYXRlZENvcHkoKSBjb25z
dDsKKyAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBpc29sYXRlZENvcHkoKSBjb25zdCAmOwor
ICAgIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGlzb2xhdGVkQ29weSgpICYmOwogCiAgICAgc3Rh
dGljIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRleHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhLmgKaW5kZXggNDZhOWZhNzAxMjllMzc1YzU5NjgxYmJhNmUzMGVh
OThhYmNiMWQ4Ny4uOWE2NmQ0OGIwYTI5ZDlmMjkzYTMyYmZmZTg0YTU3YzBkNzc3MjdhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEuaApAQCAtNzksNyArNzksOCBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNv
bnRleHREYXRhIHsKICAgICAgICAgICAgIH19OwogICAgICAgICB9CiAKLSAgICAgICAgSW1wb3J0
ZWRTY3JpcHQgaXNvbGF0ZWRDb3B5KCkgY29uc3QgeyByZXR1cm4geyBzY3JpcHQuaXNvbGF0ZWRD
b3B5KCksIHJlc3BvbnNlVVJMLmlzb2xhdGVkQ29weSgpLCBtaW1lVHlwZS5pc29sYXRlZENvcHko
KSB9OyB9CisgICAgICAgIEltcG9ydGVkU2NyaXB0IGlzb2xhdGVkQ29weSgpIGNvbnN0ICYgeyBy
ZXR1cm4geyBzY3JpcHQuaXNvbGF0ZWRDb3B5KCksIHJlc3BvbnNlVVJMLmlzb2xhdGVkQ29weSgp
LCBtaW1lVHlwZS5pc29sYXRlZENvcHkoKSB9OyB9CisgICAgICAgIEltcG9ydGVkU2NyaXB0IGlz
b2xhdGVkQ29weSgpICYmIHsgcmV0dXJuIHsgV1RGTW92ZShzY3JpcHQpLmlzb2xhdGVkQ29weSgp
LCBXVEZNb3ZlKHJlc3BvbnNlVVJMKS5pc29sYXRlZENvcHkoKSwgV1RGTW92ZShtaW1lVHlwZSku
aXNvbGF0ZWRDb3B5KCkgfTsgfQogICAgIH07CiAKICAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5jcHAKaW5kZXggZjdhNDQ1ZDE2NWZhYWNhYWY3YzJjODRmZDMyZTA1OTdiNGI1ZWM3ZS4u
ZmIxMDIyMTg3MTdkZDUxYTZlZTMxMDQxMzhiZGMxZGZiODdmMGM4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uLmNwcApAQCAtMjY5LDcgKzI2OSw3IEBAIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciYg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6bmF2aWdhdGlvblByZWxvYWQoKQogfQogCiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTl9FVkVOVCkKLXZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bjo6c2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBOb3RpZmljYXRpb25PcHRpb25zJiBvcHRpb25zLCBET01Q
cm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQordm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uOjpzaG93Tm90aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IFN0cmluZyYmIHRpdGxlLCBOb3RpZmljYXRpb25PcHRpb25zJiYgb3B0aW9ucywgRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBpZiAoIW1fYWN0aXZlV29ya2VyKSB7
CiAgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlJlZ2lzdHJh
dGlvbiBkb2VzIG5vdCBoYXZlIGFuIGFjdGl2ZSB3b3JrZXIiX3MgfSk7CkBAIC0yOTIsNyArMjky
LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpzaG93Tm90aWZpY2F0aW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQKIAogICAgIC8vIFRoZSBOb3RpZmljYXRpb24g
aXMga2VwdCBhbGl2ZSBieSB2aXJ0dWUgb2YgYmVpbmcgc2hvdygpJ24gc29vbi4KICAgICAvLyBG
SVhNRTogV2hlbiBpbXBsZW1lbnRpbmcgZ2V0Tm90aWZpY2F0aW9ucygpLCBzdG9yZSB0aGlzIE5v
dGlmaWNhdGlvbiBpbiB0aGUgcmVnaXN0cmF0aW9uJ3Mgbm90aWZpY2F0aW9uIGxpc3QuCi0gICAg
YXV0byBub3RpZmljYXRpb24gPSBOb3RpZmljYXRpb246OmNyZWF0ZShjb250ZXh0LCB0aXRsZSwg
b3B0aW9ucyk7CisgICAgYXV0byBub3RpZmljYXRpb24gPSBOb3RpZmljYXRpb246OmNyZWF0ZShj
b250ZXh0LCBXVEZNb3ZlKHRpdGxlKSwgV1RGTW92ZShvcHRpb25zKSk7CiAKICAgICBjb250ZXh0
LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFtwcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKICAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAppbmRleCAzMzQzMzdhNmJlYzY3ZjFmNjI0YjgzMGVi
MGZkNjQwM2M3MzRlMTc5Li5mN2NjOTBlZWI0MDc5YTRmZGYxMjFlMmNmNzFkODU3MGY1NzVmNmE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAgICAg
ICBTdHJpbmcgdGFnOwogICAgIH07CiAKLSAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IE5vdGlmaWNhdGlv
bk9wdGlvbnMmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBzaG93Tm90
aWZpY2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiB0aXRsZSwgTm90aWZp
Y2F0aW9uT3B0aW9ucyYmLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBn
ZXROb3RpZmljYXRpb25zKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBHZXROb3RpZmlj
YXRpb25PcHRpb25zJiBmaWx0ZXIsIERPTVByb21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExJ
bnRlcmZhY2U8Tm90aWZpY2F0aW9uPj4+KTsKIAogICAgIHZvaWQgYWRkTm90aWZpY2F0aW9uVG9M
aXN0KE5vdGlmaWNhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAK
aW5kZXggZWYwMmE3ZmZjMGU4NzE3MzFiMjI2YjM2N2M0MTA1YWVhNzhkYWNhNC4uMDI1NTRhMGI1
N2JhNmM1Zjc1NmQ5NmMwNjRjY2E2OTBhZjk3NGRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbk9wdGlvbnMuY3BwCkBAIC0zMCwxMSArMzAsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucyBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9uczo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25PcHRpb25zIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zOjppc29sYXRlZENv
cHkoKSBjb25zdCAmCiB7CiAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRp
b25zIHsgc2NvcGUuaXNvbGF0ZWRDb3B5KCksIHR5cGUsIHVwZGF0ZVZpYUNhY2hlIH07CiB9CiAK
K1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25PcHRpb25zOjppc29sYXRlZENvcHkoKSAmJgoreworICAgIHJldHVybiBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uT3B0aW9ucyB7IFdURk1vdmUoc2NvcGUpLmlzb2xhdGVkQ29weSgpLCB0eXBl
LCB1cGRhdGVWaWFDYWNoZSB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9u
cy5oCmluZGV4IDllMzY5MGVhNzNmMzM2ODk2NGZkNDZjOTE1NTZlNTkxZmJkYzZhM2UuLjJmNWJm
OWQzYmMzOWM0YTM5ZTA2Y2QyNWNjODE4YTc3ZDQzOGQ0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uT3B0aW9ucy5oCkBAIC0zOSw3ICszOSw4IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uT3B0aW9ucyB7CiAgICAgV29ya2VyVHlwZSB0eXBlOwogICAgIFNlcnZpY2VXb3Jr
ZXJVcGRhdGVWaWFDYWNoZSB1cGRhdGVWaWFDYWNoZTsKIAotICAgIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25PcHRpb25zIGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAgIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25PcHRpb25zIGlzb2xhdGVkQ29weSgpIGNvbnN0ICY7CisgICAgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMgaXNvbGF0ZWRDb3B5KCkgJiY7CiAKICAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbk9wdGlvbnM+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVi
dWdnYWJsZS5jcHAKaW5kZXggNDEyZTU2OTU3MjUzNmZiZWJlMDhiYTMyOTUyOTY4YWQ3OTM2ZTgw
Yy4uNGZiNDA0MGJjZGJkY2FkOGFlZGNkNmNkZDBkZGQxY2FiYjRiZWI4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRlYnVn
Z2FibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJEZWJ1Z2dhYmxlLmNwcApAQCAtNTIsOSArNTIsOSBAQCB2b2lkIFNlcnZpY2VX
b3JrZXJEZWJ1Z2dhYmxlOjpkaXNjb25uZWN0KEZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKICAg
ICBtX3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5pbnNwZWN0b3JQcm94eSgpLmRpc2Nvbm5lY3RG
cm9tV29ya2VyKGNoYW5uZWwpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJEZWJ1Z2dhYmxlOjpk
aXNwYXRjaE1lc3NhZ2VGcm9tUmVtb3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgU2Vy
dmljZVdvcmtlckRlYnVnZ2FibGU6OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYg
bWVzc2FnZSkKIHsKLSAgICBtX3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5pbnNwZWN0b3JQcm94
eSgpLnNlbmRNZXNzYWdlVG9Xb3JrZXIobWVzc2FnZSk7CisgICAgbV9zZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuaW5zcGVjdG9yUHJveHkoKS5zZW5kTWVzc2FnZVRvV29ya2VyKFdURk1vdmUobWVz
c2FnZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdnYWJsZS5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckRl
YnVnZ2FibGUuaAppbmRleCA1OWJmYzNjZmQ3ZjdhYzQ2ZGU2ZDI1NGRlZjVmMTE4YzBkYjllODVj
Li5lMWQwMGY3MjVkY2ViYzQ2Y2IyZjcyYzM5YTNiZmMzNDg1NDcyNDJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRGVidWdn
YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJEZWJ1Z2dhYmxlLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0Nv
bm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpIGZpbmFsOwog
ICAgIHZvaWQgZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYpIGZpbmFsOwot
ICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNz
YWdlKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkmIG1f
c2VydmljZVdvcmtlclRocmVhZFByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0
b3JQcm94eS5jcHAKaW5kZXggNzNmMmM1Y2U5MTZhY2I2NTUyMTEzYmM4MmM5ODg5YzkxNzIzOGY4
NS4uMjQ4NTBjNGZlNzQ1ZjJlNzY1ODJlNjRjNTE1YTk3MWU0ZDMyOWNiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckluc3Bl
Y3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHkuY3BwCkBAIC04MCwxOSArODAsMTkgQEAgdm9p
ZCBTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OmRpc2Nvbm5lY3RGcm9tV29ya2VyKEZyb250
ZW5kQ2hhbm5lbCYgY2hhbm5lbCkKICAgICB9KTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VySW5z
cGVjdG9yUHJveHk6OnNlbmRNZXNzYWdlVG9Xb3JrZXIoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQor
dm9pZCBTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OnNlbmRNZXNzYWdlVG9Xb3JrZXIoU3Ry
aW5nJiYgbWVzc2FnZSkKIHsKLSAgICBtX3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS50aHJlYWQo
KS5ydW5Mb29wKCkucG9zdERlYnVnZ2VyVGFzayhbbWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRD
b3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSB7CisgICAgbV9zZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHkudGhyZWFkKCkucnVuTG9vcCgpLnBvc3REZWJ1Z2dlclRhc2soW21l
c3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkgewogICAgICAgICBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4o
Y29udGV4dCkuaW5zcGVjdG9yQ29udHJvbGxlcigpLmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVu
ZChtZXNzYWdlKTsKICAgICB9KTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJv
eHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQordm9pZCBTZXJ2aWNlV29ya2VySW5zcGVjdG9yUHJveHk6OnNlbmRNZXNzYWdlRnJvbVdvcmtl
clRvRnJvbnRlbmQoU3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBpZiAoIW1fY2hhbm5lbCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9jaGFubmVsLT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVz
c2FnZSk7CisgICAgbV9jaGFubmVsLT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQoV1RGTW92ZShtZXNz
YWdlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94
eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckluc3BlY3RvclByb3h5LmgKaW5kZXggMzZhODBjOWQ0NWJmYzQzZmEyODQ1M2JjMTRmNTk3MTQ1
N2EzNWVhMi4uNzQxZTBhZTc3OTAwOWZmZWU4MDFlNGIxYjVkNzI0M2RkMzdmMjUyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlckluc3BlY3RvclByb3h5LmgKQEAgLTUyLDggKzUyLDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjb25uZWN0VG9Xb3JrZXIoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5u
ZWwmKTsKICAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyKEluc3BlY3Rvcjo6RnJvbnRlbmRD
aGFubmVsJik7Ci0gICAgdm9pZCBzZW5kTWVzc2FnZVRvV29ya2VyKGNvbnN0IFN0cmluZyYpOwot
ICAgIHZvaWQgc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIHNlbmRNZXNzYWdlVG9Xb3JrZXIoU3RyaW5nJiYpOworICAgIHZvaWQgc2VuZE1l
c3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChTdHJpbmcmJik7CiAKIHByaXZhdGU6CiAgICAgU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5JiBtX3NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCmluZGV4IGE5NGU2ZDFlNzY1ZDM1OTIxMDU4
NzM0MDEzMWMwYTM5MTllNmU4N2YuLjhhMjE5NDE4MzNiYmE4YTBkYTYwNDhjM2JiNzZlODYwMDUx
ZDRkNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtMTI2LDkg
KzEyNiw5IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpwb3N0VGFza1RvTG9hZGVy
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0CiAKIHZvaWQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5Ojpwb3N0TWVzc2FnZVRvRGVidWdnZXIoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIG1lc3NhZ2UgPSBtZXNzYWdlLmlzb2xhdGVkQ29weSgpXSB7CisgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fSwgbWVzc2FnZSA9IG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAg
IC8vIEZJWE1FOiBIYW5kbGUgdGVybWluYXRlZCBjYXNlLgotICAgICAgICBtX2luc3BlY3RvclBy
b3h5LnNlbmRNZXNzYWdlRnJvbVdvcmtlclRvRnJvbnRlbmQobWVzc2FnZSk7CisgICAgICAgIG1f
aW5zcGVjdG9yUHJveHkuc2VuZE1lc3NhZ2VGcm9tV29ya2VyVG9Gcm9udGVuZChXVEZNb3ZlKG1l
c3NhZ2UpKTsKICAgICB9KTsKIH0KIApAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgU2VydmljZVdv
cmtlclRocmVhZFByb3h5OjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
Y29ubmVjdGlvCiAKICAgICBBU1NFUlQoIW1fb25nb2luZ0ZldGNoVGFza3MuY29udGFpbnMoa2V5
KSk7CiAgICAgbV9vbmdvaW5nRmV0Y2hUYXNrcy5hZGQoa2V5LCBjbGllbnQuY29weVJlZigpKTsK
LSAgICBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBy
ZXF1ZXN0ID0gcmVxdWVzdC5pc29sYXRlZENvcHkoKSwgcmVmZXJyZXIgPSBXVEZNb3ZlKHJlZmVy
cmVyKS5pc29sYXRlZENvcHkoKSwgb3B0aW9ucyA9IG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCksIGZl
dGNoSWRlbnRpZmllciwgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkLCBj
bGllbnRJZGVudGlmaWVyID0gV1RGTW92ZShjbGllbnRJZGVudGlmaWVyKS5pc29sYXRlZENvcHko
KSwgcmVzdWx0aW5nQ2xpZW50SWRlbnRpZmllciA9IFdURk1vdmUocmVzdWx0aW5nQ2xpZW50SWRl
bnRpZmllcikuaXNvbGF0ZWRDb3B5KCldKGF1dG8mKSBtdXRhYmxlIHsKKyAgICBwb3N0VGFza0Zv
ck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCByZXF1ZXN0ID0gcmVxdWVz
dC5pc29sYXRlZENvcHkoKSwgcmVmZXJyZXIgPSBXVEZNb3ZlKHJlZmVycmVyKS5pc29sYXRlZENv
cHkoKSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucykuaXNvbGF0ZWRDb3B5KCksIGZldGNoSWRl
bnRpZmllciwgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkLCBjbGllbnRJ
ZGVudGlmaWVyID0gV1RGTW92ZShjbGllbnRJZGVudGlmaWVyKS5pc29sYXRlZENvcHkoKSwgcmVz
dWx0aW5nQ2xpZW50SWRlbnRpZmllciA9IFdURk1vdmUocmVzdWx0aW5nQ2xpZW50SWRlbnRpZmll
cikuaXNvbGF0ZWRDb3B5KCldKGF1dG8mKSBtdXRhYmxlIHsKICAgICAgICAgdGhyZWFkKCkucXVl
dWVUYXNrVG9GaXJlRmV0Y2hFdmVudChXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUocmVxdWVzdCks
IFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXIsIGlz
U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwgV1RGTW92ZShjbGllbnRJZGVu
dGlmaWVyKSwgV1RGTW92ZShyZXN1bHRpbmdDbGllbnRJZGVudGlmaWVyKSk7CiAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3Bw
CmluZGV4IGQ0N2U3YjgwNWM2MmQzNGQyZDgyZDVmZGY3ZDc3ZDQ1ZjhkNzdjMWMuLjJhNjE0NmVh
MWEzMGNkZmE2ZDU3MmQ2YTQ1NDRjNjg4ZTM3NzI0MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0YWJh
c2UuY3BwCkBAIC02MDUsNyArNjA1LDcgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpp
bXBvcnRSZWNvcmRzKCkKICAgICAgICAgYXV0byByZWdpc3RyYXRpb24gPSBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YSB7IFdURk1vdmUoKmtleSksIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IFdURk1vdmUoc2NvcGVVUkwpLCAqdXBkYXRlVmlhQ2FjaGUsIGxhc3RVcGRhdGVDaGVja1RpbWUs
IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHNlcnZpY2VXb3JrZXJEYXRhKSB9
OwogICAgICAgICBhdXRvIGNvbnRleHREYXRhID0gU2VydmljZVdvcmtlckNvbnRleHREYXRhIHsg
c3RkOjpudWxsb3B0LCBXVEZNb3ZlKHJlZ2lzdHJhdGlvbiksIHdvcmtlcklkZW50aWZpZXIsIFdU
Rk1vdmUoc2NyaXB0KSwgV1RGTW92ZSgqY2VydGlmaWNhdGVJbmZvKSwgV1RGTW92ZSgqY29udGVu
dFNlY3VyaXR5UG9saWN5KSwgV1RGTW92ZSgqY29lcCksIFdURk1vdmUocmVmZXJyZXJQb2xpY3kp
LCBXVEZNb3ZlKHNjcmlwdFVSTCksICp3b3JrZXJUeXBlLCB0cnVlLCBMYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZDo6WWVzLCBXVEZNb3ZlKHNjcmlwdFJlc291cmNlTWFwKSwgc3RkOjpudWxs
b3B0LCBXVEZNb3ZlKCpuYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKSB9OwogCi0gICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjb250ZXh0RGF0YSA9
IGNvbnRleHREYXRhLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY29udGV4dERhdGEgPSBX
VEZNb3ZlKGNvbnRleHREYXRhKS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPmFkZFJlZ2lzdHJhdGlvblRvU3RvcmUoV1RGTW92ZShjb250ZXh0
RGF0YSkpOwogICAgICAgICB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCmluZGV4IDFiMDk2MDE0ODZjZGFm
MTA5YzM4NjZjYjI4MjQ0NmNmMzcwYTQ0NTMuLjMwMDI2ODFlMDI5ZjFkOWQzMzdjNTI4NjUyZTg2
YjEyYTRlMTliMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC0xMjQsOSArMTI0LDkgQEAgdm9pZCBOZXR3b3Jr
U29ja2V0Q2hhbm5lbDo6ZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5n
JiByZWFzb24pCiAgICAgZmluaXNoQ2xvc2luZ0lmUG9zc2libGUoKTsKIH0KIAotdm9pZCBOZXR3
b3JrU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkKK3ZvaWQgTmV0d29ya1NvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQogewotICAgIG1fZXJyb3JNZXNzYWdlID0gZXJy
b3JNZXNzYWdlOworICAgIG1fZXJyb3JNZXNzYWdlID0gV1RGTW92ZShlcnJvck1lc3NhZ2UpOwog
ICAgIG1fZXJyb3JUaW1lci5zdGFydE9uZVNob3QoTmV0d29ya1Byb2Nlc3M6OnJhbmRvbUNsb3Nl
ZFBvcnREZWxheSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCmluZGV4IDkwZjQ2NWRjYmM2MDU0M2NjNTgyODU0OTcz
YWIzMTY4Yjg1NzBlNWEuLmY5NzNjZmNlNDkyODU4NTk3YTFhYjE3N2ExNGZkZGI4NzgxMjE5ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENo
YW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRD
aGFubmVsLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVU
ZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoY29uc3Qg
dWludDhfdCogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25l
ZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbik7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VF
cnJvcihTdHJpbmcmJik7CiAgICAgdm9pZCBkaWRTZW5kSGFuZHNoYWtlUmVxdWVzdChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlSGFuZHNoYWtlUmVzcG9u
c2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5jcHAKaW5kZXggYTZl
NTA4M2JkOTFhZjUwMWU1MGQ0MDdkYWU1NjNmY2ZkNWIyYzkxMi4uNGJjZTg4ODQ4YzY3MzI2MGFh
NWM2N2I2OTQ0YjcxNTJiNWQxNWQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuY3BwCkBAIC0xNzcsNyArMTc3LDcg
QEAgdm9pZCBXZWJTb2NrZXRUYXNrOjpkaWRSZWNlaXZlRXJyb3JDYWxsYmFjayhXZWJTb2NrZXRU
YXNrKiB0YXNrLCBHRXJyb3IqIGVycm9yKQogICAgIHRhc2stPmRpZEZhaWwoU3RyaW5nOjpmcm9t
VVRGOChlcnJvci0+bWVzc2FnZSkpOwogfQogCi12b2lkIFdlYlNvY2tldFRhc2s6OmRpZEZhaWwo
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit2b2lkIFdlYlNvY2tldFRhc2s6OmRpZEZhaWwo
U3RyaW5nJiYgZXJyb3JNZXNzYWdlKQogewogICAgIGlmIChtX3JlY2VpdmVkRGlkRmFpbCkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgV2ViU29ja2V0VGFzazo6ZGlk
RmFpbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKICAgICAgICAgZ19zaWduYWxfaGFuZGxl
cnNfZGlzY29ubmVjdF9ieV9kYXRhKG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSwgdGhpcyk7CiAg
ICAgICAgIG1faGFuZHNoYWtlTWVzc2FnZSA9IG51bGxwdHI7CiAgICAgfQotICAgIG1fY2hhbm5l
bC5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKGVycm9yTWVzc2FnZSk7CisgICAgbV9jaGFubmVsLmRp
ZFJlY2VpdmVNZXNzYWdlRXJyb3IoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICBpZiAoIW1f
Y29ubmVjdGlvbikgewogICAgICAgICBkaWRDbG9zZShTT1VQX1dFQlNPQ0tFVF9DTE9TRV9BQk5P
Uk1BTCwgeyB9KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjY5LDcgKzI2OSw3IEBAIHZvaWQgV2Vi
U29ja2V0VGFzazo6cmVzdW1lKCkKIAogdm9pZCBXZWJTb2NrZXRUYXNrOjpkZWxheUZhaWxUaW1l
ckZpcmVkKCkKIHsKLSAgICBkaWRGYWlsKG1fZGVsYXlFcnJvck1lc3NhZ2UpOworICAgIGRpZEZh
aWwoV1RGTW92ZShtX2RlbGF5RXJyb3JNZXNzYWdlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNv
Y2tldFRhc2tTb3VwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29j
a2V0VGFza1NvdXAuaAppbmRleCA3YTZmNGQxNmI3ZGYzNmMwYjllNzk1MDg4NTk0M2NjZDM3ZDNi
ZmY2Li43YzQwN2MwMWVkM2Y2NWY0NzRjMjVjMmVlMjRhYzJiYmQwYzBjMTlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2ViU29ja2V0VGFza1NvdXAu
aApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDb25u
ZWN0KEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+JiYpOwotICAgIHZvaWQgZGlkRmFp
bChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRpZEZhaWwoU3RyaW5nJiYpOwogICAgIHZvaWQg
ZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pOwogICAg
IHZvaWQgZGVsYXlGYWlsVGltZXJGaXJlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3Bw
CmluZGV4IDdjYmFmMWVmZjU0NDI4N2RkM2FlODgxNjcxYWRlNTU2NjU4ZjhmZjMuLmU0NDA5MDgx
NDg1ODY2Nzg4MGU3MTdmNWRiYzIzNTM5MmM3MTQ2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIuY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmRp
ZEluY3JlYXNlUXVvdGEoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgb3JpZ2luLCBRdW8KICAgICB9
KTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXREaXJlY3Rv
cnkoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oCmluZGV4IDk5YTQ1MzE3ZGJlM2I0ZmNmMDRhOTJhYTFiNWVhZTA2
N2U3ZjVkNzAuLjJhYmIwZmIwZTM5OGU3NGY2MDE1ODJhZTg1YzVlNzljMzI1NTllOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIC8v
IE1lc3NhZ2UgaGFuZGxlcnMgZm9yIEZpbGVTeXN0ZW0uCiAgICAgdm9pZCBwZXJzaXN0ZWQoY29u
c3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCBwZXJzaXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVj
dG9yeShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgZmlsZVN5c3Rl
bUdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGNsb3Nl
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGlz
U2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CiAgICAgdm9pZCBtb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1l
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggN2M2M2ZmMzUyZWUyNzg5MDI5
MTFmZThlYTc2OWYwMWJjM2ExNmM5ZS4uNTZlODg0YzkwMmY1Y2M4Yzc4OGNlNDAzNjBhNjE2NGJh
ZTgyMTc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTExNiw5ICsxMTYsOSBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZXRQcm9jZXNzUG9vbChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sKiBwcm9jZXNzUG9vbCkKIAogLy8gSW5zcGVjdG9yOjpSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0
IEFQSQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaXNwYXRjaE1lc3NhZ2VGcm9tUmVt
b3RlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRp
c3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2FnZSkKIHsKLSAgICBtX2JhY2tl
bmREaXNwYXRjaGVyLT5kaXNwYXRjaChtZXNzYWdlKTsKKyAgICBtX2JhY2tlbmREaXNwYXRjaGVy
LT5kaXNwYXRjaChXVEZNb3ZlKG1lc3NhZ2UpKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6Y29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYgY2hhbm5lbCwgYm9vbCBp
c0F1dG9tYXRpY0Nvbm5lY3Rpb24sIGJvb2wgaW1tZWRpYXRlbHlQYXVzZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uaAppbmRleCAxMmI3ZjE5MzIyZWE3N2YwYjYxYWE0ZjAwMzE2MmMzMmViOTcxOTI3Li45ZjY1
Y2M4MDU2NjQ0Y2MwNTQzMmEyZTg5MTU5ZTRhMzg5MGQyNzNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5o
CkBAIC0xMzcsNyArMTM3LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9S
KQogICAgIC8vIEluc3BlY3Rvcjo6UmVtb3RlQXV0b21hdGlvblRhcmdldCBBUEkKICAgICBTdHJp
bmcgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklkZW50aWZpZXI7IH0KLSAgICB2b2lk
IGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2
b2lkIGRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoU3RyaW5nJiYgbWVzc2FnZSk7CiAgICAgdm9p
ZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRDaGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0Nv
bm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlhdGVseVBhdXNlID0gZmFsc2UpOwogICAgIHZv
aWQgZGlzY29ubmVjdChJbnNwZWN0b3I6OkZyb250ZW5kQ2hhbm5lbCYpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVnZ2Fi
bGUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dh
YmxlLmNwcAppbmRleCA2OWU0NTc2NjAwNGRhNjNlZGEzZmVlMDRlNDVjYWU2ZmU3NGQyM2U2Li40
NjNmZmQyY2NkZThmZmE2MTE3YTc1NDFkYmRlYmIwZWFlNThmMmM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZURlYnVnZ2FibGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdnYWJsZS5jcHAK
QEAgLTc5LDkgKzc5LDkgQEAgdm9pZCBXZWJQYWdlRGVidWdnYWJsZTo6ZGlzY29ubmVjdChGcm9u
dGVuZENoYW5uZWwmIGNoYW5uZWwpCiAgICAgbV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5k
aXNjb25uZWN0RnJvbnRlbmQoY2hhbm5lbCk7CiB9CiAKLXZvaWQgV2ViUGFnZURlYnVnZ2FibGU6
OmRpc3BhdGNoTWVzc2FnZUZyb21SZW1vdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBX
ZWJQYWdlRGVidWdnYWJsZTo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNz
YWdlKQogewotICAgIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlzcGF0Y2hNZXNzYWdl
RnJvbUZyb250ZW5kKG1lc3NhZ2UpOworICAgIG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCku
ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB2b2lk
IFdlYlBhZ2VEZWJ1Z2dhYmxlOjpzZXRJbmRpY2F0aW5nKGJvb2wgaW5kaWNhdGluZykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJQYWdlRGVidWdnYWJs
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxl
LmgKaW5kZXggOGY4NDhkZTExNmE2MTQ1OGQxODMzZWE4MDlmYzA2ZWZkNWVlN2EzZC4uMmYxOTlj
YTU0YTA0YjVjMGQ4Yzk3MmI1NzQ4ODE4ODE3ZTYxMTg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VEZWJ1Z2dhYmxlLmgKQEAgLTQ5LDcg
KzQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb25uZWN0KEluc3BlY3Rvcjo6RnJvbnRlbmRD
aGFubmVsJiwgYm9vbCBpc0F1dG9tYXRpY0Nvbm5lY3Rpb24gPSBmYWxzZSwgYm9vbCBpbW1lZGlh
dGVseVBhdXNlID0gZmFsc2UpIGZpbmFsOwogICAgIHZvaWQgZGlzY29ubmVjdChJbnNwZWN0b3I6
OkZyb250ZW5kQ2hhbm5lbCYpIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbVJl
bW90ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hNZXNz
YWdlRnJvbVJlbW90ZShTdHJpbmcmJiBtZXNzYWdlKSBmaW5hbDsKICAgICB2b2lkIHNldEluZGlj
YXRpbmcoYm9vbCkgZmluYWw7CiAKICAgICBjb25zdCBTdHJpbmcmIG5hbWVPdmVycmlkZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbmFtZU92ZXJyaWRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5k
ZXggNzBjNGY4MjNmM2JmNjYyNWQ1NTNjODc5MzIzYWY5ZTMxZjJkMDBkNS4uYzc2ODhmZWUzYzU3
N2Y3NmI5MWVmMGIzN2NiNWRkYTRlYjBhNDRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApA
QCAtNzAsNyArNzAsNyBAQCB2b2lkIFdlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJldHJpZXZl
Q2FjaGVzKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZwogICAgIGNvbm5lY3Rpb24o
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rp
b246OkNhY2hlcyhvcmlnaW4sIHVwZGF0ZUNvdW50ZXIpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9
CiAKLXZvaWQgV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9u
cyYgb3B0aW9ucywgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmIGNh
bGxiYWNrKQordm9pZCBXZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZXRyaWV2ZVJlY29yZHMo
dWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXRyaWV2ZVJlY29yZHNPcHRpb25z
JiYgb3B0aW9ucywgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OlJlY29yZHNDYWxsYmFjayYmIGNh
bGxiYWNrKQogewogICAgIGNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OlJldHJpZXZlUmVjb3JkcyhjYWNoZUlkZW50
aWZpZXIsIG9wdGlvbnMpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0NhY2hlL1dlYkNhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
aAppbmRleCAxN2FjNDBhMjFiZmVmZmVmNjllZDdiMDc5MjRkMzUzYmFkM2ZmMTE5Li5lOGMxZWRi
OTA0MjBjYjhiZmMyODljYjA0MmRkYWM3MmM4MDZmZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQ2FjaGUvV2ViQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9DYWNoZS9XZWJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgK
QEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZSh1aW50NjRfdCBjYWNo
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDYWNoZUlkZW50aWZpZXJDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJldHJpZXZlQ2FjaGVzKGNvbnN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYsIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIsIFdlYkNvcmU6OkRPTUNhY2hlRW5n
aW5lOjpDYWNoZUluZm9zQ2FsbGJhY2smJikgZmluYWw7CiAKLSAgICB2b2lkIHJldHJpZXZlUmVj
b3Jkcyh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJldHJpZXZlUmVj
b3Jkc09wdGlvbnMmLCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYp
IGZpbmFsOworICAgIHZvaWQgcmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmll
ciwgV2ViQ29yZTo6UmV0cmlldmVSZWNvcmRzT3B0aW9ucyYmLCBXZWJDb3JlOjpET01DYWNoZUVu
Z2luZTo6UmVjb3Jkc0NhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgYmF0Y2hEZWxldGVPcGVy
YXRpb24odWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9ucyYmLCBXZWJDb3JlOjpET01DYWNoZUVu
Z2luZTo6UmVjb3JkSWRlbnRpZmllcnNDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGJhdGNo
UHV0T3BlcmF0aW9uKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OkRP
TUNhY2hlRW5naW5lOjpSZWNvcmQ+JiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpSZWNvcmRJ
ZGVudGlmaWVyc0NhbGxiYWNrJiYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGNhMDYwOGFiNzk4
Mzc4YTMzNWNiOWRiZWU1MGUxM2MwMjA0ODVlM2MuLmViYzUzZWJmYTkxMDljNDkxNGI4OWQ3NDlh
MDRjMGY1ZGNkMTY3ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yMTIsMTQgKzIxMiwxNCBAQCB2b2lkIFdl
YlNvY2tldENoYW5uZWw6OmNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikKICAg
ICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Q2xv
c2UgeyBjb2RlLCByZWFzb24gfSk7CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChj
b25zdCBTdHJpbmcmIHJlYXNvbikKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChTdHJpbmcm
JiByZWFzb24pCiB7CiAgICAgLy8gVGhlIGNsaWVudCBjYW4gY2xvc2UgdGhlIGNoYW5uZWwsIHBv
dGVudGlhbGx5IHJlbW92aW5nIHRoZSBsYXN0IHJlZmVyZW5jZS4KICAgICBSZWYgcHJvdGVjdGVk
VGhpcyB7ICp0aGlzIH07CiAKICAgICBsb2dFcnJvck1lc3NhZ2UocmVhc29uKTsKICAgICBpZiAo
bV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKHJlYXNv
bik7CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyB7IHJl
YXNvbiB9KTsKIAogICAgIGlmIChtX2lzQ2xvc2luZykKICAgICAgICAgcmV0dXJuOwpAQCAtMjYw
LDcgKzI2MCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVRleHQoU3RyaW5n
JiYgbWVzc2FnZSkKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZSk7CisgICAgbV9jbGllbnQtPmRpZFJl
Y2VpdmVNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogfQogCiB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCkBAIC0z
MDgsNyArMzA4LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVy
cm9yKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbG9nRXJy
b3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7Ci0gICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoZXJyb3JNZXNzYWdlKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJv
cihXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOwogfQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6Om5l
dHdvcmtQcm9jZXNzQ3Jhc2hlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggODk4YjZhNDE4ODU2OTEzODY0ZmNlZjcy
YjQwZmVmODBlZTEwNzI3My4uOGYxMjU3MmI1OTYwZTk2MGUzMTgxNjc5Mjc1N2ZmMWY4N2JjM2Rk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuaApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogICAgIFNlbmRSZXN1bHQgc2Vu
ZChXZWJDb3JlOjpCbG9iJikgZmluYWw7CiAgICAgdW5zaWduZWQgYnVmZmVyZWRBbW91bnQoKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIGNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNv
bikgZmluYWw7Ci0gICAgdm9pZCBmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKSBmaW5hbDsKKyAg
ICB2b2lkIGZhaWwoU3RyaW5nJiYgcmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRpc2Nvbm5lY3Qo
KSBmaW5hbDsKICAgICB2b2lkIHN1c3BlbmQoKSBmaW5hbDsKICAgICB2b2lkIHJlc3VtZSgpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggZTcwOTA1MDczOTkyYWRl
NGY0OTcxYTQ3NjBjMDI3Mzc4MzdmYTgxMi4uNjU1NDRhYzQyZWM3MjRhYWZiY2VjZWFlMzg1YjYy
ODk4NTRmODJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC00MSw3ICs0
MSw3IEBAIFJlZjxXZWJTdG9yYWdlQ29ubmVjdGlvbj4gV2ViU3RvcmFnZUNvbm5lY3Rpb246OmNy
ZWF0ZSgpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU3RvcmFnZUNvbm5lY3Rpb24pOwog
fQogCi12b2lkIFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpnZXRQZXJzaXN0ZWQoY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9uOjpQZXJzaXN0Q2FsbGJh
Y2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OmdldFBl
cnNpc3RlZChXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4sIFN0b3JhZ2VDb25uZWN0aW9u
OjpQZXJzaXN0Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OlBl
cnNpc3RlZChvcmlnaW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CkBAIC01MSw3
ICs1MSw3IEBAIHZvaWQgV2ViU3RvcmFnZUNvbm5lY3Rpb246OnBlcnNpc3QoY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIFN0b3JhZ2VDCiAgICAgY29ubmVjdGlvbigpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpQZXJzaXN0KG9y
aWdpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJTdG9yYWdl
Q29ubmVjdGlvbjo6ZmlsZVN5c3RlbUdldERpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mIG9yaWdpbiwgU3RvcmFnZUNvbm5lY3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlN0b3JhZ2VDb25uZWN0aW9uOjpmaWxlU3lzdGVt
R2V0RGlyZWN0b3J5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbiwgU3RvcmFnZUNvbm5l
Y3Rpb246OkdldERpcmVjdG9yeUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
YXV0byYgY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKICAgICBjb25uZWN0aW9uLnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpGaWxlU3lzdGVtR2V0
RGlyZWN0b3J5KG9yaWdpbiksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlv
bi5oCmluZGV4IDgyMjY1ZGY0YTFlNDg4ZDRmZWZiYTBkNDY0NmI2YmRiMTY0ZTlhMjMuLmVhMmQ0
ODI2NDVjYzkwYzgwNDgyYjgzNTZjNTUyY2YwYTBkYWZiNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTdG9yYWdlQ29u
bmVjdGlvbi5oCkBAIC00Myw5ICs0Myw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlN0
b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGUoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGdldFBlcnNp
c3RlZChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVy
c2lzdENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0UGVyc2lzdGVkKFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6UGVyc2lzdENhbGxiYWNrJiYpIGZpbmFs
OwogICAgIHZvaWQgcGVyc2lzdChjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBTdG9yYWdl
Q29ubmVjdGlvbjo6UGVyc2lzdENhbGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgZmlsZVN5c3Rl
bUdldERpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBTdG9yYWdlQ29ubmVj
dGlvbjo6R2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBmaWxlU3lzdGVt
R2V0RGlyZWN0b3J5KFdlYkNvcmU6OkNsaWVudE9yaWdpbiYmLCBTdG9yYWdlQ29ubmVjdGlvbjo6
R2V0RGlyZWN0b3J5Q2FsbGJhY2smJikgZmluYWw7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24oKTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>