<?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>239073</bug_id>
          
          <creation_ts>2022-04-11 09:40:19 -0700</creation_ts>
          <short_desc>[WebAuthn] Clean up WebAuthenticationModern and WebAuthnProcess</short_desc>
          <delta_ts>2022-05-11 14:45:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=240318</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="pascoe@apple.com">pascoe</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1860307</commentid>
    <comment_count>0</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-04-11 09:40:19 -0700</bug_when>
    <thetext>These are no longer necessary for ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860310</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-11 09:40:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/91571030&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860311</commentid>
    <comment_count>2</comment_count>
      <attachid>457260</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-04-11 09:46:34 -0700</bug_when>
    <thetext>Created attachment 457260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860402</commentid>
    <comment_count>3</comment_count>
      <attachid>457285</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-04-11 14:20:12 -0700</bug_when>
    <thetext>Created attachment 457285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860432</commentid>
    <comment_count>4</comment_count>
      <attachid>457291</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-04-11 15:22:17 -0700</bug_when>
    <thetext>Created attachment 457291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860776</commentid>
    <comment_count>5</comment_count>
      <attachid>457291</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-04-12 13:00:17 -0700</bug_when>
    <thetext>Comment on attachment 457291
Patch

r=me. So much dead code removed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861576</commentid>
    <comment_count>6</comment_count>
      <attachid>457641</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-04-14 11:02:49 -0700</bug_when>
    <thetext>Created attachment 457641
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861591</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-14 12:14:22 -0700</bug_when>
    <thetext>Committed r292882 (249652@main): &lt;https://commits.webkit.org/249652@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457641.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457260</attachid>
            <date>2022-04-11 09:46:34 -0700</date>
            <delta_ts>2022-04-11 14:20:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239073-20220411094633.patch</filename>
            <type>text/plain</type>
            <size>236106</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDMyY2Y1NjhmNzAxMGFlOTM4YzUwNmI4
ZGZmMjQ0ZDE1ZjVmMzM4ZGIuLmI0N2U1NGRhODdhZThhMjQ2Mzg3MzA0YTE0NDcxYjkxMTcwMzJi
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDQtMTEgIEogUGFzY29lICA8al9wYXNjb2VA
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRp
b25Nb2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkxNTcx
MDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIw
MjItMDQtMDggIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBwbGUuY29tPgogCiAgICAgICAgIFtY
Y29kZV0gQXZvaWQgdGFyZ2V0aW5nIDMyLWJpdCBpT1MgYW5kIE1hYyBhcmNoaXRlY3R1cmVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOWQ5ZjQ1OTkyN2ZkMDgxNWU1ZmJiMGY1OTU4ZWNmNWM3YmFjYjEwNi4uMmU0
OTk4MjY1NzYyOWEzMDc5Y2JiMTc3NTA1MDhlNzcwZDgxNmY0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDIyLTA0LTExICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViQXV0aG5dIENsZWFuIHVwIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuIGFuZCBX
ZWJBdXRoblByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzOTA3MworICAgICAgICByZGFyOi8vcHJvYmxlbS85MTU3MTAzMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
bmFibGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc1R5cGVEZXNjcmlwdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg6CisKIDIw
MjItMDQtMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9w
IHVudXNlZCBwbHVnaW5SZXBsYWNlbWVudFNjcmlwdE9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyN2Q2Nzli
NjlmMDA1YmM1ZWNlZTU1MDIwY2U0ZWNlNWNiOWQ2YjhmLi5hNDkwMDc5NmI0ZWRjN2U1OWJjNmE3
NWIyYWI1MDZhNmM0NTliZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMCBAQAorMjAyMi0wNC0x
MSAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBD
bGVhbiB1cCBXZWJBdXRoZW50aWNhdGlvbk1vZGVybiBhbmQgV2ViQXV0aG5Qcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNzMKKyAgICAg
ICAgcmRhcjovL3Byb2JsZW0vOTE1NzEwMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2Nv
bmZpZzogUmVtb3ZlZC4KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBSZXNvdXJjZXMvU2Fu
ZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuLnNiLmluOiBSZW1vdmVk
LgorICAgICAgICAqIFNjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2g6CisgICAgICAgICog
U2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0
Ojppc0luV2ViS2l0Q2hpbGRQcm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lmg6CisgICAgICAg
ICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNl
TWFpbi5tbToKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZUV2ZW50SGFuZGxlcik6CisgICAg
ICAgICogU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0
Ojpwcm9jZXNzU3RvcmFnZUNsYXNzKToKKyAgICAgICAgKFdlYktpdDo6c2FuZGJveERpcmVjdG9y
eSk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQp
OiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToK
KyAgICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0pOiBE
ZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW06CisgICAgICAgICgrW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgaW1wb3J0TG9j
YWxBdXRoZW50aWNhdG9yV2l0aEFjY2Vzc0dyb3VwOmNyZWRlbnRpYWw6ZXJyb3I6XSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkF1eGlsaWFyeVByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OnNlcnZpY2VOYW1lKToKKyAgICAgICAgKFdlYktpdDo6c2hvdWxkTGVha0Jvb3N0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oOgorICAgICAg
ICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yOjpyZXF1ZXN0RGF0YSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OkF1dGhlbnRpY2F0b3I6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3I6OndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRW5hYmxlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNh
dG9yQWRkZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZW5hYmxl
TW9kZXJuV2ViQXV0aGVudGljYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAg
ICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwpOgorICAgICAg
ICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6OmdldEFzc2VydGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclJlc3Bv
bnNlU2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NQcm94eS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5Lmg6IFJlbW92ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXROZXh0QXNzZXJ0
aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRp
Y2F0b3I6OmNvbnRpbnVlUmVxdWVzdFBpbkFmdGVyR2V0S2V5QWdyZWVtZW50KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUG9vbDo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0V2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBD
U2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1PU1gucGxpc3Q6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNl
cnZpY2UvSW5mby1pT1MucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNz
L0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1t
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRo
blByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBSZW1v
dmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmlu
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9X
ZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJBdXRoblByb2Nlc3MvaW9zL1dlYkF1dGhuUHJvY2Vzc0lPUy5tbTogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJBdXRoblByb2Nlc3MvbWFjL1dlYkF1dGhuUHJvY2Vzc01hYy5tbTogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Q
cm9jZXNzLnNiLmluOiBSZW1vdmVkLgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yOjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhl
bnRpY2F0b3JBdmFpbGFibGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmg6IFJl
bW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0TW9ja1dlYkF1dGhl
bnRpY2F0aW9uQ29uZmlndXJhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZVdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZXhpc3RpbmdX
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKTogRGVsZXRlZC4KKwogMjAyMi0wNC0wOCAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3AgdW51c2VkIHBsdWdpblJl
cGxhY2VtZW50U2NyaXB0T2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbCBiL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCmluZGV4IGU3
YmFiZjEwNGE3NWY4NjM1ODMyYTJiMmI3OWE4MjUxOTZmZDQ4OTMuLjM0MTAzYzA0MGEzZGEzMTk4
MTAzMjRiNDRiYjdhODMyMzY3NmIxMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9Q
cmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9X
VEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBA
IC0xMjc2LDIyICsxMjc2LDYgQEAgV2ViQXV0aGVudGljYXRpb25FbmFibGVkOgogICAgIFdlYkNv
cmU6CiAgICAgICBkZWZhdWx0OiB0cnVlCiAKLSMgRklYTUU6IElzIHRoaXMgaW1wbGVtZW50ZWQg
Zm9yIFdlYktpdExlZ2FjeT8gSWYgbm90LCB0aGlzIHNob3VsZCBiZSBleGNsdWRlZCBmcm9tIFdl
YktpdExlZ2FjeSBlbnRpcmVseS4KLVdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZDoKLSAg
dHlwZTogYm9vbAotICBodW1hblJlYWRhYmxlTmFtZTogIldlYiBBdXRoZW50aWNhdGlvbiBNb2Rl
cm4iCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBNb2Rlcm4gV2ViIEF1dGhl
bnRpY2F0aW9uIHN1cHBvcnQiCi0gIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9BVVRITikKLSAgd2Vi
Y29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKLSAgZGVmYXVsdFZhbHVlOgotICAg
IFdlYktpdExlZ2FjeToKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViS2l0OgotICAgICAg
IlBMQVRGT1JNKElPUykiIDogdHJ1ZQotICAgICAgZGVmYXVsdDogZmFsc2UKLSAgICBXZWJDb3Jl
OgotICAgICAgZGVmYXVsdDogZmFsc2UKLQogV2ViR0xVc2luZ01ldGFsOgogICB0eXBlOiBib29s
CiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViR0wgdmlhIE1ldGFsIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCA2OGI3YTIzZDgzYTNjNGVmZmM0
MWU4MTFiZDdjMzUxOGI0YjIyZDRiLi5mYWU5NDc2MTExNDVjZTVmNzlmM2E3Yzg0NmY4MGE5NTEy
ZTdkMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aApAQCAtMjM0LDExICsyMzQsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBvcHVzRGVjb2RlckVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX29wdXNEZWNvZGVyRW5hYmxlZDsgfQogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIHZvaWQgc2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
bmFibGVkKGJvb2wgYXJlRW5hYmxlZCkgeyBtX2FyZVdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5h
YmxlZCA9IGFyZUVuYWJsZWQ7IH0KLSAgICBib29sIHdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJlV2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVk
OyB9Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIChIQVZFKEFWU0FNUExF
QlVGRkVSVklERU9PVVRQVVQpIHx8IFVTRShHU1RSRUFNRVIpKQogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0TWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgYm9v
bCBtZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVk
aWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQ7IH0KQEAgLTM4OCwxMCArMzgzLDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fb3B1c0RlY29kZXJFbmFibGVkIHsgZmFsc2UgfTsKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBib29sIG1fYXJlV2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FbmFibGVkIHsgZmFsc2UgfTsKLSNlbmRpZgotCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJD
RSkgJiYgKEhBVkUoQVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkgfHwgVVNFKEdTVFJFQU1FUikp
CiAgICAgYm9vbCBtX21lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkIHsgZmFsc2UgfTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5jcHAKaW5kZXggNGMyYjUzZThkMzgxMzJiNzYwZWIwYWY3ODAxODRhZjQ1MjEy
MTJlNy4uYTNmYTc3MjhlN2Q2NGNmZjQ1ZmI3NjEzNjk2NGFjMDMwOGQ3ODU1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3Bw
CkBAIC0xMDgsMTAgKzEwOCw2IEBAIGNvbnN0IGNoYXIqIHByb2Nlc3NUeXBlRGVzY3JpcHRpb24o
c3RkOjpvcHRpb25hbDxBdXhpbGlhcnlQcm9jZXNzVHlwZT4gdHlwZSkKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiAgICAgY2FzZSBBdXhpbGlhcnlQcm9jZXNzVHlwZTo6R1BVOgogICAgICAgICBy
ZXR1cm4gIkdQVSI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIGNhc2UgQXV4
aWxpYXJ5UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgotICAgICAgICByZXR1cm4gIldlYkF1dGhuIjsK
ICNlbmRpZgogICAgIH0KICAgICByZXR1cm4gIlVua25vd24iOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAppbmRleCBjNzY0Njg2ODU1
NWJlMTVmMjQ3MDIxZjMwMjVlMTdhODFhNmU2NmQwLi4zZDQzNGRkNTg4NDJlMzJjZTQwMzJjNDZk
YWFmMzczNTU2YmM2ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtNDAsOSArNDAsNiBAQCBlbnVtIGNsYXNzIEF1eGls
aWFyeVByb2Nlc3NUeXBlIDogdWludDhfdCB7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAg
IEdQVSwKICNlbmRpZgotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgV2ViQXV0aG4sCi0jZW5k
aWYKIH07CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV4aWxpYXJ5UHJvY2Vzc1R5cGUoQXV4
aWxpYXJ5UHJvY2Vzc1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9XZWJBdXRoblNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1dlYkF1dGhuU2VydmljZS54Y2NvbmZpZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMzVmNWQxZDM1ZDA0ODA4Y2Q3Mjg0YzU5NTQ2NGE0ZTMxOTQyOGY0My4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2NvbmZpZworKysgL2Rldi9udWxsCkBAIC0xLDM2ICsw
LDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLS8vIGFyZSBtZXQ6Ci0vLyAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotLy8gMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLS8vICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0vLyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotLy8gSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0vLyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotLy8g
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0vLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0vLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLS8vIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LS8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jaW5jbHVkZSAiQmFz
ZVhQQ1NlcnZpY2UueGNjb25maWciCi0KLVBST0RVQ1RfTkFNRSA9IGNvbS5hcHBsZS5XZWJLaXQu
V2ViQXV0aG47Ci1QUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQUk9EVUNUX05BTUUpOwot
SU5GT1BMSVNUX0ZJTEVbc2RrPWVtYmVkZGVkKl0gPSBXZWJBdXRoblByb2Nlc3MvRW50cnlQb2lu
dC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLWlPUy5wbGlzdDsKLUlORk9Q
TElTVF9GSUxFW3Nkaz1tYWNvc3gqXSA9IFdlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29h
L1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8tT1NYLnBsaXN0OwotCi1PVEhFUl9MREZM
QUdTID0gJChpbmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19WRVJTSU9ORURfRlJBTUVXT1JLX1BB
VEgpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLU19MREZMQUdTKSAkKFNPVVJDRV9WRVJTSU9O
X0xERkxBR1MpOwotCi1FTlRJVExFTUVOVFNfUkVRVUlSRUQgPSAkKEVOVElUTEVNRU5UU19SRVFV
SVJFRF9VU0VfSU5URVJOQUxfU0RLXyQoVVNFX0lOVEVSTkFMX1NESykpCi1FTlRJVExFTUVOVFNf
UkVRVUlSRURfVVNFX0lOVEVSTkFMX1NES18gPSBOTzsKLUVOVElUTEVNRU5UU19SRVFVSVJFRF9V
U0VfSU5URVJOQUxfU0RLX05PID0gTk87Ci1FTlRJVExFTUVOVFNfUkVRVUlSRURfVVNFX0lOVEVS
TkFMX1NES19ZRVMgPSAkKEVOVElUTEVNRU5UU19SRVFVSVJFRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IGVkN2E5MTAxM2E4YmFjZDVkNjU5
OTYwYjNhZjEyMzEzNGJiNTVmM2EuLjkzMDVjOTc2YzY2NWQxYWVlODE0ZTQ4YTkyNjc0MWZkMTQ4
ZWQzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0Lnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmln
CkBAIC0yMDUsNyArMjA1LDcgQEAgV0tfTUlHUkFURURfSEVBREVSX09VVFBVVF9ESVJfID0gJChI
RUFERVJfT1VUUFVUX0RJUik7CiAvLyBPbiBub24tTWFjIHBsYXRmb3JtcywgYWxsIG1pZ3JhdGVk
IGhlYWRlcnMgZ28gdG8gUHJpdmF0ZUhlYWRlcnMuCiBXS19NSUdSQVRFRF9IRUFERVJfT1VUUFVU
X0RJUl9jb2NvYXRvdWNoID0gJChIRUFERVJfT1VUUFVUX0RJUjpkaXIpUHJpdmF0ZUhlYWRlcnM7
CiAKLUVYQ0xVREVEX01BQ09TX1BMVUdJTl9GSUxFX05BTUVTW3Nkaz1pcGhvbmUqXSA9IFNlY0l0
ZW1TaGltLmR5bGliIFdlYlByb2Nlc3NTaGltLmR5bGliICoucGRmIFJlc291cmNlcy9tYWMvKiBj
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGNvbS5hcHBsZS5XZWJLaXQuR1BVUHJv
Y2Vzcy5zYiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYiBjb20uYXBwbGUuV2Vi
S2l0LndlYnB1c2hkLnNiIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiOworRVhDTFVERURfTUFDT1Nf
UExVR0lOX0ZJTEVfTkFNRVNbc2RrPWlwaG9uZSpdID0gU2VjSXRlbVNoaW0uZHlsaWIgV2ViUHJv
Y2Vzc1NoaW0uZHlsaWIgKi5wZGYgUmVzb3VyY2VzL21hYy8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya1Byb2Nlc3Muc2IgY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiIGNvbS5hcHBsZS5X
ZWJLaXQud2VicHVzaGQuc2IgY29tLmFwcGxlLldlYlByb2Nlc3Muc2I7CiAKIElOU1RBTExIRFJT
X1NDUklQVF9QSEFTRSA9IFlFUzsKIEFQUExZX1JVTEVTX0lOX0NPUFlfSEVBREVSUyA9ICQoV0tf
VVNFX05FV19CVUlMRF9TWVNURU0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGVi
NTk4NWM4ZDhhNzYxZTg3MGM4OTVhZGQ3ZjkxNzUwNWJjNTY0YjIuLjc2ZjA3MjZiNTNmNmQ2MDJh
MDU0OGY1MDIyYTRhMjBkMzk1OGY1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAg
LTQ2LDggKzQ2LDYgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9TaGFyZWQvQXV0aGVudGlj
YXRpb24gXAogICAgICQoV2ViS2l0MikvU2hhcmVkL21hYyBcCiAgICAgJChXZWJLaXQyKS9TaGFy
ZWQvTm90aWZpY2F0aW9ucyBcCi0gICAgJChXZWJLaXQyKS9XZWJBdXRoblByb2Nlc3MgXAotICAg
ICQoV2ViS2l0MikvV2ViQXV0aG5Qcm9jZXNzL21hYyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL0FwcGxlUGF5IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNo
ZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0F1dG9tYXRpb24gXApAQCAtMjUwLDcgKzI0
OCw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3MvV2ViUGFnZS9WaXNpdGVk
TGlua1RhYmxlQ29udHJvbGxlciBcCiAJV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVj
a2luZ0NvbnRyb2xsZXJQcm94eSBcCiAJV2ViUHJvY2Vzcy9XZWJQYWdlL1ZpZXdVcGRhdGVEaXNw
YXRjaGVyIFwKLQlXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbVByb3h5IFwKIAlHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgXAogCUdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBcCkBAIC0zMDQsOCArMzAxLDYgQEAgTUVTU0FHRV9S
RUNFSVZFUlMgPSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVNvdXJjZVByb3h5IFwK
IAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lclByb3h5IFwKIAlH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5IFwKLQlXZWJBdXRoblByb2Nl
c3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzIFwKLQlXZWJBdXRoblByb2Nlc3MvV2Vi
QXV0aG5Qcm9jZXNzIFwKICMKIAogR0VORVJBVEVfTUVTU0FHRV9SRUNFSVZFUl9TQ1JJUFQgPSAk
KFdlYktpdDIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZlci5weQpAQCAtMzU2LDE0
ICszNTEsMTIgQEAgU0FOREJPWF9QUk9GSUxFUyA9IFwKIAljb20uYXBwbGUuV2ViUHJvY2Vzcy5z
YiBcCiAJY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBcCiAJY29tLmFwcGxlLldl
YktpdC5HUFVQcm9jZXNzLnNiIFwKLQljb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5z
YiBcCiAJY29tLmFwcGxlLldlYktpdC53ZWJwdXNoZC5zYgogCQogU0FOREJPWF9QUk9GSUxFU19J
T1MgPSBcCiAJY29tLmFwcGxlLldlYktpdC5hZGF0dHJpYnV0aW9uZC5zYiBcCiAJY29tLmFwcGxl
LldlYktpdC5HUFUuc2IgXAogCWNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiBcCi0JY29t
LmFwcGxlLldlYktpdC5XZWJBdXRobi5zYiBcCiAJY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LnNiCiAKIHNhbmRib3gtcHJvZmlsZXMtaW9zIDogJChTQU5EQk9YX1BST0ZJTEVTX0lPUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29t
LmFwcGxlLldlYktpdC5XZWJBdXRobi5zYi5pbiBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1Nh
bmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5zYi5pbgpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMzYWIxMWUyZTUxZTNjNDNmNzU1YmI1N2QwMzA1OTY1
MDU5MzQ0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJL
aXQuV2ViQXV0aG4uc2IuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw0NTcgKzAsMCBAQAotOyBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi07Ci07
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLTsgYXJlIG1ldDoKLTsgMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
OyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotOyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi07IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi07Ci07IFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLTsgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLTsgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci07IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLTsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLTsgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi07IElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi07IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi07IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLTsgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0odmVyc2lvbiAxKQotKGRlbnkgZGVmYXVsdCAo
d2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQotKGRlbnkgbnZyYW0qKQotKGRlbnkgc3lzdGVt
LXByaXZpbGVnZSkKLQotOzsgU2lsZW5jZSBzcHVyaW91cyBsb2dnaW5nIGR1ZSB0byByZGFyOi8v
MjAxMTc5MjMgYW5kIHJkYXI6Ly83MjM2NjQ3NQotKGRlbnkgc3lzdGVtLXByaXZpbGVnZSAocHJp
dmlsZWdlLWlkIFBSSVZfR0xPQkFMX1BST0NfSU5GTykgKHdpdGggbm8tcmVwb3J0KSkKLQotOzs7
Ci07OzsgVGhlIGZvbGxvd2luZyBydWxlcyB3ZXJlIG9yaWdpbmFsbHkgY29udGFpbmVkIGluICdj
b21tb24uc2InLiBXZSBhcmUgZHVwbGljYXRpbmcgdGhlbSBoZXJlIHNvIHdlIGNhbgotOzs7IHJl
bW92ZSB1bm5lZWRlZCBzYW5kYm94IGV4dGVuc2lvbnMuCi07OzsKLQotKGltcG9ydCAidXRpbC5z
YiIpCi0KLShkZWZpbmUtb25jZSAobWFuYWdlZC1jb25maWd1cmF0aW9uLXJlYWQtcHVibGljKQot
ICAgIChhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAgICAgICh3ZWxsLWtub3duLXN5c3RlbS1ncm91
cC1jb250YWluZXItc3VicGF0aCAiL3N5c3RlbWdyb3VwLmNvbS5hcHBsZS5jb25maWd1cmF0aW9u
cHJvZmlsZXMvTGlicmFyeS9Db25maWd1cmF0aW9uUHJvZmlsZXMvUHVibGljSW5mbyIpCi0gICAg
ICAgICAgIChmcm9udC11c2VyLWhvbWUtc3VicGF0aCAiL0xpYnJhcnkvQ29uZmlndXJhdGlvblBy
b2ZpbGVzL1B1YmxpY0luZm8iKQotICAgICAgICAgICAoZnJvbnQtdXNlci1ob21lLXN1YnBhdGgg
Ii9MaWJyYXJ5L1VzZXJDb25maWd1cmF0aW9uUHJvZmlsZXMvUHVibGljSW5mbyIpKSkKLQotKGRl
ZmluZS1vbmNlIChhbGxvdy1wcmVmZXJlbmNlcy1jb21tb24pCi0gICAgKGFsbG93IGZpbGUtcmVh
ZC1tZXRhZGF0YQotICAgICAgICAoaG9tZS1saXRlcmFsICIiKQotICAgICAgICAoaG9tZS1saXRl
cmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcyIpKSkKLQotKGRlZmluZS1vbmNlIChtb2JpbGUtcHJl
ZmVyZW5jZXMtcmVhZCAuIGRvbWFpbnMpCi0gICAgKGFsbG93LXByZWZlcmVuY2VzLWNvbW1vbikK
LSAgICAoZm9yLWVhY2ggKGxhbWJkYSAoZG9tYWluKQotICAgICAgICAoYmVnaW4KLSAgICAgICAg
ICAgIChhbGxvdyB1c2VyLXByZWZlcmVuY2UtcmVhZCAocHJlZmVyZW5jZS1kb21haW4gZG9tYWlu
KSkKLSAgICAgICAgICAgIChhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAgICAgICAgICAgKGhvbWUt
bGl0ZXJhbCAoc3RyaW5nLWFwcGVuZCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvIiBkb21haW4gIi5w
bGlzdCIpKSkpKQotICAgICAgICBkb21haW5zKSkKLQotKGRlZmluZS1vbmNlIChpbnRlcm5hbC1k
ZWJ1Z2dpbmctc3VwcG9ydCkKLSAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRh
YmxlCi0gICAgICAgIChzdWJwYXRoICIvRGV2ZWxvcGVyIikpCi0KLSAgICAoYWxsb3cgaXBjLXBv
c2l4LXNobQotICAgICAgICAoaXBjLXBvc2l4LW5hbWUtcHJlZml4ICJzdGFjay1sb2dzIikKLSAg
ICAgICAgKGlwYy1wb3NpeC1uYW1lLXByZWZpeCAiT0EtIikKLSAgICAgICAgKGlwYy1wb3NpeC1u
YW1lLXByZWZpeCAiL0ZTTS0iKSkKLQotICAgIChhbGxvdyBpcGMtcG9zaXgtc2htLXJlYWQqIGlw
Yy1wb3NpeC1zaG0td3JpdGUtZGF0YSBpcGMtcG9zaXgtc2htLXdyaXRlLXVubGluawotICAgICAg
ICAoaXBjLXBvc2l4LW5hbWUtcmVnZXggIyJeZ2R0LVtBLVphLXowLTldKy0oY3xzKSQiKSkKLQot
ICAgICh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAg
ICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzg1NjUwMzU+Ci0gICAgICAgIDs7IDxyZGFyOi8vcHJvYmxl
bS8yMzg1NzQ1Mj4KLSAgICAgICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzcyMzE3MTEyPgotICAgICAg
ICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRhYmxlCi0gICAgICAgICAgICAoc3Vi
cGF0aAotICAgICAgICAgICAgICAgICIvQXBwbGVJbnRlcm5hbCIKLSAgICAgICAgICAgICAgICAi
L3Vzci9sb2NhbC9saWIiCi0gICAgICAgICAgICAgICAgIi91c3IvYXBwbGVpbnRlcm5hbC9saWIi
Ci0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICApCi0gICAgKHdpdGgtZWxldmF0ZWQtcHJl
Y2VkZW5jZQotICAgICAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRhYmxlIGZp
bGUtaXNzdWUtZXh0ZW5zaW9uCi0gICAgICAgICAgIChmcm9udC11c2VyLWhvbWUtc3VicGF0aCAi
L1hjb2RlQnVpbHRQcm9kdWN0cyIpCi0gICAgICAgICkKLSAgICApCi0KLSAgICA7OyA8cmRhcjov
L3Byb2JsZW0vODEwNzc1OD4KLSAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRh
YmxlCi0gICAgICAgIChzdWJwYXRoCi0gICAgICAgICAgICAiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MiCi0gICAgICAgICAgICAiL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzIgot
ICAgICAgICApCi0gICAgKQotCi0gICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzMyNTQ0OTIxPgotICAg
IChtb2JpbGUtcHJlZmVyZW5jZXMtcmVhZCAiY29tLmFwcGxlLmhhbmd0cmFjZXIiKQotKQotCi0o
ZGVmaW5lLW9uY2UgKGRldmljZS1hY2Nlc3MpCi0gICAgKGRlbnkgZmlsZS1yZWFkKiBmaWxlLXdy
aXRlKgotICAgICAgICAodm5vZGUtdHlwZSBCTE9DSy1ERVZJQ0UgQ0hBUkFDVEVSLURFVklDRSkp
Ci0KLSAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlLWRhdGEKLSAgICAgICAgKGxpdGVy
YWwKLSAgICAgICAgICAgICIvZGV2L251bGwiCi0gICAgICAgICAgICAiL2Rldi96ZXJvIgotICAg
ICAgICApCi0gICAgKQotCi0gICAgKGFsbG93IGZpbGUtcmVhZCoKLSAgICAgICAgKGxpdGVyYWwK
LSAgICAgICAgICAgICIvZGV2L3JhbmRvbSIKLSAgICAgICAgICAgICIvZGV2L3VyYW5kb20iCi0g
ICAgICAgICkKLSAgICApCi0KLSAgICAoaWYgKHN5c3RlbS1hdHRyaWJ1dGUgYXBwbGUtaW50ZXJu
YWwpCi0gICAgICAgIChhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUtZGF0YSBmaWxlLWlvY3Rs
Ci0gICAgICAgICAgICAobGl0ZXJhbCAiL2Rldi9kdHJhY2VoZWxwZXIiKSkKLSAgICA7IGVsc2UK
LSAgICAgICAgKGRlbnkgKHdpdGggbm8tbG9nKSBmaWxlLXJlYWQqIGZpbGUtd3JpdGUtZGF0YSBm
aWxlLWlvY3RsCi0gICAgICAgICAgICAobGl0ZXJhbCAiL2Rldi9kdHJhY2VoZWxwZXIiKSkKLSAg
ICApCi0KLSAgICA7OyA8cmRhcjovL3Byb2JsZW0vMTQyMTU3MTg+Ci0gICAgKGRlbnkgZmlsZS13
cml0ZS1kYXRhICh3aXRoIG5vLXJlcG9ydCkKLSAgICAgICAgKGxpdGVyYWwKLSAgICAgICAgICAg
ICIvZGV2L3JhbmRvbSIKLSAgICAgICAgICAgICIvZGV2L3VyYW5kb20iCi0gICAgICAgICkKLSAg
ICApCi0KLSAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlLWRhdGEgZmlsZS1pb2N0bAot
ICAgICAgICAobGl0ZXJhbCAiL2Rldi9hZXNfMCIpCi0gICAgKQotKQotCi0oZGVmaW5lIHJlcXVp
cmVkLWV0Yy1maWxlcwotICAgIChsaXRlcmFsCi0gICAgICAgICIvcHJpdmF0ZS9ldGMvaG9zdHMi
Ci0gICAgICAgICIvcHJpdmF0ZS9ldGMvZ3JvdXAiCi0gICAgICAgICIvcHJpdmF0ZS9ldGMvcGFz
c3dkIgotICAgICAgICAiL3ByaXZhdGUvZXRjL3Byb3RvY29scyIKLSAgICAgICAgIi9wcml2YXRl
L2V0Yy9zZXJ2aWNlcyIKLSAgICApCi0pCi0KLShkZW55IGZpbGUtbWFwLWV4ZWN1dGFibGUpCi0K
LShkZW55IGZpbGUtd3JpdGUtbW91bnQgZmlsZS13cml0ZS11bm1vdW50KQotCi0obW9iaWxlLXBy
ZWZlcmVuY2VzLXJlYWQgImNvbS5hcHBsZS5zZWN1cml0eSIpCi0KLSh3aXRoLWZpbHRlciAoc3lz
dGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAobW9iaWxlLXByZWZlcmVuY2VzLXJl
YWQgImNvbS5hcHBsZS5Qcm90b3R5cGVUb29scyIpCi0pCi0KLSh3aXRoLWVsZXZhdGVkLXByZWNl
ZGVuY2UKLSAgICAoYWxsb3cgZmlsZS1yZWFkKgotICAgICAgICAoc3VicGF0aAotICAgICAgICAg
ICAgIi91c3IvbGliIgotICAgICAgICAgICAgIi91c3Ivc2hhcmUiCi0gICAgICAgICAgICAiL3By
aXZhdGUvdmFyL2RiL3RpbWV6b25lIgotICAgICAgICAgICAgIi9wcml2YXRlL3Zhci9wcmVmZXJl
bmNlcy9Mb2dnaW5nIiA7OzsgPHJkYXI6Ly9wcm9ibGVtLzI0MTQ0NDE4PgotICAgICAgICAgICAg
Ii9TeXN0ZW0vTGlicmFyeSIKLSAgICAgICAgKQotICAgICkKLQotICAgIChsZXQgKChody1pZGVu
dGlmeWluZy1wYXRocwotICAgICAgICAgICAgKHJlcXVpcmUtYW55Ci0gICAgICAgICAgICAgICAg
KGxpdGVyYWwgIi9TeXN0ZW0vTGlicmFyeS9DYWNoZXMvYXB0aWNrZXQuZGVyIikKLSAgICAgICAg
ICAgICAgICAoc3VicGF0aCAiL1N5c3RlbS9MaWJyYXJ5L0NhY2hlcy9jb20uYXBwbGUua2VybmVs
Y2FjaGVzIikKLSAgICAgICAgICAgICAgICAoc3VicGF0aCAiL1N5c3RlbS9MaWJyYXJ5L0NhY2hl
cy9jb20uYXBwbGUuZmFjdG9yeWRhdGEiKSkpKQotICAgICAgICAoZGVueSBmaWxlLWlzc3VlLWV4
dGVuc2lvbiBmaWxlLXJlYWQqIGh3LWlkZW50aWZ5aW5nLXBhdGhzKSkKLSAgICAKLSAgICAoYWxs
b3cgZmlsZS1tYXAtZXhlY3V0YWJsZQotICAgICAgICAoc3VicGF0aAotICAgICAgICAgICAgIi9T
eXN0ZW0vTGlicmFyeSIKLSAgICAgICAgICAgICIvdXNyL2xpYiIKLSAgICAgICAgKQotICAgICkK
LQotICAgIChhbGxvdyBmaWxlLXJlYWQtbWV0YWRhdGEKLSAgICAgICAgKHZub2RlLXR5cGUKLSAg
ICAgICAgICAgIERJUkVDVE9SWQotICAgICAgICAgICAgU1lNTElOSwotICAgICAgICApCi0gICAg
KQotCi0gICAgKGFsbG93IHVzZXItcHJlZmVyZW5jZS1yZWFkIChwcmVmZXJlbmNlLWRvbWFpbiAi
a0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIpKQotICAgIChhbGxvdyBmaWxlLXJlYWQqCi0g
ICAgICAgICAgIChmcm9udC11c2VyLWhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMv
Lkdsb2JhbFByZWZlcmVuY2VzLnBsaXN0IikKLSAgICAgICAgICAgKGZyb250LXVzZXItaG9tZS1s
aXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy8uR2xvYmFsUHJlZmVyZW5jZXNfbS5wbGlzdCIp
KQotICAgIChhbGxvdyBtYW5hZ2VkLXByZWZlcmVuY2UtcmVhZCAocHJlZmVyZW5jZS1kb21haW4g
ImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iKSkKLSAgICAKLSAgICAoYWxsb3cgZmlsZS1y
ZWFkKgotICAgICAgICAobGl0ZXJhbCAiL3ByaXZhdGUvdmFyL01hbmFnZWQgUHJlZmVyZW5jZXMv
bW9iaWxlLy5HbG9iYWxQcmVmZXJlbmNlcy5wbGlzdCIpCi0gICAgKQotCi0gICAgKGFsbG93IGZp
bGUtcmVhZC1tZXRhZGF0YQotICAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9DYWNoZXMv
cG93ZXJsb2cubGF1bmNoZCIpKQotCi0gICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzEzOTYzMjk0Pgot
ICAgIChkZW55IGZpbGUtcmVhZC1kYXRhIGZpbGUtaXNzdWUtZXh0ZW5zaW9uIGZpbGUtbWFwLWV4
ZWN1dGFibGUKLSAgICAgICAgKHJlcXVpcmUtYWxsCi0gICAgICAgICAgICAoZXhlY3V0YWJsZS1i
dW5kbGUpCi0gICAgICAgICAgICAocmVnZXggIyIvW14vXSsvU0NfSW5mby8iKSkpCi0pCi0KLSh3
aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAoaW50ZXJu
YWwtZGVidWdnaW5nLXN1cHBvcnQpCi0pCi0KLShhbGxvdyBmaWxlLXJlYWQqIHJlcXVpcmVkLWV0
Yy1maWxlcykKLQotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAoc3VicGF0aCAiL3ByaXZhdGUvdmFy
L01vYmlsZUFzc2V0L1ByZWluc3RhbGxlZEFzc2V0c1YyL0luc3RhbGxXaXRoT3MiKSkKLQotKGFs
bG93IGZpbGUtcmVhZC1kYXRhCi0gICAgKGxpdGVyYWwgIi91c3IvbG9jYWwvbGliL2xvZyIpIDsg
PHJkYXI6Ly9wcm9ibGVtLzM2NjI5NDk1PgotKQotCi0oZGV2aWNlLWFjY2VzcykKLQotKGFsbG93
IG1hY2gtbG9va3VwCi0gICAgKGdsb2JhbC1uYW1lCi0gICAgICAgICJjb20uYXBwbGUubG9nZCIK
LSAgICAgICAgImNvbS5hcHBsZS5sb2dkLmV2ZW50cyIKLSAgICAgICAgImNvbS5hcHBsZS5zeXN0
ZW0ubm90aWZpY2F0aW9uX2NlbnRlciIKLSAgICApCi0pCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVt
LWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAoYWxsb3cgbWFjaC1sb29rdXAKLSAgICAg
ICAgKGdsb2JhbC1uYW1lCi0gICAgICAgICAgICAiY29tLmFwcGxlLmFnZ3JlZ2F0ZWQiCi0gICAg
ICAgICAgICAiY29tLmFwcGxlLmRpYWdub3N0aWNkIgotICAgICAgICAgICAgImNvbS5hcHBsZS5z
eXN0ZW0ubG9nZ2VyIikpKQotCi07OyA8cmRhcjovL3Byb2JsZW0vMTI0MTM5NDI+Ci0oYWxsb3cg
ZmlsZS1yZWFkKgotICAgICh3ZWxsLWtub3duLXN5c3RlbS1ncm91cC1jb250YWluZXItbGl0ZXJh
bCAiL3N5c3RlbWdyb3VwLmNvbS5hcHBsZS5tb2JpbGVnZXN0YWx0Y2FjaGUvTGlicmFyeS9DYWNo
ZXMvY29tLmFwcGxlLk1vYmlsZUdlc3RhbHQucGxpc3QiKSkKLQotKGFsbG93IGlwYy1wb3NpeC1z
aG0tcmVhZCoKLSAgICAoaXBjLXBvc2l4LW5hbWUgImFwcGxlLnNobS5ub3RpZmljYXRpb25fY2Vu
dGVyIikpCi0KLSh3aXRoLWZpbHRlcgotICAgIChyZXF1aXJlLWFsbAotICAgICAgICAoc3lzdGVt
LWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAgICAgKGlwYy1wb3NpeC1uYW1lICJwdXJw
bGVidWRkeS5zZW50aW5lbCIpKQotICAgIChkZW55IGlwYy1wb3NpeC1zZW0tY3JlYXRlIGlwYy1w
b3NpeC1zZW0tcG9zdCBpcGMtcG9zaXgtc2VtLXVubGluayBpcGMtcG9zaXgtc2VtLXdhaXQpCi0g
ICAgKGFsbG93IGlwYy1wb3NpeC1zZW0tb3BlbikKLSkKLQotKG1hbmFnZWQtY29uZmlndXJhdGlv
bi1yZWFkLXB1YmxpYykKLQotKGRlbnkgc3lzdGVtLWluZm8gKHdpdGggbm8tcmVwb3J0KQotICAg
IChpbmZvLXR5cGUgIm5ldC5saW5rLmFkZHIiKSkKLQotKGFsbG93IG1hY2gtdGFzay1uYW1lICh0
YXJnZXQgc2VsZikpCi0KLShhbGxvdyBwcm9jZXNzLWluZm8tcGlkaW5mbyAodGFyZ2V0IHNlbGYp
KQotKGFsbG93IHByb2Nlc3MtaW5mby1waWRmZGluZm8gKHRhcmdldCBzZWxmKSkKLShhbGxvdyBw
cm9jZXNzLWluZm8tcGlkZmlsZXBvcnRpbmZvICh0YXJnZXQgc2VsZikpCi0oYWxsb3cgcHJvY2Vz
cy1pbmZvLXNldGNvbnRyb2wgKHRhcmdldCBzZWxmKSkKLShhbGxvdyBwcm9jZXNzLWluZm8tZGly
dHljb250cm9sICh0YXJnZXQgc2VsZikpCi0oYWxsb3cgcHJvY2Vzcy1pbmZvLXJ1c2FnZSAodGFy
Z2V0IHNlbGYpKQotKGFsbG93IHByb2Nlc3MtaW5mby1jb2Rlc2lnbmF0dXJlICh0YXJnZXQgc2Vs
ZikpCi0KLTs7OwotOzs7IEVuZCBjb21tb24uc2IgY29udGVudAotOzs7Ci0KLShkZW55IG1hY2gt
bG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAiIikpCi0oZGVueSBpb2tpdC1nZXQtcHJv
cGVydGllcyAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQotKGRlbnkgbHNvcGVuKQotCi07
OzsKLTs7OyBUaGUgZm9sbG93aW5nIHJ1bGVzIHdlcmUgb3JpZ2luYWxseSBjb250YWluZWQgaW4g
J1VJS2l0LWFwcHMuc2InLiBXZSBhcmUgZHVwbGljYXRpbmcgdGhlbSBoZXJlIHNvIHdlIGNhbgot
Ozs7IHJlbW92ZSB1bm5lZWRlZCBzYW5kYm94IGV4dGVuc2lvbnMuCi07OzsKLQotKGFsbG93LXBy
ZWZlcmVuY2VzLWNvbW1vbikKLQotOzsgSG9tZSBCdXR0b24KLSh3aXRoLWZpbHRlciAoaW9raXQt
cmVnaXN0cnktZW50cnktY2xhc3MgIklPUGxhdGZvcm1EZXZpY2UiKQotICAgIChhbGxvdyBpb2tp
dC1nZXQtcHJvcGVydGllcyAod2l0aCB0ZWxlbWV0cnkpCi0gICAgICAgIChpb2tpdC1wcm9wZXJ0
eSAiaG9tZS1idXR0b24tdHlwZSIpKSkKLQotKGRlbnkgZmlsZS13cml0ZSoKLSAgICAoaG9tZS1s
aXRlcmFsCi0gICAgICAgICIvTGlicmFyeS9DYWNoZXMvRGF0ZUZvcm1hdHMucGxpc3QiIDsgU2ls
ZW50bHkgZGVueSB3cml0ZXMgd2hlbiBDRkRhdGEgYXR0ZW1wdHMgdG8gd3JpdGUgdG8gdGhlIGNh
Y2hlIGRpcmVjdG9yeS4KLSAgICAgICAgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5z
cHJpbmdib2FyZC5wbGlzdCIgOzsgPHJkYXI6Ly9wcm9ibGVtLzkzNzUwMjc+Ci0gICAgKQotICAg
ICh3aXRoIG5vLWxvZykpCi0KLTs7OwotOzs7IEVuZCBVSUtpdC1hcHBzLnNiIGNvbnRlbnQKLTs7
OwotCi0oZGVueSBzeXNjdGwqKQotKGFsbG93IHN5c2N0bC1yZWFkCi0gICAgKHN5c2N0bC1uYW1l
Ci0gICAgICAgICJody5hY3RpdmVjcHUiCi0gICAgICAgICJody5hdmFpbGNwdSIKLSAgICAgICAg
Imh3LmNhY2hlY29uZmlnIiA7OyA8cmRhcjovL3Byb2JsZW0vNzgyMTM1NjM+Ci0gICAgICAgICJo
dy5jYWNoZWxpbmVzaXplIgotICAgICAgICAiaHcuY2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2Js
ZW0vNzgyMTM1NjM+Ci0gICAgICAgICJody5jcHVmYW1pbHkiIDs7IDxyZGFyOi8vcHJvYmxlbS8x
NTcyMTg3Mj4KLSAgICAgICAgImh3LmNwdXN1YmZhbWlseSIKLSAgICAgICAgImh3LmNwdXRocmVh
ZHR5cGUiCi0gICAgICAgICJody5jcHV0eXBlIgotICAgICAgICAiaHcubDFkY2FjaGVzaXplIiA7
OyA8cmRhcjovL3Byb2JsZW0vMTU3MjE4NzI+Ci0gICAgICAgICJody5sMWljYWNoZXNpemUiIDs7
IDxyZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4KLSAgICAgICAgImh3LmwyY2FjaGVzaXplIgotICAg
ICAgICAiaHcubDNjYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4KLSAgICAg
ICAgImh3LmxvZ2ljYWxjcHUiCi0gICAgICAgICJody5sb2dpY2FsY3B1X21heCIKLSAgICAgICAg
Imh3Lm5jcHUiCi0gICAgICAgICJody5tYWNoaW5lIgotICAgICAgICAiaHcubWVtc2l6ZSIKLSAg
ICAgICAgImh3Lm1vZGVsIgotICAgICAgICAiaHcubmNwdSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2
NzgyNTMwPgotICAgICAgICAiaHcubnBlcmZsZXZlbHMiIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4
MjUzMD4KLSAgICAgICAgImh3LnBhZ2VzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNzY3ODI1MzA+
Ci0gICAgICAgICJody5wYWdlc2l6ZV9jb21wYXQiCi0gICAgICAgICJody5waHlzaWNhbGNwdSIK
LSAgICAgICAgImh3LnBoeXNpY2FsY3B1X21heCIKLSAgICAgICAgImh3LnBoeXNtZW0iIDs7IDxy
ZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSAgICAgICAgImh3LnZlY3RvcnVuaXQiIDs7IDxyZGFy
Oi8vcHJvYmxlbS83Njc4MjUzMD4KLSAgICAgICAgImtlcm4uYm9vdGFyZ3MiCi0gICAgICAgICJr
ZXJuLmhvc3RuYW1lIgotICAgICAgICAia2Vybi5odl92bW1fcHJlc2VudCIKLSAgICAgICAgImtl
cm4ubWF4ZmlsZXNwZXJwcm9jIgotICAgICAgICAia2Vybi5tZW1vcnlzdGF0dXNfbGV2ZWwiCi0g
ICAgICAgICJrZXJuLm9zcHJvZHVjdHZlcnNpb24iCi0gICAgICAgICJrZXJuLm9zcmVsZWFzZSIK
LSAgICAgICAgImtlcm4ub3N2YXJpYW50X3N0YXR1cyIKLSAgICAgICAgImtlcm4ub3N2ZXJzaW9u
IgotICAgICAgICAia2Vybi5vc3R5cGUiCi0gICAgICAgICJrZXJuLnNlY3VyZV9rZXJuZWwiCi0g
ICAgICAgICJrZXJuLnZlcnNpb24iCi0gICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIpCi0g
ICAgKHN5c2N0bC1uYW1lLXByZWZpeCAiaHcub3B0aW9uYWwuIikgOzsgPHJkYXI6Ly9wcm9ibGVt
LzcwOTczNTI3PgotICAgIChzeXNjdGwtbmFtZS1wcmVmaXggImh3LnBlcmZsZXZlbCIpIDs7IDxy
ZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSkKLQotKHdpdGgtZmlsdGVyIChzeXN0ZW0tYXR0cmli
dXRlIGFwcGxlLWludGVybmFsKQotICAgIChhbGxvdyBzeXNjdGwtcmVhZCBzeXNjdGwtd3JpdGUK
LSAgICAgICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQi
Ci0gICAgICAgICkKLSAgICApCi0pCi0KLTs7IFNpbGVuY2Ugbm9pc3kgZGVuaWFscwotKGRlbnkg
c3lzY3RsLXJlYWQgKHdpdGggbm8tcmVwb3J0KQotICAgIChzeXNjdGwtbmFtZQotICAgICAgICAi
c3lzY3RsLnByb2NfbmF0aXZlIgotICAgICkKLSkKLQotOzsgUmVhZC1vbmx5IHByZWZlcmVuY2Vz
IGFuZCBkYXRhCi0obW9iaWxlLXByZWZlcmVuY2VzLXJlYWQgImNvbS5hcHBsZS5MYXVuY2hTZXJ2
aWNlcyIpCi0KLTs7IEFjY2VzcyB0byBjbGllbnQncyBjYWNoZSBmb2xkZXIgJiByZS12ZW5kaW5n
IHRvIENGTmV0d29yay4KLShhbGxvdyBmaWxlLWlzc3VlLWV4dGVuc2lvbgotICAgIChyZXF1aXJl
LWFsbAotICAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0
ZSIpCi0gICAgICAgIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5uc3VybHN0b3JhZ2UuZXh0
ZW5zaW9uLWNhY2hlIikpKQotCi0oZGVueSBmaWxlLXdyaXRlLWNyZWF0ZSAodm5vZGUtdHlwZSBT
WU1MSU5LKSkKLShkZW55IGZpbGUtcmVhZC14YXR0ciBmaWxlLXdyaXRlLXhhdHRyICh4YXR0ci1w
cmVmaXggImNvbS5hcHBsZS5zZWN1cml0eS5wcml2YXRlLiIpKQotCi07OyBGSVhNRTogQ2FuIGZ1
cnRoZXIgcmVzdHJpY3QgdGhlIGZvbGxvd2luZyBydWxlcy4KLShhbGxvdyBpb2tpdC1nZXQtcHJv
cGVydGllcyAod2l0aCByZXBvcnQpICh3aXRoIHRlbGVtZXRyeSkpCi0oYWxsb3cgaW9raXQtc2V0
LXByb3BlcnRpZXMgKHdpdGggcmVwb3J0KSAod2l0aCB0ZWxlbWV0cnkpKQotCi0oYWxsb3cgZmls
ZS1yZWFkKiBmaWxlLXdyaXRlKgotICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlu
cyIpKSA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxl
bS8xMTU5OTgyNT4gaXMgZml4ZWQuCi0KLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgKHN1YnBhdGgg
Ii9MaWJyYXJ5L0tleWNoYWlucyIpCi0gICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvQXBwbGlj
YXRpb24gU3VwcG9ydC9TeW5jU2VydmljZXMvTG9jYWwvQ2xpZW50c1dpdGhDaGFuZ2VzL2NvbS5h
cHBsZS5LZXljaGFpbiIpKQotCi0oYWxsb3cgZmlsZS1yZWFkKgotICAgIChzdWJwYXRoICIvcHJp
dmF0ZS92YXIvY29udGFpbmVycy9TaGFyZWQvU3lzdGVtR3JvdXAiKSA7OyBGSVhNRTxyZGFyOi8v
cHJvYmxlbS83MTEzNzM4OT4KLSAgICAobGl0ZXJhbCAiL3ByaXZhdGUvdmFyL3ByZWZlcmVuY2Vz
L2NvbS5hcHBsZS5uZXR3b3JrZC5wbGlzdCIpKQotCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICA7
OyBBbGxvdyBhY2Nlc3NlcyB0byB0aGUgU3ByaW5nYm9hcmQgdmlldyBzZXJ2aWNlcy4KLSAgICAo
Z2xvYmFsLW5hbWUKLSAgICAgICAgImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZp
Y2VzIgotICAgICAgICAiY29tLmFwcGxlLnJ1bm5pbmdib2FyZCIKLSAgICApCi0KLSAgICA7OyBB
bGxvdyBhY2Nlc3NlcyB0byBMb2NhbEF1dGhlbnRpY2F0aW9uIGFuZCBSZW1vdGVTZXJ2aWNlCi0g
ICAgKGdsb2JhbC1uYW1lCi0gICAgICAgICJjb20uYXBwbGUuQ29yZUF1dGhlbnRpY2F0aW9uLmRh
ZW1vbiIKLSAgICAgICAgImNvbS5hcHBsZS5yZW1vdGVkIgotICAgICAgICAiY29tLmFwcGxlLnRj
Y2QiCi0gICAgKQotCi0gICAgOzsgQWxsb3cgYWNjZXNzZXMgdG8gdGhlIFNFUAotICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLmN0a2QudG9rZW4tY2xpZW50IikKLQotICAgIDs7IEFsbG93IGFj
Y2Vzc2VzIHRvIE5GQwotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm5mY2QuaHdtYW5hZ2Vy
IikKLQotICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIHRoZSBLZXljaGFpbiBzZXJ2aWNlCi0gICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc2VjdXJpdHlkIikKLQotICAgIDs7IEFsbG93IGFjY2Vz
c2VzIHRvIEFBQSBhbmQgdGhlIG5ldHdvcmsKLSAgICAoZ2xvYmFsLW5hbWUKLSAgICAgICAgImNv
bS5hcHBsZS5BcHBTU08uc2VydmljZS14cGMiCi0gICAgICAgICJjb20uYXBwbGUubmVoZWxwZXIi
Ci0gICAgICAgICJjb20uYXBwbGUudXN5bXB0b21zZCIKLSAgICAgICAgImNvbS5hcHBsZS5kbnNz
ZC5zZXJ2aWNlIgotICAgICAgICAiY29tLmFwcGxlLnRydXN0ZCIKLSAgICAgICAgImNvbS5hcHBs
ZS5jb250YWluZXJtYW5hZ2VyZCIKLSAgICAgICAgImNvbS5hcHBsZS5tb2JpbGVnZXN0YWx0Lnhw
YyIKLSAgICApCi0KLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byB0aGUgQVNECi0gICAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUuQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmUuQXV0aGVudGljYXRp
b25TZXJ2aWNlc0FnZW50IikKLSkKLQotKGFsbG93IGlva2l0LW9wZW4KLSAgICA7OyBBbGxvdyBh
Y2Nlc3NlcyB0byBISUQKLSAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPSElETGliVXNl
ckNsaWVudCIpCi0KLSAgICA7OyBBbGxvdyBhY2Nlc3MgdG8gdGhlIGtleSBzdG9yZQotICAgIChp
b2tpdC11c2VyLWNsaWVudC1jbGFzcyAiQXBwbGVLZXlTdG9yZVVzZXJDbGllbnQiKQotKQotCi0o
YWxsb3cgbmV0d29yay1vdXRib3VuZAotICAgIChsaXRlcmFsICIvcHJpdmF0ZS92YXIvcnVuL21E
TlNSZXNwb25kZXIiKQotICAgIChyZW1vdGUgdGNwKQotICAgIChyZW1vdGUgdWRwKQotKQotCi0o
d2l0aC1maWx0ZXIgKHN5c3RlbS1hdHRyaWJ1dGUgYXBwbGUtaW50ZXJuYWwpCi0gICAgKGFsbG93
IG5ldHdvcmstb3V0Ym91bmQKLSAgICAgICAgKGxpdGVyYWwgIi9wcml2YXRlL3Zhci9ydW4vc3lz
bG9nIikpCi0pCi0KLSNpZiBFTkFCTEUoU1lTVEVNX0NPTlRFTlRfUEFUSF9TQU5EQk9YX1JVTEVT
KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9TeXN0ZW1Db250ZW50U2FuZGJveC1pb3MuZGVm
cz4KLQotKGFsbG93IGZpbGUtcmVhZCogZmlsZS10ZXN0LWV4aXN0ZW5jZQotICAgIChhcHBseSBz
dWJwYXRoIGZpbGUtcmVhZC1leGlzdGVuY2Utc2Vjb25kYXJ5LXBhdGhzKSkKLQotKGFsbG93IGZp
bGUtbWFwLWV4ZWN1dGFibGUKLSAgICAoYXBwbHkgc3VicGF0aCBzZWNvbmRhcnktZnJhbWV3b3Jr
LWFuZC1keWxpYi1wYXRocykpCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9j
ZXNzLWVudGl0bGVtZW50cy5zaAppbmRleCBhOTBmMTlmYTM5N2YyZWNkN2Y3NzE1YTAxNTc1MjA2
ZTIyNWRjMzMxLi5lN2ViZmEwNTg4OTBhMzQ4OTYzYzY2OTMyZDdkODYzY2M3OTIwOWMzIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2gKKysr
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoCkBAIC0xMTcs
MzIgKzExNyw2IEBAIGZ1bmN0aW9uIG1hY19wcm9jZXNzX2dwdV9lbnRpdGxlbWVudHMoKQogICAg
IGZpCiB9CiAKLWZ1bmN0aW9uIG1hY19wcm9jZXNzX3dlYmF1dGhuX2VudGl0bGVtZW50cygpCi17
Ci0gICAgaWYgW1sgIiR7V0tfVVNFX1JFU1RSSUNURURfRU5USVRMRU1FTlRTfSIgPT0gWUVTIF1d
Ci0gICAgdGhlbgotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5LmRl
dmljZS51c2IgYm9vbCBZRVMKLQotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNj
ZXNzLWdyb3VwcyBhcnJheQotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNz
LWdyb3VwczowIHN0cmluZyBjb20uYXBwbGUud2Via2l0LndlYmF1dGhuCi0gICAgICAgIHBsaXN0
YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nlc3MtZ3JvdXBzOjEgc3RyaW5nIGxvY2tkb3duLWlkZW50
aXRpZXMKLQotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5LmF0dGVz
dGF0aW9uLmFjY2VzcyBib29sIFlFUwotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxl
LmtleXN0b3JlLnNpay5hY2Nlc3MgYm9vbCBZRVMKLSAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNv
bS5hcHBsZS5wcml2YXRlLlJlbW90ZVNlcnZpY2VEaXNjb3ZlcnkuYWxsb3ctc2FuZGJveCBib29s
IFlFUwotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuUmVtb3RlU2Vy
dmljZURpc2NvdmVyeS5kZXZpY2UtYWRtaW4gYm9vbCBZRVMKLSAgICAgICAgcGxpc3RidWRkeSBB
ZGQgOmNvbS5hcHBsZS5hcHBhdHRlc3Quc3BpIGJvb2wgWUVTCi0gICAgICAgIHBsaXN0YnVkZHkg
QWRkIDpjb20uYXBwbGUubW9iaWxlYWN0aXZhdGlvbmQuc3BpIGJvb2wgWUVTCi0gICAgICAgIHBs
aXN0YnVkZHkgQWRkIDpjb20uYXBwbGUubW9iaWxlYWN0aXZhdGlvbmQuYnJpZGdlIGJvb2wgWUVT
Ci0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5zZWN1cml0eS5ib290
cG9saWN5IGJvb2wgWUVTCi0KLSAgICAgICAgaWYgKCggIiR7VEFSR0VUX01BQ19PU19YX1ZFUlNJ
T05fTUFKT1J9IiA+PSAxMTAwMDAgKSkKLSAgICAgICAgdGhlbgotICAgICAgICAgICAgcGxpc3Ri
dWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5jcy5qaXQtd3JpdGUtYWxsb3dsaXN0IGJvb2wg
WUVTCi0gICAgICAgIGZpCi0gICAgZmkKLX0KLQogZnVuY3Rpb24gbWFjX3Byb2Nlc3NfbmV0d29y
a19lbnRpdGxlbWVudHMoKQogewogICAgIGlmIFtbICIke1dLX1VTRV9SRVNUUklDVEVEX0VOVElU
TEVNRU5UU30iID09IFlFUyBdXQpAQCAtNDI1LDQ3ICszOTksNiBAQCBmdW5jdGlvbiBpb3NfZmFt
aWx5X3Byb2Nlc3NfZ3B1X2VudGl0bGVtZW50cygpCiAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5h
cHBsZS5wcml2YXRlLmF0dHJpYnV0aW9uLmV4cGxpY2l0bHktYXNzdW1lZC1pZGVudGl0aWVzOjA6
dHlwZSBzdHJpbmcgd2lsZGNhcmQKIH0KIAotZnVuY3Rpb24gaW9zX2ZhbWlseV9wcm9jZXNzX3dl
YmF1dGhuX2VudGl0bGVtZW50cygpCi17Ci0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5w
cml2YXRlLm1lbW9yeXN0YXR1cyBib29sIFlFUwotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBw
bGUucnVubmluZ2JvYXJkLmFzc2VydGlvbnMud2Via2l0IGJvb2wgWUVTCi0KLSAgICBwbGlzdGJ1
ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5LmRldmljZS51c2IgYm9vbCBZRVMKLQotICAgIHBs
aXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS50Y2MuYWxsb3cgYXJyYXkKLSAgICBwbGlz
dGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUudGNjLmFsbG93OjAgc3RyaW5nIGtUQ0NTZXJ2
aWNlTGlzdGVuRXZlbnQKLQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUuc2VjdXJpdHku
YXBwbGljYXRpb24tZ3JvdXBzIGFycmF5Ci0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5z
ZWN1cml0eS5hcHBsaWNhdGlvbi1ncm91cHM6MCBzdHJpbmcgZ3JvdXAuY29tLmFwcGxlLndlYmtp
dAotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5uZmNkLmh3bWFuYWdlciBib29sIFlF
UwotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUubmZjZC5zZXNzaW9uLnJlYWRlci5pbnRl
cm5hbCBib29sIFlFUwotICAgICMgRklYTUUocmRhcjovL3Byb2JsZW0vNzI2NDY2NjQpOiBGaW5k
IGEgYmV0dGVyIHdheSB0byBpbnZva2UgTmVhckZpZWxkIGluIHRoZSBiYWNrZ3JvdW5kLgotICAg
IHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUuaW50ZXJuYWwubmZjLmFsbG93LmJhY2tncm91bmRl
ZC5zZXNzaW9uIGJvb2wgWUVTCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5VSUtpdC52
ZW5kcy12aWV3LXNlcnZpY2VzIGJvb2wgWUVTCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hh
aW4tYWNjZXNzLWdyb3VwcyBhcnJheQotICAgIHBsaXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nl
c3MtZ3JvdXBzOjAgc3RyaW5nIGNvbS5hcHBsZS53ZWJraXQud2ViYXV0aG4KLSAgICBwbGlzdGJ1
ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwczoxIHN0cmluZyBsb2NrZG93bi1pZGVudGl0
aWVzCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuTW9iaWxlR2VzdGFs
dC5BbGxvd2VkUHJvdGVjdGVkS2V5cyBhcnJheQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBw
bGUucHJpdmF0ZS5Nb2JpbGVHZXN0YWx0LkFsbG93ZWRQcm90ZWN0ZWRLZXlzOjAgc3RyaW5nIFVu
aXF1ZUNoaXBJRAotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5Nb2JpbGVH
ZXN0YWx0LkFsbG93ZWRQcm90ZWN0ZWRLZXlzOjEgc3RyaW5nIFNlcmlhbE51bWJlcgotCi0gICAg
cGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5zeXN0ZW0tZ3JvdXBzIGFycmF5Ci0g
ICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5zeXN0ZW0tZ3JvdXBzOjAgc3Ry
aW5nIHN5c3RlbWdyb3VwLmNvbS5hcHBsZS5tb2JpbGVhY3RpdmF0aW9uZAotCi0gICAgcGxpc3Ri
dWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5hdHRlc3RhdGlvbi5hY2Nlc3MgYm9vbCBZRVMK
LSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLmtleXN0b3JlLnNpay5hY2Nlc3MgYm9vbCBZ
RVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLmFwcGF0dGVzdC5zcGkgYm9vbCBZRVMK
LSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLm1vYmlsZWFjdGl2YXRpb25kLnNwaSBib29s
IFlFUwotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zcHJpbmdib2FyZC5yZW1vdGUt
YWxlcnQgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLmZyb250Ym9hcmQu
bGF1bmNoYXBwbGljYXRpb25zIGJvb2wgWUVTCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFw
cGxlLnByaXZhdGUuc2FuZGJveC5wcm9maWxlIHN0cmluZyBjb20uYXBwbGUuV2ViS2l0LldlYkF1
dGhuCi19Ci0KIGZ1bmN0aW9uIGlvc19mYW1pbHlfcHJvY2Vzc19hZGF0dHJpYnV0aW9uZF9lbnRp
dGxlbWVudHMoKQogewogICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5zYW5k
Ym94LnByb2ZpbGUgc3RyaW5nIGNvbS5hcHBsZS5XZWJLaXQuYWRhdHRyaWJ1dGlvbmQKQEAgLTUy
MCw3ICs0NTMsNiBAQCB0aGVuCiAgICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9PSBjb20u
YXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuQ2FwdGl2ZVBvcnRhbCBdXTsgdGhlbiBtYWNfcHJvY2Vz
c193ZWJjb250ZW50X2NhcHRpdmVwb3J0YWxfZW50aXRsZW1lbnRzCiAgICAgZWxpZiBbWyAiJHtQ
Uk9EVUNUX05BTUV9IiA9PSBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcgXV07IHRoZW4gbWFj
X3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFN
RX0iID09IGNvbS5hcHBsZS5XZWJLaXQuR1BVIF1dOyB0aGVuIG1hY19wcm9jZXNzX2dwdV9lbnRp
dGxlbWVudHMKLSAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJL
aXQuV2ViQXV0aG4gXV07IHRoZW4gbWFjX3Byb2Nlc3Nfd2ViYXV0aG5fZW50aXRsZW1lbnRzCiAg
ICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9PSB3ZWJwdXNoZCBdXTsgdGhlbiBtYWNfcHJv
Y2Vzc193ZWJwdXNoZF9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0i
ICE9IGFkYXR0cmlidXRpb25kIF1dOyB0aGVuIGVjaG8gIlVuc3VwcG9ydGVkL3Vua25vd24gcHJv
ZHVjdDogJHtQUk9EVUNUX05BTUV9IgogICAgIGZpCkBAIC01NDQsNyArNDc2LDYgQEAgdGhlbgog
ICAgIGVsaWYgW1sgIiR7UFJPRFVDVF9OQU1FfSIgPT0gY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50LkNhcHRpdmVQb3J0YWwgXV07IHRoZW4gaW9zX2ZhbWlseV9wcm9jZXNzX3dlYmNvbnRlbnRf
Y2FwdGl2ZXBvcnRhbF9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0i
ID09IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZyBdXTsgdGhlbiBpb3NfZmFtaWx5X3Byb2Nl
c3NfbmV0d29ya19lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09
IGNvbS5hcHBsZS5XZWJLaXQuR1BVIF1dOyB0aGVuIGlvc19mYW1pbHlfcHJvY2Vzc19ncHVfZW50
aXRsZW1lbnRzCi0gICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9PSBjb20uYXBwbGUuV2Vi
S2l0LldlYkF1dGhuIF1dOyB0aGVuIGlvc19mYW1pbHlfcHJvY2Vzc193ZWJhdXRobl9lbnRpdGxl
bWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGFkYXR0cmlidXRpb25kIF1d
OyB0aGVuCiAgICAgICAgIGlvc19mYW1pbHlfcHJvY2Vzc19hZGF0dHJpYnV0aW9uZF9lbnRpdGxl
bWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IHdlYnB1c2hkIF1dOyB0aGVu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3Nl
ckNoZWNrcy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2Vy
Q2hlY2tzLm1tCmluZGV4IGFjMzNmNTNhN2EwNGI1MGVkN2M1YzMwYTgyNDUxMTJhZDIzNDVlODcu
LmU5NGZiMzYwMWJhYTUzMDE2ZjRjMjkxZmVhY2Y0ZjdlMDUwOWM5YTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBA
IC03MSw4ICs3MSw3IEBAIHN0YXRpYyBib29sIGlzSW5XZWJLaXRDaGlsZFByb2Nlc3MoKQogICAg
ICAgICBOU1N0cmluZyAqYnVuZGxlSWRlbnRpZmllciA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
YnVuZGxlSWRlbnRpZmllcl07CiAgICAgICAgIGlzSW5TdWJQcm9jZXNzID0gW2J1bmRsZUlkZW50
aWZpZXIgaGFzUHJlZml4OkAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50Il0KICAgICAgICAg
ICAgIHx8IFtidW5kbGVJZGVudGlmaWVyIGhhc1ByZWZpeDpAImNvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya2luZyJdCi0gICAgICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJj
b20uYXBwbGUuV2ViS2l0LkdQVSJdCi0gICAgICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmllciBo
YXNQcmVmaXg6QCJjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuIl07CisgICAgICAgICAgICB8fCBb
YnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2ViS2l0LkdQVSJdOwogICAg
IH0pOwogCiAgICAgcmV0dXJuIGlzSW5TdWJQcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZp
Y2VFbnRyeVBvaW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAppbmRleCBiYWEwMTI1NzA3
NzdhZWQyMTIxNWYxM2JiNDNmYjViYTEzOGY2OTU5Li5kNTc3ZTJlMTJhNTFmZmJlZDI2NGNkOGRj
Mjg3N2VjZTEwYjk3YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApAQCAtNDIsNyArNDIsNiBAQCBleHRlcm4gIkMiIE9T
X05PVEhST1cgdm9pZCB2b3VjaGVyX3JlcGxhY2VfZGVmYXVsdF92b3VjaGVyKHZvaWQpOwogI2Rl
ZmluZSBXRUJDT05URU5UX1NFUlZJQ0VfSU5JVElBTElaRVIgV2ViQ29udGVudFNlcnZpY2VJbml0
aWFsaXplcgogI2RlZmluZSBORVRXT1JLX1NFUlZJQ0VfSU5JVElBTElaRVIgTmV0d29ya1NlcnZp
Y2VJbml0aWFsaXplcgogI2RlZmluZSBHUFVfU0VSVklDRV9JTklUSUFMSVpFUiBHUFVTZXJ2aWNl
SW5pdGlhbGl6ZXIKLSNkZWZpbmUgV0VCQVVUSE5fU0VSVklDRV9JTklUSUFMSVpFUiBXZWJBdXRo
blNlcnZpY2VJbml0aWFsaXplcgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNl
L1hQQ1NlcnZpY2VNYWluLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCmluZGV4IGYxY2Y0OWQ4MzZi
ODhiNzQ5MjY3NDgzZDY4NGVkN2U5OTkxMmY2ZmUuLjBlN2NjZTcyMDk4M2QzYzBmOTZlZGRjNjNm
MGY5OTNlMzA1YmYxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9p
bnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBD
U2VydmljZU1haW4ubW0KQEAgLTEwNSw4ICsxMDUsNiBAQCBzdGF0aWMgdm9pZCBYUENTZXJ2aWNl
RXZlbnRIYW5kbGVyKHhwY19jb25uZWN0aW9uX3QgcGVlcikKICAgICAgICAgICAgICAgICBlbnRy
eVBvaW50RnVuY3Rpb25OYW1lID0gQ0ZTVFIoU1RSSU5HSVpFX1ZBTFVFX09GKE5FVFdPUktfU0VS
VklDRV9JTklUSUFMSVpFUikpOwogICAgICAgICAgICAgZWxzZSBpZiAoIXN0cmNtcChzZXJ2aWNl
TmFtZSwgImNvbS5hcHBsZS5XZWJLaXQuR1BVIikpCiAgICAgICAgICAgICAgICAgZW50cnlQb2lu
dEZ1bmN0aW9uTmFtZSA9IENGU1RSKFNUUklOR0laRV9WQUxVRV9PRihHUFVfU0VSVklDRV9JTklU
SUFMSVpFUikpOwotICAgICAgICAgICAgZWxzZSBpZiAoIXN0cmNtcChzZXJ2aWNlTmFtZSwgImNv
bS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4iKSkKLSAgICAgICAgICAgICAgICBlbnRyeVBvaW50RnVu
Y3Rpb25OYW1lID0gQ0ZTVFIoU1RSSU5HSVpFX1ZBTFVFX09GKFdFQkFVVEhOX1NFUlZJQ0VfSU5J
VElBTElaRVIpKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKElQQywgIlhQQ1NlcnZpY2VFdmVudEhhbmRsZXI6IFVuZXhwZWN0ZWQgJ3NlcnZp
Y2UtbmFtZSc6ICV7cHVibGljfXMiLCBzZXJ2aWNlTmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL0F1eGlsaWFyeVByb2Nl
c3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5t
bQppbmRleCA4ZjI1OWRhNmQ1MTAyNmNjZDYxODliYmVjYTQ4ZDUzZGI5ODFkYjViLi42N2E2YzAw
Nzc4MjRhMjhmZThmMmNlODQzYTgwMGFmMzJiM2ZkMjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQpAQCAtMjM3LDEwICsyMzcsNiBAQCBj
b25zdGV4cHIgY29uc3QgY2hhciogcHJvY2Vzc1N0b3JhZ2VDbGFzcyhXZWJDb3JlOjpBdXhpbGlh
cnlQcm9jZXNzVHlwZSB0eXBlKQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBjYXNlIFdl
YkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAgIHJldHVybiAiV2ViS2l0
R1BVU2FuZGJveCI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIGNhc2UgV2Vi
Q29yZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgotICAgICAgICByZXR1cm4gIldl
YktpdFdlYkF1dGhuU2FuZGJveCI7CiAjZW5kaWYKICAgICB9CiB9CkBAIC0zMDQsMTEgKzMwMCw2
IEBAIHN0YXRpYyBTdHJpbmcgc2FuZGJveERpcmVjdG9yeShXZWJDb3JlOjpBdXhpbGlhcnlQcm9j
ZXNzVHlwZSBwcm9jZXNzVHlwZSwgY29uc3QKICAgICBjYXNlIFdlYkNvcmU6OkF1eGlsaWFyeVBy
b2Nlc3NUeXBlOjpHUFU6CiAgICAgICAgIGRpcmVjdG9yeS5hcHBlbmQoIi9jb20uYXBwbGUuV2Vi
S2l0LkdQVS5TYW5kYm94Iik7CiAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0jaWYgRU5BQkxFKFdF
Ql9BVVRITikKLSAgICBjYXNlIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlOjpXZWJBdXRo
bjoKLSAgICAgICAgZGlyZWN0b3J5LmFwcGVuZCgiL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4u
U2FuZGJveCIpOwotICAgICAgICBicmVhazsKICNlbmRpZgogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5k
ZXggM2RkYjA2MzFlMTAyMTkxYzc3NTM5MGI1MjM3ZDc4YmMwZDAyMzIyZS4uYmU3MzZkMWNlZTlm
MzRjN2UwMjlhMmMxNWYxZWMzNjNmMmQxZmMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC02MTAsNyArNjEw
LDYgQEAgVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRT
ZXJ2aWNlLmNwcAogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuY3Bw
CiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
UHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25S
ZXF1ZXN0RGF0YS5jcHAKLVVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nl
c3NQcm94eS5jcHAKIAogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYkRldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVJlY29yZC5jcHAKQEAgLTYxOSwxMCArNjE4LDYgQEAgVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAogCiBVSVByb2Nlc3MvWFIvUGxh
dGZvcm1YUlN5c3RlbS5jcHAKIAotV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKLVdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuY3BwCi1XZWJB
dXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAotCiBXZWJQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKIFdlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAKQEAgLTgwNCw3ICs3
OTksNiBAQCBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyUHJvdmlkZXIuY3BwCiBX
ZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAKIAogV2Vi
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
Ci1XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCiAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNw
cAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGIzNGM1MGRkZTc0YmJlNDkwNDkyOTc2MDIzYTg3ZDc4
NzkwMGRjMmQuLjY4ZGM3NzE5MjExNDlkNjU3ZjU0NmNhMjczZjRlMzk1Mzc4NDBmYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYwNSwxMCArNjA1LDYgQEAgVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZpY2UubW0KIAogVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQogCi1XZWJBdXRoblByb2Nlc3MvRW50cnlQ
b2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW0KLVdlYkF1
dGhuUHJvY2Vzcy9pb3MvV2ViQXV0aG5Qcm9jZXNzSU9TLm1tCi1XZWJBdXRoblByb2Nlc3MvbWFj
L1dlYkF1dGhuUHJvY2Vzc01hYy5tbQotCiBXZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3MuY3BwCiAKIFdlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRl
eCAxYTczYTcwY2FjOTk2ODI2OWM0NjdhODg2N2Y4MjFjNGIwZGJhMmE0Li43NzIwNzMyMTY5NTM1
Y2MwMDg4YWQzNDM5MWU2NmRiZGRkY2ZkMjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtODM0LDE2ICs4MzQsNiBAQCBib29sIFdL
UHJlZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+d2ViQXV0
aGVudGljYXRpb25FbmFibGVkKCk7CiB9CiAKLXZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBi
b29sIGZsYWcpCi17Ci0gICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0V2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FbmFibGVkKGZsYWcpOwotfQotCi1ib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJB
dXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FbmFibGVkKCk7Ci19Ci0KIHZvaWQgV0tQcmVmZXJlbmNlc1NldEludmlzaWJsZU1l
ZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9v
bCBmbGFnKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEludmlzaWJsZUF1dG9w
bGF5Tm90UGVybWl0dGVkKCFmbGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4IDJjY2JjN2NmNWQzMDYx
NGI2YWVmYzc3MDEzNTkxZGEwOWQ0MmNjMDIuLmY5ZjRhMmEwZDVlM2NjMTg0Mjc0MzIxNzMwYjIz
YTFjOTZlZmVmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDk4LDEwICs0OTgsNiBAQCBXS19FWFBP
UlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RXhwb3NlU3BlYWtlcnNFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9u
RW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQ
cmVmZXJlbmNlc0dldFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsK
IAotLy8gRGVmYXVsdHMgdG8gZmFsc2UKLVdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRX
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFn
KTsKLVdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7Ci0KIC8vIERlZmF1bHRzIHRvIHRydWUuCiBXS19F
WFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SW52aXNpYmxlTWVkaWFBdXRvcGxheVBlcm1pdHRl
ZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJl
bmNlc0dldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1JlZik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNz
UG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tCmluZGV4IDkwNDM0NTVhNWY2MTg2ZjNmZjhhZjc5ODA3ZTE5NDI0ZWIwZGQ4ZmMuLjVlMTkw
ZDRmOGQxMDhmZDU2ZjA2YTgzNmM3NTRmNjEyZjA3ZjE3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0zOCw3ICszOCw2
IEBACiAjaW1wb3J0ICJXS09iamVjdC5oIgogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgiCi0jaW1wb3J0ICJXZWJBdXRo
blByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2ltcG9y
dCAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW1wb3J0ICJXZWJDb29raWVNYW5hZ2VyUHJveHku
aCIKQEAgLTE5OCwxNSArMTk3LDYgQEAgc3RhdGljIFJldGFpblB0cjxXS1Byb2Nlc3NQb29sPiYg
c2hhcmVkUHJvY2Vzc1Bvb2woKQogICAgIHJldHVybiBbdXJsIFVSTEJ5QXBwZW5kaW5nUGF0aENv
bXBvbmVudDpAIldlYnNpdGVEYXRhIiBpc0RpcmVjdG9yeTpZRVNdOwogfQogCi0rIChwaWRfdClf
d2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcgotewotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAg
cmV0dXJuIFdlYktpdDo6V2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLnByb2Nlc3NJ
ZGVudGlmaWVyKCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0KIC0gKHZvaWQp
X3NldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRl
Q2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4
IDBjYjFiZTIzODczMmQyMWM2NDkwZGE2MTJiNWFmMzljMzE1NDAwNTAuLmZhNjIxYjkxODEzYzFj
NjBhYTM0YzdjYzhjYWM3ZjBkZmVmMzU4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC03Miw3ICs3
Miw2IEBACiAKICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0aFVSTDoo
TlNVUkwgKiljb250YWluZXJVUkw7CiArIChOU1VSTCAqKV93ZWJzaXRlRGF0YVVSTEZvckNvbnRh
aW5lcldpdGhVUkw6KE5TVVJMICopY29udGFpbmVyVVJMIGJ1bmRsZUlkZW50aWZpZXJJZk5vdElu
Q29udGFpbmVyOihOU1N0cmluZyAqKWJ1bmRsZUlkZW50aWZpZXI7Ci0rIChwaWRfdClfd2ViQXV0
aG5Qcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCiArICh2b2lkKV9zZXRXZWJQcm9jZXNzQ291bnRMaW1pdDoodW5z
aWduZWQpbGltaXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nl
c3NQcm94eS5jcHAKaW5kZXggY2ZkZjRhMWU1NDlmM2UyYzE1MDcyMzAxYmNhYzQxMWJmYjVjY2Ri
OC4uYzI5ODY3YmVhZjJkZjljNzcxZDNiMmU5Yzc2MmIxYjExZWVkODA4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwCkBAIC04Niwx
MSArODYsNiBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQ
cm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdQogICAgICAgICB2YXJuYW1lID0gIkdQ
VV9QUk9DRVNTX0NNRF9QUkVGSVgiOwogICAgICAgICBicmVhazsKICNlbmRpZgotI2lmIEVOQUJM
RShXRUJfQVVUSE4pCi0gICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWJB
dXRobjoKLSAgICAgICAgdmFybmFtZSA9ICJXRUJBVVRITl9QUk9DRVNTX0NNRF9QUkVGSVgiOwot
ICAgICAgICBicmVhazsKLSNlbmRpZgogI2lmIEVOQUJMRShCVUJCTEVXUkFQX1NBTkRCT1gpCiAg
ICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpEQnVzUHJveHk6CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggODA4NTczMjNmOWQ4ZjljMzhmNjFh
OTIxYjdkZWI4NDRiODAwZjI3MC4uZmRkOGVmNjRhMTQ3Y2IxYTFhZmI5NTBhOTM4MzI3Yjk5MzJm
YWIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCkBAIC00Miw4ICs0Miw2IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5o
IgogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgotI2ltcG9ydCAiV2ViQXV0aG5Qcm9jZXNzTWVzc2Fn
ZXMuaCIKLSNpbXBvcnQgIldlYkF1dGhuUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJXZWJCYWNr
Rm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNp
bXBvcnQgIldlYlBhZ2VHcm91cC5oIgpAQCAtMTA4MywxMSArMTA4MSw2IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFpbiwg
Y29uc3QgU3RyaW5nCiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IGRhdGFTdG9y
ZS5uZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpCiAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Ok5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChk
b21haW4sIGtleSwgZW5jb2RlZFZhbHVlKSwgMCk7CiAgICAgfSk7Ci0gICAgCi0jaWYgRU5BQkxF
KFdFQl9BVVRITikKLSAgICBpZiAoYXV0byB3ZWJBdXRoblByb2Nlc3MgPSBXZWJBdXRoblByb2Nl
c3NQcm94eTo6c2luZ2xldG9uSWZDcmVhdGVkKCkpCi0gICAgICAgIHdlYkF1dGhuUHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViQXV0aG5Qcm9jZXNzOjpOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQo
ZG9tYWluLCBrZXksIGVuY29kZWRWYWx1ZSksIDApOwotI2VuZGlmCiAKICAgICBpZiAoa2V5ID09
IFdLQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkS2V5IHx8IGtleSA9PSBXZWJLaXRDYXB0aXZlUG9y
dGFsTW9kZUNoYW5nZWROb3RpZmljYXRpb25fTGVnYWN5KQogICAgICAgICBjYXB0aXZlUG9ydGFs
TW9kZVN0YXRlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCBkMTI1ODdlOGZlMzZlYWExY2ZlZDc5MjZjMGM4
ZjM4Nzg3ZTI3MjZlLi4wNDEyOTgzNThlMjRiNmM1MDcwMGQxNDZjOTIyOWM3Y2QwY2Y5NDc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaApAQCAtNzQsOSArNzQsNiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQog
ICAgICAgICBHUFUsCiAjZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgICAgICBXZWJB
dXRobiwKLSNlbmRpZgogI2lmIEVOQUJMRShCVUJCTEVXUkFQX1NBTkRCT1gpCiAgICAgICAgIERC
dXNQcm94eSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbQppbmRleCA0OWVhOWZm
M2UyNTcyNWFhOWYwMWVkZDZlODdmMGZlM2YzMzA1ZDlkLi5iZTEyMTU2ZmY5ZDQ5NmQ3OGFjZWJm
N2M5MDY1MmY4YmFkZWZlM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbQpAQCAtNzIs
MTAgKzcyLDYgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1lKGNvbnN0IFByb2Nlc3NM
YXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8KICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAg
IHJldHVybiAiY29tLmFwcGxlLldlYktpdC5HUFUiOwotI2VuZGlmCi0jaWYgRU5BQkxFKFdFQl9B
VVRITikKLSAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgot
ICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4iOwogI2VuZGlmCiAgICAg
fQogfQpAQCAtODgsMTQgKzg0LDEwIEBAIHN0YXRpYyBib29sIHNob3VsZExlYWtCb29zdChjb25z
dCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCiAgICAgLy8g
cmlnaHQgcHJpb3JpdGllcy4KICAgICByZXR1cm4gZmFsc2U7CiAjZWxzZQotICAgIC8vIE9uIE1h
YywgbGVhayBhIGJvb3N0IG9udG8gdGhlIE5ldHdvcmtQcm9jZXNzLCBHUFVQcm9jZXNzLCBhbmQg
V2ViQXV0aG5Qcm9jZXNzLgorICAgIC8vIE9uIE1hYywgbGVhayBhIGJvb3N0IG9udG8gdGhlIE5l
dHdvcmtQcm9jZXNzIGFuZCBHUFVQcm9jZXNzLgogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAg
ICBpZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nl
c3NUeXBlOjpHUFUpCiAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0jaWYgRU5BQkxFKFdF
Ql9BVVRITikKLSAgICBpZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1
bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWJBdXRobikKLSAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5k
aWYKICAgICByZXR1cm4gbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNo
ZXI6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXgg
NWNmOWFmNTcwOGU4YzFiMWYxN2JjNGRkY2EyMmVmYzk0Y2MzNGFhYi4uYTUyMWQwMTE5NmY1MGJi
NTYyODA3MDcwOGVmMGFhNjA3MTM0ZTNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuaApAQCAtNjgsMTQg
KzY4LDExIEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIG9wZXJhdGlvbiBpcyBndWFyYW50ZWVkIHRv
IGV4ZWN1dGUgYXN5bmNocm9ub3VzbHkuCiAgICAgdm9pZCBoYW5kbGVSZXF1ZXN0KGNvbnN0IFdl
YkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmKTsKIAotICAgIHZvaWQgc2V0V2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FbmFibGVkKGJvb2wgd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKSB7
IG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkID0gd2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FbmFibGVkOyB9Ci0KIHByb3RlY3RlZDoKICAgICBBdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0
OwogCiAgICAgT2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlci5n
ZXQoKTsgfQogICAgIGNvbnN0IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmIHJlcXVlc3RE
YXRhKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nUmVxdWVzdERhdGE7IH0KLSAgICBib29sIHdl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FbmFibGVkOyB9CiAKICAgICB2b2lkIHJlY2VpdmVSZXNwb25kKFJlc3Bv
bmQmJikgY29uc3Q7CiAKQEAgLTg1LDcgKzgyLDYgQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQdHI8
T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CiAgICAgV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSBt
X3BlbmRpbmdSZXF1ZXN0RGF0YTsKLSAgICBib29sIG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
bmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IGUzZTRmMzIxYTEwN2U4M2U4YmQ5ZTg2OGYx
ODI1MTI5NGFhY2I2NjguLmIzMTY3Mzc0ZjVmNGU4ZGE0YTdkZDQ2MGJhMDQ0N2QwMTk2NGFhN2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTIzNCwxMSArMjM0LDYg
QEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y2FuY2VsKCkKICAgICBjYW5jZWxSZXF1ZXN0
KCk7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmVuYWJsZU1vZGVybldlYkF1dGhl
bnRpY2F0aW9uKCkKLXsKLSAgICBtX21vZGUgPSBNb2RlOjpNb2Rlcm47Ci19Ci0KIHZvaWQgQXV0
aGVudGljYXRvck1hbmFnZXI6OmVuYWJsZU5hdGl2ZVN1cHBvcnQoKQogewogICAgIG1fbW9kZSA9
IE1vZGU6Ok5hdGl2ZTsKQEAgLTI2OCw3ICsyNjMsNiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5h
Z2VyOjphdXRoZW50aWNhdG9yQWRkZWQoUmVmPEF1dGhlbnRpY2F0b3I+JiYgYXV0aGVudGljYXRv
cgogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgYXV0aGVudGljYXRvci0+c2V0
T2JzZXJ2ZXIoKnRoaXMpOwogICAgIGF1dGhlbnRpY2F0b3ItPmhhbmRsZVJlcXVlc3QobV9wZW5k
aW5nUmVxdWVzdERhdGEpOwotICAgIGF1dGhlbnRpY2F0b3ItPnNldFdlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRW5hYmxlZChtX21vZGUgIT0gTW9kZTo6Q29tcGF0aWJsZSk7CiAgICAgYXV0byBhZGRS
ZXN1bHQgPSBtX2F1dGhlbnRpY2F0b3JzLmFkZChXVEZNb3ZlKGF1dGhlbnRpY2F0b3IpKTsKICAg
ICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggNTllMmExZjdhNWEwMTg0ZmQwNDllYTk2
MjdkMzUzYzQ2Mjg1YmY5Mi4uN2NkMWIyY2M5MDlhMzE2NzY3NDcwM2VhMmMzZTNlM2MxYzIwZjUz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC03MSw3ICs3MSw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNWaXJ0dWFsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAot
ICAgIHZvaWQgZW5hYmxlTW9kZXJuV2ViQXV0aGVudGljYXRpb24oKTsKICAgICB2b2lkIGVuYWJs
ZU5hdGl2ZVN1cHBvcnQoKTsKIAogcHJvdGVjdGVkOgpAQCAtODksNyArODgsNiBAQCBwcm90ZWN0
ZWQ6CiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgTW9kZSB7CiAgICAgICAgIENvbXBhdGlibGUs
Ci0gICAgICAgIE1vZGVybiwKICAgICAgICAgTmF0aXZlLAogICAgIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0
aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQppbmRleCBkMjExNjc5OTYxYzFlNTM4NDEzMWUw
ZTJkYmZjMGZhZDYzMzMwMmNiLi5mOWIwZGNmNzUyZjVkYjFjOGY5ZTZiYTgzMDcyODlmOTAxZjM1
ZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCkBAIC0yNDEs
NyArMjQxLDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAg
ICAgICAgfSkpIHsKICAgICAgICAgICAgIC8vIE9idGFpbiBjb25zZW50IHBlciBTdGVwIDMuMQog
ICAgICAgICAgICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
XSAoTG9jYWxBdXRoZW50aWNhdG9yUG9saWN5IHBvbGljeSkgewotICAgICAgICAgICAgICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjUxLDM0ICsyNTEsMTQgQEAgdm9pZCBMb2Nh
bEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICAgICAgICAgICAgICAgICAgd2Vh
a1RoaXMtPnJlY2VpdmVFeGNlcHRpb24oeyBOb3RBbGxvd2VkRXJyb3IsICJUaGlzIHJlcXVlc3Qg
aGFzIGJlZW4gY2FuY2VsbGVkIGJ5IHRoZSB1c2VyLiJfcyB9KTsKICAgICAgICAgICAgIH07CiAg
ICAgICAgICAgICAvLyBTaW1pbGFyIHRvIGJlbG93LCBjb25zZW50IGhhcyBhbHJlYWR5IGJlZW4g
Z2l2ZW4uCi0gICAgICAgICAgICBpZiAod2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCkp
Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soTG9jYWxBdXRoZW50aWNhdG9yUG9saWN5OjpBbGxv
dyk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb2JzZXJ2ZXIoKS0+ZGVjaWRl
UG9saWN5Rm9yTG9jYWxBdXRoZW50aWNhdG9yKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAg
ICAgIG9ic2VydmVyKCktPmRlY2lkZVBvbGljeUZvckxvY2FsQXV0aGVudGljYXRvcihXVEZNb3Zl
KGNhbGxiYWNrKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICAvLyBTdGVwIDYuCi0gICAgLy8gR2V0IHVzZXIgY29uc2VudC4KLSAgICBpZiAod2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FbmFibGVkKCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0g
dGhpcy0+b2JzZXJ2ZXIoKSkgewotICAgICAgICAgICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoTEFDb250ZXh0ICpjb250ZXh0KSB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXdl
YWtUaGlzKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICB3
ZWFrVGhpcy0+Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVjZWl2aW5nTEFDb250ZXh0KGNv
bnRleHQpOwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIG9ic2VydmVyLT5yZXF1ZXN0TEFD
b250ZXh0Rm9yVXNlclZlcmlmaWNhdGlvbihXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIH0K
LQotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gdGhp
cy0+b2JzZXJ2ZXIoKSkgewogICAgICAgICBhdXRvIGNhbGxiYWNrID0gW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH1dIChMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3kgcG9saWN5KSB7Ci0gICAg
ICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTU0NCw3ICs1MjQsNyBAQCB2b2lkIExvY2FsQXV0
aGVudGljYXRvcjo6Z2V0QXNzZXJ0aW9uKCkKIAogICAgIGlmIChhdXRvKiBvYnNlcnZlciA9IHRo
aXMtPm9ic2VydmVyKCkpIHsKICAgICAgICAgYXV0byBjYWxsYmFjayA9IFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKiBy
ZXNwb25zZSkgewotICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01NjQsMjQgKzU0NCw2
IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVz
cG9uc2VTZWxlY3RlZChSZWY8V2ViQ29yZTo6CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6
OlJlcXVlc3RSZWNlaXZlZCk7CiAgICAgbV9zdGF0ZSA9IFN0YXRlOjpSZXNwb25zZVNlbGVjdGVk
OwogCi0gICAgaWYgKHdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgpKSB7Ci0gICAgICAg
IGF1dG8gYWNjZXNzQ29udHJvbFJlZiA9IHJlc3BvbnNlLT5hY2Nlc3NDb250cm9sKCk7Ci0gICAg
ICAgIExBQ29udGV4dCAqY29udGV4dCA9IHJlc3BvbnNlLT5sYUNvbnRleHQoKTsKLSAgICAgICAg
YXV0byBjYWxsYmFjayA9IFsKLSAgICAgICAgICAgIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH0sCi0gICAgICAgICAgICByZXNwb25zZSA9IFdURk1vdmUocmVzcG9uc2UpCi0gICAgICAgIF0g
KExvY2FsQ29ubmVjdGlvbjo6VXNlclZlcmlmaWNhdGlvbiB2ZXJpZmljYXRpb24pIG11dGFibGUg
ewotICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICB3ZWFr
VGhpcy0+Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRpb24oV1RGTW92ZShy
ZXNwb25zZSksIHZlcmlmaWNhdGlvbiwgcmVzcG9uc2UtPmxhQ29udGV4dCgpKTsKLSAgICAgICAg
fTsKLQotICAgICAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIoYWNjZXNzQ29udHJvbFJlZiwg
Y29udGV4dCwgV1RGTW92ZShjYWxsYmFjaykpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAg
ICAgYXV0byYgcmVxdWVzdE9wdGlvbnMgPSBzdGQ6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucyk7CiAKICAgICBhdXRvIGFjY2Vzc0Nv
bnRyb2xSZWYgPSByZXNwb25zZS0+YWNjZXNzQ29udHJvbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Q
cm9jZXNzUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTBiNDhiYmEy
ZTc5ZjMxMGExOTcxNGY0ZGQ5NWE2NTM4NWYzZWFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5NyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkF1
dGhuUHJvY2Vzc1Byb3h5LmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5jbHVkZSAi
TG9nZ2luZy5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCi0j
aW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAi
V2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIK
LSNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMu
aCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eS5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KLSNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jaW5jbHVkZSA8d3RmL3Nw
aS9kYXJ3aW4vWFBDU1BJLmg+Ci0jZW5kaWYKLQotI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFzc2Vy
dGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpKQot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1zdGF0aWMg
UmVmUHRyPFdlYkF1dGhuUHJvY2Vzc1Byb3h5PiYgc2hhcmVkUHJvY2VzcygpCi17Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJlZlB0cjxXZWJBdXRoblByb2Nlc3NQcm94eT4+IHByb2Nlc3M7
Ci0gICAgcmV0dXJuIHByb2Nlc3MuZ2V0KCk7Ci19Ci0KLVdlYkF1dGhuUHJvY2Vzc1Byb3h5JiBX
ZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6
aXNNYWluKCkpOwotCi0gICAgYXV0byBjcmVhdGVBbmRJbml0aWFsaXplTmV3UHJvY2VzcyA9IFtd
IHsKLSAgICAgICAgYXV0byB3ZWJBdXRoblByb2Nlc3MgPSBhZG9wdFJlZigqbmV3IFdlYkF1dGhu
UHJvY2Vzc1Byb3h5KTsKLSAgICAgICAgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
IHBhcmFtZXRlcnM7Ci0gICAgICAgIHBhcmFtZXRlcnMuYXV4aWxpYXJ5UHJvY2Vzc1BhcmFtZXRl
cnMgPSB3ZWJBdXRoblByb2Nlc3MtPmF1eGlsaWFyeVByb2Nlc3NQYXJhbWV0ZXJzKCk7Ci0gICAg
ICAgIC8vIEluaXRpYWxpemUgdGhlIFdlYkF1dGhuIHByb2Nlc3MuCi0gICAgICAgIHdlYkF1dGhu
UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQXV0aG5Qcm9jZXNzOjpJbml0aWFsaXplV2ViQXV0
aG5Qcm9jZXNzKHBhcmFtZXRlcnMpLCAwKTsKLSAgICAgICAgd2ViQXV0aG5Qcm9jZXNzLT51cGRh
dGVQcm9jZXNzQXNzZXJ0aW9uKCk7Ci0gICAgICAgIHJldHVybiB3ZWJBdXRoblByb2Nlc3M7Ci0g
ICAgfTsKLQotICAgIGlmICghc2hhcmVkUHJvY2VzcygpKQotICAgICAgICBzaGFyZWRQcm9jZXNz
KCkgPSBjcmVhdGVBbmRJbml0aWFsaXplTmV3UHJvY2VzcygpOwotICAgIHJldHVybiAqc2hhcmVk
UHJvY2VzcygpOwotfQotCi1XZWJBdXRoblByb2Nlc3NQcm94eSogV2ViQXV0aG5Qcm9jZXNzUHJv
eHk6OnNpbmdsZXRvbklmQ3JlYXRlZCgpCi17Ci0gICAgcmV0dXJuIHNoYXJlZFByb2Nlc3MoKS5n
ZXQoKTsKLX0KLQotV2ViQXV0aG5Qcm9jZXNzUHJveHk6OldlYkF1dGhuUHJvY2Vzc1Byb3h5KCkK
LSAgICA6IEF1eGlsaWFyeVByb2Nlc3NQcm94eSgpCi0gICAgLCBtX3Rocm90dGxlcigqdGhpcywg
ZmFsc2UpCi17Ci0gICAgY29ubmVjdCgpOwotfQotCi1XZWJBdXRoblByb2Nlc3NQcm94eTo6fldl
YkF1dGhuUHJvY2Vzc1Byb3h5KCkgPSBkZWZhdWx0OwotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc1By
b3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1
bmNoT3B0aW9ucykKLXsKLSAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xh
dW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViQXV0aG47Ci0gICAgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOwotfQotCi12b2lkIFdlYkF1dGhuUHJv
Y2Vzc1Byb3h5Ojpjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikKLXsKLX0KLQot
dm9pZCBXZWJBdXRoblByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgQVNTRVJUX1VOVVNFRChjb25uZWN0aW9uLCB0aGlz
LT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vz
c1Byb3h5OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2Vi
UHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKLXsKLSAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViQXV0aG5Qcm9jZXNzUHJveHkgaXMgdGFraW5nIGEg
YmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSBhIHdlYiBwcm9jZXNzIGlzIHJlcXVlc3Rpbmcg
YSBjb25uZWN0aW9uIiwgdGhpcyk7Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJBdXRoblByb2Nlc3M6OkNyZWF0ZVdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyB7IHdl
YlByb2Nlc3NQcm94eS5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSB9LCBbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0oYXV0byYmIGlkZW50
aWZpZXIpIG11dGFibGUgewotICAgICAgICBpZiAoIXdlYWtUaGlzKSB7Ci0gICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiV2ViQXV0aG5Qcm9jZXNzUHJveHk6OmdldFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb246IFdlYkF1dGhuUHJvY2Vzc1Byb3h5IGRlYWxsb2NhdGVkIGR1
cmluZyBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQiKTsKLSAgICAgICAgICAgIHJldHVybiByZXBs
eSh7IH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFpZGVudGlmaWVyKSB7Ci0gICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiV2ViQXV0aG5Qcm9jZXNzUHJveHk6Omdl
dFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246IGNvbm5lY3Rpb24gaWRlbnRpZmllciBpcyBlbXB0
eSIpOwotICAgICAgICAgICAgcmV0dXJuIHJlcGx5KHsgfSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBNRVNTQUdFX0NIRUNLKE1BQ0hfUE9SVF9WQUxJRChpZGVudGlmaWVyLT5wb3J0KCkpKTsKLSAg
ICAgICAgcmVwbHkoV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8geyBJUEM6OkF0dGFjaG1l
bnQgeyBpZGVudGlmaWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EIH0gfSk7Ci0g
ICAgfSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5Ojp3ZWJBdXRoblBy
b2Nlc3NDcmFzaGVkKCkKLXsKLSAgICBzaGFyZWRQcm9jZXNzKCkgPSBudWxscHRyOwotfQotCi12
b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQotewot
ICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgotICAgIHdlYkF1dGhuUHJv
Y2Vzc0NyYXNoZWQoKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdl
TmFtZSBtZXNzYWdlTmFtZSkKLXsKLSAgICBsb2dJbnZhbGlkTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlTmFtZSk7Ci0KLSAgICBXZWJQcm9jZXNzUG9vbDo6ZGlkUmVjZWl2ZUludmFsaWRNZXNz
YWdlKG1lc3NhZ2VOYW1lKTsKLQotICAgIC8vIFRlcm1pbmF0ZSB0aGUgV2ViQXV0aG4gcHJvY2Vz
cy4KLSAgICB0ZXJtaW5hdGUoKTsKLQotICAgIC8vIFNpbmNlIHdlJ3ZlIGludmFsaWRhdGVkIHRo
ZSBjb25uZWN0aW9uIHdlJ2xsIG5ldmVyIGdldCBhIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ojpk
aWRDbG9zZQotICAgIC8vIGNhbGxiYWNrIHNvIHdlJ2xsIGV4cGxpY2l0bHkgY2FsbCBpdCBoZXJl
IGluc3RlYWQuCi0gICAgZGlkQ2xvc2UoY29ubmVjdGlvbik7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Q
cm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVy
LCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCi17Ci0g
ICAgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcobGF1bmNoZXIsIGNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKLQotICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVudGlm
aWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpIHsKLSAgICAgICAgd2ViQXV0aG5Qcm9j
ZXNzQ3Jhc2hlZCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBpZiAoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uID0gdGhpcy0+Y29u
bmVjdGlvbigpLT54cGNDb25uZWN0aW9uKCkpCi0gICAgICAgIG1fdGhyb3R0bGVyLmRpZENvbm5l
Y3RUb1Byb2Nlc3MoeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZChjb25uZWN0aW9uKSk7Ci0jZW5kaWYK
LQotICAgIGJlZ2luUmVzcG9uc2l2ZW5lc3NDaGVja3MoKTsKLX0KLQotdm9pZCBXZWJBdXRoblBy
b2Nlc3NQcm94eTo6dXBkYXRlUHJvY2Vzc0Fzc2VydGlvbigpCi17Ci0gICAgYm9vbCBoYXNBbnlG
b3JlZ3JvdW5kV2ViUHJvY2Vzc2VzID0gZmFsc2U7Ci0gICAgYm9vbCBoYXNBbnlCYWNrZ3JvdW5k
V2ViUHJvY2Vzc2VzID0gZmFsc2U7Ci0KLSAgICBmb3IgKGF1dG8mIHByb2Nlc3NQb29sIDogV2Vi
UHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKSB7Ci0gICAgICAgIGhhc0FueUZvcmVncm91
bmRXZWJQcm9jZXNzZXMgfD0gcHJvY2Vzc1Bvb2wtPmhhc0ZvcmVncm91bmRXZWJQcm9jZXNzZXMo
KTsKLSAgICAgICAgaGFzQW55QmFja2dyb3VuZFdlYlByb2Nlc3NlcyB8PSBwcm9jZXNzUG9vbC0+
aGFzQmFja2dyb3VuZFdlYlByb2Nlc3NlcygpOwotICAgIH0KLQotICAgIGlmIChoYXNBbnlGb3Jl
Z3JvdW5kV2ViUHJvY2Vzc2VzKSB7Ci0gICAgICAgIGlmICghUHJvY2Vzc1Rocm90dGxlcjo6aXNW
YWxpZEZvcmVncm91bmRBY3Rpdml0eShtX2FjdGl2aXR5RnJvbVdlYlByb2Nlc3NlcykpIHsKLSAg
ICAgICAgICAgIG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzID0gdGhyb3R0bGVyKCkuZm9yZWdy
b3VuZEFjdGl2aXR5KCJXZWJBdXRobiBmb3IgZm9yZWdyb3VuZCB2aWV3KHMpIl9zKTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChoYXNBbnlCYWNrZ3JvdW5kV2Vi
UHJvY2Vzc2VzKSB7Ci0gICAgICAgIGlmICghUHJvY2Vzc1Rocm90dGxlcjo6aXNWYWxpZEJhY2tn
cm91bmRBY3Rpdml0eShtX2FjdGl2aXR5RnJvbVdlYlByb2Nlc3NlcykpIHsKLSAgICAgICAgICAg
IG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzID0gdGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2
aXR5KCJXZWJBdXRobiBmb3IgYmFja2dyb3VuZCB2aWV3KHMpIl9zKTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzID0gbnVs
bHB0cjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSN1bmRlZiBNRVNTQUdFX0NIRUNL
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1By
b3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExYmYwNDcxN2E2NTIwZmZhNGE2
N2UzNzg2MGRjYWJiZjYyZTU2NTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2Vi
QXV0aG5Qcm9jZXNzUHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRl
ICJBdXhpbGlhcnlQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIK
LSNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCi0jaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxl
ckNsaWVudC5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKLSNpbmNsdWRl
ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKLSNpbmNsdWRlIDxtZW1vcnk+Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQcm9jZXNzUHJveHk7Ci1jbGFzcyBXZWJz
aXRlRGF0YVN0b3JlOwotc3RydWN0IFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsK
LQotY2xhc3MgV2ViQXV0aG5Qcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5UHJv
Y2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewotICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkF1dGhuUHJvY2Vz
c1Byb3h5KTsKLSAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJveWVkPFdlYkF1dGhuUHJvY2Vzc1By
b3h5PjsKLXB1YmxpYzoKLSAgICBzdGF0aWMgV2ViQXV0aG5Qcm9jZXNzUHJveHkmIHNpbmdsZXRv
bigpOwotICAgIHN0YXRpYyBXZWJBdXRoblByb2Nlc3NQcm94eSogc2luZ2xldG9uSWZDcmVhdGVk
KCk7Ci0KLSAgICB2b2lkIGdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1By
b3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbkRlbGF5ZWRSZXBseSYmKTsKLQotICAgIFByb2Nlc3NUaHJvdHRsZXImIHRocm90dGxlcigp
IGZpbmFsIHsgcmV0dXJuIG1fdGhyb3R0bGVyOyB9Ci0gICAgdm9pZCB1cGRhdGVQcm9jZXNzQXNz
ZXJ0aW9uKCk7Ci0KLSAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50Ci0gICAgdm9pZCBzZW5k
UHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFsIHsgfQotICAgIEFTQ0lJTGl0ZXJh
bCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYkF1dGhuUHJvY2VzcyJfczsg
fQotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkF1dGhuUHJvY2Vzc1Byb3h5KCk7Ci0gICAg
fldlYkF1dGhuUHJvY2Vzc1Byb3h5KCk7Ci0KLSAgICAvLyBBdXhpbGlhcnlQcm9jZXNzUHJveHkK
LSAgICBBU0NJSUxpdGVyYWwgcHJvY2Vzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2Vi
QXV0aG4iX3M7IH0KLQotICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6
OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIHByb2Nlc3NXaWxsU2h1dERvd24o
SVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHdlYkF1dGhuUHJvY2Vzc0Ny
YXNoZWQoKTsKLQotICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKLSAgICB2b2lkIHNlbmRQ
cmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsIHsgY29tcGxldGlvbkhhbmRsZXIoKTsg
fQotCi0gICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKLSAgICB2b2lkIGRpZEZpbmlzaExh
dW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92
ZXJyaWRlOwotCi0gICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZUludmFs
aWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUpIG92ZXJyaWRlOwot
Ci0gICAgUHJvY2Vzc1Rocm90dGxlciBtX3Rocm90dGxlcjsKLSAgICBQcm9jZXNzVGhyb3R0bGVy
OjpBY3Rpdml0eVZhcmlhbnQgbV9hY3Rpdml0eUZyb21XZWJQcm9jZXNzZXM7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBB
dXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCmluZGV4IDE3OGZhZjg2OGVkYjY5ZWQ5ZjA2
NWRlMTI1MDc2NzJjYTg3Zjc4MGMuLjQ2OWUwMzNiNzFmNDRlY2JjMjAzMGFkNmZlOGY3YmZiM2Ex
NDc4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwCkBAIC0yMTAs
NyArMjEwLDcgQEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVHZXROZXh0QXNzZXJ0
aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW4KICAgICBpZiAoIW1fcmVtYWluaW5n
QXNzZXJ0aW9uUmVzcG9uc2VzKSB7CiAgICAgICAgIGlmIChhdXRvKiBvYnNlcnZlciA9IHRoaXMt
Pm9ic2VydmVyKCkpIHsKICAgICAgICAgICAgIG9ic2VydmVyLT5zZWxlY3RBc3NlcnRpb25SZXNw
b25zZShWZWN0b3IgeyBtX2Fzc2VydGlvblJlc3BvbnNlcyB9LCBXZWJBdXRoZW50aWNhdGlvblNv
dXJjZTo6RXh0ZXJuYWwsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoQXV0
aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlKiByZXNwb25zZSkgewotICAgICAgICAgICAgICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9
IG1fYXNzZXJ0aW9uUmVzcG9uc2VzLmZpbmRJZihbZXhwZWN0ZWRSZXNwb25zZSA9IHJlc3BvbnNl
XSAoYXV0byYgcmVzcG9uc2UpIHsKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIEN0YXBBdXRoZW50
aWNhdG9yOjpjb250aW51ZVJlcXVlc3RQaW5BZnRlckdldEtleUFncmVlbWVudChWZWN0b3I8dWlu
dDhfdD4mJgogCiAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gdGhpcy0+b2JzZXJ2ZXIoKSkgewog
ICAgICAgICBvYnNlcnZlci0+cmVxdWVzdFBpbihyZXRyaWVzLCBbd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwga2V5QWdyZWVtZW50ID0gV1RGTW92ZSgqa2V5QWdyZWVtZW50KV0gKGNvbnN0
IFN0cmluZyYgcGluKSB7Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwor
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB3
ZWFrVGhpcy0+Y29udGludWVHZXRQaW5Ub2tlbkFmdGVyUmVxdWVzdFBpbihwaW4sIGtleUFncmVl
bWVudC5wZWVyS2V5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAppbmRleCA3N2M0YmU3OTQzZDFiMDI0MjJlNzY3NjI3OGMyMGY4YzA5NTNiMDQ5Li4zMDhjZjU0
YTVmNWMyMzc5MTg5NDdjOTEzMjAyMWIxNDEyMGY4OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xMTYsMTEgKzExNiw2IEBACiAjaW5jbHVkZSAi
R1BVUHJvY2Vzc1Byb3h5LmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0jaW5j
bHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCIKLSNpbmNsdWRlICJXZWJBdXRo
blByb2Nlc3NQcm94eS5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikK
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3IuaD4KICNlbmRpZgpAQCAt
NTIxLDIwICs1MTYsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgRwogfQogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQotdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0V2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCi17Ci0gICAgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLmdl
dFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24od2ViUHJvY2Vzc1Byb3h5LCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2ViUHJvY2Vzc1Byb3h5ID0gV2Vha1B0ciB7IHdlYlBy
b2Nlc3NQcm94eSB9LCByZXBseSA9IFdURk1vdmUocmVwbHkpXSAoYXV0byYgY29ubmVjdGlvbklu
Zm8pIG11dGFibGUgewotICAgICAgICBpZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRl
bnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSAmJiB3ZWJQcm9jZXNz
UHJveHkgJiYgd2Vha1RoaXMpKSB7Ci0gICAgICAgICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzLCAiZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogRmFpbGVk
IGZpcnN0IGF0dGVtcHQsIHJldHJ5aW5nIik7Ci0gICAgICAgICAgICBXZWJBdXRoblByb2Nlc3NQ
cm94eTo6c2luZ2xldG9uKCkuZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vz
c1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LSAgICAgICAgcmVwbHkoY29ubmVjdGlvbkluZm8pOwotICAgIH0pOwotfQotI2VuZGlmCi0KIGJv
b2wgV2ViUHJvY2Vzc1Bvb2w6OnNfdXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZh
bHNlOwogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hSZW1vdGVXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoUmVtb3RlV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBS
ZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyPiByZXF1ZXN0aW5nUHJvY2Vzc0lkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQ
YWdlSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAppbmRleCA0MDlhNzliNTFiNzA1MGQxMDhiZTEzMTBmZTJmMGEyYzBmNzU1
N2U3Li5iODI2YTdjYmY2ZjRhMDg3ZTM5Yjc4OTJmYmM4MDJjNWI0OGFkNjlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM2OCwxMSArMzY4LDYgQEAgcHVi
bGljOgogICAgIEdQVVByb2Nlc3NQcm94eSYgZW5zdXJlR1BVUHJvY2VzcygpOwogICAgIEdQVVBy
b2Nlc3NQcm94eSogZ3B1UHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fZ3B1UHJvY2Vzcy5nZXQo
KTsgfQogI2VuZGlmCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIHZvaWQgZ2V0V2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwotI2Vu
ZGlmCi0KICAgICAvLyBOZXR3b3JrIFByb2Nlc3MgTWFuYWdlbWVudAogICAgIHZvaWQgbmV0d29y
a1Byb2Nlc3NEaWRUZXJtaW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94eSYsIE5ldHdvcmtQcm9jZXNz
UHJveHk6OlRlcm1pbmF0aW9uUmVhc29uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMTcwNDUwYTk1YmE2ZThhNDllZTVmYzgxZTExYjU1MDkx
YmI5NGI2Mi4uODk2NjlkMTExNzI4MWM4NTViZDVkZTgxNWMwZDczZjM5MjA5YmMyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC04NDIsMTQgKzg0
Miw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpncHVQcm9jZXNzRXhpdGVkKEdQVVByb2Nlc3NU
ZXJtaW5hdGlvblJlYXNvbiByZWFzb24pCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJfQVVU
SE4pCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKLXsKLSAgICBNRVNTQUdFX0NIRUNLX0NPTVBMRVRJT04obWVz
c2FnZVNvdXJjZUlzVmFsaWRXZWJDb250ZW50UHJvY2VzcygpLCByZXBseSh7IH0pKTsKLSAgICBt
X3Byb2Nlc3NQb29sLT5nZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3Zl
KHJlcGx5KSk7Ci19Ci0jZW5kaWYKLQogI2lmICFQTEFURk9STShNQUMpCiBib29sIFdlYlByb2Nl
c3NQcm94eTo6c2hvdWxkQWxsb3dOb25WYWxpZEluamVjdGVkQ29kZSgpIGNvbnN0CiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDA1NTVkM2Q1NzYzNDVi
YjI0OTYxMDg1OGQ2OTQ2NmU0OTE1OWYxYWMuLmI4NTJlMGI0YzVlMmYwODc0N2I3MWQ2ZTVhMDM2
OWFkM2I0N2Q5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CkBAIC00ODEsMTAgKzQ4MSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRHUFVQcm9jZXNzQ29u
bmVjdGlvbihHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMmJiwgTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7CiAjZW5k
aWYKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgdm9pZCBnZXRXZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFdlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb25EZWxheWVkUmVwbHkmJik7Ci0jZW5kaWYKLQogICAgIGJvb2wgc2hvdWxkQWxsb3dO
b25WYWxpZEluamVjdGVkQ29kZSgpIGNvbnN0OwogCiAgICAgc3RhdGljIGNvbnN0IE1lbW9yeUNv
bXBhY3RMb29rdXBPbmx5Um9iaW5Ib29kSGFzaFNldDxTdHJpbmc+JiBwbGF0Zm9ybVBhdGhzV2l0
aEFzc3VtZWRSZWFkQWNjZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggODhhMGY4MjY1NDZlYTM0MzE5MzY0ODlm
ZjIwZWZlM2RhYjlmZTk4My4uMTNjY2VkY2M5MTkwN2M1YmQzNjNmYjRjYmZkYzBlNzgxYmUwOGI5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMzcsMTAgKzM3LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBHZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihzdHJ1Y3QgV2Vi
S2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKHN0cnVj
dCBXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5mbyBjb25uZWN0aW9uSW5mbykgU3luY2hy
b25vdXMKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBHZXRXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uKCkgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvIGNvbm5lY3Rpb25JbmZvKSBTeW5jaHJvbm91cwotI2VuZGlmCi0KICAgICBTZXRJ
c0hvbGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogCiAgICAgRGlk
RXhjZWVkQWN0aXZlTWVtb3J5TGltaXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJB
dXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9J
bmZvLU9TWC5wbGlzdCBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQv
Q29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1PU1gucGxpc3QKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1YWFlM2MzNWY3MWFjOGZlNzc3NmMxMmRjNWQzOTg3YTRi
N2RmNDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dl
YkF1dGhuU2VydmljZS9JbmZvLU9TWC5wbGlzdAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxp
c3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxl
LmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgot
PGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7QlVO
RExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDIyIEFwcGxlIEluYy48L3N0cmluZz4KLQk8
a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tleT4KLQk8c3RyaW5nPkVuZ2xpc2g8L3N0
cmluZz4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRB
QkxFX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KLQk8c3Ry
aW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxl
SW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5
PkNGQnVuZGxlTmFtZTwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0J
PGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+Ci0JPHN0cmluZz5YUEMhPC9zdHJpbmc+Ci0J
PGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgotCTxzdHJpbmc+JHtTSE9SVF9W
RVJTSU9OX1NUUklOR308L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+Ci0J
PHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3Ry
aW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5h
YmxlZDwva2V5PgotCTx0cnVlLz4KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8c3Ry
aW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KLQk8a2V5PkxTVUlFbGVtZW50PC9rZXk+Ci0JPHRy
dWUvPgotCTxrZXk+WFBDU2VydmljZTwva2V5PgotCTxkaWN0PgotCQk8a2V5PlNlcnZpY2VUeXBl
PC9rZXk+Ci0JCTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4KLQkJPGtleT5Kb2luRXhpc3Rp
bmdTZXNzaW9uPC9rZXk+Ci0JCTx0cnVlLz4KLQkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgotCQk8
c3RyaW5nPk5TUnVuTG9vcDwvc3RyaW5nPgotCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5
PgotCQk8dHJ1ZS8+Ci0JPC9kaWN0PgotPC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9X
ZWJBdXRoblNlcnZpY2UvSW5mby1pT1MucGxpc3QgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJv
Y2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8taU9T
LnBsaXN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Zjg2NWViMjI4ZjVmNzI1ZWZh
MDA4ZmZiOTQyYTZkODEzMzQxMDNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29j
b2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1pT1MucGxpc3QKKysrIC9kZXYvbnVs
bApAQCAtMSw0NSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/
PgotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAi
aHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3Qg
dmVyc2lvbj0iMS4wIj4KLTxkaWN0PgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+
Ci0JPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAyMiBBcHBsZSBJ
bmMuPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+Ci0JPHN0
cmluZz5FbmdsaXNoPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8
c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJZGVudGlm
aWVyPC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfQlVORExFX0lERU5USUZJRVJ9PC9zdHJpbmc+
Ci0JPGtleT5DRkJ1bmRsZUluZm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgotCTxzdHJpbmc+Ni4w
PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZU5hbWU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9O
QU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgotCTxzdHJpbmc+
WFBDITwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KLQk8
c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9TVFJJTkd9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNp
Z25hdHVyZTwva2V5PgotCTxzdHJpbmc+Pz8/Pzwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVWZXJz
aW9uPC9rZXk+Ci0JPHN0cmluZz4ke0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5nPgotCTxrZXk+TFNG
aWxlUXVhcmFudGluZUVuYWJsZWQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5OU1ByaW5jaXBhbENs
YXNzPC9rZXk+Ci0JPHN0cmluZz5OU0FwcGxpY2F0aW9uPC9zdHJpbmc+Ci0JPGtleT5MU1VJRWxl
bWVudDwva2V5PgotCTx0cnVlLz4KLQk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KLQk8ZGljdD4KLQkJ
PGtleT5TZXJ2aWNlVHlwZTwva2V5PgotCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+Ci0J
CTxrZXk+UnVuTG9vcFR5cGU8L2tleT4KLQkJPHN0cmluZz5OU1J1bkxvb3A8L3N0cmluZz4KLSAg
ICAgICAgICAgICAgICA8a2V5Pl9Qcm9jZXNzVHlwZTwva2V5PgotICAgICAgICAgICAgICAgIDxz
dHJpbmc+QXBwPC9zdHJpbmc+Ci0JCTxrZXk+X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+Ci0JCTx0
cnVlLz4KLQk8L2RpY3Q+Ci0JPGtleT5DYW5Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb21PdGhl
clByb2Nlc3Nlczwva2V5PgotCTx0cnVlLz4KLTwvZGljdD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZp
Y2UvV2ViQXV0aG5TZXJ2aWNlRW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Q
cm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2VFbnRyeVBv
aW50Lm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2FkNDQ4YWE4NmZjOGIxOGQ5
ZGJiZTMyYTViNmM1ZDU4ZDkxNDFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29j
b2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyAvZGV2L251bGwK
QEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaW1w
b3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgotI2ltcG9ydCAiV0tCYXNlLmgiCi0jaW1wb3J0
ICJXZWJBdXRoblByb2Nlc3MuaCIKLSNpbXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCi0K
LSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2Vi
QXV0aG5TZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSA6IHB1YmxpYyBYUENTZXJ2aWNlSW5pdGlh
bGl6ZXJEZWxlZ2F0ZSB7Ci1wdWJsaWM6Ci0gICAgV2ViQXV0aG5TZXJ2aWNlSW5pdGlhbGl6ZXJE
ZWxlZ2F0ZShPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2Jq
ZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlKQotICAgICAgICA6IFhQQ1NlcnZpY2VJbml0aWFsaXpl
ckRlbGVnYXRlKFdURk1vdmUoY29ubmVjdGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSkKLSAgICB7
Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8Pgotdm9pZCBpbml0aWFsaXplQXV4aWxpYXJ5UHJvY2Vz
czxXZWJBdXRoblByb2Nlc3M+KEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJBdXRoblBy
b2Nlc3M+IFdlYkF1dGhuUHJvY2VzcyhXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQotCi1leHRlcm4g
IkMiIFdLX0VYUE9SVCB2b2lkIFdFQkFVVEhOX1NFUlZJQ0VfSU5JVElBTElaRVIoeHBjX2Nvbm5l
Y3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNf
b2JqZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwotCi12b2lkIFdFQkFVVEhOX1NFUlZJQ0Vf
SU5JVElBTElaRVIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5p
dGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpCi17Ci0g
ICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOwotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikK
LSAgICBXZWJLaXQ6OlhQQ1NlcnZpY2VJbml0aWFsaXplcjxXZWJLaXQ6OldlYkF1dGhuUHJvY2Vz
cywgV2ViS2l0OjpXZWJBdXRoblNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlPihjb25uZWN0aW9u
LCBpbml0aWFsaXplck1lc3NhZ2UsIHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLSNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVVEhOKQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblBy
b2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUxN2MzYmFjMTJmODcxMzc3YTczYWUzZDE1NmIwM2U3
MzhmYjAyN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5jbHVkZSAiQXV0aGVudGlj
YXRvck1hbmFnZXIuaCIKLSNpbmNsdWRlICJMb2NhbFNlcnZpY2UuaCIKLSNpbmNsdWRlICJXZWJB
dXRoblByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JSZXNwb25zZURh
dGEuaD4KLQotI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0jaW5jbHVkZSAiSVBDVGVzdGVy
TWVzc2FnZXMuaCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1SZWY8V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzPiBXZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShXZWJBdXRoblByb2Nlc3MmIFdlYkF1dGhu
UHJvY2VzcywgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIs
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2Vi
QXV0aG5Qcm9jZXNzLCB3ZWJQcm9jZXNzSWRlbnRpZmllciwgY29ubmVjdGlvbklkZW50aWZpZXIp
KTsKLX0KLQotV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpXZWJBdXRobkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoV2ViQXV0aG5Qcm9jZXNzJiBXZWJBdXRoblByb2Nlc3MsIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVy
LCAqdGhpcykpCi0gICAgLCBtX1dlYkF1dGhuUHJvY2VzcyhXZWJBdXRoblByb2Nlc3MpCi0gICAg
LCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotewotICAgIFJF
TEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBtX2Nvbm5lY3Rpb24tPm9wZW4o
KTsKLX0KLQotV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+V2ViQXV0aG5Db25uZWN0
aW9uVG9XZWJQcm9jZXNzKCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUoKTsKLX0KLQotdm9pZCBXZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCi17Ci19
Ci0KLXZvaWQgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VOYW1lIG1l
c3NhZ2VOYW1lKQotewotICAgIFdURkxvZ0Fsd2F5cygiUmVjZWl2ZWQgYW4gaW52YWxpZCBtZXNz
YWdlIFwiJXNcIiBmcm9tIHRoZSB3ZWIgcHJvY2Vzcy5cbiIsIGRlc2NyaXB0aW9uKG1lc3NhZ2VO
YW1lKSk7Ci0gICAgQ1JBU0goKTsKLX0KLQotYm9vbCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlcikKLXsKLSNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIGlm
IChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6SVBDVGVzdGVyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgbV9pcGNUZXN0ZXIuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0K
LSNlbmRpZgotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBXZWJBdXRobkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBs
eUVuY29kZXIpCi17Ci0jaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBpZiAoZGVjb2Rl
ci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OklQQ1Rlc3Rlcjo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIG1faXBjVGVzdGVyLmRpZFJlY2VpdmVTeW5jTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyLCByZXBseUVuY29kZXIpOwotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICB9Ci0jZW5kaWYKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLQotdm9pZCBXZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiYm
IGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiBvcHRpb25zLCBib29s
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxl
cikKLXsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25z
KSwgbnVsbHB0ciwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51
bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygp
LCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIp
KTsKLX0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldEFzc2VydGlv
bihWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMmJiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRp
b25IYW5kbGVyJiYgaGFuZGxlcikKLXsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNo
KSwgV1RGTW92ZShvcHRpb25zKSwgbnVsbHB0ciwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3Vs
dDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCBwcm9jZXNzaW5nVXNl
ckdlc3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9
LCBXVEZNb3ZlKGhhbmRsZXIpKTsKLX0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmhhbmRsZVJlcXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRhdGEs
IFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCi17Ci0gICAgYXV0byBjYWxsYmFj
ayA9IFtoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKV0gKHN0ZDo6dmFyaWFudDxSZWY8QXV0aGVu
dGljYXRvclJlc3BvbnNlPiwgRXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICBXVEY6OnN3aXRjaE9uKHJl
c3VsdCwgWyZdKGNvbnN0IFJlZjxBdXRoZW50aWNhdG9yUmVzcG9uc2U+JiByZXNwb25zZSkgewot
ICAgICAgICAgICAgaGFuZGxlcihyZXNwb25zZS0+ZGF0YSgpLCByZXNwb25zZS0+YXR0YWNobWVu
dCgpLCB7IH0pOwotICAgICAgICB9LCBbJl0oY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9u
KSB7Ci0gICAgICAgICAgICBoYW5kbGVyKHsgfSwgc3RhdGljX2Nhc3Q8QXV0aGVudGljYXRvckF0
dGFjaG1lbnQ+KDApLCBleGNlcHRpb24pOwotICAgICAgICB9KTsKLSAgICB9OwotICAgIG1fV2Vi
QXV0aG5Qcm9jZXNzLT5hdXRoZW50aWNhdG9yTWFuYWdlcigpLmhhbmRsZVJlcXVlc3QoV1RGTW92
ZShkYXRhKSwgV1RGTW92ZShjYWxsYmFjaykpOwotfQotCi12b2lkIFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxh
YmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQotewotICAgIGhhbmRsZXIoTG9j
YWxTZXJ2aWNlOjppc0F2YWlsYWJsZSgpKTsKLX0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29y
ZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCi17
Ci0gICAgbV9XZWJBdXRoblByb2Nlc3MtPnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVjNzU3NjMzNjY2YmJmYjY4ZmM0OWQw
NTNkOWJjYmFkN2IzZjc3ZDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+Ci0jaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0j
aW5jbHVkZSAiSVBDVGVzdGVyLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotZW51
bSBjbGFzcyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDsKLXN0cnVjdCBBdXRoZW50aWNhdG9yUmVz
cG9uc2VEYXRhOwotc3RydWN0IEV4Y2VwdGlvbkRhdGE7Ci1zdHJ1Y3QgTW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbjsKLXN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zOwotc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKLX0KLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYkF1dGhuUHJvY2VzczsKLXN0cnVjdCBXZWJB
dXRoZW50aWNhdGlvblJlcXVlc3REYXRhOwotCi1jbGFzcyBXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MKLSAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkF1dGhuQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcz4KLSAgICAsIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKFdlYkF1dGhu
UHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIpOwotICAgIHZpcnR1YWwgfldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcygp
OwotCi0gICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0
aW9uLmdldCgpOyB9Ci0gICAgV2ViQXV0aG5Qcm9jZXNzJiBXZWJBdXRoblByb2Nlc3NQcm9jZXNz
KCkgeyByZXR1cm4gbV9XZWJBdXRoblByb2Nlc3MuZ2V0KCk7IH0KLSAgICBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
UHJvY2Vzc0lkZW50aWZpZXI7IH0KLQotcHJpdmF0ZToKLSAgICB1c2luZyBSZXF1ZXN0Q29tcGxl
dGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkF1dGhl
bnRpY2F0b3JSZXNwb25zZURhdGEmLCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCwg
Y29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpPjsKLSAgICB1c2luZyBRdWVyeUNvbXBsZXRp
b25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT47Ci0KLSAgICBXZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQXV0aG5Qcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7Ci0KLSAgICAvLyBJUEM6
OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikg
ZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpNZXNzYWdlTmFtZSkgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKLSAgICBib29sIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBVbmlxdWVSZWY8
SVBDOjpFbmNvZGVyPiYpOwotCi0gICAgYm9vbCBkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJik7Ci0gICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+Jik7Ci0K
LSAgICAvLyBSZWNlaXZlcnMuCi0gICAgdm9pZCBtYWtlQ3JlZGVudGlhbChWZWN0b3I8dWludDhf
dD4mJiBoYXNoLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYs
IGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7
Ci0gICAgdm9pZCBnZXRBc3NlcnRpb24oVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYsIGJvb2wgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7Ci0gICAgdm9pZCBpc1VzZXJWZXJp
ZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxl
ciYmKTsKLSAgICB2b2lkIHNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2Vi
Q29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiYmKTsKLQotICAgIHZvaWQg
aGFuZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYsIFJlcXVlc3RDb21w
bGV0aW9uSGFuZGxlciYmKTsKLQotICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKLSAgICBSZWY8V2ViQXV0aG5Qcm9jZXNzPiBtX1dlYkF1dGhuUHJvY2VzczsKLSAgICBjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgSVBDVGVzdGVyIG1faXBjVGVzdGVyOwotI2Vu
ZGlmCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1
dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5ZDhlYjVmMGI4NTdlOGYzZGIwZTYwZTg1YzNm
YTZjZjI0YjVlZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0j
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoV0VCX0FV
VEhOKQotCi1tZXNzYWdlcyAtPiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgV2FudHNE
aXNwYXRjaE1lc3NhZ2UgewotCi0gICAgTWFrZUNyZWRlbnRpYWwoVmVjdG9yPHVpbnQ4X3Q+IGhh
c2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9w
dGlvbnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1
dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGlj
YXRvckF0dGFjaG1lbnQgYXR0YWNobWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEg
ZXhjZXB0aW9uKQotICAgIEdldEFzc2VydGlvbihWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0
IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zLCBib29s
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9y
UmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2ht
ZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikK
LSAgICBJc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAtPiAo
Ym9vbCByZXN1bHQpCi0KLSAgICBTZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9u
KHN0cnVjdCBXZWJDb3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIGNvbmZp
Z3VyYXRpb24pOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1MmU4NDNhY2I4ZmRkN2IzMzk1NWI1NTQyNTQzNmFlNGM1ZDEz
OTgzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwxNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzcy5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikK
LQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFn
ZXIuaCIKLSNpbmNsdWRlICJXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNs
dWRlICJXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9tU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KLQotV2ViQXV0aG5Qcm9jZXNzOjpXZWJBdXRoblByb2Nlc3MoQXV4aWxpYXJ5
UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBtX2F1
dGhlbnRpY2F0b3JNYW5hZ2VyKG1ha2VVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkp
Ci17Ci0gICAgaW5pdGlhbGl6ZShXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKLSAgICBtX2F1dGhlbnRp
Y2F0b3JNYW5hZ2VyLT5lbmFibGVNb2Rlcm5XZWJBdXRoZW50aWNhdGlvbigpOwotfQotCi1XZWJB
dXRoblByb2Nlc3M6On5XZWJBdXRoblByb2Nlc3MoKQotewotfQotCi12b2lkIFdlYkF1dGhuUHJv
Y2Vzczo6Y3JlYXRlV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKFByb2Nlc3NJZGVudGlm
aWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxJUEM6
OkF0dGFjaG1lbnQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGF1dG8gY29ubmVj
dGlvbklkZW50aWZpZXJzID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDb25uZWN0aW9uSWRlbnRp
ZmllclBhaXIoKTsKLSAgICBpZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVycykgewotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0
byBuZXdDb25uZWN0aW9uID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUo
KnRoaXMsIGlkZW50aWZpZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVycy0+c2VydmVyKTsKLQotICAg
IEFTU0VSVCghbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuY29udGFpbnMoaWRlbnRpZmllcikpOwot
ICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKG5ld0Nv
bm5lY3Rpb24pKTsKLQotICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29ubmVjdGlvbklk
ZW50aWZpZXJzLT5jbGllbnQpKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnJlbW92ZVdl
YkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIGNvbm5lY3Rpb24pCi17Ci0gICAgQVNTRVJUKG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmNv
bnRhaW5zKGNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSkpOwotICAgIG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25zLnJlbW92ZShjb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCkp
OwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3Nl
ZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci19Ci0KLWJvb2wgV2ViQXV0aG5Qcm9j
ZXNzOjpzaG91bGRUZXJtaW5hdGUoKQotewotICAgIHJldHVybiBtX3dlYlByb2Nlc3NDb25uZWN0
aW9ucy5pc0VtcHR5KCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci19Ci0KLXZv
aWQgV2ViQXV0aG5Qcm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsIGNyaXRpY2FsKQot
ewotICAgIFdURjo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KCk7Ci19Ci0KLXZvaWQgV2Vi
QXV0aG5Qcm9jZXNzOjppbml0aWFsaXplV2ViQXV0aG5Qcm9jZXNzKFdlYkF1dGhuUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCi17Ci0gICAgYXBwbHlQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzKHBhcmFtZXRlcnMuYXV4aWxpYXJ5UHJvY2Vzc1BhcmFtZXRlcnMpOwotICAg
IFdURjo6VGhyZWFkOjpzZXRDdXJyZW50VGhyZWFkSXNVc2VySW5pdGlhdGVkKCk7Ci0gICAgQXRv
bVN0cmluZzo6aW5pdCgpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6cHJlcGFyZVRvU3Vz
cGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICIlcCAtIFdlYkF1dGhuUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNp
b25JbW1pbmVudD0lZCIsIHRoaXMsIGlzU3VzcGVuc2lvbkltbWluZW50KTsKLQotICAgIGxvd01l
bW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpw
cm9jZXNzRGlkUmVzdW1lKCkKLXsKLSAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gV2ViQXV0aG5Qcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkiLCB0aGlzKTsKLSAgICBy
ZXN1bWUoKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnJlc3VtZSgpCi17Ci19Ci0KLVdl
YkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogV2ViQXV0aG5Qcm9jZXNzOjp3ZWJQcm9jZXNz
Q29ubmVjdGlvbihQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdAotewotICAgIHJl
dHVybiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5nZXQoaWRlbnRpZmllcik7Ci19Ci0KLXZvaWQg
V2ViQXV0aG5Qcm9jZXNzOjpzZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKFdl
YkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQotewotICAgIGlmICghbV9hdXRoZW50aWNhdG9yTWFuYWdlci0+aXNNb2NrKCkpIHsKLSAgICAg
ICAgbV9hdXRoZW50aWNhdG9yTWFuYWdlciA9IG1ha2VVbmlxdWVSZWY8TW9ja0F1dGhlbnRpY2F0
b3JNYW5hZ2VyPihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKLSAgICAgICAgbV9hdXRoZW50aWNh
dG9yTWFuYWdlci0+ZW5hYmxlTW9kZXJuV2ViQXV0aGVudGljYXRpb24oKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBzdGF0aWNfY2FzdDxNb2NrQXV0aGVudGljYXRvck1hbmFnZXIqPigm
bV9hdXRoZW50aWNhdG9yTWFuYWdlciktPnNldFRlc3RDb25maWd1cmF0aW9uKFdURk1vdmUoY29u
ZmlndXJhdGlvbikpOwotfQotCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdm9pZCBXZWJBdXRoblBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYkF1dGhuUHJvY2Vzcyhjb25zdCBXZWJBdXRoblBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKQotewotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoQ0ZQ
UkVGU19ESVJFQ1RfTU9ERSkKLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNl
c0NoYW5nZWQoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1ZSkKLXsKLSAgICBwcmVmZXJlbmNlRGlk
VXBkYXRlKGRvbWFpbiwga2V5LCBlbmNvZGVkVmFsdWUpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDNlN2EyNDA3ZjBkNDM3MmQxMWM2NzI3MmJlNGMwNjYzZjI4OTEzMzYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJM
RShXRUJfQVVUSE4pCi0KLSNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzLmgiCi0jaW5jbHVkZSAi
V2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNp
bmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL1VuaXF1
ZVJlZi5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LXN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwotfQotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgQXV0aGVudGljYXRvck1hbmFnZXI7Ci1jbGFzcyBXZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Ci1zdHJ1Y3QgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOwotCi1jbGFzcyBXZWJBdXRoblByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJv
Y2VzcywgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYkF1dGhuUHJvY2Vzcz4gewotICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkF1dGhuUHJvY2Vzcyk7Ci1wdWJsaWM6Ci0gICAgZXhw
bGljaXQgV2ViQXV0aG5Qcm9jZXNzKEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmJik7Ci0gICAgfldlYkF1dGhuUHJvY2VzcygpOwotICAgIHN0YXRpYyBjb25zdGV4cHIg
V2ViQ29yZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBXZWJDb3JlOjpBdXhp
bGlhcnlQcm9jZXNzVHlwZTo6V2ViQXV0aG47Ci0KLSAgICB2b2lkIHJlbW92ZVdlYkF1dGhuQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyhXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKLQot
ICAgIHZvaWQgcHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOwot
ICAgIHZvaWQgcmVzdW1lKCk7Ci0KLSAgICB2b2lkIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NDbG9z
ZWQoSVBDOjpDb25uZWN0aW9uJik7Ci0KLSAgICBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MqIHdlYlByb2Nlc3NDb25uZWN0aW9uKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKSBjb25z
dDsKLQotICAgIEF1dGhlbnRpY2F0b3JNYW5hZ2VyJiBhdXRoZW50aWNhdG9yTWFuYWdlcigpIHsg
cmV0dXJuIG1fYXV0aGVudGljYXRvck1hbmFnZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldE1vY2tX
ZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0
aW9uQ29uZmlndXJhdGlvbiYmKTsKLQotI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQot
ICAgIHZvaWQgbm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTdHJpbmc+JiBlbmNvZGVkVmFs
dWUpOwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVXZWJB
dXRoblByb2Nlc3MoY29uc3QgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7Ci0g
ICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsKTsKLQotICAgIC8vIEF1eGlsaWFyeVBy
b2Nlc3MKLSAgICB2b2lkIGluaXRpYWxpemVQcm9jZXNzKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIGluaXRpYWxpemVQ
cm9jZXNzTmFtZShjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYpIG92ZXJyaWRlOwotICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7
Ci0KLSAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLQotICAgIC8vIE1lc3NhZ2Ug
SGFuZGxlcnMKLSAgICB2b2lkIGluaXRpYWxpemVXZWJBdXRoblByb2Nlc3MoV2ViQXV0aG5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwotICAgIHZvaWQgY3JlYXRlV2ViQXV0aG5Db25uZWN0
aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8SVBDOjpBdHRhY2htZW50PiYmKT4mJik7Ci0KLSAgICAv
LyBDb25uZWN0aW9ucyB0byBXZWJQcm9jZXNzZXMuCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciwgUmVmPFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4+IG1fd2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25zOwotCi0gICAgVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
PiBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyM2QxOWM2NzJjMmNkOGI5YWMxM2U2MjQzZDVkZjFkZDdiZjEy
ODBkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
L2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
Ci0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotbWVzc2FnZXMgLT4gV2Vi
QXV0aG5Qcm9jZXNzIHsKLSAgICAjIEluaXRpYWxpemVzIHRoZSBXZWJBdXRobiBwcm9jZXNzLgot
ICAgIEluaXRpYWxpemVXZWJBdXRoblByb2Nlc3Moc3RydWN0IFdlYktpdDo6V2ViQXV0aG5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpCi0KLSAgICAj
IENyZWF0ZXMgYSBjb25uZWN0aW9uIGZvciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNz
Ci0gICAgQ3JlYXRlV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OkF0
dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVudGlmaWVyKQotCi0jaWYgRU5BQkxFKENGUFJFRlNfRElS
RUNUX01PREUpCi0gICAgTm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0
cmluZyBrZXksIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBlbmNvZGVkVmFsdWUpCi0jZW5kaWYKLX0K
LQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThhMzZmNTQ3MDg1YWVl
YjUzOTZhNjAyZGM3NzZlMTQ1MWIzYzIxNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJBdXRoblBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNp
bmNsdWRlICJBcmd1bWVudENvZGVycy5oIgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNDRi5o
IgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJBdXRoblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OldlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpID0gZGVmYXVs
dDsKLQotdm9pZCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCBhdXhpbGlhcnlQcm9j
ZXNzUGFyYW1ldGVyczsKLX0KLQotYm9vbCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYgcmVzdWx0KQotewotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmF1
eGlsaWFyeVByb2Nlc3NQYXJhbWV0ZXJzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJl
dHVybiB0cnVlOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9X
ZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0
aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwNWUwNjZkMGE1YzdkMjFlMjcwYzQ1OWY3YjI1Njg2YjcxZmYw
OWFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLQotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBEZWNvZGVy
OwotY2xhc3MgRW5jb2RlcjsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBXZWJB
dXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewotICAgIFdlYkF1dGhuUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycygpOwotICAgIEF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
YXV4aWxpYXJ5UHJvY2Vzc1BhcmFtZXRlcnM7Ci0KLSAgICB2b2lkIGVuY29kZShJUEM6OkVuY29k
ZXImKSBjb25zdDsKLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQ
Qzo6RGVjb2RlciYsIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvaW9zL1dlYkF1dGhuUHJvY2Vz
c0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL2lvcy9XZWJBdXRoblByb2Nl
c3NJT1MubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1YjM3ZDRlZjg4ZGQyODRh
NzI0OWU0MGI2MWZiNGExOGI5ODkxYzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvaW9zL1dlYkF1dGhu
UHJvY2Vzc0lPUy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV2ViQXV0aG5Qcm9jZXNzLmgiCi0K
LSNpZiBFTkFCTEUoV0VCX0FVVEhOKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQotCi0jaW1wb3J0
ICJEZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oIgotI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1l
bnRlZC5oPgotI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNlLmg+
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXZvaWQg
V2ViQXV0aG5Qcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBBdXhpbGlhcnlQcm9jZXNz
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKLXsKLSAgICBJbml0V2ViQ29yZVRocmVhZFN5c3Rl
bUludGVyZmFjZSgpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nl
c3NOYW1lKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjppbml0
aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCi17Ci19Ci0KLXZvaWQgV2Vi
QXV0aG5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJBdXRoblByb2Nlc3MoY29uc3QgV2Vi
QXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQotewotICAgIFJFTEVB
U0VfQVNTRVJUKGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3NlcigqdGhpcykpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pICYmIFBM
QVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJv
Y2Vzcy9tYWMvV2ViQXV0aG5Qcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblBy
b2Nlc3MvbWFjL1dlYkF1dGhuUHJvY2Vzc01hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNWFlODgwODk3M2E2YWQ0NmUzYWViZGRjMzQ4YzA4ZTNmZjZhYjFmZi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1
dGhuUHJvY2Vzcy9tYWMvV2ViQXV0aG5Qcm9jZXNzTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEs
NzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0
ICJXZWJBdXRoblByb2Nlc3MuaCIKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pICYmIFBMQVRGT1JN
KE1BQykKLQotI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgotI2lt
cG9ydCAiV0tGb3VuZGF0aW9uLmgiCi0jaW1wb3J0ICJXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCIKLSNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgotI2ltcG9y
dCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oPgotI2ltcG9ydCA8cGFsL3NwaS9t
YWMvSElTZXJ2aWNlc1NQSS5oPgotI2ltcG9ydCA8c3lzZXhpdHMuaD4KLSNpbXBvcnQgPHd0Zi9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KLSNpbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2Nv
YS5oPgotI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzcyhjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJikKLXsKLSAgICBzZXRBcHBsaWNhdGlvbklzRGFlbW9uKCk7Ci0gICAgbGF1bmNoU2Vydmlj
ZXNDaGVja0luKCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjppbml0aWFsaXplUHJvY2Vz
c05hbWUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKLXsKLSAgICBOU1N0cmluZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX05TU1RSSU5HKEAiJUAgV2ViIEF1dGhlbnRpY2F0aW9uIiwg
InZpc2libGUgbmFtZSBvZiB0aGUgV2ViQXV0aG4gcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRo
ZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05h
bWVdOwotICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNz
aW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXks
IGJyaWRnZV9jYXN0KGFwcGxpY2F0aW9uTmFtZSksIG51bGxwdHIpOwotfQotCi12b2lkIFdlYkF1
dGhuUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRp
YWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCi17Ci0gICAgLy8gTmVlZCB0byBvdmVycmlkZSB0
aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCi0g
ICAgTlNCdW5kbGUgKndlYktpdDJCdW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlND
bGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZpZXciKV07Ci0KLSAgICBzYW5kYm94UGFyYW1ldGVycy5z
ZXRPdmVycmlkZVNhbmRib3hQcm9maWxlUGF0aChbd2ViS2l0MkJ1bmRsZSBwYXRoRm9yUmVzb3Vy
Y2U6QCJjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2VzcyIgb2ZUeXBlOkAic2IiXSk7Ci0K
LSAgICBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5k
Ym94UGFyYW1ldGVycyk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJBdXRoblByb2Nlc3MoY29uc3QgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJikKLXsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvbWFj
L2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9X
ZWJBdXRoblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmlu
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OTRiN2QyOTk4OWQ1YjljYzk4ZWU1Njhi
NTlkY2I5YWQzY2M3NTMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0
LldlYkF1dGhuUHJvY2Vzcy5zYi5pbgorKysgL2Rldi9udWxsCkBAIC0xLDQ3OSArMCwwIEBACi07
IENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LTsKLTsgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci07IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotOyBhcmUgbWV0OgotOyAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotOyAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi07IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci07ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLTsgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LTsKLTsgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotOyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLTsgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotOyBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLTsgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotOyBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotOyBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLTsgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLTsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLTsgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotOyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSh2ZXJzaW9uIDEpCi0o
ZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCi0oZGVueSBudnJhbSop
Ci0oYWxsb3cgc3lzdGVtLWF1ZGl0IGZpbGUtcmVhZC1tZXRhZGF0YSkKLQotOzsgU2lsZW5jZSBz
cHVyaW91cyBsb2dnaW5nIGR1ZSB0byByZGFyOi8vMjAxMTc5MjMgYW5kIHJkYXI6Ly83MjM2NjQ3
NQotKGRlbnkgc3lzdGVtLXByaXZpbGVnZSAocHJpdmlsZWdlLWlkIFBSSVZfR0xPQkFMX1BST0Nf
SU5GTykgKHdpdGggbm8tcmVwb3J0KSkKLQotI2luY2x1ZGUgIlNoYXJlZC9TYW5kYm94L3ByZWZl
cmVuY2VzLnNiIgotCi0jaWYgRU5BQkxFKFNZU1RFTV9DT05URU5UX1BBVEhfU0FOREJPWF9SVUxF
UykKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvU3lzdGVtQ29udGVudFNhbmRib3gtbWFjb3Mu
ZGVmcz4KLSNlbmRpZgotIAotOzs7Ci07OzsgVGhlIGZvbGxvd2luZyBydWxlcyB3ZXJlIG9yaWdp
bmFsbHkgY29udGFpbmVkIGluICdzeXN0ZW0uc2InLiBXZSBhcmUgZHVwbGljYXRpbmcgdGhlbSBo
ZXJlIHNvIHdlIGNhbgotOzs7IHJlbW92ZSB1bm5lZWRlZCBzYW5kYm94IGV4dGVuc2lvbnMuCi07
OzsKLQotOzs7IEFsbG93IHJlZ2lzdHJhdGlvbiBvZiBwZXItcGlkIHNlcnZpY2VzLgotKGFsbG93
IG1hY2gtcmVnaXN0ZXIgKGxvY2FsLW5hbWUtcHJlZml4ICIiKSkKLQotOzs7IEFsbG93IHJlYWQg
YWNjZXNzIHRvIHN0YW5kYXJkIHN5c3RlbSBwYXRocy4KLShhbGxvdyBmaWxlLXJlYWQqCi0gICAg
KHJlcXVpcmUtYWxsIChmaWxlLW1vZGUgI28wMDA0KQotICAgIChyZXF1aXJlLWFueSAoc3VicGF0
aCAiL0xpYnJhcnkvRmlsZXN5c3RlbXMvTmV0RlNQbHVnaW5zIikKLSAgICAoc3VicGF0aCAiL0xp
YnJhcnkvQXBwbGUvU3lzdGVtIikKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMv
TG9nZ2luZyIpICAgICAgOyBMb2dnaW5nIFJldGhpbmsKLSAgICAoc3VicGF0aCAiL1N5c3RlbSIp
Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDExMDAwMAotICAgIChzdWJw
YXRoICIvcHJpdmF0ZS92YXIvZGIvZHlsZCIpCi0jZW5kaWYKLSAgICAoc3VicGF0aCAiL3ByaXZh
dGUvdmFyL2RiL3RpbWV6b25lIikKLSAgICAoc3VicGF0aCAiL3Vzci9saWIiKQotICAgIChzdWJw
YXRoICIvdXNyL3NoYXJlIikpKSkKLQotOzs7IEFsbG93IHJlYWRpbmcgaW50ZXJuYWwgcHJvZmls
ZXMgb24gZGV2ZWxvcG1lbnQgYnVpbGRzCi0oYWxsb3cgZmlsZS1yZWFkKgotICAgIChyZXF1aXJl
LWFsbCAoZmlsZS1tb2RlICNvMDAwNCkKLSAgICAoc3VicGF0aCAiL0FwcGxlSW50ZXJuYWwvTGli
cmFyeS9QcmVmZXJlbmNlcy9Mb2dnaW5nIikKLSAgICAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1p
bnRlcm5hbCkpKQotCi07OzsgQWxsb3cgbWFwcGluZyBvZiBzeXN0ZW0gZnJhbWV3b3JrcyArIGR5
bGlicwotKGFsbG93IGZpbGUtbWFwLWV4ZWN1dGFibGUKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkv
QXBwbGUvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyIpCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5
L0FwcGxlL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzIikKLSAgICAoc3VicGF0aCAi
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MiKQotICAgIChzdWJwYXRoICIvU3lzdGVtL0xpYnJh
cnkvUHJpdmF0ZUZyYW1ld29ya3MiKQotICAgIChzdWJwYXRoICIvdXNyL2xpYiIpCi0gICAgKHN1
YnBhdGggIi91c3IvYXBwbGVpbnRlcm5hbC9saWIiKSA7OyA8cmRhcjovL3Byb2JsZW0vNzIzMTcx
MTI+Ci0pCi0KLShhbGxvdyBmaWxlLXJlYWQtbWV0YWRhdGEKLSAgICAobGl0ZXJhbCAiL2V0YyIp
Ci0gICAgKGxpdGVyYWwgIi90bXAiKQotICAgIChsaXRlcmFsICIvdmFyIikKLSAgICAobGl0ZXJh
bCAiL3ByaXZhdGUvZXRjL2xvY2FsdGltZSIpKQotCi0KLTs7OyBBbGxvdyBhY2Nlc3MgdG8gc3Rh
bmRhcmQgc3BlY2lhbCBmaWxlcy4KLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgKGxpdGVyYWwgIi9k
ZXYvYXV0b2ZzX25vd2FpdCIpCi0gICAgKGxpdGVyYWwgIi9kZXYvcmFuZG9tIikKLSAgICAobGl0
ZXJhbCAiL2Rldi91cmFuZG9tIikKLSAgICAobGl0ZXJhbCAiL3ByaXZhdGUvZXRjL21hc3Rlci5w
YXNzd2QiKQotICAgIChsaXRlcmFsICIvcHJpdmF0ZS9ldGMvcGFzc3dkIikpCi0KLShhbGxvdyBm
aWxlLXJlYWQqCi0gICAgICAgZmlsZS13cml0ZS1kYXRhCi0gICAgKGxpdGVyYWwgIi9kZXYvbnVs
bCIpCi0gICAgKGxpdGVyYWwgIi9kZXYvemVybyIpKQotCi0oYWxsb3cgZmlsZS1yZWFkKgotICAg
ICAgIGZpbGUtd3JpdGUtZGF0YQotICAgICAgIGZpbGUtaW9jdGwKLSAgICAobGl0ZXJhbCAiL2Rl
di9kdHJhY2VoZWxwZXIiKSkKLQotOzs7IEFsbG93IGNyZWF0aW9uIG9mIGNvcmUgZHVtcHMuCi0o
YWxsb3cgZmlsZS13cml0ZS1jcmVhdGUKLSAgICAocmVxdWlyZS1hbGwgKHByZWZpeCAiL2NvcmVz
LyIpCi0gICAgICAgICh2bm9kZS10eXBlIFJFR1VMQVItRklMRSkpKQotCi07OzsgQWxsb3cgSVBD
IHRvIHN0YW5kYXJkIHN5c3RlbSBhZ2VudHMuCi0oYWxsb3cgaXBjLXBvc2l4LXNobS1yZWFkKgot
ICAgIChpcGMtcG9zaXgtbmFtZSAiYXBwbGUuc2htLm5vdGlmaWNhdGlvbl9jZW50ZXIiKQotI2lm
ICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICAoaXBjLXBvc2l4LW5hbWUtcHJlZml4
ICJhcHBsZS5jZnByZWZzLiIpCi0jZW5kaWYKLSkKLQotOzs7Ci07OzsgRW5kIHJ1bGVzIG9yaWdp
bmFsbHkgY29waWVkIGZyb20gJ3N5c3RlbS5zYicKLTs7OwotCi07OzsgcHJvY2Vzcy1pbmZvKiBk
ZWZhdWx0cyB0byBhbGxvdzsgZGVueSBpdCBhbmQgdGhlbiBhbGxvdyBvcGVyYXRpb25zIHdlIGFj
dHVhbGx5IG5lZWQuCi0oZGVueSBwcm9jZXNzLWluZm8qKQotKGFsbG93IHByb2Nlc3MtaW5mby1k
aXJ0eWNvbnRyb2wgKHRhcmdldCBzZWxmKSkKLShhbGxvdyBwcm9jZXNzLWluZm8tcGlkaW5mbykK
LShhbGxvdyBwcm9jZXNzLWluZm8tc2V0Y29udHJvbCAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHBy
b2Nlc3MtY29kZXNpZ25pbmctc3RhdHVzKikKLQotKGRlbnkgc3lzY3RsKikKLShhbGxvdyBzeXNj
dGwtcmVhZAotICAgIChzeXNjdGwtbmFtZQotICAgICAgICAiaHcuYWN0aXZlY3B1IiA7OyA8cmRh
cjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0gICAgICAgICJody5hdmFpbGNwdSIKLSAgICAgICAgImh3
LmJ5dGVvcmRlciIKLSAgICAgICAgImh3LmJ1c2ZyZXF1ZW5jeSIKLSAgICAgICAgImh3LmJ1c2Zy
ZXF1ZW5jeV9tYXgiCi0gICAgICAgICJody5jYWNoZWNvbmZpZyIgOzsgPHJkYXI6Ly9wcm9ibGVt
Lzc4MjEzNTYzPgotICAgICAgICAiaHcuY2FjaGVsaW5lc2l6ZSIgOzsgPHJkYXI6Ly9wcm9ibGVt
LzU2Nzk1NTc1PgotICAgICAgICAiaHcuY2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNzgy
MTM1NjM+Ci0gICAgICAgICJody5jcHVmcmVxdWVuY3kiCi0gICAgICAgICJody5jcHVmcmVxdWVu
Y3lfbWF4IgotICAgICAgICAiaHcuY3B1c3ViZmFtaWx5IgotICAgICAgICAiaHcuY3B1dGhyZWFk
dHlwZSIKLSAgICAgICAgImh3LmNwdXR5cGUiCi0gICAgICAgICJody5sMWRjYWNoZXNpemUiIDs7
IDxyZGFyOi8vcHJvYmxlbS81Njc5NTU3NT4KLSAgICAgICAgImh3LmwxaWNhY2hlc2l6ZSIgOzsg
PHJkYXI6Ly9wcm9ibGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcubDJjYWNoZXNpemUiIDs7IDxy
ZGFyOi8vcHJvYmxlbS81Njc5NTU3NT4KLSAgICAgICAgImh3LmwzY2FjaGVzaXplIiA7OyA8cmRh
cjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0gICAgICAgICJody5sb2dpY2FsY3B1IiA7OyA8cmRhcjov
L3Byb2JsZW0vNTY3OTU1NzU+Ci0gICAgICAgICJody5sb2dpY2FsY3B1X21heCIgOzsgPHJkYXI6
Ly9wcm9ibGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcubWFjaGluZSIKLSAgICAgICAgImh3Lm1l
bXNpemUiCi0gICAgICAgICJody5tb2RlbCIKLSAgICAgICAgImh3Lm5jcHUiCi0gICAgICAgICJo
dy5ucGVyZmxldmVscyIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgzNTk2PgotICAgICAgICAiaHcu
cGFnZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MzU5Nj4KLSAgICAgICAgImh3LnBhZ2Vz
aXplX2NvbXBhdCIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgzNTk2PgotICAgICAgICAiaHcucGh5
c2ljYWxjcHUiIDs7IDxyZGFyOi8vcHJvYmxlbS81ODQxNjQ3NT4KLSAgICAgICAgImh3LnBoeXNp
Y2FsY3B1X21heCIgOzsgPHJkYXI6Ly9wcm9ibGVtLzU4NDE2NDc1PgotICAgICAgICAiaHcudGJm
cmVxdWVuY3kiCi0gICAgICAgICJody50YmZyZXF1ZW5jeV9jb21wYXQiCi0gICAgICAgICJody52
ZWN0b3J1bml0IgotICAgICAgICAia2Vybi5ib290YXJncyIgOzsgPHJkYXI6Ly9wcm9ibGVtLzQ3
NzM4MDE1PgotICAgICAgICAia2Vybi5ob3N0bmFtZSIKLSAgICAgICAgImtlcm4uaHZfdm1tX3By
ZXNlbnQiCi0gICAgICAgICJrZXJuLm1heGZpbGVzcGVycHJvYyIKLSAgICAgICAgImtlcm4ubWVt
b3J5c3RhdHVzX2xldmVsIgotICAgICAgICAia2Vybi5vc3Byb2R1Y3R2ZXJzaW9uIiA7OyA8cmRh
cjovL3Byb2JsZW0vNTE3NTY3Mzk+Ci0gICAgICAgICJrZXJuLm9zcmVsZWFzZSIKLSAgICAgICAg
Imtlcm4ub3N0eXBlIgotICAgICAgICAia2Vybi5vc3ZhcmlhbnRfc3RhdHVzIgotICAgICAgICAi
a2Vybi5vc3ZlcnNpb24iCi0gICAgICAgICJrZXJuLnNhZmVib290IgotICAgICAgICAia2Vybi52
ZXJzaW9uIgotICAgICAgICAibWFjaGRlcC5jcHUuYnJhbmRfc3RyaW5nIgotICAgICAgICAic2Vj
dXJpdHkubWFjLnNhbmRib3guc2VudGluZWwiCi0gICAgICAgICJrZXJuLnRjc21fZW5hYmxlIgot
ICAgICAgICAia2Vybi50Y3NtX2F2YWlsYWJsZSIKLSAgICAgICAgInZtLmZvb3RwcmludF9zdXNw
ZW5kIikKLSAgICAoc3lzY3RsLW5hbWUtcHJlZml4ICJuZXQucm91dGV0YWJsZSIpCi0gICAgKHN5
c2N0bC1uYW1lLXByZWZpeCAiaHcub3B0aW9uYWwuIikgOzsgPHJkYXI6Ly9wcm9ibGVtLzcxNDYy
NzkwPgotICAgIChzeXNjdGwtbmFtZS1wcmVmaXggImh3LnBlcmZsZXZlbCIpIDs7IDxyZGFyOi8v
cHJvYmxlbS83Njc4MzU5Nj4KLSkKLQotKGFsbG93IHN5c2N0bC13cml0ZQotICAgIChzeXNjdGwt
bmFtZQotICAgICAgICAia2Vybi50Y3NtX2VuYWJsZSIpKQotCi0oZGVueSBtYWNoLWxvb2t1cCAo
eHBjLXNlcnZpY2UtbmFtZS1wcmVmaXggIiIpKQotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgKHhw
Yy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5QZXJmb3JtYW5jZUFuYWx5c2lzLmFuaW1hdGlvbnBl
cmZkIikKLSAgICAoeHBjLXNlcnZpY2UtbmFtZSAiY29tLmFwcGxlLmFjY2Vzc2liaWxpdHkubWVk
aWFhY2Nlc3NpYmlsaXR5ZCIpCi0gICAgKHhwYy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5hdWRp
by5TYW5kYm94SGVscGVyIikKLSAgICAoeHBjLXNlcnZpY2UtbmFtZSAiY29tLmFwcGxlLmNvcmVt
ZWRpYS52aWRlb2RlY29kZXIiKQotICAgICh4cGMtc2VydmljZS1uYW1lICJjb20uYXBwbGUuY29y
ZW1lZGlhLnZpZGVvZW5jb2RlciIpCi0gICAgKHhwYy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5o
aXNlcnZpY2VzLXhwY3NlcnZpY2UiKQotKQotCi07OyBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgaG9t
ZSBkaXJlY3RvcnkgcmVsYXRpdmUgcGF0aCBmaWx0ZXJzCi0oZGVmaW5lIChob21lLXJlZ2V4IGhv
bWUtcmVsYXRpdmUtcmVnZXgpCi0gIChyZWdleCAoc3RyaW5nLWFwcGVuZCAiXiIgKHJlZ2V4LXF1
b3RlIChwYXJhbSAiSE9NRV9ESVIiKSkgaG9tZS1yZWxhdGl2ZS1yZWdleCkpKQotCi0oZGVmaW5l
IChob21lLXN1YnBhdGggaG9tZS1yZWxhdGl2ZS1zdWJwYXRoKQotICAoc3VicGF0aCAoc3RyaW5n
LWFwcGVuZCAocGFyYW0gIkhPTUVfRElSIikgaG9tZS1yZWxhdGl2ZS1zdWJwYXRoKSkpCi0KLShk
ZWZpbmUgKGhvbWUtbGl0ZXJhbCBob21lLXJlbGF0aXZlLWxpdGVyYWwpCi0gIChsaXRlcmFsIChz
dHJpbmctYXBwZW5kIChwYXJhbSAiSE9NRV9ESVIiKSBob21lLXJlbGF0aXZlLWxpdGVyYWwpKSkK
LQotKGRlZmluZSAoYWxsb3ctcmVhZC1kaXJlY3RvcnktYW5kLWlzc3VlLXJlYWQtZXh0ZW5zaW9u
cyBwYXRoKQotICAgIChpZiBwYXRoCi0gICAgICAgIChiZWdpbgotICAgICAgICAgICAgKGFsbG93
IGZpbGUtcmVhZCogKHN1YnBhdGggcGF0aCkpCi0gICAgICAgICAgICAoYWxsb3cgZmlsZS1pc3N1
ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAt
c2FuZGJveC5yZWFkIikgKHN1YnBhdGggcGF0aCkpKSkpKQotCi0oZGVmaW5lIChhbGxvdy1yZWFk
LXdyaXRlLWRpcmVjdG9yeS1hbmQtaXNzdWUtcmVhZC13cml0ZS1leHRlbnNpb25zIHBhdGgpCi0g
ICAgKGlmIHBhdGgKLSAgICAgICAgKGJlZ2luCi0gICAgICAgICAgICAoYWxsb3cgZmlsZS1yZWFk
KiBmaWxlLXdyaXRlKiAoc3VicGF0aCBwYXRoKSkKLSAgICAgICAgICAgIChhbGxvdyBmaWxlLWlz
c3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFw
cC1zYW5kYm94LnJlYWQiKSAoc3VicGF0aCBwYXRoKSkpCi0gICAgICAgICAgICAoYWxsb3cgZmls
ZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBs
ZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlIikgKHN1YnBhdGggcGF0aCkpKSkpKQotCi07OyBSZW1v
dmUgd2hlbiA8cmRhcjovL3Byb2JsZW0vMjk2NDYwOTQ+IGlzIGZpeGVkLgotKGRlZmluZSAoSEVY
LXBhdHRlcm4tbWF0Y2gtZ2VuZXJhdG9yIHBhdHRlcm4tZGVzY3JpcHRvcikKLSAgICAobGV0cmVj
ICgocGF0dGVybi1zdHJpbmcgIiIpKQotICAgICAgICAoZm9yLWVhY2ggIChsYW1iZGEgKHJlcGVh
dC1jb3VudCkKLSAgICAgICAgICAgIChpZiAoemVybz8gcmVwZWF0LWNvdW50KQotICAgICAgICAg
ICAgICAgIChzZXQhIHBhdHRlcm4tc3RyaW5nIChzdHJpbmctYXBwZW5kICBwYXR0ZXJuLXN0cmlu
ZyAiLSIpKQotICAgICAgICAgICAgICAgIChsZXQgYXBwZW5kZXIgKChjb3VudCByZXBlYXQtY291
bnQpKQotICAgICAgICAgICAgICAgICAgICAoaWYgKD4gY291bnQgMCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIChiZWdpbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQhIHBhdHRl
cm4tc3RyaW5nIChzdHJpbmctYXBwZW5kICBwYXR0ZXJuLXN0cmluZyAiWzAtOUEtRl0iKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kZXIgKC0gY291bnQgMSkpKSkpKSkKLSAg
ICAgICAgICAgIHBhdHRlcm4tZGVzY3JpcHRvcikKLSAgICBwYXR0ZXJuLXN0cmluZykpCi0KLTs7
IHJldHVybiBhIHJlZ2V4IHBhdHRlcm4gbWF0Y2hpbmcgc3RyaW5nIGZvciA4LTQtNC00LTEyIFVV
SURzOgotKGRlZmluZSAodXVpZC1IRVgtcGF0dGVybi1tYXRjaC1zdHJpbmcpCi0gICAgKEhFWC1w
YXR0ZXJuLW1hdGNoLWdlbmVyYXRvciAnKDggMCA0IDAgNCAwIDQgMCAxMikpKQotCi07OyBnbG9i
YWwgdG8gaG9sZCB0aGUgY29tcHV0ZWQgVVVJRCBtYXRjaGluZyBwYXR0ZXJuLgotKGRlZmluZSAq
dXVpZC1wYXR0ZXJuKiAiIikKLQotKGRlZmluZSAodXVpZC1yZWdleC1zdHJpbmcpCi0gICAgKGlm
ICh6ZXJvPyAoc3RyaW5nLWxlbmd0aCAqdXVpZC1wYXR0ZXJuKikpCi0gICAgICAgIChzZXQhICp1
dWlkLXBhdHRlcm4qICh1dWlkLUhFWC1wYXR0ZXJuLW1hdGNoLXN0cmluZykpKQotICAgICp1dWlk
LXBhdHRlcm4qKQotCi07OyBSZWFkLW9ubHkgcHJlZmVyZW5jZXMgYW5kIGRhdGEKLShhbGxvdyBm
aWxlLXJlYWQqCi0gICAgOzsgQmFzaWMgc3lzdGVtIHBhdGhzCi0gICAgKHN1YnBhdGggIi9MaWJy
YXJ5L0RpY3Rpb25hcmllcyIpCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0ZvbnRzIikKLSAgICAo
c3VicGF0aCAiL0xpYnJhcnkvRnJhbWV3b3JrcyIpCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L01h
bmFnZWQgUHJlZmVyZW5jZXMiKQotICAgIChzdWJwYXRoICIvTGlicmFyeS9TcGVlY2gvU3ludGhl
c2l6ZXJzIikKLSAgICAocmVnZXggIyJeL3ByaXZhdGUvZXRjLyhob3N0c3xncm91cHxwYXNzd2Qp
JCIpCi0KLSAgICA7OyBTeXN0ZW0gYW5kIHVzZXIgcHJlZmVyZW5jZXMKLSAgICAoaG9tZS1saXRl
cmFsICIvLkNGVXNlclRleHRFbmNvZGluZyIpCi0KLSAgICA7OyBGSVhNRTogVGhpcyBzaG91bGQg
YmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS84OTU3ODQ1PiBpcyBmaXhlZC4KLSAgICAo
aG9tZS1zdWJwYXRoICIvTGlicmFyeS9Gb250cyIpCi0KLSAgICAoc3VicGF0aCAiL0xpYnJhcnkv
QXVkaW8vUGx1Zy1JbnMvSEFMIikKLQotICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0RpY3Rp
b25hcmllcyIpKQotCi0oYWxsb3cgZmlsZS1yZWFkLWRhdGEKLSAgICAobGl0ZXJhbCAiL3Vzci9s
b2NhbC9saWIvbG9nIikgOyA8cmRhcjovL3Byb2JsZW0vMzY2Mjk0OTU+Ci0gICAgOzsgTmVlZGVk
IGZvciBBRVMzIHN1cHBvcnQKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvQXVkaW8vUGx1Zy1JbnMv
Q29tcG9uZW50cyIpKQotCi07OyBQcmVmZXJlbmNlcyBzdXBwb3J0Ci0oc2hhcmVkLXByZWZlcmVu
Y2VzLXJlYWQKLSAgICAiY29tLmFwcGxlLkFjY2Vzc2liaWxpdHkiCi0gICAgImNvbS5hcHBsZS5B
VFMiCi0gICAgImNvbS5hcHBsZS5Db3JlR3JhcGhpY3MiCi0gICAgImNvbS5hcHBsZS5Eb3dubG9h
ZEFzc2Vzc21lbnQiCi0gICAgImNvbS5hcHBsZS5ISVRvb2xib3giCi0gICAgImNvbS5hcHBsZS5M
YXVuY2hTZXJ2aWNlcyIKLSAgICAiY29tLmFwcGxlLk11bHRpdG91Y2hTdXBwb3J0IiA7OyBGSVhN
RTogUmVtb3ZlIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzEzMDExNjMzPiBpcyBmaXhlZC4KLSAgICAi
Y29tLmFwcGxlLlNlcnZpY2VzTWVudS5TZXJ2aWNlcyIgOzsgTmVlZGVkIGZvciBOU0F0dHJpYnV0
ZWRTdHJpbmcgPHJkYXI6Ly9wcm9ibGVtLzEwODQ0MzIxPgotICAgICJjb20uYXBwbGUuVmlld0Jy
aWRnZSIgOzsgTmVlZGVkIGZvciBJbnB1dCBlbGVtZW50cy4KLSAgICAiY29tLmFwcGxlLldlYkZv
dW5kYXRpb24iCi0gICAgImNvbS5hcHBsZS5hdmZvdW5kYXRpb24iCi0gICAgImNvbS5hcHBsZS5h
dmZvdW5kYXRpb24uZnJlY2VudHMiIDs7IDxyZGFyOi8vcHJvYmxlbS8zMzEzNzAyOT4KLSAgICAi
Y29tLmFwcGxlLmF2Zm91bmRhdGlvbi52aWRlb3BlcmZvcm1hbmNlaHVkIiA7OyA8cmRhcjovL3By
b2JsZW0vMzE1OTQ1Njg+Ci0gICAgImNvbS5hcHBsZS5jb3JlbWVkaWEiCi0gICAgImNvbS5hcHBs
ZS5jcnlwdG8iCi0gICAgImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRvdWNo
Lm1vdXNlIgotICAgICJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC50
cmFja3BhZCIKLSAgICAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUhJRE1vdXNlIgotICAgICJjb20u
YXBwbGUubG9va3VwLnNoYXJlZCIKLSAgICAiY29tLmFwcGxlLm1lZGlhYWNjZXNzaWJpbGl0eSIg
OzsgTmVlZGVkIGZvciBjdXN0b20gY2FwdGlvbiBzdHlsZXMKLSAgICAiY29tLmFwcGxlLm5ldHdv
cmtDb25uZWN0IgotICAgICJjb20uYXBwbGUuc3BlZWNoLnZvaWNlLnByZWZzIgotICAgICJjb20u
YXBwbGUuc3lzdGVtc291bmQiCi0gICAgImNvbS5hcHBsZS51bml2ZXJzYWxhY2Nlc3MiCi0gICAg
ImVkdS5taXQuS2VyYmVyb3MiCi0gICAgInBicyIpIDs7IE5lZWRlZCBmb3IgTlNBdHRyaWJ1dGVk
U3RyaW5nIDxyZGFyOi8vcHJvYmxlbS8xMDg0NDMyMT4KLQotKGFsbG93LXJlYWRpbmctZ2xvYmFs
LXByZWZlcmVuY2VzKQotCi07IChUZW1wb3JhcnkpIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0
aCBub24tQ0ZQcmVmZXJlbmNlcyByZWFkZXJzLgotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAobGl0
ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLlZpZXdCcmlkZ2UucGxpc3QiKSkK
LQotOyBGSVhNRTogVGhpcyBpcyBuZWVkZWQgZm9yIHNvbWUgc2VjdXJpdHkgZnJhbWV3b3JrIGNh
bGxzICh0aGF0IHVzZSBub24tQ0ZQcmVmZXJlbmNlcyByZWFkZXJzKQotKGFsbG93IGZpbGUtcmVh
ZC1kYXRhCi0gICAgKGxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1
cml0eS5wbGlzdCIpCi0gICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29t
LmFwcGxlLnNlY3VyaXR5LnBsaXN0IikpCi0KLTs7IE9uLWRpc2sgV2ViS2l0MiBmcmFtZXdvcmsg
bG9jYXRpb24sIHRvIGFjY291bnQgZm9yIGRlYnVnIGluc3RhbGxhdGlvbnMgb3V0c2lkZSBvZiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcywKLTs7IGFuZCB0byBhbGxvdyBpc3N1aW5nIGV4dGVu
c2lvbnMuCi0oYWxsb3ctcmVhZC1kaXJlY3RvcnktYW5kLWlzc3VlLXJlYWQtZXh0ZW5zaW9ucyAo
cGFyYW0gIldFQktJVDJfRlJBTUVXT1JLX0RJUiIpKQotCi07OyBBbGxvdyBpc3N1aW5nIGV4dGVu
c2lvbnMgdG8gc3lzdGVtIGxpYnJhcmllcyB0aGF0IHRoZSBOZXR3b3JrIHByb2Nlc3MgY2FuIGFs
cmVhZHkgcmVhZC4KLTs7IFRoaXMgaXMgdG8gYXZvaWQgd2FybmluZ3MgYXR0ZW1wdGluZyB0byBj
cmVhdGUgZXh0ZW5zaW9ucyBmb3IgdGhlc2UgcmVzb3VyY2VzLgotKGFsbG93LXJlYWQtZGlyZWN0
b3J5LWFuZC1pc3N1ZS1yZWFkLWV4dGVuc2lvbnMgIi9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9XZWJJbnNwZWN0b3JVSS5mcmFtZXdvcmsiKQotCi0jaWYgVVNFKFNZU1RFTV9DT05U
RU5UX1BBVEgpCi0obWFwIGFsbG93LXJlYWQtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLWV4dGVu
c2lvbnMKLSAgICByZWFkLWRpcmVjdG9yeS1hbmQtaXNzdWUtcmVhZC1leHRlbnNpb24tc2Vjb25k
YXJ5LXBhdGhzKQotI2VuZGlmCi0KLTs7IFNhbmRib3ggZXh0ZW5zaW9ucwotKGRlZmluZSAoYXBw
bHktcmVhZC1hbmQtaXNzdWUtZXh0ZW5zaW9uIG9wIHBhdGgtZmlsdGVyKQotICAgIChvcCBmaWxl
LXJlYWQqIHBhdGgtZmlsdGVyKQotICAgIChvcCBmaWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWly
ZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQiKSBwYXRo
LWZpbHRlcikpKQotKGRlZmluZSAoYXBwbHktd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbiBvcCBw
YXRoLWZpbHRlcikKLSAgICAob3AgZmlsZS13cml0ZSogcGF0aC1maWx0ZXIpCi0gICAgKG9wIGZp
bGUtaXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBw
bGUuYXBwLXNhbmRib3gucmVhZC13cml0ZSIpIHBhdGgtZmlsdGVyKSkpCi0oZGVmaW5lIChyZWFk
LW9ubHktYW5kLWlzc3VlLWV4dGVuc2lvbnMgcGF0aC1maWx0ZXIpCi0gICAgKGFwcGx5LXJlYWQt
YW5kLWlzc3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikpCi0oZGVmaW5lIChyZWFkLXdy
aXRlLWFuZC1pc3N1ZS1leHRlbnNpb25zIHBhdGgtZmlsdGVyKQotICAgIChhcHBseS1yZWFkLWFu
ZC1pc3N1ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpCi0gICAgKGFwcGx5LXdyaXRlLWFu
ZC1pc3N1ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpKQotKHJlYWQtb25seS1hbmQtaXNz
dWUtZXh0ZW5zaW9ucyAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZCIpKQot
KHJlYWQtd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbnMgKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFw
cC1zYW5kYm94LnJlYWQtd3JpdGUiKSkKLQotKGFsbG93IG1hY2gtbG9va3VwCi0jaWYgUExBVEZP
Uk0oTUFDKQotICAgICh3aXRoIHJlcG9ydCkgKHdpdGggdGVsZW1ldHJ5KQotI2VuZGlmCi0gICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXVkaW8uQXVkaW9Db21wb25lbnRSZWdpc3RyYXIiKQot
ICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmF3ZGQiKQotI2lmICFFTkFCTEUoQ0ZQUkVGU19E
SVJFQ1RfTU9ERSkKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5hZ2VudCIp
Ci0jZW5kaWYKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb29raWVkIikKLSAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5pY29uc2VydmljZXMiKQotICAgIChnbG9iYWwtbmFtZSAiY29t
LmFwcGxlLmljb25zZXJ2aWNlcy5zdG9yZSIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
c3lzdGVtLmxvZ2dlciIpCi0pCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBs
ZS1pbnRlcm5hbCkKLSAgICAoYWxsb3cgbWFjaC1sb29rdXAKLSAgICAgICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUuYW5hbHl0aWNzZCIpCi0gICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LmRpYWdub3N0aWNkIikpKQotCi07OyBWYXJpb3VzIHNlcnZpY2VzIHJlcXVpcmVkIGJ5IEFwcEtp
dCBhbmQgb3RoZXIgZnJhbWV3b3JrcwotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgICAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUuUG93ZXJNYW5hZ2VtZW50LmNvbnRyb2wiKQotICAgICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLlN5c3RlbUNvbmZpZ3VyYXRpb24uY29uZmlnZCIpCi0gICAgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXNzZXJ0aW9uZC5wcm9jZXNzYXNzZXJ0aW9uY29ubmVj
dGlvbiIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXVkaW8uU3lzdGVtU291bmRT
ZXJ2ZXItT1NYIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5hdWRpb2hh
bGQiKQotI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5jZnByZWZzZC5kYWVtb24iKQotI2VuZGlmCi0gICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUuY29yZXNlcnZpY2VzLmxhdW5jaHNlcnZpY2VzZCIpCi0gICAgICAgKGds
b2JhbC1uYW1lICJjb20uYXBwbGUuZm9udHMiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFw
cGxlLm1lZGlhcmVtb3RlZC54cGMiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxv
Z2QiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxvZ2QuZXZlbnRzIikKLSAgICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sc2QubWFwZGIiKQotICAgICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLmxza2RkIikgOzsgPHJkYXI6Ly9wcm9ibGVtLzQ5MTIzODU1PgotICAgICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRjY2QiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29t
LmFwcGxlLnRjY2Quc3lzdGVtIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS50cnVz
dGQuYWdlbnQiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkNBUmVuZGVyU2VydmVy
IikgOyBOZWVkZWQgZm9yIFtDQUNvbnRleHQgcmVtb3RlQ29udGV4dFdpdGhPcHRpb25zXQotKQot
Ci07OyA8cmRhcjovL3Byb2JsZW0vNDcyNjgxNjY+Ci0oYWxsb3cgbWFjaC1sb29rdXAgKHhwYy1z
ZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5NVExDb21waWxlclNlcnZpY2UiKSkKLQotKGRlbnkgbWFj
aC1sb29rdXAgKHdpdGggbm8tbG9nKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkNvcmVT
ZXJ2aWNlcy5jb3Jlc2VydmljZXNkIikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5EaXNr
QXJiaXRyYXRpb24uZGlza2FyYml0cmF0aW9uZCIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUuVmlld0JyaWRnZUF1eGlsaWFyeSIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUud2lu
ZG93c2VydmVyLmFjdGl2ZSIpKQotCi07OyBOZWVkZWQgdG8gc3VwcG9ydCBlbmNyeXB0ZWQgbWVk
aWEgcGxheWJhY2sgPHJkYXI6Ly9wcm9ibGVtLzQwMDM4NDc4PgotKGFsbG93IG1hY2gtbG9va3Vw
Ci0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuU2VjdXJpdHlTZXJ2ZXIiKQotICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLm9jc3BkIikpCi0KLShhbGxvdyBmaWxlLXJlYWQqIChzdWJwYXRo
ICIvcHJpdmF0ZS92YXIvZGIvbWRzL3N5c3RlbSIpKSA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUg
cmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS85NTM4NDE0PiBpcyBmaXhlZC4KLSh3aXRoLWZp
bHRlciAodWlkIDApCi0gICAgKGFsbG93IGZpbGUtd3JpdGUqCi0gICAgICAgIChzdWJwYXRoICIv
cHJpdmF0ZS92YXIvZGIvbWRzL3N5c3RlbSIpKSA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVt
b3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS85NTM4NDE0PiBpcyBmaXhlZC4KLSkKLQotKGFsbG93
IGZpbGUtcmVhZCoKLSAgICAgICAoc3VicGF0aCAiL3ByaXZhdGUvdmFyL2RiL21kcyIpCi0gICAg
ICAgKGxpdGVyYWwgIi9wcml2YXRlL3Zhci9kYi9EZXRhY2hlZFNpZ25hdHVyZXMiKSkKLQotKGFs
bG93IGlwYy1wb3NpeC1zaG0tcmVhZCogaXBjLXBvc2l4LXNobS13cml0ZS1kYXRhIGlwYy1wb3Np
eC1zaG0td3JpdGUtY3JlYXRlCi0gICAgICAgKGlwYy1wb3NpeC1uYW1lICJjb20uYXBwbGUuQXBw
bGVEYXRhYmFzZUNoYW5nZWQiKSkKLQotOzsgQ29yZUZvdW5kYXRpb24uIFdlIGRvbid0IGltcG9y
dCBjb20uYXBwbGUuY29yZWZvdW5kYXRpb24uc2IsIGJlY2F1c2UgaXQgYWxsb3dzIHVubmVjZXNz
YXJ5IGFjY2VzcyB0byBwYXN0ZWJvYXJkLgotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgKGdsb2Jh
bC1uYW1lLXByZWZpeCAiY29tLmFwcGxlLmRpc3RyaWJ1dGVkX25vdGlmaWNhdGlvbnMiKQotI2lm
ICFIQVZFKENTQ0hFQ0tGSVhESVNBQkxFKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkNv
cmVTZXJ2aWNlcy5jb3Jlc2VydmljZXNkIikKLSNlbmRpZgotKQotCi0oYWxsb3cgZmlsZS1yZWFk
LWRhdGEKLSAgICAobGl0ZXJhbCAiL2Rldi9hdXRvZnNfbm93YWl0IikpIDsgVXNlZCBieSBDRiB0
byBjaXJjdW12ZW50IGF1dG9tb3VudCB0cmlnZ2VycwotKGFsbG93IGlwYy1wb3NpeC1zaG0KLSAg
ICAoaXBjLXBvc2l4LW5hbWUtcHJlZml4ICJDRlBCUzoiKSkgOyA8cmRhcjovL3Byb2JsZW0vMTM3
NTc0NzU+Ci0oYWxsb3cgc3lzdGVtLWZzY3RsIChmc2N0bC1jb21tYW5kIChfSU8gImgiIDQ3KSkp
Ci0KLTs7IE5ldHdvcmtpbmcKLShhbGxvdyBuZXR3b3JrLW91dGJvdW5kCi0gICAgICAgOzsgT2Jq
QyBtYXBfaW1hZ2VzIG5lZWRzIHRvIHNlbmQgbG9nZ2luZyBkYXRhIHRvIHN5c2xvZy4gPHJkYXI6
Ly9wcm9ibGVtLzM5Nzc4OTE4PgotICAgICAgIChsaXRlcmFsICIvcHJpdmF0ZS92YXIvcnVuL3N5
c2xvZyIpCi0pCi0KLTs7IENGTmV0d29yawotKGFsbG93IGZpbGUtcmVhZC1kYXRhIChwYXRoICIv
cHJpdmF0ZS92YXIvZGIvbnN1cmxzdG9yYWdlZC9kYWZzYURhdGEuYmluIikpCi0KLSNpZiBQTEFU
Rk9STShNQUMpCi07OyBGSVhNRSBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxl
bS85MzQ3MjA1PiArIHJlbGF0ZWQgcmFkYXIgaW4gU2FmYXJpIGlzIGZpeGVkCi0oYWxsb3cgbWFj
aC1sb29rdXAKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5zeXN0ZW0ubG9nZ2VyIikK
LSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5zeXN0ZW0ubm90aWZpY2F0aW9uX2NlbnRl
ciIpKQotI2VuZGlmCi0KLShkZW55IGZpbGUtd3JpdGUtY3JlYXRlICh2bm9kZS10eXBlIFNZTUxJ
TkspKQotCi07OyBSZXNlcnZlIGEgbmFtZXNwYWNlIGZvciBhZGRpdGlvbmFsIHByb3RlY3RlZCBl
eHRlbmRlZCBhdHRyaWJ1dGVzLgotKGRlbnkgZmlsZS1yZWFkLXhhdHRyIGZpbGUtd3JpdGUteGF0
dHIgKHhhdHRyLXByZWZpeCAiY29tLmFwcGxlLnNlY3VyaXR5LnByaXZhdGUuIikpCi0KLShkZW55
IGZpbGUtcmVhZCogZmlsZS13cml0ZSogKHdpdGggbm8tbG9nKQotICAgICAgIDs7IEZJWE1FOiBT
aG91bGQgYmUgcmVtb3ZlZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vMTA0NjM4ODE+IGlzIGZpeGVk
LgotICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5M
YXVuY2hTZXJ2aWNlcy5RdWFyYW50aW5lRXZlbnRzVjIiKQotICAgICAgIChob21lLWxpdGVyYWwg
Ii9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcy5RdWFyYW50aW5l
RXZlbnRzVjItam91cm5hbCIpKQotCi07OyBEZW55IGFjY2VzcyBuZWVkZWQgZm9yIHVubmVjZXNz
YXJ5IE5TQXBwbGljYXRpb24gaW5pdGlhbGl6YXRpb24uCi07OyBGSVhNRTogVGhpcyBjYW4gYmUg
cmVtb3ZlZCBvbmNlIDxyZGFyOi8vcHJvYmxlbS8xMzAxMTYzMz4gaXMgZml4ZWQuCi0oZGVueSBm
aWxlLXJlYWQqICh3aXRoIG5vLWxvZykKLSAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkvSW5wdXRN
YW5hZ2VycyIpCi0gICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvSW5wdXRNYW5hZ2VycyIp
KQotKGRlbnkgdXNlci1wcmVmZXJlbmNlLXJlYWQgKHdpdGggbm8tbG9nKQotICAgIChwcmVmZXJl
bmNlLWRvbWFpbiAiY29tLmFwcGxlLnNwZWVjaC5yZWNvZ25pdGlvbi5BcHBsZVNwZWVjaFJlY29n
bml0aW9uLnByZWZzIikpCi0oZGVueSBtYWNoLWxvb2t1cCAod2l0aCBuby1sb2cpCi0gICAgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY29yZXNlcnZpY2VzLmFwcGxlZXZlbnRzIikKLSAgICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXN0ZWJvYXJkLjEiKQotICAgICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLnNwZWVjaC5yZWNvZ25pdGlvbnNlcnZlciIpKQotI2lmIFBMQVRGT1JN
KE1BQykKLTs7IEFsc28gcGFydCBvZiB1bm5lY2Vzc2FyeSBOU0FwcGxpY2F0aW9uIGluaXRpYWxp
emF0aW9uLCBidXQgd2UgY2FuJ3QgYmxvY2sgYWNjZXNzIHRvIHRoZXNlIHlldCwgc2VlIDxyZGFy
Oi8vcHJvYmxlbS8xMzg2OTc2NT4uCi0oYWxsb3cgZmlsZS1yZWFkKgotICAgICAgIChzdWJwYXRo
ICIvTGlicmFyeS9Db21wb25lbnRzIikKLSAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkvS2V5Ym9h
cmQgTGF5b3V0cyIpCi0gICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5L0lucHV0IE1ldGhvZHMiKQot
ICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0NvbXBvbmVudHMiKQotICAgICAgIChob21l
LXN1YnBhdGggIi9MaWJyYXJ5L0tleWJvYXJkIExheW91dHMiKQotICAgICAgIChob21lLXN1YnBh
dGggIi9MaWJyYXJ5L0lucHV0IE1ldGhvZHMiKSkKLSNlbmRpZgotCi07OyBEYXRhIERldGVjdG9y
cwotKGFsbG93IGZpbGUtcmVhZCogKHN1YnBhdGggIi9wcml2YXRlL3Zhci9kYi9kYXRhZGV0ZWN0
b3JzL3N5cyIpKQotCi07OyBBbGxvdyBhY2Nlc3NlcyB0byBISUQKLShhbGxvdyBpb2tpdC1vcGVu
Ci0gICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJJT0hJRExpYlVzZXJDbGllbnQiKSkKLQot
OzsgQWxsb3cgYWNjZXNzZXMgdG8gTG9jYWxBdXRoZW50aWNhdGlvbiBhbmQgUmVtb3RlU2Vydmlj
ZQotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQ29yZUF1
dGhlbnRpY2F0aW9uLmFnZW50IikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5yZW1vdGVk
IikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA3ZWVlODA2YmVmYzIxODc1MjMyYjQ0ZjI0ODFhYjBkYWY0NGYwMWY5Li44NjJjM2E2M2Fl
NWU4NzBjYmJlOWZiN2E3NjgzYWYwYmE1NDFmM2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3LDcgKzE3LDYgQEAKIAkJCQk1MTdC
NUY2RDI3NUIwN0MzMDAyREMyMkQgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk1QzE1
NzlERjI3MTY1RTA4MDBFRDUyODAgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk1Q0FG
N0FBOTI2RjkzRjlGMDAwM0YxOUUgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCQk1NzQy
QTJGQTI1MzU2MTlEMDBCN0JBMTQgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQlCQ0E4
RDQ2ODE1QkNFMEQ2MDA5REMxRjEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk3QTdF
OERGQzI3NDgzQTEyMDBEQ0M5N0EgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQkzNzJF
QkI0OTIwMTdFNkNGMDAwODUwNjQgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKQEAgLTExMDUs
MjcgKzExMDQsMTIgQEAKIAkJNTcwREFBQzIyMzAzNzMwMzAwRThGQzA0IC8qIE5mY0Nvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERB
QUMwMjMwMzczMDMwMEU4RkMwNCAvKiBOZmNDb25uZWN0aW9uLmggKi87IH07CiAJCTU3MERBQUM2
MjMwMzdGN0YwMEU4RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQUFDNDIzMDM3RjdFMDBF
OEZDMDQgLyogV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5oICovOyB9OwogCQk1NzBEQUFDQTIz
MDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5mY0RyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREFBQzgyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBO
ZmNEcml2ZXIuaCAqLzsgfTsKLQkJNTcyRUJCQkYyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhu
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJCQjI1MzZBNjBBMDAwNTUyQjMg
LyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKLQkJNTcyRUJCQzAyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzJFQkJCQzI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKLQkJNTcyRUJCQzEyNTM2QTYwQTAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJCRDI1MzZBNjBBMDAwNTUyQjMgLyogV2Vi
QXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKLQkJNTcyRUJCQzIyNTM2QTYw
QTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJCRTI1MzZBNjBBMDAwNTUyQjMgLyog
V2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCAqLzsgfTsKLQkJNTcyRUJCQzQyNTM2QUI4NDAwMDU1
MkIzIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiIGluIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJDMzI1MzZBQjg0MDAwNTUy
QjMgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2IgKi87IH07Ci0JCTU3MkVC
QkM5MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQzYyNTM2QUZENTAwMDU1
MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggKi87IH07Ci0JCTU3MkVCQkNDMjUzNkIwNEYw
MDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQ0IyNTM2QjA0RjAwMDU1MkIz
IC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi87IH07Ci0JCTU3MkVCQkQ1MjUz
NkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEMjI1MzZDODg1MDAwNTUy
QjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oICovOyB9OwogCQk1NzJFQkJENzI1MzdF
QkFFMDAwNTUyQjMgLyogRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVDQTY4MEQzMUU2OTA0QjUwMDczMUQy
MCAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oICovOyB9OwogCQk1NzJFQkJEQTI1MzhG
NkI0MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkQ4MjUzOEY2QTEwMDA1NTJC
MyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tICovOyB9OwogCQk1NzJFQkJEQjI1MzhG
NkI2MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDkyNTM4RjZBMTAwMDU1MkIz
IC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaCAqLzsgfTsKIAkJNTcyRUJCREQyNTM5MjE4
MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQ
SS5oICovOyB9OwogCQk1NzJGRDQ0MzIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVU
b1dpbmRvd09ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzJGRDQ0MTIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRv
d09ic2VydmVyLmggKi87IH07CiAJCTU3NDIxNzkyMjQwMEUyODYwMDJCMzAzRCAvKiBMb2NhbEF1
dGhlbnRpY2F0aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0QgLyogTG9jYWxBdXRoZW50aWNhdGlvblNQ
SS5oICovOyB9OwotCQk1NzQyQTJFQjI1MzU2MTNGMDBCN0JBMTQgLyogQXV4aWxpYXJ5UHJvY2Vz
c01haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUNFOTEyMEYyMjkzQzI1RjAwNUJFQzc4IC8qIEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCAqLzsg
fTsKLQkJNTc0MkEyRUMyNTM1NjEzRjAwQjdCQTE0IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VD
NDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VNYWluLm1tICovOyB9OwotCQk1NzQyQTJFRTI1MzU2MTNG
MDBCN0JBMTQgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNERTQ2ODE1QTkxNzYzMDA4RDI2RkMgLyogRm91
bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07Ci0JCTU3NDJBMkVGMjUzNTYxM0YwMEI3QkExNCAvKiBX
ZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOERDMkVGNUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdC5mcmFtZXdvcmsgKi87
IH07Ci0JCTU3NDJBMzA4MjUzNThBMDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3NDJBMzA2MjUzNThBMDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCAqLzsgfTsKLQkJNTc0MkEzMEQyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhu
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTc0MkEzMEEyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oICovOyB9OwotCQk1NzQyQTMxODI1MzY0OEU1MDBCN0JBMTQgLyog
V2ViQXV0aG5Qcm9jZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzQyQTMxNTI1MzY0OEU0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmggKi87
IH07CiAJCTU3NDcyOEQxMjM0NTZFOTgwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzQ3
MjhDRjIzNDU2RTk4MDAxNzAwQUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU3NDcyOEQ0MjM0
NTcwQUUwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDcyOEQzMjM0NTcw
QUUwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaCAqLzsgfTsK
IAkJNTc1OTdFQjkyMTgxMUQ5QTAwMzdGOTI0IC8qIEN0YXBIaWREcml2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk3RUI3MjE4MTFEOUEwMDM3
RjkyNCAvKiBDdGFwSGlkRHJpdmVyLmggKi87IH07CkBAIC0yNDk1LDI3ICsyNDc5LDYgQEAKIAkJ
CXJlbW90ZUdsb2JhbElEU3RyaW5nID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2OwogCQkJcmVt
b3RlSW5mbyA9IFdlYktpdDsKIAkJfTsKLQkJNTc0MkEyRTcyNTM1NjEzRjAwQjdCQTE0IC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKLQkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94
eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9q
ZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5VHlwZSA9IDE7Ci0JCQlyZW1vdGVHbG9iYWxJRFN0cmlu
ZyA9IEUxQUMyRTI3MjBGN0I5NEMwMEIwODk3RDsKLQkJCXJlbW90ZUluZm8gPSAiVW5sb2NrIEtl
eWNoYWluIjsKLQkJfTsKLQkJNTc0MkEyRTkyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSAqLyA9IHsKLQkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNv
bnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVj
dCAqLzsKLQkJCXByb3h5VHlwZSA9IDE7Ci0JCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDhEQzJF
RjRGMDQ4NkE2OTQwMDk4QjIxNjsKLQkJCXJlbW90ZUluZm8gPSBXZWJLaXQ7Ci0JCX07Ci0JCTU3
NDJBMkY5MjUzNTYxOUQwMEI3QkExNCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7Ci0JCQljb250YWluZXJQb3J0YWwgPSAwODY3
RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87Ci0JCQlwcm94eVR5cGUg
PSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1NzQyQTJFNTI1MzU2MTNGMDBCN0JBMTQ7
Ci0JCQlyZW1vdGVJbmZvID0gV2ViQXV0aGVudGljYXRpb247Ci0JCX07CiAJCTVDMTU3OUQwMjcx
NjVCMkYwMEVENTI4MCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhDb250YWluZXJJdGVtUHJveHk7CiAJCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQw
MjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3QgKi87CkBAIC01MDA4LDM3ICs0OTcxLDE2IEBA
CiAJCTU3MERBQUM1MjMwMzdGN0UwMEU4RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwREFBQzgyMzAzODVGRDAwRThGQzA0IC8q
IEN0YXBOZmNEcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3RhcE5mY0RyaXZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzBEQUFDOTIzMDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5m
Y0RyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwTmZjRHJpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQjkyNTM2QTA2RTAwMDU1MkIzIC8qIEluZm8t
aU9TLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5wbGlzdDsgbmFtZSA9ICJJbmZvLWlPUy5wbGlzdCI7IHBhdGggPSAiV2ViQXV0aG5Q
cm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1p
T1MucGxpc3QiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCTU3MkVCQkJBMjUzNkEw
NkUwMDA1NTJCMyAvKiBJbmZvLU9TWC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Q7IG5hbWUgPSAiSW5mby1PU1gucGxpc3Qi
OyBwYXRoID0gIldlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2Vi
QXV0aG5TZXJ2aWNlL0luZm8tT1NYLnBsaXN0Ijsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9
OwogCQk1NzJFQkJCQjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQ
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkJDMjUzNkE2MEEwMDA1NTJCMyAv
KiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJCRDI1MzZBNjBBMDAwNTUy
QjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkJFMjUzNkE2MEEwMDA1NTJCMyAv
KiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NzJFQkJDMzI1MzZBQjg0MDAwNTUyQjMgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRo
blByb2Nlc3Muc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5XZWJB
dXRoblByb2Nlc3Muc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkM1MjUz
NkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkM2MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRo
blByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRo
blByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJDQjI1
MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCRDEyNTM2Qzg4NTAwMDU1MkIz
IC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcy
RUJCRDMyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDgyNTM4RjZB
MTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzJFQkJEOTI1MzhGNkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxT
b2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBB
cHBBdHRlc3RTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwQXR0ZXN0U1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlk
TW92ZVRvV2luZG93T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlld0RpZE1vdmVUb1dp
bmRvd09ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDIxNzkxMjQw
MEUwOTgwMDJCMzAzRCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExvY2FsQXV0aGVudGljYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NTc0MkEyRjcyNTM1NjEzRjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBj
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAid3JhcHBl
ci54cGMtc2VydmljZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJL
aXQuV2ViQXV0aG4ueHBjOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk1
NzQyQTMwNjI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMw
NzI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJB
MzBBMjUzNThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzBCMjUzNThFRkQw
MEI3QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMwQzI1MzU4RUZEMDBC
N0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzEzMjUzNjQ4RTQwMEI3QkEx
NCAvKiBXZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1NzQyQTMxNDI1MzY0OEU0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzE1MjUzNjQ4RTQwMEI3QkExNCAvKiBXZWJB
dXRoblByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Q
cm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzFBMjUzNjc1RTkw
MEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJBdXRoblByb2Nlc3NJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJB
MzFDMjUzNjc1RjYwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTU3NDJBMzFEMjUzNjc1RjYwMEI3QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1
dGhuUHJvY2Vzcy5zYi5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5z
Yi5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUUyNTM2OTQ5MzAwQjdC
QTE0IC8qIFdlYkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NzQ3MjhDRjIzNDU2RTk4MDAxNzAwQUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDcyOEQwMjM0NTZFOTgwMDE3MDBBRiAvKiBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0NzI4RDMy
MzQ1NzBBRTAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxMDQsNyArNTA0Niw2IEBACiAJCTU3OUYxQkY4MjND
ODBFQzYwMEM3RDRCNCAvKiBfV0tXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlSW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNw
b25zZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OUYxQkZBMjND
ODExQ0YwMEM3RDRCNCAvKiBBUElXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFQSVdlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5RjFCRkIyM0M4MTFDRjAwQzdENEI0IC8q
IEFQSVdlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQVBJV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3QTlGRjA3MjUyQkU2RTAwMDZBMjA0MCAvKiBXZWJBdXRo
blNlcnZpY2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0E5RkYxNTI1MkM2QUVGMDA2QTIwNDAg
LyogbGliV1RGLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlw
ZSA9IGFyY2hpdmUuYXI7IHBhdGggPSBsaWJXVEYuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJNTdBQzhGNEUyMTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5lY3Rpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSGlkQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1N0FDOEY0RjIxN0ZFRUQ5MDA1NTQzOEMgLyogSGlkQ29ubmVjdGlvbi5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IEhpZENvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01MTQ3LDcgKzUwODgsNiBAQAogCQk1N0VCMkUzOTIxRTE5ODNFMDBCODlDREYg
LyogVTJmQXV0aGVudGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVMmZBdXRoZW50aWNh
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFQkUyNjgyMzQ2NzZDNTAw
OEQ4QUY5IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJ
V2ViQXV0aGVudGljYXRpb25QYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
N0VCRTI2OTIzNDY3NkM1MDA4RDhBRjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTdFRkM3N0QyNTUwRUI4NTAwRjk0NzdEIC8qIGNvbS5h
cHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFw
cGxlLldlYktpdC5XZWJBdXRobi5zYi5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTdGQUJCMEUyNTgxN0NGMDAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RkFCQjEwMjU4MTgyN0MwMDU5REM5NSAvKiBBdXRo
ZW50aWNhdGlvblNlcnZpY2VzQ29yZVNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRp
Y2F0aW9uU2VydmljZXNDb3JlU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTdGQUJCMTEyNTgxODI3QzAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3Jl
U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvblNlcnZpY2Vz
Q29yZVNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzI3MiwxNSAr
NzIxMiw2IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07Ci0JCTU3NDJBMkVEMjUzNTYxM0YwMEI3QkExNCAvKiBGcmFtZXdvcmtzICovID0g
ewotCQkJaXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJNTc0MkEyRUUyNTM1NjEzRjAwQjdCQTE0
IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJNTc0MkEyRUYy
NTM1NjEzRjAwQjdCQTE0IC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJ
CSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKIAkJ
NUMxNTc5RDQyNzE2NUIyRjAwRUQ1MjgwIC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7
CkBAIC03MzYwLDcgKzcyOTEsNiBAQAogCQkJCTUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3
ZWJwdXNodG9vbCAqLywKIAkJCQkyRDlGQjIyODIzNzUyMzgzMDA0OUY5MzYgLyogY29tLmFwcGxl
LldlYktpdC5HUFUueHBjICovLAogCQkJCUJDODI4M0IxMTZCNEJGNzcwMEEyNzhGRSAvKiBjb20u
YXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcueHBjICovLAotCQkJCTU3NDJBMkY3MjUzNTYxM0YwMEI3
QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuLnhwYyAqLywKIAkJCQk3QTdFOERGODI3
NDgzOTI1MDBEQ0M5N0EgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkNhcHRpdmVQb3J0
YWwueHBjICovLAogCQkJCTM3MkVCQjQ2MjAxN0U2NDMwMDA4NTA2NCAvKiBjb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1lbnQueHBjICovLAogCQkJCUJDM0RFNDY2MTVBOTE3NjMw
MDhEMjZGQyAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBjICovLApAQCAtNzU4MCw3
ICs3NTEwLDYgQEAKIAkJCQlCQzAzMkQ1QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAq
LywKIAkJCQk1MTBDQzdEQTE2MTM4RTAxMDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCiAJ
CQkJMkQ5RkIxRkYyMzc1MjA5RDAwNDlGOTM2IC8qIEdQVVByb2Nlc3MgKi8sCi0JCQkJNTc0MkEy
RkYyNTM1NzU4MDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2VzcyAqLywKIAkJCQlDMENFNzI5RDEy
NDdFNzFEMDBCQzBFQzQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTA4OUMxNjY1RkU4NDEx
NThDMDJBQUMwNyAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJQzBDRTczMzUxMjQ3RjcwRTAwQkMwRUM0
IC8qIFNjcmlwdHMgKi8sCkBAIC03NzU4LDcgKzc2ODcsNiBAQAogCQkJCUExQjg5QjkyMjIxRTAy
MzMwMEVCNENFQSAvKiBTREtWYXJpYW50LnhjY29uZmlnICovLAogCQkJCTUxODNCMzkzMTM3OUY4
NUMwMEU4NzU0RSAvKiBTaGltLnhjY29uZmlnICovLAogCQkJCTFBNEY5NzZFMTAwRTdCNjYwMDYz
N0ExOCAvKiBWZXJzaW9uLnhjY29uZmlnICovLAotCQkJCTU3QTlGRjA3MjUyQkU2RTAwMDZBMjA0
MCAvKiBXZWJBdXRoblNlcnZpY2UueGNjb25maWcgKi8sCiAJCQkJN0E3RThERkEyNzQ4Mzk5MzAw
RENDOTdBIC8qIFdlYkNvbnRlbnRTZXJ2aWNlLkNhcHRpdmVQb3J0YWwueGNjb25maWcgKi8sCiAJ
CQkJMzcyRUJCNEEyMDE3RTc2MDAwMDg1MDY0IC8qIFdlYkNvbnRlbnRTZXJ2aWNlLkRldmVsb3Bt
ZW50LnhjY29uZmlnICovLAogCQkJCUJDQUNDNDBFMTZCMEI4QTgwMEI2RTA5MiAvKiBXZWJDb250
ZW50U2VydmljZS54Y2NvbmZpZyAqLywKQEAgLTEwNTE5LDc1ICsxMDQ0Nyw2IEBACiAJCQlwYXRo
ID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQk1NzQyQTJGRjI1
MzU3NTgwMDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzICovID0gewotCQkJaXNhID0gUEJYR3Jv
dXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk1NzQyQTMwMDI1MzU3NTgwMDBCN0JBMTQgLyogRW50
cnlQb2ludCAqLywKLQkJCQk1NzQyQTMxOTI1MzY3NUU5MDBCN0JBMTQgLyogaW9zICovLAotCQkJ
CTU3NDJBMzFCMjUzNjc1RjYwMEI3QkExNCAvKiBtYWMgKi8sCi0JCQkJNTc0MkEzMEMyNTM1OEVG
RDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCi0JCQkJ
NTc0MkEzMEEyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oICovLAotCQkJCTU3NDJBMzBCMjUzNThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCi0JCQkJNTc0MkEzMTQyNTM2NDhFNDAwQjdC
QTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5jcHAgKi8sCi0JCQkJNTc0MkEzMTUyNTM2NDhFNDAwQjdC
QTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5oICovLAotCQkJCTU3NDJBMzEzMjUzNjQ4RTQwMEI3QkEx
NCAvKiBXZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW4gKi8sCi0JCQkJNTc0MkEzMDcyNTM1OEEw
NDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCi0J
CQkJNTc0MkEzMDYyNTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oICovLAotCQkJKTsKLQkJCXBhdGggPSBXZWJBdXRoblByb2Nlc3M7Ci0JCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQk1NzQyQTMwMDI1MzU3NTgwMDBCN0JBMTQgLyog
RW50cnlQb2ludCAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0J
CQkJNTc0MkEzMDEyNTM1NzU4MDAwQjdCQTE0IC8qIENvY29hICovLAotCQkJKTsKLQkJCXBhdGgg
PSBFbnRyeVBvaW50OwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEz
MDEyNTM1NzU4MDAwQjdCQTE0IC8qIENvY29hICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0J
CQljaGlsZHJlbiA9ICgKLQkJCQk1NzQyQTMwMjI1MzU3NTgwMDBCN0JBMTQgLyogWFBDU2Vydmlj
ZSAqLywKLQkJCSk7Ci0JCQlwYXRoID0gQ29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwotCQl9OwotCQk1NzQyQTMwMjI1MzU3NTgwMDBCN0JBMTQgLyogWFBDU2VydmljZSAqLyA9IHsK
LQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTc0MkEzMDMyNTM1NzU4
MDAwQjdCQTE0IC8qIFdlYkF1dGhuU2VydmljZSAqLywKLQkJCQk1NzQyQTMxRTI1MzY5NDkzMDBC
N0JBMTQgLyogV2ViQXV0aG5TZXJ2aWNlRW50cnlQb2ludC5tbSAqLywKLQkJCSk7Ci0JCQlwYXRo
ID0gWFBDU2VydmljZTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTU3NDJB
MzAzMjUzNTc1ODAwMEI3QkExNCAvKiBXZWJBdXRoblNlcnZpY2UgKi8gPSB7Ci0JCQlpc2EgPSBQ
QlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTU3MkVCQkI5MjUzNkEwNkUwMDA1NTJCMyAv
KiBJbmZvLWlPUy5wbGlzdCAqLywKLQkJCQk1NzJFQkJCQTI1MzZBMDZFMDAwNTUyQjMgLyogSW5m
by1PU1gucGxpc3QgKi8sCi0JCQkpOwotCQkJcGF0aCA9IFdlYkF1dGhuU2VydmljZTsKLQkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTU3NDJBMzE5MjUzNjc1RTkwMEI3QkExNCAv
KiBpb3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTU3
NDJBMzFBMjUzNjc1RTkwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NJT1MubW0gKi8sCi0JCQkp
OwotCQkJcGF0aCA9IGlvczsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTU3
NDJBMzFCMjUzNjc1RjYwMEI3QkExNCAvKiBtYWMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsK
LQkJCWNoaWxkcmVuID0gKAotCQkJCTU3NDJBMzFEMjUzNjc1RjYwMEI3QkExNCAvKiBjb20uYXBw
bGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYi5pbiAqLywKLQkJCQk1NzQyQTMxQzI1MzY3NUY2
MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzTWFjLm1tICovLAotCQkJKTsKLQkJCXBhdGggPSBt
YWM7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk1NzUwNzVBNjIwQUI3NUFC
MDA2OTNFQTkgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTEwNjM1LDEwICsxMDQ5NCw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1NzYwODI4
QzIwMjk4NTQyMDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCAqLywK
IAkJCQk1NzYwODI4QjIwMjk4NTQyMDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmggKi8sCi0JCQkJNTcyRUJCRDEyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwICovLAotCQkJCTU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLmggKi8sCi0JCQkJNTcyRUJCRDMyNTM2Qzg4NTAwMDU1MkIz
IC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCi0JCQkJNTcyRUJC
Q0IyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8s
CiAJCQkpOwogCQkJcGF0aCA9IFdlYkF1dGhlbnRpY2F0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTEwNjYyLDggKzEwNTE3LDYgQEAKIAkJCQk1NzYwODI5NjIwMkJEOEJBMDAx
MTY2NzggLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwICovLAogCQkJCTU3
NjA4Mjk1MjAyQkQ4QkEwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eS5oICovLAogCQkJCTU3NjA4Mjk5MjAyQkRBRTIwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiAqLywKLQkJCQk1NzJFQkJDNTI1MzZBRkQ1MDAw
NTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwICovLAotCQkJCTU3MkVCQkM2MjUzNkFG
RDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5oICovLAogCQkJKTsKIAkJCXBhdGgg
PSBXZWJBdXRoZW50aWNhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMTQz
Niw3ICsxMTI4OSw2IEBACiAJCQkJNUMxNTc4RTUyNzBFMERCQzAwRUQ1MjgwIC8qIGNvbS5hcHBs
ZS5XZWJLaXQuYWRhdHRyaWJ1dGlvbmQuc2IuaW4gKi8sCiAJCQkJMkRCOTYwNTIyMzk4ODZCOTAw
MTAyNzkxIC8qIGNvbS5hcHBsZS5XZWJLaXQuR1BVLnNiLmluICovLAogCQkJCUE3OENDREQ4MTkz
QUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IuaW4gKi8sCi0J
CQkJNTdFRkM3N0QyNTUwRUI4NTAwRjk0NzdEIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4u
c2IuaW4gKi8sCiAJCQkJRTMxMzY2NEQyNjVFRTVBRjAwNTEwODRGIC8qIGNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudC5zYi5pbiAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwpAQCAtMTQ3MDAs
MTQgKzE0NTUyLDYgQEAKIAkJCQk1N0RDRURCMjIxNEM2MDRDMDAxNkI4NDcgLyogV2ViQXV0aGVu
dGljYXRpb25SZXF1ZXN0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQjMyMTRDNjA1
MzAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1N0RDRUQ3MTIxNDJFRTZDMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTc0MkEzMEQyNTM1
OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNTcyRUJCQzAyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzQyQTMxODI1MzY0
OEU1MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzJF
QkJENTI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNTcyRUJCQ0MyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzQyQTMwODI1MzU4QTA0MDBC
N0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAq
LywKLQkJCQk1NzJFQkJDMjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3MkVCQkM5MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJB
dXRoblByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRERBMEEyODYyN0U1NUU0RDAw
NUUwODZFIC8qIFdlYkF1dG9jYXBpdGFsaXplVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0
MkQ2MzQxMjJBMEVGREYwMEQyRkIzQSAvKiBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk5MEQzOUY1MjQzQkU2NDgwMDE5OTM4OCAvKiBXZWJBdXRvbWF0aW9uRE9N
V2luZG93T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTU1OTMsMjggKzE1NDM3LDYgQEAK
IAkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVz
aHRvb2wgKi87CiAJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wi
OwogCQl9OwotCQk1NzQyQTJFNTI1MzU2MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4gKi8gPSB7Ci0J
CQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTc0
MkEyRjMyNTM1NjEzRjAwQjdCQTE0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
TmF0aXZlVGFyZ2V0ICJXZWJBdXRobiIgKi87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk1NzQy
QTJFQTI1MzU2MTNGMDBCN0JBMTQgLyogU291cmNlcyAqLywKLQkJCQk1NzQyQTJFRDI1MzU2MTNG
MDBCN0JBMTQgLyogRnJhbWV3b3JrcyAqLywKLQkJCQk1NzQyQTJGMDI1MzU2MTNGMDBCN0JBMTQg
LyogUmVzb3VyY2VzICovLAotCQkJCTU3NDJBMkYxMjUzNTYxM0YwMEI3QkExNCAvKiBVbmxvY2sg
a2V5Y2hhaW4gKi8sCi0JCQkJNTc0MkEyRjIyNTM1NjEzRjAwQjdCQTE0IC8qIFByb2Nlc3MgV2Vi
QXV0aGVudGljYXRpb24gZW50aXRsZW1lbnRzICovLAotCQkJCTY1MTc1NzIzMjdDRkMyNEEwMEQ5
RkU0MCAvKiBDb3B5IFhQQyBTZXJ2aWNlIHRvIFNlY29uZGFyeSBQYXRoICovLAotCQkJKTsKLQkJ
CWJ1aWxkUnVsZXMgPSAoCi0JCQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTU3NDJBMkU2
MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJCTU3NDJBMkU4
MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5h
bWUgPSBXZWJBdXRobjsKLQkJCXByb2R1Y3ROYW1lID0gTmV0d29ya2luZzsKLQkJCXByb2R1Y3RS
ZWZlcmVuY2UgPSA1NzQyQTJGNzI1MzU2MTNGMDBCN0JBMTQgLyogY29tLmFwcGxlLldlYktpdC5X
ZWJBdXRobi54cGMgKi87Ci0JCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBl
LnhwYy1zZXJ2aWNlIjsKLQkJfTsKIAkJNUMxNTc5Q0MyNzE2NUIyRjAwRUQ1MjgwIC8qIHdlYnB1
c2hkICovID0gewogCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0
aW9uTGlzdCA9IDVDMTU3OUQ2MjcxNjVCMkYwMEVENTI4MCAvKiBCdWlsZCBjb25maWd1cmF0aW9u
IGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAid2VicHVzaGQiICovOwpAQCAtMTU4NzQsNyArMTU2
OTYsNiBAQAogCQkJCTM3MkVCQjM4MjAxN0U2NDMwMDA4NTA2NCAvKiBXZWJDb250ZW50LkRldmVs
b3BtZW50ICovLAogCQkJCUJDODI4M0IwMTZCNEJGNzcwMEEyNzhGRSAvKiBOZXR3b3JraW5nICov
LAogCQkJCTJEOUZCMjE2MjM3NTIzODMwMDQ5RjkzNiAvKiBHUFUgKi8sCi0JCQkJNTc0MkEyRTUy
NTM1NjEzRjAwQjdCQTE0IC8qIFdlYkF1dGhuICovLAogCQkJCUE3QUFEQTEwMTkzOTVDQTkwMDNF
QTFDNyAvKiBTYW5kYm94IFByb2ZpbGVzICovLAogCQkJCUUxQUMyRTI3MjBGN0I5NEMwMEIwODk3
RCAvKiBVbmxvY2sgS2V5Y2hhaW4gKi8sCiAJCQkJNTMyNUJEQ0QyMURGRjQ3NzAwQTBERUUxIC8q
IEFwcGx5IENvbmZpZ3VyYXRpb24gdG8gWENGaWxlTGlzdHMgKi8sCkBAIC0xNTkwMiwxMyArMTU3
MjMsNiBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwotCQk1NzQyQTJGMDI1MzU2MTNGMDBCN0JBMTQgLyogUmVzb3VyY2VzICovID0gewot
CQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKIAkJN0E3RThERUUyNzQ4MzkyNTAwRENDOTdBIC8qIFJl
c291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTU5MjMsNyArMTU3MzcsNiBAQAogCQkJZmls
ZXMgPSAoCiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYyIC8qIGNvbS5hcHBsZS5XZWJLaXQu
R1BVUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0
MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICov
LAotCQkJCTU3MkVCQkM0MjUzNkFCODQwMDA1NTJCMyAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1
dGhuUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRUI3RDI1MkIyN0IzMUI3NzAwOUNC
NTg2IC8qIGNvbS5hcHBsZS5XZWJLaXQud2VicHVzaGQuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJ
CUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNENyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBS
ZXNvdXJjZXMgKi8sCiAJCQkJNkJFOTY5QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0
aW9uX21vZGVsIGluIFJlc291cmNlcyAqLywKQEAgLTE2MTk2LDM2ICsxNjAwOSw2IEBACiAJCQlz
aGVsbFBhdGggPSAvYmluL3NoOwogCQkJc2hlbGxTY3JpcHQgPSAiU2NyaXB0cy9jaGVjay14Y2Zp
bGVsaXN0cy5zaFxuIjsKIAkJfTsKLQkJNTc0MkEyRjEyNTM1NjEzRjAwQjdCQTE0IC8qIFVubG9j
ayBrZXljaGFpbiAqLyA9IHsKLQkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKLQkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQlp
bnB1dFBhdGhzID0gKAotCQkJKTsKLQkJCW5hbWUgPSAiVW5sb2NrIGtleWNoYWluIjsKLQkJCW91
dHB1dFBhdGhzID0gKAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwotCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gIlVOTE9D
S19TQ1JJUFRfUEFUSD1cIiR7U1JDUk9PVH0vLi4vLi4vLi4vSW50ZXJuYWwvVG9vbHMvU2NyaXB0
cy91bmxvY2stc2FmYXJpLWVuZ2luZWVyaW5nLWtleWNoYWluLWlmLW5lZWRlZFwiXG5cbltbIC14
IFwiJHtVTkxPQ0tfU0NSSVBUX1BBVEh9XCIgXV0gJiYgZXhlYyBcIiR7VU5MT0NLX1NDUklQVF9Q
QVRIfVwiXG5cbmV4aXQgMFxuIjsKLQkJfTsKLQkJNTc0MkEyRjIyNTM1NjEzRjAwQjdCQTE0IC8q
IFByb2Nlc3MgV2ViQXV0aGVudGljYXRpb24gZW50aXRsZW1lbnRzICovID0gewotCQkJaXNhID0g
UEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0
NzsKLQkJCWZpbGVzID0gKAotCQkJKTsKLQkJCWlucHV0UGF0aHMgPSAoCi0JCQkJIiQoU1JDUk9P
VCkvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaCIsCi0JCQkpOwotCQkJbmFtZSA9ICJQ
cm9jZXNzIFdlYkF1dGhlbnRpY2F0aW9uIGVudGl0bGVtZW50cyI7Ci0JCQlvdXRwdXRQYXRocyA9
ICgKLQkJCQkiJChXS19QUk9DRVNTRURfWENFTlRfRklMRSkiLAotCQkJKTsKLQkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsK
LQkJCXNoZWxsU2NyaXB0ID0gIlNjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2hcbiI7Ci0J
CX07CiAJCTVDMTU3OEU2MjcwRTEyOTQwMEVENTI4MCAvKiBQcm9jZXNzIGFkYXR0cmlidXRpb25k
IEVudGl0bGVtZW50cyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsK
IAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNjQzOCwyNCArMTYyMjEsNiBA
QAogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKIAkJCXNoZWxsU2NyaXB0ID0gImV4cG9ydCBYUENf
QlVORExFU19UT19DT1BZX1RPX1NFQ09OREFSWV9QQVRIPVwiY29tLmFwcGxlLldlYktpdC5HUFUu
eHBjXCJcbmV4cG9ydCBYUENfQlVORExFX0lOU1RBTExfUEFUSF9JTl9TRUNPTkRBUllfUEFUSD1c
IiR7U0VDT05EQVJZX1NUQUdFRF9GUkFNRVdPUktfRElSRUNUT1JZfS9XZWJLaXQuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvWFBDU2VydmljZXNcIlxuXCIke1NSQ1JPT1R9L1NjcmlwdHMvY29weS14cGMt
c2VydmljZXMtdG8tc2Vjb25kYXJ5LXBhdGguc2hcIlxuIjsKIAkJfTsKLQkJNjUxNzU3MjMyN0NG
QzI0QTAwRDlGRTQwIC8qIENvcHkgWFBDIFNlcnZpY2UgdG8gU2Vjb25kYXJ5IFBhdGggKi8gPSB7
Ci0JCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sg
PSA4OwotCQkJZmlsZXMgPSAoCi0JCQkpOwotCQkJaW5wdXRGaWxlTGlzdFBhdGhzID0gKAotCQkJ
KTsKLQkJCWlucHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJbmFtZSA9ICJDb3B5IFhQQyBTZXJ2aWNl
IHRvIFNlY29uZGFyeSBQYXRoIjsKLQkJCW91dHB1dEZpbGVMaXN0UGF0aHMgPSAoCi0JCQkpOwot
CQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDE7Ci0JCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAi
ZXhwb3J0IFhQQ19CVU5ETEVTX1RPX0NPUFlfVE9fU0VDT05EQVJZX1BBVEg9XCJjb20uYXBwbGUu
V2ViS2l0LldlYkF1dGhuLnhwY1wiXG5leHBvcnQgWFBDX0JVTkRMRV9JTlNUQUxMX1BBVEhfSU5f
U0VDT05EQVJZX1BBVEg9XCIke1NFQ09OREFSWV9TVEFHRURfRlJBTUVXT1JLX0RJUkVDVE9SWX0v
V2ViS2l0LmZyYW1ld29yay9WZXJzaW9ucy9BL1hQQ1NlcnZpY2VzXCJcblwiJHtTUkNST09UfS9T
Y3JpcHRzL2NvcHkteHBjLXNlcnZpY2VzLXRvLXNlY29uZGFyeS1wYXRoLnNoXCJcbiI7Ci0JCX07
CiAJCTY1NzdGRkI5Mjc2OUMxNDYwMDExQUVDOCAvKiBDcmVhdGUgU3ltbGluayB0byBBbHQgUm9v
dCBQYXRoICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVp
bGRBY3Rpb25NYXNrID0gODsKQEAgLTE2ODY0LDE1ICsxNjYyOSw2IEBACiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Ci0JCTU3NDJBMkVBMjUz
NTYxM0YwMEI3QkExNCAvKiBTb3VyY2VzICovID0gewotCQkJaXNhID0gUEJYU291cmNlc0J1aWxk
UGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0J
CQkJNTc0MkEyRUIyNTM1NjEzRjAwQjdCQTE0IC8qIEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTU3NDJBMkVDMjUzNTYxM0YwMEI3QkExNCAvKiBYUENTZXJ2aWNl
TWFpbi5tbSBpbiBTb3VyY2VzICovLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwotCQl9OwogCQk1QzE1NzlEMjI3MTY1QjJGMDBFRDUyODAgLyogU291
cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE3MjUxLDggKzE3MDA3LDYgQEAKIAkJCQkxQTYwMjI0
QzE4QzE2QjlGMDBDM0U4QzkgLyogVmlzaXRlZExpbmtTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQThFN0QzQzE4QzE1MTQ5MDA1QTcwMkEgLyogVmlzaXRlZExp
bmtUYWJsZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTdEQ0VENzAyMTQyRUU2ODAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTU3MkVCQkJGMjUzNkE2
MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTcyRUJCQzEyNTM2QTYwQTAwMDU1MkIzIC8qIFdl
YkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzVC
MUJCQTIzQ0U5QzEzMDAyMDYzOUEgLyogV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUMwQTE5NTcxQzkwMDY4RjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNz
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI4MjNDRTlC
RkMwMDIwNjM5QSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMTc0MzEsMjEgKzE3MTg1LDYgQEAKIAkJCXRhcmdldCA9IDhEQzJFRjRGMDQ4NkE2OTQw
MDk4QjIxNiAvKiBXZWJLaXQgKi87CiAJCQl0YXJnZXRQcm94eSA9IDUxOTc5N0M4Mjc2MjdCMjMw
MEJFMEY4MyAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07Ci0JCTU3NDJBMkU2MjUz
NTYxM0YwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJY
VGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IEUxQUMyRTI3MjBGN0I5NEMwMEIwODk3RCAv
KiBVbmxvY2sgS2V5Y2hhaW4gKi87Ci0JCQl0YXJnZXRQcm94eSA9IDU3NDJBMkU3MjUzNTYxM0Yw
MEI3QkExNCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87Ci0JCX07Ci0JCTU3NDJBMkU4MjUz
NTYxM0YwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJY
VGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNiAv
KiBXZWJLaXQgKi87Ci0JCQl0YXJnZXRQcm94eSA9IDU3NDJBMkU5MjUzNTYxM0YwMEI3QkExNCAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87Ci0JCX07Ci0JCTU3NDJBMkZBMjUzNTYxOUQwMEI3
QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJYVGFyZ2V0RGVw
ZW5kZW5jeTsKLQkJCXRhcmdldCA9IDU3NDJBMkU1MjUzNTYxM0YwMEI3QkExNCAvKiBXZWJBdXRo
biAqLzsKLQkJCXRhcmdldFByb3h5ID0gNTc0MkEyRjkyNTM1NjE5RDAwQjdCQTE0IC8qIFBCWENv
bnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKIAkJNUMxNTc5Q0YyNzE2NUIyRjAwRUQ1MjgwIC8q
IFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5
OwogCQkJdGFyZ2V0ID0gRTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEIC8qIFVubG9jayBLZXljaGFp
biAqLzsKQEAgLTE3NzI4LDI3ICsxNzQ2Nyw2IEBACiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rp
b247CiAJCX07Ci0JCTU3NDJBMkY0MjUzNTYxM0YwMEI3QkExNCAvKiBEZWJ1ZyAqLyA9IHsKLQkJ
CWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVu
Y2UgPSA1N0E5RkYwNzI1MkJFNkUwMDA2QTIwNDAgLyogV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmln
ICovOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07
Ci0JCTU3NDJBMkY1MjUzNTYxM0YwMEI3QkExNCAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0g
WENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDU3
QTlGRjA3MjUyQkU2RTAwMDZBMjA0MCAvKiBXZWJBdXRoblNlcnZpY2UueGNjb25maWcgKi87Ci0J
CQlidWlsZFNldHRpbmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwotCQk1
NzQyQTJGNjI1MzU2MTNGMDBCN0JBMTQgLyogUHJvZHVjdGlvbiAqLyA9IHsKLQkJCWlzYSA9IFhD
QnVpbGRDb25maWd1cmF0aW9uOwotCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1N0E5
RkYwNzI1MkJFNkUwMDA2QTIwNDAgLyogV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmlnICovOwotCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKLQkJCX07Ci0JCQluYW1lID0gUHJvZHVjdGlvbjsKLQkJfTsKIAkJ
NUMxNTc5RDcyNzE2NUIyRjAwRUQ1MjgwIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVDMTU3OURE
MjcxNjVCRTUwMEVENTI4MCAvKiB3ZWJwdXNoZC54Y2NvbmZpZyAqLzsKQEAgLTE4MTM1LDE2ICsx
Nzg1Myw2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZh
dWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OwotCQk1NzQyQTJGMzI1MzU2
MTNGMDBCN0JBMTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJn
ZXQgIldlYkF1dGhuIiAqLyA9IHsKLQkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7Ci0JCQli
dWlsZENvbmZpZ3VyYXRpb25zID0gKAotCQkJCTU3NDJBMkY0MjUzNTYxM0YwMEI3QkExNCAvKiBE
ZWJ1ZyAqLywKLQkJCQk1NzQyQTJGNTI1MzU2MTNGMDBCN0JBMTQgLyogUmVsZWFzZSAqLywKLQkJ
CQk1NzQyQTJGNjI1MzU2MTNGMDBCN0JBMTQgLyogUHJvZHVjdGlvbiAqLywKLQkJCSk7Ci0JCQlk
ZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlv
bk5hbWUgPSBQcm9kdWN0aW9uOwotCQl9OwogCQk1QzE1NzlENjI3MTY1QjJGMDBFRDUyODAgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIndlYnB1c2hkIiAq
LyA9IHsKIAkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRp
b25zID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNw
cAppbmRleCBmNWJkODlmMWMzNTQ2OTQ5N2IyOWI1NjllNGI4ZDI0YjNiZjBjMWNiLi42ZmNlODU1
ODczYjhhMTc0ZDQ3YWJiMGY2OWZmNDc0ZjdjM2JmMDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApAQCAtMzEsOCArMzEsNiBAQAogI2luY2x1
ZGUgIkRlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLmgiCiAjaW5jbHVkZSAiRnJhbWVJbmZvRGF0YS5o
IgogI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCIK
LSNpbmNsdWRlICJXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJX
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNs
dWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtNzYsMjIgKzc0LDcg
QEAgdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6Om1ha2VDcmVkZW50aWFsKGNvbnN0
IEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXIKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBp
c1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IHByb2Nlc3NpbmdVc2VyR2VzdHVyZShmcmFtZSwgd2Vi
RnJhbWUtPmZyYW1lSUQoKSk7Ci0jaWYgSEFWRShVTklGSUVEX0FTQ19BVVRIX1VJKQotICAgIGJv
b2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gZmFsc2U7Ci0jZWxzZQotICAgIGJvb2wgdXNlV2ViQXV0
aG5Qcm9jZXNzID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKTsKLSNlbmRpZgotICAgIGlmICghdXNlV2ViQXV0
aG5Qcm9jZXNzKSB7Ci0gICAgICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpNYWtlQ3JlZGVudGlhbCh3ZWJG
cmFtZS0+ZnJhbWVJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBoYXNoLCBvcHRpb25zLCBpc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgaWYgKCFpc1dlYkJyb3dzZXIoKSkgewotICAgICAgICBXRUJBVVRITl9SRUxF
QVNFX0xPR19FUlJPUigibWFrZUNyZWRlbnRpYWw6IFRoZSAnbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmNyZWF0ZScgQVBJIGlzIG9ubHkgcGVybWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSAn
Y29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlcicgZW50aXRsZW1lbnQuIik7Ci0gICAgICAg
IGhhbmRsZXIoeyB9LCBzdGF0aWNfY2FzdDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4oMCksIEV4
Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgJ25hdmlnYXRvci5jcmVkZW50aWFs
cy5jcmVhdGUnIEFQSSBpcyBvbmx5IHBlcm1pdHRlZCBpbiBhcHBsaWNhdGlvbnMgd2l0aCB0aGUg
J2NvbS5hcHBsZS5kZXZlbG9wZXIud2ViLWJyb3dzZXInIGVudGl0bGVtZW50LiJfcyB9KTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVX
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpNYWtlQ3JlZGVudGlh
bChoYXNoLCBvcHRpb25zLCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxl
cikpOworICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpNYWtlQ3JlZGVudGlhbCh3ZWJGcmFtZS0+ZnJhbWVJ
RCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBoYXNoLCBvcHRpb25zLCBpc1Byb2Nlc3NpbmdVc2VyR2Vz
dHVyZSksIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgTWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0
aW9uLCBjb25zdCBTY29wZUFuZENyb3NzT3JpZ2luUGFyZW50JiBzY29wZUFuZENyb3NzT3JpZ2lu
UGFyZW50LCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQpAQCAtMTAxLDI2ICs4
NCw3IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29u
c3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1
dG8gaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUgPSBwcm9jZXNzaW5nVXNlckdlc3R1cmUoZnJhbWUs
IHdlYkZyYW1lLT5mcmFtZUlEKCkpOwotI2lmIEhBVkUoVU5JRklFRF9BU0NfQVVUSF9VSSkKLSAg
ICBib29sIHVzZVdlYkF1dGhuUHJvY2VzcyA9IGZhbHNlOwotI2Vsc2UKLSAgICBib29sIHVzZVdl
YkF1dGhuUHJvY2VzcyA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCk7Ci0jZW5kaWYKLSAgICBpZiAoIXVzZVdl
YkF1dGhuUHJvY2VzcykgewotICAgICAgICBtX3dlYlBhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6R2V0QXNzZXJ0aW9uKHdl
YkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMsIG1lZGlh
dGlvbiwgc2NvcGVBbmRDcm9zc09yaWdpblBhcmVudC5zZWNvbmQsIGlzUHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAg
aWYgKHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQuZmlyc3QgPT0gV2ViQXV0aG46OlNjb3BlOjpD
cm9zc09yaWdpbikgewotICAgICAgICBoYW5kbGVyKHsgfSwgKEF1dGhlbnRpY2F0b3JBdHRhY2ht
ZW50KTAsIEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgb3JpZ2luIG9mIHRo
ZSBkb2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iX3MgfSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIWlzV2ViQnJvd3NlcigpKSB7Ci0gICAgICAg
IFdFQkFVVEhOX1JFTEVBU0VfTE9HX0VSUk9SKCJnZXRBc3NlcnRpb246IFRoZSAnbmF2aWdhdG9y
LmNyZWRlbnRpYWxzLmdldCcgQVBJIGlzIG9ubHkgcGVybWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3
aXRoIHRoZSAnY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlcicgZW50aXRsZW1lbnQuIik7
Ci0gICAgICAgIGhhbmRsZXIoeyB9LCBzdGF0aWNfY2FzdDxBdXRoZW50aWNhdG9yQXR0YWNobWVu
dD4oMCksIEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgJ25hdmlnYXRvci5j
cmVkZW50aWFscy5nZXQnIEFQSSBpcyBvbmx5IHBlcm1pdHRlZCBpbiBhcHBsaWNhdGlvbnMgd2l0
aCB0aGUgJ2NvbS5hcHBsZS5kZXZlbG9wZXIud2ViLWJyb3dzZXInIGVudGl0bGVtZW50LiJfcyB9
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHZXRBc3Nl
cnRpb24oaGFzaCwgb3B0aW9ucywgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhh
bmRsZXIpKTsKKyAgICBtX3dlYlBhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6R2V0QXNzZXJ0aW9uKHdlYkZyYW1lLT5mcmFt
ZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMsIG1lZGlhdGlvbiwgc2NvcGVB
bmRDcm9zc09yaWdpblBhcmVudC5zZWNvbmQsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RG
TW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpp
c0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBo
YW5kbGVyKQpAQCAtMTMwLDIyICs5NCw3IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjppc0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvCiAKIHZv
aWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1
dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7
Ci0jaWYgSEFWRShVTklGSUVEX0FTQ19BVVRIX1VJKQotICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9j
ZXNzID0gZmFsc2U7Ci0jZWxzZQotICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkVuYWJsZWQoKTsKLSNlbmRpZgotICAgIGlmICghdXNlV2ViQXV0aG5Qcm9jZXNzKSB7Ci0gICAg
ICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjpJc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JB
dmFpbGFibGUoKSwgV1RGTW92ZShoYW5kbGVyKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBpZiAoIWlzV2ViQnJvd3NlcigpKSB7Ci0gICAgICAgIFdFQkFVVEhOX1JFTEVBU0VfTE9H
X0VSUk9SX05PX0ZSQU1FKCJpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGU6IFdlYkF1dGhuIGlzIG9ubHkgcGVybWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRo
ZSAnY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlcicgZW50aXRsZW1lbnQuIik7Ci0gICAg
ICAgIGhhbmRsZXIoZmFsc2UpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OklzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgp
LCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBtX3dlYlBhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6SXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCksIFdURk1vdmUoaGFuZGxlcikpOwogfQog
CiBib29sIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVJZGVudGlmaWVyJiBmcmFtZUlEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1ZDEzZjczYmI3Zjg5MzkyZjM3Nzc2ODM0MzA3OWEzYWE3NWQxM2M5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIgot
Ci0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRv
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCi0jaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpXZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmll
cikKLSAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5l
Y3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKLXsKLSAgICBtX2Nvbm5lY3Rpb24t
Pm9wZW4oKTsKLX0KLQotV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6fldlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24oKQotewotICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwotfQotCi12
b2lkIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYp
Ci17Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bkNsb3NlZCh0aGlzKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSkK
LXsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyOTViYTUzZDNhZWMzZjM4NTAzMzc1MWRiZGIwM2ZiYzRk
OWE5YTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
PiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllcikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKLSAg
ICB9Ci0gICAgfldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKLQotICAgIElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQotCi1wcml2
YXRlOgotICAgIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKTsKLQotICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdm9pZCBkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VOYW1lKSBvdmVycmlkZTsK
LQotICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBXZWJB
dXRobiBwcm9jZXNzLgotICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4M2Y1OGE4NmNkZTczY2UyMGM3
ZWE1NDRiZjM1OTdiODI5NTU2YmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwy
OCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
Ci0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBF
TkFCTEUoV0VCX0FVVEhOKQotCi1tZXNzYWdlcyAtPiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
IHsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbkluZm8uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5MDdmODNlNzY0MDk2NGZhZTliMzFjZjIzZjdkODk0MDE2N2VmNjQ5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oCisr
KyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSoKLSogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0qIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotKiBhcmUgbWV0OgotKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0qIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSoKLSogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0qLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4p
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdHJ1Y3QgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bkluZm8gewotICAgIElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uOwotCi0gICAgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLnBvcnQoKSk7Ci0gICAg
fQotCi0gICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHJlbGVhc2VJZGVudGlmaWVyKCkK
LSAgICB7Ci0gICAgICAgIGF1dG8gcmV0dXJuVmFsdWUgPSBpZGVudGlmaWVyKCk7Ci0gICAgICAg
IGNvbm5lY3Rpb24gPSB7IH07Ci0gICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsKLSAgICB9Ci0K
LSAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci0gICAgewotICAg
ICAgICBlbmNvZGVyIDw8IGNvbm5lY3Rpb247Ci0gICAgfQotCi0gICAgc3RhdGljIFdBUk5fVU5V
U0VEX1JFVFVSTiBib29sIGRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvJiBpbmZvKQotICAgIHsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLmNvbm5lY3Rpb24pKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZWEy
NzE4NDA2MDQ0NGZiMjc1MDMzZmU3NzIxNzk2ZjkzZDE0YWU1ZC4uZWM5MjRiZDg5MWIxYTljNDE4
ZWI3YjU5YjZiNmE0ZDBhMmUzMzE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTExOCw4
ICsxMTgsNiBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQotI2luY2x1ZGUgIldl
YkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbi5oPgogI2VuZGlmCiAKQEAgLTE0OTgsMTIgKzE0OTYsNyBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXNlcklzSW50ZXJhY3RpbmcoYm9vbCB1c2VySXNJbnRl
cmFjdGluZykKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNl
dE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oY29uc3QgTW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKIHsKLSAgICBpZiAoIVJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
bmFibGVkKCkpIHsKLSAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9u
Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKSwgeyB9KTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpTZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9u
KGNvbmZpZ3VyYXRpb24pKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggNTNmOGE1NmNkMmJmOGEzODBjOTFmMjhlMjdlN2I2MzgwNmI3ZTMz
OS4uZDc3ZTAzZGIxMjdhNWFhYWQ0MTA5MTZhMmQ1MTY4YTRiMTI0YTczMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTkyLDEyICsxOTIsNiBAQAogI2luY2x1
ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uSW5mby5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VC
X0FVVEhOKQotI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2Vz
LmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIldl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShSRU1P
VEVfSU5TUEVDVE9SKQogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rvci5o
PgogI2VuZGlmCkBAIC0xMzg0LDU3ICsxMzc4LDYgQEAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyJiBXZWJQcm9jZXNzOjphdWRpb01lZGlhU3RyZWFtVHIK
IAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4p
Ci0KLXN0YXRpYyBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mbyBnZXRXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uSW5mbyBjb25uZWN0aW9uSW5mbzsKLSAgICBpZiAoIWNvbm5lY3Rp
b24uc2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNz
Q29ubmVjdGlvbigpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uOjpSZXBseShjb25uZWN0aW9uSW5mbyksIDApKSB7Ci0gICAgICAgIC8vIElm
IHdlIGZhaWxlZCB0aGUgZmlyc3QgdGltZSwgcmV0cnkgb25jZS4gVGhlIGF0dGFjaG1lbnQgbWF5
IGhhdmUgYmVjb21lIGludmFsaWQKLSAgICAgICAgLy8gYmVmb3JlIGl0IHdhcyByZWNlaXZlZCBi
eSB0aGUgd2ViIHByb2Nlc3MgaWYgdGhlIG5ldHdvcmsgcHJvY2VzcyBjcmFzaGVkLgotICAgICAg
ICBpZiAoIWNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShjb25uZWN0aW9uSW5mbyksIDApKSB7
Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihXZWJBdXRobiwgImdldFdlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb246IFVuYWJsZSB0byBjb25uZWN0IHRvIFdlYkF1dGhuIHByb2Nlc3MgKFRl
cm1pbmF0aW5nKSIpOwotICAgICAgICAgICAgZmFpbGVkVG9TZW5kU3luY01lc3NhZ2UoKTsKLSAg
ICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBjb25uZWN0aW9uSW5mbzsKLX0KLQotV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbiYgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbigpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0g
ICAgLy8gSWYgd2UndmUgbG9zdCBvdXIgY29ubmVjdGlvbiB0byB0aGUgV2ViQXV0aG4gcHJvY2Vz
cyAoZS5nLiBpdCBjcmFzaGVkKSB0cnkgdG8gcmUtZXN0YWJsaXNoIGl0LgotICAgIGlmICghbV93
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKSB7Ci0gICAgICAgIGF1dG8gY29ubmVjdGlvbkluZm8g
PSBnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
KTsKLQotICAgICAgICAvLyBSZXRyeSBvbmNlIGlmIHRoZSBJUEMgdG8gZ2V0IHRoZSBjb25uZWN0
aW9uSWRlbnRpZmllciBzdWNjZWVkZWQgYnV0IHRoZSBjb25uZWN0aW9uSWRlbnRpZmllciB3ZSBy
ZWNlaXZlZAotICAgICAgICAvLyBpcyBpbnZhbGlkLiBUaGlzIG1heSBpbmRpY2F0ZSB0aGF0IHRo
ZSBXZWJBdXRobiBwcm9jZXNzIGhhcyBjcmFzaGVkLgotICAgICAgICBpZiAoIUlQQzo6Q29ubmVj
dGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkKLSAg
ICAgICAgICAgIGNvbm5lY3Rpb25JbmZvID0gZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigq
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSk7Ci0KLSAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rp
b246OmlkZW50aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JbmZvLmlkZW50aWZpZXIoKSkpIHsKLSAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYkF1dGhuLCAiZW5zdXJlV2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbjogQ29ubmVjdGlvbiBpZGVudGlmaWVyIGZvciBXZWJBdXRobiBwcm9jZXNz
IGlzIGludmFsaWQuIik7Ci0gICAgICAgICAgICBDUkFTSCgpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgbV93ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bjo6Y3JlYXRlKGNvbm5lY3Rpb25JbmZvLnJlbGVhc2VJZGVudGlmaWVyKCkpOwotICAgIH0KLQot
ICAgIHJldHVybiAqbV93ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOwotfQotCi12b2lkIFdlYlBy
b2Nlc3M6OndlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbiogY29ubmVjdGlvbikKLXsKLSAgICBBU1NFUlQobV93ZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uKTsKLSAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIG1fd2ViQXV0aG5Qcm9jZXNz
Q29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKTsKLQotICAgIG1fd2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbiA9IG51bGxwdHI7Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQotCiB2b2lk
IFdlYlByb2Nlc3M6OnNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiB7CiAgICAg
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJp
bGl0eShmbGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDZjMTMz
NmNmYThmOThmYWQwODk0ZjVhZWFlNWEyYWRiYjI2MzE5ZDAuLjM2MTU1YTcyNzhhZmViMGQ5ZGVj
MDFmYmE3Y2EwZmU5ODY3NjUyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aApAQCAtMTMxLDcgKzEzMSw2IEBAIGNsYXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTsKIGNsYXNz
IFN0b3JhZ2VBcmVhTWFwOwogY2xhc3MgVXNlckRhdGE7CiBjbGFzcyBXYXlsYW5kQ29tcG9zaXRv
ckRpc3BsYXk7Ci1jbGFzcyBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOwogY2xhc3MgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTsKIGNsYXNzIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsK
IGNsYXNzIFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyOwpAQCAtMjY0LDEyICsyNjMsNiBAQCBwdWJs
aWM6CiAgICAgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeSYgbWVkaWFFbmdp
bmVDb25maWd1cmF0aW9uRmFjdG9yeSgpOwogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykK
IAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiYg
ZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpOwotICAgIHZvaWQgd2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKik7Ci0gICAgV2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiogZXhpc3RpbmdXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
KCkgeyByZXR1cm4gbV93ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmdldCgpOyB9Ci0jZW5kaWYK
LQogICAgIExpYldlYlJUQ05ldHdvcmsmIGxpYldlYlJUQ05ldHdvcmsoKTsKIAogICAgIHZvaWQg
c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsKTsKQEAgLTY2MCwxMSArNjUzLDYgQEAgcHJpdmF0ZToK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXRNYW5hZ2VyPiBtX2F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0
TWFuYWdlcjsKICNlbmRpZgogI2VuZGlmCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIFJl
ZlB0cjxXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uPiBtX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rp
b247Ci0jZW5kaWYKLQogICAgIFJlZjxXZWJDYWNoZVN0b3JhZ2VQcm92aWRlcj4gbV9jYWNoZVN0
b3JhZ2VQcm92aWRlcjsKICAgICBSZWY8V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jy
b2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKICAgICBSZWY8UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5PiBt
X3dlYkxvY2tSZWdpc3RyeTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBhODM2ZTY2NjEwZTRiYjI5MmYwZTc2ZTZkNjc1ZDU2NmU1OTVlZTQ3Li43
ODFmMjcxOGZhODUxYzU2NGM2NzU3Njc3ODVhNzc3MjAzMTk3YTYwIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjIt
MDQtMTEgIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRo
bl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRpb25Nb2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisg
ICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkxNTcxMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6OndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSk6IERlbGV0ZWQuCisKIDIwMjItMDQtMDggIEVsbGlv
dHQgV2lsbGlhbXMgIDxlbXdAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gQXZvaWQgdGFy
Z2V0aW5nIDMyLWJpdCBpT1MgYW5kIE1hYyBhcmNoaXRlY3R1cmVzCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZmRkNjcwODY4M2ViY2JlZjIyZTA4NTY3Zjc2YmU1OTZl
MTgwZGQzOS4uZjIyYWQ2ZTAwYTlmYzEwZDRhYTBkYjMwMTdlNDdkYjc4NWY0YWM4NyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMzAxLDIyICszMDEsNiBAQCBjb25z
dCBjaGFyIHN1YkZyYW1lW10gPQogIjwvc2NyaXB0PiIKICI8L2h0bWw+IjsKIAotc3RhdGljIF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpCi17Ci0gICAgc3RhdGljIFJldGFpblB0cjxfV0tFeHBlcmltZW50YWxGZWF0dXJl
PiB0aGVGZWF0dXJlOwotICAgIGlmICh0aGVGZWF0dXJlKQotICAgICAgICByZXR1cm4gdGhlRmVh
dHVyZS5nZXQoKTsKLQotICAgIE5TQXJyYXkgKmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4
cGVyaW1lbnRhbEZlYXR1cmVzXTsKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZl
YXR1cmUgaW4gZmVhdHVyZXMpIHsKLSAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsOkAi
V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkIl0pIHsKLSAgICAgICAgICAgIHRoZUZlYXR1
cmUgPSBmZWF0dXJlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
cmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7Ci19Ci0KIHN0YXRpYyB2b2lkIHJlc2V0KCkKIHsKICAg
ICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuID0gZmFsc2U7CkBAIC00NTIsNyArNDM2LDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3MxKQogICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTQ3NCw3ICs0NTcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBh
bmVsSGlkU3VjY2VzczIpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01MDEsNyArNDgzLDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbFJhY3kxKQogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTUyNSw3ICs1MDYsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsUmFjeTIp
CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTQ5LDcgKzUyOSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGFuZWxUd2ljZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01NzIsNyArNTUxLDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBSZWxvYWRIaWRDYW5jZWwpCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKQEAgLTU5Miw3ICs1NzAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIExvY2F0aW9uQ2hhbmdlSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gb3RoZXJV
UkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC02MTIsNyArNTg5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBOZXdMb2FkSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gb3RoZXJVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CkBAIC02MzEsNyArNjA3LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBDbG9zZUhpZENhbmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkLWNhbmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNjcxLDcgKzY0
Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgU3ViRnJhbWVDaGFuZ2VMb2NhdGlv
bkhpZENhbmNlbCkKICAgICB9KTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03MTgsNyArNjkyLDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBTdWJGcmFtZURlc3RydWN0aW9uSGlkQ2FuY2VsKQog
ICAgIH0pOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTczNyw3ICs3MTAsNiBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIFBhbmVsSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03
NTcsNyArNzI5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZEN0YXBO
b0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzc1
LDcgKzc0Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxVMmZDdGFwTm9D
cmVkZW50aWFsc0ZvdW5kKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTc5Myw3
ICs3NjMsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZha2VQYW5lbEhpZFN1Y2Nl
c3MpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtODEyLDcgKzc4MSw2IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgRmFrZVBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxz
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04MzEsNyArNzk5LDYgQEAgVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRTdWNjZXNzKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTg1
MCw3ICs4MTcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE51bGxQYW5lbEhpZEN0
YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
ODcwLDcgKzgzNiw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxNdWx0aXBs
ZU5GQ1RhZ3NQcmVzZW50KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1uZmMtbXVsdGlwbGUtdGFncyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtODg5LDcg
Kzg1NCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDYW5jZWxSZWxv
YWROb0NyYXNoKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC05MDksNyArODczLDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3NDYW5jZWxOb0NyYXNoKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTkyNyw3ICs4OTAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIFBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZENhbmNlbE5vQ3Jhc2gpCiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50
aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtOTQ1LDcgKzkwNyw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGluR2V0UmV0cmllc0Vycm9yKQogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3Ii
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
W3dlYlZpZXcgZm9jdXNdOwpAQCAtOTU5LDcgKzkyMCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGluR2V0S2V5QWdyZWVtZW50RXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJv
ciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJv
Y2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAg
ICBbd2ViVmlldyBmb2N1c107CkBAIC05NzMsNyArOTMzLDYgQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3JOb0RlbGVnYXRlKQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgZm9jdXNd
OwpAQCAtOTg3LDcgKzk0Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVx
dWVzdFBpbkVycm9yTnVsbERlbGVnYXRlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRp
b24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEwMDUs
NyArOTYzLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJy
b3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
LXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKQEAgLTEwMjUsNyArOTgyLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBQaW5HZXRQaW5Ub2tlblBpbkJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWJs
b2NrZWQtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEwNDUsNyArMTAwMSw2IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5QaW5BdXRoQmxvY2tlZEVy
cm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhp
ZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xMDY1LDcgKzEwMjAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IFBpbkdldFBpblRva2VuUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0YWluUHRyPE5T
VVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBp
bi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24g
PSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlND
Rm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMDg0LDcgKzEw
MzgsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBpblRva2VuUGluQXV0
aEludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0aC1pbnZhbGlkLWVy
cm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTAzLDcgKzEwNTYsNiBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsSW50ZXJuYWxVVikKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwt
dXYiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTExMjAsNyArMTA3Miw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW4pCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwpAQCAtMTEzOCw3ICsxMDg5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtl
Q3JlZGVudGlhbFBpbkF1dGhCbG9ja2VkRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTExNTgsNyArMTEwOCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW5JbnZhbGlkRXJyb3JBbmRSZXRyeSkKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWludmFsaWQt
ZXJyb3ItcmV0cnkiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTExNzcsNyArMTEyNiw2IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uUGluKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xMTk1LDcgKzExNDMsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IEdldEFzc2VydGlvbkludGVybmFsVVYpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11diIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
MTIxMiw3ICsxMTU5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRp
b25JbnRlcm5hbFVWUGluRmFsbGJhY2spCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di1waW4tZmFsbGJhY2siIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKQEAgLTEyMzAsNyArMTE3Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgR2V0QXNzZXJ0aW9uUGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyNTAsNyArMTE5NSw2IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4taW52YWxpZC1l
cnJvci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlv
blBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTI3MCw3ICsxMjE0LDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOZmNQaW5DYWNoZWREaXNjb25uZWN0KQogICAgIFJl
dGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5l
Y3QiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyODksNyArMTIzMiw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgTXVsdGlwbGVBY2NvdW50c051bGxEZWxlZ2F0ZSkKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW11bHRpcGxlLWFjY291
bnRzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMzA3LDcgKzEyNDksNiBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIE11bHRpcGxlQWNjb3VudHMpCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1tdWx0aXBsZS1hY2NvdW50cyIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtMTMyOSw3ICsxMjcwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBMQUVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWxhLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMzQ2LDcgKzEyODYs
NiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBRHVwbGljYXRlQ3JlZGVudGlhbCkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1kdXBs
aWNhdGUtY3JlZGVudGlhbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50
aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM2NSw3ICsxMzA0LDYg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUR1cGxpY2F0ZUNyZWRlbnRpYWxXaXRo
Q29uc2VudCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1sYS1kdXBsaWNhdGUtY3JlZGVudGlhbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM5MCw3
ICsxMzI4LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU5vQ3JlZGVudGlhbCkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTE0MDcsNyArMTM0NCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTEFNYWtlQ3JlZGVudGlhbE51bGxEZWxlZ2F0ZSkKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpA
QCAtMTQyNSw3ICsxMzYxLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1ha2VD
cmVkZW50aWFsRGlzYWxsb3dMb2NhbEF1dGhlbnRpY2F0b3IpCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTE0NDIsNyArMTM3Nyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFNYWtlQ3Jl
ZGVudGlhbEFsbG93TG9jYWxBdXRoZW50aWNhdG9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNDYz
LDcgKzEzOTcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRp
YWxOb01vY2tOb1VzZXJHZXN0dXJlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2siIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE0ODIs
NyArMTQxNSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3NlcnRpb24p
CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC0xNTAyLDcgKzE0MzQsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIExBR2V0QXNzZXJ0aW9uTXVsdGlwbGVDcmVkZW50aWFsU3RvcmUpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xNTMwLDcgKzE0NjEsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IExBR2V0QXNzZXJ0aW9uTm9Nb2NrTm9Vc2VyR2VzdHVyZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jayIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwpAQCAtMTU0Nyw3ICsxNDc3LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdl
dEFzc2VydGlvbk11bHRpcGxlT3JkZXIpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0yMzQxLDYgKzIyNzAs
NyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFVwZGF0ZUNyZWRlbnRpYWxVc2VybmFt
ZSkKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgRXhwb3J0SW1wb3J0Q3JlZGVudGlhbCkK
IHsKICAgICByZXNldCgpOworICAgIGNsZWFuVXBLZXljaGFpbigiZXhhbXBsZS5jb20iX3MpOwog
CiAgICAgYWRkS2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCAiZXhhbXBs
ZS5jb20iX3MsIHRlc3RVc2VyRW50aXR5QnVuZGxlQmFzZTY0KTsKIApAQCAtMjQxMiw1OCArMjM0
Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgRGVsZXRlT25lQ3JlZGVudGlhbCkK
IH0KICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSB8fCBQTEFURk9STShJT1MpCiAK
LSNpZiBQTEFURk9STShJT1MpCi1URVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFJlY292ZXJB
ZnRlckF1dGhOUHJvY2Vzc0NyYXNoKQotewotICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIg
c2VydmVyKHsKLSAgICAgICAgeyAiLyJfcywgeyAiRk9PIl9zIH0gfQotICAgIH0pOwotCi0gICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0KLSAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwotICAgIEVYUEVDVF9FUShbV0tQ
cm9jZXNzUG9vbCBfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0sIDApOwotCi0gICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRwOi8v
bG9jYWxob3N0OiVkLyIsIHNlcnZlci5wb3J0KCldXV1dOwotICAgIFt3ZWJWaWV3IGZvY3VzXTsK
LQotICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJpbnRlcm5hbHMu
c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IH0pIl07Ci0gICAgYXV0byBm
aXJzdFdlYlBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Ci0gICAgYXV0byBm
aXJzdFdlYkF1dGhuUElEID0gW1dLUHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZp
ZXJdOwotICAgIEVYUEVDVF9ORShmaXJzdFdlYlBJRCwgMCk7Ci0gICAgRVhQRUNUX05FKGZpcnN0
V2ViQXV0aG5QSUQsIDApOwotCi0gICAga2lsbChmaXJzdFdlYkF1dGhuUElELCBTSUdLSUxMKTsK
LSAgICB3aGlsZSAoW1dLUHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdKQot
ICAgICAgICBVdGlsOjpzcGluUnVuTG9vcCgpOwotCi0gICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAImludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAncmVxdWVzdCcsIHN1YlN0YWdlOiAnbXNnJywgZXJy
b3I6ICdzdWNjZXNzJywgaXNVMmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFsnQVFBQUFEc3dSQUln
ZTk0S1Vxd2ZUSXNuNEFPamNNMW1wTWNSamRJdFZFZURYMFc1bkdoQ1AvY0NJRHhSZTBlSGY0VjRM
ZUVBaHFlRDBlZmZUalk1NTNIMTlxK2pXcTFUYzRXT2tBQT0nXSB9IH0pOyJdOwotCi0gICAgd2hp
bGUgKCFbV0tQcm9jZXNzUG9vbCBfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0pCi0gICAgICAg
IFV0aWw6OnNwaW5SdW5Mb29wKCk7Ci0KLSAgICBhdXRvIHNlY29uZFdlYkF1dGhuUElEID0gW1dL
UHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdOwotICAgIEVYUEVDVF9ORShz
ZWNvbmRXZWJBdXRoblBJRCwgZmlyc3RXZWJBdXRoblBJRCk7Ci0gICAgRVhQRUNUX0VRKFt3ZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0sIGZpcnN0V2ViUElEKTsKLQotICAgIF9fYmxvY2sg
Ym9vbCBnb3RNZXNzYWdlID0gZmFsc2U7Ci0gICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2
aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7Ci0gICAgICAgIEVYUEVDVF9XS19T
VFJFUShAInB1YmxpYy1rZXkiLCBtZXNzYWdlKTsKLSAgICAgICAgZ290TWVzc2FnZSA9IHRydWU7
Ci0gICAgfV07Ci0KLSAgICBfX2Jsb2NrIGJvb2wgZXhlY3V0ZWRTY3JpcHQgPSBmYWxzZTsKLSAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0
KHsgcHVibGljS2V5OiB7IGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoWzQ5LCA1MCwgNTEsIDUy
LCA1MywgNTRdKSwgYWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogJ3B1YmxpYy1rZXknLCBpZDog
bmV3IFVpbnQ4QXJyYXkoQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGF0b2IoJ1ByMkp2M2ZzVUpk
Vjdwd21OZStxckhzcm5GenZGemJEY1gya2hUVEl4clpVMS8rVVgxQzF6RTU0QlZ2ZE9XdGs5NDJp
eGZsaUFNelVGYzBJL2tJQU9BJyksIGZ1bmN0aW9uIChjKSB7IHJldHVybiBjLmNoYXJDb2RlQXQo
MCkgfSkpIH1dLCB0aW1lb3V0OiAxMDAgfSB9KS50aGVuKGNyZWRlbnRpYWwgPT4geyB3ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGNyZWRlbnRpYWwudHlwZSk7
IH0sIGUgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCcnICsgZSk7IH0pICYmIHRydWUiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgewotICAgICAgICBBU1NFUlRfRkFMU0UoZXJyb3IpOwotICAgICAgICBleGVj
dXRlZFNjcmlwdCA9IHRydWU7Ci0gICAgfV07Ci0gICAgVXRpbDo6cnVuKCZleGVjdXRlZFNjcmlw
dCk7Ci0KLSAgICBVdGlsOjpydW4oJmdvdE1lc3NhZ2UpOwotfQotI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKLQogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457285</attachid>
            <date>2022-04-11 14:20:12 -0700</date>
            <delta_ts>2022-04-11 16:03:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239073-20220411142011.patch</filename>
            <type>text/plain</type>
            <size>234758</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZlZDM5ZDgyMzVhMWQzMzZkYmZhNDdj
YjhhMmFmMmIyNDAyMzQ1YWEuLjk1ZDViM2UzNjM2NTg3ZmI4YTc5NzE3MzVhYjQ1N2UwY2ZmODcw
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDQtMTEgIEogUGFzY29lICA8al9wYXNjb2VA
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRp
b25Nb2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkxNTcx
MDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIw
MjItMDQtMTEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBSZWR1Y2UgdXNlIG9mIHVubmVjZXNzYXJ5IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tIG51
bWJlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkNjA0N2U3MzY3MmJiNmEwZDU1N2JlN2IwNWI0MmJlMWM0MGQw
ZmM4Li5mZjRjOGM5ZmY3YjkwN2M3NWIzOTI2NGZmZDFlMTQzYWUzMGZmODJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDQtMTEgIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUu
Y29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRpb25Nb2Rl
cm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkxNTcxMDMwCisK
KyAgICAgICAgVGhlIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuIGZsYWcgYW5kIFdlYkF1dGhuUHJv
Y2VzcyBhcmUgbm8gbG9uZ2VyIHVzZWQKKyAgICAgICAgYW5kIGNhbiBiZSByZW1vdmVkLiBUaGlz
IHBhdGNoIHJlbW92ZXMgYWxsIHJlZmVyZW5jZXMgdG8gYm90aCB0aGUgZmxhZworICAgICAgICBh
bmQgdGhlIHByb2Nlc3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5h
YmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVz
Ojp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwcm9jZXNzVHlwZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaDoKKwogMjAyMi0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFJlZHVjZSB1c2Ugb2YgdW5uZWNlc3Nhcnkg
Y3J5cHRvZ3JhcGhpY2FsbHlSYW5kb20gbnVtYmVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwOTc2ODU5ZjI5MzBh
MjZjMGQ1MTFmNWJkZjc5ZjYxM2E3YTA0YjkzLi5jYmFkMWU5MDE2NDE1OWFiNDFkNDgxYmM3YjBi
NzMwMzhkZjM1NzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNiBAQAorMjAyMi0wNC0xMSAgSiBQ
YXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDbGVhbiB1
cCBXZWJBdXRoZW50aWNhdGlvbk1vZGVybiBhbmQgV2ViQXV0aG5Qcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNzMKKyAgICAgICAgcmRh
cjovL3Byb2JsZW0vOTE1NzEwMzAKKworICAgICAgICBUaGUgV2ViQXV0aGVudGljYXRpb25Nb2Rl
cm4gZmxhZyBhbmQgV2ViQXV0aG5Qcm9jZXNzIGFyZSBubyBsb25nZXIgdXNlZAorICAgICAgICBh
bmQgY2FuIGJlIHJlbW92ZWQuIFRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwgcmVmZXJlbmNlcyB0byBi
b3RoIHRoZSBmbGFnCisgICAgICAgIGFuZCB0aGUgcHJvY2Vzcy4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
IGFuZCBtYW51YWwgdGVzdGluZyBvbiBtYWNPUyAvIGlPUy4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2NvbmZpZzogUmVtb3ZlZC4KKyAgICAgICAgKiBDb25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2Vi
S2l0LldlYkF1dGhuLnNiLmluOiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvcHJvY2Vzcy1l
bnRpdGxlbWVudHMuc2g6CisgICAgICAgICogU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2Vy
Q2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0luV2ViS2l0Q2hpbGRQcm9jZXNzKToKKyAg
ICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1Nl
cnZpY2VFbnRyeVBvaW50Lmg6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
Q29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbToKKyAgICAgICAgKFdlYktpdDo6WFBD
U2VydmljZUV2ZW50SGFuZGxlcik6CisgICAgICAgICogU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9j
ZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcm9jZXNzU3RvcmFnZUNsYXNzKToKKyAgICAg
ICAgKFdlYktpdDo6c2FuZGJveERpcmVjdG9yeSk6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRXZWJB
dXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfd2Vi
QXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICgrW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgaW1wb3J0TG9jYWxBdXRoZW50aWNhdG9yV2l0aEFjY2Vzc0dyb3Vw
OmNyZWRlbnRpYWw6ZXJyb3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3NQcm94eTo6Z2V0
TGF1bmNoT3B0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpub3RpZnlQcmVmZXJl
bmNlc0NoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVy
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OnNlcnZpY2VOYW1lKToKKyAgICAgICAgKFdlYktp
dDo6c2hvdWxkTGVha0Jvb3N0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvci5oOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yOjpyZXF1
ZXN0RGF0YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3I6OnNldFdlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkF1
dGhlbnRpY2F0b3I6OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNhdG9yQWRkZWQpOgorICAgICAgICAoV2ViS2l0OjpB
dXRoZW50aWNhdG9yTWFuYWdlcjo6ZW5hYmxlTW9kZXJuV2ViQXV0aGVudGljYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9M
b2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRv
cjo6bWFrZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6
OmdldEFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6Y29u
dGludWVHZXRBc3NlcnRpb25BZnRlclJlc3BvbnNlU2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1By
b3h5Lmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2Zp
ZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGlj
YXRvcjo6Y29udGludWVHZXROZXh0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToKKyAg
ICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlUmVxdWVzdFBpbkFmdGVy
R2V0S2V5QWdyZWVtZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViQXV0aG5Q
cm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1P
U1gucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQv
Q29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1pT1MucGxpc3Q6IFJlbW92ZWQu
CisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9X
ZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhu
UHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vz
cy9XZWJBdXRoblByb2Nlc3MuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vz
cy9XZWJBdXRoblByb2Nlc3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3Mv
V2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhu
UHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvaW9zL1dlYkF1dGhuUHJv
Y2Vzc0lPUy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvbWFjL1dlYkF1
dGhuUHJvY2Vzc01hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvbWFj
L2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjptYWtlQ3JlZGVudGlh
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Z2V0QXNz
ZXJ0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpp
c1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbkluZm8uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2V0V2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6ZXhpc3RpbmdXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKTogRGVs
ZXRlZC4KKwogMjAyMi0wNC0xMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjg5Nzg1KTogW2lPU10gVW5hYmxlIHRvIGRvdWJs
ZS1jbGljayB0byBzZWxlY3QgYSB3b3JkIGluIGEgcmVjZWl2ZWQgZW1haWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRh
bC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwKaW5kZXggNmI1ZjMzZmM1YzllMWRjMGRlZGVjZjBmMjA3MGUwNDgzYzE5
N2YyMS4uNDJjZDUzZWQxYzdmYzAwN2I5ZTY4MWNhMTIwODFlMTJhMTljMzdiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTE2MDMsMjIgKzE2MDMsNiBAQCBXZWJBdXRoZW50aWNh
dGlvbkVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKIAotIyBGSVhN
RTogSXMgdGhpcyBpbXBsZW1lbnRlZCBmb3IgV2ViS2l0TGVnYWN5PyBJZiBub3QsIHRoaXMgc2hv
dWxkIGJlIGV4Y2x1ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgotV2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FbmFibGVkOgotICB0eXBlOiBib29sCi0gIGh1bWFuUmVhZGFibGVOYW1lOiAi
V2ViIEF1dGhlbnRpY2F0aW9uIE1vZGVybiIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
RW5hYmxlIE1vZGVybiBXZWIgQXV0aGVudGljYXRpb24gc3VwcG9ydCIKLSAgY29uZGl0aW9uOiBF
TkFCTEUoV0VCX0FVVEhOKQotICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJl
cwotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0TGVnYWN5OgotICAgICAgZGVmYXVsdDogZmFs
c2UKLSAgICBXZWJLaXQ6Ci0gICAgICAiUExBVEZPUk0oSU9TKSIgOiB0cnVlCi0gICAgICBkZWZh
dWx0OiBmYWxzZQotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCiBXZWJHTDJF
bmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViR0wgMi4wIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCA2OGI3
YTIzZDgzYTNjNGVmZmM0MWU4MTFiZDdjMzUxOGI0YjIyZDRiLi5mYWU5NDc2MTExNDVjZTVmNzlm
M2E3Yzg0NmY4MGE5NTEyZTdkMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaApAQCAtMjM0LDExICsyMzQsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBv
cHVzRGVjb2RlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX29wdXNEZWNvZGVyRW5hYmxlZDsg
fQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIHZvaWQgc2V0V2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FbmFibGVkKGJvb2wgYXJlRW5hYmxlZCkgeyBtX2FyZVdlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRW5hYmxlZCA9IGFyZUVuYWJsZWQ7IH0KLSAgICBib29sIHdlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJlV2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FbmFibGVkOyB9Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYm
IChIQVZFKEFWU0FNUExFQlVGRkVSVklERU9PVVRQVVQpIHx8IFVTRShHU1RSRUFNRVIpKQogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQo
Ym9vbCk7CiAgICAgYm9vbCBtZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQ7IH0KQEAgLTM4OCwx
MCArMzgzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fb3B1c0RlY29kZXJFbmFibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBib29sIG1fYXJlV2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkIHsgZmFsc2UgfTsKLSNlbmRpZgotCiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkgJiYgKEhBVkUoQVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkgfHwg
VVNFKEdTVFJFQU1FUikpCiAgICAgYm9vbCBtX21lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFi
bGVkIHsgZmFsc2UgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKaW5kZXggNGMyYjUzZThkMzgxMzJiNzYwZWIw
YWY3ODAxODRhZjQ1MjEyMTJlNy4uYTNmYTc3MjhlN2Q2NGNmZjQ1ZmI3NjEzNjk2NGFjMDMwOGQ3
ODU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuY3BwCkBAIC0xMDgsMTAgKzEwOCw2IEBAIGNvbnN0IGNoYXIqIHByb2Nlc3NU
eXBlRGVzY3JpcHRpb24oc3RkOjpvcHRpb25hbDxBdXhpbGlhcnlQcm9jZXNzVHlwZT4gdHlwZSkK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgY2FzZSBBdXhpbGlhcnlQcm9jZXNzVHlwZTo6
R1BVOgogICAgICAgICByZXR1cm4gIkdQVSI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhO
KQotICAgIGNhc2UgQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgotICAgICAgICByZXR1
cm4gIldlYkF1dGhuIjsKICNlbmRpZgogICAgIH0KICAgICByZXR1cm4gIlVua25vd24iOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApp
bmRleCBjNzY0Njg2ODU1NWJlMTVmMjQ3MDIxZjMwMjVlMTdhODFhNmU2NmQwLi4zZDQzNGRkNTg4
NDJlMzJjZTQwMzJjNDZkYWFmMzczNTU2YmM2ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtNDAsOSArNDAsNiBAQCBl
bnVtIGNsYXNzIEF1eGlsaWFyeVByb2Nlc3NUeXBlIDogdWludDhfdCB7CiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQogICAgIEdQVSwKICNlbmRpZgotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAg
V2ViQXV0aG4sCi0jZW5kaWYKIH07CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV4aWxpYXJ5
UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9XZWJBdXRoblNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2NvbmZpZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzVmNWQxZDM1ZDA0ODA4Y2Q3Mjg0YzU5NTQ2NGE0ZTMxOTQyOGY0
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2NvbmZpZworKysgL2Rldi9u
dWxsCkBAIC0xLDM2ICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLS8vIGFy
ZSBtZXQ6Ci0vLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLS8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0vLyBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotLy8gSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0vLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0vLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0vLyBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LS8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLS8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0jaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCi0KLVBST0RVQ1RfTkFNRSA9IGNv
bS5hcHBsZS5XZWJLaXQuV2ViQXV0aG47Ci1QUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQ
Uk9EVUNUX05BTUUpOwotSU5GT1BMSVNUX0ZJTEVbc2RrPWVtYmVkZGVkKl0gPSBXZWJBdXRoblBy
b2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLWlP
Uy5wbGlzdDsKLUlORk9QTElTVF9GSUxFW3Nkaz1tYWNvc3gqXSA9IFdlYkF1dGhuUHJvY2Vzcy9F
bnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8tT1NYLnBsaXN0
OwotCi1PVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19WRVJTSU9O
RURfRlJBTUVXT1JLX1BBVEgpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLU19MREZMQUdTKSAk
KFNPVVJDRV9WRVJTSU9OX0xERkxBR1MpOwotCi1FTlRJVExFTUVOVFNfUkVRVUlSRUQgPSAkKEVO
VElUTEVNRU5UU19SRVFVSVJFRF9VU0VfSU5URVJOQUxfU0RLXyQoVVNFX0lOVEVSTkFMX1NESykp
Ci1FTlRJVExFTUVOVFNfUkVRVUlSRURfVVNFX0lOVEVSTkFMX1NES18gPSBOTzsKLUVOVElUTEVN
RU5UU19SRVFVSVJFRF9VU0VfSU5URVJOQUxfU0RLX05PID0gTk87Ci1FTlRJVExFTUVOVFNfUkVR
VUlSRURfVVNFX0lOVEVSTkFMX1NES19ZRVMgPSAkKEVOVElUTEVNRU5UU19SRVFVSVJFRCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBi
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IGVkN2E5
MTAxM2E4YmFjZDVkNjU5OTYwYjNhZjEyMzEzNGJiNTVmM2EuLjkzMDVjOTc2YzY2NWQxYWVlODE0
ZTQ4YTkyNjc0MWZkMTQ4ZWQzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJh
dGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMv
V2ViS2l0LnhjY29uZmlnCkBAIC0yMDUsNyArMjA1LDcgQEAgV0tfTUlHUkFURURfSEVBREVSX09V
VFBVVF9ESVJfID0gJChIRUFERVJfT1VUUFVUX0RJUik7CiAvLyBPbiBub24tTWFjIHBsYXRmb3Jt
cywgYWxsIG1pZ3JhdGVkIGhlYWRlcnMgZ28gdG8gUHJpdmF0ZUhlYWRlcnMuCiBXS19NSUdSQVRF
RF9IRUFERVJfT1VUUFVUX0RJUl9jb2NvYXRvdWNoID0gJChIRUFERVJfT1VUUFVUX0RJUjpkaXIp
UHJpdmF0ZUhlYWRlcnM7CiAKLUVYQ0xVREVEX01BQ09TX1BMVUdJTl9GSUxFX05BTUVTW3Nkaz1p
cGhvbmUqXSA9IFNlY0l0ZW1TaGltLmR5bGliIFdlYlByb2Nlc3NTaGltLmR5bGliICoucGRmIFJl
c291cmNlcy9tYWMvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGNvbS5hcHBs
ZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5z
YiBjb20uYXBwbGUuV2ViS2l0LndlYnB1c2hkLnNiIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiOwor
RVhDTFVERURfTUFDT1NfUExVR0lOX0ZJTEVfTkFNRVNbc2RrPWlwaG9uZSpdID0gU2VjSXRlbVNo
aW0uZHlsaWIgV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi5wZGYgUmVzb3VyY2VzL21hYy8qIGNvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNz
LnNiIGNvbS5hcHBsZS5XZWJLaXQud2VicHVzaGQuc2IgY29tLmFwcGxlLldlYlByb2Nlc3Muc2I7
CiAKIElOU1RBTExIRFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKIEFQUExZX1JVTEVTX0lOX0NPUFlf
SEVBREVSUyA9ICQoV0tfVVNFX05FV19CVUlMRF9TWVNURU0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGViNTk4NWM4ZDhhNzYxZTg3MGM4OTVhZGQ3ZjkxNzUwNWJjNTY0YjIuLjc2
ZjA3MjZiNTNmNmQ2MDJhMDU0OGY1MDIyYTRhMjBkMzk1OGY1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTQ2LDggKzQ2LDYgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9T
aGFyZWQvQXV0aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvU2hhcmVkL21hYyBcCiAgICAg
JChXZWJLaXQyKS9TaGFyZWQvTm90aWZpY2F0aW9ucyBcCi0gICAgJChXZWJLaXQyKS9XZWJBdXRo
blByb2Nlc3MgXAotICAgICQoV2ViS2l0MikvV2ViQXV0aG5Qcm9jZXNzL21hYyBcCiAgICAgJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxlUGF5IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
QXBwbGljYXRpb25DYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0F1dG9tYXRpb24g
XApAQCAtMjUwLDcgKzI0OCw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3Mv
V2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlciBcCiAJV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eSBcCiAJV2ViUHJvY2Vzcy9XZWJQYWdl
L1ZpZXdVcGRhdGVEaXNwYXRjaGVyIFwKLQlXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3Rl
bVByb3h5IFwKIAlHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgXAogCUdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBcCkBAIC0zMDQsOCArMzAx
LDYgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVNvdXJjZVByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0
ZW5lclByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5IFwK
LQlXZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzIFwKLQlXZWJB
dXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzIFwKICMKIAogR0VORVJBVEVfTUVTU0FHRV9SRUNF
SVZFUl9TQ1JJUFQgPSAkKFdlYktpdDIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZl
ci5weQpAQCAtMzU2LDE0ICszNTEsMTIgQEAgU0FOREJPWF9QUk9GSUxFUyA9IFwKIAljb20uYXBw
bGUuV2ViUHJvY2Vzcy5zYiBcCiAJY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBc
CiAJY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiIFwKLQljb20uYXBwbGUuV2ViS2l0Lldl
YkF1dGhuUHJvY2Vzcy5zYiBcCiAJY29tLmFwcGxlLldlYktpdC53ZWJwdXNoZC5zYgogCQogU0FO
REJPWF9QUk9GSUxFU19JT1MgPSBcCiAJY29tLmFwcGxlLldlYktpdC5hZGF0dHJpYnV0aW9uZC5z
YiBcCiAJY29tLmFwcGxlLldlYktpdC5HUFUuc2IgXAogCWNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy5zYiBcCi0JY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5zYiBcCiAJY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiCiAKIHNhbmRib3gtcHJvZmlsZXMtaW9zIDogJChTQU5EQk9YX1BS
T0ZJTEVTX0lPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQ
cm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5zYi5pbiBiL1NvdXJjZS9XZWJL
aXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJBdXRo
bi5zYi5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMzYWIxMWUyZTUxZTNjNDNm
NzU1YmI1N2QwMzA1OTY1MDU5MzQ0NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9z
L2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw0NTcg
KzAsMCBAQAotOyBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi07Ci07IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLTsgYXJlIG1ldDoKLTsgMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLTsgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotOyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi07IGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci07Ci07IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLTsgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLTsg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi07IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLTsgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLTsgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi07IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi07IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi07IEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLTsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0odmVyc2lvbiAxKQot
KGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQotKGRlbnkgbnZyYW0q
KQotKGRlbnkgc3lzdGVtLXByaXZpbGVnZSkKLQotOzsgU2lsZW5jZSBzcHVyaW91cyBsb2dnaW5n
IGR1ZSB0byByZGFyOi8vMjAxMTc5MjMgYW5kIHJkYXI6Ly83MjM2NjQ3NQotKGRlbnkgc3lzdGVt
LXByaXZpbGVnZSAocHJpdmlsZWdlLWlkIFBSSVZfR0xPQkFMX1BST0NfSU5GTykgKHdpdGggbm8t
cmVwb3J0KSkKLQotOzs7Ci07OzsgVGhlIGZvbGxvd2luZyBydWxlcyB3ZXJlIG9yaWdpbmFsbHkg
Y29udGFpbmVkIGluICdjb21tb24uc2InLiBXZSBhcmUgZHVwbGljYXRpbmcgdGhlbSBoZXJlIHNv
IHdlIGNhbgotOzs7IHJlbW92ZSB1bm5lZWRlZCBzYW5kYm94IGV4dGVuc2lvbnMuCi07OzsKLQot
KGltcG9ydCAidXRpbC5zYiIpCi0KLShkZWZpbmUtb25jZSAobWFuYWdlZC1jb25maWd1cmF0aW9u
LXJlYWQtcHVibGljKQotICAgIChhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAgICAgICh3ZWxsLWtu
b3duLXN5c3RlbS1ncm91cC1jb250YWluZXItc3VicGF0aCAiL3N5c3RlbWdyb3VwLmNvbS5hcHBs
ZS5jb25maWd1cmF0aW9ucHJvZmlsZXMvTGlicmFyeS9Db25maWd1cmF0aW9uUHJvZmlsZXMvUHVi
bGljSW5mbyIpCi0gICAgICAgICAgIChmcm9udC11c2VyLWhvbWUtc3VicGF0aCAiL0xpYnJhcnkv
Q29uZmlndXJhdGlvblByb2ZpbGVzL1B1YmxpY0luZm8iKQotICAgICAgICAgICAoZnJvbnQtdXNl
ci1ob21lLXN1YnBhdGggIi9MaWJyYXJ5L1VzZXJDb25maWd1cmF0aW9uUHJvZmlsZXMvUHVibGlj
SW5mbyIpKSkKLQotKGRlZmluZS1vbmNlIChhbGxvdy1wcmVmZXJlbmNlcy1jb21tb24pCi0gICAg
KGFsbG93IGZpbGUtcmVhZC1tZXRhZGF0YQotICAgICAgICAoaG9tZS1saXRlcmFsICIiKQotICAg
ICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcyIpKSkKLQotKGRlZmluZS1v
bmNlIChtb2JpbGUtcHJlZmVyZW5jZXMtcmVhZCAuIGRvbWFpbnMpCi0gICAgKGFsbG93LXByZWZl
cmVuY2VzLWNvbW1vbikKLSAgICAoZm9yLWVhY2ggKGxhbWJkYSAoZG9tYWluKQotICAgICAgICAo
YmVnaW4KLSAgICAgICAgICAgIChhbGxvdyB1c2VyLXByZWZlcmVuY2UtcmVhZCAocHJlZmVyZW5j
ZS1kb21haW4gZG9tYWluKSkKLSAgICAgICAgICAgIChhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAg
ICAgICAgICAgKGhvbWUtbGl0ZXJhbCAoc3RyaW5nLWFwcGVuZCAiL0xpYnJhcnkvUHJlZmVyZW5j
ZXMvIiBkb21haW4gIi5wbGlzdCIpKSkpKQotICAgICAgICBkb21haW5zKSkKLQotKGRlZmluZS1v
bmNlIChpbnRlcm5hbC1kZWJ1Z2dpbmctc3VwcG9ydCkKLSAgICAoYWxsb3cgZmlsZS1yZWFkKiBm
aWxlLW1hcC1leGVjdXRhYmxlCi0gICAgICAgIChzdWJwYXRoICIvRGV2ZWxvcGVyIikpCi0KLSAg
ICAoYWxsb3cgaXBjLXBvc2l4LXNobQotICAgICAgICAoaXBjLXBvc2l4LW5hbWUtcHJlZml4ICJz
dGFjay1sb2dzIikKLSAgICAgICAgKGlwYy1wb3NpeC1uYW1lLXByZWZpeCAiT0EtIikKLSAgICAg
ICAgKGlwYy1wb3NpeC1uYW1lLXByZWZpeCAiL0ZTTS0iKSkKLQotICAgIChhbGxvdyBpcGMtcG9z
aXgtc2htLXJlYWQqIGlwYy1wb3NpeC1zaG0td3JpdGUtZGF0YSBpcGMtcG9zaXgtc2htLXdyaXRl
LXVubGluawotICAgICAgICAoaXBjLXBvc2l4LW5hbWUtcmVnZXggIyJeZ2R0LVtBLVphLXowLTld
Ky0oY3xzKSQiKSkKLQotICAgICh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1p
bnRlcm5hbCkKLSAgICAgICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzg1NjUwMzU+Ci0gICAgICAgIDs7
IDxyZGFyOi8vcHJvYmxlbS8yMzg1NzQ1Mj4KLSAgICAgICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzcy
MzE3MTEyPgotICAgICAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRhYmxlCi0g
ICAgICAgICAgICAoc3VicGF0aAotICAgICAgICAgICAgICAgICIvQXBwbGVJbnRlcm5hbCIKLSAg
ICAgICAgICAgICAgICAiL3Vzci9sb2NhbC9saWIiCi0gICAgICAgICAgICAgICAgIi91c3IvYXBw
bGVpbnRlcm5hbC9saWIiCi0gICAgICAgICAgICApCi0gICAgICAgICkKLSAgICApCi0gICAgKHdp
dGgtZWxldmF0ZWQtcHJlY2VkZW5jZQotICAgICAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLW1h
cC1leGVjdXRhYmxlIGZpbGUtaXNzdWUtZXh0ZW5zaW9uCi0gICAgICAgICAgIChmcm9udC11c2Vy
LWhvbWUtc3VicGF0aCAiL1hjb2RlQnVpbHRQcm9kdWN0cyIpCi0gICAgICAgICkKLSAgICApCi0K
LSAgICA7OyA8cmRhcjovL3Byb2JsZW0vODEwNzc1OD4KLSAgICAoYWxsb3cgZmlsZS1yZWFkKiBm
aWxlLW1hcC1leGVjdXRhYmxlCi0gICAgICAgIChzdWJwYXRoCi0gICAgICAgICAgICAiL1N5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MiCi0gICAgICAgICAgICAiL1N5c3RlbS9MaWJyYXJ5L1ByaXZh
dGVGcmFtZXdvcmtzIgotICAgICAgICApCi0gICAgKQotCi0gICAgOzsgPHJkYXI6Ly9wcm9ibGVt
LzMyNTQ0OTIxPgotICAgIChtb2JpbGUtcHJlZmVyZW5jZXMtcmVhZCAiY29tLmFwcGxlLmhhbmd0
cmFjZXIiKQotKQotCi0oZGVmaW5lLW9uY2UgKGRldmljZS1hY2Nlc3MpCi0gICAgKGRlbnkgZmls
ZS1yZWFkKiBmaWxlLXdyaXRlKgotICAgICAgICAodm5vZGUtdHlwZSBCTE9DSy1ERVZJQ0UgQ0hB
UkFDVEVSLURFVklDRSkpCi0KLSAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlLWRhdGEK
LSAgICAgICAgKGxpdGVyYWwKLSAgICAgICAgICAgICIvZGV2L251bGwiCi0gICAgICAgICAgICAi
L2Rldi96ZXJvIgotICAgICAgICApCi0gICAgKQotCi0gICAgKGFsbG93IGZpbGUtcmVhZCoKLSAg
ICAgICAgKGxpdGVyYWwKLSAgICAgICAgICAgICIvZGV2L3JhbmRvbSIKLSAgICAgICAgICAgICIv
ZGV2L3VyYW5kb20iCi0gICAgICAgICkKLSAgICApCi0KLSAgICAoaWYgKHN5c3RlbS1hdHRyaWJ1
dGUgYXBwbGUtaW50ZXJuYWwpCi0gICAgICAgIChhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUt
ZGF0YSBmaWxlLWlvY3RsCi0gICAgICAgICAgICAobGl0ZXJhbCAiL2Rldi9kdHJhY2VoZWxwZXIi
KSkKLSAgICA7IGVsc2UKLSAgICAgICAgKGRlbnkgKHdpdGggbm8tbG9nKSBmaWxlLXJlYWQqIGZp
bGUtd3JpdGUtZGF0YSBmaWxlLWlvY3RsCi0gICAgICAgICAgICAobGl0ZXJhbCAiL2Rldi9kdHJh
Y2VoZWxwZXIiKSkKLSAgICApCi0KLSAgICA7OyA8cmRhcjovL3Byb2JsZW0vMTQyMTU3MTg+Ci0g
ICAgKGRlbnkgZmlsZS13cml0ZS1kYXRhICh3aXRoIG5vLXJlcG9ydCkKLSAgICAgICAgKGxpdGVy
YWwKLSAgICAgICAgICAgICIvZGV2L3JhbmRvbSIKLSAgICAgICAgICAgICIvZGV2L3VyYW5kb20i
Ci0gICAgICAgICkKLSAgICApCi0KLSAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlLWRh
dGEgZmlsZS1pb2N0bAotICAgICAgICAobGl0ZXJhbCAiL2Rldi9hZXNfMCIpCi0gICAgKQotKQot
Ci0oZGVmaW5lIHJlcXVpcmVkLWV0Yy1maWxlcwotICAgIChsaXRlcmFsCi0gICAgICAgICIvcHJp
dmF0ZS9ldGMvaG9zdHMiCi0gICAgICAgICIvcHJpdmF0ZS9ldGMvZ3JvdXAiCi0gICAgICAgICIv
cHJpdmF0ZS9ldGMvcGFzc3dkIgotICAgICAgICAiL3ByaXZhdGUvZXRjL3Byb3RvY29scyIKLSAg
ICAgICAgIi9wcml2YXRlL2V0Yy9zZXJ2aWNlcyIKLSAgICApCi0pCi0KLShkZW55IGZpbGUtbWFw
LWV4ZWN1dGFibGUpCi0KLShkZW55IGZpbGUtd3JpdGUtbW91bnQgZmlsZS13cml0ZS11bm1vdW50
KQotCi0obW9iaWxlLXByZWZlcmVuY2VzLXJlYWQgImNvbS5hcHBsZS5zZWN1cml0eSIpCi0KLSh3
aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAobW9iaWxl
LXByZWZlcmVuY2VzLXJlYWQgImNvbS5hcHBsZS5Qcm90b3R5cGVUb29scyIpCi0pCi0KLSh3aXRo
LWVsZXZhdGVkLXByZWNlZGVuY2UKLSAgICAoYWxsb3cgZmlsZS1yZWFkKgotICAgICAgICAoc3Vi
cGF0aAotICAgICAgICAgICAgIi91c3IvbGliIgotICAgICAgICAgICAgIi91c3Ivc2hhcmUiCi0g
ICAgICAgICAgICAiL3ByaXZhdGUvdmFyL2RiL3RpbWV6b25lIgotICAgICAgICAgICAgIi9wcml2
YXRlL3Zhci9wcmVmZXJlbmNlcy9Mb2dnaW5nIiA7OzsgPHJkYXI6Ly9wcm9ibGVtLzI0MTQ0NDE4
PgotICAgICAgICAgICAgIi9TeXN0ZW0vTGlicmFyeSIKLSAgICAgICAgKQotICAgICkKLQotICAg
IChsZXQgKChody1pZGVudGlmeWluZy1wYXRocwotICAgICAgICAgICAgKHJlcXVpcmUtYW55Ci0g
ICAgICAgICAgICAgICAgKGxpdGVyYWwgIi9TeXN0ZW0vTGlicmFyeS9DYWNoZXMvYXB0aWNrZXQu
ZGVyIikKLSAgICAgICAgICAgICAgICAoc3VicGF0aCAiL1N5c3RlbS9MaWJyYXJ5L0NhY2hlcy9j
b20uYXBwbGUua2VybmVsY2FjaGVzIikKLSAgICAgICAgICAgICAgICAoc3VicGF0aCAiL1N5c3Rl
bS9MaWJyYXJ5L0NhY2hlcy9jb20uYXBwbGUuZmFjdG9yeWRhdGEiKSkpKQotICAgICAgICAoZGVu
eSBmaWxlLWlzc3VlLWV4dGVuc2lvbiBmaWxlLXJlYWQqIGh3LWlkZW50aWZ5aW5nLXBhdGhzKSkK
LSAgICAKLSAgICAoYWxsb3cgZmlsZS1tYXAtZXhlY3V0YWJsZQotICAgICAgICAoc3VicGF0aAot
ICAgICAgICAgICAgIi9TeXN0ZW0vTGlicmFyeSIKLSAgICAgICAgICAgICIvdXNyL2xpYiIKLSAg
ICAgICAgKQotICAgICkKLQotICAgIChhbGxvdyBmaWxlLXJlYWQtbWV0YWRhdGEKLSAgICAgICAg
KHZub2RlLXR5cGUKLSAgICAgICAgICAgIERJUkVDVE9SWQotICAgICAgICAgICAgU1lNTElOSwot
ICAgICAgICApCi0gICAgKQotCi0gICAgKGFsbG93IHVzZXItcHJlZmVyZW5jZS1yZWFkIChwcmVm
ZXJlbmNlLWRvbWFpbiAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlvbiIpKQotICAgIChhbGxv
dyBmaWxlLXJlYWQqCi0gICAgICAgICAgIChmcm9udC11c2VyLWhvbWUtbGl0ZXJhbCAiL0xpYnJh
cnkvUHJlZmVyZW5jZXMvLkdsb2JhbFByZWZlcmVuY2VzLnBsaXN0IikKLSAgICAgICAgICAgKGZy
b250LXVzZXItaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy8uR2xvYmFsUHJlZmVy
ZW5jZXNfbS5wbGlzdCIpKQotICAgIChhbGxvdyBtYW5hZ2VkLXByZWZlcmVuY2UtcmVhZCAocHJl
ZmVyZW5jZS1kb21haW4gImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRpb24iKSkKLSAgICAKLSAg
ICAoYWxsb3cgZmlsZS1yZWFkKgotICAgICAgICAobGl0ZXJhbCAiL3ByaXZhdGUvdmFyL01hbmFn
ZWQgUHJlZmVyZW5jZXMvbW9iaWxlLy5HbG9iYWxQcmVmZXJlbmNlcy5wbGlzdCIpCi0gICAgKQot
Ci0gICAgKGFsbG93IGZpbGUtcmVhZC1tZXRhZGF0YQotICAgICAgICAoaG9tZS1saXRlcmFsICIv
TGlicmFyeS9DYWNoZXMvcG93ZXJsb2cubGF1bmNoZCIpKQotCi0gICAgOzsgPHJkYXI6Ly9wcm9i
bGVtLzEzOTYzMjk0PgotICAgIChkZW55IGZpbGUtcmVhZC1kYXRhIGZpbGUtaXNzdWUtZXh0ZW5z
aW9uIGZpbGUtbWFwLWV4ZWN1dGFibGUKLSAgICAgICAgKHJlcXVpcmUtYWxsCi0gICAgICAgICAg
ICAoZXhlY3V0YWJsZS1idW5kbGUpCi0gICAgICAgICAgICAocmVnZXggIyIvW14vXSsvU0NfSW5m
by8iKSkpCi0pCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5h
bCkKLSAgICAoaW50ZXJuYWwtZGVidWdnaW5nLXN1cHBvcnQpCi0pCi0KLShhbGxvdyBmaWxlLXJl
YWQqIHJlcXVpcmVkLWV0Yy1maWxlcykKLQotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAoc3VicGF0
aCAiL3ByaXZhdGUvdmFyL01vYmlsZUFzc2V0L1ByZWluc3RhbGxlZEFzc2V0c1YyL0luc3RhbGxX
aXRoT3MiKSkKLQotKGFsbG93IGZpbGUtcmVhZC1kYXRhCi0gICAgKGxpdGVyYWwgIi91c3IvbG9j
YWwvbGliL2xvZyIpIDsgPHJkYXI6Ly9wcm9ibGVtLzM2NjI5NDk1PgotKQotCi0oZGV2aWNlLWFj
Y2VzcykKLQotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgKGdsb2JhbC1uYW1lCi0gICAgICAgICJj
b20uYXBwbGUubG9nZCIKLSAgICAgICAgImNvbS5hcHBsZS5sb2dkLmV2ZW50cyIKLSAgICAgICAg
ImNvbS5hcHBsZS5zeXN0ZW0ubm90aWZpY2F0aW9uX2NlbnRlciIKLSAgICApCi0pCi0KLSh3aXRo
LWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAoYWxsb3cgbWFj
aC1sb29rdXAKLSAgICAgICAgKGdsb2JhbC1uYW1lCi0gICAgICAgICAgICAiY29tLmFwcGxlLmFn
Z3JlZ2F0ZWQiCi0gICAgICAgICAgICAiY29tLmFwcGxlLmRpYWdub3N0aWNkIgotICAgICAgICAg
ICAgImNvbS5hcHBsZS5zeXN0ZW0ubG9nZ2VyIikpKQotCi07OyA8cmRhcjovL3Byb2JsZW0vMTI0
MTM5NDI+Ci0oYWxsb3cgZmlsZS1yZWFkKgotICAgICh3ZWxsLWtub3duLXN5c3RlbS1ncm91cC1j
b250YWluZXItbGl0ZXJhbCAiL3N5c3RlbWdyb3VwLmNvbS5hcHBsZS5tb2JpbGVnZXN0YWx0Y2Fj
aGUvTGlicmFyeS9DYWNoZXMvY29tLmFwcGxlLk1vYmlsZUdlc3RhbHQucGxpc3QiKSkKLQotKGFs
bG93IGlwYy1wb3NpeC1zaG0tcmVhZCoKLSAgICAoaXBjLXBvc2l4LW5hbWUgImFwcGxlLnNobS5u
b3RpZmljYXRpb25fY2VudGVyIikpCi0KLSh3aXRoLWZpbHRlcgotICAgIChyZXF1aXJlLWFsbAot
ICAgICAgICAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAgICAgKGlwYy1w
b3NpeC1uYW1lICJwdXJwbGVidWRkeS5zZW50aW5lbCIpKQotICAgIChkZW55IGlwYy1wb3NpeC1z
ZW0tY3JlYXRlIGlwYy1wb3NpeC1zZW0tcG9zdCBpcGMtcG9zaXgtc2VtLXVubGluayBpcGMtcG9z
aXgtc2VtLXdhaXQpCi0gICAgKGFsbG93IGlwYy1wb3NpeC1zZW0tb3BlbikKLSkKLQotKG1hbmFn
ZWQtY29uZmlndXJhdGlvbi1yZWFkLXB1YmxpYykKLQotKGRlbnkgc3lzdGVtLWluZm8gKHdpdGgg
bm8tcmVwb3J0KQotICAgIChpbmZvLXR5cGUgIm5ldC5saW5rLmFkZHIiKSkKLQotKGFsbG93IG1h
Y2gtdGFzay1uYW1lICh0YXJnZXQgc2VsZikpCi0KLShhbGxvdyBwcm9jZXNzLWluZm8tcGlkaW5m
byAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nlc3MtaW5mby1waWRmZGluZm8gKHRhcmdldCBz
ZWxmKSkKLShhbGxvdyBwcm9jZXNzLWluZm8tcGlkZmlsZXBvcnRpbmZvICh0YXJnZXQgc2VsZikp
Ci0oYWxsb3cgcHJvY2Vzcy1pbmZvLXNldGNvbnRyb2wgKHRhcmdldCBzZWxmKSkKLShhbGxvdyBw
cm9jZXNzLWluZm8tZGlydHljb250cm9sICh0YXJnZXQgc2VsZikpCi0oYWxsb3cgcHJvY2Vzcy1p
bmZvLXJ1c2FnZSAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nlc3MtaW5mby1jb2Rlc2lnbmF0
dXJlICh0YXJnZXQgc2VsZikpCi0KLTs7OwotOzs7IEVuZCBjb21tb24uc2IgY29udGVudAotOzs7
Ci0KLShkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXByZWZpeCAiIikpCi0oZGVu
eSBpb2tpdC1nZXQtcHJvcGVydGllcyAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQotKGRl
bnkgbHNvcGVuKQotCi07OzsKLTs7OyBUaGUgZm9sbG93aW5nIHJ1bGVzIHdlcmUgb3JpZ2luYWxs
eSBjb250YWluZWQgaW4gJ1VJS2l0LWFwcHMuc2InLiBXZSBhcmUgZHVwbGljYXRpbmcgdGhlbSBo
ZXJlIHNvIHdlIGNhbgotOzs7IHJlbW92ZSB1bm5lZWRlZCBzYW5kYm94IGV4dGVuc2lvbnMuCi07
OzsKLQotKGFsbG93LXByZWZlcmVuY2VzLWNvbW1vbikKLQotOzsgSG9tZSBCdXR0b24KLSh3aXRo
LWZpbHRlciAoaW9raXQtcmVnaXN0cnktZW50cnktY2xhc3MgIklPUGxhdGZvcm1EZXZpY2UiKQot
ICAgIChhbGxvdyBpb2tpdC1nZXQtcHJvcGVydGllcyAod2l0aCB0ZWxlbWV0cnkpCi0gICAgICAg
IChpb2tpdC1wcm9wZXJ0eSAiaG9tZS1idXR0b24tdHlwZSIpKSkKLQotKGRlbnkgZmlsZS13cml0
ZSoKLSAgICAoaG9tZS1saXRlcmFsCi0gICAgICAgICIvTGlicmFyeS9DYWNoZXMvRGF0ZUZvcm1h
dHMucGxpc3QiIDsgU2lsZW50bHkgZGVueSB3cml0ZXMgd2hlbiBDRkRhdGEgYXR0ZW1wdHMgdG8g
d3JpdGUgdG8gdGhlIGNhY2hlIGRpcmVjdG9yeS4KLSAgICAgICAgIi9MaWJyYXJ5L1ByZWZlcmVu
Y2VzL2NvbS5hcHBsZS5zcHJpbmdib2FyZC5wbGlzdCIgOzsgPHJkYXI6Ly9wcm9ibGVtLzkzNzUw
Mjc+Ci0gICAgKQotICAgICh3aXRoIG5vLWxvZykpCi0KLTs7OwotOzs7IEVuZCBVSUtpdC1hcHBz
LnNiIGNvbnRlbnQKLTs7OwotCi0oZGVueSBzeXNjdGwqKQotKGFsbG93IHN5c2N0bC1yZWFkCi0g
ICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICJody5hY3RpdmVjcHUiCi0gICAgICAgICJody5hdmFp
bGNwdSIKLSAgICAgICAgImh3LmNhY2hlY29uZmlnIiA7OyA8cmRhcjovL3Byb2JsZW0vNzgyMTM1
NjM+Ci0gICAgICAgICJody5jYWNoZWxpbmVzaXplIgotICAgICAgICAiaHcuY2FjaGVzaXplIiA7
OyA8cmRhcjovL3Byb2JsZW0vNzgyMTM1NjM+Ci0gICAgICAgICJody5jcHVmYW1pbHkiIDs7IDxy
ZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4KLSAgICAgICAgImh3LmNwdXN1YmZhbWlseSIKLSAgICAg
ICAgImh3LmNwdXRocmVhZHR5cGUiCi0gICAgICAgICJody5jcHV0eXBlIgotICAgICAgICAiaHcu
bDFkY2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vMTU3MjE4NzI+Ci0gICAgICAgICJody5s
MWljYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4KLSAgICAgICAgImh3Lmwy
Y2FjaGVzaXplIgotICAgICAgICAiaHcubDNjYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS8x
NTcyMTg3Mj4KLSAgICAgICAgImh3LmxvZ2ljYWxjcHUiCi0gICAgICAgICJody5sb2dpY2FsY3B1
X21heCIKLSAgICAgICAgImh3Lm5jcHUiCi0gICAgICAgICJody5tYWNoaW5lIgotICAgICAgICAi
aHcubWVtc2l6ZSIKLSAgICAgICAgImh3Lm1vZGVsIgotICAgICAgICAiaHcubmNwdSIgOzsgPHJk
YXI6Ly9wcm9ibGVtLzc2NzgyNTMwPgotICAgICAgICAiaHcubnBlcmZsZXZlbHMiIDs7IDxyZGFy
Oi8vcHJvYmxlbS83Njc4MjUzMD4KLSAgICAgICAgImh3LnBhZ2VzaXplIiA7OyA8cmRhcjovL3By
b2JsZW0vNzY3ODI1MzA+Ci0gICAgICAgICJody5wYWdlc2l6ZV9jb21wYXQiCi0gICAgICAgICJo
dy5waHlzaWNhbGNwdSIKLSAgICAgICAgImh3LnBoeXNpY2FsY3B1X21heCIKLSAgICAgICAgImh3
LnBoeXNtZW0iIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSAgICAgICAgImh3LnZlY3Rv
cnVuaXQiIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSAgICAgICAgImtlcm4uYm9vdGFy
Z3MiCi0gICAgICAgICJrZXJuLmhvc3RuYW1lIgotICAgICAgICAia2Vybi5odl92bW1fcHJlc2Vu
dCIKLSAgICAgICAgImtlcm4ubWF4ZmlsZXNwZXJwcm9jIgotICAgICAgICAia2Vybi5tZW1vcnlz
dGF0dXNfbGV2ZWwiCi0gICAgICAgICJrZXJuLm9zcHJvZHVjdHZlcnNpb24iCi0gICAgICAgICJr
ZXJuLm9zcmVsZWFzZSIKLSAgICAgICAgImtlcm4ub3N2YXJpYW50X3N0YXR1cyIKLSAgICAgICAg
Imtlcm4ub3N2ZXJzaW9uIgotICAgICAgICAia2Vybi5vc3R5cGUiCi0gICAgICAgICJrZXJuLnNl
Y3VyZV9rZXJuZWwiCi0gICAgICAgICJrZXJuLnZlcnNpb24iCi0gICAgICAgICJ2bS5mb290cHJp
bnRfc3VzcGVuZCIpCi0gICAgKHN5c2N0bC1uYW1lLXByZWZpeCAiaHcub3B0aW9uYWwuIikgOzsg
PHJkYXI6Ly9wcm9ibGVtLzcwOTczNTI3PgotICAgIChzeXNjdGwtbmFtZS1wcmVmaXggImh3LnBl
cmZsZXZlbCIpIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSkKLQotKHdpdGgtZmlsdGVy
IChzeXN0ZW0tYXR0cmlidXRlIGFwcGxlLWludGVybmFsKQotICAgIChhbGxvdyBzeXNjdGwtcmVh
ZCBzeXNjdGwtd3JpdGUKLSAgICAgICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICAgICAidm0uZm9v
dHByaW50X3N1c3BlbmQiCi0gICAgICAgICkKLSAgICApCi0pCi0KLTs7IFNpbGVuY2Ugbm9pc3kg
ZGVuaWFscwotKGRlbnkgc3lzY3RsLXJlYWQgKHdpdGggbm8tcmVwb3J0KQotICAgIChzeXNjdGwt
bmFtZQotICAgICAgICAic3lzY3RsLnByb2NfbmF0aXZlIgotICAgICkKLSkKLQotOzsgUmVhZC1v
bmx5IHByZWZlcmVuY2VzIGFuZCBkYXRhCi0obW9iaWxlLXByZWZlcmVuY2VzLXJlYWQgImNvbS5h
cHBsZS5MYXVuY2hTZXJ2aWNlcyIpCi0KLTs7IEFjY2VzcyB0byBjbGllbnQncyBjYWNoZSBmb2xk
ZXIgJiByZS12ZW5kaW5nIHRvIENGTmV0d29yay4KLShhbGxvdyBmaWxlLWlzc3VlLWV4dGVuc2lv
bgotICAgIChyZXF1aXJlLWFsbAotICAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNh
bmRib3gucmVhZC13cml0ZSIpCi0gICAgICAgIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5u
c3VybHN0b3JhZ2UuZXh0ZW5zaW9uLWNhY2hlIikpKQotCi0oZGVueSBmaWxlLXdyaXRlLWNyZWF0
ZSAodm5vZGUtdHlwZSBTWU1MSU5LKSkKLShkZW55IGZpbGUtcmVhZC14YXR0ciBmaWxlLXdyaXRl
LXhhdHRyICh4YXR0ci1wcmVmaXggImNvbS5hcHBsZS5zZWN1cml0eS5wcml2YXRlLiIpKQotCi07
OyBGSVhNRTogQ2FuIGZ1cnRoZXIgcmVzdHJpY3QgdGhlIGZvbGxvd2luZyBydWxlcy4KLShhbGxv
dyBpb2tpdC1nZXQtcHJvcGVydGllcyAod2l0aCByZXBvcnQpICh3aXRoIHRlbGVtZXRyeSkpCi0o
YWxsb3cgaW9raXQtc2V0LXByb3BlcnRpZXMgKHdpdGggcmVwb3J0KSAod2l0aCB0ZWxlbWV0cnkp
KQotCi0oYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKgotICAgIChob21lLXN1YnBhdGggIi9M
aWJyYXJ5L0tleWNoYWlucyIpKSA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVu
IDxyZGFyOi8vcHJvYmxlbS8xMTU5OTgyNT4gaXMgZml4ZWQuCi0KLShhbGxvdyBmaWxlLXJlYWQq
Ci0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlucyIpCi0gICAgKGhvbWUtbGl0ZXJhbCAi
L0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9TeW5jU2VydmljZXMvTG9jYWwvQ2xpZW50c1dp
dGhDaGFuZ2VzL2NvbS5hcHBsZS5LZXljaGFpbiIpKQotCi0oYWxsb3cgZmlsZS1yZWFkKgotICAg
IChzdWJwYXRoICIvcHJpdmF0ZS92YXIvY29udGFpbmVycy9TaGFyZWQvU3lzdGVtR3JvdXAiKSA7
OyBGSVhNRTxyZGFyOi8vcHJvYmxlbS83MTEzNzM4OT4KLSAgICAobGl0ZXJhbCAiL3ByaXZhdGUv
dmFyL3ByZWZlcmVuY2VzL2NvbS5hcHBsZS5uZXR3b3JrZC5wbGlzdCIpKQotCi0oYWxsb3cgbWFj
aC1sb29rdXAKLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byB0aGUgU3ByaW5nYm9hcmQgdmlldyBz
ZXJ2aWNlcy4KLSAgICAoZ2xvYmFsLW5hbWUKLSAgICAgICAgImNvbS5hcHBsZS5mcm9udGJvYXJk
LnN5c3RlbWFwcHNlcnZpY2VzIgotICAgICAgICAiY29tLmFwcGxlLnJ1bm5pbmdib2FyZCIKLSAg
ICApCi0KLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byBMb2NhbEF1dGhlbnRpY2F0aW9uIGFuZCBS
ZW1vdGVTZXJ2aWNlCi0gICAgKGdsb2JhbC1uYW1lCi0gICAgICAgICJjb20uYXBwbGUuQ29yZUF1
dGhlbnRpY2F0aW9uLmRhZW1vbiIKLSAgICAgICAgImNvbS5hcHBsZS5yZW1vdGVkIgotICAgICAg
ICAiY29tLmFwcGxlLnRjY2QiCi0gICAgKQotCi0gICAgOzsgQWxsb3cgYWNjZXNzZXMgdG8gdGhl
IFNFUAotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmN0a2QudG9rZW4tY2xpZW50IikKLQot
ICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIE5GQwotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
Lm5mY2QuaHdtYW5hZ2VyIikKLQotICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIHRoZSBLZXljaGFp
biBzZXJ2aWNlCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc2VjdXJpdHlkIikKLQotICAg
IDs7IEFsbG93IGFjY2Vzc2VzIHRvIEFBQSBhbmQgdGhlIG5ldHdvcmsKLSAgICAoZ2xvYmFsLW5h
bWUKLSAgICAgICAgImNvbS5hcHBsZS5BcHBTU08uc2VydmljZS14cGMiCi0gICAgICAgICJjb20u
YXBwbGUubmVoZWxwZXIiCi0gICAgICAgICJjb20uYXBwbGUudXN5bXB0b21zZCIKLSAgICAgICAg
ImNvbS5hcHBsZS5kbnNzZC5zZXJ2aWNlIgotICAgICAgICAiY29tLmFwcGxlLnRydXN0ZCIKLSAg
ICAgICAgImNvbS5hcHBsZS5jb250YWluZXJtYW5hZ2VyZCIKLSAgICAgICAgImNvbS5hcHBsZS5t
b2JpbGVnZXN0YWx0LnhwYyIKLSAgICApCi0KLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byB0aGUg
QVNECi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQXV0aGVudGljYXRpb25TZXJ2aWNlc0Nv
cmUuQXV0aGVudGljYXRpb25TZXJ2aWNlc0FnZW50IikKLSkKLQotKGFsbG93IGlva2l0LW9wZW4K
LSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byBISUQKLSAgICAoaW9raXQtdXNlci1jbGllbnQtY2xh
c3MgIklPSElETGliVXNlckNsaWVudCIpCi0KLSAgICA7OyBBbGxvdyBhY2Nlc3MgdG8gdGhlIGtl
eSBzdG9yZQotICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiQXBwbGVLZXlTdG9yZVVzZXJD
bGllbnQiKQotKQotCi0oYWxsb3cgbmV0d29yay1vdXRib3VuZAotICAgIChsaXRlcmFsICIvcHJp
dmF0ZS92YXIvcnVuL21ETlNSZXNwb25kZXIiKQotICAgIChyZW1vdGUgdGNwKQotICAgIChyZW1v
dGUgdWRwKQotKQotCi0od2l0aC1maWx0ZXIgKHN5c3RlbS1hdHRyaWJ1dGUgYXBwbGUtaW50ZXJu
YWwpCi0gICAgKGFsbG93IG5ldHdvcmstb3V0Ym91bmQKLSAgICAgICAgKGxpdGVyYWwgIi9wcml2
YXRlL3Zhci9ydW4vc3lzbG9nIikpCi0pCi0KLSNpZiBFTkFCTEUoU1lTVEVNX0NPTlRFTlRfUEFU
SF9TQU5EQk9YX1JVTEVTKQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9TeXN0ZW1Db250ZW50
U2FuZGJveC1pb3MuZGVmcz4KLQotKGFsbG93IGZpbGUtcmVhZCogZmlsZS10ZXN0LWV4aXN0ZW5j
ZQotICAgIChhcHBseSBzdWJwYXRoIGZpbGUtcmVhZC1leGlzdGVuY2Utc2Vjb25kYXJ5LXBhdGhz
KSkKLQotKGFsbG93IGZpbGUtbWFwLWV4ZWN1dGFibGUKLSAgICAoYXBwbHkgc3VicGF0aCBzZWNv
bmRhcnktZnJhbWV3b3JrLWFuZC1keWxpYi1wYXRocykpCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaCBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaAppbmRleCBhOTBmMTlmYTM5N2YyZWNk
N2Y3NzE1YTAxNTc1MjA2ZTIyNWRjMzMxLi5lN2ViZmEwNTg4OTBhMzQ4OTYzYzY2OTMyZDdkODYz
Y2M3OTIwOWMzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1lbnRp
dGxlbWVudHMuc2gKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1l
bnRzLnNoCkBAIC0xMTcsMzIgKzExNyw2IEBAIGZ1bmN0aW9uIG1hY19wcm9jZXNzX2dwdV9lbnRp
dGxlbWVudHMoKQogICAgIGZpCiB9CiAKLWZ1bmN0aW9uIG1hY19wcm9jZXNzX3dlYmF1dGhuX2Vu
dGl0bGVtZW50cygpCi17Ci0gICAgaWYgW1sgIiR7V0tfVVNFX1JFU1RSSUNURURfRU5USVRMRU1F
TlRTfSIgPT0gWUVTIF1dCi0gICAgdGhlbgotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFw
cGxlLnNlY3VyaXR5LmRldmljZS51c2IgYm9vbCBZRVMKLQotICAgICAgICBwbGlzdGJ1ZGR5IEFk
ZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwcyBhcnJheQotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6
a2V5Y2hhaW4tYWNjZXNzLWdyb3VwczowIHN0cmluZyBjb20uYXBwbGUud2Via2l0LndlYmF1dGhu
Ci0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nlc3MtZ3JvdXBzOjEgc3RyaW5n
IGxvY2tkb3duLWlkZW50aXRpZXMKLQotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxl
LnNlY3VyaXR5LmF0dGVzdGF0aW9uLmFjY2VzcyBib29sIFlFUwotICAgICAgICBwbGlzdGJ1ZGR5
IEFkZCA6Y29tLmFwcGxlLmtleXN0b3JlLnNpay5hY2Nlc3MgYm9vbCBZRVMKLSAgICAgICAgcGxp
c3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLlJlbW90ZVNlcnZpY2VEaXNjb3ZlcnkuYWxs
b3ctc2FuZGJveCBib29sIFlFUwotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnBy
aXZhdGUuUmVtb3RlU2VydmljZURpc2NvdmVyeS5kZXZpY2UtYWRtaW4gYm9vbCBZRVMKLSAgICAg
ICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5hcHBhdHRlc3Quc3BpIGJvb2wgWUVTCi0gICAg
ICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUubW9iaWxlYWN0aXZhdGlvbmQuc3BpIGJvb2wg
WUVTCi0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUubW9iaWxlYWN0aXZhdGlvbmQu
YnJpZGdlIGJvb2wgWUVTCi0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0
ZS5zZWN1cml0eS5ib290cG9saWN5IGJvb2wgWUVTCi0KLSAgICAgICAgaWYgKCggIiR7VEFSR0VU
X01BQ19PU19YX1ZFUlNJT05fTUFKT1J9IiA+PSAxMTAwMDAgKSkKLSAgICAgICAgdGhlbgotICAg
ICAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5jcy5qaXQtd3JpdGUt
YWxsb3dsaXN0IGJvb2wgWUVTCi0gICAgICAgIGZpCi0gICAgZmkKLX0KLQogZnVuY3Rpb24gbWFj
X3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMoKQogewogICAgIGlmIFtbICIke1dLX1VTRV9S
RVNUUklDVEVEX0VOVElUTEVNRU5UU30iID09IFlFUyBdXQpAQCAtNDI1LDQ3ICszOTksNiBAQCBm
dW5jdGlvbiBpb3NfZmFtaWx5X3Byb2Nlc3NfZ3B1X2VudGl0bGVtZW50cygpCiAgICAgcGxpc3Ri
dWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLmF0dHJpYnV0aW9uLmV4cGxpY2l0bHktYXNzdW1l
ZC1pZGVudGl0aWVzOjA6dHlwZSBzdHJpbmcgd2lsZGNhcmQKIH0KIAotZnVuY3Rpb24gaW9zX2Zh
bWlseV9wcm9jZXNzX3dlYmF1dGhuX2VudGl0bGVtZW50cygpCi17Ci0gICAgcGxpc3RidWRkeSBB
ZGQgOmNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1cyBib29sIFlFUwotICAgIHBsaXN0YnVk
ZHkgQWRkIDpjb20uYXBwbGUucnVubmluZ2JvYXJkLmFzc2VydGlvbnMud2Via2l0IGJvb2wgWUVT
Ci0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5LmRldmljZS51c2IgYm9v
bCBZRVMKLQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS50Y2MuYWxsb3cg
YXJyYXkKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUudGNjLmFsbG93OjAg
c3RyaW5nIGtUQ0NTZXJ2aWNlTGlzdGVuRXZlbnQKLQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20u
YXBwbGUuc2VjdXJpdHkuYXBwbGljYXRpb24tZ3JvdXBzIGFycmF5Ci0gICAgcGxpc3RidWRkeSBB
ZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5hcHBsaWNhdGlvbi1ncm91cHM6MCBzdHJpbmcgZ3JvdXAu
Y29tLmFwcGxlLndlYmtpdAotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5uZmNkLmh3
bWFuYWdlciBib29sIFlFUwotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUubmZjZC5zZXNz
aW9uLnJlYWRlci5pbnRlcm5hbCBib29sIFlFUwotICAgICMgRklYTUUocmRhcjovL3Byb2JsZW0v
NzI2NDY2NjQpOiBGaW5kIGEgYmV0dGVyIHdheSB0byBpbnZva2UgTmVhckZpZWxkIGluIHRoZSBi
YWNrZ3JvdW5kLgotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUuaW50ZXJuYWwubmZjLmFs
bG93LmJhY2tncm91bmRlZC5zZXNzaW9uIGJvb2wgWUVTCi0gICAgcGxpc3RidWRkeSBBZGQgOmNv
bS5hcHBsZS5VSUtpdC52ZW5kcy12aWV3LXNlcnZpY2VzIGJvb2wgWUVTCi0KLSAgICBwbGlzdGJ1
ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwcyBhcnJheQotICAgIHBsaXN0YnVkZHkgQWRk
IDprZXljaGFpbi1hY2Nlc3MtZ3JvdXBzOjAgc3RyaW5nIGNvbS5hcHBsZS53ZWJraXQud2ViYXV0
aG4KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwczoxIHN0cmluZyBs
b2NrZG93bi1pZGVudGl0aWVzCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZh
dGUuTW9iaWxlR2VzdGFsdC5BbGxvd2VkUHJvdGVjdGVkS2V5cyBhcnJheQotICAgIHBsaXN0YnVk
ZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5Nb2JpbGVHZXN0YWx0LkFsbG93ZWRQcm90ZWN0ZWRL
ZXlzOjAgc3RyaW5nIFVuaXF1ZUNoaXBJRAotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUu
cHJpdmF0ZS5Nb2JpbGVHZXN0YWx0LkFsbG93ZWRQcm90ZWN0ZWRLZXlzOjEgc3RyaW5nIFNlcmlh
bE51bWJlcgotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5zeXN0ZW0t
Z3JvdXBzIGFycmF5Ci0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5zeXN0
ZW0tZ3JvdXBzOjAgc3RyaW5nIHN5c3RlbWdyb3VwLmNvbS5hcHBsZS5tb2JpbGVhY3RpdmF0aW9u
ZAotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5hdHRlc3RhdGlvbi5h
Y2Nlc3MgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLmtleXN0b3JlLnNp
ay5hY2Nlc3MgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLmFwcGF0dGVz
dC5zcGkgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLm1vYmlsZWFjdGl2
YXRpb25kLnNwaSBib29sIFlFUwotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zcHJp
bmdib2FyZC5yZW1vdGUtYWxlcnQgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFw
cGxlLmZyb250Ym9hcmQubGF1bmNoYXBwbGljYXRpb25zIGJvb2wgWUVTCi0KLSAgICBwbGlzdGJ1
ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuc2FuZGJveC5wcm9maWxlIHN0cmluZyBjb20uYXBw
bGUuV2ViS2l0LldlYkF1dGhuCi19Ci0KIGZ1bmN0aW9uIGlvc19mYW1pbHlfcHJvY2Vzc19hZGF0
dHJpYnV0aW9uZF9lbnRpdGxlbWVudHMoKQogewogICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBw
bGUucHJpdmF0ZS5zYW5kYm94LnByb2ZpbGUgc3RyaW5nIGNvbS5hcHBsZS5XZWJLaXQuYWRhdHRy
aWJ1dGlvbmQKQEAgLTUyMCw3ICs0NTMsNiBAQCB0aGVuCiAgICAgZWxpZiBbWyAiJHtQUk9EVUNU
X05BTUV9IiA9PSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuQ2FwdGl2ZVBvcnRhbCBdXTsg
dGhlbiBtYWNfcHJvY2Vzc193ZWJjb250ZW50X2NhcHRpdmVwb3J0YWxfZW50aXRsZW1lbnRzCiAg
ICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9PSBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtp
bmcgXV07IHRoZW4gbWFjX3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMKICAgICBlbGlmIFtb
ICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuR1BVIF1dOyB0aGVuIG1hY19w
cm9jZXNzX2dwdV9lbnRpdGxlbWVudHMKLSAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09
IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4gXV07IHRoZW4gbWFjX3Byb2Nlc3Nfd2ViYXV0aG5f
ZW50aXRsZW1lbnRzCiAgICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9PSB3ZWJwdXNoZCBd
XTsgdGhlbiBtYWNfcHJvY2Vzc193ZWJwdXNoZF9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIk
e1BST0RVQ1RfTkFNRX0iICE9IGFkYXR0cmlidXRpb25kIF1dOyB0aGVuIGVjaG8gIlVuc3VwcG9y
dGVkL3Vua25vd24gcHJvZHVjdDogJHtQUk9EVUNUX05BTUV9IgogICAgIGZpCkBAIC01NDQsNyAr
NDc2LDYgQEAgdGhlbgogICAgIGVsaWYgW1sgIiR7UFJPRFVDVF9OQU1FfSIgPT0gY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50LkNhcHRpdmVQb3J0YWwgXV07IHRoZW4gaW9zX2ZhbWlseV9wcm9j
ZXNzX3dlYmNvbnRlbnRfY2FwdGl2ZXBvcnRhbF9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIk
e1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZyBdXTsgdGhlbiBp
b3NfZmFtaWx5X3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BS
T0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuR1BVIF1dOyB0aGVuIGlvc19mYW1pbHlf
cHJvY2Vzc19ncHVfZW50aXRsZW1lbnRzCi0gICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9
PSBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuIF1dOyB0aGVuIGlvc19mYW1pbHlfcHJvY2Vzc193
ZWJhdXRobl9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGFk
YXR0cmlidXRpb25kIF1dOyB0aGVuCiAgICAgICAgIGlvc19mYW1pbHlfcHJvY2Vzc19hZGF0dHJp
YnV0aW9uZF9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IHdl
YnB1c2hkIF1dOyB0aGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9E
ZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0Rl
ZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IGFjMzNmNTNhN2EwNGI1MGVkN2M1YzMwYTgy
NDUxMTJhZDIzNDVlODcuLmU5NGZiMzYwMWJhYTUzMDE2ZjRjMjkxZmVhY2Y0ZjdlMDUwOWM5YTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2Vy
Q2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93
c2VyQ2hlY2tzLm1tCkBAIC03MSw4ICs3MSw3IEBAIHN0YXRpYyBib29sIGlzSW5XZWJLaXRDaGls
ZFByb2Nlc3MoKQogICAgICAgICBOU1N0cmluZyAqYnVuZGxlSWRlbnRpZmllciA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl07CiAgICAgICAgIGlzSW5TdWJQcm9jZXNz
ID0gW2J1bmRsZUlkZW50aWZpZXIgaGFzUHJlZml4OkAiY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50Il0KICAgICAgICAgICAgIHx8IFtidW5kbGVJZGVudGlmaWVyIGhhc1ByZWZpeDpAImNvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya2luZyJdCi0gICAgICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmll
ciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2ViS2l0LkdQVSJdCi0gICAgICAgICAgICB8fCBbYnVu
ZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuIl07Cisg
ICAgICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2Vi
S2l0LkdQVSJdOwogICAgIH0pOwogCiAgICAgcmV0dXJuIGlzSW5TdWJQcm9jZXNzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENT
ZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApp
bmRleCBiYWEwMTI1NzA3NzdhZWQyMTIxNWYxM2JiNDNmYjViYTEzOGY2OTU5Li5kNTc3ZTJlMTJh
NTFmZmJlZDI2NGNkOGRjMjg3N2VjZTEwYjk3YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVu
dHJ5UG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApAQCAtNDIsNyArNDIsNiBA
QCBleHRlcm4gIkMiIE9TX05PVEhST1cgdm9pZCB2b3VjaGVyX3JlcGxhY2VfZGVmYXVsdF92b3Vj
aGVyKHZvaWQpOwogI2RlZmluZSBXRUJDT05URU5UX1NFUlZJQ0VfSU5JVElBTElaRVIgV2ViQ29u
dGVudFNlcnZpY2VJbml0aWFsaXplcgogI2RlZmluZSBORVRXT1JLX1NFUlZJQ0VfSU5JVElBTEla
RVIgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplcgogI2RlZmluZSBHUFVfU0VSVklDRV9JTklUSUFM
SVpFUiBHUFVTZXJ2aWNlSW5pdGlhbGl6ZXIKLSNkZWZpbmUgV0VCQVVUSE5fU0VSVklDRV9JTklU
SUFMSVpFUiBXZWJBdXRoblNlcnZpY2VJbml0aWFsaXplcgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
RW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCmlu
ZGV4IGYxY2Y0OWQ4MzZiODhiNzQ5MjY3NDgzZDY4NGVkN2U5OTkxMmY2ZmUuLjBlN2NjZTcyMDk4
M2QzYzBmOTZlZGRjNjNmMGY5OTNlMzA1YmYxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFp
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29h
L1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KQEAgLTEwNSw4ICsxMDUsNiBAQCBzdGF0aWMg
dm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jb25uZWN0aW9uX3QgcGVlcikKICAgICAg
ICAgICAgICAgICBlbnRyeVBvaW50RnVuY3Rpb25OYW1lID0gQ0ZTVFIoU1RSSU5HSVpFX1ZBTFVF
X09GKE5FVFdPUktfU0VSVklDRV9JTklUSUFMSVpFUikpOwogICAgICAgICAgICAgZWxzZSBpZiAo
IXN0cmNtcChzZXJ2aWNlTmFtZSwgImNvbS5hcHBsZS5XZWJLaXQuR1BVIikpCiAgICAgICAgICAg
ICAgICAgZW50cnlQb2ludEZ1bmN0aW9uTmFtZSA9IENGU1RSKFNUUklOR0laRV9WQUxVRV9PRihH
UFVfU0VSVklDRV9JTklUSUFMSVpFUikpOwotICAgICAgICAgICAgZWxzZSBpZiAoIXN0cmNtcChz
ZXJ2aWNlTmFtZSwgImNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4iKSkKLSAgICAgICAgICAgICAg
ICBlbnRyeVBvaW50RnVuY3Rpb25OYW1lID0gQ0ZTVFIoU1RSSU5HSVpFX1ZBTFVFX09GKFdFQkFV
VEhOX1NFUlZJQ0VfSU5JVElBTElaRVIpKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElQQywgIlhQQ1NlcnZpY2VFdmVudEhhbmRsZXI6IFVu
ZXhwZWN0ZWQgJ3NlcnZpY2UtbmFtZSc6ICV7cHVibGljfXMiLCBzZXJ2aWNlTmFtZSk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFj
L0F1eGlsaWFyeVByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxp
YXJ5UHJvY2Vzc01hYy5tbQppbmRleCA4ZjI1OWRhNmQ1MTAyNmNjZDYxODliYmVjYTQ4ZDUzZGI5
ODFkYjViLi42N2E2YzAwNzc4MjRhMjhmZThmMmNlODQzYTgwMGFmMzJiM2ZkMjQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQpAQCAtMjM3
LDEwICsyMzcsNiBAQCBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvY2Vzc1N0b3JhZ2VDbGFzcyhX
ZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKICAgICBjYXNlIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAg
IHJldHVybiAiV2ViS2l0R1BVU2FuZGJveCI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhO
KQotICAgIGNhc2UgV2ViQ29yZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgotICAg
ICAgICByZXR1cm4gIldlYktpdFdlYkF1dGhuU2FuZGJveCI7CiAjZW5kaWYKICAgICB9CiB9CkBA
IC0zMDQsMTEgKzMwMCw2IEBAIHN0YXRpYyBTdHJpbmcgc2FuZGJveERpcmVjdG9yeShXZWJDb3Jl
OjpBdXhpbGlhcnlQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgY29uc3QKICAgICBjYXNlIFdlYkNv
cmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAgIGRpcmVjdG9yeS5hcHBlbmQo
Ii9jb20uYXBwbGUuV2ViS2l0LkdQVS5TYW5kYm94Iik7CiAgICAgICAgIGJyZWFrOwotI2VuZGlm
Ci0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBjYXNlIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nl
c3NUeXBlOjpXZWJBdXRobjoKLSAgICAgICAgZGlyZWN0b3J5LmFwcGVuZCgiL2NvbS5hcHBsZS5X
ZWJLaXQuV2ViQXV0aG4uU2FuZGJveCIpOwotICAgICAgICBicmVhazsKICNlbmRpZgogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggM2RkYjA2MzFlMTAyMTkxYzc3NTM5MGI1MjM3ZDc4YmMwZDAyMzIy
ZS4uYmU3MzZkMWNlZTlmMzRjN2UwMjlhMmMxNWYxZWMzNjNmMmQxZmMxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC02MTAsNyArNjEwLDYgQEAgVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcAogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3IuY3BwCiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2Vi
QXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5jcHAKLVVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHAKIAogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYkRl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5jcHAKIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5jcHAKQEAgLTYxOSwxMCArNjE4LDYgQEAgVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmNwcAogCiBV
SVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5jcHAKIAotV2ViQXV0aG5Qcm9jZXNzL1dlYkF1
dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKLVdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblBy
b2Nlc3MuY3BwCi1XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAotCiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKIFdlYlByb2Nlc3MvV2ViU2xlZXBEaXNhYmxlckNsaWVudC5j
cHAKQEAgLTgwNCw3ICs3OTksNiBAQCBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2Vy
UHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlci5jcHAKIAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3IuY3BwCi1XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCiAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvUmVtb3RlV2Vi
TG9ja1JlZ2lzdHJ5LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVD
b252ZXJzaW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGIzNGM1MGRkZTc0YmJlNDkw
NDkyOTc2MDIzYTg3ZDc4NzkwMGRjMmQuLjY4ZGM3NzE5MjExNDlkNjU3ZjU0NmNhMjczZjRlMzk1
Mzc4NDBmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYwNSwxMCArNjA1LDYgQEAgVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZpY2UubW0KIAogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQogCi1XZWJBdXRo
blByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZUVudHJ5
UG9pbnQubW0KLVdlYkF1dGhuUHJvY2Vzcy9pb3MvV2ViQXV0aG5Qcm9jZXNzSU9TLm1tCi1XZWJB
dXRoblByb2Nlc3MvbWFjL1dlYkF1dGhuUHJvY2Vzc01hYy5tbQotCiBXZWJQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3MuY3BwCiAKIFdlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENv
b3JkaW5hdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcAppbmRleCAxYTczYTcwY2FjOTk2ODI2OWM0NjdhODg2N2Y4MjFjNGIwZGJhMmE0
Li43NzIwNzMyMTY5NTM1Y2MwMDg4YWQzNDM5MWU2NmRiZGRkY2ZkMjRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtODM0LDE2ICs4
MzQsNiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVu
Y2VzUmVmKS0+d2ViQXV0aGVudGljYXRpb25FbmFibGVkKCk7CiB9CiAKLXZvaWQgV0tQcmVmZXJl
bmNlc1NldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCi17Ci0gICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
c2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKGZsYWcpOwotfQotCi1ib29sIFdLUHJl
ZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCk7Ci19Ci0KIHZvaWQgV0tQcmVmZXJlbmNl
c1NldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNl
dEludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkKCFmbGFnKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oCmluZGV4
IDJjY2JjN2NmNWQzMDYxNGI2YWVmYzc3MDEzNTkxZGEwOWQ0MmNjMDIuLmY5ZjRhMmEwZDVlM2Nj
MTg0Mjc0MzIxNzMwYjIzYTFjOTZlZmVmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDk4LDEwICs0
OTgsNiBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RXhwb3NlU3BlYWtlcnNFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFdl
YkF1dGhlbnRpY2F0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tf
RVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmKTsKIAotLy8gRGVmYXVsdHMgdG8gZmFsc2UKLVdLX0VYUE9SVCB2b2lkIFdL
UHJlZmVyZW5jZXNTZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoV0tQcmVmZXJlbmNl
c1JlZiwgYm9vbCBmbGFnKTsKLVdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7Ci0KIC8vIERlZmF1bHRz
IHRvIHRydWUuCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SW52aXNpYmxlTWVkaWFB
dXRvcGxheVBlcm1pdHRlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwogV0tfRVhQT1JU
IGJvb2wgV0tQcmVmZXJlbmNlc0dldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQ
cmVmZXJlbmNlc1JlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDkwNDM0NTVhNWY2MTg2ZjNmZjhhZjc5ODA3ZTE5NDI0
ZWIwZGQ4ZmMuLjVlMTkwZDRmOGQxMDhmZDU2ZjA2YTgzNmM3NTRmNjEyZjA3ZjE3OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1t
CkBAIC0zOCw3ICszOCw2IEBACiAjaW1wb3J0ICJXS09iamVjdC5oIgogI2ltcG9ydCAiV0tXZWJW
aWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFTdG9yZUludGVybmFsLmgiCi0j
aW1wb3J0ICJXZWJBdXRoblByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiV2ViQmFja0ZvcndhcmRD
YWNoZS5oIgogI2ltcG9ydCAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAjaW1wb3J0ICJXZWJDb29r
aWVNYW5hZ2VyUHJveHkuaCIKQEAgLTE5OCwxNSArMTk3LDYgQEAgc3RhdGljIFJldGFpblB0cjxX
S1Byb2Nlc3NQb29sPiYgc2hhcmVkUHJvY2Vzc1Bvb2woKQogICAgIHJldHVybiBbdXJsIFVSTEJ5
QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVEYXRhIiBpc0RpcmVjdG9yeTpZRVNdOwog
fQogCi0rIChwaWRfdClfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcgotewotI2lmIEVOQUJMRShX
RUJfQVVUSE4pCi0gICAgcmV0dXJuIFdlYktpdDo6V2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmds
ZXRvbigpLnByb2Nlc3NJZGVudGlmaWVyKCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlm
Ci19Ci0KIC0gKHZvaWQpX3NldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJh
eSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilob3N0CiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oCmluZGV4IDBjYjFiZTIzODczMmQyMWM2NDkwZGE2MTJiNWFmMzljMzE1NDAwNTAu
LmZhNjIxYjkxODEzYzFjNjBhYTM0YzdjYzhjYWM3ZjBkZmVmMzU4YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oCkBAIC03Miw3ICs3Miw2IEBACiAKICsgKE5TVVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29u
dGFpbmVyV2l0aFVSTDooTlNVUkwgKiljb250YWluZXJVUkw7CiArIChOU1VSTCAqKV93ZWJzaXRl
RGF0YVVSTEZvckNvbnRhaW5lcldpdGhVUkw6KE5TVVJMICopY29udGFpbmVyVVJMIGJ1bmRsZUlk
ZW50aWZpZXJJZk5vdEluQ29udGFpbmVyOihOU1N0cmluZyAqKWJ1bmRsZUlkZW50aWZpZXI7Ci0r
IChwaWRfdClfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiArICh2b2lkKV9zZXRXZWJQcm9jZXNz
Q291bnRMaW1pdDoodW5zaWduZWQpbGltaXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKaW5kZXggY2ZkZjRhMWU1NDlmM2UyYzE1MDcyMzAx
YmNhYzQxMWJmYjVjY2RiOC4uYzI5ODY3YmVhZjJkZjljNzcxZDNiMmU5Yzc2MmIxYjExZWVkODA4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1By
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJv
eHkuY3BwCkBAIC04NiwxMSArODYsNiBAQCB2b2lkIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6Z2V0
TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdQogICAgICAg
ICB2YXJuYW1lID0gIkdQVV9QUk9DRVNTX0NNRF9QUkVGSVgiOwogICAgICAgICBicmVhazsKICNl
bmRpZgotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlBy
b2Nlc3NUeXBlOjpXZWJBdXRobjoKLSAgICAgICAgdmFybmFtZSA9ICJXRUJBVVRITl9QUk9DRVNT
X0NNRF9QUkVGSVgiOwotICAgICAgICBicmVhazsKLSNlbmRpZgogI2lmIEVOQUJMRShCVUJCTEVX
UkFQX1NBTkRCT1gpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpEQnVz
UHJveHk6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggODA4NTcz
MjNmOWQ4ZjljMzhmNjFhOTIxYjdkZWI4NDRiODAwZjI3MC4uZmRkOGVmNjRhMTQ3Y2IxYTFhZmI5
NTBhOTM4MzI3Yjk5MzJmYWIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC00Miw4ICs0Miw2IEBACiAjaW1wb3J0
ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0
ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgotI2ltcG9ydCAiV2ViQXV0
aG5Qcm9jZXNzTWVzc2FnZXMuaCIKLSNpbXBvcnQgIldlYkF1dGhuUHJvY2Vzc1Byb3h5LmgiCiAj
aW1wb3J0ICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgpAQCAtMTA4MywxMSArMTA4MSw2
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBT
dHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nCiAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrUHJv
Y2VzcyA9IGRhdGFTdG9yZS5uZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpCiAgICAgICAgICAgICBu
ZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Ok5vdGlmeVByZWZl
cmVuY2VzQ2hhbmdlZChkb21haW4sIGtleSwgZW5jb2RlZFZhbHVlKSwgMCk7CiAgICAgfSk7Ci0g
ICAgCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBpZiAoYXV0byB3ZWJBdXRoblByb2Nlc3Mg
PSBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uSWZDcmVhdGVkKCkpCi0gICAgICAgIHdl
YkF1dGhuUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQXV0aG5Qcm9jZXNzOjpOb3RpZnlQcmVm
ZXJlbmNlc0NoYW5nZWQoZG9tYWluLCBrZXksIGVuY29kZWRWYWx1ZSksIDApOwotI2VuZGlmCiAK
ICAgICBpZiAoa2V5ID09IFdLQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVkS2V5IHx8IGtleSA9PSBX
ZWJLaXRDYXB0aXZlUG9ydGFsTW9kZUNoYW5nZWROb3RpZmljYXRpb25fTGVnYWN5KQogICAgICAg
ICBjYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCBkMTI1ODdlOGZlMzZl
YWExY2ZlZDc5MjZjMGM4ZjM4Nzg3ZTI3MjZlLi4wNDEyOTgzNThlMjRiNmM1MDcwMGQxNDZjOTIy
OWM3Y2QwY2Y5NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hl
ci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNzQsOSArNzQsNiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogICAgICAgICBHUFUsCiAjZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhO
KQotICAgICAgICBXZWJBdXRobiwKLSNlbmRpZgogI2lmIEVOQUJMRShCVUJCTEVXUkFQX1NBTkRC
T1gpCiAgICAgICAgIERCdXNQcm94eSwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5t
bQppbmRleCA0OWVhOWZmM2UyNTcyNWFhOWYwMWVkZDZlODdmMGZlM2YzMzA1ZDlkLi5iZTEyMTU2
ZmY5ZDQ5NmQ3OGFjZWJmN2M5MDY1MmY4YmFkZWZlM2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJD
b2NvYS5tbQpAQCAtNzIsMTAgKzcyLDYgQEAgc3RhdGljIGNvbnN0IGNoYXIqIHNlcnZpY2VOYW1l
KGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW8KICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBl
OjpHUFU6CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5HUFUiOwotI2VuZGlmCi0j
aWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5
cGU6OldlYkF1dGhuOgotICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4i
OwogI2VuZGlmCiAgICAgfQogfQpAQCAtODgsMTQgKzg0LDEwIEBAIHN0YXRpYyBib29sIHNob3Vs
ZExlYWtCb29zdChjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9w
dGlvbnMpCiAgICAgLy8gcmlnaHQgcHJpb3JpdGllcy4KICAgICByZXR1cm4gZmFsc2U7CiAjZWxz
ZQotICAgIC8vIE9uIE1hYywgbGVhayBhIGJvb3N0IG9udG8gdGhlIE5ldHdvcmtQcm9jZXNzLCBH
UFVQcm9jZXNzLCBhbmQgV2ViQXV0aG5Qcm9jZXNzLgorICAgIC8vIE9uIE1hYywgbGVhayBhIGJv
b3N0IG9udG8gdGhlIE5ldHdvcmtQcm9jZXNzIGFuZCBHUFVQcm9jZXNzLgogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKICAgICBpZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNz
TGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpHUFUpCiAgICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlm
Ci0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBpZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlw
ZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWJBdXRobikKLSAgICAgICAgcmV0
dXJuIHRydWU7CiAjZW5kaWYKICAgICByZXR1cm4gbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9
PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdG9yLmgKaW5kZXggNWNmOWFmNTcwOGU4YzFiMWYxN2JjNGRkY2EyMmVmYzk0Y2MzNGFhYi4u
YTUyMWQwMTE5NmY1MGJiNTYyODA3MDcwOGVmMGFhNjA3MTM0ZTNjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
b3IuaApAQCAtNjgsMTQgKzY4LDExIEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIG9wZXJhdGlvbiBp
cyBndWFyYW50ZWVkIHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzbHkuCiAgICAgdm9pZCBoYW5kbGVS
ZXF1ZXN0KGNvbnN0IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmKTsKIAotICAgIHZvaWQg
c2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKGJvb2wgd2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FbmFibGVkKSB7IG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkID0gd2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkOyB9Ci0KIHByb3RlY3RlZDoKICAgICBBdXRoZW50aWNh
dG9yKCkgPSBkZWZhdWx0OwogCiAgICAgT2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3QgeyByZXR1
cm4gbV9vYnNlcnZlci5nZXQoKTsgfQogICAgIGNvbnN0IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVz
dERhdGEmIHJlcXVlc3REYXRhKCkgY29uc3QgeyByZXR1cm4gbV9wZW5kaW5nUmVxdWVzdERhdGE7
IH0KLSAgICBib29sIHdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkOyB9CiAKICAgICB2b2lkIHJlY2Vp
dmVSZXNwb25kKFJlc3BvbmQmJikgY29uc3Q7CiAKQEAgLTg1LDcgKzgyLDYgQEAgcHJpdmF0ZToK
IAogICAgIFdlYWtQdHI8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CiAgICAgV2ViQXV0aGVudGljYXRp
b25SZXF1ZXN0RGF0YSBtX3BlbmRpbmdSZXF1ZXN0RGF0YTsKLSAgICBib29sIG1fd2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IGUzZTRmMzIxYTEw
N2U4M2U4YmQ5ZTg2OGYxODI1MTI5NGFhY2I2NjguLmIzMTY3Mzc0ZjVmNGU4ZGE0YTdkZDQ2MGJh
MDQ0N2QwMTk2NGFhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAg
LTIzNCwxMSArMjM0LDYgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y2FuY2VsKCkKICAg
ICBjYW5jZWxSZXF1ZXN0KCk7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmVuYWJs
ZU1vZGVybldlYkF1dGhlbnRpY2F0aW9uKCkKLXsKLSAgICBtX21vZGUgPSBNb2RlOjpNb2Rlcm47
Ci19Ci0KIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmVuYWJsZU5hdGl2ZVN1cHBvcnQoKQog
ewogICAgIG1fbW9kZSA9IE1vZGU6Ok5hdGl2ZTsKQEAgLTI2OCw3ICsyNjMsNiBAQCB2b2lkIEF1
dGhlbnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNhdG9yQWRkZWQoUmVmPEF1dGhlbnRpY2F0b3I+
JiYgYXV0aGVudGljYXRvcgogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgYXV0
aGVudGljYXRvci0+c2V0T2JzZXJ2ZXIoKnRoaXMpOwogICAgIGF1dGhlbnRpY2F0b3ItPmhhbmRs
ZVJlcXVlc3QobV9wZW5kaW5nUmVxdWVzdERhdGEpOwotICAgIGF1dGhlbnRpY2F0b3ItPnNldFdl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZChtX21vZGUgIT0gTW9kZTo6Q29tcGF0aWJsZSk7
CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2F1dGhlbnRpY2F0b3JzLmFkZChXVEZNb3ZlKGF1dGhl
bnRpY2F0b3IpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3
RW50cnkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKaW5kZXggNTllMmExZjdh
NWEwMTg0ZmQwNDllYTk2MjdkMzUzYzQ2Mjg1YmY5Mi4uN2NkMWIyY2M5MDlhMzE2NzY3NDcwM2Vh
MmMzZTNlM2MxYzIwZjUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCkBAIC03
MSw3ICs3MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNWaXJ0dWFsKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgZW5hYmxlTW9kZXJuV2ViQXV0aGVudGljYXRpb24oKTsK
ICAgICB2b2lkIGVuYWJsZU5hdGl2ZVN1cHBvcnQoKTsKIAogcHJvdGVjdGVkOgpAQCAtODksNyAr
ODgsNiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgTW9kZSB7CiAgICAg
ICAgIENvbXBhdGlibGUsCi0gICAgICAgIE1vZGVybiwKICAgICAgICAgTmF0aXZlLAogICAgIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQppbmRleCBlNjlkYmRh
ZTUwMThmMDg0YjRiMWNmZDU5ZjlmNmJkMWZkZGZlNzQzLi5mOWIwZGNmNzUyZjVkYjFjOGY5ZTZi
YTgzMDcyODlmOTAxZjM1ZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNh
dG9yLm1tCkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6Om1ha2VD
cmVkZW50aWFsKCkKICAgICAgICAgfSkpIHsKICAgICAgICAgICAgIC8vIE9idGFpbiBjb25zZW50
IHBlciBTdGVwIDMuMQogICAgICAgICAgICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSAoTG9jYWxBdXRoZW50aWNhdG9yUG9saWN5IHBvbGljeSkgewotICAg
ICAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjUxLDM0ICsyNTEs
MTQgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICAgICAg
ICAgICAgICAgICAgd2Vha1RoaXMtPnJlY2VpdmVFeGNlcHRpb24oeyBOb3RBbGxvd2VkRXJyb3Is
ICJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gY2FuY2VsbGVkIGJ5IHRoZSB1c2VyLiJfcyB9KTsKICAg
ICAgICAgICAgIH07CiAgICAgICAgICAgICAvLyBTaW1pbGFyIHRvIGJlbG93LCBjb25zZW50IGhh
cyBhbHJlYWR5IGJlZW4gZ2l2ZW4uCi0gICAgICAgICAgICBpZiAod2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FbmFibGVkKCkpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soTG9jYWxBdXRoZW50aWNh
dG9yUG9saWN5OjpBbGxvdyk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgb2Jz
ZXJ2ZXIoKS0+ZGVjaWRlUG9saWN5Rm9yTG9jYWxBdXRoZW50aWNhdG9yKFdURk1vdmUoY2FsbGJh
Y2spKTsKKyAgICAgICAgICAgIG9ic2VydmVyKCktPmRlY2lkZVBvbGljeUZvckxvY2FsQXV0aGVu
dGljYXRvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICB9CiAKLSAgICAvLyBTdGVwIDYuCi0gICAgLy8gR2V0IHVzZXIgY29uc2VudC4KLSAg
ICBpZiAod2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCkpIHsKLSAgICAgICAgaWYgKGF1
dG8qIG9ic2VydmVyID0gdGhpcy0+b2JzZXJ2ZXIoKSkgewotICAgICAgICAgICAgYXV0byBjYWxs
YmFjayA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoTEFDb250ZXh0ICpjb250ZXh0
KSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAgICAg
ICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVjZWl2
aW5nTEFDb250ZXh0KGNvbnRleHQpOwotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIG9ic2Vy
dmVyLT5yZXF1ZXN0TEFDb250ZXh0Rm9yVXNlclZlcmlmaWNhdGlvbihXVEZNb3ZlKGNhbGxiYWNr
KSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYgKGF1dG8q
IG9ic2VydmVyID0gdGhpcy0+b2JzZXJ2ZXIoKSkgewogICAgICAgICBhdXRvIGNhbGxiYWNrID0g
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3kg
cG9saWN5KSB7Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTU2NCwyNCArNTQ0LDYg
QEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJSZXNw
b25zZVNlbGVjdGVkKFJlZjxXZWJDb3JlOjoKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6
UmVxdWVzdFJlY2VpdmVkKTsKICAgICBtX3N0YXRlID0gU3RhdGU6OlJlc3BvbnNlU2VsZWN0ZWQ7
CiAKLSAgICBpZiAod2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCkpIHsKLSAgICAgICAg
YXV0byBhY2Nlc3NDb250cm9sUmVmID0gcmVzcG9uc2UtPmFjY2Vzc0NvbnRyb2woKTsKLSAgICAg
ICAgTEFDb250ZXh0ICpjb250ZXh0ID0gcmVzcG9uc2UtPmxhQ29udGV4dCgpOwotICAgICAgICBh
dXRvIGNhbGxiYWNrID0gWwotICAgICAgICAgICAgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fSwKLSAgICAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSkKLSAgICAgICAgXSAo
TG9jYWxDb25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbikgbXV0YWJsZSB7
Ci0gICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgIHdlYWtU
aGlzLT5jb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZlcmlmaWNhdGlvbihXVEZNb3ZlKHJl
c3BvbnNlKSwgdmVyaWZpY2F0aW9uLCByZXNwb25zZS0+bGFDb250ZXh0KCkpOwotICAgICAgICB9
OwotCi0gICAgICAgIG1fY29ubmVjdGlvbi0+dmVyaWZ5VXNlcihhY2Nlc3NDb250cm9sUmVmLCBj
b250ZXh0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAg
ICBhdXRvJiByZXF1ZXN0T3B0aW9ucyA9IHN0ZDo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucz4ocmVxdWVzdERhdGEoKS5vcHRpb25zKTsKIAogICAgIGF1dG8gYWNjZXNzQ29u
dHJvbFJlZiA9IHJlc3BvbnNlLT5hY2Nlc3NDb250cm9sKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJhMGI0OGJiYTJl
NzlmMzEwYTE5NzE0ZjRkZDk1YTY1Mzg1ZjNlYWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTk3ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQXV0
aG5Qcm9jZXNzUHJveHkuaCIKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRlICJM
b2dnaW5nLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCIKLSNp
bmNsdWRlICJXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJX
ZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5o
IgotI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
LmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNpbmNsdWRlIDx3dGYvc3Bp
L2Rhcndpbi9YUENTUEkuaD4KLSNlbmRpZgotCi0jZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0
aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkpCi0K
LW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXN0YXRpYyBS
ZWZQdHI8V2ViQXV0aG5Qcm9jZXNzUHJveHk+JiBzaGFyZWRQcm9jZXNzKCkKLXsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPFdlYkF1dGhuUHJvY2Vzc1Byb3h5Pj4gcHJvY2VzczsK
LSAgICByZXR1cm4gcHJvY2Vzcy5nZXQoKTsKLX0KLQotV2ViQXV0aG5Qcm9jZXNzUHJveHkmIFdl
YkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKQotewotICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7Ci0KLSAgICBhdXRvIGNyZWF0ZUFuZEluaXRpYWxpemVOZXdQcm9jZXNzID0gW10g
ewotICAgICAgICBhdXRvIHdlYkF1dGhuUHJvY2VzcyA9IGFkb3B0UmVmKCpuZXcgV2ViQXV0aG5Q
cm9jZXNzUHJveHkpOwotICAgICAgICBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
cGFyYW1ldGVyczsKLSAgICAgICAgcGFyYW1ldGVycy5hdXhpbGlhcnlQcm9jZXNzUGFyYW1ldGVy
cyA9IHdlYkF1dGhuUHJvY2Vzcy0+YXV4aWxpYXJ5UHJvY2Vzc1BhcmFtZXRlcnMoKTsKLSAgICAg
ICAgLy8gSW5pdGlhbGl6ZSB0aGUgV2ViQXV0aG4gcHJvY2Vzcy4KLSAgICAgICAgd2ViQXV0aG5Q
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRoblByb2Nlc3M6OkluaXRpYWxpemVXZWJBdXRo
blByb2Nlc3MocGFyYW1ldGVycyksIDApOwotICAgICAgICB3ZWJBdXRoblByb2Nlc3MtPnVwZGF0
ZVByb2Nlc3NBc3NlcnRpb24oKTsKLSAgICAgICAgcmV0dXJuIHdlYkF1dGhuUHJvY2VzczsKLSAg
ICB9OwotCi0gICAgaWYgKCFzaGFyZWRQcm9jZXNzKCkpCi0gICAgICAgIHNoYXJlZFByb2Nlc3Mo
KSA9IGNyZWF0ZUFuZEluaXRpYWxpemVOZXdQcm9jZXNzKCk7Ci0gICAgcmV0dXJuICpzaGFyZWRQ
cm9jZXNzKCk7Ci19Ci0KLVdlYkF1dGhuUHJvY2Vzc1Byb3h5KiBXZWJBdXRoblByb2Nlc3NQcm94
eTo6c2luZ2xldG9uSWZDcmVhdGVkKCkKLXsKLSAgICByZXR1cm4gc2hhcmVkUHJvY2VzcygpLmdl
dCgpOwotfQotCi1XZWJBdXRoblByb2Nlc3NQcm94eTo6V2ViQXV0aG5Qcm9jZXNzUHJveHkoKQot
ICAgIDogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5KCkKLSAgICAsIG1fdGhyb3R0bGVyKCp0aGlzLCBm
YWxzZSkKLXsKLSAgICBjb25uZWN0KCk7Ci19Ci0KLVdlYkF1dGhuUHJvY2Vzc1Byb3h5Ojp+V2Vi
QXV0aG5Qcm9jZXNzUHJveHkoKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzUHJv
eHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVu
Y2hPcHRpb25zKQotewotICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1
bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWJBdXRobjsKLSAgICBBdXhpbGlhcnlQcm9jZXNzUHJveHk6
OmdldExhdW5jaE9wdGlvbnMobGF1bmNoT3B0aW9ucyk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9j
ZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKQotewotfQotCi12
b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMt
PmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNz
UHJveHk6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQ
cm9jZXNzUHJveHksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQotewotICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJBdXRoblByb2Nlc3NQcm94eSBpcyB0YWtpbmcgYSBi
YWNrZ3JvdW5kIGFzc2VydGlvbiBiZWNhdXNlIGEgd2ViIHByb2Nlc3MgaXMgcmVxdWVzdGluZyBh
IGNvbm5lY3Rpb24iLCB0aGlzKTsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YkF1dGhuUHJvY2Vzczo6Q3JlYXRlV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzIHsgd2Vi
UHJvY2Vzc1Byb3h5LmNvcmVQcm9jZXNzSWRlbnRpZmllcigpIH0sIFt0aGlzLCB3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCByZXBseSA9IFdURk1vdmUocmVwbHkpXShhdXRvJiYgaWRlbnRp
ZmllcikgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJXZWJBdXRoblByb2Nlc3NQcm94eTo6Z2V0V2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbjogV2ViQXV0aG5Qcm9jZXNzUHJveHkgZGVhbGxvY2F0ZWQgZHVy
aW5nIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCIpOwotICAgICAgICAgICAgcmV0dXJuIHJlcGx5
KHsgfSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWlkZW50aWZpZXIpIHsKLSAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJXZWJBdXRoblByb2Nlc3NQcm94eTo6Z2V0
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogY29ubmVjdGlvbiBpZGVudGlmaWVyIGlzIGVtcHR5
Iik7Ci0gICAgICAgICAgICByZXR1cm4gcmVwbHkoeyB9KTsKLSAgICAgICAgfQotCi0gICAgICAg
IE1FU1NBR0VfQ0hFQ0soTUFDSF9QT1JUX1ZBTElEKGlkZW50aWZpZXItPnBvcnQoKSkpOwotICAg
ICAgICByZXBseShXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mbyB7IElQQzo6QXR0YWNobWVu
dCB7IGlkZW50aWZpZXItPnBvcnQoKSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQgfSB9KTsKLSAg
ICB9LCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OndlYkF1dGhuUHJv
Y2Vzc0NyYXNoZWQoKQotewotICAgIHNoYXJlZFByb2Nlc3MoKSA9IG51bGxwdHI7Ci19Ci0KLXZv
aWQgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCi17Ci0g
ICAgLy8gVGhpcyB3aWxsIGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCi0gICAgd2ViQXV0aG5Qcm9j
ZXNzQ3Jhc2hlZCgpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VO
YW1lIG1lc3NhZ2VOYW1lKQotewotICAgIGxvZ0ludmFsaWRNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VOYW1lKTsKLQotICAgIFdlYlByb2Nlc3NQb29sOjpkaWRSZWNlaXZlSW52YWxpZE1lc3Nh
Z2UobWVzc2FnZU5hbWUpOwotCi0gICAgLy8gVGVybWluYXRlIHRoZSBXZWJBdXRobiBwcm9jZXNz
LgotICAgIHRlcm1pbmF0ZSgpOwotCi0gICAgLy8gU2luY2Ugd2UndmUgaW52YWxpZGF0ZWQgdGhl
IGNvbm5lY3Rpb24gd2UnbGwgbmV2ZXIgZ2V0IGEgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQ6OmRp
ZENsb3NlCi0gICAgLy8gY2FsbGJhY2sgc28gd2UnbGwgZXhwbGljaXRseSBjYWxsIGl0IGhlcmUg
aW5zdGVhZC4KLSAgICBkaWRDbG9zZShjb25uZWN0aW9uKTsKLX0KLQotdm9pZCBXZWJBdXRoblBy
b2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIs
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAg
ICBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhsYXVuY2hlciwgY29u
bmVjdGlvbklkZW50aWZpZXIpOwotCi0gICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZp
ZXJJc1ZhbGlkKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkgewotICAgICAgICB3ZWJBdXRoblByb2Nl
c3NDcmFzaGVkKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIGlmICh4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24gPSB0aGlzLT5jb25u
ZWN0aW9uKCktPnhwY0Nvbm5lY3Rpb24oKSkKLSAgICAgICAgbV90aHJvdHRsZXIuZGlkQ29ubmVj
dFRvUHJvY2Vzcyh4cGNfY29ubmVjdGlvbl9nZXRfcGlkKGNvbm5lY3Rpb24pKTsKLSNlbmRpZgot
Ci0gICAgYmVnaW5SZXNwb25zaXZlbmVzc0NoZWNrcygpOwotfQotCi12b2lkIFdlYkF1dGhuUHJv
Y2Vzc1Byb3h5Ojp1cGRhdGVQcm9jZXNzQXNzZXJ0aW9uKCkKLXsKLSAgICBib29sIGhhc0FueUZv
cmVncm91bmRXZWJQcm9jZXNzZXMgPSBmYWxzZTsKLSAgICBib29sIGhhc0FueUJhY2tncm91bmRX
ZWJQcm9jZXNzZXMgPSBmYWxzZTsKLQotICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBXZWJQ
cm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpIHsKLSAgICAgICAgaGFzQW55Rm9yZWdyb3Vu
ZFdlYlByb2Nlc3NlcyB8PSBwcm9jZXNzUG9vbC0+aGFzRm9yZWdyb3VuZFdlYlByb2Nlc3Nlcygp
OwotICAgICAgICBoYXNBbnlCYWNrZ3JvdW5kV2ViUHJvY2Vzc2VzIHw9IHByb2Nlc3NQb29sLT5o
YXNCYWNrZ3JvdW5kV2ViUHJvY2Vzc2VzKCk7Ci0gICAgfQotCi0gICAgaWYgKGhhc0FueUZvcmVn
cm91bmRXZWJQcm9jZXNzZXMpIHsKLSAgICAgICAgaWYgKCFQcm9jZXNzVGhyb3R0bGVyOjppc1Zh
bGlkRm9yZWdyb3VuZEFjdGl2aXR5KG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzKSkgewotICAg
ICAgICAgICAgbV9hY3Rpdml0eUZyb21XZWJQcm9jZXNzZXMgPSB0aHJvdHRsZXIoKS5mb3JlZ3Jv
dW5kQWN0aXZpdHkoIldlYkF1dGhuIGZvciBmb3JlZ3JvdW5kIHZpZXcocykiX3MpOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKGhhc0FueUJhY2tncm91bmRXZWJQ
cm9jZXNzZXMpIHsKLSAgICAgICAgaWYgKCFQcm9jZXNzVGhyb3R0bGVyOjppc1ZhbGlkQmFja2dy
b3VuZEFjdGl2aXR5KG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzKSkgewotICAgICAgICAgICAg
bV9hY3Rpdml0eUZyb21XZWJQcm9jZXNzZXMgPSB0aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZp
dHkoIldlYkF1dGhuIGZvciBiYWNrZ3JvdW5kIHZpZXcocykiX3MpOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgbV9hY3Rpdml0eUZyb21XZWJQcm9jZXNzZXMgPSBudWxs
cHRyOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI3VuZGVmIE1FU1NBR0VfQ0hFQ0sK
LQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJv
eHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTFiZjA0NzE3YTY1MjBmZmE0YTY3
ZTM3ODYwZGNhYmJmNjJlNTY1My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NQcm94eS5oCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUg
IkF1eGlsaWFyeVByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgot
I2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVy
Q2xpZW50LmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgotI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgotI2luY2x1ZGUgPG1lbW9yeT4KLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlByb2Nlc3NQcm94eTsKLWNsYXNzIFdlYnNp
dGVEYXRhU3RvcmU7Ci1zdHJ1Y3QgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwot
Ci1jbGFzcyBXZWJBdXRoblByb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBBdXhpbGlhcnlQcm9j
ZXNzUHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVudCB7Ci0gICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViQXV0aG5Qcm9jZXNz
UHJveHkpOwotICAgIGZyaWVuZCBMYXp5TmV2ZXJEZXN0cm95ZWQ8V2ViQXV0aG5Qcm9jZXNzUHJv
eHk+OwotcHVibGljOgotICAgIHN0YXRpYyBXZWJBdXRoblByb2Nlc3NQcm94eSYgc2luZ2xldG9u
KCk7Ci0gICAgc3RhdGljIFdlYkF1dGhuUHJvY2Vzc1Byb3h5KiBzaW5nbGV0b25JZkNyZWF0ZWQo
KTsKLQotICAgIHZvaWQgZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJv
eHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uRGVsYXllZFJlcGx5JiYpOwotCi0gICAgUHJvY2Vzc1Rocm90dGxlciYgdGhyb3R0bGVyKCkg
ZmluYWwgeyByZXR1cm4gbV90aHJvdHRsZXI7IH0KLSAgICB2b2lkIHVwZGF0ZVByb2Nlc3NBc3Nl
cnRpb24oKTsKLQotICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKLSAgICB2b2lkIHNlbmRQ
cm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgZmluYWwgeyB9Ci0gICAgQVNDSUlMaXRlcmFs
IGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViQXV0aG5Qcm9jZXNzIl9zOyB9
Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViQXV0aG5Qcm9jZXNzUHJveHkoKTsKLSAgICB+
V2ViQXV0aG5Qcm9jZXNzUHJveHkoKTsKLQotICAgIC8vIEF1eGlsaWFyeVByb2Nlc3NQcm94eQot
ICAgIEFTQ0lJTGl0ZXJhbCBwcm9jZXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJB
dXRobiJfczsgfQotCi0gICAgdm9pZCBnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6
TGF1bmNoT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29ubmVjdGlvbldpbGxPcGVuKElQ
Qzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcHJvY2Vzc1dpbGxTaHV0RG93bihJ
UEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLQotICAgIHZvaWQgd2ViQXV0aG5Qcm9jZXNzQ3Jh
c2hlZCgpOwotCi0gICAgLy8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFBy
ZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9
Ci0KLSAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAotICAgIHZvaWQgZGlkRmluaXNoTGF1
bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3Zl
cnJpZGU7Ci0KLSAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAgIHZvaWQgZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRSZWNlaXZlSW52YWxp
ZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSkgb3ZlcnJpZGU7Ci0K
LSAgICBQcm9jZXNzVGhyb3R0bGVyIG1fdGhyb3R0bGVyOwotICAgIFByb2Nlc3NUaHJvdHRsZXI6
OkFjdGl2aXR5VmFyaWFudCBtX2FjdGl2aXR5RnJvbVdlYlByb2Nlc3NlczsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA3N2M0YmU3OTQzZDFiMDI0
MjJlNzY3NjI3OGMyMGY4YzA5NTNiMDQ5Li4zMDhjZjU0YTVmNWMyMzc5MTg5NDdjOTEzMjAyMWIx
NDEyMGY4OGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CkBAIC0xMTYsMTEgKzExNiw2IEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCiAjZW5k
aWYKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbkluZm8uaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NQcm94eS5oIgotI2VuZGlm
Ci0KICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9SZW1vdGVJbnNwZWN0b3IuaD4KICNlbmRpZgpAQCAtNTIxLDIwICs1MTYsNiBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdl
YlByb2Nlc3NQcm94eSwgRwogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNz
UHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0V2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCi17Ci0gICAgV2Vi
QXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpLmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rp
b24od2ViUHJvY2Vzc1Byb3h5LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
d2ViUHJvY2Vzc1Byb3h5ID0gV2Vha1B0ciB7IHdlYlByb2Nlc3NQcm94eSB9LCByZXBseSA9IFdU
Rk1vdmUocmVwbHkpXSAoYXV0byYgY29ubmVjdGlvbkluZm8pIG11dGFibGUgewotICAgICAgICBp
ZiAoVU5MSUtFTFkoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlv
bkluZm8uaWRlbnRpZmllcigpKSAmJiB3ZWJQcm9jZXNzUHJveHkgJiYgd2Vha1RoaXMpKSB7Ci0g
ICAgICAgICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiZ2V0
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogRmFpbGVkIGZpcnN0IGF0dGVtcHQsIHJldHJ5aW5n
Iik7Ci0gICAgICAgICAgICBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0V2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigqd2ViUHJvY2Vzc1Byb3h5LCBXVEZNb3ZlKHJlcGx5KSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcmVwbHkoY29ubmVjdGlv
bkluZm8pOwotICAgIH0pOwotfQotI2VuZGlmCi0KIGJvb2wgV2ViUHJvY2Vzc1Bvb2w6OnNfdXNl
U2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOwogCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjplc3RhYmxpc2hSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nl
c3MoUmVtb3RlV29ya2VyVHlwZSB3b3JrZXJUeXBlLCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lz
dHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyPiBy
ZXF1ZXN0aW5nUHJvY2Vzc0lkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA0MDlh
NzliNTFiNzA1MGQxMDhiZTEzMTBmZTJmMGEyYzBmNzU1N2U3Li5iODI2YTdjYmY2ZjRhMDg3ZTM5
Yjc4OTJmYmM4MDJjNWI0OGFkNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKQEAgLTM2OCwxMSArMzY4LDYgQEAgcHVibGljOgogICAgIEdQVVByb2Nlc3NQcm94
eSYgZW5zdXJlR1BVUHJvY2VzcygpOwogICAgIEdQVVByb2Nlc3NQcm94eSogZ3B1UHJvY2Vzcygp
IGNvbnN0IHsgcmV0dXJuIG1fZ3B1UHJvY2Vzcy5nZXQoKTsgfQogI2VuZGlmCi0KLSNpZiBFTkFC
TEUoV0VCX0FVVEhOKQotICAgIHZvaWQgZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihXZWJQ
cm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwotI2VuZGlmCi0KICAgICAvLyBOZXR3b3JrIFBy
b2Nlc3MgTWFuYWdlbWVudAogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRUZXJtaW5hdGUoTmV0
d29ya1Byb2Nlc3NQcm94eSYsIE5ldHdvcmtQcm9jZXNzUHJveHk6OlRlcm1pbmF0aW9uUmVhc29u
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MTcwNDUwYTk1YmE2ZThhNDllZTVmYzgxZTExYjU1MDkxYmI5NGI2Mi4uODk2NjlkMTExNzI4MWM4
NTViZDVkZTgxNWMwZDczZjM5MjA5YmMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCkBAIC04NDIsMTQgKzg0Miw2IEBAIHZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpncHVQcm9jZXNzRXhpdGVkKEdQVVByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiByZWFzb24p
CiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi12b2lkIFdlYlByb2Nlc3NQcm94
eTo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkKLXsK
LSAgICBNRVNTQUdFX0NIRUNLX0NPTVBMRVRJT04obWVzc2FnZVNvdXJjZUlzVmFsaWRXZWJDb250
ZW50UHJvY2VzcygpLCByZXBseSh7IH0pKTsKLSAgICBtX3Byb2Nlc3NQb29sLT5nZXRXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uKCp0aGlzLCBXVEZNb3ZlKHJlcGx5KSk7Ci19Ci0jZW5kaWYKLQog
I2lmICFQTEFURk9STShNQUMpCiBib29sIFdlYlByb2Nlc3NQcm94eTo6c2hvdWxkQWxsb3dOb25W
YWxpZEluamVjdGVkQ29kZSgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCmluZGV4IDA1NTVkM2Q1NzYzNDViYjI0OTYxMDg1OGQ2OTQ2NmU0OTE1OWYx
YWMuLmI4NTJlMGI0YzVlMmYwODc0N2I3MWQ2ZTVhMDM2OWFkM2I0N2Q5MmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC00ODEsMTAgKzQ4MSw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBnZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihHUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMmJiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0R1BVUHJvY2Vz
c0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJfQVVU
SE4pCi0gICAgdm9pZCBnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7
Ci0jZW5kaWYKLQogICAgIGJvb2wgc2hvdWxkQWxsb3dOb25WYWxpZEluamVjdGVkQ29kZSgpIGNv
bnN0OwogCiAgICAgc3RhdGljIGNvbnN0IE1lbW9yeUNvbXBhY3RMb29rdXBPbmx5Um9iaW5Ib29k
SGFzaFNldDxTdHJpbmc+JiBwbGF0Zm9ybVBhdGhzV2l0aEFzc3VtZWRSZWFkQWNjZXNzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggODhhMGY4MjY1NDZlYTM0MzE5MzY0ODlmZjIwZWZlM2RhYjlmZTk4My4uMTNjY2Vk
Y2M5MTkwN2M1YmQzNjNmYjRjYmZkYzBlNzgxYmUwOGI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzcsMTAgKzM3
LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBH
ZXRHUFVQcm9jZXNzQ29ubmVjdGlvbihzdHJ1Y3QgV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlv
blBhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKHN0cnVjdCBXZWJLaXQ6OkdQVVByb2Nlc3NDb25u
ZWN0aW9uSW5mbyBjb25uZWN0aW9uSW5mbykgU3luY2hyb25vdXMKICNlbmRpZgogCi0jaWYgRU5B
QkxFKFdFQl9BVVRITikKLSAgICBHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCkgLT4gKHN0
cnVjdCBXZWJLaXQ6OldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIGNvbm5lY3Rpb25JbmZv
KSBTeW5jaHJvbm91cwotI2VuZGlmCi0KICAgICBTZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhib29s
IGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogCiAgICAgRGlkRXhjZWVkQWN0aXZlTWVtb3J5TGltaXQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9D
b2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLU9TWC5wbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRo
blNlcnZpY2UvSW5mby1PU1gucGxpc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1
YWFlM2MzNWY3MWFjOGZlNzc3NmMxMmRjNWQzOTg3YTRiN2RmNDcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nl
c3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLU9TWC5w
bGlzdAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIg
ZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFRE
IFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0x
LjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZUdl
dEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQg
MjAwMy0yMDIyIEFwcGxlIEluYy48L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRS
ZWdpb248L2tleT4KLQk8c3RyaW5nPkVuZ2xpc2g8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRXhl
Y3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtFWEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+Ci0JPGtl
eT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURF
TlRJRklFUn08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9r
ZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgotCTxz
dHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBl
PC9rZXk+Ci0JPHN0cmluZz5YUEMhPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lv
blN0cmluZzwva2V5PgotCTxzdHJpbmc+JHtTSE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4K
LQk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9rZXk+Ci0JPHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0J
PGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4KLQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9z
dHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50aW5lRW5hYmxlZDwva2V5PgotCTx0cnVlLz4KLQk8
a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4KLQk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmlu
Zz4KLQk8a2V5PkxTVUlFbGVtZW50PC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+WFBDU2VydmljZTwv
a2V5PgotCTxkaWN0PgotCQk8a2V5PlNlcnZpY2VUeXBlPC9rZXk+Ci0JCTxzdHJpbmc+QXBwbGlj
YXRpb248L3N0cmluZz4KLQkJPGtleT5Kb2luRXhpc3RpbmdTZXNzaW9uPC9rZXk+Ci0JCTx0cnVl
Lz4KLQkJPGtleT5SdW5Mb29wVHlwZTwva2V5PgotCQk8c3RyaW5nPk5TUnVuTG9vcDwvc3RyaW5n
PgotCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgotCQk8dHJ1ZS8+Ci0JPC9kaWN0Pgot
PC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9j
ZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1pT1Mu
cGxpc3QgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQ
Q1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0Zjg2NWViMjI4ZjVmNzI1ZWZhMDA4ZmZiOTQyYTZkODEzMzQxMDNjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNl
cnZpY2UvSW5mby1pT1MucGxpc3QKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08P3ht
bCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBVQkxJ
QyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFRE
cy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0Pgot
CTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke0JVTkRMRV9WRVJT
SU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAyMiBBcHBsZSBJbmMuPC9zdHJpbmc+Ci0JPGtleT5DRkJ1
bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+Ci0JPHN0cmluZz5FbmdsaXNoPC9zdHJpbmc+Ci0J
PGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7RVhFQ1VUQUJMRV9OQU1F
fTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmluZz4ke1BS
T0RVQ1RfQlVORExFX0lERU5USUZJRVJ9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUluZm9EaWN0
aW9uYXJ5VmVyc2lvbjwva2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRs
ZU5hbWU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVQYWNrYWdlVHlwZTwva2V5PgotCTxzdHJpbmc+WFBDITwvc3RyaW5nPgotCTxrZXk+Q0ZC
dW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7U0hPUlRfVkVSU0lPTl9T
VFJJTkd9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgotCTxzdHJpbmc+
Pz8/Pzwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz4ke0JV
TkRMRV9WRVJTSU9OfTwvc3RyaW5nPgotCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJsZWQ8L2tl
eT4KLQk8dHJ1ZS8+Ci0JPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+Ci0JPHN0cmluZz5OU0Fw
cGxpY2F0aW9uPC9zdHJpbmc+Ci0JPGtleT5MU1VJRWxlbWVudDwva2V5PgotCTx0cnVlLz4KLQk8
a2V5PlhQQ1NlcnZpY2U8L2tleT4KLQk8ZGljdD4KLQkJPGtleT5TZXJ2aWNlVHlwZTwva2V5Pgot
CQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+Ci0JCTxrZXk+UnVuTG9vcFR5cGU8L2tleT4K
LQkJPHN0cmluZz5OU1J1bkxvb3A8L3N0cmluZz4KLSAgICAgICAgICAgICAgICA8a2V5Pl9Qcm9j
ZXNzVHlwZTwva2V5PgotICAgICAgICAgICAgICAgIDxzdHJpbmc+QXBwPC9zdHJpbmc+Ci0JCTxr
ZXk+X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+Ci0JCTx0cnVlLz4KLQk8L2RpY3Q+Ci0JPGtleT5D
YW5Jbmhlcml0QXBwbGljYXRpb25TdGF0ZUZyb21PdGhlclByb2Nlc3Nlczwva2V5PgotCTx0cnVl
Lz4KLTwvZGljdD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhu
UHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlRW50cnlQ
b2ludC5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2Ev
WFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5M2FkNDQ4YWE4NmZjOGIxOGQ5ZGJiZTMyYTViNmM1ZDU4ZDkxNDFiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNl
cnZpY2VFbnRyeVBvaW50Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaW1wb3J0ICJFbnZpcm9ubWVudFV0aWxpdGll
cy5oIgotI2ltcG9ydCAiV0tCYXNlLmgiCi0jaW1wb3J0ICJXZWJBdXRoblByb2Nlc3MuaCIKLSNp
bXBvcnQgIlhQQ1NlcnZpY2VFbnRyeVBvaW50LmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViQXV0aG5TZXJ2aWNlSW5pdGlhbGl6ZXJE
ZWxlZ2F0ZSA6IHB1YmxpYyBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZSB7Ci1wdWJsaWM6
Ci0gICAgV2ViQXV0aG5TZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZShPU09iamVjdFB0cjx4cGNf
Y29ubmVjdGlvbl90PiBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdl
KQotICAgICAgICA6IFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKFdURk1vdmUoY29ubmVj
dGlvbiksIGluaXRpYWxpemVyTWVzc2FnZSkKLSAgICB7Ci0gICAgfQotfTsKLQotdGVtcGxhdGU8
Pgotdm9pZCBpbml0aWFsaXplQXV4aWxpYXJ5UHJvY2VzczxXZWJBdXRoblByb2Nlc3M+KEF1eGls
aWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQotewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJBdXRoblByb2Nlc3M+IFdlYkF1dGhuUHJvY2VzcyhX
VEZNb3ZlKHBhcmFtZXRlcnMpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQotCi1leHRlcm4gIkMiIFdLX0VYUE9SVCB2b2lkIFdFQkFV
VEhOX1NFUlZJQ0VfSU5JVElBTElaRVIoeHBjX2Nvbm5lY3Rpb25fdCBjb25uZWN0aW9uLCB4cGNf
b2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2JqZWN0X3QgcHJpb3JpdHlCb29zdE1l
c3NhZ2UpOwotCi12b2lkIFdFQkFVVEhOX1NFUlZJQ0VfSU5JVElBTElaRVIoeHBjX2Nvbm5lY3Rp
b25fdCBjb25uZWN0aW9uLCB4cGNfb2JqZWN0X3QgaW5pdGlhbGl6ZXJNZXNzYWdlLCB4cGNfb2Jq
ZWN0X3QgcHJpb3JpdHlCb29zdE1lc3NhZ2UpCi17Ci0gICAgV1RGOjppbml0aWFsaXplTWFpblRo
cmVhZCgpOwotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBXZWJLaXQ6OlhQQ1NlcnZpY2VJ
bml0aWFsaXplcjxXZWJLaXQ6OldlYkF1dGhuUHJvY2VzcywgV2ViS2l0OjpXZWJBdXRoblNlcnZp
Y2VJbml0aWFsaXplckRlbGVnYXRlPihjb25uZWN0aW9uLCBpbml0aWFsaXplck1lc3NhZ2UsIHBy
aW9yaXR5Qm9vc3RNZXNzYWdlKTsKLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhu
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDUxN2MzYmFjMTJmODcxMzc3YTczYWUzZDE1NmIwM2U3MzhmYjAyN2UuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblBy
b2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDEzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0KLSNpZiBFTkFCTEUo
V0VCX0FVVEhOKQotCi0jaW5jbHVkZSAiQXV0aGVudGljYXRvck1hbmFnZXIuaCIKLSNpbmNsdWRl
ICJMb2NhbFNlcnZpY2UuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3MuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEuaD4KLQotI2lmIEVOQUJMRShJUENf
VEVTVElOR19BUEkpCi0jaW5jbHVkZSAiSVBDVGVzdGVyTWVzc2FnZXMuaCIKLSNlbmRpZgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1SZWY8V2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzPiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNyZWF0ZShXZWJBdXRoblByb2Nlc3MmIFdlYkF1dGhuUHJvY2VzcywgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQXV0aG5Qcm9jZXNzLCB3ZWJQcm9jZXNz
SWRlbnRpZmllciwgY29ubmVjdGlvbklkZW50aWZpZXIpKTsKLX0KLQotV2ViQXV0aG5Db25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQXV0aG5Q
cm9jZXNzJiBXZWJBdXRoblByb2Nlc3MsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlBy
b2Nlc3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCi0gICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2
ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCi0gICAgLCBtX1dlYkF1
dGhuUHJvY2VzcyhXZWJBdXRoblByb2Nlc3MpCi0gICAgLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVy
KHdlYlByb2Nlc3NJZGVudGlmaWVyKQotewotICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKLSAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKLX0KLQotV2ViQXV0aG5Db25uZWN0
aW9uVG9XZWJQcm9jZXNzOjp+V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKCkKLXsKLSAg
ICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb24t
PmludmFsaWRhdGUoKTsKLX0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCi17Ci19Ci0KLXZvaWQgV2ViQXV0aG5Db25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VOYW1lIG1lc3NhZ2VOYW1lKQotewotICAgIFdURkxv
Z0Fsd2F5cygiUmVjZWl2ZWQgYW4gaW52YWxpZCBtZXNzYWdlIFwiJXNcIiBmcm9tIHRoZSB3ZWIg
cHJvY2Vzcy5cbiIsIGRlc2NyaXB0aW9uKG1lc3NhZ2VOYW1lKSk7Ci0gICAgQ1JBU0goKTsKLX0K
LQotYm9vbCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKLXsKLSNp
ZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSA9PSBNZXNzYWdlczo6SVBDVGVzdGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsK
LSAgICAgICAgbV9pcGNUZXN0ZXIuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSNlbmRpZgotICAgIHJldHVybiBmYWxz
ZTsKLX0KLQotYm9vbCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpCi17Ci0jaWYgRU5BQkxF
KElQQ19URVNUSU5HX0FQSSkKLSAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OklQQ1Rlc3Rlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAg
IG1faXBjVGVzdGVyLmRpZFJlY2VpdmVTeW5jTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyLCBy
ZXBseUVuY29kZXIpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0jZW5kaWYKLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
Om1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMmJiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwg
UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKLXsKLSAgICBoYW5kbGVSZXF1ZXN0
KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbnVsbHB0ciwgV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9
LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQs
IHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKLX0KLQotdm9pZCBXZWJBdXRobkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldEFzc2VydGlvbihWZWN0b3I8dWludDhfdD4mJiBoYXNo
LCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRpb25zLCBib29sIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKLXsK
LSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbnVs
bHB0ciwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIs
IHN0ZDo6bnVsbG9wdCwgeyB9LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxs
cHRyLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKLX0K
LQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmhhbmRsZVJlcXVlc3QoV2Vi
QXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRhdGEsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxl
ciYmIGhhbmRsZXIpCi17Ci0gICAgYXV0byBjYWxsYmFjayA9IFtoYW5kbGVyID0gV1RGTW92ZSho
YW5kbGVyKV0gKHN0ZDo6dmFyaWFudDxSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiwgRXhjZXB0
aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwotICAgICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwgWyZdKGNvbnN0IFJlZjxBdXRo
ZW50aWNhdG9yUmVzcG9uc2U+JiByZXNwb25zZSkgewotICAgICAgICAgICAgaGFuZGxlcihyZXNw
b25zZS0+ZGF0YSgpLCByZXNwb25zZS0+YXR0YWNobWVudCgpLCB7IH0pOwotICAgICAgICB9LCBb
Jl0oY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICBoYW5kbGVy
KHsgfSwgc3RhdGljX2Nhc3Q8QXV0aGVudGljYXRvckF0dGFjaG1lbnQ+KDApLCBleGNlcHRpb24p
OwotICAgICAgICB9KTsKLSAgICB9OwotICAgIG1fV2ViQXV0aG5Qcm9jZXNzLT5hdXRoZW50aWNh
dG9yTWFuYWdlcigpLmhhbmRsZVJlcXVlc3QoV1RGTW92ZShkYXRhKSwgV1RGTW92ZShjYWxsYmFj
aykpOwotfQotCi12b2lkIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aXNVc2VyVmVy
aWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRs
ZXImJiBoYW5kbGVyKQotewotICAgIGhhbmRsZXIoTG9jYWxTZXJ2aWNlOjppc0F2YWlsYWJsZSgp
KTsKLX0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldE1vY2tXZWJB
dXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9u
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCi17Ci0gICAgbV9XZWJBdXRoblByb2Nlc3Mt
PnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0
aW9uKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1
dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nl
c3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVjNzU3NjMzNjY2YmJmYjY4ZmM0OWQwNTNkOWJjYmFkN2IzZjc3ZDguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVk
ZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxX
ZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
LQotI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0jaW5jbHVkZSAiSVBDVGVzdGVyLmgiCi0j
ZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotZW51bSBjbGFzcyBBdXRoZW50aWNhdG9yQXR0
YWNobWVudDsKLXN0cnVjdCBBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhOwotc3RydWN0IEV4Y2Vw
dGlvbkRhdGE7Ci1zdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKLXN0
cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOwotc3RydWN0IFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNs
YXNzIFdlYkF1dGhuUHJvY2VzczsKLXN0cnVjdCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRh
OwotCi1jbGFzcyBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKLSAgICA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4KLSAgICAsIElQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkF1dGhuQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKFdlYkF1dGhuUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwotICAgIHZpcnR1YWwg
fldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpOwotCi0gICAgSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Ci0gICAgV2ViQXV0
aG5Qcm9jZXNzJiBXZWJBdXRoblByb2Nlc3NQcm9jZXNzKCkgeyByZXR1cm4gbV9XZWJBdXRoblBy
b2Nlc3MuZ2V0KCk7IH0KLSAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNz
SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7IH0KLQot
cHJpdmF0ZToKLSAgICB1c2luZyBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEmLCBX
ZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YSYpPjsKLSAgICB1c2luZyBRdWVyeUNvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT47Ci0KLSAgICBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
V2ViQXV0aG5Qcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllcik7Ci0KLSAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAotICAg
IHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSkgZmlu
YWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKLSAgICBib29sIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYpOwotCi0gICAg
Ym9vbCBkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7Ci0g
ICAgYm9vbCBkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+Jik7Ci0KLSAgICAvLyBSZWNlaXZlcnMuCi0gICAg
dm9pZCBtYWtlQ3JlZGVudGlhbChWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0
dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7Ci0gICAgdm9pZCBnZXRBc3NlcnRpb24o
VmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zJiYsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlv
bkhhbmRsZXImJik7Ci0gICAgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0
b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKTsKLSAgICB2b2lkIHNldE1vY2tX
ZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0
aW9uQ29uZmlndXJhdGlvbiYmKTsKLQotICAgIHZvaWQgaGFuZGxlUmVxdWVzdChXZWJBdXRoZW50
aWNhdGlvblJlcXVlc3REYXRhJiYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKTsKLQotICAg
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLSAgICBSZWY8V2ViQXV0aG5Qcm9j
ZXNzPiBtX1dlYkF1dGhuUHJvY2VzczsKLSAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkp
Ci0gICAgSVBDVGVzdGVyIG1faXBjVGVzdGVyOwotI2VuZGlmCi19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDA5ZDhlYjVmMGI4NTdlOGYzZGIwZTYwZTg1YzNmYTZjZjI0YjVlZjMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRo
blByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyAv
ZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQK
LSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi1tZXNzYWdlcyAtPiBXZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgV2FudHNEaXNwYXRjaE1lc3NhZ2UgewotCi0gICAg
TWFrZUNyZWRlbnRpYWwoVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEg
ZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVu
dCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKQotICAgIEdldEFzc2Vy
dGlvbihWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkg
LT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06
aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKLSAgICBJc1VzZXJWZXJpZnlpbmdQbGF0
Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1bHQpCi0KLSAgICBTZXRN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKHN0cnVjdCBXZWJDb3JlOjpNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pOwotfQotCi0jZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Q
cm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vz
cy9XZWJBdXRoblByb2Nlc3MuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MmU4
NDNhY2I4ZmRkN2IzMzk1NWI1NTQyNTQzNmFlNGM1ZDEzOTgzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNz
L1dlYkF1dGhuUHJvY2Vzcy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDcgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJv
Y2Vzcy5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
LSNpbmNsdWRlICJNb2NrQXV0aGVudGljYXRvck1hbmFnZXIuaCIKLSNpbmNsdWRlICJXZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLQotV2ViQXV0aG5Q
cm9jZXNzOjpXZWJBdXRoblByb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCi0gICAgOiBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyKG1ha2VV
bmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+KCkpCi17Ci0gICAgaW5pdGlhbGl6ZShXVEZN
b3ZlKHBhcmFtZXRlcnMpKTsKLSAgICBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyLT5lbmFibGVNb2Rl
cm5XZWJBdXRoZW50aWNhdGlvbigpOwotfQotCi1XZWJBdXRoblByb2Nlc3M6On5XZWJBdXRoblBy
b2Nlc3MoKQotewotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6Y3JlYXRlV2ViQXV0aG5Db25u
ZWN0aW9uVG9XZWJQcm9jZXNzKFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotewotICAgIGF1dG8gY29ubmVjdGlvbklkZW50aWZpZXJzID0gSVBDOjpD
b25uZWN0aW9uOjpjcmVhdGVDb25uZWN0aW9uSWRlbnRpZmllclBhaXIoKTsKLSAgICBpZiAoIWNv
bm5lY3Rpb25JZGVudGlmaWVycykgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byBuZXdDb25uZWN0aW9uID0gV2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoKnRoaXMsIGlkZW50aWZpZXIsIGNvbm5l
Y3Rpb25JZGVudGlmaWVycy0+c2VydmVyKTsKLQotICAgIEFTU0VSVCghbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbnMuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b25zLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKG5ld0Nvbm5lY3Rpb24pKTsKLQotICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUoY29ubmVjdGlvbklkZW50aWZpZXJzLT5jbGllbnQpKTsKLX0K
LQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnJlbW92ZVdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyhXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24pCi17Ci0gICAg
QVNTRVJUKG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5lY3Rpb24ud2ViUHJv
Y2Vzc0lkZW50aWZpZXIoKSkpOwotICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnJlbW92ZShj
b25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCkpOwotfQotCi12b2lkIFdlYkF1dGhuUHJv
Y2Vzczo6Y29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3NlZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCi17Ci19Ci0KLWJvb2wgV2ViQXV0aG5Qcm9jZXNzOjpzaG91bGRUZXJtaW5hdGUoKQot
ewotICAgIHJldHVybiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5pc0VtcHR5KCk7Ci19Ci0KLXZv
aWQgV2ViQXV0aG5Qcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQotewotICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpsb3dN
ZW1vcnlIYW5kbGVyKENyaXRpY2FsIGNyaXRpY2FsKQotewotICAgIFdURjo6cmVsZWFzZUZhc3RN
YWxsb2NGcmVlTWVtb3J5KCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjppbml0aWFsaXpl
V2ViQXV0aG5Qcm9jZXNzKFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCi17Ci0gICAgYXBwbHlQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKHBhcmFtZXRlcnMu
YXV4aWxpYXJ5UHJvY2Vzc1BhcmFtZXRlcnMpOwotICAgIFdURjo6VGhyZWFkOjpzZXRDdXJyZW50
VGhyZWFkSXNVc2VySW5pdGlhdGVkKCk7Ci0gICAgQXRvbVN0cmluZzo6aW5pdCgpOwotfQotCi12
b2lkIFdlYkF1dGhuUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbklt
bWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17
Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYkF1dGhuUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCIsIHRoaXMsIGlz
U3VzcGVuc2lvbkltbWluZW50KTsKLQotICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olll
cyk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkKLXsKLSAg
ICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViQXV0aG5Qcm9jZXNzOjpw
cm9jZXNzRGlkUmVzdW1lKCkiLCB0aGlzKTsKLSAgICByZXN1bWUoKTsKLX0KLQotdm9pZCBXZWJB
dXRoblByb2Nlc3M6OnJlc3VtZSgpCi17Ci19Ci0KLVdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyogV2ViQXV0aG5Qcm9jZXNzOjp3ZWJQcm9jZXNzQ29ubmVjdGlvbihQcm9jZXNzSWRlbnRp
ZmllciBpZGVudGlmaWVyKSBjb25zdAotewotICAgIHJldHVybiBtX3dlYlByb2Nlc3NDb25uZWN0
aW9ucy5nZXQoaWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpzZXRNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNh
dGlvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotewotICAgIGlmICghbV9hdXRoZW50
aWNhdG9yTWFuYWdlci0+aXNNb2NrKCkpIHsKLSAgICAgICAgbV9hdXRoZW50aWNhdG9yTWFuYWdl
ciA9IG1ha2VVbmlxdWVSZWY8TW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyPihXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pKTsKLSAgICAgICAgbV9hdXRoZW50aWNhdG9yTWFuYWdlci0+ZW5hYmxlTW9kZXJu
V2ViQXV0aGVudGljYXRpb24oKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBzdGF0aWNf
Y2FzdDxNb2NrQXV0aGVudGljYXRvck1hbmFnZXIqPigmbV9hdXRoZW50aWNhdG9yTWFuYWdlcikt
PnNldFRlc3RDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpOwotfQotCi0jaWYg
IVBMQVRGT1JNKENPQ09BKQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYkF1dGhuUHJvY2Vzcyhjb25zdCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
KQotewotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLXZvaWQg
V2ViQXV0aG5Qcm9jZXNzOjpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoY29uc3QgU3RyaW5nJiBk
b21haW4sIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIGVu
Y29kZWRWYWx1ZSkKLXsKLSAgICBwcmVmZXJlbmNlRGlkVXBkYXRlKGRvbWFpbiwga2V5LCBlbmNv
ZGVkVmFsdWUpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Q
cm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3Mv
V2ViQXV0aG5Qcm9jZXNzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlN2EyNDA3
ZjBkNDM3MmQxMWM2NzI3MmJlNGMwNjYzZjI4OTEzMzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2Vi
QXV0aG5Qcm9jZXNzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRl
ICJBdXhpbGlhcnlQcm9jZXNzLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMu
aCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmg+Ci0jaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgotI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLXN0cnVjdCBNb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgQXV0
aGVudGljYXRvck1hbmFnZXI7Ci1jbGFzcyBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7
Ci1zdHJ1Y3QgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwotCi1jbGFzcyBXZWJB
dXRoblByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcywgcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFdlYkF1dGhuUHJvY2Vzcz4gewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdl
YkF1dGhuUHJvY2Vzcyk7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgV2ViQXV0aG5Qcm9jZXNzKEF1
eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJik7Ci0gICAgfldlYkF1dGhu
UHJvY2VzcygpOwotICAgIHN0YXRpYyBjb25zdGV4cHIgV2ViQ29yZTo6QXV4aWxpYXJ5UHJvY2Vz
c1R5cGUgcHJvY2Vzc1R5cGUgPSBXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZTo6V2ViQXV0
aG47Ci0KLSAgICB2b2lkIHJlbW92ZVdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKLQotICAgIHZvaWQgcHJlcGFyZVRvU3VzcGVu
ZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwotICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOwotICAgIHZvaWQgcmVzdW1lKCk7Ci0KLSAg
ICB2b2lkIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NDbG9zZWQoSVBDOjpDb25uZWN0aW9uJik7Ci0K
LSAgICBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIHdlYlByb2Nlc3NDb25uZWN0aW9u
KFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKSBjb25zdDsKLQotICAgIEF1dGhlbnRpY2F0b3JN
YW5hZ2VyJiBhdXRoZW50aWNhdG9yTWFuYWdlcigpIHsgcmV0dXJuIG1fYXV0aGVudGljYXRvck1h
bmFnZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiYmKTsKLQot
I2lmIEVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIHZvaWQgbm90aWZ5UHJlZmVyZW5j
ZXNDaGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
c3RkOjpvcHRpb25hbDxTdHJpbmc+JiBlbmNvZGVkVmFsdWUpOwotI2VuZGlmCi0KLXByaXZhdGU6
Ci0gICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVXZWJBdXRoblByb2Nlc3MoY29uc3QgV2ViQXV0
aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7Ci0gICAgdm9pZCBsb3dNZW1vcnlIYW5kbGVy
KENyaXRpY2FsKTsKLQotICAgIC8vIEF1eGlsaWFyeVByb2Nlc3MKLSAgICB2b2lkIGluaXRpYWxp
emVQcm9jZXNzKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KSBvdmVycmlkZTsKLSAgICB2b2lkIGluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBBdXhpbGlh
cnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBp
bml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOwotICAg
IGJvb2wgc2hvdWxkVGVybWluYXRlKCkgb3ZlcnJpZGU7Ci0KLSAgICAvLyBJUEM6OkNvbm5lY3Rp
b246OkNsaWVudAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rp
b24mKSBvdmVycmlkZTsKLQotICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKLSAgICB2b2lkIGluaXRp
YWxpemVXZWJBdXRoblByb2Nlc3MoV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYp
OwotICAgIHZvaWQgY3JlYXRlV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
SVBDOjpBdHRhY2htZW50PiYmKT4mJik7Ci0KLSAgICAvLyBDb25uZWN0aW9ucyB0byBXZWJQcm9j
ZXNzZXMuCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUmVmPFdlYkF1
dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zOwotCi0g
ICAgVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JNYW5hZ2VyPiBtX2F1dGhlbnRpY2F0b3JNYW5hZ2Vy
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Q
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0
aG5Qcm9jZXNzLm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyM2Qx
OWM2NzJjMmNkOGI5YWMxM2U2MjQzZDVkZjFkZDdiZjEyODBkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNz
L1dlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAg
QEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAot
IyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAotIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jaWYgRU5B
QkxFKFdFQl9BVVRITikKLQotbWVzc2FnZXMgLT4gV2ViQXV0aG5Qcm9jZXNzIHsKLSAgICAjIElu
aXRpYWxpemVzIHRoZSBXZWJBdXRobiBwcm9jZXNzLgotICAgIEluaXRpYWxpemVXZWJBdXRoblBy
b2Nlc3Moc3RydWN0IFdlYktpdDo6V2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMpCi0KLSAgICAjIENyZWF0ZXMgYSBjb25uZWN0aW9uIGZv
ciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCi0gICAgQ3JlYXRlV2ViQXV0aG5Db25u
ZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJZGVu
dGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+IGNvbm5lY3Rpb25JZGVu
dGlmaWVyKQotCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgTm90aWZ5UHJl
ZmVyZW5jZXNDaGFuZ2VkKFN0cmluZyBkb21haW4sIFN0cmluZyBrZXksIHN0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBlbmNvZGVkVmFsdWUpCi0jZW5kaWYKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRo
blByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblBy
b2Nlc3MvV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZThhMzZmNTQ3MDg1YWVlYjUzOTZhNjAyZGM3NzZlMTQ1MWIzYzIx
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRlICJBcmd1bWVudENvZGVycy5o
IgotI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgotCi0jaWYgUExBVEZPUk0oQ09D
T0EpCi0jaW5jbHVkZSAiQXJndW1lbnRDb2RlcnNDRi5oIgotI2VuZGlmCi0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OldlYkF1dGhuUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpID0gZGVmYXVsdDsKLQotdm9pZCBXZWJBdXRoblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
Ci17Ci0gICAgZW5jb2RlciA8PCBhdXhpbGlhcnlQcm9jZXNzUGFyYW1ldGVyczsKLX0KLQotYm9v
bCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcmVzdWx0KQotewot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmF1eGlsaWFyeVByb2Nlc3NQYXJhbWV0ZXJz
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNWUw
NjZkMGE1YzdkMjFlMjcwYzQ1OWY3YjI1Njg2YjcxZmYwOWFjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNz
L1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyAvZGV2L251bGwKQEAgLTEs
NDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9B
VVRITikKLQotI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
LQotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBEZWNvZGVyOwotY2xhc3MgRW5jb2RlcjsKLX0KLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMgewotICAgIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpOwotICAgIEF1
eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgYXV4aWxpYXJ5UHJvY2Vzc1BhcmFtZXRl
cnM7Ci0KLSAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKLSAgICBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFdlYkF1dGhuUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJBdXRoblByb2Nlc3MvaW9zL1dlYkF1dGhuUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViQXV0aG5Qcm9jZXNzL2lvcy9XZWJBdXRoblByb2Nlc3NJT1MubW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDU1YjM3ZDRlZjg4ZGQyODRhNzI0OWU0MGI2MWZiNGExOGI5ODkxYzEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJBdXRoblByb2Nlc3MvaW9zL1dlYkF1dGhuUHJvY2Vzc0lPUy5tbQorKysgL2Rldi9u
dWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5o
IgotI2ltcG9ydCAiV2ViQXV0aG5Qcm9jZXNzLmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKSAm
JiBQTEFURk9STShJT1NfRkFNSUxZKQotCi0jaW1wb3J0ICJEZWZhdWx0V2ViQnJvd3NlckNoZWNr
cy5oIgotI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNlLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjppbml0aWFs
aXplUHJvY2Vzcyhjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JikKLXsKLSAgICBJbml0V2ViQ29yZVRocmVhZFN5c3RlbUludGVyZmFjZSgpOwotfQotCi12b2lk
IFdlYkF1dGhuUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NOYW1lKGNvbnN0IEF1eGlsaWFyeVBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhp
bGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiwgU2FuZGJveEluaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCi17Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJBdXRoblByb2Nlc3MoY29uc3QgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQotewotICAgIFJFTEVBU0VfQVNTRVJUKGlzUGFyZW50UHJvY2Vz
c0FGdWxsV2ViQnJvd3NlcigqdGhpcykpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9tYWMvV2ViQXV0aG5Qcm9jZXNz
TWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvbWFjL1dlYkF1dGhuUHJvY2Vz
c01hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWFlODgwODk3M2E2YWQ0NmUz
YWViZGRjMzQ4YzA4ZTNmZjZhYjFmZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9tYWMvV2ViQXV0aG5Q
cm9jZXNzTWFjLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJBdXRoblByb2Nlc3MuaCIKLQot
I2lmIEVOQUJMRShXRUJfQVVUSE4pICYmIFBMQVRGT1JNKE1BQykKLQotI2ltcG9ydCAiU2FuZGJv
eEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgotI2ltcG9ydCAiV0tGb3VuZGF0aW9uLmgiCi0j
aW1wb3J0ICJXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbXBvcnQgPFdl
YkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgotI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hT
ZXJ2aWNlc1NQSS5oPgotI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElTZXJ2aWNlc1NQSS5oPgotI2lt
cG9ydCA8c3lzZXhpdHMuaD4KLSNpbXBvcnQgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4K
LSNpbXBvcnQgPHd0Zi9jb2NvYS9UeXBlQ2FzdHNDb2NvYS5oPgotI2ltcG9ydCA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBBdXhp
bGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKLXsKLSAgICBzZXRBcHBsaWNh
dGlvbklzRGFlbW9uKCk7Ci0gICAgbGF1bmNoU2VydmljZXNDaGVja0luKCk7Ci19Ci0KLXZvaWQg
V2ViQXV0aG5Qcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29uc3QgQXV4aWxpYXJ5UHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLXsKLSAgICBOU1N0cmlu
ZyAqYXBwbGljYXRpb25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX05T
U1RSSU5HKEAiJUAgV2ViIEF1dGhlbnRpY2F0aW9uIiwgInZpc2libGUgbmFtZSBvZiB0aGUgV2Vi
QXV0aG4gcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAo
TlNTdHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwotICAgIF9MU1NldEFwcGxpY2F0
aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBs
aWNhdGlvbkFTTigpLCBfa0xTRGlzcGxheU5hbWVLZXksIGJyaWRnZV9jYXN0KGFwcGxpY2F0aW9u
TmFtZSksIG51bGxwdHIpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6aW5pdGlhbGl6ZVNh
bmRib3goY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRl
cnMpCi17Ci0gICAgLy8gTmVlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCwgYmVjYXVzZSBzZXJ2
aWNlIGhhcyBhIGRpZmZlcmVudCBidW5kbGUgSUQuCi0gICAgTlNCdW5kbGUgKndlYktpdDJCdW5k
bGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6TlNDbGFzc0Zyb21TdHJpbmcoQCJXS1dlYlZp
ZXciKV07Ci0KLSAgICBzYW5kYm94UGFyYW1ldGVycy5zZXRPdmVycmlkZVNhbmRib3hQcm9maWxl
UGF0aChbd2ViS2l0MkJ1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJjb20uYXBwbGUuV2ViS2l0Lldl
YkF1dGhuUHJvY2VzcyIgb2ZUeXBlOkAic2IiXSk7Ci0KLSAgICBBdXhpbGlhcnlQcm9jZXNzOjpp
bml0aWFsaXplU2FuZGJveChwYXJhbWV0ZXJzLCBzYW5kYm94UGFyYW1ldGVycyk7Ci19Ci0KLXZv
aWQgV2ViQXV0aG5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJBdXRoblByb2Nlc3MoY29u
c3QgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKLXsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0
aG5Qcm9jZXNzLnNiLmluIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvbWFjL2NvbS5h
cHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1OTRiN2QyOTk4OWQ1YjljYzk4ZWU1NjhiNTlkY2I5YWQzY2M3NTMwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
QXV0aG5Qcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYi5pbgor
KysgL2Rldi9udWxsCkBAIC0xLDQ3OSArMCwwIEBACi07IENvcHlyaWdodCAoQykgMjAxMC0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLTsKLTsgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci07IG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotOyBhcmUgbWV0OgotOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi07IDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci07
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLTsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLTsKLTsgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotOyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLTsgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotOyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLTsgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotOyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotOyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLTsgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLTsgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLTsgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotOyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLSh2ZXJzaW9uIDEpCi0oZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRp
YWwtc3ltYm9saWNhdGlvbikpCi0oZGVueSBudnJhbSopCi0oYWxsb3cgc3lzdGVtLWF1ZGl0IGZp
bGUtcmVhZC1tZXRhZGF0YSkKLQotOzsgU2lsZW5jZSBzcHVyaW91cyBsb2dnaW5nIGR1ZSB0byBy
ZGFyOi8vMjAxMTc5MjMgYW5kIHJkYXI6Ly83MjM2NjQ3NQotKGRlbnkgc3lzdGVtLXByaXZpbGVn
ZSAocHJpdmlsZWdlLWlkIFBSSVZfR0xPQkFMX1BST0NfSU5GTykgKHdpdGggbm8tcmVwb3J0KSkK
LQotI2luY2x1ZGUgIlNoYXJlZC9TYW5kYm94L3ByZWZlcmVuY2VzLnNiIgotCi0jaWYgRU5BQkxF
KFNZU1RFTV9DT05URU5UX1BBVEhfU0FOREJPWF9SVUxFUykKLSNpbmNsdWRlIDxXZWJLaXRBZGRp
dGlvbnMvU3lzdGVtQ29udGVudFNhbmRib3gtbWFjb3MuZGVmcz4KLSNlbmRpZgotIAotOzs7Ci07
OzsgVGhlIGZvbGxvd2luZyBydWxlcyB3ZXJlIG9yaWdpbmFsbHkgY29udGFpbmVkIGluICdzeXN0
ZW0uc2InLiBXZSBhcmUgZHVwbGljYXRpbmcgdGhlbSBoZXJlIHNvIHdlIGNhbgotOzs7IHJlbW92
ZSB1bm5lZWRlZCBzYW5kYm94IGV4dGVuc2lvbnMuCi07OzsKLQotOzs7IEFsbG93IHJlZ2lzdHJh
dGlvbiBvZiBwZXItcGlkIHNlcnZpY2VzLgotKGFsbG93IG1hY2gtcmVnaXN0ZXIgKGxvY2FsLW5h
bWUtcHJlZml4ICIiKSkKLQotOzs7IEFsbG93IHJlYWQgYWNjZXNzIHRvIHN0YW5kYXJkIHN5c3Rl
bSBwYXRocy4KLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgKHJlcXVpcmUtYWxsIChmaWxlLW1vZGUg
I28wMDA0KQotICAgIChyZXF1aXJlLWFueSAoc3VicGF0aCAiL0xpYnJhcnkvRmlsZXN5c3RlbXMv
TmV0RlNQbHVnaW5zIikKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtIikKLSAg
ICAoc3VicGF0aCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvTG9nZ2luZyIpICAgICAgOyBMb2dnaW5n
IFJldGhpbmsKLSAgICAoc3VicGF0aCAiL1N5c3RlbSIpCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA8IDExMDAwMAotICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvZGIvZHls
ZCIpCi0jZW5kaWYKLSAgICAoc3VicGF0aCAiL3ByaXZhdGUvdmFyL2RiL3RpbWV6b25lIikKLSAg
ICAoc3VicGF0aCAiL3Vzci9saWIiKQotICAgIChzdWJwYXRoICIvdXNyL3NoYXJlIikpKSkKLQot
Ozs7IEFsbG93IHJlYWRpbmcgaW50ZXJuYWwgcHJvZmlsZXMgb24gZGV2ZWxvcG1lbnQgYnVpbGRz
Ci0oYWxsb3cgZmlsZS1yZWFkKgotICAgIChyZXF1aXJlLWFsbCAoZmlsZS1tb2RlICNvMDAwNCkK
LSAgICAoc3VicGF0aCAiL0FwcGxlSW50ZXJuYWwvTGlicmFyeS9QcmVmZXJlbmNlcy9Mb2dnaW5n
IikKLSAgICAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkpKQotCi07OzsgQWxsb3cg
bWFwcGluZyBvZiBzeXN0ZW0gZnJhbWV3b3JrcyArIGR5bGlicwotKGFsbG93IGZpbGUtbWFwLWV4
ZWN1dGFibGUKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvQXBwbGUvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3JrcyIpCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0FwcGxlL1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzIikKLSAgICAoc3VicGF0aCAiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MiKQotICAgIChzdWJwYXRoICIvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MiKQot
ICAgIChzdWJwYXRoICIvdXNyL2xpYiIpCi0gICAgKHN1YnBhdGggIi91c3IvYXBwbGVpbnRlcm5h
bC9saWIiKSA7OyA8cmRhcjovL3Byb2JsZW0vNzIzMTcxMTI+Ci0pCi0KLShhbGxvdyBmaWxlLXJl
YWQtbWV0YWRhdGEKLSAgICAobGl0ZXJhbCAiL2V0YyIpCi0gICAgKGxpdGVyYWwgIi90bXAiKQot
ICAgIChsaXRlcmFsICIvdmFyIikKLSAgICAobGl0ZXJhbCAiL3ByaXZhdGUvZXRjL2xvY2FsdGlt
ZSIpKQotCi0KLTs7OyBBbGxvdyBhY2Nlc3MgdG8gc3RhbmRhcmQgc3BlY2lhbCBmaWxlcy4KLShh
bGxvdyBmaWxlLXJlYWQqCi0gICAgKGxpdGVyYWwgIi9kZXYvYXV0b2ZzX25vd2FpdCIpCi0gICAg
KGxpdGVyYWwgIi9kZXYvcmFuZG9tIikKLSAgICAobGl0ZXJhbCAiL2Rldi91cmFuZG9tIikKLSAg
ICAobGl0ZXJhbCAiL3ByaXZhdGUvZXRjL21hc3Rlci5wYXNzd2QiKQotICAgIChsaXRlcmFsICIv
cHJpdmF0ZS9ldGMvcGFzc3dkIikpCi0KLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAgZmlsZS13
cml0ZS1kYXRhCi0gICAgKGxpdGVyYWwgIi9kZXYvbnVsbCIpCi0gICAgKGxpdGVyYWwgIi9kZXYv
emVybyIpKQotCi0oYWxsb3cgZmlsZS1yZWFkKgotICAgICAgIGZpbGUtd3JpdGUtZGF0YQotICAg
ICAgIGZpbGUtaW9jdGwKLSAgICAobGl0ZXJhbCAiL2Rldi9kdHJhY2VoZWxwZXIiKSkKLQotOzs7
IEFsbG93IGNyZWF0aW9uIG9mIGNvcmUgZHVtcHMuCi0oYWxsb3cgZmlsZS13cml0ZS1jcmVhdGUK
LSAgICAocmVxdWlyZS1hbGwgKHByZWZpeCAiL2NvcmVzLyIpCi0gICAgICAgICh2bm9kZS10eXBl
IFJFR1VMQVItRklMRSkpKQotCi07OzsgQWxsb3cgSVBDIHRvIHN0YW5kYXJkIHN5c3RlbSBhZ2Vu
dHMuCi0oYWxsb3cgaXBjLXBvc2l4LXNobS1yZWFkKgotICAgIChpcGMtcG9zaXgtbmFtZSAiYXBw
bGUuc2htLm5vdGlmaWNhdGlvbl9jZW50ZXIiKQotI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1Rf
TU9ERSkKLSAgICAoaXBjLXBvc2l4LW5hbWUtcHJlZml4ICJhcHBsZS5jZnByZWZzLiIpCi0jZW5k
aWYKLSkKLQotOzs7Ci07OzsgRW5kIHJ1bGVzIG9yaWdpbmFsbHkgY29waWVkIGZyb20gJ3N5c3Rl
bS5zYicKLTs7OwotCi07OzsgcHJvY2Vzcy1pbmZvKiBkZWZhdWx0cyB0byBhbGxvdzsgZGVueSBp
dCBhbmQgdGhlbiBhbGxvdyBvcGVyYXRpb25zIHdlIGFjdHVhbGx5IG5lZWQuCi0oZGVueSBwcm9j
ZXNzLWluZm8qKQotKGFsbG93IHByb2Nlc3MtaW5mby1kaXJ0eWNvbnRyb2wgKHRhcmdldCBzZWxm
KSkKLShhbGxvdyBwcm9jZXNzLWluZm8tcGlkaW5mbykKLShhbGxvdyBwcm9jZXNzLWluZm8tc2V0
Y29udHJvbCAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nlc3MtY29kZXNpZ25pbmctc3RhdHVz
KikKLQotKGRlbnkgc3lzY3RsKikKLShhbGxvdyBzeXNjdGwtcmVhZAotICAgIChzeXNjdGwtbmFt
ZQotICAgICAgICAiaHcuYWN0aXZlY3B1IiA7OyA8cmRhcjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0g
ICAgICAgICJody5hdmFpbGNwdSIKLSAgICAgICAgImh3LmJ5dGVvcmRlciIKLSAgICAgICAgImh3
LmJ1c2ZyZXF1ZW5jeSIKLSAgICAgICAgImh3LmJ1c2ZyZXF1ZW5jeV9tYXgiCi0gICAgICAgICJo
dy5jYWNoZWNvbmZpZyIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc4MjEzNTYzPgotICAgICAgICAiaHcu
Y2FjaGVsaW5lc2l6ZSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcu
Y2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNzgyMTM1NjM+Ci0gICAgICAgICJody5jcHVm
cmVxdWVuY3kiCi0gICAgICAgICJody5jcHVmcmVxdWVuY3lfbWF4IgotICAgICAgICAiaHcuY3B1
c3ViZmFtaWx5IgotICAgICAgICAiaHcuY3B1dGhyZWFkdHlwZSIKLSAgICAgICAgImh3LmNwdXR5
cGUiCi0gICAgICAgICJody5sMWRjYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS81Njc5NTU3
NT4KLSAgICAgICAgImh3LmwxaWNhY2hlc2l6ZSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzU2Nzk1NTc1
PgotICAgICAgICAiaHcubDJjYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS81Njc5NTU3NT4K
LSAgICAgICAgImh3LmwzY2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0g
ICAgICAgICJody5sb2dpY2FsY3B1IiA7OyA8cmRhcjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0gICAg
ICAgICJody5sb2dpY2FsY3B1X21heCIgOzsgPHJkYXI6Ly9wcm9ibGVtLzU2Nzk1NTc1PgotICAg
ICAgICAiaHcubWFjaGluZSIKLSAgICAgICAgImh3Lm1lbXNpemUiCi0gICAgICAgICJody5tb2Rl
bCIKLSAgICAgICAgImh3Lm5jcHUiCi0gICAgICAgICJody5ucGVyZmxldmVscyIgOzsgPHJkYXI6
Ly9wcm9ibGVtLzc2NzgzNTk2PgotICAgICAgICAiaHcucGFnZXNpemUiIDs7IDxyZGFyOi8vcHJv
YmxlbS83Njc4MzU5Nj4KLSAgICAgICAgImh3LnBhZ2VzaXplX2NvbXBhdCIgOzsgPHJkYXI6Ly9w
cm9ibGVtLzc2NzgzNTk2PgotICAgICAgICAiaHcucGh5c2ljYWxjcHUiIDs7IDxyZGFyOi8vcHJv
YmxlbS81ODQxNjQ3NT4KLSAgICAgICAgImh3LnBoeXNpY2FsY3B1X21heCIgOzsgPHJkYXI6Ly9w
cm9ibGVtLzU4NDE2NDc1PgotICAgICAgICAiaHcudGJmcmVxdWVuY3kiCi0gICAgICAgICJody50
YmZyZXF1ZW5jeV9jb21wYXQiCi0gICAgICAgICJody52ZWN0b3J1bml0IgotICAgICAgICAia2Vy
bi5ib290YXJncyIgOzsgPHJkYXI6Ly9wcm9ibGVtLzQ3NzM4MDE1PgotICAgICAgICAia2Vybi5o
b3N0bmFtZSIKLSAgICAgICAgImtlcm4uaHZfdm1tX3ByZXNlbnQiCi0gICAgICAgICJrZXJuLm1h
eGZpbGVzcGVycHJvYyIKLSAgICAgICAgImtlcm4ubWVtb3J5c3RhdHVzX2xldmVsIgotICAgICAg
ICAia2Vybi5vc3Byb2R1Y3R2ZXJzaW9uIiA7OyA8cmRhcjovL3Byb2JsZW0vNTE3NTY3Mzk+Ci0g
ICAgICAgICJrZXJuLm9zcmVsZWFzZSIKLSAgICAgICAgImtlcm4ub3N0eXBlIgotICAgICAgICAi
a2Vybi5vc3ZhcmlhbnRfc3RhdHVzIgotICAgICAgICAia2Vybi5vc3ZlcnNpb24iCi0gICAgICAg
ICJrZXJuLnNhZmVib290IgotICAgICAgICAia2Vybi52ZXJzaW9uIgotICAgICAgICAibWFjaGRl
cC5jcHUuYnJhbmRfc3RyaW5nIgotICAgICAgICAic2VjdXJpdHkubWFjLnNhbmRib3guc2VudGlu
ZWwiCi0gICAgICAgICJrZXJuLnRjc21fZW5hYmxlIgotICAgICAgICAia2Vybi50Y3NtX2F2YWls
YWJsZSIKLSAgICAgICAgInZtLmZvb3RwcmludF9zdXNwZW5kIikKLSAgICAoc3lzY3RsLW5hbWUt
cHJlZml4ICJuZXQucm91dGV0YWJsZSIpCi0gICAgKHN5c2N0bC1uYW1lLXByZWZpeCAiaHcub3B0
aW9uYWwuIikgOzsgPHJkYXI6Ly9wcm9ibGVtLzcxNDYyNzkwPgotICAgIChzeXNjdGwtbmFtZS1w
cmVmaXggImh3LnBlcmZsZXZlbCIpIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MzU5Nj4KLSkKLQot
KGFsbG93IHN5c2N0bC13cml0ZQotICAgIChzeXNjdGwtbmFtZQotICAgICAgICAia2Vybi50Y3Nt
X2VuYWJsZSIpKQotCi0oZGVueSBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFtZS1wcmVmaXgg
IiIpKQotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgKHhwYy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBs
ZS5QZXJmb3JtYW5jZUFuYWx5c2lzLmFuaW1hdGlvbnBlcmZkIikKLSAgICAoeHBjLXNlcnZpY2Ut
bmFtZSAiY29tLmFwcGxlLmFjY2Vzc2liaWxpdHkubWVkaWFhY2Nlc3NpYmlsaXR5ZCIpCi0gICAg
KHhwYy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5hdWRpby5TYW5kYm94SGVscGVyIikKLSAgICAo
eHBjLXNlcnZpY2UtbmFtZSAiY29tLmFwcGxlLmNvcmVtZWRpYS52aWRlb2RlY29kZXIiKQotICAg
ICh4cGMtc2VydmljZS1uYW1lICJjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVvZW5jb2RlciIpCi0g
ICAgKHhwYy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5oaXNlcnZpY2VzLXhwY3NlcnZpY2UiKQot
KQotCi07OyBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgaG9tZSBkaXJlY3RvcnkgcmVsYXRpdmUgcGF0
aCBmaWx0ZXJzCi0oZGVmaW5lIChob21lLXJlZ2V4IGhvbWUtcmVsYXRpdmUtcmVnZXgpCi0gIChy
ZWdleCAoc3RyaW5nLWFwcGVuZCAiXiIgKHJlZ2V4LXF1b3RlIChwYXJhbSAiSE9NRV9ESVIiKSkg
aG9tZS1yZWxhdGl2ZS1yZWdleCkpKQotCi0oZGVmaW5lIChob21lLXN1YnBhdGggaG9tZS1yZWxh
dGl2ZS1zdWJwYXRoKQotICAoc3VicGF0aCAoc3RyaW5nLWFwcGVuZCAocGFyYW0gIkhPTUVfRElS
IikgaG9tZS1yZWxhdGl2ZS1zdWJwYXRoKSkpCi0KLShkZWZpbmUgKGhvbWUtbGl0ZXJhbCBob21l
LXJlbGF0aXZlLWxpdGVyYWwpCi0gIChsaXRlcmFsIChzdHJpbmctYXBwZW5kIChwYXJhbSAiSE9N
RV9ESVIiKSBob21lLXJlbGF0aXZlLWxpdGVyYWwpKSkKLQotKGRlZmluZSAoYWxsb3ctcmVhZC1k
aXJlY3RvcnktYW5kLWlzc3VlLXJlYWQtZXh0ZW5zaW9ucyBwYXRoKQotICAgIChpZiBwYXRoCi0g
ICAgICAgIChiZWdpbgotICAgICAgICAgICAgKGFsbG93IGZpbGUtcmVhZCogKHN1YnBhdGggcGF0
aCkpCi0gICAgICAgICAgICAoYWxsb3cgZmlsZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxs
IChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkIikgKHN1YnBhdGgg
cGF0aCkpKSkpKQotCi0oZGVmaW5lIChhbGxvdy1yZWFkLXdyaXRlLWRpcmVjdG9yeS1hbmQtaXNz
dWUtcmVhZC13cml0ZS1leHRlbnNpb25zIHBhdGgpCi0gICAgKGlmIHBhdGgKLSAgICAgICAgKGJl
Z2luCi0gICAgICAgICAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKiAoc3VicGF0aCBw
YXRoKSkKLSAgICAgICAgICAgIChhbGxvdyBmaWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1h
bGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQiKSAoc3VicGF0
aCBwYXRoKSkpCi0gICAgICAgICAgICAoYWxsb3cgZmlsZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVp
cmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRl
IikgKHN1YnBhdGggcGF0aCkpKSkpKQotCi07OyBSZW1vdmUgd2hlbiA8cmRhcjovL3Byb2JsZW0v
Mjk2NDYwOTQ+IGlzIGZpeGVkLgotKGRlZmluZSAoSEVYLXBhdHRlcm4tbWF0Y2gtZ2VuZXJhdG9y
IHBhdHRlcm4tZGVzY3JpcHRvcikKLSAgICAobGV0cmVjICgocGF0dGVybi1zdHJpbmcgIiIpKQot
ICAgICAgICAoZm9yLWVhY2ggIChsYW1iZGEgKHJlcGVhdC1jb3VudCkKLSAgICAgICAgICAgIChp
ZiAoemVybz8gcmVwZWF0LWNvdW50KQotICAgICAgICAgICAgICAgIChzZXQhIHBhdHRlcm4tc3Ry
aW5nIChzdHJpbmctYXBwZW5kICBwYXR0ZXJuLXN0cmluZyAiLSIpKQotICAgICAgICAgICAgICAg
IChsZXQgYXBwZW5kZXIgKChjb3VudCByZXBlYXQtY291bnQpKQotICAgICAgICAgICAgICAgICAg
ICAoaWYgKD4gY291bnQgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIChiZWdpbgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChzZXQhIHBhdHRlcm4tc3RyaW5nIChzdHJpbmctYXBwZW5k
ICBwYXR0ZXJuLXN0cmluZyAiWzAtOUEtRl0iKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYXBwZW5kZXIgKC0gY291bnQgMSkpKSkpKSkKLSAgICAgICAgICAgIHBhdHRlcm4tZGVzY3Jp
cHRvcikKLSAgICBwYXR0ZXJuLXN0cmluZykpCi0KLTs7IHJldHVybiBhIHJlZ2V4IHBhdHRlcm4g
bWF0Y2hpbmcgc3RyaW5nIGZvciA4LTQtNC00LTEyIFVVSURzOgotKGRlZmluZSAodXVpZC1IRVgt
cGF0dGVybi1tYXRjaC1zdHJpbmcpCi0gICAgKEhFWC1wYXR0ZXJuLW1hdGNoLWdlbmVyYXRvciAn
KDggMCA0IDAgNCAwIDQgMCAxMikpKQotCi07OyBnbG9iYWwgdG8gaG9sZCB0aGUgY29tcHV0ZWQg
VVVJRCBtYXRjaGluZyBwYXR0ZXJuLgotKGRlZmluZSAqdXVpZC1wYXR0ZXJuKiAiIikKLQotKGRl
ZmluZSAodXVpZC1yZWdleC1zdHJpbmcpCi0gICAgKGlmICh6ZXJvPyAoc3RyaW5nLWxlbmd0aCAq
dXVpZC1wYXR0ZXJuKikpCi0gICAgICAgIChzZXQhICp1dWlkLXBhdHRlcm4qICh1dWlkLUhFWC1w
YXR0ZXJuLW1hdGNoLXN0cmluZykpKQotICAgICp1dWlkLXBhdHRlcm4qKQotCi07OyBSZWFkLW9u
bHkgcHJlZmVyZW5jZXMgYW5kIGRhdGEKLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgOzsgQmFzaWMg
c3lzdGVtIHBhdGhzCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0RpY3Rpb25hcmllcyIpCi0gICAg
KHN1YnBhdGggIi9MaWJyYXJ5L0ZvbnRzIikKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvRnJhbWV3
b3JrcyIpCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L01hbmFnZWQgUHJlZmVyZW5jZXMiKQotICAg
IChzdWJwYXRoICIvTGlicmFyeS9TcGVlY2gvU3ludGhlc2l6ZXJzIikKLSAgICAocmVnZXggIyJe
L3ByaXZhdGUvZXRjLyhob3N0c3xncm91cHxwYXNzd2QpJCIpCi0KLSAgICA7OyBTeXN0ZW0gYW5k
IHVzZXIgcHJlZmVyZW5jZXMKLSAgICAoaG9tZS1saXRlcmFsICIvLkNGVXNlclRleHRFbmNvZGlu
ZyIpCi0KLSAgICA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8v
cHJvYmxlbS84OTU3ODQ1PiBpcyBmaXhlZC4KLSAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9G
b250cyIpCi0KLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvQXVkaW8vUGx1Zy1JbnMvSEFMIikKLQot
ICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0RpY3Rpb25hcmllcyIpKQotCi0oYWxsb3cgZmls
ZS1yZWFkLWRhdGEKLSAgICAobGl0ZXJhbCAiL3Vzci9sb2NhbC9saWIvbG9nIikgOyA8cmRhcjov
L3Byb2JsZW0vMzY2Mjk0OTU+Ci0gICAgOzsgTmVlZGVkIGZvciBBRVMzIHN1cHBvcnQKLSAgICAo
c3VicGF0aCAiL0xpYnJhcnkvQXVkaW8vUGx1Zy1JbnMvQ29tcG9uZW50cyIpKQotCi07OyBQcmVm
ZXJlbmNlcyBzdXBwb3J0Ci0oc2hhcmVkLXByZWZlcmVuY2VzLXJlYWQKLSAgICAiY29tLmFwcGxl
LkFjY2Vzc2liaWxpdHkiCi0gICAgImNvbS5hcHBsZS5BVFMiCi0gICAgImNvbS5hcHBsZS5Db3Jl
R3JhcGhpY3MiCi0gICAgImNvbS5hcHBsZS5Eb3dubG9hZEFzc2Vzc21lbnQiCi0gICAgImNvbS5h
cHBsZS5ISVRvb2xib3giCi0gICAgImNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyIKLSAgICAiY29t
LmFwcGxlLk11bHRpdG91Y2hTdXBwb3J0IiA7OyBGSVhNRTogUmVtb3ZlIHdoZW4gPHJkYXI6Ly9w
cm9ibGVtLzEzMDExNjMzPiBpcyBmaXhlZC4KLSAgICAiY29tLmFwcGxlLlNlcnZpY2VzTWVudS5T
ZXJ2aWNlcyIgOzsgTmVlZGVkIGZvciBOU0F0dHJpYnV0ZWRTdHJpbmcgPHJkYXI6Ly9wcm9ibGVt
LzEwODQ0MzIxPgotICAgICJjb20uYXBwbGUuVmlld0JyaWRnZSIgOzsgTmVlZGVkIGZvciBJbnB1
dCBlbGVtZW50cy4KLSAgICAiY29tLmFwcGxlLldlYkZvdW5kYXRpb24iCi0gICAgImNvbS5hcHBs
ZS5hdmZvdW5kYXRpb24iCi0gICAgImNvbS5hcHBsZS5hdmZvdW5kYXRpb24uZnJlY2VudHMiIDs7
IDxyZGFyOi8vcHJvYmxlbS8zMzEzNzAyOT4KLSAgICAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbi52
aWRlb3BlcmZvcm1hbmNlaHVkIiA7OyA8cmRhcjovL3Byb2JsZW0vMzE1OTQ1Njg+Ci0gICAgImNv
bS5hcHBsZS5jb3JlbWVkaWEiCi0gICAgImNvbS5hcHBsZS5jcnlwdG8iCi0gICAgImNvbS5hcHBs
ZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRvdWNoLm1vdXNlIgotICAgICJjb20uYXBwbGUu
ZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC50cmFja3BhZCIKLSAgICAiY29tLmFwcGxl
LmRyaXZlci5BcHBsZUhJRE1vdXNlIgotICAgICJjb20uYXBwbGUubG9va3VwLnNoYXJlZCIKLSAg
ICAiY29tLmFwcGxlLm1lZGlhYWNjZXNzaWJpbGl0eSIgOzsgTmVlZGVkIGZvciBjdXN0b20gY2Fw
dGlvbiBzdHlsZXMKLSAgICAiY29tLmFwcGxlLm5ldHdvcmtDb25uZWN0IgotICAgICJjb20uYXBw
bGUuc3BlZWNoLnZvaWNlLnByZWZzIgotICAgICJjb20uYXBwbGUuc3lzdGVtc291bmQiCi0gICAg
ImNvbS5hcHBsZS51bml2ZXJzYWxhY2Nlc3MiCi0gICAgImVkdS5taXQuS2VyYmVyb3MiCi0gICAg
InBicyIpIDs7IE5lZWRlZCBmb3IgTlNBdHRyaWJ1dGVkU3RyaW5nIDxyZGFyOi8vcHJvYmxlbS8x
MDg0NDMyMT4KLQotKGFsbG93LXJlYWRpbmctZ2xvYmFsLXByZWZlcmVuY2VzKQotCi07IChUZW1w
b3JhcnkpIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBub24tQ0ZQcmVmZXJlbmNlcyByZWFk
ZXJzLgotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAobGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5j
ZXMvY29tLmFwcGxlLlZpZXdCcmlkZ2UucGxpc3QiKSkKLQotOyBGSVhNRTogVGhpcyBpcyBuZWVk
ZWQgZm9yIHNvbWUgc2VjdXJpdHkgZnJhbWV3b3JrIGNhbGxzICh0aGF0IHVzZSBub24tQ0ZQcmVm
ZXJlbmNlcyByZWFkZXJzKQotKGFsbG93IGZpbGUtcmVhZC1kYXRhCi0gICAgKGxpdGVyYWwgIi9M
aWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0eS5wbGlzdCIpCi0gICAgKGhvbWUt
c3VicGF0aCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLnNlY3VyaXR5LnBsaXN0Iikp
Ci0KLTs7IE9uLWRpc2sgV2ViS2l0MiBmcmFtZXdvcmsgbG9jYXRpb24sIHRvIGFjY291bnQgZm9y
IGRlYnVnIGluc3RhbGxhdGlvbnMgb3V0c2lkZSBvZiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cywKLTs7IGFuZCB0byBhbGxvdyBpc3N1aW5nIGV4dGVuc2lvbnMuCi0oYWxsb3ctcmVhZC1kaXJl
Y3RvcnktYW5kLWlzc3VlLXJlYWQtZXh0ZW5zaW9ucyAocGFyYW0gIldFQktJVDJfRlJBTUVXT1JL
X0RJUiIpKQotCi07OyBBbGxvdyBpc3N1aW5nIGV4dGVuc2lvbnMgdG8gc3lzdGVtIGxpYnJhcmll
cyB0aGF0IHRoZSBOZXR3b3JrIHByb2Nlc3MgY2FuIGFscmVhZHkgcmVhZC4KLTs7IFRoaXMgaXMg
dG8gYXZvaWQgd2FybmluZ3MgYXR0ZW1wdGluZyB0byBjcmVhdGUgZXh0ZW5zaW9ucyBmb3IgdGhl
c2UgcmVzb3VyY2VzLgotKGFsbG93LXJlYWQtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLWV4dGVu
c2lvbnMgIi9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9XZWJJbnNwZWN0b3JVSS5m
cmFtZXdvcmsiKQotCi0jaWYgVVNFKFNZU1RFTV9DT05URU5UX1BBVEgpCi0obWFwIGFsbG93LXJl
YWQtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLWV4dGVuc2lvbnMKLSAgICByZWFkLWRpcmVjdG9y
eS1hbmQtaXNzdWUtcmVhZC1leHRlbnNpb24tc2Vjb25kYXJ5LXBhdGhzKQotI2VuZGlmCi0KLTs7
IFNhbmRib3ggZXh0ZW5zaW9ucwotKGRlZmluZSAoYXBwbHktcmVhZC1hbmQtaXNzdWUtZXh0ZW5z
aW9uIG9wIHBhdGgtZmlsdGVyKQotICAgIChvcCBmaWxlLXJlYWQqIHBhdGgtZmlsdGVyKQotICAg
IChvcCBmaWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAi
Y29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQiKSBwYXRoLWZpbHRlcikpKQotKGRlZmluZSAoYXBw
bHktd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZpbHRlcikKLSAgICAob3AgZmls
ZS13cml0ZSogcGF0aC1maWx0ZXIpCi0gICAgKG9wIGZpbGUtaXNzdWUtZXh0ZW5zaW9uIChyZXF1
aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0
ZSIpIHBhdGgtZmlsdGVyKSkpCi0oZGVmaW5lIChyZWFkLW9ubHktYW5kLWlzc3VlLWV4dGVuc2lv
bnMgcGF0aC1maWx0ZXIpCi0gICAgKGFwcGx5LXJlYWQtYW5kLWlzc3VlLWV4dGVuc2lvbiBhbGxv
dyBwYXRoLWZpbHRlcikpCi0oZGVmaW5lIChyZWFkLXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNpb25z
IHBhdGgtZmlsdGVyKQotICAgIChhcHBseS1yZWFkLWFuZC1pc3N1ZS1leHRlbnNpb24gYWxsb3cg
cGF0aC1maWx0ZXIpCi0gICAgKGFwcGx5LXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNpb24gYWxsb3cg
cGF0aC1maWx0ZXIpKQotKHJlYWQtb25seS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyAoZXh0ZW5zaW9u
ICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZCIpKQotKHJlYWQtd3JpdGUtYW5kLWlzc3VlLWV4
dGVuc2lvbnMgKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSkK
LQotKGFsbG93IG1hY2gtbG9va3VwCi0jaWYgUExBVEZPUk0oTUFDKQotICAgICh3aXRoIHJlcG9y
dCkgKHdpdGggdGVsZW1ldHJ5KQotI2VuZGlmCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
YXVkaW8uQXVkaW9Db21wb25lbnRSZWdpc3RyYXIiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFw
cGxlLmF3ZGQiKQotI2lmICFFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5hZ2VudCIpCi0jZW5kaWYKLSAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5jb29raWVkIikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5pY29u
c2VydmljZXMiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmljb25zZXJ2aWNlcy5zdG9y
ZSIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc3lzdGVtLmxvZ2dlciIpCi0pCi0KLSh3
aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAoYWxsb3cg
bWFjaC1sb29rdXAKLSAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYW5hbHl0aWNzZCIp
Ci0gICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmRpYWdub3N0aWNkIikpKQotCi07OyBW
YXJpb3VzIHNlcnZpY2VzIHJlcXVpcmVkIGJ5IEFwcEtpdCBhbmQgb3RoZXIgZnJhbWV3b3Jrcwot
KGFsbG93IG1hY2gtbG9va3VwCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuUG93ZXJN
YW5hZ2VtZW50LmNvbnRyb2wiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlN5c3Rl
bUNvbmZpZ3VyYXRpb24uY29uZmlnZCIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
YXNzZXJ0aW9uZC5wcm9jZXNzYXNzZXJ0aW9uY29ubmVjdGlvbiIpCi0gICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUuYXVkaW8uU3lzdGVtU291bmRTZXJ2ZXItT1NYIikKLSAgICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5hdWRpb2hhbGQiKQotI2lmICFFTkFCTEUoQ0ZQUkVG
U19ESVJFQ1RfTU9ERSkKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jZnByZWZzZC5k
YWVtb24iKQotI2VuZGlmCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY29yZXNlcnZp
Y2VzLmxhdW5jaHNlcnZpY2VzZCIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuZm9u
dHMiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm1lZGlhcmVtb3RlZC54cGMiKQot
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxvZ2QiKQotICAgICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLmxvZ2QuZXZlbnRzIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5sc2QubWFwZGIiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmxza2RkIikgOzsg
PHJkYXI6Ly9wcm9ibGVtLzQ5MTIzODU1PgotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LnRjY2QiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRjY2Quc3lzdGVtIikKLSAg
ICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS50cnVzdGQuYWdlbnQiKQotICAgICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLkNBUmVuZGVyU2VydmVyIikgOyBOZWVkZWQgZm9yIFtDQUNvbnRl
eHQgcmVtb3RlQ29udGV4dFdpdGhPcHRpb25zXQotKQotCi07OyA8cmRhcjovL3Byb2JsZW0vNDcy
NjgxNjY+Ci0oYWxsb3cgbWFjaC1sb29rdXAgKHhwYy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5N
VExDb21waWxlclNlcnZpY2UiKSkKLQotKGRlbnkgbWFjaC1sb29rdXAgKHdpdGggbm8tbG9nKQot
ICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkNvcmVTZXJ2aWNlcy5jb3Jlc2VydmljZXNkIikK
LSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5EaXNrQXJiaXRyYXRpb24uZGlza2FyYml0cmF0
aW9uZCIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuVmlld0JyaWRnZUF1eGlsaWFyeSIp
Ci0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUud2luZG93c2VydmVyLmFjdGl2ZSIpKQotCi07
OyBOZWVkZWQgdG8gc3VwcG9ydCBlbmNyeXB0ZWQgbWVkaWEgcGxheWJhY2sgPHJkYXI6Ly9wcm9i
bGVtLzQwMDM4NDc4PgotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgKGdsb2JhbC1uYW1lICJjb20u
YXBwbGUuU2VjdXJpdHlTZXJ2ZXIiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLm9jc3Bk
IikpCi0KLShhbGxvdyBmaWxlLXJlYWQqIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvZGIvbWRzL3N5
c3RlbSIpKSA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJv
YmxlbS85NTM4NDE0PiBpcyBmaXhlZC4KLSh3aXRoLWZpbHRlciAodWlkIDApCi0gICAgKGFsbG93
IGZpbGUtd3JpdGUqCi0gICAgICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvZGIvbWRzL3N5c3Rl
bSIpKSA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxl
bS85NTM4NDE0PiBpcyBmaXhlZC4KLSkKLQotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAgICAoc3Vi
cGF0aCAiL3ByaXZhdGUvdmFyL2RiL21kcyIpCi0gICAgICAgKGxpdGVyYWwgIi9wcml2YXRlL3Zh
ci9kYi9EZXRhY2hlZFNpZ25hdHVyZXMiKSkKLQotKGFsbG93IGlwYy1wb3NpeC1zaG0tcmVhZCog
aXBjLXBvc2l4LXNobS13cml0ZS1kYXRhIGlwYy1wb3NpeC1zaG0td3JpdGUtY3JlYXRlCi0gICAg
ICAgKGlwYy1wb3NpeC1uYW1lICJjb20uYXBwbGUuQXBwbGVEYXRhYmFzZUNoYW5nZWQiKSkKLQot
OzsgQ29yZUZvdW5kYXRpb24uIFdlIGRvbid0IGltcG9ydCBjb20uYXBwbGUuY29yZWZvdW5kYXRp
b24uc2IsIGJlY2F1c2UgaXQgYWxsb3dzIHVubmVjZXNzYXJ5IGFjY2VzcyB0byBwYXN0ZWJvYXJk
LgotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgKGdsb2JhbC1uYW1lLXByZWZpeCAiY29tLmFwcGxl
LmRpc3RyaWJ1dGVkX25vdGlmaWNhdGlvbnMiKQotI2lmICFIQVZFKENTQ0hFQ0tGSVhESVNBQkxF
KQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkNvcmVTZXJ2aWNlcy5jb3Jlc2VydmljZXNk
IikKLSNlbmRpZgotKQotCi0oYWxsb3cgZmlsZS1yZWFkLWRhdGEKLSAgICAobGl0ZXJhbCAiL2Rl
di9hdXRvZnNfbm93YWl0IikpIDsgVXNlZCBieSBDRiB0byBjaXJjdW12ZW50IGF1dG9tb3VudCB0
cmlnZ2VycwotKGFsbG93IGlwYy1wb3NpeC1zaG0KLSAgICAoaXBjLXBvc2l4LW5hbWUtcHJlZml4
ICJDRlBCUzoiKSkgOyA8cmRhcjovL3Byb2JsZW0vMTM3NTc0NzU+Ci0oYWxsb3cgc3lzdGVtLWZz
Y3RsIChmc2N0bC1jb21tYW5kIChfSU8gImgiIDQ3KSkpCi0KLTs7IE5ldHdvcmtpbmcKLShhbGxv
dyBuZXR3b3JrLW91dGJvdW5kCi0gICAgICAgOzsgT2JqQyBtYXBfaW1hZ2VzIG5lZWRzIHRvIHNl
bmQgbG9nZ2luZyBkYXRhIHRvIHN5c2xvZy4gPHJkYXI6Ly9wcm9ibGVtLzM5Nzc4OTE4PgotICAg
ICAgIChsaXRlcmFsICIvcHJpdmF0ZS92YXIvcnVuL3N5c2xvZyIpCi0pCi0KLTs7IENGTmV0d29y
awotKGFsbG93IGZpbGUtcmVhZC1kYXRhIChwYXRoICIvcHJpdmF0ZS92YXIvZGIvbnN1cmxzdG9y
YWdlZC9kYWZzYURhdGEuYmluIikpCi0KLSNpZiBQTEFURk9STShNQUMpCi07OyBGSVhNRSBzaG91
bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS85MzQ3MjA1PiArIHJlbGF0ZWQgcmFk
YXIgaW4gU2FmYXJpIGlzIGZpeGVkCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5zeXN0ZW0ubG9nZ2VyIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5zeXN0ZW0ubm90aWZpY2F0aW9uX2NlbnRlciIpKQotI2VuZGlmCi0KLShkZW55IGZp
bGUtd3JpdGUtY3JlYXRlICh2bm9kZS10eXBlIFNZTUxJTkspKQotCi07OyBSZXNlcnZlIGEgbmFt
ZXNwYWNlIGZvciBhZGRpdGlvbmFsIHByb3RlY3RlZCBleHRlbmRlZCBhdHRyaWJ1dGVzLgotKGRl
bnkgZmlsZS1yZWFkLXhhdHRyIGZpbGUtd3JpdGUteGF0dHIgKHhhdHRyLXByZWZpeCAiY29tLmFw
cGxlLnNlY3VyaXR5LnByaXZhdGUuIikpCi0KLShkZW55IGZpbGUtcmVhZCogZmlsZS13cml0ZSog
KHdpdGggbm8tbG9nKQotICAgICAgIDs7IEZJWE1FOiBTaG91bGQgYmUgcmVtb3ZlZCBhZnRlciA8
cmRhcjovL3Byb2JsZW0vMTA0NjM4ODE+IGlzIGZpeGVkLgotICAgICAgIChob21lLWxpdGVyYWwg
Ii9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcy5RdWFyYW50aW5l
RXZlbnRzVjIiKQotICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2Nv
bS5hcHBsZS5MYXVuY2hTZXJ2aWNlcy5RdWFyYW50aW5lRXZlbnRzVjItam91cm5hbCIpKQotCi07
OyBEZW55IGFjY2VzcyBuZWVkZWQgZm9yIHVubmVjZXNzYXJ5IE5TQXBwbGljYXRpb24gaW5pdGlh
bGl6YXRpb24uCi07OyBGSVhNRTogVGhpcyBjYW4gYmUgcmVtb3ZlZCBvbmNlIDxyZGFyOi8vcHJv
YmxlbS8xMzAxMTYzMz4gaXMgZml4ZWQuCi0oZGVueSBmaWxlLXJlYWQqICh3aXRoIG5vLWxvZykK
LSAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkvSW5wdXRNYW5hZ2VycyIpCi0gICAgICAgKGhvbWUt
c3VicGF0aCAiL0xpYnJhcnkvSW5wdXRNYW5hZ2VycyIpKQotKGRlbnkgdXNlci1wcmVmZXJlbmNl
LXJlYWQgKHdpdGggbm8tbG9nKQotICAgIChwcmVmZXJlbmNlLWRvbWFpbiAiY29tLmFwcGxlLnNw
ZWVjaC5yZWNvZ25pdGlvbi5BcHBsZVNwZWVjaFJlY29nbml0aW9uLnByZWZzIikpCi0oZGVueSBt
YWNoLWxvb2t1cCAod2l0aCBuby1sb2cpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUu
Y29yZXNlcnZpY2VzLmFwcGxlZXZlbnRzIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5wYXN0ZWJvYXJkLjEiKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnNwZWVjaC5y
ZWNvZ25pdGlvbnNlcnZlciIpKQotI2lmIFBMQVRGT1JNKE1BQykKLTs7IEFsc28gcGFydCBvZiB1
bm5lY2Vzc2FyeSBOU0FwcGxpY2F0aW9uIGluaXRpYWxpemF0aW9uLCBidXQgd2UgY2FuJ3QgYmxv
Y2sgYWNjZXNzIHRvIHRoZXNlIHlldCwgc2VlIDxyZGFyOi8vcHJvYmxlbS8xMzg2OTc2NT4uCi0o
YWxsb3cgZmlsZS1yZWFkKgotICAgICAgIChzdWJwYXRoICIvTGlicmFyeS9Db21wb25lbnRzIikK
LSAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkvS2V5Ym9hcmQgTGF5b3V0cyIpCi0gICAgICAgKHN1
YnBhdGggIi9MaWJyYXJ5L0lucHV0IE1ldGhvZHMiKQotICAgICAgIChob21lLXN1YnBhdGggIi9M
aWJyYXJ5L0NvbXBvbmVudHMiKQotICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0tleWJv
YXJkIExheW91dHMiKQotICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0lucHV0IE1ldGhv
ZHMiKSkKLSNlbmRpZgotCi07OyBEYXRhIERldGVjdG9ycwotKGFsbG93IGZpbGUtcmVhZCogKHN1
YnBhdGggIi9wcml2YXRlL3Zhci9kYi9kYXRhZGV0ZWN0b3JzL3N5cyIpKQotCi07OyBBbGxvdyBh
Y2Nlc3NlcyB0byBISUQKLShhbGxvdyBpb2tpdC1vcGVuCi0gICAgKGlva2l0LXVzZXItY2xpZW50
LWNsYXNzICJJT0hJRExpYlVzZXJDbGllbnQiKSkKLQotOzsgQWxsb3cgYWNjZXNzZXMgdG8gTG9j
YWxBdXRoZW50aWNhdGlvbiBhbmQgUmVtb3RlU2VydmljZQotKGFsbG93IG1hY2gtbG9va3VwCi0g
ICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQ29yZUF1dGhlbnRpY2F0aW9uLmFnZW50IikKLSAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5yZW1vdGVkIikpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZWVlODA2YmVmYzIxODc1MjMy
YjQ0ZjI0ODFhYjBkYWY0NGYwMWY5Li44NjJjM2E2M2FlNWU4NzBjYmJlOWZiN2E3NjgzYWYwYmE1
NDFmM2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE3LDcgKzE3LDYgQEAKIAkJCQk1MTdCNUY2RDI3NUIwN0MzMDAyREMyMkQgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk1QzE1NzlERjI3MTY1RTA4MDBFRDUyODAgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk1Q0FGN0FBOTI2RjkzRjlGMDAwM0YxOUUgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCQk1NzQyQTJGQTI1MzU2MTlEMDBCN0JBMTQgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQlCQ0E4RDQ2ODE1QkNFMEQ2MDA5REMxRjEgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQk3QTdFOERGQzI3NDgzQTEyMDBEQ0M5N0EgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCQkzNzJFQkI0OTIwMTdFNkNGMDAwODUwNjQgLyog
UEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKQEAgLTExMDUsMjcgKzExMDQsMTIgQEAKIAkJNTcwREFB
QzIyMzAzNzMwMzAwRThGQzA0IC8qIE5mY0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERBQUMwMjMwMzczMDMwMEU4RkMwNCAvKiBO
ZmNDb25uZWN0aW9uLmggKi87IH07CiAJCTU3MERBQUM2MjMwMzdGN0YwMEU4RkMwNCAvKiBXS05G
UmVhZGVyU2Vzc2lvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzBEQUFDNDIzMDM3RjdFMDBFOEZDMDQgLyogV0tORlJlYWRlclNlc3Np
b25EZWxlZ2F0ZS5oICovOyB9OwogCQk1NzBEQUFDQTIzMDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5m
Y0RyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTcwREFBQzgyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIuaCAqLzsgfTsKLQkJNTcy
RUJCQkYyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzJFQkJCQjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKLQkJNTcyRUJCQzAyNTM2QTYwQTAw
MDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJCQzI1MzZBNjBB
MDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLzsg
fTsKLQkJNTcyRUJCQzEyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzJFQkJCRDI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKLQkJNTcyRUJCQzIyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJv
Y2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzJFQkJCRTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMu
aCAqLzsgfTsKLQkJNTcyRUJCQzQyNTM2QUI4NDAwMDU1MkIzIC8qIGNvbS5hcHBsZS5XZWJLaXQu
V2ViQXV0aG5Qcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzJFQkJDMzI1MzZBQjg0MDAwNTUyQjMgLyogY29tLmFwcGxlLldlYktpdC5X
ZWJBdXRoblByb2Nlc3Muc2IgKi87IH07Ci0JCTU3MkVCQkM5MjUzNkFGRDUwMDA1NTJCMyAvKiBX
ZWJBdXRoblByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTcyRUJCQzYyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1By
b3h5LmggKi87IH07Ci0JCTU3MkVCQkNDMjUzNkIwNEYwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTcyRUJCQ0IyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvLmggKi87IH07Ci0JCTU3MkVCQkQ1MjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzJFQkJEMjI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbi5oICovOyB9OwogCQk1NzJFQkJENzI1MzdFQkFFMDAwNTUyQjMgLyogRXh0cmFQcml2
YXRlU3ltYm9sc0ZvclRBUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEVDQTY4MEQzMUU2OTA0QjUwMDczMUQyMCAvKiBFeHRyYVByaXZhdGVTeW1ib2xz
Rm9yVEFQSS5oICovOyB9OwogCQk1NzJFQkJEQTI1MzhGNkI0MDAwNTUyQjMgLyogQXBwQXR0ZXN0
SW50ZXJuYWxTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MkVCQkQ4MjUzOEY2QTEwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNv
ZnRMaW5rLm1tICovOyB9OwogCQk1NzJFQkJEQjI1MzhGNkI2MDAwNTUyQjMgLyogQXBwQXR0ZXN0
SW50ZXJuYWxTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTcyRUJCRDkyNTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29m
dExpbmsuaCAqLzsgfTsKIAkJNTcyRUJCREQyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQ
SS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJC
REMyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5oICovOyB9OwogCQk1NzJGRDQ0MzIy
MjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJGRDQ0MTIyMjY1Q0Uy
MDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmggKi87IH07CiAJCTU3
NDIxNzkyMjQwMEUyODYwMDJCMzAzRCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzQyMTc5MTI0MDBFMDk4
MDAyQjMwM0QgLyogTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oICovOyB9OwotCQk1NzQyQTJFQjI1
MzU2MTNGMDBCN0JBMTQgLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNFOTEyMEYyMjkzQzI1RjAwNUJFQzc4
IC8qIEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCAqLzsgfTsKLQkJNTc0MkEyRUMyNTM1NjEzRjAw
QjdCQTE0IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkM4MjgzOTYxNkI0N0VDNDAwQTI3OEZFIC8qIFhQQ1NlcnZpY2VN
YWluLm1tICovOyB9OwotCQk1NzQyQTJFRTI1MzU2MTNGMDBCN0JBMTQgLyogRm91bmRhdGlvbi5m
cmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzNERTQ2ODE1QTkxNzYzMDA4RDI2RkMgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07
Ci0JCTU3NDJBMkVGMjUzNTYxM0YwMEI3QkExNCAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOERDMkVGNUIwNDg2QTY5
NDAwOThCMjE2IC8qIFdlYktpdC5mcmFtZXdvcmsgKi87IH07Ci0JCTU3NDJBMzA4MjUzNThBMDQw
MEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDJBMzA2MjUzNThBMDQwMEI3
QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKLQkJNTc0
MkEzMEQyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc0MkEzMEEy
NTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovOyB9
OwotCQk1NzQyQTMxODI1MzY0OEU1MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzQyQTMxNTI1MzY0OEU0
MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmggKi87IH07CiAJCTU3NDcyOEQxMjM0NTZFOTgw
MDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzQ3MjhDRjIzNDU2RTk4MDAxNzAwQUYgLyog
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTU3NDcyOEQ0MjM0NTcwQUUwMDE3MDBBRiAvKiBfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDcyOEQzMjM0NTcwQUUwMDE3MDBBRiAvKiBfV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaCAqLzsgfTsKIAkJNTc1OTdFQjkyMTgxMUQ5QTAwMzdG
OTI0IC8qIEN0YXBIaWREcml2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3NTk3RUI3MjE4MTFEOUEwMDM3RjkyNCAvKiBDdGFwSGlkRHJpdmVyLmgg
Ki87IH07CkBAIC0yNDk1LDI3ICsyNDc5LDYgQEAKIAkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0g
OERDMkVGNEYwNDg2QTY5NDAwOThCMjE2OwogCQkJcmVtb3RlSW5mbyA9IFdlYktpdDsKIAkJfTsK
LQkJNTc0MkEyRTcyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9
IHsKLQkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9
IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5
VHlwZSA9IDE7Ci0JCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IEUxQUMyRTI3MjBGN0I5NEMwMEIw
ODk3RDsKLQkJCXJlbW90ZUluZm8gPSAiVW5sb2NrIEtleWNoYWluIjsKLQkJfTsKLQkJNTc0MkEy
RTkyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKLQkJCWlz
YSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkw
RkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5VHlwZSA9IDE7
Ci0JCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNjsKLQkJ
CXJlbW90ZUluZm8gPSBXZWJLaXQ7Ci0JCX07Ci0JCTU3NDJBMkY5MjUzNTYxOUQwMEI3QkExNCAv
KiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVt
UHJveHk7Ci0JCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyog
UHJvamVjdCBvYmplY3QgKi87Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURT
dHJpbmcgPSA1NzQyQTJFNTI1MzU2MTNGMDBCN0JBMTQ7Ci0JCQlyZW1vdGVJbmZvID0gV2ViQXV0
aGVudGljYXRpb247Ci0JCX07CiAJCTVDMTU3OUQwMjcxNjVCMkYwMEVENTI4MCAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CiAJ
CQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBv
YmplY3QgKi87CkBAIC01MDA4LDM3ICs0OTcxLDE2IEBACiAJCTU3MERBQUM1MjMwMzdGN0UwMEU4
RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTcwREFBQzgyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ3RhcE5mY0RyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzBEQUFDOTIzMDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5mY0RyaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDdGFwTmZjRHJpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NTcyRUJCQjkyNTM2QTA2RTAwMDU1MkIzIC8qIEluZm8taU9TLnBsaXN0ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdDsgbmFtZSA9ICJJ
bmZvLWlPUy5wbGlzdCI7IHBhdGggPSAiV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2Ev
WFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1pT1MucGxpc3QiOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07Ci0JCTU3MkVCQkJBMjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLU9TWC5w
bGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQucGxpc3Q7IG5hbWUgPSAiSW5mby1PU1gucGxpc3QiOyBwYXRoID0gIldlYkF1dGhuUHJvY2Vz
cy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8tT1NYLnBs
aXN0Ijsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk1NzJFQkJCQjI1MzZBNjBBMDAw
NTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3MkVCQkJDMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzJFQkJCRDI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3MkVCQkJFMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJDMzI1MzZBQjg0MDAw
NTUyQjMgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2IgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2I7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkM1MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRo
blByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJBdXRoblByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3
MkVCQkM2MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJDQjI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTcyRUJCRDEyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVC
QkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCRDMyNTM2Qzg4NTAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDgyNTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdElu
dGVybmFsU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5h
bFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJEOTI1MzhG
NkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXBwQXR0ZXN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkZE
NDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDIxNzkxMjQwMEUwOTgwMDJCMzAzRCAvKiBMb2NhbEF1
dGhlbnRpY2F0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsQXV0aGVudGljYXRpb25TUEku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEyRjcyNTM1NjEzRjAwQjdCQTE0
IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBjICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAid3JhcHBlci54cGMtc2VydmljZSI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBjOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQk1NzQyQTMwNjI1MzU4QTA0MDBCN0JBMTQg
LyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMwNzI1MzU4QTA0MDBCN0JBMTQgLyogV2Vi
QXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzBBMjUzNThFRkQwMEI3QkExNCAvKiBX
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTU3NDJBMzBCMjUzNThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
QXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1NzQyQTMwQzI1MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTU3NDJBMzEzMjUzNjQ4RTQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxNDI1MzY0OEU0MDBCN0JB
MTQgLyogV2ViQXV0aG5Qcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkF1dGhuUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTU3NDJBMzE1MjUzNjQ4RTQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTU3NDJBMzFBMjUzNjc1RTkwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nl
c3NJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzFDMjUzNjc1RjYwMEI3QkExNCAvKiBX
ZWJBdXRoblByb2Nlc3NNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRoblByb2Nl
c3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzFEMjUzNjc1RjYw
MEI3QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYi5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBj
b20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYi5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNTc0MkEzMUUyNTM2OTQ5MzAwQjdCQTE0IC8qIFdlYkF1dGhuU2VydmljZUVu
dHJ5UG9pbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRoblNlcnZpY2VFbnRyeVBv
aW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQ3MjhDRjIzNDU2RTk4MDAx
NzAwQUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
NDcyOEQwMjM0NTZFOTgwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0NzI4RDMyMzQ1NzBBRTAwMTcwMEFGIC8qIF9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUxMDQsNyArNTA0Niw2IEBACiAJCTU3OUYxQkY4MjNDODBFQzYwMEM3RDRCNCAvKiBfV0tXZWJB
dXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
X1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZUludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OUYxQkZBMjNDODExQ0YwMEM3RDRCNCAvKiBBUElXZWJB
dXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVdlYkF1
dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc5RjFCRkIyM0M4MTFDRjAwQzdENEI0IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uQXNz
ZXJ0aW9uUmVzcG9uc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJV2ViQXV0aGVudGljYXRp
b25Bc3NlcnRpb25SZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3
QTlGRjA3MjUyQkU2RTAwMDZBMjA0MCAvKiBXZWJBdXRoblNlcnZpY2UueGNjb25maWcgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmln
OyBwYXRoID0gV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1N0E5RkYxNTI1MkM2QUVGMDA2QTIwNDAgLyogbGliV1RGLmEgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IHBhdGggPSBs
aWJXVEYuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTdBQzhGNEUy
MTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlkQ29u
bmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0FDOEY0RjIxN0ZFRUQ5
MDA1NTQzOEMgLyogSGlkQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhpZENv
bm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MTQ3LDcgKzUwODgs
NiBAQAogCQk1N0VCMkUzOTIxRTE5ODNFMDBCODlDREYgLyogVTJmQXV0aGVudGljYXRvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVMmZBdXRoZW50aWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTdFQkUyNjgyMzQ2NzZDNTAwOEQ4QUY5IC8qIEFQSVdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VCRTI2OTIzNDY3NkM1MDA4RDhBRjkg
LyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NTdFRkM3N0QyNTUwRUI4NTAwRjk0NzdEIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uc2Iu
aW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5zYi5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGQUJCMEUyNTgxN0NGMDAwNTlEQzk1
IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhl
bnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3RkFCQjEwMjU4MTgyN0MwMDU5REM5NSAvKiBBdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNv
ZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU29mdExp
bmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGQUJCMTEyNTgxODI3QzAwNTlE
Qzk1IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU29mdExpbmsubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBBdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNvZnRMaW5rLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzI3MiwxNSArNzIxMiw2IEBACiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Ci0JCTU3NDJBMkVEMjUz
NTYxM0YwMEI3QkExNCAvKiBGcmFtZXdvcmtzICovID0gewotCQkJaXNhID0gUEJYRnJhbWV3b3Jr
c0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMg
PSAoCi0JCQkJNTc0MkEyRUUyNTM1NjEzRjAwQjdCQTE0IC8qIEZvdW5kYXRpb24uZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8sCi0JCQkJNTc0MkEyRUYyNTM1NjEzRjAwQjdCQTE0IC8qIFdlYktp
dC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKIAkJNUMxNTc5RDQyNzE2NUIyRjAwRUQ1Mjgw
IC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsK
IAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC03MzYwLDcgKzcyOTEsNiBAQAog
CQkJCTUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCQkyRDlG
QjIyODIzNzUyMzgzMDA0OUY5MzYgLyogY29tLmFwcGxlLldlYktpdC5HUFUueHBjICovLAogCQkJ
CUJDODI4M0IxMTZCNEJGNzcwMEEyNzhGRSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcu
eHBjICovLAotCQkJCTU3NDJBMkY3MjUzNTYxM0YwMEI3QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0
LldlYkF1dGhuLnhwYyAqLywKIAkJCQk3QTdFOERGODI3NDgzOTI1MDBEQ0M5N0EgLyogY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LkNhcHRpdmVQb3J0YWwueHBjICovLAogCQkJCTM3MkVCQjQ2
MjAxN0U2NDMwMDA4NTA2NCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1l
bnQueHBjICovLAogCQkJCUJDM0RFNDY2MTVBOTE3NjMwMDhEMjZGQyAvKiBjb20uYXBwbGUuV2Vi
S2l0LldlYkNvbnRlbnQueHBjICovLApAQCAtNzU4MCw3ICs3NTEwLDYgQEAKIAkJCQlCQzAzMkQ1
QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLywKIAkJCQk1MTBDQzdEQTE2MTM4RTAx
MDBEMDNFRDMgLyogTmV0d29ya1Byb2Nlc3MgKi8sCiAJCQkJMkQ5RkIxRkYyMzc1MjA5RDAwNDlG
OTM2IC8qIEdQVVByb2Nlc3MgKi8sCi0JCQkJNTc0MkEyRkYyNTM1NzU4MDAwQjdCQTE0IC8qIFdl
YkF1dGhuUHJvY2VzcyAqLywKIAkJCQlDMENFNzI5RDEyNDdFNzFEMDBCQzBFQzQgLyogRGVyaXZl
ZCBTb3VyY2VzICovLAogCQkJCTA4OUMxNjY1RkU4NDExNThDMDJBQUMwNyAvKiBSZXNvdXJjZXMg
Ki8sCiAJCQkJQzBDRTczMzUxMjQ3RjcwRTAwQkMwRUM0IC8qIFNjcmlwdHMgKi8sCkBAIC03NzU4
LDcgKzc2ODcsNiBAQAogCQkJCUExQjg5QjkyMjIxRTAyMzMwMEVCNENFQSAvKiBTREtWYXJpYW50
LnhjY29uZmlnICovLAogCQkJCTUxODNCMzkzMTM3OUY4NUMwMEU4NzU0RSAvKiBTaGltLnhjY29u
ZmlnICovLAogCQkJCTFBNEY5NzZFMTAwRTdCNjYwMDYzN0ExOCAvKiBWZXJzaW9uLnhjY29uZmln
ICovLAotCQkJCTU3QTlGRjA3MjUyQkU2RTAwMDZBMjA0MCAvKiBXZWJBdXRoblNlcnZpY2UueGNj
b25maWcgKi8sCiAJCQkJN0E3RThERkEyNzQ4Mzk5MzAwRENDOTdBIC8qIFdlYkNvbnRlbnRTZXJ2
aWNlLkNhcHRpdmVQb3J0YWwueGNjb25maWcgKi8sCiAJCQkJMzcyRUJCNEEyMDE3RTc2MDAwMDg1
MDY0IC8qIFdlYkNvbnRlbnRTZXJ2aWNlLkRldmVsb3BtZW50LnhjY29uZmlnICovLAogCQkJCUJD
QUNDNDBFMTZCMEI4QTgwMEI2RTA5MiAvKiBXZWJDb250ZW50U2VydmljZS54Y2NvbmZpZyAqLywK
QEAgLTEwNTE5LDc1ICsxMDQ0Nyw2IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwogCQl9OwotCQk1NzQyQTJGRjI1MzU3NTgwMDBCN0JBMTQgLyogV2ViQXV0
aG5Qcm9jZXNzICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJ
CQk1NzQyQTMwMDI1MzU3NTgwMDBCN0JBMTQgLyogRW50cnlQb2ludCAqLywKLQkJCQk1NzQyQTMx
OTI1MzY3NUU5MDBCN0JBMTQgLyogaW9zICovLAotCQkJCTU3NDJBMzFCMjUzNjc1RjYwMEI3QkEx
NCAvKiBtYWMgKi8sCi0JCQkJNTc0MkEzMEMyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8sCi0JCQkJNTc0MkEzMEEyNTM1OEVGRDAwQjdCQTE0
IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovLAotCQkJCTU3NDJBMzBCMjUz
NThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gKi8sCi0JCQkJNTc0MkEzMTQyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5j
cHAgKi8sCi0JCQkJNTc0MkEzMTUyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5o
ICovLAotCQkJCTU3NDJBMzEzMjUzNjQ4RTQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MubWVz
c2FnZXMuaW4gKi8sCi0JCQkJNTc0MkEzMDcyNTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8sCi0JCQkJNTc0MkEzMDYyNTM1OEEwNDAwQjdC
QTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovLAotCQkJKTsKLQkJ
CXBhdGggPSBXZWJBdXRoblByb2Nlc3M7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9
OwotCQk1NzQyQTMwMDI1MzU3NTgwMDBCN0JBMTQgLyogRW50cnlQb2ludCAqLyA9IHsKLQkJCWlz
YSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTc0MkEzMDEyNTM1NzU4MDAwQjdC
QTE0IC8qIENvY29hICovLAotCQkJKTsKLQkJCXBhdGggPSBFbnRyeVBvaW50OwotCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEzMDEyNTM1NzU4MDAwQjdCQTE0IC8qIENv
Y29hICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk1NzQy
QTMwMjI1MzU3NTgwMDBCN0JBMTQgLyogWFBDU2VydmljZSAqLywKLQkJCSk7Ci0JCQlwYXRoID0g
Q29jb2E7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQk1NzQyQTMwMjI1MzU3
NTgwMDBCN0JBMTQgLyogWFBDU2VydmljZSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJNTc0MkEzMDMyNTM1NzU4MDAwQjdCQTE0IC8qIFdlYkF1dGhuU2Vy
dmljZSAqLywKLQkJCQk1NzQyQTMxRTI1MzY5NDkzMDBCN0JBMTQgLyogV2ViQXV0aG5TZXJ2aWNl
RW50cnlQb2ludC5tbSAqLywKLQkJCSk7Ci0JCQlwYXRoID0gWFBDU2VydmljZTsKLQkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTU3NDJBMzAzMjUzNTc1ODAwMEI3QkExNCAvKiBX
ZWJBdXRoblNlcnZpY2UgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0g
KAotCQkJCTU3MkVCQkI5MjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLWlPUy5wbGlzdCAqLywKLQkJ
CQk1NzJFQkJCQTI1MzZBMDZFMDAwNTUyQjMgLyogSW5mby1PU1gucGxpc3QgKi8sCi0JCQkpOwot
CQkJcGF0aCA9IFdlYkF1dGhuU2VydmljZTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0J
CX07Ci0JCTU3NDJBMzE5MjUzNjc1RTkwMEI3QkExNCAvKiBpb3MgKi8gPSB7Ci0JCQlpc2EgPSBQ
QlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTU3NDJBMzFBMjUzNjc1RTkwMEI3QkExNCAv
KiBXZWJBdXRoblByb2Nlc3NJT1MubW0gKi8sCi0JCQkpOwotCQkJcGF0aCA9IGlvczsKLQkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTU3NDJBMzFCMjUzNjc1RjYwMEI3QkExNCAv
KiBtYWMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTU3
NDJBMzFEMjUzNjc1RjYwMEI3QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vz
cy5zYi5pbiAqLywKLQkJCQk1NzQyQTMxQzI1MzY3NUY2MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9j
ZXNzTWFjLm1tICovLAotCQkJKTsKLQkJCXBhdGggPSBtYWM7Ci0JCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwotCQl9OwogCQk1NzUwNzVBNjIwQUI3NUFCMDA2OTNFQTkgLyogbWFjICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTEwNjM1LDEwICsxMDQ5NCw2
IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1NzYwODI4QzIwMjk4NTQyMDAxMTY2NzggLyogV2Vi
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCAqLywKIAkJCQk1NzYwODI4QjIwMjk4NTQyMDAx
MTY2NzggLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmggKi8sCi0JCQkJNTcyRUJCRDEy
NTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovLAotCQkJ
CTU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmgg
Ki8sCi0JCQkJNTcyRUJCRDMyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gKi8sCi0JCQkJNTcyRUJCQ0IyNTM2QjA0RjAwMDU1MkIzIC8qIFdl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkF1
dGhlbnRpY2F0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEwNjYyLDggKzEw
NTE3LDYgQEAKIAkJCQk1NzYwODI5NjIwMkJEOEJBMDAxMTY2NzggLyogV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHkuY3BwICovLAogCQkJCTU3NjA4Mjk1MjAyQkQ4QkEwMDExNjY3OCAv
KiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5oICovLAogCQkJCTU3NjA4Mjk5MjAy
QkRBRTIwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbiAqLywKLQkJCQk1NzJFQkJDNTI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNz
UHJveHkuY3BwICovLAotCQkJCTU3MkVCQkM2MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblBy
b2Nlc3NQcm94eS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJBdXRoZW50aWNhdGlvbjsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMTQzNiw3ICsxMTI4OSw2IEBACiAJCQkJNUMx
NTc4RTUyNzBFMERCQzAwRUQ1MjgwIC8qIGNvbS5hcHBsZS5XZWJLaXQuYWRhdHRyaWJ1dGlvbmQu
c2IuaW4gKi8sCiAJCQkJMkRCOTYwNTIyMzk4ODZCOTAwMTAyNzkxIC8qIGNvbS5hcHBsZS5XZWJL
aXQuR1BVLnNiLmluICovLAogCQkJCUE3OENDREQ4MTkzQUM5RTMwMDVFQ0MyNSAvKiBjb20uYXBw
bGUuV2ViS2l0Lk5ldHdvcmtpbmcuc2IuaW4gKi8sCi0JCQkJNTdFRkM3N0QyNTUwRUI4NTAwRjk0
NzdEIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IuaW4gKi8sCiAJCQkJRTMxMzY2NEQy
NjVFRTVBRjAwNTEwODRGIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYi5pbiAqLywK
IAkJCSk7CiAJCQlwYXRoID0gaW9zOwpAQCAtMTQ3MDAsMTQgKzE0NTUyLDYgQEAKIAkJCQk1N0RD
RURCMjIxNEM2MDRDMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQjMyMTRDNjA1MzAwMTZCODQ3IC8qIFdlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRUQ3MTIxNDJF
RTZDMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNTc0MkEzMEQyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhu
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTcyRUJCQzAyNTM2
QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk1NzQyQTMxODI1MzY0OEU1MDBCN0JBMTQgLyogV2ViQXV0aG5Q
cm9jZXNzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzJFQkJENTI1MzZDODg1MDAwNTUyQjMgLyog
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTcyRUJCQ0My
NTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk1NzQyQTMwODI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzJFQkJDMjI1MzZBNjBB
MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTU3MkVCQkM5MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRERBMEEyODYyN0U1NUU0RDAwNUUwODZFIC8qIFdlYkF1dG9jYXBpdGFs
aXplVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0MkQ2MzQxMjJBMEVGREYwMEQyRkIzQSAv
KiBXZWJBdXRvY29ycmVjdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5MEQzOUY1MjQz
QkU2NDgwMDE5OTM4OCAvKiBXZWJBdXRvbWF0aW9uRE9NV2luZG93T2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTU1OTMsMjggKzE1NDM3LDYgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1
MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CiAJCQlwcm9kdWN0VHlw
ZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwogCQl9OwotCQk1NzQyQTJFNTI1MzU2
MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4gKi8gPSB7Ci0JCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7
Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTc0MkEyRjMyNTM1NjEzRjAwQjdCQTE0IC8q
IEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJBdXRobiIg
Ki87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk1NzQyQTJFQTI1MzU2MTNGMDBCN0JBMTQgLyog
U291cmNlcyAqLywKLQkJCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyogRnJhbWV3b3JrcyAq
LywKLQkJCQk1NzQyQTJGMDI1MzU2MTNGMDBCN0JBMTQgLyogUmVzb3VyY2VzICovLAotCQkJCTU3
NDJBMkYxMjUzNTYxM0YwMEI3QkExNCAvKiBVbmxvY2sga2V5Y2hhaW4gKi8sCi0JCQkJNTc0MkEy
RjIyNTM1NjEzRjAwQjdCQTE0IC8qIFByb2Nlc3MgV2ViQXV0aGVudGljYXRpb24gZW50aXRsZW1l
bnRzICovLAotCQkJCTY1MTc1NzIzMjdDRkMyNEEwMEQ5RkU0MCAvKiBDb3B5IFhQQyBTZXJ2aWNl
IHRvIFNlY29uZGFyeSBQYXRoICovLAotCQkJKTsKLQkJCWJ1aWxkUnVsZXMgPSAoCi0JCQkpOwot
CQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTU3NDJBMkU2MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovLAotCQkJCTU3NDJBMkU4MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5hbWUgPSBXZWJBdXRobjsKLQkJCXByb2R1
Y3ROYW1lID0gTmV0d29ya2luZzsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1NzQyQTJGNzI1MzU2
MTNGMDBCN0JBMTQgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi54cGMgKi87Ci0JCQlwcm9k
dWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1zZXJ2aWNlIjsKLQkJfTsKIAkJ
NUMxNTc5Q0MyNzE2NUIyRjAwRUQ1MjgwIC8qIHdlYnB1c2hkICovID0gewogCQkJaXNhID0gUEJY
TmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDVDMTU3OUQ2MjcxNjVC
MkYwMEVENTI4MCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdl
dCAid2VicHVzaGQiICovOwpAQCAtMTU4NzQsNyArMTU2OTYsNiBAQAogCQkJCTM3MkVCQjM4MjAx
N0U2NDMwMDA4NTA2NCAvKiBXZWJDb250ZW50LkRldmVsb3BtZW50ICovLAogCQkJCUJDODI4M0Iw
MTZCNEJGNzcwMEEyNzhGRSAvKiBOZXR3b3JraW5nICovLAogCQkJCTJEOUZCMjE2MjM3NTIzODMw
MDQ5RjkzNiAvKiBHUFUgKi8sCi0JCQkJNTc0MkEyRTUyNTM1NjEzRjAwQjdCQTE0IC8qIFdlYkF1
dGhuICovLAogCQkJCUE3QUFEQTEwMTkzOTVDQTkwMDNFQTFDNyAvKiBTYW5kYm94IFByb2ZpbGVz
ICovLAogCQkJCUUxQUMyRTI3MjBGN0I5NEMwMEIwODk3RCAvKiBVbmxvY2sgS2V5Y2hhaW4gKi8s
CiAJCQkJNTMyNUJEQ0QyMURGRjQ3NzAwQTBERUUxIC8qIEFwcGx5IENvbmZpZ3VyYXRpb24gdG8g
WENGaWxlTGlzdHMgKi8sCkBAIC0xNTkwMiwxMyArMTU3MjMsNiBAQAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwotCQk1NzQyQTJGMDI1MzU2
MTNGMDBCN0JBMTQgLyogUmVzb3VyY2VzICovID0gewotCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVp
bGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgK
LQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsK
IAkJN0E3RThERUUyNzQ4MzkyNTAwRENDOTdBIC8qIFJlc291cmNlcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3
OwpAQCAtMTU5MjMsNyArMTU3MzcsNiBAQAogCQkJZmlsZXMgPSAoCiAJCQkJRTE3QUUyQzMxNkI5
QzYzQTAwMUM0MkYyIC8qIGNvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYiBpbiBSZXNvdXJj
ZXMgKi8sCiAJCQkJRTE3QUUyQzMxNkI5QzYzQTAwMUM0MkYxIC8qIGNvbS5hcHBsZS5XZWJLaXQu
TmV0d29ya1Byb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAotCQkJCTU3MkVCQkM0MjUzNkFCODQw
MDA1NTJCMyAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYiBpbiBSZXNvdXJj
ZXMgKi8sCiAJCQkJRUI3RDI1MkIyN0IzMUI3NzAwOUNCNTg2IC8qIGNvbS5hcHBsZS5XZWJLaXQu
d2VicHVzaGQuc2IgaW4gUmVzb3VyY2VzICovLAogCQkJCUUxMUQzNUFFMTZCNjNEMUIwMDZEMjNE
NyAvKiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNkJFOTY5
QzExRTU0RDQ1MjAwOEI3NDgzIC8qIGNvcmVQcmVkaWN0aW9uX21vZGVsIGluIFJlc291cmNlcyAq
LywKQEAgLTE2MTk2LDM2ICsxNjAwOSw2IEBACiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwogCQkJ
c2hlbGxTY3JpcHQgPSAiU2NyaXB0cy9jaGVjay14Y2ZpbGVsaXN0cy5zaFxuIjsKIAkJfTsKLQkJ
NTc0MkEyRjEyNTM1NjEzRjAwQjdCQTE0IC8qIFVubG9jayBrZXljaGFpbiAqLyA9IHsKLQkJCWlz
YSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0
ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQlpbnB1dFBhdGhzID0gKAotCQkJKTsKLQkJ
CW5hbWUgPSAiVW5sb2NrIGtleWNoYWluIjsKLQkJCW91dHB1dFBhdGhzID0gKAotCQkJKTsKLQkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQkJc2hlbGxQYXRoID0g
L2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gIlVOTE9DS19TQ1JJUFRfUEFUSD1cIiR7U1JDUk9P
VH0vLi4vLi4vLi4vSW50ZXJuYWwvVG9vbHMvU2NyaXB0cy91bmxvY2stc2FmYXJpLWVuZ2luZWVy
aW5nLWtleWNoYWluLWlmLW5lZWRlZFwiXG5cbltbIC14IFwiJHtVTkxPQ0tfU0NSSVBUX1BBVEh9
XCIgXV0gJiYgZXhlYyBcIiR7VU5MT0NLX1NDUklQVF9QQVRIfVwiXG5cbmV4aXQgMFxuIjsKLQkJ
fTsKLQkJNTc0MkEyRjIyNTM1NjEzRjAwQjdCQTE0IC8qIFByb2Nlc3MgV2ViQXV0aGVudGljYXRp
b24gZW50aXRsZW1lbnRzICovID0gewotCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNl
OwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJKTsK
LQkJCWlucHV0UGF0aHMgPSAoCi0JCQkJIiQoU1JDUk9PVCkvU2NyaXB0cy9wcm9jZXNzLWVudGl0
bGVtZW50cy5zaCIsCi0JCQkpOwotCQkJbmFtZSA9ICJQcm9jZXNzIFdlYkF1dGhlbnRpY2F0aW9u
IGVudGl0bGVtZW50cyI7Ci0JCQlvdXRwdXRQYXRocyA9ICgKLQkJCQkiJChXS19QUk9DRVNTRURf
WENFTlRfRklMRSkiLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwotCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gIlNjcmlw
dHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2hcbiI7Ci0JCX07CiAJCTVDMTU3OEU2MjcwRTEyOTQw
MEVENTI4MCAvKiBQcm9jZXNzIGFkYXR0cmlidXRpb25kIEVudGl0bGVtZW50cyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CkBAIC0xNjQzOCwyNCArMTYyMjEsNiBAQAogCQkJc2hlbGxQYXRoID0gL2Jpbi9z
aDsKIAkJCXNoZWxsU2NyaXB0ID0gImV4cG9ydCBYUENfQlVORExFU19UT19DT1BZX1RPX1NFQ09O
REFSWV9QQVRIPVwiY29tLmFwcGxlLldlYktpdC5HUFUueHBjXCJcbmV4cG9ydCBYUENfQlVORExF
X0lOU1RBTExfUEFUSF9JTl9TRUNPTkRBUllfUEFUSD1cIiR7U0VDT05EQVJZX1NUQUdFRF9GUkFN
RVdPUktfRElSRUNUT1JZfS9XZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXNc
IlxuXCIke1NSQ1JPT1R9L1NjcmlwdHMvY29weS14cGMtc2VydmljZXMtdG8tc2Vjb25kYXJ5LXBh
dGguc2hcIlxuIjsKIAkJfTsKLQkJNjUxNzU3MjMyN0NGQzI0QTAwRDlGRTQwIC8qIENvcHkgWFBD
IFNlcnZpY2UgdG8gU2Vjb25kYXJ5IFBhdGggKi8gPSB7Ci0JCQlpc2EgPSBQQlhTaGVsbFNjcmlw
dEJ1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSA4OwotCQkJZmlsZXMgPSAoCi0JCQkp
OwotCQkJaW5wdXRGaWxlTGlzdFBhdGhzID0gKAotCQkJKTsKLQkJCWlucHV0UGF0aHMgPSAoCi0J
CQkpOwotCQkJbmFtZSA9ICJDb3B5IFhQQyBTZXJ2aWNlIHRvIFNlY29uZGFyeSBQYXRoIjsKLQkJ
CW91dHB1dEZpbGVMaXN0UGF0aHMgPSAoCi0JCQkpOwotCQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkp
OwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDE7Ci0JCQlzaGVsbFBh
dGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiZXhwb3J0IFhQQ19CVU5ETEVTX1RPX0NP
UFlfVE9fU0VDT05EQVJZX1BBVEg9XCJjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuLnhwY1wiXG5l
eHBvcnQgWFBDX0JVTkRMRV9JTlNUQUxMX1BBVEhfSU5fU0VDT05EQVJZX1BBVEg9XCIke1NFQ09O
REFSWV9TVEFHRURfRlJBTUVXT1JLX0RJUkVDVE9SWX0vV2ViS2l0LmZyYW1ld29yay9WZXJzaW9u
cy9BL1hQQ1NlcnZpY2VzXCJcblwiJHtTUkNST09UfS9TY3JpcHRzL2NvcHkteHBjLXNlcnZpY2Vz
LXRvLXNlY29uZGFyeS1wYXRoLnNoXCJcbiI7Ci0JCX07CiAJCTY1NzdGRkI5Mjc2OUMxNDYwMDEx
QUVDOCAvKiBDcmVhdGUgU3ltbGluayB0byBBbHQgUm9vdCBQYXRoICovID0gewogCQkJaXNhID0g
UEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gODsKQEAgLTE2
ODY0LDE1ICsxNjYyOSw2IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07Ci0JCTU3NDJBMkVBMjUzNTYxM0YwMEI3QkExNCAvKiBTb3VyY2Vz
ICovID0gewotCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1h
c2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJNTc0MkEyRUIyNTM1NjEzRjAwQjdC
QTE0IC8qIEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTU3NDJB
MkVDMjUzNTYxM0YwMEI3QkExNCAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3VyY2VzICovLAot
CQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9Owog
CQk1QzE1NzlEMjI3MTY1QjJGMDBFRDUyODAgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAg
LTE3MjUxLDggKzE3MDA3LDYgQEAKIAkJCQkxQTYwMjI0QzE4QzE2QjlGMDBDM0U4QzkgLyogVmlz
aXRlZExpbmtTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThF
N0QzQzE4QzE1MTQ5MDA1QTcwMkEgLyogVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdEQ0VENzAyMTQyRUU2ODAwMTZCODQ3
IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTU3MkVCQkJGMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJNTcyRUJCQzEyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzVCMUJCQTIzQ0U5QzEzMDAyMDYzOUEgLyog
V2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NTcxQzkw
MDY4RjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTU3NUIxQkI4MjNDRTlCRkMwMDIwNjM5QSAvKiBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTc0MzEsMjEgKzE3MTg1LDYg
QEAKIAkJCXRhcmdldCA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQgKi87CiAJ
CQl0YXJnZXRQcm94eSA9IDUxOTc5N0M4Mjc2MjdCMjMwMEJFMEY4MyAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi87CiAJCX07Ci0JCTU3NDJBMkU2MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRh
cmdldCA9IEUxQUMyRTI3MjBGN0I5NEMwMEIwODk3RCAvKiBVbmxvY2sgS2V5Y2hhaW4gKi87Ci0J
CQl0YXJnZXRQcm94eSA9IDU3NDJBMkU3MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi87Ci0JCX07Ci0JCTU3NDJBMkU4MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovID0gewotCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRh
cmdldCA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQgKi87Ci0JCQl0YXJnZXRQ
cm94eSA9IDU3NDJBMkU5MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki87Ci0JCX07Ci0JCTU3NDJBMkZBMjUzNTYxOUQwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0gewotCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IDU3
NDJBMkU1MjUzNTYxM0YwMEI3QkExNCAvKiBXZWJBdXRobiAqLzsKLQkJCXRhcmdldFByb3h5ID0g
NTc0MkEyRjkyNTM1NjE5RDAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJ
fTsKIAkJNUMxNTc5Q0YyNzE2NUIyRjAwRUQ1MjgwIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8g
PSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gRTFBQzJFMjcy
MEY3Qjk0QzAwQjA4OTdEIC8qIFVubG9jayBLZXljaGFpbiAqLzsKQEAgLTE3NzI4LDI3ICsxNzQ2
Nyw2IEBACiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJCX07Ci0JCTU3NDJBMkY0MjUz
NTYxM0YwMEI3QkExNCAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOwotCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1N0E5RkYwNzI1MkJFNkUwMDA2
QTIwNDAgLyogV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmlnICovOwotCQkJYnVpbGRTZXR0aW5ncyA9
IHsKLQkJCX07Ci0JCQluYW1lID0gRGVidWc7Ci0JCX07Ci0JCTU3NDJBMkY1MjUzNTYxM0YwMEI3
QkExNCAvKiBSZWxlYXNlICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0J
CQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDU3QTlGRjA3MjUyQkU2RTAwMDZBMjA0MCAv
KiBXZWJBdXRoblNlcnZpY2UueGNjb25maWcgKi87Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJ
fTsKLQkJCW5hbWUgPSBSZWxlYXNlOwotCQl9OwotCQk1NzQyQTJGNjI1MzU2MTNGMDBCN0JBMTQg
LyogUHJvZHVjdGlvbiAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJ
YmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1N0E5RkYwNzI1MkJFNkUwMDA2QTIwNDAgLyog
V2ViQXV0aG5TZXJ2aWNlLnhjY29uZmlnICovOwotCQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCX07
Ci0JCQluYW1lID0gUHJvZHVjdGlvbjsKLQkJfTsKIAkJNUMxNTc5RDcyNzE2NUIyRjAwRUQ1Mjgw
IC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNl
Q29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDVDMTU3OUREMjcxNjVCRTUwMEVENTI4MCAvKiB3ZWJw
dXNoZC54Y2NvbmZpZyAqLzsKQEAgLTE4MTM1LDE2ICsxNzg1Myw2IEBACiAJCQlkZWZhdWx0Q29u
ZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQ
cm9kdWN0aW9uOwogCQl9OwotCQk1NzQyQTJGMzI1MzU2MTNGMDBCN0JBMTQgLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIldlYkF1dGhuIiAqLyA9IHsKLQkJ
CWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAot
CQkJCTU3NDJBMkY0MjUzNTYxM0YwMEI3QkExNCAvKiBEZWJ1ZyAqLywKLQkJCQk1NzQyQTJGNTI1
MzU2MTNGMDBCN0JBMTQgLyogUmVsZWFzZSAqLywKLQkJCQk1NzQyQTJGNjI1MzU2MTNGMDBCN0JB
MTQgLyogUHJvZHVjdGlvbiAqLywKLQkJCSk7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlz
aWJsZSA9IDA7Ci0JCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwotCQl9
OwogCQk1QzE1NzlENjI3MTY1QjJGMDBFRDUyODAgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0
IGZvciBQQlhOYXRpdmVUYXJnZXQgIndlYnB1c2hkIiAqLyA9IHsKIAkJCWlzYSA9IFhDQ29uZmln
dXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAppbmRleCBmNWJkODlmMWMzNTQ2OTQ5
N2IyOWI1NjllNGI4ZDI0YjNiZjBjMWNiLi42ZmNlODU1ODczYjhhMTc0ZDQ3YWJiMGY2OWZmNDc0
ZjdjM2JmMDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmNwcApAQCAtMzEsOCArMzEsNiBAQAogI2luY2x1ZGUgIkRlZmF1bHRXZWJCcm93c2VyQ2hl
Y2tzLmgiCiAjaW5jbHVkZSAiRnJhbWVJbmZvRGF0YS5oIgogI2luY2x1ZGUgIldlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgpAQCAtNzYsMjIgKzc0LDcgQEAgdm9pZCBXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3I6Om1ha2VDcmVkZW50aWFsKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2Vj
dXIKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSA9
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZShmcmFtZSwgd2ViRnJhbWUtPmZyYW1lSUQoKSk7Ci0jaWYg
SEFWRShVTklGSUVEX0FTQ19BVVRIX1VJKQotICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0g
ZmFsc2U7Ci0jZWxzZQotICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJs
ZWQoKTsKLSNlbmRpZgotICAgIGlmICghdXNlV2ViQXV0aG5Qcm9jZXNzKSB7Ci0gICAgICAgIG1f
d2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpNYWtlQ3JlZGVudGlhbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB3ZWJGcmFt
ZS0+aW5mbygpLCBoYXNoLCBvcHRpb25zLCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSksIFdURk1v
dmUoaGFuZGxlcikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFpc1dlYkJy
b3dzZXIoKSkgewotICAgICAgICBXRUJBVVRITl9SRUxFQVNFX0xPR19FUlJPUigibWFrZUNyZWRl
bnRpYWw6IFRoZSAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScgQVBJIGlzIG9ubHkgcGVy
bWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSAnY29tLmFwcGxlLmRldmVsb3Blci53ZWIt
YnJvd3NlcicgZW50aXRsZW1lbnQuIik7Ci0gICAgICAgIGhhbmRsZXIoeyB9LCBzdGF0aWNfY2Fz
dDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4oMCksIEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2Vk
RXJyb3IsICJUaGUgJ25hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUnIEFQSSBpcyBvbmx5IHBl
cm1pdHRlZCBpbiBhcHBsaWNhdGlvbnMgd2l0aCB0aGUgJ2NvbS5hcHBsZS5kZXZlbG9wZXIud2Vi
LWJyb3dzZXInIGVudGl0bGVtZW50LiJfcyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aG5Db25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpNYWtlQ3JlZGVudGlhbChoYXNoLCBvcHRpb25zLCBpc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOworICAgIG1fd2ViUGFnZS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjpNYWtlQ3JlZGVudGlhbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBo
YXNoLCBvcHRpb25zLCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikp
OwogfQogCiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Z2V0QXNzZXJ0aW9uKGNv
bnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0
aW9ucywgTWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0aW9uLCBjb25zdCBTY29wZUFuZENyb3Nz
T3JpZ2luUGFyZW50JiBzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50LCBSZXF1ZXN0Q29tcGxldGlv
bkhhbmRsZXImJiBoYW5kbGVyKQpAQCAtMTAxLDI2ICs4NCw3IEBAIHZvaWQgV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBT
ZWN1cml0CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gaXNQcm9jZXNzaW5nVXNlckdlc3R1
cmUgPSBwcm9jZXNzaW5nVXNlckdlc3R1cmUoZnJhbWUsIHdlYkZyYW1lLT5mcmFtZUlEKCkpOwot
I2lmIEhBVkUoVU5JRklFRF9BU0NfQVVUSF9VSSkKLSAgICBib29sIHVzZVdlYkF1dGhuUHJvY2Vz
cyA9IGZhbHNlOwotI2Vsc2UKLSAgICBib29sIHVzZVdlYkF1dGhuUHJvY2VzcyA9IFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
bmFibGVkKCk7Ci0jZW5kaWYKLSAgICBpZiAoIXVzZVdlYkF1dGhuUHJvY2VzcykgewotICAgICAg
ICBtX3dlYlBhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eTo6R2V0QXNzZXJ0aW9uKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZy
YW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMsIG1lZGlhdGlvbiwgc2NvcGVBbmRDcm9zc09yaWdp
blBhcmVudC5zZWNvbmQsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVy
KSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKHNjb3BlQW5kQ3Jvc3NPcmlnaW5Q
YXJlbnQuZmlyc3QgPT0gV2ViQXV0aG46OlNjb3BlOjpDcm9zc09yaWdpbikgewotICAgICAgICBo
YW5kbGVyKHsgfSwgKEF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTAsIEV4Y2VwdGlvbkRhdGEgeyBO
b3RBbGxvd2VkRXJyb3IsICJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBpcyBub3QgdGhlIHNh
bWUgYXMgaXRzIGFuY2VzdG9ycy4iX3MgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoIWlzV2ViQnJvd3NlcigpKSB7Ci0gICAgICAgIFdFQkFVVEhOX1JFTEVBU0VfTE9HX0VS
Uk9SKCJnZXRBc3NlcnRpb246IFRoZSAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCcgQVBJIGlz
IG9ubHkgcGVybWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSAnY29tLmFwcGxlLmRldmVs
b3Blci53ZWItYnJvd3NlcicgZW50aXRsZW1lbnQuIik7Ci0gICAgICAgIGhhbmRsZXIoeyB9LCBz
dGF0aWNfY2FzdDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4oMCksIEV4Y2VwdGlvbkRhdGEgeyBO
b3RBbGxvd2VkRXJyb3IsICJUaGUgJ25hdmlnYXRvci5jcmVkZW50aWFscy5nZXQnIEFQSSBpcyBv
bmx5IHBlcm1pdHRlZCBpbiBhcHBsaWNhdGlvbnMgd2l0aCB0aGUgJ2NvbS5hcHBsZS5kZXZlbG9w
ZXIud2ViLWJyb3dzZXInIGVudGl0bGVtZW50LiJfcyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHZXRBc3NlcnRpb24oaGFzaCwgb3B0aW9ucywgaXNQ
cm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBtX3dlYlBhZ2Uu
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eTo6R2V0QXNzZXJ0aW9uKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCks
IGhhc2gsIG9wdGlvbnMsIG1lZGlhdGlvbiwgc2NvcGVBbmRDcm9zc09yaWdpblBhcmVudC5zZWNv
bmQsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIHZv
aWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjppc0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZh
aWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQpAQCAtMTMwLDIyICs5NCw3
IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjppc0NvbmRpdGlvbmFsTWVkaWF0
aW9uQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvCiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVl
cnlDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0jaWYgSEFWRShVTklGSUVEX0FTQ19B
VVRIX1VJKQotICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gZmFsc2U7Ci0jZWxzZQotICAg
IGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKTsKLSNlbmRpZgotICAg
IGlmICghdXNlV2ViQXV0aG5Qcm9jZXNzKSB7Ci0gICAgICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpJc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSwgV1RGTW92ZShoYW5k
bGVyKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIWlzV2ViQnJvd3Nlcigp
KSB7Ci0gICAgICAgIFdFQkFVVEhOX1JFTEVBU0VfTE9HX0VSUk9SX05PX0ZSQU1FKCJpc1VzZXJW
ZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGU6IFdlYkF1dGhuIGlzIG9ubHkg
cGVybWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSAnY29tLmFwcGxlLmRldmVsb3Blci53
ZWItYnJvd3NlcicgZW50aXRsZW1lbnQuIik7Ci0gICAgICAgIGhhbmRsZXIoZmFsc2UpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OklzVXNlclZlcmlmeWlu
Z1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAg
ICBtX3dlYlBhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eTo6SXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZh
aWxhYmxlKCksIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiBib29sIFdlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29u
c3QgRnJhbWVJZGVudGlmaWVyJiBmcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDEzZjcz
YmI3Zjg5MzkyZjM3Nzc2ODM0MzA3OWEzYWE3NWQxM2M5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikK
LQotI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0j
aW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1XZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uOjpXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKLSAgICA6IG1fY29ubmVjdGlvbihJ
UEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZp
ZXIsICp0aGlzKSkKLXsKLSAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKLX0KLQotV2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbjo6fldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKQotewotICAgIG1f
Y29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpCi17Ci0gICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKLX0KLQotdm9p
ZCBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpNZXNzYWdlTmFtZSkKLXsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEy
OTViYTUzZDNhZWMzZjM4NTAzMzc1MWRiZGIwM2ZiYzRkOWE5YTMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgL2Rldi9udWxs
CkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJM
RShXRUJfQVVUSE4pCi0KLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpDbGll
bnQgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbj4g
Y3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikK
LSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIpKTsKLSAgICB9Ci0gICAgfldlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24oKTsKLQotICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0
dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQotCi1wcml2YXRlOgotICAgIFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKLQotICAgIC8vIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBv
dmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6Ok1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKLQotICAgIC8vIFRoZSBjb25uZWN0aW9u
IGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBXZWJBdXRobiBwcm9jZXNzLgotICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDY4M2Y1OGE4NmNkZTczY2UyMGM3ZWE1NDRiZjM1OTdiODI5NTU2YmUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi0jIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0j
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi1tZXNz
YWdlcyAtPiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uIHsKLX0KLQotI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
SW5mby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDdmODNlNzY0MDk2NGZhZTli
MzFjZjIzZjdkODk0MDE2N2VmNjQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAs
MCBAQAotLyoKLSogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSoKLSogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0qIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotKiBhcmUgbWV0OgotKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0qIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSoKLSogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwotCi0jcHJh
Z21hIG9uY2UKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1zdHJ1Y3QgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8gewotICAgIElQQzo6QXR0YWNo
bWVudCBjb25uZWN0aW9uOwotCi0gICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllcihjb25uZWN0aW9uLnBvcnQoKSk7Ci0gICAgfQotCi0gICAgSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyIHJlbGVhc2VJZGVudGlmaWVyKCkKLSAgICB7Ci0gICAgICAgIGF1dG8gcmV0
dXJuVmFsdWUgPSBpZGVudGlmaWVyKCk7Ci0gICAgICAgIGNvbm5lY3Rpb24gPSB7IH07Ci0gICAg
ICAgIHJldHVybiByZXR1cm5WYWx1ZTsKLSAgICB9Ci0KLSAgICB2b2lkIGVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Ci0gICAgewotICAgICAgICBlbmNvZGVyIDw8IGNvbm5lY3Rp
b247Ci0gICAgfQotCi0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvJiBpbmZv
KQotICAgIHsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNvbm5lY3Rpb24pKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggZWEyNzE4NDA2MDQ0NGZiMjc1MDMzZmU3NzIx
Nzk2ZjkzZDE0YWU1ZC4uZWM5MjRiZDg5MWIxYTljNDE4ZWI3YjU5YjZiNmE0ZDBhMmUzMzE0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTExOCw4ICsxMTgsNiBAQAogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQotI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oPgog
I2VuZGlmCiAKQEAgLTE0OTgsMTIgKzE0OTYsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0
VXNlcklzSW50ZXJhY3RpbmcoYm9vbCB1c2VySXNJbnRlcmFjdGluZykKICNpZiBFTkFCTEUoV0VC
X0FVVEhOKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bmZpZ3VyYXRpb24oY29uc3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiYgY29u
ZmlndXJhdGlvbikKIHsKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkud2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCkpIHsKLSAgICAgICAgbV9w
YWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9u
Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OldlYkF1dGhuQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6U2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihjb25maWd1cmF0
aW9uKSwgeyB9KTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRN
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pKTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTNmOGE1
NmNkMmJmOGEzODBjOTFmMjhlMjdlN2I2MzgwNmI3ZTMzOS4uZDc3ZTAzZGIxMjdhNWFhYWQ0MTA5
MTZhMmQ1MTY4YTRiMTI0YTczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtMTkyLDEyICsxOTIsNiBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9u
SW5mby5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotI2luY2x1ZGUgIldlYkF1
dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rvci5oPgogI2VuZGlmCkBAIC0xMzg0LDU3ICsx
Mzc4LDYgQEAgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2Vy
JiBXZWJQcm9jZXNzOjphdWRpb01lZGlhU3RyZWFtVHIKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLXN0YXRpYyBXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uSW5mbyBnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mbyBj
b25uZWN0aW9uSW5mbzsKLSAgICBpZiAoIWNvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpLCBNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShjb25u
ZWN0aW9uSW5mbyksIDApKSB7Ci0gICAgICAgIC8vIElmIHdlIGZhaWxlZCB0aGUgZmlyc3QgdGlt
ZSwgcmV0cnkgb25jZS4gVGhlIGF0dGFjaG1lbnQgbWF5IGhhdmUgYmVjb21lIGludmFsaWQKLSAg
ICAgICAgLy8gYmVmb3JlIGl0IHdhcyByZWNlaXZlZCBieSB0aGUgd2ViIHByb2Nlc3MgaWYgdGhl
IG5ldHdvcmsgcHJvY2VzcyBjcmFzaGVkLgotICAgICAgICBpZiAoIWNvbm5lY3Rpb24uc2VuZFN5
bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bigpLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uOjpSZXBseShjb25uZWN0aW9uSW5mbyksIDApKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihXZWJBdXRobiwgImdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246IFVuYWJsZSB0
byBjb25uZWN0IHRvIFdlYkF1dGhuIHByb2Nlc3MgKFRlcm1pbmF0aW5nKSIpOwotICAgICAgICAg
ICAgZmFpbGVkVG9TZW5kU3luY01lc3NhZ2UoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJl
dHVybiBjb25uZWN0aW9uSW5mbzsKLX0KLQotV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiYgV2Vi
UHJvY2Vzczo6ZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpCi17Ci0gICAgUkVMRUFT
RV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgLy8gSWYgd2UndmUgbG9zdCBvdXIg
Y29ubmVjdGlvbiB0byB0aGUgV2ViQXV0aG4gcHJvY2VzcyAoZS5nLiBpdCBjcmFzaGVkKSB0cnkg
dG8gcmUtZXN0YWJsaXNoIGl0LgotICAgIGlmICghbV93ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
KSB7Ci0gICAgICAgIGF1dG8gY29ubmVjdGlvbkluZm8gPSBnZXRXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKLQotICAgICAgICAvLyBSZXRyeSBv
bmNlIGlmIHRoZSBJUEMgdG8gZ2V0IHRoZSBjb25uZWN0aW9uSWRlbnRpZmllciBzdWNjZWVkZWQg
YnV0IHRoZSBjb25uZWN0aW9uSWRlbnRpZmllciB3ZSByZWNlaXZlZAotICAgICAgICAvLyBpcyBp
bnZhbGlkLiBUaGlzIG1heSBpbmRpY2F0ZSB0aGF0IHRoZSBXZWJBdXRobiBwcm9jZXNzIGhhcyBj
cmFzaGVkLgotICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQo
Y29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkKLSAgICAgICAgICAgIGNvbm5lY3Rpb25JbmZv
ID0gZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigqcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KSk7Ci0KLSAgICAgICAgaWYgKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc1ZhbGlkKGNv
bm5lY3Rpb25JbmZvLmlkZW50aWZpZXIoKSkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFdlYkF1dGhuLCAiZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjogQ29ubmVjdGlv
biBpZGVudGlmaWVyIGZvciBXZWJBdXRobiBwcm9jZXNzIGlzIGludmFsaWQuIik7Ci0gICAgICAg
ICAgICBDUkFTSCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV93ZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JbmZv
LnJlbGVhc2VJZGVudGlmaWVyKCkpOwotICAgIH0KLQotICAgIHJldHVybiAqbV93ZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uOwotfQotCi12b2lkIFdlYlByb2Nlc3M6OndlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb25DbG9zZWQoV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiogY29ubmVjdGlvbikKLXsK
LSAgICBBU1NFUlQobV93ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKTsKLSAgICBBU1NFUlRfVU5V
U0VEKGNvbm5lY3Rpb24sIG1fd2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiA9PSBjb25uZWN0aW9u
KTsKLQotICAgIG1fd2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7Ci19Ci0KLSNl
bmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQotCiB2b2lkIFdlYlByb2Nlc3M6OnNldEVuaGFuY2Vk
QWNjZXNzaWJpbGl0eShib29sIGZsYWcpCiB7CiAgICAgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShmbGFnKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDZjMTMzNmNmYThmOThmYWQwODk0ZjVhZWFlNWEy
YWRiYjI2MzE5ZDAuLjM2MTU1YTcyNzhhZmViMGQ5ZGVjMDFmYmE3Y2EwZmU5ODY3NjUyNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTMxLDcgKzEzMSw2IEBAIGNs
YXNzIFJlbW90ZVdlYkxvY2tSZWdpc3RyeTsKIGNsYXNzIFN0b3JhZ2VBcmVhTWFwOwogY2xhc3Mg
VXNlckRhdGE7CiBjbGFzcyBXYXlsYW5kQ29tcG9zaXRvckRpc3BsYXk7Ci1jbGFzcyBXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uOwogY2xhc3MgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTsKIGNs
YXNzIFdlYkJyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsKIGNsYXNzIFdlYkNhY2hlU3RvcmFnZVBy
b3ZpZGVyOwpAQCAtMjY0LDEyICsyNjMsNiBAQCBwdWJsaWM6CiAgICAgUmVtb3RlTWVkaWFFbmdp
bmVDb25maWd1cmF0aW9uRmFjdG9yeSYgbWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeSgp
OwogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4p
Ci0gICAgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiYgZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbigpOwotICAgIHZvaWQgd2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uKik7Ci0gICAgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbiog
ZXhpc3RpbmdXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCkgeyByZXR1cm4gbV93ZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uLmdldCgpOyB9Ci0jZW5kaWYKLQogICAgIExpYldlYlJUQ05ldHdvcmsm
IGxpYldlYlJUQ05ldHdvcmsoKTsKIAogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVs
KTsKQEAgLTY2MCwxMSArNjUzLDYgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyPiBtX2F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVySW50ZXJuYWxVbml0TWFuYWdlcjsKICNlbmRpZgogI2VuZGlm
Ci0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIFJlZlB0cjxXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uPiBtX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb247Ci0jZW5kaWYKLQogICAgIFJlZjxX
ZWJDYWNoZVN0b3JhZ2VQcm92aWRlcj4gbV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsKICAgICBSZWY8
V2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5PiBtX2Jyb2FkY2FzdENoYW5uZWxSZWdpc3RyeTsK
ICAgICBSZWY8UmVtb3RlV2ViTG9ja1JlZ2lzdHJ5PiBtX3dlYkxvY2tSZWdpc3RyeTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNjk4NjRhNDA3
Mzg1ZTlkMDJmMTlhOWI3ZWYxMjU3ZTk1OGI3YjM5Li44NjlkYmU2MmQyZWNjYThmODE1YTdiMTUx
NzA3ZWVjZjdjZmQzNmM0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDQtMTEgIEogUGFzY29lICA8al9wYXNj
b2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkx
NTcxMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OldlYkNvcmU6OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSk6IERlbGV0ZWQuCisKIDIwMjItMDQtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW01haWwgQ29tcG9zZV0gUHJlc2VydmUgYXR0YWNobWVudCBp
ZGVudGlmaWVycyB3aGVuIGNsb25pbmcgYXR0YWNobWVudC1iYWNrZWQgaW1hZ2VzCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggZWVlM2UwMjgxNWRlMmQxYjk4YTVlMjU3
MTA0NDQ3NWU1MjhlYTNmYi4uNjY2Mzc5ZmFhMjYwMjg0MzZhNmRiMjNlZTA5OGNiOTYzOTEyY2M5
NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtMzAxLDIyICszMDEs
NiBAQCBzdGF0aWMgY29uc3RleHByIGF1dG8gc3ViRnJhbWUgPQogIjwvc2NyaXB0PiIKICI8L2h0
bWw+Il9zOwogCi1zdGF0aWMgX1dLRXhwZXJpbWVudGFsRmVhdHVyZSAqd2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCkKLXsKLSAgICBzdGF0aWMgUmV0YWluUHRyPF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmU+IHRoZUZlYXR1cmU7Ci0gICAgaWYgKHRoZUZlYXR1cmUpCi0g
ICAgICAgIHJldHVybiB0aGVGZWF0dXJlLmdldCgpOwotCi0gICAgTlNBcnJheSAqZmVhdHVyZXMg
PSBbV0tQcmVmZXJlbmNlcyBfZXhwZXJpbWVudGFsRmVhdHVyZXNdOwotICAgIGZvciAoX1dLRXhw
ZXJpbWVudGFsRmVhdHVyZSAqZmVhdHVyZSBpbiBmZWF0dXJlcykgewotICAgICAgICBpZiAoW2Zl
YXR1cmUua2V5IGlzRXF1YWw6QCJXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQiXSkgewot
ICAgICAgICAgICAgdGhlRmVhdHVyZSA9IGZlYXR1cmU7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gdGhlRmVhdHVyZS5nZXQoKTsKLX0KLQogc3RhdGlj
IHZvaWQgcmVzZXQoKQogewogICAgIHdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSYW4gPSBmYWxzZTsK
QEAgLTQ1Miw3ICs0MzYsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlk
U3VjY2VzczEpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9u
LWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNDc0LDcgKzQ1Nyw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRTdWNjZXNzMikKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTUwMSw3ICs0ODMsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsUmFjeTEp
CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTI1LDcgKzUwNiw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGFuZWxSYWN5MikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbmZjIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01NDksNyArNTI5LDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbFR3aWNlKQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3Qg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
QEAgLTU3Miw3ICs1NTEsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFJlbG9hZEhp
ZENhbmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24t
aGlkLWNhbmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlv
blBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTkyLDcgKzU3MCw2IEBAIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgTG9jYXRpb25DaGFuZ2VIaWRDYW5jZWwpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiBvdGhlclVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTYxMiw3ICs1ODksNiBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5ld0xvYWRIaWRDYW5jZWwpCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiBvdGhlclVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTYzMSw3ICs2MDcsNiBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIENsb3NlSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC02NzEsNyArNjQ2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBT
dWJGcmFtZUNoYW5nZUxvY2F0aW9uSGlkQ2FuY2VsKQogICAgIH0pOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTcxOCw3ICs2OTIsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFN1YkZyYW1lRGVz
dHJ1Y3Rpb25IaWRDYW5jZWwpCiAgICAgfSk7CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRo
ZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzM3LDcgKzcxMCw2
IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDYW5jZWwpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTc1Nyw3ICs3MjksNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIFBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CkBAIC03NzUsNyArNzQ2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBQYW5lbFUyZkN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLXUyZi1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtNzkzLDcgKzc2Myw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgRmFrZVBhbmVsSGlkU3VjY2VzcykKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04MTIsNyArNzgxLDYg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBGYWtlUGFuZWxIaWRDdGFwTm9DcmVkZW50
aWFsc0ZvdW5kKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQtbm8tY3JlZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9
IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJ
bkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NG
b3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5h
YmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhw
ZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0
aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTgzMSw3ICs3OTks
NiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE51bGxQYW5lbEhpZFN1Y2Nlc3MpCiAg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtODUwLDcgKzgxNyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgTnVsbFBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICAgICBSZXRhaW5QdHI8
TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
d2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxzIiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC04NzAsNyArODM2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBQYW5lbE11bHRpcGxlTkZDVGFnc1ByZXNlbnQpCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYy1tdWx0aXBsZS10YWdzIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC04ODksNyArODU0LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBQYW5lbEhpZENhbmNlbFJlbG9hZE5vQ3Jhc2gpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTkwOSw3ICs4NzMsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkU3Vj
Y2Vzc0NhbmNlbE5vQ3Jhc2gpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtOTI3LDcgKzg5MCw2IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5k
Q2FuY2VsTm9DcmFzaCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24taGlkLW5vLWNyZWRlbnRpYWxzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC05NDUsNyAr
OTA3LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRSZXRyaWVzRXJyb3Ip
CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBp
bi1nZXQtcmV0cmllcy1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKICAgICBbd2ViVmlldyBmb2N1c107CkBAIC05NTksNyArOTIwLDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRLZXlBZ3JlZW1lbnRFcnJvcikKICAg
ICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdl
dC1rZXktYWdyZWVtZW50LWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24g
PSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlND
Rm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGZvY3VzXTsKQEAgLTk3Myw3ICs5MzMsNiBA
QCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck5vRGVsZWdh
dGUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
LXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBbd2ViVmlldyBmb2N1c107CkBAIC05ODcsNyArOTQ2LDYgQEAgVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3JOdWxsRGVsZWdhdGUpCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtMTAwNSw3ICs5NjMsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFBpblJlcXVlc3RQaW5FcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tZmFrZS1waW4taW52YWxpZC1l
cnJvci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlv
blBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTAyNSw3ICs5ODIsNiBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBpblRva2VuUGluQmxvY2tlZEVycm9yKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4t
Z2V0LXBpbi10b2tlbi1waW4tYmxvY2tlZC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
MTA0NSw3ICsxMDAxLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5U
b2tlblBpbkF1dGhCbG9ja2VkRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBpbi1hdXRoLWJsb2NrZWQt
ZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEwNjUsNyArMTAyMCw2IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5QaW5JbnZhbGlkRXJyb3JBbmRSZXRy
eSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQt
cGluLWdldC1waW4tdG9rZW4tcGluLWludmFsaWQtZXJyb3ItcmV0cnkiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTEwODQsNyArMTAzOCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwg
UGluR2V0UGluVG9rZW5QaW5BdXRoSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2Vu
LXBpbi1hdXRoLWludmFsaWQtZXJyb3ItcmV0cnkiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEx
MDMsNyArMTA1Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRp
YWxJbnRlcm5hbFVWKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1pbnRlcm5hbC11diIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTEyMCw3ICsx
MDcyLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbFBpbikK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTM4LDcgKzEwODksNiBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsUGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWF1dGgt
YmxvY2tlZC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTE1OCw3ICsxMTA4LDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtlQ3JlZGVudGlhbFBpbkludmFsaWRFcnJv
ckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4taW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
MTE3Nyw3ICsxMTI2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRp
b25QaW4pCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhp
ZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTExOTUsNyArMTE0Myw2IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uSW50ZXJuYWxVVikKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWludGVybmFsLXV2IiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC0xMjEyLDcgKzExNTksNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIEdldEFzc2VydGlvbkludGVybmFsVVZQaW5GYWxsYmFjaykKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWludGVybmFsLXV2LXBpbi1m
YWxsYmFjayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
V2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVT
XTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTIzMCw3ICsxMTc2LDYgQEAgVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW5BdXRoQmxvY2tlZEVycm9yKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLWF1
dGgtYmxvY2tlZC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50
aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTI1MCw3ICsxMTk1LDYg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25QaW5JbnZhbGlkRXJy
b3JBbmRSZXRyeSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24taGlkLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0x
MjcwLDcgKzEyMTQsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE5mY1BpbkNhY2hl
ZERpc2Nvbm5lY3QpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLW5mYy1waW4tZGlzY29ubmVjdCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTI4OSw3ICsx
MjMyLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNdWx0aXBsZUFjY291bnRzTnVs
bERlbGVnYXRlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQtbXVsdGlwbGUtYWNjb3VudHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rv
cnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlv
biA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBs
dWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVK
U0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0
RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2Vi
QXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEzMDcsNyAr
MTI0OSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTXVsdGlwbGVBY2NvdW50cykK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW11bHRp
cGxlLWFjY291bnRzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMzI5LDcgKzEyNzAsNiBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1Jl
Y3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTEzNDYsNyArMTI4Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFE
dXBsaWNhdGVDcmVkZW50aWFsKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFr
ZS1jcmVkZW50aWFsLWxhLWR1cGxpY2F0ZS1jcmVkZW50aWFsIiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CkBAIC0xMzY1LDcgKzEzMDQsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBRHVw
bGljYXRlQ3JlZGVudGlhbFdpdGhDb25zZW50KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tbWFrZS1jcmVkZW50aWFsLWxhLWR1cGxpY2F0ZS1jcmVkZW50aWFsIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC0xMzkwLDcgKzEzMjgsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIExBTm9DcmVkZW50aWFsKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0
LWFzc2VydGlvbi1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RX
ZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NO
YW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rp
bmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5P
IGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50
YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNh
dGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTQwNyw3ICsxMzQ0LDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1ha2VDcmVkZW50aWFsTnVsbERlbGVnYXRl
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNz
UGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFs
RmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVn
YXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNDI1LDcgKzEzNjEsNiBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRpYWxEaXNhbGxvd0xvY2FsQXV0aGVudGljYXRvcikK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYSIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTQ0Miw3ICsxMzc3LDYgQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBMQU1ha2VDcmVkZW50aWFsQWxsb3dMb2NhbEF1dGhlbnRpY2F0b3IpCiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKQEAgLTE0NjMsNyArMTM5Nyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgTEFNYWtlQ3JlZGVudGlhbE5vTW9ja05vVXNlckdlc3R1cmUpCiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtbm8tbW9jayIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtMTQ4Miw3ICsxNDE1LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBMQUdldEFzc2VydGlvbikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24tbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE1MDIsNyArMTQzNCw2IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3NlcnRpb25NdWx0aXBsZUNyZWRl
bnRpYWxTdG9yZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24tbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE1MzAsNyArMTQ2MSw2IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3NlcnRpb25Ob01vY2tOb1VzZXJHZXN0dXJlKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYS1uby1tb2Nr
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNTQ3LDcgKzE0NzcsNiBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0aW9uTXVsdGlwbGVPcmRlcikKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1Jl
Y3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTIzNDEsNiArMjI3MCw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgVXBk
YXRlQ3JlZGVudGlhbFVzZXJuYW1lKQogVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBFeHBv
cnRJbXBvcnRDcmVkZW50aWFsKQogewogICAgIHJlc2V0KCk7CisgICAgY2xlYW5VcEtleWNoYWlu
KCJleGFtcGxlLmNvbSJfcyk7CiAKICAgICBhZGRLZXlUb0tleWNoYWluKHRlc3RFUzI1NlByaXZh
dGVLZXlCYXNlNjQsICJleGFtcGxlLmNvbSJfcywgdGVzdFVzZXJFbnRpdHlCdW5kbGVCYXNlNjQp
OwogCkBAIC0yNDEyLDU4ICsyMzQyLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBE
ZWxldGVPbmVDcmVkZW50aWFsKQogfQogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
IHx8IFBMQVRGT1JNKElPUykKIAotI2lmIFBMQVRGT1JNKElPUykKLVRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgUmVjb3ZlckFmdGVyQXV0aE5Qcm9jZXNzQ3Jhc2gpCi17Ci0gICAgVGVzdFdl
YktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoewotICAgICAgICB7ICIvIl9zLCB7ICJGT08iX3Mg
fSB9Ci0gICAgfSk7Ci0KLSAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOllFUyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKLQotICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
Ci0gICAgRVhQRUNUX0VRKFtXS1Byb2Nlc3NQb29sIF93ZWJBdXRoblByb2Nlc3NJZGVudGlmaWVy
XSwgMCk7Ci0KLSAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFJlcXVlc3Q6W05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpbTlNTdHJpbmcgc3RyaW5n
V2l0aEZvcm1hdDpAImh0dHA6Ly9sb2NhbGhvc3Q6JWQvIiwgc2VydmVyLnBvcnQoKV1dXV07Ci0g
ICAgW3dlYlZpZXcgZm9jdXNdOwotCi0gICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9u
KHsgfSkiXTsKLSAgICBhdXRvIGZpcnN0V2ViUElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKLSAgICBhdXRvIGZpcnN0V2ViQXV0aG5QSUQgPSBbV0tQcm9jZXNzUG9vbCBfd2Vi
QXV0aG5Qcm9jZXNzSWRlbnRpZmllcl07Ci0gICAgRVhQRUNUX05FKGZpcnN0V2ViUElELCAwKTsK
LSAgICBFWFBFQ1RfTkUoZmlyc3RXZWJBdXRoblBJRCwgMCk7Ci0KLSAgICBraWxsKGZpcnN0V2Vi
QXV0aG5QSUQsIFNJR0tJTEwpOwotICAgIHdoaWxlIChbV0tQcm9jZXNzUG9vbCBfd2ViQXV0aG5Q
cm9jZXNzSWRlbnRpZmllcl0pCi0gICAgICAgIFV0aWw6OnNwaW5SdW5Mb29wKCk7Ci0KLSAgICBb
d2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiaW50ZXJuYWxzLnNldE1vY2tX
ZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oeyBoaWQ6IHsgc3RhZ2U6ICdyZXF1ZXN0Jywg
c3ViU3RhZ2U6ICdtc2cnLCBlcnJvcjogJ3N1Y2Nlc3MnLCBpc1UyZjogdHJ1ZSwgcGF5bG9hZEJh
c2U2NDogWydBUUFBQURzd1JBSWdlOTRLVXF3ZlRJc240QU9qY00xbXBNY1JqZEl0VkVlRFgwVzVu
R2hDUC9jQ0lEeFJlMGVIZjRWNExlRUFocWVEMGVmZlRqWTU1M0gxOXEraldxMVRjNFdPa0FBPSdd
IH0gfSk7Il07Ci0KLSAgICB3aGlsZSAoIVtXS1Byb2Nlc3NQb29sIF93ZWJBdXRoblByb2Nlc3NJ
ZGVudGlmaWVyXSkKLSAgICAgICAgVXRpbDo6c3BpblJ1bkxvb3AoKTsKLQotICAgIGF1dG8gc2Vj
b25kV2ViQXV0aG5QSUQgPSBbV0tQcm9jZXNzUG9vbCBfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmll
cl07Ci0gICAgRVhQRUNUX05FKHNlY29uZFdlYkF1dGhuUElELCBmaXJzdFdlYkF1dGhuUElEKTsK
LSAgICBFWFBFQ1RfRVEoW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSwgZmlyc3RXZWJQ
SUQpOwotCi0gICAgX19ibG9jayBib29sIGdvdE1lc3NhZ2UgPSBmYWxzZTsKLSAgICBbd2ViVmll
dyBwZXJmb3JtQWZ0ZXJSZWNlaXZpbmdBbnlNZXNzYWdlOl4oTlNTdHJpbmcgKm1lc3NhZ2UpIHsK
LSAgICAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHVibGljLWtleSIsIG1lc3NhZ2UpOwotICAgICAg
ICBnb3RNZXNzYWdlID0gdHJ1ZTsKLSAgICB9XTsKLQotICAgIF9fYmxvY2sgYm9vbCBleGVjdXRl
ZFNjcmlwdCA9IGZhbHNlOwotICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIm5hdmln
YXRvci5jcmVkZW50aWFscy5nZXQoeyBwdWJsaWNLZXk6IHsgY2hhbGxlbmdlOiBuZXcgVWludDhB
cnJheShbNDksIDUwLCA1MSwgNTIsIDUzLCA1NF0pLCBhbGxvd0NyZWRlbnRpYWxzOiBbeyB0eXBl
OiAncHVibGljLWtleScsIGlkOiBuZXcgVWludDhBcnJheShBcnJheS5wcm90b3R5cGUubWFwLmNh
bGwoYXRvYignUHIySnYzZnNVSmRWN3B3bU5lK3FySHNybkZ6dkZ6YkRjWDJraFRUSXhyWlUxLytV
WDFDMXpFNTRCVnZkT1d0azk0Mml4ZmxpQU16VUZjMEkva0lBT0EnKSwgZnVuY3Rpb24gKGMpIHsg
cmV0dXJuIGMuY2hhckNvZGVBdCgwKSB9KSkgfV0sIHRpbWVvdXQ6IDEwMCB9IH0pLnRoZW4oY3Jl
ZGVudGlhbCA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3Nh
Z2UoY3JlZGVudGlhbC50eXBlKTsgfSwgZSA9PiB7IHdlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVz
dEhhbmRsZXIucG9zdE1lc3NhZ2UoJycgKyBlKTsgfSkgJiYgdHJ1ZSIgY29tcGxldGlvbkhhbmRs
ZXI6XihpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Ci0gICAgICAgIEFTU0VSVF9GQUxTRShl
cnJvcik7Ci0gICAgICAgIGV4ZWN1dGVkU2NyaXB0ID0gdHJ1ZTsKLSAgICB9XTsKLSAgICBVdGls
OjpydW4oJmV4ZWN1dGVkU2NyaXB0KTsKLQotICAgIFV0aWw6OnJ1bigmZ290TWVzc2FnZSk7Ci19
Ci0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQotCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQo=
</data>
<flag name="commit-queue"
          id="485862"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457291</attachid>
            <date>2022-04-11 15:22:17 -0700</date>
            <delta_ts>2022-04-14 11:02:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239073-20220411152216.patch</filename>
            <type>text/plain</type>
            <size>235285</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZlZDM5ZDgyMzVhMWQzMzZkYmZhNDdj
YjhhMmFmMmIyNDAyMzQ1YWEuLjk1ZDViM2UzNjM2NTg3ZmI4YTc5NzE3MzVhYjQ1N2UwY2ZmODcw
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDQtMTEgIEogUGFzY29lICA8al9wYXNjb2VA
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRp
b25Nb2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkxNTcx
MDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIw
MjItMDQtMTEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBSZWR1Y2UgdXNlIG9mIHVubmVjZXNzYXJ5IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tIG51
bWJlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkNjA0N2U3MzY3MmJiNmEwZDU1N2JlN2IwNWI0MmJlMWM0MGQw
ZmM4Li5mZjRjOGM5ZmY3YjkwN2M3NWIzOTI2NGZmZDFlMTQzYWUzMGZmODJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDQtMTEgIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUu
Y29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRpb25Nb2Rl
cm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkxNTcxMDMwCisK
KyAgICAgICAgVGhlIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuIGZsYWcgYW5kIFdlYkF1dGhuUHJv
Y2VzcyBhcmUgbm8gbG9uZ2VyIHVzZWQKKyAgICAgICAgYW5kIGNhbiBiZSByZW1vdmVkLiBUaGlz
IHBhdGNoIHJlbW92ZXMgYWxsIHJlZmVyZW5jZXMgdG8gYm90aCB0aGUgZmxhZworICAgICAgICBh
bmQgdGhlIHByb2Nlc3MuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5h
YmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVz
Ojp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwcm9jZXNzVHlwZURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaDoKKwogMjAyMi0wNC0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1
a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFJlZHVjZSB1c2Ugb2YgdW5uZWNlc3Nhcnkg
Y3J5cHRvZ3JhcGhpY2FsbHlSYW5kb20gbnVtYmVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwOTc2ODU5ZjI5MzBh
MjZjMGQ1MTFmNWJkZjc5ZjYxM2E3YTA0YjkzLi5jYmFkMWU5MDE2NDE1OWFiNDFkNDgxYmM3YjBi
NzMwMzhkZjM1NzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNiBAQAorMjAyMi0wNC0xMSAgSiBQ
YXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDbGVhbiB1
cCBXZWJBdXRoZW50aWNhdGlvbk1vZGVybiBhbmQgV2ViQXV0aG5Qcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNzMKKyAgICAgICAgcmRh
cjovL3Byb2JsZW0vOTE1NzEwMzAKKworICAgICAgICBUaGUgV2ViQXV0aGVudGljYXRpb25Nb2Rl
cm4gZmxhZyBhbmQgV2ViQXV0aG5Qcm9jZXNzIGFyZSBubyBsb25nZXIgdXNlZAorICAgICAgICBh
bmQgY2FuIGJlIHJlbW92ZWQuIFRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwgcmVmZXJlbmNlcyB0byBi
b3RoIHRoZSBmbGFnCisgICAgICAgIGFuZCB0aGUgcHJvY2Vzcy4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
IGFuZCBtYW51YWwgdGVzdGluZyBvbiBtYWNPUyAvIGlPUy4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2NvbmZpZzogUmVtb3ZlZC4KKyAgICAgICAgKiBDb25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBSZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2Vi
S2l0LldlYkF1dGhuLnNiLmluOiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvcHJvY2Vzcy1l
bnRpdGxlbWVudHMuc2g6CisgICAgICAgICogU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2Vy
Q2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0Ojppc0luV2ViS2l0Q2hpbGRQcm9jZXNzKToKKyAg
ICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1Nl
cnZpY2VFbnRyeVBvaW50Lmg6CisgICAgICAgICogU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMv
Q29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbToKKyAgICAgICAgKFdlYktpdDo6WFBD
U2VydmljZUV2ZW50SGFuZGxlcik6CisgICAgICAgICogU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9j
ZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0Ojpwcm9jZXNzU3RvcmFnZUNsYXNzKToKKyAgICAg
ICAgKFdlYktpdDo6c2FuZGJveERpcmVjdG9yeSk6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRXZWJB
dXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKCtbV0tQcm9jZXNzUG9vbCBfd2Vi
QXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW06CisgICAgICAgICgrW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgaW1wb3J0TG9jYWxBdXRoZW50aWNhdG9yV2l0aEFjY2Vzc0dyb3Vw
OmNyZWRlbnRpYWw6ZXJyb3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1eGlsaWFyeVByb2Nlc3NQcm94eTo6Z2V0
TGF1bmNoT3B0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpub3RpZnlQcmVmZXJl
bmNlc0NoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVy
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OnNlcnZpY2VOYW1lKToKKyAgICAgICAgKFdlYktp
dDo6c2hvdWxkTGVha0Jvb3N0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvci5oOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdG9yOjpyZXF1
ZXN0RGF0YSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0b3I6OnNldFdlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkF1
dGhlbnRpY2F0b3I6OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICgpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNhdG9yQWRkZWQpOgorICAgICAgICAoV2ViS2l0OjpB
dXRoZW50aWNhdG9yTWFuYWdlcjo6ZW5hYmxlTW9kZXJuV2ViQXV0aGVudGljYXRpb24pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9M
b2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRv
cjo6bWFrZUNyZWRlbnRpYWwpOgorICAgICAgICAoV2ViS2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6
OmdldEFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6Y29u
dGludWVHZXRBc3NlcnRpb25BZnRlclJlc3BvbnNlU2VsZWN0ZWQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1By
b3h5Lmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2Zp
ZG8vQ3RhcEF1dGhlbnRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGlj
YXRvcjo6Y29udGludWVHZXROZXh0QXNzZXJ0aW9uQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToKKyAg
ICAgICAgKFdlYktpdDo6Q3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlUmVxdWVzdFBpbkFmdGVy
R2V0S2V5QWdyZWVtZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbik6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViQXV0aG5Q
cm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1P
U1gucGxpc3Q6IFJlbW92ZWQuCisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQv
Q29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1pT1MucGxpc3Q6IFJlbW92ZWQu
CisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9X
ZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhu
UHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vz
cy9XZWJBdXRoblByb2Nlc3MuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vz
cy9XZWJBdXRoblByb2Nlc3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3Mv
V2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhu
UHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvaW9zL1dlYkF1dGhuUHJv
Y2Vzc0lPUy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvbWFjL1dlYkF1
dGhuUHJvY2Vzc01hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvbWFj
L2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjptYWtlQ3JlZGVudGlh
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Z2V0QXNz
ZXJ0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpp
c1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbkluZm8uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2V0V2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OmVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6ZXhpc3RpbmdXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKTogRGVs
ZXRlZC4KKwogMjAyMi0wNC0xMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjg5Nzg1KTogW2lPU10gVW5hYmxlIHRvIGRvdWJs
ZS1jbGljayB0byBzZWxlY3QgYSB3b3JkIGluIGEgcmVjZWl2ZWQgZW1haWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRh
bC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhw
ZXJpbWVudGFsLnlhbWwKaW5kZXggNmI1ZjMzZmM1YzllMWRjMGRlZGVjZjBmMjA3MGUwNDgzYzE5
N2YyMS4uNDJjZDUzZWQxYzdmYzAwN2I5ZTY4MWNhMTIwODFlMTJhMTljMzdiOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTE2MDMsMjIgKzE2MDMsNiBAQCBXZWJBdXRoZW50aWNh
dGlvbkVuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IHRydWUKIAotIyBGSVhN
RTogSXMgdGhpcyBpbXBsZW1lbnRlZCBmb3IgV2ViS2l0TGVnYWN5PyBJZiBub3QsIHRoaXMgc2hv
dWxkIGJlIGV4Y2x1ZGVkIGZyb20gV2ViS2l0TGVnYWN5IGVudGlyZWx5LgotV2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FbmFibGVkOgotICB0eXBlOiBib29sCi0gIGh1bWFuUmVhZGFibGVOYW1lOiAi
V2ViIEF1dGhlbnRpY2F0aW9uIE1vZGVybiIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAi
RW5hYmxlIE1vZGVybiBXZWIgQXV0aGVudGljYXRpb24gc3VwcG9ydCIKLSAgY29uZGl0aW9uOiBF
TkFCTEUoV0VCX0FVVEhOKQotICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJl
cwotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0TGVnYWN5OgotICAgICAgZGVmYXVsdDogZmFs
c2UKLSAgICBXZWJLaXQ6Ci0gICAgICAiUExBVEZPUk0oSU9TKSIgOiB0cnVlCi0gICAgICBkZWZh
dWx0OiBmYWxzZQotICAgIFdlYkNvcmU6Ci0gICAgICBkZWZhdWx0OiBmYWxzZQotCiBXZWJHTDJF
bmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViR0wgMi4wIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCA2OGI3
YTIzZDgzYTNjNGVmZmM0MWU4MTFiZDdjMzUxOGI0YjIyZDRiLi5mYWU5NDc2MTExNDVjZTVmNzlm
M2E3Yzg0NmY4MGE5NTEyZTdkMjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaApAQCAtMjM0LDExICsyMzQsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBv
cHVzRGVjb2RlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX29wdXNEZWNvZGVyRW5hYmxlZDsg
fQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIHZvaWQgc2V0V2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FbmFibGVkKGJvb2wgYXJlRW5hYmxlZCkgeyBtX2FyZVdlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRW5hYmxlZCA9IGFyZUVuYWJsZWQ7IH0KLSAgICBib29sIHdlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJlV2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FbmFibGVkOyB9Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYm
IChIQVZFKEFWU0FNUExFQlVGRkVSVklERU9PVVRQVVQpIHx8IFVTRShHU1RSRUFNRVIpKQogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQo
Ym9vbCk7CiAgICAgYm9vbCBtZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQ7IH0KQEAgLTM4OCwx
MCArMzgzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fb3B1c0RlY29kZXJFbmFibGVkIHsgZmFs
c2UgfTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBib29sIG1fYXJlV2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkIHsgZmFsc2UgfTsKLSNlbmRpZgotCiAjaWYgRU5B
QkxFKE1FRElBX1NPVVJDRSkgJiYgKEhBVkUoQVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkgfHwg
VVNFKEdTVFJFQU1FUikpCiAgICAgYm9vbCBtX21lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFi
bGVkIHsgZmFsc2UgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKaW5kZXggNGMyYjUzZThkMzgxMzJiNzYwZWIw
YWY3ODAxODRhZjQ1MjEyMTJlNy4uYTNmYTc3MjhlN2Q2NGNmZjQ1ZmI3NjEzNjk2NGFjMDMwOGQ3
ODU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0
aW9uQ2hlY2tzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuY3BwCkBAIC0xMDgsMTAgKzEwOCw2IEBAIGNvbnN0IGNoYXIqIHByb2Nlc3NU
eXBlRGVzY3JpcHRpb24oc3RkOjpvcHRpb25hbDxBdXhpbGlhcnlQcm9jZXNzVHlwZT4gdHlwZSkK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgY2FzZSBBdXhpbGlhcnlQcm9jZXNzVHlwZTo6
R1BVOgogICAgICAgICByZXR1cm4gIkdQVSI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhO
KQotICAgIGNhc2UgQXV4aWxpYXJ5UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgotICAgICAgICByZXR1
cm4gIldlYkF1dGhuIjsKICNlbmRpZgogICAgIH0KICAgICByZXR1cm4gIlVua25vd24iOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApp
bmRleCBjNzY0Njg2ODU1NWJlMTVmMjQ3MDIxZjMwMjVlMTdhODFhNmU2NmQwLi4zZDQzNGRkNTg4
NDJlMzJjZTQwMzJjNDZkYWFmMzczNTU2YmM2ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaApAQCAtNDAsOSArNDAsNiBAQCBl
bnVtIGNsYXNzIEF1eGlsaWFyeVByb2Nlc3NUeXBlIDogdWludDhfdCB7CiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQogICAgIEdQVSwKICNlbmRpZgotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAg
V2ViQXV0aG4sCi0jZW5kaWYKIH07CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV4aWxpYXJ5
UHJvY2Vzc1R5cGUoQXV4aWxpYXJ5UHJvY2Vzc1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9XZWJBdXRoblNlcnZpY2UueGNjb25maWcgYi9Tb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2NvbmZpZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzVmNWQxZDM1ZDA0ODA4Y2Q3Mjg0YzU5NTQ2NGE0ZTMxOTQyOGY0
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2NvbmZpZworKysgL2Rldi9u
dWxsCkBAIC0xLDM2ICswLDAgQEAKLS8vIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLS8vIGFy
ZSBtZXQ6Ci0vLyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotLy8gMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLS8vICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0vLwotLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0vLyBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotLy8gSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0vLyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotLy8gQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0vLyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0vLyBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LS8vIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLS8vIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0jaW5jbHVkZSAiQmFzZVhQQ1NlcnZpY2UueGNjb25maWciCi0KLVBST0RVQ1RfTkFNRSA9IGNv
bS5hcHBsZS5XZWJLaXQuV2ViQXV0aG47Ci1QUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSID0gJChQ
Uk9EVUNUX05BTUUpOwotSU5GT1BMSVNUX0ZJTEVbc2RrPWVtYmVkZGVkKl0gPSBXZWJBdXRoblBy
b2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLWlP
Uy5wbGlzdDsKLUlORk9QTElTVF9GSUxFW3Nkaz1tYWNvc3gqXSA9IFdlYkF1dGhuUHJvY2Vzcy9F
bnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8tT1NYLnBsaXN0
OwotCi1PVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQpICQoT1RIRVJfTERGTEFHU19WRVJTSU9O
RURfRlJBTUVXT1JLX1BBVEgpICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLU19MREZMQUdTKSAk
KFNPVVJDRV9WRVJTSU9OX0xERkxBR1MpOwotCi1FTlRJVExFTUVOVFNfUkVRVUlSRUQgPSAkKEVO
VElUTEVNRU5UU19SRVFVSVJFRF9VU0VfSU5URVJOQUxfU0RLXyQoVVNFX0lOVEVSTkFMX1NESykp
Ci1FTlRJVExFTUVOVFNfUkVRVUlSRURfVVNFX0lOVEVSTkFMX1NES18gPSBOTzsKLUVOVElUTEVN
RU5UU19SRVFVSVJFRF9VU0VfSU5URVJOQUxfU0RLX05PID0gTk87Ci1FTlRJVExFTUVOVFNfUkVR
VUlSRURfVVNFX0lOVEVSTkFMX1NES19ZRVMgPSAkKEVOVElUTEVNRU5UU19SRVFVSVJFRCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBi
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IGVkN2E5
MTAxM2E4YmFjZDVkNjU5OTYwYjNhZjEyMzEzNGJiNTVmM2EuLjkzMDVjOTc2YzY2NWQxYWVlODE0
ZTQ4YTkyNjc0MWZkMTQ4ZWQzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJh
dGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMv
V2ViS2l0LnhjY29uZmlnCkBAIC0yMDUsNyArMjA1LDcgQEAgV0tfTUlHUkFURURfSEVBREVSX09V
VFBVVF9ESVJfID0gJChIRUFERVJfT1VUUFVUX0RJUik7CiAvLyBPbiBub24tTWFjIHBsYXRmb3Jt
cywgYWxsIG1pZ3JhdGVkIGhlYWRlcnMgZ28gdG8gUHJpdmF0ZUhlYWRlcnMuCiBXS19NSUdSQVRF
RF9IRUFERVJfT1VUUFVUX0RJUl9jb2NvYXRvdWNoID0gJChIRUFERVJfT1VUUFVUX0RJUjpkaXIp
UHJpdmF0ZUhlYWRlcnM7CiAKLUVYQ0xVREVEX01BQ09TX1BMVUdJTl9GSUxFX05BTUVTW3Nkaz1p
cGhvbmUqXSA9IFNlY0l0ZW1TaGltLmR5bGliIFdlYlByb2Nlc3NTaGltLmR5bGliICoucGRmIFJl
c291cmNlcy9tYWMvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGNvbS5hcHBs
ZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5z
YiBjb20uYXBwbGUuV2ViS2l0LndlYnB1c2hkLnNiIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiOwor
RVhDTFVERURfTUFDT1NfUExVR0lOX0ZJTEVfTkFNRVNbc2RrPWlwaG9uZSpdID0gU2VjSXRlbVNo
aW0uZHlsaWIgV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi5wZGYgUmVzb3VyY2VzL21hYy8qIGNvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2IgY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNz
LnNiIGNvbS5hcHBsZS5XZWJLaXQud2VicHVzaGQuc2IgY29tLmFwcGxlLldlYlByb2Nlc3Muc2I7
CiAKIElOU1RBTExIRFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKIEFQUExZX1JVTEVTX0lOX0NPUFlf
SEVBREVSUyA9ICQoV0tfVVNFX05FV19CVUlMRF9TWVNURU0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGViNTk4NWM4ZDhhNzYxZTg3MGM4OTVhZGQ3ZjkxNzUwNWJjNTY0YjIuLjc2
ZjA3MjZiNTNmNmQ2MDJhMDU0OGY1MDIyYTRhMjBkMzk1OGY1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTQ2LDggKzQ2LDYgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXQyKS9T
aGFyZWQvQXV0aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvU2hhcmVkL21hYyBcCiAgICAg
JChXZWJLaXQyKS9TaGFyZWQvTm90aWZpY2F0aW9ucyBcCi0gICAgJChXZWJLaXQyKS9XZWJBdXRo
blByb2Nlc3MgXAotICAgICQoV2ViS2l0MikvV2ViQXV0aG5Qcm9jZXNzL21hYyBcCiAgICAgJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL0FwcGxlUGF5IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3Mv
QXBwbGljYXRpb25DYWNoZSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0F1dG9tYXRpb24g
XApAQCAtMjUwLDcgKzI0OCw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVdlYlByb2Nlc3Mv
V2ViUGFnZS9WaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlciBcCiAJV2ViUHJvY2Vzcy9XZWJQYWdl
L0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eSBcCiAJV2ViUHJvY2Vzcy9XZWJQYWdl
L1ZpZXdVcGRhdGVEaXNwYXRjaGVyIFwKLQlXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24gXAogCVdlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3Rl
bVByb3h5IFwKIAlHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgXAogCUdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlRGlzcGxheUxpc3RSZWNvcmRlciBcCkBAIC0zMDQsOCArMzAx
LDYgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVNvdXJjZVByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVJlbW90ZUNvbW1hbmRMaXN0
ZW5lclByb3h5IFwKIAlHUFVQcm9jZXNzL21lZGlhL1JlbW90ZVNvdXJjZUJ1ZmZlclByb3h5IFwK
LQlXZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzIFwKLQlXZWJB
dXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzIFwKICMKIAogR0VORVJBVEVfTUVTU0FHRV9SRUNF
SVZFUl9TQ1JJUFQgPSAkKFdlYktpdDIpL1NjcmlwdHMvZ2VuZXJhdGUtbWVzc2FnZS1yZWNlaXZl
ci5weQpAQCAtMzU2LDE0ICszNTEsMTIgQEAgU0FOREJPWF9QUk9GSUxFUyA9IFwKIAljb20uYXBw
bGUuV2ViUHJvY2Vzcy5zYiBcCiAJY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBc
CiAJY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiIFwKLQljb20uYXBwbGUuV2ViS2l0Lldl
YkF1dGhuUHJvY2Vzcy5zYiBcCiAJY29tLmFwcGxlLldlYktpdC53ZWJwdXNoZC5zYgogCQogU0FO
REJPWF9QUk9GSUxFU19JT1MgPSBcCiAJY29tLmFwcGxlLldlYktpdC5hZGF0dHJpYnV0aW9uZC5z
YiBcCiAJY29tLmFwcGxlLldlYktpdC5HUFUuc2IgXAogCWNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy5zYiBcCi0JY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5zYiBcCiAJY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiCiAKIHNhbmRib3gtcHJvZmlsZXMtaW9zIDogJChTQU5EQk9YX1BS
T0ZJTEVTX0lPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vRXh0cmFQcml2
YXRlU3ltYm9sc0ZvclRBUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vRXh0cmFQcml2YXRl
U3ltYm9sc0ZvclRBUEkuaAppbmRleCA0NjIzMDMyZDM2MzYxMzQyYzNhNzBiYjI4OWNiMDMwZGZi
MmNjZGZjLi5hZTNmYjNlNGM3ZGI4YmI2ZDdlZmRmMjc0NjcxMDBiN2I1ODNlZmY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5o
CkBAIC0zMyw3ICszMyw2IEBAIGV4dGVybiAiQyIgewogdm9pZCBOZXR3b3JrU2VydmljZUluaXRp
YWxpemVyKCk7CiB2b2lkIFdlYkNvbnRlbnRTZXJ2aWNlSW5pdGlhbGl6ZXIoKTsKIHZvaWQgR1BV
U2VydmljZUluaXRpYWxpemVyKCk7Ci12b2lkIFdlYkF1dGhuU2VydmljZUluaXRpYWxpemVyKCk7
CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9SZXNv
dXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuLnNiLmlu
IGIvU291cmNlL1dlYktpdC9SZXNvdXJjZXMvU2FuZGJveFByb2ZpbGVzL2lvcy9jb20uYXBwbGUu
V2ViS2l0LldlYkF1dGhuLnNiLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzNh
YjExZTJlNTFlM2M0M2Y3NTViYjU3ZDAzMDU5NjUwNTkzNDQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRi
b3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5zYi5pbgorKysgL2Rldi9u
dWxsCkBAIC0xLDQ1NyArMCwwIEBACi07IENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLTsKLTsgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci07IG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotOyBh
cmUgbWV0OgotOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotOyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi07IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci07IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LTsgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLTsKLTsgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotOyBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLTsgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotOyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLTsgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotOyBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotOyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLTsgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLTsgQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLTsgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotOyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LSh2ZXJzaW9uIDEpCi0oZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikp
Ci0oZGVueSBudnJhbSopCi0oZGVueSBzeXN0ZW0tcHJpdmlsZWdlKQotCi07OyBTaWxlbmNlIHNw
dXJpb3VzIGxvZ2dpbmcgZHVlIHRvIHJkYXI6Ly8yMDExNzkyMyBhbmQgcmRhcjovLzcyMzY2NDc1
Ci0oZGVueSBzeXN0ZW0tcHJpdmlsZWdlIChwcml2aWxlZ2UtaWQgUFJJVl9HTE9CQUxfUFJPQ19J
TkZPKSAod2l0aCBuby1yZXBvcnQpKQotCi07OzsKLTs7OyBUaGUgZm9sbG93aW5nIHJ1bGVzIHdl
cmUgb3JpZ2luYWxseSBjb250YWluZWQgaW4gJ2NvbW1vbi5zYicuIFdlIGFyZSBkdXBsaWNhdGlu
ZyB0aGVtIGhlcmUgc28gd2UgY2FuCi07OzsgcmVtb3ZlIHVubmVlZGVkIHNhbmRib3ggZXh0ZW5z
aW9ucy4KLTs7OwotCi0oaW1wb3J0ICJ1dGlsLnNiIikKLQotKGRlZmluZS1vbmNlIChtYW5hZ2Vk
LWNvbmZpZ3VyYXRpb24tcmVhZC1wdWJsaWMpCi0gICAgKGFsbG93IGZpbGUtcmVhZCoKLSAgICAg
ICAgICAgKHdlbGwta25vd24tc3lzdGVtLWdyb3VwLWNvbnRhaW5lci1zdWJwYXRoICIvc3lzdGVt
Z3JvdXAuY29tLmFwcGxlLmNvbmZpZ3VyYXRpb25wcm9maWxlcy9MaWJyYXJ5L0NvbmZpZ3VyYXRp
b25Qcm9maWxlcy9QdWJsaWNJbmZvIikKLSAgICAgICAgICAgKGZyb250LXVzZXItaG9tZS1zdWJw
YXRoICIvTGlicmFyeS9Db25maWd1cmF0aW9uUHJvZmlsZXMvUHVibGljSW5mbyIpCi0gICAgICAg
ICAgIChmcm9udC11c2VyLWhvbWUtc3VicGF0aCAiL0xpYnJhcnkvVXNlckNvbmZpZ3VyYXRpb25Q
cm9maWxlcy9QdWJsaWNJbmZvIikpKQotCi0oZGVmaW5lLW9uY2UgKGFsbG93LXByZWZlcmVuY2Vz
LWNvbW1vbikKLSAgICAoYWxsb3cgZmlsZS1yZWFkLW1ldGFkYXRhCi0gICAgICAgIChob21lLWxp
dGVyYWwgIiIpCi0gICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzIikp
KQotCi0oZGVmaW5lLW9uY2UgKG1vYmlsZS1wcmVmZXJlbmNlcy1yZWFkIC4gZG9tYWlucykKLSAg
ICAoYWxsb3ctcHJlZmVyZW5jZXMtY29tbW9uKQotICAgIChmb3ItZWFjaCAobGFtYmRhIChkb21h
aW4pCi0gICAgICAgIChiZWdpbgotICAgICAgICAgICAgKGFsbG93IHVzZXItcHJlZmVyZW5jZS1y
ZWFkIChwcmVmZXJlbmNlLWRvbWFpbiBkb21haW4pKQotICAgICAgICAgICAgKGFsbG93IGZpbGUt
cmVhZCoKLSAgICAgICAgICAgICAgICAoaG9tZS1saXRlcmFsIChzdHJpbmctYXBwZW5kICIvTGli
cmFyeS9QcmVmZXJlbmNlcy8iIGRvbWFpbiAiLnBsaXN0IikpKSkpCi0gICAgICAgIGRvbWFpbnMp
KQotCi0oZGVmaW5lLW9uY2UgKGludGVybmFsLWRlYnVnZ2luZy1zdXBwb3J0KQotICAgIChhbGxv
dyBmaWxlLXJlYWQqIGZpbGUtbWFwLWV4ZWN1dGFibGUKLSAgICAgICAgKHN1YnBhdGggIi9EZXZl
bG9wZXIiKSkKLQotICAgIChhbGxvdyBpcGMtcG9zaXgtc2htCi0gICAgICAgIChpcGMtcG9zaXgt
bmFtZS1wcmVmaXggInN0YWNrLWxvZ3MiKQotICAgICAgICAoaXBjLXBvc2l4LW5hbWUtcHJlZml4
ICJPQS0iKQotICAgICAgICAoaXBjLXBvc2l4LW5hbWUtcHJlZml4ICIvRlNNLSIpKQotCi0gICAg
KGFsbG93IGlwYy1wb3NpeC1zaG0tcmVhZCogaXBjLXBvc2l4LXNobS13cml0ZS1kYXRhIGlwYy1w
b3NpeC1zaG0td3JpdGUtdW5saW5rCi0gICAgICAgIChpcGMtcG9zaXgtbmFtZS1yZWdleCAjIl5n
ZHQtW0EtWmEtejAtOV0rLShjfHMpJCIpKQotCi0gICAgKHdpdGgtZmlsdGVyIChzeXN0ZW0tYXR0
cmlidXRlIGFwcGxlLWludGVybmFsKQotICAgICAgICA7OyA8cmRhcjovL3Byb2JsZW0vODU2NTAz
NT4KLSAgICAgICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzIzODU3NDUyPgotICAgICAgICA7OyA8cmRh
cjovL3Byb2JsZW0vNzIzMTcxMTI+Ci0gICAgICAgIChhbGxvdyBmaWxlLXJlYWQqIGZpbGUtbWFw
LWV4ZWN1dGFibGUKLSAgICAgICAgICAgIChzdWJwYXRoCi0gICAgICAgICAgICAgICAgIi9BcHBs
ZUludGVybmFsIgotICAgICAgICAgICAgICAgICIvdXNyL2xvY2FsL2xpYiIKLSAgICAgICAgICAg
ICAgICAiL3Vzci9hcHBsZWludGVybmFsL2xpYiIKLSAgICAgICAgICAgICkKLSAgICAgICAgKQot
ICAgICkKLSAgICAod2l0aC1lbGV2YXRlZC1wcmVjZWRlbmNlCi0gICAgICAgIChhbGxvdyBmaWxl
LXJlYWQqIGZpbGUtbWFwLWV4ZWN1dGFibGUgZmlsZS1pc3N1ZS1leHRlbnNpb24KLSAgICAgICAg
ICAgKGZyb250LXVzZXItaG9tZS1zdWJwYXRoICIvWGNvZGVCdWlsdFByb2R1Y3RzIikKLSAgICAg
ICAgKQotICAgICkKLQotICAgIDs7IDxyZGFyOi8vcHJvYmxlbS84MTA3NzU4PgotICAgIChhbGxv
dyBmaWxlLXJlYWQqIGZpbGUtbWFwLWV4ZWN1dGFibGUKLSAgICAgICAgKHN1YnBhdGgKLSAgICAg
ICAgICAgICIvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyIKLSAgICAgICAgICAgICIvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MiCi0gICAgICAgICkKLSAgICApCi0KLSAgICA7OyA8
cmRhcjovL3Byb2JsZW0vMzI1NDQ5MjE+Ci0gICAgKG1vYmlsZS1wcmVmZXJlbmNlcy1yZWFkICJj
b20uYXBwbGUuaGFuZ3RyYWNlciIpCi0pCi0KLShkZWZpbmUtb25jZSAoZGV2aWNlLWFjY2VzcykK
LSAgICAoZGVueSBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqCi0gICAgICAgICh2bm9kZS10eXBlIEJM
T0NLLURFVklDRSBDSEFSQUNURVItREVWSUNFKSkKLQotICAgIChhbGxvdyBmaWxlLXJlYWQqIGZp
bGUtd3JpdGUtZGF0YQotICAgICAgICAobGl0ZXJhbAotICAgICAgICAgICAgIi9kZXYvbnVsbCIK
LSAgICAgICAgICAgICIvZGV2L3plcm8iCi0gICAgICAgICkKLSAgICApCi0KLSAgICAoYWxsb3cg
ZmlsZS1yZWFkKgotICAgICAgICAobGl0ZXJhbAotICAgICAgICAgICAgIi9kZXYvcmFuZG9tIgot
ICAgICAgICAgICAgIi9kZXYvdXJhbmRvbSIKLSAgICAgICAgKQotICAgICkKLQotICAgIChpZiAo
c3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAgICAgKGFsbG93IGZpbGUtcmVh
ZCogZmlsZS13cml0ZS1kYXRhIGZpbGUtaW9jdGwKLSAgICAgICAgICAgIChsaXRlcmFsICIvZGV2
L2R0cmFjZWhlbHBlciIpKQotICAgIDsgZWxzZQotICAgICAgICAoZGVueSAod2l0aCBuby1sb2cp
IGZpbGUtcmVhZCogZmlsZS13cml0ZS1kYXRhIGZpbGUtaW9jdGwKLSAgICAgICAgICAgIChsaXRl
cmFsICIvZGV2L2R0cmFjZWhlbHBlciIpKQotICAgICkKLQotICAgIDs7IDxyZGFyOi8vcHJvYmxl
bS8xNDIxNTcxOD4KLSAgICAoZGVueSBmaWxlLXdyaXRlLWRhdGEgKHdpdGggbm8tcmVwb3J0KQot
ICAgICAgICAobGl0ZXJhbAotICAgICAgICAgICAgIi9kZXYvcmFuZG9tIgotICAgICAgICAgICAg
Ii9kZXYvdXJhbmRvbSIKLSAgICAgICAgKQotICAgICkKLQotICAgIChhbGxvdyBmaWxlLXJlYWQq
IGZpbGUtd3JpdGUtZGF0YSBmaWxlLWlvY3RsCi0gICAgICAgIChsaXRlcmFsICIvZGV2L2Flc18w
IikKLSAgICApCi0pCi0KLShkZWZpbmUgcmVxdWlyZWQtZXRjLWZpbGVzCi0gICAgKGxpdGVyYWwK
LSAgICAgICAgIi9wcml2YXRlL2V0Yy9ob3N0cyIKLSAgICAgICAgIi9wcml2YXRlL2V0Yy9ncm91
cCIKLSAgICAgICAgIi9wcml2YXRlL2V0Yy9wYXNzd2QiCi0gICAgICAgICIvcHJpdmF0ZS9ldGMv
cHJvdG9jb2xzIgotICAgICAgICAiL3ByaXZhdGUvZXRjL3NlcnZpY2VzIgotICAgICkKLSkKLQot
KGRlbnkgZmlsZS1tYXAtZXhlY3V0YWJsZSkKLQotKGRlbnkgZmlsZS13cml0ZS1tb3VudCBmaWxl
LXdyaXRlLXVubW91bnQpCi0KLShtb2JpbGUtcHJlZmVyZW5jZXMtcmVhZCAiY29tLmFwcGxlLnNl
Y3VyaXR5IikKLQotKHdpdGgtZmlsdGVyIChzeXN0ZW0tYXR0cmlidXRlIGFwcGxlLWludGVybmFs
KQotICAgIChtb2JpbGUtcHJlZmVyZW5jZXMtcmVhZCAiY29tLmFwcGxlLlByb3RvdHlwZVRvb2xz
IikKLSkKLQotKHdpdGgtZWxldmF0ZWQtcHJlY2VkZW5jZQotICAgIChhbGxvdyBmaWxlLXJlYWQq
Ci0gICAgICAgIChzdWJwYXRoCi0gICAgICAgICAgICAiL3Vzci9saWIiCi0gICAgICAgICAgICAi
L3Vzci9zaGFyZSIKLSAgICAgICAgICAgICIvcHJpdmF0ZS92YXIvZGIvdGltZXpvbmUiCi0gICAg
ICAgICAgICAiL3ByaXZhdGUvdmFyL3ByZWZlcmVuY2VzL0xvZ2dpbmciIDs7OyA8cmRhcjovL3By
b2JsZW0vMjQxNDQ0MTg+Ci0gICAgICAgICAgICAiL1N5c3RlbS9MaWJyYXJ5IgotICAgICAgICAp
Ci0gICAgKQotCi0gICAgKGxldCAoKGh3LWlkZW50aWZ5aW5nLXBhdGhzCi0gICAgICAgICAgICAo
cmVxdWlyZS1hbnkKLSAgICAgICAgICAgICAgICAobGl0ZXJhbCAiL1N5c3RlbS9MaWJyYXJ5L0Nh
Y2hlcy9hcHRpY2tldC5kZXIiKQotICAgICAgICAgICAgICAgIChzdWJwYXRoICIvU3lzdGVtL0xp
YnJhcnkvQ2FjaGVzL2NvbS5hcHBsZS5rZXJuZWxjYWNoZXMiKQotICAgICAgICAgICAgICAgIChz
dWJwYXRoICIvU3lzdGVtL0xpYnJhcnkvQ2FjaGVzL2NvbS5hcHBsZS5mYWN0b3J5ZGF0YSIpKSkp
Ci0gICAgICAgIChkZW55IGZpbGUtaXNzdWUtZXh0ZW5zaW9uIGZpbGUtcmVhZCogaHctaWRlbnRp
ZnlpbmctcGF0aHMpKQotICAgIAotICAgIChhbGxvdyBmaWxlLW1hcC1leGVjdXRhYmxlCi0gICAg
ICAgIChzdWJwYXRoCi0gICAgICAgICAgICAiL1N5c3RlbS9MaWJyYXJ5IgotICAgICAgICAgICAg
Ii91c3IvbGliIgotICAgICAgICApCi0gICAgKQotCi0gICAgKGFsbG93IGZpbGUtcmVhZC1tZXRh
ZGF0YQotICAgICAgICAodm5vZGUtdHlwZQotICAgICAgICAgICAgRElSRUNUT1JZCi0gICAgICAg
ICAgICBTWU1MSU5LCi0gICAgICAgICkKLSAgICApCi0KLSAgICAoYWxsb3cgdXNlci1wcmVmZXJl
bmNlLXJlYWQgKHByZWZlcmVuY2UtZG9tYWluICJrQ0ZQcmVmZXJlbmNlc0FueUFwcGxpY2F0aW9u
IikpCi0gICAgKGFsbG93IGZpbGUtcmVhZCoKLSAgICAgICAgICAgKGZyb250LXVzZXItaG9tZS1s
aXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy8uR2xvYmFsUHJlZmVyZW5jZXMucGxpc3QiKQot
ICAgICAgICAgICAoZnJvbnQtdXNlci1ob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2Vz
Ly5HbG9iYWxQcmVmZXJlbmNlc19tLnBsaXN0IikpCi0gICAgKGFsbG93IG1hbmFnZWQtcHJlZmVy
ZW5jZS1yZWFkIChwcmVmZXJlbmNlLWRvbWFpbiAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlv
biIpKQotICAgIAotICAgIChhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAgIChsaXRlcmFsICIvcHJp
dmF0ZS92YXIvTWFuYWdlZCBQcmVmZXJlbmNlcy9tb2JpbGUvLkdsb2JhbFByZWZlcmVuY2VzLnBs
aXN0IikKLSAgICApCi0KLSAgICAoYWxsb3cgZmlsZS1yZWFkLW1ldGFkYXRhCi0gICAgICAgICho
b21lLWxpdGVyYWwgIi9MaWJyYXJ5L0NhY2hlcy9wb3dlcmxvZy5sYXVuY2hkIikpCi0KLSAgICA7
OyA8cmRhcjovL3Byb2JsZW0vMTM5NjMyOTQ+Ci0gICAgKGRlbnkgZmlsZS1yZWFkLWRhdGEgZmls
ZS1pc3N1ZS1leHRlbnNpb24gZmlsZS1tYXAtZXhlY3V0YWJsZQotICAgICAgICAocmVxdWlyZS1h
bGwKLSAgICAgICAgICAgIChleGVjdXRhYmxlLWJ1bmRsZSkKLSAgICAgICAgICAgIChyZWdleCAj
Ii9bXi9dKy9TQ19JbmZvLyIpKSkKLSkKLQotKHdpdGgtZmlsdGVyIChzeXN0ZW0tYXR0cmlidXRl
IGFwcGxlLWludGVybmFsKQotICAgIChpbnRlcm5hbC1kZWJ1Z2dpbmctc3VwcG9ydCkKLSkKLQot
KGFsbG93IGZpbGUtcmVhZCogcmVxdWlyZWQtZXRjLWZpbGVzKQotCi0oYWxsb3cgZmlsZS1yZWFk
KgotICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvTW9iaWxlQXNzZXQvUHJlaW5zdGFsbGVkQXNz
ZXRzVjIvSW5zdGFsbFdpdGhPcyIpKQotCi0oYWxsb3cgZmlsZS1yZWFkLWRhdGEKLSAgICAobGl0
ZXJhbCAiL3Vzci9sb2NhbC9saWIvbG9nIikgOyA8cmRhcjovL3Byb2JsZW0vMzY2Mjk0OTU+Ci0p
Ci0KLShkZXZpY2UtYWNjZXNzKQotCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICAoZ2xvYmFsLW5h
bWUKLSAgICAgICAgImNvbS5hcHBsZS5sb2dkIgotICAgICAgICAiY29tLmFwcGxlLmxvZ2QuZXZl
bnRzIgotICAgICAgICAiY29tLmFwcGxlLnN5c3RlbS5ub3RpZmljYXRpb25fY2VudGVyIgotICAg
ICkKLSkKLQotKHdpdGgtZmlsdGVyIChzeXN0ZW0tYXR0cmlidXRlIGFwcGxlLWludGVybmFsKQot
ICAgIChhbGxvdyBtYWNoLWxvb2t1cAotICAgICAgICAoZ2xvYmFsLW5hbWUKLSAgICAgICAgICAg
ICJjb20uYXBwbGUuYWdncmVnYXRlZCIKLSAgICAgICAgICAgICJjb20uYXBwbGUuZGlhZ25vc3Rp
Y2QiCi0gICAgICAgICAgICAiY29tLmFwcGxlLnN5c3RlbS5sb2dnZXIiKSkpCi0KLTs7IDxyZGFy
Oi8vcHJvYmxlbS8xMjQxMzk0Mj4KLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgKHdlbGwta25vd24t
c3lzdGVtLWdyb3VwLWNvbnRhaW5lci1saXRlcmFsICIvc3lzdGVtZ3JvdXAuY29tLmFwcGxlLm1v
YmlsZWdlc3RhbHRjYWNoZS9MaWJyYXJ5L0NhY2hlcy9jb20uYXBwbGUuTW9iaWxlR2VzdGFsdC5w
bGlzdCIpKQotCi0oYWxsb3cgaXBjLXBvc2l4LXNobS1yZWFkKgotICAgIChpcGMtcG9zaXgtbmFt
ZSAiYXBwbGUuc2htLm5vdGlmaWNhdGlvbl9jZW50ZXIiKSkKLQotKHdpdGgtZmlsdGVyCi0gICAg
KHJlcXVpcmUtYWxsCi0gICAgICAgIChzeXN0ZW0tYXR0cmlidXRlIGFwcGxlLWludGVybmFsKQot
ICAgICAgICAoaXBjLXBvc2l4LW5hbWUgInB1cnBsZWJ1ZGR5LnNlbnRpbmVsIikpCi0gICAgKGRl
bnkgaXBjLXBvc2l4LXNlbS1jcmVhdGUgaXBjLXBvc2l4LXNlbS1wb3N0IGlwYy1wb3NpeC1zZW0t
dW5saW5rIGlwYy1wb3NpeC1zZW0td2FpdCkKLSAgICAoYWxsb3cgaXBjLXBvc2l4LXNlbS1vcGVu
KQotKQotCi0obWFuYWdlZC1jb25maWd1cmF0aW9uLXJlYWQtcHVibGljKQotCi0oZGVueSBzeXN0
ZW0taW5mbyAod2l0aCBuby1yZXBvcnQpCi0gICAgKGluZm8tdHlwZSAibmV0LmxpbmsuYWRkciIp
KQotCi0oYWxsb3cgbWFjaC10YXNrLW5hbWUgKHRhcmdldCBzZWxmKSkKLQotKGFsbG93IHByb2Nl
c3MtaW5mby1waWRpbmZvICh0YXJnZXQgc2VsZikpCi0oYWxsb3cgcHJvY2Vzcy1pbmZvLXBpZGZk
aW5mbyAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nlc3MtaW5mby1waWRmaWxlcG9ydGluZm8g
KHRhcmdldCBzZWxmKSkKLShhbGxvdyBwcm9jZXNzLWluZm8tc2V0Y29udHJvbCAodGFyZ2V0IHNl
bGYpKQotKGFsbG93IHByb2Nlc3MtaW5mby1kaXJ0eWNvbnRyb2wgKHRhcmdldCBzZWxmKSkKLShh
bGxvdyBwcm9jZXNzLWluZm8tcnVzYWdlICh0YXJnZXQgc2VsZikpCi0oYWxsb3cgcHJvY2Vzcy1p
bmZvLWNvZGVzaWduYXR1cmUgKHRhcmdldCBzZWxmKSkKLQotOzs7Ci07OzsgRW5kIGNvbW1vbi5z
YiBjb250ZW50Ci07OzsKLQotKGRlbnkgbWFjaC1sb29rdXAgKHhwYy1zZXJ2aWNlLW5hbWUtcHJl
Zml4ICIiKSkKLShkZW55IGlva2l0LWdldC1wcm9wZXJ0aWVzICh3aXRoIHBhcnRpYWwtc3ltYm9s
aWNhdGlvbikpCi0oZGVueSBsc29wZW4pCi0KLTs7OwotOzs7IFRoZSBmb2xsb3dpbmcgcnVsZXMg
d2VyZSBvcmlnaW5hbGx5IGNvbnRhaW5lZCBpbiAnVUlLaXQtYXBwcy5zYicuIFdlIGFyZSBkdXBs
aWNhdGluZyB0aGVtIGhlcmUgc28gd2UgY2FuCi07OzsgcmVtb3ZlIHVubmVlZGVkIHNhbmRib3gg
ZXh0ZW5zaW9ucy4KLTs7OwotCi0oYWxsb3ctcHJlZmVyZW5jZXMtY29tbW9uKQotCi07OyBIb21l
IEJ1dHRvbgotKHdpdGgtZmlsdGVyIChpb2tpdC1yZWdpc3RyeS1lbnRyeS1jbGFzcyAiSU9QbGF0
Zm9ybURldmljZSIpCi0gICAgKGFsbG93IGlva2l0LWdldC1wcm9wZXJ0aWVzICh3aXRoIHRlbGVt
ZXRyeSkKLSAgICAgICAgKGlva2l0LXByb3BlcnR5ICJob21lLWJ1dHRvbi10eXBlIikpKQotCi0o
ZGVueSBmaWxlLXdyaXRlKgotICAgIChob21lLWxpdGVyYWwKLSAgICAgICAgIi9MaWJyYXJ5L0Nh
Y2hlcy9EYXRlRm9ybWF0cy5wbGlzdCIgOyBTaWxlbnRseSBkZW55IHdyaXRlcyB3aGVuIENGRGF0
YSBhdHRlbXB0cyB0byB3cml0ZSB0byB0aGUgY2FjaGUgZGlyZWN0b3J5LgotICAgICAgICAiL0xp
YnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLnNwcmluZ2JvYXJkLnBsaXN0IiA7OyA8cmRhcjov
L3Byb2JsZW0vOTM3NTAyNz4KLSAgICApCi0gICAgKHdpdGggbm8tbG9nKSkKLQotOzs7Ci07Ozsg
RW5kIFVJS2l0LWFwcHMuc2IgY29udGVudAotOzs7Ci0KLShkZW55IHN5c2N0bCopCi0oYWxsb3cg
c3lzY3RsLXJlYWQKLSAgICAoc3lzY3RsLW5hbWUKLSAgICAgICAgImh3LmFjdGl2ZWNwdSIKLSAg
ICAgICAgImh3LmF2YWlsY3B1IgotICAgICAgICAiaHcuY2FjaGVjb25maWciIDs7IDxyZGFyOi8v
cHJvYmxlbS83ODIxMzU2Mz4KLSAgICAgICAgImh3LmNhY2hlbGluZXNpemUiCi0gICAgICAgICJo
dy5jYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS83ODIxMzU2Mz4KLSAgICAgICAgImh3LmNw
dWZhbWlseSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzE1NzIxODcyPgotICAgICAgICAiaHcuY3B1c3Vi
ZmFtaWx5IgotICAgICAgICAiaHcuY3B1dGhyZWFkdHlwZSIKLSAgICAgICAgImh3LmNwdXR5cGUi
Ci0gICAgICAgICJody5sMWRjYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4K
LSAgICAgICAgImh3LmwxaWNhY2hlc2l6ZSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzE1NzIxODcyPgot
ICAgICAgICAiaHcubDJjYWNoZXNpemUiCi0gICAgICAgICJody5sM2NhY2hlc2l6ZSIgOzsgPHJk
YXI6Ly9wcm9ibGVtLzE1NzIxODcyPgotICAgICAgICAiaHcubG9naWNhbGNwdSIKLSAgICAgICAg
Imh3LmxvZ2ljYWxjcHVfbWF4IgotICAgICAgICAiaHcubmNwdSIKLSAgICAgICAgImh3Lm1hY2hp
bmUiCi0gICAgICAgICJody5tZW1zaXplIgotICAgICAgICAiaHcubW9kZWwiCi0gICAgICAgICJo
dy5uY3B1IiA7OyA8cmRhcjovL3Byb2JsZW0vNzY3ODI1MzA+Ci0gICAgICAgICJody5ucGVyZmxl
dmVscyIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgyNTMwPgotICAgICAgICAiaHcucGFnZXNpemUi
IDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSAgICAgICAgImh3LnBhZ2VzaXplX2NvbXBh
dCIKLSAgICAgICAgImh3LnBoeXNpY2FsY3B1IgotICAgICAgICAiaHcucGh5c2ljYWxjcHVfbWF4
IgotICAgICAgICAiaHcucGh5c21lbSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgyNTMwPgotICAg
ICAgICAiaHcudmVjdG9ydW5pdCIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgyNTMwPgotICAgICAg
ICAia2Vybi5ib290YXJncyIKLSAgICAgICAgImtlcm4uaG9zdG5hbWUiCi0gICAgICAgICJrZXJu
Lmh2X3ZtbV9wcmVzZW50IgotICAgICAgICAia2Vybi5tYXhmaWxlc3BlcnByb2MiCi0gICAgICAg
ICJrZXJuLm1lbW9yeXN0YXR1c19sZXZlbCIKLSAgICAgICAgImtlcm4ub3Nwcm9kdWN0dmVyc2lv
biIKLSAgICAgICAgImtlcm4ub3NyZWxlYXNlIgotICAgICAgICAia2Vybi5vc3ZhcmlhbnRfc3Rh
dHVzIgotICAgICAgICAia2Vybi5vc3ZlcnNpb24iCi0gICAgICAgICJrZXJuLm9zdHlwZSIKLSAg
ICAgICAgImtlcm4uc2VjdXJlX2tlcm5lbCIKLSAgICAgICAgImtlcm4udmVyc2lvbiIKLSAgICAg
ICAgInZtLmZvb3RwcmludF9zdXNwZW5kIikKLSAgICAoc3lzY3RsLW5hbWUtcHJlZml4ICJody5v
cHRpb25hbC4iKSA7OyA8cmRhcjovL3Byb2JsZW0vNzA5NzM1Mjc+Ci0gICAgKHN5c2N0bC1uYW1l
LXByZWZpeCAiaHcucGVyZmxldmVsIikgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgyNTMwPgotKQot
Ci0od2l0aC1maWx0ZXIgKHN5c3RlbS1hdHRyaWJ1dGUgYXBwbGUtaW50ZXJuYWwpCi0gICAgKGFs
bG93IHN5c2N0bC1yZWFkIHN5c2N0bC13cml0ZQotICAgICAgICAoc3lzY3RsLW5hbWUKLSAgICAg
ICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIKLSAgICAgICAgKQotICAgICkKLSkKLQotOzsg
U2lsZW5jZSBub2lzeSBkZW5pYWxzCi0oZGVueSBzeXNjdGwtcmVhZCAod2l0aCBuby1yZXBvcnQp
Ci0gICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICJzeXNjdGwucHJvY19uYXRpdmUiCi0gICAgKQot
KQotCi07OyBSZWFkLW9ubHkgcHJlZmVyZW5jZXMgYW5kIGRhdGEKLShtb2JpbGUtcHJlZmVyZW5j
ZXMtcmVhZCAiY29tLmFwcGxlLkxhdW5jaFNlcnZpY2VzIikKLQotOzsgQWNjZXNzIHRvIGNsaWVu
dCdzIGNhY2hlIGZvbGRlciAmIHJlLXZlbmRpbmcgdG8gQ0ZOZXR3b3JrLgotKGFsbG93IGZpbGUt
aXNzdWUtZXh0ZW5zaW9uCi0gICAgKHJlcXVpcmUtYWxsCi0gICAgICAgIChleHRlbnNpb24gImNv
bS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlIikKLSAgICAgICAgKGV4dGVuc2lvbi1jbGFz
cyAiY29tLmFwcGxlLm5zdXJsc3RvcmFnZS5leHRlbnNpb24tY2FjaGUiKSkpCi0KLShkZW55IGZp
bGUtd3JpdGUtY3JlYXRlICh2bm9kZS10eXBlIFNZTUxJTkspKQotKGRlbnkgZmlsZS1yZWFkLXhh
dHRyIGZpbGUtd3JpdGUteGF0dHIgKHhhdHRyLXByZWZpeCAiY29tLmFwcGxlLnNlY3VyaXR5LnBy
aXZhdGUuIikpCi0KLTs7IEZJWE1FOiBDYW4gZnVydGhlciByZXN0cmljdCB0aGUgZm9sbG93aW5n
IHJ1bGVzLgotKGFsbG93IGlva2l0LWdldC1wcm9wZXJ0aWVzICh3aXRoIHJlcG9ydCkgKHdpdGgg
dGVsZW1ldHJ5KSkKLShhbGxvdyBpb2tpdC1zZXQtcHJvcGVydGllcyAod2l0aCByZXBvcnQpICh3
aXRoIHRlbGVtZXRyeSkpCi0KLShhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3JpdGUqCi0gICAgKGhv
bWUtc3VicGF0aCAiL0xpYnJhcnkvS2V5Y2hhaW5zIikpIDs7IEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSByZW1vdmVkIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzExNTk5ODI1PiBpcyBmaXhlZC4KLQotKGFs
bG93IGZpbGUtcmVhZCoKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvS2V5Y2hhaW5zIikKLSAgICAo
aG9tZS1saXRlcmFsICIvTGlicmFyeS9BcHBsaWNhdGlvbiBTdXBwb3J0L1N5bmNTZXJ2aWNlcy9M
b2NhbC9DbGllbnRzV2l0aENoYW5nZXMvY29tLmFwcGxlLktleWNoYWluIikpCi0KLShhbGxvdyBm
aWxlLXJlYWQqCi0gICAgKHN1YnBhdGggIi9wcml2YXRlL3Zhci9jb250YWluZXJzL1NoYXJlZC9T
eXN0ZW1Hcm91cCIpIDs7IEZJWE1FPHJkYXI6Ly9wcm9ibGVtLzcxMTM3Mzg5PgotICAgIChsaXRl
cmFsICIvcHJpdmF0ZS92YXIvcHJlZmVyZW5jZXMvY29tLmFwcGxlLm5ldHdvcmtkLnBsaXN0Iikp
Ci0KLShhbGxvdyBtYWNoLWxvb2t1cAotICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIHRoZSBTcHJp
bmdib2FyZCB2aWV3IHNlcnZpY2VzLgotICAgIChnbG9iYWwtbmFtZQotICAgICAgICAiY29tLmFw
cGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiCi0gICAgICAgICJjb20uYXBwbGUucnVu
bmluZ2JvYXJkIgotICAgICkKLQotICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIExvY2FsQXV0aGVu
dGljYXRpb24gYW5kIFJlbW90ZVNlcnZpY2UKLSAgICAoZ2xvYmFsLW5hbWUKLSAgICAgICAgImNv
bS5hcHBsZS5Db3JlQXV0aGVudGljYXRpb24uZGFlbW9uIgotICAgICAgICAiY29tLmFwcGxlLnJl
bW90ZWQiCi0gICAgICAgICJjb20uYXBwbGUudGNjZCIKLSAgICApCi0KLSAgICA7OyBBbGxvdyBh
Y2Nlc3NlcyB0byB0aGUgU0VQCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY3RrZC50b2tl
bi1jbGllbnQiKQotCi0gICAgOzsgQWxsb3cgYWNjZXNzZXMgdG8gTkZDCi0gICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUubmZjZC5od21hbmFnZXIiKQotCi0gICAgOzsgQWxsb3cgYWNjZXNzZXMg
dG8gdGhlIEtleWNoYWluIHNlcnZpY2UKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5zZWN1
cml0eWQiKQotCi0gICAgOzsgQWxsb3cgYWNjZXNzZXMgdG8gQUFBIGFuZCB0aGUgbmV0d29yawot
ICAgIChnbG9iYWwtbmFtZQotICAgICAgICAiY29tLmFwcGxlLkFwcFNTTy5zZXJ2aWNlLXhwYyIK
LSAgICAgICAgImNvbS5hcHBsZS5uZWhlbHBlciIKLSAgICAgICAgImNvbS5hcHBsZS51c3ltcHRv
bXNkIgotICAgICAgICAiY29tLmFwcGxlLmRuc3NkLnNlcnZpY2UiCi0gICAgICAgICJjb20uYXBw
bGUudHJ1c3RkIgotICAgICAgICAiY29tLmFwcGxlLmNvbnRhaW5lcm1hbmFnZXJkIgotICAgICAg
ICAiY29tLmFwcGxlLm1vYmlsZWdlc3RhbHQueHBjIgotICAgICkKLQotICAgIDs7IEFsbG93IGFj
Y2Vzc2VzIHRvIHRoZSBBU0QKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5BdXRoZW50aWNh
dGlvblNlcnZpY2VzQ29yZS5BdXRoZW50aWNhdGlvblNlcnZpY2VzQWdlbnQiKQotKQotCi0oYWxs
b3cgaW9raXQtb3BlbgotICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIEhJRAotICAgIChpb2tpdC11
c2VyLWNsaWVudC1jbGFzcyAiSU9ISURMaWJVc2VyQ2xpZW50IikKLQotICAgIDs7IEFsbG93IGFj
Y2VzcyB0byB0aGUga2V5IHN0b3JlCi0gICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJBcHBs
ZUtleVN0b3JlVXNlckNsaWVudCIpCi0pCi0KLShhbGxvdyBuZXR3b3JrLW91dGJvdW5kCi0gICAg
KGxpdGVyYWwgIi9wcml2YXRlL3Zhci9ydW4vbUROU1Jlc3BvbmRlciIpCi0gICAgKHJlbW90ZSB0
Y3ApCi0gICAgKHJlbW90ZSB1ZHApCi0pCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0
ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAoYWxsb3cgbmV0d29yay1vdXRib3VuZAotICAgICAgICAo
bGl0ZXJhbCAiL3ByaXZhdGUvdmFyL3J1bi9zeXNsb2ciKSkKLSkKLQotI2lmIEVOQUJMRShTWVNU
RU1fQ09OVEVOVF9QQVRIX1NBTkRCT1hfUlVMRVMpCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25z
L1N5c3RlbUNvbnRlbnRTYW5kYm94LWlvcy5kZWZzPgotCi0oYWxsb3cgZmlsZS1yZWFkKiBmaWxl
LXRlc3QtZXhpc3RlbmNlCi0gICAgKGFwcGx5IHN1YnBhdGggZmlsZS1yZWFkLWV4aXN0ZW5jZS1z
ZWNvbmRhcnktcGF0aHMpKQotCi0oYWxsb3cgZmlsZS1tYXAtZXhlY3V0YWJsZQotICAgIChhcHBs
eSBzdWJwYXRoIHNlY29uZGFyeS1mcmFtZXdvcmstYW5kLWR5bGliLXBhdGhzKSkKLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNo
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoCmluZGV4IGE5
MGYxOWZhMzk3ZjJlY2Q3Zjc3MTVhMDE1NzUyMDZlMjI1ZGMzMzEuLmU3ZWJmYTA1ODg5MGEzNDg5
NjNjNjY5MzJkN2Q4NjNjYzc5MjA5YzMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJv
Y2Vzcy1lbnRpdGxlbWVudHMuc2gKQEAgLTExNywzMiArMTE3LDYgQEAgZnVuY3Rpb24gbWFjX3By
b2Nlc3NfZ3B1X2VudGl0bGVtZW50cygpCiAgICAgZmkKIH0KIAotZnVuY3Rpb24gbWFjX3Byb2Nl
c3Nfd2ViYXV0aG5fZW50aXRsZW1lbnRzKCkKLXsKLSAgICBpZiBbWyAiJHtXS19VU0VfUkVTVFJJ
Q1RFRF9FTlRJVExFTUVOVFN9IiA9PSBZRVMgXV0KLSAgICB0aGVuCi0gICAgICAgIHBsaXN0YnVk
ZHkgQWRkIDpjb20uYXBwbGUuc2VjdXJpdHkuZGV2aWNlLnVzYiBib29sIFlFUwotCi0gICAgICAg
IHBsaXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nlc3MtZ3JvdXBzIGFycmF5Ci0gICAgICAgIHBs
aXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nlc3MtZ3JvdXBzOjAgc3RyaW5nIGNvbS5hcHBsZS53
ZWJraXQud2ViYXV0aG4KLSAgICAgICAgcGxpc3RidWRkeSBBZGQgOmtleWNoYWluLWFjY2Vzcy1n
cm91cHM6MSBzdHJpbmcgbG9ja2Rvd24taWRlbnRpdGllcwotCi0gICAgICAgIHBsaXN0YnVkZHkg
QWRkIDpjb20uYXBwbGUuc2VjdXJpdHkuYXR0ZXN0YXRpb24uYWNjZXNzIGJvb2wgWUVTCi0gICAg
ICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUua2V5c3RvcmUuc2lrLmFjY2VzcyBib29sIFlF
UwotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuUmVtb3RlU2Vydmlj
ZURpc2NvdmVyeS5hbGxvdy1zYW5kYm94IGJvb2wgWUVTCi0gICAgICAgIHBsaXN0YnVkZHkgQWRk
IDpjb20uYXBwbGUucHJpdmF0ZS5SZW1vdGVTZXJ2aWNlRGlzY292ZXJ5LmRldmljZS1hZG1pbiBi
b29sIFlFUwotICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLmFwcGF0dGVzdC5zcGkg
Ym9vbCBZRVMKLSAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5tb2JpbGVhY3RpdmF0
aW9uZC5zcGkgYm9vbCBZRVMKLSAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5tb2Jp
bGVhY3RpdmF0aW9uZC5icmlkZ2UgYm9vbCBZRVMKLSAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNv
bS5hcHBsZS5wcml2YXRlLnNlY3VyaXR5LmJvb3Rwb2xpY3kgYm9vbCBZRVMKLQotICAgICAgICBp
ZiAoKCAiJHtUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUn0iID49IDExMDAwMCApKQotICAg
ICAgICB0aGVuCi0gICAgICAgICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5
LmNzLmppdC13cml0ZS1hbGxvd2xpc3QgYm9vbCBZRVMKLSAgICAgICAgZmkKLSAgICBmaQotfQot
CiBmdW5jdGlvbiBtYWNfcHJvY2Vzc19uZXR3b3JrX2VudGl0bGVtZW50cygpCiB7CiAgICAgaWYg
W1sgIiR7V0tfVVNFX1JFU1RSSUNURURfRU5USVRMRU1FTlRTfSIgPT0gWUVTIF1dCkBAIC00MjUs
NDcgKzM5OSw2IEBAIGZ1bmN0aW9uIGlvc19mYW1pbHlfcHJvY2Vzc19ncHVfZW50aXRsZW1lbnRz
KCkKICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuYXR0cmlidXRpb24uZXhw
bGljaXRseS1hc3N1bWVkLWlkZW50aXRpZXM6MDp0eXBlIHN0cmluZyB3aWxkY2FyZAogfQogCi1m
dW5jdGlvbiBpb3NfZmFtaWx5X3Byb2Nlc3Nfd2ViYXV0aG5fZW50aXRsZW1lbnRzKCkKLXsKLSAg
ICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUubWVtb3J5c3RhdHVzIGJvb2wgWUVT
Ci0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5ydW5uaW5nYm9hcmQuYXNzZXJ0aW9ucy53
ZWJraXQgYm9vbCBZRVMKLQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUuc2VjdXJpdHku
ZGV2aWNlLnVzYiBib29sIFlFUwotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2
YXRlLnRjYy5hbGxvdyBhcnJheQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0
ZS50Y2MuYWxsb3c6MCBzdHJpbmcga1RDQ1NlcnZpY2VMaXN0ZW5FdmVudAotCi0gICAgcGxpc3Ri
dWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5hcHBsaWNhdGlvbi1ncm91cHMgYXJyYXkKLSAg
ICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5LmFwcGxpY2F0aW9uLWdyb3Vwczow
IHN0cmluZyBncm91cC5jb20uYXBwbGUud2Via2l0Ci0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29t
LmFwcGxlLm5mY2QuaHdtYW5hZ2VyIGJvb2wgWUVTCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5h
cHBsZS5uZmNkLnNlc3Npb24ucmVhZGVyLmludGVybmFsIGJvb2wgWUVTCi0gICAgIyBGSVhNRShy
ZGFyOi8vcHJvYmxlbS83MjY0NjY2NCk6IEZpbmQgYSBiZXR0ZXIgd2F5IHRvIGludm9rZSBOZWFy
RmllbGQgaW4gdGhlIGJhY2tncm91bmQuCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5p
bnRlcm5hbC5uZmMuYWxsb3cuYmFja2dyb3VuZGVkLnNlc3Npb24gYm9vbCBZRVMKLSAgICBwbGlz
dGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLlVJS2l0LnZlbmRzLXZpZXctc2VydmljZXMgYm9vbCBZRVMK
LQotICAgIHBsaXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nlc3MtZ3JvdXBzIGFycmF5Ci0gICAg
cGxpc3RidWRkeSBBZGQgOmtleWNoYWluLWFjY2Vzcy1ncm91cHM6MCBzdHJpbmcgY29tLmFwcGxl
LndlYmtpdC53ZWJhdXRobgotICAgIHBsaXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nlc3MtZ3Jv
dXBzOjEgc3RyaW5nIGxvY2tkb3duLWlkZW50aXRpZXMKLQotICAgIHBsaXN0YnVkZHkgQWRkIDpj
b20uYXBwbGUucHJpdmF0ZS5Nb2JpbGVHZXN0YWx0LkFsbG93ZWRQcm90ZWN0ZWRLZXlzIGFycmF5
Ci0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLk1vYmlsZUdlc3RhbHQuQWxs
b3dlZFByb3RlY3RlZEtleXM6MCBzdHJpbmcgVW5pcXVlQ2hpcElECi0gICAgcGxpc3RidWRkeSBB
ZGQgOmNvbS5hcHBsZS5wcml2YXRlLk1vYmlsZUdlc3RhbHQuQWxsb3dlZFByb3RlY3RlZEtleXM6
MSBzdHJpbmcgU2VyaWFsTnVtYmVyCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNl
Y3VyaXR5LnN5c3RlbS1ncm91cHMgYXJyYXkKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxl
LnNlY3VyaXR5LnN5c3RlbS1ncm91cHM6MCBzdHJpbmcgc3lzdGVtZ3JvdXAuY29tLmFwcGxlLm1v
YmlsZWFjdGl2YXRpb25kCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5
LmF0dGVzdGF0aW9uLmFjY2VzcyBib29sIFlFUwotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBw
bGUua2V5c3RvcmUuc2lrLmFjY2VzcyBib29sIFlFUwotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20u
YXBwbGUuYXBwYXR0ZXN0LnNwaSBib29sIFlFUwotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBw
bGUubW9iaWxlYWN0aXZhdGlvbmQuc3BpIGJvb2wgWUVTCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6
Y29tLmFwcGxlLnNwcmluZ2JvYXJkLnJlbW90ZS1hbGVydCBib29sIFlFUwotICAgIHBsaXN0YnVk
ZHkgQWRkIDpjb20uYXBwbGUuZnJvbnRib2FyZC5sYXVuY2hhcHBsaWNhdGlvbnMgYm9vbCBZRVMK
LQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5zYW5kYm94LnByb2ZpbGUg
c3RyaW5nIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4KLX0KLQogZnVuY3Rpb24gaW9zX2ZhbWls
eV9wcm9jZXNzX2FkYXR0cmlidXRpb25kX2VudGl0bGVtZW50cygpCiB7CiAgICAgcGxpc3RidWRk
eSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLnNhbmRib3gucHJvZmlsZSBzdHJpbmcgY29tLmFwcGxl
LldlYktpdC5hZGF0dHJpYnV0aW9uZApAQCAtNTIwLDcgKzQ1Myw2IEBAIHRoZW4KICAgICBlbGlm
IFtbICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5DYXB0
aXZlUG9ydGFsIF1dOyB0aGVuIG1hY19wcm9jZXNzX3dlYmNvbnRlbnRfY2FwdGl2ZXBvcnRhbF9l
bnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5X
ZWJLaXQuTmV0d29ya2luZyBdXTsgdGhlbiBtYWNfcHJvY2Vzc19uZXR3b3JrX2VudGl0bGVtZW50
cwogICAgIGVsaWYgW1sgIiR7UFJPRFVDVF9OQU1FfSIgPT0gY29tLmFwcGxlLldlYktpdC5HUFUg
XV07IHRoZW4gbWFjX3Byb2Nlc3NfZ3B1X2VudGl0bGVtZW50cwotICAgIGVsaWYgW1sgIiR7UFJP
RFVDVF9OQU1FfSIgPT0gY29tLmFwcGxlLldlYktpdC5XZWJBdXRobiBdXTsgdGhlbiBtYWNfcHJv
Y2Vzc193ZWJhdXRobl9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0i
ID09IHdlYnB1c2hkIF1dOyB0aGVuIG1hY19wcm9jZXNzX3dlYnB1c2hkX2VudGl0bGVtZW50cwog
ICAgIGVsaWYgW1sgIiR7UFJPRFVDVF9OQU1FfSIgIT0gYWRhdHRyaWJ1dGlvbmQgXV07IHRoZW4g
ZWNobyAiVW5zdXBwb3J0ZWQvdW5rbm93biBwcm9kdWN0OiAke1BST0RVQ1RfTkFNRX0iCiAgICAg
ZmkKQEAgLTU0NCw3ICs0NzYsNiBAQCB0aGVuCiAgICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9
IiA9PSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuQ2FwdGl2ZVBvcnRhbCBdXTsgdGhlbiBp
b3NfZmFtaWx5X3Byb2Nlc3Nfd2ViY29udGVudF9jYXB0aXZlcG9ydGFsX2VudGl0bGVtZW50cwog
ICAgIGVsaWYgW1sgIiR7UFJPRFVDVF9OQU1FfSIgPT0gY29tLmFwcGxlLldlYktpdC5OZXR3b3Jr
aW5nIF1dOyB0aGVuIGlvc19mYW1pbHlfcHJvY2Vzc19uZXR3b3JrX2VudGl0bGVtZW50cwogICAg
IGVsaWYgW1sgIiR7UFJPRFVDVF9OQU1FfSIgPT0gY29tLmFwcGxlLldlYktpdC5HUFUgXV07IHRo
ZW4gaW9zX2ZhbWlseV9wcm9jZXNzX2dwdV9lbnRpdGxlbWVudHMKLSAgICBlbGlmIFtbICIke1BS
T0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4gXV07IHRoZW4gaW9zX2Zh
bWlseV9wcm9jZXNzX3dlYmF1dGhuX2VudGl0bGVtZW50cwogICAgIGVsaWYgW1sgIiR7UFJPRFVD
VF9OQU1FfSIgPT0gYWRhdHRyaWJ1dGlvbmQgXV07IHRoZW4KICAgICAgICAgaW9zX2ZhbWlseV9w
cm9jZXNzX2FkYXR0cmlidXRpb25kX2VudGl0bGVtZW50cwogICAgIGVsaWYgW1sgIiR7UFJPRFVD
VF9OQU1FfSIgPT0gd2VicHVzaGQgXV07IHRoZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0KaW5kZXggYWMzM2Y1M2E3YTA0
YjUwZWQ3YzVjMzBhODI0NTExMmFkMjM0NWU4Ny4uZTk0ZmIzNjAxYmFhNTMwMTZmNGMyOTFmZWFj
ZjRmN2UwNTA5YzlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGVm
YXVsdFdlYkJyb3dzZXJDaGVja3MubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
RGVmYXVsdFdlYkJyb3dzZXJDaGVja3MubW0KQEAgLTcxLDggKzcxLDcgQEAgc3RhdGljIGJvb2wg
aXNJbldlYktpdENoaWxkUHJvY2VzcygpCiAgICAgICAgIE5TU3RyaW5nICpidW5kbGVJZGVudGlm
aWVyID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXTsKICAgICAgICAg
aXNJblN1YlByb2Nlc3MgPSBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUu
V2ViS2l0LldlYkNvbnRlbnQiXQogICAgICAgICAgICAgfHwgW2J1bmRsZUlkZW50aWZpZXIgaGFz
UHJlZml4OkAiY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nIl0KLSAgICAgICAgICAgIHx8IFti
dW5kbGVJZGVudGlmaWVyIGhhc1ByZWZpeDpAImNvbS5hcHBsZS5XZWJLaXQuR1BVIl0KLSAgICAg
ICAgICAgIHx8IFtidW5kbGVJZGVudGlmaWVyIGhhc1ByZWZpeDpAImNvbS5hcHBsZS5XZWJLaXQu
V2ViQXV0aG4iXTsKKyAgICAgICAgICAgIHx8IFtidW5kbGVJZGVudGlmaWVyIGhhc1ByZWZpeDpA
ImNvbS5hcHBsZS5XZWJLaXQuR1BVIl07CiAgICAgfSk7CiAKICAgICByZXR1cm4gaXNJblN1YlBy
b2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNl
RW50cnlQb2ludC5oCmluZGV4IGJhYTAxMjU3MDc3N2FlZDIxMjE1ZjEzYmI0M2ZiNWJhMTM4ZjY5
NTkuLmQ1NzdlMmUxMmE1MWZmYmVkMjY0Y2Q4ZGMyODc3ZWNlMTBiOTdjMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlRW50cnlQb2ludC5oCkBA
IC00Miw3ICs0Miw2IEBAIGV4dGVybiAiQyIgT1NfTk9USFJPVyB2b2lkIHZvdWNoZXJfcmVwbGFj
ZV9kZWZhdWx0X3ZvdWNoZXIodm9pZCk7CiAjZGVmaW5lIFdFQkNPTlRFTlRfU0VSVklDRV9JTklU
SUFMSVpFUiBXZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyCiAjZGVmaW5lIE5FVFdPUktfU0VS
VklDRV9JTklUSUFMSVpFUiBOZXR3b3JrU2VydmljZUluaXRpYWxpemVyCiAjZGVmaW5lIEdQVV9T
RVJWSUNFX0lOSVRJQUxJWkVSIEdQVVNlcnZpY2VJbml0aWFsaXplcgotI2RlZmluZSBXRUJBVVRI
Tl9TRVJWSUNFX0lOSVRJQUxJWkVSIFdlYkF1dGhuU2VydmljZUluaXRpYWxpemVyCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBv
aW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZU1haW4ubW0KaW5kZXggZjFjZjQ5ZDgzNmI4OGI3NDkyNjc0ODNkNjg0ZWQ3ZTk5OTEyZjZm
ZS4uMGU3Y2NlNzIwOTgzZDNjMGY5NmVkZGM2M2YwZjk5M2UzMDViZjEyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNl
L1hQQ1NlcnZpY2VNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRV
dGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQpAQCAtMTA1LDggKzEw
NSw2IEBAIHN0YXRpYyB2b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIoeHBjX2Nvbm5lY3Rpb25f
dCBwZWVyKQogICAgICAgICAgICAgICAgIGVudHJ5UG9pbnRGdW5jdGlvbk5hbWUgPSBDRlNUUihT
VFJJTkdJWkVfVkFMVUVfT0YoTkVUV09SS19TRVJWSUNFX0lOSVRJQUxJWkVSKSk7CiAgICAgICAg
ICAgICBlbHNlIGlmICghc3RyY21wKHNlcnZpY2VOYW1lLCAiY29tLmFwcGxlLldlYktpdC5HUFUi
KSkKICAgICAgICAgICAgICAgICBlbnRyeVBvaW50RnVuY3Rpb25OYW1lID0gQ0ZTVFIoU1RSSU5H
SVpFX1ZBTFVFX09GKEdQVV9TRVJWSUNFX0lOSVRJQUxJWkVSKSk7Ci0gICAgICAgICAgICBlbHNl
IGlmICghc3RyY21wKHNlcnZpY2VOYW1lLCAiY29tLmFwcGxlLldlYktpdC5XZWJBdXRobiIpKQot
ICAgICAgICAgICAgICAgIGVudHJ5UG9pbnRGdW5jdGlvbk5hbWUgPSBDRlNUUihTVFJJTkdJWkVf
VkFMVUVfT0YoV0VCQVVUSE5fU0VSVklDRV9JTklUSUFMSVpFUikpOwogICAgICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSVBDLCAiWFBDU2VydmljZUV2
ZW50SGFuZGxlcjogVW5leHBlY3RlZCAnc2VydmljZS1uYW1lJzogJXtwdWJsaWN9cyIsIHNlcnZp
Y2VOYW1lKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9BdXhpbGlhcnlQcm9jZXNzTWFjLm1tCmluZGV4IDhmMjU5ZGE2ZDUxMDI2Y2NkNjE4
OWJiZWNhNDhkNTNkYjk4MWRiNWIuLjY3YTZjMDA3NzgyNGEyOGZlOGYyY2U4NDNhODAwYWYzMmIz
ZmQyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9j
ZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9BdXhpbGlhcnlQcm9jZXNz
TWFjLm1tCkBAIC0yMzcsMTAgKzIzNyw2IEBAIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBwcm9jZXNz
U3RvcmFnZUNsYXNzKFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlIHR5cGUpCiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQogICAgIGNhc2UgV2ViQ29yZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5cGU6
OkdQVToKICAgICAgICAgcmV0dXJuICJXZWJLaXRHUFVTYW5kYm94IjsKLSNlbmRpZgotI2lmIEVO
QUJMRShXRUJfQVVUSE4pCi0gICAgY2FzZSBXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZTo6
V2ViQXV0aG46Ci0gICAgICAgIHJldHVybiAiV2ViS2l0V2ViQXV0aG5TYW5kYm94IjsKICNlbmRp
ZgogICAgIH0KIH0KQEAgLTMwNCwxMSArMzAwLDYgQEAgc3RhdGljIFN0cmluZyBzYW5kYm94RGly
ZWN0b3J5KFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlLCBjb25zdAog
ICAgIGNhc2UgV2ViQ29yZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5cGU6OkdQVToKICAgICAgICAgZGly
ZWN0b3J5LmFwcGVuZCgiL2NvbS5hcHBsZS5XZWJLaXQuR1BVLlNhbmRib3giKTsKICAgICAgICAg
YnJlYWs7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIGNhc2UgV2ViQ29yZTo6
QXV4aWxpYXJ5UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgotICAgICAgICBkaXJlY3RvcnkuYXBwZW5k
KCIvY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5TYW5kYm94Iik7Ci0gICAgICAgIGJyZWFrOwog
I2VuZGlmCiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAzZGRiMDYzMWUxMDIxOTFjNzc1MzkwYjUy
MzdkNzhiYzBkMDIzMjJlLi5iZTczNmQxY2VlOWYzNGM3ZTAyOWEyYzE1ZjFlYzM2M2YyZDFmYzEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTYxMCw3ICs2MTAsNiBAQCBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuY3BwCiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRvci5jcHAKIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKIFVJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmNwcAotVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcAogCiBVSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2ViRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmNw
cAogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhUmVjb3JkLmNwcApAQCAtNjE5LDEw
ICs2MTgsNiBAQCBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uY3BwCiAKIFVJUHJvY2Vzcy9YUi9QbGF0Zm9ybVhSU3lzdGVtLmNwcAogCi1XZWJBdXRo
blByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAotV2ViQXV0aG5Qcm9j
ZXNzL1dlYkF1dGhuUHJvY2Vzcy5jcHAKLVdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCi0KIFdlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzLmNwcAogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAogV2ViUHJvY2Vzcy9XZWJTbGVlcERp
c2FibGVyQ2xpZW50LmNwcApAQCAtODA0LDcgKzc5OSw2IEBAIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTaGFyZWRXb3JrZXJQcm92aWRlci5jcHAKIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyLmNwcAogCiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKLVdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKIAogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9SZW1vdGVXZWJMb2NrUmVnaXN0cnkuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYjM0
YzUwZGRlNzRiYmU0OTA0OTI5NzYwMjNhODdkNzg3OTAwZGMyZC4uNjhkYzc3MTkyMTE0OWQ2NTdm
NTQ2Y2EyNzNmNGUzOTUzNzg0MGZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjA1LDEw
ICs2MDUsNiBAQCBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTmZjU2Vydmlj
ZS5tbQogCiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29h
Lm1tCiAKLVdlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0
aG5TZXJ2aWNlRW50cnlQb2ludC5tbQotV2ViQXV0aG5Qcm9jZXNzL2lvcy9XZWJBdXRoblByb2Nl
c3NJT1MubW0KLVdlYkF1dGhuUHJvY2Vzcy9tYWMvV2ViQXV0aG5Qcm9jZXNzTWFjLm1tCi0KIFdl
YlByb2Nlc3MvQVBJL0NvY29hL1dLV2ViUHJvY2Vzcy5jcHAKIAogV2ViUHJvY2Vzcy9BcHBsZVBh
eS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IDFhNzNhNzBjYWM5OTY4MjY5YzQ2N2E4ODY3
ZjgyMWM0YjBkYmEyYTQuLjc3MjA3MzIxNjk1MzVjYzAwODhhZDM0MzkxZTY2ZGJkZGRjZmQyNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3Bw
CkBAIC04MzQsMTYgKzgzNCw2IEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdlYkF1dGhlbnRpY2F0
aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiB0
b0ltcGwocHJlZmVyZW5jZXNSZWYpLT53ZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQoKTsKIH0KIAot
dm9pZCBXS1ByZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZykKLXsKLSAgICB0b0ltcGwocHJl
ZmVyZW5jZXNSZWYpLT5zZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoZmxhZyk7Ci19
Ci0KLWJvb2wgV0tQcmVmZXJlbmNlc0dldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQotewotICAgIHJldHVybiB0b0ltcGwocHJl
ZmVyZW5jZXNSZWYpLT53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKTsKLX0KLQogdm9p
ZCBXS1ByZWZlcmVuY2VzU2V0SW52aXNpYmxlTWVkaWFBdXRvcGxheVBlcm1pdHRlZChXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCiB7CiAgICAgdG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+c2V0SW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQoIWZsYWcpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQ
cml2YXRlLmgKaW5kZXggMmNjYmM3Y2Y1ZDMwNjE0YjZhZWZjNzcwMTM1OTFkYTA5ZDQyY2MwMi4u
ZjlmNGEyYTBkNWUzY2MxODQyNzQzMjE3MzBiMjNhMWM5NmVmZWZjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5o
CkBAIC00OTgsMTAgKzQ5OCw2IEBAIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRFeHBv
c2VTcGVha2Vyc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiBXS19FWFBPUlQgdm9pZCBXS1By
ZWZlcmVuY2VzU2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJv
b2wgZmxhZyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0V2ViQXV0aGVudGljYXRp
b25FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogCi0vLyBEZWZhdWx0cyB0byBmYWxzZQotV0tf
RVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpOwotV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJl
bmNlc0dldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsK
LQogLy8gRGVmYXVsdHMgdG8gdHJ1ZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRJ
bnZpc2libGVNZWRpYUF1dG9wbGF5UGVybWl0dGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxh
Zyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0SW52aXNpYmxlTWVkaWFBdXRvcGxh
eVBlcm1pdHRlZChXS1ByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggOTA0MzQ1NWE1ZjYxODZmM2Zm
OGFmNzk4MDdlMTk0MjRlYjBkZDhmYy4uNWUxOTBkNGY4ZDEwOGZkNTZmMDZhODM2Yzc1NGY2MTJm
MDdmMTc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2wubW0KQEAgLTM4LDcgKzM4LDYgQEAKICNpbXBvcnQgIldLT2JqZWN0LmgiCiAj
aW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tXZWJzaXRlRGF0YVN0b3Jl
SW50ZXJuYWwuaCIKLSNpbXBvcnQgIldlYkF1dGhuUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJX
ZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKICNp
bXBvcnQgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgpAQCAtMTk4LDE1ICsxOTcsNiBAQCBzdGF0
aWMgUmV0YWluUHRyPFdLUHJvY2Vzc1Bvb2w+JiBzaGFyZWRQcm9jZXNzUG9vbCgpCiAgICAgcmV0
dXJuIFt1cmwgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiV2Vic2l0ZURhdGEiIGlzRGly
ZWN0b3J5OllFU107CiB9CiAKLSsgKHBpZF90KV93ZWJBdXRoblByb2Nlc3NJZGVudGlmaWVyCi17
Ci0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICByZXR1cm4gV2ViS2l0OjpXZWJBdXRoblByb2Nl
c3NQcm94eTo6c2luZ2xldG9uKCkucHJvY2Vzc0lkZW50aWZpZXIoKTsKLSNlbHNlCi0gICAgcmV0
dXJuIDA7Ci0jZW5kaWYKLX0KLQogLSAodm9pZClfc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRp
ZmljYXRlOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihOU1N0cmluZyAqKWhv
c3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggMGNiMWJlMjM4NzMyZDIxYzY0OTBkYTYxMmI1
YWYzOWMzMTU0MDA1MC4uZmE2MjFiOTE4MTNjMWM2MGFhMzRjN2NjOGNhYzdmMGRmZWYzNThiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bv
b2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJv
Y2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTcyLDcgKzcyLDYgQEAKIAogKyAoTlNVUkwgKilfd2Vic2l0
ZURhdGFVUkxGb3JDb250YWluZXJXaXRoVVJMOihOU1VSTCAqKWNvbnRhaW5lclVSTDsKICsgKE5T
VVJMICopX3dlYnNpdGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0aFVSTDooTlNVUkwgKiljb250YWlu
ZXJVUkwgYnVuZGxlSWRlbnRpZmllcklmTm90SW5Db250YWluZXI6KE5TU3RyaW5nICopYnVuZGxl
SWRlbnRpZmllcjsKLSsgKHBpZF90KV93ZWJBdXRoblByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKICsgKHZvaWQp
X3NldFdlYlByb2Nlc3NDb3VudExpbWl0Oih1bnNpZ25lZClsaW1pdCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBjZmRmNGExZTU0
OWYzZTJjMTUwNzIzMDFiY2FjNDExYmZiNWNjZGI4Li5jMjk4NjdiZWFmMmRmOWM3NzFkM2IyZTlj
NzYyYjFiMTFlZWQ4MDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhp
bGlhcnlQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1eGls
aWFyeVByb2Nlc3NQcm94eS5jcHAKQEAgLTg2LDExICs4Niw2IEBAIHZvaWQgQXV4aWxpYXJ5UHJv
Y2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYgbGF1CiAgICAgICAgIHZhcm5hbWUgPSAiR1BVX1BST0NFU1NfQ01EX1BSRUZJWCI7CiAgICAg
ICAgIGJyZWFrOwogI2VuZGlmCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBjYXNlIFByb2Nl
c3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgotICAgICAgICB2YXJuYW1lID0gIldF
QkFVVEhOX1BST0NFU1NfQ01EX1BSRUZJWCI7Ci0gICAgICAgIGJyZWFrOwotI2VuZGlmCiAjaWYg
RU5BQkxFKEJVQkJMRVdSQVBfU0FOREJPWCkKICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJv
Y2Vzc1R5cGU6OkRCdXNQcm94eToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQppbmRleCA4MDg1NzMyM2Y5ZDhmOWMzOGY2MWE5MjFiN2RlYjg0NGI4MDBmMjcwLi5mZGQ4ZWY2
NGExNDdjYjFhMWFmYjk1MGE5MzgzMjdiOTkzMmZhYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTQyLDggKzQy
LDYgQEAKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJVc2VySW50ZXJmYWNlSWRp
b20uaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCi0j
aW1wb3J0ICJXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIgotI2ltcG9ydCAiV2ViQXV0aG5Qcm9j
ZXNzUHJveHkuaCIKICNpbXBvcnQgIldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldl
Yk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCkBAIC0x
MDgzLDExICsxMDgxLDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6bm90aWZ5UHJlZmVyZW5jZXND
aGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcKICAgICAgICAgaWYgKGF1
dG8qIG5ldHdvcmtQcm9jZXNzID0gZGF0YVN0b3JlLm5ldHdvcmtQcm9jZXNzSWZFeGlzdHMoKSkK
ICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6Tm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKGRvbWFpbiwga2V5LCBlbmNvZGVkVmFsdWUpLCAw
KTsKICAgICB9KTsKLSAgICAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIGlmIChhdXRvIHdl
YkF1dGhuUHJvY2VzcyA9IFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b25JZkNyZWF0ZWQo
KSkKLSAgICAgICAgd2ViQXV0aG5Qcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRoblByb2Nl
c3M6Ok5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChkb21haW4sIGtleSwgZW5jb2RlZFZhbHVlKSwg
MCk7Ci0jZW5kaWYKIAogICAgIGlmIChrZXkgPT0gV0tDYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRL
ZXkgfHwga2V5ID09IFdlYktpdENhcHRpdmVQb3J0YWxNb2RlQ2hhbmdlZE5vdGlmaWNhdGlvbl9M
ZWdhY3kpCiAgICAgICAgIGNhcHRpdmVQb3J0YWxNb2RlU3RhdGVDaGFuZ2VkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4
IGQxMjU4N2U4ZmUzNmVhYTFjZmVkNzkyNmMwYzhmMzg3ODdlMjcyNmUuLjA0MTI5ODM1OGUyNGI2
YzUwNzAwZDE0NmM5MjI5YzdjZDBjZjk0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCkBAIC03NCw5ICs3NCw2IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgICAgIEdQVSwKICNlbmRpZgotI2lmIEVO
QUJMRShXRUJfQVVUSE4pCi0gICAgICAgIFdlYkF1dGhuLAotI2VuZGlmCiAjaWYgRU5BQkxFKEJV
QkJMRVdSQVBfU0FOREJPWCkKICAgICAgICAgREJ1c1Byb3h5LAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNoZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2NvY29hL1Byb2Nlc3NM
YXVuY2hlckNvY29hLm1tCmluZGV4IDQ5ZWE5ZmYzZTI1NzI1YWE5ZjAxZWRkNmU4N2YwZmUzZjMz
MDVkOWQuLmJlMTIxNTZmZjlkNDk2ZDc4YWNlYmY3YzkwNjUyZjhiYWRlZmUzY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2NvY29hL1Byb2Nlc3NMYXVuY2hl
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2NvY29hL1By
b2Nlc3NMYXVuY2hlckNvY29hLm1tCkBAIC03MiwxMCArNzIsNiBAQCBzdGF0aWMgY29uc3QgY2hh
ciogc2VydmljZU5hbWUoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVu
Y2hPcHRpbwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBjYXNlIFByb2Nlc3NMYXVuY2hl
cjo6UHJvY2Vzc1R5cGU6OkdQVToKICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LkdQ
VSI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIGNhc2UgUHJvY2Vzc0xhdW5j
aGVyOjpQcm9jZXNzVHlwZTo6V2ViQXV0aG46Ci0gICAgICAgIHJldHVybiAiY29tLmFwcGxlLldl
YktpdC5XZWJBdXRobiI7CiAjZW5kaWYKICAgICB9CiB9CkBAIC04OCwxNCArODQsMTAgQEAgc3Rh
dGljIGJvb2wgc2hvdWxkTGVha0Jvb3N0KGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0
aW9ucyYgbGF1bmNoT3B0aW9ucykKICAgICAvLyByaWdodCBwcmlvcml0aWVzLgogICAgIHJldHVy
biBmYWxzZTsKICNlbHNlCi0gICAgLy8gT24gTWFjLCBsZWFrIGEgYm9vc3Qgb250byB0aGUgTmV0
d29ya1Byb2Nlc3MsIEdQVVByb2Nlc3MsIGFuZCBXZWJBdXRoblByb2Nlc3MuCisgICAgLy8gT24g
TWFjLCBsZWFrIGEgYm9vc3Qgb250byB0aGUgTmV0d29ya1Byb2Nlc3MgYW5kIEdQVVByb2Nlc3Mu
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIGlmIChsYXVuY2hPcHRpb25zLnByb2Nlc3NU
eXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OkdQVSkKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIGlmIChsYXVuY2hPcHRp
b25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYkF1dGhu
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogICAgIHJldHVybiBsYXVuY2hPcHRpb25z
LnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Ok5ldHdvcms7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3IuaAppbmRleCA1Y2Y5YWY1NzA4ZThjMWIxZjE3YmM0ZGRjYTIy
ZWZjOTRjYzM0YWFiLi5hNTIxZDAxMTk2ZjUwYmI1NjI4MDcwNzA4ZWYwYWE2MDcxMzRlM2MyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvci5oCkBAIC02OCwxNCArNjgsMTEgQEAgcHVibGljOgogICAgIC8vIFRo
aXMgb3BlcmF0aW9uIGlzIGd1YXJhbnRlZWQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXNseS4KICAg
ICB2b2lkIGhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYp
OwogCi0gICAgdm9pZCBzZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoYm9vbCB3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQpIHsgbV93ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVu
YWJsZWQgPSB3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ7IH0KLQogcHJvdGVjdGVkOgog
ICAgIEF1dGhlbnRpY2F0b3IoKSA9IGRlZmF1bHQ7CiAKICAgICBPYnNlcnZlciogb2JzZXJ2ZXIo
KSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyLmdldCgpOyB9CiAgICAgY29uc3QgV2ViQXV0aGVu
dGljYXRpb25SZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEoKSBjb25zdCB7IHJldHVybiBtX3BlbmRp
bmdSZXF1ZXN0RGF0YTsgfQotICAgIGJvb2wgd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV93ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ7IH0KIAog
ICAgIHZvaWQgcmVjZWl2ZVJlc3BvbmQoUmVzcG9uZCYmKSBjb25zdDsKIApAQCAtODUsNyArODIs
NiBAQCBwcml2YXRlOgogCiAgICAgV2Vha1B0cjxPYnNlcnZlcj4gbV9vYnNlcnZlcjsKICAgICBX
ZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIG1fcGVuZGluZ1JlcXVlc3REYXRhOwotICAgIGJv
b2wgbV93ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQgeyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKaW5k
ZXggZTNlNGYzMjFhMTA3ZTgzZThiZDllODY4ZjE4MjUxMjk0YWFjYjY2OC4uYjMxNjczNzRmNWY0
ZThkYTRhN2RkNDYwYmEwNDQ3ZDAxOTY0YWE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmNwcApAQCAtMjM0LDExICsyMzQsNiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
OjpjYW5jZWwoKQogICAgIGNhbmNlbFJlcXVlc3QoKTsKIH0KIAotdm9pZCBBdXRoZW50aWNhdG9y
TWFuYWdlcjo6ZW5hYmxlTW9kZXJuV2ViQXV0aGVudGljYXRpb24oKQotewotICAgIG1fbW9kZSA9
IE1vZGU6Ok1vZGVybjsKLX0KLQogdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdlcjo6ZW5hYmxlTmF0
aXZlU3VwcG9ydCgpCiB7CiAgICAgbV9tb2RlID0gTW9kZTo6TmF0aXZlOwpAQCAtMjY4LDcgKzI2
Myw2IEBAIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmF1dGhlbnRpY2F0b3JBZGRlZChSZWY8
QXV0aGVudGljYXRvcj4mJiBhdXRoZW50aWNhdG9yCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKICAgICBhdXRoZW50aWNhdG9yLT5zZXRPYnNlcnZlcigqdGhpcyk7CiAgICAgYXV0aGVu
dGljYXRvci0+aGFuZGxlUmVxdWVzdChtX3BlbmRpbmdSZXF1ZXN0RGF0YSk7Ci0gICAgYXV0aGVu
dGljYXRvci0+c2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKG1fbW9kZSAhPSBNb2Rl
OjpDb21wYXRpYmxlKTsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fYXV0aGVudGljYXRvcnMuYWRk
KFdURk1vdmUoYXV0aGVudGljYXRvcikpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBh
ZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaApp
bmRleCA1OWUyYTFmN2E1YTAxODRmZDA0OWVhOTYyN2QzNTNjNDYyODViZjkyLi43Y2QxYjJjYzkw
OWEzMTY3Njc0NzAzZWEyYzNlM2UzYzFjMjBmNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmgKQEAgLTcxLDcgKzcxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01v
Y2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1ZpcnR1YWwo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdm9pZCBlbmFibGVNb2Rlcm5XZWJBdXRo
ZW50aWNhdGlvbigpOwogICAgIHZvaWQgZW5hYmxlTmF0aXZlU3VwcG9ydCgpOwogCiBwcm90ZWN0
ZWQ6CkBAIC04OSw3ICs4OCw2IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgZW51bSBjbGFz
cyBNb2RlIHsKICAgICAgICAgQ29tcGF0aWJsZSwKLSAgICAgICAgTW9kZXJuLAogICAgICAgICBO
YXRpdmUsCiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1t
CmluZGV4IGU2OWRiZGFlNTAxOGYwODRiNGIxY2ZkNTlmOWY2YmQxZmRkZmU3NDMuLmY5YjBkY2Y3
NTJmNWRiMWM4ZjllNmJhODMwNzI4OWY5MDFmMzVmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9M
b2NhbEF1dGhlbnRpY2F0b3IubW0KQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIExvY2FsQXV0aGVu
dGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoKQogICAgICAgICB9KSkgewogICAgICAgICAgICAgLy8g
T2J0YWluIGNvbnNlbnQgcGVyIFN0ZXAgMy4xCiAgICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0g
W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChMb2NhbEF1dGhlbnRpY2F0b3JQb2xpY3kg
cG9saWN5KSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKyAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBA
IC0yNTEsMzQgKzI1MSwxNCBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRp
YWwoKQogICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+cmVjZWl2ZUV4Y2VwdGlvbih7IE5v
dEFsbG93ZWRFcnJvciwgIlRoaXMgcmVxdWVzdCBoYXMgYmVlbiBjYW5jZWxsZWQgYnkgdGhlIHVz
ZXIuIl9zIH0pOwogICAgICAgICAgICAgfTsKICAgICAgICAgICAgIC8vIFNpbWlsYXIgdG8gYmVs
b3csIGNvbnNlbnQgaGFzIGFscmVhZHkgYmVlbiBnaXZlbi4KLSAgICAgICAgICAgIGlmICh3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKSkKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhM
b2NhbEF1dGhlbnRpY2F0b3JQb2xpY3k6OkFsbG93KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBvYnNlcnZlcigpLT5kZWNpZGVQb2xpY3lGb3JMb2NhbEF1dGhlbnRpY2F0b3Io
V1RGTW92ZShjYWxsYmFjaykpOworICAgICAgICAgICAgb2JzZXJ2ZXIoKS0+ZGVjaWRlUG9saWN5
Rm9yTG9jYWxBdXRoZW50aWNhdG9yKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KIAotICAgIC8vIFN0ZXAgNi4KLSAgICAvLyBHZXQgdXNl
ciBjb25zZW50LgotICAgIGlmICh3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKSkgewot
ICAgICAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5vYnNlcnZlcigpKSB7Ci0gICAgICAg
ICAgICBhdXRvIGNhbGxiYWNrID0gW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChMQUNv
bnRleHQgKmNvbnRleHQpIHsKLSAgICAgICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwotICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZU1ha2VDcmVkZW50
aWFsQWZ0ZXJSZWNlaXZpbmdMQUNvbnRleHQoY29udGV4dCk7Ci0gICAgICAgICAgICB9OwotICAg
ICAgICAgICAgb2JzZXJ2ZXItPnJlcXVlc3RMQUNvbnRleHRGb3JVc2VyVmVyaWZpY2F0aW9uKFdU
Rk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
ICAgICBpZiAoYXV0byogb2JzZXJ2ZXIgPSB0aGlzLT5vYnNlcnZlcigpKSB7CiAgICAgICAgIGF1
dG8gY2FsbGJhY2sgPSBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKExvY2FsQXV0aGVu
dGljYXRvclBvbGljeSBwb2xpY3kpIHsKLSAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAt
NTY0LDI0ICs1NDQsNiBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVHZXRBc3Nl
cnRpb25BZnRlclJlc3BvbnNlU2VsZWN0ZWQoUmVmPFdlYkNvcmU6OgogICAgIEFTU0VSVChtX3N0
YXRlID09IFN0YXRlOjpSZXF1ZXN0UmVjZWl2ZWQpOwogICAgIG1fc3RhdGUgPSBTdGF0ZTo6UmVz
cG9uc2VTZWxlY3RlZDsKIAotICAgIGlmICh3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQo
KSkgewotICAgICAgICBhdXRvIGFjY2Vzc0NvbnRyb2xSZWYgPSByZXNwb25zZS0+YWNjZXNzQ29u
dHJvbCgpOwotICAgICAgICBMQUNvbnRleHQgKmNvbnRleHQgPSByZXNwb25zZS0+bGFDb250ZXh0
KCk7Ci0gICAgICAgIGF1dG8gY2FsbGJhY2sgPSBbCi0gICAgICAgICAgICB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LAotICAgICAgICAgICAgcmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNl
KQotICAgICAgICBdIChMb2NhbENvbm5lY3Rpb246OlVzZXJWZXJpZmljYXRpb24gdmVyaWZpY2F0
aW9uKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0g
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICAgICAgd2Vha1RoaXMtPmNvbnRpbnVlR2V0QXNzZXJ0aW9uQWZ0ZXJVc2VyVmVyaWZpY2F0
aW9uKFdURk1vdmUocmVzcG9uc2UpLCB2ZXJpZmljYXRpb24sIHJlc3BvbnNlLT5sYUNvbnRleHQo
KSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgbV9jb25uZWN0aW9uLT52ZXJpZnlVc2VyKGFjY2Vz
c0NvbnRyb2xSZWYsIGNvbnRleHQsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQogICAgIGF1dG8mIHJlcXVlc3RPcHRpb25zID0gc3RkOjpnZXQ8UHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPihyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpOwogCiAgICAg
YXV0byBhY2Nlc3NDb250cm9sUmVmID0gcmVzcG9uc2UtPmFjY2Vzc0NvbnRyb2woKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhu
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYmEwYjQ4YmJhMmU3OWYzMTBhMTk3MTRmNGRkOTVhNjUzODVmM2VhZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwxOTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJXZWJBdXRoblByb2Nlc3NQcm94eS5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikK
LQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uSW5mby5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUGFn
ZU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKLSNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+Ci0jaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotI2lu
Y2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgotI2VuZGlmCi0KLSNkZWZpbmUgTUVTU0FH
RV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIHRoaXMtPmNv
bm5lY3Rpb24oKSkKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotc3RhdGljIFJlZlB0cjxXZWJBdXRoblByb2Nlc3NQcm94eT4mIHNoYXJlZFByb2Nlc3Mo
KQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWZQdHI8V2ViQXV0aG5Qcm9jZXNzUHJv
eHk+PiBwcm9jZXNzOwotICAgIHJldHVybiBwcm9jZXNzLmdldCgpOwotfQotCi1XZWJBdXRoblBy
b2Nlc3NQcm94eSYgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbigpCi17Ci0gICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGF1dG8gY3JlYXRlQW5kSW5pdGlhbGl6ZU5l
d1Byb2Nlc3MgPSBbXSB7Ci0gICAgICAgIGF1dG8gd2ViQXV0aG5Qcm9jZXNzID0gYWRvcHRSZWYo
Km5ldyBXZWJBdXRoblByb2Nlc3NQcm94eSk7Ci0gICAgICAgIFdlYkF1dGhuUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICAgICAgICBwYXJhbWV0ZXJzLmF1eGlsaWFyeVBy
b2Nlc3NQYXJhbWV0ZXJzID0gd2ViQXV0aG5Qcm9jZXNzLT5hdXhpbGlhcnlQcm9jZXNzUGFyYW1l
dGVycygpOwotICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBXZWJBdXRobiBwcm9jZXNzLgotICAg
ICAgICB3ZWJBdXRoblByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYkF1dGhuUHJvY2Vzczo6SW5p
dGlhbGl6ZVdlYkF1dGhuUHJvY2VzcyhwYXJhbWV0ZXJzKSwgMCk7Ci0gICAgICAgIHdlYkF1dGhu
UHJvY2Vzcy0+dXBkYXRlUHJvY2Vzc0Fzc2VydGlvbigpOwotICAgICAgICByZXR1cm4gd2ViQXV0
aG5Qcm9jZXNzOwotICAgIH07Ci0KLSAgICBpZiAoIXNoYXJlZFByb2Nlc3MoKSkKLSAgICAgICAg
c2hhcmVkUHJvY2VzcygpID0gY3JlYXRlQW5kSW5pdGlhbGl6ZU5ld1Byb2Nlc3MoKTsKLSAgICBy
ZXR1cm4gKnNoYXJlZFByb2Nlc3MoKTsKLX0KLQotV2ViQXV0aG5Qcm9jZXNzUHJveHkqIFdlYkF1
dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b25JZkNyZWF0ZWQoKQotewotICAgIHJldHVybiBzaGFy
ZWRQcm9jZXNzKCkuZ2V0KCk7Ci19Ci0KLVdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpXZWJBdXRoblBy
b2Nlc3NQcm94eSgpCi0gICAgOiBBdXhpbGlhcnlQcm9jZXNzUHJveHkoKQotICAgICwgbV90aHJv
dHRsZXIoKnRoaXMsIGZhbHNlKQotewotICAgIGNvbm5lY3QoKTsKLX0KLQotV2ViQXV0aG5Qcm9j
ZXNzUHJveHk6On5XZWJBdXRoblByb2Nlc3NQcm94eSgpID0gZGVmYXVsdDsKLQotdm9pZCBXZWJB
dXRoblByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5j
aE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCi17Ci0gICAgbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlw
ZSA9IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYkF1dGhuOwotICAgIEF1eGlsaWFy
eVByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25zKTsKLX0KLQotdm9p
ZCBXZWJBdXRoblByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlv
biYpCi17Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERv
d24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQotewotICAgIEFTU0VSVF9VTlVTRUQoY29u
bmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25uZWN0aW9uKTsKLX0KLQotdm9pZCBX
ZWJBdXRoblByb2Nlc3NQcm94eTo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9j
ZXNzUHJveHkmIHdlYlByb2Nlc3NQcm94eSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCi17Ci0gICAg
UkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYkF1dGhuUHJvY2Vzc1Byb3h5
IGlzIHRha2luZyBhIGJhY2tncm91bmQgYXNzZXJ0aW9uIGJlY2F1c2UgYSB3ZWIgcHJvY2VzcyBp
cyByZXF1ZXN0aW5nIGEgY29ubmVjdGlvbiIsIHRoaXMpOwotICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViQXV0aG5Qcm9jZXNzOjpDcmVhdGVXZWJBdXRobkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MgeyB3ZWJQcm9jZXNzUHJveHkuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkgfSwgW3Ro
aXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcGx5ID0gV1RGTW92ZShyZXBseSld
KGF1dG8mJiBpZGVudGlmaWVyKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykgewot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIldlYkF1dGhuUHJvY2Vzc1By
b3h5OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOiBXZWJBdXRoblByb2Nlc3NQcm94eSBk
ZWFsbG9jYXRlZCBkdXJpbmcgY29ubmVjdGlvbiBlc3RhYmxpc2htZW50Iik7Ci0gICAgICAgICAg
ICByZXR1cm4gcmVwbHkoeyB9KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghaWRlbnRpZmll
cikgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIldlYkF1dGhuUHJv
Y2Vzc1Byb3h5OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOiBjb25uZWN0aW9uIGlkZW50
aWZpZXIgaXMgZW1wdHkiKTsKLSAgICAgICAgICAgIHJldHVybiByZXBseSh7IH0pOwotICAgICAg
ICB9Ci0KLSAgICAgICAgTUVTU0FHRV9DSEVDSyhNQUNIX1BPUlRfVkFMSUQoaWRlbnRpZmllci0+
cG9ydCgpKSk7Ci0gICAgICAgIHJlcGx5KFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsg
SVBDOjpBdHRhY2htZW50IHsgaWRlbnRpZmllci0+cG9ydCgpLCBNQUNIX01TR19UWVBFX01PVkVf
U0VORCB9IH0pOwotICAgIH0sIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZl
bldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3NQcm94
eTo6d2ViQXV0aG5Qcm9jZXNzQ3Jhc2hlZCgpCi17Ci0gICAgc2hhcmVkUHJvY2VzcygpID0gbnVs
bHB0cjsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25u
ZWN0aW9uJikKLXsKLSAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KLSAg
ICB3ZWJBdXRoblByb2Nlc3NDcmFzaGVkKCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzUHJv
eHk6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6TWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUpCi17Ci0gICAgbG9nSW52YWxpZE1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZU5hbWUpOwotCi0gICAgV2ViUHJvY2Vzc1Bvb2w6OmRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShtZXNzYWdlTmFtZSk7Ci0KLSAgICAvLyBUZXJtaW5hdGUgdGhlIFdl
YkF1dGhuIHByb2Nlc3MuCi0gICAgdGVybWluYXRlKCk7Ci0KLSAgICAvLyBTaW5jZSB3ZSd2ZSBp
bnZhbGlkYXRlZCB0aGUgY29ubmVjdGlvbiB3ZSdsbCBuZXZlciBnZXQgYSBJUEM6OkNvbm5lY3Rp
b246OkNsaWVudDo6ZGlkQ2xvc2UKLSAgICAvLyBjYWxsYmFjayBzbyB3ZSdsbCBleHBsaWNpdGx5
IGNhbGwgaXQgaGVyZSBpbnN0ZWFkLgotICAgIGRpZENsb3NlKGNvbm5lY3Rpb24pOwotfQotCi12
b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5j
aGVyKiBsYXVuY2hlciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyKQotewotICAgIEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5n
KGxhdW5jaGVyLCBjb25uZWN0aW9uSWRlbnRpZmllcik7Ci0KLSAgICBpZiAoIUlQQzo6Q29ubmVj
dGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7Ci0gICAgICAg
IHdlYkF1dGhuUHJvY2Vzc0NyYXNoZWQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlv
biA9IHRoaXMtPmNvbm5lY3Rpb24oKS0+eHBjQ29ubmVjdGlvbigpKQotICAgICAgICBtX3Rocm90
dGxlci5kaWRDb25uZWN0VG9Qcm9jZXNzKHhwY19jb25uZWN0aW9uX2dldF9waWQoY29ubmVjdGlv
bikpOwotI2VuZGlmCi0KLSAgICBiZWdpblJlc3BvbnNpdmVuZXNzQ2hlY2tzKCk7Ci19Ci0KLXZv
aWQgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OnVwZGF0ZVByb2Nlc3NBc3NlcnRpb24oKQotewotICAg
IGJvb2wgaGFzQW55Rm9yZWdyb3VuZFdlYlByb2Nlc3NlcyA9IGZhbHNlOwotICAgIGJvb2wgaGFz
QW55QmFja2dyb3VuZFdlYlByb2Nlc3NlcyA9IGZhbHNlOwotCi0gICAgZm9yIChhdXRvJiBwcm9j
ZXNzUG9vbCA6IFdlYlByb2Nlc3NQb29sOjphbGxQcm9jZXNzUG9vbHMoKSkgewotICAgICAgICBo
YXNBbnlGb3JlZ3JvdW5kV2ViUHJvY2Vzc2VzIHw9IHByb2Nlc3NQb29sLT5oYXNGb3JlZ3JvdW5k
V2ViUHJvY2Vzc2VzKCk7Ci0gICAgICAgIGhhc0FueUJhY2tncm91bmRXZWJQcm9jZXNzZXMgfD0g
cHJvY2Vzc1Bvb2wtPmhhc0JhY2tncm91bmRXZWJQcm9jZXNzZXMoKTsKLSAgICB9Ci0KLSAgICBp
ZiAoaGFzQW55Rm9yZWdyb3VuZFdlYlByb2Nlc3NlcykgewotICAgICAgICBpZiAoIVByb2Nlc3NU
aHJvdHRsZXI6OmlzVmFsaWRGb3JlZ3JvdW5kQWN0aXZpdHkobV9hY3Rpdml0eUZyb21XZWJQcm9j
ZXNzZXMpKSB7Ci0gICAgICAgICAgICBtX2FjdGl2aXR5RnJvbVdlYlByb2Nlc3NlcyA9IHRocm90
dGxlcigpLmZvcmVncm91bmRBY3Rpdml0eSgiV2ViQXV0aG4gZm9yIGZvcmVncm91bmQgdmlldyhz
KSJfcyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoaGFzQW55
QmFja2dyb3VuZFdlYlByb2Nlc3NlcykgewotICAgICAgICBpZiAoIVByb2Nlc3NUaHJvdHRsZXI6
OmlzVmFsaWRCYWNrZ3JvdW5kQWN0aXZpdHkobV9hY3Rpdml0eUZyb21XZWJQcm9jZXNzZXMpKSB7
Ci0gICAgICAgICAgICBtX2FjdGl2aXR5RnJvbVdlYlByb2Nlc3NlcyA9IHRocm90dGxlcigpLmJh
Y2tncm91bmRBY3Rpdml0eSgiV2ViQXV0aG4gZm9yIGJhY2tncm91bmQgdmlldyhzKSJfcyk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX2FjdGl2aXR5RnJvbVdlYlBy
b2Nlc3NlcyA9IG51bGxwdHI7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jdW5kZWYg
TUVTU0FHRV9DSEVDSwotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoblByb2Nlc3NQcm94eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMWJmMDQ3
MTdhNjUyMGZmYTRhNjdlMzc4NjBkY2FiYmY2MmU1NjUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5MCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhO
KQotCi0jaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmgiCi0jaW5jbHVkZSAiUHJvY2Vz
c0xhdW5jaGVyLmgiCi0jaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgotI2luY2x1ZGUgIlBy
b2Nlc3NUaHJvdHRsZXJDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVy
LmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgiCi0jaW5jbHVk
ZSA8bWVtb3J5PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViUHJvY2Vzc1Byb3h5
OwotY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKLXN0cnVjdCBXZWJBdXRoblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM7Ci0KLWNsYXNzIFdlYkF1dGhuUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGlj
IEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsK
LSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
ZWJBdXRoblByb2Nlc3NQcm94eSk7Ci0gICAgZnJpZW5kIExhenlOZXZlckRlc3Ryb3llZDxXZWJB
dXRoblByb2Nlc3NQcm94eT47Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFdlYkF1dGhuUHJvY2Vzc1By
b3h5JiBzaW5nbGV0b24oKTsKLSAgICBzdGF0aWMgV2ViQXV0aG5Qcm9jZXNzUHJveHkqIHNpbmds
ZXRvbklmQ3JlYXRlZCgpOwotCi0gICAgdm9pZCBnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
KFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFdlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7Ci0KLSAgICBQcm9jZXNzVGhyb3R0bGVy
JiB0aHJvdHRsZXIoKSBmaW5hbCB7IHJldHVybiBtX3Rocm90dGxlcjsgfQotICAgIHZvaWQgdXBk
YXRlUHJvY2Vzc0Fzc2VydGlvbigpOwotCi0gICAgLy8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAot
ICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uKSBmaW5hbCB7IH0KLSAg
ICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJBdXRo
blByb2Nlc3MiX3M7IH0KLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBXZWJBdXRoblByb2Nlc3NQ
cm94eSgpOwotICAgIH5XZWJBdXRoblByb2Nlc3NQcm94eSgpOwotCi0gICAgLy8gQXV4aWxpYXJ5
UHJvY2Vzc1Byb3h5Ci0gICAgQVNDSUlMaXRlcmFsIHByb2Nlc3NOYW1lKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIldlYkF1dGhuIl9zOyB9Ci0KLSAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJv
Y2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb25uZWN0
aW9uV2lsbE9wZW4oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwcm9jZXNz
V2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCB3ZWJB
dXRoblByb2Nlc3NDcmFzaGVkKCk7Ci0KLSAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50Ci0g
ICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbCB7IGNvbXBsZXRp
b25IYW5kbGVyKCk7IH0KLQotICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50Ci0gICAgdm9p
ZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyKSBvdmVycmlkZTsKLQotICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0g
ICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VOYW1l
KSBvdmVycmlkZTsKLQotICAgIFByb2Nlc3NUaHJvdHRsZXIgbV90aHJvdHRsZXI7Ci0gICAgUHJv
Y2Vzc1Rocm90dGxlcjo6QWN0aXZpdHlWYXJpYW50IG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2Vz
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDc3
YzRiZTc5NDNkMWIwMjQyMmU3Njc2Mjc4YzIwZjhjMDk1M2IwNDkuLjMwOGNmNTRhNWY1YzIzNzkx
ODk0N2M5MTMyMDIxYjE0MTIwZjg4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKQEAgLTExNiwxMSArMTE2LDYgQEAKICNpbmNsdWRlICJHUFVQcm9jZXNz
UHJveHkuaCIKICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSNpbmNsdWRlICJXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc1By
b3h5LmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rvci5oPgogI2VuZGlmCkBAIC01MjEsMjAgKzUx
Niw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldEdQVVByb2Nlc3NDb25uZWN0aW9uKFdlYlBy
b2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBHCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShX
RUJfQVVUSE4pCi12b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBs
eSkKLXsKLSAgICBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCkuZ2V0V2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbih3ZWJQcm9jZXNzUHJveHksIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCB3ZWJQcm9jZXNzUHJveHkgPSBXZWFrUHRyIHsgd2ViUHJvY2Vzc1Byb3h5
IH0sIHJlcGx5ID0gV1RGTW92ZShyZXBseSldIChhdXRvJiBjb25uZWN0aW9uSW5mbykgbXV0YWJs
ZSB7Ci0gICAgICAgIGlmIChVTkxJS0VMWSghSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNW
YWxpZChjb25uZWN0aW9uSW5mby5pZGVudGlmaWVyKCkpICYmIHdlYlByb2Nlc3NQcm94eSAmJiB3
ZWFrVGhpcykpIHsKLSAgICAgICAgICAgIFdFQlBST0NFU1NQT09MX1JFTEVBU0VfTE9HX0VSUk9S
KFByb2Nlc3MsICJnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOiBGYWlsZWQgZmlyc3QgYXR0
ZW1wdCwgcmV0cnlpbmciKTsKLSAgICAgICAgICAgIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5n
bGV0b24oKS5nZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCp3ZWJQcm9jZXNzUHJveHksIFdU
Rk1vdmUocmVwbHkpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBy
ZXBseShjb25uZWN0aW9uSW5mbyk7Ci0gICAgfSk7Ci19Ci0jZW5kaWYKLQogYm9vbCBXZWJQcm9j
ZXNzUG9vbDo6c191c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzID0gZmFsc2U7CiAKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9u
VG9OZXR3b3JrUHJvY2VzcyhSZW1vdGVXb3JrZXJUeXBlIHdvcmtlclR5cGUsIFJlZ2lzdHJhYmxl
RG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXI+IHJlcXVlc3RpbmdQcm9jZXNzSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlm
aWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCmluZGV4IDQwOWE3OWI1MWI3MDUwZDEwOGJlMTMxMGZlMmYwYTJjMGY3NTU3ZTcuLmI4MjZh
N2NiZjZmNGEwODdlMzliNzg5MmZiYzgwMmM1YjQ4YWQ2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMzY4LDExICszNjgsNiBAQCBwdWJsaWM6CiAgICAg
R1BVUHJvY2Vzc1Byb3h5JiBlbnN1cmVHUFVQcm9jZXNzKCk7CiAgICAgR1BVUHJvY2Vzc1Byb3h5
KiBncHVQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9ncHVQcm9jZXNzLmdldCgpOyB9CiAjZW5k
aWYKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgdm9pZCBnZXRXZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYsIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7Ci0jZW5kaWYKLQogICAg
IC8vIE5ldHdvcmsgUHJvY2VzcyBNYW5hZ2VtZW50CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0Rp
ZFRlcm1pbmF0ZShOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgTmV0d29ya1Byb2Nlc3NQcm94eTo6VGVy
bWluYXRpb25SZWFzb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAxNzA0NTBhOTViYTZlOGE0OWVlNWZjODFlMTFiNTUwOTFiYjk0YjYyLi44
OTY2OWQxMTE3MjgxYzg1NWJkNWRlODE1YzBkNzNmMzkyMDliYzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTg0MiwxNCArODQyLDYgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmdwdVByb2Nlc3NFeGl0ZWQoR1BVUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uIHJlYXNvbikKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLXZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQotewotICAgIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTihtZXNzYWdlU291cmNl
SXNWYWxpZFdlYkNvbnRlbnRQcm9jZXNzKCksIHJlcGx5KHsgfSkpOwotICAgIG1fcHJvY2Vzc1Bv
b2wtPmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKnRoaXMsIFdURk1vdmUocmVwbHkpKTsK
LX0KLSNlbmRpZgotCiAjaWYgIVBMQVRGT1JNKE1BQykKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5Ojpz
aG91bGRBbGxvd05vblZhbGlkSW5qZWN0ZWRDb2RlKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMDU1NWQzZDU3NjM0NWJiMjQ5NjEwODU4
ZDY5NDY2ZTQ5MTU5ZjFhYy4uYjg1MmUwYjRjNWUyZjA4NzQ3YjcxZDZlNWEwMzY5YWQzYjQ3ZDky
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTQ4MSwx
MCArNDgxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEdQVVByb2Nlc3NDb25uZWN0aW9uKEdQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyYmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRHUFVQcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogCi0jaWYg
RU5BQkxFKFdFQl9BVVRITikKLSAgICB2b2lkIGdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24o
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkRl
bGF5ZWRSZXBseSYmKTsKLSNlbmRpZgotCiAgICAgYm9vbCBzaG91bGRBbGxvd05vblZhbGlkSW5q
ZWN0ZWRDb2RlKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgY29uc3QgTWVtb3J5Q29tcGFjdExvb2t1
cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFN0cmluZz4mIHBsYXRmb3JtUGF0aHNXaXRoQXNzdW1lZFJl
YWRBY2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA4OGEwZjgyNjU0NmVhMzQzMTkzNjQ4OWZmMjBlZmUzZGFi
OWZlOTgzLi4xM2NjZWRjYzkxOTA3YzViZDM2M2ZiNGNiZmRjMGU3ODFiZTA4YjlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0zNywxMCArMzcsNiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIEdldEdQVVByb2Nlc3NDb25uZWN0aW9uKHN0cnVjdCBXZWJLaXQ6OkdQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoc3RydWN0IFdlYktpdDo6
R1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIGNvbm5lY3Rpb25JbmZvKSBTeW5jaHJvbm91cwogI2Vu
ZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIEdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24oKSAtPiAoc3RydWN0IFdlYktpdDo6V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8g
Y29ubmVjdGlvbkluZm8pIFN5bmNocm9ub3VzCi0jZW5kaWYKLQogICAgIFNldElzSG9sZGluZ0xv
Y2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAKICAgICBEaWRFeGNlZWRBY3Rp
dmVNZW1vcnlMaW1pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vz
cy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8tT1NYLnBs
aXN0IGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLU9TWC5wbGlzdApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDVhYWUzYzM1ZjcxYWM4ZmU3Nzc2YzEyZGM1ZDM5ODdhNGI3ZGY0Ny4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2
aWNlL0luZm8tT1NYLnBsaXN0CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMg
Ii0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMv
UHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8
a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lP
Tn0sIENvcHlyaWdodCAyMDAzLTIwMjIgQXBwbGUgSW5jLjwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5k
bGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgotCTxzdHJpbmc+RW5nbGlzaDwvc3RyaW5nPgotCTxr
ZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08
L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmllcjwva2V5PgotCTxzdHJpbmc+JHtQUk9E
VUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlv
bmFyeVZlcnNpb248L2tleT4KLQk8c3RyaW5nPjYuMDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVO
YW1lPC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVu
ZGxlUGFja2FnZVR5cGU8L2tleT4KLQk8c3RyaW5nPlhQQyE8L3N0cmluZz4KLQk8a2V5PkNGQnVu
ZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RS
SU5HfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaWduYXR1cmU8L2tleT4KLQk8c3RyaW5nPj8/
Pz88L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lvbjwva2V5PgotCTxzdHJpbmc+JHtCVU5E
TEVfVkVSU0lPTn08L3N0cmluZz4KLQk8a2V5PkxTRmlsZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+
Ci0JPHRydWUvPgotCTxrZXk+TlNQcmluY2lwYWxDbGFzczwva2V5PgotCTxzdHJpbmc+TlNBcHBs
aWNhdGlvbjwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1lbnQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtl
eT5YUENTZXJ2aWNlPC9rZXk+Ci0JPGRpY3Q+Ci0JCTxrZXk+U2VydmljZVR5cGU8L2tleT4KLQkJ
PHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgotCQk8a2V5PkpvaW5FeGlzdGluZ1Nlc3Npb248
L2tleT4KLQkJPHRydWUvPgotCQk8a2V5PlJ1bkxvb3BUeXBlPC9rZXk+Ci0JCTxzdHJpbmc+TlNS
dW5Mb29wPC9zdHJpbmc+Ci0JCTxrZXk+X011bHRpcGxlSW5zdGFuY2VzPC9rZXk+Ci0JCTx0cnVl
Lz4KLQk8L2RpY3Q+Ci08L2RpY3Q+Ci08L3BsaXN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2Vy
dmljZS9JbmZvLWlPUy5wbGlzdCBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5
UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1pT1MucGxpc3QKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmODY1ZWIyMjhmNWY3MjVlZmEwMDhmZmI5NDJh
NmQ4MTMzNDEwM2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2
aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLWlPUy5wbGlzdAorKysgL2Rldi9udWxsCkBAIC0xLDQ1
ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZ
UEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3
LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9uPSIx
LjAiPgotPGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZUdldEluZm9TdHJpbmc8L2tleT4KLQk8c3RyaW5n
PiR7QlVORExFX1ZFUlNJT059LCBDb3B5cmlnaHQgMjAwMy0yMDIyIEFwcGxlIEluYy48L3N0cmlu
Zz4KLQk8a2V5PkNGQnVuZGxlRGV2ZWxvcG1lbnRSZWdpb248L2tleT4KLQk8c3RyaW5nPkVuZ2xp
c2g8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlRXhlY3V0YWJsZTwva2V5PgotCTxzdHJpbmc+JHtF
WEVDVVRBQkxFX05BTUV9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUlkZW50aWZpZXI8L2tleT4K
LQk8c3RyaW5nPiR7UFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUn08L3N0cmluZz4KLQk8a2V5PkNG
QnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+Ci0JPHN0cmluZz42LjA8L3N0cmluZz4K
LQk8a2V5PkNGQnVuZGxlTmFtZTwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX05BTUV9PC9zdHJp
bmc+Ci0JPGtleT5DRkJ1bmRsZVBhY2thZ2VUeXBlPC9rZXk+Ci0JPHN0cmluZz5YUEMhPC9zdHJp
bmc+Ci0JPGtleT5DRkJ1bmRsZVNob3J0VmVyc2lvblN0cmluZzwva2V5PgotCTxzdHJpbmc+JHtT
SE9SVF9WRVJTSU9OX1NUUklOR308L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9r
ZXk+Ci0JPHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4K
LQk8c3RyaW5nPiR7QlVORExFX1ZFUlNJT059PC9zdHJpbmc+Ci0JPGtleT5MU0ZpbGVRdWFyYW50
aW5lRW5hYmxlZDwva2V5PgotCTx0cnVlLz4KLQk8a2V5Pk5TUHJpbmNpcGFsQ2xhc3M8L2tleT4K
LQk8c3RyaW5nPk5TQXBwbGljYXRpb248L3N0cmluZz4KLQk8a2V5PkxTVUlFbGVtZW50PC9rZXk+
Ci0JPHRydWUvPgotCTxrZXk+WFBDU2VydmljZTwva2V5PgotCTxkaWN0PgotCQk8a2V5PlNlcnZp
Y2VUeXBlPC9rZXk+Ci0JCTxzdHJpbmc+QXBwbGljYXRpb248L3N0cmluZz4KLQkJPGtleT5SdW5M
b29wVHlwZTwva2V5PgotCQk8c3RyaW5nPk5TUnVuTG9vcDwvc3RyaW5nPgotICAgICAgICAgICAg
ICAgIDxrZXk+X1Byb2Nlc3NUeXBlPC9rZXk+Ci0gICAgICAgICAgICAgICAgPHN0cmluZz5BcHA8
L3N0cmluZz4KLQkJPGtleT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tleT4KLQkJPHRydWUvPgotCTwv
ZGljdD4KLQk8a2V5PkNhbkluaGVyaXRBcHBsaWNhdGlvblN0YXRlRnJvbU90aGVyUHJvY2Vzc2Vz
PC9rZXk+Ci0JPHRydWUvPgotPC9kaWN0PgotPC9wbGlzdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRo
blNlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzYWQ0NDhhYTg2ZmM4YjE4ZDlkYmJlMzJhNWI2
YzVkNThkOTE0MWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2
aWNlL1dlYkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW0KKysrIC9kZXYvbnVsbApAQCAtMSw2NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0KLSNpbXBvcnQgIkVudmly
b25tZW50VXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJXS0Jhc2UuaCIKLSNpbXBvcnQgIldlYkF1dGhu
UHJvY2Vzcy5oIgotI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKLQotI2lmIEVOQUJM
RShXRUJfQVVUSE4pCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJBdXRoblNlcnZp
Y2VJbml0aWFsaXplckRlbGVnYXRlIDogcHVibGljIFhQQ1NlcnZpY2VJbml0aWFsaXplckRlbGVn
YXRlIHsKLXB1YmxpYzoKLSAgICBXZWJBdXRoblNlcnZpY2VJbml0aWFsaXplckRlbGVnYXRlKE9T
T2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0
aWFsaXplck1lc3NhZ2UpCi0gICAgICAgIDogWFBDU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUo
V1RGTW92ZShjb25uZWN0aW9uKSwgaW5pdGlhbGl6ZXJNZXNzYWdlKQotICAgIHsKLSAgICB9Ci19
OwotCi10ZW1wbGF0ZTw+Ci12b2lkIGluaXRpYWxpemVBdXhpbGlhcnlQcm9jZXNzPFdlYkF1dGhu
UHJvY2Vzcz4oQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYkF1dGhuUHJvY2Vzcz4gV2Vi
QXV0aG5Qcm9jZXNzKFdURk1vdmUocGFyYW1ldGVycykpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCi0KLWV4dGVybiAiQyIgV0tfRVhQ
T1JUIHZvaWQgV0VCQVVUSE5fU0VSVklDRV9JTklUSUFMSVpFUih4cGNfY29ubmVjdGlvbl90IGNv
bm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2UsIHhwY19vYmplY3RfdCBw
cmlvcml0eUJvb3N0TWVzc2FnZSk7Ci0KLXZvaWQgV0VCQVVUSE5fU0VSVklDRV9JTklUSUFMSVpF
Uih4cGNfY29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1l
c3NhZ2UsIHhwY19vYmplY3RfdCBwcmlvcml0eUJvb3N0TWVzc2FnZSkKLXsKLSAgICBXVEY6Omlu
aXRpYWxpemVNYWluVGhyZWFkKCk7Ci0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIFdlYktp
dDo6WFBDU2VydmljZUluaXRpYWxpemVyPFdlYktpdDo6V2ViQXV0aG5Qcm9jZXNzLCBXZWJLaXQ6
OldlYkF1dGhuU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGU+KGNvbm5lY3Rpb24sIGluaXRpYWxp
emVyTWVzc2FnZSwgcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwotI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVUSE4pCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblBy
b2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNTE3YzNiYWMxMmY4NzEzNzdhNzNhZTNkMTU2YjAzZTczOGZiMDI3ZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
LQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRlICJBdXRoZW50aWNhdG9yTWFuYWdl
ci5oIgotI2luY2x1ZGUgIkxvY2FsU2VydmljZS5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vz
cy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvclJlc3BvbnNlRGF0YS5oPgotCi0j
aWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSNpbmNsdWRlICJJUENUZXN0ZXJNZXNzYWdlcy5o
IgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLVJlZjxXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y3JlYXRlKFdlYkF1dGhuUHJvY2VzcyYgV2ViQXV0aG5Qcm9jZXNzLCBX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQotewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJBdXRoblByb2Nl
c3MsIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBjb25uZWN0aW9uSWRlbnRpZmllcikpOwotfQotCi1X
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyhXZWJBdXRoblByb2Nlc3MmIFdlYkF1dGhuUHJvY2VzcywgV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllcikKLSAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rp
b246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkK
LSAgICAsIG1fV2ViQXV0aG5Qcm9jZXNzKFdlYkF1dGhuUHJvY2VzcykKLSAgICAsIG1fd2ViUHJv
Y2Vzc0lkZW50aWZpZXIod2ViUHJvY2Vzc0lkZW50aWZpZXIpCi17Ci0gICAgUkVMRUFTRV9BU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwotfQotCi1X
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoKQotewotICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAg
IG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwotfQotCi12b2lkIFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKLXsKLX0KLQotdm9pZCBX
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZU5hbWUgbWVzc2FnZU5hbWUp
Ci17Ci0gICAgV1RGTG9nQWx3YXlzKCJSZWNlaXZlZCBhbiBpbnZhbGlkIG1lc3NhZ2UgXCIlc1wi
IGZyb20gdGhlIHdlYiBwcm9jZXNzLlxuIiwgZGVzY3JpcHRpb24obWVzc2FnZU5hbWUpKTsKLSAg
ICBDUkFTSCgpOwotfQotCi1ib29sIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlz
cGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBk
ZWNvZGVyKQotewotI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpJUENUZXN0ZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgewotICAgICAgICBtX2lwY1Rlc3Rlci5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBkZWNvZGVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotI2VuZGlmCi0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6
RGVjb2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikK
LXsKLSNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6SVBDVGVzdGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCkpIHsKLSAgICAgICAgbV9pcGNUZXN0ZXIuZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIsIHJlcGx5RW5jb2Rlcik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0K
LSNlbmRpZgotICAgIHJldHVybiBmYWxzZTsKLX0KLQotCi12b2lkIFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6bWFrZUNyZWRlbnRpYWwoVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQotewotICAg
IGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBudWxscHRy
LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3Rk
OjpudWxsb3B0LCB7IH0sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIs
IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOwotfQotCi12
b2lkIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0QXNzZXJ0aW9uKFZlY3Rvcjx1
aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlv
bnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIm
JiBoYW5kbGVyKQotewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3Zl
KG9wdGlvbnMpLCBudWxscHRyLCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWls
YWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwg
U3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUo
aGFuZGxlcikpOwotfQotCi12b2lkIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFu
ZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYgZGF0YSwgUmVxdWVzdENv
bXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKLXsKLSAgICBhdXRvIGNhbGxiYWNrID0gW2hhbmRs
ZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXSAoc3RkOjp2YXJpYW50PFJlZjxBdXRoZW50aWNhdG9yUmVz
cG9uc2U+LCBFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LCBbJl0o
Y29uc3QgUmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4mIHJlc3BvbnNlKSB7Ci0gICAgICAgICAg
ICBoYW5kbGVyKHJlc3BvbnNlLT5kYXRhKCksIHJlc3BvbnNlLT5hdHRhY2htZW50KCksIHsgfSk7
Ci0gICAgICAgIH0sIFsmXShjb25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRpb24pIHsKLSAgICAg
ICAgICAgIGhhbmRsZXIoeyB9LCBzdGF0aWNfY2FzdDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4o
MCksIGV4Y2VwdGlvbik7Ci0gICAgICAgIH0pOwotICAgIH07Ci0gICAgbV9XZWJBdXRoblByb2Nl
c3MtPmF1dGhlbnRpY2F0b3JNYW5hZ2VyKCkuaGFuZGxlUmVxdWVzdChXVEZNb3ZlKGRhdGEpLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlD
b21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCi17Ci0gICAgaGFuZGxlcihMb2NhbFNlcnZpY2U6
OmlzQXZhaWxhYmxlKCkpOwotfQotCi12b2lkIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihXZWJDb3JlOjpNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKLXsKLSAgICBtX1dl
YkF1dGhuUHJvY2Vzcy0+c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihXVEZN
b3ZlKGNvbmZpZ3VyYXRpb24pKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRo
blByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWM3NTc2MzM2NjZiYmZiNjhmYzQ5ZDA1M2Q5YmNiYWQ3
YjNmNzdkOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKLSNpbmNsdWRlICJXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotCi0jaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSNpbmNsdWRlICJJ
UENUZXN0ZXIuaCIKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1lbnVtIGNsYXNzIEF1
dGhlbnRpY2F0b3JBdHRhY2htZW50Owotc3RydWN0IEF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGE7
Ci1zdHJ1Y3QgRXhjZXB0aW9uRGF0YTsKLXN0cnVjdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uOwotc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM7Ci1z
dHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOwotfQotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotY2xhc3MgV2ViQXV0aG5Qcm9jZXNzOwotc3RydWN0IFdlYkF1dGhlbnRpY2F0
aW9uUmVxdWVzdERhdGE7Ci0KLWNsYXNzIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcwot
ICAgIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzPgot
ICAgICwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8
V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjcmVhdGUoV2ViQXV0aG5Qcm9jZXNzJiwg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7
Ci0gICAgdmlydHVhbCB+V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7Ci0KLSAgICBJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7
IH0KLSAgICBXZWJBdXRoblByb2Nlc3MmIFdlYkF1dGhuUHJvY2Vzc1Byb2Nlc3MoKSB7IHJldHVy
biBtX1dlYkF1dGhuUHJvY2Vzcy5nZXQoKTsgfQotICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV93ZWJQcm9jZXNzSWRl
bnRpZmllcjsgfQotCi1wcml2YXRlOgotICAgIHVzaW5nIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxl
ciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJl
c3BvbnNlRGF0YSYsIFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50LCBjb25zdCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhJik+OwotICAgIHVzaW5nIFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIg
PSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPjsKLQotICAgIFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhXZWJBdXRoblByb2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKLQotICAgIC8vIElQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50Ci0gICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBmaW5hbDsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1l
c3NhZ2VOYW1lKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwotICAgIGJvb2wgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29k
ZXI+Jik7Ci0KLSAgICBib29sIGRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKTsKLSAgICBib29sIGRpc3BhdGNoU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJiwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mKTsKLQotICAgIC8vIFJl
Y2VpdmVycy4KLSAgICB2b2lkIG1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiYmIGhhc2gs
IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiwgYm9vbCBwcm9j
ZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKTsKLSAgICB2b2lk
IGdldEFzc2VydGlvbihWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJl
cXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKTsKLSAgICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRm
b3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYpOwotICAg
IHZvaWQgc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihXZWJDb3JlOjpNb2Nr
V2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uJiYpOwotCi0gICAgdm9pZCBoYW5kbGVSZXF1
ZXN0KFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmJiwgUmVxdWVzdENvbXBsZXRpb25IYW5k
bGVyJiYpOwotCi0gICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotICAgIFJl
ZjxXZWJBdXRoblByb2Nlc3M+IG1fV2ViQXV0aG5Qcm9jZXNzOwotICAgIGNvbnN0IFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7Ci0jaWYgRU5BQkxFKElQ
Q19URVNUSU5HX0FQSSkKLSAgICBJUENUZXN0ZXIgbV9pcGNUZXN0ZXI7Ci0jZW5kaWYKLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNz
L1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDlkOGViNWYwYjg1N2U4ZjNkYjBlNjBlODVjM2ZhNmNmMjRiNWVm
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi0jIENvcHlyaWdodCAoQykg
MjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0j
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
LSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLW1l
c3NhZ2VzIC0+IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVz
c2FnZSB7Ci0KLSAgICBNYWtlQ3JlZGVudGlhbChWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0
IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucywgYm9v
bCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRv
clJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNo
bWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24p
Ci0gICAgR2V0QXNzZXJ0aW9uKFZlY3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURh
dGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNo
bWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKQotICAgIElzVXNl
clZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIC0+IChib29sIHJlc3Vs
dCkKLQotICAgIFNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oc3RydWN0IFdl
YkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbik7
Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDUyZTg0M2FjYjhmZGQ3YjMzOTU1YjU1NDI1NDM2YWU0YzVkMTM5ODMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE0
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiV2ViQXV0aG5Qcm9jZXNzLmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5jbHVk
ZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIk1vY2tBdXRoZW50aWNhdG9yTWFuYWdlci5oIgotI2lu
Y2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIldlYkF1
dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21T
dHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotCi1XZWJBdXRoblByb2Nlc3M6OldlYkF1dGhuUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKLSAgICA6IG1fYXV0aGVudGljYXRv
ck1hbmFnZXIobWFrZVVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFuYWdlcj4oKSkKLXsKLSAgICBp
bml0aWFsaXplKFdURk1vdmUocGFyYW1ldGVycykpOwotICAgIG1fYXV0aGVudGljYXRvck1hbmFn
ZXItPmVuYWJsZU1vZGVybldlYkF1dGhlbnRpY2F0aW9uKCk7Ci19Ci0KLVdlYkF1dGhuUHJvY2Vz
czo6fldlYkF1dGhuUHJvY2VzcygpCi17Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpjcmVh
dGVXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPElQQzo6QXR0YWNobWVu
dD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgYXV0byBjb25uZWN0aW9uSWRlbnRp
ZmllcnMgPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNvbm5lY3Rpb25JZGVudGlmaWVyUGFpcigp
OwotICAgIGlmICghY29ubmVjdGlvbklkZW50aWZpZXJzKSB7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHsgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIG5ld0Nvbm5l
Y3Rpb24gPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZSgqdGhpcywgaWRl
bnRpZmllciwgY29ubmVjdGlvbklkZW50aWZpZXJzLT5zZXJ2ZXIpOwotCi0gICAgQVNTRVJUKCFt
X3dlYlByb2Nlc3NDb25uZWN0aW9ucy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV93ZWJQ
cm9jZXNzQ29ubmVjdGlvbnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUobmV3Q29ubmVjdGlvbikp
OwotCi0gICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb25uZWN0aW9uSWRlbnRpZmllcnMt
PmNsaWVudCkpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6cmVtb3ZlV2ViQXV0aG5Db25u
ZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVj
dGlvbikKLXsKLSAgICBBU1NFUlQobV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuY29udGFpbnMoY29u
bmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpKSk7Ci0gICAgbV93ZWJQcm9jZXNzQ29ubmVj
dGlvbnMucmVtb3ZlKGNvbm5lY3Rpb24ud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSk7Ci19Ci0KLXZv
aWQgV2ViQXV0aG5Qcm9jZXNzOjpjb25uZWN0aW9uVG9XZWJQcm9jZXNzQ2xvc2VkKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLX0KLQotYm9vbCBXZWJBdXRoblByb2Nlc3M6OnNob3Vs
ZFRlcm1pbmF0ZSgpCi17Ci0gICAgcmV0dXJuIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmlzRW1w
dHkoKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLX0KLQotdm9pZCBXZWJBdXRo
blByb2Nlc3M6Omxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwgY3JpdGljYWwpCi17Ci0gICAgV1RG
OjpyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnkoKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nl
c3M6OmluaXRpYWxpemVXZWJBdXRoblByb2Nlc3MoV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiYgcGFyYW1ldGVycykKLXsKLSAgICBhcHBseVByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMocGFyYW1ldGVycy5hdXhpbGlhcnlQcm9jZXNzUGFyYW1ldGVycyk7Ci0gICAgV1RGOjpUaHJl
YWQ6OnNldEN1cnJlbnRUaHJlYWRJc1VzZXJJbml0aWF0ZWQoKTsKLSAgICBBdG9tU3RyaW5nOjpp
bml0KCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wg
aXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKLXsKLSAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0g
V2ViQXV0aG5Qcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50
PSVkIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQpOwotCi0gICAgbG93TWVtb3J5SGFuZGxl
cihDcml0aWNhbDo6WWVzKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnByb2Nlc3NEaWRS
ZXN1bWUoKQotewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJB
dXRoblByb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSIsIHRoaXMpOwotICAgIHJlc3VtZSgpOwot
fQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6cmVzdW1lKCkKLXsKLX0KLQotV2ViQXV0aG5Db25u
ZWN0aW9uVG9XZWJQcm9jZXNzKiBXZWJBdXRoblByb2Nlc3M6OndlYlByb2Nlc3NDb25uZWN0aW9u
KFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyKTsKLX0KLQotdm9pZCBXZWJBdXRoblBy
b2Nlc3M6OnNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCi17Ci0gICAg
aWYgKCFtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyLT5pc01vY2soKSkgewotICAgICAgICBtX2F1dGhl
bnRpY2F0b3JNYW5hZ2VyID0gbWFrZVVuaXF1ZVJlZjxNb2NrQXV0aGVudGljYXRvck1hbmFnZXI+
KFdURk1vdmUoY29uZmlndXJhdGlvbikpOwotICAgICAgICBtX2F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LT5lbmFibGVNb2Rlcm5XZWJBdXRoZW50aWNhdGlvbigpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotICAgIHN0YXRpY19jYXN0PE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlcio+KCZtX2F1dGhlbnRp
Y2F0b3JNYW5hZ2VyKS0+c2V0VGVzdENvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9u
KSk7Ci19Ci0KLSNpZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViQXV0aG5Qcm9jZXNzKGNvbnN0IFdlYkF1dGhuUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYpCi17Ci19Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVD
VF9NT0RFKQotdm9pZCBXZWJBdXRoblByb2Nlc3M6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChj
b25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVlKQotewotICAgIHByZWZlcmVuY2VEaWRVcGRhdGUoZG9t
YWluLCBrZXksIGVuY29kZWRWYWx1ZSk7Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2U3YTI0MDdmMGQ0MzcyZDExYzY3MjcyYmU0YzA2NjNmMjg5MTMzNi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1
dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuaAorKysgL2Rldi9udWxsCkBAIC0xLDk3ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRI
TikKLQotI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3MuaCIKLSNpbmNsdWRlICJXZWJBdXRoblBy
b2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0
Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KLSNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+Ci0j
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotc3RydWN0IE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBBdXRoZW50aWNhdG9yTWFuYWdlcjsKLWNsYXNzIFdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2VzczsKLXN0cnVjdCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7
Ci0KLWNsYXNzIFdlYkF1dGhuUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzLCBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViQXV0aG5Qcm9jZXNzPiB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV2ViQXV0aG5Qcm9jZXNzKTsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBXZWJB
dXRoblByb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYmKTsK
LSAgICB+V2ViQXV0aG5Qcm9jZXNzKCk7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBXZWJDb3JlOjpB
dXhpbGlhcnlQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSA9IFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nl
c3NUeXBlOjpXZWJBdXRobjsKLQotICAgIHZvaWQgcmVtb3ZlV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzKFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwotCi0gICAgdm9pZCBw
cmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKCk7Ci0gICAgdm9pZCBy
ZXN1bWUoKTsKLQotICAgIHZvaWQgY29ubmVjdGlvblRvV2ViUHJvY2Vzc0Nsb3NlZChJUEM6OkNv
bm5lY3Rpb24mKTsKLQotICAgIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyogd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24oV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpIGNvbnN0OwotCi0gICAg
QXV0aGVudGljYXRvck1hbmFnZXImIGF1dGhlbnRpY2F0b3JNYW5hZ2VyKCkgeyByZXR1cm4gbV9h
dXRoZW50aWNhdG9yTWFuYWdlci5nZXQoKTsgfQotICAgIHZvaWQgc2V0TW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbihXZWJDb3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1
cmF0aW9uJiYpOwotCi0jaWYgRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgdm9pZCBu
b3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4mIGVuY29kZWRWYWx1ZSk7Ci0jZW5k
aWYKLQotcHJpdmF0ZToKLSAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYkF1dGhuUHJvY2Vz
cyhjb25zdCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKLSAgICB2b2lkIGxv
d01lbW9yeUhhbmRsZXIoQ3JpdGljYWwpOwotCi0gICAgLy8gQXV4aWxpYXJ5UHJvY2VzcwotICAg
IHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW5pdGlhbGl6ZVByb2Nlc3NOYW1l
KGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGluaXRpYWxpemVTYW5kYm94KGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoKSBvdmVycmlkZTsKLQotICAgIC8v
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZENsb3Nl
KElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotCi0gICAgLy8gTWVzc2FnZSBIYW5kbGVycwot
ICAgIHZvaWQgaW5pdGlhbGl6ZVdlYkF1dGhuUHJvY2VzcyhXZWJBdXRoblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmJik7Ci0gICAgdm9pZCBjcmVhdGVXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxJUEM6OkF0dGFjaG1lbnQ+JiYpPiYmKTsKLQotICAgIC8vIENvbm5lY3Rp
b25zIHRvIFdlYlByb2Nlc3Nlcy4KLSAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyLCBSZWY8V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzPj4gbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbnM7Ci0KLSAgICBVbmlxdWVSZWY8QXV0aGVudGljYXRvck1hbmFnZXI+IG1fYXV0aGVu
dGljYXRvck1hbmFnZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJv
Y2Vzcy9XZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhu
UHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDIzZDE5YzY3MmMyY2Q4YjlhYzEzZTYyNDNkNWRmMWRkN2JmMTI4MGQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwK
QEAgLTEsMzcgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1l
dDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0j
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi1tZXNzYWdlcyAtPiBXZWJBdXRoblByb2Nl
c3MgewotICAgICMgSW5pdGlhbGl6ZXMgdGhlIFdlYkF1dGhuIHByb2Nlc3MuCi0gICAgSW5pdGlh
bGl6ZVdlYkF1dGhuUHJvY2VzcyhzdHJ1Y3QgV2ViS2l0OjpXZWJBdXRoblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycykKLQotICAgICMgQ3JlYXRlcyBh
IGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MKLSAgICBDcmVh
dGVXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgcHJvY2Vzc0lkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4g
Y29ubmVjdGlvbklkZW50aWZpZXIpCi0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkK
LSAgICBOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoU3RyaW5nIGRvbWFpbiwgU3RyaW5nIGtleSwg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IGVuY29kZWRWYWx1ZSkKLSNlbmRpZgotfQotCi0jZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Q
cm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOGEzNmY1NDcwODVhZWViNTM5NmE2MDJk
Yzc3NmUxNDUxYjNjMjE2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkFy
Z3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0KLSNp
ZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlICJBcmd1bWVudENvZGVyc0NGLmgiCi0jZW5kaWYK
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6V2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkgPSBkZWZhdWx0OwotCi12b2lk
IFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IGF1eGlsaWFyeVByb2Nlc3NQYXJhbWV0
ZXJzOwotfQotCi1ib29sIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiByZXN1bHQpCi17Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYXV4aWxpYXJ5UHJv
Y2Vzc1BhcmFtZXRlcnMpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRI
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3Mv
V2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDA1ZTA2NmQwYTVjN2QyMWUyNzBjNDU5ZjdiMjU2ODZiNzFmZjA5YWMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgotCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIERlY29kZXI7Ci1jbGFzcyBF
bmNvZGVyOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3RydWN0IFdlYkF1dGhuUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyB7Ci0gICAgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKCk7Ci0gICAgQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBhdXhpbGlhcnlQ
cm9jZXNzUGFyYW1ldGVyczsKLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
OwotICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoSVBDOjpEZWNvZGVy
JiwgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9pb3MvV2ViQXV0aG5Qcm9jZXNzSU9TLm1tIGIv
U291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvaW9zL1dlYkF1dGhuUHJvY2Vzc0lPUy5tbQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTViMzdkNGVmODhkZDI4NGE3MjQ5ZTQwYjYx
ZmI0YTE4Yjk4OTFjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9pb3MvV2ViQXV0aG5Qcm9jZXNzSU9T
Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lt
cG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJBdXRoblByb2Nlc3MuaCIKLQotI2lmIEVOQUJM
RShXRUJfQVVUSE4pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0KLSNpbXBvcnQgIkRlZmF1bHRX
ZWJCcm93c2VyQ2hlY2tzLmgiCi0jaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRTeXN0ZW1JbnRlcmZhY2UuaD4KLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotdm9pZCBXZWJBdXRoblBy
b2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmKQotewotICAgIEluaXRXZWJDb3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNl
KCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzc05hbWUoY29u
c3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OmluaXRpYWxpemVTYW5k
Ym94KGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmLCBTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKLXsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYkF1dGhuUHJvY2Vzcyhjb25zdCBXZWJBdXRoblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQo
aXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKCp0aGlzKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL21hYy9X
ZWJBdXRoblByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9tYWMv
V2ViQXV0aG5Qcm9jZXNzTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWU4
ODA4OTczYTZhZDQ2ZTNhZWJkZGMzNDhjMDhlM2ZmNmFiMWZmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNz
L21hYy9XZWJBdXRoblByb2Nlc3NNYWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIldlYkF1dGhu
UHJvY2Vzcy5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikgJiYgUExBVEZPUk0oTUFDKQotCi0j
aW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCi0jaW1wb3J0ICJXS0Zv
dW5kYXRpb24uaCIKLSNpbXBvcnQgIldlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
IgotI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+Ci0jaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+Ci0jaW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZp
Y2VzU1BJLmg+Ci0jaW1wb3J0IDxzeXNleGl0cy5oPgotI2ltcG9ydCA8d3RmL01lbW9yeVByZXNz
dXJlSGFuZGxlci5oPgotI2ltcG9ydCA8d3RmL2NvY29hL1R5cGVDYXN0c0NvY29hLmg+Ci0jaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OmluaXRpYWxpemVQcm9j
ZXNzKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQotewot
ICAgIHNldEFwcGxpY2F0aW9uSXNEYWVtb24oKTsKLSAgICBsYXVuY2hTZXJ2aWNlc0NoZWNrSW4o
KTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25z
dCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQot
ewotICAgIE5TU3RyaW5nICphcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpXRUJfVUlfTlNTVFJJTkcoQCIlQCBXZWIgQXV0aGVudGljYXRpb24iLCAidmlzaWJsZSBu
YW1lIG9mIHRoZSBXZWJBdXRobiBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07Ci0gICAg
X0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xT
R2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwgYnJpZGdlX2Nh
c3QoYXBwbGljYXRpb25OYW1lKSwgbnVsbHB0cik7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNz
Ojppbml0aWFsaXplU2FuZGJveChjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBz
YW5kYm94UGFyYW1ldGVycykKLXsKLSAgICAvLyBOZWVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0
LCBiZWNhdXNlIHNlcnZpY2UgaGFzIGEgZGlmZmVyZW50IGJ1bmRsZSBJRC4KLSAgICBOU0J1bmRs
ZSAqd2ViS2l0MkJ1bmRsZSA9IFtOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpOU0NsYXNzRnJvbVN0
cmluZyhAIldLV2ViVmlldyIpXTsKLQotICAgIHNhbmRib3hQYXJhbWV0ZXJzLnNldE92ZXJyaWRl
U2FuZGJveFByb2ZpbGVQYXRoKFt3ZWJLaXQyQnVuZGxlIHBhdGhGb3JSZXNvdXJjZTpAImNvbS5h
cHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzIiBvZlR5cGU6QCJzYiJdKTsKLQotICAgIEF1eGls
aWFyeVByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KHBhcmFtZXRlcnMsIHNhbmRib3hQYXJhbWV0
ZXJzKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYkF1
dGhuUHJvY2Vzcyhjb25zdCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKQotewot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9tYWMvY29tLmFwcGxl
LldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2IuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2IuaW4KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5NGI3ZDI5OTg5ZDViOWNjOThlZTU2OGI1OWRjYjlhZDNj
Yzc1MzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Q
cm9jZXNzLnNiLmluCisrKyAvZGV2L251bGwKQEAgLTEsNDc5ICswLDAgQEAKLTsgQ29weXJpZ2h0
IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotOwotOyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLTsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi07IGFyZSBtZXQ6Ci07IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci07ICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLTsg
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLTsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotOwotOyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi07IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotOyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi07IFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotOyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi07IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi07IFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
OyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotOyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotOyBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi07IFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotKHZlcnNpb24gMSkKLShkZW55IGRlZmF1
bHQgKHdpdGggcGFydGlhbC1zeW1ib2xpY2F0aW9uKSkKLShkZW55IG52cmFtKikKLShhbGxvdyBz
eXN0ZW0tYXVkaXQgZmlsZS1yZWFkLW1ldGFkYXRhKQotCi07OyBTaWxlbmNlIHNwdXJpb3VzIGxv
Z2dpbmcgZHVlIHRvIHJkYXI6Ly8yMDExNzkyMyBhbmQgcmRhcjovLzcyMzY2NDc1Ci0oZGVueSBz
eXN0ZW0tcHJpdmlsZWdlIChwcml2aWxlZ2UtaWQgUFJJVl9HTE9CQUxfUFJPQ19JTkZPKSAod2l0
aCBuby1yZXBvcnQpKQotCi0jaW5jbHVkZSAiU2hhcmVkL1NhbmRib3gvcHJlZmVyZW5jZXMuc2Ii
Ci0KLSNpZiBFTkFCTEUoU1lTVEVNX0NPTlRFTlRfUEFUSF9TQU5EQk9YX1JVTEVTKQotI2luY2x1
ZGUgPFdlYktpdEFkZGl0aW9ucy9TeXN0ZW1Db250ZW50U2FuZGJveC1tYWNvcy5kZWZzPgotI2Vu
ZGlmCi0gCi07OzsKLTs7OyBUaGUgZm9sbG93aW5nIHJ1bGVzIHdlcmUgb3JpZ2luYWxseSBjb250
YWluZWQgaW4gJ3N5c3RlbS5zYicuIFdlIGFyZSBkdXBsaWNhdGluZyB0aGVtIGhlcmUgc28gd2Ug
Y2FuCi07OzsgcmVtb3ZlIHVubmVlZGVkIHNhbmRib3ggZXh0ZW5zaW9ucy4KLTs7OwotCi07Ozsg
QWxsb3cgcmVnaXN0cmF0aW9uIG9mIHBlci1waWQgc2VydmljZXMuCi0oYWxsb3cgbWFjaC1yZWdp
c3RlciAobG9jYWwtbmFtZS1wcmVmaXggIiIpKQotCi07OzsgQWxsb3cgcmVhZCBhY2Nlc3MgdG8g
c3RhbmRhcmQgc3lzdGVtIHBhdGhzLgotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAocmVxdWlyZS1h
bGwgKGZpbGUtbW9kZSAjbzAwMDQpCi0gICAgKHJlcXVpcmUtYW55IChzdWJwYXRoICIvTGlicmFy
eS9GaWxlc3lzdGVtcy9OZXRGU1BsdWdpbnMiKQotICAgIChzdWJwYXRoICIvTGlicmFyeS9BcHBs
ZS9TeXN0ZW0iKQotICAgIChzdWJwYXRoICIvTGlicmFyeS9QcmVmZXJlbmNlcy9Mb2dnaW5nIikg
ICAgICA7IExvZ2dpbmcgUmV0aGluawotICAgIChzdWJwYXRoICIvU3lzdGVtIikKLSNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTEwMDAwCi0gICAgKHN1YnBhdGggIi9wcml2
YXRlL3Zhci9kYi9keWxkIikKLSNlbmRpZgotICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvZGIv
dGltZXpvbmUiKQotICAgIChzdWJwYXRoICIvdXNyL2xpYiIpCi0gICAgKHN1YnBhdGggIi91c3Iv
c2hhcmUiKSkpKQotCi07OzsgQWxsb3cgcmVhZGluZyBpbnRlcm5hbCBwcm9maWxlcyBvbiBkZXZl
bG9wbWVudCBidWlsZHMKLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgKHJlcXVpcmUtYWxsIChmaWxl
LW1vZGUgI28wMDA0KQotICAgIChzdWJwYXRoICIvQXBwbGVJbnRlcm5hbC9MaWJyYXJ5L1ByZWZl
cmVuY2VzL0xvZ2dpbmciKQotICAgIChzeXN0ZW0tYXR0cmlidXRlIGFwcGxlLWludGVybmFsKSkp
Ci0KLTs7OyBBbGxvdyBtYXBwaW5nIG9mIHN5c3RlbSBmcmFtZXdvcmtzICsgZHlsaWJzCi0oYWxs
b3cgZmlsZS1tYXAtZXhlY3V0YWJsZQotICAgIChzdWJwYXRoICIvTGlicmFyeS9BcHBsZS9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzIikKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvQXBwbGUvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MiKQotICAgIChzdWJwYXRoICIvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3JrcyIpCi0gICAgKHN1YnBhdGggIi9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3JrcyIpCi0gICAgKHN1YnBhdGggIi91c3IvbGliIikKLSAgICAoc3VicGF0aCAiL3Vz
ci9hcHBsZWludGVybmFsL2xpYiIpIDs7IDxyZGFyOi8vcHJvYmxlbS83MjMxNzExMj4KLSkKLQot
KGFsbG93IGZpbGUtcmVhZC1tZXRhZGF0YQotICAgIChsaXRlcmFsICIvZXRjIikKLSAgICAobGl0
ZXJhbCAiL3RtcCIpCi0gICAgKGxpdGVyYWwgIi92YXIiKQotICAgIChsaXRlcmFsICIvcHJpdmF0
ZS9ldGMvbG9jYWx0aW1lIikpCi0KLQotOzs7IEFsbG93IGFjY2VzcyB0byBzdGFuZGFyZCBzcGVj
aWFsIGZpbGVzLgotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAobGl0ZXJhbCAiL2Rldi9hdXRvZnNf
bm93YWl0IikKLSAgICAobGl0ZXJhbCAiL2Rldi9yYW5kb20iKQotICAgIChsaXRlcmFsICIvZGV2
L3VyYW5kb20iKQotICAgIChsaXRlcmFsICIvcHJpdmF0ZS9ldGMvbWFzdGVyLnBhc3N3ZCIpCi0g
ICAgKGxpdGVyYWwgIi9wcml2YXRlL2V0Yy9wYXNzd2QiKSkKLQotKGFsbG93IGZpbGUtcmVhZCoK
LSAgICAgICBmaWxlLXdyaXRlLWRhdGEKLSAgICAobGl0ZXJhbCAiL2Rldi9udWxsIikKLSAgICAo
bGl0ZXJhbCAiL2Rldi96ZXJvIikpCi0KLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAgZmlsZS13
cml0ZS1kYXRhCi0gICAgICAgZmlsZS1pb2N0bAotICAgIChsaXRlcmFsICIvZGV2L2R0cmFjZWhl
bHBlciIpKQotCi07OzsgQWxsb3cgY3JlYXRpb24gb2YgY29yZSBkdW1wcy4KLShhbGxvdyBmaWxl
LXdyaXRlLWNyZWF0ZQotICAgIChyZXF1aXJlLWFsbCAocHJlZml4ICIvY29yZXMvIikKLSAgICAg
ICAgKHZub2RlLXR5cGUgUkVHVUxBUi1GSUxFKSkpCi0KLTs7OyBBbGxvdyBJUEMgdG8gc3RhbmRh
cmQgc3lzdGVtIGFnZW50cy4KLShhbGxvdyBpcGMtcG9zaXgtc2htLXJlYWQqCi0gICAgKGlwYy1w
b3NpeC1uYW1lICJhcHBsZS5zaG0ubm90aWZpY2F0aW9uX2NlbnRlciIpCi0jaWYgIUVOQUJMRShD
RlBSRUZTX0RJUkVDVF9NT0RFKQotICAgIChpcGMtcG9zaXgtbmFtZS1wcmVmaXggImFwcGxlLmNm
cHJlZnMuIikKLSNlbmRpZgotKQotCi07OzsKLTs7OyBFbmQgcnVsZXMgb3JpZ2luYWxseSBjb3Bp
ZWQgZnJvbSAnc3lzdGVtLnNiJwotOzs7Ci0KLTs7OyBwcm9jZXNzLWluZm8qIGRlZmF1bHRzIHRv
IGFsbG93OyBkZW55IGl0IGFuZCB0aGVuIGFsbG93IG9wZXJhdGlvbnMgd2UgYWN0dWFsbHkgbmVl
ZC4KLShkZW55IHByb2Nlc3MtaW5mbyopCi0oYWxsb3cgcHJvY2Vzcy1pbmZvLWRpcnR5Y29udHJv
bCAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nlc3MtaW5mby1waWRpbmZvKQotKGFsbG93IHBy
b2Nlc3MtaW5mby1zZXRjb250cm9sICh0YXJnZXQgc2VsZikpCi0oYWxsb3cgcHJvY2Vzcy1jb2Rl
c2lnbmluZy1zdGF0dXMqKQotCi0oZGVueSBzeXNjdGwqKQotKGFsbG93IHN5c2N0bC1yZWFkCi0g
ICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICJody5hY3RpdmVjcHUiIDs7IDxyZGFyOi8vcHJvYmxl
bS81Njc5NTU3NT4KLSAgICAgICAgImh3LmF2YWlsY3B1IgotICAgICAgICAiaHcuYnl0ZW9yZGVy
IgotICAgICAgICAiaHcuYnVzZnJlcXVlbmN5IgotICAgICAgICAiaHcuYnVzZnJlcXVlbmN5X21h
eCIKLSAgICAgICAgImh3LmNhY2hlY29uZmlnIiA7OyA8cmRhcjovL3Byb2JsZW0vNzgyMTM1NjM+
Ci0gICAgICAgICJody5jYWNoZWxpbmVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNTY3OTU1NzU+
Ci0gICAgICAgICJody5jYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS83ODIxMzU2Mz4KLSAg
ICAgICAgImh3LmNwdWZyZXF1ZW5jeSIKLSAgICAgICAgImh3LmNwdWZyZXF1ZW5jeV9tYXgiCi0g
ICAgICAgICJody5jcHVzdWJmYW1pbHkiCi0gICAgICAgICJody5jcHV0aHJlYWR0eXBlIgotICAg
ICAgICAiaHcuY3B1dHlwZSIKLSAgICAgICAgImh3LmwxZGNhY2hlc2l6ZSIgOzsgPHJkYXI6Ly9w
cm9ibGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcubDFpY2FjaGVzaXplIiA7OyA8cmRhcjovL3By
b2JsZW0vNTY3OTU1NzU+Ci0gICAgICAgICJody5sMmNhY2hlc2l6ZSIgOzsgPHJkYXI6Ly9wcm9i
bGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcubDNjYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxl
bS81Njc5NTU3NT4KLSAgICAgICAgImh3LmxvZ2ljYWxjcHUiIDs7IDxyZGFyOi8vcHJvYmxlbS81
Njc5NTU3NT4KLSAgICAgICAgImh3LmxvZ2ljYWxjcHVfbWF4IiA7OyA8cmRhcjovL3Byb2JsZW0v
NTY3OTU1NzU+Ci0gICAgICAgICJody5tYWNoaW5lIgotICAgICAgICAiaHcubWVtc2l6ZSIKLSAg
ICAgICAgImh3Lm1vZGVsIgotICAgICAgICAiaHcubmNwdSIKLSAgICAgICAgImh3Lm5wZXJmbGV2
ZWxzIiA7OyA8cmRhcjovL3Byb2JsZW0vNzY3ODM1OTY+Ci0gICAgICAgICJody5wYWdlc2l6ZSIg
OzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgzNTk2PgotICAgICAgICAiaHcucGFnZXNpemVfY29tcGF0
IiA7OyA8cmRhcjovL3Byb2JsZW0vNzY3ODM1OTY+Ci0gICAgICAgICJody5waHlzaWNhbGNwdSIg
OzsgPHJkYXI6Ly9wcm9ibGVtLzU4NDE2NDc1PgotICAgICAgICAiaHcucGh5c2ljYWxjcHVfbWF4
IiA7OyA8cmRhcjovL3Byb2JsZW0vNTg0MTY0NzU+Ci0gICAgICAgICJody50YmZyZXF1ZW5jeSIK
LSAgICAgICAgImh3LnRiZnJlcXVlbmN5X2NvbXBhdCIKLSAgICAgICAgImh3LnZlY3RvcnVuaXQi
Ci0gICAgICAgICJrZXJuLmJvb3RhcmdzIiA7OyA8cmRhcjovL3Byb2JsZW0vNDc3MzgwMTU+Ci0g
ICAgICAgICJrZXJuLmhvc3RuYW1lIgotICAgICAgICAia2Vybi5odl92bW1fcHJlc2VudCIKLSAg
ICAgICAgImtlcm4ubWF4ZmlsZXNwZXJwcm9jIgotICAgICAgICAia2Vybi5tZW1vcnlzdGF0dXNf
bGV2ZWwiCi0gICAgICAgICJrZXJuLm9zcHJvZHVjdHZlcnNpb24iIDs7IDxyZGFyOi8vcHJvYmxl
bS81MTc1NjczOT4KLSAgICAgICAgImtlcm4ub3NyZWxlYXNlIgotICAgICAgICAia2Vybi5vc3R5
cGUiCi0gICAgICAgICJrZXJuLm9zdmFyaWFudF9zdGF0dXMiCi0gICAgICAgICJrZXJuLm9zdmVy
c2lvbiIKLSAgICAgICAgImtlcm4uc2FmZWJvb3QiCi0gICAgICAgICJrZXJuLnZlcnNpb24iCi0g
ICAgICAgICJtYWNoZGVwLmNwdS5icmFuZF9zdHJpbmciCi0gICAgICAgICJzZWN1cml0eS5tYWMu
c2FuZGJveC5zZW50aW5lbCIKLSAgICAgICAgImtlcm4udGNzbV9lbmFibGUiCi0gICAgICAgICJr
ZXJuLnRjc21fYXZhaWxhYmxlIgotICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiKQotICAg
IChzeXNjdGwtbmFtZS1wcmVmaXggIm5ldC5yb3V0ZXRhYmxlIikKLSAgICAoc3lzY3RsLW5hbWUt
cHJlZml4ICJody5vcHRpb25hbC4iKSA7OyA8cmRhcjovL3Byb2JsZW0vNzE0NjI3OTA+Ci0gICAg
KHN5c2N0bC1uYW1lLXByZWZpeCAiaHcucGVyZmxldmVsIikgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2
NzgzNTk2PgotKQotCi0oYWxsb3cgc3lzY3RsLXdyaXRlCi0gICAgKHN5c2N0bC1uYW1lCi0gICAg
ICAgICJrZXJuLnRjc21fZW5hYmxlIikpCi0KLShkZW55IG1hY2gtbG9va3VwICh4cGMtc2Vydmlj
ZS1uYW1lLXByZWZpeCAiIikpCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICAoeHBjLXNlcnZpY2Ut
bmFtZSAiY29tLmFwcGxlLlBlcmZvcm1hbmNlQW5hbHlzaXMuYW5pbWF0aW9ucGVyZmQiKQotICAg
ICh4cGMtc2VydmljZS1uYW1lICJjb20uYXBwbGUuYWNjZXNzaWJpbGl0eS5tZWRpYWFjY2Vzc2li
aWxpdHlkIikKLSAgICAoeHBjLXNlcnZpY2UtbmFtZSAiY29tLmFwcGxlLmF1ZGlvLlNhbmRib3hI
ZWxwZXIiKQotICAgICh4cGMtc2VydmljZS1uYW1lICJjb20uYXBwbGUuY29yZW1lZGlhLnZpZGVv
ZGVjb2RlciIpCi0gICAgKHhwYy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5jb3JlbWVkaWEudmlk
ZW9lbmNvZGVyIikKLSAgICAoeHBjLXNlcnZpY2UtbmFtZSAiY29tLmFwcGxlLmhpc2VydmljZXMt
eHBjc2VydmljZSIpCi0pCi0KLTs7IFV0aWxpdHkgZnVuY3Rpb25zIGZvciBob21lIGRpcmVjdG9y
eSByZWxhdGl2ZSBwYXRoIGZpbHRlcnMKLShkZWZpbmUgKGhvbWUtcmVnZXggaG9tZS1yZWxhdGl2
ZS1yZWdleCkKLSAgKHJlZ2V4IChzdHJpbmctYXBwZW5kICJeIiAocmVnZXgtcXVvdGUgKHBhcmFt
ICJIT01FX0RJUiIpKSBob21lLXJlbGF0aXZlLXJlZ2V4KSkpCi0KLShkZWZpbmUgKGhvbWUtc3Vi
cGF0aCBob21lLXJlbGF0aXZlLXN1YnBhdGgpCi0gIChzdWJwYXRoIChzdHJpbmctYXBwZW5kIChw
YXJhbSAiSE9NRV9ESVIiKSBob21lLXJlbGF0aXZlLXN1YnBhdGgpKSkKLQotKGRlZmluZSAoaG9t
ZS1saXRlcmFsIGhvbWUtcmVsYXRpdmUtbGl0ZXJhbCkKLSAgKGxpdGVyYWwgKHN0cmluZy1hcHBl
bmQgKHBhcmFtICJIT01FX0RJUiIpIGhvbWUtcmVsYXRpdmUtbGl0ZXJhbCkpKQotCi0oZGVmaW5l
IChhbGxvdy1yZWFkLWRpcmVjdG9yeS1hbmQtaXNzdWUtcmVhZC1leHRlbnNpb25zIHBhdGgpCi0g
ICAgKGlmIHBhdGgKLSAgICAgICAgKGJlZ2luCi0gICAgICAgICAgICAoYWxsb3cgZmlsZS1yZWFk
KiAoc3VicGF0aCBwYXRoKSkKLSAgICAgICAgICAgIChhbGxvdyBmaWxlLWlzc3VlLWV4dGVuc2lv
biAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJl
YWQiKSAoc3VicGF0aCBwYXRoKSkpKSkpCi0KLShkZWZpbmUgKGFsbG93LXJlYWQtd3JpdGUtZGly
ZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLXdyaXRlLWV4dGVuc2lvbnMgcGF0aCkKLSAgICAoaWYgcGF0
aAotICAgICAgICAoYmVnaW4KLSAgICAgICAgICAgIChhbGxvdyBmaWxlLXJlYWQqIGZpbGUtd3Jp
dGUqIChzdWJwYXRoIHBhdGgpKQotICAgICAgICAgICAgKGFsbG93IGZpbGUtaXNzdWUtZXh0ZW5z
aW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBwLXNhbmRib3gu
cmVhZCIpIChzdWJwYXRoIHBhdGgpKSkKLSAgICAgICAgICAgIChhbGxvdyBmaWxlLWlzc3VlLWV4
dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxlLmFwcC1zYW5k
Ym94LnJlYWQtd3JpdGUiKSAoc3VicGF0aCBwYXRoKSkpKSkpCi0KLTs7IFJlbW92ZSB3aGVuIDxy
ZGFyOi8vcHJvYmxlbS8yOTY0NjA5ND4gaXMgZml4ZWQuCi0oZGVmaW5lIChIRVgtcGF0dGVybi1t
YXRjaC1nZW5lcmF0b3IgcGF0dGVybi1kZXNjcmlwdG9yKQotICAgIChsZXRyZWMgKChwYXR0ZXJu
LXN0cmluZyAiIikpCi0gICAgICAgIChmb3ItZWFjaCAgKGxhbWJkYSAocmVwZWF0LWNvdW50KQot
ICAgICAgICAgICAgKGlmICh6ZXJvPyByZXBlYXQtY291bnQpCi0gICAgICAgICAgICAgICAgKHNl
dCEgcGF0dGVybi1zdHJpbmcgKHN0cmluZy1hcHBlbmQgIHBhdHRlcm4tc3RyaW5nICItIikpCi0g
ICAgICAgICAgICAgICAgKGxldCBhcHBlbmRlciAoKGNvdW50IHJlcGVhdC1jb3VudCkpCi0gICAg
ICAgICAgICAgICAgICAgIChpZiAoPiBjb3VudCAwKQotICAgICAgICAgICAgICAgICAgICAgICAg
KGJlZ2luCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldCEgcGF0dGVybi1zdHJpbmcg
KHN0cmluZy1hcHBlbmQgIHBhdHRlcm4tc3RyaW5nICJbMC05QS1GXSIpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhcHBlbmRlciAoLSBjb3VudCAxKSkpKSkpKQotICAgICAgICAgICAg
cGF0dGVybi1kZXNjcmlwdG9yKQotICAgIHBhdHRlcm4tc3RyaW5nKSkKLQotOzsgcmV0dXJuIGEg
cmVnZXggcGF0dGVybiBtYXRjaGluZyBzdHJpbmcgZm9yIDgtNC00LTQtMTIgVVVJRHM6Ci0oZGVm
aW5lICh1dWlkLUhFWC1wYXR0ZXJuLW1hdGNoLXN0cmluZykKLSAgICAoSEVYLXBhdHRlcm4tbWF0
Y2gtZ2VuZXJhdG9yICcoOCAwIDQgMCA0IDAgNCAwIDEyKSkpCi0KLTs7IGdsb2JhbCB0byBob2xk
IHRoZSBjb21wdXRlZCBVVUlEIG1hdGNoaW5nIHBhdHRlcm4uCi0oZGVmaW5lICp1dWlkLXBhdHRl
cm4qICIiKQotCi0oZGVmaW5lICh1dWlkLXJlZ2V4LXN0cmluZykKLSAgICAoaWYgKHplcm8/IChz
dHJpbmctbGVuZ3RoICp1dWlkLXBhdHRlcm4qKSkKLSAgICAgICAgKHNldCEgKnV1aWQtcGF0dGVy
biogKHV1aWQtSEVYLXBhdHRlcm4tbWF0Y2gtc3RyaW5nKSkpCi0gICAgKnV1aWQtcGF0dGVybiop
Ci0KLTs7IFJlYWQtb25seSBwcmVmZXJlbmNlcyBhbmQgZGF0YQotKGFsbG93IGZpbGUtcmVhZCoK
LSAgICA7OyBCYXNpYyBzeXN0ZW0gcGF0aHMKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvRGljdGlv
bmFyaWVzIikKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvRm9udHMiKQotICAgIChzdWJwYXRoICIv
TGlicmFyeS9GcmFtZXdvcmtzIikKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvTWFuYWdlZCBQcmVm
ZXJlbmNlcyIpCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L1NwZWVjaC9TeW50aGVzaXplcnMiKQot
ICAgIChyZWdleCAjIl4vcHJpdmF0ZS9ldGMvKGhvc3RzfGdyb3VwfHBhc3N3ZCkkIikKLQotICAg
IDs7IFN5c3RlbSBhbmQgdXNlciBwcmVmZXJlbmNlcwotICAgIChob21lLWxpdGVyYWwgIi8uQ0ZV
c2VyVGV4dEVuY29kaW5nIikKLQotICAgIDs7IEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW1vdmVk
IHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzg5NTc4NDU+IGlzIGZpeGVkLgotICAgIChob21lLXN1YnBh
dGggIi9MaWJyYXJ5L0ZvbnRzIikKLQotICAgIChzdWJwYXRoICIvTGlicmFyeS9BdWRpby9QbHVn
LUlucy9IQUwiKQotCi0gICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvRGljdGlvbmFyaWVzIikp
Ci0KLShhbGxvdyBmaWxlLXJlYWQtZGF0YQotICAgIChsaXRlcmFsICIvdXNyL2xvY2FsL2xpYi9s
b2ciKSA7IDxyZGFyOi8vcHJvYmxlbS8zNjYyOTQ5NT4KLSAgICA7OyBOZWVkZWQgZm9yIEFFUzMg
c3VwcG9ydAotICAgIChzdWJwYXRoICIvTGlicmFyeS9BdWRpby9QbHVnLUlucy9Db21wb25lbnRz
IikpCi0KLTs7IFByZWZlcmVuY2VzIHN1cHBvcnQKLShzaGFyZWQtcHJlZmVyZW5jZXMtcmVhZAot
ICAgICJjb20uYXBwbGUuQWNjZXNzaWJpbGl0eSIKLSAgICAiY29tLmFwcGxlLkFUUyIKLSAgICAi
Y29tLmFwcGxlLkNvcmVHcmFwaGljcyIKLSAgICAiY29tLmFwcGxlLkRvd25sb2FkQXNzZXNzbWVu
dCIKLSAgICAiY29tLmFwcGxlLkhJVG9vbGJveCIKLSAgICAiY29tLmFwcGxlLkxhdW5jaFNlcnZp
Y2VzIgotICAgICJjb20uYXBwbGUuTXVsdGl0b3VjaFN1cHBvcnQiIDs7IEZJWE1FOiBSZW1vdmUg
d2hlbiA8cmRhcjovL3Byb2JsZW0vMTMwMTE2MzM+IGlzIGZpeGVkLgotICAgICJjb20uYXBwbGUu
U2VydmljZXNNZW51LlNlcnZpY2VzIiA7OyBOZWVkZWQgZm9yIE5TQXR0cmlidXRlZFN0cmluZyA8
cmRhcjovL3Byb2JsZW0vMTA4NDQzMjE+Ci0gICAgImNvbS5hcHBsZS5WaWV3QnJpZGdlIiA7OyBO
ZWVkZWQgZm9yIElucHV0IGVsZW1lbnRzLgotICAgICJjb20uYXBwbGUuV2ViRm91bmRhdGlvbiIK
LSAgICAiY29tLmFwcGxlLmF2Zm91bmRhdGlvbiIKLSAgICAiY29tLmFwcGxlLmF2Zm91bmRhdGlv
bi5mcmVjZW50cyIgOzsgPHJkYXI6Ly9wcm9ibGVtLzMzMTM3MDI5PgotICAgICJjb20uYXBwbGUu
YXZmb3VuZGF0aW9uLnZpZGVvcGVyZm9ybWFuY2VodWQiIDs7IDxyZGFyOi8vcHJvYmxlbS8zMTU5
NDU2OD4KLSAgICAiY29tLmFwcGxlLmNvcmVtZWRpYSIKLSAgICAiY29tLmFwcGxlLmNyeXB0byIK
LSAgICAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gubW91c2UiCi0g
ICAgImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRvdWNoLnRyYWNrcGFkIgot
ICAgICJjb20uYXBwbGUuZHJpdmVyLkFwcGxlSElETW91c2UiCi0gICAgImNvbS5hcHBsZS5sb29r
dXAuc2hhcmVkIgotICAgICJjb20uYXBwbGUubWVkaWFhY2Nlc3NpYmlsaXR5IiA7OyBOZWVkZWQg
Zm9yIGN1c3RvbSBjYXB0aW9uIHN0eWxlcwotICAgICJjb20uYXBwbGUubmV0d29ya0Nvbm5lY3Qi
Ci0gICAgImNvbS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMiCi0gICAgImNvbS5hcHBsZS5zeXN0
ZW1zb3VuZCIKLSAgICAiY29tLmFwcGxlLnVuaXZlcnNhbGFjY2VzcyIKLSAgICAiZWR1Lm1pdC5L
ZXJiZXJvcyIKLSAgICAicGJzIikgOzsgTmVlZGVkIGZvciBOU0F0dHJpYnV0ZWRTdHJpbmcgPHJk
YXI6Ly9wcm9ibGVtLzEwODQ0MzIxPgotCi0oYWxsb3ctcmVhZGluZy1nbG9iYWwtcHJlZmVyZW5j
ZXMpCi0KLTsgKFRlbXBvcmFyeSkgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1DRlBy
ZWZlcmVuY2VzIHJlYWRlcnMuCi0oYWxsb3cgZmlsZS1yZWFkKgotICAgIChsaXRlcmFsICIvTGli
cmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuVmlld0JyaWRnZS5wbGlzdCIpKQotCi07IEZJWE1F
OiBUaGlzIGlzIG5lZWRlZCBmb3Igc29tZSBzZWN1cml0eSBmcmFtZXdvcmsgY2FsbHMgKHRoYXQg
dXNlIG5vbi1DRlByZWZlcmVuY2VzIHJlYWRlcnMpCi0oYWxsb3cgZmlsZS1yZWFkLWRhdGEKLSAg
ICAobGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLnNlY3VyaXR5LnBsaXN0
IikKLSAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuc2Vj
dXJpdHkucGxpc3QiKSkKLQotOzsgT24tZGlzayBXZWJLaXQyIGZyYW1ld29yayBsb2NhdGlvbiwg
dG8gYWNjb3VudCBmb3IgZGVidWcgaW5zdGFsbGF0aW9ucyBvdXRzaWRlIG9mIC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzLAotOzsgYW5kIHRvIGFsbG93IGlzc3VpbmcgZXh0ZW5zaW9ucy4KLShh
bGxvdy1yZWFkLWRpcmVjdG9yeS1hbmQtaXNzdWUtcmVhZC1leHRlbnNpb25zIChwYXJhbSAiV0VC
S0lUMl9GUkFNRVdPUktfRElSIikpCi0KLTs7IEFsbG93IGlzc3VpbmcgZXh0ZW5zaW9ucyB0byBz
eXN0ZW0gbGlicmFyaWVzIHRoYXQgdGhlIE5ldHdvcmsgcHJvY2VzcyBjYW4gYWxyZWFkeSByZWFk
LgotOzsgVGhpcyBpcyB0byBhdm9pZCB3YXJuaW5ncyBhdHRlbXB0aW5nIHRvIGNyZWF0ZSBleHRl
bnNpb25zIGZvciB0aGVzZSByZXNvdXJjZXMuCi0oYWxsb3ctcmVhZC1kaXJlY3RvcnktYW5kLWlz
c3VlLXJlYWQtZXh0ZW5zaW9ucyAiL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1dl
Ykluc3BlY3RvclVJLmZyYW1ld29yayIpCi0KLSNpZiBVU0UoU1lTVEVNX0NPTlRFTlRfUEFUSCkK
LShtYXAgYWxsb3ctcmVhZC1kaXJlY3RvcnktYW5kLWlzc3VlLXJlYWQtZXh0ZW5zaW9ucwotICAg
IHJlYWQtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLWV4dGVuc2lvbi1zZWNvbmRhcnktcGF0aHMp
Ci0jZW5kaWYKLQotOzsgU2FuZGJveCBleHRlbnNpb25zCi0oZGVmaW5lIChhcHBseS1yZWFkLWFu
ZC1pc3N1ZS1leHRlbnNpb24gb3AgcGF0aC1maWx0ZXIpCi0gICAgKG9wIGZpbGUtcmVhZCogcGF0
aC1maWx0ZXIpCi0gICAgKG9wIGZpbGUtaXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0
ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZCIpIHBhdGgtZmlsdGVyKSkp
Ci0oZGVmaW5lIChhcHBseS13cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9uIG9wIHBhdGgtZmlsdGVy
KQotICAgIChvcCBmaWxlLXdyaXRlKiBwYXRoLWZpbHRlcikKLSAgICAob3AgZmlsZS1pc3N1ZS1l
eHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAtc2Fu
ZGJveC5yZWFkLXdyaXRlIikgcGF0aC1maWx0ZXIpKSkKLShkZWZpbmUgKHJlYWQtb25seS1hbmQt
aXNzdWUtZXh0ZW5zaW9ucyBwYXRoLWZpbHRlcikKLSAgICAoYXBwbHktcmVhZC1hbmQtaXNzdWUt
ZXh0ZW5zaW9uIGFsbG93IHBhdGgtZmlsdGVyKSkKLShkZWZpbmUgKHJlYWQtd3JpdGUtYW5kLWlz
c3VlLWV4dGVuc2lvbnMgcGF0aC1maWx0ZXIpCi0gICAgKGFwcGx5LXJlYWQtYW5kLWlzc3VlLWV4
dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikKLSAgICAoYXBwbHktd3JpdGUtYW5kLWlzc3VlLWV4
dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikpCi0ocmVhZC1vbmx5LWFuZC1pc3N1ZS1leHRlbnNp
b25zIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkIikpCi0ocmVhZC13cml0
ZS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gu
cmVhZC13cml0ZSIpKQotCi0oYWxsb3cgbWFjaC1sb29rdXAKLSNpZiBQTEFURk9STShNQUMpCi0g
ICAgKHdpdGggcmVwb3J0KSAod2l0aCB0ZWxlbWV0cnkpCi0jZW5kaWYKLSAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5hdWRpby5BdWRpb0NvbXBvbmVudFJlZ2lzdHJhciIpCi0gICAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUuYXdkZCIpCi0jaWYgIUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RF
KQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmcHJlZnNkLmFnZW50IikKLSNlbmRpZgot
ICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNvb2tpZWQiKQotICAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLmljb25zZXJ2aWNlcyIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuaWNv
bnNlcnZpY2VzLnN0b3JlIikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5zeXN0ZW0ubG9n
Z2VyIikKLSkKLQotKHdpdGgtZmlsdGVyIChzeXN0ZW0tYXR0cmlidXRlIGFwcGxlLWludGVybmFs
KQotICAgIChhbGxvdyBtYWNoLWxvb2t1cAotICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5hbmFseXRpY3NkIikKLSAgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuZGlhZ25vc3Rp
Y2QiKSkpCi0KLTs7IFZhcmlvdXMgc2VydmljZXMgcmVxdWlyZWQgYnkgQXBwS2l0IGFuZCBvdGhl
ciBmcmFtZXdvcmtzCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUuU3lzdGVtQ29uZmlndXJhdGlvbi5jb25maWdkIikKLSAgICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5hc3NlcnRpb25kLnByb2Nlc3Nhc3NlcnRpb25jb25uZWN0aW9uIikKLSAg
ICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5TeXN0ZW1Tb3VuZFNlcnZlci1PU1gi
KQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmF1ZGlvLmF1ZGlvaGFsZCIpCi0jaWYg
IUVOQUJMRShDRlBSRUZTX0RJUkVDVF9NT0RFKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFw
cGxlLmNmcHJlZnNkLmRhZW1vbiIpCi0jZW5kaWYKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5h
cHBsZS5jb3Jlc2VydmljZXMubGF1bmNoc2VydmljZXNkIikKLSAgICAgICAoZ2xvYmFsLW5hbWUg
ImNvbS5hcHBsZS5mb250cyIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubWVkaWFy
ZW1vdGVkLnhwYyIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZCIpCi0gICAg
ICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUubG9nZC5ldmVudHMiKQotICAgICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLmxzZC5tYXBkYiIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUubHNrZGQiKSA7OyA8cmRhcjovL3Byb2JsZW0vNDkxMjM4NTU+Ci0gICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUudGNjZCIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUudGNj
ZC5zeXN0ZW0iKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRydXN0ZC5hZ2VudCIp
Ci0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQ0FSZW5kZXJTZXJ2ZXIiKSA7IE5lZWRl
ZCBmb3IgW0NBQ29udGV4dCByZW1vdGVDb250ZXh0V2l0aE9wdGlvbnNdCi0pCi0KLTs7IDxyZGFy
Oi8vcHJvYmxlbS80NzI2ODE2Nj4KLShhbGxvdyBtYWNoLWxvb2t1cCAoeHBjLXNlcnZpY2UtbmFt
ZSAiY29tLmFwcGxlLk1UTENvbXBpbGVyU2VydmljZSIpKQotCi0oZGVueSBtYWNoLWxvb2t1cCAo
d2l0aCBuby1sb2cpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQ29yZVNlcnZpY2VzLmNv
cmVzZXJ2aWNlc2QiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkRpc2tBcmJpdHJhdGlv
bi5kaXNrYXJiaXRyYXRpb25kIikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5WaWV3QnJp
ZGdlQXV4aWxpYXJ5IikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS53aW5kb3dzZXJ2ZXIu
YWN0aXZlIikpCi0KLTs7IE5lZWRlZCB0byBzdXBwb3J0IGVuY3J5cHRlZCBtZWRpYSBwbGF5YmFj
ayA8cmRhcjovL3Byb2JsZW0vNDAwMzg0Nzg+Ci0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5TZWN1cml0eVNlcnZlciIpCi0gICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUub2NzcGQiKSkKLQotKGFsbG93IGZpbGUtcmVhZCogKHN1YnBhdGggIi9wcml2YXRl
L3Zhci9kYi9tZHMvc3lzdGVtIikpIDs7IEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW1vdmVkIHdo
ZW4gPHJkYXI6Ly9wcm9ibGVtLzk1Mzg0MTQ+IGlzIGZpeGVkLgotKHdpdGgtZmlsdGVyICh1aWQg
MCkKLSAgICAoYWxsb3cgZmlsZS13cml0ZSoKLSAgICAgICAgKHN1YnBhdGggIi9wcml2YXRlL3Zh
ci9kYi9tZHMvc3lzdGVtIikpIDs7IEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW1vdmVkIHdoZW4g
PHJkYXI6Ly9wcm9ibGVtLzk1Mzg0MTQ+IGlzIGZpeGVkLgotKQotCi0oYWxsb3cgZmlsZS1yZWFk
KgotICAgICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvZGIvbWRzIikKLSAgICAgICAobGl0ZXJh
bCAiL3ByaXZhdGUvdmFyL2RiL0RldGFjaGVkU2lnbmF0dXJlcyIpKQotCi0oYWxsb3cgaXBjLXBv
c2l4LXNobS1yZWFkKiBpcGMtcG9zaXgtc2htLXdyaXRlLWRhdGEgaXBjLXBvc2l4LXNobS13cml0
ZS1jcmVhdGUKLSAgICAgICAoaXBjLXBvc2l4LW5hbWUgImNvbS5hcHBsZS5BcHBsZURhdGFiYXNl
Q2hhbmdlZCIpKQotCi07OyBDb3JlRm91bmRhdGlvbi4gV2UgZG9uJ3QgaW1wb3J0IGNvbS5hcHBs
ZS5jb3JlZm91bmRhdGlvbi5zYiwgYmVjYXVzZSBpdCBhbGxvd3MgdW5uZWNlc3NhcnkgYWNjZXNz
IHRvIHBhc3RlYm9hcmQuCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICAoZ2xvYmFsLW5hbWUtcHJl
Zml4ICJjb20uYXBwbGUuZGlzdHJpYnV0ZWRfbm90aWZpY2F0aW9ucyIpCi0jaWYgIUhBVkUoQ1ND
SEVDS0ZJWERJU0FCTEUpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQ29yZVNlcnZpY2Vz
LmNvcmVzZXJ2aWNlc2QiKQotI2VuZGlmCi0pCi0KLShhbGxvdyBmaWxlLXJlYWQtZGF0YQotICAg
IChsaXRlcmFsICIvZGV2L2F1dG9mc19ub3dhaXQiKSkgOyBVc2VkIGJ5IENGIHRvIGNpcmN1bXZl
bnQgYXV0b21vdW50IHRyaWdnZXJzCi0oYWxsb3cgaXBjLXBvc2l4LXNobQotICAgIChpcGMtcG9z
aXgtbmFtZS1wcmVmaXggIkNGUEJTOiIpKSA7IDxyZGFyOi8vcHJvYmxlbS8xMzc1NzQ3NT4KLShh
bGxvdyBzeXN0ZW0tZnNjdGwgKGZzY3RsLWNvbW1hbmQgKF9JTyAiaCIgNDcpKSkKLQotOzsgTmV0
d29ya2luZwotKGFsbG93IG5ldHdvcmstb3V0Ym91bmQKLSAgICAgICA7OyBPYmpDIG1hcF9pbWFn
ZXMgbmVlZHMgdG8gc2VuZCBsb2dnaW5nIGRhdGEgdG8gc3lzbG9nLiA8cmRhcjovL3Byb2JsZW0v
Mzk3Nzg5MTg+Ci0gICAgICAgKGxpdGVyYWwgIi9wcml2YXRlL3Zhci9ydW4vc3lzbG9nIikKLSkK
LQotOzsgQ0ZOZXR3b3JrCi0oYWxsb3cgZmlsZS1yZWFkLWRhdGEgKHBhdGggIi9wcml2YXRlL3Zh
ci9kYi9uc3VybHN0b3JhZ2VkL2RhZnNhRGF0YS5iaW4iKSkKLQotI2lmIFBMQVRGT1JNKE1BQykK
LTs7IEZJWE1FIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzkzNDcyMDU+
ICsgcmVsYXRlZCByYWRhciBpbiBTYWZhcmkgaXMgZml4ZWQKLShhbGxvdyBtYWNoLWxvb2t1cAot
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnN5c3RlbS5sb2dnZXIiKQotICAgICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLnN5c3RlbS5ub3RpZmljYXRpb25fY2VudGVyIikpCi0jZW5k
aWYKLQotKGRlbnkgZmlsZS13cml0ZS1jcmVhdGUgKHZub2RlLXR5cGUgU1lNTElOSykpCi0KLTs7
IFJlc2VydmUgYSBuYW1lc3BhY2UgZm9yIGFkZGl0aW9uYWwgcHJvdGVjdGVkIGV4dGVuZGVkIGF0
dHJpYnV0ZXMuCi0oZGVueSBmaWxlLXJlYWQteGF0dHIgZmlsZS13cml0ZS14YXR0ciAoeGF0dHIt
cHJlZml4ICJjb20uYXBwbGUuc2VjdXJpdHkucHJpdmF0ZS4iKSkKLQotKGRlbnkgZmlsZS1yZWFk
KiBmaWxlLXdyaXRlKiAod2l0aCBuby1sb2cpCi0gICAgICAgOzsgRklYTUU6IFNob3VsZCBiZSBy
ZW1vdmVkIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS8xMDQ2Mzg4MT4gaXMgZml4ZWQuCi0gICAgICAg
KGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLkxhdW5jaFNlcnZp
Y2VzLlF1YXJhbnRpbmVFdmVudHNWMiIpCi0gICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkv
UHJlZmVyZW5jZXMvY29tLmFwcGxlLkxhdW5jaFNlcnZpY2VzLlF1YXJhbnRpbmVFdmVudHNWMi1q
b3VybmFsIikpCi0KLTs7IERlbnkgYWNjZXNzIG5lZWRlZCBmb3IgdW5uZWNlc3NhcnkgTlNBcHBs
aWNhdGlvbiBpbml0aWFsaXphdGlvbi4KLTs7IEZJWE1FOiBUaGlzIGNhbiBiZSByZW1vdmVkIG9u
Y2UgPHJkYXI6Ly9wcm9ibGVtLzEzMDExNjMzPiBpcyBmaXhlZC4KLShkZW55IGZpbGUtcmVhZCog
KHdpdGggbm8tbG9nKQotICAgICAgIChzdWJwYXRoICIvTGlicmFyeS9JbnB1dE1hbmFnZXJzIikK
LSAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9JbnB1dE1hbmFnZXJzIikpCi0oZGVueSB1
c2VyLXByZWZlcmVuY2UtcmVhZCAod2l0aCBuby1sb2cpCi0gICAgKHByZWZlcmVuY2UtZG9tYWlu
ICJjb20uYXBwbGUuc3BlZWNoLnJlY29nbml0aW9uLkFwcGxlU3BlZWNoUmVjb2duaXRpb24ucHJl
ZnMiKSkKLShkZW55IG1hY2gtbG9va3VwICh3aXRoIG5vLWxvZykKLSAgICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5jb3Jlc2VydmljZXMuYXBwbGVldmVudHMiKQotICAgICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLnBhc3RlYm9hcmQuMSIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20u
YXBwbGUuc3BlZWNoLnJlY29nbml0aW9uc2VydmVyIikpCi0jaWYgUExBVEZPUk0oTUFDKQotOzsg
QWxzbyBwYXJ0IG9mIHVubmVjZXNzYXJ5IE5TQXBwbGljYXRpb24gaW5pdGlhbGl6YXRpb24sIGJ1
dCB3ZSBjYW4ndCBibG9jayBhY2Nlc3MgdG8gdGhlc2UgeWV0LCBzZWUgPHJkYXI6Ly9wcm9ibGVt
LzEzODY5NzY1Pi4KLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5
L0NvbXBvbmVudHMiKQotICAgICAgIChzdWJwYXRoICIvTGlicmFyeS9LZXlib2FyZCBMYXlvdXRz
IikKLSAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkvSW5wdXQgTWV0aG9kcyIpCi0gICAgICAgKGhv
bWUtc3VicGF0aCAiL0xpYnJhcnkvQ29tcG9uZW50cyIpCi0gICAgICAgKGhvbWUtc3VicGF0aCAi
L0xpYnJhcnkvS2V5Ym9hcmQgTGF5b3V0cyIpCi0gICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJh
cnkvSW5wdXQgTWV0aG9kcyIpKQotI2VuZGlmCi0KLTs7IERhdGEgRGV0ZWN0b3JzCi0oYWxsb3cg
ZmlsZS1yZWFkKiAoc3VicGF0aCAiL3ByaXZhdGUvdmFyL2RiL2RhdGFkZXRlY3RvcnMvc3lzIikp
Ci0KLTs7IEFsbG93IGFjY2Vzc2VzIHRvIEhJRAotKGFsbG93IGlva2l0LW9wZW4KLSAgICAoaW9r
aXQtdXNlci1jbGllbnQtY2xhc3MgIklPSElETGliVXNlckNsaWVudCIpKQotCi07OyBBbGxvdyBh
Y2Nlc3NlcyB0byBMb2NhbEF1dGhlbnRpY2F0aW9uIGFuZCBSZW1vdGVTZXJ2aWNlCi0oYWxsb3cg
bWFjaC1sb29rdXAKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Db3JlQXV0aGVudGljYXRp
b24uYWdlbnQiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnJlbW90ZWQiKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdlZWU4
MDZiZWZjMjE4NzUyMzJiNDRmMjQ4MWFiMGRhZjQ0ZjAxZjkuLjg2MmMzYTYzYWU1ZTg3MGNiYmU5
ZmI3YTc2ODNhZjBiYTU0MWYzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTcsNyArMTcsNiBAQAogCQkJCTUxN0I1RjZEMjc1QjA3
QzMwMDJEQzIyRCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTVDMTU3OURGMjcxNjVF
MDgwMEVENTI4MCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTVDQUY3QUE5MjZGOTNG
OUYwMDAzRjE5RSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJCTU3NDJBMkZBMjUzNTYx
OUQwMEI3QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCUJDQThENDY4MTVCQ0Uw
RDYwMDlEQzFGMSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTdBN0U4REZDMjc0ODNB
MTIwMERDQzk3QSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJCTM3MkVCQjQ5MjAxN0U2
Q0YwMDA4NTA2NCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLApAQCAtMTEwNSwyNyArMTEwNCwx
MiBAQAogCQk1NzBEQUFDMjIzMDM3MzAzMDBFOEZDMDQgLyogTmZjQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREFBQzAyMzAzNzMw
MzAwRThGQzA0IC8qIE5mY0Nvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTcwREFBQzYyMzAzN0Y3RjAw
RThGQzA0IC8qIFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERBQUM0MjMwMzdGN0UwMEU4RkMwNCAvKiBX
S05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLmggKi87IH07CiAJCTU3MERBQUNBMjMwMzg1RkQwMEU4
RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NzBEQUFDODIzMDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5mY0RyaXZlci5o
ICovOyB9OwotCQk1NzJFQkJCRjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkJCMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwotCQk1NzJF
QkJDMDI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MkVCQkJDMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oICovOyB9OwotCQk1NzJFQkJDMTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Q
cm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MkVCQkJEMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nl
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwotCQk1NzJFQkJDMjI1MzZBNjBBMDAwNTUyQjMg
LyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkJFMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblBy
b2Nlc3NNZXNzYWdlcy5oICovOyB9OwotCQk1NzJFQkJDNDI1MzZBQjg0MDAwNTUyQjMgLyogY29t
LmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkMzMjUzNkFCODQwMDA1NTJCMyAvKiBjb20u
YXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYiAqLzsgfTsKLQkJNTcyRUJCQzkyNTM2QUZE
NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJDNjI1MzZBRkQ1MDAwNTUyQjMgLyogV2Vi
QXV0aG5Qcm9jZXNzUHJveHkuaCAqLzsgfTsKLQkJNTcyRUJCQ0MyNTM2QjA0RjAwMDU1MkIzIC8q
IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJDQjI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLzsgfTsKLQkJNTcyRUJCRDUyNTM2Qzg4NTAwMDU1
MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLmggKi87IH07CiAJCTU3MkVCQkQ3MjUzN0VCQUUwMDA1NTJC
MyAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUNBNjgwRDMxRTY5MDRCNTAwNzMxRDIwIC8qIEV4dHJh
UHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggKi87IH07CiAJCTU3MkVCQkRBMjUzOEY2QjQwMDA1NTJC
MyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDgyNTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0
dGVzdEludGVybmFsU29mdExpbmsubW0gKi87IH07CiAJCTU3MkVCQkRCMjUzOEY2QjYwMDA1NTJC
MyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEOTI1MzhGNkExMDAwNTUyQjMgLyogQXBwQXR0
ZXN0SW50ZXJuYWxTb2Z0TGluay5oICovOyB9OwogCQk1NzJFQkJERDI1MzkyMTgxMDAwNTUyQjMg
LyogQXBwQXR0ZXN0U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi87IH07
CiAJCTU3MkZENDQzMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIu
aCAqLzsgfTsKIAkJNTc0MjE3OTIyNDAwRTI4NjAwMkIzMDNEIC8qIExvY2FsQXV0aGVudGljYXRp
b25TUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NDIxNzkxMjQwMEUwOTgwMDJCMzAzRCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggKi87IH07
Ci0JCTU3NDJBMkVCMjUzNTYxM0YwMEI3QkExNCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0U5MTIwRjIy
OTNDMjVGMDA1QkVDNzggLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwICovOyB9OwotCQk1NzQy
QTJFQzI1MzU2MTNGMDBCN0JBMTQgLyogWFBDU2VydmljZU1haW4ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgyODM5NjE2QjQ3RUM0MDBBMjc4RkUg
LyogWFBDU2VydmljZU1haW4ubW0gKi87IH07Ci0JCTU3NDJBMkVFMjUzNTYxM0YwMEI3QkExNCAv
KiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDM0RFNDY4MTVBOTE3NjMwMDhEMjZGQyAvKiBGb3VuZGF0aW9uLmZy
YW1ld29yayAqLzsgfTsKLQkJNTc0MkEyRUYyNTM1NjEzRjAwQjdCQTE0IC8qIFdlYktpdC5mcmFt
ZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0LmZyYW1ld29yayAqLzsgfTsKLQkJNTc0
MkEzMDgyNTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc0MkEz
MDYyNTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
ICovOyB9OwotCQk1NzQyQTMwRDI1MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzQyQTMwQTI1MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggKi87IH07Ci0JCTU3NDJBMzE4MjUzNjQ4RTUwMEI3QkExNCAvKiBXZWJBdXRoblBy
b2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NDJBMzE1MjUzNjQ4RTQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MuaCAqLzsgfTsKIAkJNTc0
NzI4RDEyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NDcyOENGMjM0NTZF
OTgwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTc0NzI4RDQyMzQ1NzBBRTAwMTcw
MEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc0NzI4RDMyMzQ1NzBBRTAwMTcwMEFG
IC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oICovOyB9OwogCQk1NzU5N0VC
OTIxODExRDlBMDAzN0Y5MjQgLyogQ3RhcEhpZERyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTdFQjcyMTgxMUQ5QTAwMzdGOTI0IC8qIEN0
YXBIaWREcml2ZXIuaCAqLzsgfTsKQEAgLTI0OTUsMjcgKzI0NzksNiBAQAogCQkJcmVtb3RlR2xv
YmFsSURTdHJpbmcgPSA4REMyRUY0RjA0ODZBNjk0MDA5OEIyMTY7CiAJCQlyZW1vdGVJbmZvID0g
V2ViS2l0OwogCQl9OwotCQk1NzQyQTJFNzI1MzU2MTNGMDBCN0JBMTQgLyogUEJYQ29udGFpbmVy
SXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwotCQkJY29u
dGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0
ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gRTFBQzJF
MjcyMEY3Qjk0QzAwQjA4OTdEOwotCQkJcmVtb3RlSW5mbyA9ICJVbmxvY2sgS2V5Y2hhaW4iOwot
CQl9OwotCQk1NzQyQTJFOTI1MzU2MTNGMDBCN0JBMTQgLyogUEJYQ29udGFpbmVySXRlbVByb3h5
ICovID0gewotCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9y
dGFsID0gMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJ
cHJveHlUeXBlID0gMTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gOERDMkVGNEYwNDg2QTY5
NDAwOThCMjE2OwotCQkJcmVtb3RlSW5mbyA9IFdlYktpdDsKLQkJfTsKLQkJNTc0MkEyRjkyNTM1
NjE5RDAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKLQkJCWlzYSA9IFBC
WENvbnRhaW5lckl0ZW1Qcm94eTsKLQkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAy
OEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKLQkJCXByb3h5VHlwZSA9IDE7Ci0JCQly
ZW1vdGVHbG9iYWxJRFN0cmluZyA9IDU3NDJBMkU1MjUzNTYxM0YwMEI3QkExNDsKLQkJCXJlbW90
ZUluZm8gPSBXZWJBdXRoZW50aWNhdGlvbjsKLQkJfTsKIAkJNUMxNTc5RDAyNzE2NUIyRjAwRUQ1
MjgwIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5l
ckl0ZW1Qcm94eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4NjdENjkwRkU4NDAyOEZDMDJBQUMw
NyAvKiBQcm9qZWN0IG9iamVjdCAqLzsKQEAgLTUwMDgsMzcgKzQ5NzEsMTYgQEAKIAkJNTcwREFB
QzUyMzAzN0Y3RTAwRThGQzA0IC8qIFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzBEQUFDODIzMDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5mY0Ry
aXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDdGFwTmZjRHJpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTU3MERBQUM5MjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN0YXBOZmNEcml2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1NzJFQkJCOTI1MzZBMDZFMDAwNTUyQjMgLyogSW5mby1pT1MucGxpc3Qg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBs
aXN0OyBuYW1lID0gIkluZm8taU9TLnBsaXN0IjsgcGF0aCA9ICJXZWJBdXRoblByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLWlPUy5wbGlzdCI7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJNTcyRUJCQkEyNTM2QTA2RTAwMDU1MkIz
IC8qIEluZm8tT1NYLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdDsgbmFtZSA9ICJJbmZvLU9TWC5wbGlzdCI7IHBhdGggPSAi
V2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZp
Y2UvSW5mby1PU1gucGxpc3QiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTU3MkVC
QkJCMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
QXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQkMyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhu
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkJEMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJB
dXRoblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQkUyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhu
UHJvY2Vzc01lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1
dGhuUHJvY2Vzc01lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVC
QkMzMjUzNkFCODQwMDA1NTJCMyAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5z
YiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vz
cy5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQzUyNTM2QUZENTAwMDU1
MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNTcyRUJCQzYyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1By
b3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc1By
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkNCMjUzNkIwNEYwMDA1
NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJEMTI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTcyRUJCRDIyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNz
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJEMzI1MzZD
ODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJEODI1MzhGNkExMDAwNTUyQjMg
LyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFw
cEF0dGVzdEludGVybmFsU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3MkVCQkQ5MjUzOEY2QTEwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQ
SS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBcHBBdHRlc3RTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTcyRkQ0NDEyMjI2NUNFMjAwQTFFQ0MzIC8qIFdlYlZpZXdEaWRNb3ZlVG9XaW5k
b3dPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0MjE3OTEyNDAwRTA5ODAwMkIz
MDNEIC8qIExvY2FsQXV0aGVudGljYXRpb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxBdXRo
ZW50aWNhdGlvblNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTJGNzI1
MzU2MTNGMDBCN0JBMTQgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi54cGMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJ3cmFwcGVyLnhwYy1zZXJ2
aWNlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5XZWJBdXRo
bi54cGM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTU3NDJBMzA2MjUz
NThBMDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzA3MjUzNThBMDQw
MEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEEyNTM1OEVG
RDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEIyNTM1OEVGRDAwQjdCQTE0IC8q
IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzBDMjUzNThFRkQwMEI3QkExNCAvKiBX
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMTMyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1
dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJBdXRoblBy
b2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzE0
MjUzNjQ4RTQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMTUyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vz
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUEyNTM2NzVFOTAwQjdCQTE0IC8q
IFdlYkF1dGhuUHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhuUHJv
Y2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUMyNTM2NzVG
NjAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkF1dGhuUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0
MkEzMUQyNTM2NzVGNjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNz
LnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxRTI1MzY5NDkzMDBCN0JBMTQgLyogV2Vi
QXV0aG5TZXJ2aWNlRW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhu
U2VydmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDcy
OENGMjM0NTZFOTgwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTc0NzI4RDAyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQ3MjhEMzIzNDU3MEFFMDAx
NzAwQUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNTEwNCw3ICs1MDQ2LDYgQEAKIAkJNTc5RjFCRjgyM0M4MEVDNjAwQzdE
NEI0IC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2VJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlSW50ZXJu
YWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5RjFCRkEyM0M4MTFDRjAwQzdE
NEI0IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVBJV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzlGMUJGQjIzQzgxMUNGMDBDN0Q0QjQgLyogQVBJV2ViQXV0
aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElX
ZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNTdBOUZGMDcyNTJCRTZFMDAwNkEyMDQwIC8qIFdlYkF1dGhuU2VydmljZS54
Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQueGNjb25maWc7IHBhdGggPSBXZWJBdXRoblNlcnZpY2UueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3QTlGRjE1MjUyQzZBRUYwMDZBMjA0MCAvKiBsaWJXVEYu
YSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2
ZS5hcjsgcGF0aCA9IGxpYldURi5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1N0FDOEY0RTIxN0ZFRUQ5MDA1NTQzOEMgLyogSGlkQ29ubmVjdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIaWRDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
QUM4RjRGMjE3RkVFRDkwMDU1NDM4QyAvKiBIaWRDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gSGlkQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUxNDcsNyArNTA4OCw2IEBACiAJCTU3RUIyRTM5MjFFMTk4M0UwMEI4OUNERiAvKiBVMmZBdXRo
ZW50aWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFUyZkF1dGhlbnRpY2F0b3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VCRTI2ODIzNDY3NkM1MDA4RDhBRjkgLyog
QVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElXZWJBdXRoZW50
aWNhdGlvblBhbmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3RUJFMjY5MjM0
Njc2QzUwMDhEOEFGOSAvKiBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1N0VGQzc3RDI1NTBFQjg1MDBGOTQ3N0QgLyogY29tLmFwcGxlLldlYktp
dC5XZWJBdXRobi5zYi5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBwbGUuV2ViS2l0
LldlYkF1dGhuLnNiLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0ZBQkIwRTI1
ODE3Q0YwMDA1OURDOTUgLyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTdGQUJCMTAyNTgxODI3QzAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9u
U2VydmljZXNDb3JlU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25TZXJ2
aWNlc0NvcmVTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0ZBQkIx
MTI1ODE4MjdDMDA1OURDOTUgLyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTb2Z0TGluay5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU29mdExp
bmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjcyLDE1ICs3MjEyLDYgQEAK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
LQkJNTc0MkEyRUQyNTM1NjEzRjAwQjdCQTE0IC8qIEZyYW1ld29ya3MgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCQk1NzQyQTJFRTI1MzU2MTNGMDBCN0JBMTQgLyogRm91bmRh
dGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCQk1NzQyQTJFRjI1MzU2MTNGMDBC
N0JBMTQgLyogV2ViS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJKTsKLQkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwogCQk1QzE1NzlENDI3
MTY1QjJGMDBFRDUyODAgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1ld29y
a3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTczNjAs
NyArNzI5MSw2IEBACiAJCQkJNTE3QjVGNUIyNzVBOEQzRTAwMkRDMjJEIC8qIHdlYnB1c2h0b29s
ICovLAogCQkJCTJEOUZCMjI4MjM3NTIzODMwMDQ5RjkzNiAvKiBjb20uYXBwbGUuV2ViS2l0LkdQ
VS54cGMgKi8sCiAJCQkJQkM4MjgzQjExNkI0QkY3NzAwQTI3OEZFIC8qIGNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZy54cGMgKi8sCi0JCQkJNTc0MkEyRjcyNTM1NjEzRjAwQjdCQTE0IC8qIGNv
bS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBjICovLAogCQkJCTdBN0U4REY4Mjc0ODM5MjUwMERD
Qzk3QSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuQ2FwdGl2ZVBvcnRhbC54cGMgKi8s
CiAJCQkJMzcyRUJCNDYyMDE3RTY0MzAwMDg1MDY0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29u
dGVudC5EZXZlbG9wbWVudC54cGMgKi8sCiAJCQkJQkMzREU0NjYxNUE5MTc2MzAwOEQyNkZDIC8q
IGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC54cGMgKi8sCkBAIC03NTgwLDcgKzc1MTAsNiBA
QAogCQkJCUJDMDMyRDVDMTBGNDM2RDUwMDU4QzE1QSAvKiBXZWJQcm9jZXNzICovLAogCQkJCTUx
MENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLywKIAkJCQkyRDlGQjFG
RjIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJvY2VzcyAqLywKLQkJCQk1NzQyQTJGRjI1MzU3NTgw
MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzICovLAogCQkJCUMwQ0U3MjlEMTI0N0U3MUQwMEJD
MEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkJMDg5QzE2NjVGRTg0MTE1OEMwMkFBQzA3
IC8qIFJlc291cmNlcyAqLywKIAkJCQlDMENFNzMzNTEyNDdGNzBFMDBCQzBFQzQgLyogU2NyaXB0
cyAqLywKQEAgLTc3NTgsNyArNzY4Nyw2IEBACiAJCQkJQTFCODlCOTIyMjFFMDIzMzAwRUI0Q0VB
IC8qIFNES1ZhcmlhbnQueGNjb25maWcgKi8sCiAJCQkJNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRF
IC8qIFNoaW0ueGNjb25maWcgKi8sCiAJCQkJMUE0Rjk3NkUxMDBFN0I2NjAwNjM3QTE4IC8qIFZl
cnNpb24ueGNjb25maWcgKi8sCi0JCQkJNTdBOUZGMDcyNTJCRTZFMDAwNkEyMDQwIC8qIFdlYkF1
dGhuU2VydmljZS54Y2NvbmZpZyAqLywKIAkJCQk3QTdFOERGQTI3NDgzOTkzMDBEQ0M5N0EgLyog
V2ViQ29udGVudFNlcnZpY2UuQ2FwdGl2ZVBvcnRhbC54Y2NvbmZpZyAqLywKIAkJCQkzNzJFQkI0
QTIwMTdFNzYwMDAwODUwNjQgLyogV2ViQ29udGVudFNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25m
aWcgKi8sCiAJCQkJQkNBQ0M0MEUxNkIwQjhBODAwQjZFMDkyIC8qIFdlYkNvbnRlbnRTZXJ2aWNl
LnhjY29uZmlnICovLApAQCAtMTA1MTksNzUgKzEwNDQ3LDYgQEAKIAkJCXBhdGggPSBjb2NvYTsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCTU3NDJBMkZGMjUzNTc1ODAwMEI3
QkExNCAvKiBXZWJBdXRoblByb2Nlc3MgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNo
aWxkcmVuID0gKAotCQkJCTU3NDJBMzAwMjUzNTc1ODAwMEI3QkExNCAvKiBFbnRyeVBvaW50ICov
LAotCQkJCTU3NDJBMzE5MjUzNjc1RTkwMEI3QkExNCAvKiBpb3MgKi8sCi0JCQkJNTc0MkEzMUIy
NTM2NzVGNjAwQjdCQTE0IC8qIG1hYyAqLywKLQkJCQk1NzQyQTMwQzI1MzU4RUZEMDBCN0JBMTQg
LyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCAqLywKLQkJCQk1NzQyQTMwQTI1
MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8sCi0J
CQkJNTc0MkEzMEIyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbiAqLywKLQkJCQk1NzQyQTMxNDI1MzY0OEU0MDBCN0JBMTQgLyogV2Vi
QXV0aG5Qcm9jZXNzLmNwcCAqLywKLQkJCQk1NzQyQTMxNTI1MzY0OEU0MDBCN0JBMTQgLyogV2Vi
QXV0aG5Qcm9jZXNzLmggKi8sCi0JCQkJNTc0MkEzMTMyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1
dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKLQkJCQk1NzQyQTMwNzI1MzU4QTA0MDBCN0JBMTQg
LyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKLQkJCQk1NzQyQTMw
NjI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgg
Ki8sCi0JCQkpOwotCQkJcGF0aCA9IFdlYkF1dGhuUHJvY2VzczsKLQkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7Ci0JCX07Ci0JCTU3NDJBMzAwMjUzNTc1ODAwMEI3QkExNCAvKiBFbnRyeVBvaW50
ICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk1NzQyQTMw
MTI1MzU3NTgwMDBCN0JBMTQgLyogQ29jb2EgKi8sCi0JCQkpOwotCQkJcGF0aCA9IEVudHJ5UG9p
bnQ7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQk1NzQyQTMwMTI1MzU3NTgw
MDBCN0JBMTQgLyogQ29jb2EgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVu
ID0gKAotCQkJCTU3NDJBMzAyMjUzNTc1ODAwMEI3QkExNCAvKiBYUENTZXJ2aWNlICovLAotCQkJ
KTsKLQkJCXBhdGggPSBDb2NvYTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0J
CTU3NDJBMzAyMjUzNTc1ODAwMEI3QkExNCAvKiBYUENTZXJ2aWNlICovID0gewotCQkJaXNhID0g
UEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk1NzQyQTMwMzI1MzU3NTgwMDBCN0JBMTQg
LyogV2ViQXV0aG5TZXJ2aWNlICovLAotCQkJCTU3NDJBMzFFMjUzNjk0OTMwMEI3QkExNCAvKiBX
ZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tICovLAotCQkJKTsKLQkJCXBhdGggPSBYUENTZXJ2
aWNlOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEzMDMyNTM1NzU4
MDAwQjdCQTE0IC8qIFdlYkF1dGhuU2VydmljZSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwot
CQkJY2hpbGRyZW4gPSAoCi0JCQkJNTcyRUJCQjkyNTM2QTA2RTAwMDU1MkIzIC8qIEluZm8taU9T
LnBsaXN0ICovLAotCQkJCTU3MkVCQkJBMjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLU9TWC5wbGlz
dCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gV2ViQXV0aG5TZXJ2aWNlOwotCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEzMTkyNTM2NzVFOTAwQjdCQTE0IC8qIGlvcyAqLyA9
IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTc0MkEzMUEyNTM2
NzVFOTAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0lPUy5tbSAqLywKLQkJCSk7Ci0JCQlwYXRo
ID0gaW9zOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEzMUIyNTM2
NzVGNjAwQjdCQTE0IC8qIG1hYyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJNTc0MkEzMUQyNTM2NzVGNjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQu
V2ViQXV0aG5Qcm9jZXNzLnNiLmluICovLAotCQkJCTU3NDJBMzFDMjUzNjc1RjYwMEI3QkExNCAv
KiBXZWJBdXRoblByb2Nlc3NNYWMubW0gKi8sCi0JCQkpOwotCQkJcGF0aCA9IG1hYzsKLQkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTU3NTA3NUE2MjBBQjc1QUIwMDY5M0VBOSAv
KiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTA2
MzUsMTAgKzEwNDk0LDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTU3NjA4MjhDMjAyOTg1NDIw
MDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwICovLAogCQkJCTU3NjA4
MjhCMjAyOTg1NDIwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCAqLywK
LQkJCQk1NzJFQkJEMTI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bi5jcHAgKi8sCi0JCQkJNTcyRUJCRDIyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24uaCAqLywKLQkJCQk1NzJFQkJEMzI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKLQkJCQk1NzJFQkJDQjI1MzZCMDRG
MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gV2ViQXV0aGVudGljYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTA2NjIsOCArMTA1MTcsNiBAQAogCQkJCTU3NjA4Mjk2MjAyQkQ4QkEwMDExNjY3OCAvKiBX
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgKi8sCiAJCQkJNTc2MDgyOTUyMDJC
RDhCQTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggKi8sCiAJ
CQkJNTc2MDgyOTkyMDJCREFFMjAwMTE2Njc4IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluICovLAotCQkJCTU3MkVCQkM1MjUzNkFGRDUwMDA1NTJCMyAvKiBX
ZWJBdXRoblByb2Nlc3NQcm94eS5jcHAgKi8sCi0JCQkJNTcyRUJCQzYyNTM2QUZENTAwMDU1MkIz
IC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkF1dGhl
bnRpY2F0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExNDM2LDcgKzExMjg5
LDYgQEAKIAkJCQk1QzE1NzhFNTI3MEUwREJDMDBFRDUyODAgLyogY29tLmFwcGxlLldlYktpdC5h
ZGF0dHJpYnV0aW9uZC5zYi5pbiAqLywKIAkJCQkyREI5NjA1MjIzOTg4NkI5MDAxMDI3OTEgLyog
Y29tLmFwcGxlLldlYktpdC5HUFUuc2IuaW4gKi8sCiAJCQkJQTc4Q0NERDgxOTNBQzlFMzAwNUVD
QzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYi5pbiAqLywKLQkJCQk1N0VGQzc3
RDI1NTBFQjg1MDBGOTQ3N0QgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5zYi5pbiAqLywK
IAkJCQlFMzEzNjY0RDI2NUVFNUFGMDA1MTA4NEYgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50LnNiLmluICovLAogCQkJKTsKIAkJCXBhdGggPSBpb3M7CkBAIC0xNDcwMCwxNCArMTQ1NTIs
NiBAQAogCQkJCTU3RENFREIyMjE0QzYwNEMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdGlvblJl
cXVlc3REYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0RDRURCMzIxNEM2MDUzMDAxNkI4NDcg
LyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTU3RENFRDcxMjE0MkVFNkMwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzQyQTMwRDI1MzU4RUZEMDBCN0JB
MTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk1NzJFQkJDMDI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3NDJBMzE4MjUzNjQ4RTUwMEI3QkEx
NCAvKiBXZWJBdXRoblByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3MkVCQkQ1MjUzNkM4
ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQk1NzJFQkJDQzI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bkluZm8uaCBpbiBIZWFkZXJzICovLAotCQkJCTU3NDJBMzA4MjUzNThBMDQwMEI3QkExNCAvKiBX
ZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3
MkVCQkMyMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNTcyRUJCQzkyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlEREEwQTI4NjI3RTU1RTREMDA1RTA4NkUgLyog
V2ViQXV0b2NhcGl0YWxpemVUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQyRDYzNDEyMkEw
RUZERjAwRDJGQjNBIC8qIFdlYkF1dG9jb3JyZWN0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTkwRDM5RjUyNDNCRTY0ODAwMTk5Mzg4IC8qIFdlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTU5MywyOCArMTU0MzcsNiBAQAogCQkJcHJvZHVj
dFJlZmVyZW5jZSA9IDUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLzsK
IAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7CiAJCX07Ci0J
CTU3NDJBMkU1MjUzNTYxM0YwMEI3QkExNCAvKiBXZWJBdXRobiAqLyA9IHsKLQkJCWlzYSA9IFBC
WE5hdGl2ZVRhcmdldDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1NzQyQTJGMzI1MzU2
MTNGMDBCN0JBMTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJn
ZXQgIldlYkF1dGhuIiAqLzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCTU3NDJBMkVBMjUzNTYx
M0YwMEI3QkExNCAvKiBTb3VyY2VzICovLAotCQkJCTU3NDJBMkVEMjUzNTYxM0YwMEI3QkExNCAv
KiBGcmFtZXdvcmtzICovLAotCQkJCTU3NDJBMkYwMjUzNTYxM0YwMEI3QkExNCAvKiBSZXNvdXJj
ZXMgKi8sCi0JCQkJNTc0MkEyRjEyNTM1NjEzRjAwQjdCQTE0IC8qIFVubG9jayBrZXljaGFpbiAq
LywKLQkJCQk1NzQyQTJGMjI1MzU2MTNGMDBCN0JBMTQgLyogUHJvY2VzcyBXZWJBdXRoZW50aWNh
dGlvbiBlbnRpdGxlbWVudHMgKi8sCi0JCQkJNjUxNzU3MjMyN0NGQzI0QTAwRDlGRTQwIC8qIENv
cHkgWFBDIFNlcnZpY2UgdG8gU2Vjb25kYXJ5IFBhdGggKi8sCi0JCQkpOwotCQkJYnVpbGRSdWxl
cyA9ICgKLQkJCSk7Ci0JCQlkZXBlbmRlbmNpZXMgPSAoCi0JCQkJNTc0MkEyRTYyNTM1NjEzRjAw
QjdCQTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCi0JCQkJNTc0MkEyRTgyNTM1NjEzRjAw
QjdCQTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCi0JCQkpOwotCQkJbmFtZSA9IFdlYkF1
dGhuOwotCQkJcHJvZHVjdE5hbWUgPSBOZXR3b3JraW5nOwotCQkJcHJvZHVjdFJlZmVyZW5jZSA9
IDU3NDJBMkY3MjUzNTYxM0YwMEI3QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuLnhw
YyAqLzsKLQkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNlcnZp
Y2UiOwotCQl9OwogCQk1QzE1NzlDQzI3MTY1QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8gPSB7
CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
NUMxNTc5RDYyNzE2NUIyRjAwRUQ1MjgwIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNoZCIgKi87CkBAIC0xNTg3NCw3ICsxNTY5Niw2IEBACiAJ
CQkJMzcyRUJCMzgyMDE3RTY0MzAwMDg1MDY0IC8qIFdlYkNvbnRlbnQuRGV2ZWxvcG1lbnQgKi8s
CiAJCQkJQkM4MjgzQjAxNkI0QkY3NzAwQTI3OEZFIC8qIE5ldHdvcmtpbmcgKi8sCiAJCQkJMkQ5
RkIyMTYyMzc1MjM4MzAwNDlGOTM2IC8qIEdQVSAqLywKLQkJCQk1NzQyQTJFNTI1MzU2MTNGMDBC
N0JBMTQgLyogV2ViQXV0aG4gKi8sCiAJCQkJQTdBQURBMTAxOTM5NUNBOTAwM0VBMUM3IC8qIFNh
bmRib3ggUHJvZmlsZXMgKi8sCiAJCQkJRTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEIC8qIFVubG9j
ayBLZXljaGFpbiAqLywKIAkJCQk1MzI1QkRDRDIxREZGNDc3MDBBMERFRTEgLyogQXBwbHkgQ29u
ZmlndXJhdGlvbiB0byBYQ0ZpbGVMaXN0cyAqLywKQEAgLTE1OTAyLDEzICsxNTcyMyw2IEBACiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07Ci0J
CTU3NDJBMkYwMjUzNTYxM0YwMEI3QkExNCAvKiBSZXNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQ
QlhSZXNvdXJjZXNCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
LQkJCWZpbGVzID0gKAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwotCQl9OwogCQk3QTdFOERFRTI3NDgzOTI1MDBEQ0M5N0EgLyogUmVzb3VyY2VzICov
ID0gewogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CkBAIC0xNTkyMyw3ICsxNTczNyw2IEBACiAJCQlmaWxlcyA9ICgKIAkJ
CQlFMTdBRTJDMzE2QjlDNjNBMDAxQzQyRjIgLyogY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNz
LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlFMTdBRTJDMzE2QjlDNjNBMDAxQzQyRjEgLyogY29t
LmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJNTcy
RUJCQzQyNTM2QUI4NDAwMDU1MkIzIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNz
LnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlFQjdEMjUyQjI3QjMxQjc3MDA5Q0I1ODYgLyogY29t
LmFwcGxlLldlYktpdC53ZWJwdXNoZC5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTExRDM1QUUx
NkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiIGluIFJlc291cmNlcyAq
LywKIAkJCQk2QkU5NjlDMTFFNTRENDUyMDA4Qjc0ODMgLyogY29yZVByZWRpY3Rpb25fbW9kZWwg
aW4gUmVzb3VyY2VzICovLApAQCAtMTYxOTYsMzYgKzE2MDA5LDYgQEAKIAkJCXNoZWxsUGF0aCA9
IC9iaW4vc2g7CiAJCQlzaGVsbFNjcmlwdCA9ICJTY3JpcHRzL2NoZWNrLXhjZmlsZWxpc3RzLnNo
XG4iOwogCQl9OwotCQk1NzQyQTJGMTI1MzU2MTNGMDBCN0JBMTQgLyogVW5sb2NrIGtleWNoYWlu
ICovID0gewotCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rp
b25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJKTsKLQkJCWlucHV0UGF0aHMg
PSAoCi0JCQkpOwotCQkJbmFtZSA9ICJVbmxvY2sga2V5Y2hhaW4iOwotCQkJb3V0cHV0UGF0aHMg
PSAoCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0J
CQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiVU5MT0NLX1NDUklQVF9Q
QVRIPVwiJHtTUkNST09UfS8uLi8uLi8uLi9JbnRlcm5hbC9Ub29scy9TY3JpcHRzL3VubG9jay1z
YWZhcmktZW5naW5lZXJpbmcta2V5Y2hhaW4taWYtbmVlZGVkXCJcblxuW1sgLXggXCIke1VOTE9D
S19TQ1JJUFRfUEFUSH1cIiBdXSAmJiBleGVjIFwiJHtVTkxPQ0tfU0NSSVBUX1BBVEh9XCJcblxu
ZXhpdCAwXG4iOwotCQl9OwotCQk1NzQyQTJGMjI1MzU2MTNGMDBCN0JBMTQgLyogUHJvY2VzcyBX
ZWJBdXRoZW50aWNhdGlvbiBlbnRpdGxlbWVudHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhTaGVsbFNj
cmlwdEJ1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmls
ZXMgPSAoCi0JCQkpOwotCQkJaW5wdXRQYXRocyA9ICgKLQkJCQkiJChTUkNST09UKS9TY3JpcHRz
L3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoIiwKLQkJCSk7Ci0JCQluYW1lID0gIlByb2Nlc3MgV2Vi
QXV0aGVudGljYXRpb24gZW50aXRsZW1lbnRzIjsKLQkJCW91dHB1dFBhdGhzID0gKAotCQkJCSIk
KFdLX1BST0NFU1NFRF9YQ0VOVF9GSUxFKSIsCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxT
Y3JpcHQgPSAiU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaFxuIjsKLQkJfTsKIAkJNUMx
NTc4RTYyNzBFMTI5NDAwRUQ1MjgwIC8qIFByb2Nlc3MgYWRhdHRyaWJ1dGlvbmQgRW50aXRsZW1l
bnRzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE2NDM4LDI0ICsxNjIyMSw2IEBACiAJCQlzaGVs
bFBhdGggPSAvYmluL3NoOwogCQkJc2hlbGxTY3JpcHQgPSAiZXhwb3J0IFhQQ19CVU5ETEVTX1RP
X0NPUFlfVE9fU0VDT05EQVJZX1BBVEg9XCJjb20uYXBwbGUuV2ViS2l0LkdQVS54cGNcIlxuZXhw
b3J0IFhQQ19CVU5ETEVfSU5TVEFMTF9QQVRIX0lOX1NFQ09OREFSWV9QQVRIPVwiJHtTRUNPTkRB
UllfU1RBR0VEX0ZSQU1FV09SS19ESVJFQ1RPUll9L1dlYktpdC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9YUENTZXJ2aWNlc1wiXG5cIiR7U1JDUk9PVH0vU2NyaXB0cy9jb3B5LXhwYy1zZXJ2aWNlcy10
by1zZWNvbmRhcnktcGF0aC5zaFwiXG4iOwogCQl9OwotCQk2NTE3NTcyMzI3Q0ZDMjRBMDBEOUZF
NDAgLyogQ29weSBYUEMgU2VydmljZSB0byBTZWNvbmRhcnkgUGF0aCAqLyA9IHsKLQkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDg7Ci0JCQlm
aWxlcyA9ICgKLQkJCSk7Ci0JCQlpbnB1dEZpbGVMaXN0UGF0aHMgPSAoCi0JCQkpOwotCQkJaW5w
dXRQYXRocyA9ICgKLQkJCSk7Ci0JCQluYW1lID0gIkNvcHkgWFBDIFNlcnZpY2UgdG8gU2Vjb25k
YXJ5IFBhdGgiOwotCQkJb3V0cHV0RmlsZUxpc3RQYXRocyA9ICgKLQkJCSk7Ci0JCQlvdXRwdXRQ
YXRocyA9ICgKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MTsKLQkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJleHBvcnQgWFBD
X0JVTkRMRVNfVE9fQ09QWV9UT19TRUNPTkRBUllfUEFUSD1cImNvbS5hcHBsZS5XZWJLaXQuV2Vi
QXV0aG4ueHBjXCJcbmV4cG9ydCBYUENfQlVORExFX0lOU1RBTExfUEFUSF9JTl9TRUNPTkRBUllf
UEFUSD1cIiR7U0VDT05EQVJZX1NUQUdFRF9GUkFNRVdPUktfRElSRUNUT1JZfS9XZWJLaXQuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXNcIlxuXCIke1NSQ1JPT1R9L1NjcmlwdHMvY29w
eS14cGMtc2VydmljZXMtdG8tc2Vjb25kYXJ5LXBhdGguc2hcIlxuIjsKLQkJfTsKIAkJNjU3N0ZG
QjkyNzY5QzE0NjAwMTFBRUM4IC8qIENyZWF0ZSBTeW1saW5rIHRvIEFsdCBSb290IFBhdGggKi8g
PSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1h
c2sgPSA4OwpAQCAtMTY4NjQsMTUgKzE2NjI5LDYgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKLQkJNTc0MkEyRUEyNTM1NjEzRjAwQjdC
QTE0IC8qIFNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKLQkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCQk1NzQyQTJF
QjI1MzU2MTNGMDBCN0JBMTQgLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNTc0MkEyRUMyNTM1NjEzRjAwQjdCQTE0IC8qIFhQQ1NlcnZpY2VNYWluLm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7Ci0JCX07CiAJCTVDMTU3OUQyMjcxNjVCMkYwMEVENTI4MCAvKiBTb3VyY2VzICovID0g
ewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OwpAQCAtMTcyNTEsOCArMTcwMDcsNiBAQAogCQkJCTFBNjAyMjRDMThDMTZCOUYw
MEMzRThDOSAvKiBWaXNpdGVkTGlua1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBOEU3RDNDMThDMTUxNDkwMDVBNzAyQSAvKiBWaXNpdGVkTGlua1RhYmxlQ29u
dHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1N0RDRUQ3MDIx
NDJFRTY4MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTcyRUJCQkYyNTM2QTYwQTAwMDU1MkIz
IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk1NzJFQkJDMTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3NUIxQkJBMjNDRTlD
MTMwMDIwNjM5QSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQzBBMTk1NzFDOTAwNjhGMDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1QjFCQjgyM0NFOUJGQzAwMjA2MzlB
IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNzQz
MSwyMSArMTcxODUsNiBAQAogCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2IC8q
IFdlYktpdCAqLzsKIAkJCXRhcmdldFByb3h5ID0gNTE5Nzk3QzgyNzYyN0IyMzAwQkUwRjgzIC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKLQkJNTc0MkEyRTYyNTM1NjEzRjAwQjdC
QTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OwotCQkJdGFyZ2V0ID0gRTFBQzJFMjcyMEY3Qjk0QzAwQjA4OTdEIC8qIFVubG9jayBL
ZXljaGFpbiAqLzsKLQkJCXRhcmdldFByb3h5ID0gNTc0MkEyRTcyNTM1NjEzRjAwQjdCQTE0IC8q
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNTc0MkEyRTgyNTM1NjEzRjAwQjdC
QTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBl
bmRlbmN5OwotCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdCAq
LzsKLQkJCXRhcmdldFByb3h5ID0gNTc0MkEyRTkyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNTc0MkEyRkEyNTM1NjE5RDAwQjdCQTE0IC8qIFBC
WFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5Owot
CQkJdGFyZ2V0ID0gNTc0MkEyRTUyNTM1NjEzRjAwQjdCQTE0IC8qIFdlYkF1dGhuICovOwotCQkJ
dGFyZ2V0UHJveHkgPSA1NzQyQTJGOTI1MzU2MTlEMDBCN0JBMTQgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovOwotCQl9OwogCQk1QzE1NzlDRjI3MTY1QjJGMDBFRDUyODAgLyogUEJYVGFyZ2V0
RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0YXJn
ZXQgPSBFMUFDMkUyNzIwRjdCOTRDMDBCMDg5N0QgLyogVW5sb2NrIEtleWNoYWluICovOwpAQCAt
MTc3MjgsMjcgKzE3NDY3LDYgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsK
LQkJNTc0MkEyRjQyNTM1NjEzRjAwQjdCQTE0IC8qIERlYnVnICovID0gewotCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247Ci0JCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDU3QTlG
RjA3MjUyQkU2RTAwMDZBMjA0MCAvKiBXZWJBdXRoblNlcnZpY2UueGNjb25maWcgKi87Ci0JCQli
dWlsZFNldHRpbmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsKLQkJfTsKLQkJNTc0MkEy
RjUyNTM1NjEzRjAwQjdCQTE0IC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNTdBOUZGMDcyNTJC
RTZFMDAwNkEyMDQwIC8qIFdlYkF1dGhuU2VydmljZS54Y2NvbmZpZyAqLzsKLQkJCWJ1aWxkU2V0
dGluZ3MgPSB7Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0JCTU3NDJBMkY2MjUz
NTYxM0YwMEI3QkExNCAvKiBQcm9kdWN0aW9uICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247Ci0JCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IDU3QTlGRjA3MjUyQkU2
RTAwMDZBMjA0MCAvKiBXZWJBdXRoblNlcnZpY2UueGNjb25maWcgKi87Ci0JCQlidWlsZFNldHRp
bmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBQcm9kdWN0aW9uOwotCQl9OwogCQk1QzE1NzlENzI3
MTY1QjJGMDBFRDUyODAgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJh
dGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUMxNTc5REQyNzE2NUJFNTAw
RUQ1MjgwIC8qIHdlYnB1c2hkLnhjY29uZmlnICovOwpAQCAtMTgxMzUsMTYgKzE3ODUzLDYgQEAK
IAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJCWRlZmF1bHRDb25maWd1
cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07Ci0JCTU3NDJBMkYzMjUzNTYxM0YwMEI3QkEx
NCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViQXV0
aG4iICovID0gewotCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKLQkJCWJ1aWxkQ29uZmln
dXJhdGlvbnMgPSAoCi0JCQkJNTc0MkEyRjQyNTM1NjEzRjAwQjdCQTE0IC8qIERlYnVnICovLAot
CQkJCTU3NDJBMkY1MjUzNTYxM0YwMEI3QkExNCAvKiBSZWxlYXNlICovLAotCQkJCTU3NDJBMkY2
MjUzNTYxM0YwMEI3QkExNCAvKiBQcm9kdWN0aW9uICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25m
aWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFBy
b2R1Y3Rpb247Ci0JCX07CiAJCTVDMTU3OUQ2MjcxNjVCMkYwMEVENTI4MCAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAid2VicHVzaGQiICovID0gewogCQkJ
aXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2Vi
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGY1
YmQ4OWYxYzM1NDY5NDk3YjI5YjU2OWU0YjhkMjRiM2JmMGMxY2IuLjZmY2U4NTU4NzNiOGExNzRk
NDdhYmIwZjY5ZmY0NzRmN2MzYmYwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3IuY3BwCkBAIC0zMSw4ICszMSw2IEBACiAjaW5jbHVkZSAiRGVmYXVs
dFdlYkJyb3dzZXJDaGVja3MuaCIKICNpbmNsdWRlICJGcmFtZUluZm9EYXRhLmgiCiAjaW5jbHVk
ZSAiV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUg
IldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBh
Z2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC03NiwyMiArNzQsNyBAQCB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgRnJhbWUmIGZy
YW1lLCBjb25zdCBTZWN1cgogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGlzUHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlID0gcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKGZyYW1lLCB3ZWJGcmFtZS0+ZnJh
bWVJRCgpKTsKLSNpZiBIQVZFKFVOSUZJRURfQVNDX0FVVEhfVUkpCi0gICAgYm9vbCB1c2VXZWJB
dXRoblByb2Nlc3MgPSBmYWxzZTsKLSNlbHNlCi0gICAgYm9vbCB1c2VXZWJBdXRoblByb2Nlc3Mg
PSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRW5hYmxlZCgpOwotI2VuZGlmCi0gICAgaWYgKCF1c2VXZWJBdXRoblByb2Nlc3Mp
IHsKLSAgICAgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Ok1ha2VDcmVkZW50aWFsKHdlYkZyYW1lLT5mcmFt
ZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMsIGlzUHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoIWlzV2ViQnJvd3NlcigpKSB7Ci0gICAgICAgIFdFQkFVVEhOX1JFTEVBU0VfTE9HX0VS
Uk9SKCJtYWtlQ3JlZGVudGlhbDogVGhlICduYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlJyBB
UEkgaXMgb25seSBwZXJtaXR0ZWQgaW4gYXBwbGljYXRpb25zIHdpdGggdGhlICdjb20uYXBwbGUu
ZGV2ZWxvcGVyLndlYi1icm93c2VyJyBlbnRpdGxlbWVudC4iKTsKLSAgICAgICAgaGFuZGxlcih7
IH0sIHN0YXRpY19jYXN0PEF1dGhlbnRpY2F0b3JBdHRhY2htZW50PigwKSwgRXhjZXB0aW9uRGF0
YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSAnbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZScg
QVBJIGlzIG9ubHkgcGVybWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSAnY29tLmFwcGxl
LmRldmVsb3Blci53ZWItYnJvd3NlcicgZW50aXRsZW1lbnQuIl9zIH0pOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ok1ha2VDcmVkZW50aWFsKGhhc2gsIG9w
dGlvbnMsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAg
bV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHk6Ok1ha2VDcmVkZW50aWFsKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZy
YW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RG
TW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpn
ZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zJiBvcHRpb25zLCBNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIGNvbnN0
IFNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQmIHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQsIFJl
cXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCkBAIC0xMDEsMjYgKzg0LDcgQEAgdm9p
ZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmdldEFzc2VydGlvbihjb25zdCBGcmFtZSYg
ZnJhbWUsIGNvbnN0IFNlY3VyaXQKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBpc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSA9IHByb2Nlc3NpbmdVc2VyR2VzdHVyZShmcmFtZSwgd2ViRnJhbWUt
PmZyYW1lSUQoKSk7Ci0jaWYgSEFWRShVTklGSUVEX0FTQ19BVVRIX1VJKQotICAgIGJvb2wgdXNl
V2ViQXV0aG5Qcm9jZXNzID0gZmFsc2U7Ci0jZWxzZQotICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9j
ZXNzID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkVuYWJsZWQoKTsKLSNlbmRpZgotICAgIGlmICghdXNlV2ViQXV0aG5Qcm9j
ZXNzKSB7Ci0gICAgICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpHZXRBc3NlcnRpb24od2ViRnJhbWUtPmZy
YW1lSUQoKSwgd2ViRnJhbWUtPmluZm8oKSwgaGFzaCwgb3B0aW9ucywgbWVkaWF0aW9uLCBzY29w
ZUFuZENyb3NzT3JpZ2luUGFyZW50LnNlY29uZCwgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBX
VEZNb3ZlKGhhbmRsZXIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoc2NvcGVB
bmRDcm9zc09yaWdpblBhcmVudC5maXJzdCA9PSBXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2lu
KSB7Ci0gICAgICAgIGhhbmRsZXIoeyB9LCAoQXV0aGVudGljYXRvckF0dGFjaG1lbnQpMCwgRXhj
ZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50
IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3JzLiJfcyB9KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGlmICghaXNXZWJCcm93c2VyKCkpIHsKLSAgICAgICAgV0VCQVVUSE5f
UkVMRUFTRV9MT0dfRVJST1IoImdldEFzc2VydGlvbjogVGhlICduYXZpZ2F0b3IuY3JlZGVudGlh
bHMuZ2V0JyBBUEkgaXMgb25seSBwZXJtaXR0ZWQgaW4gYXBwbGljYXRpb25zIHdpdGggdGhlICdj
b20uYXBwbGUuZGV2ZWxvcGVyLndlYi1icm93c2VyJyBlbnRpdGxlbWVudC4iKTsKLSAgICAgICAg
aGFuZGxlcih7IH0sIHN0YXRpY19jYXN0PEF1dGhlbnRpY2F0b3JBdHRhY2htZW50PigwKSwgRXhj
ZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSAnbmF2aWdhdG9yLmNyZWRlbnRpYWxz
LmdldCcgQVBJIGlzIG9ubHkgcGVybWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRoIHRoZSAnY29t
LmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlcicgZW50aXRsZW1lbnQuIl9zIH0pOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdldEFzc2VydGlvbihoYXNo
LCBvcHRpb25zLCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOwor
ICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjpHZXRBc3NlcnRpb24od2ViRnJhbWUtPmZyYW1lSUQoKSwgd2Vi
RnJhbWUtPmluZm8oKSwgaGFzaCwgb3B0aW9ucywgbWVkaWF0aW9uLCBzY29wZUFuZENyb3NzT3Jp
Z2luUGFyZW50LnNlY29uZCwgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhhbmRs
ZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmlzQ29uZGl0aW9u
YWxNZWRpYXRpb25BdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCkBA
IC0xMzAsMjIgKzk0LDcgQEAgdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmlzQ29u
ZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUoUXVlcnlDb21wbGV0aW8KIAogdm9pZCBXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3I6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZShRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSNpZiBIQVZF
KFVOSUZJRURfQVNDX0FVVEhfVUkpCi0gICAgYm9vbCB1c2VXZWJBdXRoblByb2Nlc3MgPSBmYWxz
ZTsKLSNlbHNlCi0gICAgYm9vbCB1c2VXZWJBdXRoblByb2Nlc3MgPSBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgp
OwotI2VuZGlmCi0gICAgaWYgKCF1c2VXZWJBdXRoblByb2Nlc3MpIHsKLSAgICAgICAgbV93ZWJQ
YWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OklzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgp
LCBXVEZNb3ZlKGhhbmRsZXIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICgh
aXNXZWJCcm93c2VyKCkpIHsKLSAgICAgICAgV0VCQVVUSE5fUkVMRUFTRV9MT0dfRVJST1JfTk9f
RlJBTUUoImlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZTogV2Vi
QXV0aG4gaXMgb25seSBwZXJtaXR0ZWQgaW4gYXBwbGljYXRpb25zIHdpdGggdGhlICdjb20uYXBw
bGUuZGV2ZWxvcGVyLndlYi1icm93c2VyJyBlbnRpdGxlbWVudC4iKTsKLSAgICAgICAgaGFuZGxl
cihmYWxzZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
SXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCksIFdURk1vdmUo
aGFuZGxlcikpOworICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpJc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1
dGhlbnRpY2F0b3JBdmFpbGFibGUoKSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIGJvb2wgV2Vi
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoY29uc3QgRnJh
bWUmIGZyYW1lLCBjb25zdCBGcmFtZUlkZW50aWZpZXImIGZyYW1lSUQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNz
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDVkMTNmNzNiYjdmODkzOTJmMzc3NzY4MzQzMDc5YTNhYTc1ZDEzYzkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmgiCi0KLSNpZiBFTkFC
TEUoV0VCX0FVVEhOKQotCi0jaW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQotICAgIDog
bV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50Q29ubmVjdGlvbihjb25u
ZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQotewotICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwot
fQotCi1XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjp+V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bigpCi17Ci0gICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Ci19Ci0KLXZvaWQgV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKLXsKLSAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKHRo
aXMpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZh
bGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VOYW1lKQotewotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMTI5NWJhNTNkM2FlYzNmMzg1MDMzNzUxZGJkYjAzZmJjNGQ5YTlhMy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5o
CisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
biA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24+LCBJUEM6OkNv
bm5lY3Rpb246OkNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikpOwotICAgIH0KLSAgICB+
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpOwotCi0gICAgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAg
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwot
Ci0gICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUpIG92ZXJyaWRlOwotCi0gICAgLy8g
VGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIFdlYkF1dGhuIHByb2Nl
c3MuCi0gICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjgzZjU4YTg2Y2RlNzNjZTIwYzdlYTU0NGJmMzU5
N2I4Mjk1NTZiZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAK
LSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
LSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2lmIEVOQUJMRShXRUJf
QVVUSE4pCi0KLW1lc3NhZ2VzIC0+IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24gewotfQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwN2Y4
M2U3NjQwOTY0ZmFlOWIzMWNmMjNmN2Q4OTQwMTY3ZWY2NDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2MiArMCwwIEBACi0vKgotKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0qIGFyZSBt
ZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0qIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0qIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0qIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0qIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mbyB7Ci0g
ICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb247Ci0KLSAgICBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24ucG9ydCgpKTsKLSAgICB9Ci0KLSAgICBJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgcmVsZWFzZUlkZW50aWZpZXIoKQotICAgIHsKLSAg
ICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IGlkZW50aWZpZXIoKTsKLSAgICAgICAgY29ubmVjdGlv
biA9IHsgfTsKLSAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOwotICAgIH0KLQotICAgIHZvaWQg
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKLSAgICB7Ci0gICAgICAgIGVuY29k
ZXIgPDwgY29ubmVjdGlvbjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJO
IGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbkluZm8mIGluZm8pCi0gICAgewotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8u
Y29ubmVjdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5B
QkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBlYTI3MTg0MDYwNDQ0
ZmIyNzUwMzNmZTc3MjE3OTZmOTNkMTRhZTVkLi5lYzkyNGJkODkxYjFhOWM0MThlYjdiNTliNmI2
YTRkMGEyZTMzMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTE4LDggKzExOCw2IEBA
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0jaW5jbHVkZSAiV2ViQXV0aG5Db25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uLmg+CiAjZW5kaWYKIApAQCAtMTQ5OCwxMiArMTQ5Niw3IEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzZXRVc2VySXNJbnRlcmFjdGluZyhib29sIHVzZXJJc0ludGVyYWN0aW5nKQog
I2lmIEVOQUJMRShXRUJfQVVUSE4pCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TW9ja1dlYkF1
dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihjb25zdCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKSkg
ewotICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uKGNvbmZpZ3VyYXRpb24pLCB7IH0pOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oY29uZmlndXJh
dGlvbikpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCA1M2Y4YTU2Y2QyYmY4YTM4MGM5MWYyOGUyN2U3YjYzODA2YjdlMzM5Li5kNzdlMDNk
YjEyN2E1YWFhZDQxMDkxNmEyZDUxNjhhNGIxMjRhNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xOTIsMTIgKzE5Miw2IEBACiAjaW5jbHVkZSAiR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0j
aW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNs
dWRlICJXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbkluZm8uaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNU
T1IpCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yLmg+CiAjZW5kaWYK
QEAgLTEzODQsNTcgKzEzNzgsNiBAQCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdE1hbmFnZXImIFdlYlByb2Nlc3M6OmF1ZGlvTWVkaWFTdHJlYW1UcgogCiAjZW5kaWYg
Ly8gRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotc3RhdGlj
IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIGdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQotewotICAgIFdlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb25JbmZvIGNvbm5lY3Rpb25JbmZvOwotICAgIGlmICghY29ubmVjdGlvbi5zZW5kU3lu
YyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
KCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rp
b246OlJlcGx5KGNvbm5lY3Rpb25JbmZvKSwgMCkpIHsKLSAgICAgICAgLy8gSWYgd2UgZmFpbGVk
IHRoZSBmaXJzdCB0aW1lLCByZXRyeSBvbmNlLiBUaGUgYXR0YWNobWVudCBtYXkgaGF2ZSBiZWNv
bWUgaW52YWxpZAotICAgICAgICAvLyBiZWZvcmUgaXQgd2FzIHJlY2VpdmVkIGJ5IHRoZSB3ZWIg
cHJvY2VzcyBpZiB0aGUgbmV0d29yayBwcm9jZXNzIGNyYXNoZWQuCi0gICAgICAgIGlmICghY29u
bmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uKCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFdlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGNvbm5lY3Rpb25JbmZvKSwgMCkpIHsKLSAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYkF1dGhuLCAiZ2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbjogVW5hYmxlIHRvIGNvbm5lY3QgdG8gV2ViQXV0aG4gcHJvY2VzcyAoVGVybWluYXRpbmcp
Iik7Ci0gICAgICAgICAgICBmYWlsZWRUb1NlbmRTeW5jTWVzc2FnZSgpOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgcmV0dXJuIGNvbm5lY3Rpb25JbmZvOwotfQotCi1XZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCkK
LXsKLSAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICAvLyBJZiB3
ZSd2ZSBsb3N0IG91ciBjb25uZWN0aW9uIHRvIHRoZSBXZWJBdXRobiBwcm9jZXNzIChlLmcuIGl0
IGNyYXNoZWQpIHRyeSB0byByZS1lc3RhYmxpc2ggaXQuCi0gICAgaWYgKCFtX3dlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgYXV0byBjb25uZWN0aW9uSW5mbyA9IGdldFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpOwotCi0gICAg
ICAgIC8vIFJldHJ5IG9uY2UgaWYgdGhlIElQQyB0byBnZXQgdGhlIGNvbm5lY3Rpb25JZGVudGlm
aWVyIHN1Y2NlZWRlZCBidXQgdGhlIGNvbm5lY3Rpb25JZGVudGlmaWVyIHdlIHJlY2VpdmVkCi0g
ICAgICAgIC8vIGlzIGludmFsaWQuIFRoaXMgbWF5IGluZGljYXRlIHRoYXQgdGhlIFdlYkF1dGhu
IHByb2Nlc3MgaGFzIGNyYXNoZWQuCi0gICAgICAgIGlmICghSVBDOjpDb25uZWN0aW9uOjppZGVu
dGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5mby5pZGVudGlmaWVyKCkpKQotICAgICAgICAgICAg
Y29ubmVjdGlvbkluZm8gPSBnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCpwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpKTsKLQotICAgICAgICBpZiAoIUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRp
ZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoV2ViQXV0aG4sICJlbnN1cmVXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uOiBDb25uZWN0aW9uIGlkZW50aWZpZXIgZm9yIFdlYkF1dGhuIHByb2Nlc3MgaXMgaW52YWxp
ZC4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBtX3dlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUo
Y29ubmVjdGlvbkluZm8ucmVsZWFzZUlkZW50aWZpZXIoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJu
ICptX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb247Ci19Ci0KLXZvaWQgV2ViUHJvY2Vzczo6d2Vi
QXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKiBj
b25uZWN0aW9uKQotewotICAgIEFTU0VSVChtX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24pOwot
ICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgbV93ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
ID09IGNvbm5lY3Rpb24pOwotCi0gICAgbV93ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uID0gbnVs
bHB0cjsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCi0KIHZvaWQgV2ViUHJvY2Vz
czo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIHsKICAgICBXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGZsYWcp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggNmMxMzM2Y2ZhOGY5OGZh
ZDA4OTRmNWFlYWU1YTJhZGJiMjYzMTlkMC4uMzYxNTVhNzI3OGFmZWIwZDlkZWMwMWZiYTdjYTBm
ZTk4Njc2NTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xMzEs
NyArMTMxLDYgQEAgY2xhc3MgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5OwogY2xhc3MgU3RvcmFnZUFy
ZWFNYXA7CiBjbGFzcyBVc2VyRGF0YTsKIGNsYXNzIFdheWxhbmRDb21wb3NpdG9yRGlzcGxheTsK
LWNsYXNzIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OwogY2xhc3MgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OwogY2xhc3MgV2Vi
Q2FjaGVTdG9yYWdlUHJvdmlkZXI7CkBAIC0yNjQsMTIgKzI2Myw2IEBAIHB1YmxpYzoKICAgICBS
ZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5JiBtZWRpYUVuZ2luZUNvbmZpZ3Vy
YXRpb25GYWN0b3J5KCk7CiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaWYgRU5B
QkxFKFdFQl9BVVRITikKLSAgICBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uJiBlbnN1cmVXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAgdm9pZCB3ZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uQ2xvc2VkKFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24qKTsKLSAgICBXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uKiBleGlzdGluZ1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKSB7IHJldHVy
biBtX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uZ2V0KCk7IH0KLSNlbmRpZgotCiAgICAgTGli
V2ViUlRDTmV0d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCiAgICAgdm9pZCBzZXRDYWNoZU1v
ZGVsKENhY2hlTW9kZWwpOwpAQCAtNjYwLDExICs2NTMsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFn
ZXI+IG1fYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyOwog
I2VuZGlmCiAjZW5kaWYKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgUmVmUHRyPFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fd2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjsKLSNlbmRp
ZgotCiAgICAgUmVmPFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyPiBtX2NhY2hlU3RvcmFnZVByb3Zp
ZGVyOwogICAgIFJlZjxXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+IG1fYnJvYWRjYXN0Q2hh
bm5lbFJlZ2lzdHJ5OwogICAgIFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0cnk+IG1fd2ViTG9ja1Jl
Z2lzdHJ5OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDE2OTg2NGE0MDczODVlOWQwMmYxOWE5YjdlZjEyNTdlOTU4YjdiMzkuLjg2OWRiZTYyZDJl
Y2NhOGY4MTVhN2IxNTE3MDdlZWNmN2NmZDM2YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0xMSAgSiBQ
YXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBDbGVhbiB1
cCBXZWJBdXRoZW50aWNhdGlvbk1vZGVybiBhbmQgV2ViQXV0aG5Qcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNzMKKyAgICAgICAgcmRh
cjovL3Byb2JsZW0vOTE1NzEwMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKTogRGVsZXRlZC4KKwogMjAyMi0wNC0xMSAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFpbCBDb21wb3NlXSBQcmVzZXJ2
ZSBhdHRhY2htZW50IGlkZW50aWZpZXJzIHdoZW4gY2xvbmluZyBhdHRhY2htZW50LWJhY2tlZCBp
bWFnZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCBlZWUzZTAyODE1
ZGUyZDFiOThhNWUyNTcxMDQ0NDc1ZTUyOGVhM2ZiLi42NjYzNzlmYWEyNjAyODQzNmE2ZGIyM2Vl
MDk4Y2I5NjM5MTJjYzk2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBA
IC0zMDEsMjIgKzMwMSw2IEBAIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzdWJGcmFtZSA9CiAiPC9z
Y3JpcHQ+IgogIjwvaHRtbD4iX3M7CiAKLXN0YXRpYyBfV0tFeHBlcmltZW50YWxGZWF0dXJlICp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKQotewotICAgIHN0YXRp
YyBSZXRhaW5QdHI8X1dLRXhwZXJpbWVudGFsRmVhdHVyZT4gdGhlRmVhdHVyZTsKLSAgICBpZiAo
dGhlRmVhdHVyZSkKLSAgICAgICAgcmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7Ci0KLSAgICBOU0Fy
cmF5ICpmZWF0dXJlcyA9IFtXS1ByZWZlcmVuY2VzIF9leHBlcmltZW50YWxGZWF0dXJlc107Ci0g
ICAgZm9yIChfV0tFeHBlcmltZW50YWxGZWF0dXJlICpmZWF0dXJlIGluIGZlYXR1cmVzKSB7Ci0g
ICAgICAgIGlmIChbZmVhdHVyZS5rZXkgaXNFcXVhbDpAIldlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RW5hYmxlZCJdKSB7Ci0gICAgICAgICAgICB0aGVGZWF0dXJlID0gZmVhdHVyZTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiB0aGVGZWF0dXJlLmdldCgp
OwotfQotCiBzdGF0aWMgdm9pZCByZXNldCgpCiB7CiAgICAgd2ViQXV0aGVudGljYXRpb25QYW5l
bFJhbiA9IGZhbHNlOwpAQCAtNDUyLDcgKzQzNiw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgUGFuZWxIaWRTdWNjZXNzMSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBb
W05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9u
LWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC00NzQsNyArNDU3LDYg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3MyKQogICAgIFJl
dGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZCIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtNTAxLDcgKzQ4Myw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgUGFuZWxSYWN5MSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3Nl
cnRpb24tbmZjIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01MjUsNyArNTA2LDYgQEAgVEVTVChX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbFJhY3kyKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTU0
OSw3ICs1MjksNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVHdpY2UpCiAg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtNTcyLDcgKzU1MSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25Q
YW5lbCwgUmVsb2FkSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24t
Z2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01OTIsNyAr
NTcwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMb2NhdGlvbkNoYW5nZUhpZENh
bmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IG90aGVyVVJMID0gW1tOU0J1bmRsZSBtYWluQnVu
ZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNjEy
LDcgKzU4OSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTmV3TG9hZEhpZENhbmNl
bCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IG90aGVyVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNjMxLDcg
KzYwNyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgQ2xvc2VIaWRDYW5jZWwpCiAg
ICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwi
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTY3MSw3ICs2NDYsNiBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIFN1YkZyYW1lQ2hhbmdlTG9jYXRpb25IaWRDYW5jZWwpCiAgICAgfSk7CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtNzE4LDcgKzY5Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgU3ViRnJhbWVEZXN0cnVjdGlvbkhpZENhbmNlbCkKICAgICB9KTsKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBA
IC03MzcsNyArNzEwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZENh
bmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlk
LWNhbmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAi
V2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVT
XTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4
cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0
dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25d
KTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBh
bmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzU3LDcgKzcyOSw2IEBAIFRFU1QoV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQogICAg
IFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9y
UmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVu
dGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldl
YlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107
Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBl
cmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVy
ZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7
CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5l
bFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTc3NSw3ICs3NDYsNiBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsVTJmQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tdTJmLW5vLWNyZWRlbnRp
YWxzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03OTMsNyArNzYzLDYgQEAgVEVTVChXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLCBGYWtlUGFuZWxIaWRTdWNjZXNzKQogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTgxMiw3ICs3ODEsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZha2VQYW5lbEhp
ZEN0YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpA
QCAtODMxLDcgKzc5OSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTnVsbFBhbmVs
SGlkU3VjY2VzcykKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1h
aW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRp
b24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJX
ZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNd
OwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhw
ZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1
cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0p
OwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04NTAsNyArODE3LDYgQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRDdGFwTm9DcmVkZW50aWFsc0ZvdW5kKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3Jl
ZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpA
IldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllF
U107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTg3MCw3ICs4MzYsNiBAQCBURVNUKFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsTXVsdGlwbGVORkNUYWdzUHJlc2VudCkKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbmZjLW11bHRpcGxlLXRh
Z3MiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTg4OSw3ICs4NTQsNiBAQCBURVNUKFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsIFBhbmVsSGlkQ2FuY2VsUmVsb2FkTm9DcmFzaCkKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLWNhbmNlbCIgd2l0aEV4dGVu
c2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAK
ICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3Rf
Y29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldp
dGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6
d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwpAQCAtOTA5LDcgKzg3Myw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgUGFuZWxIaWRTdWNjZXNzQ2FuY2VsTm9DcmFzaCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRl
c3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhl
bnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC05Mjcs
NyArODkwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZEN0YXBOb0Ny
ZWRlbnRpYWxzRm91bmRDYW5jZWxOb0NyYXNoKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtbm8tY3JlZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJo
dG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0
byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3Vy
YXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJu
YWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHBy
ZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhl
bnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1Jl
Y3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKQEAgLTk0NSw3ICs5MDcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdl
dFJldHJpZXNFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3Jl
ZGVudGlhbC1oaWQtcGluLWdldC1yZXRyaWVzLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNv
bmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9u
V2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIg
Y29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGZvY3VzXTsKQEAgLTk1
OSw3ICs5MjAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldEtleUFncmVl
bWVudEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50
aWFsLWhpZC1waW4tZ2V0LWtleS1hZ3JlZW1lbnQtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAq
Y29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRp
b25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxz
IiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZl
cmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3Qg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgZm9jdXNdOwpAQCAt
OTczLDcgKzkzMyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBp
bkVycm9yTm9EZWxlZ2F0ZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2Ut
Y3JlZGVudGlhbC1oaWQtcGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbl0pOwogICAgIFt3ZWJWaWV3IGZvY3VzXTsKQEAgLTk4Nyw3ICs5NDYsNiBAQCBU
RVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpblJlcXVlc3RQaW5FcnJvck51bGxEZWxlZ2F0
ZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQt
cGluIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMDA1LDcgKzk2Myw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGluUmVxdWVzdFBpbkVycm9yKQogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1mYWtl
LXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRp
b24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQ
bHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJl
SlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3Nl
dEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdl
YkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMDI1LDcg
Kzk4Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5QaW5C
bG9ja2VkRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRl
bnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBpbi1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC0xMDQ1LDcgKzEwMDEsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIFBpbkdldFBpblRva2VuUGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGlu
LWF1dGgtYmxvY2tlZC1lcnJvciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRo
ZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTA2NSw3ICsxMDIw
LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkludmFs
aWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4taW52YWxpZC1lcnJvci1yZXRyeSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTA4NCw3ICsxMDM4LDYgQEAgVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBQaW5HZXRQaW5Ub2tlblBpbkF1dGhJbnZhbGlkRXJyb3JBbmRSZXRyeSkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGlu
LWdldC1waW4tdG9rZW4tcGluLWF1dGgtaW52YWxpZC1lcnJvci1yZXRyeSIgd2l0aEV4dGVuc2lv
bjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAg
ICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29u
ZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJ
bnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRp
b24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNa
ZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwpAQCAtMTEwMyw3ICsxMDU2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVs
LCBNYWtlQ3JlZGVudGlhbEludGVybmFsVVYpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNh
dGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLWludGVybmFsLXV2IiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CkBAIC0xMTIwLDcgKzEwNzIsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VD
cmVkZW50aWFsUGluKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTExMzgsNyArMTA4OSw2IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW5BdXRoQmxvY2tl
ZEVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFs
LWhpZC1waW4tYXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTU4
LDcgKzExMDgsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFs
UGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5z
aW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAog
ICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9j
b25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0
aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CkBAIC0xMTc3LDcgKzExMjYsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIEdldEFzc2VydGlvblBpbikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRo
ZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTE5NSw3ICsxMTQz
LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRpb25JbnRlcm5hbFVW
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtaW50
ZXJuYWwtdXYiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdD
b25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpA
IldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllF
U107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JF
eHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVh
dHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
XSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25Q
YW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyMTIsNyArMTE1OSw2IEBAIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uSW50ZXJuYWxVVlBpbkZhbGxiYWNr
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtaW50
ZXJuYWwtdXYtcGluLWZhbGxiYWNrIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24g
PSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlND
Rm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMjMwLDcgKzEx
NzYsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlvblBpbkF1dGhC
bG9ja2VkRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWhpZC1waW4tYXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0x
MjUwLDcgKzExOTUsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEdldEFzc2VydGlv
blBpbkludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1oaWQtcGluLWludmFsaWQtZXJyb3ItcmV0cnkiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKQEAgLTEyNzAsNyArMTIxNCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgTmZjUGluQ2FjaGVkRGlzY29ubmVjdCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0
aW9uLWdldC1hc3NlcnRpb24tbmZjLXBpbi1kaXNjb25uZWN0IiB3aXRoRXh0ZW5zaW9uOkAiaHRt
bCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8g
KmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0
aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFs
cyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50
aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CkBAIC0xMjg5LDcgKzEyMzIsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE11bHRp
cGxlQWNjb3VudHNOdWxsRGVsZWdhdGUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1tdWx0aXBsZS1hY2NvdW50cyIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwpAQCAtMTMwNyw3ICsxMjQ5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNdWx0
aXBsZUFjY291bnRzKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2Vy
dGlvbi1oaWQtbXVsdGlwbGUtYWNjb3VudHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEzMjks
NyArMTI3MCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFFcnJvcikKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1lcnJvciIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM0Niw3ICsxMjg2LDYgQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBMQUR1cGxpY2F0ZUNyZWRlbnRpYWwpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtZHVwbGljYXRlLWNyZWRlbnRpYWwiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTEzNjUsNyArMTMwNCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTEFEdXBsaWNhdGVDcmVkZW50aWFsV2l0aENvbnNlbnQpCiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
IndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEtZHVwbGljYXRlLWNyZWRlbnRp
YWwiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEzOTAsNyArMTMyOCw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgTEFOb0NyZWRlbnRpYWwpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNDA3
LDcgKzEzNDQsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRp
YWxOdWxsRGVsZWdhdGUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE0MjUsNyArMTM2MSw2IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFNYWtlQ3JlZGVudGlhbERpc2FsbG93TG9jYWxB
dXRoZW50aWNhdG9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVk
ZW50aWFsLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNDQyLDcgKzEzNzcsNiBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRpYWxBbGxvd0xvY2FsQXV0aGVu
dGljYXRvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTQ2Myw3ICsxMzk3LDYgQEAgVEVTVChXZWJB
dXRoZW50aWNhdGlvblBhbmVsLCBMQU1ha2VDcmVkZW50aWFsTm9Nb2NrTm9Vc2VyR2VzdHVyZSkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1uby1t
b2NrIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNDgyLDcgKzE0MTUsNiBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIExBR2V0QXNzZXJ0aW9uKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTUw
Miw3ICsxNDM0LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdldEFzc2VydGlv
bk11bHRpcGxlQ3JlZGVudGlhbFN0b3JlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRp
b24tZ2V0LWFzc2VydGlvbi1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpA
IlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0g
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0lu
Q2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0Zv
clRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFi
bGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRo
ZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTUzMCw3ICsxNDYx
LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdldEFzc2VydGlvbk5vTW9ja05v
VXNlckdlc3R1cmUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0
aW9uLWxhLW5vLW1vY2siIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0
V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dl
YlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNz
TmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0
aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpO
TyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVu
dGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGlj
YXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE1NDcsNyArMTQ3Nyw2IEBA
IFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3NlcnRpb25NdWx0aXBsZU9yZGVy
KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0g
VVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1sYSIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtMjM0MSw2ICsyMjcwLDcgQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBVcGRhdGVDcmVkZW50aWFsVXNlcm5hbWUpCiBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIEV4cG9ydEltcG9ydENyZWRlbnRpYWwpCiB7CiAgICAgcmVzZXQoKTsKKyAgICBj
bGVhblVwS2V5Y2hhaW4oImV4YW1wbGUuY29tIl9zKTsKIAogICAgIGFkZEtleVRvS2V5Y2hhaW4o
dGVzdEVTMjU2UHJpdmF0ZUtleUJhc2U2NCwgImV4YW1wbGUuY29tIl9zLCB0ZXN0VXNlckVudGl0
eUJ1bmRsZUJhc2U2NCk7CiAKQEAgLTI0MTIsNTggKzIzNDIsNiBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIERlbGV0ZU9uZUNyZWRlbnRpYWwpCiB9CiAjZW5kaWYgLy8gVVNFKEFQUExF
X0lOVEVSTkFMX1NESykgfHwgUExBVEZPUk0oSU9TKQogCi0jaWYgUExBVEZPUk0oSU9TKQotVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBSZWNvdmVyQWZ0ZXJBdXRoTlByb2Nlc3NDcmFzaCkK
LXsKLSAgICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7Ci0gICAgICAgIHsgIi8i
X3MsIHsgIkZPTyJfcyB9IH0KLSAgICB9KTsKLQotICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6WUVTIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBl
cmltZW50YWxGZWF0dXJlKCldOwotCi0gICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb25dKTsKLSAgICBFWFBFQ1RfRVEoW1dLUHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJv
Y2Vzc0lkZW50aWZpZXJdLCAwKTsKLQotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOltO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiaHR0cDovL2xvY2FsaG9zdDolZC8iLCBzZXJ2ZXIu
cG9ydCgpXV1dXTsKLSAgICBbd2ViVmlldyBmb2N1c107Ci0KLSAgICBbd2ViVmlldyBvYmplY3RC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiaW50ZXJuYWxzLnNldE1vY2tXZWJBdXRoZW50aWNhdGlv
bkNvbmZpZ3VyYXRpb24oeyB9KSJdOwotICAgIGF1dG8gZmlyc3RXZWJQSUQgPSBbd2ViVmlldyBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdOwotICAgIGF1dG8gZmlyc3RXZWJBdXRoblBJRCA9IFtXS1By
b2Nlc3NQb29sIF93ZWJBdXRoblByb2Nlc3NJZGVudGlmaWVyXTsKLSAgICBFWFBFQ1RfTkUoZmly
c3RXZWJQSUQsIDApOwotICAgIEVYUEVDVF9ORShmaXJzdFdlYkF1dGhuUElELCAwKTsKLQotICAg
IGtpbGwoZmlyc3RXZWJBdXRoblBJRCwgU0lHS0lMTCk7Ci0gICAgd2hpbGUgKFtXS1Byb2Nlc3NQ
b29sIF93ZWJBdXRoblByb2Nlc3NJZGVudGlmaWVyXSkKLSAgICAgICAgVXRpbDo6c3BpblJ1bkxv
b3AoKTsKLQotICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJpbnRl
cm5hbHMuc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IGhpZDogeyBzdGFn
ZTogJ3JlcXVlc3QnLCBzdWJTdGFnZTogJ21zZycsIGVycm9yOiAnc3VjY2VzcycsIGlzVTJmOiB0
cnVlLCBwYXlsb2FkQmFzZTY0OiBbJ0FRQUFBRHN3UkFJZ2U5NEtVcXdmVElzbjRBT2pjTTFtcE1j
UmpkSXRWRWVEWDBXNW5HaENQL2NDSUR4UmUwZUhmNFY0TGVFQWhxZUQwZWZmVGpZNTUzSDE5cStq
V3ExVGM0V09rQUE9J10gfSB9KTsiXTsKLQotICAgIHdoaWxlICghW1dLUHJvY2Vzc1Bvb2wgX3dl
YkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdKQotICAgICAgICBVdGlsOjpzcGluUnVuTG9vcCgpOwot
Ci0gICAgYXV0byBzZWNvbmRXZWJBdXRoblBJRCA9IFtXS1Byb2Nlc3NQb29sIF93ZWJBdXRoblBy
b2Nlc3NJZGVudGlmaWVyXTsKLSAgICBFWFBFQ1RfTkUoc2Vjb25kV2ViQXV0aG5QSUQsIGZpcnN0
V2ViQXV0aG5QSUQpOwotICAgIEVYUEVDVF9FUShbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdLCBmaXJzdFdlYlBJRCk7Ci0KLSAgICBfX2Jsb2NrIGJvb2wgZ290TWVzc2FnZSA9IGZhbHNl
OwotICAgIFt3ZWJWaWV3IHBlcmZvcm1BZnRlclJlY2VpdmluZ0FueU1lc3NhZ2U6XihOU1N0cmlu
ZyAqbWVzc2FnZSkgewotICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwdWJsaWMta2V5IiwgbWVz
c2FnZSk7Ci0gICAgICAgIGdvdE1lc3NhZ2UgPSB0cnVlOwotICAgIH1dOwotCi0gICAgX19ibG9j
ayBib29sIGV4ZWN1dGVkU2NyaXB0ID0gZmFsc2U7Ci0gICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZh
U2NyaXB0OkAibmF2aWdhdG9yLmNyZWRlbnRpYWxzLmdldCh7IHB1YmxpY0tleTogeyBjaGFsbGVu
Z2U6IG5ldyBVaW50OEFycmF5KFs0OSwgNTAsIDUxLCA1MiwgNTMsIDU0XSksIGFsbG93Q3JlZGVu
dGlhbHM6IFt7IHR5cGU6ICdwdWJsaWMta2V5JywgaWQ6IG5ldyBVaW50OEFycmF5KEFycmF5LnBy
b3RvdHlwZS5tYXAuY2FsbChhdG9iKCdQcjJKdjNmc1VKZFY3cHdtTmUrcXJIc3JuRnp2RnpiRGNY
MmtoVFRJeHJaVTEvK1VYMUMxekU1NEJWdmRPV3RrOTQyaXhmbGlBTXpVRmMwSS9rSUFPQScpLCBm
dW5jdGlvbiAoYykgeyByZXR1cm4gYy5jaGFyQ29kZUF0KDApIH0pKSB9XSwgdGltZW91dDogMTAw
IH0gfSkudGhlbihjcmVkZW50aWFsID0+IHsgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFu
ZGxlci5wb3N0TWVzc2FnZShjcmVkZW50aWFsLnR5cGUpOyB9LCBlID0+IHsgd2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnJyArIGUpOyB9KSAmJiB0cnVlIiBj
b21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKLSAgICAgICAg
QVNTRVJUX0ZBTFNFKGVycm9yKTsKLSAgICAgICAgZXhlY3V0ZWRTY3JpcHQgPSB0cnVlOwotICAg
IH1dOwotICAgIFV0aWw6OnJ1bigmZXhlY3V0ZWRTY3JpcHQpOwotCi0gICAgVXRpbDo6cnVuKCZn
b3RNZXNzYWdlKTsKLX0KLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCi0KIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457641</attachid>
            <date>2022-04-14 11:02:49 -0700</date>
            <delta_ts>2022-04-14 12:14:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-239073-20220414110248.patch</filename>
            <type>text/plain</type>
            <size>229893</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGExMmZmZGNkMDA5NTVhMDE1MDQ2ZGNm
YTU0NGEzYjM2MDViMzZiNzIuLjJlYjI2OTU1OTczZmY3MmY0ZTllMzM3NzEyMDM1NDkzY2UxOTFl
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDQtMTIgIEogUGFzY29lICA8al9wYXNjb2VA
YXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRp
b25Nb2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkxNTcx
MDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIFNj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoKKwogMjAy
Mi0wNC0xNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERyb3Ag
aW5lZmZpY2llbnQgU3RyaW5nOjphcHBlbmQoKSBvdmVybG9hZHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ZjBh
N2Q2MDZmNTUyZmU1OTU2NDM4Yzc3Y2JlYzJjMTQ5ODBjMWZjLi44MGJhY2I1NTNhY2U1ZjZmYzZi
YTgwMmEzYjg2NGM2MDgzMzY1ZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjIt
MDQtMTIgIEogUGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRo
bl0gQ2xlYW4gdXAgV2ViQXV0aGVudGljYXRpb25Nb2Rlcm4gYW5kIFdlYkF1dGhuUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDczCisg
ICAgICAgIHJkYXI6Ly9wcm9ibGVtLzkxNTcxMDMwCisKKyAgICAgICAgVGhlIFdlYkF1dGhlbnRp
Y2F0aW9uTW9kZXJuIGZsYWcgYW5kIFdlYkF1dGhuUHJvY2VzcyBhcmUgbm8gbG9uZ2VyIHVzZWQK
KyAgICAgICAgYW5kIGNhbiBiZSByZW1vdmVkLiBUaGlzIHBhdGNoIHJlbW92ZXMgYWxsIHJlZmVy
ZW5jZXMgdG8gYm90aCB0aGUgZmxhZworICAgICAgICBhbmQgdGhlIHByb2Nlc3MuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIHBhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RW5hYmxlZCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NUeXBlRGVzY3JpcHRp
b24pOgorICAgICAgICAqIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oOgorCiAy
MDIyLTA0LTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJv
cCBpbmVmZmljaWVudCBTdHJpbmc6OmFwcGVuZCgpIG92ZXJsb2FkcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1NDBi
YzgxNTRhZjY1ZGYwMGRiMzk3YWNkYWI2MTJiNGI1MGM5N2UzLi5iODJhMjY0MDkzYTk3YmM3YjIy
YjI1NDgxZDA3NzM4MGY1MWI2Yjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNiBAQAorMjAyMi0w
NC0xMiAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhu
XSBDbGVhbiB1cCBXZWJBdXRoZW50aWNhdGlvbk1vZGVybiBhbmQgV2ViQXV0aG5Qcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkwNzMKKyAg
ICAgICAgcmRhcjovL3Byb2JsZW0vOTE1NzEwMzAKKworICAgICAgICBUaGUgV2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm4gZmxhZyBhbmQgV2ViQXV0aG5Qcm9jZXNzIGFyZSBubyBsb25nZXIgdXNlZAor
ICAgICAgICBhbmQgY2FuIGJlIHJlbW92ZWQuIFRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwgcmVmZXJl
bmNlcyB0byBib3RoIHRoZSBmbGFnCisgICAgICAgIGFuZCB0aGUgcHJvY2Vzcy4KKworICAgICAg
ICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3Rp
bmcgdGVzdHMgYW5kIG1hbnVhbCB0ZXN0aW5nIG9uIG1hY09TIC8gaU9TLgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmlnOiBSZW1vdmVkLgorICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIFJlc291cmNlcy9TYW5kYm94UHJvZmlsZXMvaW9zL2NvbS5h
cHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IuaW46IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy9w
cm9jZXNzLWVudGl0bGVtZW50cy5zaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvRGVmYXVsdFdl
YkJyb3dzZXJDaGVja3MubW06CisgICAgICAgIChXZWJLaXQ6OmlzSW5XZWJLaXRDaGlsZFByb2Nl
c3MpOgorICAgICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaDoKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0
aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tOgorICAgICAgICAoV2Vi
S2l0OjpYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL0F1eGls
aWFyeVByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OnByb2Nlc3NTdG9yYWdlQ2xhc3Mp
OgorICAgICAgICAoV2ViS2l0OjpzYW5kYm94RGlyZWN0b3J5KToKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRXZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV0tQcmVmZXJlbmNl
c0dldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoK1tXS1Byb2Nlc3NQ
b29sIF93ZWJBdXRoblByb2Nlc3NJZGVudGlmaWVyXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbToKKyAgICAgICAgKCtb
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBpbXBvcnRMb2NhbEF1dGhlbnRpY2F0b3JXaXRoQWNj
ZXNzR3JvdXA6Y3JlZGVudGlhbDplcnJvcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV4aWxp
YXJ5UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1By
b3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Om5vdGlm
eVByZWZlcmVuY2VzQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nl
c3NMYXVuY2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNz
TGF1bmNoZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6c2VydmljZU5hbWUpOgorICAgICAg
ICAoV2ViS2l0OjpzaG91bGRMZWFrQm9vc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0
b3I6OnJlcXVlc3REYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRvcjo6
c2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6QXV0aGVudGljYXRvcjo6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6QXV0aGVudGljYXRvck1hbmFnZXI6OmF1dGhlbnRpY2F0b3JBZGRlZCk6CisgICAgICAgIChX
ZWJLaXQ6OkF1dGhlbnRpY2F0b3JNYW5hZ2VyOjplbmFibGVNb2Rlcm5XZWJBdXRoZW50aWNhdGlv
bik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRo
ZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVu
dGljYXRvcjo6Z2V0QXNzZXJ0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNh
dG9yOjpjb250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VTZWxlY3RlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Q
cm9jZXNzUHJveHkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkN0YXBB
dXRoZW50aWNhdG9yOjpjb250aW51ZUdldE5leHRBc3NlcnRpb25BZnRlclJlc3BvbnNlUmVjZWl2
ZWQpOgorICAgICAgICAoV2ViS2l0OjpDdGFwQXV0aGVudGljYXRvcjo6Y29udGludWVSZXF1ZXN0
UGluQWZ0ZXJHZXRLZXlBZ3JlZW1lbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2Vydmlj
ZS9JbmZvLU9TWC5wbGlzdDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLWlPUy5wbGlzdDog
UmVtb3ZlZC4KKyAgICAgICAgKiBXZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENT
ZXJ2aWNlL1dlYkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW06IFJlbW92ZWQuCisgICAgICAgICog
V2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46IFJlbW92ZWQuCisgICAgICAgICogV2ViQXV0
aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViQXV0
aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhu
UHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW46IFJlbW92ZWQuCisgICAgICAgICog
V2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9pb3MvV2Vi
QXV0aG5Qcm9jZXNzSU9TLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJvY2Vzcy9t
YWMvV2ViQXV0aG5Qcm9jZXNzTWFjLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkF1dGhuUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2IuaW46IFJlbW92ZWQu
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3Iu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6Om1ha2VD
cmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3I6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW46IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpzZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6ZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25D
bG9zZWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpleGlzdGluZ1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rp
b24pOiBEZWxldGVkLgorCiAyMDIyLTA0LTE0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgRHJvcCBpbmVmZmljaWVudCBTdHJpbmc6OmFwcGVuZCgpIG92ZXJsb2Fk
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBjMzZhZmM3M2M5Nzk1NmMxNjdiZWNh
YjAyM2JiNGNiYjZlNTJjZjYyLi5hNTE0YWY5ZTVmMjM3ODQ2Y2ZiZjUwMzZkODdlYWY4MGJiNDRi
ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVy
ZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTYwNCwyMiArMTYwNCw2IEBA
IFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDog
dHJ1ZQogCi0jIEZJWE1FOiBJcyB0aGlzIGltcGxlbWVudGVkIGZvciBXZWJLaXRMZWdhY3k/IElm
IG5vdCwgdGhpcyBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSBXZWJLaXRMZWdhY3kgZW50aXJlbHku
Ci1XZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5S
ZWFkYWJsZU5hbWU6ICJXZWIgQXV0aGVudGljYXRpb24gTW9kZXJuIgotICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJFbmFibGUgTW9kZXJuIFdlYiBBdXRoZW50aWNhdGlvbiBzdXBwb3J0Igot
ICBjb25kaXRpb246IEVOQUJMRShXRUJfQVVUSE4pCi0gIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzCi0gIGRlZmF1bHRWYWx1ZToKLSAgICBXZWJLaXRMZWdhY3k6Ci0gICAg
ICBkZWZhdWx0OiBmYWxzZQotICAgIFdlYktpdDoKLSAgICAgICJQTEFURk9STShJT1MpIiA6IHRy
dWUKLSAgICAgIGRlZmF1bHQ6IGZhbHNlCi0gICAgV2ViQ29yZToKLSAgICAgIGRlZmF1bHQ6IGZh
bHNlCi0KIFdlYkdMMkVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6
ICJXZWJHTCAyLjAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCmluZGV4IDY4YjdhMjNkODNhM2M0ZWZmYzQxZTgxMWJkN2MzNTE4YjRiMjJkNGIuLmZhZTk0
NzYxMTE0NWNlNWY3OWYzYTdjODQ2ZjgwYTk1MTJlN2QyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0yMzQsMTEgKzIzNCw2IEBAIHB1Ymxp
YzoKICAgICBib29sIG9wdXNEZWNvZGVyRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3B1c0Rl
Y29kZXJFbmFibGVkOyB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgdm9p
ZCBzZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoYm9vbCBhcmVFbmFibGVkKSB7IG1f
YXJlV2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkID0gYXJlRW5hYmxlZDsgfQotICAgIGJv
b2wgd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hcmVX
ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ7IH0KLSNlbmRpZgotCiAjaWYgRU5BQkxFKE1F
RElBX1NPVVJDRSkgJiYgKEhBVkUoQVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkgfHwgVVNFKEdT
VFJFQU1FUikpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRNZWRpYVNvdXJjZUlubGluZVBh
aW50aW5nRW5hYmxlZChib29sKTsKICAgICBib29sIG1lZGlhU291cmNlSW5saW5lUGFpbnRpbmdF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNvdXJjZUlubGluZVBhaW50aW5nRW5hYmxl
ZDsgfQpAQCAtMzg4LDEwICszODMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9vcHVzRGVjb2Rl
ckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAg
IGJvb2wgbV9hcmVXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQgeyBmYWxzZSB9OwotI2Vu
ZGlmCi0KICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiAoSEFWRShBVlNBTVBMRUJVRkZFUlZJ
REVPT1VUUFVUKSB8fCBVU0UoR1NUUkVBTUVSKSkKICAgICBib29sIG1fbWVkaWFTb3VyY2VJbmxp
bmVQYWludGluZ0VuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAppbmRleCA0YzJiNTNl
OGQzODEzMmI3NjBlYjBhZjc4MDE4NGFmNDUyMTIxMmU3Li5hM2ZhNzcyOGU3ZDY0Y2ZmNDVmYjc2
MTM2OTY0YWMwMzA4ZDc4NTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKQEAgLTEwOCwxMCArMTA4LDYgQEAgY29uc3Qg
Y2hhciogcHJvY2Vzc1R5cGVEZXNjcmlwdGlvbihzdGQ6Om9wdGlvbmFsPEF1eGlsaWFyeVByb2Nl
c3NUeXBlPiB0eXBlKQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBjYXNlIEF1eGlsaWFy
eVByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAgIHJldHVybiAiR1BVIjsKLSNlbmRpZgotI2lmIEVO
QUJMRShXRUJfQVVUSE4pCi0gICAgY2FzZSBBdXhpbGlhcnlQcm9jZXNzVHlwZTo6V2ViQXV0aG46
Ci0gICAgICAgIHJldHVybiAiV2ViQXV0aG4iOwogI2VuZGlmCiAgICAgfQogICAgIHJldHVybiAi
VW5rbm93biI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNh
dGlvbkNoZWNrcy5oCmluZGV4IGM3NjQ2ODY4NTU1YmUxNWYyNDcwMjFmMzAyNWUxN2E4MWE2ZTY2
ZDAuLjNkNDM0ZGQ1ODg0MmUzMmNlNDAzMmM0NmRhYWYzNzM1NTZiYzZlMWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oCkBAIC00
MCw5ICs0MCw2IEBAIGVudW0gY2xhc3MgQXV4aWxpYXJ5UHJvY2Vzc1R5cGUgOiB1aW50OF90IHsK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgR1BVLAogI2VuZGlmCi0jaWYgRU5BQkxFKFdF
Ql9BVVRITikKLSAgICBXZWJBdXRobiwKLSNlbmRpZgogfTsKIAogV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBdXhpbGlhcnlQcm9jZXNzVHlwZShBdXhpbGlhcnlQcm9jZXNzVHlwZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYkF1dGhuU2VydmljZS54Y2NvbmZp
ZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmln
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTQ2ZjVjZmIxYzA3OWM2ODFkYmYzYWM5
ZTNhZGY0OGM2ZjIzNTBhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViQXV0aG5TZXJ2aWNlLnhjY29u
ZmlnCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLy8gQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLS8vIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotLy8gYXJlIG1ldDoKLS8vIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0vLyAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotLy8gICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotLy8gICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLS8vCi0vLyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLS8vIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0vLyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLS8vIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0vLyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLS8vIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LS8vIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotLy8gUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotLy8gT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8v
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLSNpbmNsdWRlICJCYXNlWFBDU2VydmljZS54Y2NvbmZpZyIKLQotUFJP
RFVDVF9OQU1FID0gY29tLmFwcGxlLldlYktpdC5XZWJBdXRobjsKLVBST0RVQ1RfQlVORExFX0lE
RU5USUZJRVIgPSAkKFBST0RVQ1RfTkFNRSk7Ci1JTkZPUExJU1RfRklMRVtzZGs9ZW1iZWRkZWQq
XSA9IFdlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5T
ZXJ2aWNlL0luZm8taU9TLnBsaXN0OwotSU5GT1BMSVNUX0ZJTEVbc2RrPW1hY29zeCpdID0gV2Vi
QXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2Uv
SW5mby1PU1gucGxpc3Q7Ci0KLVBST0ZJTEVfR0VORVJBVEVfT1JfVVNFX0NGTEFHU19FTkFCTEVf
TExWTV9QUk9GSUxFX0dFTkVSQVRJT04gPSA7IC8vIERpc2FibGUgUEdPIHByb2ZpbGUgZ2VuZXJh
dGlvbgotT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKE9USEVSX0xERkxBR1NfVkVSU0lP
TkVEX0ZSQU1FV09SS19QQVRIKSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS1NfTERGTEFHUykg
JChTT1VSQ0VfVkVSU0lPTl9MREZMQUdTKTsKLQotRU5USVRMRU1FTlRTX1JFUVVJUkVEID0gJChF
TlRJVExFTUVOVFNfUkVRVUlSRURfVVNFX0lOVEVSTkFMX1NES18kKFVTRV9JTlRFUk5BTF9TREsp
KQotRU5USVRMRU1FTlRTX1JFUVVJUkVEX1VTRV9JTlRFUk5BTF9TREtfID0gTk87Ci1FTlRJVExF
TUVOVFNfUkVRVUlSRURfVVNFX0lOVEVSTkFMX1NES19OTyA9IE5POwotRU5USVRMRU1FTlRTX1JF
UVVJUkVEX1VTRV9JTlRFUk5BTF9TREtfWUVTID0gJChFTlRJVExFTUVOVFNfUkVRVUlSRUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcg
Yi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCAzZWQ1
MDliYWM3N2MwOGQ4YzE5NWJiMjcwYjM4OTg5YjNkMDcyZmU3Li4zNDM5NjVhZGUwNzBlYTRkYTZj
ZWMzYTdlNWFiNTA0NDQyNWJiN2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1dlYktpdC54Y2NvbmZpZwpAQCAtMjA4LDcgKzIwOCw3IEBAIFdLX01JR1JBVEVEX0hFQURFUl9P
VVRQVVRfRElSXyA9ICQoSEVBREVSX09VVFBVVF9ESVIpOwogLy8gT24gbm9uLU1hYyBwbGF0Zm9y
bXMsIGFsbCBtaWdyYXRlZCBoZWFkZXJzIGdvIHRvIFByaXZhdGVIZWFkZXJzLgogV0tfTUlHUkFU
RURfSEVBREVSX09VVFBVVF9ESVJfY29jb2F0b3VjaCA9ICQoSEVBREVSX09VVFBVVF9ESVI6ZGly
KVByaXZhdGVIZWFkZXJzOwogCi1FWENMVURFRF9NQUNPU19QTFVHSU5fRklMRV9OQU1FU1tzZGs9
aXBob25lKl0gPSBTZWNJdGVtU2hpbS5keWxpYiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLnBkZiBS
ZXNvdXJjZXMvbWFjLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBjb20uYXBw
bGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IgY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Mu
c2IgY29tLmFwcGxlLldlYktpdC53ZWJwdXNoZC5zYiBjb20uYXBwbGUuV2ViUHJvY2Vzcy5zYjsK
K0VYQ0xVREVEX01BQ09TX1BMVUdJTl9GSUxFX05BTUVTW3Nkaz1pcGhvbmUqXSA9IFNlY0l0ZW1T
aGltLmR5bGliIFdlYlByb2Nlc3NTaGltLmR5bGliICoucGRmIFJlc291cmNlcy9tYWMvKiBjb20u
YXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiIGNvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vz
cy5zYiBjb20uYXBwbGUuV2ViS2l0LndlYnB1c2hkLnNiIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
OwogCiBJTlNUQUxMSERSU19TQ1JJUFRfUEhBU0UgPSBZRVM7CiBBUFBMWV9SVUxFU19JTl9DT1BZ
X0hFQURFUlMgPSAkKFdLX1VTRV9ORVdfQlVJTERfU1lTVEVNKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBlYjU5ODVjOGQ4YTc2MWU4NzBjODk1YWRkN2Y5MTc1MDViYzU2NGIyLi43
NmYwNzI2YjUzZjZkNjAyYTA1NDhmNTAyMmE0YTIwZDM5NThmNWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC00Niw4ICs0Niw2IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0Mikv
U2hhcmVkL0F1dGhlbnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9tYWMgXAogICAg
ICQoV2ViS2l0MikvU2hhcmVkL05vdGlmaWNhdGlvbnMgXAotICAgICQoV2ViS2l0MikvV2ViQXV0
aG5Qcm9jZXNzIFwKLSAgICAkKFdlYktpdDIpL1dlYkF1dGhuUHJvY2Vzcy9tYWMgXAogICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsZVBheSBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNz
L0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRvbWF0aW9u
IFwKQEAgLTI1MCw3ICsyNDgsNiBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlXZWJQcm9jZXNz
L1dlYlBhZ2UvVmlzaXRlZExpbmtUYWJsZUNvbnRyb2xsZXIgXAogCVdlYlByb2Nlc3MvV2ViUGFn
ZS9Db2NvYS9UZXh0Q2hlY2tpbmdDb250cm9sbGVyUHJveHkgXAogCVdlYlByb2Nlc3MvV2ViUGFn
ZS9WaWV3VXBkYXRlRGlzcGF0Y2hlciBcCi0JV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uIFwKIAlXZWJQcm9jZXNzL1hSL1BsYXRmb3JtWFJTeXN0
ZW1Qcm94eSBcCiAJR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFwKIAlHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZURpc3BsYXlMaXN0UmVjb3JkZXIgXApAQCAtMzA0LDggKzMw
MSw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFTb3VyY2VQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXJQcm94eSBcCiAJR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVTb3VyY2VCdWZmZXJQcm94eSBc
Ci0JV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBcCi0JV2Vi
QXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2VzcyBcCiAjCiAKIEdFTkVSQVRFX01FU1NBR0VfUkVD
RUlWRVJfU0NSSVBUID0gJChXZWJLaXQyKS9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2
ZXIucHkKQEAgLTM1NiwxNCArMzUxLDEyIEBAIFNBTkRCT1hfUFJPRklMRVMgPSBcCiAJY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IgXAogCWNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2Ig
XAogCWNvbS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYiBcCi0JY29tLmFwcGxlLldlYktpdC5X
ZWJBdXRoblByb2Nlc3Muc2IgXAogCWNvbS5hcHBsZS5XZWJLaXQud2VicHVzaGQuc2IKIAkKIFNB
TkRCT1hfUFJPRklMRVNfSU9TID0gXAogCWNvbS5hcHBsZS5XZWJLaXQuYWRhdHRyaWJ1dGlvbmQu
c2IgXAogCWNvbS5hcHBsZS5XZWJLaXQuR1BVLnNiIFwKIAljb20uYXBwbGUuV2ViS2l0Lk5ldHdv
cmtpbmcuc2IgXAotCWNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IgXAogCWNvbS5hcHBsZS5X
ZWJLaXQuV2ViQ29udGVudC5zYgogCiBzYW5kYm94LXByb2ZpbGVzLWlvcyA6ICQoU0FOREJPWF9Q
Uk9GSUxFU19JT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJp
dmF0ZVN5bWJvbHNGb3JUQVBJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0V4dHJhUHJpdmF0
ZVN5bWJvbHNGb3JUQVBJLmgKaW5kZXggNDYyMzAzMmQzNjM2MTM0MmMzYTcwYmIyODljYjAzMGRm
YjJjY2RmYy4uYWUzZmIzZTRjN2RiOGJiNmQ3ZWZkZjI3NDY3MTAwYjdiNTgzZWZmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9FeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEku
aApAQCAtMzMsNyArMzMsNiBAQCBleHRlcm4gIkMiIHsKIHZvaWQgTmV0d29ya1NlcnZpY2VJbml0
aWFsaXplcigpOwogdm9pZCBXZWJDb250ZW50U2VydmljZUluaXRpYWxpemVyKCk7CiB2b2lkIEdQ
VVNlcnZpY2VJbml0aWFsaXplcigpOwotdm9pZCBXZWJBdXRoblNlcnZpY2VJbml0aWFsaXplcigp
OwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUmVz
b3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi5zYi5p
biBiL1NvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxl
LldlYktpdC5XZWJBdXRobi5zYi5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMz
YWIxMWUyZTUxZTNjNDNmNzU1YmI1N2QwMzA1OTY1MDU5MzQ0NC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5k
Ym94UHJvZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uc2IuaW4KKysrIC9kZXYv
bnVsbApAQCAtMSw0NTcgKzAsMCBAQAotOyBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi07Ci07IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotOyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLTsg
YXJlIG1ldDoKLTsgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotOyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci07IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi07Ci07IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLTsgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLTsgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi07IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLTsgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLTsgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi07IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi07IENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi07IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLTsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0odmVyc2lvbiAxKQotKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24p
KQotKGRlbnkgbnZyYW0qKQotKGRlbnkgc3lzdGVtLXByaXZpbGVnZSkKLQotOzsgU2lsZW5jZSBz
cHVyaW91cyBsb2dnaW5nIGR1ZSB0byByZGFyOi8vMjAxMTc5MjMgYW5kIHJkYXI6Ly83MjM2NjQ3
NQotKGRlbnkgc3lzdGVtLXByaXZpbGVnZSAocHJpdmlsZWdlLWlkIFBSSVZfR0xPQkFMX1BST0Nf
SU5GTykgKHdpdGggbm8tcmVwb3J0KSkKLQotOzs7Ci07OzsgVGhlIGZvbGxvd2luZyBydWxlcyB3
ZXJlIG9yaWdpbmFsbHkgY29udGFpbmVkIGluICdjb21tb24uc2InLiBXZSBhcmUgZHVwbGljYXRp
bmcgdGhlbSBoZXJlIHNvIHdlIGNhbgotOzs7IHJlbW92ZSB1bm5lZWRlZCBzYW5kYm94IGV4dGVu
c2lvbnMuCi07OzsKLQotKGltcG9ydCAidXRpbC5zYiIpCi0KLShkZWZpbmUtb25jZSAobWFuYWdl
ZC1jb25maWd1cmF0aW9uLXJlYWQtcHVibGljKQotICAgIChhbGxvdyBmaWxlLXJlYWQqCi0gICAg
ICAgICAgICh3ZWxsLWtub3duLXN5c3RlbS1ncm91cC1jb250YWluZXItc3VicGF0aCAiL3N5c3Rl
bWdyb3VwLmNvbS5hcHBsZS5jb25maWd1cmF0aW9ucHJvZmlsZXMvTGlicmFyeS9Db25maWd1cmF0
aW9uUHJvZmlsZXMvUHVibGljSW5mbyIpCi0gICAgICAgICAgIChmcm9udC11c2VyLWhvbWUtc3Vi
cGF0aCAiL0xpYnJhcnkvQ29uZmlndXJhdGlvblByb2ZpbGVzL1B1YmxpY0luZm8iKQotICAgICAg
ICAgICAoZnJvbnQtdXNlci1ob21lLXN1YnBhdGggIi9MaWJyYXJ5L1VzZXJDb25maWd1cmF0aW9u
UHJvZmlsZXMvUHVibGljSW5mbyIpKSkKLQotKGRlZmluZS1vbmNlIChhbGxvdy1wcmVmZXJlbmNl
cy1jb21tb24pCi0gICAgKGFsbG93IGZpbGUtcmVhZC1tZXRhZGF0YQotICAgICAgICAoaG9tZS1s
aXRlcmFsICIiKQotICAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcyIp
KSkKLQotKGRlZmluZS1vbmNlIChtb2JpbGUtcHJlZmVyZW5jZXMtcmVhZCAuIGRvbWFpbnMpCi0g
ICAgKGFsbG93LXByZWZlcmVuY2VzLWNvbW1vbikKLSAgICAoZm9yLWVhY2ggKGxhbWJkYSAoZG9t
YWluKQotICAgICAgICAoYmVnaW4KLSAgICAgICAgICAgIChhbGxvdyB1c2VyLXByZWZlcmVuY2Ut
cmVhZCAocHJlZmVyZW5jZS1kb21haW4gZG9tYWluKSkKLSAgICAgICAgICAgIChhbGxvdyBmaWxl
LXJlYWQqCi0gICAgICAgICAgICAgICAgKGhvbWUtbGl0ZXJhbCAoc3RyaW5nLWFwcGVuZCAiL0xp
YnJhcnkvUHJlZmVyZW5jZXMvIiBkb21haW4gIi5wbGlzdCIpKSkpKQotICAgICAgICBkb21haW5z
KSkKLQotKGRlZmluZS1vbmNlIChpbnRlcm5hbC1kZWJ1Z2dpbmctc3VwcG9ydCkKLSAgICAoYWxs
b3cgZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRhYmxlCi0gICAgICAgIChzdWJwYXRoICIvRGV2
ZWxvcGVyIikpCi0KLSAgICAoYWxsb3cgaXBjLXBvc2l4LXNobQotICAgICAgICAoaXBjLXBvc2l4
LW5hbWUtcHJlZml4ICJzdGFjay1sb2dzIikKLSAgICAgICAgKGlwYy1wb3NpeC1uYW1lLXByZWZp
eCAiT0EtIikKLSAgICAgICAgKGlwYy1wb3NpeC1uYW1lLXByZWZpeCAiL0ZTTS0iKSkKLQotICAg
IChhbGxvdyBpcGMtcG9zaXgtc2htLXJlYWQqIGlwYy1wb3NpeC1zaG0td3JpdGUtZGF0YSBpcGMt
cG9zaXgtc2htLXdyaXRlLXVubGluawotICAgICAgICAoaXBjLXBvc2l4LW5hbWUtcmVnZXggIyJe
Z2R0LVtBLVphLXowLTldKy0oY3xzKSQiKSkKLQotICAgICh3aXRoLWZpbHRlciAoc3lzdGVtLWF0
dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAgICAgOzsgPHJkYXI6Ly9wcm9ibGVtLzg1NjUw
MzU+Ci0gICAgICAgIDs7IDxyZGFyOi8vcHJvYmxlbS8yMzg1NzQ1Mj4KLSAgICAgICAgOzsgPHJk
YXI6Ly9wcm9ibGVtLzcyMzE3MTEyPgotICAgICAgICAoYWxsb3cgZmlsZS1yZWFkKiBmaWxlLW1h
cC1leGVjdXRhYmxlCi0gICAgICAgICAgICAoc3VicGF0aAotICAgICAgICAgICAgICAgICIvQXBw
bGVJbnRlcm5hbCIKLSAgICAgICAgICAgICAgICAiL3Vzci9sb2NhbC9saWIiCi0gICAgICAgICAg
ICAgICAgIi91c3IvYXBwbGVpbnRlcm5hbC9saWIiCi0gICAgICAgICAgICApCi0gICAgICAgICkK
LSAgICApCi0gICAgKHdpdGgtZWxldmF0ZWQtcHJlY2VkZW5jZQotICAgICAgICAoYWxsb3cgZmls
ZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRhYmxlIGZpbGUtaXNzdWUtZXh0ZW5zaW9uCi0gICAgICAg
ICAgIChmcm9udC11c2VyLWhvbWUtc3VicGF0aCAiL1hjb2RlQnVpbHRQcm9kdWN0cyIpCi0gICAg
ICAgICkKLSAgICApCi0KLSAgICA7OyA8cmRhcjovL3Byb2JsZW0vODEwNzc1OD4KLSAgICAoYWxs
b3cgZmlsZS1yZWFkKiBmaWxlLW1hcC1leGVjdXRhYmxlCi0gICAgICAgIChzdWJwYXRoCi0gICAg
ICAgICAgICAiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MiCi0gICAgICAgICAgICAiL1N5c3Rl
bS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzIgotICAgICAgICApCi0gICAgKQotCi0gICAgOzsg
PHJkYXI6Ly9wcm9ibGVtLzMyNTQ0OTIxPgotICAgIChtb2JpbGUtcHJlZmVyZW5jZXMtcmVhZCAi
Y29tLmFwcGxlLmhhbmd0cmFjZXIiKQotKQotCi0oZGVmaW5lLW9uY2UgKGRldmljZS1hY2Nlc3Mp
Ci0gICAgKGRlbnkgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKgotICAgICAgICAodm5vZGUtdHlwZSBC
TE9DSy1ERVZJQ0UgQ0hBUkFDVEVSLURFVklDRSkpCi0KLSAgICAoYWxsb3cgZmlsZS1yZWFkKiBm
aWxlLXdyaXRlLWRhdGEKLSAgICAgICAgKGxpdGVyYWwKLSAgICAgICAgICAgICIvZGV2L251bGwi
Ci0gICAgICAgICAgICAiL2Rldi96ZXJvIgotICAgICAgICApCi0gICAgKQotCi0gICAgKGFsbG93
IGZpbGUtcmVhZCoKLSAgICAgICAgKGxpdGVyYWwKLSAgICAgICAgICAgICIvZGV2L3JhbmRvbSIK
LSAgICAgICAgICAgICIvZGV2L3VyYW5kb20iCi0gICAgICAgICkKLSAgICApCi0KLSAgICAoaWYg
KHN5c3RlbS1hdHRyaWJ1dGUgYXBwbGUtaW50ZXJuYWwpCi0gICAgICAgIChhbGxvdyBmaWxlLXJl
YWQqIGZpbGUtd3JpdGUtZGF0YSBmaWxlLWlvY3RsCi0gICAgICAgICAgICAobGl0ZXJhbCAiL2Rl
di9kdHJhY2VoZWxwZXIiKSkKLSAgICA7IGVsc2UKLSAgICAgICAgKGRlbnkgKHdpdGggbm8tbG9n
KSBmaWxlLXJlYWQqIGZpbGUtd3JpdGUtZGF0YSBmaWxlLWlvY3RsCi0gICAgICAgICAgICAobGl0
ZXJhbCAiL2Rldi9kdHJhY2VoZWxwZXIiKSkKLSAgICApCi0KLSAgICA7OyA8cmRhcjovL3Byb2Js
ZW0vMTQyMTU3MTg+Ci0gICAgKGRlbnkgZmlsZS13cml0ZS1kYXRhICh3aXRoIG5vLXJlcG9ydCkK
LSAgICAgICAgKGxpdGVyYWwKLSAgICAgICAgICAgICIvZGV2L3JhbmRvbSIKLSAgICAgICAgICAg
ICIvZGV2L3VyYW5kb20iCi0gICAgICAgICkKLSAgICApCi0KLSAgICAoYWxsb3cgZmlsZS1yZWFk
KiBmaWxlLXdyaXRlLWRhdGEgZmlsZS1pb2N0bAotICAgICAgICAobGl0ZXJhbCAiL2Rldi9hZXNf
MCIpCi0gICAgKQotKQotCi0oZGVmaW5lIHJlcXVpcmVkLWV0Yy1maWxlcwotICAgIChsaXRlcmFs
Ci0gICAgICAgICIvcHJpdmF0ZS9ldGMvaG9zdHMiCi0gICAgICAgICIvcHJpdmF0ZS9ldGMvZ3Jv
dXAiCi0gICAgICAgICIvcHJpdmF0ZS9ldGMvcGFzc3dkIgotICAgICAgICAiL3ByaXZhdGUvZXRj
L3Byb3RvY29scyIKLSAgICAgICAgIi9wcml2YXRlL2V0Yy9zZXJ2aWNlcyIKLSAgICApCi0pCi0K
LShkZW55IGZpbGUtbWFwLWV4ZWN1dGFibGUpCi0KLShkZW55IGZpbGUtd3JpdGUtbW91bnQgZmls
ZS13cml0ZS11bm1vdW50KQotCi0obW9iaWxlLXByZWZlcmVuY2VzLXJlYWQgImNvbS5hcHBsZS5z
ZWN1cml0eSIpCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5h
bCkKLSAgICAobW9iaWxlLXByZWZlcmVuY2VzLXJlYWQgImNvbS5hcHBsZS5Qcm90b3R5cGVUb29s
cyIpCi0pCi0KLSh3aXRoLWVsZXZhdGVkLXByZWNlZGVuY2UKLSAgICAoYWxsb3cgZmlsZS1yZWFk
KgotICAgICAgICAoc3VicGF0aAotICAgICAgICAgICAgIi91c3IvbGliIgotICAgICAgICAgICAg
Ii91c3Ivc2hhcmUiCi0gICAgICAgICAgICAiL3ByaXZhdGUvdmFyL2RiL3RpbWV6b25lIgotICAg
ICAgICAgICAgIi9wcml2YXRlL3Zhci9wcmVmZXJlbmNlcy9Mb2dnaW5nIiA7OzsgPHJkYXI6Ly9w
cm9ibGVtLzI0MTQ0NDE4PgotICAgICAgICAgICAgIi9TeXN0ZW0vTGlicmFyeSIKLSAgICAgICAg
KQotICAgICkKLQotICAgIChsZXQgKChody1pZGVudGlmeWluZy1wYXRocwotICAgICAgICAgICAg
KHJlcXVpcmUtYW55Ci0gICAgICAgICAgICAgICAgKGxpdGVyYWwgIi9TeXN0ZW0vTGlicmFyeS9D
YWNoZXMvYXB0aWNrZXQuZGVyIikKLSAgICAgICAgICAgICAgICAoc3VicGF0aCAiL1N5c3RlbS9M
aWJyYXJ5L0NhY2hlcy9jb20uYXBwbGUua2VybmVsY2FjaGVzIikKLSAgICAgICAgICAgICAgICAo
c3VicGF0aCAiL1N5c3RlbS9MaWJyYXJ5L0NhY2hlcy9jb20uYXBwbGUuZmFjdG9yeWRhdGEiKSkp
KQotICAgICAgICAoZGVueSBmaWxlLWlzc3VlLWV4dGVuc2lvbiBmaWxlLXJlYWQqIGh3LWlkZW50
aWZ5aW5nLXBhdGhzKSkKLSAgICAKLSAgICAoYWxsb3cgZmlsZS1tYXAtZXhlY3V0YWJsZQotICAg
ICAgICAoc3VicGF0aAotICAgICAgICAgICAgIi9TeXN0ZW0vTGlicmFyeSIKLSAgICAgICAgICAg
ICIvdXNyL2xpYiIKLSAgICAgICAgKQotICAgICkKLQotICAgIChhbGxvdyBmaWxlLXJlYWQtbWV0
YWRhdGEKLSAgICAgICAgKHZub2RlLXR5cGUKLSAgICAgICAgICAgIERJUkVDVE9SWQotICAgICAg
ICAgICAgU1lNTElOSwotICAgICAgICApCi0gICAgKQotCi0gICAgKGFsbG93IHVzZXItcHJlZmVy
ZW5jZS1yZWFkIChwcmVmZXJlbmNlLWRvbWFpbiAia0NGUHJlZmVyZW5jZXNBbnlBcHBsaWNhdGlv
biIpKQotICAgIChhbGxvdyBmaWxlLXJlYWQqCi0gICAgICAgICAgIChmcm9udC11c2VyLWhvbWUt
bGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvLkdsb2JhbFByZWZlcmVuY2VzLnBsaXN0IikK
LSAgICAgICAgICAgKGZyb250LXVzZXItaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNl
cy8uR2xvYmFsUHJlZmVyZW5jZXNfbS5wbGlzdCIpKQotICAgIChhbGxvdyBtYW5hZ2VkLXByZWZl
cmVuY2UtcmVhZCAocHJlZmVyZW5jZS1kb21haW4gImtDRlByZWZlcmVuY2VzQW55QXBwbGljYXRp
b24iKSkKLSAgICAKLSAgICAoYWxsb3cgZmlsZS1yZWFkKgotICAgICAgICAobGl0ZXJhbCAiL3By
aXZhdGUvdmFyL01hbmFnZWQgUHJlZmVyZW5jZXMvbW9iaWxlLy5HbG9iYWxQcmVmZXJlbmNlcy5w
bGlzdCIpCi0gICAgKQotCi0gICAgKGFsbG93IGZpbGUtcmVhZC1tZXRhZGF0YQotICAgICAgICAo
aG9tZS1saXRlcmFsICIvTGlicmFyeS9DYWNoZXMvcG93ZXJsb2cubGF1bmNoZCIpKQotCi0gICAg
OzsgPHJkYXI6Ly9wcm9ibGVtLzEzOTYzMjk0PgotICAgIChkZW55IGZpbGUtcmVhZC1kYXRhIGZp
bGUtaXNzdWUtZXh0ZW5zaW9uIGZpbGUtbWFwLWV4ZWN1dGFibGUKLSAgICAgICAgKHJlcXVpcmUt
YWxsCi0gICAgICAgICAgICAoZXhlY3V0YWJsZS1idW5kbGUpCi0gICAgICAgICAgICAocmVnZXgg
IyIvW14vXSsvU0NfSW5mby8iKSkpCi0pCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0
ZSBhcHBsZS1pbnRlcm5hbCkKLSAgICAoaW50ZXJuYWwtZGVidWdnaW5nLXN1cHBvcnQpCi0pCi0K
LShhbGxvdyBmaWxlLXJlYWQqIHJlcXVpcmVkLWV0Yy1maWxlcykKLQotKGFsbG93IGZpbGUtcmVh
ZCoKLSAgICAoc3VicGF0aCAiL3ByaXZhdGUvdmFyL01vYmlsZUFzc2V0L1ByZWluc3RhbGxlZEFz
c2V0c1YyL0luc3RhbGxXaXRoT3MiKSkKLQotKGFsbG93IGZpbGUtcmVhZC1kYXRhCi0gICAgKGxp
dGVyYWwgIi91c3IvbG9jYWwvbGliL2xvZyIpIDsgPHJkYXI6Ly9wcm9ibGVtLzM2NjI5NDk1Pgot
KQotCi0oZGV2aWNlLWFjY2VzcykKLQotKGFsbG93IG1hY2gtbG9va3VwCi0gICAgKGdsb2JhbC1u
YW1lCi0gICAgICAgICJjb20uYXBwbGUubG9nZCIKLSAgICAgICAgImNvbS5hcHBsZS5sb2dkLmV2
ZW50cyIKLSAgICAgICAgImNvbS5hcHBsZS5zeXN0ZW0ubm90aWZpY2F0aW9uX2NlbnRlciIKLSAg
ICApCi0pCi0KLSh3aXRoLWZpbHRlciAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkK
LSAgICAoYWxsb3cgbWFjaC1sb29rdXAKLSAgICAgICAgKGdsb2JhbC1uYW1lCi0gICAgICAgICAg
ICAiY29tLmFwcGxlLmFnZ3JlZ2F0ZWQiCi0gICAgICAgICAgICAiY29tLmFwcGxlLmRpYWdub3N0
aWNkIgotICAgICAgICAgICAgImNvbS5hcHBsZS5zeXN0ZW0ubG9nZ2VyIikpKQotCi07OyA8cmRh
cjovL3Byb2JsZW0vMTI0MTM5NDI+Ci0oYWxsb3cgZmlsZS1yZWFkKgotICAgICh3ZWxsLWtub3du
LXN5c3RlbS1ncm91cC1jb250YWluZXItbGl0ZXJhbCAiL3N5c3RlbWdyb3VwLmNvbS5hcHBsZS5t
b2JpbGVnZXN0YWx0Y2FjaGUvTGlicmFyeS9DYWNoZXMvY29tLmFwcGxlLk1vYmlsZUdlc3RhbHQu
cGxpc3QiKSkKLQotKGFsbG93IGlwYy1wb3NpeC1zaG0tcmVhZCoKLSAgICAoaXBjLXBvc2l4LW5h
bWUgImFwcGxlLnNobS5ub3RpZmljYXRpb25fY2VudGVyIikpCi0KLSh3aXRoLWZpbHRlcgotICAg
IChyZXF1aXJlLWFsbAotICAgICAgICAoc3lzdGVtLWF0dHJpYnV0ZSBhcHBsZS1pbnRlcm5hbCkK
LSAgICAgICAgKGlwYy1wb3NpeC1uYW1lICJwdXJwbGVidWRkeS5zZW50aW5lbCIpKQotICAgIChk
ZW55IGlwYy1wb3NpeC1zZW0tY3JlYXRlIGlwYy1wb3NpeC1zZW0tcG9zdCBpcGMtcG9zaXgtc2Vt
LXVubGluayBpcGMtcG9zaXgtc2VtLXdhaXQpCi0gICAgKGFsbG93IGlwYy1wb3NpeC1zZW0tb3Bl
bikKLSkKLQotKG1hbmFnZWQtY29uZmlndXJhdGlvbi1yZWFkLXB1YmxpYykKLQotKGRlbnkgc3lz
dGVtLWluZm8gKHdpdGggbm8tcmVwb3J0KQotICAgIChpbmZvLXR5cGUgIm5ldC5saW5rLmFkZHIi
KSkKLQotKGFsbG93IG1hY2gtdGFzay1uYW1lICh0YXJnZXQgc2VsZikpCi0KLShhbGxvdyBwcm9j
ZXNzLWluZm8tcGlkaW5mbyAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nlc3MtaW5mby1waWRm
ZGluZm8gKHRhcmdldCBzZWxmKSkKLShhbGxvdyBwcm9jZXNzLWluZm8tcGlkZmlsZXBvcnRpbmZv
ICh0YXJnZXQgc2VsZikpCi0oYWxsb3cgcHJvY2Vzcy1pbmZvLXNldGNvbnRyb2wgKHRhcmdldCBz
ZWxmKSkKLShhbGxvdyBwcm9jZXNzLWluZm8tZGlydHljb250cm9sICh0YXJnZXQgc2VsZikpCi0o
YWxsb3cgcHJvY2Vzcy1pbmZvLXJ1c2FnZSAodGFyZ2V0IHNlbGYpKQotKGFsbG93IHByb2Nlc3Mt
aW5mby1jb2Rlc2lnbmF0dXJlICh0YXJnZXQgc2VsZikpCi0KLTs7OwotOzs7IEVuZCBjb21tb24u
c2IgY29udGVudAotOzs7Ci0KLShkZW55IG1hY2gtbG9va3VwICh4cGMtc2VydmljZS1uYW1lLXBy
ZWZpeCAiIikpCi0oZGVueSBpb2tpdC1nZXQtcHJvcGVydGllcyAod2l0aCBwYXJ0aWFsLXN5bWJv
bGljYXRpb24pKQotKGRlbnkgbHNvcGVuKQotCi07OzsKLTs7OyBUaGUgZm9sbG93aW5nIHJ1bGVz
IHdlcmUgb3JpZ2luYWxseSBjb250YWluZWQgaW4gJ1VJS2l0LWFwcHMuc2InLiBXZSBhcmUgZHVw
bGljYXRpbmcgdGhlbSBoZXJlIHNvIHdlIGNhbgotOzs7IHJlbW92ZSB1bm5lZWRlZCBzYW5kYm94
IGV4dGVuc2lvbnMuCi07OzsKLQotKGFsbG93LXByZWZlcmVuY2VzLWNvbW1vbikKLQotOzsgSG9t
ZSBCdXR0b24KLSh3aXRoLWZpbHRlciAoaW9raXQtcmVnaXN0cnktZW50cnktY2xhc3MgIklPUGxh
dGZvcm1EZXZpY2UiKQotICAgIChhbGxvdyBpb2tpdC1nZXQtcHJvcGVydGllcyAod2l0aCB0ZWxl
bWV0cnkpCi0gICAgICAgIChpb2tpdC1wcm9wZXJ0eSAiaG9tZS1idXR0b24tdHlwZSIpKSkKLQot
KGRlbnkgZmlsZS13cml0ZSoKLSAgICAoaG9tZS1saXRlcmFsCi0gICAgICAgICIvTGlicmFyeS9D
YWNoZXMvRGF0ZUZvcm1hdHMucGxpc3QiIDsgU2lsZW50bHkgZGVueSB3cml0ZXMgd2hlbiBDRkRh
dGEgYXR0ZW1wdHMgdG8gd3JpdGUgdG8gdGhlIGNhY2hlIGRpcmVjdG9yeS4KLSAgICAgICAgIi9M
aWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zcHJpbmdib2FyZC5wbGlzdCIgOzsgPHJkYXI6
Ly9wcm9ibGVtLzkzNzUwMjc+Ci0gICAgKQotICAgICh3aXRoIG5vLWxvZykpCi0KLTs7OwotOzs7
IEVuZCBVSUtpdC1hcHBzLnNiIGNvbnRlbnQKLTs7OwotCi0oZGVueSBzeXNjdGwqKQotKGFsbG93
IHN5c2N0bC1yZWFkCi0gICAgKHN5c2N0bC1uYW1lCi0gICAgICAgICJody5hY3RpdmVjcHUiCi0g
ICAgICAgICJody5hdmFpbGNwdSIKLSAgICAgICAgImh3LmNhY2hlY29uZmlnIiA7OyA8cmRhcjov
L3Byb2JsZW0vNzgyMTM1NjM+Ci0gICAgICAgICJody5jYWNoZWxpbmVzaXplIgotICAgICAgICAi
aHcuY2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNzgyMTM1NjM+Ci0gICAgICAgICJody5j
cHVmYW1pbHkiIDs7IDxyZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4KLSAgICAgICAgImh3LmNwdXN1
YmZhbWlseSIKLSAgICAgICAgImh3LmNwdXRocmVhZHR5cGUiCi0gICAgICAgICJody5jcHV0eXBl
IgotICAgICAgICAiaHcubDFkY2FjaGVzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vMTU3MjE4NzI+
Ci0gICAgICAgICJody5sMWljYWNoZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4K
LSAgICAgICAgImh3LmwyY2FjaGVzaXplIgotICAgICAgICAiaHcubDNjYWNoZXNpemUiIDs7IDxy
ZGFyOi8vcHJvYmxlbS8xNTcyMTg3Mj4KLSAgICAgICAgImh3LmxvZ2ljYWxjcHUiCi0gICAgICAg
ICJody5sb2dpY2FsY3B1X21heCIKLSAgICAgICAgImh3Lm5jcHUiCi0gICAgICAgICJody5tYWNo
aW5lIgotICAgICAgICAiaHcubWVtc2l6ZSIKLSAgICAgICAgImh3Lm1vZGVsIgotICAgICAgICAi
aHcubmNwdSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc2NzgyNTMwPgotICAgICAgICAiaHcubnBlcmZs
ZXZlbHMiIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSAgICAgICAgImh3LnBhZ2VzaXpl
IiA7OyA8cmRhcjovL3Byb2JsZW0vNzY3ODI1MzA+Ci0gICAgICAgICJody5wYWdlc2l6ZV9jb21w
YXQiCi0gICAgICAgICJody5waHlzaWNhbGNwdSIKLSAgICAgICAgImh3LnBoeXNpY2FsY3B1X21h
eCIKLSAgICAgICAgImh3LnBoeXNtZW0iIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSAg
ICAgICAgImh3LnZlY3RvcnVuaXQiIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSAgICAg
ICAgImtlcm4uYm9vdGFyZ3MiCi0gICAgICAgICJrZXJuLmhvc3RuYW1lIgotICAgICAgICAia2Vy
bi5odl92bW1fcHJlc2VudCIKLSAgICAgICAgImtlcm4ubWF4ZmlsZXNwZXJwcm9jIgotICAgICAg
ICAia2Vybi5tZW1vcnlzdGF0dXNfbGV2ZWwiCi0gICAgICAgICJrZXJuLm9zcHJvZHVjdHZlcnNp
b24iCi0gICAgICAgICJrZXJuLm9zcmVsZWFzZSIKLSAgICAgICAgImtlcm4ub3N2YXJpYW50X3N0
YXR1cyIKLSAgICAgICAgImtlcm4ub3N2ZXJzaW9uIgotICAgICAgICAia2Vybi5vc3R5cGUiCi0g
ICAgICAgICJrZXJuLnNlY3VyZV9rZXJuZWwiCi0gICAgICAgICJrZXJuLnZlcnNpb24iCi0gICAg
ICAgICJ2bS5mb290cHJpbnRfc3VzcGVuZCIpCi0gICAgKHN5c2N0bC1uYW1lLXByZWZpeCAiaHcu
b3B0aW9uYWwuIikgOzsgPHJkYXI6Ly9wcm9ibGVtLzcwOTczNTI3PgotICAgIChzeXNjdGwtbmFt
ZS1wcmVmaXggImh3LnBlcmZsZXZlbCIpIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MjUzMD4KLSkK
LQotKHdpdGgtZmlsdGVyIChzeXN0ZW0tYXR0cmlidXRlIGFwcGxlLWludGVybmFsKQotICAgIChh
bGxvdyBzeXNjdGwtcmVhZCBzeXNjdGwtd3JpdGUKLSAgICAgICAgKHN5c2N0bC1uYW1lCi0gICAg
ICAgICAgICAidm0uZm9vdHByaW50X3N1c3BlbmQiCi0gICAgICAgICkKLSAgICApCi0pCi0KLTs7
IFNpbGVuY2Ugbm9pc3kgZGVuaWFscwotKGRlbnkgc3lzY3RsLXJlYWQgKHdpdGggbm8tcmVwb3J0
KQotICAgIChzeXNjdGwtbmFtZQotICAgICAgICAic3lzY3RsLnByb2NfbmF0aXZlIgotICAgICkK
LSkKLQotOzsgUmVhZC1vbmx5IHByZWZlcmVuY2VzIGFuZCBkYXRhCi0obW9iaWxlLXByZWZlcmVu
Y2VzLXJlYWQgImNvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcyIpCi0KLTs7IEFjY2VzcyB0byBjbGll
bnQncyBjYWNoZSBmb2xkZXIgJiByZS12ZW5kaW5nIHRvIENGTmV0d29yay4KLShhbGxvdyBmaWxl
LWlzc3VlLWV4dGVuc2lvbgotICAgIChyZXF1aXJlLWFsbAotICAgICAgICAoZXh0ZW5zaW9uICJj
b20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0ZSIpCi0gICAgICAgIChleHRlbnNpb24tY2xh
c3MgImNvbS5hcHBsZS5uc3VybHN0b3JhZ2UuZXh0ZW5zaW9uLWNhY2hlIikpKQotCi0oZGVueSBm
aWxlLXdyaXRlLWNyZWF0ZSAodm5vZGUtdHlwZSBTWU1MSU5LKSkKLShkZW55IGZpbGUtcmVhZC14
YXR0ciBmaWxlLXdyaXRlLXhhdHRyICh4YXR0ci1wcmVmaXggImNvbS5hcHBsZS5zZWN1cml0eS5w
cml2YXRlLiIpKQotCi07OyBGSVhNRTogQ2FuIGZ1cnRoZXIgcmVzdHJpY3QgdGhlIGZvbGxvd2lu
ZyBydWxlcy4KLShhbGxvdyBpb2tpdC1nZXQtcHJvcGVydGllcyAod2l0aCByZXBvcnQpICh3aXRo
IHRlbGVtZXRyeSkpCi0oYWxsb3cgaW9raXQtc2V0LXByb3BlcnRpZXMgKHdpdGggcmVwb3J0KSAo
d2l0aCB0ZWxlbWV0cnkpKQotCi0oYWxsb3cgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKgotICAgICho
b21lLXN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlucyIpKSA7OyBGSVhNRTogVGhpcyBzaG91bGQg
YmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS8xMTU5OTgyNT4gaXMgZml4ZWQuCi0KLShh
bGxvdyBmaWxlLXJlYWQqCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlucyIpCi0gICAg
KGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9TeW5jU2VydmljZXMv
TG9jYWwvQ2xpZW50c1dpdGhDaGFuZ2VzL2NvbS5hcHBsZS5LZXljaGFpbiIpKQotCi0oYWxsb3cg
ZmlsZS1yZWFkKgotICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvY29udGFpbmVycy9TaGFyZWQv
U3lzdGVtR3JvdXAiKSA7OyBGSVhNRTxyZGFyOi8vcHJvYmxlbS83MTEzNzM4OT4KLSAgICAobGl0
ZXJhbCAiL3ByaXZhdGUvdmFyL3ByZWZlcmVuY2VzL2NvbS5hcHBsZS5uZXR3b3JrZC5wbGlzdCIp
KQotCi0oYWxsb3cgbWFjaC1sb29rdXAKLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byB0aGUgU3By
aW5nYm9hcmQgdmlldyBzZXJ2aWNlcy4KLSAgICAoZ2xvYmFsLW5hbWUKLSAgICAgICAgImNvbS5h
cHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIgotICAgICAgICAiY29tLmFwcGxlLnJ1
bm5pbmdib2FyZCIKLSAgICApCi0KLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byBMb2NhbEF1dGhl
bnRpY2F0aW9uIGFuZCBSZW1vdGVTZXJ2aWNlCi0gICAgKGdsb2JhbC1uYW1lCi0gICAgICAgICJj
b20uYXBwbGUuQ29yZUF1dGhlbnRpY2F0aW9uLmRhZW1vbiIKLSAgICAgICAgImNvbS5hcHBsZS5y
ZW1vdGVkIgotICAgICAgICAiY29tLmFwcGxlLnRjY2QiCi0gICAgKQotCi0gICAgOzsgQWxsb3cg
YWNjZXNzZXMgdG8gdGhlIFNFUAotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmN0a2QudG9r
ZW4tY2xpZW50IikKLQotICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIE5GQwotICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLm5mY2QuaHdtYW5hZ2VyIikKLQotICAgIDs7IEFsbG93IGFjY2Vzc2Vz
IHRvIHRoZSBLZXljaGFpbiBzZXJ2aWNlCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc2Vj
dXJpdHlkIikKLQotICAgIDs7IEFsbG93IGFjY2Vzc2VzIHRvIEFBQSBhbmQgdGhlIG5ldHdvcmsK
LSAgICAoZ2xvYmFsLW5hbWUKLSAgICAgICAgImNvbS5hcHBsZS5BcHBTU08uc2VydmljZS14cGMi
Ci0gICAgICAgICJjb20uYXBwbGUubmVoZWxwZXIiCi0gICAgICAgICJjb20uYXBwbGUudXN5bXB0
b21zZCIKLSAgICAgICAgImNvbS5hcHBsZS5kbnNzZC5zZXJ2aWNlIgotICAgICAgICAiY29tLmFw
cGxlLnRydXN0ZCIKLSAgICAgICAgImNvbS5hcHBsZS5jb250YWluZXJtYW5hZ2VyZCIKLSAgICAg
ICAgImNvbS5hcHBsZS5tb2JpbGVnZXN0YWx0LnhwYyIKLSAgICApCi0KLSAgICA7OyBBbGxvdyBh
Y2Nlc3NlcyB0byB0aGUgQVNECi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQXV0aGVudGlj
YXRpb25TZXJ2aWNlc0NvcmUuQXV0aGVudGljYXRpb25TZXJ2aWNlc0FnZW50IikKLSkKLQotKGFs
bG93IGlva2l0LW9wZW4KLSAgICA7OyBBbGxvdyBhY2Nlc3NlcyB0byBISUQKLSAgICAoaW9raXQt
dXNlci1jbGllbnQtY2xhc3MgIklPSElETGliVXNlckNsaWVudCIpCi0KLSAgICA7OyBBbGxvdyBh
Y2Nlc3MgdG8gdGhlIGtleSBzdG9yZQotICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiQXBw
bGVLZXlTdG9yZVVzZXJDbGllbnQiKQotKQotCi0oYWxsb3cgbmV0d29yay1vdXRib3VuZAotICAg
IChsaXRlcmFsICIvcHJpdmF0ZS92YXIvcnVuL21ETlNSZXNwb25kZXIiKQotICAgIChyZW1vdGUg
dGNwKQotICAgIChyZW1vdGUgdWRwKQotKQotCi0od2l0aC1maWx0ZXIgKHN5c3RlbS1hdHRyaWJ1
dGUgYXBwbGUtaW50ZXJuYWwpCi0gICAgKGFsbG93IG5ldHdvcmstb3V0Ym91bmQKLSAgICAgICAg
KGxpdGVyYWwgIi9wcml2YXRlL3Zhci9ydW4vc3lzbG9nIikpCi0pCi0KLSNpZiBFTkFCTEUoU1lT
VEVNX0NPTlRFTlRfUEFUSF9TQU5EQk9YX1JVTEVTKQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9u
cy9TeXN0ZW1Db250ZW50U2FuZGJveC1pb3MuZGVmcz4KLQotKGFsbG93IGZpbGUtcmVhZCogZmls
ZS10ZXN0LWV4aXN0ZW5jZQotICAgIChhcHBseSBzdWJwYXRoIGZpbGUtcmVhZC1leGlzdGVuY2Ut
c2Vjb25kYXJ5LXBhdGhzKSkKLQotKGFsbG93IGZpbGUtbWFwLWV4ZWN1dGFibGUKLSAgICAoYXBw
bHkgc3VicGF0aCBzZWNvbmRhcnktZnJhbWV3b3JrLWFuZC1keWxpYi1wYXRocykpCi0jZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5z
aCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaAppbmRleCBh
OTBmMTlmYTM5N2YyZWNkN2Y3NzE1YTAxNTc1MjA2ZTIyNWRjMzMxLi5lN2ViZmEwNTg4OTBhMzQ4
OTYzYzY2OTMyZDdkODYzY2M3OTIwOWMzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2gKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3By
b2Nlc3MtZW50aXRsZW1lbnRzLnNoCkBAIC0xMTcsMzIgKzExNyw2IEBAIGZ1bmN0aW9uIG1hY19w
cm9jZXNzX2dwdV9lbnRpdGxlbWVudHMoKQogICAgIGZpCiB9CiAKLWZ1bmN0aW9uIG1hY19wcm9j
ZXNzX3dlYmF1dGhuX2VudGl0bGVtZW50cygpCi17Ci0gICAgaWYgW1sgIiR7V0tfVVNFX1JFU1RS
SUNURURfRU5USVRMRU1FTlRTfSIgPT0gWUVTIF1dCi0gICAgdGhlbgotICAgICAgICBwbGlzdGJ1
ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5LmRldmljZS51c2IgYm9vbCBZRVMKLQotICAgICAg
ICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwcyBhcnJheQotICAgICAgICBw
bGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwczowIHN0cmluZyBjb20uYXBwbGUu
d2Via2l0LndlYmF1dGhuCi0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nlc3Mt
Z3JvdXBzOjEgc3RyaW5nIGxvY2tkb3duLWlkZW50aXRpZXMKLQotICAgICAgICBwbGlzdGJ1ZGR5
IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5LmF0dGVzdGF0aW9uLmFjY2VzcyBib29sIFlFUwotICAg
ICAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLmtleXN0b3JlLnNpay5hY2Nlc3MgYm9vbCBZ
RVMKLSAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLlJlbW90ZVNlcnZp
Y2VEaXNjb3ZlcnkuYWxsb3ctc2FuZGJveCBib29sIFlFUwotICAgICAgICBwbGlzdGJ1ZGR5IEFk
ZCA6Y29tLmFwcGxlLnByaXZhdGUuUmVtb3RlU2VydmljZURpc2NvdmVyeS5kZXZpY2UtYWRtaW4g
Ym9vbCBZRVMKLSAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5hcHBhdHRlc3Quc3Bp
IGJvb2wgWUVTCi0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUubW9iaWxlYWN0aXZh
dGlvbmQuc3BpIGJvb2wgWUVTCi0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUubW9i
aWxlYWN0aXZhdGlvbmQuYnJpZGdlIGJvb2wgWUVTCi0gICAgICAgIHBsaXN0YnVkZHkgQWRkIDpj
b20uYXBwbGUucHJpdmF0ZS5zZWN1cml0eS5ib290cG9saWN5IGJvb2wgWUVTCi0KLSAgICAgICAg
aWYgKCggIiR7VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1J9IiA+PSAxMTAwMDAgKSkKLSAg
ICAgICAgdGhlbgotICAgICAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0
eS5jcy5qaXQtd3JpdGUtYWxsb3dsaXN0IGJvb2wgWUVTCi0gICAgICAgIGZpCi0gICAgZmkKLX0K
LQogZnVuY3Rpb24gbWFjX3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMoKQogewogICAgIGlm
IFtbICIke1dLX1VTRV9SRVNUUklDVEVEX0VOVElUTEVNRU5UU30iID09IFlFUyBdXQpAQCAtNDI1
LDQ3ICszOTksNiBAQCBmdW5jdGlvbiBpb3NfZmFtaWx5X3Byb2Nlc3NfZ3B1X2VudGl0bGVtZW50
cygpCiAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLmF0dHJpYnV0aW9uLmV4
cGxpY2l0bHktYXNzdW1lZC1pZGVudGl0aWVzOjA6dHlwZSBzdHJpbmcgd2lsZGNhcmQKIH0KIAot
ZnVuY3Rpb24gaW9zX2ZhbWlseV9wcm9jZXNzX3dlYmF1dGhuX2VudGl0bGVtZW50cygpCi17Ci0g
ICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1cyBib29sIFlF
UwotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucnVubmluZ2JvYXJkLmFzc2VydGlvbnMu
d2Via2l0IGJvb2wgWUVTCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnNlY3VyaXR5
LmRldmljZS51c2IgYm9vbCBZRVMKLQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJp
dmF0ZS50Y2MuYWxsb3cgYXJyYXkKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZh
dGUudGNjLmFsbG93OjAgc3RyaW5nIGtUQ0NTZXJ2aWNlTGlzdGVuRXZlbnQKLQotICAgIHBsaXN0
YnVkZHkgQWRkIDpjb20uYXBwbGUuc2VjdXJpdHkuYXBwbGljYXRpb24tZ3JvdXBzIGFycmF5Ci0g
ICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0eS5hcHBsaWNhdGlvbi1ncm91cHM6
MCBzdHJpbmcgZ3JvdXAuY29tLmFwcGxlLndlYmtpdAotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNv
bS5hcHBsZS5uZmNkLmh3bWFuYWdlciBib29sIFlFUwotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20u
YXBwbGUubmZjZC5zZXNzaW9uLnJlYWRlci5pbnRlcm5hbCBib29sIFlFUwotICAgICMgRklYTUUo
cmRhcjovL3Byb2JsZW0vNzI2NDY2NjQpOiBGaW5kIGEgYmV0dGVyIHdheSB0byBpbnZva2UgTmVh
ckZpZWxkIGluIHRoZSBiYWNrZ3JvdW5kLgotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUu
aW50ZXJuYWwubmZjLmFsbG93LmJhY2tncm91bmRlZC5zZXNzaW9uIGJvb2wgWUVTCi0gICAgcGxp
c3RidWRkeSBBZGQgOmNvbS5hcHBsZS5VSUtpdC52ZW5kcy12aWV3LXNlcnZpY2VzIGJvb2wgWUVT
Ci0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdyb3VwcyBhcnJheQotICAg
IHBsaXN0YnVkZHkgQWRkIDprZXljaGFpbi1hY2Nlc3MtZ3JvdXBzOjAgc3RyaW5nIGNvbS5hcHBs
ZS53ZWJraXQud2ViYXV0aG4KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6a2V5Y2hhaW4tYWNjZXNzLWdy
b3VwczoxIHN0cmluZyBsb2NrZG93bi1pZGVudGl0aWVzCi0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6
Y29tLmFwcGxlLnByaXZhdGUuTW9iaWxlR2VzdGFsdC5BbGxvd2VkUHJvdGVjdGVkS2V5cyBhcnJh
eQotICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5Nb2JpbGVHZXN0YWx0LkFs
bG93ZWRQcm90ZWN0ZWRLZXlzOjAgc3RyaW5nIFVuaXF1ZUNoaXBJRAotICAgIHBsaXN0YnVkZHkg
QWRkIDpjb20uYXBwbGUucHJpdmF0ZS5Nb2JpbGVHZXN0YWx0LkFsbG93ZWRQcm90ZWN0ZWRLZXlz
OjEgc3RyaW5nIFNlcmlhbE51bWJlcgotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5z
ZWN1cml0eS5zeXN0ZW0tZ3JvdXBzIGFycmF5Ci0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBs
ZS5zZWN1cml0eS5zeXN0ZW0tZ3JvdXBzOjAgc3RyaW5nIHN5c3RlbWdyb3VwLmNvbS5hcHBsZS5t
b2JpbGVhY3RpdmF0aW9uZAotCi0gICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5zZWN1cml0
eS5hdHRlc3RhdGlvbi5hY2Nlc3MgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFw
cGxlLmtleXN0b3JlLnNpay5hY2Nlc3MgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29t
LmFwcGxlLmFwcGF0dGVzdC5zcGkgYm9vbCBZRVMKLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFw
cGxlLm1vYmlsZWFjdGl2YXRpb25kLnNwaSBib29sIFlFUwotCi0gICAgcGxpc3RidWRkeSBBZGQg
OmNvbS5hcHBsZS5zcHJpbmdib2FyZC5yZW1vdGUtYWxlcnQgYm9vbCBZRVMKLSAgICBwbGlzdGJ1
ZGR5IEFkZCA6Y29tLmFwcGxlLmZyb250Ym9hcmQubGF1bmNoYXBwbGljYXRpb25zIGJvb2wgWUVT
Ci0KLSAgICBwbGlzdGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUuc2FuZGJveC5wcm9maWxl
IHN0cmluZyBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuCi19Ci0KIGZ1bmN0aW9uIGlvc19mYW1p
bHlfcHJvY2Vzc19hZGF0dHJpYnV0aW9uZF9lbnRpdGxlbWVudHMoKQogewogICAgIHBsaXN0YnVk
ZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5zYW5kYm94LnByb2ZpbGUgc3RyaW5nIGNvbS5hcHBs
ZS5XZWJLaXQuYWRhdHRyaWJ1dGlvbmQKQEAgLTUyMCw3ICs0NTMsNiBAQCB0aGVuCiAgICAgZWxp
ZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9PSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuQ2Fw
dGl2ZVBvcnRhbCBdXTsgdGhlbiBtYWNfcHJvY2Vzc193ZWJjb250ZW50X2NhcHRpdmVwb3J0YWxf
ZW50aXRsZW1lbnRzCiAgICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9IiA9PSBjb20uYXBwbGUu
V2ViS2l0Lk5ldHdvcmtpbmcgXV07IHRoZW4gbWFjX3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVu
dHMKICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuR1BV
IF1dOyB0aGVuIG1hY19wcm9jZXNzX2dwdV9lbnRpdGxlbWVudHMKLSAgICBlbGlmIFtbICIke1BS
T0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4gXV07IHRoZW4gbWFjX3By
b2Nlc3Nfd2ViYXV0aG5fZW50aXRsZW1lbnRzCiAgICAgZWxpZiBbWyAiJHtQUk9EVUNUX05BTUV9
IiA9PSB3ZWJwdXNoZCBdXTsgdGhlbiBtYWNfcHJvY2Vzc193ZWJwdXNoZF9lbnRpdGxlbWVudHMK
ICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iICE9IGFkYXR0cmlidXRpb25kIF1dOyB0aGVu
IGVjaG8gIlVuc3VwcG9ydGVkL3Vua25vd24gcHJvZHVjdDogJHtQUk9EVUNUX05BTUV9IgogICAg
IGZpCkBAIC01NDQsNyArNDc2LDYgQEAgdGhlbgogICAgIGVsaWYgW1sgIiR7UFJPRFVDVF9OQU1F
fSIgPT0gY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkNhcHRpdmVQb3J0YWwgXV07IHRoZW4g
aW9zX2ZhbWlseV9wcm9jZXNzX3dlYmNvbnRlbnRfY2FwdGl2ZXBvcnRhbF9lbnRpdGxlbWVudHMK
ICAgICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZyBdXTsgdGhlbiBpb3NfZmFtaWx5X3Byb2Nlc3NfbmV0d29ya19lbnRpdGxlbWVudHMKICAg
ICBlbGlmIFtbICIke1BST0RVQ1RfTkFNRX0iID09IGNvbS5hcHBsZS5XZWJLaXQuR1BVIF1dOyB0
aGVuIGlvc19mYW1pbHlfcHJvY2Vzc19ncHVfZW50aXRsZW1lbnRzCi0gICAgZWxpZiBbWyAiJHtQ
Uk9EVUNUX05BTUV9IiA9PSBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuIF1dOyB0aGVuIGlvc19m
YW1pbHlfcHJvY2Vzc193ZWJhdXRobl9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RV
Q1RfTkFNRX0iID09IGFkYXR0cmlidXRpb25kIF1dOyB0aGVuCiAgICAgICAgIGlvc19mYW1pbHlf
cHJvY2Vzc19hZGF0dHJpYnV0aW9uZF9lbnRpdGxlbWVudHMKICAgICBlbGlmIFtbICIke1BST0RV
Q1RfTkFNRX0iID09IHdlYnB1c2hkIF1dOyB0aGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCmluZGV4IDNhMTZhMmNjMzk0
NGM0MjExNDUzOThiY2YxNGUyYjU2NmU3YTUzN2MuLjE4YWYwZDhkMDk3OTg1YzM4ZGFkZDg0NDA4
OTNlMTQ1NjAyMDY5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0Rl
ZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCkBAIC03MSw4ICs3MSw3IEBAIHN0YXRpYyBib29s
IGlzSW5XZWJLaXRDaGlsZFByb2Nlc3MoKQogICAgICAgICBOU1N0cmluZyAqYnVuZGxlSWRlbnRp
ZmllciA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl07CiAgICAgICAg
IGlzSW5TdWJQcm9jZXNzID0gW2J1bmRsZUlkZW50aWZpZXIgaGFzUHJlZml4OkAiY29tLmFwcGxl
LldlYktpdC5XZWJDb250ZW50Il0KICAgICAgICAgICAgIHx8IFtidW5kbGVJZGVudGlmaWVyIGhh
c1ByZWZpeDpAImNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZyJdCi0gICAgICAgICAgICB8fCBb
YnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2ViS2l0LkdQVSJdCi0gICAg
ICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6QCJjb20uYXBwbGUuV2ViS2l0
LldlYkF1dGhuIl07CisgICAgICAgICAgICB8fCBbYnVuZGxlSWRlbnRpZmllciBoYXNQcmVmaXg6
QCJjb20uYXBwbGUuV2ViS2l0LkdQVSJdOwogICAgIH0pOwogCiAgICAgcmV0dXJuIGlzSW5TdWJQ
cm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxp
dGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vydmlj
ZUVudHJ5UG9pbnQuaAppbmRleCBhNTJhZGMwMTdjZTI3MDc1MTkxZjEzNzk5ZDJhYTVjOWM3NWU0
OTg0Li5iYTg3NGY1ZjJlY2Y3NmUyNzk1NjI3NmVkOTQ4NmNmZTc1NWEzZTM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRy
eVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQuaApA
QCAtNDIsNyArNDIsNiBAQCBleHRlcm4gIkMiIE9TX05PVEhST1cgdm9pZCB2b3VjaGVyX3JlcGxh
Y2VfZGVmYXVsdF92b3VjaGVyKHZvaWQpOwogI2RlZmluZSBXRUJDT05URU5UX1NFUlZJQ0VfSU5J
VElBTElaRVIgV2ViQ29udGVudFNlcnZpY2VJbml0aWFsaXplcgogI2RlZmluZSBORVRXT1JLX1NF
UlZJQ0VfSU5JVElBTElaRVIgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplcgogI2RlZmluZSBHUFVf
U0VSVklDRV9JTklUSUFMSVpFUiBHUFVTZXJ2aWNlSW5pdGlhbGl6ZXIKLSNkZWZpbmUgV0VCQVVU
SE5fU0VSVklDRV9JTklUSUFMSVpFUiBXZWJBdXRoblNlcnZpY2VJbml0aWFsaXplcgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1Nl
cnZpY2VNYWluLm1tCmluZGV4IGYxY2Y0OWQ4MzZiODhiNzQ5MjY3NDgzZDY4NGVkN2U5OTkxMmY2
ZmUuLjBlN2NjZTcyMDk4M2QzYzBmOTZlZGRjNjNmMGY5OTNlMzA1YmYxMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2Vydmlj
ZS9YUENTZXJ2aWNlTWFpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50
VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KQEAgLTEwNSw4ICsx
MDUsNiBAQCBzdGF0aWMgdm9pZCBYUENTZXJ2aWNlRXZlbnRIYW5kbGVyKHhwY19jb25uZWN0aW9u
X3QgcGVlcikKICAgICAgICAgICAgICAgICBlbnRyeVBvaW50RnVuY3Rpb25OYW1lID0gQ0ZTVFIo
U1RSSU5HSVpFX1ZBTFVFX09GKE5FVFdPUktfU0VSVklDRV9JTklUSUFMSVpFUikpOwogICAgICAg
ICAgICAgZWxzZSBpZiAoIXN0cmNtcChzZXJ2aWNlTmFtZSwgImNvbS5hcHBsZS5XZWJLaXQuR1BV
IikpCiAgICAgICAgICAgICAgICAgZW50cnlQb2ludEZ1bmN0aW9uTmFtZSA9IENGU1RSKFNUUklO
R0laRV9WQUxVRV9PRihHUFVfU0VSVklDRV9JTklUSUFMSVpFUikpOwotICAgICAgICAgICAgZWxz
ZSBpZiAoIXN0cmNtcChzZXJ2aWNlTmFtZSwgImNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4iKSkK
LSAgICAgICAgICAgICAgICBlbnRyeVBvaW50RnVuY3Rpb25OYW1lID0gQ0ZTVFIoU1RSSU5HSVpF
X1ZBTFVFX09GKFdFQkFVVEhOX1NFUlZJQ0VfSU5JVElBTElaRVIpKTsKICAgICAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElQQywgIlhQQ1NlcnZpY2VF
dmVudEhhbmRsZXI6IFVuZXhwZWN0ZWQgJ3NlcnZpY2UtbmFtZSc6ICV7cHVibGljfXMiLCBzZXJ2
aWNlTmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvbWFjL0F1eGlsaWFyeVByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vzc01hYy5tbQppbmRleCA3NmQyMTgzNTg3YjA2MWExOGJm
NTlmZjkxNGE3MzU0ZThmNjM1OTZiLi41YzRlNzFkNmI3M2ZjNGZhNjAyNDlhOGQyMDViOWMxMDU2
YWNlZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJv
Y2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvQXV4aWxpYXJ5UHJvY2Vz
c01hYy5tbQpAQCAtMjM3LDEwICsyMzcsNiBAQCBjb25zdGV4cHIgY29uc3QgY2hhciogcHJvY2Vz
c1N0b3JhZ2VDbGFzcyhXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSB0eXBlKQogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKICAgICBjYXNlIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBl
OjpHUFU6CiAgICAgICAgIHJldHVybiAiV2ViS2l0R1BVU2FuZGJveCI7Ci0jZW5kaWYKLSNpZiBF
TkFCTEUoV0VCX0FVVEhOKQotICAgIGNhc2UgV2ViQ29yZTo6QXV4aWxpYXJ5UHJvY2Vzc1R5cGU6
OldlYkF1dGhuOgotICAgICAgICByZXR1cm4gIldlYktpdFdlYkF1dGhuU2FuZGJveCI7CiAjZW5k
aWYKICAgICB9CiB9CkBAIC0zMDQsMTEgKzMwMCw2IEBAIHN0YXRpYyBTdHJpbmcgc2FuZGJveERp
cmVjdG9yeShXZWJDb3JlOjpBdXhpbGlhcnlQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgY29uc3QK
ICAgICBjYXNlIFdlYkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAgIGRp
cmVjdG9yeS5hcHBlbmQoIi9jb20uYXBwbGUuV2ViS2l0LkdQVS5TYW5kYm94Iik7CiAgICAgICAg
IGJyZWFrOwotI2VuZGlmCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBjYXNlIFdlYkNvcmU6
OkF1eGlsaWFyeVByb2Nlc3NUeXBlOjpXZWJBdXRobjoKLSAgICAgICAgZGlyZWN0b3J5LmFwcGVu
ZCgiL2NvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4uU2FuZGJveCIpOwotICAgICAgICBicmVhazsK
ICNlbmRpZgogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBi
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggM2RkYjA2MzFlMTAyMTkxYzc3NTM5MGI1
MjM3ZDc4YmMwZDAyMzIyZS4uYmU3MzZkMWNlZTlmMzRjN2UwMjlhMmMxNWYxZWMzNjNmMmQxZmMx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CkBAIC02MTAsNyArNjEwLDYgQEAgVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlLmNwcAogVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3IuY3BwCiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5jcHAKLVVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5jcHAKIAogVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5j
cHAKIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVJlY29yZC5jcHAKQEAgLTYxOSwx
MCArNjE4LDYgQEAgVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uLmNwcAogCiBVSVByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbS5jcHAKIAotV2ViQXV0
aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKLVdlYkF1dGhuUHJv
Y2Vzcy9XZWJBdXRoblByb2Nlc3MuY3BwCi1XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAotCiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJv
Y2Vzcy5jcHAKIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKIFdlYlByb2Nlc3MvV2ViU2xlZXBE
aXNhYmxlckNsaWVudC5jcHAKQEAgLTgwNCw3ICs3OTksNiBAQCBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2hhcmVkV29ya2VyUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlci5jcHAKIAogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCi1XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGIz
NGM1MGRkZTc0YmJlNDkwNDkyOTc2MDIzYTg3ZDc4NzkwMGRjMmQuLjY4ZGM3NzE5MjExNDlkNjU3
ZjU0NmNhMjczZjRlMzk1Mzc4NDBmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTYwNSwx
MCArNjA1LDYgQEAgVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja05mY1NlcnZp
Y2UubW0KIAogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2Nv
YS5tbQogCi1XZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1
dGhuU2VydmljZUVudHJ5UG9pbnQubW0KLVdlYkF1dGhuUHJvY2Vzcy9pb3MvV2ViQXV0aG5Qcm9j
ZXNzSU9TLm1tCi1XZWJBdXRoblByb2Nlc3MvbWFjL1dlYkF1dGhuUHJvY2Vzc01hYy5tbQotCiBX
ZWJQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3MuY3BwCiAKIFdlYlByb2Nlc3MvQXBwbGVQ
YXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCAxYTczYTcwY2FjOTk2ODI2OWM0NjdhODg2
N2Y4MjFjNGIwZGJhMmE0Li43NzIwNzMyMTY5NTM1Y2MwMDg4YWQzNDM5MWU2NmRiZGRkY2ZkMjRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNw
cApAQCAtODM0LDE2ICs4MzQsNiBAQCBib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNh
dGlvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKICAgICByZXR1cm4g
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+d2ViQXV0aGVudGljYXRpb25FbmFibGVkKCk7CiB9CiAK
LXZvaWQgV0tQcmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCi17Ci0gICAgdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+c2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKGZsYWcpOwot
fQotCi1ib29sIFdLUHJlZmVyZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKLXsKLSAgICByZXR1cm4gdG9JbXBsKHBy
ZWZlcmVuY2VzUmVmKS0+d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCk7Ci19Ci0KIHZv
aWQgV0tQcmVmZXJlbmNlc1NldEludmlzaWJsZU1lZGlhQXV0b3BsYXlQZXJtaXR0ZWQoV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQogewogICAgIHRvSW1wbChwcmVm
ZXJlbmNlc1JlZiktPnNldEludmlzaWJsZUF1dG9wbGF5Tm90UGVybWl0dGVkKCFmbGFnKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVm
UHJpdmF0ZS5oCmluZGV4IDJjY2JjN2NmNWQzMDYxNGI2YWVmYzc3MDEzNTkxZGEwOWQ0MmNjMDIu
LmY5ZjRhMmEwZDVlM2NjMTg0Mjc0MzIxNzMwYjIzYTFjOTZlZmVmYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUu
aApAQCAtNDk4LDEwICs0OTgsNiBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0RXhw
b3NlU3BlYWtlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQ
cmVmZXJlbmNlc1NldFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBi
b29sIGZsYWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdlYkF1dGhlbnRpY2F0
aW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKIAotLy8gRGVmYXVsdHMgdG8gZmFsc2UKLVdL
X0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJs
ZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKTsKLVdLX0VYUE9SVCBib29sIFdLUHJlZmVy
ZW5jZXNHZXRXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7
Ci0KIC8vIERlZmF1bHRzIHRvIHRydWUuCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0
SW52aXNpYmxlTWVkaWFBdXRvcGxheVBlcm1pdHRlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sIGZs
YWcpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldEludmlzaWJsZU1lZGlhQXV0b3Bs
YXlQZXJtaXR0ZWQoV0tQcmVmZXJlbmNlc1JlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDY1OGRjZjA3MWE4NTBhYWY0
NDIzNGMyZTBjMmU0YjQxNjNmMjc3OWUuLmYzZjgzY2M1NjllYzM4ZDA3YmFlYzllZGI0ZWE4MzAz
NWRiZWY4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1Byb2Nlc3NQb29sLm1tCkBAIC0zOCw3ICszOCw2IEBACiAjaW1wb3J0ICJXS09iamVjdC5oIgog
I2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLV2Vic2l0ZURhdGFTdG9y
ZUludGVybmFsLmgiCi0jaW1wb3J0ICJXZWJBdXRoblByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAi
V2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2ltcG9ydCAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAj
aW1wb3J0ICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKQEAgLTE5OCwxNSArMTk3LDYgQEAgc3Rh
dGljIFJldGFpblB0cjxXS1Byb2Nlc3NQb29sPiYgc2hhcmVkUHJvY2Vzc1Bvb2woKQogICAgIHJl
dHVybiBbdXJsIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIldlYnNpdGVEYXRhIiBpc0Rp
cmVjdG9yeTpZRVNdOwogfQogCi0rIChwaWRfdClfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcgot
ewotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgcmV0dXJuIFdlYktpdDo6V2ViQXV0aG5Qcm9j
ZXNzUHJveHk6OnNpbmdsZXRvbigpLnByb2Nlc3NJZGVudGlmaWVyKCk7Ci0jZWxzZQotICAgIHJl
dHVybiAwOwotI2VuZGlmCi19Ci0KIC0gKHZvaWQpX3NldEFsbG93c1NwZWNpZmljSFRUUFNDZXJ0
aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNTdHJpbmcgKilo
b3N0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDBjYjFiZTIzODczMmQyMWM2NDkwZGE2MTJi
NWFmMzljMzE1NDAwNTAuLmZhNjIxYjkxODEzYzFjNjBhYTM0YzdjYzhjYWM3ZjBkZmVmMzU4YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC03Miw3ICs3Miw2IEBACiAKICsgKE5TVVJMICopX3dlYnNp
dGVEYXRhVVJMRm9yQ29udGFpbmVyV2l0aFVSTDooTlNVUkwgKiljb250YWluZXJVUkw7CiArIChO
U1VSTCAqKV93ZWJzaXRlRGF0YVVSTEZvckNvbnRhaW5lcldpdGhVUkw6KE5TVVJMICopY29udGFp
bmVyVVJMIGJ1bmRsZUlkZW50aWZpZXJJZk5vdEluQ29udGFpbmVyOihOU1N0cmluZyAqKWJ1bmRs
ZUlkZW50aWZpZXI7Ci0rIChwaWRfdClfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiArICh2b2lk
KV9zZXRXZWJQcm9jZXNzQ291bnRMaW1pdDoodW5zaWduZWQpbGltaXQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1eGlsaWFyeVByb2Nlc3NQcm94eS5jcHAKaW5kZXggY2ZkZjRhMWU1
NDlmM2UyYzE1MDcyMzAxYmNhYzQxMWJmYjVjY2RiOC4uYzI5ODY3YmVhZjJkZjljNzcxZDNiMmU5
Yzc2MmIxYjExZWVkODA4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhp
bGlhcnlQcm9jZXNzUHJveHkuY3BwCkBAIC04NiwxMSArODYsNiBAQCB2b2lkIEF1eGlsaWFyeVBy
b2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlv
bnMmIGxhdQogICAgICAgICB2YXJuYW1lID0gIkdQVV9QUk9DRVNTX0NNRF9QUkVGSVgiOwogICAg
ICAgICBicmVhazsKICNlbmRpZgotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgY2FzZSBQcm9j
ZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWJBdXRobjoKLSAgICAgICAgdmFybmFtZSA9ICJX
RUJBVVRITl9QUk9DRVNTX0NNRF9QUkVGSVgiOwotICAgICAgICBicmVhazsKLSNlbmRpZgogI2lm
IEVOQUJMRShCVUJCTEVXUkFQX1NBTkRCT1gpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlBy
b2Nlc3NUeXBlOjpEQnVzUHJveHk6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KaW5kZXggODA4NTczMjNmOWQ4ZjljMzhmNjFhOTIxYjdkZWI4NDRiODAwZjI3MC4uZmRkOGVm
NjRhMTQ3Y2IxYTFhZmI5NTBhOTM4MzI3Yjk5MzJmYWIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC00Miw4ICs0
Miw2IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVXNlckludGVyZmFjZUlk
aW9tLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgot
I2ltcG9ydCAiV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCIKLSNpbXBvcnQgIldlYkF1dGhuUHJv
Y2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJX
ZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgpAQCAt
MTA4MywxMSArMTA4MSw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6Om5vdGlmeVByZWZlcmVuY2Vz
Q2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nCiAgICAgICAgIGlmIChh
dXRvKiBuZXR3b3JrUHJvY2VzcyA9IGRhdGFTdG9yZS5uZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkp
CiAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6Ok5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChkb21haW4sIGtleSwgZW5jb2RlZFZhbHVlKSwg
MCk7CiAgICAgfSk7Ci0gICAgCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBpZiAoYXV0byB3
ZWJBdXRoblByb2Nlc3MgPSBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uSWZDcmVhdGVk
KCkpCi0gICAgICAgIHdlYkF1dGhuUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQXV0aG5Qcm9j
ZXNzOjpOb3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoZG9tYWluLCBrZXksIGVuY29kZWRWYWx1ZSks
IDApOwotI2VuZGlmCiAKICAgICBpZiAoa2V5ID09IFdLQ2FwdGl2ZVBvcnRhbE1vZGVFbmFibGVk
S2V5IHx8IGtleSA9PSBXZWJLaXRDYXB0aXZlUG9ydGFsTW9kZUNoYW5nZWROb3RpZmljYXRpb25f
TGVnYWN5KQogICAgICAgICBjYXB0aXZlUG9ydGFsTW9kZVN0YXRlQ2hhbmdlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRl
eCBkMTI1ODdlOGZlMzZlYWExY2ZlZDc5MjZjMGM4ZjM4Nzg3ZTI3MjZlLi4wNDEyOTgzNThlMjRi
NmM1MDcwMGQxNDZjOTIyOWM3Y2QwY2Y5NDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNzQsOSArNzQsNiBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICAgICBHUFUsCiAjZW5kaWYKLSNpZiBF
TkFCTEUoV0VCX0FVVEhOKQotICAgICAgICBXZWJBdXRobiwKLSNlbmRpZgogI2lmIEVOQUJMRShC
VUJCTEVXUkFQX1NBTkRCT1gpCiAgICAgICAgIERCdXNQcm94eSwKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvY29jb2EvUHJvY2Vzc0xhdW5jaGVy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNz
TGF1bmNoZXJDb2NvYS5tbQppbmRleCA5NzJkZTYzYzEzMTNjOTBlNGE4ZDFlODU4OWJlZTZiYjIy
MzIzYTg3Li5iNWEyNDViOWU1MTMzNmIyZjIzNTE4NTdiMTJiOTNjOTk5NGRhYTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Qcm9jZXNzTGF1bmNo
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9jb2NvYS9Q
cm9jZXNzTGF1bmNoZXJDb2NvYS5tbQpAQCAtNzIsMTAgKzcyLDYgQEAgc3RhdGljIGNvbnN0IGNo
YXIqIHNlcnZpY2VOYW1lKGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1
bmNoT3B0aW8KICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNo
ZXI6OlByb2Nlc3NUeXBlOjpHUFU6CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5H
UFUiOwotI2VuZGlmCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBjYXNlIFByb2Nlc3NMYXVu
Y2hlcjo6UHJvY2Vzc1R5cGU6OldlYkF1dGhuOgotICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5X
ZWJLaXQuV2ViQXV0aG4iOwogI2VuZGlmCiAgICAgfQogfQpAQCAtODgsMTQgKzg0LDEwIEBAIHN0
YXRpYyBib29sIHNob3VsZExlYWtCb29zdChjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9w
dGlvbnMmIGxhdW5jaE9wdGlvbnMpCiAgICAgLy8gcmlnaHQgcHJpb3JpdGllcy4KICAgICByZXR1
cm4gZmFsc2U7CiAjZWxzZQotICAgIC8vIE9uIE1hYywgbGVhayBhIGJvb3N0IG9udG8gdGhlIE5l
dHdvcmtQcm9jZXNzLCBHUFVQcm9jZXNzLCBhbmQgV2ViQXV0aG5Qcm9jZXNzLgorICAgIC8vIE9u
IE1hYywgbGVhayBhIGJvb3N0IG9udG8gdGhlIE5ldHdvcmtQcm9jZXNzIGFuZCBHUFVQcm9jZXNz
LgogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICBpZiAobGF1bmNoT3B0aW9ucy5wcm9jZXNz
VHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpHUFUpCiAgICAgICAgIHJldHVy
biB0cnVlOwotI2VuZGlmCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBpZiAobGF1bmNoT3B0
aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWJBdXRo
bikKLSAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKICAgICByZXR1cm4gbGF1bmNoT3B0aW9u
cy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdG9yLmgKaW5kZXggNWNmOWFmNTcwOGU4YzFiMWYxN2JjNGRkY2Ey
MmVmYzk0Y2MzNGFhYi4uYTUyMWQwMTE5NmY1MGJiNTYyODA3MDcwOGVmMGFhNjA3MTM0ZTNjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3IuaApAQCAtNjgsMTQgKzY4LDExIEBAIHB1YmxpYzoKICAgICAvLyBU
aGlzIG9wZXJhdGlvbiBpcyBndWFyYW50ZWVkIHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzbHkuCiAg
ICAgdm9pZCBoYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEm
KTsKIAotICAgIHZvaWQgc2V0V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKGJvb2wgd2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKSB7IG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
bmFibGVkID0gd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkOyB9Ci0KIHByb3RlY3RlZDoK
ICAgICBBdXRoZW50aWNhdG9yKCkgPSBkZWZhdWx0OwogCiAgICAgT2JzZXJ2ZXIqIG9ic2VydmVy
KCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlci5nZXQoKTsgfQogICAgIGNvbnN0IFdlYkF1dGhl
bnRpY2F0aW9uUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKCkgY29uc3QgeyByZXR1cm4gbV9wZW5k
aW5nUmVxdWVzdERhdGE7IH0KLSAgICBib29sIHdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkOyB9CiAK
ICAgICB2b2lkIHJlY2VpdmVSZXNwb25kKFJlc3BvbmQmJikgY29uc3Q7CiAKQEAgLTg1LDcgKzgy
LDYgQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQdHI8T2JzZXJ2ZXI+IG1fb2JzZXJ2ZXI7CiAgICAg
V2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSBtX3BlbmRpbmdSZXF1ZXN0RGF0YTsKLSAgICBi
b29sIG1fd2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmlu
ZGV4IGUzZTRmMzIxYTEwN2U4M2U4YmQ5ZTg2OGYxODI1MTI5NGFhY2I2NjguLmIzMTY3Mzc0ZjVm
NGU4ZGE0YTdkZDQ2MGJhMDQ0N2QwMTk2NGFhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5jcHAKQEAgLTIzNCwxMSArMjM0LDYgQEAgdm9pZCBBdXRoZW50aWNhdG9yTWFuYWdl
cjo6Y2FuY2VsKCkKICAgICBjYW5jZWxSZXF1ZXN0KCk7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRv
ck1hbmFnZXI6OmVuYWJsZU1vZGVybldlYkF1dGhlbnRpY2F0aW9uKCkKLXsKLSAgICBtX21vZGUg
PSBNb2RlOjpNb2Rlcm47Ci19Ci0KIHZvaWQgQXV0aGVudGljYXRvck1hbmFnZXI6OmVuYWJsZU5h
dGl2ZVN1cHBvcnQoKQogewogICAgIG1fbW9kZSA9IE1vZGU6Ok5hdGl2ZTsKQEAgLTI2OCw3ICsy
NjMsNiBAQCB2b2lkIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjphdXRoZW50aWNhdG9yQWRkZWQoUmVm
PEF1dGhlbnRpY2F0b3I+JiYgYXV0aGVudGljYXRvcgogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgYXV0aGVudGljYXRvci0+c2V0T2JzZXJ2ZXIoKnRoaXMpOwogICAgIGF1dGhl
bnRpY2F0b3ItPmhhbmRsZVJlcXVlc3QobV9wZW5kaW5nUmVxdWVzdERhdGEpOwotICAgIGF1dGhl
bnRpY2F0b3ItPnNldFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZChtX21vZGUgIT0gTW9k
ZTo6Q29tcGF0aWJsZSk7CiAgICAgYXV0byBhZGRSZXN1bHQgPSBtX2F1dGhlbnRpY2F0b3JzLmFk
ZChXVEZNb3ZlKGF1dGhlbnRpY2F0b3IpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwg
YWRkUmVzdWx0LmlzTmV3RW50cnkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgK
aW5kZXggNTllMmExZjdhNWEwMTg0ZmQwNDllYTk2MjdkMzUzYzQ2Mjg1YmY5Mi4uN2NkMWIyY2M5
MDlhMzE2NzY3NDcwM2VhMmMzZTNlM2MxYzIwZjUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9y
TWFuYWdlci5oCkBAIC03MSw3ICs3MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNN
b2NrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNWaXJ0dWFs
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZvaWQgZW5hYmxlTW9kZXJuV2ViQXV0
aGVudGljYXRpb24oKTsKICAgICB2b2lkIGVuYWJsZU5hdGl2ZVN1cHBvcnQoKTsKIAogcHJvdGVj
dGVkOgpAQCAtODksNyArODgsNiBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGVudW0gY2xh
c3MgTW9kZSB7CiAgICAgICAgIENvbXBhdGlibGUsCi0gICAgICAgIE1vZGVybiwKICAgICAgICAg
TmF0aXZlLAogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5t
bQppbmRleCBlNjlkYmRhZTUwMThmMDg0YjRiMWNmZDU5ZjlmNmJkMWZkZGZlNzQzLi4zNmI3NDJm
MmNmZDExZTVjNjcxZjQzODliZTMzNGFkMGYyZGRhZjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3Iu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
TG9jYWxBdXRoZW50aWNhdG9yLm1tCkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBMb2NhbEF1dGhl
bnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKCkKICAgICAgICAgfSkpIHsKICAgICAgICAgICAgIC8v
IE9idGFpbiBjb25zZW50IHBlciBTdGVwIDMuMQogICAgICAgICAgICAgYXV0byBjYWxsYmFjayA9
IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoTG9jYWxBdXRoZW50aWNhdG9yUG9saWN5
IHBvbGljeSkgewotICAgICAgICAgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Cisg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMjUxLDQwICsyNTEsMjAgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50
aWFsKCkKICAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnJlY2VpdmVFeGNlcHRpb24oeyBO
b3RBbGxvd2VkRXJyb3IsICJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gY2FuY2VsbGVkIGJ5IHRoZSB1
c2VyLiJfcyB9KTsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAvLyBTaW1pbGFyIHRvIGJl
bG93LCBjb25zZW50IGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4uCi0gICAgICAgICAgICBpZiAod2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCkpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2so
TG9jYWxBdXRoZW50aWNhdG9yUG9saWN5OjpBbGxvdyk7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgb2JzZXJ2ZXIoKS0+ZGVjaWRlUG9saWN5Rm9yTG9jYWxBdXRoZW50aWNhdG9y
KFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgICAgIG9ic2VydmVyKCktPmRlY2lkZVBvbGlj
eUZvckxvY2FsQXV0aGVudGljYXRvcihXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBTdGVwIDYuCi0gICAgLy8gR2V0IHVz
ZXIgY29uc2VudC4KLSAgICBpZiAod2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCkpIHsK
LSAgICAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gdGhpcy0+b2JzZXJ2ZXIoKSkgewotICAgICAg
ICAgICAgYXV0byBjYWxsYmFjayA9IFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoTEFD
b250ZXh0ICpjb250ZXh0KSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVNYWtlQ3JlZGVu
dGlhbEFmdGVyUmVjZWl2aW5nTEFDb250ZXh0KGNvbnRleHQpOwotICAgICAgICAgICAgfTsKLSAg
ICAgICAgICAgIG9ic2VydmVyLT5yZXF1ZXN0TEFDb250ZXh0Rm9yVXNlclZlcmlmaWNhdGlvbihX
VEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm47Ci0gICAgfQot
CiAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gdGhpcy0+b2JzZXJ2ZXIoKSkgewotICAgICAgICBh
dXRvIGNhbGxiYWNrID0gW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChMb2NhbEF1dGhl
bnRpY2F0b3JQb2xpY3kgcG9saWN5KSB7CisgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBbd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gKExBQ29udGV4dCAqY29udGV4dCkgewogICAgICAgICAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICB3ZWFrVGhpcy0+Y29udGlu
dWVNYWtlQ3JlZGVudGlhbEFmdGVyRGVjaWRlUG9saWN5KHBvbGljeSk7CisgICAgICAgICAgICB3
ZWFrVGhpcy0+Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVjZWl2aW5nTEFDb250ZXh0KGNv
bnRleHQpOwogICAgICAgICB9OwotICAgICAgICBvYnNlcnZlci0+ZGVjaWRlUG9saWN5Rm9yTG9j
YWxBdXRoZW50aWNhdG9yKFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICAgICAgb2JzZXJ2ZXItPnJl
cXVlc3RMQUNvbnRleHRGb3JVc2VyVmVyaWZpY2F0aW9uKFdURk1vdmUoY2FsbGJhY2spKTsKICAg
ICB9CiB9CiAKQEAgLTU2NCwzOCArNTQ0LDIwIEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpj
b250aW51ZUdldEFzc2VydGlvbkFmdGVyUmVzcG9uc2VTZWxlY3RlZChSZWY8V2ViQ29yZTo6CiAg
ICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OlJlcXVlc3RSZWNlaXZlZCk7CiAgICAgbV9zdGF0
ZSA9IFN0YXRlOjpSZXNwb25zZVNlbGVjdGVkOwogCi0gICAgaWYgKHdlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gYWNjZXNzQ29udHJvbFJlZiA9IHJlc3Bv
bnNlLT5hY2Nlc3NDb250cm9sKCk7Ci0gICAgICAgIExBQ29udGV4dCAqY29udGV4dCA9IHJlc3Bv
bnNlLT5sYUNvbnRleHQoKTsKLSAgICAgICAgYXV0byBjYWxsYmFjayA9IFsKLSAgICAgICAgICAg
IHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sCi0gICAgICAgICAgICByZXNwb25zZSA9IFdU
Rk1vdmUocmVzcG9uc2UpCi0gICAgICAgIF0gKExvY2FsQ29ubmVjdGlvbjo6VXNlclZlcmlmaWNh
dGlvbiB2ZXJpZmljYXRpb24pIG11dGFibGUgewotICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKLSAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAg
cmV0dXJuOwotCi0gICAgICAgICAgICB3ZWFrVGhpcy0+Y29udGludWVHZXRBc3NlcnRpb25BZnRl
clVzZXJWZXJpZmljYXRpb24oV1RGTW92ZShyZXNwb25zZSksIHZlcmlmaWNhdGlvbiwgcmVzcG9u
c2UtPmxhQ29udGV4dCgpKTsKLSAgICAgICAgfTsKLQotICAgICAgICBtX2Nvbm5lY3Rpb24tPnZl
cmlmeVVzZXIoYWNjZXNzQ29udHJvbFJlZiwgY29udGV4dCwgV1RGTW92ZShjYWxsYmFjaykpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byYgcmVxdWVzdE9wdGlvbnMgPSBzdGQ6
OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0
aW9ucyk7Ci0KICAgICBhdXRvIGFjY2Vzc0NvbnRyb2xSZWYgPSByZXNwb25zZS0+YWNjZXNzQ29u
dHJvbCgpOworICAgIExBQ29udGV4dCAqY29udGV4dCA9IHJlc3BvbnNlLT5sYUNvbnRleHQoKTsK
ICAgICBhdXRvIGNhbGxiYWNrID0gWwogICAgICAgICB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LAogICAgICAgICByZXNwb25zZSA9IFdURk1vdmUocmVzcG9uc2UpCi0gICAgXSAoTG9jYWxD
b25uZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpjb250
ZXh0KSBtdXRhYmxlIHsKKyAgICBdIChMb2NhbENvbm5lY3Rpb246OlVzZXJWZXJpZmljYXRpb24g
dmVyaWZpY2F0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICB3ZWFrVGhpcy0+Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRpb24oV1RG
TW92ZShyZXNwb25zZSksIHZlcmlmaWNhdGlvbiwgY29udGV4dCk7CisgICAgICAgIHdlYWtUaGlz
LT5jb250aW51ZUdldEFzc2VydGlvbkFmdGVyVXNlclZlcmlmaWNhdGlvbihXVEZNb3ZlKHJlc3Bv
bnNlKSwgdmVyaWZpY2F0aW9uLCByZXNwb25zZS0+bGFDb250ZXh0KCkpOwogICAgIH07Ci0gICAg
bV9jb25uZWN0aW9uLT52ZXJpZnlVc2VyKHJlcXVlc3RPcHRpb25zLnJwSWQsIGdldENsaWVudERh
dGFUeXBlKHJlcXVlc3REYXRhKCkub3B0aW9ucyksIGFjY2Vzc0NvbnRyb2xSZWYsIGdldFVzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudChyZXF1ZXN0RGF0YSgpLm9wdGlvbnMpLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CisKKyAgICBtX2Nvbm5lY3Rpb24tPnZlcmlmeVVzZXIoYWNjZXNzQ29udHJvbFJl
ZiwgY29udGV4dCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIExvY2FsQXV0aGVudGlj
YXRvcjo6Y29udGludWVHZXRBc3NlcnRpb25BZnRlclVzZXJWZXJpZmljYXRpb24oUmVmPFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4mJiByZXNwb25zZSwgTG9jYWxDb25u
ZWN0aW9uOjpVc2VyVmVyaWZpY2F0aW9uIHZlcmlmaWNhdGlvbiwgTEFDb250ZXh0ICpjb250ZXh0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
V2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiYTBiNDhiYmEyZTc5ZjMxMGExOTcxNGY0ZGQ5NWE2NTM4NWYzZWFlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDE5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vzc1Byb3h5LmgiCi0KLSNpZiBFTkFCTEUoV0VC
X0FVVEhOKQotCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1ZGUgIldlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb25JbmZvLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRl
ICJXZWJQYWdlTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLSNpbmNsdWRl
ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgotI2lu
Y2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KLSNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KLQotI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0jaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+Ci0jZW5kaWYKLQotI2RlZmlu
ZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwg
dGhpcy0+Y29ubmVjdGlvbigpKQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1zdGF0aWMgUmVmUHRyPFdlYkF1dGhuUHJvY2Vzc1Byb3h5PiYgc2hhcmVk
UHJvY2VzcygpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZlB0cjxXZWJBdXRoblBy
b2Nlc3NQcm94eT4+IHByb2Nlc3M7Ci0gICAgcmV0dXJuIHByb2Nlc3MuZ2V0KCk7Ci19Ci0KLVdl
YkF1dGhuUHJvY2Vzc1Byb3h5JiBXZWJBdXRoblByb2Nlc3NQcm94eTo6c2luZ2xldG9uKCkKLXsK
LSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgYXV0byBjcmVhdGVBbmRJbml0
aWFsaXplTmV3UHJvY2VzcyA9IFtdIHsKLSAgICAgICAgYXV0byB3ZWJBdXRoblByb2Nlc3MgPSBh
ZG9wdFJlZigqbmV3IFdlYkF1dGhuUHJvY2Vzc1Byb3h5KTsKLSAgICAgICAgV2ViQXV0aG5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Ci0gICAgICAgIHBhcmFtZXRlcnMuYXV4
aWxpYXJ5UHJvY2Vzc1BhcmFtZXRlcnMgPSB3ZWJBdXRoblByb2Nlc3MtPmF1eGlsaWFyeVByb2Nl
c3NQYXJhbWV0ZXJzKCk7Ci0gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIFdlYkF1dGhuIHByb2Nl
c3MuCi0gICAgICAgIHdlYkF1dGhuUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViQXV0aG5Qcm9j
ZXNzOjpJbml0aWFsaXplV2ViQXV0aG5Qcm9jZXNzKHBhcmFtZXRlcnMpLCAwKTsKLSAgICAgICAg
d2ViQXV0aG5Qcm9jZXNzLT51cGRhdGVQcm9jZXNzQXNzZXJ0aW9uKCk7Ci0gICAgICAgIHJldHVy
biB3ZWJBdXRoblByb2Nlc3M7Ci0gICAgfTsKLQotICAgIGlmICghc2hhcmVkUHJvY2VzcygpKQot
ICAgICAgICBzaGFyZWRQcm9jZXNzKCkgPSBjcmVhdGVBbmRJbml0aWFsaXplTmV3UHJvY2Vzcygp
OwotICAgIHJldHVybiAqc2hhcmVkUHJvY2VzcygpOwotfQotCi1XZWJBdXRoblByb2Nlc3NQcm94
eSogV2ViQXV0aG5Qcm9jZXNzUHJveHk6OnNpbmdsZXRvbklmQ3JlYXRlZCgpCi17Ci0gICAgcmV0
dXJuIHNoYXJlZFByb2Nlc3MoKS5nZXQoKTsKLX0KLQotV2ViQXV0aG5Qcm9jZXNzUHJveHk6Oldl
YkF1dGhuUHJvY2Vzc1Byb3h5KCkKLSAgICA6IEF1eGlsaWFyeVByb2Nlc3NQcm94eSgpCi0gICAg
LCBtX3Rocm90dGxlcigqdGhpcywgZmFsc2UpCi17Ci0gICAgY29ubmVjdCgpOwotfQotCi1XZWJB
dXRoblByb2Nlc3NQcm94eTo6fldlYkF1dGhuUHJvY2Vzc1Byb3h5KCkgPSBkZWZhdWx0OwotCi12
b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKLXsKLSAgICBsYXVuY2hPcHRpb25zLnBy
b2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViQXV0aG47Ci0gICAg
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOwot
fQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uV2lsbE9wZW4oSVBDOjpD
b25uZWN0aW9uJikKLXsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3NQcm94eTo6cHJvY2Vzc1dp
bGxTaHV0RG93bihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgQVNTRVJUX1VO
VVNFRChjb25uZWN0aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOwotfQot
Ci12b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
KFdlYlByb2Nlc3NQcm94eSYgd2ViUHJvY2Vzc1Byb3h5LCBNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHkmJiByZXBseSkK
LXsKLSAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViQXV0aG5Qcm9j
ZXNzUHJveHkgaXMgdGFraW5nIGEgYmFja2dyb3VuZCBhc3NlcnRpb24gYmVjYXVzZSBhIHdlYiBw
cm9jZXNzIGlzIHJlcXVlc3RpbmcgYSBjb25uZWN0aW9uIiwgdGhpcyk7Ci0gICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoblByb2Nlc3M6OkNyZWF0ZVdlYkF1dGhuQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyB7IHdlYlByb2Nlc3NQcm94eS5jb3JlUHJvY2Vzc0lkZW50aWZpZXIo
KSB9LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVwbHkgPSBXVEZNb3Zl
KHJlcGx5KV0oYXV0byYmIGlkZW50aWZpZXIpIG11dGFibGUgewotICAgICAgICBpZiAoIXdlYWtU
aGlzKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiV2ViQXV0aG5Q
cm9jZXNzUHJveHk6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246IFdlYkF1dGhuUHJvY2Vz
c1Byb3h5IGRlYWxsb2NhdGVkIGR1cmluZyBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQiKTsKLSAg
ICAgICAgICAgIHJldHVybiByZXBseSh7IH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFp
ZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiV2Vi
QXV0aG5Qcm9jZXNzUHJveHk6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246IGNvbm5lY3Rp
b24gaWRlbnRpZmllciBpcyBlbXB0eSIpOwotICAgICAgICAgICAgcmV0dXJuIHJlcGx5KHsgfSk7
Ci0gICAgICAgIH0KLQotICAgICAgICBNRVNTQUdFX0NIRUNLKE1BQ0hfUE9SVF9WQUxJRChpZGVu
dGlmaWVyLT5wb3J0KCkpKTsKLSAgICAgICAgcmVwbHkoV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bkluZm8geyBJUEM6OkF0dGFjaG1lbnQgeyBpZGVudGlmaWVyLT5wb3J0KCksIE1BQ0hfTVNHX1RZ
UEVfTU9WRV9TRU5EIH0gfSk7Ci0gICAgfSwgMCwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1l
c3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwotfQotCi12b2lkIFdlYkF1dGhuUHJv
Y2Vzc1Byb3h5Ojp3ZWJBdXRoblByb2Nlc3NDcmFzaGVkKCkKLXsKLSAgICBzaGFyZWRQcm9jZXNz
KCkgPSBudWxscHRyOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJ
UEM6OkNvbm5lY3Rpb24mKQotewotICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB1cyB0byBiZSBkZWxl
dGVkLgotICAgIHdlYkF1dGhuUHJvY2Vzc0NyYXNoZWQoKTsKLX0KLQotdm9pZCBXZWJBdXRoblBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29u
bmVjdGlvbiwgSVBDOjpNZXNzYWdlTmFtZSBtZXNzYWdlTmFtZSkKLXsKLSAgICBsb2dJbnZhbGlk
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlTmFtZSk7Ci0KLSAgICBXZWJQcm9jZXNzUG9vbDo6
ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKG1lc3NhZ2VOYW1lKTsKLQotICAgIC8vIFRlcm1pbmF0
ZSB0aGUgV2ViQXV0aG4gcHJvY2Vzcy4KLSAgICB0ZXJtaW5hdGUoKTsKLQotICAgIC8vIFNpbmNl
IHdlJ3ZlIGludmFsaWRhdGVkIHRoZSBjb25uZWN0aW9uIHdlJ2xsIG5ldmVyIGdldCBhIElQQzo6
Q29ubmVjdGlvbjo6Q2xpZW50OjpkaWRDbG9zZQotICAgIC8vIGNhbGxiYWNrIHNvIHdlJ2xsIGV4
cGxpY2l0bHkgY2FsbCBpdCBoZXJlIGluc3RlYWQuCi0gICAgZGlkQ2xvc2UoY29ubmVjdGlvbik7
Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9j
ZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIpCi17Ci0gICAgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hM
YXVuY2hpbmcobGF1bmNoZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKLQotICAgIGlmICghSVBD
OjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSWRlbnRpZmllcikpIHsK
LSAgICAgICAgd2ViQXV0aG5Qcm9jZXNzQ3Jhc2hlZCgpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAoeHBjX2Nvbm5lY3Rpb25fdCBj
b25uZWN0aW9uID0gdGhpcy0+Y29ubmVjdGlvbigpLT54cGNDb25uZWN0aW9uKCkpCi0gICAgICAg
IG1fdGhyb3R0bGVyLmRpZENvbm5lY3RUb1Byb2Nlc3MoeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZChj
b25uZWN0aW9uKSk7Ci0jZW5kaWYKLQotICAgIGJlZ2luUmVzcG9uc2l2ZW5lc3NDaGVja3MoKTsK
LX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3NQcm94eTo6dXBkYXRlUHJvY2Vzc0Fzc2VydGlvbigp
Ci17Ci0gICAgYm9vbCBoYXNBbnlGb3JlZ3JvdW5kV2ViUHJvY2Vzc2VzID0gZmFsc2U7Ci0gICAg
Ym9vbCBoYXNBbnlCYWNrZ3JvdW5kV2ViUHJvY2Vzc2VzID0gZmFsc2U7Ci0KLSAgICBmb3IgKGF1
dG8mIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKSB7Ci0g
ICAgICAgIGhhc0FueUZvcmVncm91bmRXZWJQcm9jZXNzZXMgfD0gcHJvY2Vzc1Bvb2wtPmhhc0Zv
cmVncm91bmRXZWJQcm9jZXNzZXMoKTsKLSAgICAgICAgaGFzQW55QmFja2dyb3VuZFdlYlByb2Nl
c3NlcyB8PSBwcm9jZXNzUG9vbC0+aGFzQmFja2dyb3VuZFdlYlByb2Nlc3NlcygpOwotICAgIH0K
LQotICAgIGlmIChoYXNBbnlGb3JlZ3JvdW5kV2ViUHJvY2Vzc2VzKSB7Ci0gICAgICAgIGlmICgh
UHJvY2Vzc1Rocm90dGxlcjo6aXNWYWxpZEZvcmVncm91bmRBY3Rpdml0eShtX2FjdGl2aXR5RnJv
bVdlYlByb2Nlc3NlcykpIHsKLSAgICAgICAgICAgIG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2Vz
ID0gdGhyb3R0bGVyKCkuZm9yZWdyb3VuZEFjdGl2aXR5KCJXZWJBdXRobiBmb3IgZm9yZWdyb3Vu
ZCB2aWV3KHMpIl9zKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlm
IChoYXNBbnlCYWNrZ3JvdW5kV2ViUHJvY2Vzc2VzKSB7Ci0gICAgICAgIGlmICghUHJvY2Vzc1Ro
cm90dGxlcjo6aXNWYWxpZEJhY2tncm91bmRBY3Rpdml0eShtX2FjdGl2aXR5RnJvbVdlYlByb2Nl
c3NlcykpIHsKLSAgICAgICAgICAgIG1fYWN0aXZpdHlGcm9tV2ViUHJvY2Vzc2VzID0gdGhyb3R0
bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5KCJXZWJBdXRobiBmb3IgYmFja2dyb3VuZCB2aWV3KHMp
Il9zKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fYWN0aXZpdHlG
cm9tV2ViUHJvY2Vzc2VzID0gbnVsbHB0cjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSN1bmRlZiBNRVNTQUdFX0NIRUNLCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0
aG5Qcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDExYmYwNDcxN2E2NTIwZmZhNGE2N2UzNzg2MGRjYWJiZjYyZTU2NTMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaAorKysgL2Rldi9udWxsCkBA
IC0xLDkwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShX
RUJfQVVUSE4pCi0KLSNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRl
ICJQcm9jZXNzTGF1bmNoZXIuaCIKLSNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCi0jaW5j
bHVkZSAiUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIK
LSNpbmNsdWRlIDxtZW1vcnk+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQcm9j
ZXNzUHJveHk7Ci1jbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwotc3RydWN0IFdlYkF1dGhuUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczsKLQotY2xhc3MgV2ViQXV0aG5Qcm9jZXNzUHJveHkgZmluYWwg
OiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJD
bGllbnQgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFdlYkF1dGhuUHJvY2Vzc1Byb3h5KTsKLSAgICBmcmllbmQgTGF6eU5ldmVyRGVzdHJv
eWVkPFdlYkF1dGhuUHJvY2Vzc1Byb3h5PjsKLXB1YmxpYzoKLSAgICBzdGF0aWMgV2ViQXV0aG5Q
cm9jZXNzUHJveHkmIHNpbmdsZXRvbigpOwotICAgIHN0YXRpYyBXZWJBdXRoblByb2Nlc3NQcm94
eSogc2luZ2xldG9uSWZDcmVhdGVkKCk7Ci0KLSAgICB2b2lkIGdldFdlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKLQotICAgIFByb2Nlc3NU
aHJvdHRsZXImIHRocm90dGxlcigpIGZpbmFsIHsgcmV0dXJuIG1fdGhyb3R0bGVyOyB9Ci0gICAg
dm9pZCB1cGRhdGVQcm9jZXNzQXNzZXJ0aW9uKCk7Ci0KLSAgICAvLyBQcm9jZXNzVGhyb3R0bGVy
Q2xpZW50Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFs
IHsgfQotICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IldlYkF1dGhuUHJvY2VzcyJfczsgfQotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkF1dGhu
UHJvY2Vzc1Byb3h5KCk7Ci0gICAgfldlYkF1dGhuUHJvY2Vzc1Byb3h5KCk7Ci0KLSAgICAvLyBB
dXhpbGlhcnlQcm9jZXNzUHJveHkKLSAgICBBU0NJSUxpdGVyYWwgcHJvY2Vzc05hbWUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAiV2ViQXV0aG4iX3M7IH0KLQotICAgIHZvaWQgZ2V0TGF1bmNoT3B0
aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2b2lk
IHByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7Ci0KLSAgICB2
b2lkIHdlYkF1dGhuUHJvY2Vzc0NyYXNoZWQoKTsKLQotICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJD
bGllbnQKLSAgICB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsIHsg
Y29tcGxldGlvbkhhbmRsZXIoKTsgfQotCi0gICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQK
LSAgICB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOwotCi0gICAgLy8gSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotICAg
IHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVz
c2FnZU5hbWUpIG92ZXJyaWRlOwotCi0gICAgUHJvY2Vzc1Rocm90dGxlciBtX3Rocm90dGxlcjsK
LSAgICBQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQgbV9hY3Rpdml0eUZyb21XZWJQ
cm9jZXNzZXM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggZGU1ZDIxZDUzYzY3ZGUwYzUwMDkwNmZhMzRjNDU4ZDRkYjJlNTY5Mi4uYmUzNjg5ZmE1
YTBlYWY2ZDQ1NWQyMjVmZjgzNDJiOTA4OGFkNmMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMTE2LDExICsxMTYsNiBAQAogI2luY2x1ZGUgIkdQ
VVByb2Nlc3NQcm94eS5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotI2luY2x1
ZGUgIldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Q
cm9jZXNzUHJveHkuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVjdG9yLmg+CiAjZW5kaWYKQEAgLTUy
MSwyMCArNTE2LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0R1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIEcKIH0KICNlbmRpZgogCi0jaWYg
RU5BQkxFKFdFQl9BVVRITikKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzUHJveHksIE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQotewotICAgIFdlYkF1dGhuUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b24oKS5nZXRX
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKHdlYlByb2Nlc3NQcm94eSwgW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYlByb2Nlc3NQcm94eSA9IFdlYWtQdHIgeyB3ZWJQcm9j
ZXNzUHJveHkgfSwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0gKGF1dG8mIGNvbm5lY3Rpb25JbmZv
KSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKFVOTElLRUxZKCFJUEM6OkNvbm5lY3Rpb246OmlkZW50
aWZpZXJJc1ZhbGlkKGNvbm5lY3Rpb25JbmZvLmlkZW50aWZpZXIoKSkgJiYgd2ViUHJvY2Vzc1By
b3h5ICYmIHdlYWtUaGlzKSkgewotICAgICAgICAgICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9M
T0dfRVJST1IoUHJvY2VzcywgImdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246IEZhaWxlZCBm
aXJzdCBhdHRlbXB0LCByZXRyeWluZyIpOwotICAgICAgICAgICAgV2ViQXV0aG5Qcm9jZXNzUHJv
eHk6OnNpbmdsZXRvbigpLmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKndlYlByb2Nlc3NQ
cm94eSwgV1RGTW92ZShyZXBseSkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIHJlcGx5KGNvbm5lY3Rpb25JbmZvKTsKLSAgICB9KTsKLX0KLSNlbmRpZgotCiBib29s
IFdlYlByb2Nlc3NQb29sOjpzX3VzZVNlcGFyYXRlU2VydmljZVdvcmtlclByb2Nlc3MgPSBmYWxz
ZTsKIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoUmVtb3RlV29ya2VyQ29udGV4dENv
bm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFJlbW90ZVdvcmtlclR5cGUgd29ya2VyVHlwZSwgUmVn
aXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllcj4gcmVxdWVzdGluZ1Byb2Nlc3NJZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFn
ZUlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKaW5kZXggNDA5YTc5YjUxYjcwNTBkMTA4YmUxMzEwZmUyZjBhMmMwZjc1NTdl
Ny4uYjgyNmE3Y2JmNmY0YTA4N2UzOWI3ODkyZmJjODAyYzViNDhhZDY5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zNjgsMTEgKzM2OCw2IEBAIHB1Ymxp
YzoKICAgICBHUFVQcm9jZXNzUHJveHkmIGVuc3VyZUdQVVByb2Nlc3MoKTsKICAgICBHUFVQcm9j
ZXNzUHJveHkqIGdwdVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2dwdVByb2Nlc3MuZ2V0KCk7
IH0KICNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICB2b2lkIGdldFdlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkRlbGF5ZWRSZXBseSYmKTsKLSNlbmRp
ZgotCiAgICAgLy8gTmV0d29yayBQcm9jZXNzIE1hbmFnZW1lbnQKICAgICB2b2lkIG5ldHdvcmtQ
cm9jZXNzRGlkVGVybWluYXRlKE5ldHdvcmtQcm9jZXNzUHJveHkmLCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpUZXJtaW5hdGlvblJlYXNvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IDQzODIxNTUzMTQ0ZDZmMzI2YjA5NGNhMjRjZDNmNTUxYzdl
MzEyMDUuLjdiOWIzOGQyMzdjN2RmZTU1MDc2MGNkOTY4MThmMjg4M2QwN2YxOGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtODQyLDE0ICs4NDIs
NiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z3B1UHJvY2Vzc0V4aXRlZChHUFVQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24gcmVhc29uKQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhO
KQotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCi17Ci0gICAgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9OKG1lc3Nh
Z2VTb3VyY2VJc1ZhbGlkV2ViQ29udGVudFByb2Nlc3MoKSwgcmVwbHkoeyB9KSk7Ci0gICAgbV9w
cm9jZXNzUG9vbC0+Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigqdGhpcywgV1RGTW92ZShy
ZXBseSkpOwotfQotI2VuZGlmCi0KICNpZiAhUExBVEZPUk0oTUFDKQogYm9vbCBXZWJQcm9jZXNz
UHJveHk6OnNob3VsZEFsbG93Tm9uVmFsaWRJbmplY3RlZENvZGUoKSBjb25zdAogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAwNTU1ZDNkNTc2MzQ1YmIy
NDk2MTA4NThkNjk0NjZlNDkxNTlmMWFjLi5iODUyZTBiNGM1ZTJmMDg3NDdiNzFkNmU1YTAzNjlh
ZDNiNDdkOTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApA
QCAtNDgxLDEwICs0ODEsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0R1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzJiYsIE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzUHJveHk6OkdldEdQVVByb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotICAgIHZvaWQgZ2V0V2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbihNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uRGVsYXllZFJlcGx5JiYpOwotI2VuZGlmCi0KICAgICBib29sIHNob3VsZEFsbG93Tm9u
VmFsaWRJbmplY3RlZENvZGUoKSBjb25zdDsKIAogICAgIHN0YXRpYyBjb25zdCBNZW1vcnlDb21w
YWN0TG9va3VwT25seVJvYmluSG9vZEhhc2hTZXQ8U3RyaW5nPiYgcGxhdGZvcm1QYXRoc1dpdGhB
c3N1bWVkUmVhZEFjY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDg4YTBmODI2NTQ2ZWEzNDMxOTM2NDg5ZmYy
MGVmZTNkYWI5ZmU5ODMuLjEzY2NlZGNjOTE5MDdjNWJkMzYzZmI0Y2JmZGMwZTc4MWJlMDhiOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4KQEAgLTM3LDEwICszNyw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgR2V0R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oc3RydWN0IFdlYktp
dDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChzdHJ1Y3Qg
V2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbkluZm8gY29ubmVjdGlvbkluZm8pIFN5bmNocm9u
b3VzCiAjZW5kaWYKIAotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0gICAgR2V0V2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbigpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uSW5mbyBjb25uZWN0aW9uSW5mbykgU3luY2hyb25vdXMKLSNlbmRpZgotCiAgICAgU2V0SXNI
b2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykKIAogICAgIERpZEV4
Y2VlZEFjdGl2ZU1lbW9yeUxpbWl0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0
aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5m
by1PU1gucGxpc3QgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0Nv
Y29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8tT1NYLnBsaXN0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkNWFhZTNjMzVmNzFhYzhmZTc3NzZjMTJkYzVkMzk4N2E0Yjdk
ZjQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJB
dXRoblNlcnZpY2UvSW5mby1PU1gucGxpc3QKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBA
Ci08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0
IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5j
b20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxk
aWN0PgotCTxrZXk+Q0ZCdW5kbGVHZXRJbmZvU3RyaW5nPC9rZXk+Ci0JPHN0cmluZz4ke0JVTkRM
RV9WRVJTSU9OfSwgQ29weXJpZ2h0IDIwMDMtMjAyMiBBcHBsZSBJbmMuPC9zdHJpbmc+Ci0JPGtl
eT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+Ci0JPHN0cmluZz5FbmdsaXNoPC9zdHJp
bmc+Ci0JPGtleT5DRkJ1bmRsZUV4ZWN1dGFibGU8L2tleT4KLQk8c3RyaW5nPiR7RVhFQ1VUQUJM
RV9OQU1FfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVJZGVudGlmaWVyPC9rZXk+Ci0JPHN0cmlu
Zz4ke1BST0RVQ1RfQlVORExFX0lERU5USUZJRVJ9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZUlu
Zm9EaWN0aW9uYXJ5VmVyc2lvbjwva2V5PgotCTxzdHJpbmc+Ni4wPC9zdHJpbmc+Ci0JPGtleT5D
RkJ1bmRsZU5hbWU8L2tleT4KLQk8c3RyaW5nPiR7UFJPRFVDVF9OQU1FfTwvc3RyaW5nPgotCTxr
ZXk+Q0ZCdW5kbGVQYWNrYWdlVHlwZTwva2V5PgotCTxzdHJpbmc+WFBDITwvc3RyaW5nPgotCTxr
ZXk+Q0ZCdW5kbGVTaG9ydFZlcnNpb25TdHJpbmc8L2tleT4KLQk8c3RyaW5nPiR7U0hPUlRfVkVS
U0lPTl9TVFJJTkd9PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVNpZ25hdHVyZTwva2V5PgotCTxz
dHJpbmc+Pz8/Pzwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVWZXJzaW9uPC9rZXk+Ci0JPHN0cmlu
Zz4ke0JVTkRMRV9WRVJTSU9OfTwvc3RyaW5nPgotCTxrZXk+TFNGaWxlUXVhcmFudGluZUVuYWJs
ZWQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5OU1ByaW5jaXBhbENsYXNzPC9rZXk+Ci0JPHN0cmlu
Zz5OU0FwcGxpY2F0aW9uPC9zdHJpbmc+Ci0JPGtleT5MU1VJRWxlbWVudDwva2V5PgotCTx0cnVl
Lz4KLQk8a2V5PlhQQ1NlcnZpY2U8L2tleT4KLQk8ZGljdD4KLQkJPGtleT5TZXJ2aWNlVHlwZTwv
a2V5PgotCQk8c3RyaW5nPkFwcGxpY2F0aW9uPC9zdHJpbmc+Ci0JCTxrZXk+Sm9pbkV4aXN0aW5n
U2Vzc2lvbjwva2V5PgotCQk8dHJ1ZS8+Ci0JCTxrZXk+UnVuTG9vcFR5cGU8L2tleT4KLQkJPHN0
cmluZz5OU1J1bkxvb3A8L3N0cmluZz4KLQkJPGtleT5fTXVsdGlwbGVJbnN0YW5jZXM8L2tleT4K
LQkJPHRydWUvPgotCTwvZGljdD4KLTwvZGljdD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2Vi
QXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0IGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nl
c3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLWlPUy5w
bGlzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY4NjVlYjIyOGY1ZjcyNWVmYTAw
OGZmYjk0MmE2ZDgxMzM0MTAzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29h
L1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0CisrKyAvZGV2L251bGwK
QEAgLTEsNDUgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
LTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0
dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQiPgotPHBsaXN0IHZl
cnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PkNGQnVuZGxlR2V0SW5mb1N0cmluZzwva2V5Pgot
CTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn0sIENvcHlyaWdodCAyMDAzLTIwMjIgQXBwbGUgSW5j
Ljwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVEZXZlbG9wbWVudFJlZ2lvbjwva2V5PgotCTxzdHJp
bmc+RW5nbGlzaDwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0
cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmll
cjwva2V5PgotCTxzdHJpbmc+JHtQUk9EVUNUX0JVTkRMRV9JREVOVElGSUVSfTwvc3RyaW5nPgot
CTxrZXk+Q0ZCdW5kbGVJbmZvRGljdGlvbmFyeVZlcnNpb248L2tleT4KLQk8c3RyaW5nPjYuMDwv
c3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVOYW1lPC9rZXk+Ci0JPHN0cmluZz4ke1BST0RVQ1RfTkFN
RX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4KLQk8c3RyaW5nPlhQ
QyE8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5nPC9rZXk+Ci0JPHN0
cmluZz4ke1NIT1JUX1ZFUlNJT05fU1RSSU5HfTwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVTaWdu
YXR1cmU8L2tleT4KLQk8c3RyaW5nPj8/Pz88L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlVmVyc2lv
bjwva2V5PgotCTxzdHJpbmc+JHtCVU5ETEVfVkVSU0lPTn08L3N0cmluZz4KLQk8a2V5PkxTRmls
ZVF1YXJhbnRpbmVFbmFibGVkPC9rZXk+Ci0JPHRydWUvPgotCTxrZXk+TlNQcmluY2lwYWxDbGFz
czwva2V5PgotCTxzdHJpbmc+TlNBcHBsaWNhdGlvbjwvc3RyaW5nPgotCTxrZXk+TFNVSUVsZW1l
bnQ8L2tleT4KLQk8dHJ1ZS8+Ci0JPGtleT5YUENTZXJ2aWNlPC9rZXk+Ci0JPGRpY3Q+Ci0JCTxr
ZXk+U2VydmljZVR5cGU8L2tleT4KLQkJPHN0cmluZz5BcHBsaWNhdGlvbjwvc3RyaW5nPgotCQk8
a2V5PlJ1bkxvb3BUeXBlPC9rZXk+Ci0JCTxzdHJpbmc+TlNSdW5Mb29wPC9zdHJpbmc+Ci0gICAg
ICAgICAgICAgICAgPGtleT5fUHJvY2Vzc1R5cGU8L2tleT4KLSAgICAgICAgICAgICAgICA8c3Ry
aW5nPkFwcDwvc3RyaW5nPgotCQk8a2V5Pl9NdWx0aXBsZUluc3RhbmNlczwva2V5PgotCQk8dHJ1
ZS8+Ci0JPC9kaWN0PgotCTxrZXk+Q2FuSW5oZXJpdEFwcGxpY2F0aW9uU3RhdGVGcm9tT3RoZXJQ
cm9jZXNzZXM8L2tleT4KLQk8dHJ1ZS8+Ci08L2RpY3Q+Ci08L3BsaXN0PgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNl
L1dlYkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJv
Y2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlRW50cnlQb2lu
dC5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTNhZDQ0OGFhODZmYzhiMThkOWRi
YmUzMmE1YjZjNWQ1OGQ5MTQxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29h
L1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlRW50cnlQb2ludC5tbQorKysgL2Rldi9udWxsCkBA
IC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLQotI2ltcG9y
dCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIldLQmFzZS5oIgotI2ltcG9ydCAi
V2ViQXV0aG5Qcm9jZXNzLmgiCi0jaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgotCi0j
aWYgRU5BQkxFKFdFQl9BVVRITikKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYkF1
dGhuU2VydmljZUluaXRpYWxpemVyRGVsZWdhdGUgOiBwdWJsaWMgWFBDU2VydmljZUluaXRpYWxp
emVyRGVsZWdhdGUgewotcHVibGljOgotICAgIFdlYkF1dGhuU2VydmljZUluaXRpYWxpemVyRGVs
ZWdhdGUoT1NPYmplY3RQdHI8eHBjX2Nvbm5lY3Rpb25fdD4gY29ubmVjdGlvbiwgeHBjX29iamVj
dF90IGluaXRpYWxpemVyTWVzc2FnZSkKLSAgICAgICAgOiBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJE
ZWxlZ2F0ZShXVEZNb3ZlKGNvbm5lY3Rpb24pLCBpbml0aWFsaXplck1lc3NhZ2UpCi0gICAgewot
ICAgIH0KLX07Ci0KLXRlbXBsYXRlPD4KLXZvaWQgaW5pdGlhbGl6ZUF1eGlsaWFyeVByb2Nlc3M8
V2ViQXV0aG5Qcm9jZXNzPihBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViQXV0aG5Qcm9j
ZXNzPiBXZWJBdXRoblByb2Nlc3MoV1RGTW92ZShwYXJhbWV0ZXJzKSk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKLQotZXh0ZXJuICJD
IiBXS19FWFBPUlQgdm9pZCBXRUJBVVRITl9TRVJWSUNFX0lOSVRJQUxJWkVSKHhwY19jb25uZWN0
aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRpYWxpemVyTWVzc2FnZSwgeHBjX29i
amVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKLQotdm9pZCBXRUJBVVRITl9TRVJWSUNFX0lO
SVRJQUxJWkVSKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVjdF90IGluaXRp
YWxpemVyTWVzc2FnZSwgeHBjX29iamVjdF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlKQotewotICAg
IFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0g
ICAgV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXI8V2ViS2l0OjpXZWJBdXRoblByb2Nlc3Ms
IFdlYktpdDo6V2ViQXV0aG5TZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZT4oY29ubmVjdGlvbiwg
aW5pdGlhbGl6ZXJNZXNzYWdlLCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7Ci0jZW5kaWYgLy8gRU5B
QkxFKFdFQl9BVVRITikKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9j
ZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTdjM2JhYzEyZjg3MTM3N2E3M2FlM2QxNTZiMDNlNzM4
ZmIwMjdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkF1dGhlbnRpY2F0
b3JNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiTG9jYWxTZXJ2aWNlLmgiCi0jaW5jbHVkZSAiV2ViQXV0
aG5Qcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRh
Lmg+Ci0KLSNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotI2luY2x1ZGUgIklQQ1Rlc3Rlck1l
c3NhZ2VzLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLQotUmVmPFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoV2ViQXV0aG5Qcm9jZXNzJiBXZWJBdXRoblBy
b2Nlc3MsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkF1
dGhuUHJvY2Vzcywgd2ViUHJvY2Vzc0lkZW50aWZpZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7
Ci19Ci0KLVdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6V2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzKFdlYkF1dGhuUHJvY2VzcyYgV2ViQXV0aG5Qcm9jZXNzLCBXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQotICAgIDogbV9jb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwg
KnRoaXMpKQotICAgICwgbV9XZWJBdXRoblByb2Nlc3MoV2ViQXV0aG5Qcm9jZXNzKQotICAgICwg
bV93ZWJQcm9jZXNzSWRlbnRpZmllcih3ZWJQcm9jZXNzSWRlbnRpZmllcikKLXsKLSAgICBSRUxF
QVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgbV9jb25uZWN0aW9uLT5vcGVuKCk7
Ci19Ci0KLVdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fldlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2VzcygpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwotCi0gICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQotewotfQot
Ci12b2lkIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlTmFtZSBtZXNz
YWdlTmFtZSkKLXsKLSAgICBXVEZMb2dBbHdheXMoIlJlY2VpdmVkIGFuIGludmFsaWQgbWVzc2Fn
ZSBcIiVzXCIgZnJvbSB0aGUgd2ViIHByb2Nlc3MuXG4iLCBkZXNjcmlwdGlvbihtZXNzYWdlTmFt
ZSkpOwotICAgIENSQVNIKCk7Ci19Ci0KLWJvb2wgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlY29kZXIpCi17Ci0jaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKLSAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OklQQ1Rlc3Rlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIG1faXBjVGVzdGVyLmRpZFJlY2VpdmVNZXNz
YWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0j
ZW5kaWYKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlF
bmNvZGVyKQotewotI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgaWYgKGRlY29kZXIu
bWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpJUENUZXN0ZXI6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgewotICAgICAgICBtX2lwY1Rlc3Rlci5kaWRSZWNlaXZlU3luY01lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlFbmNvZGVyKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotI2VuZGlmCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0KLXZvaWQgV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjptYWtlQ3JlZGVudGlhbChWZWN0b3I8dWludDhfdD4mJiBo
YXNoLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYgb3B0aW9ucywgYm9vbCBw
cm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIp
Ci17Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyks
IG51bGxwdHIsIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxs
cHRyLCBzdGQ6Om51bGxvcHQsIHsgfSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwg
bnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShoYW5kbGVyKSk7
Ci19Ci0KLXZvaWQgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRBc3NlcnRpb24o
VmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiYgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9u
SGFuZGxlciYmIGhhbmRsZXIpCi17Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCks
IFdURk1vdmUob3B0aW9ucyksIG51bGxwdHIsIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6
OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHsgfSwgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwg
V1RGTW92ZShoYW5kbGVyKSk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmJiBkYXRhLCBS
ZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQotewotICAgIGF1dG8gY2FsbGJhY2sg
PSBbaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcildIChzdGQ6OnZhcmlhbnQ8UmVmPEF1dGhlbnRp
Y2F0b3JSZXNwb25zZT4sIEV4Y2VwdGlvbkRhdGE+JiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAgICAgV1RGOjpzd2l0Y2hPbihyZXN1
bHQsIFsmXShjb25zdCBSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiYgcmVzcG9uc2UpIHsKLSAg
ICAgICAgICAgIGhhbmRsZXIocmVzcG9uc2UtPmRhdGEoKSwgcmVzcG9uc2UtPmF0dGFjaG1lbnQo
KSwgeyB9KTsKLSAgICAgICAgfSwgWyZdKGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikg
ewotICAgICAgICAgICAgaGFuZGxlcih7IH0sIHN0YXRpY19jYXN0PEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50PigwKSwgZXhjZXB0aW9uKTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLSAgICBtX1dlYkF1
dGhuUHJvY2Vzcy0+YXV0aGVudGljYXRvck1hbmFnZXIoKS5oYW5kbGVSZXF1ZXN0KFdURk1vdmUo
ZGF0YSksIFdURk1vdmUoY2FsbGJhY2spKTsKLX0KLQotdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJs
ZShRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKLXsKLSAgICBoYW5kbGVyKExvY2Fs
U2VydmljZTo6aXNBdmFpbGFibGUoKSk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKFdlYkNvcmU6
Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotewot
ICAgIG1fV2ViQXV0aG5Qcm9jZXNzLT5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzc1NzYzMzY2NmJiZmI2OGZjNDlkMDUz
ZDliY2JhZDdiM2Y3N2Q4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLSNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotI2lu
Y2x1ZGUgIklQQ1Rlc3Rlci5oIgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWVudW0g
Y2xhc3MgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ7Ci1zdHJ1Y3QgQXV0aGVudGljYXRvclJlc3Bv
bnNlRGF0YTsKLXN0cnVjdCBFeGNlcHRpb25EYXRhOwotc3RydWN0IE1vY2tXZWJBdXRoZW50aWNh
dGlvbkNvbmZpZ3VyYXRpb247Ci1zdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczsKLXN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJBdXRoblByb2Nlc3M7Ci1zdHJ1Y3QgV2ViQXV0
aGVudGljYXRpb25SZXF1ZXN0RGF0YTsKLQotY2xhc3MgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQ
cm9jZXNzCi0gICAgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M+Ci0gICAgLCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IGNyZWF0ZShXZWJBdXRoblBy
b2Nlc3MmLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKTsKLSAgICB2aXJ0dWFsIH5XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsK
LQotICAgIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlv
bi5nZXQoKTsgfQotICAgIFdlYkF1dGhuUHJvY2VzcyYgV2ViQXV0aG5Qcm9jZXNzUHJvY2Vzcygp
IHsgcmV0dXJuIG1fV2ViQXV0aG5Qcm9jZXNzLmdldCgpOyB9Ci0gICAgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3dlYlBy
b2Nlc3NJZGVudGlmaWVyOyB9Ci0KLXByaXZhdGU6Ci0gICAgdXNpbmcgUmVxdWVzdENvbXBsZXRp
b25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpBdXRoZW50
aWNhdG9yUmVzcG9uc2VEYXRhJiwgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQsIGNv
bnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKT47Ci0gICAgdXNpbmcgUXVlcnlDb21wbGV0aW9u
SGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+OwotCi0gICAgV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYkF1dGhuUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwotCi0gICAgLy8gSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIGZp
bmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6TWVzc2FnZU5hbWUpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Ci0gICAgYm9vbCBkaWRSZWNlaXZl
U3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgVW5pcXVlUmVmPElQ
Qzo6RW5jb2Rlcj4mKTsKLQotICAgIGJvb2wgZGlzcGF0Y2hNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpOwotICAgIGJvb2wgZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYpOwotCi0g
ICAgLy8gUmVjZWl2ZXJzLgotICAgIHZvaWQgbWFrZUNyZWRlbnRpYWwoVmVjdG9yPHVpbnQ4X3Q+
JiYgaGFzaCwgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmLCBi
b29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpOwot
ICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFdlYkNvcmU6OlB1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBib29sIHByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpOwotICAgIHZvaWQgaXNVc2VyVmVyaWZ5
aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIm
Jik7Ci0gICAgdm9pZCBzZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKFdlYkNv
cmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24mJik7Ci0KLSAgICB2b2lkIGhh
bmRsZVJlcXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmLCBSZXF1ZXN0Q29tcGxl
dGlvbkhhbmRsZXImJik7Ci0KLSAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
Ci0gICAgUmVmPFdlYkF1dGhuUHJvY2Vzcz4gbV9XZWJBdXRoblByb2Nlc3M7Ci0gICAgY29uc3Qg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLSNpZiBF
TkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIElQQ1Rlc3RlciBtX2lwY1Rlc3RlcjsKLSNlbmRp
ZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJBdXRo
blByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWQ4ZWI1ZjBiODU3ZThmM2RiMGU2MGU4NWMzZmE2
Y2YyNGI1ZWYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLSMgQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgotIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jaWYgRU5BQkxFKFdFQl9BVVRI
TikKLQotbWVzc2FnZXMgLT4gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlz
cGF0Y2hNZXNzYWdlIHsKLQotICAgIE1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiBoYXNo
LCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRp
b25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRo
ZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0
b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4
Y2VwdGlvbikKLSAgICBHZXRBc3NlcnRpb24oVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBX
ZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucywgYm9vbCBw
cm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJl
c3BvbnNlRGF0YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVu
dCBhdHRhY2htZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCi0g
ICAgSXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgLT4gKGJv
b2wgcmVzdWx0KQotCi0gICAgU2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihz
dHJ1Y3QgV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbiBjb25maWd1
cmF0aW9uKTsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTJlODQzYWNiOGZkZDdiMzM5NTViNTU0MjU0MzZhZTRjNWQxMzk4
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsMTQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3MuaCIKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0K
LSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5jbHVk
ZSAiV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSA8d3RmL3Rl
eHQvQXRvbVN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwotCi0KLVdlYkF1dGhuUHJvY2Vzczo6V2ViQXV0aG5Qcm9jZXNzKEF1eGlsaWFyeVBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQotICAgIDogbV9hdXRo
ZW50aWNhdG9yTWFuYWdlcihtYWtlVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JNYW5hZ2VyPigpKQot
ewotICAgIGluaXRpYWxpemUoV1RGTW92ZShwYXJhbWV0ZXJzKSk7Ci0gICAgbV9hdXRoZW50aWNh
dG9yTWFuYWdlci0+ZW5hYmxlTW9kZXJuV2ViQXV0aGVudGljYXRpb24oKTsKLX0KLQotV2ViQXV0
aG5Qcm9jZXNzOjp+V2ViQXV0aG5Qcm9jZXNzKCkKLXsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nl
c3M6OmNyZWF0ZVdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhQcm9jZXNzSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8SVBDOjpB
dHRhY2htZW50PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBhdXRvIGNvbm5lY3Rp
b25JZGVudGlmaWVycyA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ29ubmVjdGlvbklkZW50aWZp
ZXJQYWlyKCk7Ci0gICAgaWYgKCFjb25uZWN0aW9uSWRlbnRpZmllcnMpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8g
bmV3Q29ubmVjdGlvbiA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlKCp0
aGlzLCBpZGVudGlmaWVyLCBjb25uZWN0aW9uSWRlbnRpZmllcnMtPnNlcnZlcik7Ci0KLSAgICBB
U1NFUlQoIW1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAg
ICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShuZXdDb25u
ZWN0aW9uKSk7Ci0KLSAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbm5lY3Rpb25JZGVu
dGlmaWVycy0+Y2xpZW50KSk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpyZW1vdmVXZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBjb25uZWN0aW9uKQotewotICAgIEFTU0VSVChtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5jb250
YWlucyhjb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCkpKTsKLSAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9ucy5yZW1vdmUoY29ubmVjdGlvbi53ZWJQcm9jZXNzSWRlbnRpZmllcigpKTsK
LX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NDbG9zZWQo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQotewotfQotCi1ib29sIFdlYkF1dGhuUHJvY2Vz
czo6c2hvdWxkVGVybWluYXRlKCkKLXsKLSAgICByZXR1cm4gbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bnMuaXNFbXB0eSgpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpD
b25uZWN0aW9uJikKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotfQotCi12b2lk
IFdlYkF1dGhuUHJvY2Vzczo6bG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCBjcml0aWNhbCkKLXsK
LSAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgpOwotfQotCi12b2lkIFdlYkF1
dGhuUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYkF1dGhuUHJvY2VzcyhXZWJBdXRoblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQotewotICAgIGFwcGx5UHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyhwYXJhbWV0ZXJzLmF1eGlsaWFyeVByb2Nlc3NQYXJhbWV0ZXJzKTsKLSAgICBX
VEY6OlRocmVhZDo6c2V0Q3VycmVudFRocmVhZElzVXNlckluaXRpYXRlZCgpOwotICAgIEF0b21T
dHJpbmc6OmluaXQoKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9u
LCAiJXAgLSBXZWJBdXRoblByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9u
SW1taW5lbnQ9JWQiLCB0aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCk7Ci0KLSAgICBsb3dNZW1v
cnlIYW5kbGVyKENyaXRpY2FsOjpZZXMpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSgpCi17Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIl
cCAtIFdlYkF1dGhuUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7Ci0gICAgcmVz
dW1lKCk7Ci19Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzOjpyZXN1bWUoKQotewotfQotCi1XZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIFdlYkF1dGhuUHJvY2Vzczo6d2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QKLXsKLSAgICByZXR1
cm4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIpOwotfQotCi12b2lkIFdl
YkF1dGhuUHJvY2Vzczo6c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihXZWJD
b3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikK
LXsKLSAgICBpZiAoIW1fYXV0aGVudGljYXRvck1hbmFnZXItPmlzTW9jaygpKSB7Ci0gICAgICAg
IG1fYXV0aGVudGljYXRvck1hbmFnZXIgPSBtYWtlVW5pcXVlUmVmPE1vY2tBdXRoZW50aWNhdG9y
TWFuYWdlcj4oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7Ci0gICAgICAgIG1fYXV0aGVudGljYXRv
ck1hbmFnZXItPmVuYWJsZU1vZGVybldlYkF1dGhlbnRpY2F0aW9uKCk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgc3RhdGljX2Nhc3Q8TW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyKj4oJm1f
YXV0aGVudGljYXRvck1hbmFnZXIpLT5zZXRUZXN0Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pKTsKLX0KLQotI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgV2ViQXV0aG5Qcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJBdXRoblByb2Nlc3MoY29uc3QgV2ViQXV0aG5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKLXsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENGUFJF
RlNfRElSRUNUX01PREUpCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6bm90aWZ5UHJlZmVyZW5jZXND
aGFuZ2VkKGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+JiBlbmNvZGVkVmFsdWUpCi17Ci0gICAgcHJlZmVyZW5jZURpZFVw
ZGF0ZShkb21haW4sIGtleSwgZW5jb2RlZFZhbHVlKTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzZTdhMjQwN2YwZDQzNzJkMTFjNjcyNzJiZTRjMDY2M2YyODkxMzM2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5oCisrKyAvZGV2L251bGwKQEAgLTEs
OTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
V0VCX0FVVEhOKQotCi0jaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzcy5oIgotI2luY2x1ZGUgIldl
YkF1dGhuUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5j
bHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9VbmlxdWVS
ZWYuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1z
dHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKLX0KLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWNsYXNzIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOwotY2xhc3MgV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzOwotc3RydWN0IFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczsKLQotY2xhc3MgV2ViQXV0aG5Qcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nl
c3MsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJBdXRoblByb2Nlc3M+IHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShXZWJBdXRoblByb2Nlc3MpOwotcHVibGljOgotICAgIGV4cGxp
Y2l0IFdlYkF1dGhuUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzJiYpOwotICAgIH5XZWJBdXRoblByb2Nlc3MoKTsKLSAgICBzdGF0aWMgY29uc3RleHByIFdl
YkNvcmU6OkF1eGlsaWFyeVByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gV2ViQ29yZTo6QXV4aWxp
YXJ5UHJvY2Vzc1R5cGU6OldlYkF1dGhuOwotCi0gICAgdm9pZCByZW1vdmVXZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzJik7Ci0KLSAg
ICB2b2lkIHByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHByb2Nlc3NEaWRSZXN1bWUoKTsKLSAg
ICB2b2lkIHJlc3VtZSgpOwotCi0gICAgdm9pZCBjb25uZWN0aW9uVG9XZWJQcm9jZXNzQ2xvc2Vk
KElQQzo6Q29ubmVjdGlvbiYpOwotCi0gICAgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
KiB3ZWJQcm9jZXNzQ29ubmVjdGlvbihXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcikgY29uc3Q7
Ci0KLSAgICBBdXRoZW50aWNhdG9yTWFuYWdlciYgYXV0aGVudGljYXRvck1hbmFnZXIoKSB7IHJl
dHVybiBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKFdlYkNvcmU6Ok1vY2tXZWJBdXRoZW50aWNhdGlv
bkNvbmZpZ3VyYXRpb24mJik7Ci0KLSNpZiBFTkFCTEUoQ0ZQUkVGU19ESVJFQ1RfTU9ERSkKLSAg
ICB2b2lkIG5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiYgZW5jb2RlZFZhbHVl
KTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplV2ViQXV0
aG5Qcm9jZXNzKGNvbnN0IFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwotICAg
IHZvaWQgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbCk7Ci0KLSAgICAvLyBBdXhpbGlhcnlQcm9j
ZXNzCi0gICAgdm9pZCBpbml0aWFsaXplUHJvY2Vzcyhjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbml0aWFsaXplUHJv
Y2Vzc05hbWUoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYp
IG92ZXJyaWRlOwotICAgIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQXV4aWxpYXJ5UHJv
Y2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmKSBvdmVycmlkZTsKLSAgICBib29sIHNob3VsZFRlcm1pbmF0ZSgpIG92ZXJyaWRlOwot
Ci0gICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotICAgIHZvaWQg
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgb3ZlcnJpZGU7Ci0KLSAgICAvLyBNZXNzYWdlIEhh
bmRsZXJzCi0gICAgdm9pZCBpbml0aWFsaXplV2ViQXV0aG5Qcm9jZXNzKFdlYkF1dGhuUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYmKTsKLSAgICB2b2lkIGNyZWF0ZVdlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPElQQzo6QXR0YWNobWVudD4mJik+JiYpOwotCi0gICAgLy8g
Q29ubmVjdGlvbnMgdG8gV2ViUHJvY2Vzc2VzLgotICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIsIFJlZjxXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+PiBtX3dlYlBy
b2Nlc3NDb25uZWN0aW9uczsKLQotICAgIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yTWFuYWdlcj4g
bV9hdXRoZW50aWNhdG9yTWFuYWdlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0j
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
QXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjNkMTljNjcyYzJjZDhiOWFjMTNlNjI0M2Q1ZGYxZGQ3YmYxMjgw
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW4KKysrIC9k
ZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOS0yMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
IyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAot
IyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLW1lc3NhZ2VzIC0+IFdlYkF1
dGhuUHJvY2VzcyB7Ci0gICAgIyBJbml0aWFsaXplcyB0aGUgV2ViQXV0aG4gcHJvY2Vzcy4KLSAg
ICBJbml0aWFsaXplV2ViQXV0aG5Qcm9jZXNzKHN0cnVjdCBXZWJLaXQ6OldlYkF1dGhuUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQotCi0gICAgIyBD
cmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2Vzcwot
ICAgIENyZWF0ZVdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8SVBDOjpBdHRh
Y2htZW50PiBjb25uZWN0aW9uSWRlbnRpZmllcikKLQotI2lmIEVOQUJMRShDRlBSRUZTX0RJUkVD
VF9NT0RFKQotICAgIE5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChTdHJpbmcgZG9tYWluLCBTdHJp
bmcga2V5LCBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZW5jb2RlZFZhbHVlKQotI2VuZGlmCi19Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4YTM2ZjU0NzA4NWFlZWI1
Mzk2YTYwMmRjNzc2ZTE0NTFiM2MyMTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViQXV0aG5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5j
bHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzQ0YuaCIK
LSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKSA9IGRlZmF1bHQ7
Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgYXV4aWxpYXJ5UHJvY2Vz
c1BhcmFtZXRlcnM7Ci19Ci0KLWJvb2wgV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHJlc3VsdCkKLXsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5hdXhp
bGlhcnlQcm9jZXNzUGFyYW1ldGVycykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2Vi
QXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhu
UHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDVlMDY2ZDBhNWM3ZDIxZTI3MGM0NTlmN2IyNTY4NmI3MWZmMDlh
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLSNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0KLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgRGVjb2RlcjsK
LWNsYXNzIEVuY29kZXI7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdHJ1Y3QgV2ViQXV0
aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKLSAgICBXZWJBdXRoblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMoKTsKLSAgICBBdXhpbGlhcnlQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIGF1
eGlsaWFyeVByb2Nlc3NQYXJhbWV0ZXJzOwotCi0gICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVy
JikgY29uc3Q7Ci0gICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShJUEM6
OkRlY29kZXImLCBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL2lvcy9XZWJBdXRoblByb2Nlc3NJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9pb3MvV2ViQXV0aG5Qcm9jZXNz
SU9TLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWIzN2Q0ZWY4OGRkMjg0YTcy
NDllNDBiNjFmYjRhMThiOTg5MWMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL2lvcy9XZWJBdXRoblBy
b2Nlc3NJT1MubW0KKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIldlYkF1dGhuUHJvY2Vzcy5oIgotCi0j
aWYgRU5BQkxFKFdFQl9BVVRITikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLQotI2ltcG9ydCAi
RGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKLSNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50
ZWQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFN5c3RlbUludGVyZmFjZS5oPgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi12b2lkIFdl
YkF1dGhuUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0lu
aXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCi17Ci0gICAgSW5pdFdlYkNvcmVUaHJlYWRTeXN0ZW1J
bnRlcmZhY2UoKTsKLX0KLQotdm9pZCBXZWJBdXRoblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNz
TmFtZShjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6aW5pdGlh
bGl6ZVNhbmRib3goY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQotewotfQotCi12b2lkIFdlYkF1
dGhuUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViQXV0aG5Qcm9jZXNzKGNvbnN0IFdlYkF1
dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLXsKLSAgICBSRUxFQVNF
X0FTU0VSVChpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIoKnRoaXMpKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nl
c3MvbWFjL1dlYkF1dGhuUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9j
ZXNzL21hYy9XZWJBdXRoblByb2Nlc3NNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDVhZTg4MDg5NzNhNmFkNDZlM2FlYmRkYzM0OGMwOGUzZmY2YWIxZmYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRo
blByb2Nlc3MvbWFjL1dlYkF1dGhuUHJvY2Vzc01hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDcz
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAi
V2ViQXV0aG5Qcm9jZXNzLmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKSAmJiBQTEFURk9STShN
QUMpCi0KLSNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKLSNpbXBv
cnQgIldLRm91bmRhdGlvbi5oIgotI2ltcG9ydCAiV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCi0jaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KLSNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvbWFj
L0hJU2VydmljZXNTUEkuaD4KLSNpbXBvcnQgPHN5c2V4aXRzLmg+Ci0jaW1wb3J0IDx3dGYvTWVt
b3J5UHJlc3N1cmVIYW5kbGVyLmg+Ci0jaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2Eu
aD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6aW5pdGlh
bGl6ZVByb2Nlc3MoY29uc3QgQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVy
cyYpCi17Ci0gICAgc2V0QXBwbGljYXRpb25Jc0RhZW1vbigpOwotICAgIGxhdW5jaFNlcnZpY2Vz
Q2hlY2tJbigpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3NO
YW1lKGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCi17Ci0gICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OldFQl9VSV9OU1NUUklORyhAIiVAIFdlYiBBdXRoZW50aWNhdGlvbiIsICJ2
aXNpYmxlIG5hbWUgb2YgdGhlIFdlYkF1dGhuIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUg
YXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1l
XTsKLSAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lv
bklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5LCBi
cmlkZ2VfY2FzdChhcHBsaWNhdGlvbk5hbWUpLCBudWxscHRyKTsKLX0KLQotdm9pZCBXZWJBdXRo
blByb2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KGNvbnN0IEF1eGlsaWFyeVByb2Nlc3NJbml0aWFs
aXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFt
ZXRlcnMmIHNhbmRib3hQYXJhbWV0ZXJzKQotewotICAgIC8vIE5lZWQgdG8gb3ZlcnJpZGUgdGhl
IGRlZmF1bHQsIGJlY2F1c2Ugc2VydmljZSBoYXMgYSBkaWZmZXJlbnQgYnVuZGxlIElELgotICAg
IE5TQnVuZGxlICp3ZWJLaXQyQnVuZGxlID0gW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOk5TQ2xh
c3NGcm9tU3RyaW5nKEAiV0tXZWJWaWV3IildOwotCi0gICAgc2FuZGJveFBhcmFtZXRlcnMuc2V0
T3ZlcnJpZGVTYW5kYm94UHJvZmlsZVBhdGgoW3dlYktpdDJCdW5kbGUgcGF0aEZvclJlc291cmNl
OkAiY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3MiIG9mVHlwZTpAInNiIl0pOwotCi0g
ICAgQXV4aWxpYXJ5UHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3gocGFyYW1ldGVycywgc2FuZGJv
eFBhcmFtZXRlcnMpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViQXV0aG5Qcm9jZXNzKGNvbnN0IFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYpCi17Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL21hYy9j
b20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYi5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
QXV0aG5Qcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYi5pbgpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTk0YjdkMjk5ODlkNWI5Y2M5OGVlNTY4YjU5
ZGNiOWFkM2NjNzUzMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5X
ZWJBdXRoblByb2Nlc3Muc2IuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw0NzkgKzAsMCBAQAotOyBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi07
Ci07IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotOyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLTsgYXJlIG1ldDoKLTsgMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLTsgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotOyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi07ICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi07
Ci07IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLTsgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi07IFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLTsgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi07IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLTsgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLTsgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi07IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi07IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi07IEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLTsgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0odmVyc2lvbiAxKQotKGRl
bnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRpb24pKQotKGRlbnkgbnZyYW0qKQot
KGFsbG93IHN5c3RlbS1hdWRpdCBmaWxlLXJlYWQtbWV0YWRhdGEpCi0KLTs7IFNpbGVuY2Ugc3B1
cmlvdXMgbG9nZ2luZyBkdWUgdG8gcmRhcjovLzIwMTE3OTIzIGFuZCByZGFyOi8vNzIzNjY0NzUK
LShkZW55IHN5c3RlbS1wcml2aWxlZ2UgKHByaXZpbGVnZS1pZCBQUklWX0dMT0JBTF9QUk9DX0lO
Rk8pICh3aXRoIG5vLXJlcG9ydCkpCi0KLSNpbmNsdWRlICJTaGFyZWQvU2FuZGJveC9wcmVmZXJl
bmNlcy5zYiIKLQotI2lmIEVOQUJMRShTWVNURU1fQ09OVEVOVF9QQVRIX1NBTkRCT1hfUlVMRVMp
Ci0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1N5c3RlbUNvbnRlbnRTYW5kYm94LW1hY29zLmRl
ZnM+Ci0jZW5kaWYKLSAKLTs7OwotOzs7IFRoZSBmb2xsb3dpbmcgcnVsZXMgd2VyZSBvcmlnaW5h
bGx5IGNvbnRhaW5lZCBpbiAnc3lzdGVtLnNiJy4gV2UgYXJlIGR1cGxpY2F0aW5nIHRoZW0gaGVy
ZSBzbyB3ZSBjYW4KLTs7OyByZW1vdmUgdW5uZWVkZWQgc2FuZGJveCBleHRlbnNpb25zLgotOzs7
Ci0KLTs7OyBBbGxvdyByZWdpc3RyYXRpb24gb2YgcGVyLXBpZCBzZXJ2aWNlcy4KLShhbGxvdyBt
YWNoLXJlZ2lzdGVyIChsb2NhbC1uYW1lLXByZWZpeCAiIikpCi0KLTs7OyBBbGxvdyByZWFkIGFj
Y2VzcyB0byBzdGFuZGFyZCBzeXN0ZW0gcGF0aHMuCi0oYWxsb3cgZmlsZS1yZWFkKgotICAgIChy
ZXF1aXJlLWFsbCAoZmlsZS1tb2RlICNvMDAwNCkKLSAgICAocmVxdWlyZS1hbnkgKHN1YnBhdGgg
Ii9MaWJyYXJ5L0ZpbGVzeXN0ZW1zL05ldEZTUGx1Z2lucyIpCi0gICAgKHN1YnBhdGggIi9MaWJy
YXJ5L0FwcGxlL1N5c3RlbSIpCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL0xv
Z2dpbmciKSAgICAgIDsgTG9nZ2luZyBSZXRoaW5rCi0gICAgKHN1YnBhdGggIi9TeXN0ZW0iKQot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMTAwMDAKLSAgICAoc3VicGF0
aCAiL3ByaXZhdGUvdmFyL2RiL2R5bGQiKQotI2VuZGlmCi0gICAgKHN1YnBhdGggIi9wcml2YXRl
L3Zhci9kYi90aW1lem9uZSIpCi0gICAgKHN1YnBhdGggIi91c3IvbGliIikKLSAgICAoc3VicGF0
aCAiL3Vzci9zaGFyZSIpKSkpCi0KLTs7OyBBbGxvdyByZWFkaW5nIGludGVybmFsIHByb2ZpbGVz
IG9uIGRldmVsb3BtZW50IGJ1aWxkcwotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAocmVxdWlyZS1h
bGwgKGZpbGUtbW9kZSAjbzAwMDQpCi0gICAgKHN1YnBhdGggIi9BcHBsZUludGVybmFsL0xpYnJh
cnkvUHJlZmVyZW5jZXMvTG9nZ2luZyIpCi0gICAgKHN5c3RlbS1hdHRyaWJ1dGUgYXBwbGUtaW50
ZXJuYWwpKSkKLQotOzs7IEFsbG93IG1hcHBpbmcgb2Ygc3lzdGVtIGZyYW1ld29ya3MgKyBkeWxp
YnMKLShhbGxvdyBmaWxlLW1hcC1leGVjdXRhYmxlCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0Fw
cGxlL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MiKQotICAgIChzdWJwYXRoICIvTGlicmFyeS9B
cHBsZS9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3JrcyIpCi0gICAgKHN1YnBhdGggIi9T
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzIikKLSAgICAoc3VicGF0aCAiL1N5c3RlbS9MaWJyYXJ5
L1ByaXZhdGVGcmFtZXdvcmtzIikKLSAgICAoc3VicGF0aCAiL3Vzci9saWIiKQotICAgIChzdWJw
YXRoICIvdXNyL2FwcGxlaW50ZXJuYWwvbGliIikgOzsgPHJkYXI6Ly9wcm9ibGVtLzcyMzE3MTEy
PgotKQotCi0oYWxsb3cgZmlsZS1yZWFkLW1ldGFkYXRhCi0gICAgKGxpdGVyYWwgIi9ldGMiKQot
ICAgIChsaXRlcmFsICIvdG1wIikKLSAgICAobGl0ZXJhbCAiL3ZhciIpCi0gICAgKGxpdGVyYWwg
Ii9wcml2YXRlL2V0Yy9sb2NhbHRpbWUiKSkKLQotCi07OzsgQWxsb3cgYWNjZXNzIHRvIHN0YW5k
YXJkIHNwZWNpYWwgZmlsZXMuCi0oYWxsb3cgZmlsZS1yZWFkKgotICAgIChsaXRlcmFsICIvZGV2
L2F1dG9mc19ub3dhaXQiKQotICAgIChsaXRlcmFsICIvZGV2L3JhbmRvbSIpCi0gICAgKGxpdGVy
YWwgIi9kZXYvdXJhbmRvbSIpCi0gICAgKGxpdGVyYWwgIi9wcml2YXRlL2V0Yy9tYXN0ZXIucGFz
c3dkIikKLSAgICAobGl0ZXJhbCAiL3ByaXZhdGUvZXRjL3Bhc3N3ZCIpKQotCi0oYWxsb3cgZmls
ZS1yZWFkKgotICAgICAgIGZpbGUtd3JpdGUtZGF0YQotICAgIChsaXRlcmFsICIvZGV2L251bGwi
KQotICAgIChsaXRlcmFsICIvZGV2L3plcm8iKSkKLQotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAg
ICBmaWxlLXdyaXRlLWRhdGEKLSAgICAgICBmaWxlLWlvY3RsCi0gICAgKGxpdGVyYWwgIi9kZXYv
ZHRyYWNlaGVscGVyIikpCi0KLTs7OyBBbGxvdyBjcmVhdGlvbiBvZiBjb3JlIGR1bXBzLgotKGFs
bG93IGZpbGUtd3JpdGUtY3JlYXRlCi0gICAgKHJlcXVpcmUtYWxsIChwcmVmaXggIi9jb3Jlcy8i
KQotICAgICAgICAodm5vZGUtdHlwZSBSRUdVTEFSLUZJTEUpKSkKLQotOzs7IEFsbG93IElQQyB0
byBzdGFuZGFyZCBzeXN0ZW0gYWdlbnRzLgotKGFsbG93IGlwYy1wb3NpeC1zaG0tcmVhZCoKLSAg
ICAoaXBjLXBvc2l4LW5hbWUgImFwcGxlLnNobS5ub3RpZmljYXRpb25fY2VudGVyIikKLSNpZiAh
RU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgKGlwYy1wb3NpeC1uYW1lLXByZWZpeCAi
YXBwbGUuY2ZwcmVmcy4iKQotI2VuZGlmCi0pCi0KLTs7OwotOzs7IEVuZCBydWxlcyBvcmlnaW5h
bGx5IGNvcGllZCBmcm9tICdzeXN0ZW0uc2InCi07OzsKLQotOzs7IHByb2Nlc3MtaW5mbyogZGVm
YXVsdHMgdG8gYWxsb3c7IGRlbnkgaXQgYW5kIHRoZW4gYWxsb3cgb3BlcmF0aW9ucyB3ZSBhY3R1
YWxseSBuZWVkLgotKGRlbnkgcHJvY2Vzcy1pbmZvKikKLShhbGxvdyBwcm9jZXNzLWluZm8tZGly
dHljb250cm9sICh0YXJnZXQgc2VsZikpCi0oYWxsb3cgcHJvY2Vzcy1pbmZvLXBpZGluZm8pCi0o
YWxsb3cgcHJvY2Vzcy1pbmZvLXNldGNvbnRyb2wgKHRhcmdldCBzZWxmKSkKLShhbGxvdyBwcm9j
ZXNzLWNvZGVzaWduaW5nLXN0YXR1cyopCi0KLShkZW55IHN5c2N0bCopCi0oYWxsb3cgc3lzY3Rs
LXJlYWQKLSAgICAoc3lzY3RsLW5hbWUKLSAgICAgICAgImh3LmFjdGl2ZWNwdSIgOzsgPHJkYXI6
Ly9wcm9ibGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcuYXZhaWxjcHUiCi0gICAgICAgICJody5i
eXRlb3JkZXIiCi0gICAgICAgICJody5idXNmcmVxdWVuY3kiCi0gICAgICAgICJody5idXNmcmVx
dWVuY3lfbWF4IgotICAgICAgICAiaHcuY2FjaGVjb25maWciIDs7IDxyZGFyOi8vcHJvYmxlbS83
ODIxMzU2Mz4KLSAgICAgICAgImh3LmNhY2hlbGluZXNpemUiIDs7IDxyZGFyOi8vcHJvYmxlbS81
Njc5NTU3NT4KLSAgICAgICAgImh3LmNhY2hlc2l6ZSIgOzsgPHJkYXI6Ly9wcm9ibGVtLzc4MjEz
NTYzPgotICAgICAgICAiaHcuY3B1ZnJlcXVlbmN5IgotICAgICAgICAiaHcuY3B1ZnJlcXVlbmN5
X21heCIKLSAgICAgICAgImh3LmNwdXN1YmZhbWlseSIKLSAgICAgICAgImh3LmNwdXRocmVhZHR5
cGUiCi0gICAgICAgICJody5jcHV0eXBlIgotICAgICAgICAiaHcubDFkY2FjaGVzaXplIiA7OyA8
cmRhcjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0gICAgICAgICJody5sMWljYWNoZXNpemUiIDs7IDxy
ZGFyOi8vcHJvYmxlbS81Njc5NTU3NT4KLSAgICAgICAgImh3LmwyY2FjaGVzaXplIiA7OyA8cmRh
cjovL3Byb2JsZW0vNTY3OTU1NzU+Ci0gICAgICAgICJody5sM2NhY2hlc2l6ZSIgOzsgPHJkYXI6
Ly9wcm9ibGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcubG9naWNhbGNwdSIgOzsgPHJkYXI6Ly9w
cm9ibGVtLzU2Nzk1NTc1PgotICAgICAgICAiaHcubG9naWNhbGNwdV9tYXgiIDs7IDxyZGFyOi8v
cHJvYmxlbS81Njc5NTU3NT4KLSAgICAgICAgImh3Lm1hY2hpbmUiCi0gICAgICAgICJody5tZW1z
aXplIgotICAgICAgICAiaHcubW9kZWwiCi0gICAgICAgICJody5uY3B1IgotICAgICAgICAiaHcu
bnBlcmZsZXZlbHMiIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MzU5Nj4KLSAgICAgICAgImh3LnBh
Z2VzaXplIiA7OyA8cmRhcjovL3Byb2JsZW0vNzY3ODM1OTY+Ci0gICAgICAgICJody5wYWdlc2l6
ZV9jb21wYXQiIDs7IDxyZGFyOi8vcHJvYmxlbS83Njc4MzU5Nj4KLSAgICAgICAgImh3LnBoeXNp
Y2FsY3B1IiA7OyA8cmRhcjovL3Byb2JsZW0vNTg0MTY0NzU+Ci0gICAgICAgICJody5waHlzaWNh
bGNwdV9tYXgiIDs7IDxyZGFyOi8vcHJvYmxlbS81ODQxNjQ3NT4KLSAgICAgICAgImh3LnRiZnJl
cXVlbmN5IgotICAgICAgICAiaHcudGJmcmVxdWVuY3lfY29tcGF0IgotICAgICAgICAiaHcudmVj
dG9ydW5pdCIKLSAgICAgICAgImtlcm4uYm9vdGFyZ3MiIDs7IDxyZGFyOi8vcHJvYmxlbS80Nzcz
ODAxNT4KLSAgICAgICAgImtlcm4uaG9zdG5hbWUiCi0gICAgICAgICJrZXJuLmh2X3ZtbV9wcmVz
ZW50IgotICAgICAgICAia2Vybi5tYXhmaWxlc3BlcnByb2MiCi0gICAgICAgICJrZXJuLm1lbW9y
eXN0YXR1c19sZXZlbCIKLSAgICAgICAgImtlcm4ub3Nwcm9kdWN0dmVyc2lvbiIgOzsgPHJkYXI6
Ly9wcm9ibGVtLzUxNzU2NzM5PgotICAgICAgICAia2Vybi5vc3JlbGVhc2UiCi0gICAgICAgICJr
ZXJuLm9zdHlwZSIKLSAgICAgICAgImtlcm4ub3N2YXJpYW50X3N0YXR1cyIKLSAgICAgICAgImtl
cm4ub3N2ZXJzaW9uIgotICAgICAgICAia2Vybi5zYWZlYm9vdCIKLSAgICAgICAgImtlcm4udmVy
c2lvbiIKLSAgICAgICAgIm1hY2hkZXAuY3B1LmJyYW5kX3N0cmluZyIKLSAgICAgICAgInNlY3Vy
aXR5Lm1hYy5zYW5kYm94LnNlbnRpbmVsIgotICAgICAgICAia2Vybi50Y3NtX2VuYWJsZSIKLSAg
ICAgICAgImtlcm4udGNzbV9hdmFpbGFibGUiCi0gICAgICAgICJ2bS5mb290cHJpbnRfc3VzcGVu
ZCIpCi0gICAgKHN5c2N0bC1uYW1lLXByZWZpeCAibmV0LnJvdXRldGFibGUiKQotICAgIChzeXNj
dGwtbmFtZS1wcmVmaXggImh3Lm9wdGlvbmFsLiIpIDs7IDxyZGFyOi8vcHJvYmxlbS83MTQ2Mjc5
MD4KLSAgICAoc3lzY3RsLW5hbWUtcHJlZml4ICJody5wZXJmbGV2ZWwiKSA7OyA8cmRhcjovL3By
b2JsZW0vNzY3ODM1OTY+Ci0pCi0KLShhbGxvdyBzeXNjdGwtd3JpdGUKLSAgICAoc3lzY3RsLW5h
bWUKLSAgICAgICAgImtlcm4udGNzbV9lbmFibGUiKSkKLQotKGRlbnkgbWFjaC1sb29rdXAgKHhw
Yy1zZXJ2aWNlLW5hbWUtcHJlZml4ICIiKSkKLShhbGxvdyBtYWNoLWxvb2t1cAotICAgICh4cGMt
c2VydmljZS1uYW1lICJjb20uYXBwbGUuUGVyZm9ybWFuY2VBbmFseXNpcy5hbmltYXRpb25wZXJm
ZCIpCi0gICAgKHhwYy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5hY2Nlc3NpYmlsaXR5Lm1lZGlh
YWNjZXNzaWJpbGl0eWQiKQotICAgICh4cGMtc2VydmljZS1uYW1lICJjb20uYXBwbGUuYXVkaW8u
U2FuZGJveEhlbHBlciIpCi0gICAgKHhwYy1zZXJ2aWNlLW5hbWUgImNvbS5hcHBsZS5jb3JlbWVk
aWEudmlkZW9kZWNvZGVyIikKLSAgICAoeHBjLXNlcnZpY2UtbmFtZSAiY29tLmFwcGxlLmNvcmVt
ZWRpYS52aWRlb2VuY29kZXIiKQotICAgICh4cGMtc2VydmljZS1uYW1lICJjb20uYXBwbGUuaGlz
ZXJ2aWNlcy14cGNzZXJ2aWNlIikKLSkKLQotOzsgVXRpbGl0eSBmdW5jdGlvbnMgZm9yIGhvbWUg
ZGlyZWN0b3J5IHJlbGF0aXZlIHBhdGggZmlsdGVycwotKGRlZmluZSAoaG9tZS1yZWdleCBob21l
LXJlbGF0aXZlLXJlZ2V4KQotICAocmVnZXggKHN0cmluZy1hcHBlbmQgIl4iIChyZWdleC1xdW90
ZSAocGFyYW0gIkhPTUVfRElSIikpIGhvbWUtcmVsYXRpdmUtcmVnZXgpKSkKLQotKGRlZmluZSAo
aG9tZS1zdWJwYXRoIGhvbWUtcmVsYXRpdmUtc3VicGF0aCkKLSAgKHN1YnBhdGggKHN0cmluZy1h
cHBlbmQgKHBhcmFtICJIT01FX0RJUiIpIGhvbWUtcmVsYXRpdmUtc3VicGF0aCkpKQotCi0oZGVm
aW5lIChob21lLWxpdGVyYWwgaG9tZS1yZWxhdGl2ZS1saXRlcmFsKQotICAobGl0ZXJhbCAoc3Ry
aW5nLWFwcGVuZCAocGFyYW0gIkhPTUVfRElSIikgaG9tZS1yZWxhdGl2ZS1saXRlcmFsKSkpCi0K
LShkZWZpbmUgKGFsbG93LXJlYWQtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLWV4dGVuc2lvbnMg
cGF0aCkKLSAgICAoaWYgcGF0aAotICAgICAgICAoYmVnaW4KLSAgICAgICAgICAgIChhbGxvdyBm
aWxlLXJlYWQqIChzdWJwYXRoIHBhdGgpKQotICAgICAgICAgICAgKGFsbG93IGZpbGUtaXNzdWUt
ZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBwLXNh
bmRib3gucmVhZCIpIChzdWJwYXRoIHBhdGgpKSkpKSkKLQotKGRlZmluZSAoYWxsb3ctcmVhZC13
cml0ZS1kaXJlY3RvcnktYW5kLWlzc3VlLXJlYWQtd3JpdGUtZXh0ZW5zaW9ucyBwYXRoKQotICAg
IChpZiBwYXRoCi0gICAgICAgIChiZWdpbgotICAgICAgICAgICAgKGFsbG93IGZpbGUtcmVhZCog
ZmlsZS13cml0ZSogKHN1YnBhdGggcGF0aCkpCi0gICAgICAgICAgICAoYWxsb3cgZmlsZS1pc3N1
ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAt
c2FuZGJveC5yZWFkIikgKHN1YnBhdGggcGF0aCkpKQotICAgICAgICAgICAgKGFsbG93IGZpbGUt
aXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUu
YXBwLXNhbmRib3gucmVhZC13cml0ZSIpIChzdWJwYXRoIHBhdGgpKSkpKSkKLQotOzsgUmVtb3Zl
IHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzI5NjQ2MDk0PiBpcyBmaXhlZC4KLShkZWZpbmUgKEhFWC1w
YXR0ZXJuLW1hdGNoLWdlbmVyYXRvciBwYXR0ZXJuLWRlc2NyaXB0b3IpCi0gICAgKGxldHJlYyAo
KHBhdHRlcm4tc3RyaW5nICIiKSkKLSAgICAgICAgKGZvci1lYWNoICAobGFtYmRhIChyZXBlYXQt
Y291bnQpCi0gICAgICAgICAgICAoaWYgKHplcm8/IHJlcGVhdC1jb3VudCkKLSAgICAgICAgICAg
ICAgICAoc2V0ISBwYXR0ZXJuLXN0cmluZyAoc3RyaW5nLWFwcGVuZCAgcGF0dGVybi1zdHJpbmcg
Ii0iKSkKLSAgICAgICAgICAgICAgICAobGV0IGFwcGVuZGVyICgoY291bnQgcmVwZWF0LWNvdW50
KSkKLSAgICAgICAgICAgICAgICAgICAgKGlmICg+IGNvdW50IDApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAoYmVnaW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ISBwYXR0ZXJu
LXN0cmluZyAoc3RyaW5nLWFwcGVuZCAgcGF0dGVybi1zdHJpbmcgIlswLTlBLUZdIikpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZGVyICgtIGNvdW50IDEpKSkpKSkpCi0gICAg
ICAgICAgICBwYXR0ZXJuLWRlc2NyaXB0b3IpCi0gICAgcGF0dGVybi1zdHJpbmcpKQotCi07OyBy
ZXR1cm4gYSByZWdleCBwYXR0ZXJuIG1hdGNoaW5nIHN0cmluZyBmb3IgOC00LTQtNC0xMiBVVUlE
czoKLShkZWZpbmUgKHV1aWQtSEVYLXBhdHRlcm4tbWF0Y2gtc3RyaW5nKQotICAgIChIRVgtcGF0
dGVybi1tYXRjaC1nZW5lcmF0b3IgJyg4IDAgNCAwIDQgMCA0IDAgMTIpKSkKLQotOzsgZ2xvYmFs
IHRvIGhvbGQgdGhlIGNvbXB1dGVkIFVVSUQgbWF0Y2hpbmcgcGF0dGVybi4KLShkZWZpbmUgKnV1
aWQtcGF0dGVybiogIiIpCi0KLShkZWZpbmUgKHV1aWQtcmVnZXgtc3RyaW5nKQotICAgIChpZiAo
emVybz8gKHN0cmluZy1sZW5ndGggKnV1aWQtcGF0dGVybiopKQotICAgICAgICAoc2V0ISAqdXVp
ZC1wYXR0ZXJuKiAodXVpZC1IRVgtcGF0dGVybi1tYXRjaC1zdHJpbmcpKSkKLSAgICAqdXVpZC1w
YXR0ZXJuKikKLQotOzsgUmVhZC1vbmx5IHByZWZlcmVuY2VzIGFuZCBkYXRhCi0oYWxsb3cgZmls
ZS1yZWFkKgotICAgIDs7IEJhc2ljIHN5c3RlbSBwYXRocwotICAgIChzdWJwYXRoICIvTGlicmFy
eS9EaWN0aW9uYXJpZXMiKQotICAgIChzdWJwYXRoICIvTGlicmFyeS9Gb250cyIpCi0gICAgKHN1
YnBhdGggIi9MaWJyYXJ5L0ZyYW1ld29ya3MiKQotICAgIChzdWJwYXRoICIvTGlicmFyeS9NYW5h
Z2VkIFByZWZlcmVuY2VzIikKLSAgICAoc3VicGF0aCAiL0xpYnJhcnkvU3BlZWNoL1N5bnRoZXNp
emVycyIpCi0gICAgKHJlZ2V4ICMiXi9wcml2YXRlL2V0Yy8oaG9zdHN8Z3JvdXB8cGFzc3dkKSQi
KQotCi0gICAgOzsgU3lzdGVtIGFuZCB1c2VyIHByZWZlcmVuY2VzCi0gICAgKGhvbWUtbGl0ZXJh
bCAiLy5DRlVzZXJUZXh0RW5jb2RpbmciKQotCi0gICAgOzsgRklYTUU6IFRoaXMgc2hvdWxkIGJl
IHJlbW92ZWQgd2hlbiA8cmRhcjovL3Byb2JsZW0vODk1Nzg0NT4gaXMgZml4ZWQuCi0gICAgKGhv
bWUtc3VicGF0aCAiL0xpYnJhcnkvRm9udHMiKQotCi0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0F1
ZGlvL1BsdWctSW5zL0hBTCIpCi0KLSAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9EaWN0aW9u
YXJpZXMiKSkKLQotKGFsbG93IGZpbGUtcmVhZC1kYXRhCi0gICAgKGxpdGVyYWwgIi91c3IvbG9j
YWwvbGliL2xvZyIpIDsgPHJkYXI6Ly9wcm9ibGVtLzM2NjI5NDk1PgotICAgIDs7IE5lZWRlZCBm
b3IgQUVTMyBzdXBwb3J0Ci0gICAgKHN1YnBhdGggIi9MaWJyYXJ5L0F1ZGlvL1BsdWctSW5zL0Nv
bXBvbmVudHMiKSkKLQotOzsgUHJlZmVyZW5jZXMgc3VwcG9ydAotKHNoYXJlZC1wcmVmZXJlbmNl
cy1yZWFkCi0gICAgImNvbS5hcHBsZS5BY2Nlc3NpYmlsaXR5IgotICAgICJjb20uYXBwbGUuQVRT
IgotICAgICJjb20uYXBwbGUuQ29yZUdyYXBoaWNzIgotICAgICJjb20uYXBwbGUuRG93bmxvYWRB
c3Nlc3NtZW50IgotICAgICJjb20uYXBwbGUuSElUb29sYm94IgotICAgICJjb20uYXBwbGUuTGF1
bmNoU2VydmljZXMiCi0gICAgImNvbS5hcHBsZS5NdWx0aXRvdWNoU3VwcG9ydCIgOzsgRklYTUU6
IFJlbW92ZSB3aGVuIDxyZGFyOi8vcHJvYmxlbS8xMzAxMTYzMz4gaXMgZml4ZWQuCi0gICAgImNv
bS5hcHBsZS5TZXJ2aWNlc01lbnUuU2VydmljZXMiIDs7IE5lZWRlZCBmb3IgTlNBdHRyaWJ1dGVk
U3RyaW5nIDxyZGFyOi8vcHJvYmxlbS8xMDg0NDMyMT4KLSAgICAiY29tLmFwcGxlLlZpZXdCcmlk
Z2UiIDs7IE5lZWRlZCBmb3IgSW5wdXQgZWxlbWVudHMuCi0gICAgImNvbS5hcHBsZS5XZWJGb3Vu
ZGF0aW9uIgotICAgICJjb20uYXBwbGUuYXZmb3VuZGF0aW9uIgotICAgICJjb20uYXBwbGUuYXZm
b3VuZGF0aW9uLmZyZWNlbnRzIiA7OyA8cmRhcjovL3Byb2JsZW0vMzMxMzcwMjk+Ci0gICAgImNv
bS5hcHBsZS5hdmZvdW5kYXRpb24udmlkZW9wZXJmb3JtYW5jZWh1ZCIgOzsgPHJkYXI6Ly9wcm9i
bGVtLzMxNTk0NTY4PgotICAgICJjb20uYXBwbGUuY29yZW1lZGlhIgotICAgICJjb20uYXBwbGUu
Y3J5cHRvIgotICAgICJjb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5t
b3VzZSIKLSAgICAiY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJh
Y2twYWQiCi0gICAgImNvbS5hcHBsZS5kcml2ZXIuQXBwbGVISURNb3VzZSIKLSAgICAiY29tLmFw
cGxlLmxvb2t1cC5zaGFyZWQiCi0gICAgImNvbS5hcHBsZS5tZWRpYWFjY2Vzc2liaWxpdHkiIDs7
IE5lZWRlZCBmb3IgY3VzdG9tIGNhcHRpb24gc3R5bGVzCi0gICAgImNvbS5hcHBsZS5uZXR3b3Jr
Q29ubmVjdCIKLSAgICAiY29tLmFwcGxlLnNwZWVjaC52b2ljZS5wcmVmcyIKLSAgICAiY29tLmFw
cGxlLnN5c3RlbXNvdW5kIgotICAgICJjb20uYXBwbGUudW5pdmVyc2FsYWNjZXNzIgotICAgICJl
ZHUubWl0LktlcmJlcm9zIgotICAgICJwYnMiKSA7OyBOZWVkZWQgZm9yIE5TQXR0cmlidXRlZFN0
cmluZyA8cmRhcjovL3Byb2JsZW0vMTA4NDQzMjE+Ci0KLShhbGxvdy1yZWFkaW5nLWdsb2JhbC1w
cmVmZXJlbmNlcykKLQotOyAoVGVtcG9yYXJ5KSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGgg
bm9uLUNGUHJlZmVyZW5jZXMgcmVhZGVycy4KLShhbGxvdyBmaWxlLXJlYWQqCi0gICAgKGxpdGVy
YWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5WaWV3QnJpZGdlLnBsaXN0IikpCi0K
LTsgRklYTUU6IFRoaXMgaXMgbmVlZGVkIGZvciBzb21lIHNlY3VyaXR5IGZyYW1ld29yayBjYWxs
cyAodGhhdCB1c2Ugbm9uLUNGUHJlZmVyZW5jZXMgcmVhZGVycykKLShhbGxvdyBmaWxlLXJlYWQt
ZGF0YQotICAgIChsaXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuc2VjdXJp
dHkucGxpc3QiKQotICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5h
cHBsZS5zZWN1cml0eS5wbGlzdCIpKQotCi07OyBPbi1kaXNrIFdlYktpdDIgZnJhbWV3b3JrIGxv
Y2F0aW9uLCB0byBhY2NvdW50IGZvciBkZWJ1ZyBpbnN0YWxsYXRpb25zIG91dHNpZGUgb2YgL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MsCi07OyBhbmQgdG8gYWxsb3cgaXNzdWluZyBleHRlbnNp
b25zLgotKGFsbG93LXJlYWQtZGlyZWN0b3J5LWFuZC1pc3N1ZS1yZWFkLWV4dGVuc2lvbnMgKHBh
cmFtICJXRUJLSVQyX0ZSQU1FV09SS19ESVIiKSkKLQotOzsgQWxsb3cgaXNzdWluZyBleHRlbnNp
b25zIHRvIHN5c3RlbSBsaWJyYXJpZXMgdGhhdCB0aGUgTmV0d29yayBwcm9jZXNzIGNhbiBhbHJl
YWR5IHJlYWQuCi07OyBUaGlzIGlzIHRvIGF2b2lkIHdhcm5pbmdzIGF0dGVtcHRpbmcgdG8gY3Jl
YXRlIGV4dGVuc2lvbnMgZm9yIHRoZXNlIHJlc291cmNlcy4KLShhbGxvdy1yZWFkLWRpcmVjdG9y
eS1hbmQtaXNzdWUtcmVhZC1leHRlbnNpb25zICIvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1l
d29ya3MvV2ViSW5zcGVjdG9yVUkuZnJhbWV3b3JrIikKLQotI2lmIFVTRShTWVNURU1fQ09OVEVO
VF9QQVRIKQotKG1hcCBhbGxvdy1yZWFkLWRpcmVjdG9yeS1hbmQtaXNzdWUtcmVhZC1leHRlbnNp
b25zCi0gICAgcmVhZC1kaXJlY3RvcnktYW5kLWlzc3VlLXJlYWQtZXh0ZW5zaW9uLXNlY29uZGFy
eS1wYXRocykKLSNlbmRpZgotCi07OyBTYW5kYm94IGV4dGVuc2lvbnMKLShkZWZpbmUgKGFwcGx5
LXJlYWQtYW5kLWlzc3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZpbHRlcikKLSAgICAob3AgZmlsZS1y
ZWFkKiBwYXRoLWZpbHRlcikKLSAgICAob3AgZmlsZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUt
YWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkIikgcGF0aC1m
aWx0ZXIpKSkKLShkZWZpbmUgKGFwcGx5LXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNpb24gb3AgcGF0
aC1maWx0ZXIpCi0gICAgKG9wIGZpbGUtd3JpdGUqIHBhdGgtZmlsdGVyKQotICAgIChvcCBmaWxl
LWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFwcGxl
LmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSBwYXRoLWZpbHRlcikpKQotKGRlZmluZSAocmVhZC1v
bmx5LWFuZC1pc3N1ZS1leHRlbnNpb25zIHBhdGgtZmlsdGVyKQotICAgIChhcHBseS1yZWFkLWFu
ZC1pc3N1ZS1leHRlbnNpb24gYWxsb3cgcGF0aC1maWx0ZXIpKQotKGRlZmluZSAocmVhZC13cml0
ZS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyBwYXRoLWZpbHRlcikKLSAgICAoYXBwbHktcmVhZC1hbmQt
aXNzdWUtZXh0ZW5zaW9uIGFsbG93IHBhdGgtZmlsdGVyKQotICAgIChhcHBseS13cml0ZS1hbmQt
aXNzdWUtZXh0ZW5zaW9uIGFsbG93IHBhdGgtZmlsdGVyKSkKLShyZWFkLW9ubHktYW5kLWlzc3Vl
LWV4dGVuc2lvbnMgKGV4dGVuc2lvbiAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQiKSkKLShy
ZWFkLXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNpb25zIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAt
c2FuZGJveC5yZWFkLXdyaXRlIikpCi0KLShhbGxvdyBtYWNoLWxvb2t1cAotI2lmIFBMQVRGT1JN
KE1BQykKLSAgICAod2l0aCByZXBvcnQpICh3aXRoIHRlbGVtZXRyeSkKLSNlbmRpZgotICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLmF1ZGlvLkF1ZGlvQ29tcG9uZW50UmVnaXN0cmFyIikKLSAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hd2RkIikKLSNpZiAhRU5BQkxFKENGUFJFRlNfRElS
RUNUX01PREUpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY2ZwcmVmc2QuYWdlbnQiKQot
I2VuZGlmCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY29va2llZCIpCi0gICAgKGdsb2Jh
bC1uYW1lICJjb20uYXBwbGUuaWNvbnNlcnZpY2VzIikKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5h
cHBsZS5pY29uc2VydmljZXMuc3RvcmUiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnN5
c3RlbS5sb2dnZXIiKQotKQotCi0od2l0aC1maWx0ZXIgKHN5c3RlbS1hdHRyaWJ1dGUgYXBwbGUt
aW50ZXJuYWwpCi0gICAgKGFsbG93IG1hY2gtbG9va3VwCi0gICAgICAgIChnbG9iYWwtbmFtZSAi
Y29tLmFwcGxlLmFuYWx5dGljc2QiKQotICAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5k
aWFnbm9zdGljZCIpKSkKLQotOzsgVmFyaW91cyBzZXJ2aWNlcyByZXF1aXJlZCBieSBBcHBLaXQg
YW5kIG90aGVyIGZyYW1ld29ya3MKLShhbGxvdyBtYWNoLWxvb2t1cAotICAgICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLlBvd2VyTWFuYWdlbWVudC5jb250cm9sIikKLSAgICAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5TeXN0ZW1Db25maWd1cmF0aW9uLmNvbmZpZ2QiKQotICAgICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLmFzc2VydGlvbmQucHJvY2Vzc2Fzc2VydGlvbmNvbm5lY3Rp
b24iKQotICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmF1ZGlvLlN5c3RlbVNvdW5kU2Vy
dmVyLU9TWCIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXVkaW8uYXVkaW9oYWxk
IikKLSNpZiAhRU5BQkxFKENGUFJFRlNfRElSRUNUX01PREUpCi0gICAgICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUuY2ZwcmVmc2QuZGFlbW9uIikKLSNlbmRpZgotICAgICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLmNvcmVzZXJ2aWNlcy5sYXVuY2hzZXJ2aWNlc2QiKQotICAgICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLmZvbnRzIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5tZWRpYXJlbW90ZWQueHBjIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sb2dk
IikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5sb2dkLmV2ZW50cyIpCi0gICAgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUubHNkLm1hcGRiIikKLSAgICAgICAoZ2xvYmFsLW5hbWUg
ImNvbS5hcHBsZS5sc2tkZCIpIDs7IDxyZGFyOi8vcHJvYmxlbS80OTEyMzg1NT4KLSAgICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS50Y2NkIikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5h
cHBsZS50Y2NkLnN5c3RlbSIpCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUudHJ1c3Rk
LmFnZW50IikKLSAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5DQVJlbmRlclNlcnZlciIp
IDsgTmVlZGVkIGZvciBbQ0FDb250ZXh0IHJlbW90ZUNvbnRleHRXaXRoT3B0aW9uc10KLSkKLQot
OzsgPHJkYXI6Ly9wcm9ibGVtLzQ3MjY4MTY2PgotKGFsbG93IG1hY2gtbG9va3VwICh4cGMtc2Vy
dmljZS1uYW1lICJjb20uYXBwbGUuTVRMQ29tcGlsZXJTZXJ2aWNlIikpCi0KLShkZW55IG1hY2gt
bG9va3VwICh3aXRoIG5vLWxvZykKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Db3JlU2Vy
dmljZXMuY29yZXNlcnZpY2VzZCIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuRGlza0Fy
Yml0cmF0aW9uLmRpc2thcmJpdHJhdGlvbmQiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
LlZpZXdCcmlkZ2VBdXhpbGlhcnkiKQotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLndpbmRv
d3NlcnZlci5hY3RpdmUiKSkKLQotOzsgTmVlZGVkIHRvIHN1cHBvcnQgZW5jcnlwdGVkIG1lZGlh
IHBsYXliYWNrIDxyZGFyOi8vcHJvYmxlbS80MDAzODQ3OD4KLShhbGxvdyBtYWNoLWxvb2t1cAot
ICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlNlY3VyaXR5U2VydmVyIikKLSAgICAoZ2xvYmFs
LW5hbWUgImNvbS5hcHBsZS5vY3NwZCIpKQotCi0oYWxsb3cgZmlsZS1yZWFkKiAoc3VicGF0aCAi
L3ByaXZhdGUvdmFyL2RiL21kcy9zeXN0ZW0iKSkgOzsgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJl
bW92ZWQgd2hlbiA8cmRhcjovL3Byb2JsZW0vOTUzODQxND4gaXMgZml4ZWQuCi0od2l0aC1maWx0
ZXIgKHVpZCAwKQotICAgIChhbGxvdyBmaWxlLXdyaXRlKgotICAgICAgICAoc3VicGF0aCAiL3By
aXZhdGUvdmFyL2RiL21kcy9zeXN0ZW0iKSkgOzsgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbW92
ZWQgd2hlbiA8cmRhcjovL3Byb2JsZW0vOTUzODQxND4gaXMgZml4ZWQuCi0pCi0KLShhbGxvdyBm
aWxlLXJlYWQqCi0gICAgICAgKHN1YnBhdGggIi9wcml2YXRlL3Zhci9kYi9tZHMiKQotICAgICAg
IChsaXRlcmFsICIvcHJpdmF0ZS92YXIvZGIvRGV0YWNoZWRTaWduYXR1cmVzIikpCi0KLShhbGxv
dyBpcGMtcG9zaXgtc2htLXJlYWQqIGlwYy1wb3NpeC1zaG0td3JpdGUtZGF0YSBpcGMtcG9zaXgt
c2htLXdyaXRlLWNyZWF0ZQotICAgICAgIChpcGMtcG9zaXgtbmFtZSAiY29tLmFwcGxlLkFwcGxl
RGF0YWJhc2VDaGFuZ2VkIikpCi0KLTs7IENvcmVGb3VuZGF0aW9uLiBXZSBkb24ndCBpbXBvcnQg
Y29tLmFwcGxlLmNvcmVmb3VuZGF0aW9uLnNiLCBiZWNhdXNlIGl0IGFsbG93cyB1bm5lY2Vzc2Fy
eSBhY2Nlc3MgdG8gcGFzdGVib2FyZC4KLShhbGxvdyBtYWNoLWxvb2t1cAotICAgIChnbG9iYWwt
bmFtZS1wcmVmaXggImNvbS5hcHBsZS5kaXN0cmlidXRlZF9ub3RpZmljYXRpb25zIikKLSNpZiAh
SEFWRShDU0NIRUNLRklYRElTQUJMRSkKLSAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Db3Jl
U2VydmljZXMuY29yZXNlcnZpY2VzZCIpCi0jZW5kaWYKLSkKLQotKGFsbG93IGZpbGUtcmVhZC1k
YXRhCi0gICAgKGxpdGVyYWwgIi9kZXYvYXV0b2ZzX25vd2FpdCIpKSA7IFVzZWQgYnkgQ0YgdG8g
Y2lyY3VtdmVudCBhdXRvbW91bnQgdHJpZ2dlcnMKLShhbGxvdyBpcGMtcG9zaXgtc2htCi0gICAg
KGlwYy1wb3NpeC1uYW1lLXByZWZpeCAiQ0ZQQlM6IikpIDsgPHJkYXI6Ly9wcm9ibGVtLzEzNzU3
NDc1PgotKGFsbG93IHN5c3RlbS1mc2N0bCAoZnNjdGwtY29tbWFuZCAoX0lPICJoIiA0NykpKQot
Ci07OyBOZXR3b3JraW5nCi0oYWxsb3cgbmV0d29yay1vdXRib3VuZAotICAgICAgIDs7IE9iakMg
bWFwX2ltYWdlcyBuZWVkcyB0byBzZW5kIGxvZ2dpbmcgZGF0YSB0byBzeXNsb2cuIDxyZGFyOi8v
cHJvYmxlbS8zOTc3ODkxOD4KLSAgICAgICAobGl0ZXJhbCAiL3ByaXZhdGUvdmFyL3J1bi9zeXNs
b2ciKQotKQotCi07OyBDRk5ldHdvcmsKLShhbGxvdyBmaWxlLXJlYWQtZGF0YSAocGF0aCAiL3By
aXZhdGUvdmFyL2RiL25zdXJsc3RvcmFnZWQvZGFmc2FEYXRhLmJpbiIpKQotCi0jaWYgUExBVEZP
Uk0oTUFDKQotOzsgRklYTUUgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiA8cmRhcjovL3Byb2JsZW0v
OTM0NzIwNT4gKyByZWxhdGVkIHJhZGFyIGluIFNhZmFyaSBpcyBmaXhlZAotKGFsbG93IG1hY2gt
bG9va3VwCi0gICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc3lzdGVtLmxvZ2dlciIpCi0g
ICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuc3lzdGVtLm5vdGlmaWNhdGlvbl9jZW50ZXIi
KSkKLSNlbmRpZgotCi0oZGVueSBmaWxlLXdyaXRlLWNyZWF0ZSAodm5vZGUtdHlwZSBTWU1MSU5L
KSkKLQotOzsgUmVzZXJ2ZSBhIG5hbWVzcGFjZSBmb3IgYWRkaXRpb25hbCBwcm90ZWN0ZWQgZXh0
ZW5kZWQgYXR0cmlidXRlcy4KLShkZW55IGZpbGUtcmVhZC14YXR0ciBmaWxlLXdyaXRlLXhhdHRy
ICh4YXR0ci1wcmVmaXggImNvbS5hcHBsZS5zZWN1cml0eS5wcml2YXRlLiIpKQotCi0oZGVueSBm
aWxlLXJlYWQqIGZpbGUtd3JpdGUqICh3aXRoIG5vLWxvZykKLSAgICAgICA7OyBGSVhNRTogU2hv
dWxkIGJlIHJlbW92ZWQgYWZ0ZXIgPHJkYXI6Ly9wcm9ibGVtLzEwNDYzODgxPiBpcyBmaXhlZC4K
LSAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuTGF1
bmNoU2VydmljZXMuUXVhcmFudGluZUV2ZW50c1YyIikKLSAgICAgICAoaG9tZS1saXRlcmFsICIv
TGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuTGF1bmNoU2VydmljZXMuUXVhcmFudGluZUV2
ZW50c1YyLWpvdXJuYWwiKSkKLQotOzsgRGVueSBhY2Nlc3MgbmVlZGVkIGZvciB1bm5lY2Vzc2Fy
eSBOU0FwcGxpY2F0aW9uIGluaXRpYWxpemF0aW9uLgotOzsgRklYTUU6IFRoaXMgY2FuIGJlIHJl
bW92ZWQgb25jZSA8cmRhcjovL3Byb2JsZW0vMTMwMTE2MzM+IGlzIGZpeGVkLgotKGRlbnkgZmls
ZS1yZWFkKiAod2l0aCBuby1sb2cpCi0gICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5L0lucHV0TWFu
YWdlcnMiKQotICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0lucHV0TWFuYWdlcnMiKSkK
LShkZW55IHVzZXItcHJlZmVyZW5jZS1yZWFkICh3aXRoIG5vLWxvZykKLSAgICAocHJlZmVyZW5j
ZS1kb21haW4gImNvbS5hcHBsZS5zcGVlY2gucmVjb2duaXRpb24uQXBwbGVTcGVlY2hSZWNvZ25p
dGlvbi5wcmVmcyIpKQotKGRlbnkgbWFjaC1sb29rdXAgKHdpdGggbm8tbG9nKQotICAgICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLmNvcmVzZXJ2aWNlcy5hcHBsZWV2ZW50cyIpCi0gICAgICAg
KGdsb2JhbC1uYW1lICJjb20uYXBwbGUucGFzdGVib2FyZC4xIikKLSAgICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5zcGVlY2gucmVjb2duaXRpb25zZXJ2ZXIiKSkKLSNpZiBQTEFURk9STShN
QUMpCi07OyBBbHNvIHBhcnQgb2YgdW5uZWNlc3NhcnkgTlNBcHBsaWNhdGlvbiBpbml0aWFsaXph
dGlvbiwgYnV0IHdlIGNhbid0IGJsb2NrIGFjY2VzcyB0byB0aGVzZSB5ZXQsIHNlZSA8cmRhcjov
L3Byb2JsZW0vMTM4Njk3NjU+LgotKGFsbG93IGZpbGUtcmVhZCoKLSAgICAgICAoc3VicGF0aCAi
L0xpYnJhcnkvQ29tcG9uZW50cyIpCi0gICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5L0tleWJvYXJk
IExheW91dHMiKQotICAgICAgIChzdWJwYXRoICIvTGlicmFyeS9JbnB1dCBNZXRob2RzIikKLSAg
ICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9Db21wb25lbnRzIikKLSAgICAgICAoaG9tZS1z
dWJwYXRoICIvTGlicmFyeS9LZXlib2FyZCBMYXlvdXRzIikKLSAgICAgICAoaG9tZS1zdWJwYXRo
ICIvTGlicmFyeS9JbnB1dCBNZXRob2RzIikpCi0jZW5kaWYKLQotOzsgRGF0YSBEZXRlY3RvcnMK
LShhbGxvdyBmaWxlLXJlYWQqIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvZGIvZGF0YWRldGVjdG9y
cy9zeXMiKSkKLQotOzsgQWxsb3cgYWNjZXNzZXMgdG8gSElECi0oYWxsb3cgaW9raXQtb3Blbgot
ICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiSU9ISURMaWJVc2VyQ2xpZW50IikpCi0KLTs7
IEFsbG93IGFjY2Vzc2VzIHRvIExvY2FsQXV0aGVudGljYXRpb24gYW5kIFJlbW90ZVNlcnZpY2UK
LShhbGxvdyBtYWNoLWxvb2t1cAotICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkNvcmVBdXRo
ZW50aWNhdGlvbi5hZ2VudCIpCi0gICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUucmVtb3RlZCIp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggN2VlZTgwNmJlZmMyMTg3NTIzMmI0NGYyNDgxYWIwZGFmNDRmMDFmOS4uN2JmNTQ5ZjBiNDA1
YzY2NTgzYTZlN2JiNDRmNjk2NGM1MDQwNTBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNyw3ICsxNyw2IEBACiAJCQkJNTE3QjVG
NkQyNzVCMDdDMzAwMkRDMjJEIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNUMxNTc5
REYyNzE2NUUwODAwRUQ1MjgwIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJNUNBRjdB
QTkyNkY5M0Y5RjAwMDNGMTlFIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCi0JCQkJNTc0MkEy
RkEyNTM1NjE5RDAwQjdCQTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJQkNBOEQ0
NjgxNUJDRTBENjAwOURDMUYxIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJN0E3RThE
RkMyNzQ4M0ExMjAwRENDOTdBIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJMzcyRUJC
NDkyMDE3RTZDRjAwMDg1MDY0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCkBAIC0xMTA1LDI3
ICsxMTA0LDEyIEBACiAJCTU3MERBQUMyMjMwMzczMDMwMEU4RkMwNCAvKiBOZmNDb25uZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBEQUFD
MDIzMDM3MzAzMDBFOEZDMDQgLyogTmZjQ29ubmVjdGlvbi5oICovOyB9OwogCQk1NzBEQUFDNjIz
MDM3RjdGMDBFOEZDMDQgLyogV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREFBQzQyMzAzN0Y3RTAwRThG
QzA0IC8qIFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUuaCAqLzsgfTsKIAkJNTcwREFBQ0EyMzAz
ODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERBQUM4MjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZj
RHJpdmVyLmggKi87IH07Ci0JCTU3MkVCQkJGMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQkIyNTM2QTYwQTAwMDU1MkIzIC8q
IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
Ci0JCTU3MkVCQkMwMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTcyRUJCQkMyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzc01lc3NhZ2VzLmggKi87IH07Ci0JCTU3MkVCQkMxMjUzNkE2MEEwMDA1NTJCMyAvKiBX
ZWJBdXRoblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQkQyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1
dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07Ci0JCTU3MkVCQkMyMjUzNkE2MEEw
MDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQkUyNTM2QTYwQTAwMDU1MkIzIC8qIFdl
YkF1dGhuUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07Ci0JCTU3MkVCQkM0MjUzNkFCODQwMDA1NTJC
MyAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuUHJvY2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCQzMyNTM2QUI4NDAwMDU1MkIz
IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiICovOyB9OwotCQk1NzJFQkJD
OTI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkM2MjUzNkFGRDUwMDA1NTJC
MyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5oICovOyB9OwotCQk1NzJFQkJDQzI1MzZCMDRGMDAw
NTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkNCMjUzNkIwNEYwMDA1NTJCMyAv
KiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uSW5mby5oICovOyB9OwotCQk1NzJFQkJENTI1MzZD
ODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcyRUJCRDIyNTM2Qzg4NTAwMDU1MkIz
IC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTcyRUJCRDcyNTM3RUJB
RTAwMDU1MkIzIC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQ0E2ODBEMzFFNjkwNEI1MDA3MzFEMjAg
LyogRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaCAqLzsgfTsKIAkJNTcyRUJCREEyNTM4RjZC
NDAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJFQkJEODI1MzhGNkExMDAwNTUyQjMg
LyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5tbSAqLzsgfTsKIAkJNTcyRUJCREIyNTM4RjZC
NjAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MkVCQkQ5MjUzOEY2QTEwMDA1NTJCMyAv
KiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmggKi87IH07CiAJCTU3MkVCQkREMjUzOTIxODEw
MDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEku
aCAqLzsgfTsKIAkJNTcyRkQ0NDMyMjI2NUNFMjAwQTFFQ0MzIC8qIFdlYlZpZXdEaWRNb3ZlVG9X
aW5kb3dPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTcyRkQ0NDEyMjI2NUNFMjAwQTFFQ0MzIC8qIFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dP
YnNlcnZlci5oICovOyB9OwogCQk1NzQyMTc5MjI0MDBFMjg2MDAyQjMwM0QgLyogTG9jYWxBdXRo
ZW50aWNhdGlvblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTc0MjE3OTEyNDAwRTA5ODAwMkIzMDNEIC8qIExvY2FsQXV0aGVudGljYXRpb25TUEku
aCAqLzsgfTsKLQkJNTc0MkEyRUIyNTM1NjEzRjAwQjdCQTE0IC8qIEF1eGlsaWFyeVByb2Nlc3NN
YWluLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
RTkxMjBGMjI5M0MyNUYwMDVCRUM3OCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgKi87IH07
Ci0JCTU3NDJBMkVDMjUzNTYxM0YwMEI3QkExNCAvKiBYUENTZXJ2aWNlTWFpbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDODI4Mzk2MTZCNDdFQzQw
MEEyNzhGRSAvKiBYUENTZXJ2aWNlTWFpbi5tbSAqLzsgfTsKLQkJNTc0MkEyRUUyNTM1NjEzRjAw
QjdCQTE0IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzREU0NjgxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5k
YXRpb24uZnJhbWV3b3JrICovOyB9OwotCQk1NzQyQTJFRjI1MzU2MTNGMDBCN0JBMTQgLyogV2Vi
S2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDhEQzJFRjVCMDQ4NkE2OTQwMDk4QjIxNiAvKiBXZWJLaXQuZnJhbWV3b3JrICovOyB9
OwotCQk1NzQyQTMwODI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzQyQTMwNjI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggKi87IH07Ci0JCTU3NDJBMzBEMjUzNThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3NDJBMzBBMjUzNThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCAqLzsgfTsKLQkJNTc0MkEzMTgyNTM2NDhFNTAwQjdCQTE0IC8qIFdl
YkF1dGhuUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTc0MkEzMTUyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5oICovOyB9
OwogCQk1NzQ3MjhEMTIzNDU2RTk4MDAxNzAwQUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc0NzI4
Q0YyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1NzQ3MjhENDIzNDU3
MEFFMDAxNzAwQUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzQ3MjhEMzIzNDU3MEFF
MDAxNzAwQUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmggKi87IH07CiAJ
CTU3NTk3RUI5MjE4MTFEOUEwMDM3RjkyNCAvKiBDdGFwSGlkRHJpdmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5N0VCNzIxODExRDlBMDAzN0Y5
MjQgLyogQ3RhcEhpZERyaXZlci5oICovOyB9OwpAQCAtMjQ5NSwyNyArMjQ3OSw2IEBACiAJCQly
ZW1vdGVHbG9iYWxJRFN0cmluZyA9IDhEQzJFRjRGMDQ4NkE2OTQwMDk4QjIxNjsKIAkJCXJlbW90
ZUluZm8gPSBXZWJLaXQ7CiAJCX07Ci0JCTU3NDJBMkU3MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhD
b250YWluZXJJdGVtUHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7
Ci0JCQljb250YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVj
dCBvYmplY3QgKi87Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcg
PSBFMUFDMkUyNzIwRjdCOTRDMDBCMDg5N0Q7Ci0JCQlyZW1vdGVJbmZvID0gIlVubG9jayBLZXlj
aGFpbiI7Ci0JCX07Ci0JCTU3NDJBMkU5MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7Ci0JCQljb250
YWluZXJQb3J0YWwgPSAwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBvYmplY3Qg
Ki87Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA4REMyRUY0
RjA0ODZBNjk0MDA5OEIyMTY7Ci0JCQlyZW1vdGVJbmZvID0gV2ViS2l0OwotCQl9OwotCQk1NzQy
QTJGOTI1MzU2MTlEMDBCN0JBMTQgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJ
aXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2
OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0g
MTsKLQkJCXJlbW90ZUdsb2JhbElEU3RyaW5nID0gNTc0MkEyRTUyNTM1NjEzRjAwQjdCQTE0Owot
CQkJcmVtb3RlSW5mbyA9IFdlYkF1dGhlbnRpY2F0aW9uOwotCQl9OwogCQk1QzE1NzlEMDI3MTY1
QjJGMDBFRDUyODAgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gMDg2N0Q2OTBGRTg0MDI4
RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwpAQCAtNTAyNiw3ICs0OTg5LDcgQEAKIAkJ
NTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBcHBBdHRlc3RTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRkQ0NDEy
MjI2NUNFMjAwQTFFQ0MzIC8qIFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTc0MjE3OTEyNDAwRTA5ODAwMkIzMDNEIC8qIExvY2FsQXV0aGVu
dGljYXRpb25TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTJGNzI1MzU2MTNGMDBCN0JBMTQgLyog
Y29tLmFwcGxlLldlYktpdC5XZWJBdXRobi54cGMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJ3cmFwcGVyLnhwYy1zZXJ2aWNlIjsgaW5jbHVkZUluSW5k
ZXggPSAwOyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5XZWJBdXRobi54cGM7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTU3NDJBMkY3MjUzNTYxM0YwMEI3QkExNCAvKiAu
eHBjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAid3Jh
cHBlci54cGMtc2VydmljZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IC54cGM7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTU3NDJBMzA2MjUzNThBMDQwMEI3QkEx
NCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDJBMzA3MjUzNThBMDQwMEI3QkExNCAvKiBX
ZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0MkEzMEEyNTM1OEVGRDAwQjdCQTE0IC8q
IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTUxMDQsNyArNTA2Nyw2IEBACiAJCTU3OUYxQkY4MjNDODBFQzYw
MEM3RDRCNCAvKiBfV0tXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZUlu
dGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3OUYxQkZBMjNDODExQ0Yw
MEM3RDRCNCAvKiBBUElXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFQSVdlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc5RjFCRkIyM0M4MTFDRjAwQzdENEI0IC8qIEFQSVdl
YkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
QVBJV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTU3QTlGRjA3MjUyQkU2RTAwMDZBMjA0MCAvKiBXZWJBdXRoblNlcnZp
Y2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQXV0aG5TZXJ2aWNlLnhjY29uZmlnOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0E5RkYxNTI1MkM2QUVGMDA2QTIwNDAgLyogbGli
V1RGLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFy
Y2hpdmUuYXI7IHBhdGggPSBsaWJXVEYuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJNTdBQzhGNEUyMTdGRUVEOTAwNTU0MzhDIC8qIEhpZENvbm5lY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSGlkQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1N0FDOEY0RjIxN0ZFRUQ5MDA1NTQzOEMgLyogSGlkQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEhpZENvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC01MTQ3LDcgKzUxMDksNiBAQAogCQk1N0VCMkUzOTIxRTE5ODNFMDBCODlDREYgLyogVTJm
QXV0aGVudGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVMmZBdXRoZW50aWNhdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdFQkUyNjgyMzQ2NzZDNTAwOEQ4QUY5
IC8qIEFQSVdlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJV2ViQXV0
aGVudGljYXRpb25QYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0VCRTI2
OTIzNDY3NkM1MDA4RDhBRjkgLyogQVBJV2ViQXV0aGVudGljYXRpb25QYW5lbC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNTdFRkM3N0QyNTUwRUI4NTAwRjk0NzdEIC8qIGNvbS5hcHBsZS5X
ZWJLaXQuV2ViQXV0aG4uc2IuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldl
YktpdC5XZWJBdXRobi5zYi5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdGQUJC
MEUyNTgxN0NGMDAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3RkFCQjEwMjU4MTgyN0MwMDU5REM5NSAvKiBBdXRoZW50aWNh
dGlvblNlcnZpY2VzQ29yZVNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9u
U2VydmljZXNDb3JlU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdG
QUJCMTEyNTgxODI3QzAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU29mdExp
bmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNv
ZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzI3MiwxNSArNzIzMyw2
IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07Ci0JCTU3NDJBMkVEMjUzNTYxM0YwMEI3QkExNCAvKiBGcmFtZXdvcmtzICovID0gewotCQkJ
aXNhID0gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJNTc0MkEyRUUyNTM1NjEzRjAwQjdCQTE0IC8qIEZv
dW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJNTc0MkEyRUYyNTM1NjEz
RjAwQjdCQTE0IC8qIFdlYktpdC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKLQkJCSk7Ci0J
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKLQkJfTsKIAkJNUMxNTc5
RDQyNzE2NUIyRjAwRUQ1MjgwIC8qIEZyYW1ld29ya3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhGcmFt
ZXdvcmtzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC03
MzU4LDkgKzczMTAsOSBAQAogCQkJCTVDQUY3QUE0MjZGOTNBNzUwMDAzRjE5RSAvKiBhZGF0dHJp
YnV0aW9uZCAqLywKIAkJCQk1QzE1NzlEQTI3MTY1QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8s
CiAJCQkJNTE3QjVGNUIyNzVBOEQzRTAwMkRDMjJEIC8qIHdlYnB1c2h0b29sICovLAorCQkJCTU3
NDJBMkY3MjUzNTYxM0YwMEI3QkExNCAvKiAueHBjICovLAogCQkJCTJEOUZCMjI4MjM3NTIzODMw
MDQ5RjkzNiAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS54cGMgKi8sCiAJCQkJQkM4MjgzQjExNkI0
QkY3NzAwQTI3OEZFIC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy54cGMgKi8sCi0JCQkJ
NTc0MkEyRjcyNTM1NjEzRjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBj
ICovLAogCQkJCTdBN0U4REY4Mjc0ODM5MjUwMERDQzk3QSAvKiBjb20uYXBwbGUuV2ViS2l0Lldl
YkNvbnRlbnQuQ2FwdGl2ZVBvcnRhbC54cGMgKi8sCiAJCQkJMzcyRUJCNDYyMDE3RTY0MzAwMDg1
MDY0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGMgKi8sCiAJ
CQkJQkMzREU0NjYxNUE5MTc2MzAwOEQyNkZDIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC54cGMgKi8sCkBAIC03NTgwLDcgKzc1MzIsNiBAQAogCQkJCUJDMDMyRDVDMTBGNDM2RDUwMDU4
QzE1QSAvKiBXZWJQcm9jZXNzICovLAogCQkJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBO
ZXR3b3JrUHJvY2VzcyAqLywKIAkJCQkyRDlGQjFGRjIzNzUyMDlEMDA0OUY5MzYgLyogR1BVUHJv
Y2VzcyAqLywKLQkJCQk1NzQyQTJGRjI1MzU3NTgwMDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNz
ICovLAogCQkJCUMwQ0U3MjlEMTI0N0U3MUQwMEJDMEVDNCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8s
CiAJCQkJMDg5QzE2NjVGRTg0MTE1OEMwMkFBQzA3IC8qIFJlc291cmNlcyAqLywKIAkJCQlDMENF
NzMzNTEyNDdGNzBFMDBCQzBFQzQgLyogU2NyaXB0cyAqLywKQEAgLTc3NTgsNyArNzcwOSw2IEBA
CiAJCQkJQTFCODlCOTIyMjFFMDIzMzAwRUI0Q0VBIC8qIFNES1ZhcmlhbnQueGNjb25maWcgKi8s
CiAJCQkJNTE4M0IzOTMxMzc5Rjg1QzAwRTg3NTRFIC8qIFNoaW0ueGNjb25maWcgKi8sCiAJCQkJ
MUE0Rjk3NkUxMDBFN0I2NjAwNjM3QTE4IC8qIFZlcnNpb24ueGNjb25maWcgKi8sCi0JCQkJNTdB
OUZGMDcyNTJCRTZFMDAwNkEyMDQwIC8qIFdlYkF1dGhuU2VydmljZS54Y2NvbmZpZyAqLywKIAkJ
CQk3QTdFOERGQTI3NDgzOTkzMDBEQ0M5N0EgLyogV2ViQ29udGVudFNlcnZpY2UuQ2FwdGl2ZVBv
cnRhbC54Y2NvbmZpZyAqLywKIAkJCQkzNzJFQkI0QTIwMTdFNzYwMDAwODUwNjQgLyogV2ViQ29u
dGVudFNlcnZpY2UuRGV2ZWxvcG1lbnQueGNjb25maWcgKi8sCiAJCQkJQkNBQ0M0MEUxNkIwQjhB
ODAwQjZFMDkyIC8qIFdlYkNvbnRlbnRTZXJ2aWNlLnhjY29uZmlnICovLApAQCAtMTA1MTksNzUg
KzEwNDY5LDYgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07Ci0JCTU3NDJBMkZGMjUzNTc1ODAwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MgKi8g
PSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTU3NDJBMzAwMjUz
NTc1ODAwMEI3QkExNCAvKiBFbnRyeVBvaW50ICovLAotCQkJCTU3NDJBMzE5MjUzNjc1RTkwMEI3
QkExNCAvKiBpb3MgKi8sCi0JCQkJNTc0MkEzMUIyNTM2NzVGNjAwQjdCQTE0IC8qIG1hYyAqLywK
LQkJCQk1NzQyQTMwQzI1MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCAqLywKLQkJCQk1NzQyQTMwQTI1MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8sCi0JCQkJNTc0MkEzMEIyNTM1OEVGRDAwQjdCQTE0
IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywKLQkJCQk1
NzQyQTMxNDI1MzY0OEU0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmNwcCAqLywKLQkJCQk1
NzQyQTMxNTI1MzY0OEU0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmggKi8sCi0JCQkJNTc0
MkEzMTMyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywK
LQkJCQk1NzQyQTMwNzI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCAqLywKLQkJCQk1NzQyQTMwNjI1MzU4QTA0MDBCN0JBMTQgLyogV2ViQXV0
aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IFdlYkF1
dGhuUHJvY2VzczsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTU3NDJBMzAw
MjUzNTc1ODAwMEI3QkExNCAvKiBFbnRyeVBvaW50ICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7
Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQk1NzQyQTMwMTI1MzU3NTgwMDBCN0JBMTQgLyogQ29jb2Eg
Ki8sCi0JCQkpOwotCQkJcGF0aCA9IEVudHJ5UG9pbnQ7Ci0JCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwotCQl9OwotCQk1NzQyQTMwMTI1MzU3NTgwMDBCN0JBMTQgLyogQ29jb2EgKi8gPSB7Ci0J
CQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTU3NDJBMzAyMjUzNTc1ODAw
MEI3QkExNCAvKiBYUENTZXJ2aWNlICovLAotCQkJKTsKLQkJCXBhdGggPSBDb2NvYTsKLQkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCTU3NDJBMzAyMjUzNTc1ODAwMEI3QkExNCAv
KiBYUENTZXJ2aWNlICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJlbiA9ICgK
LQkJCQk1NzQyQTMwMzI1MzU3NTgwMDBCN0JBMTQgLyogV2ViQXV0aG5TZXJ2aWNlICovLAotCQkJ
CTU3NDJBMzFFMjUzNjk0OTMwMEI3QkExNCAvKiBXZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1t
ICovLAotCQkJKTsKLQkJCXBhdGggPSBYUENTZXJ2aWNlOwotCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKLQkJfTsKLQkJNTc0MkEzMDMyNTM1NzU4MDAwQjdCQTE0IC8qIFdlYkF1dGhuU2Vydmlj
ZSAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTcyRUJC
QjkyNTM2QTA2RTAwMDU1MkIzIC8qIEluZm8taU9TLnBsaXN0ICovLAotCQkJCTU3MkVCQkJBMjUz
NkEwNkUwMDA1NTJCMyAvKiBJbmZvLU9TWC5wbGlzdCAqLywKLQkJCSk7Ci0JCQlwYXRoID0gV2Vi
QXV0aG5TZXJ2aWNlOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEz
MTkyNTM2NzVFOTAwQjdCQTE0IC8qIGlvcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJNTc0MkEzMUEyNTM2NzVFOTAwQjdCQTE0IC8qIFdlYkF1dGhuUHJv
Y2Vzc0lPUy5tbSAqLywKLQkJCSk7Ci0JCQlwYXRoID0gaW9zOwotCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKLQkJfTsKLQkJNTc0MkEzMUIyNTM2NzVGNjAwQjdCQTE0IC8qIG1hYyAqLyA9IHsK
LQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTc0MkEzMUQyNTM2NzVG
NjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluICovLAot
CQkJCTU3NDJBMzFDMjUzNjc1RjYwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NNYWMubW0gKi8s
Ci0JCQkpOwotCQkJcGF0aCA9IG1hYzsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07
CiAJCTU3NTA3NUE2MjBBQjc1QUIwMDY5M0VBOSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTA2MzUsMTAgKzEwNTE2LDYgQEAKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTU3NjA4MjhDMjAyOTg1NDIwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3IuY3BwICovLAogCQkJCTU3NjA4MjhCMjAyOTg1NDIwMDExNjY3OCAvKiBXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCAqLywKLQkJCQk1NzJFQkJEMTI1MzZDODg1MDAwNTUy
QjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgKi8sCi0JCQkJNTcyRUJCRDIyNTM2
Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLywKLQkJCQk1NzJF
QkJEMzI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbiAqLywKLQkJCQk1NzJFQkJDQjI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNz
Q29ubmVjdGlvbkluZm8uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2ViQXV0aGVudGljYXRpb247
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTA2NjIsOCArMTA1MzksNiBAQAogCQkJ
CTU3NjA4Mjk2MjAyQkQ4QkEwMDExNjY3OCAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eS5jcHAgKi8sCiAJCQkJNTc2MDgyOTUyMDJCRDhCQTAwMTE2Njc4IC8qIFdlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5LmggKi8sCiAJCQkJNTc2MDgyOTkyMDJCREFFMjAwMTE2Njc4
IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluICovLAotCQkJ
CTU3MkVCQkM1MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5jcHAgKi8s
Ci0JCQkJNTcyRUJCQzYyNTM2QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5Lmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYkF1dGhlbnRpY2F0aW9uOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTExNDM2LDcgKzExMzExLDYgQEAKIAkJCQk1QzE1NzhFNTI3MEUwREJD
MDBFRDUyODAgLyogY29tLmFwcGxlLldlYktpdC5hZGF0dHJpYnV0aW9uZC5zYi5pbiAqLywKIAkJ
CQkyREI5NjA1MjIzOTg4NkI5MDAxMDI3OTEgLyogY29tLmFwcGxlLldlYktpdC5HUFUuc2IuaW4g
Ki8sCiAJCQkJQTc4Q0NERDgxOTNBQzlFMzAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0
d29ya2luZy5zYi5pbiAqLywKLQkJCQk1N0VGQzc3RDI1NTBFQjg1MDBGOTQ3N0QgLyogY29tLmFw
cGxlLldlYktpdC5XZWJBdXRobi5zYi5pbiAqLywKIAkJCQlFMzEzNjY0RDI2NUVFNUFGMDA1MTA4
NEYgLyogY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiLmluICovLAogCQkJKTsKIAkJCXBh
dGggPSBpb3M7CkBAIC0xNDcwMCwxNCArMTQ1NzQsNiBAQAogCQkJCTU3RENFREIyMjE0QzYwNEMw
MDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1N0RDRURCMzIxNEM2MDUzMDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RENFRDcxMjE0MkVFNkMwMDE2Qjg0NyAv
KiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKLQkJCQk1NzQyQTMwRDI1MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzJFQkJDMDI1MzZBNjBBMDAwNTUyQjMg
LyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTU3NDJBMzE4MjUzNjQ4RTUwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTU3MkVCQkQ1MjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk1NzJFQkJDQzI1MzZCMDRGMDAwNTUy
QjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCBpbiBIZWFkZXJzICovLAotCQkJ
CTU3NDJBMzA4MjUzNThBMDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTU3MkVCQkMyMjUzNkE2MEEwMDA1NTJCMyAvKiBX
ZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTcyRUJCQzkyNTM2
QUZENTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlEREEwQTI4NjI3RTU1RTREMDA1RTA4NkUgLyogV2ViQXV0b2NhcGl0YWxpemVUeXBlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjQyRDYzNDEyMkEwRUZERjAwRDJGQjNBIC8qIFdlYkF1dG9jb3Jy
ZWN0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTkwRDM5RjUyNDNCRTY0ODAwMTk5Mzg4
IC8qIFdlYkF1dG9tYXRpb25ET01XaW5kb3dPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
NTYxMiw3ICsxNTQ3OCw3IEBACiAJCQkpOwogCQkJbmFtZSA9IFdlYkF1dGhuOwogCQkJcHJvZHVj
dE5hbWUgPSBOZXR3b3JraW5nOwotCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDU3NDJBMkY3MjUzNTYx
M0YwMEI3QkExNCAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkF1dGhuLnhwYyAqLzsKKwkJCXByb2R1
Y3RSZWZlcmVuY2UgPSA1NzQyQTJGNzI1MzU2MTNGMDBCN0JBMTQgLyogLnhwYyAqLzsKIAkJCXBy
b2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNlcnZpY2UiOwogCQl9Owog
CQk1QzE1NzlDQzI3MTY1QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8gPSB7CkBAIC0xNTg3NCw3
ICsxNTc0MCw2IEBACiAJCQkJMzcyRUJCMzgyMDE3RTY0MzAwMDg1MDY0IC8qIFdlYkNvbnRlbnQu
RGV2ZWxvcG1lbnQgKi8sCiAJCQkJQkM4MjgzQjAxNkI0QkY3NzAwQTI3OEZFIC8qIE5ldHdvcmtp
bmcgKi8sCiAJCQkJMkQ5RkIyMTYyMzc1MjM4MzAwNDlGOTM2IC8qIEdQVSAqLywKLQkJCQk1NzQy
QTJFNTI1MzU2MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4gKi8sCiAJCQkJQTdBQURBMTAxOTM5NUNB
OTAwM0VBMUM3IC8qIFNhbmRib3ggUHJvZmlsZXMgKi8sCiAJCQkJRTFBQzJFMjcyMEY3Qjk0QzAw
QjA4OTdEIC8qIFVubG9jayBLZXljaGFpbiAqLywKIAkJCQk1MzI1QkRDRDIxREZGNDc3MDBBMERF
RTEgLyogQXBwbHkgQ29uZmlndXJhdGlvbiB0byBYQ0ZpbGVMaXN0cyAqLywKQEAgLTE1OTAyLDEz
ICsxNTc2Nyw2IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07Ci0JCTU3NDJBMkYwMjUzNTYxM0YwMEI3QkExNCAvKiBSZXNvdXJjZXMgKi8g
PSB7Ci0JCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwogCQk3QTdFOERFRTI3NDgzOTI1MDBEQ0M5N0Eg
LyogUmVzb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQaGFzZTsKIAkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CkBAIC0xNTkyMyw3ICsxNTc4MSw2IEBACiAJ
CQlmaWxlcyA9ICgKIAkJCQlFMTdBRTJDMzE2QjlDNjNBMDAxQzQyRjIgLyogY29tLmFwcGxlLldl
YktpdC5HUFVQcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlFMTdBRTJDMzE2QjlDNjNB
MDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYiBpbiBSZXNvdXJj
ZXMgKi8sCi0JCQkJNTcyRUJCQzQyNTM2QUI4NDAwMDU1MkIzIC8qIGNvbS5hcHBsZS5XZWJLaXQu
V2ViQXV0aG5Qcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCQlFQjdEMjUyQjI3QjMxQjc3
MDA5Q0I1ODYgLyogY29tLmFwcGxlLldlYktpdC53ZWJwdXNoZC5zYiBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkJRTExRDM1QUUxNkI2M0QxQjAwNkQyM0Q3IC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNi
IGluIFJlc291cmNlcyAqLywKIAkJCQk2QkU5NjlDMTFFNTRENDUyMDA4Qjc0ODMgLyogY29yZVBy
ZWRpY3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLApAQCAtMTYxOTYsMzYgKzE2MDUzLDYgQEAK
IAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CiAJCQlzaGVsbFNjcmlwdCA9ICJTY3JpcHRzL2NoZWNr
LXhjZmlsZWxpc3RzLnNoXG4iOwogCQl9OwotCQk1NzQyQTJGMTI1MzU2MTNGMDBCN0JBMTQgLyog
VW5sb2NrIGtleWNoYWluICovID0gewotCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNl
OwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0gKAotCQkJKTsK
LQkJCWlucHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJbmFtZSA9ICJVbmxvY2sga2V5Y2hhaW4iOwot
CQkJb3V0cHV0UGF0aHMgPSAoCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7Ci0JCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAi
VU5MT0NLX1NDUklQVF9QQVRIPVwiJHtTUkNST09UfS8uLi8uLi8uLi9JbnRlcm5hbC9Ub29scy9T
Y3JpcHRzL3VubG9jay1zYWZhcmktZW5naW5lZXJpbmcta2V5Y2hhaW4taWYtbmVlZGVkXCJcblxu
W1sgLXggXCIke1VOTE9DS19TQ1JJUFRfUEFUSH1cIiBdXSAmJiBleGVjIFwiJHtVTkxPQ0tfU0NS
SVBUX1BBVEh9XCJcblxuZXhpdCAwXG4iOwotCQl9OwotCQk1NzQyQTJGMjI1MzU2MTNGMDBCN0JB
MTQgLyogUHJvY2VzcyBXZWJBdXRoZW50aWNhdGlvbiBlbnRpdGxlbWVudHMgKi8gPSB7Ci0JCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7Ci0JCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkpOwotCQkJaW5wdXRQYXRocyA9ICgKLQkJCQkiJChT
UkNST09UKS9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoIiwKLQkJCSk7Ci0JCQluYW1l
ID0gIlByb2Nlc3MgV2ViQXV0aGVudGljYXRpb24gZW50aXRsZW1lbnRzIjsKLQkJCW91dHB1dFBh
dGhzID0gKAotCQkJCSIkKFdLX1BST0NFU1NFRF9YQ0VOVF9GSUxFKSIsCi0JCQkpOwotCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCQlzaGVsbFBhdGggPSAvYmlu
L3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiU2NyaXB0cy9wcm9jZXNzLWVudGl0bGVtZW50cy5zaFxu
IjsKLQkJfTsKIAkJNUMxNTc4RTYyNzBFMTI5NDAwRUQ1MjgwIC8qIFByb2Nlc3MgYWRhdHRyaWJ1
dGlvbmQgRW50aXRsZW1lbnRzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBo
YXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTE2NDM4LDI0ICsxNjI2
NSw2IEBACiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwogCQkJc2hlbGxTY3JpcHQgPSAiZXhwb3J0
IFhQQ19CVU5ETEVTX1RPX0NPUFlfVE9fU0VDT05EQVJZX1BBVEg9XCJjb20uYXBwbGUuV2ViS2l0
LkdQVS54cGNcIlxuZXhwb3J0IFhQQ19CVU5ETEVfSU5TVEFMTF9QQVRIX0lOX1NFQ09OREFSWV9Q
QVRIPVwiJHtTRUNPTkRBUllfU1RBR0VEX0ZSQU1FV09SS19ESVJFQ1RPUll9L1dlYktpdC5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9YUENTZXJ2aWNlc1wiXG5cIiR7U1JDUk9PVH0vU2NyaXB0cy9jb3B5
LXhwYy1zZXJ2aWNlcy10by1zZWNvbmRhcnktcGF0aC5zaFwiXG4iOwogCQl9OwotCQk2NTE3NTcy
MzI3Q0ZDMjRBMDBEOUZFNDAgLyogQ29weSBYUEMgU2VydmljZSB0byBTZWNvbmRhcnkgUGF0aCAq
LyA9IHsKLQkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9u
TWFzayA9IDg7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQlpbnB1dEZpbGVMaXN0UGF0aHMgPSAo
Ci0JCQkpOwotCQkJaW5wdXRQYXRocyA9ICgKLQkJCSk7Ci0JCQluYW1lID0gIkNvcHkgWFBDIFNl
cnZpY2UgdG8gU2Vjb25kYXJ5IFBhdGgiOwotCQkJb3V0cHV0RmlsZUxpc3RQYXRocyA9ICgKLQkJ
CSk7Ci0JCQlvdXRwdXRQYXRocyA9ICgKLQkJCSk7Ci0JCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMTsKLQkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlw
dCA9ICJleHBvcnQgWFBDX0JVTkRMRVNfVE9fQ09QWV9UT19TRUNPTkRBUllfUEFUSD1cImNvbS5h
cHBsZS5XZWJLaXQuV2ViQXV0aG4ueHBjXCJcbmV4cG9ydCBYUENfQlVORExFX0lOU1RBTExfUEFU
SF9JTl9TRUNPTkRBUllfUEFUSD1cIiR7U0VDT05EQVJZX1NUQUdFRF9GUkFNRVdPUktfRElSRUNU
T1JZfS9XZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXNcIlxuXCIke1NSQ1JP
T1R9L1NjcmlwdHMvY29weS14cGMtc2VydmljZXMtdG8tc2Vjb25kYXJ5LXBhdGguc2hcIlxuIjsK
LQkJfTsKIAkJNjU3N0ZGQjkyNzY5QzE0NjAwMTFBRUM4IC8qIENyZWF0ZSBTeW1saW5rIHRvIEFs
dCBSb290IFBhdGggKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSA4OwpAQCAtMTY4NjQsMTUgKzE2NjczLDYgQEAKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKLQkJNTc0MkEy
RUEyNTM1NjEzRjAwQjdCQTE0IC8qIFNvdXJjZXMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhTb3VyY2Vz
QnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7Ci0JCQlmaWxlcyA9
ICgKLQkJCQk1NzQyQTJFQjI1MzU2MTNGMDBCN0JBMTQgLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4u
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTc0MkEyRUMyNTM1NjEzRjAwQjdCQTE0IC8qIFhQQ1Nl
cnZpY2VNYWluLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCX07CiAJCTVDMTU3OUQyMjcxNjVCMkYwMEVENTI4MCAv
KiBTb3VyY2VzICovID0gewogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwpAQCAtMTcyNTEsOCArMTcwNTEsNiBAQAogCQkJCTFB
NjAyMjRDMThDMTZCOUYwMEMzRThDOSAvKiBWaXNpdGVkTGlua1N0b3JlTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOEU3RDNDMThDMTUxNDkwMDVBNzAyQSAvKiBWaXNp
dGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1N0RDRUQ3MDIxNDJFRTY4MDAxNkI4NDcgLyogV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTcyRUJCQkYy
NTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1NzJFQkJDMTI1MzZBNjBBMDAwNTUyQjMg
LyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTU3NUIxQkJBMjNDRTlDMTMwMDIwNjM5QSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQzBBMTk1NzFDOTAwNjhGMDBGRTBFQkIgLyogV2ViQXV0b21hdGlv
blNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc1QjFCQjgy
M0NFOUJGQzAwMjA2MzlBIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0xNzQzMSwyMSArMTcyMjksNiBAQAogCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2
QTY5NDAwOThCMjE2IC8qIFdlYktpdCAqLzsKIAkJCXRhcmdldFByb3h5ID0gNTE5Nzk3QzgyNzYy
N0IyMzAwQkUwRjgzIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKIAkJfTsKLQkJNTc0MkEy
RTYyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gRTFBQzJFMjcyMEY3Qjk0QzAwQjA4
OTdEIC8qIFVubG9jayBLZXljaGFpbiAqLzsKLQkJCXRhcmdldFByb3h5ID0gNTc0MkEyRTcyNTM1
NjEzRjAwQjdCQTE0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNTc0MkEy
RTgyNTM1NjEzRjAwQjdCQTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhUYXJnZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gOERDMkVGNEYwNDg2QTY5NDAwOThC
MjE2IC8qIFdlYktpdCAqLzsKLQkJCXRhcmdldFByb3h5ID0gNTc0MkEyRTkyNTM1NjEzRjAwQjdC
QTE0IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJfTsKLQkJNTc0MkEyRkEyNTM1NjE5
RDAwQjdCQTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7Ci0JCQlpc2EgPSBQQlhUYXJn
ZXREZXBlbmRlbmN5OwotCQkJdGFyZ2V0ID0gNTc0MkEyRTUyNTM1NjEzRjAwQjdCQTE0IC8qIFdl
YkF1dGhuICovOwotCQkJdGFyZ2V0UHJveHkgPSA1NzQyQTJGOTI1MzU2MTlEMDBCN0JBMTQgLyog
UEJYQ29udGFpbmVySXRlbVByb3h5ICovOwotCQl9OwogCQk1QzE1NzlDRjI3MTY1QjJGMDBFRDUy
ODAgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVu
ZGVuY3k7CiAJCQl0YXJnZXQgPSBFMUFDMkUyNzIwRjdCOTRDMDBCMDg5N0QgLyogVW5sb2NrIEtl
eWNoYWluICovOwpAQCAtMTc3MjgsMjcgKzE3NTExLDYgQEAKIAkJCX07CiAJCQluYW1lID0gUHJv
ZHVjdGlvbjsKIAkJfTsKLQkJNTc0MkEyRjQyNTM1NjEzRjAwQjdCQTE0IC8qIERlYnVnICovID0g
ewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQliYXNlQ29uZmlndXJhdGlvblJl
ZmVyZW5jZSA9IDU3QTlGRjA3MjUyQkU2RTAwMDZBMjA0MCAvKiBXZWJBdXRoblNlcnZpY2UueGNj
b25maWcgKi87Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsK
LQkJfTsKLQkJNTc0MkEyRjUyNTM1NjEzRjAwQjdCQTE0IC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlp
c2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNl
ID0gNTdBOUZGMDcyNTJCRTZFMDAwNkEyMDQwIC8qIFdlYkF1dGhuU2VydmljZS54Y2NvbmZpZyAq
LzsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVhc2U7Ci0JCX07
Ci0JCTU3NDJBMkY2MjUzNTYxM0YwMEI3QkExNCAvKiBQcm9kdWN0aW9uICovID0gewotCQkJaXNh
ID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9
IDU3QTlGRjA3MjUyQkU2RTAwMDZBMjA0MCAvKiBXZWJBdXRoblNlcnZpY2UueGNjb25maWcgKi87
Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBQcm9kdWN0aW9uOwotCQl9
OwogCQk1QzE1NzlENzI3MTY1QjJGMDBFRDUyODAgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBY
Q0J1aWxkQ29uZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUMx
NTc5REQyNzE2NUJFNTAwRUQ1MjgwIC8qIHdlYnB1c2hkLnhjY29uZmlnICovOwpAQCAtMTgxMzUs
MTYgKzE3ODk3LDYgQEAKIAkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKIAkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247CiAJCX07Ci0JCTU3NDJBMkYz
MjUzNTYxM0YwMEI3QkExNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2
ZVRhcmdldCAiV2ViQXV0aG4iICovID0gewotCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsK
LQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJNTc0MkEyRjQyNTM1NjEzRjAwQjdCQTE0
IC8qIERlYnVnICovLAotCQkJCTU3NDJBMkY1MjUzNTYxM0YwMEI3QkExNCAvKiBSZWxlYXNlICov
LAotCQkJCTU3NDJBMkY2MjUzNTYxM0YwMEI3QkExNCAvKiBQcm9kdWN0aW9uICovLAotCQkJKTsK
LQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKLQkJCWRlZmF1bHRDb25maWd1
cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247Ci0JCX07CiAJCTVDMTU3OUQ2MjcxNjVCMkYwMEVENTI4
MCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAid2VicHVz
aGQiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmln
dXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3IuY3BwCmluZGV4IGY1YmQ4OWYxYzM1NDY5NDk3YjI5YjU2OWU0YjhkMjRiM2JmMGMxY2IuLjZm
Y2U4NTU4NzNiOGExNzRkNDdhYmIwZjY5ZmY0NzRmN2MzYmYwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCkBAIC0zMSw4ICszMSw2IEBACiAj
aW5jbHVkZSAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKICNpbmNsdWRlICJGcmFtZUluZm9E
YXRhLmgiCiAjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdl
cy5oIgotI2luY2x1ZGUgIldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgotI2luY2x1
ZGUgIldlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgog
I2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC03NiwyMiAr
NzQsNyBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWFrZUNyZWRlbnRpYWwo
Y29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cgogICAgICAgICByZXR1cm47CiAKICAgICBh
dXRvIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0gcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKGZyYW1l
LCB3ZWJGcmFtZS0+ZnJhbWVJRCgpKTsKLSNpZiBIQVZFKFVOSUZJRURfQVNDX0FVVEhfVUkpCi0g
ICAgYm9vbCB1c2VXZWJBdXRoblByb2Nlc3MgPSBmYWxzZTsKLSNlbHNlCi0gICAgYm9vbCB1c2VX
ZWJBdXRoblByb2Nlc3MgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgpOwotI2VuZGlmCi0gICAgaWYgKCF1c2VX
ZWJBdXRoblByb2Nlc3MpIHsKLSAgICAgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Ok1ha2VDcmVkZW50aWFs
KHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMsIGlz
UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBpZiAoIWlzV2ViQnJvd3NlcigpKSB7Ci0gICAgICAgIFdFQkFVVEhO
X1JFTEVBU0VfTE9HX0VSUk9SKCJtYWtlQ3JlZGVudGlhbDogVGhlICduYXZpZ2F0b3IuY3JlZGVu
dGlhbHMuY3JlYXRlJyBBUEkgaXMgb25seSBwZXJtaXR0ZWQgaW4gYXBwbGljYXRpb25zIHdpdGgg
dGhlICdjb20uYXBwbGUuZGV2ZWxvcGVyLndlYi1icm93c2VyJyBlbnRpdGxlbWVudC4iKTsKLSAg
ICAgICAgaGFuZGxlcih7IH0sIHN0YXRpY19jYXN0PEF1dGhlbnRpY2F0b3JBdHRhY2htZW50Pigw
KSwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSAnbmF2aWdhdG9yLmNyZWRl
bnRpYWxzLmNyZWF0ZScgQVBJIGlzIG9ubHkgcGVybWl0dGVkIGluIGFwcGxpY2F0aW9ucyB3aXRo
IHRoZSAnY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlcicgZW50aXRsZW1lbnQuIl9zIH0p
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ok1ha2VDcmVk
ZW50aWFsKGhhc2gsIG9wdGlvbnMsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZSho
YW5kbGVyKSk7CisgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6Ok1ha2VDcmVkZW50aWFsKHdlYkZyYW1lLT5m
cmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMsIGlzUHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBNZWRpYXRpb25SZXF1aXJlbWVudCBt
ZWRpYXRpb24sIGNvbnN0IFNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQmIHNjb3BlQW5kQ3Jvc3NP
cmlnaW5QYXJlbnQsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCkBAIC0xMDEs
MjYgKzg0LDcgQEAgdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmdldEFzc2VydGlv
bihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNlY3VyaXQKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgYXV0byBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IHByb2Nlc3NpbmdVc2VyR2VzdHVyZShm
cmFtZSwgd2ViRnJhbWUtPmZyYW1lSUQoKSk7Ci0jaWYgSEFWRShVTklGSUVEX0FTQ19BVVRIX1VJ
KQotICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gZmFsc2U7Ci0jZWxzZQotICAgIGJvb2wg
dXNlV2ViQXV0aG5Qcm9jZXNzID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKTsKLSNlbmRpZgotICAgIGlmICgh
dXNlV2ViQXV0aG5Qcm9jZXNzKSB7Ci0gICAgICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpHZXRBc3NlcnRp
b24od2ViRnJhbWUtPmZyYW1lSUQoKSwgd2ViRnJhbWUtPmluZm8oKSwgaGFzaCwgb3B0aW9ucywg
bWVkaWF0aW9uLCBzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50LnNlY29uZCwgaXNQcm9jZXNzaW5n
VXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBpZiAoc2NvcGVBbmRDcm9zc09yaWdpblBhcmVudC5maXJzdCA9PSBXZWJBdXRobjo6U2Nv
cGU6OkNyb3NzT3JpZ2luKSB7Ci0gICAgICAgIGhhbmRsZXIoeyB9LCAoQXV0aGVudGljYXRvckF0
dGFjaG1lbnQpMCwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSBvcmlnaW4g
b2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3JzLiJfcyB9KTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghaXNXZWJCcm93c2VyKCkpIHsKLSAg
ICAgICAgV0VCQVVUSE5fUkVMRUFTRV9MT0dfRVJST1IoImdldEFzc2VydGlvbjogVGhlICduYXZp
Z2F0b3IuY3JlZGVudGlhbHMuZ2V0JyBBUEkgaXMgb25seSBwZXJtaXR0ZWQgaW4gYXBwbGljYXRp
b25zIHdpdGggdGhlICdjb20uYXBwbGUuZGV2ZWxvcGVyLndlYi1icm93c2VyJyBlbnRpdGxlbWVu
dC4iKTsKLSAgICAgICAgaGFuZGxlcih7IH0sIHN0YXRpY19jYXN0PEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50PigwKSwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSAnbmF2aWdh
dG9yLmNyZWRlbnRpYWxzLmdldCcgQVBJIGlzIG9ubHkgcGVybWl0dGVkIGluIGFwcGxpY2F0aW9u
cyB3aXRoIHRoZSAnY29tLmFwcGxlLmRldmVsb3Blci53ZWItYnJvd3NlcicgZW50aXRsZW1lbnQu
Il9zIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okdl
dEFzc2VydGlvbihoYXNoLCBvcHRpb25zLCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSksIFdURk1v
dmUoaGFuZGxlcikpOworICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpHZXRBc3NlcnRpb24od2ViRnJhbWUt
PmZyYW1lSUQoKSwgd2ViRnJhbWUtPmluZm8oKSwgaGFzaCwgb3B0aW9ucywgbWVkaWF0aW9uLCBz
Y29wZUFuZENyb3NzT3JpZ2luUGFyZW50LnNlY29uZCwgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUp
LCBXVEZNb3ZlKGhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3I6OmlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxl
ciYmIGhhbmRsZXIpCkBAIC0xMzAsMjIgKzk0LDcgQEAgdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3I6OmlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUoUXVlcnlDb21wbGV0aW8K
IAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmlzVXNlclZlcmlmeWluZ1BsYXRm
b3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxl
cikKIHsKLSNpZiBIQVZFKFVOSUZJRURfQVNDX0FVVEhfVUkpCi0gICAgYm9vbCB1c2VXZWJBdXRo
blByb2Nlc3MgPSBmYWxzZTsKLSNlbHNlCi0gICAgYm9vbCB1c2VXZWJBdXRoblByb2Nlc3MgPSBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRW5hYmxlZCgpOwotI2VuZGlmCi0gICAgaWYgKCF1c2VXZWJBdXRoblByb2Nlc3MpIHsK
LSAgICAgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHk6OklzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGlj
YXRvckF2YWlsYWJsZSgpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGlmICghaXNXZWJCcm93c2VyKCkpIHsKLSAgICAgICAgV0VCQVVUSE5fUkVMRUFT
RV9MT0dfRVJST1JfTk9fRlJBTUUoImlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRv
ckF2YWlsYWJsZTogV2ViQXV0aG4gaXMgb25seSBwZXJtaXR0ZWQgaW4gYXBwbGljYXRpb25zIHdp
dGggdGhlICdjb20uYXBwbGUuZGV2ZWxvcGVyLndlYi1icm93c2VyJyBlbnRpdGxlbWVudC4iKTsK
LSAgICAgICAgaGFuZGxlcihmYWxzZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6SXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxh
YmxlKCksIFdURk1vdmUoaGFuZGxlcikpOworICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpJc1VzZXJWZXJp
ZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSwgV1RGTW92ZShoYW5kbGVyKSk7
CiB9CiAKIGJvb2wgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpwcm9jZXNzaW5nVXNlckdl
c3R1cmUoY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUlkZW50aWZpZXImIGZyYW1lSUQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkMTNmNzNiYjdmODkzOTJmMzc3NzY4MzQzMDc5YTNhYTc1
ZDEzYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
LmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0
aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIK
LSNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7Ci0KLVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OldlYkF1dGhuUHJv
Y2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyKQotICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlQ2xpZW50
Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQotewotICAgIG1fY29ubmVj
dGlvbi0+b3BlbigpOwotfQotCi1XZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uOjp+V2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbigpCi17Ci0gICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Ci19
Ci0KLXZvaWQgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJikKLXsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uQ2xvc2VkKHRoaXMpOwotfQotCi12b2lkIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VO
YW1lKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShX
RUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI5NWJhNTNkM2FlYzNmMzg1MDMzNzUxZGJkYjAz
ZmJjNGQ5YTlhMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9j
ZXNzQ29ubmVjdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViQXV0aG5Q
cm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24+LCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllcikp
OwotICAgIH0KLSAgICB+V2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpOwotCi0gICAgSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Ci0K
LXByaXZhdGU6Ci0gICAgV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpOwotCi0gICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKLSAgICB2b2lk
IGRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkUmVjZWl2
ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6TWVzc2FnZU5hbWUpIG92ZXJy
aWRlOwotCi0gICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhl
IFdlYkF1dGhuIHByb2Nlc3MuCi0gICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjgzZjU4YTg2Y2RlNzNj
ZTIwYzdlYTU0NGJmMzU5N2I4Mjk1NTZiZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBA
IC0xLDI4ICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0j
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
I2lmIEVOQUJMRShXRUJfQVVUSE4pCi0KLW1lc3NhZ2VzIC0+IFdlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24gewotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uSW5mby5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDkwN2Y4M2U3NjQwOTY0ZmFlOWIzMWNmMjNmN2Q4OTQwMTY3ZWY2NDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBACi0vKgotKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKgotKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0q
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0qIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0qIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0qIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0qIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFdFQl9B
VVRITikKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uSW5mbyB7Ci0gICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb247Ci0KLSAgICBJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0Ci0gICAgewotICAgICAg
ICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24ucG9ydCgpKTsK
LSAgICB9Ci0KLSAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgcmVsZWFzZUlkZW50aWZp
ZXIoKQotICAgIHsKLSAgICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IGlkZW50aWZpZXIoKTsKLSAg
ICAgICAgY29ubmVjdGlvbiA9IHsgfTsKLSAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOwotICAg
IH0KLQotICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKLSAgICB7
Ci0gICAgICAgIGVuY29kZXIgPDwgY29ubmVjdGlvbjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8mIGluZm8pCi0gICAgewotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGluZm8uY29ubmVjdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAot
Ci0jZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCBlYTI3MTg0MDYwNDQ0ZmIyNzUwMzNmZTc3MjE3OTZmOTNkMTRhZTVkLi5lYzkyNGJkODkxYjFh
OWM0MThlYjdiNTliNmI2YTRkMGEyZTMzMTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAt
MTE4LDggKzExOCw2IEBACiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0jaW5jbHVk
ZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJX
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uLmg+CiAjZW5kaWYKIApAQCAtMTQ5OCwxMiArMTQ5Niw3
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRVc2VySXNJbnRlcmFjdGluZyhib29sIHVzZXJJ
c0ludGVyYWN0aW5nKQogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihjb25zdCBNb2NrV2ViQXV0
aGVudGljYXRpb25Db25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogewotICAgIGlmICghUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkVuYWJsZWQoKSkgewotICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24p
KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmVuc3VyZVdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRNb2NrV2ViQXV0aGVudGlj
YXRpb25Db25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pLCB7IH0pOworICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3Vy
YXRpb24oY29uZmlndXJhdGlvbikpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCA1M2Y4YTU2Y2QyYmY4YTM4MGM5MWYyOGUyN2U3YjYzODA2
YjdlMzM5Li5kNzdlMDNkYjEyN2E1YWFhZDQxMDkxNmEyZDUxNjhhNGIxMjRhNzMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xOTIsMTIgKzE5Miw2IEBACiAj
aW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJM
RShXRUJfQVVUSE4pCi0jaW5jbHVkZSAiV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVz
c2FnZXMuaCIKLSNpbmNsdWRlICJXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmgiCi0jaW5jbHVk
ZSAiV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxF
KFJFTU9URV9JTlNQRUNUT1IpCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVj
dG9yLmg+CiAjZW5kaWYKQEAgLTEzODQsNTcgKzEzNzgsNiBAQCBBdWRpb01lZGlhU3RyZWFtVHJh
Y2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXImIFdlYlByb2Nlc3M6OmF1ZGlvTWVkaWFTdHJl
YW1UcgogCiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaWYgRU5BQkxFKFdFQl9B
VVRITikKLQotc3RhdGljIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIGdldFdlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQotewotICAgIFdl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIGNvbm5lY3Rpb25JbmZvOwotICAgIGlmICghY29u
bmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRXZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uKCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFdlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGNvbm5lY3Rpb25JbmZvKSwgMCkpIHsKLSAgICAgICAg
Ly8gSWYgd2UgZmFpbGVkIHRoZSBmaXJzdCB0aW1lLCByZXRyeSBvbmNlLiBUaGUgYXR0YWNobWVu
dCBtYXkgaGF2ZSBiZWNvbWUgaW52YWxpZAotICAgICAgICAvLyBiZWZvcmUgaXQgd2FzIHJlY2Vp
dmVkIGJ5IHRoZSB3ZWIgcHJvY2VzcyBpZiB0aGUgbmV0d29yayBwcm9jZXNzIGNyYXNoZWQuCi0g
ICAgICAgIGlmICghY29ubmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCksIE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGNvbm5lY3Rpb25JbmZvKSwg
MCkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFdlYkF1dGhuLCAiZ2V0V2ViQXV0
aG5Qcm9jZXNzQ29ubmVjdGlvbjogVW5hYmxlIHRvIGNvbm5lY3QgdG8gV2ViQXV0aG4gcHJvY2Vz
cyAoVGVybWluYXRpbmcpIik7Ci0gICAgICAgICAgICBmYWlsZWRUb1NlbmRTeW5jTWVzc2FnZSgp
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIGNvbm5lY3Rpb25JbmZvOwotfQotCi1X
ZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uJiBXZWJQcm9jZXNzOjplbnN1cmVXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uKCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
Ci0KLSAgICAvLyBJZiB3ZSd2ZSBsb3N0IG91ciBjb25uZWN0aW9uIHRvIHRoZSBXZWJBdXRobiBw
cm9jZXNzIChlLmcuIGl0IGNyYXNoZWQpIHRyeSB0byByZS1lc3RhYmxpc2ggaXQuCi0gICAgaWYg
KCFtX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24pIHsKLSAgICAgICAgYXV0byBjb25uZWN0aW9u
SW5mbyA9IGdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCkpOwotCi0gICAgICAgIC8vIFJldHJ5IG9uY2UgaWYgdGhlIElQQyB0byBnZXQgdGhlIGNv
bm5lY3Rpb25JZGVudGlmaWVyIHN1Y2NlZWRlZCBidXQgdGhlIGNvbm5lY3Rpb25JZGVudGlmaWVy
IHdlIHJlY2VpdmVkCi0gICAgICAgIC8vIGlzIGludmFsaWQuIFRoaXMgbWF5IGluZGljYXRlIHRo
YXQgdGhlIFdlYkF1dGhuIHByb2Nlc3MgaGFzIGNyYXNoZWQuCi0gICAgICAgIGlmICghSVBDOjpD
b25uZWN0aW9uOjppZGVudGlmaWVySXNWYWxpZChjb25uZWN0aW9uSW5mby5pZGVudGlmaWVyKCkp
KQotICAgICAgICAgICAgY29ubmVjdGlvbkluZm8gPSBnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uKCpwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKTsKLQotICAgICAgICBpZiAoIUlQQzo6Q29u
bmVjdGlvbjo6aWRlbnRpZmllcklzVmFsaWQoY29ubmVjdGlvbkluZm8uaWRlbnRpZmllcigpKSkg
ewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoV2ViQXV0aG4sICJlbnN1cmVXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uOiBDb25uZWN0aW9uIGlkZW50aWZpZXIgZm9yIFdlYkF1dGhuIHBy
b2Nlc3MgaXMgaW52YWxpZC4iKTsKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBtX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbkluZm8ucmVsZWFzZUlkZW50aWZpZXIoKSk7Ci0gICAg
fQotCi0gICAgcmV0dXJuICptX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb247Ci19Ci0KLXZvaWQg
V2ViUHJvY2Vzczo6d2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQotewotICAgIEFTU0VSVChtX3dlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24pOwotICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgbV93ZWJBdXRoblBy
b2Nlc3NDb25uZWN0aW9uID09IGNvbm5lY3Rpb24pOwotCi0gICAgbV93ZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uID0gbnVsbHB0cjsKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCi0K
IHZvaWQgV2ViUHJvY2Vzczo6c2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKIHsK
ICAgICBXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nl
c3NpYmlsaXR5KGZsYWcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXgg
NmMxMzM2Y2ZhOGY5OGZhZDA4OTRmNWFlYWU1YTJhZGJiMjYzMTlkMC4uMzYxNTVhNzI3OGFmZWIw
ZDlkZWMwMWZiYTdjYTBmZTk4Njc2NTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCkBAIC0xMzEsNyArMTMxLDYgQEAgY2xhc3MgUmVtb3RlV2ViTG9ja1JlZ2lzdHJ5Owog
Y2xhc3MgU3RvcmFnZUFyZWFNYXA7CiBjbGFzcyBVc2VyRGF0YTsKIGNsYXNzIFdheWxhbmRDb21w
b3NpdG9yRGlzcGxheTsKLWNsYXNzIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OwogY2xhc3MgV2ViQnJvYWRjYXN0Q2hhbm5lbFJlZ2lz
dHJ5OwogY2xhc3MgV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CkBAIC0yNjQsMTIgKzI2Myw2IEBA
IHB1YmxpYzoKICAgICBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5JiBtZWRp
YUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5KCk7CiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQogCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLSAgICBXZWJBdXRoblByb2Nlc3NDb25uZWN0
aW9uJiBlbnN1cmVXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAgdm9pZCB3ZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24qKTsKLSAg
ICBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKiBleGlzdGluZ1dlYkF1dGhuUHJvY2Vzc0Nvbm5l
Y3Rpb24oKSB7IHJldHVybiBtX3dlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uZ2V0KCk7IH0KLSNl
bmRpZgotCiAgICAgTGliV2ViUlRDTmV0d29yayYgbGliV2ViUlRDTmV0d29yaygpOwogCiAgICAg
dm9pZCBzZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpOwpAQCAtNjYwLDExICs2NTMsNiBAQCBwcml2
YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlcklu
dGVybmFsVW5pdE1hbmFnZXI+IG1fYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXRNYW5hZ2VyOwogI2VuZGlmCiAjZW5kaWYKLQotI2lmIEVOQUJMRShXRUJfQVVUSE4pCi0g
ICAgUmVmUHRyPFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fd2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbjsKLSNlbmRpZgotCiAgICAgUmVmPFdlYkNhY2hlU3RvcmFnZVByb3ZpZGVyPiBtX2Nh
Y2hlU3RvcmFnZVByb3ZpZGVyOwogICAgIFJlZjxXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnk+
IG1fYnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5OwogICAgIFJlZjxSZW1vdGVXZWJMb2NrUmVnaXN0
cnk+IG1fd2ViTG9ja1JlZ2lzdHJ5OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGFkZDU0YjUwZGY4Y2FmODhlZmJiMDkwNjBkYjJkZGIxZmQ0Yjk0
MmQuLmNjYTdhZDBkODYxMWI1NTliYzU1ZGFiYzFhYWU3NzZjMDVmM2RmYTYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMi0wNC0xMiAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YkF1dGhuXSBDbGVhbiB1cCBXZWJBdXRoZW50aWNhdGlvbk1vZGVybiBhbmQgV2ViQXV0aG5Qcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkw
NzMKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vOTE1NzEwMzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjp3ZWJBdXRoZW50aWNh
dGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUpOiBEZWxldGVkLgorCiAyMDIyLTA0LTE0ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCBpbmVmZmljaWVu
dCBTdHJpbmc6OmFwcGVuZCgpIG92ZXJsb2FkcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLm1tCmluZGV4IGVlZTNlMDI4MTVkZTJkMWI5OGE1ZTI1NzEwNDQ0NzVlNTI4ZWEzZmIuLjY2
NjM3OWZhYTI2MDI4NDM2YTZkYjIzZWUwOThjYjk2MzkxMmNjOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTMwMSwyMiArMzAxLDYgQEAgc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIHN1YkZyYW1lID0KICI8L3NjcmlwdD4iCiAiPC9odG1sPiJfczsKIAotc3RhdGljIF9X
S0V4cGVyaW1lbnRhbEZlYXR1cmUgKndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpCi17Ci0gICAgc3RhdGljIFJldGFpblB0cjxfV0tFeHBlcmltZW50YWxGZWF0dXJl
PiB0aGVGZWF0dXJlOwotICAgIGlmICh0aGVGZWF0dXJlKQotICAgICAgICByZXR1cm4gdGhlRmVh
dHVyZS5nZXQoKTsKLQotICAgIE5TQXJyYXkgKmZlYXR1cmVzID0gW1dLUHJlZmVyZW5jZXMgX2V4
cGVyaW1lbnRhbEZlYXR1cmVzXTsKLSAgICBmb3IgKF9XS0V4cGVyaW1lbnRhbEZlYXR1cmUgKmZl
YXR1cmUgaW4gZmVhdHVyZXMpIHsKLSAgICAgICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsOkAi
V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkIl0pIHsKLSAgICAgICAgICAgIHRoZUZlYXR1
cmUgPSBmZWF0dXJlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
cmV0dXJuIHRoZUZlYXR1cmUuZ2V0KCk7Ci19Ci0KIHN0YXRpYyB2b2lkIHJlc2V0KCkKIHsKICAg
ICB3ZWJBdXRoZW50aWNhdGlvblBhbmVsUmFuID0gZmFsc2U7CkBAIC00NTIsNyArNDM2LDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3MxKQogICAgIFJldGFp
blB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3Vy
Y2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKQEAgLTQ3NCw3ICs0NTcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBh
bmVsSGlkU3VjY2VzczIpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNy
ZWRlbnRpYWwtaGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01MDEsNyArNDgzLDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbFJhY3kxKQogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTUyNSw3ICs1MDYsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBhbmVsUmFjeTIp
CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLW5mYyIgd2l0
aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1Bs
dWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2Nv
bmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZl
YXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwpAQCAtNTQ5LDcgKzUyOSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGFuZWxUd2ljZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6
Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1l
bnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC01NzIsNyArNTUxLDYgQEAg
VEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBSZWxvYWRIaWRDYW5jZWwpCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1jYW5jZWwiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKQEAgLTU5Miw3ICs1NzAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsIExvY2F0aW9uQ2hhbmdlSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gb3RoZXJV
UkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC02MTIsNyArNTg5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBOZXdMb2FkSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gb3RoZXJVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
IAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVz
dF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0lu
V2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmln
dXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVy
ZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CkBAIC02MzEsNyArNjA3LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBDbG9zZUhpZENhbmNlbCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdl
dC1hc3NlcnRpb24taGlkLWNhbmNlbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9u
ID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1
Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpT
Q0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRF
bmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5F
eHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJB
dXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNjcxLDcgKzY0
Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgU3ViRnJhbWVDaGFuZ2VMb2NhdGlv
bkhpZENhbmNlbCkKICAgICB9KTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03MTgsNyArNjkyLDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBTdWJGcmFtZURlc3RydWN0aW9uSGlkQ2FuY2VsKQog
ICAgIH0pOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTczNyw3ICs3MTAsNiBAQCBURVNUKFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwsIFBhbmVsSGlkQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGlj
YXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3Vi
ZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNl
c10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC03
NTcsNyArNzI5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZEN0YXBO
b0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQt
YXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZp
Z3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNd
IF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25N
b2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
c3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtNzc1
LDcgKzc0Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxVMmZDdGFwTm9D
cmVkZW50aWFsc0ZvdW5kKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi11MmYtbm8tY3JlZGVudGlhbHMiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTc5Myw3
ICs3NjMsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIEZha2VQYW5lbEhpZFN1Y2Nl
c3MpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZCIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vz
c1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBb
W2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRh
bEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtODEyLDcgKzc4MSw2IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgRmFrZVBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZCkKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW5vLWNyZWRlbnRpYWxz
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9j
ZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAg
IFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVu
dGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC04MzEsNyArNzk5LDYgQEAgVEVTVChXZWJBdXRoZW50
aWNhdGlvblBhbmVsLCBOdWxsUGFuZWxIaWRTdWNjZXNzKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0
aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmln
dXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRo
VGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25m
aWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2Vz
XSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tU
ZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTg1
MCw3ICs4MTcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE51bGxQYW5lbEhpZEN0
YXBOb0NyZWRlbnRpYWxzRm91bmQpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tO
U0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1n
ZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
ODcwLDcgKzgzNiw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxNdWx0aXBs
ZU5GQ1RhZ3NQcmVzZW50KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFz
c2VydGlvbi1uZmMtbXVsdGlwbGUtdGFncyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtODg5LDcg
Kzg1NCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGFuZWxIaWRDYW5jZWxSZWxv
YWROb0NyYXNoKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFp
bkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlv
bi1oaWQtY2FuY2VsIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05h
bWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGlu
ZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8g
Zm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRh
bEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC05MDksNyArODczLDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQYW5lbEhpZFN1Y2Nlc3NDYW5jZWxOb0NyYXNoKQog
ICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJM
Rm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTkyNyw3ICs4OTAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIFBhbmVsSGlkQ3RhcE5vQ3JlZGVudGlhbHNGb3VuZENhbmNlbE5vQ3Jhc2gpCiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1uby1jcmVkZW50
aWFscyIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2Vi
UHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsK
LSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVy
aW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJl
KCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsK
ICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVs
VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtOTQ1LDcgKzkwNyw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgUGluR2V0UmV0cmllc0Vycm9yKQogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWIt
YXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXJldHJpZXMtZXJyb3Ii
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nl
c3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAg
W1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50
YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsK
IAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAg
W3dlYlZpZXcgZm9jdXNdOwpAQCAtOTU5LDcgKzkyMCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgUGluR2V0S2V5QWdyZWVtZW50RXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRo
ZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQta2V5LWFncmVlbWVudC1lcnJv
ciIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJv
Y2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAg
ICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1l
bnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCld
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAg
ICBbd2ViVmlldyBmb2N1c107CkBAIC05NzMsNyArOTMzLDYgQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJyb3JOb0RlbGVnYXRlKQogICAgIFJldGFpblB0cjxO
U1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3
ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgW3dlYlZpZXcgZm9jdXNd
OwpAQCAtOTg3LDcgKzk0Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluUmVx
dWVzdFBpbkVycm9yTnVsbERlbGVnYXRlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRp
b24tbWFrZS1jcmVkZW50aWFsLWhpZC1waW4iIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEwMDUs
NyArOTYzLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQaW5SZXF1ZXN0UGluRXJy
b3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlk
LXBpbi1nZXQtcGluLXRva2VuLWZha2UtcGluLWludmFsaWQtZXJyb3ItcmV0cnkiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
CiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5X
aXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1
cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJl
OndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKQEAgLTEwMjUsNyArOTgyLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBQaW5HZXRQaW5Ub2tlblBpbkJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWdldC1waW4tdG9rZW4tcGluLWJs
b2NrZWQtZXJyb3IiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEwNDUsNyArMTAwMSw2IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgUGluR2V0UGluVG9rZW5QaW5BdXRoQmxvY2tlZEVy
cm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWhp
ZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0aC1ibG9ja2VkLWVycm9yIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xMDY1LDcgKzEwMjAsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IFBpbkdldFBpblRva2VuUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0YWluUHRyPE5T
VVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndl
Yi1hdXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1nZXQtcGluLXRva2VuLXBp
bi1pbnZhbGlkLWVycm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5
OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24g
PSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlND
Rm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVu
YWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4
cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMDg0LDcgKzEw
MzgsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFBpbkdldFBpblRva2VuUGluQXV0
aEludmFsaWRFcnJvckFuZFJldHJ5KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWhpZC1waW4tZ2V0LXBpbi10b2tlbi1waW4tYXV0aC1pbnZhbGlkLWVy
cm9yLXJldHJ5IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9y
RXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZl
YXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlv
bl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMTAzLDcgKzEwNTYsNiBAQCBURVNU
KFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsSW50ZXJuYWxVVikKICAgICBS
ZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtaW50ZXJuYWwt
dXYiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTExMjAsNyArMTA3Miw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW4pCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbiIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwpAQCAtMTEzOCw3ICsxMDg5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBNYWtl
Q3JlZGVudGlhbFBpbkF1dGhCbG9ja2VkRXJyb3IpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0
VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50
aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtaGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTExNTgsNyArMTEwOCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTWFrZUNyZWRlbnRpYWxQaW5JbnZhbGlkRXJyb3JBbmRSZXRyeSkKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1oaWQtcGluLWludmFsaWQt
ZXJyb3ItcmV0cnkiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2Vi
S2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFt
ZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5n
OllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBm
b3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFs
RmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRp
b25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTExNzcsNyArMTEyNiw2IEBAIFRF
U1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uUGluKQogICAgIFJldGFpblB0
cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1oaWQtcGluIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xMTk1LDcgKzExNDMsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IEdldEFzc2VydGlvbkludGVybmFsVVYpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11diIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNv
bmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5j
ZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRp
b25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25m
aWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAt
MTIxMiw3ICsxMTU5LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBHZXRBc3NlcnRp
b25JbnRlcm5hbFVWUGluRmFsbGJhY2spCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWhpZC1pbnRlcm5hbC11di1waW4tZmFsbGJhY2siIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAg
ICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2Nv
bmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRo
SW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
WmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKQEAgLTEyMzAsNyArMTE3Niw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgR2V0QXNzZXJ0aW9uUGluQXV0aEJsb2NrZWRFcnJvcikKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLXBpbi1hdXRoLWJsb2NrZWQtZXJyb3IiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9u
IF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQ
bHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tj
b25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxG
ZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAog
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyNTAsNyArMTE5NSw2IEBAIFRFU1QoV2ViQXV0aGVudGlj
YXRpb25QYW5lbCwgR2V0QXNzZXJ0aW9uUGluSW52YWxpZEVycm9yQW5kUmV0cnkpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1waW4taW52YWxpZC1l
cnJvci1yZXRyeSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1l
OkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6
WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZv
ckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxG
ZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlv
blBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTI3MCw3ICsxMjE0LDYgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBOZmNQaW5DYWNoZWREaXNjb25uZWN0KQogICAgIFJl
dGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVz
b3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tZ2V0LWFzc2VydGlvbi1uZmMtcGluLWRpc2Nvbm5l
Y3QiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1
cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlBy
b2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0g
ICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmlt
ZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgp
XTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJ
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTEyODksNyArMTIzMiw2IEBAIFRFU1QoV2ViQXV0
aGVudGljYXRpb25QYW5lbCwgTXVsdGlwbGVBY2NvdW50c051bGxEZWxlZ2F0ZSkKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24taGlkLW11bHRpcGxlLWFjY291
bnRzIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQ
cm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwot
ICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJp
bWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUo
KV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwog
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxV
SURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMzA3LDcgKzEyNDksNiBAQCBURVNUKFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWwsIE11bHRpcGxlQWNjb3VudHMpCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWhpZC1tdWx0aXBsZS1hY2NvdW50cyIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rl
c3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJ
bldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZp
Z3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1
cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRl
bGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwpAQCAtMTMyOSw3ICsxMjcwLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlv
blBhbmVsLCBMQUVycm9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24tbWFrZS1j
cmVkZW50aWFsLWxhLWVycm9yIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xMzQ2LDcgKzEyODYs
NiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBRHVwbGljYXRlQ3JlZGVudGlhbCkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYS1kdXBs
aWNhdGUtY3JlZGVudGlhbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3VyZUpTQ0ZvclRl
c3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRFbmFibGVk
Ok5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FeHBlcmlt
ZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RXZWJBdXRoZW50
aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM2NSw3ICsxMzA0LDYg
QEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUR1cGxpY2F0ZUNyZWRlbnRpYWxXaXRo
Q29uc2VudCkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5C
dW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlh
bC1sYS1kdXBsaWNhdGUtY3JlZGVudGlhbCIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVj
dG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpjb25maWd1cmF0
aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0
UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiIGNvbmZpZ3Vy
ZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9z
ZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGljYXRpb25Nb2Rl
cm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RX
ZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpAQCAtMTM5MCw3
ICsxMzI4LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU5vQ3JlZGVudGlhbCkK
ICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVS
TEZvclJlc291cmNlOkAid2ViLWF1dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90
ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVn
SW5XaXRoSW50ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0
dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TWmVyb1JlY3QgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKQEAgLTE0MDcsNyArMTM0NCw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRp
b25QYW5lbCwgTEFNYWtlQ3JlZGVudGlhbE51bGxEZWxlZ2F0ZSkKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2Vi
LWF1dGhlbnRpY2F0aW9uLW1ha2UtY3JlZGVudGlhbC1sYSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvICpj
b25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlv
bldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMi
IGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVy
ZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVudGlj
YXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVjdCBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwpA
QCAtMTQyNSw3ICsxMzYxLDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQU1ha2VD
cmVkZW50aWFsRGlzYWxsb3dMb2NhbEF1dGhlbnRpY2F0b3IpCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1h
dXRoZW50aWNhdGlvbi1tYWtlLWNyZWRlbnRpYWwtbGEiIHdpdGhFeHRlbnNpb246QCJodG1sIiBz
dWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29u
ZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25X
aXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBj
b25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXSBfc2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAg
LTE0NDIsNyArMTM3Nyw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFNYWtlQ3Jl
ZGVudGlhbEFsbG93TG9jYWxBdXRoZW50aWNhdG9yKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVz
dFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVu
dGljYXRpb24tbWFrZS1jcmVkZW50aWFsLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3Vy
YXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRl
c3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmln
dXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10g
X3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0xNDYz
LDcgKzEzOTcsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIExBTWFrZUNyZWRlbnRp
YWxOb01vY2tOb1VzZXJHZXN0dXJlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ3ZWItYXV0aGVudGljYXRpb24t
bWFrZS1jcmVkZW50aWFsLWxhLW5vLW1vY2siIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byAqY29uZmlndXJh
dGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZpZ3VyYXRpb25XaXRoVGVz
dFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50ZXJuYWxzIiBjb25maWd1
cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSBf
c2V0RW5hYmxlZDpOTyBmb3JFeHBlcmltZW50YWxGZWF0dXJlOndlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRXhwZXJpbWVudGFsRmVhdHVyZSgpXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVyb1JlY3QgY29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXSk7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
V2ViQXV0aGVudGljYXRpb25QYW5lbFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKQEAgLTE0ODIs
NyArMTQxNSw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgTEFHZXRBc3NlcnRpb24p
CiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBV
UkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRo
RXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
dGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1
Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29u
ZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVh
dHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CkBAIC0xNTAyLDcgKzE0MzQsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIExBR2V0QXNzZXJ0aW9uTXVsdGlwbGVDcmVkZW50aWFsU3RvcmUpCiAgICAgUmV0
YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNv
dXJjZTpAIndlYi1hdXRoZW50aWNhdGlvbi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc10gX3NldEVuYWJsZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBp
bml0XSk7CkBAIC0xNTMwLDcgKzE0NjEsNiBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWws
IExBR2V0QXNzZXJ0aW9uTm9Nb2NrTm9Vc2VyR2VzdHVyZSkKICAgICBSZXRhaW5QdHI8TlNVUkw+
IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAid2ViLWF1
dGhlbnRpY2F0aW9uLWdldC1hc3NlcnRpb24tbGEtbm8tbW9jayIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRv
ICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJh
dGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5h
bHMiIGNvbmZpZ3VyZUpTQ0ZvclRlc3Rpbmc6WUVTXTsKLSAgICBbW2NvbmZpZ3VyYXRpb24gcHJl
ZmVyZW5jZXNdIF9zZXRFbmFibGVkOk5PIGZvckV4cGVyaW1lbnRhbEZlYXR1cmU6d2ViQXV0aGVu
dGljYXRpb25Nb2Rlcm5FeHBlcmltZW50YWxGZWF0dXJlKCldOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNaZXJvUmVj
dCBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKICAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RXZWJBdXRoZW50aWNhdGlvblBhbmVsVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OwpAQCAtMTU0Nyw3ICsxNDc3LDYgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBMQUdl
dEFzc2VydGlvbk11bHRpcGxlT3JkZXIpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIndlYi1hdXRoZW50aWNhdGlv
bi1nZXQtYXNzZXJ0aW9uLWxhIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAi
VGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gKmNvbmZpZ3VyYXRpb24gPSBb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5D
bGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9y
VGVzdGluZzpZRVNdOwotICAgIFtbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10gX3NldEVuYWJs
ZWQ6Tk8gZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJBdXRoZW50aWNhdGlvbk1vZGVybkV4cGVy
aW1lbnRhbEZlYXR1cmUoKV07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1plcm9SZWN0IGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbl0pOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFdlYkF1dGhl
bnRpY2F0aW9uUGFuZWxVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CkBAIC0yMzQxLDYgKzIyNzAs
NyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFVwZGF0ZUNyZWRlbnRpYWxVc2VybmFt
ZSkKIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgRXhwb3J0SW1wb3J0Q3JlZGVudGlhbCkK
IHsKICAgICByZXNldCgpOworICAgIGNsZWFuVXBLZXljaGFpbigiZXhhbXBsZS5jb20iX3MpOwog
CiAgICAgYWRkS2V5VG9LZXljaGFpbih0ZXN0RVMyNTZQcml2YXRlS2V5QmFzZTY0LCAiZXhhbXBs
ZS5jb20iX3MsIHRlc3RVc2VyRW50aXR5QnVuZGxlQmFzZTY0KTsKIApAQCAtMjQxMiw1OCArMjM0
Miw2IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5lbCwgRGVsZXRlT25lQ3JlZGVudGlhbCkK
IH0KICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSB8fCBQTEFURk9STShJT1MpCiAK
LSNpZiBQTEFURk9STShJT1MpCi1URVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIFJlY292ZXJB
ZnRlckF1dGhOUHJvY2Vzc0NyYXNoKQotewotICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIg
c2VydmVyKHsKLSAgICAgICAgeyAiLyJfcywgeyAiRk9PIl9zIH0gfQotICAgIH0pOwotCi0gICAg
YXV0byAqY29uZmlndXJhdGlvbiA9IFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0X2NvbmZp
Z3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTpAIldlYlByb2Nlc3NQbHVnSW5XaXRoSW50
ZXJuYWxzIiBjb25maWd1cmVKU0NGb3JUZXN0aW5nOllFU107Ci0gICAgW1tjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXSBfc2V0RW5hYmxlZDpZRVMgZm9yRXhwZXJpbWVudGFsRmVhdHVyZTp3ZWJB
dXRoZW50aWNhdGlvbk1vZGVybkV4cGVyaW1lbnRhbEZlYXR1cmUoKV07Ci0KLSAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU1pl
cm9SZWN0IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwotICAgIEVYUEVDVF9FUShbV0tQ
cm9jZXNzUG9vbCBfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0sIDApOwotCi0gICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRwOi8v
bG9jYWxob3N0OiVkLyIsIHNlcnZlci5wb3J0KCldXV1dOwotICAgIFt3ZWJWaWV3IGZvY3VzXTsK
LQotICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJpbnRlcm5hbHMu
c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbih7IH0pIl07Ci0gICAgYXV0byBm
aXJzdFdlYlBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07Ci0gICAgYXV0byBm
aXJzdFdlYkF1dGhuUElEID0gW1dLUHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZp
ZXJdOwotICAgIEVYUEVDVF9ORShmaXJzdFdlYlBJRCwgMCk7Ci0gICAgRVhQRUNUX05FKGZpcnN0
V2ViQXV0aG5QSUQsIDApOwotCi0gICAga2lsbChmaXJzdFdlYkF1dGhuUElELCBTSUdLSUxMKTsK
LSAgICB3aGlsZSAoW1dLUHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdKQot
ICAgICAgICBVdGlsOjpzcGluUnVuTG9vcCgpOwotCi0gICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAImludGVybmFscy5zZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25m
aWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAncmVxdWVzdCcsIHN1YlN0YWdlOiAnbXNnJywgZXJy
b3I6ICdzdWNjZXNzJywgaXNVMmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFsnQVFBQUFEc3dSQUln
ZTk0S1Vxd2ZUSXNuNEFPamNNMW1wTWNSamRJdFZFZURYMFc1bkdoQ1AvY0NJRHhSZTBlSGY0VjRM
ZUVBaHFlRDBlZmZUalk1NTNIMTlxK2pXcTFUYzRXT2tBQT0nXSB9IH0pOyJdOwotCi0gICAgd2hp
bGUgKCFbV0tQcm9jZXNzUG9vbCBfd2ViQXV0aG5Qcm9jZXNzSWRlbnRpZmllcl0pCi0gICAgICAg
IFV0aWw6OnNwaW5SdW5Mb29wKCk7Ci0KLSAgICBhdXRvIHNlY29uZFdlYkF1dGhuUElEID0gW1dL
UHJvY2Vzc1Bvb2wgX3dlYkF1dGhuUHJvY2Vzc0lkZW50aWZpZXJdOwotICAgIEVYUEVDVF9ORShz
ZWNvbmRXZWJBdXRoblBJRCwgZmlyc3RXZWJBdXRoblBJRCk7Ci0gICAgRVhQRUNUX0VRKFt3ZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0sIGZpcnN0V2ViUElEKTsKLQotICAgIF9fYmxvY2sg
Ym9vbCBnb3RNZXNzYWdlID0gZmFsc2U7Ci0gICAgW3dlYlZpZXcgcGVyZm9ybUFmdGVyUmVjZWl2
aW5nQW55TWVzc2FnZTpeKE5TU3RyaW5nICptZXNzYWdlKSB7Ci0gICAgICAgIEVYUEVDVF9XS19T
VFJFUShAInB1YmxpYy1rZXkiLCBtZXNzYWdlKTsKLSAgICAgICAgZ290TWVzc2FnZSA9IHRydWU7
Ci0gICAgfV07Ci0KLSAgICBfX2Jsb2NrIGJvb2wgZXhlY3V0ZWRTY3JpcHQgPSBmYWxzZTsKLSAg
ICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJuYXZpZ2F0b3IuY3JlZGVudGlhbHMuZ2V0
KHsgcHVibGljS2V5OiB7IGNoYWxsZW5nZTogbmV3IFVpbnQ4QXJyYXkoWzQ5LCA1MCwgNTEsIDUy
LCA1MywgNTRdKSwgYWxsb3dDcmVkZW50aWFsczogW3sgdHlwZTogJ3B1YmxpYy1rZXknLCBpZDog
bmV3IFVpbnQ4QXJyYXkoQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKGF0b2IoJ1ByMkp2M2ZzVUpk
Vjdwd21OZStxckhzcm5GenZGemJEY1gya2hUVEl4clpVMS8rVVgxQzF6RTU0QlZ2ZE9XdGs5NDJp
eGZsaUFNelVGYzBJL2tJQU9BJyksIGZ1bmN0aW9uIChjKSB7IHJldHVybiBjLmNoYXJDb2RlQXQo
MCkgfSkpIH1dLCB0aW1lb3V0OiAxMDAgfSB9KS50aGVuKGNyZWRlbnRpYWwgPT4geyB3ZWJraXQu
bWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGNyZWRlbnRpYWwudHlwZSk7
IH0sIGUgPT4geyB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KCcnICsgZSk7IH0pICYmIHRydWUiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vy
cm9yICplcnJvcikgewotICAgICAgICBBU1NFUlRfRkFMU0UoZXJyb3IpOwotICAgICAgICBleGVj
dXRlZFNjcmlwdCA9IHRydWU7Ci0gICAgfV07Ci0gICAgVXRpbDo6cnVuKCZleGVjdXRlZFNjcmlw
dCk7Ci0KLSAgICBVdGlsOjpydW4oJmdvdE1lc3NhZ2UpOwotfQotI2VuZGlmIC8vIFBMQVRGT1JN
KElPUykKLQogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYgLy8gRU5BQkxF
KFdFQl9BVVRITikK
</data>

          </attachment>
      

    </bug>

</bugzilla>