<?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>131399</bug_id>
          
          <creation_ts>2014-04-08 15:12:35 -0700</creation_ts>
          <short_desc>[GTK] Remove the WebKitGTK+ WebKit 1 code</short_desc>
          <delta_ts>2014-04-08 17:44:39 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>130899</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>998814</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-08 15:12:35 -0700</bug_when>
    <thetext>Part of removing WebKit1 for GTK+ is to remove the WebKit1 code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998830</commentid>
    <comment_count>1</comment_count>
      <attachid>228901</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-08 15:43:26 -0700</bug_when>
    <thetext>Created attachment 228901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998860</commentid>
    <comment_count>2</comment_count>
      <attachid>228901</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-04-08 16:12:04 -0700</bug_when>
    <thetext>Comment on attachment 228901
Patch

rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998891</commentid>
    <comment_count>3</comment_count>
      <attachid>228901</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-04-08 16:46:39 -0700</bug_when>
    <thetext>Comment on attachment 228901
Patch

Landed in http://trac.webkit.org/changeset/166979.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228901</attachid>
            <date>2014-04-08 15:43:26 -0700</date>
            <delta_ts>2014-04-08 16:46:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-GTK-Remove-the-WebKitGTK-WebKit-1-code.patch</filename>
            <type>text/plain</type>
            <size>2367975</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSAyZDgxODBkZTVlYzk3NjNmNmVhNjUwZjY0ZGYwYmQ1NDZiZDI3NmI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDggQXByIDIwMTQgMTU6Mjg6NTcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBb
R1RLXSBSZW1vdmUgdGhlIFdlYktpdEdUSysgV2ViS2l0IDEgY29kZQogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTM5OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgouOgoKKiBTb3VyY2UvUGxhdGZvcm1HVEsuY21ha2U6IFJlbW92ZSBXZWJLaXQxIGRlcGVu
ZGVuY3kgZnJvbSBkaXN0IHRhcmdldC4KKiBTb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZTog
UmVtb3ZlIG9wdGlvbiB0byBjb21waWxlIHdpdGggR1RLKzIgb3Igd2l0aCBXZWJLaXQyIGRpc2Fi
bGVkLgoKU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvOgoKKiBQT1RGSUxFUy5pbjogUmVt
b3ZlIHJlZmVyZW5jZXMgdG8gV2ViS2l0MSBzb3VyY2UgZmlsZXMgZnJvbSB0aGUgbGlzdCBvZgpm
aWxlcyB3aXRoIHRyYW5zbGF0YWJsZSBzdHJpbmdzLgoKU291cmNlL1dlYktpdDoKCiogUGxhdGZv
cm1HVEsuY21ha2U6IFJlbW92ZWQuCiogZ3RrOiBSZW1vdmUgdGhpcyBlbnRpcmUgZGlyZWN0b3J5
LgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgMTAgKwogU291cmNlL1BsYXRmb3JtR1RLLmNtYWtlICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAgNSAtCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vQ2hhbmdlTG9n
ICAgICAgICAgICB8ICAgIDEwICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RG
SUxFUy5pbiAgICAgICAgIHwgICAgMjEgLQogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICAxMCArCiBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RL
LmNtYWtlICAgICAgICAgICAgICAgICAgICB8ICAgMjQ2IC0KIFNvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDY1NDQgLS0tLS0tCiBTb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2ctMjAxMi0wNS0yMiAgICAgICAgICAgICB8IDIzMzU3IC0tLS0tLS0t
LS0tLS0tLS0tLS0KIC4uLi9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dC5oIHwgICAgOTggLQogLi4uL0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3Bw
ICAgICAgICAgICAgfCAgIDQwOSAtCiAuLi4vV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9CYXR0
ZXJ5Q2xpZW50R3RrLmNwcCB8ICAgIDUwIC0KIC4uLi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0JhdHRlcnlDbGllbnRHdGsuaCAgIHwgICAgNDMgLQogLi4uL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCAgfCAgMTAzNCAtCiBTb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCB8ICAgMTc4IC0KIC4uLi9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwICAgIHwgICAxNjggLQogLi4uL2d0ay9X
ZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5oICAgICAgfCAgICA2NSAtCiAuLi4v
Z3RrL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudEd0ay5jcHAgICB8ICAgIDY5IC0K
IC4uLi9ndGsvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50R3RrLmggICAgIHwgICAg
NDYgLQogLi4uL1dlYkNvcmVTdXBwb3J0L0RldmljZU9yaWVudGF0aW9uQ2xpZW50R3RrLmNwcCAg
fCAgICA2OCAtCiAuLi4vV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGsu
aCAgICB8ICAgIDQ2IC0KIC4uLi9ndGsvV2ViQ29yZVN1cHBvcnQvRG9jdW1lbnRMb2FkZXJHdGsu
Y3BwICAgICAgIHwgICAxMjYgLQogLi4uL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRG9jdW1l
bnRMb2FkZXJHdGsuaCAgfCAgICA3NCAtCiBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EcmFnQ2xpZW50R3RrLmNwcCB8ICAgMTA2IC0KIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0RyYWdDbGllbnRHdGsuaCAgIHwgICAgNjUgLQogLi4uL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgICAgfCAgIDY5NyAtCiAuLi4vZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oICB8ICAgMTQyIC0KIC4uLi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAgIHwgICA1NjMgLQogU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggfCAgIDE1MCAtCiAu
Li4vZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCAgICB8ICAxMjY1
IC0KIC4uLi9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaCAgICAgIHwg
ICAyMDQgLQogLi4uL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3Bw
ICAgfCAgICAzNiAtCiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRHdGsuaCB8ICAgIDQ3IC0KIC4uLi9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGll
bnRHdGsuY3BwICAgIHwgICAxMDIgLQogLi4uL2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlv
bkNsaWVudEd0ay5oICAgICAgfCAgICA3MCAtCiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0L0d0a0Fk
anVzdG1lbnRXYXRjaGVyLmNwcCAgICB8ICAgMTU0IC0KIC4uLi9ndGsvV2ViQ29yZVN1cHBvcnQv
R3RrQWRqdXN0bWVudFdhdGNoZXIuaCAgICAgIHwgICAgNTkgLQogLi4uL2d0ay9XZWJDb3JlU3Vw
cG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwICAgICAgfCAgIDI2OCAtCiAuLi4vV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaCB8ICAgMTA4IC0KIC4uLi9OYXZp
Z2F0b3JDb250ZW50VXRpbHNDbGllbnRHdGsuY3BwICAgICAgICAgICAgIHwgICAgMzUgLQogLi4u
L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEd0ay5oICAgICAgICAgICAgICAgfCAgICAzNyAt
CiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuaCAgICAgICB8ICAg
IDUxIC0KIC4uLi9ndGsvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmNwcCAg
IHwgICAxNDAgLQogLi4uL2d0ay9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsu
aCAgICAgfCAgICA2NiAtCiAuLi4vV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
R3RrLmNwcCAgICB8ICAgIDcxIC0KIC4uLi9ndGsvV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50R3RrLmggIHwgICAgNDQgLQogLi4uL2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hl
Y2tlckNsaWVudEd0ay5jcHAgICAgfCAgICA5NSAtCiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0L1Rl
eHRDaGVja2VyQ2xpZW50R3RrLmggICAgICB8ICAgIDYwIC0KIC4uLi9ndGsvV2ViQ29yZVN1cHBv
cnQvVXNlck1lZGlhQ2xpZW50R3RrLmNwcCAgICAgIHwgICAgNTcgLQogLi4uL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvVXNlck1lZGlhQ2xpZW50R3RrLmggfCAgICA0MyAtCiAuLi4vV2ViQ29y
ZVN1cHBvcnQvV2ViVmlld0lucHV0TWV0aG9kRmlsdGVyLmNwcCAgICB8ICAgMTE3IC0KIC4uLi9n
dGsvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0lucHV0TWV0aG9kRmlsdGVyLmggIHwgICAgNTQgLQog
U291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRlbnZpcm9ubWVudC54bWwgICAgICAgfCAgICA2
NCAtCiBTb3VyY2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWwgICAgICAgICB8
ICAgMTM3IC0KIFNvdXJjZS9XZWJLaXQvZ3RrL2RvY3Mvd2Via2l0Z3RrLW92ZXJyaWRlcy50eHQg
ICAgIHwgICAgIDAKIFNvdXJjZS9XZWJLaXQvZ3RrL2RvY3Mvd2Via2l0Z3RrLXNlY3Rpb25zLnR4
dCAgICAgIHwgICA3NTMgLQogU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGsudHlwZXMg
ICAgICAgICAgICAgfCAgICAyNiAtCiBTb3VyY2UvV2ViS2l0L2d0ay9nZG9tL0NvbnZlcnRUb0dD
aGFyUHJpdmF0ZS5oICAgICB8ICAgIDQ4IC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3Jlc291cmNlcy9l
cnJvci5odG1sICAgICAgICAgICAgIHwgICAgNjAgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0
LnBjLmluICAgICAgICAgICAgICAgICAgICAgfCAgICAxMSAtCiBTb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0LmggICAgICAgICAgICAgICAgICB8ICAgIDU3IC0KIC4uLi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcCAgIHwgICAgODIgLQogU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuaCAgfCAgICAzOCAtCiAuLi4v
Z3RrL3dlYmtpdC93ZWJraXRhdXRoZW50aWNhdGlvbmRpYWxvZy5jcHAgICAgICB8ICAgIDYzIC0K
IC4uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhdXRoZW50aWNhdGlvbmRpYWxvZy5oIHwgICAg
MjYgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRlZmluZXMuaCAgICAgICAgICAg
fCAgIDExNSAtCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG9tLmggICAgICAgICAg
ICAgICB8ICAgIDI1IC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5j
cHAgICAgICAgIHwgICA5ODQgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25s
b2FkLmggICAgICAgICAgfCAgIDEzNSAtCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZG93bmxvYWRwcml2YXRlLmggICB8ICAgIDM2IC0KIC4uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRlbnVtdHlwZXMuY3BwLnRlbXBsYXRlIHwgICAgNjEgLQogLi4uL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGVudW10eXBlcy5oLnRlbXBsYXRlICAgfCAgICA1MyAtCiBTb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZXJyb3IuY3BwICAgICAgICAgICB8ICAgIDM4IC0KIFNvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRlcnJvci5oICAgICAgICAgICAgIHwgICAxMDMgLQogU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAgfCAgIDY1MiAtCiBT
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmggICB8ICAgIDk1
IC0KIC4uLi9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZXByaXZhdGUuaCAgICAgIHwg
ICAgMjUgLQogLi4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZpbGVjaG9vc2VycmVxdWVzdC5j
cHAgfCAgIDM2NiAtCiAuLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmlsZWNob29zZXJyZXF1
ZXN0LmggICB8ICAgIDcxIC0KIC4uLi9ndGsvd2Via2l0L3dlYmtpdGZpbGVjaG9vc2VycmVxdWVz
dHByaXZhdGUuaCAgIHwgICAgMzAgLQogLi4uL2d0ay93ZWJraXQvd2Via2l0Z2VvbG9jYXRpb25w
b2xpY3lkZWNpc2lvbi5jcHAgfCAgIDEwOCAtCiAuLi4vZ3RrL3dlYmtpdC93ZWJraXRnZW9sb2Nh
dGlvbnBvbGljeWRlY2lzaW9uLmggICB8ICAgIDY0IC0KIC4uLi93ZWJraXRnZW9sb2NhdGlvbnBv
bGljeWRlY2lzaW9ucHJpdmF0ZS5oICAgICAgIHwgICAgMzggLQogU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwICAgICAgICAgfCAgIDU3MyAtCiBTb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5oICAgICAgICAgICB8ICAgMjEyIC0KIFNvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9iYWxzcHJpdmF0ZS5oICAgIHwgICAgNDAgLQogU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwICAgfCAgIDMzOCAt
CiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5oICAgICB8ICAg
IDgzIC0KIC4uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0cHJpdmF0ZS5o
IHwgICAgMzUgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGljb25kYXRhYmFzZS5j
cHAgICAgfCAgIDMzMSAtCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aWNvbmRhdGFi
YXNlLmggICAgICB8ICAgIDgwIC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVxdWVzdC5jcHAgIHwgICAyNzMgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dG5ldHdvcmtyZXF1ZXN0LmggICAgfCAgICA3NCAtCiAuLi4vZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVxdWVzdHByaXZhdGUuaCAgICAgICB8ICAgIDMzIC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuY3BwIHwgICAzMjIgLQogU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5oICAgfCAgICA3NyAtCiAuLi4vZ3RrL3dl
YmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2Vwcml2YXRlLmggICAgICB8ICAgIDM1IC0KIFNvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbi5jcHAgIHwgICA0MjUgLQog
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmggICAgfCAgICA3
OSAtCiAuLi4vZ3RrL3dlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCAgICAgICB8
ICAgIDUxIC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzb3VwYXV0aGRpYWxvZy5j
cHAgIHwgICAxNjAgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlh
bG9nLmggICAgfCAgICA1MiAtCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxj
aGVja2VyLmNwcCAgICB8ICAgMTcyIC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRz
cGVsbGNoZWNrZXIuaCAgICAgIHwgICAgNzAgLQogLi4uL2d0ay93ZWJraXQvd2Via2l0c3BlbGxj
aGVja2VyZW5jaGFudC5jcHAgICAgICAgfCAgIDEzNSAtCiAuLi4vV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5oICB8ICAgIDU4IC0KIFNvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR2ZXJzaW9uLmNwcCAgICAgICAgIHwgICAgNjMgLQogU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHZlcnNpb24uaC5pbiAgICAgICAgfCAgICA1OSAtCiAuLi4vV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcCB8ICAgNTc0IC0KIC4u
Li9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuaCAgIHwgICAgNjIg
LQogLi4uL2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzcHJpdmF0ZS5oICAgfCAg
ICA1NCAtCiAuLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNw
cCB8ICAgNDgzIC0KIC4uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxp
c3QuaCAgIHwgICAxMjMgLQogLi4uL2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0
cHJpdmF0ZS5oICAgfCAgICAzNCAtCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZGF0YWJhc2UuY3BwICAgICB8ICAgNTI1IC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJkYXRhYmFzZS5oICAgICAgIHwgICAgOTYgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwICAgfCAgIDQ0MyAtCiBTb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5oICAgICB8ICAgIDk2IC0KIC4uLi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlcHJpdmF0ZS5oIHwgICAgMzUgLQogU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcCAgICAgICAgfCAgMTIxNSAtCiBTb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaCAgICAgICAgICB8ICAgMTg5IC0K
IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCAgIHwgICAg
NTkgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcCAg
fCAgIDUzMiAtCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0u
aCAgICB8ICAgIDkwIC0KIC4uLi9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0
ZS5oICAgICAgIHwgICAgNDkgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmlu
c3BlY3Rvci5jcHAgICAgfCAgIDU2NiAtCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViaW5zcGVjdG9yLmggICAgICB8ICAgIDgwIC0KIC4uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJpbnNwZWN0b3Jwcml2YXRlLmggIHwgICAgMzggLQogLi4uL2d0ay93ZWJraXQvd2Via2l0
d2VibmF2aWdhdGlvbmFjdGlvbi5jcHAgICAgICAgfCAgIDQwNyAtCiAuLi4vV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oICB8ICAgMTAzIC0KIC4uLi9ndGsvd2Vi
a2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb25wcml2YXRlLmggIHwgICAgMzUgLQogU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbi5jcHAgICAgICAgfCAgIDI4NyAtCiBT
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luLmggICAgICAgICB8ICAgIDkx
IC0KIC4uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5jcHAgIHwg
ICAxNTIgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRhdGFiYXNl
LmggfCAgICA2NSAtCiAuLi4vZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZXByaXZh
dGUuaCAgICB8ICAgIDQwIC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVn
aW5wcml2YXRlLmggIHwgICAgNDggLQogLi4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBv
bGljeWRlY2lzaW9uLmNwcCAgfCAgIDEzNCAtCiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2VicG9saWN5ZGVjaXNpb24uaCB8ICAgIDY4IC0KIC4uLi9ndGsvd2Via2l0L3dlYmtpdHdl
YnBvbGljeWRlY2lzaW9ucHJpdmF0ZS5oICAgIHwgICAgMzYgLQogU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcCAgICAgfCAgIDQ4NSAtCiBTb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuaCAgICAgICB8ICAgIDg0IC0KIC4uLi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZXByaXZhdGUuaCAgIHwgICAgNDggLQogU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCAgICAgfCAgMTY3NiAt
LQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmggICAgICAgfCAg
ICA4NSAtCiAuLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgg
ICB8ICAgMTAxIC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCAg
ICAgICAgIHwgIDU2MjMgLS0tLS0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2
aWV3LmggICAgICAgICAgIHwgICA0NzAgLQogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXdwcml2YXRlLmggICAgfCAgIDE0NCAtCiAuLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2Vid2luZG93ZmVhdHVyZXMuY3BwICB8ICAgNDQ5IC0KIFNvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oIHwgICAgNjggLQogLi4uL2d0ay93ZWJraXQv
d2Via2l0d2Vid2luZG93ZmVhdHVyZXNwcml2YXRlLmggICAgfCAgICAzNCAtCiBTb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QgICAgICAgICAgICAgICB8ICAgIDMyIC0KIFNvdXJj
ZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlICAgICAgICAgICAgICAgICAgICAgIHwgICAgMjEgKy0K
IDE1MyBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCA2MTg2OSBkZWxldGlvbnMoLSkK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCiBkZWxl
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCiBkZWxldGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nLTIwMTItMDUtMjIKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50
R3RrLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0JhdHRlcnlDbGllbnRHdGsuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAogZGVs
ZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRN
ZW51Q2xpZW50R3RrLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRHdGsuY3Bw
CiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRGV2
aWNlTW90aW9uQ2xpZW50R3RrLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0ay5jcHAKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudEd0ay5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRG9jdW1lbnRMb2FkZXJHdGsuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRG9jdW1lbnRMb2FkZXJHdGsuaAogZGVsZXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRH
dGsuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHJhZ0NsaWVudEd0ay5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAogZGVsZXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCiBkZWxldGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwCiBkZWxldGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dEd0ay5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuaAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0d0a0Fk
anVzdG1lbnRXYXRjaGVyLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0d0a0FkanVzdG1lbnRXYXRjaGVyLmgKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
CiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5z
cGVjdG9yQ2xpZW50R3RrLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRHdGsuY3BwCiBkZWxldGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvTmF2aWdhdG9yQ29u
dGVudFV0aWxzQ2xpZW50R3RrLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmgKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsu
Y3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzR3RrLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9Qcm9ncmVzc1RyYWNrZXJDbGllbnRHdGsuY3BwCiBkZWxldGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFj
a2VyQ2xpZW50R3RrLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oCiBk
ZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVXNlck1l
ZGlhQ2xpZW50R3RrLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L1VzZXJNZWRpYUNsaWVudEd0ay5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0lucHV0TWV0aG9kRmlsdGVyLmNw
cAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1dl
YlZpZXdJbnB1dE1ldGhvZEZpbHRlci5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktp
dC9ndGsvZG9jcy93ZWJraXRlbnZpcm9ubWVudC54bWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWwKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGd0ay1vdmVycmlkZXMudHh0CiBkZWxldGUg
bW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGstc2VjdGlvbnMudHh0
CiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGsudHlw
ZXMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay9nZG9tL0NvbnZlcnRUb0dD
aGFyUHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvcmVzb3Vy
Y2VzL2Vycm9yLmh0bWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQucGMuaW4KIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
YXBwbGljYXRpb25jYWNoZS5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGF1dGhlbnRpY2F0aW9uZGlhbG9nLmNwcAogZGVs
ZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhdXRoZW50aWNh
dGlvbmRpYWxvZy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdGRlZmluZXMuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRkb20uaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRkb3dubG9hZC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZHByaXZhdGUuaAogZGVsZXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlbnVtdHlwZXMuY3BwLnRlbXBsYXRl
CiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10
eXBlcy5oLnRlbXBsYXRlCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGVycm9yLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRlcnJvci5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmgKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNl
cHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGZpbGVjaG9vc2VycmVxdWVzdC5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0LmgKIGRlbGV0ZSBtb2RlIDEw
MDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0cHJp
dmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaAogZGVs
ZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW9sb2NhdGlv
bnBvbGljeWRlY2lzaW9ucHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9iYWxzcHJpdmF0ZS5oCiBkZWxldGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3Bw
CiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGhpdHRl
c3RyZXN1bHQuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRoaXR0ZXN0cmVzdWx0cHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGljb25kYXRhYmFzZS5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0
NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNlLmgKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3Qu
Y3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5l
dHdvcmtyZXF1ZXN0LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0bmV0d29ya3JlcXVlc3Rwcml2YXRlLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlLmNwcAogZGVsZXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2Uu
aAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3
b3JrcmVzcG9uc2Vwcml2YXRlLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmgKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW5wcml2
YXRlLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
c291cGF1dGhkaWFsb2cuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyLmNwcAogZGVsZXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXIuaAogZGVsZXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJl
bmNoYW50LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0dmVyc2lvbi5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmVyc2lvbi5oLmluCiBkZWxldGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAK
IGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3Bv
cnRhdHRyaWJ1dGVzLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzcHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAKIGRl
bGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2Zv
cndhcmRsaXN0LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2ViYmFja2ZvcndhcmRsaXN0cHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFiYXNlLmNwcAogZGVsZXRlIG1vZGUg
MTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5oCiBkZWxl
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3Vy
Y2UuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYmRhdGFzb3VyY2UuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJkYXRhc291cmNlcHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAogZGVsZXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCiBkZWxldGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lcHJpdmF0ZS5o
CiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhp
c3RvcnlpdGVtLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAKIGRl
bGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaW5zcGVj
dG9yLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViaW5zcGVjdG9ycHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCiBkZWxldGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZp
Z2F0aW9uYWN0aW9ucHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbi5jcHAKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBT
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luZGF0YWJhc2UuY3BwCiBkZWxl
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRh
dGFiYXNlLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2VicGx1Z2luZGF0YWJhc2Vwcml2YXRlLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2lucHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAx
MDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNw
cAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJw
b2xpY3lkZWNpc2lvbi5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9ucHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQg
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcAogZGVsZXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5oCiBk
ZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291
cmNlcHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oCiBkZWxldGUgbW9k
ZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCiBkZWxl
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3
cHJpdmF0ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYndpbmRvd2ZlYXR1cmVzLmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oCiBkZWxldGUgbW9kZSAxMDA2
NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1cmVzcHJpdmF0
ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ndGsvd2Via2l0bWFyc2hhbC5s
aXN0CgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGVkMjA3M2EuLmMz
NGNiZTcgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxNC0wNC0wOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0dUS10gUmVtb3ZlIHRoZSBXZWJLaXRHVEsrIFdlYktpdCAxIGNvZGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTM5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL1Bs
YXRmb3JtR1RLLmNtYWtlOiBSZW1vdmUgV2ViS2l0MSBkZXBlbmRlbmN5IGZyb20gZGlzdCB0YXJn
ZXQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2U6IFJlbW92ZSBvcHRp
b24gdG8gY29tcGlsZSB3aXRoIEdUSysyIG9yIHdpdGggV2ViS2l0MiBkaXNhYmxlZC4KKwogMjAx
NC0wNC0wNyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1
aWxkIGJtYWxsb2Mgb24gTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm1HVEsuY21ha2Ug
Yi9Tb3VyY2UvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggMjc3ZmU4OS4uZDkzN2U0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9QbGF0Zm9ybUdUSy5j
bWFrZQpAQCAtMywxMCArMyw2IEBAIGFkZF9zdWJkaXJlY3RvcnkoJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vZ3RrL3BvKQogIyBUaGlzIGFsbG93cyBleHBvc2luZyBhICdnaXInIHRhcmdldCB3aGlj
aCBidWlsZHMgYWxsIEdPYmplY3QgaW50cm9zcGVjdGlvbiBmaWxlcy4KIGFkZF9jdXN0b21fdGFy
Z2V0KGdpciBBTEwgREVQRU5EUyAke0dPYmplY3RJbnRyb3NwZWN0aW9uVGFyZ2V0c30pCiAKLXNl
dChEb2N1bWVudGF0aW9uRGVwZW5kZW5jaWVzCi0gICAgIiR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRlbnZpcm9ubWVudC54bWwiCi0pCi0KIGlmIChFTkFC
TEVfV0VCS0lUMikKICAgICBsaXN0KEFQUEVORCBEb2N1bWVudGF0aW9uRGVwZW5kZW5jaWVzCiAg
ICAgICAgIFdlYktpdDIKQEAgLTQ4LDcgKzQ0LDYgQEAgaWYgKEVOQUJMRV9XRUJLSVQgQU5EIEVO
QUJMRV9XRUJLSVQyKQogICAgICAgICBPVVRQVVQgJHtDTUFLRV9CSU5BUllfRElSfS93ZWJraXRn
dGstJHtQUk9KRUNUX1ZFUlNJT059LnRhcgogICAgICAgICBERVBFTkRTICR7VE9PTFNfRElSfS9n
dGsvbWFrZS1kaXN0LnB5CiAgICAgICAgIERFUEVORFMgJHtUT09MU19ESVJ9L2d0ay9tYW5pZmVz
dC50eHQKLSAgICAgICAgREVQRU5EUyBXZWJLaXQKICAgICAgICAgREVQRU5EUyBXZWJLaXQyCiAg
ICAgICAgIERFUEVORFMgZ3RrZG9jCiAgICAgICAgIENPTU1BTkQgJHtUT09MU19ESVJ9L2d0ay9t
YWtlLWRpc3QucHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vQ2hhbmdlTG9nCmluZGV4
IDNhOGZlMGEuLjY3ZGVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9wby9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA0LTA4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBSZW1vdmUgdGhlIFdlYktpdEdUSysg
V2ViS2l0IDEgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMxMzk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBQT1RGSUxFUy5pbjogUmVtb3ZlIHJlZmVyZW5jZXMgdG8gV2ViS2l0MSBzb3VyY2Ug
ZmlsZXMgZnJvbSB0aGUgbGlzdCBvZgorICAgICAgICBmaWxlcyB3aXRoIHRyYW5zbGF0YWJsZSBz
dHJpbmdzLgorCiAyMDE0LTAzLTI1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBSZW1vdmUgdGhlIGF1dG90b29scyBidWlsZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCmluZGV4IGYzNzEyODcuLjhhZDM2
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vUE9URklMRVMuaW4KQEAgLTIs
MjcgKzIsNiBAQAogRXJyb3JzR3RrLmNwcAogTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKIFdlYktp
dEF1dGhlbnRpY2F0aW9uV2lkZ2V0LmNwcAotLi4vLi4vLi4vV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCi0uLi8uLi8uLi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcAotLi4vLi4vLi4vV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0ZG93bmxvYWQuY3BwCi0uLi8uLi8uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZp
Y29uZGF0YWJhc2UuY3BwCi0uLi8uLi8uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmaWxlY2hv
b3NlcnJlcXVlc3QuY3BwCi0uLi8uLi8uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRoaXR0ZXN0
cmVzdWx0LmNwcAotLi4vLi4vLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNl
LmNwcAotLi4vLi4vLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3Bw
Ci0uLi8uLi8uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuY3BwCi0u
Li8uLi8uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbi5jcHAKLS4uLy4u
Ly4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmNwcAotLi4vLi4vLi4v
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcAotLi4vLi4vLi4v
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwCi0uLi8uLi8uLi9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKLS4uLy4uLy4uL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcAotLi4vLi4vLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViaW5zcGVjdG9yLmNwcAotLi4vLi4vLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
bmF2aWdhdGlvbmFjdGlvbi5jcHAKLS4uLy4uLy4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnBsdWdpbi5jcHAKLS4uLy4uLy4uL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNl
LmNwcAotLi4vLi4vLi4vV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCi0u
Li8uLi8uLi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAogLi4vLi4vLi4vV2Vi
S2l0Mi9TaGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAogLi4vLi4vLi4vV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXREb3dubG9hZC5jcHAKIC4uLy4uLy4uL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmF2aWNvbkRhdGFiYXNlLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCAxNWU5MWE3Li5iODIyNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA0LTA4
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RL
XSBSZW1vdmUgdGhlIFdlYktpdEdUSysgV2ViS2l0IDEgY29kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMzk5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZTogUmVtb3Zl
ZC4KKyAgICAgICAgKiBndGs6IFJlbW92ZSB0aGlzIGVudGlyZSBkaXJlY3RvcnkuCisKIDIwMTQt
MDQtMDYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc29t
ZSBiaW5kaW5ncyBpbXByb3ZlbWVudHMsIHdpdGggc21hbGxlciBjb2RlIHNpemUgZm9yIGVycm9y
IG1lc3NhZ2UgZ2VuZXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDNlNjUyYWEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUdUSy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDI0NiArMCwwIEBACi1maWxlKE1BS0Vf
RElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVEdUS19ESVJ9KQotZmlsZShNQUtFX0RJ
UkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJLSVRHVEtfQVBJX0RJUn0pCi1jb25maWd1cmVf
ZmlsZShndGsvd2Via2l0L3dlYmtpdHZlcnNpb24uaC5pbiAke0RFUklWRURfU09VUkNFU19XRUJL
SVRHVEtfQVBJX0RJUn0vd2Via2l0dmVyc2lvbi5oKQotY29uZmlndXJlX2ZpbGUoZ3RrL3dlYmtp
dC5wYy5pbiAke1dlYktpdF9QS0dDT05GSUdfRklMRX0gQE9OTFkpCi0KLWFkZF9kZWZpbml0aW9u
cygtRFBBQ0tBR0VfTE9DQUxFX0RJUj0iJHtDTUFLRV9JTlNUQUxMX0ZVTExfTE9DQUxFRElSfSIp
Ci0KLWxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCi0gICAgJHtERVJJVkVE
X1NPVVJDRVNfRElSfQotICAgICR7REVSSVZFRF9TT1VSQ0VTX0dPQkpFQ1RfRE9NX0JJTkRJTkdT
X0RJUn0KLSAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRHVEtfRElSfQotICAgICR7REVSSVZF
RF9TT1VSQ0VTX1dFQktJVEdUS19BUElfRElSfQotICAgICR7VEhJUkRQQVJUWV9ESVJ9L0FOR0xF
L2luY2x1ZGUvR0xTTEFORwotICAgICR7VEhJUkRQQVJUWV9ESVJ9L0FOR0xFL3NyYwotICAgICR7
VEhJUkRQQVJUWV9ESVJ9L0FOR0xFL2luY2x1ZGUKLSAgICAke1RISVJEUEFSVFlfRElSfS9BTkdM
RS9pbmNsdWRlL0tIUgotICAgICR7VEhJUkRQQVJUWV9ESVJ9L0FOR0xFL2luY2x1ZGUvR0xTTEFO
RwotICAgICR7V0VCQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzCi0gICAgJHtXRUJDT1JFX0RJ
Un0vYWNjZXNzaWJpbGl0eS9hdGsKLSAgICAke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9jYWlybwot
ICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dlb2NsdWUKLSAgICAke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlybwotICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBo
aWNzL2d0awotICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlCi0g
ICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwCi0gICAgJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vZ3RrCi0gICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9z
b3VwCi0gICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vdGV4dC9lbmNoYW50Ci0gICAgJHtXRUJL
SVRfRElSfS9ndGsKLSAgICAke1dFQktJVF9ESVJ9L2d0ay93ZWJraXQKLSAgICAke1dFQktJVF9E
SVJ9L2d0ay9XZWJDb3JlU3VwcG9ydAotICAgICR7RU5DSEFOVF9JTkNMVURFX0RJUlN9Ci0gICAg
JHtHRU9DTFVFX0lOQ0xVREVfRElSU30KLSAgICAke0dUS19JTkNMVURFX0RJUlN9Ci0gICAgJHtI
QVJGQlVaWl9JTkNMVURFX0RJUlN9Ci0gICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KLSkKLQot
bGlzdChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKLSAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRH
VEtfQVBJX0RJUn0vd2Via2l0ZW51bXR5cGVzLmNwcAotICAgICR7REVSSVZFRF9TT1VSQ0VTX1dF
QktJVEdUS19BUElfRElSfS93ZWJraXRtYXJzaGFsLmNwcAotCi0gICAgZ3RrL1dlYkNvcmVTdXBw
b3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwCi0gICAgZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKLSAgICBndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4
dE1lbnVDbGllbnRHdGsuY3BwCi0gICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNs
aWVudEd0ay5jcHAKLSAgICBndGsvV2ViQ29yZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRHdGsuY3BwCi0gICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0RvY3VtZW50TG9hZGVyR3RrLmNwcAot
ICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcAotICAgIGd0ay9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCi0gICAgZ3RrL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEd0ay5jcHAKLSAgICBndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCi0gICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHRHdGsuY3BwCi0gICAgZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3Rr
LmNwcAotICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9HdGtBZGp1c3RtZW50V2F0Y2hlci5jcHAKLSAg
ICBndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcAotICAgIGd0ay9XZWJD
b3JlU3VwcG9ydC9OYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRHdGsuY3BwCi0gICAgZ3RrL1dl
YkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0d0ay5jcHAKLSAgICBndGsvV2ViQ29yZVN1
cHBvcnQvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50R3RrLmNwcAotICAgIGd0ay9XZWJDb3JlU3VwcG9y
dC9UZXh0Q2hlY2tlckNsaWVudEd0ay5jcHAKLSAgICBndGsvV2ViQ29yZVN1cHBvcnQvVXNlck1l
ZGlhQ2xpZW50R3RrLmNwcAotICAgIGd0ay9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3SW5wdXRNZXRo
b2RGaWx0ZXIuY3BwCi0KLSAgICBndGsvd2Via2l0L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuY3Bw
Ci0gICAgZ3RrL3dlYmtpdC93ZWJraXRhdXRoZW50aWNhdGlvbmRpYWxvZy5jcHAKLSAgICBndGsv
d2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAotICAgIGd0ay93ZWJraXQvd2Via2l0ZXJyb3IuY3Bw
Ci0gICAgZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwCi0gICAgZ3RrL3dlYmtp
dC93ZWJraXRmaWxlY2hvb3NlcnJlcXVlc3QuY3BwCi0gICAgZ3RrL3dlYmtpdC93ZWJraXRnZW9s
b2NhdGlvbnBvbGljeWRlY2lzaW9uLmNwcAotICAgIGd0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5j
cHAKLSAgICBndGsvd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwCi0gICAgZ3RrL3dlYmtp
dC93ZWJraXRpY29uZGF0YWJhc2UuY3BwCi0gICAgZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVx
dWVzdC5jcHAKLSAgICBndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHAKLSAgICBn
dGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcAotICAgIGd0ay93ZWJraXQvd2Via2l0
c291cGF1dGhkaWFsb2cuY3BwCi0gICAgZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXIuY3Bw
Ci0gICAgZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcAotICAgIGd0ay93
ZWJraXQvd2Via2l0dmVyc2lvbi5jcHAKLSAgICBndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0
cmlidXRlcy5jcHAKLSAgICBndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHAK
LSAgICBndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFiYXNlLmNwcAotICAgIGd0ay93ZWJraXQvd2Vi
a2l0d2ViZGF0YXNvdXJjZS5jcHAKLSAgICBndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcAot
ICAgIGd0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwCi0gICAgZ3RrL3dlYmtpdC93
ZWJraXR3ZWJpbnNwZWN0b3IuY3BwCi0gICAgZ3RrL3dlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9u
YWN0aW9uLmNwcAotICAgIGd0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luLmNwcAotICAgIGd0ay93
ZWJraXQvd2Via2l0d2VicGx1Z2luZGF0YWJhc2UuY3BwCi0gICAgZ3RrL3dlYmtpdC93ZWJraXR3
ZWJwb2xpY3lkZWNpc2lvbi5jcHAKLSAgICBndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNw
cAotICAgIGd0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCi0gICAgZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcAotICAgIGd0ay93ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMu
Y3BwCi0pCi0KLWxpc3QoQVBQRU5EIFdlYktpdEdUS19JTlNUQUxMRURfSEVBREVSUwotICAgICR7
REVSSVZFRF9TT1VSQ0VTX1dFQktJVEdUS19BUElfRElSfS93ZWJraXRlbnVtdHlwZXMuaAotICAg
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVEdUS19BUElfRElSfS93ZWJraXR2ZXJzaW9uLmgKLSAg
ICAke1dFQktJVF9ESVJ9L2d0ay93ZWJraXQvd2Via2l0LmgKLSAgICAke1dFQktJVF9ESVJ9L2d0
ay93ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZS5oCi0gICAgJHtXRUJLSVRfRElSfS9ndGsv
d2Via2l0L3dlYmtpdGRlZmluZXMuaAotICAgICR7V0VCS0lUX0RJUn0vZ3RrL3dlYmtpdC93ZWJr
aXRkb20uaAotICAgICR7V0VCS0lUX0RJUn0vZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5oCi0g
ICAgJHtXRUJLSVRfRElSfS9ndGsvd2Via2l0L3dlYmtpdGVycm9yLmgKLSAgICAke1dFQktJVF9E
SVJ9L2d0ay93ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmgKLSAgICAke1dFQktJVF9ESVJ9
L2d0ay93ZWJraXQvd2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0LmgKLSAgICAke1dFQktJVF9ESVJ9
L2d0ay93ZWJraXQvd2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbi5oCi0gICAgJHtXRUJL
SVRfRElSfS9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuaAotICAgICR7V0VCS0lUX0RJUn0vZ3Rr
L3dlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0LmgKLSAgICAke1dFQktJVF9ESVJ9L2d0ay93ZWJr
aXQvd2Via2l0aWNvbmRhdGFiYXNlLmgKLSAgICAke1dFQktJVF9ESVJ9L2d0ay93ZWJraXQvd2Vi
a2l0bmV0d29ya3JlcXVlc3QuaAotICAgICR7V0VCS0lUX0RJUn0vZ3RrL3dlYmtpdC93ZWJraXRu
ZXR3b3JrcmVzcG9uc2UuaAotICAgICR7V0VCS0lUX0RJUn0vZ3RrL3dlYmtpdC93ZWJraXRzZWN1
cml0eW9yaWdpbi5oCi0gICAgJHtXRUJLSVRfRElSfS9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRo
ZGlhbG9nLmgKLSAgICAke1dFQktJVF9ESVJ9L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2Vy
LmgKLSAgICAke1dFQktJVF9ESVJ9L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVz
LmgKLSAgICAke1dFQktJVF9ESVJ9L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0
LmgKLSAgICAke1dFQktJVF9ESVJ9L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuaAotICAg
ICR7V0VCS0lUX0RJUn0vZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmgKLSAgICAke1dF
QktJVF9ESVJ9L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaAotICAgICR7V0VCS0lUX0RJUn0v
Z3RrL3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oCi0gICAgJHtXRUJLSVRfRElSfS9ndGsv
d2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5oCi0gICAgJHtXRUJLSVRfRElSfS9ndGsvd2Via2l0
L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaAotICAgICR7V0VCS0lUX0RJUn0vZ3RrL3dlYmtp
dC93ZWJraXR3ZWJwbHVnaW4uaAotICAgICR7V0VCS0lUX0RJUn0vZ3RrL3dlYmtpdC93ZWJraXR3
ZWJwbHVnaW5kYXRhYmFzZS5oCi0gICAgJHtXRUJLSVRfRElSfS9ndGsvd2Via2l0L3dlYmtpdHdl
YnBvbGljeWRlY2lzaW9uLmgKLSAgICAke1dFQktJVF9ESVJ9L2d0ay93ZWJraXQvd2Via2l0d2Vi
cmVzb3VyY2UuaAotICAgICR7V0VCS0lUX0RJUn0vZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5n
cy5oCi0gICAgJHtXRUJLSVRfRElSfS9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaAotICAgICR7
V0VCS0lUX0RJUn0vZ3RrL3dlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oCi0pCi0KLSMg
U2luY2UgdGhlIEdPYmplY3RET01CaW5kaW5ncyBjb252ZW5pZW5jZSBsaWJyYXJ5IGV4cG9ydHMg
QVBJIHRoYXQgaXMgdW51c2VkIGV4Y2VwdAotIyBpbiBlbWJlZGRpbmcgYXBwbGljYXRpb25zIHdl
IG5lZWQgdG8gaW5zdHJ1Y3QgdGhlIGxpbmtlciB0byBsaW5rIGFsbCBzeW1ib2xzIGV4cGxpY2l0
bHkuCi1saXN0KEFQUEVORCBXZWJLaXRfTElCUkFSSUVTCi0gICAgR09iamVjdERPTUJpbmRpbmdz
Ci0gICAgV2ViQ29yZVBsYXRmb3JtR1RLCi0pCi1BRERfV0hPTEVfQVJDSElWRV9UT19MSUJSQVJJ
RVMoV2ViS2l0X0xJQlJBUklFUykKLQotc2V0KFdlYktpdF9NQVJTSEFMX0xJU1QgJHtXRUJLSVRf
RElSfS9ndGsvd2Via2l0bWFyc2hhbC5saXN0KQotCi1hZGRfY3VzdG9tX2NvbW1hbmQoCi0gICAg
T1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVEdUS19BUElfRElSfS93ZWJraXRtYXJzaGFs
LmNwcAotICAgICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRHVEtfQVBJX0RJUn0vd2Vi
a2l0bWFyc2hhbC5oCi0gICAgTUFJTl9ERVBFTkRFTkNZICR7V2ViS2l0X01BUlNIQUxfTElTVH0K
LQotICAgIENPTU1BTkQgZWNobyBleHRlcm4gXCJDXCIgeyA+ICR7REVSSVZFRF9TT1VSQ0VTX1dF
QktJVEdUS19BUElfRElSfS93ZWJraXRtYXJzaGFsLmNwcAotICAgIENPTU1BTkQgZ2xpYi1nZW5t
YXJzaGFsIC0tcHJlZml4PXdlYmtpdF9tYXJzaGFsICR7V2ViS2l0X01BUlNIQUxfTElTVH0gLS1i
b2R5ID4+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVEdUS19BUElfRElSfS93ZWJraXRtYXJzaGFs
LmNwcAotICAgIENPTU1BTkQgZWNobyB9ID4+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVEdUS19B
UElfRElSfS93ZWJraXRtYXJzaGFsLmNwcAotCi0gICAgQ09NTUFORCBnbGliLWdlbm1hcnNoYWwg
LS1wcmVmaXg9d2Via2l0X21hcnNoYWwgJHtXZWJLaXRfTUFSU0hBTF9MSVNUfSAtLWhlYWRlciA+
ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVEdUS19BUElfRElSfS93ZWJraXRtYXJzaGFsLmgKLSAg
ICBWRVJCQVRJTQotKQotCi0jIFRvIGdlbmVyYXRlIHdlYmtpdGVudW10eXBlcy5oIHdlIHdhbnQg
dG8gdXNlIGFsbCBpbnN0YWxsZWQgaGVhZGVycywgZXhjZXB0IHdlYmtpdGVudW10eXBlcy5oIGl0
c2VsZi4KLXNldChXZWJLaXRHVEtfRU5VTV9HRU5FUkFUSU9OX0hFQURFUlMgJHtXZWJLaXRHVEtf
SU5TVEFMTEVEX0hFQURFUlN9KQotbGlzdChSRU1PVkVfSVRFTSBXZWJLaXRHVEtfRU5VTV9HRU5F
UkFUSU9OX0hFQURFUlMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUR1RLX0FQSV9ESVJ9L3dlYmtp
dGVudW10eXBlcy5oKQotYWRkX2N1c3RvbV9jb21tYW5kKAotICAgIE9VVFBVVCAke0RFUklWRURf
U09VUkNFU19XRUJLSVRHVEtfQVBJX0RJUn0vd2Via2l0ZW51bXR5cGVzLmgKLSAgICAgICAgICAg
JHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUR1RLX0FQSV9ESVJ9L3dlYmtpdGVudW10eXBlcy5jcHAK
LSAgICBERVBFTkRTICR7V2ViS2l0R1RLX0VOVU1fR0VORVJBVElPTl9IRUFERVJTfQotCi0gICAg
Q09NTUFORCBnbGliLW1rZW51bXMgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L2d0ay93ZWJraXQv
d2Via2l0ZW51bXR5cGVzLmgudGVtcGxhdGUgJHtXZWJLaXRHVEtfRU5VTV9HRU5FUkFUSU9OX0hF
QURFUlN9IHwgc2VkIHMvd2ViX2tpdC93ZWJraXQvIHwgc2VkIHMvV0VCS0lUX1RZUEVfS0lUL1dF
QktJVF9UWVBFLyA+ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVEdUS19BUElfRElSfS93ZWJraXRl
bnVtdHlwZXMuaAotCi0gICAgQ09NTUFORCBnbGliLW1rZW51bXMgLS10ZW1wbGF0ZSAke1dFQktJ
VF9ESVJ9L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmNwcC50ZW1wbGF0ZSAke1dlYktpdEdU
S19FTlVNX0dFTkVSQVRJT05fSEVBREVSU30gfCBzZWQgcy93ZWJfa2l0L3dlYmtpdC8gPiAke0RF
UklWRURfU09VUkNFU19XRUJLSVRHVEtfQVBJX0RJUn0vd2Via2l0ZW51bXR5cGVzLmNwcAotICAg
IFZFUkJBVElNCi0pCi0KLWFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtDTUFLRV9C
SU5BUllfRElSfS9XZWJLaXQtJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059LmdpcgotICAgIERFUEVO
RFMgV2ViS2l0Ci0gICAgREVQRU5EUyAke0NNQUtFX0JJTkFSWV9ESVJ9L0phdmFTY3JpcHRDb3Jl
LSR7V0VCS0lUR1RLX0FQSV9WRVJTSU9OfS5naXIKLSAgICBDT01NQU5EIENDPSR7Q01BS0VfQ19D
T01QSUxFUn0gQ0ZMQUdTPS1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMKLSAgICAgICAgJHtJ
TlRST1NQRUNUSU9OX1NDQU5ORVJ9Ci0gICAgICAgIC0tcXVpZXQKLSAgICAgICAgLS13YXJuLWFs
bAotICAgICAgICAtLXN5bWJvbC1wcmVmaXg9d2Via2l0Ci0gICAgICAgIC0taWRlbnRpZmllci1w
cmVmaXg9V2ViS2l0Ci0gICAgICAgIC0tbmFtZXNwYWNlPVdlYktpdAotICAgICAgICAtLW5zdmVy
c2lvbj0ke1dFQktJVEdUS19BUElfVkVSU0lPTn0KLSAgICAgICAgLS1pbmNsdWRlPUdPYmplY3Qt
Mi4wCi0gICAgICAgIC0taW5jbHVkZT1HdGstJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059Ci0gICAg
ICAgIC0taW5jbHVkZT1Tb3VwLTIuNAotICAgICAgICAtLWluY2x1ZGUtdW5pbnN0YWxsZWQ9JHtD
TUFLRV9CSU5BUllfRElSfS9KYXZhU2NyaXB0Q29yZS0ke1dFQktJVEdUS19BUElfVkVSU0lPTn0u
Z2lyCi0gICAgICAgIC0tbGlicmFyeT13ZWJraXRndGstJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059
Ci0gICAgICAgIC0tbGlicmFyeT1qYXZhc2NyaXB0Y29yZWd0ay0ke1dFQktJVEdUS19BUElfVkVS
U0lPTn0KLSAgICAgICAgLUwke0NNQUtFX0xJQlJBUllfT1VUUFVUX0RJUkVDVE9SWX0KLSAgICAg
ICAgLS1uby1saWJ0b29sCi0gICAgICAgIC0tcGtnPWdvYmplY3QtMi4wCi0gICAgICAgIC0tcGtn
PWd0aystJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059Ci0gICAgICAgIC0tcGtnPWxpYnNvdXAtMi40
Ci0gICAgICAgIC0tcGtnLWV4cG9ydD13ZWJraXRndGstJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059
Ci0gICAgICAgIC0tb3V0cHV0PSR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0LSR7V0VCS0lUR1RL
X0FQSV9WRVJTSU9OfS5naXIKLSAgICAgICAgLS1jLWluY2x1ZGU9IndlYmtpdC93ZWJraXQuaCIK
LSAgICAgICAgLURCVUlMRElOR19XRUJLSVQKLSAgICAgICAgLUkke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZQotICAgICAgICAtSSR7V0VCS0lUX0RJUn0vZ3RrCi0gICAgICAgIC1JJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzCi0gICAgICAgIC1JJHtERVJJVkVEX1NPVVJD
RVNfRElSfQotICAgICAgICAtSSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVEdUS19ESVJ9Ci0gICAg
ICAgIC1JJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3RrCi0gICAgICAgICR7R09iamVjdERPTUJp
bmRpbmdzX0dJUl9IRUFERVJTfQotICAgICAgICAke1dlYktpdEdUS19JTlNUQUxMRURfSEVBREVS
U30KLSAgICAgICAgJHtXRUJLSVRfRElSfS9ndGsvd2Via2l0LyouY3BwCi0pCi0KLWFkZF9jdXN0
b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtDTUFLRV9CSU5BUllfRElSfS9XZWJLaXQtJHtXRUJL
SVRHVEtfQVBJX1ZFUlNJT059LnR5cGVsaWIKLSAgICBERVBFTkRTICR7Q01BS0VfQklOQVJZX0RJ
Un0vV2ViS2l0LSR7V0VCS0lUR1RLX0FQSV9WRVJTSU9OfS5naXIKLSAgICBDT01NQU5EICR7SU5U
Uk9TUEVDVElPTl9DT01QSUxFUn0gLS1pbmNsdWRlZGlyPSR7Q01BS0VfQklOQVJZX0RJUn0gJHtD
TUFLRV9CSU5BUllfRElSfS9XZWJLaXQtJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059LmdpciAtbyAk
e0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktpdC0ke1dFQktJVEdUS19BUElfVkVSU0lPTn0udHlwZWxp
YgotKQotCi1BRERfVFlQRUxJQigke0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktpdC0ke1dFQktJVEdU
S19BUElfVkVSU0lPTn0udHlwZWxpYikKLQotaW5zdGFsbChGSUxFUyAiJHtDTUFLRV9CSU5BUllf
RElSfS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXRndGstJHtXRUJLSVRHVEtfQVBJX1ZFUlNJT059
LnBjIgotICAgICAgICBERVNUSU5BVElPTiAiJHtMSUJfSU5TVEFMTF9ESVJ9L3BrZ2NvbmZpZyIK
LSkKLWluc3RhbGwoRklMRVMgIiR7V0VCS0lUX0RJUn0vZ3RrL3Jlc291cmNlcy9lcnJvci5odG1s
IgotICAgICAgICBERVNUSU5BVElPTiAiJHtEQVRBX0lOU1RBTExfRElSfS9yZXNvdXJjZXMiCi0p
Ci1pbnN0YWxsKEZJTEVTICR7V2ViS2l0R1RLX0lOU1RBTExFRF9IRUFERVJTfQotICAgICAgICBE
RVNUSU5BVElPTiAiJHtXRUJLSVRHVEtfSEVBREVSX0lOU1RBTExfRElSfS93ZWJraXQiCi0pCi1p
bnN0YWxsKEZJTEVTICR7Q01BS0VfQklOQVJZX0RJUn0vV2ViS2l0LSR7V0VCS0lUR1RLX0FQSV9W
RVJTSU9OfS5naXIKLSAgICAgICAgREVTVElOQVRJT04gJHtJTlRST1NQRUNUSU9OX0lOU1RBTExf
R0lSRElSfQotKQotaW5zdGFsbChGSUxFUyAke0NNQUtFX0JJTkFSWV9ESVJ9L1dlYktpdC0ke1dF
QktJVEdUS19BUElfVkVSU0lPTn0udHlwZWxpYgotICAgICAgICBERVNUSU5BVElPTiAke0lOVFJP
U1BFQ1RJT05fSU5TVEFMTF9UWVBFTElCRElSfQotKQotCi1maWxlKFdSSVRFICR7Q01BS0VfQklO
QVJZX0RJUn0vZ3RrZG9jLXdlYmtpdGd0ay5jZmcKLSAgICAiW3dlYmtpdGd0a11cbiIKLSAgICAi
cGtnY29uZmlnX2ZpbGU9JHtXZWJLaXRfUEtHQ09ORklHX0ZJTEV9XG4iCi0gICAgIm5hbWVzcGFj
ZT13ZWJraXRcbiIKLSAgICAiY2ZsYWdzPS1JJHtERVJJVkVEX1NPVVJDRVNfRElSfVxuIgotICAg
ICIgICAgICAgLUkke0NNQUtFX1NPVVJDRV9ESVJ9XG4iCi0gICAgIiAgICAgICAtSSR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlXG4iCi0gICAgIiAgICAgICAtSSR7Q01BS0VfU09VUkNFX0RJUn0v
SmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnNcbiIKLSAgICAiZG9jX2Rpcj0ke1dFQktJ
VF9ESVJ9L2d0ay9kb2NzXG4iCi0gICAgInNvdXJjZV9kaXJzPSR7V0VCS0lUX0RJUn0vZ3RrL3dl
YmtpdFxuIgotICAgICIgICAgICAgICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRHVEtfQVBJ
X0RJUn1cbiIKLSAgICAiaGVhZGVycz0ke1dlYktpdEdUS19FTlVNX0dFTkVSQVRJT05fSEVBREVS
U31cbiIKLSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDcy
MmY3NS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIC9kZXYv
bnVsbApAQCAtMSw2NTQ0ICswLDAgQEAKLTIwMTQtMDQtMDggIEd5dXlvdW5nIEtpbSAgPGd5dXlv
dW5nLmtpbUBzYW1zdW5nLmNvbT4KLQotICAgICAgICBDaGFuZ2UgTmF2aWdhdG9yQ29udGVudFV0
aWxzIGNsaWVudCBvd25lcnNoaXAgZnJvbSBwb3J0IHNpZGUgdG8gTmF2aWdhdG9yQ29udGVudFV0
aWxzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzEy
OTkKLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBFRkwgYW5k
IEdUSyBwb3J0cyBoYXZlIG1hbmFnZWQgb3duIGNsaWVudCBvZiBOYXZpZ2F0b3JDb250ZW50VXRp
bHMgdGhvdWdoIGl0IGlzIG9ubHkgcGFzc2VkIHRvCi0gICAgICAgIE5hdmlnYXRvckNvbnRlbnRV
dGlscy4gVGhlIE5hdmlnYXRvckNvbnRlbnRVdGlscyBoYXMgdXNlZCB0aGUgY2xpZW50IHRvIGNh
bGwgcG9ydCBmdW5jdGlvbnMuIFNvLAotICAgICAgICB0aGVyZSBpcyBubyByZWFzb24gcG9ydCBp
bXBsZW1lbnRhdGlvbiBuZWVkcyB0byBtYW5hZ2UgdGhlIG93bmVyc2hpcC4gVG8gbWFuYWdlIHRo
ZSBjbGllbnQgaXMKLSAgICAgICAgdW5uZWNlc3Nhcnkgd29yayBpbiBjdXJyZW50IGltcGxlbWVu
dGF0aW9uLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJp
dmF0ZS5oOgotCi0yMDE0LTA0LTA3ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNv
bT4KLQotICAgICAgICBNb3ZlIHRvIHVzaW5nIHN0ZDo6dW5pcXVlX3B0ciBmb3Igb3BlbmdsLCB0
ZXhtYXAsIHRyYW5zZm9ybXMgYW5kIGVmbCBpbiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzLgot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMjc2Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgUmVwbGFjZSB1c2Vz
IG9mIE93blB0ciBmb3IgVGV4dHVyZU1hcHBlciBpbiBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dCB3aXRoIHN0ZDo6dW5pcXVlX3B0ci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Lmg6Ci0KLTIwMTQtMDQtMDIgIE1hcnRpbiBIb2Nr
ICA8bWhvY2tAYXBwbGUuY29tPgotCi0gICAgICAgIFVuaWZ5IHByaXZhdGUgYnJvd3Npbmcgd2l0
aCBzZXNzaW9ucy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMDA5OQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6IENoYW5n
ZSBXZWJDb3JlOjpTZXR0aW5nczo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpIHRvIFBhZ2U6dXNl
c0VwaGVtZXJhbFNlc3Npb24oKS4KLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6IENoYW5nZSBTZXR0aW5nczo6c2V0UHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCgpIHRvIFBhZ2U6OmVuYWJsZVByaXZhdGVCcm93c2luZygpLgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfc2V0dGluZ3Nfbm90aWZ5KToKLQotMjAxNC0wMy0zMSAgTWFydGluIFJvYmluc29uICA8bXJv
Ymluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gVXNlIFBST0pFQ1RfVkVSU0lPTl8q
IGluc3RlYWQgb2YgV0VCS0lUXypfVkVSU0lPTgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwOTM2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9z
IEdhcmNpYSBDYW1wb3MuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0dmVyc2lvbi5oLmluOiBV
c2UgUFJPSkVDVF9WRVJTSU9OXyogbWFjcm9zIGluc3RlYWQgb2YgdGhlIEF1dG90b29scyBvbmVz
LgotCi0yMDE0LTAzLTI4ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+Ci0K
LSAgICAgICAgW0dUS10gVG9vIG1hbnkgcmVkaXJlY3RzIHZpc2l0aW5nIHd3dy5nbG9iYWxmb3Jl
c3R3YXRjaC5vcmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTY4MQotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh1c2VyQWdlbnRG
b3JVUkwpOiBDaGFuZ2Ugb3V0ZGF0ZWQgY29tbWVudC4KLQotMjAxNC0wMy0yNSAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gUmVtb3ZlIHRo
ZSBhdXRvdG9vbHMgYnVpbGQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMDcxNwotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4K
LQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZW1vdmVkLgotCi0yMDE0LTAzLTE4ICBKYWUg
SHl1biBQYXJrICA8amFlcGFya0B3ZWJraXQub3JnPgotCi0gICAgICAgIFtHVEtdW0NNYWtlXSBG
aXggV2ViS2l0IHVudXNlZCBwYXJhbWV0ZXIgd2FybmluZ3MKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDM4MwotCi0gICAgICAgIFJldmlld2VkIGJ5
IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0R0wuY3BwOiBGaXggdW51c2VkIHBhcmFtZXRlcnMgd2FybmluZy4K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOiBEaXR0by4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDogRGl0dG8uCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDogRGl0dG8uCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDogRGl0dG8uCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOiBEaXR0by4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOiBEaXR0by4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsuY3BwOiBEaXR0by4K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Qcm9ncmVzc1RyYWNrZXJDbGllbnRHdGsuY3BwOiBE
aXR0by4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXIu
Y3BwOiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOiBEaXR0by4K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDogRGl0dG8uCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmNwcDogRGl0dG8uCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlci5jcHA6IERpdHRvLgotICAgICAgICAqIHdlYmtpdC93
ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcDogRGl0dG8uCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmZyYW1lLmNwcDogRGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3Bl
Y3Rvci5jcHA6IERpdHRvLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogRGl0
dG8uCi0KLTIwMTQtMDMtMTQgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KLQot
ICAgICAgICBSZXBsYWNlICJBcHBsZSBDb21wdXRlciwgSW5jLiIgd2l0aCAiQXBwbGUgSW5jLiIg
aW4gY29weXJpZ2h0IGhlYWRlcnMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzMDI3NgotICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTYyNjY5Mjc+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
b2N1bWVudExvYWRlckd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRG9jdW1lbnRM
b2FkZXJHdGsuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoK
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmg6Ci0KLTIwMTQtMDMtMTIgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+Ci0KLSAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIHVu
dXNlZCBjYWxsSWQgcGFyYW1ldGVyIGZyb20gZXZhbHVhdGVJbldlYkluc3BlY3RvcgotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NzQ0Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9leGVjdXRl
X3NjcmlwdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3RvcnByaXZhdGUuaDoK
LQotMjAxNC0wMy0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
Ci0KLSAgICAgICAgW0dUS10gW1N0YWJsZV0gZGVhZGxvY2sgaW4gZ29iamVjdCBpbnRyb3NwZWN0
aW9uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU2
NTEKLQotICAgICAgICBSZXZpZXdlZCBieSBTZXJnaW8gVmlsbGFyIFNlbmluLgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAgICAgICAod2Via2l0RXhpdCk6IERvdCBu
b3QgdHJ5IHRvIHVucmVmIHRoZSBkZWZhdWx0IG5ldHdvcmsgc2Vzc2lvbiwgaXQKLSAgICAgICAg
d2lsbCBiZSBmaW5hbGl6ZWQgYXV0b21hdGljYWxseSB3aGVuIHRoZSBwcm9jZXNzIGZpbmlzaGVz
LgotCi0yMDE0LTAzLTA3ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KLQot
ICAgICAgICBNb3ZlIEdUSyBXZWJLaXQxIGNvZGUgdG8gc3RkOjp1bmlxdWVfcHRyCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk2NzUKLQotICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCi0KLSAgICAgICAgUmVwbGFjZSB1c2VzIG9m
IE93blB0ciBhbmQgUGFzc093blB0ciBpbiBHVEstc3BlY2lmaWMgV2ViS2l0MSBjb2RlIHdpdGgg
c3RkOjp1bmlxdWVfcHRyLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9OYXZpZ2F0b3JD
b250ZW50VXRpbHNDbGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L05hdmln
YXRvckNvbnRlbnRVdGlsc0NsaWVudEd0ay5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRmYXZp
Y29uZGF0YWJhc2UuY3BwOgotICAgICAgICAoZ2V0SWNvblBpeGJ1ZkNhbmNlbGxlZCk6Ci0gICAg
ICAgICh3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9nZXRfZmF2aWNvbl9waXhidWYpOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19p
bml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDoKLQotMjAxNC0w
My0wNiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgotCi0gICAgICAgIFdl
YiBJbnNwZWN0b3I6IEV4cG9zZSB0aGUgY29uc29sZSBvYmplY3QgaW4gSlNDb250ZXh0cyB0byBp
bnRlcmFjdCB3aXRoIFdlYiBJbnNwZWN0b3IKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNzk0NAotCi0gICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5
IEdhcmVuLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKToKLSAg
ICAgICAgVXBkYXRlIG5hbWVzcGFjZXMuCi0KLTIwMTQtMDMtMDQgIFphbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KLQotICAgICAgICBFbmFibGUgZGV2aWNlIHBpeGVsIHJlcGFpbnQgcmVj
dCB0cmFja2luZy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTcxMgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KLQotICAgICAg
ICBUcmFja2VkIHJlcGFpbnQgcmVjdHMgYXJlIGRldmljZSBwaXhlbCBzbmFwcGVkIG5vdyB0byBz
dXBwb3J0IGhpRFBJIHRlc3QgY2FzZXMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjp0cmFja2VkUmVwYWludFJlY3RzKToKLQotMjAxNC0wMy0wMyAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gRml4IHNvbWUgc2ltcGxl
IGd0a2RvYyB3YXJuaW5ncyBmb3IgV2ViS2l0MQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjU5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9z
IEdhcmNpYSBDYW1wb3MuCi0KLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50eHQ6
IE1ha2UgcHVibGljIHNvbWUgZW51bSBkb2N1bWVudGF0aW9uIHRoYXQgaXMgdXNlZAotICAgICAg
ICBpbiBwdWJsaWMgQVBJcy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6IEZp
eCB0eXBvcyBhbmQgYWRkIGRvY3VtZW50YXRpb24gZm9yIGVudW1zIHByZXZpb3VzbHkKLSAgICAg
ICAgbWFya2VkIGFzIHByaXZhdGUuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDogRGl0dG8uCi0KLTIwMTQtMDIt
MjYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KLQotICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgY29uc29sZS5wcm9maWxlcyBmcm9tIHdpbmRvdy5jb25zb2xlIEFQ
SQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2ODgz
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rv
cl9jbGFzc19pbml0KToKLSAgICAgICAgUmVtb3ZlZCBzdGFsZSBwYXJ0IG9mIGNvbW1lbnQuCi0K
LTIwMTQtMDItMjYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFtHVEtdIGdlbmVyYXRlLWd0a2RvYyBjYW4gZmFpbCB3aXRoIFdlYktpdDEgb3IgV2Vi
S2l0MiBvbmx5IGJ1aWxkcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI5MzE5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1w
b3MuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogRG8gbm90IGdlbmVyYXRlIHRoZSBkb2N1
bWVudGF0aW9uIGNvbmZpZ3VyYXRpb24gZmlsZSBpZiB0aGUgcG9ydAotICAgICAgICBpcyBkaXNh
YmxlZC4KLQotMjAxNC0wMi0yNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgotCi0gICAgICAgIEdldCByaWQgb2YgVmlzaXRlZExpbmtTdHJhdGVneQotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MzI0Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRm
b3JtU3RyYXRlZ2llc0d0ay5jcHA6Ci0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6Omdl
dFBsdWdpbkluZm8pOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2ll
c0d0ay5oOgotCi0yMDE0LTAyLTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBNYXJrIHZpZXcgc291cmNlIG1vZGUgbWV0aG9kcyBh
cyBkZXByZWNhdGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg5MjAKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6IE1hcmsgc2V0L2dldF92aWV3X3NvdXJj
ZV9tb2RlIGFzCi0gICAgICAgIGRlcHJlY2F0ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDogQWRkIGRlcHJlY2F0aW9uIGd1YXJkcy4KLQot
MjAxNC0wMi0yNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgW0dUS10gZ2VuZXJhdGUtZ3RrZG9jIHNob3VsZCBub3QgZ2VuZXJhdGUgZG9jdW1lbnRh
dGlvbiBmb3Igc291cmNlIGZpbGVzIGZvciB1bmJ1aWx0IHNvdXJjZSBmaWxlcwotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NDE3Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCi0KLSAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogR2VuZXJhdGUgYSBjb25maWcgZmlsZSBmb3IgZ2VuZXJhdGUtZ3RrZG9jLgotCi0yMDE0
LTAyLTI0ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+Ci0K
LSAgICAgICAgUkVHUkVTU0lPTihyMTY0NDM4KTogW0dUS10gVGVzdHMgL1dlYktpdEd0ay90ZXN0
Y29udGV4dG1lbnUsIC9XZWJLaXRHdGsvdGVzdG1pbWVoYW5kbGluZywgL1dlYktpdEd0ay90ZXN0
bG9hZGluZyBhc3NlcnQgaW4gRGVidWcgYnVpbGQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTI1NgotCi0gICAgICAgIFJldmlld2VkIGJ5IENhcmxv
cyBHYXJjaWEgQ2FtcG9zLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOiBNYW5hZ2UgZXJyb3IgdmFsdWVzIG5vdCBwcmVzZW50IGluIFdlYkNvcmUK
LSAgICAgICAgKFdlYktpdDo6dG9XZWJLaXROZXR3b3JrRXJyb3IpOgotCi0yMDE0LTAyLTI0ICBS
ZW5hdGEgSG9kb3ZhbiAgPHJob2RvdmFuLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+Ci0K
LSAgICAgICAgR2V0IHJpZCBvZiB0aGUgdW51c2VkICdpbW1lZGlhdGUnIHBhcmFtZXRlcnMgZnJv
bSByZXBhaW50IHJlbGF0ZWQgZnVuY3Rpb25zCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkxMTEKLQotICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBG
cmFzZXIuCi0KLSAgICAgICAgUmVtb3ZpbmcgdGhlICdpbW1lZGlhdGUnIHBhcmFtZXRlcnMgZnJv
bSByZXBhaW50IHJlbGF0ZWQgZnVuY3Rpb25zIC0gYWNjb3JpbmcKLSAgICAgICAgdG8gdGhlIEZJ
WE1FIGluIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKCkgLSBzaW5jZSB0aGV5IGhh
dmUgbm8gZWZmZWN0LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlUm9vdFZpZXcp
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJv
b3RWaWV3KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVu
dHNGb3JTbG93U2Nyb2xsKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuaDoKLQotMjAxNC0wMi0yMyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcu
Y29tPgotCi0gICAgICAgIENoYW5nZSBhIHVybCBwYXJhbWV0ZXIgdHlwZSB3aXRoIFVSTCBpbiBO
YXZpZ2F0b3JDb250ZW50VXRpbHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyOTIwMgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCi0K
LSAgICAgICAgSXQgd291bGQgYmUgZ29vZCBpZiB3ZSB1c2UgKlVSTCogZm9yIHVybCBwYXJhbWV0
ZXJzIGluc3RlYWQgb2YgdXNpbmcgU3RyaW5nLgotCi0gICAgICAgIE1lcmdlIGZyb20gYmxpbmsu
IGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92aWV3dmMvYmxpbms/dmlldz1yZXYmcmV2aXNpb249
MTY1NDU4LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvTmF2aWdhdG9yQ29udGVudFV0aWxz
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50R3RrLmg6Ci0KLTIwMTQtMDItMjAgIEVucmlxdWUg
T2Nhw7FhIEdvbnrDoWxleiAgPGVvY2FuaGFAaWdhbGlhLmNvbT4KLQotICAgICAgICBXZWJLaXRH
VEsrIHNob3VsZCBzdG9wIHVzaW5nIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0gbWFjcm9z
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MDAK
LQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbTogUmVtb3ZlZCBBc3NlcnRNYXRjaGluZ0VudW1zLmNwcAotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOiBSZW1vdmVkLgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6IERlZmluZWQgYW5k
IGFwcGxpZWQgdHlwZSBjb252ZXJzaW9ucy4KLSAgICAgICAgKHRvV2ViQ29yZUZpbmRPcHRpb25z
KToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZmluZFN0cmluZyk6Ci0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOiBEZWZpbmVkIGFu
ZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCi0gICAgICAgIChXZWJLaXQ6OnRvV2ViS2l0TmV0
d29ya0Vycm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbExvYWRpbmcpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRGYWlsTG9hZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpz
aG91bGRGYWxsQmFjayk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rp
b24uY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCi0gICAgICAgIChX
ZWJLaXQ6OmtpdCk6Ci0gICAgICAgIChXZWJLaXQ6OmNvcmUpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5jcHA6IERlZmluZWQgYW5kIGFwcGxpZWQgdHlwZSBjb252ZXJzaW9u
cy4KLSAgICAgICAgKFdlYktpdDo6Y29yZSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOiBEZWZpbmVkIGFuZCBhcHBsaWVkIHR5cGUgY29udmVyc2lvbnMuCi0gICAgICAgIChj
b3B5R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZh
bHVlcyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvcHlfdGFy
Z2V0X2xpc3QpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlz
dCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IEFkZGVkIHRhcmdl
dExpc3QgcHJpdmF0ZSBmaWVsZCwgd2hpY2ggbWlycm9ycyBQYXN0ZWJvYXJkSGVscGVyOjpkZWZh
dWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRMaXN0KCkgYnV0IHdpdGggdGhlIGZsYWdzIGNv
bnZlcnRlZCB0byBXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbwotCi0yMDE0LTAyLTE3ICBTZXJnaW8g
Q29ycmVpYSAgPHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+Ci0KLSAgICAgICAgUmVwbGFj
ZSB1c2VzIG9mIFBhc3NPd25QdHIvT3duUHRyIHdpdGggc3RkOjp1bmlxdWVfcHRyIGluIFdlYkNv
cmUvaW5zcGVjdG9yCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg2ODEKLQotICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCi0KLSAg
ICAgICAgQW5vdGhlciBzdGVwIHRvd2FyZHMgZ2V0dGluZyByaWQgb2YgUGFzc093blB0ci9Pd25Q
dHIsIG5vdyB0YXJnZXRpbmcKLSAgICAgICAgV2ViQ29yZS9pbnNwZWN0b3IvKi4gQmVzaWRlcyBm
aWxlcyBpbiB0aGVyZSwgYSBmZXcgb3RoZXIgZmlsZXMgaW4KLSAgICAgICAgSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yLCBXZWJLaXQvLCBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
Ci0gICAgICAgIGFuZCBXZWJDb3JlL3Rlc3Rpbmcgd2VyZSB0b3VjaGVkLgotCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLQotMjAxNC0wMi0xNyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgotCi0gICAgICAgIFdlYktpdEdUSysg
c2hvdWxkIHN0b3AgY2FsbGluZyBmdW5jdGlvbnMgdG8gc2V0IHRoZSB2aWV3IHNvdXJjZSBtb2Rl
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg5MTkK
LQotICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KLQotICAgICAgICBU
aGlzIGlzIGEgZmlyc3Qgc3RlcCB0b3dhcmRzIGdldHRpbmcgcmlkIG9mIHRoZSB2aWV3IHNvdXJj
ZSBtb2RlIGZyb20gV2ViQ29yZS4gCi0gICAgICAgIFZpZXcgc291cmNlIHNob3VsZG4ndCBiZSBh
IG1vZGUgb24gdGhlIHdlYiBwYWdlIGFuZCBjYW4gYmUgaW1wbGVtZW50ZWQgaW4gb3RoZXIgd2F5
cyBieQotICAgICAgICBlbWJlZGRpbmcgYXBwcy4gRnVydGhlcm1vcmUsIHRoZSBpbnNwZWN0b3Ig
aGFzIGFuIGV4Y2VsbGVudCB2aWV3IHNvdXJjZSBtb2RlLgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF92aWV3X3NvdXJj
ZV9tb2RlKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfdmlld19zb3VyY2VfbW9kZSk6
Ci0gICAgICAgIFR1cm4gdGhlc2UgaW50byBuby1vcHMuCi0KLTIwMTQtMDItMTEgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KLQotICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IE1h
a2UgR3JhcGhpY3NMYXllckNsaWVudDo6cGFpbnRDb250ZW50cydzIGNsaXAgcmVjdCBzdWJwaXhl
bCBiYXNlZC4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyODQ2MAotCi0gICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KLQotICAgICAgICBH
cmFwaGljc0NsaWVudDo6cGFpbnRDb250ZW50cyB0YWtlcyBjbGlwUmVjdCBhcyBGbG9hdFJlY3Qg
bm93IHNvIHRoYXQgd2UgY2FuIHBhaW50IG9uCi0gICAgICAgIHN1YnBpeGVsIHBvc2l0aW9uLgot
Ci0gICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMpOgot
Ci0yMDE0LTAyLTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
LQotICAgICAgICBbR0xJQl0gQWRkIEdVbmlxdWVPdXRQdHIgYW5kIHVzZSBpdCBpbnN0ZWFkIG9m
IEdPd25QdHIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNzU1NAotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQot
ICAgICAgICBVc2UgR1VuaXF1ZU91dFB0ciBpbnN0ZWFkIG9mIEdPd25QdHIuCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9vcGVuX3N0cmVh
bV9mb3JfdXJpKToKLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9zZXRfZGVzdGluYXRpb25fdXJp
KToKLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9yZWNlaXZlZF9kYXRhKToKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2VicGx1Z2luLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfcGx1Z2luX2dl
dF9wYXRoKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50KToKLQotMjAxNC0wMi0wOSAgQ2FybG9zIEdhcm5h
Y2hvICA8Y2FybG9zZ0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgW0dUS10gQWxsb3cgYnVpbGRpbmcg
d2l0aCB0b3VjaCBldmVudHMgZW5hYmxlZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTg5MzEKLQotICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2Fy
Y2lhIENhbXBvcy4KLQotICAgICAgICBFdmVuIHRob3VnaCBXZWJLaXQxIEdUSyBjb2RlIGRvZXNu
J3QgaW1wbGVtZW50IHRvdWNoIGV2ZW50cywKLSAgICAgICAgRml4IGJ1aWxkIGlmIEVOQUJMRV9U
T1VDSF9FVkVOVFMgaXMgcHJlc2VudCBmb3IgV0syLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6bmVl
ZFRvdWNoRXZlbnRzKTogQWRkIGVtcHR5IHN0dWIKLQotMjAxNC0wMi0wOCAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KLQotICAgICAgICBDbGVhbnVwIHRoZSBpbnRlcmZhY2Ugb2Yg
RnJhbWVTZWxlY3Rpb24KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyODQ4MQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZWN0YW5nbGVGb3JTZWxlY3Rpb24pOgot
Ci0yMDE0LTAyLTA4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KLQotICAgICAgICBD
aGFuZ2UgVGV4dEl0ZXJhdG9yIHRvIHVzZSBTdHJpbmdWaWV3LCBwcmVwYXJpbmcgdG8gd2VhbiBp
dCBmcm9tIGRlcHJlY2F0ZWRDaGFyYWN0ZXJzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjgyMzMKLQotICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMg
Q2FybHNzb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50R3RrOjpjaGVja1NwZWxs
aW5nT2ZTdHJpbmcpOiBVc2UgU3RyaW5nVmlldy4KLSAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXJDbGllbnRHdGs6OmNoZWNrR3JhbW1hck9mU3RyaW5nKTogRGl0dG8uCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuaDogRGl0dG8uCi0KLTIwMTQtMDItMDcg
IEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgotCi0gICAgICAgIFJl
bW92ZSBpc0luaXRpYWxTdGF0ZSBmbGFnIGZyb20gUGFnZTo6c2V0Vmlld1N0YXRlCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg0MjgKLQotICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c2V0UGFnZVZpc2liaWxpdHkpOgotICAgICAgICAgICAgLSBkb24ndCBwYXNzIGlzSW5p
dGlhbFN0YXRlIHRvIHNldFZpZXdTdGF0ZS4KLQotMjAxNC0wMi0wNiAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgotCi0gICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBDb25z
b2xlIHN1cHBvcnQgdG8gSlNDb250ZXh0IEluc3BlY3Rpb24KLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzk0MQotCi0gICAgICAgIFJldmlld2VkIGJ5
IEdlb2ZmcmV5IEdhcmVuLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25z
b2xlKToKLQotMjAxNC0wMi0wNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3Jn
PgotCi0gICAgICAgIFJlbW92ZSBFTkFCTEUoU1ZHKSBndWFyZHMKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzk5MQotCi0gICAgICAgIFJldmlld2Vk
IGJ5IFNhbSBXZWluaWcuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotCi0yMDE0LTAyLTA1ICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBSZXBsYWNlIERFRklORV9TVEFU
SUNfTE9DQUwgd2l0aCBOZXZlckRlc3Ryb3llZDxUPiBpbiBHVEsgV0sxIGFuZCBXSzIgY29kZQot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MTk1Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFVzZSBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8VD4gdmFyaWFibGVzIGluc3RlYWQgb2YgdGhlIERFRklORV9TVEFU
SUNfTE9DQUwgbWFjcm8uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0
ZWdpZXNHdGsuY3BwOgotICAgICAgICAoUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjppbml0aWFsaXpl
KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsuaDoKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAoaXNHb29nbGVE
b21haW4pOgotCi0yMDE0LTAyLTA0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4K
LQotICAgICAgICBSZW1vdmUgPGlmcmFtZSBzZWFtbGVzcz4gc3VwcG9ydC4KLSAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzEyODIxMz4KLQotICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBB
bnR0aSBLb2l2aXN0by4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmg6Ci0KLTIwMTQtMDEtMzEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIEZpeGluZyB0aGUgR1RLIGJ1aWxkIGFmdGVy
IHIxNjMyMzIuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0Ojpjb2xsYXBzZVNlbGVjdGlvbik6IEFkZCBhbiBhZGRpdGlvbmFs
IEZyYW1lU2VsZWN0aW9uOjpzZWxlY3Rpb24oKSBjYWxsLgotCi0yMDE0LTAxLTMxICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgotCi0gICAgICAgIFJlbW92ZSBpbmxpbmUgbWVtYmVy
IGZ1bmN0aW9ucyBvZiBGcmFtZVNlbGVjdGlvbiB0aGF0IGFjY2VzcyBtX3NlbGVjdGlvbgotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3OTg2Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgRW5yaWNhIENhc3VjY2kuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZWxlY3RlZFJhbmdlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0Ojpjb2xsYXBzZVNlbGVjdGlvbik6
Ci0KLTIwMTQtMDEtMzAgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+Ci0KLSAgICAg
ICAgUmVtb3ZlIHRoZSBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBmbGFnCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc4MzMKLQotICAgICAgICBSZXZp
ZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KLQotICAgICAgICBSZW1vdmUgdGhlIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgY29uZGl0aW9uYWxzIGZyb20gdGhlIGNvZGUgYmFzZSBhbmQgbWFr
ZSBBQwotICAgICAgICBtYW5kYXRvcnkuCi0KLSAgICAgICAgQW5vdGhlciBwYXRjaCB3aWxsIGJl
IHJlcXVpcmVkIHRvIHJlbW92ZSB0aGUgZmxhZyBzdXBwb3J0IGZyb20gdGhlIEdUSyBidWlsZCBz
eXN0ZW0uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dC5oOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0R0wuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6d2lkZ2V0U2l6ZUNoYW5nZWQp
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmZvcmNlUGFpbnQpOgotICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKLSAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGwpOgotICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKToKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRp
bmdzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
cHJpdmF0ZS5oOgotCi0yMDE0LTAxLTI5ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtp
dC5vcmc+Ci0KLSAgICAgICAgUmVtb3ZlIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSBndWFy
ZHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzg0
MAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRf
cHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X3Byb3BlcnR5KToK
LQotMjAxNC0wMS0yNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
Ci0KLSAgICAgICAgW0dUS10gTWFrZSB3ZWJraXRfdXJpX3NjaGVtZV9yZXF1ZXN0X2dldF93ZWJf
dmlldygpIHdvcmsgd2l0aCBDdXN0b21Qcm90b2NvbHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYxNAotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1
c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBSZW1vdmUgaW5pdGlhdGluZ1BhZ2VJRCgp
IG1ldGhvZCBmcm9tIEZyYW1lTmV0d29ya2luZ0NvbnRleHQuCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmg6Ci0KLTIwMTQtMDEtMjcgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3
ZWQuIEZpeCBHVEsrIGJ1aWxkIGFmdGVyIHIxNjI4MDguCi0KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViaGlzdG9yeWl0ZW0uY3BwOgotICAgICAgICAod2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1f
bmV3X3dpdGhfZGF0YSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfbGFz
dF92aXNpdGVkX3RpbWUpOgotCi0yMDE0LTAxLTI1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmVtb3ZlIGFuIHVudXNlZCBGcmFtZUxvYWRlckNsaWVu
dCBmdW5jdGlvbgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3NjI4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotCi0yMDE0LTAxLTI0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+Ci0KLSAgICAgICAgR1RLKyBidWlsZCBm
aXguCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfY2FuX2dvX2JhY2spOgotCi0yMDE0LTAxLTI0ICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmVtb3ZlIGJhY2svZm9yd2FyZCBsaXN0
IHJlbGF0ZWQgZnVuY3Rpb25zIGZyb20gUGFnZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NTk2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVh
cyBLbGluZy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19zZXRfbWFpbnRhaW5zX2JhY2tfZm9yd2FyZF9saXN0KToKLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19nZXRfYmFja19mb3J3YXJkX2xpc3QpOgotICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X2dvX2JhY2spOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dvX2JhY2tf
b3JfZm9yd2FyZCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ29fZm9yd2FyZCk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2JhY2tfb3JfZm9yd2FyZCk6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQpOgotCi0yMDE0LTAxLTI0ICBFbnJpcXVlIE9j
YcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gUHV0
IGNhY2hlIGZpbGVzIGluIFhER19DQUNIRV9IT01FCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0NTgKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0
aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRJbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNlLmNw
cDoKLQotMjAxNC0wMS0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgot
Ci0gICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyB0
aW1lciBpbiBTY3JpcHREZWJ1Z1NlcnZlcgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NDA5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkg
R2FyZW4uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3Bl
Y3RvcldpbmRvdyk6Ci0gICAgICAgIEluY2x1ZGUgSW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbi4K
LQotMjAxNC0wMS0yMyAgTWF4IFZ1am92aWMgIDxtdnVqb3ZpY0BhZG9iZS5jb20+Ci0KLSAgICAg
ICAgUmVtb3ZlIENTUyBDdXN0b20gRmlsdGVycyBjb2RlIGFuZCB0ZXN0cwotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MzgyCi0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAg
KHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJf
c2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGlu
Z3Nwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKLQotMjAxNC0wMS0yMiAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dMSUJdIFVzZSBHVW5pcXVlUHRy
IGluc3RlYWQgb2YgR093blB0cgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI3NDMxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29u
LgotCi0gICAgICAgIEdVbmlxdWVQdHIgaXMgYSB0ZW1wbGF0ZSBhbGlhcyBvZiBzdGQ6OnVuaXF1
ZV9wdHIgd2l0aCBhIGN1c3RvbQotICAgICAgICBkZWxldGVyIHRoYXQgcmVwbGFjZXMgR093blB0
ci4gR093blB0ciBpcyBzdGlsbCB1c2VkIGZvciB0aGUgY2FzZXMKLSAgICAgICAgd2hlcmUgdGhl
IG91dHB1dCBwb2ludGVyIGlzIG5lZWRlZCwgYnV0IGl0IHdpbGwgYWxzbyBiZSByZXBsYWNlZCBz
b29uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpnZXRVbmljb2RlTWVudUl0ZW1Qb3NpdGlvbik6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkRy
YWdDbGllbnQ6OnN0YXJ0RHJhZyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2V0VmFsdWVGb3JVc2VyKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp1c2VyQWdlbnQpOgotICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hXaWxsU2VuZFJlcXVlc3QpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVu
dDo6YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QpOgotICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UpOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0
aCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlz
aExvYWRpbmcpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRGYWlsTG9hZGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEZhaWxMb2FkKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRHdGsuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDoKLSAg
ICAgICAgKHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX3NldF9wYXRoKToKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
Z2xvYmFscy5jcHA6Ci0gICAgICAgICh3ZWJraXRJbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0aGl0dGVzdHJlc3VsdC5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmtpdCk6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdGljb25kYXRhYmFzZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfaWNvbl9kYXRh
YmFzZV9zZXRfcGF0aCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hh
bnQuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW4uY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl9wbHVnaW5fZ2V0X3BhdGgpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJw
bHVnaW5wcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3NldHRpbmdzX2NvcHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19mb3J3YXJkX2NvbnRleHRfbWVudV9ldmVudCk6
Ci0gICAgICAgIChmaWxlQ2hvb3NlckRpYWxvZ1Jlc3BvbnNlQ2FsbGJhY2spOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2RyYWdfZW5kKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
d3ByaXZhdGUuaDoKLQotMjAxNC0wMS0yMiAgVGhpYWdvIGRlIEJhcnJvcyBMYWNlcmRhICA8dGhp
YWdvLmxhY2VyZGFAb3BlbmJvc3NhLm9yZz4KLQotICAgICAgICBbRUZMXVtHVEtdIEdldCBFRkwg
YW5kIEdUSyBjb21waWxpbmcgd2l0aCBBQ0NFU1NJQklMSVRZIGRpc2FibGVkCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjcxMTkKLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJpbyBTYW5jaGV6IFByYWRhLgotCi0gICAgICAgIEd1YXJkaW5nIEFDQ0VT
U0lCSUxJVFkgY29kZSB3aXRoIEhBVkUoQUNDRVNTSUJJTElUWSkuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6Ci0KLTIwMTQtMDEtMTggIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+Ci0KLSAgICAg
ICAgV2ViIEluc3BlY3RvcjogUGFnZSBzaG91bGQgdXNlIHN0ZDo6dW5pcXVlX3B0ciBmb3IgSW5z
cGVjdG9yQ29udHJvbGxlcgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI3MDY4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgot
Ci0gICAgICAgIENvbnZlcnQgY2FsbCBzaXRlcyB0byB1c2UgYSBJbnNwZWN0b3JDb250cm9sbGVy
IHJlZmVyZW5jZS4KLSAgICAgICAgQ29udmVydCBpbnN0YW50aWF0aW9ucyBvZiBJbnNwZWN0b3JG
cm9udGVuZENsaWVudCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6cGFpbnRXZWJW
aWV3KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2luc3BlY3Rvcl9zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9pbnNw
ZWN0b3JfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfaW5zcGVjdG9yX3Nob3cp
OgotICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3JfaW5zcGVjdF9ub2RlKToKLSAgICAgICAg
KHdlYmtpdF93ZWJfaW5zcGVjdG9yX2luc3BlY3RfY29vcmRpbmF0ZXMpOgotICAgICAgICAod2Vi
a2l0X3dlYl9pbnNwZWN0b3JfY2xvc2UpOgotICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3Jf
ZXhlY3V0ZV9zY3JpcHQpOgotCi0yMDE0LTAxLTE3ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmVtb3ZlIGFub3RoZXIgdW51c2VkIEZyYW1lTG9hZGVy
Q2xpZW50IGNhbGxiYWNrCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjcxOTIKLQotICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMTQtMDEtMTcg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KLQotICAgICAgICBSZW1vdmUg
ZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbiBmcm9tIGFsbCBGcmFtZUxvYWRlckNsaWVudCBzdWJj
bGFzc2VzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjcxOTAKLQotICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgotCi0gICAgICAgIFJl
bW92aW5nIHRoaXMgc2hvdWxkbid0IGhhdmUgYW55IGJhZCBlZmZlY3RzLCBidXQgaWYgdGhhdCBp
cyB0aGUgY2FzZSBpdCdzIHBvc3NpYmxlIHRvCi0gICAgICAgIHNldCB0aGUgY2FjaGUgbW9kZWwg
aW4gZGlkQ29tbWl0TG9hZEZvckZyYW1lLCBzaW1pbGFyIHRvIHdoYXQgaXMgZG9uZSBpbiByMTYy
MjI0LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIw
MTQtMDEtMTYgIEphZWh1biBMaW0gIDxsamFlaHVuLmxpbUBzYW1zdW5nLmNvbT4KLQotICAgICAg
ICBVc2UgZmluYWwgaW5zdGVhZCBvZiBGSU5BTAotCi0gICAgICAgIFVucmV2aWV3ZWQgYnVpbGQg
Zml4LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50R3Rr
Lmg6Ci0KLTIwMTQtMDEtMTYgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5l
ci5zYW1zdW5nLmNvbT4KLQotICAgICAgICBSZW1vdmUgd29ya2Fyb3VuZCBmb3IgY29tcGlsZXJz
IG5vdCBzdXBwb3J0aW5nIGV4cGxpY2l0IG92ZXJyaWRlIGNvbnRyb2wKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzExMQotCi0gICAgICAgIFJldmll
d2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KLQotICAgICAgICBOb3cgYWxsIGNvbXBpbGVycyBzdXBw
b3J0IGV4cGxpY2l0IG92ZXJyaWRlIGNvbnRyb2wsIHRoaXMgd29ya2Fyb3VuZCBjYW4gYmUgcmVt
b3ZlZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1Byb2dyZXNzVHJhY2tlckNsaWVudEd0ay5oOgotCi0yMDE0LTAxLTE1ICBa
YW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXVtXSzFd
IEFkZCBQcm9ncmVzc1RyYWNrZXJDbGllbnQgaW1wbGVtZW50YXRpb24KLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzA0OAotCi0gICAgICAgIFJldmll
d2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KLQotICAgICAgICBJbiByMTYyMDM0LCB0aGUgcHJvZ3Jl
c3MgdHJhY2tlciBjbGllbnQgd2FzIHNlcGFyYXRlZCBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IGlu
dG8gdGhlCi0gICAgICAgIFByb2dyZXNzVHJhY2tlckNsaWVudCBjbGFzcy4gVGhpcyBwYXRjaCBh
ZGRzIHRoZSBXZWJLaXQgbGF5ZXIgaW1wbGVtZW50YXRpb24gb2YgdGhhdAotICAgICAgICBjbGFz
cyBmb3IgR1RLLVdLMSB0aGF0J3MgcHJhY3RpY2FsbHkgaWRlbnRpY2FsIHRvIHRoZSBjbGllbnQg
aW1wbGVtZW50YXRpb24gdGhhdCB3YXMKLSAgICAgICAgaW4gdXNlIHVuZGVyIFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9Qcm9ncmVzc1RyYWNrZXJDbGllbnRHdGsuY3BwOiBBZGRlZC4KLSAgICAgICAgKFdlYktpdDo6
UHJvZ3Jlc3NUcmFja2VyQ2xpZW50OjpQcm9ncmVzc1RyYWNrZXJDbGllbnQpOgotICAgICAgICAo
V2ViS2l0OjpQcm9ncmVzc1RyYWNrZXJDbGllbnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCk6
Ci0gICAgICAgIChXZWJLaXQ6OlByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJvZ3Jlc3NTdGFydGVk
KToKLSAgICAgICAgKFdlYktpdDo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc0VzdGlt
YXRlQ2hhbmdlZCk6Ci0gICAgICAgIChXZWJLaXQ6OlByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJv
Z3Jlc3NGaW5pc2hlZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50R3RrLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKLQotMjAxNC0wMS0xMyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW1NPVVBdIEFkZCBT
b3VwTmV0d29ya1Nlc3Npb24gY2xhc3MgdG8gd3JhcCBhIFNvdXBTZXNzaW9uCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY4MTMKLQotICAgICAgICBS
ZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0Z2xvYmFscy5jcHA6Ci0gICAgICAgICh3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbik6IFVz
ZSB0aGUgbmV3IFNvdXBOZXR3b3JrU2Vzc2lvbiBBUEkKLSAgICAgICAgdG8gZ2V0IHRoZSBkZWZh
dWx0IFNvdXBTZXNzaW9uCi0KLTIwMTQtMDEtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBORVdTIGFuZCBW
ZXJzaW9ucy5tNCBmb3IgMi4zLjQgcmVsZWFzZS4KLQotICAgICAgICAqIE5FV1M6IEFkZGVkIHJl
bGVhc2Ugbm90ZXMgZm9yIDIuMy40LgotCi0yMDE0LTAxLTEzICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTYxODA4LgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNjE4MDgK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjg3NAot
Ci0gICAgICAgIFRoaXMgcGF0Y2ggbWFrZSBzZXZlcmFsIGZpbGVzIHRvIGJlIGFsd2F5cyByZWdl
bmVyYXRlZCBvbgotICAgICAgICBldmVyeSBtYWtlIChSZXF1ZXN0ZWQgYnkgS2FMIG9uICN3ZWJr
aXQpLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06Ci0KLTIwMTQtMDEtMTIgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQu
IEZpeCBtYWtlIGRpc3RjaGVjay4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGQgZW51
bSB0eXBlcyB0ZW1wbGF0ZSBmaWxlcyB0byBFWFRSQV9ESVNULgotCi0yMDE0LTAxLTEyICBUb2Jp
YXMgTXVlbGxlciAgPHRvYmlhc211ZUBnbm9tZS5vcmc+Ci0KLSAgICAgICAgLS1kaXNhYmxlLWRl
cGVuZGVuY3ktdHJhY2tpbmcgY2F1c2VzIGJ1aWxkIGZhaWx1cmUgZHVlIHRvIG1pc3NpbmcgZGly
ZWN0b3JpZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk0NDg4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0g
ICAgICAgIEF1dG90b29scyBidWlsZCBmaXg6IEVuc3VyZSBvdXRwdXQgZGlyZWN0b3J5IGV4aXN0
aW5nCi0gICAgICAgIGJlZm9yZSBnZW5lcmF0aW5nIERlcml2ZWRTb3VyY2VzLiBUaGlzIGFsbG93
cyBmb3IKLSAgICAgICAgLS1kaXNhYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgdG8gYmUgcnVuLgot
Ci0gICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZGVkIGEgbmV3IHRhcmdldCBvZiB0aGUgZGly
ZWN0b3J5IGluIHdoaWNoIGZpbGVzIGFyZSBtZWFudCB0byBiZSBzdG9yZWQgKCQoR0VOU09VUkNF
U19XRUJLSVQpKS4KLQotMjAxNC0wMS0xMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgotCi0gICAgICAgIFR3ZWFrIFByb2dyZXNzVHJhY2tlckNsaWVudCBmdW5jdGlvbnMK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjgwOAot
Ci0gICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50Ojpwcm9ncmVzc1N0YXJ0ZWQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQpOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6cHJvZ3Jlc3NGaW5pc2hlZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAxNC0wMS0xMCAgQW5kZXJzIENhcmxzc29u
ICA8YW5kZXJzY2FAYXBwbGUuY29tPgotCi0gICAgICAgIE1vdmUgcHJvZ3Jlc3MgdHJhY2tpbmcg
ZnVuY3Rpb25zIGZyb20gRnJhbWVMb2FkZXJDbGllbnQgdG8gYSBuZXcgUHJvZ3Jlc3NUcmFja2Vy
Q2xpZW50Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjY4MDEKLQotICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6Ci0KLTIwMTQt
MDEtMDggIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KLQotICAgICAg
ICBbR1RLXSBBZGQgeGRnLm9yaWdpbi51cmwgZXh0ZW5kZWQgYXR0cmlidXRlIHRvIGRvd25sb2Fk
cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NjM4
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCi0KLSAgICAgICAg
VGhpcyBpcyBwcm9wb3NlZCBieSBmZG8gaW4KLSAgICAgICAgaHR0cDovL3d3dy5mcmVlZGVza3Rv
cC5vcmcvd2lraS9Db21tb25FeHRlbmRlZEF0dHJpYnV0ZXMvCi0KLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX29wZW5fc3RyZWFt
X2Zvcl91cmkpOgotCi0yMDE0LTAxLTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBNb3ZlIGFsbCBHVEsvR09iamVjdCB1bml0IHRl
c3RzIHRvIFRvb2xzL1Rlc3RXZWJLaXRBUEkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNjM0MgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YS4KLQotICAgICAgICAqIHRlc3RzL0NNYWtlTGlzdHMudHh0OiBSZW1vdmVk
LgotICAgICAgICAqIHRlc3RzL0dOVW1ha2VmaWxlLmFtOiBSZW1vdmVkLgotCi0yMDE0LTAxLTA2
ICBMw6FzemzDsyBMYW5nw7MgIDxsYW5nb0BpbmYudS1zemVnZWQuaHU+Ci0KLSAgICAgICAgVXNl
IHVuc2lnbmVkIGNvbnNpc3RlbnRseSwgYW5kIGNoZWNrIGZvciBpbnZhbGlkIGNhc3RzIHdoZW4g
Y2FsbGluZyBpbnRvIFNoYXJlZEJ1ZmZlciBmcm9tIG90aGVyIGNvZGUuCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ1NzkKLQotICAgICAgICBSZXZp
ZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxv
YWQuY3BwOgotICAgICAgICAoRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKLQotMjAx
NC0wMS0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUkVHUkVTU0lPTihyMTYwMzA0KTogW0dUS10gRGlzYWJsZSBsaWJ0b29sIGZhc3QgaW5z
dGFsbAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2
MzgxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICog
dGVzdHMvR05VbWFrZWZpbGUuYW06Ci0KLTIwMTQtMDEtMDIgIEdhdmluIEJhcnJhY2xvdWdoICA8
YmFycmFjbG91Z2hAYXBwbGUuY29tPgotCi0gICAgICAgIE1lcmdlIGRpZE1vdmVPbnNjcmVlbiAv
IHBhZ2UgdmlzaWJpbGl0eSB0byBpc1Zpc2libGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjI2OAotCi0gICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCi0KLSAgICAgICAgVGhlIG9uc2NyZWVuIHN0YXRlIG1vc3QgY2xvc2VseSB0cmFja3Mg
dmlldyB2aXNpYmlsaXR5ICh0aG91Z2ggY3VycmVudGx5Ci0gICAgICAgIGFsc28gdHJhY2tzIGEg
bWl4IG9mIGluLXdpbmRvdyBzdGF0ZSkuIE1ha2UgbW9yZSBjb25zaXN0ZW50LCBzaW1wbGlmeSwK
LSAgICAgICAgYW5kIG1vdmUgYWxsIGFuaW1hdGlvbiBzdXNwZW5zaW9uIGxvZ2ljIHRvIFBhZ2Us
IHNvIGl0IGNhbiBiZSBjb250cm9sbGVkCi0gICAgICAgIGJ5IHRoZSBQYWdlVGhyb3R0bGVyLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoK
LSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0UGFnZVZpc2liaWxpdHkpOgot
ICAgICAgICAgICAgLSBzZXRWaXNpYmlsaXR5U3RhdGUgLT4gc2V0SXNWaXNpYmxlL3NldElzUHJl
cmVuZGVyLgotCi0yMDE0LTAxLTAyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNv
bT4KLQotICAgICAgICBbR1RLXSBGaXggbWlzbWF0Y2hlZCBoZWFkZXIgZ3VhcmRzIGluIHByaXZh
dGUgV0sxIGhlYWRlciBmaWxlcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI2MzkwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29u
LgotCi0gICAgICAgIEZpeCB0aHJlZSBtaXNtYXRjaGVkIGhlYWRlciBndWFyZHMgdGhhdCBhcmUg
cHJvZHVjaW5nIHdhcm5pbmdzIHdoZW4gYnVpbGRpbmcgd2l0aCBDbGFuZy4KLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzcHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJuYXZpZ2F0aW9uYWN0aW9ucHJpdmF0ZS5oOgotCi0yMDEzLTEyLTMwICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBNYWtlIHRoZSBv
dXRwdXQgZGlyZWN0b3J5IG9mIEdPYmplY3QgdW5pdCB0ZXN0cyBiaW5hcmllcyBjb25zaXN0ZW50
IHdpdGggdGhlIENNYWtlIGJ1aWxkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjYyOTcKLQotICAgICAgICBSZXZpZXdlZCBieSBQaGlsaXBwZSBOb3Jt
YW5kLgotCi0gICAgICAgICogdGVzdHMvR05VbWFrZWZpbGUuYW06IEJ1aWxkIHRoZSB0ZXN0cyBp
biB0aGUgbmV3IGRpcmVjdG9yeS4KLQotMjAxMy0xMi0yNiAgTWFydGluIFJvYmluc29uICA8bXJv
Ymluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgU21hbGwgYnVpbGQgZml4IGZvciB0aGUgR1RL
KyBDTWFrZSBwb3J0Ci0KLSAgICAgICAgKiB0ZXN0cy9DTWFrZUxpc3RzLnR4dDogT3V0cHV0IHRo
ZSBXZWJLaXQxIEdPYmplY3QgQVBJIHVuaXQgdGVzdHMgdG8gdGhlIHByb3BlciBkaXJlY3RvcnkK
LSAgICAgICAgYW5kIGZpeCB0aGUgcGF0aCB0byB0aGUgZ2VuZXJhdGVkIEFQSSBzb3VyY2UuCi0K
LTIwMTMtMTItMjMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFtHVEtdIFtDTWFrZV0gQnVpbGQgdGhlIFdlYktpdDEgR09iamVjdCBBUEkgdGVzdHMK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTY4NAot
Ci0gICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KLQotICAgICAgICAqIHRlc3RzL0NN
YWtlTGlzdHMudHh0OiBBZGRlZC4KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXBwbGljYXRpb25jYWNo
ZS5jOiBVc2UgdGhlIFdURiBjb25maWcuaCBpbnN0ZWFkIG9mIGluY2x1ZGluZyB0aGUgYXV0b3Rv
b2xzIGNvbmZpZ3VyYXRpb24gZGlyZWN0bHkuCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOiBE
aXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzogRGl0dG8uCi0gICAgICAgICog
dGVzdHMvdGVzdGNvbnRleHRtZW51LmM6IERpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3Rjb3B5
YW5kcGFzdGUuYzogRGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdGRvbWRvY3VtZW50LmM6IERp
dHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3Rkb21kb213aW5kb3cuYzogRGl0dG8uCi0gICAgICAg
ICogdGVzdHMvdGVzdGRvbW5vZGUuYzogRGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdGRvd25s
b2FkLmM6IERpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3RmYXZpY29uZGF0YWJhc2UuYzogRGl0
dG8uCi0gICAgICAgICogdGVzdHMvdGVzdGdsb2JhbHMuYzogRGl0dG8uCi0gICAgICAgICogdGVz
dHMvdGVzdGhpdHRlc3RyZXN1bHQuYzogRGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdGh0dHBi
YWNrZW5kLmM6IERpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3RrZXlldmVudHMuYzogRGl0dG8u
Ci0gICAgICAgICogdGVzdHMvdGVzdGxvYWRpbmcuYzogRGl0dG8uCi0gICAgICAgICogdGVzdHMv
dGVzdG1pbWVoYW5kbGluZy5jOiBEaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0bmV0d29ya3Jl
cXVlc3QuYzogRGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdG5ldHdvcmtyZXNwb25zZS5jOiBE
aXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0LmM6IERpdHRvLgot
ICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJkYXRhc291cmNlLmM6IERpdHRvLgotICAgICAgICAqIHRl
c3RzL3Rlc3R3ZWJmcmFtZS5jOiBEaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViaGlzdG9y
eWl0ZW0uYzogRGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdHdlYmluc3BlY3Rvci5jOiBEaXR0
by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2VicGx1Z2luZGF0YWJhc2UuYzogRGl0dG8uCi0gICAg
ICAgICogdGVzdHMvdGVzdHdlYnJlc291cmNlLmM6IERpdHRvLgotICAgICAgICAqIHRlc3RzL3Rl
c3R3ZWJzZXR0aW5ncy5jOiBEaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vidmlldy5jOiBE
aXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2luZG93LmM6IERpdHRvLgotCi0yMDEzLTEyLTIw
ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgW0dUS10gVGhlIGZ1bGxzY3JlZW4gQVBJIHNob3VsZCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTk5Mwot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBT
ZXQgdGhlIFdlYlNldHRpbmdzIHByb3BlcnR5IHRvIFRSVUUKLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNz
X2luaXQpOgotCi0yMDEzLTEyLTE2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KLQotICAgICAgICBbR1RLXSBbQ01ha2VdIEFkZCBzdXBwb3J0IGZvciBidWlsZGluZyBX
ZWJLaXQxCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTYzNzcKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogU3dpdGNoIHRvIHVzaW5nIHRoZSB0ZW1wbGF0ZXMgZm9y
IGJ1aWxkaW5nIHRoZSBHT2JqZWN0IGVudW1zLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRlbnVt
dHlwZXMuY3BwLnRlbXBsYXRlOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZW51bXR5
cGVzLmgudGVtcGxhdGU6IEFkZGVkLgotCi0yMDEzLTEyLTE4ICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgTkVX
UyBhbmQgVmVyc2lvbnMubTQgZm9yIDIuMy4zIHJlbGVhc2UuCi0KLSAgICAgICAgKiBORVdTOiBB
ZGRlZCByZWxlYXNlIG5vdGVzIGZvciAyLjMuMy4KLQotMjAxMy0xMi0xMSAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgotCi0gICAgICAgIFdlYiBJbnNwZWN0b3I6IFB1c2gg
TW9yZSBJbnNwZWN0b3IgUmVxdWlyZWQgQ2xhc3NlcyBEb3duIGludG8gSmF2YVNjcmlwdENvcmUK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNTMyNAot
Ci0gICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KLQotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAxMy0xMi0xMSAgSm9zw6kgRGFwZW5hIFBheiAgPGpk
YXBlbmFAaWdhbGlhLmNvbT4gYW5kIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgotCi0gICAgICAgIFtHVEtdIEFkZCBhIFVQb3dlci1iYXNlZCBCYXR0ZXJ5UHJvdmlkZXIKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTcxOQotCi0g
ICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIEdOVW1ha2Vm
aWxlLmFtOiBMaW5rIHRoZSBsaWJ3ZWJraWd0ayBsaWJyYXJ5IGFnYWluc3QgdGhlIHVwb3dlci1n
bGliIGxpYnJhcnkuCi0KLTIwMTMtMTItMTEgIEpvc8OpIERhcGVuYSBQYXogIDxqZGFwZW5hQGln
YWxpYS5jb20+IGFuZCBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KLQotICAg
ICAgICBbR1RLXVtXSzFdIEFkZCBhbiBlbXB0eSBCYXR0ZXJ5Q2xpZW50R3RrCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU2MjgKLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgQWRkIGFuIGVtcHR5IEJhdHRl
cnlDbGllbnRHdGssIGltcGxlbWVudGluZyB0aGUgV2ViQ29yZSdzIEJhdHRlcnlDbGllbnQgaW50
ZXJmYWNlLgotICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaXMgbGVmdCBlbXB0eSBpbnRlbnRp
b25hbGx5IGFzIHRoZSBXZWJLaXQxIHBvcnQgaXMgbm93IGluIG1haW50ZW5hbmNlCi0gICAgICAg
IG1vZGUgYW5kIHRoZXJlJ3Mgbm8gZGVzaXJlIHRvIHN1cHBvcnQgbmV3IGZlYXR1cmVzIHVuZGVy
IGl0LiBJdCdzIHN0aWxsIHJlcXVpcmVkIGFzIHRoZQotICAgICAgICBXZWJDb3JlIGltcGxlbWVu
dGF0aW9uIG9mIHRoZSBCYXR0ZXJ5IFN0YXR1cyBBUEkgZXhwZWN0cyBhbiBleGlzdGluZyBCYXR0
ZXJ5Q2xpZW50LCBldmVuCi0gICAgICAgIGlmIHRoZSBsYXR0ZXIgZG9lcyBub3Qgc2V0IHVwIGEg
cHJvdmlkZXIgdGhhdCB3b3VsZCB0aGVuIHNlcnZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBiYXR0
ZXJ5Ci0gICAgICAgIHN0YXRlLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZCB0aGUg
QmF0dGVyeUNsaWVudEd0ayBzb3VyY2UgZmlsZXMgdG8gdGhlIGJ1aWxkLgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRHdGsuY3BwOiBBZGRlZC4KLSAgICAgICAgKFdlYktp
dCk6Ci0gICAgICAgIChXZWJLaXQ6OkJhdHRlcnlDbGllbnRHdGs6OkJhdHRlcnlDbGllbnRHdGsp
OgotICAgICAgICAoV2ViS2l0OjpCYXR0ZXJ5Q2xpZW50R3RrOjpzdGFydFVwZGF0aW5nKToKLSAg
ICAgICAgKFdlYktpdDo6QmF0dGVyeUNsaWVudEd0azo6c3RvcFVwZGF0aW5nKToKLSAgICAgICAg
KFdlYktpdDo6QmF0dGVyeUNsaWVudEd0azo6YmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95ZWQpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0JhdHRlcnlDbGllbnRHdGsuaDogQWRkZWQuCi0gICAg
ICAgIChXZWJLaXQpOgotICAgICAgICAoQmF0dGVyeUNsaWVudEd0ayk6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOiBT
ZXQgdXAgdGhlIEJhdHRlcnlDbGllbnRHdGsgZm9yIHRoZSBuZXcgV2ViQ29yZTo6UGFnZSBvYmpl
Y3QuCi0KLTIwMTMtMTItMTEgIEJyZW5kYW4gTG9uZyAgPGIubG9uZ0BjYWJsZWxhYnMuY29tPgot
Ci0gICAgICAgIFtHVEtdIEFkZCAiZW5hYmxlLW1lZGlhc291cmNlIiBwcm9wZXJ0eSB0byBXZWJL
aXRXZWJTZXR0aW5ncwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI1NTY2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KLQot
ICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJzZXR0aW5ncy5jOgotICAgICAgICAodGVzdF93ZWJraXRf
d2ViX3NldHRpbmdzX2NvcHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICAo
d2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9z
ZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5n
c3ByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEzLTEyLTEwICBKb2FubWFyaWUgRGlnZ3MgIDxq
ZGlnZ3NAaWdhbGlhLmNvbT4KLQotICAgICAgICBBWDogW0FUS10gQ29udmVydCB0aGUgZ2V0X3Rl
eHQgYXRrdGVzdC5jIHVuaXQgdGVzdHMgdG8gbGF5b3V0IHRlc3RzCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU0OTcKLQotICAgICAgICBSZXZpZXdl
ZCBieSBNYXJpbyBTYW5jaGV6IFByYWRhLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOiBS
ZW1vdmUgdGhlIHBvcnRpb25zIG9mIHRoZSByZW1haW5pbmcgdGVzdHMgd2hpY2ggbm93IGV4aXN0
IGFzCi0gICAgICAgIGxheW91dCB0ZXN0cy4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtDYXJldE9m
ZnNldHMpOgotICAgICAgICAodGVzdFdlYmtpdEF0a0NhcmV0T2Zmc2V0c0FuZEV4dHJhbm91c1do
aXRlU3BhY2VzKToKLSAgICAgICAgKHRlc3RXZWJraXRBdGtDb21ib0JveCk6Ci0gICAgICAgICh0
ZXN0V2Via2l0QXRrRW1iZWRkZWRPYmplY3RzKToKLSAgICAgICAgKHRlc3RXZWJraXRBdGtUZXh0
U2VsZWN0aW9ucyk6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrTGlzdHNPZkl0ZW1zKToKLSAgICAg
ICAgKG1haW4pOgotCi0yMDEzLTEyLTA5ICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlh
LmNvbT4KLQotICAgICAgICBBWDogW0FUS10gQ29udmVydCB0aGUgZ2V0X3tzdHJpbmcsdGV4dH1f
YXRfb2Zmc2V0IGF0a3Rlc3QuYyB1bml0IHRlc3RzIHRvIGxheW91dCB0ZXN0cwotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NDUxCi0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgTWFyaW8gU2FuY2hleiBQcmFkYS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3Rh
dGsuYzogUmVtb3ZlIHRoZSB0ZXN0cyB3aGljaCBub3cgZXhpc3QgYXMgbGF5b3V0IHRlc3RzLiBO
b3RlIHRoYXQgdGhlCi0gICAgICAgIHRlc3RzIGZvciBhdGtfdGV4dF9nZXRfdGV4dF97YmVmb3Jl
LGFmdGVyfV9vZmZzZXQgd2VyZSByZW1vdmVkIHdpdGhvdXQgZXF1aXZhbGVudHMKLSAgICAgICAg
YWRkZWQgdG8gdGhlIGxheW91dCB0ZXN0cy4gVGhlIHNhbWUgaXMgdHJ1ZSBmb3IgdGhlIEVORCBB
dGtUZXh0Qm91bmRhcnkgdHlwZXMuIEJvdGgKLSAgICAgICAgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQg
aW4gQVRLIGFuZCBhcmUgbm90IGJlaW5nIHVzZWQgYnkgQVQtU1BJMiBhc3Npc3RpdmUgdGVjaG5v
bG9naWVzLgotICAgICAgICAodGVzdEdldFRleHRGdW5jdGlvbik6Ci0gICAgICAgIChtYWluKToK
LQotMjAxMy0xMi0wOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0K
LSAgICAgICAgW1dLMl1bU291cF0gVXNlIGRpZFJlY2VpdmVCdWZmZXIgaW5zdGVhZCBvZiBkaWRS
ZWNlaXZlRGF0YQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE4NTk4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgot
Ci0gICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4gYW5kIENzYWJhIE9zenRyb2dvbsODwqFjICA8b3NzeUB3ZWJraXQub3JnPi4KLQot
ICAgICAgICBTd2l0Y2ggZnJvbSB1c2luZyBkaWRSZWNlaXZlRGF0YSB0byBkaWRSZWNlaXZlQnVm
ZmVyIGZvciB0aGUgU291cCBiYWNrZW5kIGFuZAotICAgICAgICBsZXQgU2hhcmVkQnVmZmVyIHdy
YXAgYSBTb3VwQnVmZmVyLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBOZXR3b3JrUHJv
Y2VzcwotICAgICAgICBvbmx5IHN1cHBvcnRzIGdldHRpbmcgZGF0YSB2aWEgU2hhcmVkQnVmZmVy
LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKERvd25s
b2FkQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6IFJlcGxhY2Ugd2l0aCBBU1NFUlRfTk9UX1JFQUNI
RUQuCi0gICAgICAgIChEb3dubG9hZENsaWVudDo6ZGlkUmVjZWl2ZUJ1ZmZlcik6IFVzZSB0aGlz
IHRvIHByb2Nlc3MgaW5jb21pbmcgZGF0YS4KLQotMjAxMy0xMi0wNyAgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBGaXggQVBJIHRlc3QgZXhwZWN0YXRp
b24gZm9sbG93aW5nIDE2MDIyMC4KLQotICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzoKLSAgICAgICAgKGZp
bmlzaF9sb2FkaW5nKTogcmVuYW1lIHZhcmlhYmxlIGRvY3VtZW50RnJhbWUgLT4gZG9jdW1lbnQu
Ci0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZG9jdW1lbnRfZnJhbWUpOiBjaGVj
ayBmb3IgQVRLX1JPTEVfRE9DVU1FTlRfV0VCIGluc3RlYWQgb2YKLSAgICAgICAgQVRLX1JPTEVf
RE9DVU1FTlRfRlJBTUUuCi0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfaGVhZGlu
Zyk6IHJlbmFtZSB2YXJpYWJsZSBkb2N1bWVudEZyYW1lIC0+IGRvY3VtZW50LgotICAgICAgICAo
dGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2ltYWdlKTogZGl0dG8uCi0gICAgICAgICh0ZXN0X3dl
YmtpdF9hdGtfZ2V0X3JvbGVfbGluayk6IGRpdHRvLgotICAgICAgICAodGVzdF93ZWJraXRfYXRr
X2dldF9yb2xlX2xpc3RfYW5kX2l0ZW0pOiBkaXR0by4KLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0
a19nZXRfcm9sZV9wYXJhZ3JhcGgpOiBkaXR0by4KLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19n
ZXRfcm9sZV9zZWN0aW9uKTogZGl0dG8uCi0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfdGFibGUpOiBkaXR0by4KLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9zZXBh
cmF0b3IpOiBkaXR0by4KLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9jb21ib2Jv
eCk6IGRpdHRvLgotICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2Zvcm0pOiBkaXR0
by4KLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9jaGVja19ib3gpOiBkaXR0by4K
LSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9lbnRyeSk6IGRpdHRvLgotICAgICAg
ICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2xhYmVsKTogZGl0dG8uCi0gICAgICAgICh0ZXN0
X3dlYmtpdF9hdGtfZ2V0X3JvbGVfbGlzdGJveCk6IGRpdHRvLgotICAgICAgICAodGVzdF93ZWJr
aXRfYXRrX2dldF9yb2xlX3Bhc3N3b3JkX3RleHQpOiBkaXR0by4KLSAgICAgICAgKHRlc3Rfd2Vi
a2l0X2F0a19nZXRfcm9sZV9wdXNoX2J1dHRvbik6IGRpdHRvLgotICAgICAgICAodGVzdF93ZWJr
aXRfYXRrX2dldF9yb2xlX3JhZGlvX2J1dHRvbik6IGRpdHRvLgotCi0yMDEzLTEyLTA1ICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBG
aXggR09iamVjdCBpbnRyb3NwZWN0aW9uIHdhcm5pbmdzIGluIHdlYmtpdHNwZWxsY2hlY2tlcgot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1Mjk5Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KLQotICAgICAgICAqIHdlYmtp
dC93ZWJraXRzcGVsbGNoZWNrZXIuY3BwOiBBZGQgbWlzc2luZyAnOicgYWZ0ZXIgc29tZQotICAg
ICAgICBnb2JqZWN0LWludHJvc3BlY3Rpb24gYW5ub3RhdGlvbnMuCi0KLTIwMTMtMTItMDMgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KLQotICAgICAgICBXZWIgSW5zcGVj
dG9yOiBQdXNoIFJlbW90ZSBJbnNwZWN0b3IgZGVidWdnaW5nIGNvbm5lY3Rpb24gbWFuYWdlbWVu
dCBpbnRvIEphdmFTY3JpcHRDb3JlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjQ2MTMKLQotICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNo
ZXIuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLQot
MjAxMy0xMi0wMiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxh
Ym9yYS5jb20+Ci0KLSAgICAgICAgW0dUS10gR1RLMiBwYWludCBjb2RlIHBhdGggZG9lcyBub3Qg
cmVuZGVyIEFDIGxheWVycwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI0OTY3Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1w
b3MuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50KTogYWxzbyBwYWludCBBQyBsYXllcnMgd2hlbiBwYWlu
dGluZyB0aGUgd2lkZ2V0LAotICAgICAgICB3aGVuIEFDIGlzIG9uLgotCi0yMDEzLTExLTI4ICBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvbT4KLQot
ICAgICAgICBSRUdSRVNTSU9OKHIxNTQ2NTgpOiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdfc291
cmNlX21vZGUgYWx3YXlzIHJldHVybnMgZmFsc2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDk1NAotCi0gICAgICAgIFJldmlld2VkIGJ5IENhcmxv
cyBHYXJjaWEgQ2FtcG9zLgotCi0gICAgICAgICogdGVzdHMvdGVzdHdlYnZpZXcuYzogbmV3IHRl
c3QgdG8gZW5zdXJlIHNldHRpbmcgYW5kIGdldHRpbmcgc291cmNlIG1vZGUgd29yayBhcyBpbnRl
bmRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3ZpZXdfc291cmNlX21vZGUpOiBhY3R1YWxseSByZXR1cm4gdGhlIHZh
bHVlIHdlIHF1ZXJ5IGZyb20gV2ViQ29yZS4KLQotMjAxMy0xMS0xOCAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRl
IE5FV1MgYW5kIFZlcnNpb25zLm00IGZvciAyLjMuMiByZWxlYXNlLgotCi0gICAgICAgICogTkVX
UzogQWRkZWQgcmVsZWFzZSBub3RlcyBmb3IgMi4zLjIuCi0KLTIwMTMtMTEtMDUgIFhhYmllciBS
b2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1N0cmVh
bWVyXSBSZW1vdmUgTkFUSVZFX0ZVTExTQ1JFRU5fVklERU8gc3VwcG9ydAotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNDM3Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KLQotICAgICAgICBSZW1vdmVkIHNvbWUgZGVhZCBj
b2RlIGFzIG5vIEdTdHJlYW1lciBwb3J0IGlzIHVzaW5nIHRoZSBuYXRpdmUKLSAgICAgICAgZnVs
bHNjcmVlbiB2aWRlbyBzdXBwb3J0LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjplbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpleGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOiBSZW1vdmVkIGNvZGUgcmVsYXRlZCB0bwotICAgICAgICBHU3RyZWFtZXIgYW5kIE5B
VElWRV9GVUxMU0NSRUVOX1ZJREVPLgotCi0yMDEzLTExLTA0ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdW1dLMV0gRW5hYmxlIENTUyBS
ZWdpb25zIGlmIGZlYXR1cmUgZmxhZyBpcyBzZXQgdG8gVFJVRQotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNzM5Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEluIFdLMSBDU1MgUmVnaW9ucyB3ZXJlIGFs
d2F5cyBkaXNhYmxlZCBldmVuIGlmIHlvdSBzZXQgdGhlIGZlYXR1cmUgZmxhZwotICAgICAgICBF
TkFCTEVfQ1NTX1JFR0lPTlMgdG8gVFJVRS4gRW5hYmxpbmcgQ1NTIFJlZ2lvbnMgc3VwcG9ydCBp
biB0aGF0IGNhc2UuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKTogRW5hYmxlIENTUyBSZWdpb25z
IGlmIGZlYXV0cmUgZmxhZyBpcwotICAgICAgICBzZXQgdG8gVFJVRS4KLQotMjAxMy0xMC0yOSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5y
ZXZpZXdlZC4gVXBkYXRlIE5FV1MgYW5kIFZlcnNpb25zLm00IGZvciAyLjMuMSByZWxlYXNlLgot
Ci0gICAgICAgICogTkVXUzogQWRkZWQgcmVsZWFzZSBub3RlcyBmb3IgMi4zLjEuCi0KLTIwMTMt
MTAtMjggIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5ldD4KLQotICAgICAgICBOYW1l
IGFsbCB0aGUgR0xpYiB0aW1lb3V0IHNvdXJjZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzIyOQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZGVy
cyBDYXJsc3Nvbi4KLQotICAgICAgICBHaXZlIGEgbmFtZSB0byBHTGliIHRpbWVvdXQgc291cmNl
cywgdGhpcyBpcyBoZWxwZnVsIHdoZW4KLSAgICAgICAgcHJvZmlsaW5nIFdlYktpdEdUSyBhcHBs
aWNhdGlvbnMuCi0KLTIwMTMtMTAtMjggIEJhc3RpZW4gTm9jZXJhIDxoYWRlc3NAaGFkZXNzLm5l
dD4KLQotICAgICAgICBSZXBsYWNlIDAgdGltZW91dHMgZ190aW1lb3V0X2FkZCgpIGJ5IGdfaWRs
ZV9hZGQoKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIzMjYwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCi0KLSAg
ICAgICAgQSB6ZXJvIHRpbWVvdXQgc2hvdWxkIGJlIGVxdWl2YWxlbnQgdG8gdXNpbmcgZ19pZGxl
X2FkZF9mdWxsKEdfUFJJT1JJVFlfREVGQVVMVCwgLi4uKQotICAgICAgICB3aXRob3V0IHRoZSBu
YWdnaW5nIGZlZWxpbmcgdGhhdCB0aGUgd3JvbmcgQVBJIHdhcyB1c2VkLgotCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDogVXNlIGdfaWRsZV9hZGQoKSBpbnN0
ZWFkCi0gICAgICAgIG9mIDAtdGltZXIuCi0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
Y2xvc2VXaW5kb3dTb29uKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojp3aWRnZXRT
aXplQ2hhbmdlZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvR3RrQWRqdXN0bWVudFdhdGNo
ZXIuY3BwOiBEaXR0by4KLSAgICAgICAgKFdlYktpdDo6R3RrQWRqdXN0bWVudFdhdGNoZXI6OnVw
ZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9sbGJhcnNMYXRlcik6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfc3Vi
cmVzb3VyY2VzKToKLQotMjAxMy0xMC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgW0dUS10gZy1pci1zY2FubmVyIHNob3VsZCB1c2UgdGhlIGNvbmZp
Z3VyZWQgQyBjb21waWxlcgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzMDg4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1w
b3MuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogUGFzcyB0aGUgQyBjb21waWxlciB0aGF0
IHdhcyBkZXRlY3RlZCBhdCBjb25maWd1cmF0aW9uIHRvIHRoZSBnLWlyLXNjYW5uZXIgY29tbWFu
ZAotICAgICAgICB2aWEgdGhlIENDIGVudmlyb25tZW50IHZhcmlhYmxlLiBUaGlzIHNvbHZlcyB0
aGUgaXNzdWUgb2YgdGhlIHNjYW5uZXIgcnVubmluZyB0aGUgR0NDIGNvbXBpbGVyIHdpdGgKLSAg
ICAgICAgdGhlIENsYW5nLXNwZWNpZmljIENGTEFHUy4KLQotMjAxMy0xMC0xNyAgQW5kcmVhcyBL
bGluZyAgPGFrbGluZ0BhcHBsZS5jb20+Ci0KLSAgICAgICAgTWFzc2FnZSB0aGUgR3RrIGJ1aWxk
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKToKLQotMjAxMy0xMC0x
NiAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KLQotICAgICAgICBBIHBh
Z2Ugc2hvdWxkIGV4aXQgZnVsbHNjcmVlbiBtb2RlIGlmIGl0IG9wZW5zIGEgbmV3IHBvcHVwCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI4NjUKLQot
ICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCi0KLSAgICAgICAgSWYgYSBmdWxsc2NyZWVu
IHBhZ2Ugb3BlbnMgYSBwb3B1cCwgdGhlIHBvcHVwIHdvdWxkIGJlIGhpZGRlbiBhbmQKLSAgICAg
ICAgdGhlcmVmb3JlIGludmlzaWJsZSB0byB0aGUgdXNlci4gVG8gYXZvaWQgdGhpcywgZXhpdCBm
dWxsc2NyZWVuIG1vZGUKLSAgICAgICAgYmVmb3JlIG9wZW5pbmcgYSBuZXcgd2luZG93LgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3cpOgotCi0yMDEzLTEwLTA5ICBNYXJpbyBT
YW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+Ci0KLSAgICAgICAgW0FUS10g
SW1wbGVtZW50IG5ldyBBUEkgaW4gQXRrVGV4dDogYXRrX3RleHRfZ2V0X3N0cmluZ19hdF9vZmZz
ZXQoKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIw
NjM4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAg
ICAgIFVwZGF0ZSBBVEsgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoZSBuZXcgQVBJIGFzIHdlbGwgaWYg
dGhlIHZlcnNpb24KLSAgICAgICAgb2YgQVRLIGlzIG5ldyBlbm91Z2guCi0KLSAgICAgICAgKiB0
ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0R2V0U3RyaW5nRnVuY3Rpb24pOiBOZXcgaGVs
cGVyIGZ1bmN0aW9uLCB0byBjaGVjayB0aGUgbmV3IEFQSS4KLSAgICAgICAgKHJ1bkdldFN0cmlu
Z1Rlc3RzKTogRGl0dG8uCi0gICAgICAgICh0ZXN0V2Via2l0QXRrR2V0U3RyaW5nQXRPZmZzZXQp
OiBOZXcgdW5pdCB0ZXN0LCBzaW1pbGFyIHRvIHRoZQotICAgICAgICBvbmUgYWxyZWFkeSBwcmVz
ZW50IHRvIGNoZWNrIHRoZSBvbGQgQVBJIGJ1dCBmb2N1c2VkIGluIHRoZSBuZXcgb25lLgotICAg
ICAgICAodGVzdFdlYmtpdEF0a0dldFN0cmluZ0F0T2Zmc2V0TmV3bGluZXMpOiBEaXR0by4KLSAg
ICAgICAgKHRlc3RXZWJraXRBdGtHZXRTdHJpbmdBdE9mZnNldFRleHRhcmVhKTogRGl0dG8uCi0g
ICAgICAgICh0ZXN0V2Via2l0QXRrR2V0U3RyaW5nQXRPZmZzZXRUZXh0SW5wdXQpOiBEaXR0by4K
LSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRTdHJpbmdBdE9mZnNldFdpdGhQcmVmb3JtYXR0ZWRU
ZXh0KTogRGl0dG8uCi0gICAgICAgICh0ZXN0V2Via2l0QXRrR2V0U3RyaW5nQXRPZmZzZXRXaXRo
U3BlY2lhbENoYXJhY3RlcnMpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRTdHJp
bmdBdE9mZnNldFdpdGhXcmFwcGVkTGluZXMpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRB
dGtHZXRTdHJpbmdBdE9mZnNldFdpdGhFbWJlZGRlZE9iamVjdHMpOiBEaXR0by4KLSAgICAgICAg
KHRlc3RXZWJraXRBdGtHZXRFeHRlbnRzKTogQWRkIGNoZWNrcyBmb3IgdGhlIG5ldyBBUEksIGlm
IHBvc3NpYmxlLgotICAgICAgICAodGVzdFdlYmtpdEF0a0xpbmtzV2l0aElubGluZUltYWdlcyk6
IERpdHRvLgotICAgICAgICAobWFpbik6IEFkZCB0aGUgbmV3IHVuaXQgdGVzdHMgdG8gY2hlY2sg
dGhlIG5ldyBBUEksIGlmIHBvc3NpYmxlLgotCi0yMDEzLTEwLTA3ICBTYW0gV2VpbmlnICA8c2Ft
QHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgQ29uc29saWRhdGUgZmluZFN0cmluZyBmdW5jdGlvbnMK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjQ4MAot
Ci0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NlYXJjaF90ZXh0KToK
LQotMjAxMy0xMC0wNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgotCi0gICAgICAgIENU
VEU6IFVzZSByZWZlcmVuY2VzIGluIGFuZCBhcm91bmQgRHJhZ0NvbnRyb2xsZXIKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjQyNwotCi0gICAgICAg
IFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
cmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6d2lsbFBlcmZv
cm1EcmFnRGVzdGluYXRpb25BY3Rpb24pOgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50Ojp3
aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rpb24pOgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50
OjphY3Rpb25NYXNrRm9yRHJhZyk6Ci0gICAgICAgIChXZWJLaXQ6OkRyYWdDbGllbnQ6OnN0YXJ0
RHJhZyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5oOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKGRyYWdFeGl0ZWRDYWxsYmFj
ayk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19tb3Rpb24pOgotICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X2RyYWdfZGF0YV9yZWNlaXZlZCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZHJhZ19kcm9wKToKLQotMjAxMy0xMC0wNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gVXNlck1lZGlhQ2xpZW50R3RrIG5lZWRzIEFQ
SSB1cGRhdGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyMjMyNAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAg
ICBVcGRhdGUgVXNlck1lZGlhQ2xpZW50R3RrIEFQSSBhZnRlciBjaGFuZ2VzIG1hZGUgaW4gdGhl
IHBhcmVudAotICAgICAgICBjbGFzcyBpbiByMTU2NDczLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvVXNlck1lZGlhQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2xpZW50R3RrOjpyZXF1ZXN0UGVybWlzc2lvbik6Ci0gICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNsaWVudEd0azo6Y2FuY2VsUmVxdWVzdCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvVXNl
ck1lZGlhQ2xpZW50R3RrLmg6Ci0KLTIwMTMtMTAtMDUgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBhZnRlciBy
MTU2OTQ2LiBUaGUgZnJhbWVQb2xpY3lGdW5jdGlvbiBpcyBhbiBhdHRyaWJ1dGUKLSAgICAgICAg
b24gdGhlIFdlYktpdFdlYlBvbGljeURlY2lzaW9uUHJpdmF0ZSBvYmplY3QuCi0KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwOgotICAgICAgICAod2Via2l0X3dl
Yl9wb2xpY3lfZGVjaXNpb25fdXNlKToKLSAgICAgICAgKHdlYmtpdF93ZWJfcG9saWN5X2RlY2lz
aW9uX2lnbm9yZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9kb3dubG9h
ZCk6Ci0KLTIwMTMtMTAtMDQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgotCi0gICAg
ICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2UgaXMgbm90IGxhbmctZGVwZW5kZW50IChUdXJr
aXNoIGxhbmd1YWdlcyA6IHRyLGF6KQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjEzMTIKLQotICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2Eu
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3Bw
OgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkb0NvbW1hbmQpOiBVc2UgU3Ry
aW5nSW1wbDo6dXBwZXIgaW5zdGVhZCBvZgotICAgICAgICBTdHJpbmdJbXBsOjptYWtlVXBwZXIu
Ci0KLTIwMTMtMTAtMDQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KLQot
ICAgICAgICBGcmFtZVBvbGljeUZ1bmN0aW9uIHNob3VsZCBiZSBhbiBzdGQ6OmZ1bmN0aW9uCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjIzNjIKLQot
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0pOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6Ci0gICAgICAg
IChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwOgotICAg
ICAgICAod2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fdXNlKToKLSAgICAgICAgKHdlYmtpdF93
ZWJfcG9saWN5X2RlY2lzaW9uX2lnbm9yZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3BvbGljeV9k
ZWNpc2lvbl9kb3dubG9hZCk6Ci0KLTIwMTMtMTAtMDMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KLQotICAgICAgICBSZW1vdmUgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uIGZyb20g
dGhlIFdLQnVuZGxlUGFnZVVJQ2xpZW50Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjIzMDkKLQotICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEts
aW5nLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIw
MTMtMTAtMDEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KLQotICAgICAgICBDVFRFOiBE
T01XcmFwcGVyV29ybGRzIHNob3VsZCBiZSBwYXNzZWQgYXJvdW5kIGJ5IHJlZmVyZW5jZQotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyMjA2Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKToKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotCi0yMDEzLTA5LTMwICBC
ZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZW1vdmUg
dGhlIGNvZGUgZ3VhcmRlZCBieSBTVFlMRV9TQ09QRUQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjEyMwotCi0gICAgICAgIFJldmlld2VkIGJ5IEFu
ZGVycyBDYXJsc3Nvbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmg6Ci0KLTIwMTMtMDktMjggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgotCi0gICAgICAgIEFkZCBGcmFtZTo6bWFpbkZyYW1lIGFuZCBGcmFtZTo6aXNNYWluRnJhbWUK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjA2NAot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50Ojphc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCk6Ci0gICAgICAg
IENhbGwgaXNNYWluRnJhbWUuCi0KLTIwMTMtMDktMjggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeCBhZnRl
ciByMTU2NTYwLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQuaDoKLQotMjAxMy0wOS0yNiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+Ci0KLSAgICAgICAgcmVuYW1lIEtVUkwgdG8gVVJMCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIxNAotCi0gICAgICAgIFJldmlld2VkIGJ5IEFu
ZHJlYXMgS2xpbmcuCi0KLSAgICAgICAgKiBtYW55IGZpbGVzOiBSZW5hbWVkLCB1c2luZyBzY3Jp
cHQuCi0KLTIwMTMtMDktMjcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgotCi0gICAg
ICAgIEFkZCBlbXB0eSBNYWluRnJhbWUgY2xhc3MKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTc3MAotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZHJl
YXMgS2xpbmcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dEdMLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HdGtBZGp1c3RtZW50V2F0Y2hlci5jcHA6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRl
cy5jcHA6Ci0gICAgICAgIEluY2x1ZGUgTWFpbkZyYW1lLmggaW5zdGVhZCBvZiBGcmFtZS5oIGFz
IG5lZWRlZC4KLQotMjAxMy0wOS0yNSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KLQotICAgICAgICBSZWZhY3RvciBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIGFzIGEgU2luZ2xl
dG9uLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIx
ODgzLgotCi0gICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNldENTU1JlZ2lvbnNFbmFibGVkKTogVXNlIHNpbmdsZXRvbi4K
LSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RXhwZXJpbWVudGFsQ29udGVu
dFNlY3VyaXR5UG9saWN5RmVhdHVyZXNFbmFibGVkKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2V0U2VhbWxlc3NJRnJhbWVzRW5hYmxlZCk6Ci0gICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNoYWRvd0RPTUVuYWJsZWQpOgotICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTdHlsZVNjb3BlZEVuYWJsZWQpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVf
c2V0dGluZ3MpOiBEaXR0by4KLQotMjAxMy0wOS0yNCAgTG9yZW56byBUaWx2ZSAgPGx0aWx2ZUBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEZpeCBjb21waWxhdGlvbiBwcm9ibGVtcyB3aGVu
IHNldHRpbmcgRU5BQkxFX0RSQUdfU1VQUE9SVCA9IEZBTFNFCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE3ODIKLQotICAgICAgICBSZXZpZXdlZCBi
eSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgRGlzYWJsZWQgZHJhZyBmdW5jdGlvbnMuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmg6Ci0KLTIwMTMtMDktMjQgIFphbiBEb2JlcnNl
ayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEZpeCBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZyBkaXNhYmxpbmcgdW5kZXIgV2F5bGFuZCBkaXNwbGF5cwotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxNzg4Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAodXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Nl
dHRpbmcpOiBGaXggYSByaWRpY3Vsb3VzIGVhcmx5IHJldHVybiBpbiB0aGUgY2FzZSBvZiBkaXNh
YmxpbmcgdGhlIGFjY2VsZXJhdGVkCi0gICAgICAgIGNvbXBvc2l0aW5nIHNldHRpbmcuIFRoZXJl
J3Mgbm8gbmVlZCB0byByZS1kaXNhYmxlIHRoZSBzZXR0aW5nIGlmIGl0IHdhcyBhbHJlYWR5IGRp
c2FibGVkLCBidXQgaXQgc2hvdWxkCi0gICAgICAgIGRlZmluaXRlbHkgYmUgZGlzYWJsZWQgaWYg
dGhlIHNldHRpbmcgd2FzIHByZXZpb3VzbHkgZW5hYmxlZC4KLQotMjAxMy0wOS0yMiAgWmFuIERv
YmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgR1RL
IGJ1aWxkIGZpeCB3aGVuIGJ1aWxkaW5nIHdpdGggR1RLKyAyLjAuCi0gICAgICAgIFBhdGNoIHBy
b3ZpZGVkIGJ5IERvbWluaXF1ZSBMZXVlbmJlcmdlciA8ZGltc3RhckBvcGVuc3VzZS5vcmc+Lgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRH
TC5jcHA6IEluY2x1ZGUgR3RrVmVyc2lvbmluZy5oIHRvIHNldCB1cAotICAgICAgICB0aGUgbW9j
ayBHREtfSVNfWDExX0RJU1BMQVkgbWFjcm8gaWYgaXQncyBub3QgcHJvdmlkZWQgYnkgdGhlIEdU
SysgaGVhZGVycy4KLQotMjAxMy0wOS0yMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnBy
YWRhQHNhbXN1bmcuY29tPgotCi0gICAgICAgIFtBVEtdIERvIG5vdCBleHBvc2UgYXJpYS1oZWxw
IGluIEFUSyBiYXNlZCBwbGF0Zm9ybXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMTY3NQotCi0gICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6
YWNoLgotCi0gICAgICAgIFJlbW92ZWQgYWNjZXNzaWJpbGl0eUhlbHBUZXh0KCkgaGVscGVyIG1l
dGhvZCBmcm9tCi0gICAgICAgIER1bXBSZW5kZXJTdXBwb3J0R3RrJ3MgQVBJLCBzaW5jZSBpdCdz
IG5vdCBsb25nZXIgbmVlZGVkLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcDogUmVtb3ZlZCBtZXRob2QuCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6IERpdHRvLgotCi0yMDEzLTA5LTE2ICBF
bnJpY2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmVtb3ZlIHVudXNl
ZCBmdW5jdGlvbiBkaWRTZXRTZWxlY3Rpb25UeXBlc0ZvclBhc3RlYm9hcmQgZnJvbSBFZGl0b3JD
bGllbnQuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjE0NjQKLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0KLTIwMTMtMDktMTYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgW0dUS10gTWFrZSBzeW1ib2wgZXhwb3J0IGZp
bHRlciBtb3JlIHN0cmljdCwgYW5kIGRpc2FibGUgZm9yIGRldi90ZXN0IGJ1aWxkcwotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwNTg2Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICogR05VbWFrZWZpbGUu
YW06IG9ubHkgdXNlIHRoZSB2ZXJzaW9uIHNjcmlwdCB3aGVuIGluIGRldmVsb3BlciBtb2RlLi4K
LQotMjAxMy0wOS0xNCAgQWxiZXJ0byBHYXJjaWEgIDxiZXJ0b0BpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFtHVEtdIFdlYktpdEdUSysgaXMgbGlua2luZyBhZ2FpbnN0IGxpYnhzbHQgaW4gdG9vIG1h
bnkgcGxhY2VzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMjEzNTYKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAg
ICAgRG9uJ3QgdXNlIExJQlhTTFRfQ0ZMQUdTIHdoZW4gY29tcGlsaW5nIGxpYndlYmtpdGd0aywg
bm8gc291cmNlCi0gICAgICAgIGZpbGVzIHVzZSBsaWJ4c2x0IHRoZXJlLgotCi0gICAgICAgIFRo
ZSB3ZWJraXQgdGVzdHMgZG9uJ3QgdXNlIGxpYnhzbHQsIHNvIHdlIHNob3VsZG4ndCBsaW5rIGFn
YWluc3QKLSAgICAgICAgaXQuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLQotMjAxMy0w
OS0xMyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5j
b20+Ci0KLSAgICAgICAgW0dUS10gTW92ZSB0byB0aGUgbmV3IHdlYiBpbnNwZWN0b3IKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDY0NwotCi0gICAg
ICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6SW5zcGVj
dG9yQ2xpZW50OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOiB1cGRhdGUgcGF0aHMgdG8gdGhlIGlu
dGVybmFsIHJlc291cmNlIG9uZXMuCi0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6
aW5zcGVjdG9yRmlsZXNQYXRoKTogZGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdHdlYmluc3Bl
Y3Rvci5jOgotICAgICAgICAoY29uc29sZU1lc3NhZ2VDYWxsYmFjayk6IHRoZSBuZXcgaW5zcGVj
dG9yIGN1cnJlbnRseSBlbWl0cyBhbiBlcnJvciB3aGVuIGxvYWRpbmcsIHNvIGFkZCBpdCB0bwot
ICAgICAgICB0aGUgbGlzdCBvZiBtZXNzYWdlcyB3aGljaCBhcmUgbm90IGNvbnNpZGVyZWQgZmFp
bHVyZXMuCi0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAgICAgICAod2Vi
a2l0SW5pdCk6IHJlZ2lzdGVyIHJlc291cmNlIGFzIGEgbG9jYWwgc2NoZW1lOyBjdXJyZW50bHkg
dXNlZCBieSB0aGUgaW5zcGVjdG9yLgotCi0yMDEzLTA5LTEzICBBbGJlcnRvIEdhcmNpYSAgPGJl
cnRvQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgZG93bmxvYWQtcmVxdWVzdGVkIGFyZyBzaG91bGQg
YmUgV0VCS0lUX1RZUEVfRE9XTkxPQUQgbm90IEdfVFlQRV9PQkpFQ1QKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3NjM0Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6Ci0KLTIwMTMtMDktMTIgIFph
biBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdW1dLMV0g
QmxvY2sgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgdW5kZXIgbm9uLVgxMSBkaXNwbGF5cwotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxMTY1Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFRoaXMgaXMgYW5h
bG9nb3VzIHRvIHRoZSBjaGFuZ2VzIGluIHIxNTQ3MjggYW5kIHIxNTQ3MjkgdGhhdCBlbmZvcmNl
IGRpc2FibGluZyBhY2NlbGVyYXRlZCBjb21wb3NpdGluZwotICAgICAgICB1bmRlciBXYXlsYW5k
IGRpc3BsYXlzIGFuZCBtYWRlIHRoZSBSZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdyB1c2UgaW4g
V2ViS2l0MiBsaW1pdGVkIG9ubHkgdG8gdGhlIFgxMSBkaXNwbGF5cy4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwOiBSZW1vdmUg
dHdvIHVubmVjZXNzYXJ5IGhlYWRlciBpbmNsdWRlcyB0aGF0IGFsc28KLSAgICAgICAgaW50cm9k
dWNlIHN5bWJvbHMgdGhhdCBjb25mbGljdCB3aXRoIHRoZSBzeW1ib2xzIGRlZmluZWQgaW4gdGhl
IFggaGVhZGVycy4gSW5jbHVkZSB0aGUgPGdkay9nZGt4Lmg+IGhlYWRlcgotICAgICAgICBpZiB0
aGUgR1RLKyBkZXBlbmRlbmN5IGNhbiBwcm92aWRlIGl0LgotICAgICAgICAoV2ViS2l0OjpBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6aW5pdGlhbGl6ZSk6IE9ubHkgc2V0IHVwIHRoZSBS
ZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdyBpbnN0YW5jZQotICAgICAgICBpZiBydW5uaW5nIHVu
ZGVyIGFuIFgxMSBkaXNwbGF5LgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6cmVuZGVyTGF5ZXJzVG9XaW5kb3cpOiBUaGUgcmVtb3ZhbCBvZiB0aGUgdW5u
ZWNlc3NhcnkgaGVhZGVyCi0gICAgICAgIGluY2x1c2lvbnMgYWxzbyByZW1vdmVkIHRoZSBzdGQ6
Om1heCgpIGluamVjdGlvbiBpbnRvIHRoZSBnbG9iYWwgc2NvcGUuIFVzaW5nIHN0ZDo6bWF4IGRp
cmVjdGx5IGluc3RlYWQuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0OjpzY2hlZHVsZUxheWVyRmx1c2gpOiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nU2V0
dGluZyk6IEEgaGVscGVyIGZ1bmN0aW9uIHRoYXQgZW5zdXJlcyB0aGUgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmcgZmVhdHVyZQotICAgICAgICBzdGF5cyBkaXNhYmxlZCB1bmRlciBXYXlsYW5kIGRp
c3BsYXlzLiBJdCBhbHNvIHByaW50cyBvdXQgYSB3YXJuaW5nIG1lc3NhZ2UgdGhlIGZpcnN0IHRp
bWUgdGhlIHVzZXIgdHJpZXMKLSAgICAgICAgdG8gZW5hYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nIHVuZGVyIFdheWxhbmQgZGlzcGxheXMsIHRlbGxpbmcgdGhhdCB0aGUgZmVhdHVyZSBpcyBu
b3Qgc3VwcG9ydGVkIGFuZAotICAgICAgICB3aWxsIHJlbWFpbiBkaXNhYmxlZC4KLSAgICAgICAg
KHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOiBDYWxsIHVwZGF0ZUFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdTZXR0aW5nKCkgdG8gZW5hYmxlIHRoZSBmZWF0dXJlIGlmIHBvc3NpYmxlLgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6IERpdHRvLgotCi0yMDEz
LTA5LTExICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+Ci0K
LSAgICAgICAgW0dUS10gUmVtb3ZlIEdhaWwgZGVwZW5kZW5jeSBmcm9tIGJ1aWxkIHN5c3RlbSBm
b3IgR1RLMwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE5NjczCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0g
ICAgICAgICogR05VbWFrZWZpbGUuYW06IFJlbW92ZWQgR0FJTF9DRkxBR1MgYW5kIEdBSUxfTElC
Uy4KLQotMjAxMy0wOS0xMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1
bmcuY29tPgotCi0gICAgICAgIFtHVEtdIFJlaW1wbGVtZW50IGF0a190ZXh0X2dldF90ZXh0Xypf
b2Zmc2V0IGZvciBMSU5FIGJvdW5kYXJpZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNDg3MgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YS4KLQotICAgICAgICBGaXhlZCB3cm9uZyB1bml0IHRlc3QuCi0KLSAgICAg
ICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zm
c2V0V2l0aFByZWZvcm1hdHRlZFRleHQpOiBUaGlzIHRlc3Qgd2FzCi0gICAgICAgIHJlcG9ydGlu
ZyBhIHRyYWlsaW5nICdcbicgZm9yIHNvbWUgcmVhc29uIGZvciBhIDxwcmU+IGJsb2NrLCB3aGlj
aAotICAgICAgICBpcyBwbGFpbmx5IHdyb25nIHNpbmNlLCBpbiBvcmRlciB0byByZXR1cm4gdGhh
dCwgdGhlcmUgc2hvdWxkIGJlCi0gICAgICAgIGF0IGxlYXN0IGEgdHJhaWxpbmcgZW1wdHkgc3Bh
Y2UgYWZ0ZXIgdGhhdCBhbmQgYmVmb3JlIHRoZSA8L3ByZT4KLSAgICAgICAgY2xvc2luZyB0YWcu
IFRoaXMgaXMgZml4ZWQgbm93LgotICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNl
dFdpdGhXcmFwcGVkTGluZXMpOiBVbmNvbW1lbnRlZCB0ZXN0cwotICAgICAgICB0aGF0IHdlcmUg
cHJldmlvdXNseSBub3QgcGFzc2luZyBkdWUgdG8gYSBidWcgaW4gR2FpbFRleHRVdGlsLgotCi0y
MDEzLTA5LTExICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+Ci0KLSAg
ICAgICAgR2VuZXJhdGUgbW9yZSBIVE1MIHR5cGUgY2hlY2tzIGFuZCBjYXN0aW5nCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjEwODAKLQotICAgICAg
ICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgotCi0gICAgICAgIENsZWFuLXVwIHJlbWFpbmVk
IGZ1bmN0aW9ucyBvZiBIVE1MIGVsZW1lbnRzIHVzaW5nIGF1dG8tZ2VuZXJhdGVkIGlzRm9vRWxl
bWVudCgpLAotICAgICAgICBhbmQgcmVwbGFjZSB0b0Zvb0VsZW1lbnQoKSB3aXRoIEVMRU1FTlRf
VFlQRV9DQVNUUygpIG1hY3JvLgotCi0gICAgICAgIEJlc2lkZXMgdGhpcyBwYXRjaCBjbGVhbi11
cCB1bm5lY2Vzc2FyeSBjaGVja3Mgd2hpY2ggYXJlIGJlaW5nIHN1cHBvcnRlZCBieQotICAgICAg
ICBhdXRvLWdlbmVyYXRlZCBpc0Zvb0VsZW1lbnQoKS4KLQotICAgICAgICBObyBuZXcgdGVzdHMs
IG5vIGJlaGF2aW9yIGNoYW5nZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxs
c2NyZWVuRm9yTm9kZSk6Ci0KLTIwMTMtMDktMDQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0Bp
Z2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEFkZCBzdXBwb3J0IGZvciB0aGUgV2F5bGFuZCBi
dWlsZCB0YXJnZXQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMDYyNwotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OmNyZWF0ZUJhY2tpbmdTdG9yZSk6IEFkZGl0aW9uYWxseSBndWFyZCB0aGUgPGdk
ay9nZGt4Lmg+IGluY2x1c2lvbiBhbmQgdGhlIGluY2x1c2lvbiBhbmQgdXNlIG9mCi0gICAgICAg
IFdpZGdldEJhY2tpbmdTdG9yZUd0a1gxMSB3aXRoIFBMQVRGT1JNKFgxMSksIGVuc3VyaW5nIHRo
aXMgY29kZSBpcyBidWlsdCB3aGVuIGFsc28gYnVpbGRpbmcgd2l0aCBYMTEgdGFyZ2V0Ci0gICAg
ICAgIGVuYWJsZWQuIEdES19XSU5ET1dJTkdfWDExIG1hY3JvIGNhbiBiZSBkZWZpbmVkIGV2ZW4g
aWYgdGhlIFgxMSB0YXJnZXQgaXMgZGlzYWJsZWQuCi0KLTIwMTMtMDktMDIgIEJyaWFuIEhvbHQg
IDxicmlhbi5ob2x0QHNhbXN1bmcuY29tPgotCi0gICAgICAgIFtBVEtdIExlYWs6IExlYWtzIGlu
IHRlc3RhdGsuYwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE4Njc1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFyaW8gU2FuY2hleiBQcmFkYS4KLQot
ICAgICAgICBGaXhlZCBtZW1vcnkgbGVha3MgYnkgbWF0Y2hpbmcgcmVmIGNhbGxzIHdpdGggdW5y
ZWZzLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGVzdFdlYmtpdEF0
a0NhcmV0T2Zmc2V0cyk6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrQ2FyZXRPZmZzZXRzQW5kRXh0
cmFub3VzV2hpdGVTcGFjZXMpOgotICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNl
dCk6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0TmV3bGluZXMpOgotICAg
ICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFRleHRhcmVhKToKLSAgICAgICAgKHRl
c3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRUZXh0SW5wdXQpOgotICAgICAgICAodGVzdFdlYmtp
dEF0a0dldFRleHRJblBhcmFncmFwaEFuZEJvZHlTaW1wbGUpOgotICAgICAgICAodGVzdFdlYmtp
dEF0a0dldFRleHRJblBhcmFncmFwaEFuZEJvZHlNb2RlcmF0ZSk6Ci0gICAgICAgICh0ZXN0V2Vi
a2l0QXRrVGV4dEF0dHJpYnV0ZXMpOgotICAgICAgICAodGVzdFdlYmtpdEF0a1RleHRTZWxlY3Rp
b25zKToKLSAgICAgICAgKHRlc3RXZWJraXRBdGtMaXN0c09mSXRlbXMpOgotCi0yMDEzLTA4LTI5
ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KLQotICAgICAgICBbQXV0b21h
a2VdIGxpYldlYkNvcmVET00ubGEgY291bGQgdXNlIGEgYmV0dGVyIG5hbWUKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDIzMgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBs
aWJXZWJDb3JlRE9NIGhhcyBhIG5ldyBuYW1lIC0gbGliR09iamVjdERPTUJpbmRpbmdzLgotCi0y
MDEzLTA4LTI5ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNhbXN1bmcuY29tPgotCi0g
ICAgICAgIFtjYWlyb10gY2FudmFzIGRyYXdpbmcgb24gaXRzZWxmIGRvZXNuJ3Qgd29yayB3aXRo
IGFjY2VsZXJhdGVkIGNhbnZhcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTE4ODA4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29u
LgotCi0gICAgICAgIENoYW5nZSBjYWlyb0ltYWdlU3VyZmFjZVRvR2RrUGl4YnVmIHRvIGNhaXJv
U3VyZmFjZVRvR2RrUGl4YnVmLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGZhdmljb25kYXRh
YmFzZS5jcHA6Ci0gICAgICAgIChnZXRJY29uUGl4YnVmU3luY2hyb25vdXNseSk6Ci0KLTIwMTMt
MDgtMjYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFVu
cmV2aWV3ZWQgR1RLIGJ1aWxkIGZpeC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OkZyYW1lTG9hZGVyQ2xpZW50KTogUmVtb3ZlIGFuIGFzc2VydGlvbiB0aGF0IHdhcyBub3QgcmVt
b3ZlZCBpbiByMTU0NjU4LgotCi0yMDEzLTA4LTI2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgotCi0gICAgICAgIEFub3RoZXIgR1RLKyBidWlsZCBmaXguCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0KLTIwMTMtMDgtMjYgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgR1RLKyBidWlsZCBmaXgu
IExpa2UgcjE1NDYyMC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX25ldyk6Ci0KLTIwMTMtMDgtMjYgIFByYXRpayBTb2xh
bmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgotCi0gICAgICAgIFBhZ2VHcm91cDo6Z3JvdXBTZXR0
aW5ncygpIHNob3VsZCByZXR1cm4gYSByZWZlcmVuY2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDMxOQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFu
ZHJlYXMgS2xpbmcuCi0KLSAgICAgICAgUGFnZUdyb3VwOjptX2dyb3VwU2V0dGluZ3MgaXMgbmV2
ZXIgTlVMTCBzbyB3ZSBjYW4ganVzdCByZXR1cm4gYSByZWZlcmVuY2UgZnJvbSBncm91cFNldHRp
bmdzKCkuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwOgotICAgICAg
ICAod2Via2l0X3NldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgpOgotCi0yMDEzLTA4LTI2
ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KLQotICAgICAgICBXZWJDb3JlOiBM
ZXQgUGFnZSBjcmVhdGUgdGhlIG1haW4gRnJhbWUuCi0gICAgICAgIDxodHRwczovL3dlYmtpdC5v
cmcvYi8xMTk5NjQ+Ci0KLSAgICAgICAgVHdlYWsgV2ViS2l0MS9HVEsgZm9yIGNoYW5nZXMgaW4g
V2ViQ29yZS4KLQotICAgICAgICBQYXRjaCBieSBaYW4gRG9iZXJzZWsgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2V0V2ViRnJhbWUpOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX25ldyk6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2luaXQpOgotCi0yMDEzLTA4LTI0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
LQotICAgICAgICBGcmFtZTo6dHJlZSBzaG91bGQgcmV0dXJuIGEgcmVmZXJlbmNlIGluc3RlYWQg
b2YgYSBwb2ludGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjAyNTkKLQotICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Z2V0RnJhbWVDaGlsZHJlbik6Ci0gICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNsZWFyTWFpbkZyYW1lTmFtZSk6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lKToK
LSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3BhcmVudCk6Ci0gICAgICAgICh3ZWJraXRf
d2ViX2ZyYW1lX2ZpbmRfZnJhbWUpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfaGlnaGxpZ2h0X3RleHRfbWF0Y2hlcyk6
Ci0gICAgICAgIFVzZSB0cmVlKCkuIGluc3RlYWQgb2YgdHJlZSgpLT4uCi0KLTIwMTMtMDgtMjEg
IFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgotCi0gICAgICAgIDxodHRwczov
L3dlYmtpdC5vcmcvYi8xMTk4MzY+IFtHVEtdIENocm9tZUNsaWVudDo6cGFpbnQgaXMgc3VzY2Vw
dGlibGUgdG8gc3lzdGVtIHRpbWUgY2hhbmdlcwotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRp
biBSb2JpbnNvbi4KLQotICAgICAgICBJbnN0ZWFkIG9mIHVzaW5nIFdURjo6Y3VycmVudFRpbWUo
KSBhcyB0aGUgdmFsdWUgb2YgdGhlIGxhc3QgZGlzcGxheSBvY2N1cnJlbmNlLAotICAgICAgICBX
VEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIHNob3VsZCBiZSB1c2VkLiBUaGUgbGF0
dGVyIGlzIG5vdCBhZmZlY3RlZCBieQotICAgICAgICB0aGUgY2hhbmdlcyBpcyB0aGUgc3lzdGVt
J3MgdGltZSwgd2hpY2ggY2FuIGNhdXNlIGEgaGFsdCBpbiB0aGUgZGlzcGxheSB1cGRhdGluZy4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cGFpbnQpOgotCi0yMDEzLTA4LTE5ICBQcmF0aWsgU29s
YW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4KLQotICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMTE5OTE4PiBGcmFtZTo6c2VsZWN0aW9uKCkgc2hvdWxkIHJldHVybiBhIHJlZmVyZW5jZQot
Ci0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgIG1fc2VsZWN0aW9u
IGlzIG5ldmVyIE5VTEwgc28gcmV0dXJuIGEgcmVmZXJlbmNlIGZyb20gRnJhbWU6OnNlbGVjdGlv
bigpLiBBbHNvIHJlbW92ZWQgc29tZQotICAgICAgICB1bm5lY2Vzc2FyeSBudWxsIGNoZWNrcyBh
bmQgYXNzZXJ0IGRpZmYgdHMgZXhwb3NlZCBhcyBhIHJlc3VsdC4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6cGFpbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpcnN0UmVj
dEZvckNoYXJhY3RlclJhbmdlKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2VsZWN0ZWRSYW5nZSk6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlY3Rh
bmdsZUZvclNlbGVjdGlvbik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Y29sbGFwc2VTZWxlY3Rpb24pOgotICAgICAgICAo
V2ViS2l0OjpzZXRTZWxlY3Rpb25QcmltYXJ5Q2xpcGJvYXJkSWZOZWVkZWQpOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dl
dF9yYW5nZV9mb3Jfd29yZF9hcm91bmRfY2FyZXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcDoKLSAgICAgICAgKGdldExvY2F0aW9uRm9yS2V5Ym9hcmRHZW5lcmF0ZWRDb250
ZXh0TWVudSk6Ci0KLTIwMTMtMDgtMTcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgot
Ci0gICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMTk5NDE+IE1ha2UgUGFnZTo6ZHJhZ0Nv
bnRyb2xsZXIgcmV0dXJuIGEgcmVmZXJlbmNlCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVh
cyBLbGluZy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAg
KGRyYWdFeGl0ZWRDYWxsYmFjayk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19tb3Rp
b24pOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZGF0YV9yZWNlaXZlZCk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19kcm9wKToKLSAgICAgICAgVXBkYXRlZCBjYWxsIHNp
dGVzLgotCi0yMDEzLTA4LTE2ICBQcmF0aWsgU29sYW5raSAgPHBzb2xhbmtpQGFwcGxlLmNvbT4K
LQotICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTE5ODUyPiBGcmFtZTo6c2NyaXB0Q29u
dHJvbGxlcigpIHNob3VsZCByZXR1cm4gYSByZWZlcmVuY2UKLQotICAgICAgICBSZXZpZXdlZCBi
eSBBbmRyZWFzIEtsaW5nLgotCi0gICAgICAgIG1fc2NyaXB0IGlzIG5ldmVyIE5VTEwgc28gd2Ug
Y2FuIGp1c3QgcmV0dXJuIGEgcmVmZXJlbmNlLiBBbHNvIHJlbW92ZSBzb21lIHBvaW50bGVzcyBu
dWxsCi0gICAgICAgIGNoZWNrcyBhcyBhIHJlc3VsdCBvZiBkb2luZyB0aGlzLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDbGVhcldpbmRvd09iamVjdEluV29y
bGQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfc2NyaXB0KToK
LQotMjAxMy0wOC0xNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgVW5yZXZpZXdlZCBHVEsgYnVpbGQgZml4IGZvciBkZWJ1ZyBjb25maWd1cmF0aW9ucy4K
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OmtpdCk6IFJlbW92ZSB0aGUgYm9ndXMgYXNzZXJ0aW9uIGZvciBGcmFtZTo6bG9hZGVyKCkgdGhh
dCBub3cgcmV0dXJucyBhIHJlZmVyZW5jZS4KLQotMjAxMy0wOC0xNSAgQW5kZXJzIENhcmxzc29u
ICA8YW5kZXJzY2FAYXBwbGUuY29tPgotCi0gICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8x
MTk4NTk+IEZyYW1lOjpsb2FkZXIoKSBzaG91bGQgcmV0dXJuIGEgcmVmZXJlbmNlCi0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmNsZWFyT3BlbmVyKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2hvdWxkQ2xvc2UpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
V2lsbFN1Ym1pdEZvcm0pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y29t
bWl0dGVkTG9hZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToKLSAgICAgICAg
KFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVG
cmFtZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENv
bW1pdExvYWQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX2ZyYW1lX2ZpbmFsaXplKToKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVf
bG9hZF91cmkpOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX2RhdGEpOgotICAgICAg
ICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QpOgotICAgICAgICAod2Via2l0X3dlYl9m
cmFtZV9zdG9wX2xvYWRpbmcpOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9yZWxvYWQpOgot
ICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfZGF0YV9zb3VyY2UpOgotICAgICAgICAod2Vi
a2l0X3dlYl9mcmFtZV9nZXRfcHJvdmlzaW9uYWxfZGF0YV9zb3VyY2UpOgotICAgICAgICAod2Vi
a2l0X3dlYl9mcmFtZV9nZXRfcmVzcG9uc2VfbWltZV90eXBlKToKLSAgICAgICAgKHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X25ldHdvcmtfcmVzcG9uc2UpOgotICAgICAgICAoV2ViS2l0OjpraXQpOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl91c2UpOgotICAgICAgICAod2Via2l0X3dlYl9wb2xp
Y3lfZGVjaXNpb25faWdub3JlKToKLSAgICAgICAgKHdlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9u
X2Rvd25sb2FkKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVs
b2FkKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19yZWxvYWRfYnlwYXNzX2NhY2hlKToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcpOgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2Nhbl9zaG93X21pbWVfdHlwZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0
X2N1c3RvbV9lbmNvZGluZyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2N1c3RvbV9l
bmNvZGluZyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJlc291cmNlcyk6Ci0K
LTIwMTMtMDgtMTUgIFNpbW9uIFBlbmEgIDxzaW1vbi5wZW5hQHNhbXN1bmcuY29tPgotCi0gICAg
ICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMTk1ODQ+IFtHdGtdIFVSTCBwcmludGluZyBjb2Rl
IGluIER1bXBSZW5kZXJUcmVlIGRvZXNuJ3QgbWF0Y2ggV1RSIG9yIE1hYyBEUlQKLQotICAgICAg
ICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgRm9sbG93aW5n
IGEgc2ltaWxhciBhcHByb2FjaCBhcyBpbiByMTUzOTc3LCByZXR1cm4gYSBwYXRoIHN0cmluZwot
ICAgICAgICB0aGF0IGlzIHJlbGF0aXZlIHRvIG1haW4gZnJhbWUgVVJMIG9yIGp1c3QgZmlsZSBu
YW1lIGlmIHRoZQotICAgICAgICByZXNvdXJjZSBpcyBub3QgaW4gdGhlIHNhbWUgZGlyZWN0b3J5
IHN1YnRyZWUsIGFuZCByZXBsYWNlIGVtcHR5Ci0gICAgICAgIHN0cmluZ3Mgd2l0aCAiKG51bGwp
Ii4KLQotICAgICAgICBVcGRhdGUgdGhlIEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgdXNlZCBpbiBE
dW1wUmVuZGVyVHJlZSBzbyB0aGF0Ci0gICAgICAgIGl0IHJlY2VpdmVzIGEgV2ViS2l0V2ViUmVz
b3VyY2UsIGFuZCB1cGRhdGUKLSAgICAgICAgZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2Ugc28gdGhhdCBpdCByZXRyaWV2ZXMgdGhlCi0gICAgICAgIFdlYktpdFdlYlJl
c291cmNlIGFuZCBwYXNzZXMgaXQgdG8gdGhlIGNhbGxiYWNrLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6IFVwZGF0ZSB0aGUKLSAgICAgICAg
QXV0aGVudGljYXRpb25DYWxsYmFjayBhZGRpbmcgYSBXZWJLaXRXZWJSZXNvdXJjZSBwYXJhbWV0
ZXIuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0Ojp0b1N0cmluZyk6IERlZmluZSB0aGlzIGZ1bmN0aW9uIGVhcmxpZXIg
c28gd2UgY2FuIHVzZSBpdAotICAgICAgICB0byBnZXQgdGhlIFdlYktpdFdlYlJlc291cmNlIGZy
b20gdGhlIGlkZW50aWZpZXIgaW4gdGhlCi0gICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
LgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgotICAgICAgICBVc2UgdG9TdHJpbmcgdG8gcmV0cmll
dmUgYSBXZWJLaXRXZWJSZXNvdXJjZSBmcm9tIHRoZSBpZGVudGlmaWVyCi0gICAgICAgIGluIHRo
ZSBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UsIGFuZCBwYXNzIHRoYXQgV2ViS2l0V2ViUmVzb3Vy
Y2UKLSAgICAgICAgdG8gdGhlIEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2suCi0KLTIwMTMtMDgtMTMg
IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KLQotICAgICAg
ICBbR1RLXSBXSyBkb2VzIG5vdCBsaW5rIHByb3Blcmx5IGFnYWluc3QgbGlieHNsdAotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5Njg4Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgICogR05VbWFr
ZWZpbGUuYW06IEFkZGVkIExJQlhTTFRfTElCUyB0byB0aGUgdW5pdCB0ZXN0cy4KLQotMjAxMy0w
OC0xMyAgQWxiZXJ0byBHYXJjaWEgIDxiZXJ0b0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtd
IENsb3NpbmcgaW5zcGVjdG9yIHdpbmRvdyBjcmFzaGVzIHdrCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA4NjUKLQotICAgICAgICBSZXZpZXdlZCBi
eSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KLQotICAgICAgICBUaGUgcHJldmlvdXMgZml4IGZvciB0
aGUgaW5zcGVjdG9yIHdpbmRvdyBjcmFzaCBicmVha3Mgc29tZSB1bml0Ci0gICAgICAgIHRlc3Rz
LiBUaGlzIG9uZSBnb2VzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGNvZGUgYW5kIG9ubHkgbW92ZXMg
dGhlCi0gICAgICAgIGFjdHVhbCBkZWxldGlvbiBvZiBwcml2LT5jb3JlUGFnZSB0byB0aGUgZW5k
IG9mIHRoZSBmdW5jdGlvbi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kaXNwb3NlKToKLQotMjAxMy0wOC0xMyAgQWxiZXJ0
byBHYXJjaWEgIDxiZXJ0b0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIENsb3NpbmcgaW5z
cGVjdG9yIHdpbmRvdyBjcmFzaGVzIHdrCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA4NjUKLQotICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2Fy
Y2lhIENhbXBvcy4KLQotICAgICAgICBEZWxldGluZyBwcml2LT5jb3JlUGFnZSBkdXJpbmcgdGhl
IGRlc3RydWN0aW9uIG9mIGEgd2ViVmlldyB3aWxsCi0gICAgICAgIHRyaWdnZXIgdGhlIGRlbGV0
aW9uIG9mIEluc3BlY3RvckZyb250ZW5kQ2xpZW50LiBIb3dldmVyIHRoYXQKLSAgICAgICAgb2Jq
ZWN0IGlzIHN1cHBvc2VkIHRvIGhhbmRsZSB0aGUgd2ViVmlldydzIGRlc3Ryb3kgc2lnbmFsIGZp
cnN0IGluCi0gICAgICAgIG9yZGVyIHRvIGRvIHRoZSBuZWNlc3NhcnkgY2xlYW51cC4KLQotICAg
ICAgICBUaGUgc29sdXRpb24gaXMgdG8gd2FpdCB1bnRpbCB3ZWJraXRfd2ViX3ZpZXdfZGlzcG9z
ZSBmaW5pc2hlcwotICAgICAgICBiZWZvcmUgZGVsZXRpbmcgcHJpdi0+Y29yZVBhZ2UuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZGlzcG9zZSk6Ci0KLTIwMTMtMDgtMTIgIEFudG9uIE9iemhpcm92ICA8YS5vYnpoaXJvdkBz
YW1zdW5nLmNvbT4KLQotICAgICAgICBbR1RLXSBEb24ndCBsb2FkIEdBSUwgd2hlbiB1c2luZyBH
VEsgMy4yIG9yIGdyZWF0ZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcyNzM1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1w
b3MuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgIChpbml0aWFsaXplVGVz
dGluZ0ZyYW1ld29yayk6Ci0gICAgICAgIChtYWluKToKLQotMjAxMy0wOC0xMSAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4g
VXBkYXRlIE5FV1MgYW5kIFZlcnNpb25zLm00IGZvciAyLjEuNCByZWxlYXNlLgotCi0gICAgICAg
ICogTkVXUzogVXBkYXRlIHJlbGVhc2Ugbm90ZXMuCi0KLTIwMTMtMDgtMDkgIEFsZXhleSBQcm9z
a3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+Ci0KLSAgICAgICAgUkVHUkVTU0lPTiAocjE0Mjc1NSk6
IHdpbmRvdy5vcGVuIGNyZWF0ZXMgYW4gaW52aXNpYmxlIHdpbmRvdyB3aGVuIHdpZHRoIGFuZCBo
ZWlnaHQgYXJlIDAKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExOTYzMwotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDogKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpzZXRXaW5kb3dSZWN0KToKLSAgICAgICAgT25jZSBhZ2FpbiwgdGhlIHBhc3NlZCByZWN0
IGNhbm5vdCBiZSBlbXB0eS4KLQotMjAxMy0wNy0yNyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUu
Y29tPgotCi0gICAgICAgIExvZ2dpbmcgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSB1c2luZyBodW1h
bi1yZWFkYWJsZSBjaGFubmVsIG5hbWVzIHJhdGhlciB0aGFuIGNyYXp5IGJpdG1hc2tzCi0gICAg
ICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzExOTAzMT4KLQotICAgICAgICBJbXBsZW1lbnQgc2hh
cmVkIGxvZ2ljIGZvciBpbml0aWFsaXppbmcgbG9nZ2luZyBjaGFubmVscyBiYXNlZCBvbiBodW1h
bi1yZWFkYWJsZSBjaGFubmVsIG5hbWVzIGluIFdURiwKLSAgICAgICAgYW5kIHJld29yayB0aGUg
V2ViQ29yZSwgV2ViS2l0IGFuZCBXZWJLaXQyIGxvZ2dpbmcgaW5pdGlhbGl6YXRpb24gb24gdG9w
IG9mIGl0LgotCi0gICAgICAgIExvZ2dpbmcgY2hhbm5lbHMgbWF5IG5vdyBiZSBlbmFibGVkIGJ5
IHByb3ZpZGluZyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGNoYW5uZWwgbmFtZXMsIHdpdGgg
dGhlIHNwZWNpYWwKLSAgICAgICAgImFsbCIgbmFtZSBlbmFibGluZyBhbGwgY2hhbm5lbHMuIENo
YW5uZWwgbmFtZXMgcHJlZml4ZWQgd2l0aCBhIGxlYWRpbmcgIi0iIHdpbGwgcmVzdWx0IGluIHRo
ZSBuYW1lZCBjaGFubmVsCi0gICAgICAgIGJlaW5nIGRpc2FibGVkLiBGb3IgaW5zdGFuY2UsIHNw
ZWNpZnlpbmcgImFsbCwtaGlzdG9yeSwtbG9hZGluZyIgd2lsbCByZXN1bHQgaW4gYWxsIGxvZ2dp
bmcgY2hhbm5lbHMgZXhjZXB0Ci0gICAgICAgIGZvciBoaXN0b3J5IGFuZCBsb2FkaW5nIGJlaW5n
IGVuYWJsZWQuCi0KLSAgICAgICAgRm9yIE9TIFggZGV2ZWxvcGVycywgdGhpcyBhbHNvIGNoYW5n
ZXMgdGhlIG5hbWUgb2YgdGhlIHVzZXIgZGVmYXVsdHMgdXNlZCB0byBlbmFibGUgbG9nZ2luZy4g
VGhpcyBpcyBkb25lIHRvIGFsbG93Ci0gICAgICAgIHRoZSBvbGQgdXNlciBkZWZhdWx0cyB0byBy
ZW1haW4gc2V0IGZvciB0aG9zZSBwZW9wbGUgdGhhdCBuZWVkIHRvIHN3aXRjaCBiZXR3ZWVuIHZl
cnNpb24gb2YgV2ViS2l0IGJlZm9yZSBhbmQKLSAgICAgICAgYWZ0ZXIgdGhpcyBjaGFuZ2UuIFdo
ZXJlIHRoZSBvbGQgdXNlciBkZWZhdWx0IGtleXMgd2VyZSBXZWJDb3JlTG9nTGV2ZWwsIFdlYktp
dExvZ0xldmVsIGFuZCBXZWJLaXQyTG9nTGV2ZWwsCi0gICAgICAgIHRoZSBuZXcgdXNlciBkZWZh
dWx0IGtleXMgYXJlIFdlYkNvcmVMb2dnaW5nLCBXZWJLaXRMb2dnaW5nIGFuZCBXZWJLaXQyTG9n
Z2luZy4KLQotICAgICAgICBGb3IgR1RLIGRldmVsb3BlcnMsIHRoaXMgY2hhbmdlcyB0aGUgc2Vw
YXJhdG9yIHVzZWQgaW4gdGhlIFdFQktJVF9ERUJVRyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBh
IGNvbW1hIGZvcgotICAgICAgICBjb25zaXN0ZW5jeSB3aXRoIHRoZSBvdGhlciBwbGF0Zm9ybXMg
YW5kIHRvIGVuYWJsZSBtb3JlIGNvZGUgc2hhcmluZy4KLQotICAgICAgICBXaGlsZSBkb2luZyB0
aGlzIHdvcmsgSSd2ZSBhbHNvIHRha2VuIHRoZSBvcHBvcnR1bml0eSB0byBlbGltaW5hdGUgdGhl
IG5lZWQgdG8gdG91Y2ggbXVsdGlwbGUgZmlsZXMgd2hlbgotICAgICAgICBhZGRpbmcgYSBuZXcg
bG9nZ2luZyBjaGFubmVsLiBOb3cgb25seSB0aGUgaGVhZGVyIGluIHRoZSByZWxldmFudCBwcm9q
ZWN0IG5lZWRzIHRvIGJlIHVwZGF0ZWQuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRnbG9iYWxzLmNwcDogU3dpdGNoIGZyb20gV2Vi
Q29yZSdzIEluaXRpYWxpemVMb2dnaW5nLmggdG8gTG9nZ2luZy5oLgotCi0yMDEzLTA4LTAyICBN
YXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+Ci0KLSAgICAgICAg
SW1wbGVtZW50IGF0a190ZXh0X2dldF90ZXh0Xypfb2Zmc2V0IGZvciBXT1JECi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQ4NzEKLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgVXBkYXRlZCBjdXJyZW50IHVu
aXQgdGVzdHMgYW5kIGFkZCBhIG5ldyBvbmUgc3BlY2lmaWMgZm9yIGVtYmVkZGVkCi0gICAgICAg
IG9iamVjdHMsIHRvIGVuc3VyZSB3ZSBhcmUgY292ZXJpbmcgZXZlbiBtb3JlIGNhc2VzIHRoYW4g
YmVmb3JlLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGVzdFdlYmtp
dEF0a0dldFRleHRBdE9mZnNldFdpdGhFbWJlZGRlZE9iamVjdHMpOiBOZXcuCi0gICAgICAgICht
YWluKTogQWRkZWQgbmV3IHRlc3QgdG8gdGhlIHRlc3Qgc3VpdGUuCi0KLTIwMTMtMDctMzAgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2
aWV3ZWQuIFVwZGF0ZSBORVdTIGFuZCBWZXJzaW9ucy5tNCBmb3IgMi4xLjQgcmVsZWFzZS4KLQot
ICAgICAgICAqIE5FV1M6IEFkZGVkIHJlbGVhc2Ugbm90ZXMgZm9yIDIuMS40LgotCi0yMDEzLTA3
LTI5ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+Ci0KLSAg
ICAgICAgW0FUS10gSXNzdWVzIHdpdGggZWRnZSBjYXNlcyB3aGVuIGdldHRpbmcgb2Zmc2V0cyBm
b3IgYSB0ZXh0IHJhbmdlIGluIEF0a1RleHQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExODkwOAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBS
b2JpbnNvbi4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKHJ1bkdldFRl
eHRUZXN0cyk6IFVwZGF0ZWQgdW5pdCB0ZXN0cyB0byBjaGVjayBtb3JlIGNhc2VzIG9mCi0gICAg
ICAgIGNhbGxpbmcgdGhlIGF0a190ZXh0X2dldF90ZXh0Xypfb2Zmc2V0KCkgZnVuY3Rpb25zIGZv
ciBXT1JELgotCi0yMDEzLTA3LTI1ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4K
LQotICAgICAgICBDaHJvbWVDbGllbnQ6OmZvY3VzZWROb2RlQ2hhbmdlZCgpIHNob3VsZCBiZSBm
b2N1c2VkRWxlbWVudENoYW5nZWQoKS4KLSAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvMTE5
MTEwPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKToKLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAxMy0wNy0yMyAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gR3RrQWRqdXN0bWVudFdh
dGNoZXIgaWRsZSBzb3VyY2Ugbm90IGNvcnJlY3RseSBoYW5kbGVkCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkwMDMKLQotICAgICAgICBSZXZpZXdl
ZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgR3RrQWRqdXN0bWVudFdhdGNoZXI6OnVw
ZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9sbGJhcnNMYXRlcigpCi0gICAgICAgIGNyZWF0ZXMgYSBu
ZXcgaWRsZSBzb3VyY2UgYW5kIGluaXRpYWxpemVzCi0gICAgICAgIG1fdXBkYXRlQWRqdXN0bWVu
dENhbGxiYWNrSWQsIHdoaWNoIGlzIHVzZWQgZXZlcnl3aGVyZSBhbmQKLSAgICAgICAgc3BlY2lh
bGx5IGluIHRoZSBkZXN0cnVjdG9yIHRvIGNhbmNlbCB0aGUgc291cmNlIHdoZW4gdGhlCi0gICAg
ICAgIEd0a0FkanVzdG1lbnRXYXRjaGVyIGlzIGRlbGV0ZWQuIEhvd2V2ZXIsCi0gICAgICAgIG1f
dXBkYXRlQWRqdXN0bWVudENhbGxiYWNrSWQgaXMgcmVzZXQgdG8gMCBpbgotICAgICAgICBHdGtB
ZGp1c3RtZW50V2F0Y2hlcjo6dXBkYXRlQWRqdXN0bWVudHNGcm9tU2Nyb2xsYmFycygpIG9ubHkg
d2hlbgotICAgICAgICBub3QgcmV0dXJuaW5nIGVhcmx5LiBUaGlzIG1ldGhvZCBpcyBwdWJsaWMg
YW5kIG5vdCBvbmx5IGNhbGxlZCBieQotICAgICAgICB0aGUgdXBkYXRlQWRqdXN0bWVudENhbGxi
YWNrLCB3aGljaCBtZWFucyB0aGF0IGEgY2FsbCB0bwotICAgICAgICB1cGRhdGVBZGp1c3RtZW50
c0Zyb21TY3JvbGxiYXJzIGNvdWxkIHJlc2V0IHRoZQotICAgICAgICBtX3VwZGF0ZUFkanVzdG1l
bnRDYWxsYmFja0lkIHdpdGhvdXQgYWN0dWFsbHkgZGVzdHJveWluZyB0aGUgc291cmNlLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvR3RrQWRqdXN0bWVudFdhdGNoZXIuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpHdGtBZGp1c3RtZW50V2F0Y2hlcjo6dXBkYXRlQWRqdXN0bWVudHNGcm9tU2Ny
b2xsYmFycyk6Ci0gICAgICAgIENhbmNlbCB0aGUgYWRqdXN0bWVudCBsYXRlciBpZGxlIGlmIGl0
IGhhcyBiZWVuIHNjaGVkdWxlZC4KLSAgICAgICAgKFdlYktpdDo6R3RrQWRqdXN0bWVudFdhdGNo
ZXI6OnVwZGF0ZUFkanVzdG1lbnRDYWxsYmFjayk6IFJlc2V0Ci0gICAgICAgIG1fdXBkYXRlQWRq
dXN0bWVudENhbGxiYWNrSWQuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvR3RrQWRqdXN0bWVu
dFdhdGNoZXIuaDoKLQotMjAxMy0wNy0xNyAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3Vu
Zy5jb20+Ci0KLSAgICAgICAgVXNlIHRvSFRNTE1lZGlhRWxlbWVudAotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NzI3Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgUnlvc3VrZSBOaXdhLgotCi0gICAgICAgIFRvIGF2b2lkIGRpcmVjdCB1c2Ugb2Ygc3Rh
dGljX2Nhc3QsIHRoaXMgcGF0Y2ggdXNlcyB0b0hUTUxNZWRpYUVsZW1lbnQgZm9yIGNvZGUgY2xl
YW51cC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0g
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZSk6Ci0g
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKToKLSAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToK
LSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQp
OgotCi0yMDEzLTA3LTA5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KLQotICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgTkVXUyBhbmQgVmVyc2lvbnMubTQgZm9y
IDIuMS4zIHJlbGVhc2UuCi0KLSAgICAgICAgKiBORVdTOiBBZGRlZCByZWxlYXNlIG5vdGVzIGZv
ciAyLjEuMy4KLQotMjAxMy0wNy0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gd2Via2l0X3NldF9jYWNoZV9tb2RlbCBpcyBub3Qg
dHVybmluZyB0aGUgY2FjaGUgb2ZmCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTgzNDUKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEuCi0KLSAgICAgICAgT3VyIGRvY3VtZW50YXRpb24gc2F5cyB0aGF0IFdFQktJVF9D
QUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVIKLSAgICAgICAgZGlzYWJsZXMgdGhlIGNhY2hlIGNv
bXBsZXRlbHksIGJ1dCB3ZSBhcmUgb25seSBzZXR0aW5nIHRoZSBjYWNoZQotICAgICAgICBjYXBh
Y2l0aWVzIHRvIDAuIENhY2hlIGNhcGFjaXRpZXMgYXJlIG5vdCBjaGVja2VkIHdoZW4gcmVzb3Vy
Y2VzCi0gICAgICAgIGFyZSBhZGRlZCB0byB0aGUgY2FjaGUsIGJ1dCB3aGVuIGl0J3MgcHJ1bmVk
LiBUbyBkaXNhYmxlIHRoZSBjYWNoZQotICAgICAgICB3ZSBuZWVkIHRvIGNhbGwgTWVtb3J5Q2Fj
aGU6OnNldERpc2FibGVkIGV4cGxpY2l0bHkuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xv
YmFscy5jcHA6Ci0gICAgICAgICh3ZWJraXRfc2V0X2NhY2hlX21vZGVsKTogRGlzYWJsZSB0aGUg
Y2FjaGUgd2hlbiBtaW4gZGVhZCwgbWF4Ci0gICAgICAgIGRlYWQgYW5kIHRvdGFsIGNhcGFjaXRp
ZXMgYXJlIGFsbCBzZXQgdG8gMC4KLQotMjAxMy0wNy0wOCAgQnJpYW4gSG9sdCAgPGJyaWFuLmhv
bHRAc2Ftc3VuZy5jb20+Ci0KLSAgICAgICAgW0dUS10gRnJhbWVMb2FkZXJDbGllbnQ6IFJlZmFj
dG9yIG5ha2VkIHBvaW50ZXJzIHRvIHVzZSBzbWFydCBwb2ludGVycwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NDE3Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCi0KLSAgICAgICAgVXNlIEdPd25QdHIgYW5kIEdS
ZWZQdHIgd2hlcmUgcG9zc2libGUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEZhaWxMb2FkKToKLQotMjAxMy0wNy0wNCAgTWFyaW8gU2FuY2hleiBQcmFkYSAg
PG1hcmlvLnByYWRhQHNhbXN1bmcuY29tPgotCi0gICAgICAgIFtBVEtdIERvIG5vdCBleHBvc2Ug
J1xuJyBmb3Igd3JhcHBlZCBsaW5lcyB3aXRoIEFUS19URVhUX0JPVU5EQVJZX0NIQVIKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODM1OQotCi0gICAg
ICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgotCi0gICAgICAgIEFkZGVkIG5l
dyB1bml0IHRlc3QgdG8gbWFrZSBzdXJlIHdlIGV4cG9zZWQgbGluZSBicmVha3MgcHJvcGVybHku
Ci0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrR2V0
VGV4dEF0T2Zmc2V0V2l0aFdyYXBwZWRMaW5lcyk6IE5ldyB1bml0IHRlc3QuCi0gICAgICAgICht
YWluKTogQWRkZWQgbmV3IHRlc3QgdG8gdGhlIHRlc3Qgc3VpdGUuCi0KLTIwMTMtMDctMDEgIEd1
c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY29tPgotCi0g
ICAgICAgIFtHVEtdIFJlbW92ZSB1bnN1cHBvcnRlZCBBQyBiYWNrZW5kcwotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3MzYyCi0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDog
cmVtb3ZlZCBjbHV0dGVyIGFuZCBjYWlybwotICAgICAgICBhZGRpdGlvbnMuCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHA6IFJl
bW92ZWQuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRDbHV0dGVyLmNwcDogUmVtb3ZlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFs
cy5jcHA6Ci0gICAgICAgICh3ZWJraXRJbml0KTogcmVtb3ZlZCBjbHV0dGVyLWd0ayBpbml0aWFs
aXphdGlvbi4KLQotMjAxMy0wNy0wMSAgQ2hhbmdTZW9rIE9oICA8Y2hhbmdzZW9rLm9oQGNvbGxh
Ym9yYS5jb20+Ci0KLSAgICAgICAgW0dUS10gVXNlIFBhc3NPd25QdHIgZm9yIHRoZSByZXR1cm5l
ZCB2YWx1ZSBvZiBjcmVhdGVCYWNraW5nU3RvcmUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExODIzMAotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZHJl
YXMgS2xpbmcuCi0KLSAgICAgICAgSXQgd291bGQgYmUgYmV0dGVyIHRoYXQgY3JlYXRlQmFja2lu
Z1N0b3JlIHJldHVybnMgUGFzc093blB0ciBpbnN0cmVhZCBvZiBPd25QdHIKLSAgICAgICAgdG8g
a2VlcCBjb21wYXRpYmlsaXR5IHdpdGggYysrMHguCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpjcmVhdGVCYWNraW5nU3Rv
cmUpOgotCi0yMDEzLTA2LTI4ICBJYWdvIFRvcmFsIFF1aXJvZ2EgIDxpdG9yYWxAaWdhbGlhLmNv
bT4KLQotICAgICAgICBVc2UgZ3RrX3dpZGdldF9nZXRfcHJlZmVycmVkX3NpemUgaW5zdGVhZCBv
ZiBkZXByZWNhdGVkIGd0a193aWRnZXRfZ2V0X3JlcXVpc2l0aW9uCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgxNzcKLQotICAgICAgICBSZXZpZXdl
ZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y29udGVu
dHNTaXplQ2hhbmdlZCk6Ci0KLTIwMTMtMDYtMjcgIElhZ28gVG9yYWwgUXVpcm9nYSAgPGl0b3Jh
bEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVzZSBjb25zaXN0ZW50IGZpbGUgbmFtZXMgZm9yIFdp
ZGdldEJhY2tpbmdTdG9yZUd0a1gxMSBjbGFzcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4MTI0Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9z
IEdhcmNpYSBDYW1wb3MuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwOgotCi0yMDEzLTA2LTIxICBDaHJpc3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5z
YW1zdW5nLmNvbT4KLQotICAgICAgICBSRUdSRVNTSU9OIChyMTUwNjYzKTogVXNpbmcgd2Via2l0
QXVkaW9Db250ZXh0IGluIEluc3BlY3RvciBtYWtlcyBpdCB1bmRlZmluZWQgZXZlcnl3aGVyZQot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3ODI1Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgS2VudGFybyBIYXJhLgotCi0gICAgICAgIFVzZSBTZXR0aW5n
cyB0byBlbmFibGUgV2ViIEF1ZGlvIGluc3RlYWQgb2YgUnVudGltZUVuYWJsZWRGZWF0dXJlcy4K
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldHRp
bmdzX25vdGlmeSk6Ci0KLTIwMTMtMDYtMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBORVdTIGFuZCBWZXJz
aW9ucy5tNCBmb3IgMi4xLjIgcmVsZWFzZS4KLQotICAgICAgICAqIE5FV1M6IEFkZGVkIHJlbGVh
c2Ugbm90ZXMgZm9yIDIuMS4yLgotCi0yMDEzLTA2LTE3ICBHcnplZ29yeiBDemFqa293c2tpICA8
Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxNTE2MzIuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1
MTYzMgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3
NTg1Ci0KLSAgICAgICAgRGVidWcgYnVpbGQgZXJyb3IgQVNTRVJUKFdURl9VU0VfR1JBTU1BUl9D
SEVDS0lORykgZm9yIG5vbiBNQUMKLSAgICAgICAgcGxhdGZvcm1zCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0Z2xvYmFscy5jcHA6Ci0gICAgICAgICh3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1f
Z2V0X2FjdGlvbik6Ci0KLTIwMTMtMDYtMTQgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWpr
b3dza2lAc2Ftc3VuZy5jb20+Ci0KLSAgICAgICAgQ29udGV4dCBtZW51IGdyYW1tYXIgY2hlY2tp
bmcgaXRlbXMgYXJlIGF2YWlsYWJsZSB3aGVuIEdSQU1NQVJfQ0hFQ0tJTkcgbWFjcm8gaXMgb2Zm
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc1ODUK
LQotICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCi0KLSAgICAgICAgQWRkIEdS
QU1NQVJfQ0hFQ0tJTkcgZ3VhcmQgdG8gdGhlIGNvbnRleHQgbWVudSBncmFtbWFyIGl0ZW1zLgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAgICAgICAod2Via2l0X2Nv
bnRleHRfbWVudV9pdGVtX2dldF9hY3Rpb24pOgotCi0yMDEzLTA2LTEyICBEaWVnbyBQaW5vIEdh
cmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gUGFyYW1ldGVyICdwc2V1
ZG9FbGVtZW50JyBmcm9tIGZ1bmN0aW9uICd3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2NvbXB1
dGVkX3N0eWxlJyBzaG91bGQgYmUgYWxsb3dlZCB0byBiZSBOVUxMCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTczMzIKLQotICAgICAgICBSZXZpZXdl
ZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgQWRkIHRlc3QgZm9yIGZ1bmN0aW9uICd3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X2NvbXB1dGVkX3N0eWxlJy4KLQotICAgICAgICAqIHRlc3RzL3Rl
c3Rkb21kb213aW5kb3cuYzoKLSAgICAgICAgKGRvbV9kb21fd2luZG93X2ZpeHR1cmVfc2V0dXAp
OiBUZXN0IHNldHVwIGZvciBmdW5jdGlvbgotICAgICAgICAnZG9tX2RvbV93aW5kb3dfZ2V0X2Nv
bXB1dGVkX3N0eWxlJy4KLSAgICAgICAgKGRvbV9kb21fd2luZG93X2ZpeHR1cmVfdGVhcmRvd24p
OiBUZXN0IHRlYXJkb3duIGZvciBmdW5jdGlvbgotICAgICAgICAnZG9tX2RvbV93aW5kb3dfZ2V0
X2NvbXB1dGVkX3N0eWxlJy4KLSAgICAgICAgKGxvYWRlZENhbGxiYWNrKToKLSAgICAgICAgKHRl
c3RfZG9tX2RvbV93aW5kb3dfZ2V0X2NvbXB1dGVkX3N0eWxlKTogQ2hlY2tzIGZ1bmN0aW9uCi0g
ICAgICAgICdkb21fZG9tX3dpbmRvd19nZXRfY29tcHV0ZWRfc3R5bGUnLgotICAgICAgICAobWFp
bik6Ci0KLTIwMTMtMDYtMTAgIElhZ28gVG9yYWwgUXVpcm9nYSAgPGl0b3JhbEBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFVzZSBDYWlybyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgV2lkZ2V0QmFja2lu
Z1N0b3JlIGluc3RlYWQgb2YgWDExIHdoZW4gcnVubmluZyBvbiBXYXlsYW5kCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY3MTcKLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgRGVjaWRlIHdoaWNoIGltcGxl
bWVudGF0aW9uIG9mIFdpZGdldEJhY2tpbmdTdG9yZSB0byB1c2UgKFgxMSBvciBDYWlybykKLSAg
ICAgICAgZGVwZW5kaW5nIG9uIHdoZXRoZXIgd2UgYXJlIHJ1bm5pbmcgb24gWDExIG9yIG5vdC4g
U2VsZWN0IENhaXJvCi0gICAgICAgIGltcGxlbWVudGF0aW9uIHdoZW4gbm90IHJ1bm5pbmcgaW4g
WDExLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6Y3JlYXRlQmFja2luZ1N0b3JlKToKLSAgICAgICAgKFdlYktpdCk6Ci0g
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6d2lkZ2V0U2l6ZUNoYW5nZWQpOgotICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKToKLQotMjAx
My0wNi0wNiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgotCi0gICAgICAg
IFtHVEtdIFBhcmFtZXRlciAncmVmQ2hpbGQnIGZyb20gZnVuY3Rpb24gJ3dlYmtpdF9kb21fbm9k
ZV9pbnNlcnRfYmVmb3JlJyBzaG91bGQgYmUgYWxsb3dlZCB0byBiZSBOVUxMCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTczMDMKLQotICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgQWRkIHRlc3QgZm9yIGZ1bmN0aW9uICd3
ZWJraXRfZG9tX25vZGVfaW5zZXJ0X2JlZm9yZScuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0ZG9t
bm9kZS5jOiBDaGVja3MgZnVuY3Rpb24gZG9tX2RvY3VtZW50X25vZGVfaW5zZXJ0X2JlZm9yZQot
ICAgICAgICAodGVzdF9kb21fbm9kZV9pbnNlcnRpb24pOgotCi0yMDEzLTA2LTA2ICBEaWVnbyBQ
aW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gUGFyYW1ldGVy
cyAnaW5SZXN1bHQnIGFuZCAncmVzb2x2ZXInIGZyb20gZnVuY3Rpb24gJ3dlYmtpdF9kb21fZG9j
dW1lbnRfZXZhbHVhdGUnIHNob3VsZCBiZSBhbGxvd2VkIHRvIGJlIE5VTEwKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzEyOQotCi0gICAgICAgIFJl
dmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBBZGQgdGVzdCBmb3IgZnVuY3Rpb24gJ3dl
YmtpdF9kb21fZG9jdW1lbnRfZXZhbHVhdGUnLgotCi0gICAgICAgICogdGVzdHMvdGVzdGRvbWRv
Y3VtZW50LmM6Ci0gICAgICAgICh0ZXN0X2RvbV9kb2N1bWVudF9ldmFsdWF0ZSk6IENoZWNrcyBm
dW5jdGlvbiBkb21fZG9jdW1lbnRfZXZhbHVhdGUsCi0gICAgICAgIGV4ZWN1dGVzIGFuIFhQYXRo
IGV4cHJlc3Npb24gb24gYSBIVE1MIGRvY3VtZW50LgotICAgICAgICAobWFpbik6IAotCi0yMDEz
LTA2LTA1ICBBbGJlcnRvIEdhcmNpYSAgPGFnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBb
R1RLXSBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDogZml4IGxheWVyRmx1c2hUaW1lckZp
cmVkQ2FsbGJhY2sgY29uZGl0aW9uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTcyNTgKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24uCi0KLSAgICAgICAgVGhlIGV4cHJlc3Npb25zIHdlcmUgaW5jb3JyZWN0bHkgZ3JvdXBlZCwg
YSB0aW1lb3V0IGhhbmRsZXIgY2FuCi0gICAgICAgIG9ubHkgYmUgYWRkZWQgb25seSBpZiB0aGVy
ZSdzIG5vbmUgcnVubmluZyBhbHJlYWR5LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpyZW5kZXJMYXllcnNUb1dpbmRvdyk6Ci0KLTIwMTMt
MDYtMDQgIEFsYmVydG8gR2FyY2lhICA8YWdhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtH
VEtdIE1ha2UgcHJlY2VkZW5jZSBvZiBsb2dpY2FsIG9wZXJhdG9ycyBleHBsaWNpdAotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3MjE2Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFRoZXJlJ3MgYSBjb3Vw
bGUgb2YgY2FzZXMgd2hlcmUgd2UgbWl4ICYmIGFuZCB8fCBpbiB0aGUgc2FtZQotICAgICAgICBl
eHByZXNzaW9uLiBJbiBDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoKSB0aGUgbGFj
ayBvZgotICAgICAgICBwYXJlbnRoZXNlcyBhY3R1YWxseSBtYWtlcyB0aGUgZXhwcmVzc2lvbiB3
cm9uZy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0R0wuY3BwOgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6cmVuZGVyTGF5ZXJzVG9XaW5kb3cpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y29udGVu
dHNTaXplQ2hhbmdlZCk6Ci0KLTIwMTMtMDUtMzAgIEVucmlxdWUgT2NhbmEgR29uemFsZXogIDxl
b2NhbmhhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gRml4IHBhc3NfYnlfdmFsdWUgY292
ZXJpdHkgd2FybmluZyBpbiBDaHJvbWVDbGllbnRHdGsKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzAyMQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFu
ZGVycyBDYXJsc3Nvbi4KLQotICAgICAgICBQYXNzIGRpcnR5UmVnaW9uIHBhcmFtZXRlciBpbiBw
YWludFdlYlZpZXcoKSBieSByZWZlcmVuY2UgdG8gYXZvaWQgb2JqZWN0IGNvcHlpbmcuCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpwYWludFdlYlZpZXcpOgotCi0yMDEzLTA1LTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgTkVXUyBh
bmQgVmVyc2lvbnMubTQgZm9yIDIuMS4xIHJlbGVhc2UuCi0KLSAgICAgICAgKiBORVdTOiBBZGRl
ZCByZWxlYXNlIG5vdGVzIGZvciAyLjEuMS4KLQotMjAxMy0wNS0yOCAgQW5kcmVhcyBLbGluZyAg
PGFrbGluZ0BhcHBsZS5jb20+Ci0KLSAgICAgICAgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKCkg
c2hvdWxkIGJlIHNldEZvY3VzZWRFbGVtZW50KCkuCi0gICAgICAgIDxodHRwOi8vd2Via2l0Lm9y
Zy9iLzExNjg1Nz4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKGdldEZvY3VzZWROb2Rl
KToKLQotMjAxMy0wNS0yNCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3Vu
Zy5jb20+Ci0KLSAgICAgICAgUmVtb3ZlIGN1c3RvbSBjb2RlIGZvciB3ZWJraXRBdWRpb0NvbnRl
eHQgZ2xvYmFsIGNvbnN0cnVjdG9yIGdldHRlcgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NTMwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZy
ZXkgR2FyZW4uCi0KLSAgICAgICAgVXNlIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgaW5zdGVhZCBv
ZiBTZXR0aW5ncyB0byB0b2dnbGUgV2ViIEF1ZGlvIHN1cHBvcnQuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3Nl
dHRpbmdzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0y
MDEzLTA1LTE5ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+Ci0KLSAgICAg
ICAgUmVtb3ZlIENocm9tZUNsaWVudDo6d2ViVmlldygpCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYwNTQKLQotICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KLQotICAgICAgICBUaGlzIGJsYXRhbnRseSBob3JyaWJsZSBsYXllciB2aW9s
YXRpb24gd2FzIG9ubHkgdXNlZCB0byBrbm93IGlmIGEgQ2hyb21lQ2xpZW50IGlzIGFuIGVtcHR5
Ci0gICAgICAgIGNsaWVudCBvciBub3QuIFdlIGFscmVhZHkgaGF2ZSBhIChzbGlnaHRseSBsZXNz
IGhvcnJpYmxlKSB3YXkgdG8gZG8gdGhhdC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oOgotICAgICAgICAoQ2hyb21lQ2xpZW50KToKLQotMjAxMy0wNS0xOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dU
S10gTW92ZSBHVEsgcG9ydCBvZmYgbGVnYWN5IGNsaXBib2FyZAotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2MjIxCi0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6IEdldCB0
aGUgRGF0YU9iamVjdEd0ayBmcm9tIHRoZQotICAgICAgICBQYXN0ZWJvYXJkIGFzc29jaWF0ZWQg
dG8gdGhlIGdpdmVuIENsaXBib2FyZC4KLQotMjAxMy0wNS0xNyAgR3VzdGF2byBOb3JvbmhhIFNp
bHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdl
ZCBidWlsZCBmaXguIFJlbW92ZSBhc3NlcnRpb24gdGhhdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgYW55
bW9yZSBzaW5jZSB0aGUKLSAgICAgICAgcGFnZSBkb2VzIG5vdCBnaXZlIHVzIGFjY2VzcyB0byB0
aGUgQ2hyb21lIHBvaW50ZXIgZGlyZWN0bHkgYW55bW9yZS4KLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKFdlYktpdDo6a2l0KToKLQotMjAxMy0wNS0xNiAg
QW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+Ci0KLSAgICAgICAgUGFnZTo6Y2hyb21l
KCkgc2hvdWxkIHJldHVybiBhIHJlZmVyZW5jZS4KLSAgICAgICAgPGh0dHA6Ly93ZWJraXQub3Jn
L2IvMTE2MTg1PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KLQotMjAx
My0wNS0xNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgW0dUS10gRG9jdW1lbnRhdGlvbiBmb3IgV0VCS0lUX0RFQlVHIGxvZ2dpbmcgY2hhbm5lbHMg
aXMgb3V0IG9mIGRhdGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNDc2NAotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2
YS4KLQotICAgICAgICAqIGRvY3Mvd2Via2l0ZW52aXJvbm1lbnQueG1sOiBVcGRhdGUgZG9jdW1l
bnRhdGlvbiB0byByZWZsZWN0IGN1cnJlbnQgbGlzdCBvZgotICAgICAgICBsb2dnaW5nIGNoYW5u
ZWxzLgotCi0yMDEzLTA1LTE2ICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5A
ZGlnaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFRhcmdldEZyYW1lIGFuZCBpbm5lck5vZGVGcmFt
ZSBjb25mdXNlZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAyOTA3Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwOgotICAgICAgICAoV2ViS2l0Ojpr
aXQpOgotCi0yMDEzLTA1LTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
Ci0KLSAgICAgICAgRml4IGJ1aWxkLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwOgotICAgICAgICAod2Via2l0V2ViVmlld0RpcmVjdGlvbkNoYW5nZWQpOgotCi0yMDEzLTA1
LTEzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+Ci0KLSAgICAgICAgRnJh
bWU6OmVkaXRvcigpIHNob3VsZCByZXR1cm4gYSByZWZlcmVuY2UKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjAzNwotCi0gICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpwYWludCk6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKToKLSAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6aXNDb21tYW5kRW5hYmxlZCk6Ci0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKToKLSAgICAgICAgKFdl
YktpdDo6RWRpdG9yQ2xpZW50OjpleGVjdXRlUGVuZGluZ0VkaXRvckNvbW1hbmRzKToKLSAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXIuY3BwOgotICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXI6OmNhbkVkaXQpOgotICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXI6OmNvbmZpcm1Db21wb3NpdGlvblRleHQpOgot
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXI6OmNvbmZpcm1DdXJyZW50
Q29tcG9zaXRpb24pOgotICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXI6
OmNhbmNlbEN1cnJlbnRDb21wb3NpdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbnB1
dE1ldGhvZEZpbHRlcjo6c2V0UHJlZWRpdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfcmVwbGFjZV9zZWxlY3Rpb24pOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKGdldExvY2F0aW9u
Rm9yS2V5Ym9hcmRHZW5lcmF0ZWRDb250ZXh0TWVudSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZm9jdXNfaW5fZXZlbnQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3JlYWxfc2VsZWN0
X2FsbCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jdXRfY2xpcGJvYXJkKToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19yZWFsX2NvcHlfY2xpcGJvYXJkKToKLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19yZWFsX3VuZG8pOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3JlYWxf
cmVkbyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVhbF9wYXN0ZV9jbGlwYm9hcmQpOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF9oaWdobGlnaHRfdGV4dF9tYXRjaGVzKToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19jYW5fY3V0X2NsaXBib2FyZCk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfY2FuX2NvcHlfY2xpcGJvYXJkKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19jYW5fcGFzdGVfY2xpcGJvYXJkKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kZWxldGVf
c2VsZWN0aW9uKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUpOgotICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2Nhbl91bmRvKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19jYW5fcmVkbyk6Ci0KLTIwMTMtMDUtMTQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFtHVEtdIE1vdmUgZ2VuZXJhdGVkIENvbG9yRGF0YS5jcHAsIFdl
YktpdEZvbnRGYW1pbHlOYW1lcy4oY3BwfGgpIGJ1aWxkIHRhcmdldHMgaW50byBsaWJQbGF0Zm9y
bQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1OTIx
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAg
ICogR05VbWFrZWZpbGUuYW06IEFkZCBwbGF0Zm9ybV9jcHBmbGFncyB0byB0aGUgbGlzdCBvZiBD
UFBGTEFHUyBmb3IgbGlid2Via2l0Mmd0aywgbGliV2ViQ29yZUd0azIsCi0gICAgICAgIGxpYlBs
YXRmb3JtR3RrMiBhbmQgV2ViS2l0UGx1Z2luUHJvY2Vzcy4KLQotMjAxMy0wNS0xMiAgVGltb3Ro
eSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+Ci0KLSAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHVwZGF0aW5nIHRoZSBXZWIgSW5zcGVjdG9yIHRvb2xiYXIgaGVpZ2h0LgotCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU5OTYKLQotICAgICAgICBS
ZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8gYW5kIEJlbmphbWluIFBvdWxhaW4uCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0VG9vbGJhckhlaWdodCk6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmg6Ci0KLTIwMTMtMDUtMTIgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KLQotICAgICAgICBTdG9wIGluY2x1
ZGluZyBVbnVzZWRQYXJhbS5oCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTYwMDMKLQotICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0g
ICAgICAgIFVudXNlZFBhcmFtLmggaXMgZW1wdHkgbm93IHNvIHRoZXJlJ3Mgbm8gbmVlZCB0byBp
bmNsdWRlIGl0IGFueW1vcmUuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0YXBwbGljYXRpb25j
YWNoZS5jcHA6Ci0KLTIwMTMtMDUtMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFJlbW92ZSB1bm5lY2Vzc2FyeSBHVEtfQ0hFQ0tf
VkVSU0lPTiAjaWZkZWZzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTU5MTQKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgotICAg
ICAgICAqIHRlc3RzL3Rlc3RhcHBsaWNhdGlvbmNhY2hlLmM6Ci0gICAgICAgICogdGVzdHMvdGVz
dGF0ay5jOgotICAgICAgICAqIHRlc3RzL3Rlc3RhdGtyb2xlcy5jOgotICAgICAgICAobWFpbik6
Ci0gICAgICAgICogdGVzdHMvdGVzdGNvbnRleHRtZW51LmM6Ci0gICAgICAgICogdGVzdHMvdGVz
dGNvcHlhbmRwYXN0ZS5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogdGVzdHMvdGVzdGRv
bWRvY3VtZW50LmM6Ci0gICAgICAgICogdGVzdHMvdGVzdGRvbWRvbXdpbmRvdy5jOgotICAgICAg
ICAqIHRlc3RzL3Rlc3Rkb21ub2RlLmM6Ci0gICAgICAgICogdGVzdHMvdGVzdGRvd25sb2FkLmM6
Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0ZmF2aWNvbmRhdGFiYXNlLmM6
Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0Z2xvYmFscy5jOgotICAgICAg
ICAqIHRlc3RzL3Rlc3RoaXR0ZXN0cmVzdWx0LmM6Ci0gICAgICAgICogdGVzdHMvdGVzdGh0dHBi
YWNrZW5kLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0a2V5ZXZlbnRz
LmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0bG9hZGluZy5jOgotICAg
ICAgICAqIHRlc3RzL3Rlc3RtaW1laGFuZGxpbmcuYzoKLSAgICAgICAgKG1haW4pOgotICAgICAg
ICAqIHRlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAg
ICogdGVzdHMvdGVzdG5ldHdvcmtyZXNwb25zZS5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAg
ICogdGVzdHMvdGVzdHdlYmJhY2tmb3J3YXJkbGlzdC5jOgotICAgICAgICAobWFpbik6Ci0gICAg
ICAgICogdGVzdHMvdGVzdHdlYmRhdGFzb3VyY2UuYzoKLSAgICAgICAgKG1haW4pOgotICAgICAg
ICAqIHRlc3RzL3Rlc3R3ZWJmcmFtZS5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogdGVz
dHMvdGVzdHdlYmhpc3RvcnlpdGVtLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0
cy90ZXN0d2ViaW5zcGVjdG9yLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90
ZXN0d2VicGx1Z2luZGF0YWJhc2UuYzoKLSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHRlc3Rz
L3Rlc3R3ZWJyZXNvdXJjZS5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogdGVzdHMvdGVz
dHdlYnNldHRpbmdzLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vi
dmlldy5jOgotICAgICAgICAqIHRlc3RzL3Rlc3R3aW5kb3cuYzoKLSAgICAgICAgKG1haW4pOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19yZWFsaXplKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zaG93X2hlbHApOgotICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X3NldF90b29sdGlwX3RleHQpOgotCi0yMDEzLTA1LTA3ICBUb21hcyBQb3BlbGEgIDx0cG9w
ZWxhQHJlZGhhdC5jb20+Ci0KLSAgICAgICAgW0dUS10gSW5pdGlhbGl6ZSBXZWJLaXRXZWJQbHVn
aW4gcGF0aCB0byBwcmV2ZW50IGRvdWJsZS1mcmVlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTU2MjQKLQotICAgICAgICBSZXZpZXdlZCBieSBDYXJs
b3MgR2FyY2lhIENhbXBvcy4KLQotICAgICAgICBVc2UgR093blB0ciBmb3IgV2ViS2l0V2ViUGx1
Z2luIHBhdGggdG8gcHJldmVudCBkb3VibGUtZnJlZQotICAgICAgICBzaXR1YXRpb25zLiBBbHNv
IHVzZSBHT3duUHRyIGZvciBHRXJyb3IgaW4gd2Via2l0X3dlYl9wbHVnaW5fZ2V0X3BhdGguCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2luLmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfcGx1Z2luX2ZpbmFsaXplKToKLSAgICAgICAgKHdlYmtpdF93ZWJfcGx1Z2luX2dldF9wYXRo
KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2lucHJpdmF0ZS5oOgotCi0yMDEzLTA1
LTA2ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RL
XSBNb3ZlIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlIGludG8gbGliUGxhdGZvcm0KLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTU5MQotCi0gICAg
ICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOiBBZGQgcGxhdGZvcm1fd2ViY29yZV9jcHBmbGFncyB0byB0aGUgbGlzdCBvZiBsaWJ3ZWJr
aXRndGsncyBDUFBGTEFHUy4KLQotMjAxMy0wNS0wMiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgU2VnbWVudGF0aW9uIEZhdWx0IHdpdGggUm9tYW5pYW4g
bG9jYWxlLiBFdm9sdXRpb24gbm90IHN0YXJ0aW5nLgotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE1NDg0Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCi0KLSAgICAgICAgRG8gbm90IHRyYW5zbGF0ZSB0aGUgcHJvcGVydHkgbmFtZXMg
dGhhdCBhcmUgYmVpbmcgcGFzc2VkIHRvIHRoZSBnX3BhcmFtX3NwZWNfYm9vbGVhbgotICAgICAg
ICBtZXRob2QgLSBpdCBpcyBub3QgcmVxdWlyZWQgYW5kIGlzIGNhdXNpbmcgc2VnZmF1bHRzIHdp
dGggdmFyaW91cyBsb2NhbGVzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0
cmlidXRlcy5jcHA6Ci0gICAgICAgICh3ZWJraXRfdmlld3BvcnRfYXR0cmlidXRlc19jbGFzc19p
bml0KToKLQotMjAxMy0wNC0zMCAgRWQgQmFydG9zaCAgPGJhcnRvc2hAZ21haWwuY29tPgotCi0g
ICAgICAgIFtHVEtdIC0tbWluaW1hbCBidWlsZCBmYWlscyB3aXRoIGVycm9yOiBjbGFzcyBXZWJD
b3JlOjpFdmVudEhhbmRsZXInIGhhcyBubyBtZW1iZXIgbmFtZWQgJ2RyYWdTb3VyY2VFbmRlZEF0
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQyOTkK
LQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgV3JhcHBl
ZCBjb2RlLCByZWxhdGVkIHRvIGRyYWcmZHJvcCBpbiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKLQot
MjAxMy0wNC0yNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgotCi0gICAg
ICAgIFdlYiBJbnNwZWN0b3I6IENvbnNvbGVNZXNzYWdlIHNob3VsZCBpbmNsdWRlIGxpbmUgYW5k
IGNvbHVtbiBudW1iZXIgd2hlcmUgcG9zc2libGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDkyOQotCi0gICAgICAgIFJldmlld2VkIGJ5IFRpbW90
aHkgSGF0Y2hlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgIChD
aHJvbWVDbGllbnQpOgotCi0yMDEzLTA0LTIyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KLQotICAgICAgICBUcnkgdG8gZml4IHRoZSBidWlsZCBhZnRlciBlbmFibGlu
ZyBnb2JqZWN0LWludHJvc3BlY3Rpb24KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXNh
YmxlIC0td2Fybi1lcnJvciBmb3IgV2ViS2l0MSB1bnRpbCB3ZSBjYW4gd29yayBvdXQgYWxsIGdp
ciBmYWlsdXJlcy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2luLmNwcDogU2tpcCB0
aGlzIEFQSSBmb3IgaW50cm9zcGVjdGlvbiBiZWNhdXNlIGl0IHJldHVybiBhIEdTTGlzdAotICAg
ICAgICBvZiBwb2ludGVyIChub24tYm94ZWQpIHR5cGVzLgotCi0yMDEzLTA0LTIyICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBFbmFibGUg
aW50cm9zcGVjdGlvbiBhbHdheXMgZm9yIGRldmVsb3BlciBidWlsZHMKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDk4MwotCi0gICAgICAgIFJldmll
d2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OiBNYWtlIHdhcm5pbmdzIGR1cmluZyBnaXIgc2Nhbm5pbmcgY2F1c2UgdGhlIGJ1aWxkIHRvIGZh
aWwuIEVsaW1pbmF0ZQotICAgICAgICB3YXJuaW5ncyBhYm91dCBkZXByZWNhdGVkIEFQSSB0aGF0
IHRoZSBnLWlyLXNjYW5uZXIgdXNlcyB3aGVuIGdlbmVyYXRpbmcKLSAgICAgICAgdGhlIHNjYW5u
ZXIgcHJvZ3JhbS4gVXNlIC0tcXVpZXQgdG8gYXZvaWQgcHJpbnRpbmcgbG90cyBvZiBvdXRwdXQg
dG8KLSAgICAgICAgbm9uLXZlcmJvc2UgYnVpbGRzLgotCi0yMDEzLTA0LTIyICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBGaXggcmVtYWlu
aW5nIGludHJvc3BlY3Rpb24gd2FybmluZ3MKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNDk4MAotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXIuaDoK
LSAgICAgICAgKF9XZWJLaXRTcGVsbENoZWNrZXJJbnRlcmZhY2UpOiBBbGlnbiB0aGUgbmFtZSBv
ZiB0aGUgY2hlY2tfc3BlbGxpbmdfb2Zfc3RyaW5nIHZpcnR1YWwKLSAgICAgICAgbWV0aG9kIHdp
dGggdGhlIGNvbmNyZXRlIG1ldGhvZCB0byBhdm9pZCBhIGctaXItc2Nhbm5lciB3YXJuaW5nLgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR2ZXJzaW9uLmguaW46IFNraXAgV0VCS0lUR1RLX0FQSV9W
RVJTSU9OIGZvciBpbnRyb3NwZWN0aW9uIGJlY2F1c2UgaXQKLSAgICAgICAgZG9lc24ndCBmb2xs
b3cgdGhlIGFwcHJvcHJpYXRlIG5hbWVzcGFjZSBuYW1lLgotCi0yMDEzLTA0LTIyICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBTZXQgdXAgbGli
UGxhdGZvcm0ubGEKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExNDE2OAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGQgdGhlIG5ldyBsaWJQbGF0Zm9ybS5sYSBsaWJyYXJ5
IHRvIHRoZSBsaWJ3ZWJraXRndGsgbGlicmFyeS4KLQotMjAxMy0wNC0xOSAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gSlNDb3JlLmdpci5p
biBoYXMgYSBmZXcgcHJvYmxlbXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExNDcxMAotCi0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1h
bmQuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogVXBkYXRlZCB0byByZWZsZWN0IG5ldyBu
YW1lIGFuZCBsb2NhdGlvbiBvZiBKYXZhU2NyaXB0Q29yZS14LjAuZ2lyLgotICAgICAgICAqIEpT
Q29yZS5naXIuaW46IFJlbW92ZWQuCi0KLTIwMTMtMDQtMTcgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KLQotICAgICAgICBSZW5hbWVkIEpTR2xvYmFsRGF0YSB0byBWTQotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0Nzc3Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgUGhpbCBQaXpsby4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmdjQ291bnRKYXZhc2NyaXB0T2JqZWN0cyk6Ci0KLTIwMTMtMDQtMTYgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KLQotICAgICAgICBGaXggc3BlbGluZyBl
cnJvci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpZXdJbnB1dE1ldGhvZEZpbHRl
ci5jcHA6Ci0KLTIwMTMtMDQtMTYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+Ci0K
LSAgICAgICAgQW5vdGhlciBHVEsrIGJ1aWxkIGZpeC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYlZpZXdJbnB1dE1ldGhvZEZpbHRlci5jcHA6Ci0KLTIwMTMtMDQtMTYgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgR1RLKyBidWlsZCBmaXggYXR0ZW1w
dC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5j
cHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVmlld0lucHV0TWV0aG9kRmlsdGVyLmNw
cDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotCi0yMDEzLTA0LTE0ICBB
bmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KLQotICAgICAgICBNb3ZlIENTU09NIGNs
YXNzZXMgdG8gdXNpbmcgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQgb3ZlciBTdHlsZVByb3BlcnR5
U2V0LgotICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTQ1ODE+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRB
cHBseVN0eWxlKToKLQotMjAxMy0wNC0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gU3BsaXQgR3RrQXV0aGVudGljYXRpb25EaWFs
b2cgaW4gdHdvIHdpZGdldHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMzY0NAotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKToKLSAgICAgICAgVXNlIGhlbHBlciBjcmVhdGVBdXRoZW50aWNhdGlvbkRp
YWxvZygpIHRvIGNyZWF0ZSBhbmQgc2hvdyB0aGUKLSAgICAgICAgYXV0aCBkaWFsb2cuCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdGF1dGhlbnRpY2F0aW9uZGlhbG9nLmNwcDogQWRkZWQuCi0gICAg
ICAgIChhdXRoZW50aWNhdGlvbkRpYWxvZ1Jlc3BvbnNlQ2FsbGJhY2spOgotICAgICAgICAoY3Jl
YXRlQXV0aGVudGljYXRpb25EaWFsb2cpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRhdXRoZW50
aWNhdGlvbmRpYWxvZy5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1dGhk
aWFsb2cuY3BwOgotICAgICAgICAoc2Vzc2lvbkF1dGhlbnRpY2F0ZSk6IERpdHRvLgotCi0yMDEz
LTA0LTEwICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgotCi0gICAgICAg
IE1hc3MgcmVtb3ZlIGFsbCB0aGUgZW1wdHkgZGlyZWN0b3JpZXMKLQotICAgICAgICBSdWJiZXJz
dGFtcGVkIGJ5IFJ5b3N1a2UgTml3YS4KLQotICAgICAgICAqIGd5cDogUmVtb3ZlZC4KLSAgICAg
ICAgKiBwbzogUmVtb3ZlZC4KLQotMjAxMy0wNC0xMCAgQW50b24gT2J6aGlyb3YgIDxhLm9iemhp
cm92QHNhbXN1bmcuY29tPgotCi0gICAgICAgIFtHVEtdIEFkZCBzdXBwb3J0IGZvciBQYWdlIFZp
c2liaWxpdHkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk3MzI0Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KLQotICAgICAgICBJbXBs
ZW1lbnRlZCBhY2Nlc3MgdG8gcGFnZSB2aXNpYmlsaXR5IEFQSSBmb3IgR1RLIHRlc3QgcnVubmVy
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0UGFnZVZpc2liaWxpdHkp
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgot
Ci0yMDEzLTA0LTA4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4K
LQotICAgICAgICBbR1RLXSBET00gb2JqZWN0cyBjcmVhdGVkIHdyYXBwaW5nIGEgYmFzZSBjbGFz
cyBoYXZlIGluY29ycmVjdCBHT2JqZWN0IHR5cGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzEzMgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rh
dm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBSZW1vdmUgV2ViS2l0RE9NQmluZGluZGcuaCBp
bmNsdWRlIGZyb20gc2V2ZXJhbCBmaWxlcyBiZWNhdXNlIGl0J3MKLSAgICAgICAgYmVlbiByZW5h
bWVkIGFuZCBpdCB3YXMgbm90IGFjdHVhbGx5IG5lZWRlZC4KLQotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5j
cHA6Ci0KLTIwMTMtMDQtMDQgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFtHVEtdIFJlbW92ZSB0aGUgZ3lwIGJ1aWxkCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTM5NDIKLQotICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgKiBneXAvQ29uZmlndXJhdGlv
bi5neXBpLmluOiBSZW1vdmVkLgotICAgICAgICAqIGd5cC9EZXBlbmRlbmNpZXMuZ3lwOiBSZW1v
dmVkLgotICAgICAgICAqIGd5cC9HTlVtYWtlZmlsZTogUmVtb3ZlZC4KLSAgICAgICAgKiBneXAv
YXV0b2dlbi5zaDogUmVtb3ZlZC4KLSAgICAgICAgKiBneXAvY29uZmlndXJlLmFjOiBSZW1vdmVk
LgotICAgICAgICAqIGd5cC9ydW4tZ3lwOiBSZW1vdmVkLgotCi0yMDEzLTA0LTA0ICBDaHJpc3Rv
cGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KLQotICAgICAgICBbQ2Fpcm9d
IEZpeCBjYW52YXMgZHJhd2luZyBvZiBTVkctYmFzZWQgcGF0dGVybnMgYW5kIHJlbW92ZSBOYXRp
dmVJbWFnZUNhaXJvCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTM5MjkKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAg
ICAgICAgVXBkYXRlIGNvZGUgbm93IHRoYXQgUGFzc05hdGl2ZUltYWdlUHRyIGlzIG5vdyBhIHR5
cGVkZWYgdG8gUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+Ci0gICAgICAgIGluc3RlYWQgb2Yg
TmF0aXZlSW1hZ2VDYWlybyouCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFi
YXNlLmNwcDoKLSAgICAgICAgKGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KToKLQotMjAxMy0w
NC0wMyAgQWxiYW4gQ3JlcXV5ICA8YWxiYW4uY3JlcXV5QGNvbGxhYm9yYS5jby51az4KLQotICAg
ICAgICBbR1RLXSBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uOiBmaXggbWl4IGJldHdlZW4gZGlz
cG9zZSBhbmQgZmluYWxpemUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMzc5NAotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBT
aWx2YS4KLQotICAgICAgICBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uJ3MgZGlzcG9zZSBmdW5j
dGlvbiB3YXMgbmFtZWQgZmluYWxpemUgYW5kIHdhcyBjYWxsaW5nCi0gICAgICAgIHRoZSBwYXJl
bnQgY2xhc3MncyBmaW5hbGlzZSBmdW5jdGlvbiwgY2F1c2luZyBhIG1lbW9yeSBjb3JydXB0aW9u
LiBDaGFuZ2UgaXQgdG8KLSAgICAgICAgYmUgYSBwcm9wZXIgZmluYWxpemUgZnVuY3Rpb24gaW5z
dGVhZC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fY2xhc3NfaW5pdCk6Ci0KLTIw
MTMtMDMtMjggIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgotCi0gICAgICAg
IFtHVEtdIEJ1aWxkIEdUSy1zcGVjaWZpYywgbm9uLWxheWVyLXZpb2xhdGluZyBzb3VyY2UgY29k
ZSBpbnRvIFdlYkNvcmUtaW5kZXBlbmRlbnQgbGliUGxhdGZvcm1HdGsubGEKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjU0NgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBU
aGUgR3RrVmVyc2lvbmluZy5jIGZpbGUgaGFzIG1vdmVkIGJhY2sgdW5kZXIgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0uCi0KLTIwMTMtMDMtMjYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFtneXBdIEltcHJvdmUgc3VwcG9ydCBmb3IgcmVy
dW5uaW5nIGd5cCBhdXRvbWF0aWNhbGx5Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTMzNjAKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5v
cm9uaGEgU2lsdmEuCi0KLSAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGF1dG9tYXRpY2FsbHkgcmVy
dW5uaW5nIGd5cCB3aGVuIGlucHV0IGZpbGUgY2hhbmdlcyBhcmUgZGV0ZWN0ZWQKLSAgICAgICAg
d2hpbGUgcnVubmluZyBtYWtlLgotCi0gICAgICAgICogZ3lwL0dOVW1ha2VmaWxlOiBBZGRlZC4g
QSB3cmFwcGVyIHRoYXQgaW52b2tlcyB0aGUgZ2VuZXJhdGVkIG1ha2VmaWxlLgotICAgICAgICAq
IGd5cC9hdXRvZ2VuLnNoOiBBZGQgYSBzeW1saW5rIHRvIHRoZSB3cmFwcGVyIHNjcmlwdC4KLSAg
ICAgICAgKiBneXAvY29uZmlndXJlLmFjOiAiRnJlZXplIiB0aGUgVE9QTEVWRUxfRElSRUNUT1JZ
IGNvbW1hbmQtbGluZSBhcmd1bWVudCBzbyB0aGF0Ci0gICAgICAgIHJ1bi1neXAgcmVhZHMgaXQg
cHJvcGVybHkgd2hlbiBjb25maWd1cmUgaXMgcnVuIGluZGVwZW5kZW50bHkgb2YgYXV0b2dlbi5z
aC4KLSAgICAgICAgKiBneXAvcnVuLWd5cDogUHJldmVudCBnZW5lcmF0aW9uIG9mIGF1dG8tcmVn
ZW5lcmF0aW9uIHJ1bGVzIGluIGd5cC4gVGhleSBhcmUgYnVnZ3kuCi0KLTIwMTMtMDMtMjcgIFRp
bW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgotCi0gICAgICAgIEFkZCBzdXBwb3J0
IGZvciBkb2NrLXRvLXJpZ2h0IG9mIHRoZSBXZWIgSW5zcGVjdG9yIGluIHRoZSBNYWMgcG9ydC4K
LQotICAgICAgICBVbmZvcnR1bmF0ZWx5IHRoaXMgcmVxdWlyZXMgU2FmYXJpIGNoYW5nZXMsIHNv
IGl0IGlzIGRpc2FibGVkIGluIHRoZSBuaWdodGx5IGJ1aWxkcy4KLQotICAgICAgICBodHRwczov
L3dlYmtpdC5vcmcvYi8xMTMzNDEKLSAgICAgICAgcmRhcjovL3Byb2JsZW0vMTAzNjgxNTIKLQot
ICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0
b3JGcm9udGVuZENsaWVudDo6YXR0YWNoV2luZG93KToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6OnNldEF0dGFjaGVkV2luZG93V2lkdGgpOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotICAgICAgICAoSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQpOgotCi0yMDEzLTAzLTI2ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVt
Lm9yZz4KLQotICAgICAgICBBbGxvdyBTaGFkb3dDb250ZW50cyBpbiBIaXRUZXN0cyBieSBkZWZh
dWx0LgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEz
MTcxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2luc3Bl
Y3Rvcl9pbnNwZWN0X2Nvb3JkaW5hdGVzKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5jcHA6Ci0gICAgICAgIChwcmVwYXJlTW91c2VFdmVudEZvckZyYW1lKToKLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19nZXRfaGl0X3Rlc3RfcmVzdWx0KToKLQotMjAxMy0wMy0yNiAgVG9ueSBD
aGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIEF1dG9nZW5lcmF0ZSB0aGUgc2Ny
b2xsQW5pbWF0b3JFbmFibGVkIHNldHRpbmcgaW4gU2V0dGluZ3MuaW4KLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzI1MwotCi0gICAgICAgIFJldmll
d2VkIGJ5IEphbWVzIFJvYmluc29uLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6IFVwZGF0ZSBj
YWxsIHRvIFdlYkNvcmUgdG8gdXNlIHNldFNjcm9sbEFuaW1hdG9yRW5hYmxlZChib29sKS4KLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOiBVcGRhdGUgY2FsbCB0byBX
ZWJDb3JlIHRvIHVzZSBzZXRTY3JvbGxBbmltYXRvckVuYWJsZWQoYm9vbCkuCi0KLTIwMTMtMDMt
MjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFtHVEtdW1JlZ3Jlc3Npb25dIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2luc2VydF9y
b3cgcmV0dXJucyB2YWx1ZSB0aGF0IGRvZXNuJ3QgcGFzcyBXRUJLSVRfRE9NX0lTX0hUTUxfVEFC
TEVfUk9XX0VMRU1FTlQgbWFjcm8KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTExMTcxNAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNv
bi4KLQotICAgICAgICBBZGQgdGVzdCB0aGF0IGNoZWNrcyB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
ZWxlbWVudF9pbnNlcnRfcm93KCkgdG8KLSAgICAgICAgYWxzbyBwcmVwcm9kdWNlIHRoaXMgaXNz
dWUuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0ZG9tZG9jdW1lbnQuYzoKLSAgICAgICAgKHRlc3Rf
ZG9tX2RvY3VtZW50X2luc2VydF9yb3cpOgotICAgICAgICAobWFpbik6Ci0KLTIwMTMtMDMtMjIg
IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgVHJpdmlh
bCBmaXhlcyB0byB0aGUgZ3lwLWJ1aWxkIGF1dG9nZW4uc2ggc2NyaXB0LgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbiAobXJvYmluc29uKS4KLQotICAgICAgICAqIGd5cC9h
dXRvZ2VuLnNoOiBhZGQgL2Jpbi9zaCAtZSBhcyBoYXNoYmFuZywgc28gc3RyaWN0ZXIgc2hlbGxz
IHdpbGwgYmUgaGFwcHkgdG8KLSAgICAgICAgcnVuIHRoZSBzY3JpcHQ7IGRlYWwgd2l0aCBhdXRv
bWFrZSBleGl0aW5nIHdpdGggYW4gZXJyb3IgY29kZSBiZWNhdXNlIHRoZXJlIGlzIG5vCi0gICAg
ICAgIE1ha2VmaWxlLmFtIGZvciBpdCB0byB3b3JrIG9uLgotCi0yMDEzLTAzLTE5ICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBBZGQgc3Vw
cG9ydCBmb3IgYnVpbGRpbmcgdGhlIFdlYkNvcmUgYmluZGluZ3MgdG8gdGhlIGd5cCBidWlsZAot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNjM4Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgTmljbyBXZWJlci4KLQotICAgICAgICAqIGd5cC9Db25maWd1
cmF0aW9uLmd5cGkuaW46IEFkZGVkIG9wdGlvbnMgZm9yIGVuYWJsaW5nIFNWRyBhbmQgc2V0dGlu
ZyB0aGUgbG9jYXRpb24gb2YKLSAgICAgICAgdGhlIFdlYkNvcmUgZGVyaXZlZCBzb3VyY2VzLgot
ICAgICAgICAqIGd5cC9ydW4tZ3lwOiBJbmNsdWRlIHRoZSBneXAgc2NyaXB0cyBkaXJlY3Rvcnkg
b24gdGhlIFB5dGhvbiBwYXRoIGFuZCBtYWtlIHRoZSBXZWJDb3JlR1RLCi0gICAgICAgIGd5cCBm
aWxlIHRoZSBkZWZhdWx0IGZvciB0aGUgYnVpbGQuCi0KLTIwMTMtMDMtMjIgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFtneXBdIEV4cG9z
ZSBhIGZldyBtb3JlIGNvbXBpbGVyIGRlZmluZXMgZm9yIHRoZSBneXAgYnVpbGQKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzEwOQotCi0gICAgICAg
IFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICAqIGd5cC9Db25m
aWd1cmF0aW9uLmd5cGkuaW46IEV4cG9zZSB0aGUgdmVyc2lvbiBudW1iZXIgc3RyaW5nIGFuZCBk
YXRhCi0gICAgICAgIGRpcmVjdG9yeSB0byB0aGUgZ3lwIGJ1aWxkIGFzIGNvbW1hbmQtbGluZSBh
cmd1bWVudHMuCi0KLTIwMTMtMDMtMjIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFtHVEtdIFtneXBdIEZlYXR1cmUgZGVmaW5lcyBhcmUgbm90IHNw
YWNlIHNlcGFyYXRlZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTEzMTA4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZh
LgotCi0gICAgICAgICogZ3lwL2NvbmZpZ3VyZS5hYzogUHJvcGVybHkgZXhwb3J0IGZlYXR1cmUg
ZGVmaW5lcyBmb3IgZ3lwIGR1cmluZwotICAgICAgICBjb25maWd1cmUgcGhhc2UuCi0KLTIwMTMt
MDMtMjIgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KLQot
ICAgICAgICBbR1RLXSBJbmNsdWRlIHRoZSByaWdodCBHTCBoZWFkZXIgZm9yIEdMRVMyCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTMwMzQKLQotICAg
ICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgSW5jbHVkZSBHTEVT
Mi9nbDIuaCB3aGVuIHVzaW5nIEdMRVMyLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHA6Ci0KLTIwMTMtMDMtMjAgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEJ1aWxkIEFOR0xF
IHNvdXJjZXMgaW50byBhIHNlcGFyYXRlIGxpYnJhcnkgZnJvbSBsaWJXZWJDb3JlLmxhCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI3NzgKLQotICAg
ICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogQWRkIGxpYkxldmVsREIubGEgdG8gdGhlIGxpYndlYmtpdGd0ayBsaWJyYXJ5IGlmIHVz
aW5nIHRoZSBPcGVuR0wgYWNjZWxlcmF0ZWQgYmFja2VuZC4KLQotMjAxMy0wMy0xNyAgR3VzdGF2
byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBbR1RLXSBGaXggYW5k
IGltcHJvdmUgZGlzdCBob29rcyBmb3IgdHJhbnNsYXRpb25zCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI1MTkKLQotICAgICAgICBSZXZpZXdlZCBi
eSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiByZW1v
dmVkIGxlZnQtb3ZlciB0cmFuc2xhdGlvbiBmaWxlcyBmcm9tIEVYVFJBX0RJU1QKLQotMjAxMy0w
My0xNSAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIEhpZGUg
TWFpblJlc291cmNlTG9hZGVyIGZyb20gdGhlIG91dHNpZGUgd29ybGQKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTk3MQotCi0gICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpjb252
ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0gICAgICAgIChGcmFtZUxvYWRlckNsaWVudCk6Ci0K
LTIwMTMtMDMtMTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4KLQotICAg
ICAgICBSZXBsYWNlIHN0YXRpY19jYXN0cyB3aXRoIHRvKiBoZWxwZXIgZnVuY3Rpb25zLgotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDAxCi0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgU3RlcGhlbiBDaGVubmV5LgotCi0gICAgICAgIHRvKiBoZWxwZXIg
ZnVuY3Rpb25zIGFyZSBwcmVmZXJyZWQgb3ZlciBzdGF0aWNfY2FzdCBjYWxscyBzaW5jZSB0aGV5
Ci0gICAgICAgIGhlbHAgdG8gY2F0Y2ggYmFkIGNhc3RzIGVhc2lseSBvbiB0aGUgdGVzdGluZyBp
bmZyYXN0cnVjdHVyZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0
RGF0YVRvUGx1Z2luKToKLQotMjAxMy0wMy0xNCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KLQotICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAotCi0gICAgICAgIFJldmlld2VkIGJ5IFRvbnkg
Q2hhbmcuCi0KLSAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVF
bmFibGVkIGFuZAotICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgotCi0g
ICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55
bW9yZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
Lmg6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9y
Q2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgotICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0gICAgICAgIChFZGl0b3JDbGllbnQpOgotCi0yMDEzLTAz
LTE0ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmVw
bGFjZSBzdGF0aWNfY2FzdHMgd2l0aCB0byogaGVscGVyIGZ1bmN0aW9ucy4KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMjI5NgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEtlbnRhcm8gSGFyYS4KLQotICAgICAgICB0byogaGVscGVyIGZ1bmN0aW9ucyBh
cmUgcHJlZmVycmVkIG92ZXIgc3RhdGljX2Nhc3QgY2FsbHMgc2luY2UgdGhleQotICAgICAgICBo
ZWxwIHRvIGNhdGNoIGJhZCBjYXN0cyBlYXNpbHkgb24gdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1
cmUuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfcXVlcnlfdG9vbHRpcCk6Ci0KLTIwMTMtMDMtMTMgIFRvbWFzIFBvcGVsYSAg
PHRwb3BlbGFAcmVkaGF0LmNvbT4KLQotICAgICAgICBbR1RLXVtJbnRyb3NwZWN0aW9uXSBGaXgg
b2YgZ3RrIGRvYyBhbm5vdGF0aW9uIHdhcm5pbmdzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkxODIKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0
aW4gUm9iaW5zb24uCi0KLSAgICAgICAgRml4ZWQgc29tZSBndGsgZG9jIGFubm90YXRpb24gd2Fy
bmluZ3MgdGhhdCBhcHBlYXJzIGR1cmluZwotICAgICAgICBjb21waWxpbmcuIEFsc28gc29tZSB3
aGl0ZSBjaGFyYWN0ZXJzIHdlcmUgcmVtb3ZlZCBhbmQgc29tZSByZXN0eWxpbmcKLSAgICAgICAg
d2FzIGRvbmUgLSBhbGwgdGhlIGdfc2lnbmFsX25ldyBpbiB3ZWJraXQgZGlyZWN0b3J5IGhhdmUg
bm93IHRoZSBzYW1lCi0gICAgICAgIHN0eWxlLiAKLQotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dGRvd25sb2FkLmNwcDoKLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9jbGFzc19pbml0KToKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDoKLSAgICAgICAgKHdlYmtp
dF9mYXZpY29uX2RhdGFiYXNlX2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRn
ZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xv
YmFscy5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuaDoKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNlLmNwcDoKLSAgICAgICAgKHdlYmtpdF9pY29u
X2RhdGFiYXNlX2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRzZWN1cml0eW9y
aWdpbi5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmg6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmNwcDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0c3BlbGxjaGVja2VyLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRh
dHRyaWJ1dGVzLmNwcDoKLSAgICAgICAgKHdlYmtpdF92aWV3cG9ydF9hdHRyaWJ1dGVzX2NsYXNz
X2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5jcHA6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVf
Y2xhc3NfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2lu
c3BlY3Rvcl9jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VibmF2aWdhdGlv
bmFjdGlvbi5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2NsYXNz
X2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5jcHA6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNwcDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJj
ZV9jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfYXBwbHlfem9vbV9sZXZlbCk6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1cmVzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfd2luZG93X2ZlYXR1cmVzX2VxdWFsKToKLQotMjAxMy0wMy0xMyAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KLQotICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQgcmlk
IG9mIGhpZGRlblBhbmVscyBmaWx0ZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMjI1MgotCi0gICAgICAgIFJldmlld2VkIGJ5IFZzZXZvbG9kIFZs
YXNvdi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmg6Ci0gICAgICAg
IChJbnNwZWN0b3JGcm9udGVuZENsaWVudCk6Ci0KLTIwMTMtMDMtMTIgIFphbiBEb2JlcnNlayAg
PHpkb2JlcnNla0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFNldCB1cCB0aGUgbGliUGxh
dGZvcm1HdGsubGEgbGlicmFyeQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTExNzM4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29u
LgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06IFJlZmVyZW5jZSBwbGF0Zm9ybWd0a19jcHBm
bGFncyB2YXJpYWJsZSwgbGliUGxhdGZvcm1HdGsubGEgYWxvbmcgd2l0aCB3ZWJjb3JlZ3RrX2Nw
cGZsYWdzIHZhcmlhYmxlLCBsaWJXZWJDb3JlR3RrLmxhLgotICAgICAgICBBZGp1c3QgdGhlIHBh
dGggdG8gR3RrVmVyc2lvbmluZy5jLCB0aGUgZmlsZSBoYXMgbW92ZWQgdW5kZXIgU291cmNlL1Bs
YXRmb3JtLgotCi0yMDEzLTAzLTA3ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNv
bT4KLQotICAgICAgICBbR1RLXSBMaW1pdCB0aGUgc3VwcG9ydGVkIGNvbXBpbGVycyB0byBHQ0Mg
Pj0gNC43IGFuZCBDbGFuZyA+PSAzLjAKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTkzMgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZXBsYWNlIHJlZmVyZW5jZXMgdG8g
U1lNQk9MX1ZJU0lCSUxJVFlfSU5MSU5FUyBhbmQgU1lNQk9MX1ZJU0lCSUxJVFkgdmFyaWFibGVz
IHdpdGggdGhlIGFjdHVhbCBmbGFncy4KLSAgICAgICAgVGhleSBhcmUgbm93IGF2YWlsYWJsZSBi
eSBkZWZhdWx0IGR1ZSB0byB0aGUgbGltaXRlZCBzZXQgb2Ygc3VwcG9ydGVkIGNvbXBpbGVycy4K
LQotMjAxMy0wMy0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQot
ICAgICAgICBbR1RLXSBFbmFibGUgdHJhbnNsYXRpb25zIGZvciBXZWJLaXQyCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEzOTgKLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTog
bm8gbG9uZ2VyIGRpc3RyaWJ1dGUgcG8gZmlsZXMgZnJvbSBoZXJlLCB0aGV5J3ZlIG1vdmVkIHRv
Ci0gICAgICAgIFNvdXJjZXMvV2ViQ29yZS9wbGF0Zm9ybS9ndGsuCi0KLTIwMTMtMDMtMDcgIFRv
bWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4KLQotICAgICAgICBbR1RLXSBFeHBvc2Ug
IlNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIiBzZXR0aW5nIGludG8gV2ViS2l0V2ViU2V0
dGluZ3MKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MTQxNAotCi0gICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgotCi0gICAg
ICAgIFdlIHNob3VsZCBleHBvc2UgU2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24gc2V0dGlu
ZyBpbnRvCi0gICAgICAgIFdlYktpdFdlYlNldHRpbmdzLiBXaGVuIGl0IGlzIGVuYWJsZWQsIHRo
ZSBpbWFnZXMgYXJlIHNob3duIHdpdGggcmlnaHQKLSAgICAgICAgb3JpZW50YXRpb24gcmVnYXJk
aW5nIHRvIGltYWdlcyBFWElGIGRhdGEuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtp
dF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3Nwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKLQotMjAxMy0wMy0wNiAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBu
ZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5lbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1l
bnRXaXRoSWQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyNjk2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGspOgotCi0yMDEzLTAzLTA2ICBTdWRhcnNhbmEgTmFnaW5lbmkg
IDxzdWRhcnNhbmEubmFnaW5lbmlAaW50ZWwuY29tPgotCi0gICAgICAgIFtHVEtdIFJldHVybiBt
X2luc3BlY3RvckZpbGVzUGF0aCBpZiBpdCBpcyBub3QgbnVsbAotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNjMzCi0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEFkZGVkIG1pc3NpbmcgcmV0dXJuIGluIElu
c3BlY3RvckNsaWVudDo6aW5zcGVjdG9yRmlsZXNQYXRoKCkuCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0
b3JDbGllbnQ6Omluc3BlY3RvckZpbGVzUGF0aCk6Ci0KLTIwMTMtMDMtMDYgIERvbWluaXF1ZSBM
ZXVlbmJlcmdlciAgPGRpbXN0YXJAb3BlbnN1c2Uub3JnPgotCi0gICAgICAgIExpbmsgdGhlIHdl
YmtpdF90ZXN0cyB0byBYUkVOREVSX0xJQlMuCi0gICAgICAgIFRoaXMgc29sdmVzIHRoZSBsaW5r
aW5nIGZhaWx1cmUgd2hlbiBidWlsZGluZyBhZ2FpbnN0IGd0azIgbGlrZToKLSAgICAgICAgdXNy
L2xpYi9nY2MvaTU4Ni1zdXNlLWxpbnV4LzQuNy8uLi8uLi8uLi8uLi9pNTg2LXN1c2UtbGludXgv
YmluL2xkOgotICAgICAgICBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUHJvZ3JhbXNfdW5p
dHRlc3RzX3Rlc3Rjb3B5YW5kcGFzdGUtR3RrVmVyc2lvbmluZy5vOgotICAgICAgICB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvIHN5bWJvbCAnWEZyZWUnCi0gICAgICAgIC91c3IvbGliL2djYy9pNTg2
LXN1c2UtbGludXgvNC43Ly4uLy4uLy4uLy4uL2k1ODYtc3VzZS1saW51eC9iaW4vbGQ6Ci0gICAg
ICAgIG5vdGU6ICdYRnJlZScgaXMgZGVmaW5lZCBpbiBEU08gL3Vzci9saWIvbGliWDExLnNvLjYg
c28gdHJ5IGFkZGluZyBpdAotICAgICAgICB0byB0aGUgbGlua2VyIGNvbW1hbmQgbGluZQotICAg
ICAgICAvdXNyL2xpYi9saWJYMTEuc28uNjogY291bGQgbm90IHJlYWQgc3ltYm9sczogSW52YWxp
ZCBvcGVyYXRpb24KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTExNTcyCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZh
LgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06Ci0KLTIwMTMtMDMtMDMgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBVbnJldmlld2VkIHJvbGxvdXQgb2YgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9yMTQ0NTMwCi0gICAgICAgIEFzIGRlc2NyaWJlZCBpbiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMTY3IGFuZAotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDM1LCB0aGlzIHBhdGNo
IGNhdXNlZCBhCi0gICAgICAgIGxhcmdlIG51bWJlciBvZiBBU1NFUlRzIGluIGNocm9taXVtLXdp
bi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5jcHA6Ci0KLTIw
MTMtMDMtMDIgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+Ci0KLSAgICAg
ICAgTW92ZSBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8gZnJvbSBUZXN0UnVubmVy
IHRvIEludGVybmFscwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NzcyCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotCi0yMDEzLTAyLTI4ICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgotCi0gICAgICAgIFJlZHVjZSBhbW91bnQgb2YgcmVidWls
ZGluZyB3aGVuIHRvdWNoaW5nIG5ldHdvcmtpbmcgaGVhZGVycwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDM1Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBTZWlkZWwuCi0KLSAgICAgICAgQWRkaW5nIGluY2x1ZGVzIHRoYXQgYXJlIG5vdyBu
ZWNlc3NhcnkgYmVjYXVzZSBXZWJDb3JlIGhlYWRlcnMgZG9uJ3QgaGF2ZSB0aGVtCi0gICAgICAg
IGFueSBtb3JlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNw
cDoKLQotMjAxMy0wMy0wMSAgSmFzb24gQW5kZXJzc2VuICA8amFuZGVyc3NlbkBnbWFpbC5jb20+
Ci0KLSAgICAgICAgTW92ZSBtYXJrZXJUZXh0Rm9yTGlzdEl0ZW0gZnJvbSBUZXN0UnVubmVyIHRv
IEludGVybmFscwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwOTM5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91bGFpbi4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotCi0yMDEzLTAzLTAxICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBFeHBvc2UgbW9yZSBv
ZiB0aGUgY29uZmlndXJhdGlvbiBzdGVwIHRvIHRoZSBneXAgYnVpbGQKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTIxMwotCi0gICAgICAgIFJldmll
d2VkIGJ5IERpcmsgUHJhbmtlLgotCi0gICAgICAgIEV4cG9zZSBtb3JlIG9mIHRoZSBjb25maWd1
cmF0aW9uIHBoYXNlIHRvIHRoZSBneXAgYnVpbGQsIGluY2x1ZGluZyBXZWJLaXQgZmVhdHVyZXMK
LSAgICAgICAgYW5kIGJpbmFyeSBwYXRocy4KLQotICAgICAgICAqIGd5cC9Db25maWd1cmF0aW9u
Lmd5cGkuaW46IEFkZCB0ZW1wbGF0aXplZCBneXAgdmFyaWFibGVzIGZvciB0aGUgbmV3IGNvbmZp
Z3VyYXRpb24gYml0cy4KLSAgICAgICAgKiBneXAvYXV0b2dlbi5zaDogUHJvcGVybHkgbGluayB1
cCB0aGUgV2ViS2l0IGZlYXR1cmVzIHNjcmlwdC4gU28gd2UgY2FuIGFjY2VzcyBpdAotICAgICAg
ICByZWxhdGl2ZWx5IGFzIGlmIHdlIHdlcmUgYXQgdGhlIHRvcC1sZXZlbCBvZiB0aGUgc291cmNl
IGRpcmVjdG9yeS4KLSAgICAgICAgKiBneXAvY29uZmlndXJlLmFjOiBFeHBvcnQgdGhlIFdlYktp
dCBmZWF0dXJlcy4KLQotMjAxMy0wMy0wMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NDQyMiBh
bmQgcjE0NDQyNC4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTQ0
NDIyCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE0NDQyNAotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMTY3Ci0KLSAg
ICAgICAgQ2F1c2VkIG92ZXIgMjAgdGVzdHMgdG8gZmFpbCBhc3NlcnRpb24gb24gQ2hyb21pdW0g
V2luIHBvcnQgYXMKLSAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogbV9wbGF0Zm9ybVJlcXVlc3RV
cGRhdGVkIChSZXF1ZXN0ZWQgYnkKLSAgICAgICAgdG95b3NoaW0gb24gI3dlYmtpdCkuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwOgotCi0yMDEzLTAyLTI4
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgotCi0gICAgICAgIFJlZHVjZSBh
bW91bnQgb2YgcmVidWlsZGluZyB3aGVuIHRvdWNoaW5nIG5ldHdvcmtpbmcgaGVhZGVycwotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMDM1Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCi0KLSAgICAgICAgQWRkaW5nIGluY2x1ZGVz
IHRoYXQgYXJlIG5vdyBuZWNlc3NhcnkgYmVjYXVzZSBXZWJDb3JlIGhlYWRlcnMgZG9uJ3QgaGF2
ZSB0aGVtCi0gICAgICAgIGFueSBtb3JlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBv
bGljeWRlY2lzaW9uLmNwcDoKLQotMjAxMy0wMi0yNiAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUkVHUkVTU0lPTiAocjE0MzYxOSk6IENyYXNoZXMg
aW4gdGhyZWUgbGF5b3V0IHRlc3RzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTA1ODgKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEuCi0KLSAgICAgICAgR3VhcmQgYWdhaW5zdCBudWxsIG1haW4gcmVzb3VyY2UgaWRl
bnRpZmllcnMuIFRoZSBtYWluIHJlc291cmNlCi0gICAgICAgIGlkZW50aWZpZXIgY2FuIGJlIG51
bGwgYXQgdmFyaW91cyB0aW1lcyBkdXJpbmcgdGhlIGxvYWQuIEEgbnVsbAotICAgICAgICBpZGVu
dGlmaWVyIGlzIG5ldmVyIGVxdWFsIHRvIHRoZSBvbmVzIHdlIGFyZSBsb29raW5nIHRvIHJlbW92
ZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9h
ZGluZyk6IFVzZSB0aGUgbmV3IHdlYmtpdFdlYlZpZXdSZW1vdmVTdWJyZXNvdXJjZSBoZWxwZXIu
Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2Fk
aW5nKTogZGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAg
ICAod2Via2l0V2ViVmlld1JlbW92ZVN1YnJlc291cmNlKTogQWRkZWQgdGhpcyBoZWxwZXIgd2hp
Y2ggcmVtb3ZlcyBhIHN1YnJlc291cmNlLCBidXQKLSAgICAgICAgbmV2ZXIgdG91Y2hlcyB0aGUg
bWFpbiByZXNvdXJjZS4gVGhpcyBpcyBhZGFwdGVkIGZyb20gdGhlIG9sZCBtZXRob2QsIGZvciB3
aGljaCB0aGUKLSAgICAgICAgbWFpbiByZXNvdXJjZSBicmFuY2ggd2FzIGRlYWQgY29kZS4KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDogVXBkYXRlIHRoZSBtZXRob2Qg
bGlzdC4KLQotMjAxMy0wMi0yNSAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+Ci0K
LSAgICAgICAgUmVkdWNlIGFtb3VudCBvZiBjb2RlIHRoYXQgaW5jbHVkZXMgU3R5bGVQcm9wZXJ0
eVNldC5oCi0gICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzEwMTE0OT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5jcHA6Ci0KLTIwMTMtMDItMjQgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgW0dUS10gR1RLKyAyIGJ1aWxkIGJyb2tlbiBzaW5j
ZSBHVEtfQVBJX1ZFUlNJT05fMiBtb3ZlZCB0byBhdXRvY29uZmlnLmgKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDcwMgotCi0gICAgICAgIFJldmll
d2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhcHBsaWNhdGlv
bmNhY2hlLmM6IGluY2x1ZGUgYXV0b3Rvb2xzY29uZmlnLmguCi0gICAgICAgICogdGVzdHMvdGVz
dGF0ay5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzogZGl0dG8uCi0g
ICAgICAgICogdGVzdHMvdGVzdGNvbnRleHRtZW51LmM6IGRpdHRvLgotICAgICAgICAqIHRlc3Rz
L3Rlc3Rjb3B5YW5kcGFzdGUuYzogZGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdGRvbWRvY3Vt
ZW50LmM6IGRpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3Rkb21kb213aW5kb3cuYzogZGl0dG8u
Ci0gICAgICAgICogdGVzdHMvdGVzdGRvbW5vZGUuYzogZGl0dG8uCi0gICAgICAgICogdGVzdHMv
dGVzdGRvd25sb2FkLmM6IGRpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3RmYXZpY29uZGF0YWJh
c2UuYzogZGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdGdsb2JhbHMuYzogZGl0dG8uCi0gICAg
ICAgICogdGVzdHMvdGVzdGhpdHRlc3RyZXN1bHQuYzogZGl0dG8uCi0gICAgICAgICogdGVzdHMv
dGVzdGh0dHBiYWNrZW5kLmM6IGRpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3RrZXlldmVudHMu
YzogZGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdGxvYWRpbmcuYzogZGl0dG8uCi0gICAgICAg
ICogdGVzdHMvdGVzdG1pbWVoYW5kbGluZy5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0
bmV0d29ya3JlcXVlc3QuYzogZGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdG5ldHdvcmtyZXNw
b25zZS5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0LmM6
IGRpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJkYXRhc291cmNlLmM6IGRpdHRvLgotICAg
ICAgICAqIHRlc3RzL3Rlc3R3ZWJmcmFtZS5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0
d2ViaGlzdG9yeWl0ZW0uYzogZGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdHdlYmluc3BlY3Rv
ci5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2VicGx1Z2luZGF0YWJhc2UuYzogZGl0
dG8uCi0gICAgICAgICogdGVzdHMvdGVzdHdlYnJlc291cmNlLmM6IGRpdHRvLgotICAgICAgICAq
IHRlc3RzL3Rlc3R3ZWJzZXR0aW5ncy5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vi
dmlldy5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2luZG93LmM6IGRpdHRvLgotCi0y
MDEzLTAyLTIzICBKYXNvbiBBbmRlcnNzZW4gIDxqYW5kZXJzc2VuQGdtYWlsLmNvbT4KLQotICAg
ICAgICBNb3ZlIHNldEF1dG9maWxsZWQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDUyMQotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4uCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrKToKLQotMjAxMy0wMi0yMiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGln
YWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gRXhwb3NlIGFsbCBkZXBlbmRlbmNpZXMgdG8gdGhl
IGd5cCBidWlsZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEwNDk4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBQcmFua2UuCi0KLSAgICAgICAg
KiBneXAvQ29uZmlndXJhdGlvbi5neXBpLmluOiBBZGQgdGhlIG1pc3NpbmcgY29uZmlndXJhdGlv
biBjZmxhZ3MgaGVyZS4KLSAgICAgICAgKiBneXAvRGVwZW5kZW5jaWVzLmd5cDogQWRkIHRhcmdl
dHMgZm9yIGFsbCBtaXNzaW5nIGRlcGVuZGVuY2llcy4KLQotMjAxMy0wMi0yMSAgR2VvcmdlIE1j
Q29sbGlzdGVyICA8Z2VvcmdlLm1jY29sbGlzdGVyQGdtYWlsLmNvbT4KLQotICAgICAgICBbR1RL
XSBSZW1vdmUgc3VicmVzb3VyY2UgbGVha3MgZnJvbSBXZWJLaXQxIGFuZCBXZWJLaXQyCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5NjAKLQotICAg
ICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcpOiBSZW1vdmUgcmVzb3VyY2UKLSAg
ICAgICAgaWYgaXQgaXNuJ3QgdGhlIG1haW4gcmVzb3VyY2UgdG8gcHJldmVudCBsZWFrLgotICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyk6
IERpdHRvCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAoY2xl
YW51cFRlbXBvcmFyaWx5Q2FjaGVkU3VicmVzb3VyY2VzKTogQWRkZWQgdG8gY2xlYW51cCBzdWJy
ZXNvdXJjZXMuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJlc291cmNlcyk6IFVz
ZSBnZXRTdWJyZXNvdXJjZXMgZnJvbSB0aGUKLSAgICAgICAgZG9jdW1lbnRMb2FkZXIgdG8gcHJv
dmlkZSBzdWJyZXNvdXJjZXMgc2luY2UgcmVzb3VyY2VzIHdpbGwgYmUgcmVtb3ZlZAotICAgICAg
ICBmcm9tIHdlYnZpZXcgYWZ0ZXIgbG9hZGluZy4KLQotMjAxMy0wMi0yMSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4gRml4
IG1ha2UgZGlzdGNoZWNrLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZCAtREJVSUxE
SU5HX1dFQktJVCBmbGFncyB0byBpbnRyb3NwZWN0aW9uCi0gICAgICAgIHNjYW5uZXIuCi0KLTIw
MTMtMDItMTUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFtHVEtdIFNwcmVhZCB0aGUgZ3lwIGJ1aWxkIGZpbGVzIHRocm91Z2hvdXQgdGhlIHRyZWUK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTk2MAot
Ci0gICAgICAgIFJldmlld2VkIGJ5IERpcmsgUHJhbmtlLgotCi0gICAgICAgICogZ3lwL0NvbmZp
Z3VyYXRpb24uZ3lwaS5pbjogUmVtb3ZlIHRoZSAnU291cmNlJywgc2luY2Ugbm93IGl0IGNhbm5v
dCBiZSBzaGFyZWQuCi0gICAgICAgICogZ3lwL3J1bi1neXA6IFVwZGF0ZSB0aGUgcGF0aCB0byB0
aGUgSmF2YVNjcmlwdENvcmUgZ3lwZmlsZS4KLQotMjAxMy0wMi0xNSAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcGFydHMgb2YgcjE0MjczMS4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTQyNzMxCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDk2NzIKLQotICAgICAgICBUaGlzIHBhdGNoIGJyb2tlIHRoZSBHVEsrIGd5cCBidWls
ZC4gUm9sbCBvdXQgdGhlIGNoYW5nZXMgdGhlcmUsCi0gICAgICAgIHNpbmNlIHRoZXkgd2VyZSBh
Y3R1YWxseSB1bm5lY2Vzc2FyeS4KLQotICAgICAgICAqIGd5cC9Db25maWd1cmF0aW9uLmd5cGku
aW46Ci0gICAgICAgICogZ3lwL0RlcGVuZGVuY2llcy5neXA6Ci0gICAgICAgICogZ3lwL0phdmFT
Y3JpcHRDb3JlLmd5cDoKLSAgICAgICAgKiBneXAvV1RGLmd5cDoKLQotMjAxMy0wMi0xMyAgQWxs
YW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KLQotICAgICAgICBb
UXRdIHdpbmRvdy5vcGVuIHBhc3NlcyBoZWlnaHQgYW5kIHdpZHRoIHBhcmFtZXRlcnMgZXZlbiBp
ZiBub3QgZGVmaW5lZCBpbiBhIHBhZ2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNzcwNQotCi0gICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuLgotCi0gICAgICAgIERvIG5vdCByZXNpemUgd2luZG93IHdoZW4gZGVm
YXVsdCBzaXplIGlzIHJlcXVlc3RlZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0V2luZG93
UmVjdCk6Ci0KLTIwMTMtMDItMTMgIEFuZHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5v
cmc+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1bSBneXAtZmlsZSBjbGVhbnVwIGFmdGVy
IGdsaWIgYmFja2VuZCByZW1vdmFsLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NjcyCi0KLSAgICAgICAgUmVtb3ZlZCByZWZlcmVuY2VzIHRvIEdM
aWIgdW5pY29kZSBiYWNrZW5kOgotCi0gICAgICAgICogZ3lwL0NvbmZpZ3VyYXRpb24uZ3lwaS5p
bjoKLSAgICAgICAgKiBneXAvRGVwZW5kZW5jaWVzLmd5cDoKLSAgICAgICAgKiBneXAvSmF2YVNj
cmlwdENvcmUuZ3lwOgotICAgICAgICAqIGd5cC9XVEYuZ3lwOgotCi0yMDEzLTAyLTEyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICAyMDEzLTAyLTEw
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RL
XSBDb25uZWN0IHRoZSBneXAgYnVpbGQgdG8gYXV0b2NvbmYKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM2MAotCi0gICAgICAgIFJldmlld2VkIGJ5
IERpcmsgUHJhbmtlLgotCi0gICAgICAgIE1vdmUgQ29uZmlndXJhdGlvbi5neXBpIHRvIENvbmZp
Z3VyYXRpb24uZ3lwaS5pbiBhbmQgYWxsb3cgYXV0b2NvbmYgdG8KLSAgICAgICAgZmlsbCBpbiB2
YXJpYWJsZXMgZHVyaW5nIGEgY29uZmlndXJhdGlvbiBwaGFzZS4gQWxzbyBhZGQgc29tZSBzY3Jp
cHRzCi0gICAgICAgIHRvIHN1cHBvcnQgY29ubmVjdGluZyBhdXRvY29uZiB1cCB0byB0aGUgZ3lw
IGJ1aWxkLiBUaGlzIGFsbG93cyB1cwotICAgICAgICB0byBoYXZlIGEgdmVyeSBhdXRvdG9vbHMt
ZXNxdWUgZXhwZXJpZW5jZS4KLQotICAgICAgICAqIGd5cC9Db25maWd1cmF0aW9uLmd5cGk6IFJl
bW92ZWQuCi0gICAgICAgICogZ3lwL0NvbmZpZ3VyYXRpb24uZ3lwaS5pbjogQWRkZWQuIEZsZXNo
ZWQgb3V0IENvbmZpZ3VyYXRpb24uZ3lwaSB0byBpbmNsdWRlCi0gICAgICAgIGRlcGVuZGVuY3kg
Q0ZMQUdTIGFuZCBMSUJTIGRpcmVjdGx5IGZyb20gY29uZmlndXJlLiBEdWUgdG8gdGhlIHdheSB3
ZSBhcmUKLSAgICAgICAgZ2VuZXJhdGluZyB0aGUgZ3lwIGJ1aWxkIG5vdywgd2UgYWxzbyBuZWVk
IHRvIGluY2x1ZGUgYW4gYWJzb2x1dGUgcGF0aCB0bwotICAgICAgICB0aGUgYnVpbGQgZGlyZWN0
b3J5LiBGaXhpbmcgYnVncyBpbiBneXAgc2hvdWxkIGFsbG93IHVzIHRvIGF2b2lkIHRoaXMgaW4g
dGhlCi0gICAgICAgIGZ1dHVyZS4KLSAgICAgICAgKiBneXAvRGVwZW5kZW5jaWVzLmd5cDogQWRk
ZWQgdGhpcyBmaWxlIHdoaWNoIGhvbGRzIGV4dGVybmFsIGRlcGVuZGVuY3kgdGFyZ2V0cy4KLSAg
ICAgICAgV2UgY291bGQgY29uc2lkZXIgYXV0by1nZW5lcmF0aW5nIHRoaXMgYXQgc29tZSBwb2lu
dC4KLSAgICAgICAgKiBneXAvSmF2YVNjcmlwdENvcmUuZ3lwOiBSZW1vdmUgcmVmZXJlbmNlcyB0
byB0aGUgb2xkIENvbmZpZ3VyYXRpb24uZ3lwaS4KLSAgICAgICAgSXQncyBub3cgaW5jbHVkZWQg
dmlhIHRoZSBjb21tYW5kLWxpbmUgLUkgZmxhZy4gVXBkYXRlIHRvIHN1cHBvcnQgdGhlIG5ldwot
ICAgICAgICBzL2RlZmF1bHQvZ2xvYmFsL2cgdGVybWlub2xvZ3kgZm9yIHZhcmlhYmxlcy4KLSAg
ICAgICAgKiBneXAvV1RGLmd5cDogUmVtb3ZlIHRoZSBkZXBlbmRlbmN5IHRhcmdldHMgYXMgdGhp
cyBpcyBub3cgaGFuZGxlZCBlbnRpcmVseQotICAgICAgICBieSBhdXRvY29uZi4KLSAgICAgICAg
KiBneXAvYXV0b2dlbi5zaDogQWRkZWQuIFNldCB1cCB0aGUgYnVpbGQgZGlyZWN0b3J5IGFuZCBr
aWNrIG9mZiBhdXRvY29uZi4KLSAgICAgICAgKiBneXAvY29uZmlndXJlLmFjOiBBZGRlZC4gQW4g
YXV0b2NvbmYgYnVpbGQgdGhhdCByZS11c2VzIG11Y2ggb2Ygb3VyCi0gICAgICAgIGV4aXN0aW5n
IGF1dG9jb25mIHNldHVwLgotICAgICAgICAqIGd5cC9ydW4tZ3lwOiBBZGRlZC4gU2NyaXB0IGZv
ciBpbnZva2luZyBneXAgZm9yIG91dC1vZi10cmVlIGJ1aWxkcy4KLQotMjAxMy0wMi0xMiAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KLQotICAgICAgICBbVGV4TWFw
XSBBcHBseSBmcmFtZXMtcGVyLXNlY29uZCBkZWJ1ZyBjb3VudGVyIHRvIFdLMS4KLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTU0MAotCi0gICAgICAg
IFJldmlld2VkIGJ5IE5vYW0gUm9zZW50aGFsLgotCi0gICAgICAgIE1ha2UgQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQgdXNlIFRleHR1cmVNYXBwZXJGUFNDb3VudGVyLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmNvbXBvc2l0
ZUxheWVyc1RvQ29udGV4dCk6Ci0KLTIwMTMtMDItMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+Ci0KLSAgICAgICAgRGlzYWJsZSBkZWxldGUgYnV0dG9uIGNvbnRyb2xsZXIgb24g
bm9uLU1hYyBwb3J0cyBhbmQgZGVsZXRlIEVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUlu
dGVyZmFjZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NTM0Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdCk6
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0gICAgICAgIChF
ZGl0b3JDbGllbnQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLQotMjAxMy0wMi0xMSAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgS2lsbCBUZXN0UnVubmVy
OjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbDsgaW1wbGVtZW50IHRoZSBmZWF0dXJlIHdpdGggSW50
ZXJuYWxTZXR0aW5ncwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5MzQ5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotCi0yMDEzLTAyLTEwICBKYWUgSHl1biBQYXJrICA8
amFlLnBhcmswOEBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmVuYW1lIEVOQUJMRShHTElCX1NVUFBP
UlQpIHRvIFVTRShHTElCKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0MjY2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4K
LQotICAgICAgICBVc2luZyBVU0UoR0xJQikgaW5zdGVhZCBvZiBFTkFCTEUoR0xJQl9TVVBQT1JU
KSBpcyBtb3JlIGNvbnNpc3RlbnQgd2l0aAotICAgICAgICB0aGUgZXhpc3RpbmcgbWFjcm8gbmFt
aW5nIGNvbnZlbnRpb25zLgotCi0gICAgICAgIEZyb20gUGxhdGZvcm0uaAotICAgICAgICBVU0Uo
KSAtIHVzZSBhIHBhcnRpY3VsYXIgdGhpcmQtcGFydHkgbGlicmFyeSBvciBvcHRpb25hbCBPUyBz
ZXJ2aWNlCi0gICAgICAgIEVOQUJMRSgpIC0gdHVybiBvbiBhIHNwZWNpZmljIGZlYXR1cmUgb2Yg
V2ViS2l0Ci0KLSAgICAgICAgKiBneXAvQ29uZmlndXJhdGlvbi5neXBpOgotCi0yMDEzLTAyLTA4
ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgotCi0gICAgICAgIE1vdmUg
d29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMzkKLQot
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGspOgotCi0yMDEzLTAyLTA4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBBZGQgYW4gZXhwZXJpbWVudGFsIGd5cCBidWlsZAot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDAzCi0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIEFk
ZCBhbiBleHBlcmltZW50YWwgZ3lwIGJ1aWxkIGZvciBXZWJLaXRHVEsrLiBDdXJyZW50bHkgb25s
eSBsaWJqYXZhc2NyaXB0Y29yZWd0aywKLSAgICAgICAganNjLCBhbmQgbWluaWRvbSBidWlsZCAo
YW5kIG9ubHkgb24gcGxhdGZvcm1zIGZvciB0aGF0IHN1cHBvcnQgYmFzaCkuIFRvIHVzZSB0aGUK
LSAgICAgICAgYnVpbGQgc2ltcGx5IHJ1bjoKLQotICAgICAgICAkIGd5cCAtLWdlbmVyYXRvci1v
dXRwdXQ9YnVpbGQgLS1kZXB0aD0uIFNvdXJjZS9XZWJLaXQvZ3RrL2d5cC9KYXZhU2NyaXB0Q29y
ZS5neXAKLQotICAgICAgICBUaGVuIGVudGVyIHRoZSBidWlsZCBkaXJlY3RvcnkgYW5kIHJ1biBt
YWtlLgotCi0gICAgICAgICogZ3lwL0NvbmZpZ3VyYXRpb24uZ3lwaTogQWRkZWQuCi0gICAgICAg
ICogZ3lwL0phdmFTY3JpcHRDb3JlLmd5cDogQWRkZWQuCi0gICAgICAgICogZ3lwL1dURi5neXA6
IEFkZGVkLgotICAgICAgICAqIGd5cC9nZW5lcmF0ZS1kZXJpdmVkLXNvdXJjZXMuc2g6IEFkZGVk
LgotCi0yMDEzLTAyLTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
LQotICAgICAgICBbR1RLXSBDbGVhbnVwIGNvbW1hbmQtbGluZSBkZWZpbmVzCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkyMTMKLQotICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogUmVtb3Zl
IHJlZmVyZW5jZXMgdG8gZmxhZ3MgdGhhdCBhcmUgbm93IHByb3ZpZGVkCi0gICAgICAgIGJ5IGF1
dG90b29sc2NvbmZpZy5oCi0KLTIwMTMtMDItMDcgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFp
bkBhcHBsZS5jb20+Ci0KLSAgICAgICAgTW92ZSBwYXVzZUFuaW1hdGlvbi9wYXVzZVRyYW5zaXRp
b24gZnJvbSBUZXN0UnVubmVyIHRvIEludGVybmFscwotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MTA3Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
ZXJzIENhcmxzc29uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuaDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0KLTIwMTMt
MDItMDcgIENoYW5nU2VvayBPaCAgPHNoaXZhbWlkb3dAZ21haWwuY29tPgotCi0gICAgICAgIFtH
VEtdW0FDXSBJbXBsZW1lbnQgb3BhY2l0eSBhbmltYXRpb24gd2l0aCBjbHV0dGVyIGFjIGJhY2tl
bmQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODk2
MQotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAg
ICBBZGQgQW5pbWF0aW9uVHJpZ2dlciBmb3IgYWMgY29tcG9zaXRpbmcuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnQ6OmFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKToKLQotMjAxMy0wMi0wNSAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVXBkYXRlIHRo
ZSBORVdTIGFuZCBjb25maWd1cmF0aW9uIGluIHByZXBhcmF0aW9uIGZvciAxLjExLjUuCi0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KLQotICAgICAgICAqIE5FV1M6Ci0K
LTIwMTMtMDItMDQgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+Ci0KLSAg
ICAgICAgS2lsbCBzdXNwZW5kQW5pbWF0aW9uKCksIHJlc3VtZUFuaW1hdGlvbigpIGFuZCBudW1i
ZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBmcm9tIERSVC9XVFI7IHVzZSBJbnRlcm5hbHMKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODc0MQotCi0gICAg
ICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrKToKLQotMjAxMy0wMi0wNCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9y
Zz4KLQotICAgICAgICBNYWRlIHRoZSBkb2N1bWVudGF0aW9uIG9uIHRoZSBjb25maXJtZWQgYXJn
dW1lbnQgZm9yIHRoZQotICAgICAgICBXZWJWaWV3OjpzY3JpcHQtY29uZmlybSBzaWduYWwgY2xl
YXJlciBhYm91dCBpdHMgdHlwZS4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6Ci0KLTIwMTMtMDItMDQgIEJhbGF6cyBLZWxlbWVuICA8
a2JhbGF6c0B3ZWJraXQub3JnPgotCi0gICAgICAgIFtTb3VwXSBXcmFwIFNvdXBTZXNzaW9uIGJ5
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA4NjE1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3Nr
dXJ5YWtvdi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpz
dG9yYWdlU2Vzc2lvbik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEd0ay5oOgotICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayk6Ci0KLTIw
MTMtMDItMDMgIEt3YW5nWW9uZyBDaG9pICA8a3kwLmNob2lAc2Ftc3VuZy5jb20+Ci0KLSAgICAg
ICAgRml4IGJ1aWxkIHdhcm5pbmcgYWZ0ZXIgcjE0MTQ3MwotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NzgyCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
S2VudGFybyBIYXJhLgotCi0gICAgICAgIEZpeCAtV3VudXNlZC1wYXJhbWV0ZXIgYnVpbGQgd2Fy
bmluZy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0g
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Z2V0Q2xpZW50UGFzdGVib2FyZERhdGFGb3JS
YW5nZSk6Ci0KLTIwMTMtMDItMDEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgotCi0gICAgICAgIFtHVEtdW0dTdHJlYW1lcl0gRnVsbHNjcmVlblZpZGVvQ29udHJvbGxl
ckd0ayBpbXBsZW1lbnRhdGlvbgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA3Mzk4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhLgotCi0gICAgICAgIFJlbW92ZSB0aGUgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlciBh
cyBpdCBtb3ZlZCB0bwotICAgICAgICBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyR1N0cmVhbWVy
IGFuZCBpdHMgR3RrIHN1YmNsYXNzIGluCi0gICAgICAgIFdlYkNvcmUuIEhvb2sgaW4gTkFUSVZF
X0ZVTExTQ1JFRU5fVklERU8gaW4gdGhlIENocm9tZUNsaWVudCBpbgotICAgICAgICB0aGUgdHdv
IHBvc3NpYmxlIHNjZW5hcmlvcywgd2V0aGVyIEZVTExTQ1JFRU5fQVBJIGlzIGVuYWJsZWQgb3Ig
bm90LgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06IFJlbW92ZSBGdWxsc2NyZWVuVmlkZW9D
b250cm9sbGVyLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmVudGVy
RnVsbHNjcmVlbkZvck5vZGUpOiBIb29rCi0gICAgICAgIE5BVElWRV9GVUxMU0NSRUVOX1ZJREVP
IHN1cHBvcnQuCi0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5G
b3JOb2RlKTogRGl0dG8KLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjplbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KTogRGl0dG8KLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpl
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0bwotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5oOgotICAgICAgICAoQ2hyb21lQ2xpZW50KToKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcDogUmVtb3ZlZC4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmg6IFJlbW92
ZWQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBSZW1vdmUgRnVsbHNjcmVl
blZpZGVvQ29udHJvbGxlciBzdXBwb3J0LgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
cHJpdmF0ZS5oOiBEaXR0bwotCi0yMDEzLTAxLTMxICBBdXJpbWFzIExpdXRpa2FzICA8YXVyaW1h
c0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgRWRpdG9yOjptX2NvbXBvc2l0aW9uTm9kZSBub3Qg
dXBkYXRlZCBvbiBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZSgpCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc3MzcKLQotICAgICAgICBSZXZpZXdl
ZCBieSBSeW9zdWtlIE5pd2EuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJlc3BvbmRUb0NoYW5n
ZWRTZWxlY3Rpb24pOgotICAgICAgICAgICAgQWRkaW5nIGEgY2FsbCB0byB0aGUgbmV3bHkgcmVm
YWN0b3JlZCBFZGl0b3IgbWV0aG9kLgotCi0yMDEzLTAxLTMxICBTaGVyaWZmIEJvdCAgPHdlYmtp
dC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTQxNDc5LgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xNDE0
NzkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODU2
NAotCi0gICAgICAgIGJyZWFrcyBjaHJvbWl1bSB0ZXN0IChSZXF1ZXN0ZWQgYnkgbW9ycml0YSBv
biAjd2Via2l0KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVj
dGlvbik6Ci0KLTIwMTMtMDEtMzEgIEF1cmltYXMgTGl1dGlrYXMgIDxhdXJpbWFzQGNocm9taXVt
Lm9yZz4KLQotICAgICAgICBFZGl0b3I6Om1fY29tcG9zaXRpb25Ob2RlIG5vdCB1cGRhdGVkIG9u
IEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKCkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzczNwotCi0gICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1
a2UgTml3YS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlv
bik6Ci0gICAgICAgICAgICBBZGRpbmcgYSBjYWxsIHRvIHRoZSBuZXdseSByZWZhY3RvcmVkIEVk
aXRvciBtZXRob2QuCi0KLTIwMTMtMDEtMzEgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxl
LmNvbT4KLQotICAgICAgICBXZWJLaXQyOiBwcm92aWRlIG5ldyBidW5kbGUgQVBJcyB0byBhbGxv
dyBidW5kbGUgY2xpZW50cyB0byBiZSBub3RpZmllZCBvZiBwYXN0ZWJvYXJkIGFjY2Vzcy4KLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODM5Ni4KLSAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyOTIwNDYxPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFs
ZXhleSBQcm9za3VyeWFrb3YuCi0KLSAgICAgICAgQWRkcyBzdHViIGltcGxlbWVudGF0aW9uIGZv
ciBXZWJLaXQgb2YgdGhlIG5ldyBFZGl0b3JDbGllbnQgbWV0aG9kcy4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudDo6d2lsbFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKToKLSAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpnZXRDbGllbnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKToKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLQotMjAxMy0wMS0zMCAgSHVh
bmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KLQotICAgICAgICBbVGV4TWFw
XSBSZW1vdmUgR3JhcGhpY3NMYXllciBpbiBUZXh0dXJlTWFwcGVyTGF5ZXIuCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDcwNzMKLQotICAgICAgICBS
ZXZpZXdlZCBieSBOb2FtIFJvc2VudGhhbC4KLQotICAgICAgICBJbmNsdWRlIEdyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyLmggdG8gdXNlIHRvVGV4dHVyZU1hcHBlckxheWVyKCkuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoK
LQotMjAxMy0wMS0yOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcu
Y29tPgotCi0gICAgICAgIFtHVEtdIE1pc3NpbmcgYnVpbGQgZmxhZ3Mgd2hlbiBidWlsZGluZyB3
aXRoIEhhcmZidXp6Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDgxNzQKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAg
ICAgICAgQWRkIEZSRUVUWVBFX0NGTEFHUyBhbmQgRlJFRVRZUEVfTElCUyB0byBtYWtlZmlsZXMg
c28gLWxoYXJmYnV6egotICAgICAgICBwYXJhbWV0ZXIgd2lsbCBiZSBhZGRlZCB0byBsaW5raW5n
IGxpbmVzIHdoZW4gbmVlZGVkLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZGVkIEZS
RUVUWVBFX0NGTEFHUyBhbmQgRlJFRVRZUEVfTElCUy4KLQotMjAxMy0wMS0yOCAgSHVhbmcgRG9u
Z3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KLQotICAgICAgICBbVGV4TWFwXSBFbmFi
bGUgZGVidWcgYm9yZGVycyBhbmQgcmVwYWludCBjb3VudGVyIHZpYSBTZXR0aW5ncy4KLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzE5OAotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4uCi0KLSAgICAgICAgSWYgV0VCS0lUX1NI
T1dfQ09NUE9TSVRJTkdfREVCVUdfVklTVUFMUyBpcyBzZXQgdG8gMSwgc2V0Ci0gICAgICAgIHNo
b3dEZWJ1Z0JvcmRlcnMgYW5kIHNob3dSZXBhaW50Q291bnRlciBpbiBTZXR0aW5ncyB0byB0cnVl
LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6Ci0KLTIwMTMtMDEtMjUgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBpbnRlbC5jb20+Ci0KLSAgICAgICAgW0dUS11bQUNdIFVzZSBuZXcgQ2x1dHRlciBB
UElzIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBBUElzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3MzYKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgVXNlIGNsdXR0ZXJfYWN0b3Jfc2V0X2JhY2tn
cm91bmRfY29sb3IgaW5zdGVhZCBvZiBjbHV0dGVyX3N0YWdlX3NldF9jb2xvci4KLSAgICAgICAg
VXNlIGNsdXR0ZXJfYWN0b3JfYWRkX2NoaWxkIGluc3RlYWQgb2YgY2x1dHRlcl9jb250YWluZXJf
YWRkX2FjdG9yLgotICAgICAgICBSZW1vdmUgY2x1dHRlcl9hY3Rvcl9zaG93X2FsbCBiZWNhdXNl
IEFjdG9ycyBhcmUgdmlzaWJsZSBieSBkZWZhdWx0LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnNldFJvb3RDb21wb3NpdGluZ0xh
eWVyKToKLQotMjAxMy0wMS0yNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgW0dUS10gTERGTEFHUyBhcmUgYmVpbmcgaW5jb3JyZWN0bHkgdXNlZCBh
dCBjb21waWxlIHRpbWUgKHJhdGhlciB0aGFuIGxpbmtpbmcpCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA2MTYKLQotICAgICAgICBVbnJldmlld2Vk
LCBzaW5jZSB0aGlzIGlzIGp1c3QgYSBidWlsZCBmaXguCi0KLSAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogdXNlIFBBQ0tBR0VfQ0ZMQUdTIGluc3RlYWQgb2YgUEFDS0FHRV9MSUJTIHdoZW4gYXBw
ZW5kaW5nIHBrZy1jb25maWcKLSAgICAgICAgdmFyaWFibGVzIHRvIGJ1aWxkIHRhcmdldCBfQ0ZM
QUdTLgotCi0yMDEzLTAxLTI0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5j
b20+Ci0KLSAgICAgICAgT2JqZWN0aXZlLUMgQVBJOiBSZW5hbWUgSlNWYWx1ZS5oL0FQSUpTVmFs
dWUuaCB0byBKU0NKU1ZhbHVlLmgvSlNWYWx1ZS5oCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDczMjcKLQotICAgICAgICBSZXZpZXdlZCBieSBGaWxp
cCBQaXpsby4KLQotICAgICAgICBXZSdyZSByZW5hbWluZyB0aGVzZSB0d28gZmlsZXMsIHNvIHdl
IGhhdmUgdG8gcmVwbGFjZSB0aGUgbmFtZXMgZXZlcnl3aGVyZS4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0KLTIwMTMtMDEtMjMgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10g
QXZvaWQgcmVzZXQgdGl0bGUgZm9yIG5hdmlnYXRpb24gd2l0aGluIHRoZSBwYWdlCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY5MDgKLQotICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZE5hdmlnYXRlV2l0aGluUGFnZSk6IENhbGwKLSAgICAgICAgZGlz
cGF0Y2hEaWRDb21taXRMb2FkIHdpdGggdHJ1ZSBhcyBwYXJhbS4KLSAgICAgICAgKFdlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6IFRoZSBtZXRob2QgaGFz
IGJlZW4KLSAgICAgICAgb3ZlcmxvYWRlZC4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gKHdp
dGhvdXQgcGFyYW1zKSBzaW1wbHkgY2FsbHMKLSAgICAgICAgZGlzcGF0Y2hEaWRDb21taXRMb2Fk
IHdpdGggZmFsc2UuIFRoZSBuZXcgcHJpdmF0ZSBtZXRob2Qgd2l0aAotICAgICAgICBpc05hdmln
YXRpbmdXaXRoaW5QYWdlIGFzIHBhcmFtIHdpbGwgYXZvaWQgdG8gcmVzZXQgdGhlIHRpdGxlIGZv
cgotICAgICAgICBuYXZpZ2F0aW9uIHdpdGhpbiB0aGUgcGFnZS4KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotICAgICAgICAoRnJhbWVMb2FkZXJDbGll
bnQpOiBBZGQgbmV3IHByaXZhdGUgbWV0aG9kIGRpc3BhdGNoRGlkQ29tbWl0TG9hZCB3aXRoIGEK
LSAgICAgICAgYm9vbGVhbiBwYXJhbWV0ZXIgdG8ga25vdyBpZiBpdCBpcyBuYXZpZ2F0aW5nIHdp
dGhpbmcgdGhlIHNhbWUgcGFnZSBvcgotICAgICAgICBub3QuCi0KLTIwMTMtMDEtMjIgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KLQotICAgICAgICBVc2UgYSBwbGF0Zm9y
b20gc3RyYXRlZ3kgZm9yIGxvY2FsIHN0b3JhZ2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzYwMAotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZHJl
YXMgS2xpbmcuCi0KLSAgICAgICAgVXBkYXRlIGZvciBuZXcgc3RvcmFnZSBzdHJhdGVneS4KLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0d0ay5jcHA6Ci0gICAg
ICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmNyZWF0ZVN0b3JhZ2VTdHJhdGVneSk6Ci0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmg6Ci0gICAgICAgIChQ
bGF0Zm9ybVN0cmF0ZWdpZXNHdGspOgotCi0yMDEzLTAxLTIyICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEFkZCBsaXN0ZW5lciBmb3Ig
ZGlyZWN0aW9uLWNoYW5nZWQgc2lnbmFsIGluIFdlYktpdFdlYlZpZXcKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzEzMQotCi0gICAgICAgIFJldmll
d2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6IEFkZCBsaXN0ZW5lciBmb3Ig
ZGlyZWN0aW9uLWNoYW5nZWQgc2lnbmFsLgotICAgICAgICAod2Via2l0V2ViVmlld0RpcmVjdGlv
bkNoYW5nZWQpOiBJbXBsZW1lbnQgbGlzdGVuZXIgdXNpbmcKLSAgICAgICAgRWRpdG9yOjpzZXRC
YXNlV3JpdGluZ0RpcmVjdGlvbigpLgotCi0yMDEzLTAxLTIxICBPbGVnIFNtaXJub3YgIDxvbGVn
LnNtaXJub3ZAbGdlLmNvbT4KLQotICAgICAgICBbR3RrXSBEaXNwYXRjaGluZyBldmVudCBsaXN0
IGludG8gaW5wdXQgZWxlbWVudC4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNzI1OQotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNv
bi4KLQotICAgICAgICBDbGVhciBwZW5kaW5nIGNvbW1hbmQgbGlzdCBhZnRlciBkaXNwYXRjaGlu
ZyBldmVudHMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgot
Ci0yMDEzLTAxLTE4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQot
ICAgICAgICBbR1RLXSBBZGQgcHJvcGVydHkgZm9yIEluZGV4ZWREQiBkYXRhYmFzZSBwYXRoIHRv
IFdlYktpdEdUSysKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwNjEzNgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4K
LQotICAgICAgICBNYWtlIHRoZSB3ZWIgZGF0YWJhc2UgZGlyZWN0b3J5IGFmZmVjdCBib3RoIHRo
ZSBsZWdhY3kgU1FMaXRlIHdlYgotICAgICAgICBkYXRhYmFzZSBBUEkgYW5kIHRoZSBuZXdlciBp
bmRleGVkIGRhdGFiYXNlIEFQSS4gVGhpcyB3aWxsIGFsbG93IHVzCi0gICAgICAgIHRvIHJ1biBJ
REIgdGVzdHMgaW4gV2ViS2l0MS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRnbG9iYWxzLmNw
cDoKLSAgICAgICAgKHdlYmtpdFBhZ2VHcm91cE5hbWUpOiBBZGRlZCB0aGlzIGhlbHBlciB0byBn
ZXQgdGhlIGRlZmF1bHQgcGFnZQotICAgICAgICBncm91cCBuYW1lLgotICAgICAgICAqIHdlYmtp
dC93ZWJraXRnbG9iYWxzcHJpdmF0ZS5oOiBBZGRlZCBhIGRlY2xhcmF0aW9uIGZvciB0aGUgaGVs
cGVyLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5jcHA6Ci0gICAgICAgICh3
ZWJraXRfZ2V0X3dlYl9kYXRhYmFzZV9kaXJlY3RvcnlfcGF0aCk6IEp1c3QgcmV0dXJuIHRoZSBj
YWNoZWQgdmFsdWUuCi0gICAgICAgIFRoaXMgaXMgYWx3YXlzIHNldCBieSB3ZWJraXRJbml0Lgot
ICAgICAgICAod2Via2l0X3NldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgpOiBTZXQgYm90
aCB0aGUgSURCIGFuZCBsZWdhY3kKLSAgICAgICAgZGF0YWJhc2UgcGF0aHMuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQp
OiBVc2UgdGhlIG5ldyBwYWdlIGdyb3VwIG5hbWUgaGVscGVyLgotCi0yMDEzLTAxLTE4ICBTZW9r
anUgS3dvbiAgPHNlb2tqdS5rd29uQGdtYWlsLmNvbT4KLQotICAgICAgICBBZGQgZXhwbGljaXQg
a2V5d29yZCB0byBjb25zdHJ1Y3RvcnMgaW4gcGxhdGZvcm0tc3BlY2lmaWMgSW5zcGVjdG9yQ2xp
ZW50Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDcy
NTUKLQotICAgICAgICBSZXZpZXdlZCBieSBLZW50YXJvIEhhcmEuCi0KLSAgICAgICAgQWRkIGV4
cGxpY2l0IGtleXdvcmQgdG8gY29uc3RydWN0b3JzIHRoYXQgdGFrZSBvbmUgYXJndW1lbnQKLSAg
ICAgICAgaW4gcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgSW5zcGVjdG9yQ2xp
ZW50LgotICAgICAgICBBbmQgZml4IHNvbWUgY29kaW5nIHN0eWxlLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmg6Ci0gICAgICAgIChXZWJDb3JlKToKLSAg
ICAgICAgKFdlYktpdCk6Ci0gICAgICAgIChJbnNwZWN0b3JDbGllbnQpOgotICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JDbGllbnQ6OmRpc2Nvbm5lY3RGcm9udGVuZENsaWVudCk6Ci0gICAgICAg
IChJbnNwZWN0b3JGcm9udGVuZENsaWVudCk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpkaXNjb25uZWN0SW5zcGVjdG9yQ2xpZW50KToKLQotMjAxMy0wMS0xOCAg
TWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RL
XSBBZGQgbmV3IG1ldGhvZCB0byBzdXBwb3J0IGFkZFVzZXJTY3JpcHQgaW4gRHVtcFJlbmRlclRy
ZWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzI3
NQotCi0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjphZGRVc2VyU2NyaXB0KTogSW1wbGVtZW50IG5ldyBtZXRo
b2QgdXNpbmcKLSAgICAgICAgUGFnZUdyb3VwOjphZGRVc2VyU2NyaXB0VG9Xb3JsZC4KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6IERlZmluZSBtZXRob2QgaGVhZGVyLgotCi0yMDEz
LTAxLTE3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAg
ICBbR1RLXSBCdWlsZCB3aXRoIExldmVsREIgd2hlbiBJbmRleGVkREIgaXMgZW5hYmxlZAotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjIwCi0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgICogR05V
bWFrZWZpbGUuYW06IFdoZW4gSW5kZXhlZERhdGFiYXNlIGlzIGVuYWJsZWQgYWRkIHRoZSBsZXZl
bGRiIGNvbnZlbmllbmNlCi0gICAgICAgIGxpYnJhcnkgdG8gdGhlIHNoYXJlZCBsaWJyYXJ5IGxp
bmsgcGhhc2UuCi0KLTIwMTMtMDEtMTUgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWls
LmNvbT4KLQotICAgICAgICBbQXV0b3Rvb2xzXSBBZGQgc3VwcG9ydCBmb3IgV2ViS2l0Mi1vbmx5
IGJ1aWxkcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA2ODg5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0g
ICAgICAgICogR05VbWFrZWZpbGUuYW06IE9ubHkgYnVpbGQgdGhlIFdlYktpdDEtc3BlY2lmaWMg
dGFyZ2V0cyBpZiBhY3R1YWxseQotICAgICAgICBidWlsZGluZyBXZWJLaXQxLiBUaGlzIHB1dHMg
dGhlIGxpYndlYmtpdGd0ayBsaWJyYXJ5LCB0aGUgcGtnLWNvbmZpZyBmaWxlCi0gICAgICAgIGFu
ZCB0aGUgV2ViS2l0MS1zcGVjaWZpYyB1bml0IHRlc3RzIHVuZGVyIHRoZSBFTkFCTEVfV0VCS0lU
MSBBdXRvbWFrZQotICAgICAgICBjb25kaXRpb25hbC4KLQotMjAxMy0wMS0xMSAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4g
VXBkYXRlIE5FV1MgYW5kIGNvbmZpZ3VyZS5hYyBmb3IgMS4xMS40IHJlbGVhc2UKLQotICAgICAg
ICAqIE5FV1M6IEFkZGVkIHJlbGVhc2Ugbm90ZXMgZm9yIDEuMTEuNC4KLQotMjAxMy0wMS0wOCAg
TWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmVtb3ZlZCB0aGUgbmVl
ZCBmb3IgdGhlIFByb3Bvc2VkRGF0YWJhc2UgbWVjaGFuaXNtLgotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2MjkyLgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IFNhbSBXZWluaWcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VR
dW90YSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAg
ICAgIChDaHJvbWVDbGllbnQpOgotCi0yMDEzLTAxLTAzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEFkZCBXZWJQIGltYWdlIHN1cHBv
cnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTkx
NQotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOiBsaW5rIGFnYWluc3QgV2ViUCBsaWJyYXJ5LgotCi0yMDEzLTAxLTA3ICBN
aWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgTWFrZSB0aGUgSUZSQU1F
X1NFQU1MRVNTIGZsYWcgcnVudGltZS1lbmFibGVkLgotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2MjEzCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgT2ph
biBWYWZhaS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmg6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotICAgICAgICAgICAg
QWRkIGEgdG9nZ2xlIGZvciBzZWFtbGVzcyBJRnJhbWVzIHRvIEdUSydzIERSVFN1cG9ydC4KLQot
MjAxMy0wMS0wNCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KLQotICAgICAgICBS
ZW1vdmUgRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyAjZGVmaW5lCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NTkKLQotICAgICAgICBSZXZpZXdl
ZCBieSBSeW9zdWtlIE5pd2EuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpk
ZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkpOgotCi0yMDEyLTEyLTI4ICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXVtXSzJdIEFkZCBz
dXBwb3J0IGZvciBJTUUgQ29tcG9zaXRpb24KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY1MDkzCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdh
cmNpYSBDYW1wb3MuCi0KLSAgICAgICAgVXBkYXRlIHRoZSBtZXRob2Qgc2lnbmF0dXJlcyBmb3Ig
Y29uY3JldGUgV2ViS2l0MSBpbXBsZW1lbnRhdGlvbiBvZgotICAgICAgICB0aGUgR3RrSW5wdXRN
ZXRob2RGaWx0ZXIuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJWaWV3SW5wdXRNZXRo
b2RGaWx0ZXIuY3BwOgotICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXI6
OnNlbmRTaW1wbGVLZXlFdmVudCk6Ci0gICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbnB1dE1ldGhv
ZEZpbHRlcjo6c2VuZEtleUV2ZW50V2l0aENvbXBvc2l0aW9uUmVzdWx0cyk6Ci0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViVmlld0lucHV0TWV0aG9kRmlsdGVyLmg6Ci0gICAgICAgIChXZWJW
aWV3SW5wdXRNZXRob2RGaWx0ZXIpOgotCi0yMDEyLTEyLTI3ICBDaGFuZ1Nlb2sgT2ggIDxzaGl2
YW1pZG93QGdtYWlsLmNvbT4KLQotICAgICAgICBbR1RLXSBpbnZhbGlkIHVzZSBvZiBpbmNvbXBs
ZXRlIHR5cGUgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBpbiB3ZWJraXR3ZWJ2aWV3cHJpdmF0
ZS5oCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3
MjAKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgSWYg
dGhlIGFjY2VsZXJhdGlvbiBiYWNrZW5kIGlzIGNsdXR0ZXIsIHRoZW4gY3NzX2ZpbHRlciBmZWF0
dXJlIGlzIGRpc2FibGVkLgotICAgICAgICBTbyBSZXNvdXJjZVJlc3BvbnNlLmggY291bGQgbm90
IGJlIHJlYWNoZWQgd2l0aCBvbmx5IGV4aXN0aW5nIGhlYWRlcnMKLSAgICAgICAgaW4gd2Via2l0
d2Vidmlld3ByaXZhdGUuaC4gRm9yIHRoaXMgcmVhc29uLCBJIGFkZCBSZXNvdXJjZVJlc3BvbnNl
LmggZXhwbGljaXRseQotICAgICAgICB0byBmaXggYSBidWlsZCBmYWlsdXJlIHVzaW5nIGluY29t
cGxldGUgdHlwZSAnV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSgpJy4KLQotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgotCi0yMDEyLTEyLTIzICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgotCi0gICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMjgwODM3
Nz4gTmV0d29yayBwcm9jZXNzIHNob3VsZCByZXNwZWN0IGNvb2tpZSBhY2NlcHQgcG9saWN5Ci0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU2ODQKLQot
ICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Q
bGF0Zm9ybVN0cmF0ZWdpZXNHdGsuaDoKLSAgICAgICAgQ29va2llc1N0cmF0ZWd5IG5vIGxvbmdl
ciBoYXMgbm90aWZ5Q29va2llc0NoYW5nZWQoKS4gVGhpcyBwb3J0IGRpZG4ndCB1c2UgaXQgYW55
d2F5LgotCi0yMDEyLTEyLTIyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgot
Ci0gICAgICAgIEFkZCBhIHNlcGFyYXRlIGNsYXNzIGZvciBuZXR3b3JraW5nIHJlbGF0ZWQgc3Rv
cmFnZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1
Njc2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc0d0ay5jcHA6Ci0gICAgICAgIChQbGF0Zm9ybVN0
cmF0ZWdpZXNHdGs6OmNvb2tpZXNGb3JET00pOgotICAgICAgICAoUGxhdGZvcm1TdHJhdGVnaWVz
R3RrOjpzZXRDb29raWVzRnJvbURPTSk6Ci0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6
OmNvb2tpZXNFbmFibGVkKToKLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6Y29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgotICAgICAgICAoUGxhdGZvcm1TdHJhdGVnaWVzR3Rr
OjpnZXRSYXdDb29raWVzKToKLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6ZGVsZXRl
Q29va2llKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsu
aDoKLSAgICAgICAgQ29va2llIGZ1bmN0aW9ucyBub3cgdGFrZSBhIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgbm90IGEgTmV0d29ya2luZ0NvbnRleHQuCi0KLTIwMTItMTItMTggIEFsZXhleSBQcm9z
a3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGZ1
bmN0aW9ucyBmcm9tIENvb2tpZXNTdHJhdGVneQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MzY5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkg
RWlkc29uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3Rr
LmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsuaDoK
LQotMjAxMi0xMi0xOCAgQ2hhbmdTZW9rIE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+Ci0KLSAg
ICAgICAgW0dUS11bQUNdIEZpeCBhc3NlcnRpb24gZmFpbHVyZXMgZm9yIEFDIHdpdGggY2x1dHRl
cgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MDM5
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAg
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0IGNvdWxkIGJlIGEgY2xpZW50IG9mIEdyYXBo
aWNzTGF5ZXJDbHV0dGVyCi0gICAgICAgIG5vdCBvbmx5IFJlbmRlckxheWVyQmFja2luZy4gU28g
aW5zZXJ0aW5nIEFTU0VSVF9OT1RfUkVBQ0ggaW4gbm90aWZ5Rmx1c2hSZXF1aXJlZCgpCi0gICAg
ICAgIGNhdXNlcyBhIGNyYXNoIGJ5IGNhbGxpbmcgR3JhcGhpY3NMYXllckNsdXR0ZXI6Om5vdGVM
YXllclByb3BlcnR5Q2hhbmdlZCBpbiBkZWJ1ZyBidWlsZC4KLSAgICAgICAgQW5kIGFsc28gSSBh
ZGRlZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMgdGFrZW4gZnJvbQot
ICAgICAgICBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMIHRvIGZsdXNoQW5kUmVuZGVy
TGF5ZXJzKCkuIElmIG5vdCBzbywKLSAgICAgICAgQVNTRVJUKCFuZWVkc0xheW91dCgpKSBmYWls
ZWQgaW4gRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKCkgdG9vIGluIGRlYnVnIGJ1aWxkLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0
dGVyLmNwcDoKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6
OmZsdXNoQW5kUmVuZGVyTGF5ZXJzKTogQWRkIHVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRS
ZWN1cnNpdmUoKQotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dDo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCk6IFJlbW92ZWQgQVNTRVJUX05PVF9SRUFDSEVEKCkK
LSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6Om5vdGlmeUZs
dXNoUmVxdWlyZWQpOiBSZW1vdmVkIEFTU0VSVF9OT1RfUkVBQ0hFRCgpCi0KLTIwMTItMTItMTUg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KLQotICAgICAgICBSZW5hbWUg
RnJhbWVMb2FkZXJDbGllbnQ6OmRvd25sb2FkIHRvIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA1MTIyCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLQotICAgICAgICBV
cGRhdGUgZm9yIFdlYkNvcmUgY2hhbmdlcy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZCk6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLSAgICAgICAgKEZyYW1lTG9hZGVyQ2xp
ZW50KToKLQotMjAxMi0xMi0xNSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+Ci0KLSAg
ICAgICAgUmUtbGFuZGluZyBwYXRjaCBmb3IgIkludHJvZHVjaW5nIHRoZSBEYXRhYmFzZVN0cmF0
ZWd5IGFuZCBkYXRhYmFzZSBzZXJ2ZXJzIi4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNDkzNC4KLQotICAgICAgICBOb3QgcmV2aWV3ZWQuCi0KLSAg
ICAgICAgTWVyZ2VkIGZyb20gcjEzNzc2Ny4gUHJldmlvdXNseSByZXZpZXdlZCBieSBTYW0gV2Vp
bmlnLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmNw
cDoKLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6Y3JlYXRlRGF0YWJhc2VTdHJhdGVn
eSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmg6Ci0g
ICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGspOgotCi0yMDEyLTEyLTE0ICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTM3NzY3LgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC8xMzc3NjcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwNTA2MgotCi0gICAgICAgIEJyb2tlIE1hYyBidWlsZHMuIChSZXF1ZXN0ZWQgYnkgbWxh
bSBvbiAjd2Via2l0KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc0d0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVz
R3RrLmg6Ci0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGspOgotCi0yMDEyLTEyLTE0ICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KLQotICAgICAgICBJbnRyb2R1Y2luZyB0aGUg
RGF0YWJhc2VTdHJhdGVneSBhbmQgZGF0YWJhc2Ugc2VydmVycy4KLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDkzNC4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIFRoZSBkYXRhYmFzZSBzZXJ2ZXIgaXMgY3VycmVu
dGx5IGEgcGxhY2Vob2xkZXIgdGhhdCBkb2VzIG5vdGhpbmcuCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsuY3BwOgotICAgICAgICAoUGxhdGZvcm1TdHJh
dGVnaWVzR3RrOjpjcmVhdGVEYXRhYmFzZVN0cmF0ZWd5KToKLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsuaDoKLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2ll
c0d0ayk6Ci0KLTIwMTItMTItMTQgIEFsYmVydG8gR2FyY2lhICA8YWdhcmNpYUBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFtHVEtdIFdoZW4gaW4gcHJpdmF0ZSBtb2RlIFdlYktpdEdUSysgc2hvdWxk
IG5vdCBzYXZlIEhUVFAgYXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgdG8gdGhlIHBlcnNpc3Rl
bnQgc3RvcmFnZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA0OTEwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UpOgotICAgICAgICBXaGVuIGNyZWF0aW5nIHRoZSBHdGtBdXRoZW50aWNhdGlv
bkRpYWxvZywgc2V0IHRoZSBjcmVkZW50aWFsCi0gICAgICAgIHN0b3JhZ2UgbW9kZSB1c2luZyB0
aGUgcHJpdmF0ZSBicm93c2luZyBzZXR0aW5nIGZyb20gdGhlIGN1cnJlbnQKLSAgICAgICAgcGFn
ZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRzb3VwYXV0aGRpYWxvZy5jcHA6Ci0gICAgICAg
IChzZXNzaW9uQXV0aGVudGljYXRlKToKLSAgICAgICAgQ3JlYXRlIHRoZSBHdGtBdXRoZW50aWNh
dGlvbkRpYWxvZyB3aXRoIG5vIHBlcnNpc3RlbnQgc3RvcmFnZQotICAgICAgICBhbGxvd2VkLCBh
cyB3ZSBhcmUgbm90IGhhbmRsaW5nIHRoZSBjcmVkZW50aWFsIHBlcnNpc3RlbmNlIGhlcmUuCi0K
LTIwMTItMTItMTIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgotCi0gICAgICAgIEVu
Y2Fwc3VsYXRlIGV4dGVybmFsbHkgdXNlZCB3ZWJkYXRhYmFzZSBBUElzIGluIERhdGFiYXNlTWFu
YWdlci4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NDc0MS4KLQotICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIFVzZSBE
YXRhYmFzZU1hbmFnZXIgaW5zdGVhZCBvZiBhY2Nlc3NpbmcgRGF0YWJhc2VUcmFja2VyLCBBYnN0
cmFjdERhdGFiYXNlLAotICAgICAgICBhbmQgRGF0YWJhc2VDb250ZXh0IGRpcmVjdGx5LiBUaGlz
IGlzIHRvIHByZXBhcmUgZm9yIHVwY29taW5nIHdlYmtpdDIKLSAgICAgICAgcmVmYWN0b3Jpbmcu
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdGljb25kYXRhYmFzZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNlY3VyaXR5b3Jp
Z2luLmNwcDoKLSAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3dlYl9kYXRhYmFz
ZV91c2FnZSk6Ci0gICAgICAgICh3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF93ZWJfZGF0YWJh
c2VfcXVvdGEpOgotICAgICAgICAod2Via2l0X3NlY3VyaXR5X29yaWdpbl9zZXRfd2ViX2RhdGFi
YXNlX3F1b3RhKToKLSAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X2FsbF93ZWJf
ZGF0YWJhc2VzKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwOgotICAg
ICAgICAod2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfZGlzcGxheV9uYW1lKToKLSAgICAgICAgKHdl
YmtpdF93ZWJfZGF0YWJhc2VfZ2V0X2V4cGVjdGVkX3NpemUpOgotICAgICAgICAod2Via2l0X3dl
Yl9kYXRhYmFzZV9nZXRfc2l6ZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2RhdGFiYXNlX2dldF9m
aWxlbmFtZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2RhdGFiYXNlX3JlbW92ZSk6Ci0gICAgICAg
ICh3ZWJraXRfcmVtb3ZlX2FsbF93ZWJfZGF0YWJhc2VzKToKLSAgICAgICAgKHdlYmtpdF9nZXRf
d2ViX2RhdGFiYXNlX2RpcmVjdG9yeV9wYXRoKToKLSAgICAgICAgKHdlYmtpdF9zZXRfd2ViX2Rh
dGFiYXNlX2RpcmVjdG9yeV9wYXRoKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEyLTEyLTEyICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBBZGQgYXV0
aGVudGljYXRpb24gc3VwcG9ydCB0byBEUlQgYW5kIGZpeCBleHBvc2VkIGlzc3VlcyBpbiB0aGUg
bGlic291cCBiYWNrZW5kCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDQyODUKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEuCi0KLSAgICAgICAgQWRkIHN1cHBvcnQgdG8gRHVtcFJlbmRlclRyZWUgZm9yIHJ1bm5pbmcg
YXV0aGVudGljYXRpb24gdGVzdHMuIFNpbmNlIHRoZSBEUlQKLSAgICAgICAgZXhwZWN0cyBhbiBh
dXRoZW50aWNhdGlvbiBjYWxsYmFjaywgd2UgYWRkIG9uZSB0byBEUlRTdXBwb3J0IHRvIGF2b2lk
ICNpZmRlZnMKLSAgICAgICAgaW4gcGxhdGZvcm0taW5kZXBlbmRlbnQgY29kZSBmb3IgR1RLKy4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6
Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldEF1dGhlbnRpY2F0aW9uQ2Fs
bGJhY2spOiBBZGRlZC4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuaDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6IEFkZCBhIG1l
dGhvZCB0byBzZXQgdGhlIGF1dGhlbnRpY2F0aW9uIGNhbGxiYWNrLgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KTogV2hlbgotICAgICAgICBpbiBEUlQgbW9kZSB3ZSBuZWVkIHRvIGNhbGwgdGhlIGF1dGhlbnRp
Y2F0aW9uIGNhbGxiYWNrIGluc3RlYWQgb2YgcG9wcGluZwotICAgICAgICB1cCB0aGUgZGlhbG9n
IG9yIGlnbm9yaW5nIHRoZSByZXF1ZXN0LgotCi0yMDEyLTEyLTEyICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgotCi0gICAgICAgIE1ha2UgTE9HKCkgd29yayBpbiBXZWJQcm9j
ZXNzIGFuZCBOZXR3b3JrUHJvY2VzcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA0NzE4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4K
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXRnbG9iYWxzLmNwcDogSW5jbHVkZSBJbml0aWFsaXpl
TG9nZ2luZy5oCi0KLTIwMTItMTItMTIgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBpbnRlbC5jb20+
Ci0KLSAgICAgICAgW0dUS11bQUNdIFRoZSBub24tY29tcG9zaXRlZCBjb250ZW50IGlzIG5vdCBw
YWludGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDQ4MTkKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAg
ICAgICAgV2hlbiBBY2NlbGVyYXRlZCBDb21wb3NpdGluZyBpcyBlbmFibGVkLCBvbmx5IEdyYXBo
aWNzTGF5ZXJzIGFyZSBwYWludGVkLgotICAgICAgICBUaGlzIHBhdGNoIGFsbG93cyB0byBwYWlu
dCB0aGUgbm9uLWNvbXBvc2l0ZWQgY29udGVudCBvbiB0aGUgdmlld3BvcnQgd2l0aCAKLSAgICAg
ICAgR3JhcGhpY3NMYXllcnMuIE1vc3Qgb2YgdGhlIGNvZGVzIGFyZSB0aGUgc2FtZSBhcyBBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcAotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDogQWRkIG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRMYXllci4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dENsdXR0ZXIuY3BwOgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQpOgotICAgICAgICAo
V2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6aW5pdGlhbGl6ZSk6Ci0gICAg
ICAgIChXZWJLaXQpOgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29u
dGV4dDo6fkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAgKFdlYktpdDo6
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlbmRlckxheWVyc1RvV2luZG93KToKLSAg
ICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnNldFJvb3RDb21w
b3NpdGluZ0xheWVyKToKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6OnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KToKLSAgICAgICAgKFdl
YktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlc2l6ZVJvb3RMYXllcik6Ci0g
ICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzY3JvbGxOb25D
b21wb3NpdGVkQ29udGVudHMpOiBNYWtlIHRoZSBub24tY29tcG9zaXRlZCAKLSAgICAgICAgY29u
dGVudCBzY3JvbGwuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0OjpsYXllckZsdXNoVGltZXJGaXJlZENhbGxiYWNrKToKLSAgICAgICAgKFdlYktpdDo6QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6Ci0g
ICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaEFuZFJl
bmRlckxheWVycyk6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKToKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnBhaW50Q29udGVudHMpOiBQYWludCB0aGUgbm9uLWNvbXBv
c2l0ZWQgY29udGVudC4KLQotMjAxMi0xMi0xMiAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGludGVs
LmNvbT4KLQotICAgICAgICBbR1RLXVtBQ10gR3JhcGhpY3NMYXllcnMgYXJlIG5vdCBzaG93biBv
biB0aGUgdmlld3BvcnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNDY3MAotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2
YS4KLQotICAgICAgICBHcmFwaGljc0xheWVycyBhcmUgbm90IHNob3duIG9uIHRoZSB2aWV3cG9y
dCBiZWNhdXNlIHRoZSBjb250YWluZXIoR3RrQ2x1dHRlckVtYmVkKSAKLSAgICAgICAgaXMgbm90
IHJlc2l6ZWQgYW5kIHNob3duLCBzbyB0aGlzIHBhdGNoIGFsbG93cyBpdCB0byBmaXQgdG8gdGhl
IHZpZXdwb3J0LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0NvbnRleHQuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwOgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dDo6cmVuZGVyTGF5ZXJzVG9XaW5kb3cpOgotICAgICAgICAoV2ViS2l0
OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIp
OgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cmVzaXpl
Um9vdExheWVyKToKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OmxheWVyRmx1c2hUaW1lckZpcmVkQ2FsbGJhY2spOgotICAgICAgICAoV2ViS2l0OjpBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2NoZWR1bGVMYXllckZsdXNoKToKLQotMjAxMi0x
Mi0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgW0dUS10gSW5zdGFsbCBHT2JqZWN0IERPTSBiaW5kaW5ncyBoZWFkZXJzIGluIGl0cyBvd24g
ZGlyZWN0b3J5Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDQ2NjMKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0K
LSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkIHdlYmtpdGRvbS5oLgotICAgICAgICAqIHdl
YmtpdC93ZWJraXRkb20uaDogQ29tcGF0aWJpbGl0eSBoZWFkZXIganVzdCBpbmNsdWRpbmcgdGhl
IG5ldwotICAgICAgICBvbmUuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDog
VXBkYXRlIGluY2x1ZGVzLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOiBEaXR0
by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcDogRGl0dG8uCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5oOiBEaXR0by4KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6IERpdHRvLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2
aWV3Lmg6IERpdHRvLgotCi0yMDEyLTEyLTExICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5v
cmc+Ci0KLSAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29sZVR5cGVzIHNob3VsZCBub3QgZXhw
b3NlIE1lc3NhZ2VUeXBlIC0gaXQgc2hvdWxkIGJlIHByaXZhdGUgdG8gaW5zcGVjdG9yLgotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzNzEKLQotICAg
ICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgotCi0gICAgICAgIERyb3BzIFdlYkNvcmU6
Ok1lc3NhZ2VUeXBlIGZyb20gdGhlIGFkZE1lc3NhZ2VUb0NvbnNvbGUgbWV0aG9kLgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKToKLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLSAgICAgICAgKENocm9tZUNsaWVudCk6Ci0KLTIw
MTItMTItMTEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFtHVEtdIEltcGxlbWVudCBzb21lIG1pc3NpbmcgRnJhbWVMb2FkZXJDbGllbnQgbWVzc2Fn
ZSBpbiBEUlQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNDQ0NAotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQot
ICAgICAgICBXaGVuIGluIER1bXBSZW5kZXJUcmVlIG1vZGUgYWxsb3cgdGhlIERSVCB0byBpbnN0
YWxsIGEgRnJhbWVMb2FkZXJFdmVudCBjYWxsYmFjawotICAgICAgICBmb3IgZXZlbnRzIHRoYXQg
d2UgZG8gbm90IGV4cG9zZSBpbiB0aGUgQVBJLiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gc2hhcmUg
bW9yZQotICAgICAgICByZXN1bHRzIHdpdGggV2ViS2l0Mi4KLQotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnNldEZyYW1lTG9hZEV2ZW50Q2FsbGJhY2spOiBBZGRlZC4KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6IFVzZSB0aGUgbmV3IGNh
bGxiYWNrIHRvIGRlbGl2ZXIKLSAgICAgICAgZXZlbnRzIHRvIERSVC4KLQotMjAxMi0xMi0xMSAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0NvdmVy
aXR5XSBbR1RLXSBSZW1vdmUgc29tZSByZWR1bmRhbnQgbnVsbCBjaGVja3MgaW4gRHVtcFJlbmRl
clRyZWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
NDU3MAotCi0gICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdp
dGhJZCk6IFJlbW92ZSBhIHJlZHVuZGFudCBudWxsIGNoZWNrLgotCi0yMDEyLTEyLTEwICBDYXJs
b3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBC
dWlsZCBHT2JqZWN0IERPTSBiaW5kaW5ncyBhcyBhIHNlcGFyYXRlIGxpYnJhcnkKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDUyNwotCi0gICAgICAg
IFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBMaW5r
IHRvIGxpYldlYkNvcmVET00ubGEuCi0KLTIwMTItMTItMTAgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEJyaW5nIEhhcmZidXp6LW5nIHN1
cHBvcnQgdG8gR3RrCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MjA5OAotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4K
LQotICAgICAgICBBZGQgSGFyZkJ1enogZGVwZW5kZW5jeS4KLQotICAgICAgICAqIEdOVW1ha2Vm
aWxlLmFtOiBBZGQgRnJlZVR5cGUvSGFyZkJ1enogQ0ZMQUdTIHRvIHRoZSBsaWJyYXJ5LgotCi0y
MDEyLTEyLTA1ICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+
Ci0KLSAgICAgICAgW0d0a10gbmF2aWdhdG9yLnBsdWdpbnMgY29udGFpbnMgdG9vIG1hbnkgcGx1
Z2luIGVudHJpZXMuIEZpcnN0IG9uZSBhcmUgZ2FyYmFnZXMKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjQzOAotCi0gICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KLQotICAgICAgICBJbiBnZXRQbHVnaW5JbmZvLCBvdXRQbHVnaW5zIGlzIHJl
c2l6ZWQgdG8gcGx1Z2lucy5zaXplIGFuZCB0aGVuLAotICAgICAgICBwbHVnaW5zIGFyZSBhcHBl
bmRlZCB0byBpdC4gU28gYXQgdGhlIGVuZCwgb3V0UGx1Z2lucyB3aWxsIGJlIHR3aWNlCi0gICAg
ICAgIHRvbyBsYXJnZSwgYW5kIGZpcnN0IGhhbGYgd2lsbCBjb250YWluIG51bGwgb2JqZWN0cy4g
QXMgb3V0UGx1Z2lucwotICAgICAgICBzaXplIGlzIDAgd2hlbiBjYWxsaW5nIGdldFBsdWdpbklu
Zm8sIHdlIGRvbid0IG5lZWQgdG8gcmVzaXplIGl0LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmNwcDoKLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2ll
c0d0azo6Z2V0UGx1Z2luSW5mbyk6Ci0KLTIwMTItMTItMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEF2b2lkIHVubmVjZXNzYXJ5
IGhlYXAgYWxsb2NhdGlvbnMgZHVyaW5nIGRyYWcgYW5kIGRyb3Agb3BlcmF0aW9ucwotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc5MzgKLQotICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19tb3Rpb24pOiBDcmVh
dGUgRHJhZ0RhdGEgZm9yIHRoZSBnaXZlbgotICAgICAgICBEYXRhT2JqZWN0R3RrIGluIHRoZSBz
dGFjay4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX2RhdGFfcmVjZWl2ZWQpOiBEaXR0
by4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX2Ryb3ApOiBEaXR0by4KLQotMjAxMi0x
Mi0wMiAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFtndGtdIEVu
YWJsZSB0aGUgQ1NQX05FWFQgcnVudGltZSBmbGFnLgotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzODEwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KLQotICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbWV0aG9kcyB0byBEdW1wUmVuZGVy
VHJlZVN1cHBvcnQgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQKLSAgICAgICAgQ1NQIDEuMSBmZWF0
dXJlcyBhcmUgZW5hYmxlZCB3aGVuIHJ1bm5pbmcgRFJUIHRlc3RzIGluIHRoZSBHVEsgcG9ydC4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6
Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldEV4cGVyaW1lbnRhbENvbnRl
bnRTZWN1cml0eVBvbGljeUZlYXR1cmVzRW5hYmxlZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGspOgotCi0yMDEyLTExLTMwICBNaWhhaSBNYWVyZWFuICA8bW1hZXJlYW5AYWRvYmUu
Y29tPgotCi0gICAgICAgIFtDU1NSZWdpb25zXSB3aGVuIFdlYktpdCB1c2VzIFY4LCB0aGVyZSBz
aG91bGQgYmUgYSBzaW5nbGUgdmFyaWFibGUgdG8gc3RvcmUgaWYgdGhlIENTUyBSZWdpb25zIGZl
YXR1cmUgaXMgZW5hYmxlZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAxMTkyCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSGFqaW1lIE1vcml0YS4KLQot
ICAgICAgICBSZW1vdmVkIHRoZSBDU1MgUmVnaW9ucyBmbGFnIGluIFNldHRpbmdzIGFuZCBzd2l0
Y2hlZCB0byB1c2luZyB0aGUgbmV3IGZsYWcgSSBoYXZlIGFkZGVkIGluIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuCi0KLSAgICAgICAgVGVzdHM6IE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlz
IG5vIGZ1bmN0aW9uYWwgY2hhbmdlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0Q1NTUmVnaW9uc0VuYWJsZWQpOgotCi0yMDEyLTExLTI5ICBBbGV4ZXkgUHJvc2t1cnlh
a292ICA8YXBAYXBwbGUuY29tPgotCi0gICAgICAgIFtXSzJdIEZvcndhcmQgY29va2llIGphciBj
YWxscyB0byBOZXR3b3JrUHJvY2VzcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAzNDU3Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsuY3BwOgot
ICAgICAgICAoUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpjb29raWVzRm9yRE9NKToKLSAgICAgICAg
KFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6c2V0Q29va2llc0Zyb21ET00pOgotICAgICAgICAoUGxh
dGZvcm1TdHJhdGVnaWVzR3RrOjpjb29raWVzRW5hYmxlZCk6Ci0gICAgICAgIChQbGF0Zm9ybVN0
cmF0ZWdpZXNHdGs6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKLSAgICAgICAgKFBs
YXRmb3JtU3RyYXRlZ2llc0d0azo6Z2V0UmF3Q29va2llcyk6Ci0gICAgICAgIChQbGF0Zm9ybVN0
cmF0ZWdpZXNHdGs6OmRlbGV0ZUNvb2tpZSk6Ci0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNH
dGs6OmdldEhvc3RuYW1lc1dpdGhDb29raWVzKToKLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2ll
c0d0azo6ZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lKToKLSAgICAgICAgKFBsYXRmb3JtU3RyYXRl
Z2llc0d0azo6ZGVsZXRlQWxsQ29va2llcyk6Ci0KLTIwMTItMTEtMjcgIEphbWVzIFNpbW9uc2Vu
ICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgotCi0gICAgICAgIENvbnNvbGlkYXRlIEZyYW1lTG9h
ZGVyOjpsb2FkKCkgaW50byBvbmUgZnVuY3Rpb24gdGFraW5nIGEgRnJhbWVMb2FkUmVxdWVzdAot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyMTUxCi0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpKToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKToKLSAgICAgICAgKHdlYmtpdF93ZWJf
ZnJhbWVfbG9hZF9yZXF1ZXN0KToKLQotMjAxMi0xMS0yNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjEzNTc4Ni4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTM1Nzg2
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMzNzkK
LQotICAgICAgICBJdCBtYWRlIDMgcGx1Z2luIHRlc3RzIHRpbWVvdXQgb24gc2V2ZXJhbCBwbGF0
Zm9ybXMgKFJlcXVlc3RlZAotICAgICAgICBieSBPc3N5IG9uICN3ZWJraXQpLgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVf
bG9hZF91cmkpOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX2RhdGEpOgotICAgICAg
ICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QpOgotCi0yMDEyLTExLTI2ICBKYW1lcyBT
aW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KLQotICAgICAgICBDb25zb2xpZGF0ZSBG
cmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRha2luZyBhIEZyYW1lTG9hZFJl
cXVlc3QKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MjE1MQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3Vy
aSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfZGF0YSk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2ZyYW1lX2xvYWRfcmVxdWVzdCk6Ci0KLTIwMTItMTEtMjUgIEthdXN0dWJoIEF0cmF3
YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+Ci0KLSAgICAgICAgUmVtb3ZlIGRlcHJlY2F0
ZWQgbG9hZC1kb25lIHNpZ25hbAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzI3MTIKLQotICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgot
Ci0gICAgICAgIFJlbW92ZSBkZXByZWNhdGVkIGxvYWQtZG9uZSBzaWduYWwgYW5kIG1pZ3JhdGUg
dG8gbG9hZC1zdGF0dXMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKToKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9jbGFzc19pbml0KToK
LQotMjAxMi0wOS0yNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQot
ICAgICAgICBbR1RLXSBTcGxpdCBTVkcgZnJvbSBXZWJDb3JlIHRvIHdvcmstYXJvdW5kIG1ha2Ug
bGltaXRhdGlvbgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTc3MzUKLQotICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KLQot
ICAgICAgICBBZGQgYSBuZXcgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LCBsaWJXZWJDb3Jl
U1ZHLmxhLCB0byB3b3JrLWFyb3VuZAotICAgICAgICBtYWtlIGxpbWl0YXRpb24gd2hlbiBsaW5r
aW5nIGxpYldlYkNvcmUuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogbGluayBsaWJXZWJD
b3JlU1ZHLmxhIGludG8gbGlid2Via2l0Z3RrLgotCi0yMDEyLTExLTIxICBBbGxhbiBTYW5kZmVs
ZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgotCi0gICAgICAgIERpc2FtYmlndWF0
ZSBpbm5lck5vZGVGcmFtZVBvaW50IGFuZCBtYWluRnJhbWVQb2ludAotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgxMzkKLQotICAgICAgICBSZXZpZXdl
ZCBieSBKdWxpZW4gQ2hhZmZyYWl4LgotCi0gICAgICAgIFN3aXRjaGVkIHRvIHVzaW5nIHBvaW50
IGluIGlubmVyTm9kZUZyYW1lLiBXaGlsZSB0aGUgdXNlIGhlcmUgc2VlbXMgd3JvbmcgaXQgaGFz
IGJlZW4KLSAgICAgICAgbGVmdCBmdW5jdGlvbmFsbHkgdW5jaGFuZ2VkIHRvIGJlIGZpeGVkIGJ5
IGEgbGF0ZXIgcGF0Y2guCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OmtpdCk6Ci0KLTIwMTItMTEtMjAgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMzUyOTUuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzEzNTI5NQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAyODM0Ci0KLSAgICAgICAgVGhpcyBwYXRjaCBjYXVzZXMgYXNzZXJ0aW9uIHRvIHNvbWUgbGF5
b3V0IHRlc3RzIG9uIGNocm9taXVtCi0gICAgICAgIChSZXF1ZXN0ZWQgYnkgamlhbmxpIG9uICN3
ZWJraXQpLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkpOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9s
b2FkX2RhdGEpOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3QpOgotCi0y
MDEyLTExLTIwICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KLQotICAg
ICAgICBDb25zb2xpZGF0ZSBGcmFtZUxvYWRlcjo6bG9hZCgpIGludG8gb25lIGZ1bmN0aW9uIHRh
a2luZyBhIEZyYW1lTG9hZFJlcXVlc3QKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMjE1MQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl9mcmFtZV9sb2FkX3VyaSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfZGF0
YSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfcmVxdWVzdCk6Ci0KLTIwMTItMTEt
MjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFVucmV2aWV3ZWQuIFVwZGF0ZSBORVdTIGFuZCBjb25maWd1cmUuYWMgZm9yIDEuMTEuMiByZWxl
YXNlCi0KLSAgICAgICAgKiBORVdTOiBBZGRlZCByZWxlYXNlIG5vdGVzIGZvciAxLjExLjIuCi0K
LTIwMTItMTEtMTYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFtHVEtdIE1vdmUgQ3JlZGVudGlhbEJhY2tpbmdTdG9yZSB1c2FnZSBmcm9tIEd0a0F1
dGhlbnRpY2F0aW9uRGlhbG9nIHRvIFJlc291cmNlSGFuZGxlU291cAotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxODQwCi0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIEVuYWJsZSB0aGUgQ3JlZGVu
dGlhbFN0b3JlIGJ5IGRlZmF1bHQgZm9yIHRoZSBXZWJLaXQxIEdUSysgcG9ydC4gQmVmb3JlIHRo
aXMgdmFsdWUKLSAgICAgICAgZGlkbid0IGhhdmUgYW4gYmVhcmluZyBvbiB3aGV0aGVyIG9yIG5v
dCB0aGUgcGVyc2lzdGVudCBjcmVkZW50aWFsIHN0b3JhZ2Ugd2FzIHVzZWQuCi0gICAgICAgIE5v
dyBpcyBkb2VzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UpOiBFbmFibGUgY3JlZGVudGlhbCBzdG9yYWdlIGJ5IGRlZmF1bHQuCi0K
LTIwMTItMTEtMTUgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAg
ICAgICAgW0dUS10gU3BsaXQgV2ViQ29yZS9wbGF0Zm9ybSBpbnRvIGEgc2VwYXJhdGUgbGlicmFy
eQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ0MzUK
LQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgTW9yZSBw
ZW9wbGUgaGF2ZSBiZWVuIHJlcG9ydGluZyBwcm9ibGVtcyB3aGVuIGxpbmtpbmcgV2ViQ29yZSBi
ZWNhdXNlCi0gICAgICAgIHRoZSBjb21tYW5kIGxpbmUgbGltaXQgaXMgYmVpbmcgZXhjZWVkZWQu
IFNwbGl0dGluZyBXZWJDb3JlIGEgYml0IG1vcmUKLSAgICAgICAgaXMgaW4gb3JkZXIuCi0KLSAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogbGluayBsaWJXZWJDb3JlUGxhdGZvcm0gaW50byBsaWJ3
ZWJraXRndGsKLQotMjAxMi0xMS0xNSAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwu
Y29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjEzNDc2
NS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwOgotICAg
ICAgICAod2Via2l0Vmlld3BvcnRBdHRyaWJ1dGVzUmVjb21wdXRlKToKLQotMjAxMi0xMS0xMiAg
Sm9zaCBSaWNrbWFyICA8anJpY2tAZGV2aW8udXM+Ci0KLSAgICAgICAgQWRkIFdlYkNvcmU6OlNl
dHRpbmcgdG8gYmxvY2sgZGlzcGxheWluZyBhbmQvb3IgcnVubmluZyBpbnNlY3VyZSBjb250ZW50
IG9uIHNlY3VyZSBwYWdlcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTgzNzgKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nf
c2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5
KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY29weSk6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0
aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKLQotMjAx
Mi0xMS0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KLQotICAgICAg
ICBGaXggbGF5ZXIgYm9yZGVycyB0byBjbGVhbmluZyBhcHBlYXIgYW5kIGRpc2FwcGVhciBvbiBz
d2l0Y2hpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTEzNgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCi0KLSAgICAgICAgUmVt
b3ZlIHRoZSBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhvZHMgc2hvd0RlYnVnQm9yZGVycygpIGFu
ZAotICAgICAgICBzaG93UmVwYWludENvdW50ZXIoKS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Lmg6Ci0gICAgICAgIChBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcDoKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKLQotMjAxMi0x
MC0yNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
W0dUS10gTW92ZSBzb3VwIGF1dGhlbnRpY2F0aW9uIGZyb20gR3RrQXV0aGVudGljYXRpb25EaWFs
b2cgdG8gV2ViQ29yZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk5MTQKLQotICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4K
LQotICAgICAgICBUaGUgY2FsbHMgd2hpY2ggYWN0dWFsbHkgYXV0aGVudGljYXRlIGEgc291cCBt
ZXNzYWdlIGFyZSBnb25lIGZyb20gdGhlIEd0a0F1dGhlbnRpY2F0aW9uRGlhbG9nLiBTaW5jZSB0
aGUKLSAgICAgICAgR3RrQXV0aGVudGljYXRpb25EaWFsb2cgZXhwb3NlZCBieSB0aGUgV2ViS2l0
U291cEF1dGhlbnRpY2F0aW9uIGNsYXNzIGluIHRoZSBHVEsrIEFQSSB3b3JrIHdpdGhvdXQgYQot
ICAgICAgICBSZXNvdXJjZUhhbmRsZSAodGhleSBhcmUgbW9yZSBnZW5lcmFsKSwgd2UgYWRkIGEg
V2ViS2l0U291cEF1dGhEaWFsb2dBdXRoZW50aWNhdGlvbkNsaWVudCBhZGRlZCB0byBhdm9pZAot
ICAgICAgICBicmVha2luZyBBUEkuIFRoaXMgaXMgdW51c2VkIGJ5IGVpdGhlciBFcGlwaGFueSBv
ciBpbnRlcm5hbGx5IGluIFdlYktpdEdUSysuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IFRoZSBhdXRo
ZW50aWNhdGlvbiBkaWFsb2cKLSAgICAgICAgbm93IGp1c3QgdGFrZXMgdGhlIEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlIGluc3RlYWQgb2YgdGhlIGxpYnNvdXAgb2JqZWN0cy4KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuY3BwOgotICAgICAgICAoV2ViS2l0U291cEF1dGhE
aWFsb2dBdXRoZW50aWNhdGlvbkNsaWVudCk6IEFkZGVkIHRoaXMgaGVscGVyLgotICAgICAgICAo
c2Vzc2lvbkF1dGhlbnRpY2F0ZSk6IFVzZSB0aGUgbmV3IFdlYktpdFNvdXBBdXRoRGlhbG9nQXV0
aGVudGljYXRpb25DbGllbnQuCi0KLTIwMTItMTEtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2Jp
bnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFJlbW92ZSBkZXBlbmRlbmN5IG9uIFNv
dXBQYXNzd29yZE1hbmFnZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMDc3NQotCi0gICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2Ft
cG9zLgotCi0gICAgICAgIEFkZCBhIGxpYnNlY3JldCBkZXBlbmRlbmN5IHRvIHRoZSBidWlsZC4g
VGhpcyBpcyBuZWNlc3Nhcnkgc28gdGhhdCB3ZSBjYW4gcmVtb3ZlCi0gICAgICAgIGEgZGVwZW5k
ZW5jeSBvbiBTb3VwUGFzc3dvcmRNYW5hZ2VyLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06
IFVzZSBsaWJzZWNyZXQgbGlicyBkdXJpbmcgV2ViS2l0MSBsaWJyYXJ5IGNvbXBpbGF0aW9uLgot
Ci0yMDEyLTEwLTI0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KLQotICAgICAg
ICBBZGQgYSBzdHJhdGVneSBmb3IgbG9hZGVyIGN1c3RvbWl6YXRpb24uCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAyNzgKLQotICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
UGxhdGZvcm1TdHJhdGVnaWVzR3RrLmNwcDoKLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc0d0
azo6Y3JlYXRlTG9hZGVyU3RyYXRlZ3kpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRm
b3JtU3RyYXRlZ2llc0d0ay5oOgotICAgICAgICAoUGxhdGZvcm1TdHJhdGVnaWVzR3RrKToKLQot
MjAxMi0xMC0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KLQotICAgICAg
ICBBZGQgYSBzdHJhdGVneSBmb3Igc2hhcmVkIHdvcmtlcnMKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDE2NQotCi0gICAgICAgIFJldmlld2VkIGJ5
IEJyYWR5IEVpZHNvbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc0d0ay5jcHA6Ci0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmNyZWF0ZVBhc3Rl
Ym9hcmRTdHJhdGVneSk6Ci0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmNyZWF0ZVNo
YXJlZFdvcmtlclN0cmF0ZWd5KToKLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6Y3Jl
YXRlVmlzaXRlZExpbmtTdHJhdGVneSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZv
cm1TdHJhdGVnaWVzR3RrLmg6Ci0KLTIwMTItMTAtMjQgIFByaWl0IExhZXMgIDxwbGFlc0BwbGFl
cy5vcmc+Ci0KLSAgICAgICAgW0dUS10gVHlwb3MgaW4gdXNlci12aXNpYmxlIHN0cmluZ3M6ICJj
b29yZGludGF0ZSIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMDI1MgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAg
ICAgICBzL2Nvb3JkaW50YXRlL2Nvb3JkaW5hdGUKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRo
aXR0ZXN0cmVzdWx0LmNwcDoKLSAgICAgICAgKHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY2xhc3Nf
aW5pdCk6Ci0KLTIwMTItMTAtMjMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEu
Y29tPgotCi0gICAgICAgIFtHVEtdW1NvdXBdIEltcGxlbWVudCB0aGUgZGVmYXVsdCBhdXRoZW50
aWNhdGlvbiBkaWFsb2cgdmlhIFdlYkNvcmVTdXBwb3J0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTM1MQotCi0gICAgICAgIFJldmlld2VkIGJ5IENh
cmxvcyBHYXJjaWEgQ2FtcG9zLgotCi0gICAgICAgIEluc3RlYWQgb2YgdXNpbmcgYSBjdXN0b20g
U291cFNlc3Npb25GZWF0dXJlIHRvIHNob3cgdGhlIGF1dGhlbnRpY2F0aW9uIGRpYWxvZywKLSAg
ICAgICAgc2hvdyBpdCB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBXZWJDb3JlIG1lc3NhZ2UuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSk6Ci0gICAgICAgIFNob3cgdGhlIGRpYWxvZyB3aGVuIHdlIG5lZWQg
dG8gYXV0aGVudGljYXRlLiBBbHNvLCBzbyBub3Qgc2hvdyB0aGUgZGlhbG9nCi0gICAgICAgIGlm
IHdlIGFyZSBpbiBEUlQgbW9kZS4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6
Ci0gICAgICAgICh3ZWJraXRJbml0KTogTm8gbG9uZ2VyIGluc3RhbGwgb3VyIFNvdXBGZWF0dXJl
LgotCi0yMDEyLTEwLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KLQotICAgICAgICBVbnJldmlld2VkLiBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFjIGZv
ciAxLjExLjEgcmVsZWFzZQotCi0gICAgICAgICogTkVXUzogQWRkZWQgcmVsZWFzZSBub3RlcyBm
b3IgMS4xMS4xLgotCi0yMDEyLTEwLTIzICBBbmRyYXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAZGln
aWEuY29tPgotCi0gICAgICAgIFJlbW92ZSBkZXZpY2VQaXhlbFJhdGlvIGZyb20gVmlld3BvcnRB
dHRyaWJ1dGVzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05OTg0NQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcDoKLSAgICAgICAgKHdlYmtpdFZpZXdw
b3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6Ci0gICAgICAgIFBhc3MgdGhlIGRldmljZSBwaXhlbCBy
YXRpbyBhcyBhIGZ1bmN0aW9uIGFyZ3VtZW50LgotCi0yMDEyLTEwLTIyICBKb2NlbHluIFR1cmNv
dHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdpYS5jb20+Ci0KLSAgICAgICAgW1F0XSBGaXggIkFT
U0VSVElPTiBGQUlMRUQ6ICFkb2N1bWVudC0+aW5QYWdlQ2FjaGUoKSIgd2hlbiBsb2FkaW5nIGEg
cGFnZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg1
MTQKLQotICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5l
d1BhZ2UpOgotCi0yMDEyLTEwLTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
LQotICAgICAgICBTd2l0Y2ggUmVzb3VyY2VMb2FkZXI6OnJlc291cmNlRGF0YSgpIGZyb20gU2hh
cmVkQnVmZmVyIHRvIFJlc291cmNlQnVmZmVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODk3NgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBD
YXJsc3Nvbi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcDoKLSAg
ICAgICAgKHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X2RhdGEpOgotCi0yMDEyLTEwLTEwICBK
b24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KLQotICAgICAgICBbV0syXSBBY3RpdmF0ZSBwbHVn
aW5zIHdoZW4gdXNlciBjbGlja3Mgb24gc25hcHNob3QKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MzI4Ci0gICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
MjQyNjY4MT4KLQotICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6cmVjcmVhdGVQbHVnaW4pOiBTdHViIGltcGxlbWVudGF0aW9u
IG9mIHJlY3JlYXRlUGx1Z2luKCkuCi0KLTIwMTItMTAtMTAgIFNoZXJpZmYgQm90ICA8d2Via2l0
LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIxMzA4NTMuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEzMDg1
MwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg4NzMK
LQotICAgICAgICBUaGUgcm9sbG91dCB3YXMgaW5jb3JyZWN0IChSZXF1ZXN0ZWQgYnkgemRvYmVy
c2VrIG9uICN3ZWJraXQpLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
ICAgICAgICAocmVzaXplV2ViVmlld0Zyb21BbGxvY2F0aW9uKToKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19zaXplX2FsbG9jYXRlKToKLSAgICAgICAgKHdlYmtpdFdlYlZpZXdNYXApOgotCi0y
MDEyLTEwLTA5ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQot
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMwODM4LgotICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzA4MzgKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4ODYwCi0KLSAgICAgICAgVGhlIHBhdGNoIGlzIGNh
dXNpbmcgWCBlcnJvcnMgKD0+IGNyYXNoZXMpIG9uIEdUSyA2NC1iaXQKLSAgICAgICAgUmVsZWFz
ZSBidWlsZGVyIChSZXF1ZXN0ZWQgYnkgemRvYmVyc2VrIG9uICN3ZWJraXQpLgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAocmVzaXplV2ViVmlld0Zyb21B
bGxvY2F0aW9uKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zaXplX2FsbG9jYXRlKToKLSAg
ICAgICAgKHdlYmtpdFdlYlZpZXdNYXApOgotCi0yMDEyLTEwLTA5ICBEYW5pZWwgRHJha2UgIDxk
c2RAbGFwdG9wLm9yZz4KLQotICAgICAgICBbR1RLXSBQbHVnaW5zIGRvbid0IGRpc3BsYXkKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4Nzg5Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEZpeCBhIHJlY2Vu
dCByZWdyZXNzaW9uIHdoZXJlIHBsdWdpbiBjb250ZW50IHdhcyBub3QgYmVpbmcgZGlzcGxheWVk
LgotICAgICAgICBCcmluZ2luZyB3ZWJraXRfd2ViX3ZpZXdfc2l6ZV9hbGxvY2F0ZSBpbiBsaW5l
IHdpdGggdGhlIFdlYktpdDIKLSAgICAgICAgZXF1aXZhbGVudCBzb2x2ZXMgdGhlIGlzc3VlLgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAocmVzaXplV2Vi
Vmlld0Zyb21BbGxvY2F0aW9uKTogcGFzcyBhbGxvY2F0aW9uIHJlcXVlc3QgdG8gY2hpbGRyZW4K
LSAgICAgICAgZXZlbiB3aGVuIHRoZSBhbGxvY2F0aW9uIHNpemUgZG9lcyBub3QgY2hhbmdlLgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X3NpemVfYWxsb2NhdGUpOiBkb24ndCBiYWlsIHRvbyBl
YXJseSBpZiB0aGUKLSAgICAgICAgYWxsb2NhdGlvbiBzaXplIGRvZXMgbm90IGNoYW5nZS4KLQot
MjAxMi0xMC0wNyAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWly
YUBvcGVuYm9zc2Eub3JnPgotCi0gICAgICAgIFJlbmFtZSBmaXJzdC9zZWNvbmQgdG8ga2V5L3Zh
bHVlIGluIEhhc2hNYXAgaXRlcmF0b3JzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04Mjc4NAotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzR3RrLmNwcDoK
LSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6Z2V0UGx1Z2luSW5mbyk6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHA6Ci0gICAgICAgICh3ZWJraXRGYXZp
Y29uRGF0YWJhc2VJbXBvcnRGaW5pc2hlZCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBs
dWdpbi5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3BsdWdpbl9nZXRfbWltZXR5cGVzKToKLQot
MjAxMi0xMC0wNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KLQotICAg
ICAgICBGaW5hbCBwYXJ0IG9mICJzeW5jIiB0byAiZmx1c2giIHJlbmFtaW5nCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODQzMAotCi0gICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCi0KLSAgICAgICAgQ2hhbmdlIG1ldGhvZCBuYW1lcyBvbiBH
cmFwaGljc0xheWVyIGFuZCBHcmFwaGljc0xheWVyQ2xpZW50IHRoYXQKLSAgICAgICAgcmVmZXIg
dG8gInN5bmMiIHRvIHVzZSB0aGUgdGVybSAiZmx1c2giIGluc3RlYWQsIHRvIGJlIGNvbnNpc3Rl
bnQKLSAgICAgICAgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY29kZS4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Lmg6Ci0gICAgICAgIChBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDYWlyby5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6Ci0g
ICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpyZXNpemVSb290
TGF5ZXIpOgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6
c3luY0xheWVyc05vdyk6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0Ojpub3RpZnlGbHVzaFJlcXVpcmVkKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwOgotICAgICAgICAoV2ViS2l0
OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2Vz
KToKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6Om5vdGlm
eUZsdXNoUmVxdWlyZWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0R0wuY3BwOgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKToKLSAgICAgICAgKFdlYktp
dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6Om5vdGlmeUZsdXNoUmVxdWlyZWQpOgot
Ci0yMDEyLTEwLTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgotCi0g
ICAgICAgIFN0YW5kYXJkaXplIG9uICJmbHVzaCIgdGVybWlub2xvZ3kgZm9yIGNvbXBvc2l0aW5n
IGxheWVyIGZsdXNoaW5nL3N5bmNpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk4MzIxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2Vy
LgotCi0gICAgICAgIFJlbmFtZSBjb21wb3NpdGluZy1yZWxhdGVkIG1ldGhvZHMgdGhhdCByZWZl
ciB0byAic3luY2luZyIgdG8gaW5zdGVhZAotICAgICAgICByZWZlciB0byAiZmx1c2hpbmciLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgIChDaHJv
bWVDbGllbnQpOgotCi0yMDEyLTEwLTAyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+Ci0KLSAgICAgICAgQ2hhbmdlIG1vc3QgR3JhcGhpY3NMYXllcjo6Y3JlYXRlIGNhbGxz
IHRvIHVzZSB0aGUgdmVyc2lvbiB0aGF0IHRha2VzIGEgR3JhcGhpY3NMYXllckZhY3RvcnkKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjE3Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwOgotICAgICAgICAoV2ViS2l0
OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6aW5pdGlhbGl6ZSk6Ci0KLTIwMTItMTAt
MDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFtHVEtdIEFkZCBBUEkgdG8gZ2V0IHRoZSB3ZWIgdmlldyB0aGF0IGluaXRpYXRlZCBhIGN1c3Rv
bSBVUkkgcmVxdWVzdCB0byBXZWJLaXQyIEdUSysKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk3ODk1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGlu
IFJvYmluc29uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGs6
OmluaXRpYXRpbmdQYWdlSUQpOiBTdHViCi0gICAgICAgIGltcGxlbWVudGF0aW9uLgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaDoKLSAgICAgICAg
KEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGspOiBBZGRlZC4KLQotMjAxMi0xMC0wMiAgQWRyaWFu
IFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFZh
bHVlIG5vdCByZXR1cm5lZCB3YXJuaW5nIHdpdGggZ2VvbG9jYXRpb24gZGlzYWJsZWQKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MTQ4Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFdpdGggZ2VvbG9jYXRpb24gZGlz
YWJsZWQgaW4gdGhlIGJ1aWxkLCByZXR1cm4gYSBzZW5zaWJsZSB2YWx1ZSBmcm9tCi0gICAgICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdHMuCi0gICAgICAgIFRoaXMgYWxzbyBhdm9pZHMgYSBjb21waWxlciB3YXJu
aW5nLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVtYmVyT2ZQZW5kaW5n
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOgotCi0yMDEyLTEwLTAxICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KLQotICAgICAgICBSZW1vdmUgdGhlIFNhZmFyaSAyIC0+
IFNhZmFyaSAzIGljb24gZGF0YWJhc2UgaW1wb3J0IGNvZGUuCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODExMwotCi0gICAgICAgIFJldmlld2VkIGJ5
IE1hY2llaiBTdGFjaG93aWFrLgotCi0gICAgICAgIE51a2UgdGhlIHBlcmZvcm1JbXBvcnQoKSBJ
Y29uRGF0YWJhc2VDbGllbnQgbWV0aG9kLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGZhdmlj
b25kYXRhYmFzZS5jcHA6Ci0gICAgICAgIChJY29uRGF0YWJhc2VDbGllbnRHdGspOgotCi0yMDEy
LTEwLTAxICBBcm5hdWQgUmVuZXZpZXIgIDxhLnJlbmV2aWVyQHNpc2Euc2Ftc3VuZy5jb20+Ci0K
LSAgICAgICAgW0d0a10gY3Jhc2ggd2hlbiBhY2NlbGVyYXRlZCBjb21wb3NpdGlvbiBpcyB0dXJu
ZWQgb2ZmCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODA5OQotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBm
cmFtZS0+dmlldygpLT51cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCkgbWF5
IHJlc2V0IHJvb3QKLSAgICAgICAgY29tcG9zaXRpbmcgbGF5ZXIgaW4gZmx1c2hBbmRSZW5kZXJM
YXllcnMuIFNvLCB3ZSBjaGVjayBpZiBjb21wb3NpdGluZwotICAgICAgICBpcyBlbmFibGVkIGFm
dGVyd2FyZHMsIGFuZCByZXR1cm4gaWYgaXQgaXMgbm90LgotCi0gICAgICAgIFRoaXMgYnVnIGlz
IGhhbmRsZWQgYnkgTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdG9nZ2xlLWNvbXBvc2l0aW5nLmh0
bWwKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0R0wuY3BwOgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dDo6Zmx1c2hBbmRSZW5kZXJMYXllcnMpOgotCi0yMDEyLTEwLTAxICBDbGF1ZGlvIFNhYXZlZHJh
ICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gU2F2ZSBvcmlnaW5hbCB1
cmkgZm9yIGRvd25sb2FkZWQgZmlsZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk1MTg4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNp
YSBDYW1wb3MuCi0KLSAgICAgICAgZ3ZmcyBzdG9yZXMgbWV0YWRhdGEgbG9jYWxseSwgYW5kIHRo
aXMgaW5mb3JtYXRpb24gY2FuIGxhdGVyIGJlCi0gICAgICAgIHVzZWQgYnkgZmlsZSBtYW5hZ2Vt
ZW50IGFwcGxpY2F0aW9ucy4gQmFzZWQgb24gYSBwYXRjaCBieQotICAgICAgICBBbGV4YW5kZXIg
TGFyc3NvbiA8YWxleGxAcmVkaGF0LmNvbT4uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93
bmxvYWQuY3BwOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX29wZW5fc3RyZWFtX2Zvcl91cmkp
OiBTYXZlIHRoZSBkb3dubG9hZC11cmkgYXMKLSAgICAgICAgZmlsZSBtZXRhZGF0YS4KLQotMjAx
Mi0xMC0wMSAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFtHVEtdIFdlYktpdERvd25sb2FkOiB1c2UgbW9yZSBvZiBHT3duUHRyL0dSZWZQdHIKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MDA5Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCi0KLSAgICAgICAgVXNlIG1v
cmUgR093blB0ci9HUmVmUHRyIGluIFdlYktpdERvd25sb2FkCi0KLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX29wZW5fc3RyZWFt
X2Zvcl91cmkpOiBVc2UgR1JlZlB0cgotICAgICAgICBmb3IgYSBHRmlsZSBhbmQgR093blB0ciBm
b3IgR0Vycm9yLgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX3NldF9kZXN0aW5hdGlvbl91cmkp
OiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9yZWNlaXZlZF9kYXRhKTogVXNlIEdP
d25QdHIgZm9yIEdFcnJvci4KLQotMjAxMi0wOS0yOCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlr
aGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KLQotICAgICAgICBDb2RlIGluc2lkZSBGcmFtZUxv
YWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlKCkgaW1wbGVtZW50YXRpb25zIGNhbiBiZSBzaGFy
ZWQgYW1vbmcgZGlmZmVyZW50IFdLIHBvcnRzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NzU0NwotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCi0KLSAgICAgICAgTmV3bHkgYWRkZWQgV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6Y2Fu
U2hvd01JTUVUeXBlKCkgZnVuY3Rpb24gaXMgdXNlZAotICAgICAgICBpbnNpZGUgV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlKCkuCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGUpOgotCi0yMDEyLTA5LTI4ICBIdWFuZyBEb25n
c3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgotCi0gICAgICAgIFtHVEtdIEVuYWJsZSBD
U1MgU2hhZGVycyBsYXlvdXQgTGF5b3V0VGVzdHMgb24gR1RLKwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc4MjEKLQotICAgICAgICBSZXZpZXdlZCBi
eSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
ZXRDU1NDdXN0b21GaWx0ZXJFbmFibGVkKTogUGFzcyB0aHJvdWdoIHRvIFNldHRpbmdzIG9iamVj
dC4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoK
LSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0KLTIwMTItMDktMjcgIEFsbGFu
IFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+Ci0KLSAgICAgICAgVW5p
ZnkgZXZlbnQgaGFuZGxpbmcgb2YgbWlkZGxlIG1vdXNlIGJ1dHRvbi4KLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3NjkwCi0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgVG9ueSBDaGFuZy4KLQotICAgICAgICBSZW1vdmUgcG9ydCBzcGVjaWZpYyBoYW5kbGlu
ZyBvZiBtaWRkbGUgbW91c2UgYnV0dG9uIHByZXNzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpz
dXBwb3J0c0dsb2JhbFNlbGVjdGlvbik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmg6Ci0gICAgICAgIChFZGl0b3JDbGllbnQpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19idXR0b25fcHJlc3Nf
ZXZlbnQpOgotCi0yMDEyLTA5LTI2ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUu
b3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIDEyOTcwNy4KLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19mb3J3YXJkX2NvbnRleHRfbWVudV9ldmVudCk6Ci0KLTIwMTItMDktMjYgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFVzZSBYRGFtYWdl
IHRvIHNpbXBsaWZ5IFJlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93Ci0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NzI2NwotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEFsZWphbmRybyBHLiBDYXN0cm8uCi0KLSAgICAgICAgVXNlIFhEYW1hZ2UgdG8gcXVldWUg
cmVkcmF3cyBvZiB0aGUgd2lkZ2V0IHdoZW4gcmVkaXJlY3RpbmcgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcKLSAgICAgICAgdG8gYW4gb2Zmc2NyZWVuIHdpbmRvdy4gVGhpcyBhbGxvd3MgcmVtb3Zp
bmcgYSBmaW5pY2t5IHRpbWVyLWJhc2VkIGFwcHJvYWNoLCBpbXByb3ZlcwotICAgICAgICBwZXJm
b3JtYW5jZSwgYW5kIGFsbG93cyBzaW1wbGlmeWluZyB0aGluZ3MgZ3JlYXRseS4KLQotICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOiBBZGQgdGhlIFhEYW1hZ2UgQ0ZMQUdTIGFuZCBMSUJTLgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Lmg6Ci0g
ICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCk6IENoYW5nZSB0aGUgc2lnbmF0
dXJlIG9mIGNvbXBvc2l0ZUxheWVyc1RvQ29udGV4dAotICAgICAgICB0byBhY2NlcHQgYW4gZW51
bSB0aGF0IGV4cGxhaW5zIHRoZSBjb21wb3NpdGUgcHVycG9zZS4KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6cmVkaXJlY3RlZFdpbmRvd0RhbWFnZWRDYWxsYmFjayk6IEFkZGVkLgotICAgICAgICAo
V2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6aW5pdGlhbGl6ZSk6IEhhbmRs
ZSB0aGUgc2l0dWF0aW9uIHdoZXJlCi0gICAgICAgIHRoZSBSZWRpcmVjdGVkWENvbXBvc2l0ZVdp
bmRvdyByZXR1cm5zIGEgbnVsbCBwb2ludGVyLgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dDo6ZW5hYmxlZCk6IERpdHRvLgotICAgICAgICAoV2ViS2l0OjpB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cmVuZGVyTGF5ZXJzVG9XaW5kb3cpOiBSZW1v
dmUgdGhlIGNvZGUgaGFuZGxpbmcKLSAgICAgICAgdGhlIHVzYWJsZSBzaXplIG9mIHRoZSBSZWRp
cmVjdGVkWENvbXBvc2l0ZVdpbmRvdy4gVGhlIHVzYWJsZSBzaXplIGlzIG5vdyBhbHdheXMgZXF1
YWwKLSAgICAgICAgdG8gdGhlIHNpemUuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Ojpjb21wb3NpdGVMYXllcnNUb0NvbnRleHQpOiBXaGVuIGRyYXdpbmcg
Zm9yIGEKLSAgICAgICAgcmVzaXplLCBmaXJzdCBjbGVhciB0aGUgZW50aXJlIGNvbnRleHQuIFJl
bW92ZSB0aGUgZG91YmxlIHN3YXAtYnVmZmVyLCBhcyBpdCdzIG5vCi0gICAgICAgIGxvbmdlciBu
ZWNlc3NhcnkuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
OjpzZXRSb290Q29tcG9zaXRpbmdMYXllcik6IEhhbmRsZSB0aGUgY2FzZSB0aGF0Ci0gICAgICAg
IHRoZSByZWRpcmVjdGVkIHdpbmRvdyBpcyBudWxsLgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cmVzaXplUm9vdExheWVyKTogSW5zdGVhZCBvZiBkb2lu
ZyBhbm90aGVyCi0gICAgICAgIGltbWVkaWF0ZSBsYXllciBmbHVzaCwganVzdCByZWNvbXBvc2l0
ZSB0aGUgY3VycmVudCBsYXllciBzdGF0ZSBhbmQgc2NoZWR1bGUgYSBuZXcKLSAgICAgICAgZmx1
c2guIFRoaXMgc2hvdWxkIG1ha2UgcmVzaXppbmcgZmFzdGVyLgotICAgICAgICAoV2ViS2l0OjpB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6Zmx1c2hBbmRSZW5kZXJMYXllcnMpOiBXZSBu
byBsb25nZXIgbmVlZCB0bwotICAgICAgICBxdWV1ZSBhIHJlZHJhdywgdW5sZXNzIHdlIHdhbnQg
dG8gZm9yY2Ugb25lLgotCi0yMDEyLTA5LTI2ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0Bn
bWFpbC5jb20+Ci0KLSAgICAgICAgW0dUS10gRW5hYmxlIHNvbWUgb2YgdGhlIHVuc3RhYmxlIENT
UyBmZWF0dXJlcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTc1NzIKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAg
ICAgQWRkIGEgaGVscGVyIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayBtZXRob2QgZm9yIGVuYWJs
aW5nCi0gICAgICAgIHRoZSA8c3R5bGUgc2NvcGVkPiBzdXBwb3J0IGluIFdlYkNvcmUuIFRoaXMg
aXMgdXNlZCBpbiBEdW1wUmVuZGVyVHJlZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnNldFNoYWRvd0RPTUVuYWJsZWQpOiBBZGQgbWlzc2luZwotICAgICAgICBFTkFCTEUo
U0hBRE9XX0RPTSkgY29tcGlsYXRpb24gZ3VhcmRzLgotICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpzZXRTdHlsZVNjb3BlZEVuYWJsZWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrKTogUmVtb3ZlIHRoZSAnZW5hYmxlZCcgcGFyYW1ldGVyIG5hbWUgZnJvbSBib3Ro
Ci0gICAgICAgIHNldFNoYWRvd0RPTUVuYWJsZWQgYW5kIHNldFN0eWxlU2NvcGVkRW5hYmxlZCBt
ZXRob2QgZGVjbGFyYXRpb25zIGFzIGl0IGFkZHMKLSAgICAgICAgbm8gaW5mb3JtYXRpb24gYW5k
IGlzIGNhdXNpbmcgc3R5bGUgd2FybmluZ3MuCi0KLTIwMTItMDktMjUgIEJldGggRGFraW4gIDxi
ZGFraW5AYXBwbGUuY29tPgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTM5NwotICAgICAgICBOZWVkIHRvIG1lcmdlIGRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dCBhbmQgCi0gICAgICAgIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dAotICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCi0gICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMDc5MTY4MD4KLQotICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAg
IFJlbW92ZSBkaXNwYXRjaERpZEZpcnN0TGF5b3V0LCAKLSAgICAgICAgZGlzcGF0Y2hEaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQsIGFuZCAKLSAgICAgICAgZGlzcGF0Y2hEaWROZXdGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQuIFRoZWlyIGZ1bmN0aW9uYWxpdHkgCi0gICAgICAgIGlz
IG5vdyByZXBsYWNlZCBieSBkaXNwYXRjaERpZExheW91dChMYXlvdXRNaWxlc3RvbmVPcHRpb25z
KQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTGF5b3V0KToKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotICAgICAgICAo
RnJhbWVMb2FkZXJDbGllbnQpOgotCi0gICAgICAgIEl0IGlzIG5vdyBuZWNlc3NhcnkgdG8gb3B0
IGludG8gZ2V0dGluZyBhbnkgb2YgdGhlIAotICAgICAgICAibGF5b3V0IG1pbGVzdG9uZSIgbm90
aWZpY2F0aW9ucy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6Ci0KLTIwMTItMDktMjUgIFBhd2XFgiBGb3J5c2l1ayAg
PHR1eGF0b3JAbzIucGw+Ci0KLSAgICAgICAgW0dUS10gV2Via2l0IDEuOC4yIGZhaWxzIHRvIGJ1
aWxkIHdpdGggTWluR1cgd2l0aCBzcGVsbGNoZWNraW5nIGVuYWJsZWQKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMjU1Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEJ1aWxkIGRpZXMgYmVjYXVzZSBvZiBp
bnZhbGlkIGNhc3QuIEFkZGl0aW9uYWx5IHdvcmQgImludGVyZmFjZSIgaXMgaW4gdXNlIHdpdGgg
TWluR1cgY29tcGlsZXIuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50R3RrOjpjaGVj
a1NwZWxsaW5nT2ZTdHJpbmcpOiBVc2UgU3RyaW5nIHRvIGF2b2lkIHVubmVkZWQgY2FzdGluZwot
ICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcDoKLSAgICAgICAg
KHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfc3BlbGxfY2hlY2tlcl9pbnRlcmZhY2VfaW5p
dCk6IHJlbmFtZSBpbnRlcmZhY2UgLT4gY2hlY2tlckludGVyZmFjZQotCi0yMDEyLTA5LTI0ICBC
ZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgotCi0gICAgICAgIEZpeCBHZW9s
b2NhdGlvbiBlcnJvciByZXBvcnRpbmcgaW4gdGhlIHRlc3Qgc3VwcG9ydAotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTczODYKLQotICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yKToKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0KLTIwMTItMDktMjQgIFphbiBEb2JlcnNlayAgPHphbmRv
YmVyc2VrQGdtYWlsLmNvbT4KLQotICAgICAgICBbR3RrXSBVbnNraXAgdGhlIFNoYWRvdyBET00g
bGF5b3V0IHRlc3RzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MDc3NgotCi0gICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KLQotICAgICAg
ICBBZGQgYSBtZXRob2QgZm9yIGVuYWJsaW5nIHRoZSBTaGFkb3cgRE9NIHRocm91Z2ggUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy4KLSAgICAgICAgVGhlIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSBEdW1w
UmVuZGVyVHJlZSB3aGVuIHJlc2V0dGluZyBzdGF0ZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OnNldFNoYWRvd0RPTUVuYWJsZWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrKToKLQotMjAxMi0wOS0yNCAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGludGVsLmNv
bT4KLQotICAgICAgICBbR1RLXSBJbXBsZW1lbnQgR3JhcGhpY3NMYXllciB1c2luZyBDbHV0dGVy
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzc2Nwot
Ci0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBUaGlzIHBh
dGNoIGlzIG5lZWRlZCBmb3IgZW5hYmxpbmcgQWNjZWxlcmF0ZWQgQ29tcG9zaXRpbmcoQ2x1dHRl
ciBiYWNrZW5kKQotICAgICAgICB3aXRoIHRoZSBwYXRjaGVzIHN1Ym1pdHRlZCBpbiBidWcgOTIw
NDUgYW5kIDkxOTQwLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcDoKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQ6OnNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyk6IEFkZGVkIHRv
IGZpeCBidWxpZCBicmVhay4KLSAgICAgICAgKFdlYktpdCk6Ci0KLTIwMTItMDktMTkgIERhbmls
byBDZXNhciBMZW1lcyBkZSBQYXVsYSAgPGRhbmlsby5jZXNhckBjb2xsYWJvcmEuY28udWs+Ci0K
LSAgICAgICAgW2d0a10gYWRkIGVuYWJsZS1tZWRpYS1zdHJlYW0gdG8gd2Vic2V0dGluZ3MKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MzYxCi0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEFwcGxpY2F0aW9u
cyBzaG91bGQgYmUgYWxsb3dlZCB0byBlbmFibGUvZGlzYWJsZSBNZWRpYVN0cmVhbSBvbiB3ZWJr
aXR3ZWJzZXR0aW5ncy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICAod2Vi
a2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0
aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3By
aXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLQotMjAxMi0wOS0xNCAgWmFuIERvYmVy
c2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgotCi0gICAgICAgIFtHVEtdIENsZWFyIGFwcGxp
Y2F0aW9uIGNhY2hlIGJldHdlZW4gdGVzdHMgaW4gRHVtcFJlbmRlclRyZWUKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NTQzCi0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KLQotICAgICAgICBBZGQgYSBtZXRob2QgdG8gdGhl
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayBjbGFzcyB0aGF0IHVwb24gY2FsbGluZwotICAgICAg
ICBjbGVhcnMgdGhlIGFwcGxpY2F0aW9uIGNhY2hlIGFuZCB2YWN1dW1zIHRoZSBkYXRhYmFzZSBm
aWxlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y2xlYXJBcHBsaWNhdGlv
bkNhY2hlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuaDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0KLTIwMTItMDktMTMg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjg0NTMuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzEyODQ1MwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTY2ODEKLQotICAgICAgICBIYXZpbmcgdGVzdHMgdXNlIHRoZSBzYW1l
IGFwcGNhY2hlIGRpcmVjdG9yeSBsZWFkcyB0byB0aW1lb3V0cwotICAgICAgICAoUmVxdWVzdGVk
IGJ5IHpkb2JlcnNlayBvbiAjd2Via2l0KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OmNsZWFyTWVtb3J5Q2FjaGUpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
KToKLQotMjAxMi0wOS0xMyAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgot
Ci0gICAgICAgIFtHVEtdIENsZWFyIGFwcGxpY2F0aW9uIGNhY2hlIGJldHdlZW4gdGVzdHMgaW4g
RHVtcFJlbmRlclRyZWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk2NTQzCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KLQot
ICAgICAgICBBZGQgYSBtZXRob2QgdG8gdGhlIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayBjbGFz
cyB0aGF0IHVwb24gY2FsbGluZwotICAgICAgICBjbGVhcnMgdGhlIGFwcGxpY2F0aW9uIGNhY2hl
IGFuZCB2YWN1dW1zIHRoZSBkYXRhYmFzZSBmaWxlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlKToKLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ayk6Ci0KLTIwMTItMDktMTIgIFNpcmFqIFJhemljayAgPHNpcmFqLnJhemlja0Bj
b2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgW0dUS10gVXBkYXRlIEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Q2x1dHRlciB0byBtYXRjaCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dC5oIEFQSSB1cGRhdGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk2MTY1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0g
ICAgICAgIER1ZSB0byB0aGUgcmVmYWN0b3JpbmcgZG9uZSBpbiBidWcgIzkwMDg1IEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0IEFQSSBjaGFuZ2VkLCBhcyBhIHJlc3VsdAotICAgICAgICBB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIgZG9lc24ndCBjb21waWxlIGFueW1v
cmUuIFRoaXMgcGF0Y2ggaXMgdG8gdXBkYXRlIHRoZQotICAgICAgICBBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dENsdXR0ZXIgaW1wbGVtZW50YXRpb25zIHRvIG1hdGNoIHRoZSBBUEkgdXBk
YXRlLCBhbmQgTWFrZSB3ZWJraXQKLSAgICAgICAgQUMgYmFja2VuZCBjb21waWxlIGFnYWluLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRD
bHV0dGVyLmNwcDoKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAgKFdlYktpdDo6QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6On5BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dCk6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzZXRS
b290Q29tcG9zaXRpbmdMYXllcik6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0OjpzZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSk6Ci0gICAg
ICAgIChXZWJLaXQ6OmZsdXNoQW5kUmVuZGVyTGF5ZXJzQ2FsbGJhY2spOgotICAgICAgICAoV2Vi
S2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2NoZWR1bGVMYXllckZsdXNoKToK
LSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVu
ZGluZ0xheWVyQ2hhbmdlcyk6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0OjpmbHVzaEFuZFJlbmRlckxheWVycyk6Ci0KLTIwMTItMDktMTEgIEFybmF1ZCBS
ZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KLQotICAgICAgICBbR3RrXSBh
bGxvdyBidWlsZGluZyB3aXRoIGNzcy1zaGFkZXJzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTYwMwotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRp
biBSb2JpbnNvbi4KLQotICAgICAgICBBZGQgZW5hYmxlLWNzcy1zaGFkZXJzIHByb3BlcnR5IHRv
IFdlYktpdCBXZWJTZXR0aW5ncywgYW5kIGNvbm5lY3RzIGl0Ci0gICAgICAgIHRvIFdlYkNvcmUg
c2V0dGluZ3Mgc2V0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZC4KLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNz
X2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotICAg
ICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEyLTA5LTA5ICBF
bWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZW5hbWUgTm9kZTo6
Z2V0UmVjdC9nZXRQaXhlbFNuYXBwZWRSZWN0IGFuZCByZW1vdmUgQ29udGFpbmVyTm9kZTo6Z2V0
UmVjdAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0
MTMKLQotICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KLQotICAgICAgICBVcGRhdGUg
Q2hyb21lQ2xpZW50R3RrIGFuZCB3ZWJraXR3ZWJ2aWV3IHRvIGNhbGwgcGl4ZWxTbmFwcGVkQm91
bmRpbmdCb3guCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgIChnZXRMb2Nh
dGlvbkZvcktleWJvYXJkR2VuZXJhdGVkQ29udGV4dE1lbnUpOgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X3F1ZXJ5X3Rvb2x0aXApOgotCi0yMDEyLTA5LTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxt
cm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBNb3ZlIHVzZXIgYWdlbnQgaGVs
cGVycyB0byBXZWJDb3JlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NTc0NQotCi0gICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9z
LgotCi0gICAgICAgIE1vdmUgdGhlIGNvZGUgZm9yIGRldGVybWluaW5nIHRoZSB1c2VyIGFnZW50
IHRvIFdlYkNvcmUgYW5kIGhhdmUgV2ViS2l0MQotICAgICAgICB1c2UgdGhlIG5ldyBzaGFyZWQg
Y29kZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6IFVzZSB0aGUg
V2ViQ29yZSBjb2RlIHRvIGRldGVybWluZSB0aGUgdXNlcgotICAgICAgICBhZ2VudCBpbiBXZWJL
aXQxLgotCi0yMDEyLTA5LTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+Ci0KLSAgICAg
ICAgUGFydCAyIG9mIHJlbW92aW5nIFBsYXRmb3JtU3RyaW5nLmgsIHJlbW92ZSBQbGF0Zm9ybVN0
cmluZy5oCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NTkzMQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgUmVtb3Zl
IFBsYXRmb3JtU3RyaW5nLmgKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
OgotICAgICAgICAqIGdkb20vQ29udmVydFRvR0NoYXJQcml2YXRlLmg6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
ZGF0YXNvdXJjZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNw
cDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgotCi0yMDEyLTA5LTA2
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBb
R1RLXSBBZGQgQVBJIHRvIGdldC9zZXQgdGhlIHNlY3VyaXR5IHBvbGljeSBvZiBhIGdpdmVuIFVS
SSBzY2hlbWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk1NTQ5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAg
IEFkZCBXZWJLaXRTZWN1cml0eVBvbGljeSBlbnVtIHdpdGggZmxhZ3MgdGhhdCByZXByZXNlbnQg
dGhlCi0gICAgICAgIHNlY3VyaXR5IHBvbGljeSBvZiBhIFVSSSBzY2hlbWUuIEFkZCBtZXRob2Rz
IHRvIGdldCBhbmQgc2V0IHRoZQotICAgICAgICBzZWN1cml0eSBwb2xpY3kgZmxhZ3MgZm9yIGEg
Z2l2ZW4gVVJJIHNjaGVtZS4KLQotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLXNlY3Rpb25zLnR4
dDogQWRkIG5ldyBzeW1ib2xzLgotICAgICAgICAqIHRlc3RzL3Rlc3RnbG9iYWxzLmM6Ci0gICAg
ICAgICh0ZXN0X2dsb2JhbHNfc2VjdXJpdHlfcG9saWN5KToKLSAgICAgICAgKG1haW4pOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXRnbG9iYWxzLmNwcDoKLSAgICAgICAgKHdlYmtpdF9zZXRfc2Vj
dXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKToKLSAgICAgICAgKHdlYmtpdF9nZXRfc2VjdXJp
dHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFs
cy5oOgotCi0yMDEyLTA5LTA1ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3Jv
bGEuY29tPgotCi0gICAgICAgIFtEUlRdIExUQzo6IE1vdmUgcHJpbnRpbmcgcmVsYXRlZCBBUElz
IGZyb20gTGF5b3V0VGVzdENvbnRyb2xsZXIgdG8gSW50ZXJuYWxzCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjczNQotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEhhamltZSBNb3JpdGEuCi0KLSAgICAgICAgTW92ZSBudW1iZXJPZlBhZ2VzLCBwYWdlUHJv
cGVydHkgJiBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyBpbiBJbnRlcm5hbHMgYW5kIHJlbW92
ZSBkdXBsaWNhdGVkIGNvZGUgZnJvbSBEdW1wcmVuZGVyVHJlZSAmIFdlYmtpdFRlc3RSdW5uZXIu
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3Bw
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgot
ICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKLQotMjAxMi0wOS0wNCAgSm9hbm1h
cmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gQ3Jhc2ggaW4g
QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmplY3Qo
KQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3NDAK
LQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgVXBkYXRl
ZCB1bml0IHRlc3QuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0
V2Via2l0QXRrQ29tYm9Cb3gpOiBBZGRlZCBjaGVja3MgdGhhdCB0aGUgbWVudSBwb3B1cCBpbiBh
IGNvbWJvIGJveAotICAgICAgICBoYXMgMCBsaW5rcyBhbmQsIG1vcmUgaW1wb3J0YW50bHksIHRo
YXQgY2hlY2tpbmcgZG9lc24ndCByZXN1bHQgaW4gYSBjcmFzaC4KLQotMjAxMi0wOS0wMSAgSm9h
bm1hcmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0d0a10gSW5jb3Jy
ZWN0L3VuZXhwZWN0ZWQgY2hhcmFjdGVycyBpbiB0aGUgdGV4dCBvZiBjZXJ0YWluIGFjY2Vzc2li
bGVzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTE4
MAotCi0gICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgotCi0gICAgICAgIENvcnJl
Y3RlZCBhIHVuaXQgdGVzdCBpbiB3aGljaCB0aGUgZXhwZWN0ZWQgYWNjZXNzaWJsZSB0ZXh0IHdh
cyB3cm9uZyBhcwotICAgICAgICBhIHJlc3VsdCBvZiB0aGlzIGJ1Zy4gSW4gcGFydGljdWxhciwg
dGhlIEF0a1RleHQgaW5zZXJ0ZWQgaW50byBhbiBlbXB0eQotICAgICAgICB0ZXh0IGZpZWxkIGlz
IGV4cGVjdGVkIHRvIGJlIHRoZSBzYW1lIHRleHQgYXRrX3RleHRfZ2V0X3RleHQoKSByZXR1cm5z
LgotICAgICAgICBUaGF0IHdhcyBub3QgaGFwcGVuaW5nIC0tIGFuZCBwcmVzdW1hYmx5IG5vdCBu
b3RpY2VkIGFzIGEgcmVzdWx0IG9mIHRoZQotICAgICAgICBoYXJkIHRvIHJlYWQgdGV4dHVhbCBy
ZXByZXNlbnRhdGlvbiBvZiB0aGUgbXVsdGlieXRlIHBhc3N3b3JkIGZpZWxkCi0gICAgICAgIGJ1
bGxldHMuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0V2Via2l0
QXRrVGV4dENoYW5nZWROb3RpZmljYXRpb25zKTogQ29ycmVjdGVkIHRoZSB0ZXN0IGFuZCBhZGRl
ZCBhCi0gICAgICAgIGNvbW1lbnQgc28gdGhhdCBvbmUga25vd3Mgd2hhdCB0aGUgbXVsdGlieXRl
IGNoYXJhY3RlciBpcy4KLQotMjAxMi0wOC0zMSAgSm9zw6kgRGFwZW5hIFBheiAgPGpkYXBlbmFA
aWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBBc3NlcnQgb24gQ2hyb21lQ2xpZW50R3RrOjpz
Y3JvbGwgd2l0aCBkZWx0YSAoMCwgLTEpLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTU1OTAKLQotICAgICAgICBDaGFuZ2UgdGhlIGFzc2VydCB0byBh
dm9pZCBoaXR0aW5nIHdoZW4gdGhlIGRlbHRhIGRvZXMgbm90IGhhdmUgYW55Ci0gICAgICAgIHZh
bHVlID4gMC4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnQ6OnNjcm9sbCk6Ci0KLTIwMTItMDgtMzAgIEJlbmphbWluIFBvdWxhaW4g
IDxicG91bGFpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmVwbGFjZSBKU0M6OlVTdHJpbmcgYnkg
V1RGOjpTdHJpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk1MjcxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCi0KLSAgICAg
ICAgUmVwbGFjZSBVU3RyaW5nIGJ5IFN0cmluZy4KLQotICAgICAgICAqIGdkb20vQ29udmVydFRv
R0NoYXJQcml2YXRlLmg6Ci0gICAgICAgIChjb3B5QXNHY2hhcik6Ci0KLTIwMTItMDgtMzAgIEd5
dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KLQotICAgICAgICBVc2UgQVND
SUlMaXRlcmFsIGZvciBERUZJTkVfU1RBVElDX0xPQ0FMIHN0cmluZwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU0MjAKLQotICAgICAgICBSZXZpZXdl
ZCBieSBCZW5qYW1pbiBQb3VsYWluLgotCi0gICAgICAgIEFzIHJlY29tbWVuZGVkIGJ5IGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvd2lraS9FZmZpY2llbnRTdHJpbmdzLAotICAgICAgICBXZWJLaXQg
bmVlZHMgdG8gdXNlIEFTQ0lJTGl0ZXJhbCBmb3IgdGhlIHN0cmluZyBvZiBERUZJTkVfU1RBVElD
X0xPQ0FMLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAg
ICAgKHdlYmtpdFBsYXRmb3JtKToKLSAgICAgICAgKHdlYmtpdE9TVmVyc2lvbik6Ci0KLTIwMTIt
MDgtMjkgIEpvc8OpIERhcGVuYSBQYXogIDxqZGFwZW5hQGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
W0d0a10gUHJvY2VzcyBHdGsgMy40IHNtb290aCBzY3JvbGwgZXZlbnRzIHByb3Blcmx5LgotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgwNzAKLQotICAg
ICAgICBHdGsgMy4zLjE4IGFkZGVkIHNtb290aCBzY3JvbGwgZXZlbnRzLCBhZGRpbmcgYSBuZXcg
c2Nyb2xsIGRpcmVjdGlvbiB0aGF0Ci0gICAgICAgIHByb3ZpZGVzIGRldGFpbGVkIGRlbHRhIGlu
Zm9ybWF0aW9uLgotCi0gICAgICAgIEFkZGVkIEdES19TTU9PVEhfU0NST0xMX01BU0sgdG8gdGhl
IGV2ZW50cyBsaXN0ZW5lZCwgYW5kIGFkZGVkCi0gICAgICAgIGNvZGUgdG8gcHJvY2VzcyBwcm9w
ZXJseSB0aGUgbmV3IGRpcmVjdGlvbiBHREtfU0NST0xMX1NNT09USCBhbmQKLSAgICAgICAgaXRz
IGRlbHRhcy4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
cmVhbGl6ZSk6Ci0KLTIwMTItMDgtMjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFtHVEtdIEVuYWJsZSB0aGUgZWRnZSBkaXN0YW5jZSBhbnRpLWFs
aWFzaW5nIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBsYXllcnMKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MjcyCi0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgTm8nYW0gUm9zZW50aGFsLgotCi0gICAgICAgIFR1cm4gb24gZWRnZS1kaXN0YW5jZSBh
bnRpLWFsaWFzaW5nIGZvciBHVEsrIFdlYktpdDEuIFRoaXMKLSAgICAgICAgaW1wcm92ZXMgdGhl
IHF1YWxpdHkgb2YgbGF5ZXIgcmVuZGVyaW5nLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojppbml0aWFsaXplKToKLQotMjAxMi0wOC0yOCAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNjkxNC4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTI2OTE0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NTIzOQotCi0gICAgICAgIGl0IGJyZWFrcyBldmVyeXRoaW5nIGFuZCBm
aXhlcyBub3RoaW5nIChSZXF1ZXN0ZWQgYnkgcGl6bG8gb24KLSAgICAgICAgI3dlYmtpdCkuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsuY3BwOgotICAg
ICAgICAoUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpnZXRQbHVnaW5JbmZvKToKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDoKLSAgICAgICAgKHdlYmtpdEZhdmljb25E
YXRhYmFzZUltcG9ydEZpbmlzaGVkKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2lu
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfcGx1Z2luX2dldF9taW1ldHlwZXMpOgotCi0yMDEy
LTA4LTI4ICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9w
ZW5ib3NzYS5vcmc+Ci0KLSAgICAgICAgUmVuYW1lIGZpcnN0L3NlY29uZCB0byBrZXkvdmFsdWUg
aW4gSGFzaE1hcCBpdGVyYXRvcnMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgyNzg0Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsuY3BwOgotICAg
ICAgICAoUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpnZXRQbHVnaW5JbmZvKToKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDoKLSAgICAgICAgKHdlYmtpdEZhdmljb25E
YXRhYmFzZUltcG9ydEZpbmlzaGVkKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2lu
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfcGx1Z2luX2dldF9taW1ldHlwZXMpOgotCi0yMDEy
LTA4LTI3ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+Ci0KLSAgICAgICAg
W0dUS10gTWVtb3J5IGNhY2hlIHNob3VsZCBiZSBjbGVhcmVkIGluIGJldHdlZW4gdGVzdCBydW5z
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTEwNQot
Ci0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBBZGQgYSBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsgaGVscGVyIG1ldGhvZCB0aGF0IGNsZWFycyB0aGUKLSAg
ICAgICAgbWVtb3J5IGNhY2hlIHdoZW4gY2FsbGVkLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6Y2xlYXJNZW1vcnlDYWNoZSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGspOgotCi0yMDEyLTA4LTI3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI2ODM2LgotICAg
ICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjY4MzYKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MTYzCi0KLSAgICAgICAgQnJv
a2UgYWxsIEFwcGxlIHBvcnRzLCBFRkwsIGFuZCBRdC4gKFJlcXVlc3RlZCBieSB0a2VudCBvbgot
ICAgICAgICAjd2Via2l0KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3Ry
YXRlZ2llc0d0ay5jcHA6Ci0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmdldFBsdWdp
bkluZm8pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwOgotICAg
ICAgICAod2Via2l0RmF2aWNvbkRhdGFiYXNlSW1wb3J0RmluaXNoZWQpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJwbHVnaW4uY3BwOgotICAgICAgICAod2Via2l0X3dlYl9wbHVnaW5fZ2V0
X21pbWV0eXBlcyk6Ci0KLTIwMTItMDgtMjcgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxo
byAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KLQotICAgICAgICBSZW5hbWUgZmlyc3Qv
c2Vjb25kIHRvIGtleS92YWx1ZSBpbiBIYXNoTWFwIGl0ZXJhdG9ycwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI3ODQKLQotICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3Ry
YXRlZ2llc0d0ay5jcHA6Ci0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmdldFBsdWdp
bkluZm8pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwOgotICAg
ICAgICAod2Via2l0RmF2aWNvbkRhdGFiYXNlSW1wb3J0RmluaXNoZWQpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJwbHVnaW4uY3BwOgotICAgICAgICAod2Via2l0X3dlYl9wbHVnaW5fZ2V0
X21pbWV0eXBlcyk6Ci0KLTIwMTItMDgtMjcgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwu
cG96ZG55YWtvdkBpbnRlbC5jb20+Ci0KLSAgICAgICAgUmVuYW1lIFJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyIEFQSSB0byBOYXZpZ2F0b3JDb250ZW50VXRpbHMKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0OTIwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KLQotICAgICAgICBSZW5hbWluZyB3aGF0ZXZlciBSZWdpc3RlclByb3RvY29s
SGFuZGxlci1wcmVmaXhlZCB0byBOYXZpZ2F0b3JDb250ZW50VXRpbHMtcHJlZml4ZWQuCi0gICAg
ICAgIFJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50R3RrIGlzIHJlbmFtZWQgdG8gTmF2aWdh
dG9yQ29udGVudFV0aWxzQ2xpZW50R3RrLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50R3RrLmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1JlZ2lzdGVy
UHJvdG9jb2xIYW5kbGVyQ2xpZW50R3RrLmNwcC4KLSAgICAgICAgKFdlYktpdCk6Ci0gICAgICAg
IChXZWJLaXQ6Ok5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudDo6Y3JlYXRlKToKLSAgICAgICAg
KFdlYktpdDo6TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50OjpOYXZpZ2F0b3JDb250ZW50VXRp
bHNDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnQ6
OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9OYXZp
Z2F0b3JDb250ZW50VXRpbHNDbGllbnRHdGsuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50R3RrLmguCi0g
ICAgICAgIChXZWJLaXQpOgotICAgICAgICAoTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50KToK
LSAgICAgICAgKFdlYktpdDo6TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50Ojp+TmF2aWdhdG9y
Q29udGVudFV0aWxzQ2xpZW50KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXdwcml2YXRlLmg6Ci0KLTIwMTItMDgtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJFR1JFU1NJT04ocjEyNjMwNik6IGl0IGJy
b2tlIHRoZSBwbHVnaW4gcHJvY2VzcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTQ3OTcKLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0K
LSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLQotMjAxMi0wOC0yMiAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gQ3Jhc2ggd2hlbiBm
aW5hbGl6aW5nIFdlYktpdFdlYlZpZXcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk0Njk5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmlu
c29uLgotCi0gICAgICAgIENyZWF0ZSB0aGUgb2Zmc2NyZWVuIHdpbmRvdyB0aGUgZmlyc3QgdGlt
ZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZwotICAgICAgICBpcyBlbmFibGVkLCBzbyB0aGF0IGlm
IGl0J3MgbmV2ZXIgZW5hYmxlZCB0aGUgd2luZG93IHdvbid0IGJlCi0gICAgICAgIGNyZWF0ZWQu
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dEdMLmNwcDoKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6
OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAgKFdlYktpdDo6QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmluaXRpYWxpemUpOgotICAgICAgICAoV2ViS2l0OjpB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIpOgot
Ci0yMDEyLTA4LTIyICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0g
ICAgICAgIFtHVEtdIFNwbGl0IFdlYkNvcmUvcGxhdGZvcm0gaW50byBhIHNlcGFyYXRlIGxpYnJh
cnkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NDM1
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIE1vcmUg
cGVvcGxlIGhhdmUgYmVlbiByZXBvcnRpbmcgcHJvYmxlbXMgd2hlbiBsaW5raW5nIFdlYkNvcmUg
YmVjYXVzZQotICAgICAgICB0aGUgY29tbWFuZCBsaW5lIGxpbWl0IGlzIGJlaW5nIGV4Y2VlZGVk
LiBTcGxpdHRpbmcgV2ViQ29yZSBhIGJpdCBtb3JlCi0gICAgICAgIGlzIGluIG9yZGVyLgotCi0g
ICAgICAgICogR05VbWFrZWZpbGUuYW06IGxpbmsgbGliV2ViQ29yZVBsYXRmb3JtIGludG8gbGli
d2Via2l0Z3RrCi0KLTIwMTItMDgtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFByZWZlcnJlZCBsYW5ndWFnZXMgYW5kIHNwZWxs
Y2hlY2tlciBBUElzIGFyZSBub3QgY29uc2lzdGVudCBpbiBXZWJLaXQyCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDY4MwotCi0gICAgICAgIFJldmll
d2VkIGJ5IEFsZWphbmRybyBHLiBDYXN0cm8uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c3Bl
bGxjaGVja2VyZW5jaGFudC5jcHA6Ci0gICAgICAgICh1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3Vh
Z2VzKTogU3BsaXQgdGhlIGxhbmd1YWdlcyBzdHJpbmcgdG8gcGFzcyBhCi0gICAgICAgIFZlY3Rv
ciB0byB1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2VzKCkuCi0KLTIwMTItMDgtMjEgIEpvYW5t
YXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgotICAgICAgICBbR3RrXSBObyBhY2Nlc3Np
YmxlIGNhcmV0LW1vdmVkIGV2ZW50cyBmb3VuZCBpbiBjZXJ0YWluIGNvbnRlbnQKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyODExCi0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCi0KLSAgICAgICAgUGFydCBvZiB0aGUgYnVnIGlz
IGR1ZSB0byBvYmplY3RzIHdoaWNoIHNob3VsZCBjbGFpbSB0byBpbXBsZW1lbnQgQXRrVGV4dAot
ICAgICAgICBmYWlsZWQgdG8gZG8gc28gYXMgYSByZXN1bHQgb2YgY29udGFpbmluZyBhIG1peHR1
cmUgb2YgaW5saW5lIGFuZCBibG9jawotICAgICAgICBzcGFucy4KLQotICAgICAgICBBbiB1cGRh
dGVkIHVuaXQgdGVzdCB3YXMgcHJvdmlkZWQuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6
Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrQ2FyZXRPZmZzZXRzKTogQWRkZWQgaW5zdGFuY2VzIG9m
IG9iamVjdHMgY29udGFpbmluZyBhCi0gICAgICAgIG1peHR1cmUgb2YgaW5saW5lIGFuZCBibG9j
ayBzcGFucyBhbmQgdGVzdGVkIHRoYXQgdGhleSBpbXBsZW1lbnQgQXRrVGV4dAotICAgICAgICBh
bmQgY29udGFpbiB0aGUgcmlnaHQgdGV4dHVhbCBjb250ZW50cy4KLQotMjAxMi0wOC0yMSAgS2lo
b25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KLQotICAgICAgICBbRUZMXVtHVEtd
W0JsYWNrQmVycnldIEZpeCBidWlsZCBlcnJvciBpbiB0aGUgRGV2aWNlT3JpZW50YXRpb25DbGll
bnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NTg2
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgS2VudGFybyBIYXJhLgotCi0gICAgICAgIEZpeCBidWls
ZCBlcnJvciBpbiB0aGUgRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGsuY3BwLgotICAgICAgICBJ
dCBpcyBvY2N1cmVkIGJlY2F1c2UgRGV2aWNlT3JpZW50YXRpb24gaXMgY2hhbmdlZCB0byBEZXZp
Y2VPcmllbnRhdGlvbkRhdGEgaW4gdGhlIFdlYkNvcmUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50R3RrOjpsYXN0T3JpZW50YXRpb24pOgotCi0yMDEyLTA4LTIx
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RL
XSBVc2luZyBhIG5hdGl2ZSB3aW5kb3cgZm9yIHRoZSBXZWJWaWV3IGJyZWFrcyBHdGtPdmVybGF5
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDA4NQot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEFsZWphbmRybyBHLiBDYXN0cm8uCi0KLSAgICAgICAgUmV3
cml0ZSBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCBmb3IgVGV4dHVyZU1hcHBlckdMIHRv
IGJlIG1vcmUgc2ltaWxhciB0bwotICAgICAgICB0aGUgV2ViS2l0MiBMYXllclRyZWVIb3N0IGFu
ZCBzd2l0Y2ggZnJvbSByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIHdpZGdldCB3aW5kb3cKLSAg
ICAgICAgdG8gYSB3aW5kb3cgcmVkaXJlY3RlZCB0byBhIHBpeG1hcCB2aWEgWENvbXBvc2l0ZS4g
VGhlIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ci0gICAgICAgIG5vdyBoYW5kbGVzIHBh
aW50aW5nIHRoZSBub24tY29tcG9zaXRlZCBjb250ZW50IGl0c2VsZiBhbmQgbm8gbG9uZ2VyIHJl
bGllcyBvbiB0aGUKLSAgICAgICAgQ2hyb21lQ2xpZW50IGJhY2tpbmcgc3RvcmUuCi0KLSAgICAg
ICAgVGhpcyBmaXhlcyBpc3N1ZXMgd2l0aCB1c2luZyBHdGtPdmVybGF5IFdlYktpdFdlYlZpZXcg
YXMgd2VsbCBhcyBtYWtpbmcgaXQgcG9zc2libGUKLSAgICAgICAgdG8gcnVuIHBpeGVsIHRlc3Rz
IHdpdGggYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgdHVybmVkIG9uLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKLSAgICAgICAgKEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9B
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKLSAgICAgICAgUmVuYW1lIHNvbWUg
bWV0aG9kcyB0byBtYWtlIHRoZW0gbW9yZSBzaW1pbGFyIHRvIExheWVyVHJlZUhvc3QuIE5vdyB3
ZSB3YWl0IHRvIHJlbmRlcgotICAgICAgICB0aGUgT3BlbkdMIGNvbnRleHQgdG8gdGhlIHdpbmRv
dyB1bnRpbCB0aGUgd2lkZ2V0J3MgZHJhdyBzaWduYWwuIEVzY2FwZSBvdXQgb2YgYWxsCi0gICAg
ICAgIG1ldGhvZHMgZWFybHkgaWYgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgaXMgZGlzYWJsZWQu
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDogQWx3YXlzIGNo
ZWNrIGlmIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlzIG9uCi0gICAgICAgIGJlZm9yZSBjYWxs
aW5nIGludG8gQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgbWV0aG9kcy4gV2hlbiBBQyBp
cyBvbiwgbmV2ZXIgcGFpbnQKLSAgICAgICAgdGhlIGJhY2tpbmcgc3RvcmUsIGRlZmVycmluZyBp
bW1lZGlhdGVseSB0byB0aGUgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuIFdoZW4KLSAg
ICAgICAgQUMgaXMgdHVybmVkIG9uIHRoZSBiYWNraW5nIHN0b3JlIG5vdyBzaHJpbmtzIHRvIGEg
c21hbGwgc2l6ZSB0byBzYXZlIG1lbW9yeS4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5jcHA6Ci0gICAgICAgIChyZXNpemVXZWJWaWV3RnJvbUFsbG9jYXRpb24pOiBDaHJvbWVDbGll
bnQgaXMgbm93IHJlc3BvbnNpYmxlIGZvciB0YWxraW5nIHRvIHRoZQotICAgICAgICBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dCBkaXJlY3RseS4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19zaXplX2FsbG9jYXRlKTogRXhpdCBlYXJseSBpZiB0aGUgYWxsb2NhdGlvbiBpcyBub3QgYSBy
ZXNpemUuIFRoaXMKLSAgICAgICAgbWFrZXMgc29tZSBkZWVwZXIgbG9naWMgYSBiaXQgc2ltcGxl
ciBhbmQgYXZvaWRzIGFjY2lkZW50YWxseSBkb2luZyB0b28gbXVjaCB3b3JrIGZvcgotICAgICAg
ICB3aWRnZXQgbW92ZW1lbnQuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZSk6IFdl
IG5vIGxvbmdlciBuZWVkIGEgbmF0aXZlIHdpbmRvdy4KLQotMjAxMi0wOC0xNSAgSm9hbm1hcmll
IERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0d0a10gYXRrX3RleHRfc2V0
X2NhcmV0X29mZnNldCgpIGZhaWxzIGZvciB0YWJsZSBjZWxscwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM1MDEKLQotICAgICAgICBSZXZpZXdlZCBi
eSBDaHJpcyBGbGVpemFjaC4KLQotICAgICAgICBVcGRhdGUgdW5pdCB0ZXN0IHRvIGluY2x1ZGUg
c2V0dGluZyB0aGUgY2FyZXQgaW4gYSB0YWJsZSBjZWxsIHZpYSB0aGUgQXRrVGV4dCBpbnRlcmZh
Y2UuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRr
Q2FyZXRPZmZzZXRzKTogQWRkIHNldHRpbmcgdGhlIGNhcmV0IGluc2lkZSB0aGUgdGV4dCBvZiBh
IHRhYmxlIGNlbGwuCi0KLTIwMTItMDgtMTUgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFtHdGtdIGF0a190ZXh0X2dldF90ZXh0X2F0X29mZnNldCgpIGZh
aWxzIHRvIHByb3ZpZGUgdGhlIGNvcnJlY3QgbGluZSBmb3IgcGFyYWdyYXBocyBpbiBsaXN0IGl0
ZW1zIHdob3NlIHRleHQgd3JhcHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzNDM1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2gu
Ci0KLSAgICAgICAgVXBkYXRlZCB1bml0IHRlc3QgdG8gaW5jbHVkZSBhIHBhcmFncmFwaCBpbiBh
IGxpc3QgaXRlbSB3aGVuIHRlc3RpbmcgYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zmc2V0KCkuCi0K
LSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4
dEF0T2Zmc2V0V2l0aFNwZWNpYWxDaGFyYWN0ZXJzKToKLQotMjAxMi0wOC0xNCAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIERlbGV0ZSBGcmFtZTo6ZG9tV2luZG93
KCkgYW5kIEZyYW1lOjpleGlzdGluZ0RPTVdpbmRvdygpCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mzk5MAotCi0gICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgU2VpZGVsLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Z2V0UGVuZGlu
Z1VubG9hZEV2ZW50Q291bnQpOgotCi0yMDEyLTA4LTEzICBUb20gU2VwZXogIDx0c2VwZXpAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIFtjaHJvbWl1bV0gcmVsZWFzZSBGcmFtZUxvYWRlckNsaWVu
dEltcGw6Om1fcGx1Z2luV2lkZ2V0IHJlZnB0ciB1cG9uIFBsdWdpbiBEb2N1bWVudCBkZXRhY2gu
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzI4Mwot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIENoYW5nZSB0aGUg
Y2xpZW50IHJlZGlyZWN0RGF0YVRvUGx1Z2luIG1ldGhvZChzKSB0byBleHBlY3QgdGhlIHBvc3Np
YmlsaXR5IG9mCi0gICAgICAgIGEgTlVMTCBhcmd1bWVudCwga2VlcGluZyBleGlzdGluZyBiZWhh
dmlvdXIgb3RoZXJ3aXNlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJl
Y3REYXRhVG9QbHVnaW4pOgotCi0yMDEyLTA4LTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBEZWZhdWx0IHNpZ25hbCBoYW5kbGVyIGZv
ciBXZWJLaXRXZWJWaWV3OjpzaG91bGQtc2hvdy1kZWxldGUtaW50ZXJmYWNlLWZvci1lbGVtZW50
IG92ZXJyaWRlcyBkZWZhdWx0IHJlc3VsdAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTM2MDAKLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXou
Ci0KLSAgICAgICAgSW5zdGVhZCBvZiB1c2luZyB0aGUgZGVmYXVsdCBlZGl0aW5nIHNpZ25hbCBo
YW5kbGVyIGZvciA6OnNob3VsZC1zaG93LWRlbGV0ZS1pbnRlcmZhY2UtZm9yLWVsZW1lbnQsCi0g
ICAgICAgIGRvIG5vdCB1c2UgYSBkZWZhdWx0IHNpZ25hbCBoYW5kbGVyLiBUaGlzIG1lYW5zIHRo
YXQgdGhlIHJlc3VsdCBvZiB0aGUgc2lnbmFsIGRlZmF1bHRzIHRvIEZBTFNFLAotICAgICAgICB3
aGljaCBpcyB0aGUgZXhwZWN0ZWQgdmFsdWUgdG8gZW5zdXJlIHRoYXQgdGhlIGRlbGV0ZSBpbnRl
cmZhY2UgaXMgbm90IHNob3duLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOiBEbyBub3QgaW5zdGFsbCBh
IGRlZmF1bHQgc2lnbmFsIGhhbmRsZXIuCi0KLTIwMTItMDgtMTMgIE1hcmlvIFNhbmNoZXogUHJh
ZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEltcGxlbWVudGF0aW9u
IG9mIGF0a19lZGl0YWJsZV90ZXh0X2luc2VydF90ZXh0IGlnbm9yZXMgJ2xlbmd0aCcgcGFyYW1l
dGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Mzgw
NAotCi0gICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgotCi0gICAgICAg
IFVwZGF0ZSB1bml0IHRlc3RzIHRvIGFsc28gY2hlY2sgaW5zZXJ0aW5nIGEgcGFydGlhbCBzdHJp
bmcuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRr
VGV4dENoYW5nZWROb3RpZmljYXRpb25zKTogVXBkYXRlIHRlc3QuCi0KLTIwMTItMDgtMTAgIEFs
aWNlIENoZW5nICA8YWxpY2VfY2hlbmdAYXBwbGUuY29tPgotCi0gICAgICAgIFBhcnQgMSBvZjog
RXh0ZW5kIC13ZWJraXQtdXNlci1zZWxlY3Qgd2l0aCBhIG5ldyB2YWx1ZSAiYWxsIgotICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMTAxNjE0MDQ+Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MzU2MgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJu
c3RlaW4uCi0KLSAgICAgICAgTW9kaWZ5IHRoZSBlbnVtIHRvIHJlc29sdmUgYW1iaWd1b3VzIHJl
ZmVyZW5jZQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOiBNb2RpZnkgdGhlIGFtYmlndW91cyBlbnVtCi0g
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2VsZWN0X2FsbCk6IE1vZGlmeSB0aGUgYW1iaWd1b3Vz
IGVudW0KLQotMjAxMi0wOC0xMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgW0dUS10gQnJva2VuIGltcGxlbWVudGF0aW9uIG9mIEF0a1RleHQg
YW5kIEF0a0VkaXRhYmxlVGV4dCBmb3IgcGFzc3dvcmQgZmllbGRzCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzYyMQotCi0gICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoLgotCi0gICAgICAgIFVwZGF0ZSB1bml0IHRlc3QgdG8gZW5zdXJl
IHRoYXQgcGFzc3dvcmQgaW5wdXQgZmllbGRzIGJlaGF2ZQotICAgICAgICBhcyBleHBlY3RlZCB3
aGVuIGluc2VydGluZyBhbmQgcmVtb3ZpbmcgY2hhcmFjdGVycyBpbiB0aGVtLgotCi0gICAgICAg
ICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGVzdFdlYmtpdEF0a1RleHRDaGFuZ2VkTm90
aWZpY2F0aW9ucyk6IFVwZGF0ZWQgdW5pdCB0ZXN0IHRvCi0gICAgICAgIGNvdmVyIHRoZSBzcGVj
aWFsIGNhc2Ugb2YgcGFzc3dvcmQgaW5wdXQgZmllbGRzLgotCi0yMDEyLTA4LTA5ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBIYW5kbGUgU1NM
IGVycm9ycyBmb3IgU09VUAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTAyNjcKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0K
LSAgICAgICAgSWdub3JlIFNTTCBlcnJvcnMgYnkgZGVmYXVsdCBmb3IgY29tcGF0aWJpbGl0eS4K
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXRnbG9iYWxzLmNwcDoKLSAgICAgICAgKHdlYmtpdElu
aXQpOgotCi0yMDEyLTA4LTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLiBGaXggR1RLKyBidWlsZCB3aXRoIEdUSzIgYWZ0
ZXIgcjEyMDkxOC4KLQotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJ2aWV3LmM6Ci0KLTIwMTItMDgt
MDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFVucmV2aWV3ZWQuIFVwZGF0ZSBORVdTIGFuZCBjb25maWd1cmUuYWMgZm9yIDEuOS42IHJlbGVh
c2UKLQotICAgICAgICAqIE5FV1M6IEFkZGVkIHJlbGVhc2Ugbm90ZXMgZm9yIDEuOS42LgotCi0y
MDEyLTA4LTA2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwu
Y29tPgotCi0gICAgICAgIFtFRkxdIFtHVEtdIFJlZ2lzdGVyIFByb3RvY29sIEhhbmRsZXIgQ2xp
ZW50IGlzIG5ldmVyIGRlbGV0ZWQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkyNzQ1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhLgotCi0gICAgICAgIEFkZGVkIHVzYWdlIG9mIE93blB0ciB0byBtYW5hZ2UgcmVnaXN0
ZXIgcHJvdG9jb2wgaGFuZGxlciBjbGllbnQgcG9pbnRlci4KLQotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OmNyZWF0ZSk6IEZhY3RvcnkgZnVu
Y3Rpb24gcmV0dXJuaW5nIHNtYXJ0IHBvaW50ZXIuCi0gICAgICAgIChXZWJLaXQpOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1JlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50R3RrLmg6Ci0g
ICAgICAgIChSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudCk6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgotCi0yMDEyLTA4LTAzICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBB
ZGQgYSBuZXcgYW5kIHJldXNhYmxlIGVuY2hhbnQtYmFzZWQgc3BlbGxjaGVja2VyIGluIFdlYkNv
cmUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMjY5
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFJlbW92
ZSBlbmNoYW50IHNwZWNpZmljIGNvZGUgZnJvbSBXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50IGFu
ZAotICAgICAgICBpbXBsZW1lbnQgaXQgcmVseWluZyBpbiB0aGUgbmV3IFRleHRDaGVja2VyRW5j
aGFudCBjbGFzcyBpbiBXZWJDb3JlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHNwZWxsY2hl
Y2tlcmVuY2hhbnQuY3BwOgotICAgICAgICAoX1dlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQcml2
YXRlKToKLSAgICAgICAgKHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfZmluYWxpemUpOgot
ICAgICAgICAod2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9jbGFzc19pbml0KToKLSAgICAg
ICAgKHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfaW5pdCk6Ci0gICAgICAgIChjaGVja1Nw
ZWxsaW5nT2ZTdHJpbmcpOgotICAgICAgICAoZ2V0R3Vlc3Nlc0ZvcldvcmQpOgotICAgICAgICAo
dXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlcyk6Ci0gICAgICAgIChsZWFybldvcmQpOgotICAg
ICAgICAoaWdub3JlV29yZCk6Ci0KLTIwMTItMDgtMDIgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2Fh
dmVkcmFAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBBZGQgV2ViS2l0TmV0d29ya1Jlc3Bv
bnNlOjpzdWdnZXN0ZWQtZmlsZW5hbWUgcHJvcGVydHkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyODc4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MuCi0KLSAgICAgICAgV2ViY29yZSBoYXMgQVBJIHRoZSBzdWdnZXN0
ZWQgZmlsZW5hbWUgZm9yIGEgcmVzcG9uc2UsIGFkZAotICAgICAgICBhIHByb3BlcnR5IGFuZCBn
ZXR0ZXIgZm9yIGl0IGluIFdlYktpdE5ldHdvcmtSZXNwb25zZS4KLQotICAgICAgICAqIGRvY3Mv
d2Via2l0Z3RrLXNlY3Rpb25zLnR4dDogQWRkIHRoZSBzeW1ib2xzCi0gICAgICAgICogd2Via2l0
L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHA6Ci0gICAgICAgIChfV2ViS2l0TmV0d29ya1Jlc3Bv
bnNlUHJpdmF0ZSk6IEFkZCBzdWdnZXN0ZWRfZmlsZW5hbWUuCi0gICAgICAgICh3ZWJraXRfbmV0
d29ya19yZXNwb25zZV9maW5hbGl6ZSk6IEZyZWUgaXQgb24gZmluYWxpemUKLSAgICAgICAgKHdl
YmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dldF9wcm9wZXJ0eSk6IEFkZCB0aGUgZ2V0dGVyIGNhbGwu
Ci0gICAgICAgICh3ZWJraXRfbmV0d29ya19yZXNwb25zZV9jbGFzc19pbml0KTogSW5zdGFsbCB0
aGUgcHJvcGVydHkuCi0gICAgICAgICh3ZWJraXRfbmV0d29ya19yZXNwb25zZV9nZXRfc3VnZ2Vz
dGVkX2ZpbGVuYW1lKTogTmV3IGdldHRlci4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29y
a3Jlc3BvbnNlLmg6IEFkZCB0aGUgZGVjbGFyYXRpb24gdG8gaGVhZGVyCi0gICAgICAgIGZpbGUu
Ci0KLTIwMTItMDctMzEgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjQyMDcuCi0gICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyNDIwNwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3NzMKLQotICAgICAgICBQYXRjaCBjYXVz
ZXMgY3Jhc2hlcyBvbiB0aGUgNjQtYml0IGRlYnVnIGJ1aWxkZXIgKGFuZCBvdGhlcgotICAgICAg
ICBidWlsZGVycyBsaWtlbHkpIChSZXF1ZXN0ZWQgYnkgemRvYmVyc2VrIG9uICN3ZWJraXQpLgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwOgotICAgICAg
ICAoX1dlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQcml2YXRlKToKLSAgICAgICAgKGNyZWF0ZUVu
Y2hhbnRCcm9rZXJJZk5lZWRlZCk6Ci0gICAgICAgIChmcmVlU3BlbGxDaGVja2luZ0xhbmd1YWdl
KToKLSAgICAgICAgKHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfZmluYWxpemUpOgotICAg
ICAgICAod2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9jbGFzc19pbml0KToKLSAgICAgICAg
KHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfaW5pdCk6Ci0gICAgICAgICh3b3JkRW5kSXNB
Q29udHJhY3Rpb25BcG9zdHJvcGhlKToKLSAgICAgICAgKGNoZWNrU3BlbGxpbmdPZlN0cmluZyk6
Ci0gICAgICAgIChnZXRHdWVzc2VzRm9yV29yZCk6Ci0gICAgICAgIChnZXRBdmFpbGFibGVEaWN0
aW9uYXJpZXNDYWxsYmFjayk6Ci0gICAgICAgICh1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2Vz
KToKLSAgICAgICAgKGxlYXJuV29yZCk6Ci0gICAgICAgIChpZ25vcmVXb3JkKToKLQotMjAxMi0w
Ny0zMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgW0dUS10gQWRkIGEgbmV3IGFuZCByZXVzYWJsZSBlbmNoYW50LWJhc2VkIHNwZWxsY2hlY2tl
ciBpbiBXZWJDb3JlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MDI2OQotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAg
ICAgICBSZW1vdmUgZW5jaGFudCBzcGVjaWZpYyBjb2RlIGZyb20gV2ViS2l0U3BlbGxDaGVja2Vy
RW5jaGFudCBhbmQKLSAgICAgICAgaW1wbGVtZW50IGl0IHJlbHlpbmcgaW4gdGhlIG5ldyBUZXh0
Q2hlY2tlckVuY2hhbnQgY2xhc3MgaW4gV2ViQ29yZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcDoKLSAgICAgICAgKF9XZWJLaXRTcGVsbENoZWNrZXJF
bmNoYW50UHJpdmF0ZSk6Ci0gICAgICAgICh3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X2Zp
bmFsaXplKToKLSAgICAgICAgKHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfY2xhc3NfaW5p
dCk6Ci0gICAgICAgICh3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X2luaXQpOgotICAgICAg
ICAoY2hlY2tTcGVsbGluZ09mU3RyaW5nKToKLSAgICAgICAgKGdldEd1ZXNzZXNGb3JXb3JkKToK
LSAgICAgICAgKHVwZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMpOgotICAgICAgICAobGVhcm5X
b3JkKToKLSAgICAgICAgKGlnbm9yZVdvcmQpOgotCi0yMDEyLTA3LTMwICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBOZXcgbGluZXMgYXV0
b21hdGljYWxseSBhbmQgcmVwZWF0ZWRseSBhZGRlZCB0byBsaXN0IGl0ZW1zIGluIEV0aGVycGFk
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk3MQot
Ci0gICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KLQotICAgICAgICBEaXNhYmxlIHRo
ZSBkZWxldGlvbiBVSSBieSBkZWZhdWx0LiBUaGlzIFVJLCB3aGljaCB3YXMgZW5hYmxlZCBhcyBh
IHNpZGUtZWZmZWN0Ci0gICAgICAgIG9mIHRoZSBhZGRpdGlvbiBvZiB0aGUgcHJpdmF0ZSBlZGl0
aW5nIEFQSSwgc2VlbXMgdG8gZXhwb3NlIGEgYnVnIGluIEV0aGVycGFkCi0gICAgICAgIHdoaWNo
IGNhdXNlcyB0aGUgY29udGludW91cyBpbnNlcnRpb24gb2YgYnVsbGV0IHBvaW50cy4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZSk6IERpc2FibGUgdGhl
IGRlbGV0aW9uIFVJIGJ5IGRlZmF1bHQuCi0KLTIwMTItMDctMzAgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMjM5NjYgYW5kIHIxMjM5NjcuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzEyMzk2NgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC8xMjM5NjcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkyNjU2Ci0KLSAgICAgICAgVGhpcyBwYXRjaCBpcyBjYXVzaW5nIGFzc2VydGlvbiBmYWlsdXJl
cyBvbiB0aGUgZGVidWcgYm90Ci0gICAgICAgIChhbHNvIHJvbGxpbmcgb3V0IGEgZGVwZW5kZW50
IHBhdGNoKSAoUmVxdWVzdGVkIGJ5IG1yb2JpbnNvbgotICAgICAgICBvbiAjd2Via2l0KS4KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcDoKLSAgICAgICAg
KF9XZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSk6Ci0gICAgICAgIChjcmVhdGVFbmNo
YW50QnJva2VySWZOZWVkZWQpOgotICAgICAgICAoZnJlZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZSk6
Ci0gICAgICAgICh3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X2ZpbmFsaXplKToKLSAgICAg
ICAgKHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3
ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X2luaXQpOgotICAgICAgICAod29yZEVuZElzQUNv
bnRyYWN0aW9uQXBvc3Ryb3BoZSk6Ci0gICAgICAgIChjaGVja1NwZWxsaW5nT2ZTdHJpbmcpOgot
ICAgICAgICAoZ2V0R3Vlc3Nlc0ZvcldvcmQpOgotICAgICAgICAoZ2V0QXZhaWxhYmxlRGljdGlv
bmFyaWVzQ2FsbGJhY2spOgotICAgICAgICAodXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlcyk6
Ci0gICAgICAgIChsZWFybldvcmQpOgotICAgICAgICAoaWdub3JlV29yZCk6Ci0KLTIwMTItMDct
MzAgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KLQotICAgICAgICBb
R3RrXSBBZGQgV0sxIEFQSSBmb3Igc25hcHNob3QgcmV0cmlldmFsCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjI2MQotCi0gICAgICAgIFJldmlld2Vk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBBZGQgQVBJIHRvIFdlYktpdFdlYlZpZXcg
dG8gcmV0cmlldmUgYSBzbmFwc2hvdCBvZiBpdHMKLSAgICAgICAgdmlzaWJsZSBjb250ZW50cyBh
cyBhIGNhaXJvX3N1cmZhY2VfdC4KLQotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLXNlY3Rpb25z
LnR4dDogQWRkIG5ldyBzeW1ib2xzLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QpOiBOZXcKLSAgICAgICAg
bWV0aG9kIHRvIHBhaW50IGEgd2VidmlldyBzbmFwc2hvdC4KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5oOiBEaXR0by4KLQotMjAxMi0wNy0yOCAgTWFyaW8gU2FuY2hleiBQcmFkYSAg
PG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gQWRkIGEgbmV3IGFuZCByZXVz
YWJsZSBlbmNoYW50LWJhc2VkIHNwZWxsY2hlY2tlciBpbiBXZWJDb3JlCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDI2OQotCi0gICAgICAgIFJldmll
d2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBSZW1vdmUgZW5jaGFudCBzcGVjaWZp
YyBjb2RlIGZyb20gV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudCBhbmQKLSAgICAgICAgaW1wbGVt
ZW50IGl0IHJlbHlpbmcgaW4gdGhlIG5ldyBUZXh0Q2hlY2tlckVuY2hhbnQgY2xhc3MgaW4gV2Vi
Q29yZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcDoK
LSAgICAgICAgKF9XZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSk6Ci0gICAgICAgICh3
ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X2ZpbmFsaXplKToKLSAgICAgICAgKHdlYmtpdF9z
cGVsbF9jaGVja2VyX2VuY2hhbnRfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfc3BlbGxf
Y2hlY2tlcl9lbmNoYW50X2luaXQpOgotICAgICAgICAoY2hlY2tTcGVsbGluZ09mU3RyaW5nKToK
LSAgICAgICAgKGdldEd1ZXNzZXNGb3JXb3JkKToKLSAgICAgICAgKHVwZGF0ZVNwZWxsQ2hlY2tp
bmdMYW5ndWFnZXMpOgotICAgICAgICAobGVhcm5Xb3JkKToKLSAgICAgICAgKGlnbm9yZVdvcmQp
OgotCi0yMDEyLTA3LTI2ICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEu
Y29tPgotCi0gICAgICAgIFtEUlRdIExUQzo6IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCgpIGNv
dWxkIGJlIG1vdmVkIHRvIEludGVybmFscwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTIwOTEKLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgotCi0gICAgICAgIE1vdmUgdGhlIHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCBmcm9tIExheW91
dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAotICAgICAgICByZW1vdmUgdGhlIG9sZCBw
bGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZlbHkgdGVzdHMg
V2ViQ29yZSBmdW5jdGlvbmFsaXR5LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6
Ci0KLTIwMTItMDctMjQgIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5j
b20+Ci0KLSAgICAgICAgW0RSVF0gTFRDOjogcGFnZU51bWJlckZvckVsZW1lbnRCeUlkKCkgY291
bGQgYmUgbW92ZWQgdG8gSW50ZXJuYWxzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MjA5MQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
Ci0KLSAgICAgICAgTW92ZSB0aGUgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkIGZyb20gTGF5b3V0
VGVzdENvdHJvbGxlciB0byBJbnRlcm5hbHMgYW5kCi0gICAgICAgIHJlbW92ZSB0aGUgb2xkIHBs
YXRmb3JtIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBhcyBpdCBleGNsdXNpdmVseSB0ZXN0cyBX
ZWJDb3JlIGZ1bmN0aW9uYWxpdHkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToK
LQotMjAxMi0wNy0yMyAgUGllcnJlIFJvc3NpICA8cGllcnJlLnJvc3NpQGdtYWlsLmNvbT4KLQot
ICAgICAgICBVbmlmeSBudW1Ub3VjaEV2ZW50SGFuZGxlcnNDaGFuZ2VkIGFuZCBuZWVkVG91Y2hF
dmVudHMgaW4gdGhlIGNocm9tZSBjbGllbnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkxMDA2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBO
aXdhLgotCi0gICAgICAgIFJlbW92ZSBudW1Ub3VjaEV2ZW50SGFuZGxlcnNDaGFuZ2VkIHN0dWIu
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAxMi0w
Ny0xNyAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZla2dhbGF0YWdlQGdtYWlsLmNvbT4KLQotICAgICAg
ICBXZWIgSW5zcGVjdG9yOiByZWZhY3RvciBJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJv
bnRlbmQoKSB0byBhY2NlcHQgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLgotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExOTYKLQotICAgICAgICBSZXZp
ZXdlZCBieSBQYXZlbCBGZWxkbWFuLgotCi0gICAgICAgIFJlZmFjdG9yaW5nIEluc3BlY3RvckNs
aWVudHMuIEluc3BlY3RvckNsaWVudDo6b3Blbkluc3BlY3RvckZyb250ZW5kCi0gICAgICAgIG5v
dyByZXR1cm5pbmcgdGhlIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Oklu
c3BlY3RvckNsaWVudDo6b3Blbkluc3BlY3RvckZyb250ZW5kKToKLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLSAgICAgICAgKEluc3BlY3RvckNsaWVudCk6
Ci0KLTIwMTItMDctMTYgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4K
LQotICAgICAgICBBZGQgUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQgdG8gdGhlIE1vZHVs
ZXMvcHJvdG9jb2xoYW5kbGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MDk0MAotCi0gICAgICAgIFJldmlld2VkIGJ5IEhhamltZSBNb3JpdGEuCi0K
LSAgICAgICAgQXMgYSBzdGVwIHRvIGxldCBwcm90b2NvbCBoYW5kbGVyIGJlIG1vdmVkIHRvIHRo
ZSBtb2R1bGVzLCBSZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudCBuZWVkcwotICAgICAgICB0
byBiZSBhZGRlZCB0byB0aGUgTW9kdWxlcy9wcm90b2NvbGhhbmRsZXIuIEJlY2F1c2UgQ2hyb21l
Q2xpZW50IGhhcyBzb21lIHZpcnR1YWwgZnVuY3Rpb25zIGZvcgotICAgICAgICBwcm90b2NvbCBo
YW5kbGVycywgdmlydHVhbCBmdW5jdGlvbnMgc2hvdWxkIGJlIG1vdmVkIHRvIFJlZ2lzdGVyUHJv
dG9jb2xIYW5kbGVyQ2xpZW50LgotCi0gICAgICAgIEluIG9yZGVyIHRvIHN1cHBvcnQgdGhpcywg
UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnRHdGsgY2xhc3MgaXMgYWRkZWQgYW5kIHdlYnZp
ZXcgcmVnaXN0ZXJzCi0gICAgICAgIFJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50R3RrLiBJ
biBhZGRpdGlvbiwgZXhpc3RpbmcgY29uY3JldGUgZnVuY3Rpb25zIGluIENocm9tZUNsaWVudEd0
ayBhcmUgbW92ZWQKLSAgICAgICAgdG8gUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnRHdGsu
Ci0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOgotICAgICAgICAoQ2hyb21lQ2xpZW50KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9SZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudEd0ay5jcHA6IEFkZGVkLgotICAgICAgICAo
V2ViS2l0KToKLSAgICAgICAgKFdlYktpdDo6UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6
OlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6UmVnaXN0
ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQ6OnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKToKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9SZWdpc3RlclByb3RvY29sSGFuZGxlckNsaWVudEd0ay5oOiBB
ZGRlZC4KLSAgICAgICAgKFdlYktpdCk6Ci0gICAgICAgIChSZWdpc3RlclByb3RvY29sSGFuZGxl
ckNsaWVudCk6Ci0gICAgICAgIChXZWJLaXQ6OlJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyQ2xpZW50
Ojp+UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnQpOgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKLQotMjAxMi0w
Ny0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgVW5yZXZpZXdlZC4gVXBkYXRlIE5FV1MgYW5kIGNvbmZpZ3VyZS5hYyBmb3IgMS45LjUgcmVs
ZWFzZQotCi0gICAgICAgICogTkVXUzogQWRkZWQgcmVsZWFzZSBub3RlcyBmb3IgMS45LjUuCi0K
LTIwMTItMDctMTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBX
ZWJDb3JlOjpTZXR0aW5ncyBmb3IgSGl4aWU3NiBXZWJTb2NrZXQgcHJvdG9jb2wgZG9lc24ndCBk
byBhbnl0aGluZyBhbmQgc2hvdWxkIGJlIHJlbW92ZWQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwOTEwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRl
X3NldHRpbmdzKToKLQotMjAxMi0wNy0xMCAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5h
Lm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KLQotICAgICAgICBbR1RLXSBGaXggbWVtb3J5IGxl
YWtzIGJ5IGFkb3B0aW5nIGFsbG9jYXRpb24gb2YgR2RrUGl4YnVmCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDc5MAotCi0gICAgICAgIFJldmlld2Vk
IGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgotCi0gICAgICAgIEZpeGVkIGEgbWVtb3J5IGxlYWsg
aW4gV2ViS2l0RmF2aWNvbkRhdGFiYXNlIGJ5IGFkb3B0aW5nIGFuCi0gICAgICAgIGFsbG9jYXRp
b24gb2YgR2RrUGl4YnVmLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFz
ZS5jcHA6Ci0gICAgICAgIChnZXRJY29uUGl4YnVmU3luY2hyb25vdXNseSk6Ci0KLTIwMTItMDct
MTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBMYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0IHNob3VsZCBtb3ZlIHRvIElu
dGVybmFscwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDU2NTIKLQotICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGspOgotCi0yMDEyLTA3LTA5ICBBZGFtIEtsZWluICA8YWRhbWtAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIFJlbmFtZSBXZWJDb3JlOjpXZWJLaXRNdXRhdGlvbk9ic2Vy
dmVyIHRvIFdlYkNvcmU6Ok11dGF0aW9uT2JzZXJ2ZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODEwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgT2ph
biBWYWZhaS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmRlbGl2ZXJBbGxN
dXRhdGlvbnNJZk5lY2Vzc2FyeSk6Ci0KLTIwMTItMDctMDkgIFphbiBEb2JlcnNlayAgPHphbmRv
YmVyc2VrQGdtYWlsLmNvbT4KLQotICAgICAgICBbR3RrXSBJbXBsZW1lbnQgZHVtcEZyYW1lU2Ny
b2xsUG9zaXRpb24gaW4gRHVtcFJlbmRlclRyZWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MzU2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGlu
IFJvYmluc29uLgotCi0gICAgICAgIEFkZCBhIG5ldyBtZXRob2QgZm9yIHJldHVybmluZyB0aGUg
V2ViS2l0RE9NRG9jdW1lbnQgdGhhdCBpcyBsb2FkZWQKLSAgICAgICAgaW4gYSBnaXZlbiBmcmFt
ZSwgd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50LgotCi0gICAgICAgICogZG9jcy93
ZWJraXRndGstc2VjdGlvbnMudHh0OgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9kb21fZG9jdW1lbnQpOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcDogU3RhdGUgZXhwbGljaXRseSB0aGF0IHRoZSBkb2N1bWVudCBiZWluZyByZXR1cm5l
ZAotICAgICAgICB3aGVuIGNhbGxpbmcgd2Via2l0X3dlYl92aWV3X2dldF9kb21fZG9jdW1lbnQg
aXMgbG9hZGVkIGluIHRoZSBtYWluIGZyYW1lLgotICAgICAgICBBbHNvIGNhbGwgdGhlIHdlYmtp
dF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudCBvbiBXZWJLaXRXZWJWaWV3J3MgbWFpbiBmcmFt
ZQotICAgICAgICB0byBnZXQgdGhlIGRvY3VtZW50LgotCi0yMDEyLTA3LTA5ICBaYW4gRG9iZXJz
ZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+Ci0KLSAgICAgICAgW0d0a10gVW5za2lwIHRoZSBD
U1MgUmVnaW9ucyBsYXlvdXQgdGVzdHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkwNzcxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmlu
c29uLgotCi0gICAgICAgIEFkZCBhIG1ldGhvZCB0byBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsg
Zm9yIGVuYWJsaW5nIG9yIGRpc2FibGluZwotICAgICAgICBDU1MgUmVnaW9ucyBmcm9tIER1bXBS
ZW5kZXJUcmVlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0Q1NTUmVn
aW9uc0VuYWJsZWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKLQotMjAxMi0w
Ny0wOSAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVs
LmNvbT4KLQotICAgICAgICBbR1RLXSBNZW1vcnkgbGVhayBpbiB3ZWJraXR3ZWJuYXZpZ2F0aW9u
YWN0aW9uLmNwcAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTA3ODcKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAg
ICAgRml4ZWQgYSBtZW1vcnkgbGVhayBpbiBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uLgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9maW5hbGl6ZSk6IEZyZWUgdGhlIGdfc3RyZHVw
KCknZCBzdHJpbmcuCi0KLTIwMTItMDctMDcgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdt
YWlsLmNvbT4KLQotICAgICAgICBSRUdSRVNTSU9OIChyMTIyMDM1KTogZnVsbHNjcmVlbi9leGl0
LWZ1bGwtc2NyZWVuLWlmcmFtZS5odG1sIGZhaWxpbmcgb24gR1RLIExpbnV4IDY0LWJpdCBSZWxl
YXNlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDcx
OQotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBGb2xs
b3cgdGhlIGFwcHJvYWNoIG9mIHRoZSBCbGFja0JlcnJ5IHBvcnQgb3V0bGluZWQgaW4gcjEyMjAz
NSwgdXNpbmcgaW4gZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50Ci0gICAgICAgIHRoZSBmdWxsc2Ny
ZWVuIGVsZW1lbnQgdG8gd2hpY2ggdGhlIHJlZmVyZW5jZSB3YXMgc2F2ZWQgd2hlbiBlbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50IHdhcyBjYWxsZWQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6Ci0KLTIwMTItMDctMDIgIEJlbmphbWluIFBvdWxhaW4g
IDxicG91bGFpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgRG8gbm90IGRvIGFueSBsb2dnaW5nIGlu
aXRpYWxpemF0aW9uIHdoZW4gbG9nZ2luZyBpcyBkaXNhYmxlZAotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAyMjgKLQotICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6Ci0g
ICAgICAgICh3ZWJraXRJbml0KToKLQotMjAxMi0wNi0yOSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIFtHVEtdIEVuYWJsZSBDU1MgZ3JpZCBsYXlvdXQgTGF5b3V0
VGVzdHMgb24gR1RLKwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTAyMjYKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZCk6
IFBhc3MgdGhyb3VnaCB0byBTZXR0aW5ncyBvYmplY3QuCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGspOgotCi0yMDEyLTA2LTI5ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5j
b20+Ci0KLSAgICAgICAgRG9uJ3QgaGFyZGNvZGUgdGFyZ2V0IGRwaSBvZiAxNjAgKGl0IHNob3Vs
ZCBiZSA5NiBvbiBkZXNrdG9wKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODgxMTQKLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgotCi0g
ICAgICAgIFVwZGF0ZWQgdGhlIGNhbGwgdG8gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcy4KLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0g
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBDb25maWd1cmF0aW9uRm9yVmll
d3BvcnQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwOgot
ICAgICAgICAod2Via2l0Vmlld3BvcnRBdHRyaWJ1dGVzUmVjb21wdXRlKToKLQotMjAxMi0wNi0y
NSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgotCi0gICAgICAgIEpT
TG9jayBzaG91bGQgYmUgcGVyLUpTR2xvYmFsRGF0YQotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxMjMKLQotICAgICAgICBSZXZpZXdlZCBieSBHZW9m
ZnJleSBHYXJlbi4KLQotICAgICAgICBDaGFuZ2VkIGFsbCBzaXRlcyB0aGF0IHVzZWQgSlNMb2Nr
IHRvIGluc3RlYWQgdXNlIHRoZSBuZXcgSlNMb2NrSG9sZGVyCi0gICAgICAgIGFuZCBwYXNzIGlu
IHRoZSBjb3JyZWN0IEpTIGNvbnRleHQgdGhhdCB0aGUgY29kZSBpcyBhYm91dCB0byBpbnRlcmFj
dCB3aXRoIHRoYXQgCi0gICAgICAgIG5lZWRzIHByb3RlY3Rpb24uIEFsc28gYWRkZWQgYSBjb3Vw
bGUgSlNMb2NrcyB0byBwbGFjZXMgdGhhdCBkaWRuJ3QgYWxyZWFkeSAKLSAgICAgICAgaGF2ZSBp
dCB0aGF0IG5lZWRlZCBpdC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6Omdj
Q291bnRKYXZhc2NyaXB0T2JqZWN0cyk6Ci0KLTIwMTItMDYtMjcgIE1hcnRpbiBSb2JpbnNvbiAg
PG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtndGtdIFNwZWxsIGNoZWNrZXIgZG9l
c24ndCByZWNvZ25pemUgY29udHJhY3Rpb25zIChhcG9zdHJvcGhlcykKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MTE4Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFdvcmstYXJvdW5kIGEgYnVn
IGluIFBhbmdvIGJ5IHRyeWluZyB0byBkZXRlY3QgYXBvc3Ryb3BoZXMKLSAgICAgICAgdGhhdCBj
cmVhdGUgY29udHJhY3Rpb25zLiBUaGlzIHdvcmstYXJvdW5kIGlzIHNpbWlsYXIgdG8gb25lCi0g
ICAgICAgIGZvdW5kIGluIGd0a3NwZWxsLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHNwZWxs
Y2hlY2tlcmVuY2hhbnQuY3BwOgotICAgICAgICAod29yZEVuZElzQUNvbnRyYWN0aW9uQXBvc3Ry
b3BoZSk6IEFkZGVkIHRoaXMgaGVscGVyIHdoaWNoIHRyaWVzIHRvIGRldGVjdAotICAgICAgICBz
aXR1YXRpb25zIHdoZXJlIGEgd29yZCBlbmQgaXMgYm90aCBhbiBhcG9zdHJvcGhlIGFuZCBmb2xs
b3dlZCBieSBhIGFscGhhYmV0aWMKLSAgICAgICAgY2hhcmFjdGVyLgotICAgICAgICAoY2hlY2tT
cGVsbGluZ09mU3RyaW5nKTogV2hlbiBzZWFyY2hpbmcgZm9yIHRoZSBlbmQgb2YgYSB3b3JkLCBz
a2lwIG92ZXIKLSAgICAgICAgYXBvc3Ryb3BoZXMgdGhhdCBhcHBlYXIgdG8gYmUgcGFydCBvZiBj
b250cmFjdGlvbnMuCi0KLTIwMTItMDYtMjcgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdt
YWlsLmNvbT4KLQotICAgICAgICBbR3RrXSBBZGQgc3VwcG9ydCBmb3IgdGhlIEdhbWVwYWQgQVBJ
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzUwMwot
Ci0gICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgotCi0gICAgICAgIEFk
ZCB0aGUgR2FtZXBhZCBmZWF0dXJlIGRlcGVuZGVuY2llcyBsaWJyYXJpZXMgdG8gdGhlIExJQkFE
RAotICAgICAgICBsaXN0IGZvciB0aGUgbGlid2Via2l0Z3RrIGxpYnJhcnkuCi0KLSAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKLQotMjAxMi0wNi0yNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE5FV1MgYW5k
IGNvbmZpZ3VyZS5hYyBmb3IgMS45LjQgcmVsZWFzZQotCi0gICAgICAgICogTkVXUzogQWRkZWQg
cmVsZWFzZSBub3RlcyBmb3IgMS45LjQuCi0KLTIwMTItMDYtMjMgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMjEwNTguCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEy
MTA1OAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk4
MDkKLQotICAgICAgICBQYXRjaCBjYXVzZXMgcGx1Z2lucyB0ZXN0cyB0byBjcmFzaCBpbiBHVEsg
ZGVidWcgYnVpbGRzCi0gICAgICAgIChSZXF1ZXN0ZWQgYnkgemRvYmVyc2VrIG9uICN3ZWJraXQp
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Z2NDb3VudEphdmFzY3JpcHRP
YmplY3RzKToKLQotMjAxMi0wNi0yMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgotCi0gICAgICAgIEpTTG9jayBzaG91bGQgYmUgcGVyLUpTR2xvYmFsRGF0YQotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxMjMKLQotICAg
ICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KLQotICAgICAgICBDaGFuZ2VkIGFs
bCBzaXRlcyB0aGF0IHVzZWQgSlNMb2NrIHRvIGluc3RlYWQgdXNlIHRoZSBuZXcgSlNMb2NrSG9s
ZGVyCi0gICAgICAgIGFuZCBwYXNzIGluIHRoZSBjb3JyZWN0IEpTIGNvbnRleHQgdGhhdCB0aGUg
Y29kZSBpcyBhYm91dCB0byBpbnRlcmFjdCB3aXRoIHRoYXQgCi0gICAgICAgIG5lZWRzIHByb3Rl
Y3Rpb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnY0NvdW50SmF2YXNj
cmlwdE9iamVjdHMpOgotCi0yMDEyLTA2LTIyICBBbXkgT3VzdGVyaG91dCAgPGFvdXN0ZXJoQGNo
cm9taXVtLm9yZz4KLQotICAgICAgICBSZW5hbWVkIERldmljZU9yaWVudGF0aW9uIHRvIERldmlj
ZU9yaWVudGF0aW9uRGF0YQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODg2NjMKLQotICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KLQotICAg
ICAgICBVcGRhdGVkIGZpbGVzIHRvIHVzZSB0aGUgcmVuYW1lZCBEZXZpY2VPcmllbnRhdGlvbkRh
dGEgaW5zdGVhZCBvZiBEZXZpY2VPcmllbnRhdGlvbi4KLSAgICAgICAgVGhpcyBjaGFuZ2UgbWFr
ZXMgRGV2aWNlT3JpZW50YXRpb25EYXRhIGNvbnNpc3RlbnQgd2l0aCBEZXZpY2VNb3Rpb25EYXRh
LgotICAgICAgICAKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudEd0ay5oOgotICAgICAgICAoRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGspOgotCi0yMDEy
LTA2LTIxICBEYW5pZWwgRHJha2UgIDxkc2RAbGFwdG9wLm9yZz4KLQotICAgICAgICBbR1RLXSBC
YWNrcG9ydCBydW4tZmlsZS1jaG9vc2VyIHRvIFdlYktpdDEKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3MjgzCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
R3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFRoaXMgaXMgYSByZWxhdGl2ZWx5IHN0
cmFpZ2h0Zm9yd2FyZCBiYWNrcG9ydCBvZiBNYXJpbyBTYW5jaGV6Ci0gICAgICAgIFByYWRhJ3Mg
V2ViS2l0MiBydW4tZmlsZS1jaG9vc2VyIHNpZ25hbCB3b3JrLCBpbnRlbmRlZCBmb3IgdXNlIGJ5
Ci0gICAgICAgIE9MUEMgYW5kIG90aGVycyB3aG8gYXJlIG5vdCBxdWl0ZSByZWFkeSB0byBtb3Zl
IHRvIFdlYktpdDIuCi0KLSAgICAgICAgQWRkIGEgbmV3IHB1YmxpYyBjbGFzcyB0byB0aGUgQVBJ
LCBXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QsIHRvIGJlCi0gICAgICAgIGVtaXR0ZWQgYWxvbmcg
d2l0aCBhIG5ldyBXZWJLaXRXZWJWaWV3OjpydW4tZmlsZS1jaG9vc2VyIHNpZ25hbCB0bwotICAg
ICAgICBsZXQgY2xpZW50IGFwcGxpY2F0aW9ucyB0byBwcm92aWRlIHRoZWlyIG93biBmaWxlIGNo
b29zZXIgZGlhbG9nCi0gICAgICAgIHdoZW4gdGhlIHVzZSBpbnRlcmFjdHMgd2l0aCBIVE1MIElu
cHV0IGVsZW1lbnRzIG9mIHR5cGUgJ2ZpbGUnLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06
IEFkZGVkIG5ldyBzb3VyY2UgZmlsZXMgYW5kIGhlYWRlcnMuCi0gICAgICAgICogd2Via2l0L3dl
YmtpdGZpbGVjaG9vc2VycmVxdWVzdC5jcHA6IEFkZGVkLgotICAgICAgICAoX1dlYktpdEZpbGVD
aG9vc2VyUmVxdWVzdFByaXZhdGUpOgotICAgICAgICAod2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1
ZXN0X2luaXQpOgotICAgICAgICAod2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2ZpbmFsaXpl
KToKLSAgICAgICAgKHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfcHJvcGVydHkpOgot
ICAgICAgICAod2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2NsYXNzX2luaXQpOgotICAgICAg
ICAod2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2NyZWF0ZSk6Ci0gICAgICAgICh3ZWJraXRf
ZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X21pbWVfdHlwZXMpOgotICAgICAgICAod2Via2l0X2Zp
bGVfY2hvb3Nlcl9yZXF1ZXN0X2dldF9taW1lX3R5cGVzX2ZpbHRlcik6Ci0gICAgICAgICh3ZWJr
aXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X3NlbGVjdF9tdWx0aXBsZSk6Ci0gICAgICAgICh3
ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3Rfc2VsZWN0X2ZpbGVzKToKLSAgICAgICAgKHdlYmtp
dF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfc2VsZWN0ZWRfZmlsZXMpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXRmaWxlY2hvb3NlcnJlcXVlc3QuaDogQWRkZWQuCi0gICAgICAgIChfV2ViS2l0
RmlsZUNob29zZXJSZXF1ZXN0KToKLSAgICAgICAgKF9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RD
bGFzcyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGZpbGVjaG9vc2VycmVxdWVzdHByaXZhdGUu
aDogQWRkZWQsIAotICAgICAgICBjb250YWluaW5nIHRoZSBwcm90b3R5cGUgb2Ygd2Via2l0X2Zp
bGVfY2hvb3Nlcl9yZXF1ZXN0X2NyZWF0ZS4KLQotICAgICAgICBQcm92aWRlIHByaXZhdGUgQVBJ
IHRvIG1ha2UgYSBmaWxlIGNob29zZXIgcmVxdWVzdCBmcm9tIHRoZQotICAgICAgICBXZWJWaWV3
LCBhbmQgcHJvdmlkZSBhIGRlZmF1bHQgaGFuZGxlciBmb3IgaXQuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgIChmaWxlQ2hvb3NlckRpYWxvZ1Jlc3BvbnNl
Q2FsbGJhY2spOiBIYW5kbGVyIGZvciB0aGUgJ3Jlc3BvbnNlJwotICAgICAgICBzaWduYWwgZm9y
IHRoZSBHdGtGaWxlQ2hvb3NlckRpYWxvZyB1c2VkIGluIHRoZSBkZWZhdWx0Ci0gICAgICAgIGhh
bmRsZXIuIEl0IHdpbGwgY2FsbCB0byB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3Rfc2VsZWN0
X2ZpbGVzCi0gICAgICAgIG9yIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9jYW5jZWwgYXMg
bmVlZGVkLgotICAgICAgICAod2Via2l0V2ViVmlld1JlYWxSdW5GaWxlQ2hvb3Nlcik6IERlZmF1
bHQgaGFuZGxlciBmb3IgdGhlIG5ldwotICAgICAgICAncnVuLWZpbGUtY2hvb3Nlcicgc2lnbmFs
LiBJdCB3aWxsIGNyZWF0ZSBhIEd0a0ZpbGVDaG9vc2VyRGlhbG9nLAotICAgICAgICBjb25uZWN0
IHRvIHRoZSAncmVzcG9uc2UnIHNpZ25hbCBhbmQgc2hvdyBpdC4KLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19jbGFzc19pbml0KTogQ29ubmVjdCB0aGUgJ3J1bi1maWxlLWNob29zZXInCi0gICAg
ICAgIHNpZ25hbCB0byB0aGUgZGVmYXVsdCBoYW5kbGVyLCB3ZWJraXRXZWJWaWV3UnVuRmlsZUNo
b29zZXIuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfbmV3KToKLSAgICAgICAgKHdlYmtpdFdl
YlZpZXdSdW5GaWxlQ2hvb3NlclJlcXVlc3QpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2
aWV3Lmg6Ci0gICAgICAgIChfV2ViS2l0V2ViVmlld0NsYXNzKTogQWRkZWQgcHJvdG90eXBlIGZv
ciB0aGUgaGFuZGxlciBvZiB0aGUgbmV3Ci0gICAgICAgICdydW4tZmlsZS1jaG9vc2VyJyBzaWdu
YWwuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IEFkZGVkIHByb3Rv
dHlwZSBmb3IKLSAgICAgICAgcHJpdmF0ZSBuZXcgZnVuY3Rpb24gd2Via2l0V2ViVmlld1J1bkZp
bGVDaG9vc2VyUmVxdWVzdC4KLQotICAgICAgICBVcGRhdGUgcnVuT3BlblBhbmVsIHRvIHVzZSB0
aGUgbmV3IEFQSSwgaW5jbHVkaW5nIGEgZGVmYXVsdCBoYW5kbGVyCi0gICAgICAgIHdpdGggc2lt
aWxhciBiZWhhdmlvdXIgdG8gYmVmb3JlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpydW5PcGVu
UGFuZWwpOiBOb3cgY3JlYXRlcyBhbiBpbnN0YW5jZSBvZgotICAgICAgICBXZWJLaXRGaWxlQ2hv
b3NlclJlcXVlc3QgYW5kIGFza3MgdGhlIFdlYlZpZXcgdG8gZW1pdCB0aGUKLSAgICAgICAgbmV3
ICdydW4tZmlsZS1jaG9vc2VyJyBzaWduYWwgd2l0aCBpdC4KLQotICAgICAgICBBZGRlZCB0aGUg
bmV3IHB1YmxpYyBoZWFkZXIgdG8gdGhlIG1haW4gaGVhZGVyLgotCi0gICAgICAgICogd2Via2l0
L3dlYmtpdC5oOiBBZGRlZCB3ZWJraXRmaWxlY2hvb3NlcnJlcXVlc3QuaAotCi0gICAgICAgIE5l
dyB1bml0IHRlc3RzIGZvciB0aGUgbmV3IFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCBBUEkuCi0K
LSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vidmlldy5jOiBWYXJpb3VzIFdlYktpdEZpbGVDaG9vc2Vy
UmVxdWVzdCB0ZXN0cywKLSAgICAgICAgaW5jbHVkaW5nIE1JTUUgdHlwZSBmaWx0ZXJpbmcgYW5k
IHNlbGVjdGlvbiBoYW5kbGluZy4KLQotICAgICAgICBVcGRhdGVkIGRvY3VtZW50YXRpb24gcmVs
YXRlZCBmaWxlcyB3aXRoIHRoZSBuZXcgQVBJLgotCi0gICAgICAgICogZG9jcy93ZWJraXRndGst
ZG9jcy5zZ21sOiBBZGRlZCBuZXcgc2VjdGlvbi4KLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1z
ZWN0aW9ucy50eHQ6IEFkZGVkIG5ldyBBUEkuCi0gICAgICAgICogZG9jcy93ZWJraXRndGsudHlw
ZXM6IEFkZGVkIGdldF90eXBlIGZ1bmN0aW9uLgotCi0yMDEyLTA2LTE5ICBDaGFuZyBXYW4gSG9u
ZyAgPGpvdXJtb29uQGNvbXBhbnkxMDAubmV0PgotCi0gICAgICAgIFJlZmluZSBzeW5jTGF5ZXJz
VGltZW91dENhbGxiYWNrIGZvciBBY2NlbGVyYXRlZCBDb21wb3NpdGluZy4KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NTM4Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIHN5bmNMYXllcnNUaW1lb3V0IHJl
c2NoZWR1bGVzIHRoZSB0aW1lciBzbyB0aGF0IGl0IGNhbiByZW5kZXIgZWFjaCBmcmFtZQotICAg
ICAgICBldmVyeSAxLzYwIHNlY29uZHMgb24gYW5pbWF0aW9uLiBIb3dldmVyLCBiZWNhdXNlIGl0
IHRha2VzIHRvIHRpbWUgdG8gZXhlY3V0ZQotICAgICAgICByZW5kZXJMYXllcnNUb1dpbmRvdywg
dGhlIHRpbWVyIGlzIGRlbGF5ZWQuIFRvIGZpeCB0aGlzLCB3ZSBtdXN0IHJlc2NoZWR1bGUKLSAg
ICAgICAgdGhlIHRpbWVyIGJlZm9yZSBjYWxsaW5nIHJlbmRlckxheWVyc1RvV2luZG93LgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzeW5j
TGF5ZXJzVGltZW91dCk6Ci0KLTIwMTItMDYtMTkgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgQ2FsbGluZyBuYXRpdmVJbWFnZUZvckN1cnJlbnRG
cmFtZSgpIGNhdXNlcyBhc3NlcnRpb24gZmFpbHVyZTogbV92ZXJpZmllci5pc1NhZmVUb1VzZSgp
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzU4Mgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgotCi0gICAgICAgIFVzZSBzeW5jaHJv
bm91c05hdGl2ZUljb25Gb3JQYWdlVVJMKCkgdG8gcmV0cmlldmUgZmF2aWNvbnMuCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDoKLSAgICAgICAgKGdldEljb25Q
aXhidWZTeW5jaHJvbm91c2x5KToKLQotMjAxMi0wNi0xOCAgTWFyaW8gU2FuY2hleiBQcmFkYSAg
PG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gR2V0IHJpZCBvZiBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OntpbnxkZX1jcmVtZW50QWNjZXNzaWJpbGl0eVZhbHVlCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTIyNgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBSZW1vdmUgdW5uZWNl
c2FyeSBmdW5jdGlvbnMgaW5jcmVtZW50QWNjZXNzaWJpbGl0eVZhbHVlKCkgYW5kCi0gICAgICAg
IGRlY3JlbWVudEFjY2Vzc2liaWxpdHlWYWx1ZSgpIGZyb20gRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
aDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0KLTIwMTItMDYtMTQgIEFs
ZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gQWRk
IFRleHR1cmVNYXBwZXIgSW1hZ2VCdWZmZXIgc3VwcG9ydCBhcyBhIGZhbGxiYWNrIGZyb20gdGhl
IGhhcmR3YXJlIGFjY2VsZXJhdGVkIHBhdGgKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczNjM0Ci0KLSAgICAgICAgQWRkIHRoZSBuZXcgZ3JhcGhpY3Mg
bGF5ZXIgY2xpZW50IHRoYXQgdXNlcyBjYWlybyB0byByZW5kZXIgdGhlCi0gICAgICAgIGNvbXBv
c2l0aW9uLiBUaGUgY2Fpcm8gdHJhbnNmb3JtYXRpb25zIGRvIG5vdCBzdXBwb3J0IHBlcnNwZWN0
aXZlCi0gICAgICAgIHNvIGluIHBlcnNwZWN0aXZlIGNhc2VzIHdlIGhhdmUganVzdCBhIHJlcHJl
c2VudGF0aW9uIG5vdCB0aGUgcmVhbAotICAgICAgICBwZXJzcGVjdGl2ZSB0cmFuc2Zvcm1hdGlv
bi4KLQotICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgaW1wbGVtZW50YXRpb24gb2YgYWxy
ZWFkeSB0ZXN0ZWQgY2FzZXMuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29u
LgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDoKLSAgICAgICAgKEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dENhaXJvLmNwcDogQWRkZWQuCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpp
bnZhbGlkYXRlV2lkZ2V0UmVjdCk6IFdlIG5lZWQgdG8KLSAgICAgICAgaW52YWxpZGF0ZSB0aGUg
d2lkZ2V0IGluIHRoaXMgY2FzZSBiZWNhdXNlIHdlIGRvIG5vdCBkaXJlY3RseQotICAgICAgICBy
ZW5kZXIgdG8gYSB0ZXh0dXJlIGJ1dCB0byB0aGUgd2lkZ2V0IHN1cmZhY2UuCi0gICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6cGFpbnQpOiBXZSBjYW4gbm90IHJlbmRlciBoZXJlLCB3ZSBo
YXZlIHRvCi0gICAgICAgIGludmFsaWRhdGUgYW5kIHdhaXQgZm9yIHRoZSB3aWRnZXQgcmVuZGVy
aW5nLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19kcmF3KTogSW4gdGhpcyBjYXNlIHRoZSByZW5kZXJMYXllcnNUb1dpbmRvdwot
ICAgICAgICByZXF1aXJlcyB0aGUgZ3JhcGhpY3MgY29udGV4dCB1c2VkIHRvIHJlbmRlciBpbiB0
aGUgd2luZG93LgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3JlYWxpemUpOiBTbWFsbCBjbGVh
bnVwIG9mIHRoZSBwcml2IHZhcmlhYmxlCi0gICAgICAgIGRlZmluaXRpb24uCi0KLTIwMTItMDYt
MTQgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KLQotICAgICAgICBbR3Rr
XSBBZGQgc3VwcG9ydCBpbiBEdW1wUmVuZGVyVHJlZSBmb3IgdHJhY2tpbmcgcmVwYWludHMKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3NjU4Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEFkZCBtZXRob2Rz
IHRvIHRoZSBEdW1wUmVuZGVyVHJlZVN1cHBvcnQgY2xhc3MgZm9yIGNvbnRyb2xsaW5nIHRoZQot
ICAgICAgICBzdGF0dXMgb2YgcmVwYWludCB0cmFja2luZyBhbG9uZyB3aXRoIHJldHJlaXZpbmcg
YW5kIHJlc2V0dGluZyB0aGUKLSAgICAgICAgdHJhY2tlZCByZXBhaW50cy4KLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFRyYWNrc1JlcGFpbnRzKToKLSAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6aXNUcmFja2luZ1JlcGFpbnRzKToKLSAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6dHJhY2tlZFJlcGFpbnRSZWN0cyk6Ci0gICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlc2V0VHJhY2tlZFJlcGFpbnRzKToKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0KLTIwMTItMDYtMTMgIEFteSBPdXN0ZXJob3V0ICA8
YW91c3RlcmhAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJlbmFtZSBjdXJyZW50RGV2aWNlTW90
aW9uIHRvIGxhc3RNb3Rpb24gaW4gRGV2aWNlTW90aW9uQ2xpZW50Ci0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODg1NAotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgUmVuYW1lIHRoZSBmdW5jdGlvbiBjdXJyZW50RGV2
aWNlTW90aW9uIHRvIGxhc3RNb3Rpb24gaW4gRGV2aWNlTW90aW9uQ2xpZW50LgotICAgICAgICBU
aGlzIG1ha2VzIGl0IGNvbnNpc3RlbnQgd2l0aCB0aGUgc2ltaWxhciBmdW5jdGlvbiBsYXN0T3Jp
ZW50YXRpb24gaW4gRGV2aWNlT3JpZW50YXRpb25DbGllbnQuCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EZXZpY2VNb3Rpb25DbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpEZXZp
Y2VNb3Rpb25DbGllbnRHdGs6Omxhc3RNb3Rpb24pOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0RldmljZU1vdGlvbkNsaWVudEd0ay5oOgotICAgICAgICAoRGV2aWNlTW90aW9uQ2xpZW50R3Rr
KToKLQotMjAxMi0wNi0xMSAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xh
LmNvbT4KLQotICAgICAgICBbRFJUXSBMVEM6OiBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCgp
IGNvdWxkIGJlIG1vdmVkIHRvIEludGVybmFscy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDA2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSGFqaW1l
IE1vcml0YS4KLQotICAgICAgICBNb3ZlIHRoZSBjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJZCBm
cm9tIExheW91dFRlc3RDb3Ryb2xsZXIgdG8gSW50ZXJuYWxzIGFuZAotICAgICAgICByZW1vdmUg
dGhlIG9sZCBwbGF0Zm9ybSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgYXMgaXQgZXhjbHVzaXZl
bHkgdGVzdHMgV2ViQ29yZSBmdW5jdGlvbmFsaXR5LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ayk6Ci0KLTIwMTItMDYtMDcgIFNpbW9uIFBlbmEgIDxzcGVuYUBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFtHVEtdIGRldmljZVNjYWxlRmFjdG9yIHNldHRpbmcgaXMgbm90IGhvbm9yZWQK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTExCi0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIEhv
bm9yIHRoZSBkZXZpY2VTY2FsZUZhY3RvciBwcm9wZXJ0eSBpbiB0aGUgcGFpbnRXZWJWaWV3Ci0g
ICAgICAgIG1ldGhvZCBvZiB0aGUgQ2hyb21lQ2xpZW50R3RrLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6cGFpbnRXZWJW
aWV3KToKLQotMjAxMi0wNi0wNCAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2lu
ZW5pQGxpbnV4LmludGVsLmNvbT4KLQotICAgICAgICBbR1RLXSBNZW1vcnkgbGVhayBpbiBXZWJL
aXRXZWJWaWV3Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04ODIxNAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAg
ICBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIFdlYktpdFdlYlZpZXcgYnkgbWFraW5nCi0gICAgICAg
IEdlb2xvY2F0aW9uQ2xpZW50TW9jayB0byBiZSBvd25lZCBieSB0aGUgV2ViVmlldy4KLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDoKLQotMjAx
Mi0wNi0wNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE5FV1MgYW5kIGNvbmZpZ3VyZS5hYyBmb3IgMS45LjMg
cmVsZWFzZQotCi0gICAgICAgICogTkVXUzogQWRkZWQgcmVsZWFzZSBub3RlcyBmb3IgMS45LjMu
Ci0KLTIwMTItMDYtMDQgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFtHVEtdIFJlbW92ZSBnZW9jbHVlIGRlcGVuZGVuY3kgZnJvbSBXZWJLaXQg
QVBJIExheWVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NzgwMQotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAg
ICBNYWtlIEdlb2xvY2F0aW9uQ2xpZW50IGZvciBXZWJLaXRHVEsrIHVzZSB0aGUgbmV3IEdlb2Ns
dWUtYmFzZWQKLSAgICAgICAgZ2VvbG9jYXRpb24gcHJvdmlkZXIgYXZhaWxhYmxlIGluIFdlYkNv
cmUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQpOgotICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlvbkNsaWVudDo6
R2VvbG9jYXRpb25DbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlvbkNsaWVudDo6
c3RhcnRVcGRhdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpzdG9w
VXBkYXRpbmcpOgotICAgICAgICAoV2ViS2l0OjpHZW9sb2NhdGlvbkNsaWVudDo6c2V0RW5hYmxl
SGlnaEFjY3VyYWN5KToKLSAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6Om5vdGlm
eVBvc2l0aW9uQ2hhbmdlZCk6Ci0gICAgICAgIChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50Ojpu
b3RpZnlFcnJvck9jY3VycmVkKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlv
bkNsaWVudEd0ay5oOgotICAgICAgICAoR2VvbG9jYXRpb25DbGllbnQpOgotCi0yMDEyLTA1LTMx
ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJFR1JF
U1NJT04ocjExNzU3Mik6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hc3luYy1yZW1vdmUt
ZnJhbWUuaHRtbCBjcmFzaGVzIG9uIE1hYwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODY4NTkKLQotICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5p
d2EuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oOgot
ICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0azo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcpOgotCi0yMDEyLTA1LTMxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE5MTEzLgotICAg
ICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMTkxMTMKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MDE2Ci0KLSAgICAgICAgVGhp
cyBjYXVzZWQgbXVsdGlwbGUgcmVncmVzc2lvbnMgKFJlcXVlc3RlZCBieSBtcm9iaW5zb24gb24K
LSAgICAgICAgI3dlYmtpdCkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tl
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50R3RrOjpj
aGVja1NwZWxsaW5nT2ZTdHJpbmcpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNr
ZXJlbmNoYW50LmNwcDoKLSAgICAgICAgKGNoZWNrU3BlbGxpbmdPZlN0cmluZyk6Ci0KLTIwMTIt
MDUtMzEgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5pbnRl
bC5jb20+Ci0KLSAgICAgICAgW0dUS10gTWVtb3J5IGxlYWsgaW4gd2Via2l0X3dlYl92aWV3X2lu
aXQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3OTQz
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEZpeGVk
IGEgbWVtb3J5IGxlYWsgaW4gd2Via2l0X3dlYl92aWV3X2luaXQgYnkgbWFraW5nIHRoZQotICAg
ICAgICBVc2VyTWVkaWFDbGllbnRHdGsgdG8gYmUgb3duZWQgYnkgdGhlIFdlYlZpZXcuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6Ci0KLTIw
MTItMDUtMzEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFNwZWxsIGNoZWNrZXIgZG9lc24ndCByZWNvZ25pemUgY29udHJhY3Rpb25zIChhcG9zdHJv
cGhlcykKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2
MTE4Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAg
ICAgIFRoZSBFbmNoYW50IHNwZWxsIGNoZWNrZXIgd2FzIGJyZWFraW5nIHdvcmRzIG9uIGFwb3N0
cm9waGVzLCBiZWNhdXNlCi0gICAgICAgIGFwcGFyZW50bHkgdGhleSB3ZXJlIGFsd2F5cyBiZWlu
ZyBkZXRlY3RlZCBhcyBQYW5nbyB3b3JkLWVuZAotICAgICAgICBjaGFyYWN0ZXJzLiBUbyBrbm93
IHdoZXRoZXIgb3Igbm90IHRoZSBhcG9zdHJvcGhlIGlzIGEKLSAgICAgICAgd29yZCBlbmQgY2hh
cmFjdGVyIHJlcXVpcmVzIGxvb2tpbmcgYXQgYSBzdHJpbmcgd2l0aCBhIGxhcmdlcgotICAgICAg
ICBncmFudWxhcml0eSB0aGFuIG9uZSBjaGFyYWN0ZXIuCi0KLSAgICAgICAgU2ltcGxpZnkgdGhl
IHdheSB0aGUgd2UgYnJlYWsgc3RyaW5ncywgYnkgc2VhcmNoIGZvciBub24tZ3JhcGhhYmxlCi0g
ICAgICAgIGNoYXJhY3RlciBtYW51YWxseSB0byBmaW5kIHdvcmQgc3RhcnRzIGFuZCBlbmRzLiBU
aGlzIGhhcyB0aGUgc2lkZQotICAgICAgICBlZmZlY3Qgb2YgcmVtb3ZpbmcgdGhlIGRlcGVuZGVu
Y3kgb24gUGFuZ28gYW5kIGVsaW1pbmF0aW5nIG9uZSBjb3B5LgotCi0gICAgICAgIFRoaXMgY2hh
bmdlIGFsc28gY2xlYW5zIHVwIHNvbWUgbWlzYmVoYXZpb3Igb24gdGhlIHBhcnQgb2YgdGhlCi0g
ICAgICAgIFdlYkNvcmVTdXBwb3J0IGxheWVyIHdoaWNoIHdhcyBub3QgY29udmVydGluZyBmcm9t
IFVuaWNvZGUgY2hhcmFjdGVyCi0gICAgICAgIG9mZnNldHMgdG8gVVRGLTE2LiBUaGVzZSBvZmZz
ZXRzIGNhbiBiZSBkaWZmZXJlbnQgaWYgYW55IG9mIHRoZQotICAgICAgICBjaGFyYWN0ZXJzIGlu
IHRoZSBVVEYtMTYgc3RyaW5nIGFyZSBzdXJyb2dhdGUgcGFpcnMgKG5vbiBCTVAKLSAgICAgICAg
Y2hhcmFjdGVycykuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50R3RrOjpjaGVja1Nw
ZWxsaW5nT2ZTdHJpbmcpOiBQcm9wZXJseQotICAgICAgICBjb252ZXJ0IGZyb20gVW5pY29kZSBv
ZmZzZXRzIHRvIFVURi0xNiBvZmZzZXRzLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNo
ZWNrZXJlbmNoYW50LmNwcDoKLSAgICAgICAgKGZpbmRCeXRlT2Zmc2V0VG9GaXJzdE5vbkdyYXBo
YWJsZUNoYXJhY3Rlcik6IEFkZGVkIHRoaXMgaGVscGVyLgotICAgICAgICAoZ2V0RXh0ZW50c09m
TmV4dFdvcmQpOiBEaXR0by4KLSAgICAgICAgKHdvcmRJc1NwZWxsZWRDb3JyZWN0bHlJbkF0TGVh
c3RPbmVEaWN0aW9uYXJ5KTogRGl0dG8uCi0gICAgICAgIChjaGVja1NwZWxsaW5nT2ZTdHJpbmcp
OiBEb24ndCBzcGxpdCB3b3JkcyBvbiBhcG9zdHJvcGhlcy4KLQotMjAxMi0wNS0zMCAgU3VkYXJz
YW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KLQotICAg
ICAgICBbR1RLXSBbV0syXSBNZW1vcnkgbGVhayBpbiB3ZWJraXRXZWJWaWV3QmFzZVN0YXJ0RHJh
ZwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc3NTYK
LQotICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KLQotICAgICAgICBG
aXhlZCBhIG1lbW9yeSBsZWFrIGluIGRyYWcgYW5kIGRyb3AgYnkgdXNpbmcgYWRvcHRSZWYgaW5z
dGVhZAotICAgICAgICBvZiBqdXN0IGdldHRpbmcgYSBuZXcgcmVmZXJlbmNlIG9mIHRhcmdldExp
c3QuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6c3RhcnREcmFnKToKLQotMjAxMi0wNS0yNSAgSmVzdXMg
U2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+Ci0KLSAgICAg
ICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVy
LnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjMyOAotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRfcHJvcGVydHkpOgotCi0yMDEyLTA1LTI1ICBM
dSBHdWFucXVuICA8Z3VhbnF1bi5sdUBpbnRlbC5jb20+Ci0KLSAgICAgICAgW0dUS10gZml4IGNv
bXBpbGF0aW9uIGZvciB3ZWJraXR3ZWJ2aWV3LmNwcAotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc0NzMKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0
aW4gUm9iaW5zb24uCi0KLSAgICAgICAgV2hlbiBBQ0NFTEVSQVRFRF9DT01QT1NJVElORyBhbmQg
VEVYVFVSRV9NQVBQRVJfR0wgaXMgbm90IHNldCwKLSAgICAgICAgdGhlIGxvY2FsIHZhcmlhYmxl
ICdwcml2JyB3b24ndCBiZSB1c2VkLiBUaGVyZWZvcmUgdGhlIGZvbGxvd2luZyB3YXJuaW5nOgot
Ci0gICAgICAgIC4uLy4uLy4uL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDogSW4gZnVuY3Rpb24g4oCYdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZShHdGtXaWRn
ZXQqKeKAmToKLSAgICAgICAgLi4vLi4vLi4vU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOjk3MToyNzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlIOKAmHByaXbigJkg
Wy1XdW51c2VkLXZhcmlhYmxlXQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3JlYWxpemUpOgotCi09PSBSb2xsZWQgb3ZlciB0
byBDaGFuZ2VMb2ctMjAxMi0wNS0yMiA9PQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nLTIwMTItMDUtMjIgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2ctMjAxMi0w
NS0yMgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWJkZTI4MS4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2ctMjAxMi0wNS0yMgorKysgL2Rldi9udWxsCkBA
IC0xLDIzMzU3ICswLDAgQEAKLTIwMTItMDUtMjIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNv
bkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFJFR1JFU1NJT04ocjExNjEzNSk6IEtleXMg
dGhhdCBjb25maXJtIGNvbXBvc2l0aW9uIHRyaWdnZXIgYSBkZWZhdWx0IGFjdGlvbgotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY5MjUKLQotICAgICAg
ICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgSW5zdGVhZCBv
ZiBzZW5kaW5nIGNvbXBvc2l0aW9uIHJlc3VsdHMgd2l0aCBhIGtleWRvd24gZXZlbnQsIHNpbXBs
eSBzZW5kIHdoZXRoZXIKLSAgICAgICAgb3Igbm90IHRoZSBldmVudCBoYWQgcmVzdWx0cy4gQWN0
aXZhdGUgdGhlIHJlc3VsdHMgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgZXZlbnQuIFRoaXMKLSAgICAg
ICAgYWxsb3dzIGZvciBpbnB1dCBtZXRob2RzIHRvIG1vZGlmeSB0aGUgRE9NIGFmdGVyIHRoZSBr
ZXlkb3duIGV2ZW50IGFuZCB0byBzdGlsbAotICAgICAgICBwcmV2ZW50IHRoZSBkZWZhdWx0IGFj
dGlvbiBkdXJpbmcgaGFuZGxlSW5wdXRNZXRob2RLZXlkb3duLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xp
ZW50OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKTogVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBt
X3VwZGF0aW5nQ29tcG9zaXRpb24KLSAgICAgICAgc28gd2Ugbm8gbG9uZ2VyIGhhdmUgdG8gY2hl
Y2sgaXQgaGVyZS4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjprZXlib2FyZEV2ZW50
SGFkQ29tcG9zaXRpb25SZXN1bHRzKTogQWRkZWQuCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKTogTm93IHByZXZlbnQgdGhlIGRlZmF1bHQg
YWN0aW9uIHdoZW4KLSAgICAgICAgdGhlIGtleWJvYXJkIGV2ZW50IGhhZCBjb21wb3NpdGlvbiBy
ZXN1bHRzLgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6IFJlbW92ZSB0aGUgbV91
cGRhdGluZ0NvbXBvc2l0aW9uIG1lbWJlciwgYXMgaXQncyBubwotICAgICAgICBsb25nZXIgdXNl
ZC4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXIuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXI6OnNlbmRLZXlFdmVu
dFdpdGhDb21wb3NpdGlvblJlc3VsdHMpOiBOb3cgc2VuZCB0aGUKLSAgICAgICAgY29tcG9zaXRp
b24gcmVzdWx0cyBhZnRlciB0aGUga2V5IGV2ZW50LgotCi0yMDEyLTA1LTIyICBaYW4gRG9iZXJz
ZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+Ci0KLSAgICAgICAgW0d0a11bTGF5b3V0VGVzdHNd
IFJlcGFpbnQgdGhlIGNvbXBsZXRlIFdlYktpdFdlYlZpZXcgYmVmb3JlIGR1bXBpbmcgcGl4ZWwg
cmVzdWx0cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODYyODQKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAg
QWRkIGFuIGFkZGl0aW9uYWwgbWV0aG9kIHRvIHRoZSBDaHJvbWVDbGllbnQgdGhyb3VnaCB3aGlj
aCBpdCBpcwotICAgICAgICBwb3NzaWJsZSB0byBieXBhc3MgdGhlIHBhaW50aW5nIHRpbWVyIGFu
ZCBmb3JjZSBhbiBpbW1lZGlhdGUgcmVwYWludCBvZgotICAgICAgICB0aGUgY3VycmVudCBkaXJ0
eSByZWdpb25zLgotCi0gICAgICAgIEFkZCBhIG5ldyBtZXRob2QgdG8gRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrIGNsYXNzIHRoYXQgY2FsbHMgdGhhdAotICAgICAgICBtZXRob2QsIG1ha2luZyBp
dCBwb3NzaWJsZSB0byBmb3JjZSBhbiBpbnN0YW50IHBhaW50IGZyb20KLSAgICAgICAgRHVtcFJl
bmRlclRyZWUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OkNocm9tZUNsaWVudCk6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cGFpbnQpOiBPbmx5IGRlbGF5IHRoZSBwYWludGluZyBp
ZiB0aGUgcGFpbnQgaXMKLSAgICAgICAgbm90IGZvcmNlZC4KLSAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50Ojpmb3JjZVBhaW50KToKLSAgICAgICAgKFdlYktpdCk6Ci0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgIChDaHJvbWVDbGllbnQpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0g
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmdldEZyYW1lQ2hpbGRyZW4pOiBSZWZh
Y3RvciBnZXRGcmFtZUNoaWxkcmVuCi0gICAgICAgIHRvIHVzZSB0aGUga2l0KCkgZnVuY3Rpb24g
b24gdGhlIGNvcmUgY2hpbGQgZnJhbWVzIHJhdGhlciB0aGFuIHVzaW5nCi0gICAgICAgIHRoZSBG
cmFtZUxvYWRlckNsaWVudCBvZiB0aGF0IGZyYW1lLCB3aGljaCBpcyB3aGF0IHRoZSBraXQoKSBm
dW5jdGlvbiBkb2VzIGluIHRoZSBmaXJzdAotICAgICAgICBwbGFjZS4gVGhpcyBtYWtlcyBpdCBw
b3NzaWJsZSB0byByZW1vdmUgdGhlIGluY2x1c2lvbiBvZiB0aGUgRnJhbWVMb2FkZXJDbGllbnRH
dGsuaAotICAgICAgICBoZWFkZXIgd2hpY2ggY2F1c2VzIHN5bWJvbCBuYW1lIGNvbmZsaWN0cyB3
aGVuIGluY2x1ZGVkIGFsb25nIHdpdGggQ2hyb21lQ2xpZW50R3RrLmgKLSAgICAgICAgdGhhdCBv
cmlnaW5hdGUgaW4gdGhlIFhsaWIgaGVhZGVycyBpbmNsdWRlZCB0aHJvdWdoIHRoZSBmb3JtZXIg
aGVhZGVyLgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmb3JjZVdlYlZpZXdQ
YWludCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
Lmg6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotCi0yMDEyLTA1LTIxICBT
dWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFnaW5lbmlAbGludXguaW50ZWwuY29tPgot
Ci0gICAgICAgIFtHVEtdIERSVCBzdXBwb3J0IGZvciBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRT
ZXJpYWxpemVIVFRQTG9hZHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2NjUzCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNp
bHZhLgotCi0gICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXRTZXJpYWxpemVIVFRQTG9hZHMgaW4g
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrCi0gICAgICAgIHRvIGFsbG93IHRlc3RpbmcgcmVzb3Vy
Y2UgbG9hZCBvcmRlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNl
cmlhbGl6ZUhUVFBMb2Fkcyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotCi0y
MDEyLTA1LTE4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQot
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE3NjI4LgotICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMTc2MjgKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2OTM2Ci0KLSAgICAgICAgdHJpZ2dlcnMgMjArIHRp
bWVvdXRzIGluIHRoZSBlZGl0aW5nIHRlc3Qgc3VpdGUgKFJlcXVlc3RlZCBieQotICAgICAgICBw
aGlsbiBvbiAjd2Via2l0KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRDaGVja2Vy
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDbGllbnRHdGs6OmNo
ZWNrU3BlbGxpbmdPZlN0cmluZyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tl
cmVuY2hhbnQuY3BwOgotICAgICAgICAoY2hlY2tTcGVsbGluZ09mU3RyaW5nKToKLQotMjAxMi0w
NS0xOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
U3BlbGwgY2hlY2tlciBkb2Vzbid0IHJlY29nbml6ZSBjb250cmFjdGlvbnMgKGFwb3N0cm9waGVz
KQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYxMTgK
LQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAg
VGhlIEVuY2hhbnQgc3BlbGwgY2hlY2tlciB3YXMgYnJlYWtpbmcgd29yZHMgb24gYXBvc3Ryb3Bo
ZXMsIGJlY2F1c2UKLSAgICAgICAgYXBwYXJlbnRseSB0aGV5IHdlcmUgYWx3YXlzIGJlaW5nIGRl
dGVjdGVkIGFzIFBhbmdvIHdvcmQtZW5kCi0gICAgICAgIGNoYXJhY3RlcnMuIEluIHJlYWxpdHks
IHRvIGtub3cgd2hldGhlciBvciBub3QgdGhlIGFwb3N0cm9waGUgaXMgYQotICAgICAgICB3b3Jk
IGVuZCBjaGFyYWN0ZXIgcmVxdWlyZXMgbG9va2luZyBhdCBhIHN0cmluZyB3aXRoIGEgbGFyZ2Vy
Ci0gICAgICAgIGdyYW51bGFyaXR5IHRoYW4gb25lIGNoYXJhY3Rlci4gSW4gcmVhbGl0eSwgV2Vi
Q29yZSBoYXMgYWxyZWFkeQotICAgICAgICBlbnN1cmVkIHRoYXQgYW55IGFwb3N0cm9waGVzIGlu
IHRoZSBzdHJpbmcgYmVsb25nIHRvIGNvbnRyYWN0aW9ucyBieQotICAgICAgICB1c2luZyB0aGUg
V29yZEJyZWFrSXRlcmF0b3IuCi0KLSAgICAgICAgU2ltcGxpZnkgdGhlIHdheSB0aGUgd2UgYnJl
YWsgc3RyaW5ncywgYnkganVzdCBtYW51YWxseSB0cmltbWluZyBvZmYKLSAgICAgICAgYWxsIG5v
bi1ncmFwaGFibGUgY2hhcmFjdGVycyBmcm9tIHRoZSBzdHJpbmcgYW5kIHRoZW4gZmluZGluZyB0
aGUgZW5kCi0gICAgICAgIG9mIHRoZSBmaXJzdCB3b3JkIGJ5IGxvb2tpbmcgZm9yIHRoZSBuZXh0
IG5vbi1ncmFwaGFibGUgY2hhcmFjdGVyLgotICAgICAgICBUaGlzIGhhcyB0aGUgc2lkZSBlZmZl
Y3Qgb2YgcmVtb3ZpbmcgdGhlIGRlcGVuZGVuY3kgb24gUGFuZ28gYW5kCi0gICAgICAgIGVsaW1p
bmF0aW5nIG9uZSBjb3B5LgotCi0gICAgICAgIFRoaXMgY2hhbmdlIGFsc28gY2xlYW5zIHVwIHNv
bWUgbWlzYmVoYXZpb3Igb24gdGhlIHBhcnQgb2YgdGhlCi0gICAgICAgIFdlYkNvcmVTdXBwb3J0
IGxheWVyIHdoaWNoIHdhcyBub3QgY29udmVydGluZyBmcm9tIFVuaWNvZGUgY2hhcmFjdGVyCi0g
ICAgICAgIG9mZnNldHMgdG8gVVRGLTE2LiBUaGVzZSBvZmZzZXRzIGNhbiBiZSBkaWZmZXJlbnQg
aWYgYW55IG9mIHRoZQotICAgICAgICBjaGFyYWN0ZXJzIGluIHRoZSBVVEYtMTYgc3RyaW5nIGFy
ZSBzdXJyb2dhdGUgcGFpcnMgKG5vbiBCTVAKLSAgICAgICAgY2hhcmFjdGVycykuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50R3RrOjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcpOiBQcm9w
ZXJseQotICAgICAgICBjb252ZXJ0IGZyb20gVW5pY29kZSBvZmZzZXRzIHRvIFVURi0xNiBvZmZz
ZXRzLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcDoKLSAg
ICAgICAgKGZpbmRCeXRlT2Zmc2V0VG9GaXJzdE5vbkdyYXBoYWJsZUNoYXJhY3Rlcik6IEFkZGVk
IHRoaXMgaGVscGVyLgotICAgICAgICAoY2hlY2tTcGVsbGluZ09mU3RyaW5nKTogRG9uJ3Qgc3Bs
aXQgd29yZHMgb24gYXBvc3Ryb3BoZXMuCi0KLTIwMTItMDUtMTggIE1hcnRpbiBSb2JpbnNvbiAg
PG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIE9PTSBydW5uaW5nIHdlYmdsL3Nkay90
ZXN0cy9jb25mb3JtYW5jZS9jb250ZXh0L2NvbnRleHQtY3JlYXRpb24tYW5kLWRlc3RydWN0aW9u
Lmh0bWwKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgw
NTA5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxlamFuZHJvIEcuIENhc3Ryby4KLQotICAgICAg
ICBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCBjb250ZXh0IG5vdyBmdWxseSBvd25zIHRo
ZSBHTENvbnRleHQgZm9yIGl0cwotICAgICAgICB3aW5kb3cuIFRoaXMgc2ltcGxpZmllcyB0aGlz
IHF1aXRlIGEgYml0LiBXZSBhbHNvIHByb3Blcmx5IGNsZWFuIGl0IHVwIHdoZW4KLSAgICAgICAg
ZGVzdHJveWluZyB0aGUgbGF5ZXIgdHJlZSwgdG8gZ28gbW9yZSBlYXNpbHkgb24gcmVzb3VyY2Vz
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQuaDoKLSAgICAgICAgKEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmdsQ29udGV4dCk6
Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjphdHRhY2hS
b290R3JhcGhpY3NMYXllcik6Ci0KLTIwMTItMDUtMTggIE1PUklUQSBIYWppbWUgPG1vcnJpdGFA
Z29vZ2xlLmNvbT4KLQotICAgICAgICBBbm90aGVyIHVucmV2aWV3ZWQgYXR0ZW1wdCB0byBmaXgg
YnVpbGQgYnJlYWthZ2Ugb24gcjExNzU3Mi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5oOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmZyYW1lV2ls
bERldGFjaFBhZ2UpOgotCi0yMDEyLTA1LTE4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29n
bGUuY29tPgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NTUxNQotICAgICAgICBTdGFsZSBmcmFtZSBpbiBXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRp
ZENoZWNrU3VjY2VlZGVkCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0gICAgICAgIChXZWJL
aXQ6OkVkaXRvckNsaWVudDo6ZnJhbWVXaWxsRGV0YWNoUGFnZSk6Ci0KLTIwMTItMDUtMTcgIEhp
cm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgW1JlZmFjdG9yaW5n
XSBNb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgaW4gRWRpdG9yOjpyZXNwb25kVG9DaGFuZ2Vk
U2VsZWN0aW9uIHRvIHRoZSBXZWJLaXQgbGF5ZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NTkxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3Vr
ZSBOaXdhLgotCi0gICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgYSBUZXh0Q2hlY2tlckNsaWVudDo6
c2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24KLSAgICAgICAgZnVuY3Rpb24g
dG8gcmVtb3ZlIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUgZnJvbSBFZGl0b3I6OnJlc3BvbmRUb0No
YW5nZWRTZWxlY3Rpb24KLSAgICAgICAgZnVuY3Rpb24uCi0KLSAgICAgICAgTm8gbmV3IHRlc3Rz
LCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0
Q2hlY2tlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50
R3RrOjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbik6Ci0gICAgICAgIChX
ZWJLaXQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmg6
Ci0gICAgICAgIChUZXh0Q2hlY2tlckNsaWVudEd0ayk6Ci0KLTIwMTItMDUtMTcgIERhbiBCZXJu
c3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KLQotICAgICAgICBSRUdSRVNTSU9OIChyMTE3NDI4KTog
V2ViS2l0IEFQSS9TUEkgd2FzIHJlbW92ZWQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2NzQ4Ci0KLSAgICAgICAgUmV2ZXJ0ZWQgcjExNzQyOC4KLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0g
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW5Gb3JVUkxTY2hlbWUpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKLQot
MjAxMi0wNS0xNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgotCi0g
ICAgICAgIENvbnZlcnQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSB0
byB1c2UgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NzA0Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCi0KLSAgICAgICAgUmVtb3ZlIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5G
b3JVUkxTY2hlbWUgZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUK
LSAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRl
cmZhY2UuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkZWxpdmVyQWxsTXV0
YXRpb25zSWZOZWNlc3NhcnkpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKLQot
MjAxMi0wNS0xNCAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVs
LmNvbT4KLQotICAgICAgICBbR1RLXSBXcm9uZyBkb2N1bWVudGF0aW9uIGZvciBXZWIgRGF0YWJh
c2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MzYy
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEZpeGVk
IGRvY3MgZm9yIHdlYmtpdF9zZXRfZGVmYXVsdF93ZWJfZGF0YWJhc2VfcXVvdGEoKS4KLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5jcHA6Ci0KLTIwMTItMDUtMTEgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUkVHUkVTU0lPTihy
MTE2MjA1KTogW0dUS106IGJ1aWxkIG5vIGxvbmdlciBzdXBwb3J0cyB0aGluIGFyY2hpdmVzCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjIwNwotCi0g
ICAgICAgICogR05VbWFrZWZpbGUuYW06IGxpbmsgbGliV2ViQ29yZU1vZHVsZXMgaW50byB0aGUg
d2Via2l0Z3RrIHNoYXJlZAotICAgICAgICBsaWJyYXJ5LgotCi0yMDEyLTA1LTEwICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+Ci0KLSAgICAgICAgTW92ZSByZXN1bWVB
bmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA2MwotCi0gICAgICAgIFJldmlld2VkIGJ5
IEFsZXhleSBQcm9za3VyeWFrb3YuCi0KLSAgICAgICAgUmVtb3ZlIHJlc3VtZUFuaW1hdGlvbnMg
ZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCi0gICAgICAgIGNy
b3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrKToKLQotMjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1
eW91bmcua2ltQHNhbXN1bmcuY29tPgotCi0gICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMg
dG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTk4NgotCi0gICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2Ug
Tml3YS4KLQotICAgICAgICBSZW1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgZnVuY3Rpb25zLCBiZWNh
dXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCi0gICAgICAgIGNyb3NzLXBvcnQgd2F5IHRo
cm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrKToKLQotMjAxMi0wNS0wOSAgU2ltb24gUGVuYSAgPHNwZW5hQGlnYWxpYS5jb20+Ci0K
LSAgICAgICAgW0dUS10gTWlzc2luZyBXZWJQcmVmZXJlbmNlcyBmb3IgbWVkaWEgcGxheWJhY2sg
cmVxdWlyaW5nIHVzZXIgZ2VzdHVyZXMgYW5kIGlubGluZSBwbGF5YmFjawotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxOTQKLQotICAgICAgICBSZXZp
ZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgRXhwb3NlIFdlYlByZWZlcmVuY2Vz
IGZvciBtZWRpYSBwbGF5YmFjayByZXF1aXJlcyB1c2VyIGdlc3R1cmUgYW5kCi0gICAgICAgIG1l
ZGlhIHBsYXliYWNrIGFsbG93cyBpbmxpbmUgdG8gR1RLIHNpZGUuCi0KLSAgICAgICAgVGhpcyBh
ZGRzIHR3byBwcm9wZXJ0aWVzIChtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSBhbmQK
LSAgICAgICAgbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSkgdG8gR1RLIFdlYktpdCBXZWJTZXR0
aW5ncywgYW5kIGNvbm5lY3RzCi0gICAgICAgIHRoZW0gdG8gdGhlIFdlYktpdCBXZWJWaWV3LCBz
byBjbGllbnRzIGNhbiBwcm9ncmFtbWF0aWNhbGx5IG1vZGlmeQotICAgICAgICB0aGVtLgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDogaW5zdGFsbCBuZXcgcHJvcGVy
dGllcyBhbmQgdXBkYXRlCi0gICAgICAgIHNldHRlciBhbmQgZ2V0dGVyCi0gICAgICAgICh3ZWJr
aXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5n
c19zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVy
dHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaDogYWRkIG1l
ZGlhIHBsYXliYWNrIHJlbGF0ZWQKLSAgICAgICAgcHJvcGVydGllcwotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDogY29ubmVjdCBuZXdseSBhZGRlZCBwcm9wZXJ0aWVzCi0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEyLTA1LTA5ICBEYW4gV2luc2hpcCAgPGRh
bndAZ25vbWUub3JnPgotCi0gICAgICAgIFtHVEtdIGRvbid0IHVzZSBzb3VwX3Nlc3Npb25fcGF1
c2VfbWVzc2FnZSBpbiB3ZWJraXRkb3dubG9hZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5MzEKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAg
ICAod2Via2l0X2Rvd25sb2FkX25ld193aXRoX2hhbmRsZSk6Ci0gICAgICAgICh3ZWJraXRfZG93
bmxvYWRfc3RhcnQpOgotCi0yMDEyLTA1LTA2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1A
c2Ftc3VuZy5jb20+Ci0KLSAgICAgICAgQ29udmVydCBpc1BhZ2VCb3hWaXNpYmxlIHRvIHVzZSBJ
bnRlcm5hbHMgaW50ZXJmYWNlLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODU2OTIKLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQot
ICAgICAgICBSZW1vdmUgaXNQYWdlQm94VmlzaWJsZSBmdW5jdGlvbnMsIGJlY2F1c2UgaXQgaXMg
YWJsZSB0byB3b3JrIGluIHRoZQotICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJ
bnRlcm5hbHMgaW50ZXJmYWNlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0K
LTIwMTItMDUtMDUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIEZpeCB0aGUgR1RLKyBUZXh0dXJlTWFwcGVyIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5n
IGJ1aWxkLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X3JlYWxpemUpOiBQcm9wZXJseSBhY2Nlc3MgdGhlIHByaXZhdGUgZGF0
YQotICAgICAgICBzdHJ1Y3R1cmUgb2YgdGhlIFdlYktpdFdlYlZpZXcuCi0KLTIwMTItMDUtMDUg
IE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtd
IFdlYktpdCBzaG91bGQgcHJvcGVybHkgc2V0IHRoZSBpbnB1dCBtZXRob2QgY29udGV4dCB3aW5k
b3cgbG9jYXRpb24KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg0OTgxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50OjpwYWludCk6IER1cmluZyBwYWludGluZywgdXBkYXRlIHRo
ZSBjdXJzb3IgcmVjdGFuZ2xlCi0gICAgICAgIGlmIHBvc3NpYmxlLgotCi0yMDEyLTA1LTA1ICBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFVucmV2aWV3
ZWQgcHJlcGFyYXRpb24gZm9yIDEuOS4yLgotCi0gICAgICAgICogTkVXUzogY2hhbmdlcyBmcm9t
IDEuOS4xLgotCi0yMDEyLTA1LTA0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUu
b3JnPgotCi0gICAgICAgIFtHVEtdIFNpbXBsaWZ5IGhvdyBsaWJXZWJDb3JlTW9kdWxlcyBpcyBs
aW5rZWQgaW4sIGFuZCBmaXggV2ViS2l0MiBidWlsZAotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU2OTEKLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OiBubyBsb25nZXIgbGluayBsaWJ3ZWJraXRndGsgdG8gbGliV2ViQ29yZU1vZHVsZXMuCi0KLTIw
MTItMDUtMDQgIFN1ZGFyc2FuYSBOYWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5p
bnRlbC5jb20+Ci0KLSAgICAgICAgW0dUS10gRFJUIG5lZWRzIGFuIGltcGxlbWVudGF0aW9uIG9m
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXREZWZlcnNMb2FkaW5nIGFuZCA6OmdvQmFjawotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxMzQKLQotICAg
ICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHNldERlZmVyc0xvYWRpbmcgaW4gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RGVmZXJzTG9hZGluZyk6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotCi0yMDEyLTA1LTA0ICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBGaXggdGhlIEdUSysgZGVidWcgYnVp
bGQgYWZ0ZXIgdGhlIHIxMTYxMTQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUlucHV0
TWV0aG9kS2V5Ym9hcmRFdmVudCk6IFVwZGF0ZSBhbgotICAgICAgICBhc3NlcnRpb24gdG8gcmVm
bGVjdCBhIHJlYWwgbWV0aG9kIG5hbWUgaW4gUGxhdGZvcm1LZXlib2FyZEV2ZW50Ci0gICAgICAg
IGFuZCByZW1vdmUgYW4gdW5uZWNlc3NhcnkgY2FsbCB0byBwcmV2ZW50RGVmYXVsdCgpIHdoaWNo
IHRyaWdnZXJlZAotICAgICAgICBhbiBhc3NlcnRpb24gZmFpbHVyZSBoaWdoZXIgaW4gdGhlIGNh
bGwgc3RhY2suCi0KLTIwMTItMDUtMDQgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9y
Zz4KLQotICAgICAgICBEb24ndCByZXF1aXJlIEZyYW1lTG9hZGVyQ2xpZW50IHRvIG1hbnVmYWN0
dXJlIGEgY29tbWl0RGF0YSgpIGNhbGwgZm9yIGVtcHR5IGRvY3VtZW50cy4KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NTMzCi0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OkZyYW1lTG9hZGVyQ2xpZW50KToKLSAgICAgICAgKFdlYktpdCk6Ci0gICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRpbmcpOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjptYWtlUmVwcmVzZW50YXRpb24pOgotICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6cmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKToKLSAgICAgICAgKEZy
YW1lTG9hZGVyQ2xpZW50KToKLQotMjAxMi0wNS0wMyAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gUmV3b3JrIElNRSBoYW5kbGluZyB0byBm
aXggYnVncyBhbmQgcHJlcGFyZSBmb3IgV2ViS2l0MgotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ1NTYKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgUmV3b3JrIGlucHV0IG1ldGhvZCBoYW5kbGlu
ZyBsb2dpYyBpbnRvIGEgY2xhc3MgY2FsbGVkIEd0a0lucHV0TWV0aG9kRmlsdGVyLgotICAgICAg
ICBUaGlzIGZpbHRlciBub3cgcnVucyBiZWZvcmUgV2ViQ29yZSBldmVudCBoYW5kbGluZywgYWxs
b3dpbmcgdGhlIGNvZGUgdG8gbW9yZQotICAgICAgICBlYXNpbHkgZmFrZSBzaW1wbGUgY29tcG9z
aXRpb25zIHRoYXQgc2hvdWxkIGJlIHNlZW4gYXMga2V5c3Ryb2tlcy4gV2UgY2FuIGFsc28KLSAg
ICAgICAgZmlsdGVyIGtleXByZXNzZXMgdGhhdCBzaG91bGQgbm90IGdvIHRvIHdlYiBjb250ZW50
IGF0IGFsbCwgc3VjaCBhcyBrZXkgdXAgZXZlbnRzCi0gICAgICAgIHJlbGF0ZWQgdG8ga2V5IGRv
d24gZXZlbnRzIHRoYXQgd2VyZSBmaWx0ZXJlZC4KLQotICAgICAgICBBbHNvIGFkZGVkIGlzIGEg
V2ViVmlld0lucHV0TWV0aG9kRmlsdGVyIHdoaWNoIGlzIGEgY29uY3JldGUgaW1wbGVtZW50YXRp
b24gb2YKLSAgICAgICAgR3RrSW5wdXRNZXRob2RGaWx0ZXIuIFRoaXMgY2xhc3MgY29udGFpbnMg
bG9naWMgZm9yIGFjdHVhbGx5IHNlbmRpbmcgZXZlbnRzIHRvCi0gICAgICAgIFdlYkNvcmUuIElu
IFdlYktpdDIgYW4gaW1wbGVtZW50YXRpb24gb2YgR3RrSW5wdXRNZXRob2RGaWx0ZXIgd2lsbCBz
ZW5kIGV2ZW50cwotICAgICAgICBhY3Jvc3MgdGhlIElQQyBjaGFubmVsLgotCi0gICAgICAgICog
R05VbWFrZWZpbGUuYW06IEFkZCBuZXcgZmlsZXMgdG8gdGhlIHNvdXJjZSBsaXN0LgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6aW5wdXRNZXRob2RzTWVudUl0ZW0pOiBBY2Nlc3MgdGhlIGlucHV0IG1ldGhvZCBjb250
ZXh0IHZpYSB0aGUgZmlsdGVyLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5jcHA6IFJlbW92ZSB0aGUgdHJpY2t5IGxvZ2ljIG9mIGlucHV0IG1ldGhvZAotICAgICAg
ICBldmVudHMgZnJvbSB0aGlzIGNsYXNzLCBiZWNhdXNlIGl0J3Mgbm93IGluIHRoZSBHdGtJbnB1
dE1ldGhvZEZpbHRlci4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1l
dGhvZFN0YXRlKTogQ2FsbCBpbnRvIHRoZSBmaWx0ZXIuCi0gICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudDo6c2hvdWxkQmVnaW5FZGl0aW5nKTogV2Ugbm8gbG9uZ2VyIG5lZWQgdG8gdXBkYXRl
IHRoZSBjb21wb3NpdGlvbiBoZXJlLgotICAgICAgICBUaGlzIGlzIGhhbmRsZWQgYnkgdGhlIGZv
Y3VzIGluIGFuZCBmb2N1cyBvdXQgbG9naWMgaW4gdGhlIGZpbHRlci4KLSAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpzaG91bGRFbmRFZGl0aW5nKTogRGl0dG8uCi0gICAgICAgIChXZWJL
aXQ6OkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbik6IENhbGwgaW50byB0
aGUgZmlsdGVyIG5vdy4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1
dE1ldGhvZEtleWJvYXJkRXZlbnQpOiBBZGRlZCB0aGlzIGhlbHBlciB3aGljaCBleGVjdXRlcwot
ICAgICAgICBhbnkgcGVuZGluZyBjb21wb3NpdGlvbiBjb25maXJtYXRpb24gb3IgcHJlZWRpdCB1
cGRhdGUgYWN0aW9ucyBhcyB0aGUgZGVmYXVsdCBhY3Rpb24gb2YKLSAgICAgICAgdGhlIGtleWRv
d24gZXZlbnQuCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRF
dmVudCk6IENhbGwgaGFuZGxlSW5wdXRNZXRob2RLZXlib2FyZEV2ZW50IHRvIGRvCi0gICAgICAg
IGFueSBwZW5kaW5nIGNvbXBvc2l0aW9uIGFjdGlvbi4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9y
Q2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24pOiBSZW1vdmUgYWxsIHRoZSBsb2dpYyBm
cm9tIHRoaXMgbWV0aG9kLgotICAgICAgICBLZXlzIGFyZSBmaWx0ZXJlZCBiZWZvcmUgdGhleSBh
cmUgc2VudCB0byBXZWJDb3JlIG5vdyBhbmQgdGhlIGFjdHVhbCBhY3Rpb24gb2YgaW5wdXQgbWV0
aG9kCi0gICAgICAgIGV2ZW50cyBoYXBwZW5zIGluIHRoZSBrZXlkb3duIGRlZmF1bHQgYWN0aW9u
IHRvIGluY3JlYXNlIGNvbXBhdGliaWxpdHkgd2l0aCBvdGhlciBicm93c2Vycy4KLSAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOiBSZW1vdmUgY29udGV4dCBzaWdu
YWwgbWFuYWdlbWVudC4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojp+RWRpdG9yQ2xp
ZW50KTogRGl0dG8uCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6
Ci0gICAgICAgIChFZGl0b3JDbGllbnQpOiBObyBsb25nZXIgaGFzIHNvbWUgbWVtYmVycyB0aGF0
IHRyYWNrZWQgSU1FIHN0YXR1cy4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJWaWV3SW5w
dXRNZXRob2RGaWx0ZXIuY3BwOiBBZGRlZC4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJW
aWV3SW5wdXRNZXRob2RGaWx0ZXIuaDogQWRkZWQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0eSk6IEdldCB0
aGUgY29udGV4dCBmcm9tIHRoZSBmaWx0ZXIgbm93LgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2tleV9wcmVzc19ldmVudCk6IEp1c3Qgc2VuZCBldmVudHMgc3RyYWlnaHQgdG8gdGhlIGZpbHRl
ci4KLSAgICAgICAgVGhlIGZpbHRlciB3aWxsIGRlY2lkZSB3aGV0aGVyIG9yIG5vdCB0byBzZW5k
IHRoZW0gdG8gV2ViQ29yZS4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19rZXlfcmVsZWFzZV9l
dmVudCk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2J1dHRvbl9wcmVzc19ldmVu
dCk6IFVzZSB0aGUgZmlsdGVyIHRvIGhhbmRsZSBidXR0b24gcHJlc3MKLSAgICAgICAgZXZlbnRz
IHJlbGF0ZWQgdG8gSU1FLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZvY3VzX2luX2V2ZW50
KTogTm90aWZ5IHRoZSBmaWx0ZXIgbm93LgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZvY3Vz
X291dF9ldmVudCk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3JlYWxpemUpOiBU
aGUgZmlsdGVyIHRha2VzIGNhcmUgb2YgbGlzdGVuaW5nIGZvciByZWFsaXplIG5vdy4KLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19pbml0KTogU2V0IHRoZSBXZWJWaWV3IHdpZGdldCBvbiB0aGUg
ZmlsdGVyLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOiBDaGFuZ2Ug
dGhlIEd0a0lNQ29udGV4dCBtZW1iZXIgdG8gYmUgYSBHdGtJbnB1dE1ldGhvZEZpbHRlciBtZW1i
ZXIuCi0KLTIwMTItMDUtMDMgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+Ci0K
LSAgICAgICAgUmVtb3ZpbmcgbGluZSBpbiBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzIHRoYXQg
ZW5mb3JjZXMgYSBtaW5pbXVtIHNjYWxlIGZhY3RvciB0byBuZXZlciBhbGxvdyB6b29taW5nIG91
dCBtb3JlIHRoYW4gdmlld3BvcnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcwNjA5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wQ29u
ZmlndXJhdGlvbkZvclZpZXdwb3J0KToKLQotMjAxMi0wNC0xOCAgSm9uIEhvbmV5Y3V0dCAgPGpo
b25leWN1dHRAYXBwbGUuY29tPgotCi0gICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFdpbGxTZW5kU3VibWl0RXZlbnQoKSBzaG91bGQgYmUgZ2l2ZW4gbW9yZQotICAgICAgICBpbmZv
cm1hdGlvbiBhYm91dCB0aGUgZm9ybSBiZWluZyBzdWJtaXR0ZWQKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0Mjk3Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgQW5keSBFc3Rlcy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmg6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdp
bGxTZW5kU3VibWl0RXZlbnQpOgotICAgICAgICBVcGRhdGVkIG1ldGhvZCBkZWNsYXJhdGlvbi4K
LQotMjAxMi0wNS0wMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KLQotICAgICAg
ICAqQ29tbWFuZC5oIGZpbGVzIHNob3VsZG4ndCBiZSBleHBvcnRlZCB0byBXZWJLaXQgbGF5ZXIK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0Nzc4Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwOgotCi0yMDEyLTA0LTMwICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9t
aXVtLm9yZz4KLQotICAgICAgICBbZ3RrLCBxdCwgY2hyb21pdW0sIHdpbl0gRml4IHVzYWdlIG9m
IExheW91dFVuaXRzIGFuZCByb3VuZGluZyBpbiBwbGF0Zm9ybSBjb2RlCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTIyMgotCi0gICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIFVwZGF0ZSBwbGF0Zm9ybSBjb2RlIHRvIHVz
ZSB0aGUgcGl4ZWwgc25hcHBlZCB2YWx1ZXMgZm9yIHBhaW50aW5nIHJlY3RzCi0gICAgICAgIHRv
IGxpbmUgdXAgd2l0aCBkZXZpY2UgcGl4ZWxzIGFuZCBjaGFuZ2UgcGxhdGZvcm0gc3BlY2lmaWMg
aGl0IHRlc3RpbmcKLSAgICAgICAgY29kZSB0byB1c2Ugcm91bmRlZFBvaW50IGFzIGhpdCB0ZXN0
aW5nIGlzIHN0aWxsIG1vc3RseSBkb25lIG9uIGludGVnZXIKLSAgICAgICAgYm91bmRzLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwOgotICAgICAgICAoV2ViS2l0OjpraXQpOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKGdldExvY2F0aW9u
Rm9yS2V5Ym9hcmRHZW5lcmF0ZWRDb250ZXh0TWVudSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfcXVlcnlfdG9vbHRpcCk6Ci0KLTIwMTItMDQtMzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFVwZGF0ZSBORVdTIGFuZCBjb25m
aWd1cmUuYWMgZm9yIDEuOS4xIHJlbGVhc2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg1MTc1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUg
Tm9ybWFuZC4KLQotICAgICAgICAqIE5FV1M6IEFkZGVkIHJlbGVhc2Ugbm90ZXMgZm9yIDEuOS4x
LgotCi0yMDEyLTA0LTMwICBTdWRhcnNhbmEgTmFnaW5lbmkgIDxzdWRhcnNhbmEubmFnaW5lbmlA
bGludXguaW50ZWwuY29tPgotCi0gICAgICAgIFtHVEtdIERSVCBzdXBwb3J0IGZvciBsYXlvdXRU
ZXN0Q29udHJvbGxlci5yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeQotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUxNTYKLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJl
bW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IHdoaWNoIGFsbG93Ci0gICAgICAgIGxheW91
dCB0ZXN0cyB0byByZW1vdmUgb3JpZ2lucyB3aGl0ZWxpc3RpbmcuCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKToKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0KLTIwMTItMDQtMjkgIFN1ZGFyc2FuYSBO
YWdpbmVuaSAgPHN1ZGFyc2FuYS5uYWdpbmVuaUBsaW51eC5pbnRlbC5jb20+Ci0KLSAgICAgICAg
W0dUS10gRFJUIG5lZWRzIGFuIGltcGxlbWVudGF0aW9uIG9mIGxheW91dFRlc3RDb250cm9sbGVy
LnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MTMxCi0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXREb21h
aW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIHdoaWNoIGFsbG93Ci0gICAgICAgIGRp
c2FibGluZyBkb21haW4gcmVsYXhhdGlvbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUpOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKLQotMjAxMi0wNC0yMiAgQWRyaWFuIEJ1bmsgIDxi
dW5rQHN0dXN0YS5kZT4KLQotICAgICAgICBbR1RLXSBSZW1vdmUgdGhlIG9ic29sZXRlIEhpbGRv
biBVSSBleHRlbnNpb25zCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MzQyMAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQot
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2V0SW5wdXRN
ZXRob2RTdGF0ZSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2J1dHRvbl9yZWxlYXNlX2V2ZW50KToKLQotMjAxMi0wNC0yMCAg
WmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgotCi0gICAgICAgIFtHdGtdW1dL
MV0gVXNlIG1vY2sgc2Nyb2xsYmFycyB3aGVuIHRlc3RpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NTc3Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
RGFuaWVsIEJhdGVzLgotCi0gICAgICAgIEVuYWJsZSBtb2NrIHNjcm9sbGJhcnMgaWYgcnVubmlu
ZyBEdW1wUmVuZGVyVHJlZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotCi0yMDEyLTA0LTE4
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQotICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTE0NTA2LgotICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8xMTQ1MDYKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg0MjU0Ci0KLSAgICAgICAgU2VlbXMgdG8gYmUgbWFraW5nIGd0aydz
IER1bXBSZW5kZXJUcmVlIGNyYXNoIG9jY2FzaW9uYWxseQotICAgICAgICAoUmVxdWVzdGVkIGJ5
IHRvbXogb24gI3dlYmtpdCkuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAg
KHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJf
c2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGlu
Z3Nwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKLQotMjAxMi0wNC0xOCAgU2ltb24gUGVuYSAgPHNwZW5h
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gcjExNDAyMSB0cmlnZ2VyZWQgbWVkaWEgZmxh
a3luZXNzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
Mzg3NAotCi0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQuCi0KLSAgICAgICAg
V2hlbiB0aGUgTWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgc2V0dGluZyB3YXMgYWRk
ZWQsIG5vIGd0awotICAgICAgICBBUEkgd2FzIGltcGxlbWVudGVkIHRvIGFjY2VzcyBpdC4KLQot
ICAgICAgICBUaGlzIGFkZHMgYSBwcm9wZXJ0eSB0byBndGsgV2ViS2l0IFdlYlNldHRpbmdzLCBh
bmQgY29ubmVjdHMgaXQgdG8KLSAgICAgICAgV2ViS2l0IFdlYlZpZXcsIHRodXMgYWxsb3dpbmcg
Y2xpZW50cyB0byBwcm9ncmFtbWF0aWNhbGx5IG1vZGlmeSBpdC4KLQotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2Ns
YXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgot
ICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEyLTA0LTE3
ICBDYXJsb3MgR2FybmFjaG8gIDxjYXJsb3NAbGFuZWRvLmNvbT4KLQotICAgICAgICBbR1RLXSBF
bmFibGUgYmFjayBkb3VibGUgYnVmZmVyaW5nIG9uIFdlYktpdFdlYlZpZXcgdG8gZml4IGZsaWNr
ZXJpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0
MTQ5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIERl
c3BpdGUgaGF2aW5nIFdlYktpdFdlYlZpZXcgaXRzIG93biBiYWNraW5nIGJ1ZmZlciwgY2FsbGlu
ZwotICAgICAgICBndGtfd2lkZ2V0X3NldF9kb3VibGVfYnVmZmVyZWQoLi4uLEZBTFNFKSBtYXkg
c3RpbGwgcG9zZSBzaWRlCi0gICAgICAgIGVmZmVjdHMsIHN1Y2ggYXMgZW5zdXJpbmcgdGhhdCBh
bGwgZHJhd2luZyBvcGVyYXRpb25zIGFyZSAKLSAgICAgICAgZmx1c2hlZCB0byB0aGUgWCBzZXJ2
ZXIgYmVmb3JlIHJlbmRlcmluZyBhIG5vbi1kb3VibGUgYnVmZmVyZWQKLSAgICAgICAgd2lkZ2V0
LCB3aGljaCBtYXkgdHJhbnNsYXRlIGludG8gZmxpY2tlcmluZyBvZiB0aGUgcGFyZW50IAotICAg
ICAgICBHZGtXaW5kb3cgYmVmb3JlIHRoZSBXZWJLaXRXZWJWaWV3IGl0c2VsZiBpcyByZW5kZXJl
ZC4gCi0KLSAgICAgICAgRW5hYmxpbmcgYmFjayBkb3VibGUgYnVmZmVyaW5nIHNvbHZlcyB0aGlz
IGFzIGFsbCBjb250ZW50cyBhcmUgCi0gICAgICAgIGZpcnN0IGNvbXBvc2l0ZWQgdG9nZXRoZXIg
YmVmb3JlIGdldHRpbmcgdG8gdGhlIGZyb250IGJ1ZmZlciwKLSAgICAgICAgYnV0IGVmZmVjdGl2
ZWx5IGFjdHMgYXMgM3JkIGJ1ZmZlci4gVGhpcyBpcyBzb3J0IG9mIHVuYXZvaWRhYmxlCi0gICAg
ICAgIHVubGVzcyBHVEsrIGdhaW5zIGEgImxldCBtZSB0YWtlIG93bmVyc2hpcCBvZiB0aGUgYmFj
a2luZyBidWZmZXIKLSAgICAgICAgZm9yIHRoaXMgd2lkZ2V0Iiwgd2hpY2ggY3VycmVudGx5IGxh
Y2tzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X2luaXQpOiBSZW1vdmUgY2FsbCB0byBndGtfd2lkZ2V0X3NldF9kb3VibGVf
YnVmZmVyZWQoLi4uLCBGQUxTRSkKLQotMjAxMi0wNC0wNiAgTWFydGluIFJvYmluc29uICA8bXJv
Ymluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gQWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgaXMgYnJva2VuIGFmdGVyIHJlY2VudCBUZXh0dXJlTWFwcGVyIHJlb3JnYW5pemF0aW9ucwot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMzOTMKLQot
ICAgICAgICBSZXZpZXdlZCBieSBOb2FtIFJvc2VudGhhbC4KLQotICAgICAgICBFbnN1cmUgdGhh
dCB0aGUgbGF5ZXIgdHJlZSBpcyBzeW5jZWQgd2hlbiB0aGUgcm9vdCBsYXllciBpcyByZXNpemVk
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRHTC5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
OjpyZXNpemVSb290TGF5ZXIpOiBFbnN1cmUgdGhhdCB0aGUgbGF5ZXIKLSAgICAgICAgdHJlZSBp
cyBzeW5jZWQgd2hlbiB0aGUgcm9vdCBsYXllciByZXNpemVzIGFuZCByZW1vdmUgYSBjYWxsIHRv
IHJlY29tcG9zaXRlCi0gICAgICAgIHRoZSB0cmVlLCBhcyBpdCBoYXBwZW5zIGFueXdheS4KLQot
MjAxMi0wNC0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgW0dUS10gU2Nyb2xsaW5nIHNvbWUgaWZyYW1lcyB0aGF0IGFyZSBwYXJ0aWFsbHkgb3V0
IG9mIHRoZSB2aWV3cG9ydCBsZWFkcyB0byByZXBhaW50IGVycm9ycwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMzMDkKLQotICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgSW5zdGVhZCBvZiBvbmx5IHVw
ZGF0aW5nIHNjcm9sbFJlY3QgLSBwcmVzZXJ2ZWRSZWdpb24sIHVwZGF0ZQotICAgICAgICBzY3Jv
bGxSZWN0IC0gKHByZXNlcnZlZFJlZ2lvbiAtIG9mZnNjcmVlblByZXNlcnZlZFJlZ2lvbikuIFRo
aXMgZW5zdXJlcyB0aGF0Ci0gICAgICAgIHdoZW4gcGFydCBvZiB0aGUgc2Nyb2xsIHJlY3QgaXMg
bW92ZWQgb25zY3JlZW4gZnJvbSBvZmZzY3JlZW4gdGhhdCBwYXJ0IGlzCi0gICAgICAgIHF1ZXVl
ZCBmb3IgYSByZWRyYXcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbCk6IFByb3Blcmx5
IGNhbGN1bGF0ZSB0aGUgYXJlYSB0byByZXBhaW50LgotCi0yMDEyLTA0LTA0ICBNYXJpdXN6IEdy
emVnb3JjenlrICA8bWFyaXVzei5nQHNhbXN1bmcuY29tPgotCi0gICAgICAgIEZpeCBidWlsZCBi
cmVhayB3aGVuIENPTlRFWFRfTUVOVVMgaXMgZGlzYWJsZWQuCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjM0MgotCi0gICAgICAgIFJldmlld2VkIGJ5
IEFuZHJlYXMgS2xpbmcuCi0KLSAgICAgICAgRml4ZXMgYnVpbGQgYnJlYWsgaW4gV2ViS2l0LUd0
aywgYW5kIFdlYktpdC1FRkwgcG9ydHMgd2hlbiBDT05URVhUX01FTlVTIG1hY3JvIGlzIGRpc2Fi
bGVkLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3Bw
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmg6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAgICAgICAod2Via2l0X2NvbnRleHRf
bWVudV9pdGVtX2dldF9hY3Rpb24pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19idXR0b25fcHJlc3NfZXZlbnQpOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2luaXQpOgotCi0yMDEyLTA0LTAzICBTaW1vbiBQZW5hICA8c3BlbmFAaWdhbGlhLmNvbT4KLQot
ICAgICAgICBbR1RLXSBEUlQgbWlzc2luZyBkaWRSdW5JbnNlY3VyZUNvbnRlbnQgbm90aWZpY2F0
aW9uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTM2
NwotCi0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQuCi0KLSAgICAgICAgQWRk
IGEgbmV3IHNpZ25hbCAiaW5zZWN1cmUtY29udGVudC1ydW4iIHRvIHRoZSBXZWJGcmFtZSB0byBu
b3RpZnkKLSAgICAgICAgd2hlbiBpbnNlY3VyZSBIVFRQIGNvbnRlbnQgKHN1Y2ggYXMgQ1NTLCBh
biBpZnJhbWUgb3IgYSBzY3JpcHQpIGlzCi0gICAgICAgIHJ1biBmcm9tIGEgc2VjdXJlIEhUVFBT
IFdlYkZyYW1lLiBJbXBsZW1lbnQgZGlkUnVuSW5zZWN1cmVDb250ZW50Ci0gICAgICAgIGluIGd0
aydzIEZyYW1lTG9hZGVyQ2xpZW50IGJ5IG1lYW5zIG9mIGVtaXR0aW5nIHRoYXQgc2lnbmFsLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOiBJbXBs
ZW1lbnQKLSAgICAgICAgZGlkUnVuSW5zZWN1cmVDb250ZW50IGJ5IGVtaXR0aW5nIFdlYkZyYW1l
J3MKLSAgICAgICAgImluc2VjdXJlLWNvbnRlbnQtcnVuIiBzaWduYWwKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJ1bkluc2VjdXJlQ29udGVudCk6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDogQWRkICJpbnNlY3VyZS1jb250ZW50LXJ1biIgc2ln
bmFsCi0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQpOgotCi0yMDEyLTAzLTMw
ICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KLQotICAgICAgICBHRU9MT0NB
VElPTiBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYXMgUGFnZSBTdXBwbGVtZW50Ci0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjIyOAotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgR2VvbG9jYXRpb24gaXMgbm93IGEgU3Vw
cGxlbWVudCBpbiBQYWdlIHNvIHRoZSBpbnRlcmZhY2UKLSAgICAgICAgaGFzIGNoYW5nZWQgZm9y
IHNldHRpbmcgdXAgdGhlIHBhZ2UncyBnZW9sb2NhdGlvbiBjbGllbnQKLSAgICAgICAgaW5pdGlh
bGx5IGFuZCBhY2Nlc3NpbmcgdGhlIGNvbnRyb2xsZXIgbGF0ZXIuCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayk6Ci0gICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24p
OgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbik6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9s
b2NhdGlvbkVycm9yKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVtYmVy
T2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6R2Vv
bG9jYXRpb25DbGllbnQ6OnVwZGF0ZVBvc2l0aW9uKToKLSAgICAgICAgKFdlYktpdDo6R2VvbG9j
YXRpb25DbGllbnQ6OmVycm9yT2NjdXJlZCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOgotCi0yMDEyLTAzLTI5ICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQotICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTEyNTUzLgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xMTI1NTMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgyNjM4Ci0KLSAgICAgICAgSXQgbWFkZSBhbGwgdGVzdHMgY3Jhc2ggb24g
UXQgV0syIChSZXF1ZXN0ZWQgYnkgT3NzeV9hd2F5IG9uCi0gICAgICAgICN3ZWJraXQpLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1v
Y2spOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRp
b25QZXJtaXNzaW9uKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24pOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50Ojp1cGRhdGVQb3NpdGlvbik6Ci0gICAgICAgIChX
ZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjplcnJvck9jY3VyZWQpOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKLQot
MjAxMi0wMy0yOSAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+Ci0KLSAgICAg
ICAgR0VPTE9DQVRJT04gc2hvdWxkIGJlIGltcGxlbWVudGVkIGFzIFBhZ2UgU3VwcGxlbWVudAot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIyMjgKLQot
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgotCi0gICAgICAgIEdlb2xvY2F0aW9uIGlz
IG5vdyBhIFN1cHBsZW1lbnQgaW4gUGFnZSBzbyB0aGUgaW50ZXJmYWNlCi0gICAgICAgIGhhcyBj
aGFuZ2VkIGZvciBzZXR0aW5nIHVwIHRoZSBwYWdlJ3MgZ2VvbG9jYXRpb24gY2xpZW50Ci0gICAg
ICAgIGluaXRpYWxseSBhbmQgYWNjZXNzaW5nIHRoZSBjb250cm9sbGVyIGxhdGVyLgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2sp
OgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb24pOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
ZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50Ojp1cGRhdGVQb3NpdGlvbik6Ci0gICAgICAgIChXZWJL
aXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjplcnJvck9jY3VyZWQpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKLQotMjAx
Mi0wMy0yOCAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJl
bW92ZSBkaXNwYXRjaERpZExvYWRNYWluUmVzb3VyY2UgY2FsbGJhY2ssIHNpbmNlIG5vCi0gICAg
ICAgIHBvcnQgaW1wbGVtZW50cyBpdC4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgyNTM5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3Nr
dXJ5YWtvdi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuaDoKLSAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50KToKLQotMjAxMi0w
My0yOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgW0dUS10gSW1wbGVtZW50IFBsYXRmb3JtU3RyYXRlZ2llcwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI0NTQKLQotICAgICAgICBSZXZpZXdlZCBi
eSBYYW4gTG9wZXouCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkIG5ldyBmaWxlcyB0
byBjb21waWxhdGlvbi4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdp
ZXNHdGsuY3BwOiBBZGRlZC4KLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6aW5pdGlh
bGl6ZSk6IEluaXRpYWxpemUgcGxhdGZvcm0KLSAgICAgICAgc3RyYXRlZ2llcy4KLSAgICAgICAg
KFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6UGxhdGZvcm1TdHJhdGVnaWVzR3RrKToKLSAgICAgICAg
KFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6Y3JlYXRlQ29va2llc1N0cmF0ZWd5KTogUmV0dXJuIHRo
aXMuCi0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmNyZWF0ZVBsdWdpblN0cmF0ZWd5
KTogRGl0dG8uCi0gICAgICAgIChQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmNyZWF0ZVZpc2l0ZWRM
aW5rU3RyYXRlZ3kpOiBEaXR0by4KLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6Y3Jl
YXRlUGFzdGVib2FyZFN0cmF0ZWd5KTogUmV0dXJuIDAsIHNpbmNlCi0gICAgICAgIFBhc3RlYm9h
cmRTdHJhdGVneSBpcyBvbmx5IHVzZWQgYnkgbWFjIGNvZGUgZm9yIG5vdy4KLSAgICAgICAgKFBs
YXRmb3JtU3RyYXRlZ2llc0d0azo6bm90aWZ5Q29va2llc0NoYW5nZWQpOgotICAgICAgICAoUGxh
dGZvcm1TdHJhdGVnaWVzR3RrOjpyZWZyZXNoUGx1Z2lucyk6IFJlZnJlc2ggdGhlIHBsdWdpbgot
ICAgICAgICBkYXRhYmFzZS4KLSAgICAgICAgKFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6Z2V0UGx1
Z2luSW5mbyk6IEluaXRpYWxpemUgcGx1Z2lucyBhbmQKLSAgICAgICAgcG9wdWxhdGUgdGhlIGdp
dmVuIHZlY3RvciB3aXRoIHBsdWdpbnMgaW5mb3JtYXRpb24uCi0gICAgICAgIChQbGF0Zm9ybVN0
cmF0ZWdpZXNHdGs6OmlzTGlua1Zpc2l0ZWQpOiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4KLSAg
ICAgICAgaGFzaCBpcyBhIHZpc2l0ZWQgbGluayBvZiB0aGUgcGFnZSBncm91cC4KLSAgICAgICAg
KFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6YWRkVmlzaXRlZExpbmspOiBBZGQgdGhlIGdpdmVuIGhh
c2ggdG8gdGhlCi0gICAgICAgIHBhZ2UgZ3JvdXAgdmlzaXRlZCBsaW5rcy4KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNHdGsuaDogQWRkZWQuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAgICAgICAod2Via2l0SW5pdCk6IEluaXRpYWxp
emUgUGxhdGZvcm1TdHJhdGVnaWVzR3RrLgotCi0yMDEyLTAzLTI2ICBKb29uZSBIdXIgIDxqb29u
ZS5odXJAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFtHVEtdIEJ1aWxkIGZpeCBmb3IgQWNj
ZWxlcmF0ZWQgQ29tcG9zaXRpbmcgd2l0aCBDbHV0dGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTc4NQotCi0gICAgICAgIFJldmlld2VkIGJ5IE1h
cnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCB3
YXMgaW50cm9kdWNlZCB0byBpc29sYXRlIGRpZmZlcmVudCBhY2NlbGVyYXRlZCAKLSAgICAgICAg
Y29tcG9zaXRpbmcgaW1wbGVtZW50YXRpb25zKHIxMDQxOTQpLCBidXQgdGhlIENsdXR0ZXIgaW1w
bGVtZW50YXRpb24gZG9lc24ndAotICAgICAgICBidWlsZCB3aXRoIGl0LiBUaGlzIGZpeGVzIHRo
ZSBidWlsZCBlcnJvci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Lmg6Ci0gICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHRDbHV0dGVyLmNwcDoKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAgKFdlYktpdDo6
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlbmRlckxheWVyc1RvV2luZG93KToKLSAg
ICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlc2l6ZVJvb3RM
YXllcik6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpz
eW5jTGF5ZXJzTm93KToKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQ6OnN5bmNMYXllcnNUaW1lb3V0KToKLSAgICAgICAgKFdlYktpdCk6Ci0KLTIwMTItMDMt
MjYgIEdhcnkgS3JhbWxpY2ggIDxncmltQHJlYXBlcndvcmxkLmNvbT4KLQotICAgICAgICBXZWJL
aXRXZWJWaWV3IHNpZ25hbHMgd2l0aCBHRXJyb3IgcGFyYW1ldGVycyBjYXVzZSBjcmFzaGVzIHdo
ZW4gdXNpbmcgR09iamVjdCBJbnRyb3NwZWN0aW9uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTk3NwotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRp
biBSb2JpbnNvbi4KLQotICAgICAgICBBZGRlZCBtYXJzaGFsZXJzIGZvciBCT09MRUFOOk9CSkVD
VCxTVFJJTkcsQk9YRUQgYW5kIFZPSUQ6T0JKRUNULE9CSkVDVCxCT1hFRAotICAgICAgICBhbmQg
Y2hhbmdlZCB0aGUgc2lnbmFsIHNpZ25hdHVyZXMgZm9yIFdlYktpdFdlYlZpZXc6OmxvYWQtZmFp
bCBhbmQKLSAgICAgICAgV2ViS2l0V2ViVmlldzo6cmVzb3VyY2UtbG9hZC1mYWlsZWQgdG8gdXNl
IHRoZSBuZXcgbWFyc2hhbGVycyBzaW5jZQotICAgICAgICBHRXJyb3IgaGFzIGJlZW4gYSBHQm94
ZWQgdHlwZSBzaW5jZSBHdGsgMi4yNi4gIFRoaXMgZml4ZXMgdGhlc2Ugc2lnbmFscwotICAgICAg
ICBmb3IgdGhlIGdvYmplY3QtaW50cm9zcGVjdGlvbiBiaW5kaW5ncy4KLQotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19p
bml0KToKLSAgICAgICAgKiB3ZWJraXRtYXJzaGFsLmxpc3Q6Ci0KLTIwMTItMDMtMjQgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFJlcGxh
Y2Ugb2NjdXJyZW5jZXMgb2YgInVyaSIgaW4gdGhlIGRvY3VtZW50YXRpb24gd2l0aCAiVVJJIgot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMjUKLQot
ICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgSW4g
ZG9jdW1lbnRhdGlvbiAidXJpIiBzaG91bGQgcmVhbGx5IGJlIHdyaXR0ZW4gYXMgIlVSSSIgc28K
LSAgICAgICAgd2Ugc2hvdWxkIGZpeCBhbGwgZXhpc3Rpbmcgc3RyaW5ncy4KLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6IFJlcGxhY2UgInVyaSIgd2l0aCAiVVJJLiIKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwOiBEaXR0by4KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlLmNwcDogRGl0dG8uCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcDogRGl0dG8uCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnJlc291cmNlLmNwcDogRGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2ViX3Jlc291cmNl
X2NsYXNzX2luaXQpOgotCi0yMDEyLTAzLTIzICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0Bn
bWFpbC5jb20+Ci0KLSAgICAgICAgW0d0a10gV2Via2l0IGZhaWxzIHRvIGJ1aWxkIHdpdGggLS1k
aXNhYmxlLWdlb2xvY2F0aW9uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTQ1MQotCi0gICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4u
Ci0KLSAgICAgICAgV3JhcCB1c2VzIG9mIFdlYkNvcmU6Okdlb2xvY2F0aW9uIGluIFdlYktpdEdl
b2xvY2F0aW9uUG9saWN5RGVjaXNpb24KLSAgICAgICAgYW5kIFdlYktpdFdlYlZpZXcgaW4gaWZk
ZWZzLCByZW1vdmluZyBjb21waWxhdGlvbiBlcnJvcnMgd2hlbiBjb21waWxpbmcKLSAgICAgICAg
d2l0aCBnZW9sb2NhdGlvbiBzdXBwb3J0IGRpc2FibGVkLiBBZmZlY3RlZCBwdWJsaWMgQVBJIG1l
dGhvZHMgYXJlIHRoZW4KLSAgICAgICAgc3R1YnMsIHRocm93aW5nIGEgd2FybmluZyB0aGF0IGZl
YXR1cmUgd2FzIG5vdCBlbmFibGVkIGF0IGNvbXBpbGUtdGltZS4KLQotICAgICAgICAqIHdlYmtp
dC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmNwcDoKLSAgICAgICAgKF9XZWJLaXRH
ZW9sb2NhdGlvblBvbGljeURlY2lzaW9uUHJpdmF0ZSk6Ci0gICAgICAgICh3ZWJraXRfZ2VvbG9j
YXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyk6Ci0gICAgICAgICh3ZWJraXRfZ2VvbG9jYXRpb25f
cG9saWN5X2FsbG93KToKLSAgICAgICAgKHdlYmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfZGVueSk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb25wcml2YXRl
Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl92aWV3X2luaXQpOgotCi0yMDEyLTAzLTIzICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNl
a0BnbWFpbC5jb20+Ci0KLSAgICAgICAgW0dPYmplY3QgYmluZGluZ3NdIFN1cHBsZW1lbnRhbCBp
bnRlcmZhY2VzIGFyZSBub3QgZGlzYWJsZWQgd2l0aCB0aGUgIkNvbmRpdGlvbmFsIiBhdHRyaWJ1
dGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMDMw
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEFkZCBh
IHByaXZhdGUgbWFjcm8gdGhhdCBjYW4gYmUgdXNlZCB3aGVuIG5lY2Vzc2FyeSB0byB0aHJvdyBh
IHdhcm5pbmcKLSAgICAgICAgYWJvdXQgYSBmdXR1cmUgbm90IGVuYWJsZWQgYXQgY29tcGlsZS10
aW1lLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHNwcml2YXRlLmg6Ci0KLTIwMTIt
MDMtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFtHVEtdIEFkZCBhIHdheSB0byBleHBvc2Ugd2VsbCBrbm93biBuYW1lcyBmb3IgaXRlbXMg
aW4gdGhlIGRlZmF1bHQgY29udGV4dCBtZW51Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NzY2MAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBS
b2JpbnNvbi4KLQotICAgICAgICBBZGQgV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24gZW51bSBjb250
YWluaW5nIGFsbCBwb3NzaWJsZSBjb250ZXh0Ci0gICAgICAgIG1lbnUgaXRlbSBhY3Rpb25zLgot
Ci0gICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZCBuZXcgZmlsZXMgdG8gY29tcGlsYXRpb24u
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwOgotICAg
ICAgICAoV2ViS2l0OjppbnB1dE1ldGhvZHNNZW51SXRlbSk6IFVzZSBXZWJDb3JlIGNvbnRleHQg
bWVudSBjbGFzc2VzCi0gICAgICAgIHRvIGNyZWF0ZSB0aGUgY29udGV4dCBtZW51IGFuZCBpdHMg
aXRlbXMgdG8gbWFrZSBzdXJlIGFsbCBpdGVtcwotICAgICAgICBoYXZlIGEgR3RrQWN0aW9uIGFz
c29jaWF0ZWQuCi0gICAgICAgIChXZWJLaXQ6Omluc2VydENvbnRyb2xDaGFyYWN0ZXIpOgotICAg
ICAgICAoV2ViS2l0Ojp1bmljb2RlTWVudUl0ZW0pOiBEaXR0by4KLSAgICAgICAgKiB0ZXN0cy90
ZXN0Y29udGV4dG1lbnUuYzogQWRkZWQuCi0gICAgICAgICh0ZXN0SW5mb05ldyk6Ci0gICAgICAg
ICh0ZXN0SW5mb0Rlc3Ryb3kpOgotICAgICAgICAoY29udGV4dE1lbnVGaXh0dXJlU2V0dXApOgot
ICAgICAgICAoY29udGV4dE1lbnVGaXh0dXJlVGVhcmRvd24pOgotICAgICAgICAoY2hlY2tBY3Rp
b24pOgotICAgICAgICAoY2hlY2tBY3Rpb25XaXRoU3VibWVudSk6Ci0gICAgICAgIChjaGVja1Nl
cGFyYXRvcik6Ci0gICAgICAgIChjb250ZXh0TWVudUNhbGxiYWNrKToKLSAgICAgICAgKHB1c2hF
dmVudCk6Ci0gICAgICAgIChsb2FkU3RhdHVzQ2FsbGJhY2spOgotICAgICAgICAobWFwRXZlbnRD
YWxsYmFjayk6Ci0gICAgICAgICh0ZXN0Q29udGV4dE1lbnUpOgotICAgICAgICAoY29udGV4dE1l
bnVDdXN0b21JdGVtQ2FsbGJhY2spOgotICAgICAgICAodGVzdENvbnRleHRNZW51Q3VzdG9tSXRl
bSk6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6
Ci0gICAgICAgICh3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X2FjdGlvbik6IFJldHVybiB0
aGUKLSAgICAgICAgV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24gZm9yIHRoZSBnaXZlbiBjb250ZXh0
IG1lbnUgaXRlbS4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5oOgotCi0yMDEyLTAz
LTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAg
ICBVbnJldmlld2VkLiBSZW5hbWUgYSB2YXJpYWJsZSBuYW1lIGluIEFQSSBkb2N1bWVudGF0aW9u
LgotCi0gICAgICAgIFJlbmFtZSBrZXlib2FyZF9tb2RlIHRvIHRyaWdnZXJlZF93aXRoX2tleWJv
YXJkIGluCi0gICAgICAgIFdlYktpdFdlYlZpZXc6OmNvbnRleHQtbWVudSBzaWduYWwgZG9jdW1l
bnRhdGlvbiBhcyBzdWdnZXN0ZWQgYnkKLSAgICAgICAgTWFydGluIGFuZCBHdXN0YXZvLiBJIGZv
cmdvdCB0byBtYWtlIHRoaXMgY2hhbmdlIGJlZm9yZSBsYW5kaW5nCi0gICAgICAgIHByZXZpb3Vz
IHBhdGNoLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotCi0yMDEyLTAzLTIzICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBBZGQgYSBzaWdu
YWwgdG8gYWxsb3cgYXBwbGljYXRpb25zIHRvIGhhbmRsZSBpdHMgb3duIGNvbnRleHQgbWVudQot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk5MDQKLQot
ICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgKiB0
ZXN0cy90ZXN0aGl0dGVzdHJlc3VsdC5jOgotICAgICAgICAobG9hZF9zdGF0dXNfY2IpOiBUZXN0
IHgsIHkgcHJvcGVydGllcyBvZiBXZWJLaXRIaXRUZXN0UmVzdWx0LgotICAgICAgICAqIHdlYmtp
dC93ZWJraXRoaXR0ZXN0cmVzdWx0LmNwcDoKLSAgICAgICAgKHdlYmtpdF9oaXRfdGVzdF9yZXN1
bHRfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfc2V0X3By
b3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY2xhc3NfaW5pdCk6IEFk
ZCB4IGFuZCB5IGNvbnN0cnVjdCBvbmx5Ci0gICAgICAgIHByb3BlcnRpZXMgdG8ga2VlcCB0aGUg
Y29vcmRpbmF0ZXMgb2YgdGhlIGV2ZW50IHJlbGF0aXZlIHRvIHZpZXcncwotICAgICAgICB3aWRn
ZXQuCi0gICAgICAgIChXZWJLaXQ6OmtpdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNl
dHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6IE1h
cmsgZW5hYmxlLWRlZmF1bHQtY29udGV4dC1tZW51Ci0gICAgICAgIHByb3BlcnR5IGFzIGRlcHJl
Y2F0ZWQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAocHJl
cGFyZU1vdXNlRXZlbnRGb3JGcmFtZSk6Ci0gICAgICAgIChkZWZhdWx0Q29udGV4dE1lbnVFbmFi
bGVkKTogSGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIHdoZXRoZXIKLSAgICAgICAgZGVmYXVsdCBj
b250ZXh0IG1lbnUgc2V0dGluZyBpcyBlbmFibGVkIG9yIG5vdC4KLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19mb3J3YXJkX2NvbnRleHRfbWVudV9ldmVudCk6IEVtaXQgdGhlIG5ldwotICAgICAg
ICBjb250ZXh0LW1lbnUgc2lnbmFsLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3BvcHVwX21l
bnVfaGFuZGxlcik6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfYnV0dG9uX3ByZXNzX2V2ZW50
KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KTogQWRkIG5ldyBjb250ZXh0
LW1lbnUgc2lnbmFsIGFuZCBtYXJrCi0gICAgICAgIHBvcHVsYXRlLXBvcHVwIGFzIGRlcHJlY2F0
ZWQuCi0gICAgICAgICogd2Via2l0bWFyc2hhbC5saXN0OgotCi0yMDEyLTAzLTIzICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBVbnJldmlld2Vk
LiBGaXggR1RLKyBidWlsZCBhZnRlciByMTExNzA3LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvVXNlck1lZGlhQ2xpZW50R3RrLmg6Ci0KLTIwMTItMDMtMjIgIE1hbyBZdWppZSAgPHl1amll
Lm1hb0BpbnRlbC5jb20+Ci0KLSAgICAgICAgW0dUS10gQWRkIE1lZGlhU3RyZWFtIGZlYXR1cmUg
dG8gYXZvaWQgTWVkaWFTdHJlYW0gdGVzdCBmYWlsdXJlCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTcyNwotCi0gICAgICAgIFJldmlld2VkIGJ5IE1h
cnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1VzZXJNZWRpYUNsaWVudEd0ay5jcHA6IEFkZGVkLgotICAgICAgICAoV2Vi
S2l0KToKLSAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2xpZW50R3RrOjpVc2VyTWVkaWFDbGll
bnRHdGspOgotICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDbGllbnRHdGs6On5Vc2VyTWVkaWFD
bGllbnRHdGspOgotICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDbGllbnRHdGs6OnBhZ2VEZXN0
cm95ZWQpOgotICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDbGllbnRHdGs6OnJlcXVlc3RVc2Vy
TWVkaWEpOgotICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDbGllbnRHdGs6OmNhbmNlbFVzZXJN
ZWRpYVJlcXVlc3QpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1VzZXJNZWRpYUNsaWVudEd0
ay5oOiBBZGRlZC4KLSAgICAgICAgKFdlYktpdCk6Ci0gICAgICAgIChVc2VyTWVkaWFDbGllbnRH
dGspOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19pbml0KToKLQotMjAxMi0wMy0yMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2
aWxsYXJAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBpY29uIGRhdGFiYXNlIHJlcXVlc3Rz
IG5vdCBkaXNwYXRjaGVkIHVudGlsIG5ldyBkYXRhIGFycml2ZXMKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNjY1Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFdhaXQgZm9yIHRoZSBpbXBvcnQgdG8gZmlu
aXNoIGJlZm9yZSByZXBvcnRpbmcgdGhhdCB0aGUgZmF2aWNvbgotICAgICAgICBjYWNoZSBkb2Vz
IG5vdCBoYXZlIGEgcGl4YnVmIGZvciBhbiBVUkwuCi0KLSAgICAgICAgQ2hhbmdlcyBhbHJlYWR5
IGNvdmVyZWQgYnkgdGhlIGZhdmljb24gZGF0YWJhc2UgdW5pdCB0ZXN0cy4KLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwOgotICAgICAgICAod2Via2l0X2Zhdmlj
b25fZGF0YWJhc2VfZ2V0X2Zhdmljb25fcGl4YnVmKToKLQotMjAxMi0wMy0yMiAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGJiLXdlYmtpdC1yZWwtNjQubG9jYWwuaWdhbGlhLmNvbT4K
LQotICAgICAgICBbR1RLXSBVc2UgdGhlIGFuZ2xlLWJyYWNrZXQgZm9ybSB0byBpbmNsdWRlIHd0
ZiBoZWFkZXJzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MTg4NAotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIFVz
ZSAjaW5jbHVkZSA8d3RmL2Zvbz4gaW5zdGVhZCBvZiAjaW5jbHVkZSAiZm9vIi4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0RvY3VtZW50TG9hZGVyR3RrLmNwcDoKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmg6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Z1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXIuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlv
bkNsaWVudEd0ay5oOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0
ay5oOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5oOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGZh
dmljb25kYXRhYmFzZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0LmNwcDoKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3
b3JrcmVzcG9uc2UuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNo
YW50LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZXByaXZhdGUuaDoK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlld3ByaXZhdGUuaDoKLQotMjAxMi0wMy0yMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2lt
QHNhbXN1bmcuY29tPgotCi0gICAgICAgIENvbnZlcnQgaGFzU3BlbGxpbmdNYXJrZXIgdG8gdXNl
IEludGVybmFscyBpbnRlcmZhY2UuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MTMwMAotCi0gICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4K
LQotICAgICAgICBSZW1vdmUgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjp3ZWJraXRXZWJGcmFt
ZVNlbGVjdGlvbkhhc1NwZWxsaW5nTWFya2VyIHN1cHBvcnQsCi0gICAgICAgIHNpbmNlIGl0IGNh
biBzdXBwb3J0IGluIHRoZSBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbHMgaW50
ZXJmYWNlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuaDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0KLTIwMTItMDMtMTkg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZW1vdmUgc3VwcG9y
dCBmb3IgIm1hZ2ljIiBpZnJhbWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgxNTkwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCi0K
LSAgICAgICAgUmVtb3ZlIEZyYW1lTG9hZGVyQ2xpZW50IG1ldGhvZHMgdGhhdCBubyBsb25nZXIg
ZXhpc3QuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmg6Ci0gICAgICAgIChGcmFtZUxvYWRlckNsaWVudCk6Ci0KLTIwMTItMDMt
MTkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgW0dU
S10gbGliV2ViQ29yZS5sYSBoYXMgYmVjb21lIHRvbyBiaWcgZm9yIG1ha2UKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNTgyCi0KLSAgICAgICAgVW5y
ZXZpZXdlZCBidWlsZCBmaXguCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogbGluay1pbiB0
aGUgbmV3IGxpYkRlcml2ZWRXZWJDb3JlLmxhCi0KLTIwMTItMDMtMTYgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEFsbG93IHJ1bm5pbmcg
cnVuLWd0ay10ZXN0cyBkdXJpbmcgJ21ha2UgZGlzdCcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNDE1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGhp
bGlwcGUgTm9ybWFuZC4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZW1vdmUgJ21ha2Ug
Y2hlY2snIHJ1bGVzIGZyb20gdGhlIG1ha2VmaWxlCi0gICAgICAgIEluc3RlYWQgdGhpcyBmdW5j
dGlvbmFsaXR5IGlzIG5vdyBpbiB0aGUgVG9vbHMgbWFrZWZpbGUuCi0KLTIwMTItMDMtMTYgIFZp
Y3RvciBMdWNlcm8gIDx2aWN0b3IubHVjZXJvQGlwYXJ0bmVyLmNsPgotCi0gICAgICAgIFtHVEtd
IFdlYktpdFdlYlJlc291cmNlOjpsb2FkLWZhaWxlZCB1c2VzIHRoZSB3cm9uZyBtYXJzaGFsbGVy
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTIyOQot
Ci0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9j
bGFzc19pbml0KTogbG9hZC1mYWlsZWQgc2lnbmFsIGluIFdlYmtpdFdlYlJlc291cmNlIHdhcyB1
c2luZyB0aGUgd3JvbmcgbWFyc2hhbGxlcgotCi0yMDEyLTAzLTE0ICBMYW5kcnkgQnJldWlsICA8
bGFuZHJ5QG9wZW5ic2Qub3JnPgotCi0gICAgICAgIFdlYktpdC9ndGsvcmVzb3VyY2VzL2Vycm9y
Lmh0bWwgZm9udC1zaXplIGVycm9yCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zOTIzMgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNv
bi4KLQotICAgICAgICBGaXggZm9udC1zaXplIGluIHRoZSA0MDQgZXJyb3IgcGFnZS4gQXBwYXJl
bnRseSB0aGUgJSBpcyBmaWx0ZXJlZCBvdXQsCi0gICAgICAgIHNvIDEyMCUgYmVjb21lcyAxMjAg
YW5kIHRoZSBlcnJvciBtZXNzYWdlIGlzIGh1Z2UuIEV4cGVyaWVuY2VkIGluIGVwaXBoYW55Lgot
Ci0gICAgICAgICogcmVzb3VyY2VzL2Vycm9yLmh0bWw6IERvdWJsZSB0aGUgJSBzbyBpdCBkb2Vz
bid0IGdldCBmaWx0ZXJlZAotCi0yMDEyLTAzLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4gYW5kIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgW0dUS10gV2ViS2l0SWNvbkRhdGFiYXNlIGRvZXNuJ3Qga2VlcCBp
Y29ucyBjYWNoZWQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU2MjAwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAg
ICAgICogR05VbWFrZWZpbGUuYW06IEFkZGVkIG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24p
OiBpbnN0cnVjdAotICAgICAgICB0aGUgV2ViVmlldyB0byBsaXN0ZW4gdG8gSWNvbkRhdGFiYXNl
J3Mgbm90aWZpY2F0aW9ucy4KLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkUmVjZWl2ZUljb24pOiBhc2sgYm90aAotICAgICAgICBXZWJWaWV3IGFuZCBJY29u
RGF0YWJhc2UgdG8gaXNzdWUgbm90aWZpY2F0aW9ucyBmb3IgYSBuZXcgaWNvbi4KLSAgICAgICAg
KiBkb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWw6IHVwZGF0ZWQgZG9jcy4KLSAgICAgICAgKiBkb2Nz
L3dlYmtpdGd0ay1zZWN0aW9ucy50eHQ6IGRpdHRvLgotICAgICAgICAqIGRvY3Mvd2Via2l0Z3Rr
LnR5cGVzOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0aWNvbmRhdGFiYXNlLmM6IEFkZGVk
LgotICAgICAgICAoc2VydmVyX2NhbGxiYWNrKToKLSAgICAgICAgKGRlbGV0ZURhdGFiYXNlRmls
ZUlmRXhpc3RzKToKLSAgICAgICAgKHRlc3RXZWJraXRJY29uRGF0YWJhc2VTZXRQYXRoKToKLSAg
ICAgICAgKGljb25EYXRhYmFzZUdldEljb25WYWxpZENhbGxiYWNrKToKLSAgICAgICAgKGljb25E
YXRhYmFzZUdldEljb25JbnZhbGlkQ2FsbGJhY2spOgotICAgICAgICAoaWNvbkRhdGFiYXNlR2V0
SWNvbkNhbmNlbGxlZENhbGxiYWNrKToKLSAgICAgICAgKG1haW5Mb29wUXVpdElmTG9hZENvbXBs
ZXRlZCk6Ci0gICAgICAgIChpZGxlUXVpdExvb3BDYWxsYmFjayk6Ci0gICAgICAgICh3ZWJraXRX
ZWJWaWV3SWNvbkxvYWRlZCk6Ci0gICAgICAgIChsb2FkVVJJKToKLSAgICAgICAgKGZhdmljb25E
YXRhYmFzZUdldEZhdmljb25WYWxpZElkbGUpOgotICAgICAgICAoZmF2aWNvbkRhdGFiYXNlR2V0
RmF2aWNvbkludmFsaWRJZGxlKToKLSAgICAgICAgKGZhdmljb25EYXRhYmFzZUdldEZhdmljb25D
YW5jZWxsZWRJZGxlKToKLSAgICAgICAgKHRlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2VHZXRGYXZp
Y29uKToKLSAgICAgICAgKHRlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2VHZXRGYXZpY29uVVJJKToK
LSAgICAgICAgKHRlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2VSZW1vdmVBbGwpOgotICAgICAgICAo
dGVzdFdlYktpdEZhdmljb25EYXRhYmFzZUNsb3NlRGF0YWJhc2UpOgotICAgICAgICAobWFpbik6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdC5oOiBhZGRlZCBuZXcgQVBJLgotICAgICAgICAqIHdl
YmtpdC93ZWJraXRkZWZpbmVzLmg6IGFkZGVkIFdlYktpdEZhdmljb25EYXRhYmFzZS4KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmNwcDoKLSAgICAgICAgKEljb25EYXRh
YmFzZUNsaWVudEd0ayk6IEljb25EYXRhYmFzZUNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICAg
ICAgKEljb25EYXRhYmFzZUNsaWVudEd0azo6cGVyZm9ybUltcG9ydCk6Ci0gICAgICAgIChJY29u
RGF0YWJhc2VDbGllbnRHdGs6OmRpZFJlbW92ZUFsbEljb25zKToKLSAgICAgICAgKEljb25EYXRh
YmFzZUNsaWVudEd0azo6ZGlkSW1wb3J0SWNvblVSTEZvclBhZ2VVUkwpOgotICAgICAgICAoSWNv
bkRhdGFiYXNlQ2xpZW50R3RrOjpkaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwpOgotICAgICAg
ICAoSWNvbkRhdGFiYXNlQ2xpZW50R3RrOjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTCk6Ci0gICAg
ICAgIChJY29uRGF0YWJhc2VDbGllbnRHdGs6OmRpZEZpbmlzaFVSTEltcG9ydCk6Ci0gICAgICAg
IChQZW5kaW5nSWNvblJlcXVlc3QpOiBtYWNoaW5lcnkgZm9yIGFzeW5jaHJvbm91cyBjYWxscy4K
LSAgICAgICAgKFBlbmRpbmdJY29uUmVxdWVzdDo6UGVuZGluZ0ljb25SZXF1ZXN0KToKLSAgICAg
ICAgKFBlbmRpbmdJY29uUmVxdWVzdDo6flBlbmRpbmdJY29uUmVxdWVzdCk6Ci0gICAgICAgIChQ
ZW5kaW5nSWNvblJlcXVlc3Q6OnBhZ2VVUkkpOgotICAgICAgICAoUGVuZGluZ0ljb25SZXF1ZXN0
Ojphc3luY1Jlc3VsdCk6Ci0gICAgICAgIChQZW5kaW5nSWNvblJlcXVlc3Q6OmFzeW5jUmVzdWx0
Q2FuY2VsKToKLSAgICAgICAgKFBlbmRpbmdJY29uUmVxdWVzdDo6YXN5bmNSZXN1bHRDb21wbGV0
ZUluSWRsZSk6Ci0gICAgICAgIChQZW5kaW5nSWNvblJlcXVlc3Q6OmFzeW5jUmVzdWx0Q29tcGxl
dGUpOgotICAgICAgICAoX1dlYktpdEljb25EYXRhYmFzZVByaXZhdGUpOgotICAgICAgICAod2Vi
a2l0X2Zhdmljb25fZGF0YWJhc2VfZGlzcG9zZSk6IEdPYmplY3Qgc3R1ZmYuCi0gICAgICAgICh3
ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9zZXRfcHJvcGVydHkpOiBkaXR0by4KLSAgICAgICAgKHdl
YmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9wcm9wZXJ0eSk6IGRpdHRvLgotICAgICAgICAod2Vi
a2l0X2Zhdmljb25fZGF0YWJhc2VfY2xhc3NfaW5pdCk6IGRpdHRvLgotICAgICAgICAod2Via2l0
X2Zhdmljb25fZGF0YWJhc2VfaW5pdCk6IGRpdHRvLgotICAgICAgICAod2Via2l0RmF2aWNvbkRh
dGFiYXNlTm90aWZ5QW5kVXBkYXRlRXhwaXJhdGlvbik6IG5vdGlmeSBhYm91dCBuZXcKLSAgICAg
ICAgaWNvbnMgYW5kIHVwZGF0ZSBleHBpcmF0aW9uIHRpbWVzLgotICAgICAgICAod2Via2l0RmF2
aWNvbkRhdGFiYXNlRGlzcGF0Y2hEaWRSZWNlaXZlSWNvbik6ICJwcm90ZWN0ZWQiIG1ldGhvZAot
ICAgICAgICBjYWxsZWQgYnkgdGhlIEZyYW1lTG9hZGVyQ2xpZW50IHRvIGluZm9ybSBhYm91dCBu
ZXcgaWNvbnMuCi0gICAgICAgICh3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9nZXRfcGF0aCk6IHJl
dHJpZXZlcyBkYXRhYmFzZSBwYXRoLgotICAgICAgICAoc2VsZWN0UXVlcnlDYWxsYmFjayk6IHJl
bGVhc2VzIGV4cGlyZWQgaWNvbnMgdG8gbGV0IEljb25EYXRhYmFzZQotICAgICAgICBwcnVuZSB0
aGVtLgotICAgICAgICAod2Via2l0RmF2aWNvbkRhdGFiYXNlUHJ1bmVFeHBpcmVkSWNvbnMpOiBz
ZWxlY3RzIHRoZSBpY29ucyB0byBiZQotICAgICAgICBwcnVuZWQgYnkgdGhlIEljb25EYXRhYmFz
ZS4KLSAgICAgICAgKHdlYmtpdEZhdmljb25EYXRhYmFzZUNsb3NlKTogY2xvc2UgdGhlIGRhdGFi
YXNlLgotICAgICAgICAoY3JlYXRlRXhwaXJhdGlvblRpbWVzRGF0YWJhc2VUYWJsZUlmTm90RXhp
c3RzKTogY3JlYXRlcyB0aGUKLSAgICAgICAgZGF0YWJhc2UgdXNlZCB0byBjb250cm9sIGV4cGly
YXRpb24gdGltZXMuCi0gICAgICAgICh3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9zZXRfcGF0aCk6
IG9wZW5zIHRoZSBkYXRhYmFzZSBkZWxheWluZyB0aGUKLSAgICAgICAgY2xlYW51cCBvZiBpY29u
cyB1bnRpbCB0aGUgaW1wb3J0IGlzIGNvbXBsZXRlLgotICAgICAgICAod2Via2l0X2Zhdmljb25f
ZGF0YWJhc2VfZ2V0X2Zhdmljb25fdXJpKTogcmV0dXJucyB0aGUgdXJpIG9mIHRoZQotICAgICAg
ICBmYXZpY29uLgotICAgICAgICAoZ2V0SWNvblBpeGJ1ZlN5bmNocm9ub3VzbHkpOiBoZWxwZXIg
ZnVuY3Rpb24gdG8gY2FsbAotICAgICAgICBJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzSWNvblVS
TEZvclBhZ2VVUkwoKS4KLSAgICAgICAgKHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX3RyeV9nZXRf
ZmF2aWNvbl9waXhidWYpOiByZXR1cm5zIHRoZQotICAgICAgICBmYXZpY29uIGlmIGV4aXN0cyBh
bmQgaXMgbG9hZGVkIGZyb20gZGlzay4KLSAgICAgICAgKHdlYmtpdEZhdmljb25EYXRhYmFzZUdl
dE9yQ3JlYXRlUmVxdWVzdHMpOiBoZWxwZXIgZnVuY3Rpb24gdG8gZ2V0Ci0gICAgICAgIHRoZSB2
ZWN0b3Igb2YgcGVuZGluZyByZXF1ZXN0cyBmb3IgdGhlIGdpdmVuIHVyaS4KLSAgICAgICAgKHdl
YmtpdGZhdmljb25kYXRhYmFzZURlbGV0ZVJlcXVlc3RzKTogaGVscGVyIGZ1bmN0aW9uIHRvIHJl
bW92ZSB0aGUKLSAgICAgICAgdmVjdG9yIG9mIHBlbmRpbmcgcmVxdWVzdHMgZm9yIHRoZSBnaXZl
biB1cmkuCi0gICAgICAgIChnZXRJY29uUGl4YnVmQ2FuY2VsbGVkKToKLSAgICAgICAgKHdlYmtp
dEZhdmljb25EYXRhYmFzZUdldEljb25QaXhidWZDYW5jZWxsZWQpOgotICAgICAgICAod2Via2l0
X2Zhdmljb25fZGF0YWJhc2VfZ2V0X2Zhdmljb25fcGl4YnVmKTogYXN5bmNocm9ub3VzbHkKLSAg
ICAgICAgcmV0cmlldmUgaWNvbnMgZnJvbSB0aGUgZGF0YWJhc2UuCi0gICAgICAgICh3ZWJraXRf
ZmF2aWNvbl9kYXRhYmFzZV9nZXRfZmF2aWNvbl9waXhidWZfZmluaXNoKTogZmluaXNoZXMgYW4K
LSAgICAgICAgb3BlcmF0aW9uIHN0YXJ0ZWQgd2l0aCB3ZWJraXRfaWNvbl9kYXRhYmFzZV9nZXRf
aWNvbl9waXhidWYoKS4KLSAgICAgICAgKHdlYmtpdEZhdmljb25EYXRhYmFzZVByb2Nlc3NQZW5k
aW5nSWNvbnNGb3JVUkkpOiBwcm9jZXNzIHBlbmRpbmcKLSAgICAgICAgcmVxdWVzdHMgb25jZSB0
aGUgaW1wb3J0IGlzIGZpbmlzaGVkLgotICAgICAgICAod2Via2l0RmF2aWNvbkRhdGFiYXNlSW1w
b3J0RmluaXNoZWQpOiBjaGVjayBwZW5kaW5nIHJlcXVlc3RzIGFuZAotICAgICAgICBkZWxldGUg
dGhvc2UgdGhhdCBhc2sgZm9yIGljb25zIHRoYXQgZG8gbm90IGV4aXN0IGluIHRoZSBkYXRhYmFz
ZS4KLSAgICAgICAgKHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2NsZWFyKTogY2xlYXJzIHRoZSBk
YXRhYmFzZS4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmg6IGFkZGVk
LgotICAgICAgICAoX1dlYktpdEZhdmljb25EYXRhYmFzZSk6Ci0gICAgICAgIChfV2ViS2l0RmF2
aWNvbkRhdGFiYXNlQ2xhc3MpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJh
c2Vwcml2YXRlLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRnbG9iYWxzLmNwcDoK
LSAgICAgICAgKHdlYmtpdF9nZXRfZmF2aWNvbl9kYXRhYmFzZSk6IHJldHJpZXZlcyB0aGUgbmV3
Ci0gICAgICAgIFdlYktpdEZhdmljb25EYXRhYmFzZS4KLSAgICAgICAgKHdlYmtpdEV4aXQpOiB1
bnJlZiBpY29uIGRhdGFiYXNlIG9uIGV4aXQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2Jh
bHMuaDogYWRkZWQgbmV3IEFQSS4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNl
LmNwcDogYWRkZWQgZGVwcmVjYXRpb24gZG9jdW1lbnRhdGlvbi4KLSAgICAgICAgKHdlYmtpdF9p
Y29uX2RhdGFiYXNlX2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld190cnlfZ2V0X2ljb25fcGl4YnVmKTogbmV3
IEFQSSB0aGF0IHVzZXMgdGhlIG5ldwotICAgICAgICBXZWJLaXRGYXZpY29uRGF0YWJhc2UgQVBJ
LgotICAgICAgICAod2Via2l0V2ViVmlld0ljb25Mb2FkZWQpOiBkaXNwYXRjaCB0aGUgaWNvbi1s
b2FkZWQgc2lnbmFsIHdoZW4KLSAgICAgICAgcmVxdWVzdGVkIGJ5IHRoZSBGcmFtZUxvYWRlckNs
aWVudC4KLSAgICAgICAgKHdlYmtpdFdlYlZpZXdSZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24p
OiBzdGFydHMvc3RvcHMgbGlzdGVuaW5nCi0gICAgICAgIHRvIGljb24gZGF0YWJhc2Ugbm90aWZp
Y2F0aW9ucy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOiBhZGRlZCBuZXcgQVBJ
LgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOiBhZGRlZCBzb21lIHBy
b3RlY3RlZCBtZXRob2RzLgotCi0yMDEyLTAzLTE2ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNl
a0BnbWFpbC5jb20+Ci0KLSAgICAgICAgW0d0a10gQWRkIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdW
aXNpdGVkSW5mbyB0byBEdW1wUmVuZGVyVHJlZVN1cHBvcnQKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMjMyCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
UGhpbGlwcGUgTm9ybWFuZC4KLQotICAgICAgICBBZGQgY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zp
c2l0ZWRJbmZvIGhlbHBlciBtZXRob2QgdG8KLSAgICAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y29tcHV0ZWRTdHlsZUlu
Y2x1ZGluZ1Zpc2l0ZWRJbmZvKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6Ci0K
LTIwMTItMDMtMTYgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KLQotICAg
ICAgICBbR3RrXSBQcm9wZXJseSBzZXQgZm9ybXMgdGVzdHMtc3BlY2lmaWMgc2V0dGluZ3MKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMjM3Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KLQotICAgICAgICBDYWxsIFNldHRp
bmdzOjpzZXRJbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCBhbmQKLSAgICAgICAgU2V0
dGluZ3M6OnNldFZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uIHdpdGgKLSAgICAg
ICAgcHJvcGVyIHZhbHVlcyB3aGVuIGluIHRlc3RpbmcgbW9kZS4KLQotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKLQot
MjAxMi0wMy0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0K
LSAgICAgICAgW0dUS10gSW1wbGVtZW50IHVuaWNvZGUgc3VibWVudSBpdGVtcwotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODExMTcKLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
b250ZXh0TWVudUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmdldFVuaWNvZGVNZW51
SXRlbVBvc2l0aW9uKTogSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUKLSAgICAgICAgcG9zaXRp
b24gb2YgdGhlIHVuaWNvZGUgbWVudSBpdGVtIGluIHRoZSBkZWZhdWx0IGNvbnRleHQgbWVudS4K
LSAgICAgICAgKFdlYktpdDo6Q29udGV4dE1lbnVDbGllbnQ6OmdldEN1c3RvbU1lbnVGcm9tRGVm
YXVsdEl0ZW1zKTogUmVtb3ZlCi0gICAgICAgIGNvZGUgdG8gYnVpbGQgdGhlIHVuaWNvZGUgbWVu
dSwgc2luY2UgaXQncyBub3cgYnVpbHQgYnkgV2ViQ29yZS4KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6
OnNob3VsZFNob3dVbmljb2RlTWVudSk6IENoZWNrIHdoZXRoZXIKLSAgICAgICAgdW5pY29kZSBt
ZW51IHNob3VsZCBiZSBzaG93biBiYXNlZCBvbiBndGstc2hvdy11bmljb2RlLW1lbnUgR3RrU2V0
dGluZy4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLQotMjAx
Mi0wMy0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3Vs
YWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgotCi0gICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbFJlY3RJbnRvVmlldyk6Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1v
Y2spOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRp
b25QZXJtaXNzaW9uKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24pOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6Ci0gICAgICAg
IChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdCk6Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuaDoKLSAgICAgICAg
KFdlYktpdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2luaXQpOgotCi0yMDEyLTAzLTEyICBBbnRvbmlvIEdvbWVzICA8YWdv
bWVzQHJpbS5jb20+Ci0KLSAgICAgICAgQ29udmVydCBub2Rlc0Zyb21SZWN0IHRlc3RzIHRvIHVz
ZSBJbnRlcm5hbHMgaW50ZXJmYWNlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MDg4NgotCi0gICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4K
LQotICAgICAgICBSZW1vdmVkIERSVFN1cHBvcnRHdGs6Om5vZGVzRnJvbVJlY3Qgc3VwcG9ydCwg
c2luY2UKLSAgICAgICAgaXQgY2FuIHdvcmsgaW4gdGhlIGNyb3NzLXBvcnQgd2F5IHRocm91Z2gg
dGhlCi0gICAgICAgIEludGVybmFscyBpbnRlcmZhY2UuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrKToKLQotMjAxMi0wMy0wNyAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3Vu
Zy5jb20+Ci0KLSAgICAgICAgW0RSVF0gUmVtb3ZlIFBsYWluVGV4dENvbnRyb2xsZXIgaW1wbGVt
ZW50YXRpb25zLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzk5NTkKLQotICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgotCi0gICAgICAg
IFBsYWluVGV4dENvbnRyb2xsZXIgdXNhZ2VzIGluIGV4aXN0aW5nIHRlc3RzIGhhdmUgYmVlbgot
ICAgICAgICByZXBsYWNlZCBieSBpbnRlcm5hbHMgQVBJIGJ5IGJ1ZyA3ODU3MC4KLSAgICAgICAg
U28gdGhpcyBwYXRjaCB3aWxsIHJlbW92ZSBQbGFpblRleHRDb250cm9sbGVyIGltcGxlbWVudGF0
aW9ucwotICAgICAgICB0byBhdm9pZCBmdXJ0aGVyIHVzYWdlIGluIG5ldyB0ZXN0cy4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotCi0yMDEyLTAzLTA2ICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBGaXggYSBjb21waWxhdGlvbiB3
YXJuaW5nIGVuY291bnRlcmVkIGR1cmluZyB0aGUgR1RLKyBidWlsZC4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0Y29w
eWFuZHBhc3RlLmM6Ci0gICAgICAgICh0ZXN0X2NvcHlfYW5kX3Bhc3RlKTogQ2FzdCB0aGUgV2Vi
S2l0V2ViVmlldyB0byBhIEd0a1dpZGdldC4KLQotMjAxMi0wMy0wNiAgUGhpbGlwcGUgTm9ybWFu
ZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gRnJhbWVMb2FkZXIgc2ln
bmFsczogZ3RrLWRvYyBmaXhlcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Nzk0OTUKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24u
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl9mcmFtZV9jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicmVzb3Vy
Y2UuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KToKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
Y2xhc3NfaW5pdCk6Ci0KLTIwMTItMDEtMjYgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFtHU3RyZWFtZXJdIGRpc2FibGUgR1N0cmVhbWVyR1dvcmxk
IHdoZW4gYnVpbGRpbmcgYWdhaW5zdCAwLjExCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NzA4OAotCi0gICAgICAgIERpc2FibGUgdGhlIEZ1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXIgaWYgd2UgYnVpbGQgYWdhaW5zdAotICAgICAgICBHU3RyZWFtZXIg
MC4xMS4gVGhpcyBjb2RlIGRlcGVuZHMgb24gR1N0cmVhbWVyR1dvcmxkIHdoaWNoIHdhc24ndAot
ICAgICAgICBwb3J0ZWQgdG8gMC4xMSBiZWNhdXNlIGl0IHdpbGwgc29vbiBiZSByZW1vdmVkIGFu
eXdheS4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcDoKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmg6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2ViVmlld0VudGVyRnVsbHNjcmVl
bik6Ci0gICAgICAgICh3ZWJWaWV3RXhpdEZ1bGxzY3JlZW4pOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgotICAgICAgICAoX1dlYktpdFdlYlZpZXdQcml2YXRlKToK
LQotMjAxMi0wMy0wNSAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgotCi0g
ICAgICAgIFtHVEtdIHBsdWdpbnMvbmV0c2NhcGUtcGx1Z2luLXBhZ2UtY2FjaGUtd29ya3MuaHRt
bCBmYWlscwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzQ0MDkKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAg
QWRkIGEgbWV0aG9kIHRvIG92ZXJyaWRlIHBhZ2UtY2FjaGUtZm9yLXBsdWdpbnMgcHJlZmVyZW5j
ZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5j
cHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFBhZ2VDYWNoZVN1cHBv
cnRzUGx1Z2lucyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmg6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotCi0yMDEyLTAz
LTA0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBb
R1RLXSAiQ29uc29sZTogdW5kZWZpbmVkIEAwOiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2
YXJpYWJsZTogV2ViSW5zcGVjdG9yIiBkdXJpbmcgdGVzdHdlYmluc3BlY3RvcgotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAyMzUKLQotICAgICAgICBS
ZXZpZXdlZCBieSBQaGlsaXBwZSBOb3JtYW5kLgotCi0gICAgICAgIFdhaXQgdG8gaW5zcGVjdCB0
aGUgV2ViVmlldyB1bnRpbCB0aGUgcGFnZSBoYXMgZmluaXNoZWQgbG9hZGluZy4gQWxzbwotICAg
ICAgICBjbGVhbiB1cCBzb21lIG1pbm9yIHN0eWxlIGVycm9ycy4KLQotICAgICAgICAqIHRlc3Rz
L3Rlc3R3ZWJpbnNwZWN0b3IuYzoKLSAgICAgICAgKGNsb3NlSW5zcGVjdG9yKTogU21hbGwgc3R5
bGUgZml4ZXMuCi0gICAgICAgIChzaG93SW5zcGVjdG9yKTogRGl0dG8uCi0gICAgICAgIChsb2Fk
RmluaXNoZWQpOiBEaXR0by4KLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9pbnNwZWN0b3JfY2xv
c2VfYW5kX2luc3BlY3QpOiBXYWl0IHRvIGluc3BlY3QgdW50aWwgdGhlIHBhZ2UgaGFzIGxvYWRl
ZC4KLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9pbnNwZWN0b3JfZGVzdHJveV9pbnNwZWN0ZWRf
d2ViX3ZpZXcpOiBEaXR0by4KLSAgICAgICAgKG1haW4pOiBTbWFsbCBzdHlsZSBmaXhlcy4KLQot
MjAxMi0wMy0wNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgW0dUS10gUkVHUkVTU0lPTjogcjEwODI3OCBicm9rZSBzb21lIHRlc3RzIHRoYXQgZXhw
ZWN0IGZvY3VzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03OTA4NAotCi0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQuCi0KLSAgICAg
ICAgR3JhYiBmb2N1cyBiZWZvcmUgcnVubmluZyB0aGUgdGVzdC4gVGhpcyBlbnN1cmVzIHRoYXQg
aWYgdGhlCi0gICAgICAgIFdlYlZpZXcgbG9zdCBmb2N1cywgaXQgaGFzIGl0IGJlZm9yZSBzZW5k
aW5nIGV2ZW50cy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3Rjb3B5YW5kcGFzdGUuYzoKLSAgICAg
ICAgKHRlc3RfY29weV9hbmRfcGFzdGUpOiBHcmFiIGZvY3VzLgotCi0yMDEyLTAyLTE4ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBbQUNd
IEdlbmVyYWxpemUgV2luZG93Q29udGV4dEdMCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODk2OQotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YS4KLQotICAgICAgICBVc2UgR0xDb250ZXh0IGluc3RlYWQgb2YgV2luZG93
Q29udGV4dEdMLiBSZW1vdmUgYSBmZXcgdW5uZWNlc3NhcnkKLSAgICAgICAgbmFtZXNwYWNlIHNw
ZWNpZmllcnMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQuaDogTm93IHdlIGZpbmQgdGhlIEdMQ29udGV4dAotICAgICAgICBvZiBvdXIgd2lk
Z2V0LCB3aGljaCBpcyBjYWNoZWQgaW4gV2ViQ29yZS4gUmVtb3ZlIG1faW5pdGlhbGl6ZWQgYXMg
aXQgaXNuJ3QgbmVlZGVkLgotICAgICAgICAoQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQp
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
R0wuY3BwOgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQpOiBObyBsb25nZXIgaW5pdGlhbGl6ZQotICAg
ICAgICBtX2luaXRpYWxpemVkLgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6Z2xDb250ZXh0KTogQWRkZWQuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpyZW5kZXJMYXllcnNUb1dpbmRvdyk6IFVzZSBnbENvbnRl
eHQoKSBub3cuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6IERpdHRvLgotICAgICAgICAoV2ViS2l0OjpBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCk6IFJlbW92
ZSB1bm5lY2Vzc2FyeSBuYW1lc3BhY2Ugc3BlY2lmaWVyLgotICAgICAgICAoV2ViS2l0OjpBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5U3luY1JlcXVpcmVkKTogRGl0dG8uCi0g
ICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpwYWludENvbnRl
bnRzKTogRGl0dG8uCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0OjpzaG93RGVidWdCb3JkZXJzKTogRGl0dG8uCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzaG93UmVwYWludENvdW50ZXIpOiBEaXR0by4KLQotMjAx
Mi0wMy0wMiAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgotCi0gICAgICAg
IFtHVEtdIFNtb290aCBzY3JvbGxpbmcgc3VwcG9ydAotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMjMKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0
aW4gUm9iaW5zb24uCi0KLSAgICAgICAgQWRkIGEgbmV3IHNldHRpbmdzIG9wdGlvbiB0byBlbmFi
bGUgc21vb3RoIHNjcm9sbGluZy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5n
cy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAg
ICAod2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dl
Yl9zZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0
aW5nc3ByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEyLTAzLTAxICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBTaW1wbGlmeSB0aGUg
Y29kZSB0byBhZGp1c3QgZm9udCBzaXplcyBkZXBlbmRpbmcgb24gc2NyZWVuIERQSQotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAwMzIKLQotICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0gICAgICAgIChzY3JlZW5EUEkpOiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0
IHRoZSBEUEkgb2YgYSBnaXZlbgotICAgICAgICBHZGtTY3JlZW4uIEFkZGVkIGFsc28gZmFsbGJh
Y2sgY29kZSB3aGVuIGdka19zY3JlZW5fcmVzb2x1dGlvbgotICAgICAgICByZXR1cm5zIC0xLgot
ICAgICAgICAod2ViVmlld0dldERQSSk6IFVzZSBzY3JlZW5EUEkoKSBmcm9tIFdlYkNvcmUuCi0g
ICAgICAgICh3ZWJWaWV3Q29udmVydEZvbnRTaXplVG9QaXhlbHMpOiBUaGlzIGlzIHRoZSBleGlz
dGluZwotICAgICAgICBwaXhlbHNGcm9tU2l6ZSgpLCByZW5hbWVkIGFuZCBtb3ZlZCB0byBiZSB1
c2VkIGFsc28gaW4KLSAgICAgICAgd2Via2l0X3dlYl92aWV3X3NjcmVlbl9jaGFuZ2VkKCkuCi0g
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2NyZWVuX2NoYW5nZWQpOiBVc2UKLSAgICAgICAgd2Vi
Vmlld0NvbnZlcnRGb250U2l6ZVRvUGl4ZWxzKCkgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyB0aGUg
Y29kZS4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOiBVc2UKLSAg
ICAgICAgd2ViVmlld0NvbnZlcnRGb250U2l6ZVRvUGl4ZWxzKCkgaW5zdGVhZCBvZiBwaXhlbHNG
cm9tU2l6ZSgpLgotCi0yMDEyLTAyLTI3ICBWaW5jZW50IFVudHogIDx2dW50ekBnbm9tZS5vcmc+
PiBhbmQgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBC
dWlsZCBmaXggZm9yIGJ1aWxkaW5nIHdpdGggR1RLKyAyLnguCi0KLSAgICAgICAgKiB0ZXN0cy90
ZXN0d2Vidmlldy5jOgotCi0yMDEyLTAyLTI2ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIE1vdmUgQ2hyb21lQ2xpZW50OjpzaG93Q29udGV4dE1lbnUo
KSB0byBDb250ZXh0TWVudUNsaWVudAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzk0MjcKLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgIChD
aHJvbWVDbGllbnQpOgotCi0yMDEyLTAyLTI0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNo
cm9taXVtLm9yZz4KLQotICAgICAgICBTcGVsbENoZWNrUmVxdWVzdCBuZWVkcyB0byBrbm93IHRo
ZSBjb250ZXh0IHdoZXJlIHRoZSBzcGVsbGNoZWNrIGhhcHBlbmVkLgotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkzMjAKLQotICAgICAgICBSZXZpZXdl
ZCBieSBIYWppbWUgTW9yaXRhLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNr
ZXJDbGllbnRHdGsuaDoKLSAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDbGllbnRHdGs6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKToKLQotMjAxMi0wMi0yMyAgQ2hhbmdTZW9rIE9oICA8c2hp
dmFtaWRvd0BnbWFpbC5jb20+Ci0KLSAgICAgICAgW0dUS10gRFJUIGRvZXNuJ3Qgc3VwcG9ydCBz
Y2hlZHVsZUFzeW5jaHJvbm91c0tleURvd24uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODQ4MQotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YS4KLQotICAgICAgICBBZGRlZCBhIG5ldyBBUEkgdG8gZGVsaXZlciBhbGwg
bXV0YXRpb25zIGV4cGxpY2l0bHkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3NhcnkpOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrKToKLQotMjAxMi0wMi0yMyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gRnVsbFNjcmVlbiBzaWduYWxzCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjE4MQotCi0gICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBBZGRlZCBlbnRlcmluZy1mdWxs
c2NyZWVuIGFuZCBsZWF2aW5nLWZ1bGxzY3JlZW4gc2lnbmFscywgbWVhbnQgdG8KLSAgICAgICAg
YmUgdXNlZCBieSB0aGUgdXNlciBhZ2VudCB0byBiZSBub3RpZmllZCB3aGVuIGFuIGVsZW1lbnQg
cmVxdWVzdHMKLSAgICAgICAgZnVsbCBzY3JlZW4gZGlzcGxheSBhbmQgd2hlbiB0aGUgZnVsbCBz
Y3JlZW4gZGlzcGxheSBpcyB0byBiZQotICAgICAgICBkaXNhYmxlZC4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6Ci0gICAgICAgIChXZWJLaXQ6
Om9uRnVsbHNjcmVlbkd0a0tleVByZXNzRXZlbnQpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OmNhbmNlbEZ1bGxTY3JlZW4pOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgICogdGVzdHMvdGVzdHdlYnZpZXcuYzoKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
cmVhbF9lbnRlcmluZ19mdWxsc2NyZWVuKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19yZWFs
X2xlYXZpbmdfZnVsbHNjcmVlbik6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDoKLQotMjAxMi0wMi0yMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZW1vdmUgdGhlIHJlbWFp
bmluZyB1c2VzIG9mIENTU1N0eWxlRGVjbGFyYXRpb24gaW4gRWRpdG9yCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODkzOQotCi0gICAgICAgIFJldmll
d2VkIGJ5IEVucmljYSBDYXN1Y2NpLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRBcHBs
eVN0eWxlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLSAg
ICAgICAgKEVkaXRvckNsaWVudCk6Ci0KLTIwMTItMDItMjIgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MDg1MjIuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwODUyMgot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxODEKLQot
ICAgICAgICBCcm9rZSA0IGZ1bGxzY3JlZW4gdGVzdHMgb24gR1RLLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KToKLSAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKLSAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotICAgICAgICAoQ2hyb21lQ2xpZW50KToK
LSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vidmlldy5jOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgotICAgICAgICAoX1dlYktpdFdlYlZpZXdDbGFz
cyk6Ci0KLTIwMTItMDItMjAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFtHVEtdIEZ1bGxTY3JlZW4gc2lnbmFscwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYxODEKLQotICAgICAgICBSZXZpZXdlZCBi
eSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgQWRkZWQgZW50ZXJpbmctZnVsbHNjcmVlbiBh
bmQgbGVhdmluZy1mdWxsc2NyZWVuIHNpZ25hbHMsIG1lYW50IHRvCi0gICAgICAgIGJlIHVzZWQg
YnkgdGhlIHVzZXIgYWdlbnQgdG8gYmUgbm90aWZpZWQgd2hlbiBhbiBlbGVtZW50IHJlcXVlc3Rz
Ci0gICAgICAgIGZ1bGwgc2NyZWVuIGRpc3BsYXkgYW5kIHdoZW4gdGhlIGZ1bGwgc2NyZWVuIGRp
c3BsYXkgaXMgdG8gYmUKLSAgICAgICAgZGlzYWJsZWQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOgotICAgICAgICAoV2ViS2l0OjpvbkZ1bGxz
Y3JlZW5HdGtLZXlQcmVzc0V2ZW50KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpj
YW5jZWxGdWxsU2NyZWVuKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjplbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5oOgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJ2aWV3LmM6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3JlYWxfZW50
ZXJpbmdfZnVsbHNjcmVlbik6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVhbF9sZWF2aW5n
X2Z1bGxzY3JlZW4pOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6Ci0KLTIwMTItMDItMjIgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5pbmcgdXNl
cyBvZiBDU1NTdHlsZURlY2xhcmF0aW9uIGluIEVkaXRvcgotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5MzkKLQotICAgICAgICBSZXZpZXdlZCBieSBF
bnJpY2EgQ2FzdWNjaS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZSk6
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0gICAgICAgIChF
ZGl0b3JDbGllbnQpOgotCi0yMDEyLTAyLTIyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTA3MzUx
LgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMDczNTEKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNjAwCi0KLSAgICAg
ICAgU2V2ZXJhbCBpc3N1ZXMgaW50cm9kdWNlZCBpbiBXZWJLaXRHVEsrIEFQSQotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50OjpDaHJvbWVDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OmNocm9tZURlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y2Fu
UnVuTW9kYWwpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bk1vZGFsKToKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLSAgICAgICAgKENocm9t
ZUNsaWVudCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotCi0yMDEyLTAyLTIxICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KLQotICAgICAgICBGaXggb25lIG1vcmUgR1RLKyB1
bml0IHRlc3QgYWZ0ZXIgcjEwODI3OC4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbGVqYW5kcm8g
Ry4gQ2FzdHJvLgotCi0gICAgICAgICogdGVzdHMvdGVzdGtleWV2ZW50cy5jOgotICAgICAgICAo
bWFwX2V2ZW50X2NiKTogTm8gbG9uZ2VyIGdyYWIgZm9jdXMgaGVyZS4KLSAgICAgICAgKHNldHVw
X2tleWV2ZW50X3Rlc3QpOiBHcmFiYmluZyBmb2N1cyBoZXJlIHNlZW1zIHRvIGJlIGxhdGUgZW5v
dWdoIGluIHRoZSBwcm9jZXNzLgotCi0yMDEyLTAyLTIwICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBGaXggR1RLKyB1bml0IHRlc3RzIGFmdGVyIHIx
MDgyODEuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxlamFuZHJvIEcuIENhc3Ryby4KLQotICAg
ICAgICAqIHRlc3RzL3Rlc3R3ZWJwbHVnaW5kYXRhYmFzZS5jOgotICAgICAgICAodGVzdF93ZWJr
aXRfd2ViX3BsdWdpbl9kYXRhYmFzZV9nZXRfcGx1Z2lucyk6IFVwZGF0ZSB0aGUgZGVzY3JpcHRp
b24gdXNlZAotICAgICAgICBpbiB0aGUgdGVzdC4KLQotMjAxMi0wMi0yMCAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgRml4IEdUSysgdW5pdCB0ZXN0
cyBhZnRlciByMTA4Mjc4LgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFsZWphbmRybyBHLiBDYXN0
cm8uCi0KLSAgICAgICAgTm93IHRoYXQgV2ViQ29yZSBpcyBubyBsb25nZXIgc3RlYWxpbmcgZm9j
dXMsIHdlIG5lZWQgdG8KLSAgICAgICAgYWRqdXN0IHdoZXJlIHdlIGdyYWIgZm9jdXMgdG8gZW5z
dXJlIHRoYXQgaXQgYWN0dWFsbHkgc3VjY2VlZHMuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0Y29w
eWFuZHBhc3RlLmM6Ci0gICAgICAgIChtYXBfZXZlbnRfY2IpOiBObyBsb25nZXIgZ3JhYiBmb2N1
cyBoZXJlLgotICAgICAgICAocnVuUGFzdGVUZXN0Q2FsbGJhY2spOiBHcmFiYmluZyBmb2N1cyBo
ZXJlIHNlZW1zIHRvIGJlIGxhdGUgZW5vdWdoIGluIHRoZSBwcm9jZXNzLgotCi0yMDEyLTAyLTIw
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RL
XSBXZWIgY29udGVudCBvZnRlbnMgc3RlYWxzIGZvY3VzIGZyb20gb3RoZXIgd2lkZ2V0cwotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3OTEKLQotICAg
ICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgKiB0ZXN0
cy90ZXN0d2Vidmlldy5jOiBBZGRlZCBhIFdlYktpdDEgdGVzdCB0byB2ZXJpZnkgdGhpcyBiZWhh
dmlvci4KLQotMjAxMi0wMi0yMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9y
Zz4KLQotICAgICAgICBbR1RLXSBOZWVkcyB0byBjbGFpbSBiZWluZyBhIG1vcmUgdXAtdG8tZGF0
ZSBDaHJvbWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc5MDQ0Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKGNocm9tZVVzZXJBZ2Vu
dCk6IHVwZGF0ZSB0aGUgdmVyc2lvbiBvZiBDaHJvbWUgd2UgY2xhaW0gdG8gYmUKLSAgICAgICAg
dG8gYXZvaWQgd2FybmluZ3MgZnJvbSBzaXRlcyBzdWNoIGFzIFdvcmRwcmVzcyBzYXlpbmcgdGhh
dCBvdXIKLSAgICAgICAgYnJvd3NlciBpcyBvdXRkYXRlZC4KLQotMjAxMi0wMi0xOSAgUGF3ZcWC
IEZvcnlzaXVrICA8dHV4YXRvckBvMi5wbD4KLSAgICAgICAgW0dUS10gQ2FuJ3QgZmluZCB3ZWJp
bnNwZWN0b3IgYW5kIGVycm9yIHBhZ2UgcmVkaXJlY3Rpb24gb24gV2luZG93cwotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE2MTYKLQotICAgICAgICBV
c2UgYW4gYWJzdHJhY3Rpb24gZm9yIGZpbmRpbmcgc2hhcmVkIHJlc291cmNlcyBvbiBXaW5kb3dz
LgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQpOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3Bl
Y3RvckNsaWVudDo6aW5zcGVjdG9yRmlsZXNQYXRoKToKLQotMjAxMi0wMi0xOSAgR3VzdGF2byBO
b3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBVbnJldmlld2VkLiBSZW1v
dmUgZ3NldHRpbmdzIHNjaGVtYSBmcm9tIEVYVFJBX0RJU1QuCi0KLSAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbToKLQotMjAxMi0wMi0xOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21l
Lm9yZz4KLQotICAgICAgICBbR1RLXSBSZW1vdmUgdW51c2VkIEdTZXR0aW5ncyBzdHVmZgotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg5OTUKLQotICAg
ICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogcmVtb3ZlIEdTZXR0aW5ncy1yZWxhdGVkIHN0dWZmLgotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQpOiBSZW1vdmUg
dW51c2VkIGNvZGUuCi0gICAgICAgICogb3JnLndlYmtpdGd0ay5nc2NoZW1hLnhtbC5pbjogUmVt
b3ZlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfaW5zcGVjdG9yX2V4ZWN1dGVfc2NyaXB0KTogcmVtb3ZlIGdzZXR0aW5ncy1y
ZWxhdGVkIGhlbHBlci4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9ycHJpdmF0
ZS5oOiBEaXR0by4KLQotMjAxMi0wMi0xNyAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNh
bXN1bmcuY29tPgotCi0gICAgICAgIFtHVEtdIGNoYW5nZSB0aGUgd2F5IG9mIHJlZ2lzdGVyaW5n
IERldmljZU9yaWVudGF0aW9uIGNsaWVudHMuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODY4MAotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YS4KLQotICAgICAgICBCdWcgNzgwODUgcmVtb3ZlZCBkZXZpY2VPcmllbnRh
dGlvbkNsaWVudCBhbmQgZGV2aWNlTW90aW9uQ2xpZW50IGZyb20gUGFnZUNsaWVudHMuIEluc3Rl
YWQsCi0gICAgICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50IGFuZCBEZXZpY2VNb3Rpb25DbGll
bnQgc2hvdWxkIGJlIHJlZ2lzdGVyZWQgYnkgUGFnZVN1cHBsZW1lbnQgY2xhc3MuCi0gICAgICAg
IENocm9taXVtLCBtYWMgYW5kIHF0IHBvcnRzIGFyZSBhbHJlYWR5IGNoYW5nZWQgYnkgQnVnIDc4
MDg1LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X2luaXQpOgotCi0yMDEyLTAyLTE2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBbQUNdIEV2ZW50cyBjYW4gc3RhcnZl
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHVwZGF0ZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODI2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIEluc3RlYWQgb2YgdXNpbmcgYSBXZWJDb3Jl
IHRpbWVyLCB3aGljaCBjYW4gYmUgc3RhcnZlZCBieSBHZGtFdmVudHMsCi0gICAgICAgIHVzZSBh
IHJhdyBHTGliIHRpbWVyIHdpdGggR0RLX1BSSU9SSVRZX0VWRU5UUyB0byBkcml2ZSBBQyB1cGRh
dGVzLgotICAgICAgICBUaGlzIHByZXZlbnRzIGRyYWdnaW5nIGZyb20gYmxvY2tpbmcgcmVuZGVy
aW5nLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQuaDoKLSAgICAgICAgKEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KTogU3RvcmUg
YSBHTGliIHNvdXJjZSB0YWcgaW5zdGVhZCBvZiBhIFdlYkNvcmUgdGltZXIuCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRDbHV0dGVyLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OkFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAg
UmVtb3ZlIHRoZSB0aW1lciB1cG9uIGRlc3RydWN0aW9uLgotICAgICAgICAoV2ViS2l0OjpzeW5j
TGF5ZXJzVGltZW91dENhbGxiYWNrKTogQWRkZWQgdGhpcyBjYWxsYmFjayBmb3IgdGhlIEdMaWIg
dGltZXIuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpt
YXJrRm9yU3luYyk6IFVzZSBhIEdMaWIgdGltZXIuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzeW5jTGF5ZXJzVGltZW91dCk6IERpdHRvLgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0R0wuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQpOgotICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dDo6fkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KToKLSAgICAgICAg
UmVtb3ZlIHRoZSB0aW1lciB1cG9uIGRlc3RydWN0aW9uLgotICAgICAgICAoV2ViS2l0OjpzeW5j
TGF5ZXJzVGltZW91dENhbGxiYWNrKTogQWRkZWQgdGhpcyBjYWxsYmFjayBmb3IgdGhlIEdMaWIg
dGltZXIuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpt
YXJrRm9yU3luYyk6IFVzZSBhIEdMaWIgdGltZXIuCi0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzeW5jTGF5ZXJzVGltZW91dCk6IERpdHRvLgotCi0yMDEy
LTAyLTE2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgQXR0ZW1w
dCB0byBmaXggdGhlIEdUSyBidWlsZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0dlb2xv
Y2F0aW9uQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6
OnJlcXVlc3RQZXJtaXNzaW9uKToKLSAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6
OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KToKLQotMjAxMi0wMi0xNiAgU2VyZ2lvIFZpbGxhciBT
ZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KLQotICAgICAgICBbc291cF0gTW92ZSBpbXBvcnRh
bnQgU291cFNlc3Npb24gZmVhdHVyZSBpbml0aWFsaXphdGlvbiB0byBXZWJDb3JlCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYwMgotCi0gICAgICAg
IFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBNb3ZlZCBjb250ZW50IHNu
aWZmZXIgYW5kIGRlY29kZXIgaW5pdGlhbGl6YXRpb24gZnJvbSBXZWJLaXQgdG8KLSAgICAgICAg
V2ViQ29yZSBiZWNhdXNlIG5ldHdvcmsgc3R1ZmYgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB3
aXRob3V0Ci0gICAgICAgIHRoZW0uCi0KLSAgICAgICAgTm8gbmV3IHRlc3RzIHJlcXVpcmVkIGFz
IHdlJ3JlIGp1c3QgbW92aW5nIHN0dWZmIGZyb20gV2ViS2l0IHRvCi0gICAgICAgIFdlYkNvcmUu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6Ci0gICAgICAgICh3ZWJraXRJ
bml0KToKLQotMjAxMi0wMi0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNzk0MS4KLSAgICAgICAg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA3OTQxCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYwMgotCi0gICAgICAgIEJyb2tlIDIz
IGh0dHAgdGVzdHMgb24gR1RLCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6
Ci0gICAgICAgICh3ZWJraXRJbml0KToKLQotMjAxMi0wMi0xNiAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KLQotICAgICAgICBbc291cF0gTW92ZSBpbXBvcnRhbnQg
U291cFNlc3Npb24gZmVhdHVyZSBpbml0aWFsaXphdGlvbiB0byBXZWJDb3JlCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYwMgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBNb3ZlZCBjb250ZW50IHNuaWZm
ZXIgYW5kIGRlY29kZXIgaW5pdGlhbGl6YXRpb24gZnJvbSBXZWJLaXQgdG8KLSAgICAgICAgV2Vi
Q29yZSBiZWNhdXNlIG5ldHdvcmsgc3R1ZmYgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCB3aXRo
b3V0Ci0gICAgICAgIHRoZW0uCi0KLSAgICAgICAgTm8gbmV3IHRlc3RzIHJlcXVpcmVkIGFzIHdl
J3JlIGp1c3QgbW92aW5nIHN0dWZmIGZyb20gV2ViS2l0IHRvCi0gICAgICAgIFdlYkNvcmUuCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6Ci0gICAgICAgICh3ZWJraXRJbml0
KToKLQotMjAxMi0wMS0zMSAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24u
bW9iaT4KLQotICAgICAgICBbc291cF0gQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIFNvdXBTZXNz
aW9ucy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3
MzQxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAg
ICAgIEFkYXB0IHRvIHRoZSBjaGFuZ2VzIHRvIEZyYW1lTmV0d29ya2luZ0NvbnRleHQgaW4gV2Vi
Q29yZS4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmguCi0gICAg
ICAgIChXZWJLaXQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3Rr
Ojpzb3VwU2Vzc2lvbik6IEFsd2F5cyByZXR1cm4gUmVzb3VyY2VIYW5kbGU6OmRlZmF1bHRTZXNz
aW9uKCkuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0
ay5oOgotICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayk6Ci0KLTIwMTItMDItMTUg
IFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgotCi0gICAgICAg
IE5vdGlmeSBDaHJvbWVDbGllbnQgd2hlbiB0b3VjaC1ldmVudCBoYW5kbGVycyBhcmUgaW5zdGFs
bGVkL3JlbW92ZWQuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NzQ0MAotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlciBhbmQgUnlvc3Vr
ZSBOaXdhLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0g
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6bnVtVG91Y2hFdmVudEhhbmRsZXJzQ2hhbmdl
ZCk6Ci0KLTIwMTItMDItMTUgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lh
LmNvbT4KLQotICAgICAgICBbVGV4bWFwXSBEaXZpZGUgVGV4dHVyZU1hcHBlck5vZGUuY3BwIHRv
IDMgZmlsZXMuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NjY2MAotCi0gICAgICAgIFJlbmFtZSBUZXh0dXJlTWFwcGVyTm9kZSB0byBUZXh0dXJlTWFw
cGVyTGF5ZXIuICAgICAgICAKLQotICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0Lmg6Ci0gICAgICAgIChBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCk6
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRH
TC5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCk6Ci0gICAgICAgIChXZWJLaXQ6OkFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjplbmFibGVkKToKLSAgICAgICAgKFdlYktpdDo6QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlbmRlckxheWVyc1RvV2luZG93KToKLSAgICAgICAg
KFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OmF0dGFjaFJvb3RHcmFwaGlj
c0xheWVyKToKLSAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6
OnN5bmNMYXllcnNUaW1lb3V0KToKLQotMjAxMi0wMi0xMSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8
bnppbW1lcm1hbm5AcmltLmNvbT4KLQotICAgICAgICBDb252ZXJ0IHN2Zy9hbmltYXRpb25zIHRv
IHVzZSBTTUlMIG1ldGhvZHMgZm9yIGRyaXZpbmcgdGhlIHRpbWVsaW5lCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODQyMgotCi0gICAgICAgIFJldmll
d2VkIGJ5IERpcmsgU2NodWx6ZS4KLQotICAgICAgICBSZW1vdmUgU1ZHIGFuaW1hdGlvbiBzYW1w
bGluZyBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGZvciBEUlQsIHdoaWNoIG5vIGxvbmdlciB1c2Vz
IGl0LgotICAgICAgICBJbnN0ZWFkIHdlIHN3aXRjaGVkIHRoZSBzdmcvYW5pbWF0aW9ucyB0ZXN0
cyB0byB1c2UgU1ZHU1ZHRWxlbWVudC5zZXRDdXJyZW50VGltZS4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgIChEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGspOgotCi0yMDEyLTAyLTEzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNh
bmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBBZGQgR1NMaXN0IHRvIHRoZSBsaXN0
IG9mIEdPYmplY3QgdHlwZXMgaW4gR093blB0cgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg0ODcKLQotICAgICAgICBSZXZpZXdlZCBieSBQaGlsaXBw
ZSBOb3JtYW5kLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwpOiBVc2UgR093
blB0cjxHU0xpc3Q+IGZvciB0aGUKLSAgICAgICAgbGlzdCBvZiBmaWxlbmFtZXMgcmV0dXJuZWQg
YnkgZ3RrX2ZpbGVfY2hvb3Nlcl9nZXRfZmlsZW5hbWVzKCkuCi0KLTIwMTItMDItMDkgIFphbiBE
b2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KLQotICAgICAgICBbR1RLXSBBZGQgRFJU
IHN1cHBvcnQgZm9yIG1vZGFsIGRpYWxvZ3MKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUzNjAwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJv
Ymluc29uLgotCi0gICAgICAgIEFkZCBzdXBwb3J0IGZvciBydW5uaW5nIG1vZGFsIGRpYWxvZ3Mu
Ci0KLSAgICAgICAgQSBuZXcgc2lnbmFsIGlzIGFkZGVkIHRvIHRoZSBXZWJLaXRXZWJWaWV3LiBX
aGVuIGVtaXR0ZWQsIHRoZSB3ZWIgdmlldwotICAgICAgICBpcyByZXF1ZXN0aW5nIHRvIGJlIGRp
c3BsYXllZCBhcyBhIG1vZGFsIGRpYWxvZy4gSWYgYWNjZXB0ZWQsIHRoZQotICAgICAgICBDaHJv
bWVDbGllbnQgdGhlbiBlc3RhYmxpc2hlcyBhIGxvb3AgdGhhdCBpcyBydW4gdW50aWwgdGhlIGNo
cm9tZSBpcyBkZXN0cm95ZWQuCi0gICAgICAgIElmIGRlbmllZCwgbm90aGluZyBpcyBkb25lLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50OjpDaHJvbWVDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnQ6OmNocm9tZURlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6Y2FuUnVuTW9kYWwpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bk1v
ZGFsKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLSAgICAg
ICAgKENocm9tZUNsaWVudCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotCi0yMDEyLTAyLTA5ICBaYW4g
RG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+Ci0KLSAgICAgICAgW0d0a10gc2VjdXJp
dHkvc2V0LWZvcm0tYXV0b2NvbXBsZXRlLWF0dHJpYnV0ZS5odG1sIGZhaWxzCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODI2MQotCi0gICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBBZGQgYSBoZWxwZXIgZnVuY3Rp
b24gdG8gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLCByZXR1cm5pbmcKLSAgICAgICAgd2hldGhl
ciBvciBub3QgYW4gZWxlbWVudCBkb2VzIHBlcmZvcm0gYXV0b2NvbXBsZXRpb24uCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjplbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVs
ZW1lbnRXaXRoSWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5oOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKLQotMjAxMi0w
Mi0wOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
QnVpbGQgZml4IGZvciBHVEsrIDIueCBhZnRlciBteSBwcmV2aW91cyBjb21taXQuCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
ZXhwb3NlX2V2ZW50KTogVGhlIG5hbWUgb2YgdGhlIGV2ZW50IGlzIGV4cG9zZV9ldmVudCBhbmQg
bm90IGV4cG9zZS4KLQotMjAxMi0wMi0wOCAgRGFuIFZyw6F0aWwgIDxkdnJhdGlsQHJlZGhhdC5j
b20+LCBNaWxhbiBDcmhhIDxtY3JoYUByZWRoYXQuY29tPgotCi0gICAgICAgIFtHVEtdIEVtYmVk
ZGVkIEd0a1dpZGdldHMgYXJlIG5vdCBkcmF3bgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0NTEKLQotICAgICAgICBJbnNlcnQgcGx1Z2luIHdpZGdl
dHMgdG8gV2ViS2l0V2ViVmlldyBjb250YWluZXIgYXMgaXQncyBjaGlsZHJlbi4KLSAgICAgICAg
Q2hhaW4gdXAgdG8gcGFyZW50IGluIHdlYmtpdF93ZWJfdmlld19kcmF3KCkgdG8gZW5zdXJlIHRo
ZSBjaGlsZCB3aWRnZXRzIGFyZSBkcmF3bi4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4p
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19kcmF3KToKLQotMjAxMi0wMi0wOCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5j
aGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0d0a10gYXRrX3RleHRfZ2V0X3RleHRfYXRfb2Zm
c2V0KCkgZmFpbHMgdG8gcHJvdmlkZSB0aGUgY29ycmVjdCBsaW5lIGZvciBsaXN0IGl0ZW1zIHdo
b3NlIHRleHQgd3JhcHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczNDMxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCi0KLSAg
ICAgICAgVXBkYXRlZCB1bml0IHRlc3QgdG8gY2hlY2sgdGV4dCB3cmFwcGluZyBhY2Nyb3NzIGRp
ZmZlcmVudCBsaW5lcwotICAgICAgICBpbnNpZGUgbGlzdCBpdGVtcyB3aXRoIGJ1bGxldCBtYXJr
ZXJzLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGVzdFdlYmtpdEF0
a0dldFRleHRBdE9mZnNldFdpdGhTcGVjaWFsQ2hhcmFjdGVycyk6IFVwZGF0ZWQgdGVzdC4KLQot
MjAxMi0wMi0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+IGFuZCBO
YXlhbiBLdW1hciBLICA8bmF5YW5ra0Btb3Rvcm9sYS5jb20+Ci0KLSAgICAgICAgW0dUS10gQWRk
IFRleHR1cmVNYXBwZXJHTCBpbXBsZW1lbnRhdGlvbgotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDgKLQotICAgICAgICBSZXZpZXdlZCBieSBBbGVq
YW5kcm8gRy4gQ2FzdHJvLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZCBBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dEdMIHRvIHRoZSBsaXN0LgotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Lmg6Ci0gICAgICAgIChBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dCk6IEFkZGVkIHNvbWUgbWVtYmVycyBmb3IgQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHRHTC4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVy
YXRlZENvbXBvc2l0aW5nQ29udGV4dENsdXR0ZXIuY3BwOiBBZGRlZCBlbXB0eSBpbXBsZW1lbnRh
dGlvbnMKLSAgICAgICAgZm9yIEdyYXBoaWNzTGF5ZXJDbGllbnQuIFRoaXMgaXMgb25seSB1c2Vk
IGZvciB0aGUgR0wgdmFyaWFudC4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRl
ZENvbXBvc2l0aW5nQ29udGV4dEdMLmNwcDogQWRkZWQuCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpw
ZXJmb3JtQWxsUGVuZGluZ1Njcm9sbHMpOiBVcGRhdGUgdGhlIHJvb3QgbGF5ZXIgd2hpbGUgc2Ny
b2xsaW5nLgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnBhaW50KTogVXBkYXRlIHRo
ZSByb290IGxheWVyIGFmdGVyIHBhaW50aW5nLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJz
ZXR0aW5ncy5jcHA6IEFkZGVkIGFuIGVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZyBzZXR0
aW5nLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaDogRGl0dG8u
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2RyYXcpOiBDYWxsIGludG8gVGV4dHVyZU1hcHBlciBub3cuCi0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfcmVhbGl6ZSk6IFVzZSBnZGtfd2luZG93X2Vuc3VyZV9uYXRpdmUgaGVyZS4K
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOiBTdXBwb3J0IHRoZSBu
ZXcgZW5hYmxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nIHNldHRpbmcuCi0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KTogRGl0dG8uCi0KLTIwMTItMDItMDYgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgRG8gbm90IHRyeSB0
byBjaGRpciB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBleGVjdXRhYmxlIGlzIGluCi0gICAg
ICAgIG9ubHkgaWYgdGhlIHBhdGggaXMgYWJzb2x1dGUuIFRoaXMgbWFrZXMgdGVzdHMgcnVubmFi
bGUgZnJvbQotICAgICAgICBhbnl3aGVyZS4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0X3V0aWxzLmM6Ci0gICAgICAgICh0ZXN0
dXRpbHNfcmVsYXRpdmVfY2hkaXIpOgotCi0yMDEyLTAyLTA2ICBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQgZml4IGZvciB0aGUgbmV3
IEFQSSB0ZXN0IHRoYXQgaXMgZmFpbGluZyAtCi0gICAgICAgIFdFQktJVF9JTlNQRUNUT1JfUEFU
SCBuZWVkcyB0byBiZSBzZXQsIHNpbmNlIHdlIGRvIG5vdCBpbnN0YWxsIG91cgotICAgICAgICBi
dWlsZHMuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViaW5zcGVjdG9yLmM6Ci0gICAgICAgICht
YWluKToKLQotMjAxMi0wMi0wNSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9y
Zz4KLQotICAgICAgICBbR1RLXSBJbnN0YS1jcmFzaCB3aGVuIGNsb3NpbmcgYnJvd3NlciB3aXRo
IGluc3BlY3RvciB3aW5kb3cgb3BlbmVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MDc0NAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNs
aWVudDo6cmVsZWFzZUZyb250ZW5kUGFnZSk6IGFsc28gbGV0IGdvIG9mIHRoZQotICAgICAgICBm
cm9udGVuZCBjbGllbnQgd2hlbiByZWxlYXNpbmcgdGhlIGZyb250ZW5kIHBhZ2U7Ci0gICAgICAg
IChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojp+SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQoKTogQ2FsbCByZWxlYXNlRnJvbnRlbmRQYWdlKCkKLSAgICAgICAgbGlrZSBvdGhlciBwb3J0
cyBkbyBpbnN0ZWFkIG9mIGp1c3QgZGlzY29ubmVjdEZyb250ZW5kQ2xpZW50KCkuCi0gICAgICAg
IChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0cm95SW5zcGVjdG9yV2luZG93
KTogVXNlIEdSZWZQdHIgZm9yIHRoZQotICAgICAgICBpbnNwZWN0b3IgcmVmLgotICAgICAgICAo
V2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6YnJpbmdUb0Zyb250KTogQWRqdXN0IGZv
ciBHUmVmUHRyIHVzYWdlLgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6YXR0YWNoV2luZG93KTogRGl0dG8uCi0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250
ZW5kQ2xpZW50OjpkZXRhY2hXaW5kb3cpOiBEaXR0by4KLSAgICAgICAgKFdlYktpdDo6SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6Omluc3BlY3RlZFVSTENoYW5nZWQpOiBEaXR0by4KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLSAgICAgICAgKEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50KTogVXNlIEdSZWZQdHIgZm9yIGluc3BlY3RvciBtZW1iZXIuCi0gICAg
ICAgICogdGVzdHMvdGVzdHdlYmluc3BlY3Rvci5jOiBBZGRlZC4gVGVzdCB0aGF0IGtpbGxpbmcg
YSBXZWJWaWV3IHdpdGggdGhlIGluc3BlY3RvcgotICAgICAgICBvcGVuIGRvZXMgbm90IGNyYXNo
LCBhbmQgdGhhdCBjbG9zaW5nIGFuZCByZWluc3BlY3Rpbmcgd29ya3MuCi0gICAgICAgIChxdWl0
TG9vcCk6Ci0gICAgICAgIChjb25zb2xlTWVzc2FnZUNhbGxiYWNrKToKLSAgICAgICAgKGluc3Bl
Y3RFbGVtZW50Q2FsbGJhY2spOgotICAgICAgICAoY2xvc2VJbnNwZWN0b3IpOgotICAgICAgICAo
c2hvd0luc3BlY3Rvcik6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfaW5zcGVjdG9yX2Nsb3Nl
X2FuZF9pbnNwZWN0KToKLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9pbnNwZWN0b3JfZGVzdHJv
eV9pbnNwZWN0ZWRfd2ViX3ZpZXcpOgotICAgICAgICAobWFpbik6Ci0KLTIwMTItMDItMDYgIEd1
c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgQWRkIGEgbnVs
bCBjaGVjayBmb3IgdGhlIGdka3dpbmRvdywgdGhhdCB3aWxsIGhhcHBlbiBpZiB0aGUgd2luZG93
Ci0gICAgICAgIGlzIG5vdCBtYXBwZWQuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJv
Ymluc29uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXRDdXJzb3IpOgotCi0yMDEyLTAyLTA2
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RL
XSBXZWJLaXRXZWJWaWV3IGRvZXMgYSBsb3Qgb2Ygd29yayBkdXJpbmcgc2l6ZV9hbGxvY2F0ZSB3
aGVuIG5vdCBtYXBwZWQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc3NzQzCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZh
LgotCi0gICAgICAgIEluc3RlYWQgb2YgcmVzaXppbmcgdGhlIGd1dHMgb2YgYSBXZWJWaWV3IHdo
ZW4gaXQncyBub3QgbWFwcGVkLCB3YWl0Ci0gICAgICAgIHVudGlsIGl0J3MgbWFwcGVkIGFuZCBk
byBvbmUgcmVzaXplLiBUaGlzIHByZXZlbnRzIHVubWFwcGVkIFdlYlZpZXdzCi0gICAgICAgIGZy
b20gYWRkaW5nIHRvIGEgY29udGFpbmVyJ3MgcmVzaXplIGNvc3QuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgIChyZXNpemVXZWJWaWV3RnJvbUFsbG9jYXRp
b24pOiBBYnN0cmFjdGVkIG91dCB0aGlzIGhlbHBlci4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19zaXplX2FsbG9jYXRlKTogV2FpdCB1bnRpbCBtYXAgdG8gcmVzaXplIHVtYXBwZWQgd2lkZ2V0
cy4KLSAgICAgICAgKHdlYmtpdFdlYlZpZXdNYXApOiBBZGRlZCB0aGlzIHZtZXRob2QgaW1wbGVt
ZW50YXRpb24uCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6IEFkZGVkIHZt
ZXRob2QuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IEFkZGVkIG5l
dyBuZWVkc1Jlc2l6ZU9uTWFwIG1lbWJlci4KLQotMjAxMi0wMi0wNiAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gVXBkYXRlIE5FV1Mg
YW5kIGNvbmZpZ3VyZS5hYyBmb3IgMS43LjUgcmVsZWFzZQotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc4NTkKLQotICAgICAgICBSZXZpZXdlZCBieSBQ
aGlsaXBwZSBOb3JtYW5kLgotCi0gICAgICAgICogTkVXUzogQWRkZWQgcmVsZWFzZSBub3RlcyBm
b3IgMS43LjUuCi0KLTIwMTItMDItMDYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEZpeCBzZXZlcmFsIGd0a2RvYy1maXh4cmVmIHdh
cm5pbmdzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
NzYxMwotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAq
IGRvY3Mvd2Via2l0Z3RrLWRvY3Muc2dtbDogUmVtb3ZlIHdlYmtpdHNwZWxsY2hlY2tlcmVuY2hh
bnQKLSAgICAgICAgc2VjdGlvbi4KLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50
eHQ6IFJlbW92ZSB3ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50Ci0gICAgICAgIHN5bWJvbHMgYW5k
IG1vdmUgV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiBmcm9tIHRoZSBwcml2YXRlCi0gICAgICAg
IHNlY3Rpb24gdG8gdGhlIGdsb2JhbCBzZWN0aW9uLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJuYXZpZ2F0aW9uYWN0aW9uLmg6IERvY3VtZW50Ci0gICAgICAgIFdlYktpdFdlYk5hdmlnYXRp
b25SZWFzb24gZW51bS4KLQotMjAxMi0wMi0wMiAgS2FsZXYgTGVtYmVyICA8a2FsZXZsZW1iZXJA
Z21haWwuY29tPgotCi0gICAgICAgIFtHVEtdIERvbid0IHVzZSB1aW50Ci0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzY3OAotCi0gICAgICAgIFJldmll
d2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBXaXRoIHRoZSBNaW5nR1cgY3Jvc3Mg
Y29tcGlsZXIgdG9vbGNoYWluIGluIEZlZG9yYSwgdWludCB3YXNuJ3QKLSAgICAgICAgZGVmaW5l
ZCwgc28gdXNlIHVuc2lnbmVkIGludCBpbnN0ZWFkLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgIChDaHJvbWVDbGllbnQpOiBVc2UgdW5zaWdu
ZWQgaW50IGluc3RlYWQgb2YgdWludAotCi0yMDEyLTAyLTAyICBDbGF1ZGlvIFNhYXZlZHJhICA8
Y3NhYXZlZHJhQGlnYWxpYS5jb20+IGFuZCBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBXZWJLaXRXZWJWaWV3IHdvbid0IHdvcmsgaW4gYSBH
dGtPZmZzY3JlZW5XaW5kb3cKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc2OTExCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6d2luZG93UmVjdCk6IFVzZSB0aGUgbmV3IHdpZGdldElz
T25zY3JlZW5Ub3BsZXZlbFdpbmRvdyBoZWxwZXIuCi0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6c2V0V2luZG93UmVjdCk6IERpdHRvLgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OnVuZm9jdXMpOiBEaXR0by4KLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpydW5P
cGVuUGFuZWwpOiBEaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vidmlldy5jOiBBZGRlZCBh
IHRlc3QgdG8gZW5zdXJlIHRoYXQgbG9hZGluZyBhIHBhZ2UgaW4gYW4gb2Zmc2NyZWVuIHdpbmRv
dyBkb2VzIG5vdCBjcmFzaC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6Ci0g
ICAgICAgIChjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayk6Ci0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfcHJpbnRfZnVsbCk6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX3ByaW50KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9jdXNfaW5fZXZlbnQpOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X3NjcmlwdF9kaWFsb2cpOgotCi0yMDEyLTAyLTAyICBN
YXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR3Rr
XSBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZzZXQoKSBzb21ldGltZXMgZmFpbHMgdG8gcHJvdmlk
ZSB0aGUgY29ycmVjdCBsaW5lCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MjM4MgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
LQotICAgICAgICBOZXcgdW5pdCB0ZXN0IHRvIGVuc3VyZSB0aGUgcmlnaHQgbGluZSBpcyByZXRy
aWV2ZWQgZm9yIHRoZSBmaXJzdAotICAgICAgICBwb3NpdGlvbiBvZiBlYWNoIGxpbmUgaW4gYSBt
dWx0aWxpbmUgcHJlZm9ybWF0dGVkIHBvcnRpb24gb2YgdGV4dC4KLQotICAgICAgICAqIHRlc3Rz
L3Rlc3RhdGsuYzoKLSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoUHJl
Zm9ybWF0dGVkVGV4dCk6IE5ldyB1bml0IHRlc3QuCi0gICAgICAgIChtYWluKTogQWRkIHRoZSBu
ZXcgdW5pdCB0ZXN0LgotCi0yMDEyLTAyLTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRA
aWdhbGlhLmNvbT4KLQotICAgICAgICBbR1N0cmVhbWVyXSBGRlRGcmFtZSBpbXBsZW1lbnRhdGlv
bgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM1NDUK
LQotICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBSb2dlcnMuCi0KLSAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbTogUmVtb3ZlIGxpYmZmdHcgY29tcGlsYXRpb24gZmxhZ3MuCi0KLTIwMTItMDItMDEg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtd
IHVuaXR0ZXN0cy90ZXN0bG9hZGluZyBjcmFzaGVzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU0NAotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBM
b3Blei4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExv
YWRpbmcpOiBCYWlsIG91dAotICAgICAgICBlYXJseSBmcm9tIGRpc3BhdGNoRGlkRmFpbExvYWRp
bmcgaWYgdGhlIGVycm9yIGlzIHRoZSByZXN1bHQgb2YgYW4KLSAgICAgICAgaW50ZXJydXB0ZWQg
bG9hZC4KLQotMjAxMi0wMi0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+IGFuZCBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBJbXByb3Zl
IEZyYW1lTG9hZGVyIHNpZ25hbHMuIFJlc291cmNlIGxvYWRpbmcKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NTQzCi0KLSAgICAgICAgTmV3IHNpZ25h
bHM6Ci0gICAgICAgIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nCi0g
ICAgICAgIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZAotICAgICAg
ICBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtbG9hZC1maW5pc2hlZAotICAgICAgICBXZWJLaXRX
ZWJGcmFtZTo6cmVzb3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2ZWQKLSAgICAgICAgV2ViS2l0
V2ViRnJhbWU6OnJlc291cmNlLWxvYWQtZmFpbGVkCi0gICAgICAgIFdlYktpdFdlYlJlc291cmNl
OjpyZXNwb25zZS1yZWNlaXZlZAotICAgICAgICBXZWJLaXRXZWJSZXNvdXJjZTo6bG9hZC1mYWls
ZWQKLSAgICAgICAgV2ViS2l0V2ViUmVzb3VyY2U6OmxvYWQtZmluaXNoZWQKLSAgICAgICAgV2Vi
S2l0V2ViUmVzb3VyY2U6OmNvbnRlbnQtbGVuZ3RoLXJlY2VpdmVkCi0gICAgICAgIFdlYktpdFdl
YlZpZXc6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkCi0gICAgICAgIFdlYktpdFdlYlZpZXc6
OnJlc291cmNlLWxvYWQtZmluaXNoZWQKLSAgICAgICAgV2ViS2l0V2ViVmlldzo6cmVzb3VyY2Ut
Y29udGVudC1sZW5ndGgtcmVjZWl2ZWQKLSAgICAgICAgV2ViS2l0V2ViVmlldzo6cmVzb3VyY2Ut
bG9hZC1mYWlsZWQKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2ls
bFNlbmRSZXF1ZXN0KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkUmVjZWl2ZVJlc3BvbnNlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgotICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKToKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcpOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1l
X2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHA6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX3Jlc291cmNlX2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0
KToKLSAgICAgICAgKiB3ZWJraXRtYXJzaGFsLmxpc3Q6Ci0KLTIwMTItMDEtMjMgIE1hcmlvIFNh
bmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFJlZmFj
dG9yIEdUSydzIGFjY2Vzc2liaWxpdGl0eSBjb2RlIHRvIGJlIG1vcmUgbW9kdWxhcgotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY3ODMKLQotICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgVXBkYXRlIGNhbGxlcnMg
dG8gV2ViS2l0QWNjZXNzaWJsZSdzIHB1YmxpYyBmdW5jdGlvbnMuCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpnZXRGb2N1c2VkQWNjZXNzaWJsZUVsZW1lbnQpOgotICAgICAg
ICAobW9kaWZ5QWNjZXNzaWJpbGl0eVZhbHVlKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6YWNjZXNzaWJpbGl0eUhlbHBUZXh0KToKLQotMjAxMi0wMS0yMiAgTWFyaW8gU2Fu
Y2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gUmVmYWN0
b3IgR1RLJ3MgYWNjZXNzaWJpbGl0aXR5IGNvZGUgdG8gYmUgbW9yZSBtb2R1bGFyCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Njc4MwotCi0gICAgICAg
IFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBVcGRhdGUgdGhlIGluY2x1
ZGUgZm9yIHRoZSBBY2Nlc3NpYmlsaXR5T2JqZWN0IHdyYXBwZXIgaGVhZGVyLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDogVXBkYXRlIGlu
Y2x1ZGUuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDogRGl0dG8uCi0KLTIw
MTItMDEtMjIgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFtHVEtdIEFUSyB0ZXh0LWNhcmV0LW1vdmVkIGFuZCB0ZXh0LXNlbGVjdGlvbi1jaGFu
Z2VkIGV2ZW50cyBub3QgYmVpbmcgZW1pdHRlZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYwNjkKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgVXBkYXRlIGNhcmV0IGJyb3dzaW5nIHJlbGF0ZWQgdW5pdCB0
ZXN0cyB0byBjaGVjayBlbWlzc2lvbnMgb2YKLSAgICAgICAgJ3RleHQtY2FyZXQtbW92ZWQnIGFu
ZCAndGV4dC1zZWxlY3Rpb24tY2hhbmdlZCcgc2lnbmFscy4KLQotICAgICAgICAqIHRlc3RzL3Rl
c3RhdGsuYzoKLSAgICAgICAgKHRleHRDYXJldE1vdmVkQ2FsbGJhY2spOiBOZXcgY2FsbGJhY2sg
Zm9yICd0ZXh0LWNhcmV0LW1vdmVkJy4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtDYXJldE9mZnNl
dHMpOiBDaGVjayBlbWlzc2lvbnMgb2YgJ3RleHQtY2FyZXQtbW92ZWQnLgotICAgICAgICAodGV4
dFNlbGVjdGlvbkNoYW5nZWRDYWxsYmFjayk6IE5ldyBjYWxsYmFjayBmb3IgJ3RleHQtc2VsZWN0
aW9uLWNoYW5nZWQnLgotICAgICAgICAodGVzdFdlYmtpdEF0a1RleHRTZWxlY3Rpb25zKTogQ2hl
Y2sgZW1pc3Npb25zIG9mICd0ZXh0LXNlbGVjdGlvbi1jaGFuZ2VkJy4KLQotMjAxMi0wMS0xOCAg
RXZhbiBOZW1lcnNvbiAgPGV2YW5AY29ldXMtZ3JvdXAuY29tPgotCi0gICAgICAgIFtHVEtdIFdl
YktpdC0zLjAuZ2lyIGRvZXMgbm90IGluY2x1ZGUgaW5mb3JtYXRpb24gYWJvdXQgQyBpbmNsdWRl
cyBvciBleHBvcnRlZCBwYWNrYWdlcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDk4NzUKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24uCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkIHNvbWUgaW5mb3JtYXRpb24gdG8g
dGhlIEdJUiBnZW5lcmF0b3IgdG8gZml4Ci0gICAgICAgIFZhbGEgYmluZGluZyBnZW5lcmF0aW9u
LgotCi0yMDEyLTAxLTE4ICBDYXJsb3MgR2FybmFjaG8gIDxjYXJsb3NnQGdub21lLm9yZz4KLQot
ICAgICAgICBbR1RLXSBMaXN0ZW4gdG8gR0RLX1NDUk9MTF9NQVNLCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUyOQotCi0gICAgICAgIFNldCBHREtf
U0NST0xMX01BU0sgZXhwbGljaXRseSwgYXMgV2ViS2l0V2ViVmlldyBkb2VzIGhhbmRsZQotICAg
ICAgICBzY3JvbGwgZXZlbnRzLCBzY3JvbGxpbmcgY3VycmVudGx5IHdvcmtzIGJlY2F1c2UgR1RL
KyBoYXBwZW5zIAotICAgICAgICB0byBzZW5kIHN1Y2ggZXZlbnRzIHRvIHdpZGdldHMgbGlzdGVu
aW5nIHRvIEdES19CVVRUT05fUFJFU1NfTUFTSywKLSAgICAgICAgYnV0IHRoaXMgaXNuJ3QgdGhl
IGludGVuZGVkIGJlaGF2aW9yLCBzbyBpdCdzIHN1YmplY3QgdG8gY2hhbmdlLgotCi0gICAgICAg
IFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19yZWFsaXplKToKLQotMjAxMi0w
MS0xNyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
W0d0a10gSW5wdXQgdGV4dCBmaWVsZCBub3QgcmVwYWludGVkIHdoZW4gdmFsdWUgaXMgY2hhbmdl
ZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNzkK
LQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAg
Rm9yY2UgcGVuZGluZyByZWxheW91dHMgYmVmb3JlIGZyZWV6aW5nIHRoZSBkaXJ0eSByZWdpb24g
aW4gYSB0ZW1wb3JhcnkuCi0gICAgICAgIFRoaXMgcHJldmVudHMgdGhlIGZvbGxvd2luZyBjb2Rl
IGZyb20gdGhyb3dpbmcgdGhlIGRpcnR5IHVwZGF0ZXMgYXdheQotICAgICAgICBhZnRlciB0aGUg
b3JpZ2luYWwgcGFpbnQgaXMgZmluaXNoZWQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpwYWludFdlYlZpZXcpOiBSZW1v
dmUgdGhlIHJlbGF5b3V0LgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnBhaW50KTog
TW92ZSB0aGUgcmVsYXlvdXQgaGVyZSwgYmVmb3JlIHRoZQotICAgICAgICBkaXJ0eSByZWdpb24g
aXMgZnJvemVuLgotCi0yMDEyLTAxLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFj
IGZvciAxLjcuNCByZWxlYXNlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NjM3NQotCi0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQu
Ci0KLSAgICAgICAgKiBORVdTOiBBZGRlZCByZWxlYXNlIG5vdGVzIGZvciAxLjcuNC4KLQotMjAx
Mi0wMS0xMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNDkwNS4KLSAgICAgICAgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA0OTA1Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjI2NwotCi0gICAgICAgIFRoaXMgcGF0Y2ggYnJva2Ug
dGVzdHMgaW4gdGhlIEdUSyA2NGJpdCBEZWJ1ZyBib3QgKFJlcXVlc3RlZAotICAgICAgICBieSBt
c2FuY2hleiBvbiAjd2Via2l0KS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAg
ICAgKHRlc3RXZWJraXRBdGtDYXJldE9mZnNldHMpOgotICAgICAgICAodGVzdFdlYmtpdEF0a1Rl
eHRTZWxlY3Rpb25zKToKLQotMjAxMi0wMS0xMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5j
aGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gQVRLIHRleHQtY2FyZXQtbW92ZWQgYW5k
IHRleHQtc2VsZWN0aW9uLWNoYW5nZWQgZXZlbnRzIG5vdCBiZWluZyBlbWl0dGVkCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA2OQotCi0gICAgICAg
IFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBVcGRhdGUgY2FyZXQgYnJv
d3NpbmcgcmVsYXRlZCB1bml0IHRlc3RzIHRvIGNoZWNrIGVtaXNzaW9ucyBvZgotICAgICAgICAn
dGV4dC1jYXJldC1tb3ZlZCcgYW5kICd0ZXh0LXNlbGVjdGlvbi1jaGFuZ2VkJyBzaWduYWxzLgot
Ci0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGV4dENhcmV0TW92ZWRDYWxs
YmFjayk6IE5ldyBjYWxsYmFjayBmb3IgJ3RleHQtY2FyZXQtbW92ZWQnLgotICAgICAgICAodGVz
dFdlYmtpdEF0a0NhcmV0T2Zmc2V0cyk6IENoZWNrIGVtaXNzaW9ucyBvZiAndGV4dC1jYXJldC1t
b3ZlZCcuCi0gICAgICAgICh0ZXh0U2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKTogTmV3IGNhbGxi
YWNrIGZvciAndGV4dC1zZWxlY3Rpb24tY2hhbmdlZCcuCi0gICAgICAgICh0ZXN0V2Via2l0QXRr
VGV4dFNlbGVjdGlvbnMpOiBDaGVjayBlbWlzc2lvbnMgb2YgJ3RleHQtc2VsZWN0aW9uLWNoYW5n
ZWQnLgotCi0yMDEyLTAxLTEyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlh
LmNvbT4KLQotICAgICAgICBbR3RrXSBSZW1vdmVkIGR1cGxpY2F0ZWQgdW5pdCB0ZXN0LgotCi0g
ICAgICAgIFRoZSB1bml0IHRlc3QgdGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldEZvcm1zIGlz
IGV4YWN0bHkgdGhlCi0gICAgICAgIHNhbWUgdGVzdCBjYXNlIHRoYW4gdGVzdFdlYmtpdEF0a0dl
dFRleHRBdE9mZnNldCwgc28gaXQgbWFrZXMgbm8KLSAgICAgICAgc2Vuc2UgdG8gaGF2ZSBpdCBk
dXBsaWNhdGVkLgotCi0gICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
LQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKG1haW4pOiBSZW1vdmVkIHRl
c3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRGb3Jtcy4KLQotMjAxMi0wMS0xMCAgTWFyaW8gU2Fu
Y2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgQVg6IHN1cHBvcnQg
aGVscFRleHQoKSBpbiBEdW1wUmVuZGVyVHJlZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAxOTMKLQotICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBG
bGVpemFjaC4KLQotICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmV0cmlldmluZyBXZWJDb3JlJ3Mg
QWNjZXNzaWJpbGl0eU9iamVjdCdzCi0gICAgICAgIGhlbHBUZXh0IGZyb20gdGhlIEdUSyBEdW1w
UmVuZGVyVHJlZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmFjY2Vzc2li
aWxpdHlIZWxwVGV4dCk6IFJldHVybnMgcmVzdWx0Ci0gICAgICAgIG9mIGNhbGxpbmcgdG8gaGVs
cFRleHQoKSBvdmVyIHRoZSBjb3JlIGFjY2Vzc2liaWxpdHkgb2JqZWN0J3MuCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTItMDEtMDkg
IE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtH
dGtdIFJlZ3Jlc3Npb246IHRleHQtaW5zZXJ0ZWQgZXZlbnRzIGxhY2sgdGV4dCBpbnNlcnRlZCBh
bmQgY3VycmVudCBsaW5lCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MjgzMAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQot
ICAgICAgICBVcGRhdGVkIHVuaXQgdGVzdHMgdG8gY2hlY2sgdGhhdCBib3RoIGdldHRpbmcgdGhl
IGN1cnJlbnQgcG9zaXRpb24KLSAgICAgICAgZm9yIHRoZSBjYXJldCBhbmQgdGhlIGV4cG9zZWQg
dGV4dCBhdCwgYmVmb3JlIG9yIGFmdGVyIGEgZ2l2ZW4KLSAgICAgICAgb2Zmc2V0IGZvciBhbiBh
Y2Nlc3NpYmxlIG9iamVjdCB3b3JrcyBhcyBleHBlY3RlZC4KLQotICAgICAgICAqIHRlc3RzL3Rl
c3RhdGsuYzoKLSAgICAgICAgKHJ1bkdldFRleHRUZXN0cyk6IEZvciBvYmplY3RzIGltcGxlbWVu
dGluZyBBdGtFZGl0YWJsZVRleHQsIHRyeQotICAgICAgICB0byBjaGFuZ2UgdGhlIGV4cG9zZWQg
dGV4dCBhbmQgcmV0cmlldmUgaXQgYWdhaW4gYXMgYSBmdWxsIGxpbmUuCi0gICAgICAgICh0ZXN0
V2Via2l0QXRrQ2FyZXRPZmZzZXRzKTogRm9yIGEgdGV4dCBjb250cm9sIChhIHRleHQgZW50cnkp
LAotICAgICAgICBzZXQgdGhlIGNhcmV0IG9mZnNldCB0byBhIHZhbHVlIGdyZWF0ZXIgdGhhbiAx
IGFuZCByZXRyaWV2ZSBpdC4KLQotMjAxMi0wMS0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gW0FDXSBJbnRyb2R1Y2UgQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQgdG8gaXNvbGF0ZSBkaWZmZXJlbnQgYWNjZWxlcmF0ZWQgY29t
cG9zaXRpbmcgaW1wbGVtZW50YXRpb25zCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03NTUxOQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFsZWphbmRybyBH
LiBDYXN0cm8uCi0KLSAgICAgICAgQWRkIGFuIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0
IHdoaWNoIHdpbGwgaXNvbGF0ZSBhbGwgdGhlIGRpZmZlcmVudCBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZwotICAgICAgICBpbXBsZW1lbnRhdGlvbnMgZnJvbSBvbmUgYW5vdGhlci4gRm9yIHJpZ2h0
IG5vdyB0aGlzIGp1c3QgaW5jbHVkZXMgdGhlIENsdXR0ZXIgdmVyc2lvbi4KLQotICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOiBBZGQgdGhlIG5ldyBmaWxlcyB0byB0aGUgc291cmNlIGxpc3QuCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaDog
QWRkZWQuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHRDbHV0dGVyLmNwcDogQWRkZWQuIEV4aXN0aW5nCi0gICAgICAgIGNsdXR0ZXIgQUMgY29k
ZSBoYXMgbW92ZWQgaGVyZS4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGlj
c0xheWVyKTogVXNlIHRoZSBuZXcgQWNjbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCBub3cKLSAg
ICAgICAgaW5zdGVhZCBvZiBjYWxsaW5nIGludG8gdGhlIFdlYlZpZXcuCi0gICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbik6
RGl0dG8uCi0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyU3luYyk6IERpdHRvLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zaXplX2FsbG9jYXRlKTogQ2FsbCBpbiB0aGUgQUND
b250ZXh0LgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOiBJbml0aWFsaXplIHRoZSBB
Q0NvbnRleHQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IEFkZCB0
aGUgQUNDb250ZXh0IGFzIGEgcHJpdmF0ZSBtZW1iZXIuCi0KLTIwMTItMDEtMDMgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFVzZSBn
ZGtfc2NyZWVuX2dldF9tb25pdG9yX3dvcmthcmVhKCkgd2hlbiBhdmFpbGFibGUgZm9yIHNjcmVl
bkF2YWlsYWJsZVJlY3QoKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzU0MzUKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0K
LSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogTWFrZSBzdXJlIHVuaXQgdGVzdHMgbGluayB0byBY
MTEuCi0KLTIwMTEtMTItMjAgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+Ci0K
LSAgICAgICAgW0dUS10gQ2hhbmdlIGRlZmF1bHQgV2ViU29ja2V0IHByb3RvY29sIHRvIHRoZSBs
YXRlc3Qgb25lCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NDA2NAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191
cGRhdGVfc2V0dGluZ3MpOgotICAgICAgICBVc2UgaHliaSBXZWJTb2NrZXQgcHJvdG9jb2wgYnkg
ZGVmYXVsdC4KLQotMjAxMS0xMi0xOSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgotCi0g
ICAgICAgIE1vcmUgUGxhdGZvcm1FdmVudCBjbGVhbnVwCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDgzMQotCi0gICAgICAgIFJldmlld2VkIGJ5IERh
biBCZXJuc3RlaW4uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9yd2FyZF9jb250ZXh0X21lbnVfZXZlbnQpOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2dldF9oaXRfdGVzdF9yZXN1bHQpOgotICAgICAgICBVcGRhdGUg
dG8gdXNlIG5ldyBuYW1lcywgYWNjZXNzIHN0eWxlLgotCi0yMDExLTEyLTE2ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgotCi0gICAgICAgIFJlbmFtZSByZWdpc3RlckNvbW1hbmRG
b3IoVW5kb3xSZWRvKSB0byByZWdpc3RlcihVbmRvfFJlZG8pU3RlcAotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3NDgKLQotICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3Rl
cCk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVnaXN0ZXJSZWRvU3RlcCk6Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0KLTIwMTEtMTItMTYg
IFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KLQotICAgICAgICBHaXZlIFBsYXRmb3JtRXZl
bnRzIGEgYmFzZSBjbGFzcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzQ2ODUKLQotICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCi0K
LSAgICAgICAgQWRkIGEgYmFzZSBjbGFzcyBmb3IgUGxhdGZvcm1Nb3VzZUV2ZW50LCBQbGF0Zm9y
bUtleWJvYXJkRXZlbnQsIFBsYXRmb3JtV2hlZWxFdmVudAotICAgICAgICBhbmQgUGxhdGZvcm1H
ZXN0dXJlRXZlbnQgYW5kIG1vdmUgVHlwZSBlbnVtZXJhdGlvbiBhbmQgbW9kaWZpZXJzIGRvd24g
dG8gaXQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19wb3B1cF9tZW51X2hhbmRsZXIpOgotCi0yMDExLTEyLTE2ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgotCi0gICAgICAgIE9ubHkgRWRpdENvbW1hbmRDb21wb3NpdGlvbiBzaG91
bGQgaW1wbGVtZW50IHVuYXBwbHkgYW5kIHJlYXBwbHkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NDkwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyQ29tbWFuZEZvclVuZG8p
OgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyQ29tbWFuZEZvclJlZG8p
OgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnVuZG8pOgotICAgICAgICAoV2ViS2l0
OjpFZGl0b3JDbGllbnQ6OnJlZG8pOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEd0ay5oOgotCi0yMDExLTEyLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFj
IGZvciAxLjcuMyByZWxlYXNlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NDY5OQotCi0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQu
Ci0KLSAgICAgICAgKiBORVdTOiBBZGRlZCByZWxlYXNlIG5vdGVzIGZvciAxLjcuMy4KLQotMjAx
MS0xMi0xNCAgSmluZyBaaGFvICA8amluZ3poYW9AY2hyb21pdW0ub3JnPgotCi0gICAgICAgIE9w
ZW5pbmcgdHdvIHBvcHVwIG1lbnVzIGJ5IGRpc3BhdGNoRXZlbnQoKSBtYWtlcyBwcm9ibGVtcy4K
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzA0Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
Omhhc09wZW5lZFBvcHVwKTogTm90IGltcGxlbWVudGVkLgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oOiBPdmVycmlkZXMgaGFzT3BlbmVkUG9wdXAoKS4KLQotMjAx
MS0xMi0xMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KLQotICAgICAgICBXZWJL
aXQgY29kZSBzaG91bGRuJ3QgYmUgY2FsbGluZyBhcHBseUNvbW1hbmQgZGlyZWN0bHkKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MzM3Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9yZXBsYWNlX3NlbGVjdGlvbik6
Ci0KLTIwMTEtMTItMTIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFtHVEtdIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZSBmb3IgcGx1Z2luIHdpZGdl
dHMgc2hvdWxkIGhhcHBlbiBpbiB0aGUgV2ViVmlldyBzaXplLWFsbG9jYXRlIG1ldGhvZAotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4MDUKLQotICAg
ICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgSW5zdGVh
ZCBvZiBpbW1lZGlhdGVseSBjYWxsaW5nIGd0a193aWRnZXRfc2l6ZSBkdXJpbmcgcGFpbnRpbmcs
IGRlZmVyCi0gICAgICAgIHRoaXMgdW50aWwgdGhlIHNpemUtYWxsb2NhdGUgbWV0aG9kIG9mIHRo
ZSBXZWJWaWV3LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpwYWludCk6IElmIGFueSBjaGlsZCB3
aWRnZXRzIGhhdmUgYSBwZW5kaW5nIGFsbG9jYXRpb24KLSAgICAgICAgY2FsbCBndGtfd2lkZ2V0
X3NpemVfYWxsb2NhdGUuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAg
ICAgICAodXBkYXRlQ2hpbGRBbGxvY2F0aW9uRnJvbVBlbmRpbmdBbGxvY2F0aW9uKTogQWRkZWQg
dGhpcyBoZWxwZXIuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2l6ZV9hbGxvY2F0ZSk6IENh
bGwgdGhlIGhlbHBlciBvbiBhbGwgY2hpbGQgd2lkZ2V0cy4KLQotMjAxMS0xMi0wOSAgSm9vbmUg
SHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBbR1RLXSBJbml0aWFs
IGltcGxlbWVudGF0aW9uIG9mIEFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIHVzaW5nIENsdXR0ZXIK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczMzE5Ci0K
LSAgICAgICAgVGhpcyBwYXRjaCBhbGxvd3MgdG8gYWRkIGEgR3RrQ2x1dHRlckVtYmVkIHRvIGVt
YmVkIENsdXR0ZXIgQWN0b3JzIGluIFdlYktpdFdlYlZpZXcgYW5kIAotICAgICAgICBzZXQgdGhl
IHJvb3QgR3JhcGhpY3NMYXllciB0byBXZWJLaXRXZWJWaWV3IHdoZW4gQWNjZWxlcmF0ZWQgQ29t
cG9zaXRpbmcgbmVlZHMgdG8gYmUgZW5hYmxlZC4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKTogU2V0IHRoZSByb290IEdyYXBo
aWNzTGF5ZXIgdG8gV2ViS2l0V2ViVmlldy4KLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6IEFsbG93IHRvIHN1cHBvcnQgQ1NTIDNEIFRy
YW5zZm9ybXMgb25seS4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRJbml0KTogQ2FsbCBndGtfY2x1dHRlcl9pbml0KCkuCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NpemVfYWxs
b2NhdGUpOiBTZXQgdGhlIHNpemUgb2YgR3RrQ2x1dHRlckVtYmVkIHdoZW4gdGhlIHZpZXcgaXMg
Y2hhbmdlZC4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KQotICAgICAgICAod2ViVmll
d1NldFJvb3RHcmFwaGljc0xheWVyKTogQWRkIHRoZSBHdGtDbHV0dGVyRW1iZWQgdG8gdGhlIFdl
YktpdFdlYlZpZXcgYXMgYSBjaGlsZC4KLSAgICAgICAgKHdlYlZpZXdEZXRhY2hSb290R3JhcGhp
Y3NMYXllcik6IFJlbW92ZSB0aGUgR3RrQ2x1dHRlckVtYmVkIGZyb20gdGhlIFdlYktpdFdlYlZp
ZXcuCi0gICAgICAgICh3ZWJWaWV3U3luY0xheWVycyk6IENvbW1pdCBsYXllciBjaGFuZ2VzLgot
ICAgICAgICAod2ViVmlld01hcmtGb3JTeW5jKTogU2V0IHRvIGNhbGwgd2ViVmlld1N5bmNMYXll
cnMgdXNpbmcgZ190aW1lb3V0X2FkZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld3By
aXZhdGUuaDoKLQotMjAxMS0xMi0wNyAgTWFyeSBXdSAgPG1hcnkud3VAdG9yY2htb2JpbGUuY29t
LmNuPgotCi0gICAgICAgIENoYW5nZSBmdW5jdGlvbiBuYW1lIEluaXRpYWxpemVMb2dnaW5nQ2hh
bm5lbHNJZk5lY2Vzc2FyeSB0byBmb2xsb3cgY29kaW5nIHN0eWxlIGd1aWRlbGluZQotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5ODYKLQotICAgICAg
ICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KLQotICAgICAgICAqIHdl
YmtpdC93ZWJraXRnbG9iYWxzLmNwcDoKLSAgICAgICAgKHdlYmtpdEluaXQpOgotCi0yMDExLTEy
LTA1ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAg
ICBbR1RLXSBNb3ZlIGVtaXNzaW9ucyBvZiBBdGtEb2N1bWVudCBzaWduYWxzIGRvd24gdG8gV2Vi
Q29yZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM3
NTAKLQotICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KLQotICAgICAgICBSZW1v
dmVkIGNvZGUgZm9yIGVtaXNzaW9uIG9mIEF0a0RvY3VtZW50IHNpZ25hbHMuCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6Om5vdGlmeVN0YXR1cyk6IFJlbW92ZWQgbm8gbG9uZ2VyIHVzZWQgY29kZS4KLQotMjAxMS0x
Mi0wNCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgW0d0a10gQ2hlY2sgZm9yIHRoZSBsb2FkLWNvbXBsZXRlIGV2ZW50IG9ubHkgaW4gdGhlIHVu
aXQgdGVzdHMuCi0KLSAgICAgICAgVGhlcmUgaXMgY3VycmVudGx5IGEga25vd24gaXNzdWUgaGFw
cGVuaW5nIGluIGRlYnVnIGJ1aWxkcyB3aGVuCi0gICAgICAgIHJlbG9hZGluZyB0aGUgd2Vidmll
dyBpZiBpdCB3YXMgbG9hZGVkIGJlZm9yZSB0aHJvdWdoIHRoZSBmdW5jdGlvbgotICAgICAgICB3
ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcsIHJlc3VsdGluZyBpbiBhIEFTU0VSVCBmYWlsaW5n
IChzZWUKLSAgICAgICAgYnVnIDUwMzMxKSBzbyB3ZSBjYW4ndCBjaGVjayBmb3IgdGhlIHJlbG9h
ZCBldmVudCBoZXJlLCBzaW5jZSBpdAotICAgICAgICBtYWtlcyB0aGUgdGVzdCB0byBmYWlsLiBG
b3J0dW5hdGVseSwgY2hlY2tpbmcgZm9yIGxvYWQtY29tcGxldGUKLSAgICAgICAgZXZlbnQgaXMg
YSBnb29kIGVub3VnaCB0ZXN0LCBzbyB0aGlzIHNtYWxsIHBhdGNoIGlzIGFib3V0IHRoYXQuCi0K
LSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4KLQotICAgICAgICAq
IHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKHRlc3RXZWJraXRBdGtEb2N1bWVudExvYWRpbmdF
dmVudHMpOiBEb24ndCBsb2FkIGFuZCB0aGVuIHJlbG9hZAotICAgICAgICB0byBjaGVjayBldmVu
dHMsIGp1c3QgbG9hZCBvbmNlIGFuZCBjaGVjayB3aGV0aGVyIHRoZQotICAgICAgICAnbG9hZC1j
b21wbGV0ZScgZXZlbnQgaGFzIGhhcHBlbmVkLgotCi0yMDExLTEyLTAzICBNYXJpbyBTYW5jaGV6
IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZW1vdmluZyBkb2N1bWVu
dCByZWxhdGVkIGV2ZW50cyBmcm9tIERSVAotCi0gICAgICAgIFtHVEtdIERvbid0IGxvZyBkb2N1
bWVudCBldmVudHMgaW4gRFJUCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03Mzc0NgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
LQotICAgICAgICBOZXcgdW5pdCB0ZXN0IHRvIGNoZWNrIGV2ZW50cyB3aGVuIHJlbG9hZGluZyBh
IGRvY3VtZW50LiBUaGlzCi0gICAgICAgIHJlcGxhY2VzIHRoZSBmb3JtZXIgZG9jdW1lbnQtcmVs
b2FkLWV2ZW50cy5odG1sIGxheW91dCB0ZXN0LgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5j
OgotICAgICAgICAodXBkYXRlTG9hZGluZ0V2ZW50c1Jlc3VsdCk6IE5ldywgdXBkYXRlcyBhIGds
b2JhbCB2YXJpYWJsZSB0bwotICAgICAgICBhbGxvdyBjaGVja2luZyBsYXRlciBvbiB0aGF0IHRo
ZSByaWdodCBzaWduYWxzIHdlcmUgZW1taXR0ZWQuCi0gICAgICAgIChkb2N1bWVudExvYWRpbmdF
dmVudENhbGxiYWNrKTogTmV3LCBnbG9iYWwgbGlzdGVuZXIgZm9yIGxvYWQtY29tcGxldGUKLSAg
ICAgICAgYW5kIHJlbG9hZCBzaWduYWxzIG92ZXIgdGhlIGRvY3VtZW50IG9iamVjdCAodGhlIHdl
YiBhcmVhKS4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtEb2N1bWVudExvYWRpbmdFdmVudHMpOiBO
ZXcgdW5pdCB0ZXN0LCBnbG9iYWxseQotICAgICAgICBjb25uZWN0cyB0byBkb2N1bWVudC1yZWxh
dGVkIHNpZ25hbHMgYW5kIGNoZWNrIHRoZXkgYXJlIHByb3Blcmx5Ci0gICAgICAgIGVtaXR0ZWQg
d2hlbiByZWxvYWRpbmcgdGhlIHdlYiB2aWV3LgotICAgICAgICAobWFpbik6IEFkZGVkIG5ldyB0
ZXN0LgotCi0yMDExLTEyLTAzICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAg
ICAgICBbR1RLXSBJbXBsZW1lbnQgSGlzdG9yeSBBUEkgRnJhbWVMb2FkZXJDbGllbnQgbWV0aG9k
cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkwMTcK
LQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAg
RmFrZSB0aGUgbG9hZCBwcm9jZXNzIHdoZW4gdGhlIG5ldyBIVE1MNSBIaXN0b3J5IEFQSXMgYXJl
Ci0gICAgICAgIHVzZWQuIE90aGVyd2lzZSB0aGUgVUEgZG9lcyBub3QgaGF2ZSBhIGNoYW5jZSBv
ZiB1cGRhdGluZyB0aGUgVVJMCi0gICAgICAgIGVudHJ5LCBiYWNrL2ZvcndhcmQgYnV0dG9ucywg
ZXRjLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWROYXZpZ2F0
ZVdpdGhpblBhZ2UpOiBmYWtlIGEKLSAgICAgICAgbG9hZCBwcm9jZXNzLgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKTog
Y2FsbAotICAgICAgICBkaXNwYXRjaERpZE5hdmlnYXRlV2l0aGluUGFnZS4KLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVwbGFjZVN0YXRlV2l0aGluUGFn
ZSk6Ci0gICAgICAgIGRpdHRvLgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRQb3BTdGF0ZVdpdGhpblBhZ2UpOiBkbwotICAgICAgICBub3RoaW5nLCBiZWNh
dXNlIHB1c2ggd2FzIGFscmVhZHkgY2FsbGVkLCBidXQgbm90ZSB0aGlzIGluIGEKLSAgICAgICAg
Y29tbWVudC4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5o
OiBhZGQgdGhlIG5ldyBtZXRob2QuCi0KLTIwMTEtMTItMDIgIFBoaWxpcHBlIE5vcm1hbmQgIDxw
bm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHU3RyZWFtZXJdIEZ1bGxzY3JlZW4gY29u
dHJvbGxlciBzdXBwb3J0IGZvciB0aGUgbmV3IFdlYktpdCBGdWxsc2NyZWVuIEFQSQotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY5NjgKLQotICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgSWYgdGhlIGVsZW1lbnQg
YmVpbmcgZnVsbHNjcmVlbmVkIGlzIGEgdmlkZW8gdXNlIHRoZSBuYXRpdmUKLSAgICAgICAgZnVs
bHNjcmVlbiBjb250cm9scy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KToKLQotMjAxMS0xMi0wMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gc2Nyb2xsYmFycyBpbnRlcmZlcmluZyB3aXRo
IGZ1bGxzY3JlZW4gKGluLXdpbmRvdykgdmlkZW8gcmVuZGVyaW5nCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU3NwotCi0gICAgICAgIFJldmlld2Vk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBEaXNhYmxlIHNjcm9sbGJhcnMgd2hlbiBz
d2l0Y2hpbmcgdG8gZnVsbHNjcmVlbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y29udGVudHNT
aXplQ2hhbmdlZCk6IElnbm9yZSBzaXplIGNoYW5nZXMKLSAgICAgICAgd2hlbiBhbiBlbGVtZW50
IGlzIGJlaW5nIGRpc3BsYXllZCBmdWxsc2NyZWVuLgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXNhYmxlCi0gICAgICAgIHNjcm9s
bGJhcnMgd2hlbiBlbnRlcmluZyBmdWxsc2NyZWVuLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0d0a0FkanVzdG1lbnRXYXRjaGVyLmNwcDogQWRkZWQgMiBtZXRob2RzIHRvCi0gICAgICAgIGVu
YWJsZS9kaXNhYmxlIHNjcm9sbGJhcnMgYW5kIG9uZSBtZXRob2QgdG8ga25vdyB3aGV0aGVyIHRo
ZXkgYXJlCi0gICAgICAgIGVuYWJsZWQgb3Igbm90LgotICAgICAgICAoV2ViS2l0OjpHdGtBZGp1
c3RtZW50V2F0Y2hlcjo6R3RrQWRqdXN0bWVudFdhdGNoZXIpOgotICAgICAgICAoV2ViS2l0Ojp1
cGRhdGVBZGp1c3RtZW50RnJvbVNjcm9sbGJhcik6Ci0gICAgICAgIChXZWJLaXQ6Okd0a0FkanVz
dG1lbnRXYXRjaGVyOjp1cGRhdGVBZGp1c3RtZW50c0Zyb21TY3JvbGxiYXJzKToKLSAgICAgICAg
KFdlYktpdDo6R3RrQWRqdXN0bWVudFdhdGNoZXI6OnVwZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9s
bGJhcnNMYXRlcik6Ci0gICAgICAgIChXZWJLaXQ6Okd0a0FkanVzdG1lbnRXYXRjaGVyOjpkaXNh
YmxlQWxsU2Nyb2xsYmFycyk6Ci0gICAgICAgIChXZWJLaXQ6Okd0a0FkanVzdG1lbnRXYXRjaGVy
OjplbmFibGVBbGxTY3JvbGxiYXJzKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HdGtBZGp1
c3RtZW50V2F0Y2hlci5oOgotICAgICAgICAoV2ViS2l0OjpHdGtBZGp1c3RtZW50V2F0Y2hlcjo6
c2Nyb2xsYmFyc0Rpc2FibGVkKToKLQotMjAxMS0xMS0yMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gZW5hYmxlLXdlYmF1ZGlvIHdlYnNl
dHRpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5
ODM2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDogTmV3IGVuYWJsZS13ZWJhdWRpbyBib29sZWFu
Ci0gICAgICAgIHNldHRpbmcsIHNldCB0byBGQUxTRSBieSBkZWZhdWx0LgotICAgICAgICAod2Vi
a2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGlu
Z3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3Bl
cnR5KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmg6IERpdHRv
LgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogVXBkYXRlIFdlYkNvcmUgc2V0
dGluZ3Mgd2hlbgotICAgICAgICBlbmFibGUtd2ViYXVkaW8gdmFsdWUgY2hhbmdlcy4KLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X3NldHRpbmdzX25vdGlmeSk6Ci0KLTIwMTEtMTEtMzAgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmVtb3ZlIGFuIHVubmVlZGVkIGFyZ3VtZW50
IGZyb20gRnJhbWVMb2FkZXJDbGllbnQ6OmRvd25sb2FkCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ4NgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFu
ZHJlYXMgS2xpbmcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9hZCk6
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLSAgICAg
ICAgVXBkYXRlZCBmb3IgdGhlIGNoYW5nZS4KLQotMjAxMS0xMS0zMCAgQWxlamFuZHJvIEcuIENh
c3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBBZGQgVGV4dHVyZU1hcHBl
ckNhaXJvIGJvaWxlcnBsYXRlIGltcGxlbWVudGF0aW9uCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQ0MAotCi0gICAgICAgIEFkZCB0ZXh0dXJlIG1h
cHBlciBnbHVlIHRvIHRoZSB3aWRnZXQgYW5kIGNocm9tZSBjbGllbnQuCi0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphdHRhY2hS
b290R3JhcGhpY3NMYXllcik6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0TmVl
ZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYyk6Ci0gICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudDo6YWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYlZpZXdTZXRSb290R3JhcGhpY3NM
YXllcik6Ci0gICAgICAgICh3ZWJWaWV3TWFya0ZvclN5bmMpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOgotCi0yMDExLTExLTMwICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBIVE1MNSBZb3V0dWJlIHZpZGVv
IGZ1bGxzY3JlZW4gYnV0dG9uIGRvZXNuJ3Qgd29yawotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM0NTYKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0
aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQpOiBJZ25vcmUKLSAgICAgICAgd2l0aEtleWJvYXJkIGFyZ3VtZW50IHZhbHVlLCBs
aWtlIENocm9tZSdzIGltcGxlbWVudGF0aW9uLgotCi0yMDExLTExLTI5ICBTZXJnaW8gVmlsbGFy
IFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFNJR1NFViB3aGVu
IGEgV2ViS2l0RG93bmxvYWQgZmFpbHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcyODgzCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6Lgot
Ci0gICAgICAgIEFmdGVyIHIxMDA3NjkgaHR0cCBzdGF0dXMgY29kZXMgPj0gNDAwIHRyaWdnZXIg
ZG93bmxvYWQKLSAgICAgICAgZmFpbHVyZXMuIFdlIG11c3QgZW5zdXJlIHRoYXQgdGhlIGRvd25s
b2FkIGlzIHByb3Blcmx5IGNhbmNlbGxlZAotICAgICAgICBiZWZvcmUgY2xlYXJpbmcgdGhlIFJl
c291cmNlSGFuZGxlIGNsaWVudCB0byBhdm9pZCBjcmFzaGVzLgotCi0gICAgICAgICogd2Via2l0
L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKERvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZl
UmVzcG9uc2UpOgotCi0yMDExLTExLTI5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBDdXN0b20gZm9udHMgb24gc3VybHliaWtlcy5jb20g
YW5kIGJvaW5nYm9pbmcubmV0IGRvIG5vdCBsb2FkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTExNQotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rh
dm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBJbnN0ZWFkIG9mIHByZXRlbmRpbmcgdG8gYmUg
U2FmYXJpL0xpbnV4LCBwcmV0ZW5kIHRvIGJlIGEgTGludXggQ2hyb21lLgotICAgICAgICBUaGlz
IGZpeGVzIHBhZ2VzIHRoYXQgYXNzdW1lIHRoYXQgaWYgYSBicm93c2VyIGlzIFNhZmFyaSwgYnV0
IG5vdCBPUyBYLCBpdCBpcwotICAgICAgICB0aGUgaU9TIHZlcnNpb24gb2YgU2FmYXJpLgotCi0g
ICAgICAgICogdGVzdHMvdGVzdHdlYnNldHRpbmdzLmM6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF93
ZWJfc2V0dGluZ3NfdXNlcl9hZ2VudCk6IFVwZGF0ZSB0aGUgdGVzdCB0byByZWZsZWN0IHRoYXQg
dGhlCi0gICAgICAgIHVzZXIgYWdlbnQgZG9lcyBub3QgY2hhbmdlLgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgIChjaHJvbWVVc2VyQWdlbnQpOiBSZW5h
bWVkIHRoaXMgZnJvbSB3ZWJraXRVc2VyQWdlbnQgdG8gbW9yZSBhY2N1cmF0ZWx5Ci0gICAgICAg
IGRlc2NyaWJlIHdoYXQgaXQgaXMuCi0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNz
X2luaXQpOiBKdXN0IHVzZSBhbiBlbXB0eSBzdHJpbmcgd2hlbiBpbml0aWFsaXppbmcKLSAgICAg
ICAgdGhlIHVzZXIgYWdlbnQgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uCi0gICAgICAgICh3
ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6IFVwZGF0ZWQgdG8gcmVmbGVjdCBuZXcg
bWV0aG9kIG5hbWUuCi0gICAgICAgICh1c2VyQWdlbnRGb3JVUkwpOiBXZSBkb24ndCBuZWVkIHRv
IHNwZWNpYWwgY2FzZSBHb29nbGUgQ2FsZW5kYXIgYW55IGxvbmdlci4KLQotMjAxMS0xMS0yOSAg
TWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0d0
a10gUmVncmVzc2lvbjogdGV4dC1pbnNlcnRlZCBldmVudHMgbGFjayB0ZXh0IGluc2VydGVkIGFu
ZCBjdXJyZW50IGxpbmUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcyODMwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCi0KLSAg
ICAgICAgVXBkYXRlZCB1bml0IHRlc3QgdG8gaGFuZGxlIHRoZSBuZXcgJ3RleHQtaW5zZXJ0JyBh
bmQKLSAgICAgICAgJ3RleHQtcmVtb3ZlJyBzaWduYWxzLCBpbnN0ZWFkIG9mIHRoZSAndGV4dC1j
aGFuZ2VkJyBvbmUuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXh0
Q2hhbmdlZENiKTogVXBkYXRlIGEgZ2xvYmFsIHZhcmlhYmxlIHdpdGggdGhlIHJlc3VsdCBvZiB0
aGUKLSAgICAgICAgdGV4dCBjaGFuZ2UsIHNvIHdlIGNhbiBjaGVjayBpdHMgdmFsdWUgbGF0ZXIu
Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrVGV4dENoYW5nZWROb3RpZmljYXRpb25zKTogQ29ubmVj
dCB0byB0aGUKLSAgICAgICAgJ3RleHQtaW5zZXJ0JyBhbmQgJ3RleHQtcmVtb3ZlJyBzaWduYWxz
IGFuZCBjaGVjaywgaW4gYSB3YXkgbW9yZQotICAgICAgICBjYXJlZnVsbHkgd2F5IHRoYW4gaXQg
d2FzIGRvbmUgYmVmb3JlLCB0aGF0IHRoZSBzaWduYWxzIGFyZSBiZWluZwotICAgICAgICBwcm9w
ZXJseSBlbWl0dGVkLCBhbmQgdGhhdCB0aGUgaW5mb3JtYXRpb24gYXR0YWNoZWQgdG8gdGhlbSBp
cyB0aGUKLSAgICAgICAgcmlnaHQgb25lIGZvciBlYWNoIGNhc2UgKGluc2VydC9yZW1vdmUsIG9m
ZnNldCwgY291bnQgYW5kIHRleHQpLgotCi0yMDExLTExLTI4ICBTdGVmYW4gWndhbmVuYnVyZyAg
PHN0ZWZhbmhldHp3YWFudGplQGdtYWlsLmNvbT4KLQotICAgICAgICBXZWJLaXRHVEsrLTEuNy4y
IGJ1aWxkIGVycm9yIGR1ZSB0byBhIHJlZmVyZW5jZSB0byBnZGtfZGlzYWJsZV9tdWx0aWRldmlj
ZSgpCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzIw
NgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIHRl
c3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKGluaXRpYWxpemVUZXN0aW5nRnJhbWV3b3JrKTogRG9u
J3QgdXNlIGdka19kaXNhYmxlX211bHRpZGV2aWNlKCkKLSAgICAgICAgd2hlbiB1c2luZyBHVEsy
LgotCi0yMDExLTExLTI2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KLQot
ICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgZGlzY29ubmVjdEZyb21CYWNrZW5kIGZyb20g
dGhlIHByb3RvY29sLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzMxMjcKLQotICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0b3JEZXN0cm95ZWQpOgotICAgICAgICAo
V2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OmNsb3NlSW5zcGVjdG9yRnJvbnRlbmQpOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotCi0yMDExLTExLTI2ICBT
aGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQotICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTAxMTkzLgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xMDExOTMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTczMTU4Ci0KLSAgICAgICAgQnJlYWtzIFdpbmRvd3MgYW5kIFF0IG1pbmlt
YWwuIChSZXF1ZXN0ZWQgYnkgcGZlbGRtYW4gb24KLSAgICAgICAgI3dlYmtpdCkuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JDbGllbnQ6Omluc3BlY3RvckRlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJL
aXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkaXNjb25uZWN0RnJvbUJhY2tlbmQpOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotCi0yMDExLTExLTI2
ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KLQotICAgICAgICBXZWIgSW5z
cGVjdG9yOiByZW1vdmUgZGlzY29ubmVjdEZyb21CYWNrZW5kIGZyb20gdGhlIHByb3RvY29sLgot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzMxMjcKLQot
ICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6SW5zcGVj
dG9yQ2xpZW50OjppbnNwZWN0b3JEZXN0cm95ZWQpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0
b3JDbGllbnQ6OmNsb3NlSW5zcGVjdG9yRnJvbnRlbmQpOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotCi0yMDExLTExLTE3ICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBJbnRlZ3JhdGUgYnVpbGQt
Z3RrZG9jIGludG8gYnVpbGQtd2Via2l0IGFuZCBtYWtlCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjYyNgotCi0gICAgICAgIFJldmlld2VkIGJ5IFBo
aWxpcHBlIE5vcm1hbmQuCi0KLSAgICAgICAgKiBkb2NzL0dOVW1ha2VmaWxlLmFtOiBSZW1vdmVk
LgotICAgICAgICAqIGRvY3MvdmVyc2lvbi54bWwuaW46IFJlbW92ZWQuCi0KLTIwMTEtMTEtMjMg
IEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+Ci0KLSAgICAgICAg
RG9jdW1lbnRhdGlvbiBmaXggZm9yIGxvYWQtY29tbWl0dGVkIGluIHdlYmtpdHdlYmZyYW1lCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjkyNwotCi0g
ICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQp
OgotCi0yMDExLTExLTIyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KLQot
ICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgSW5zcGVjdG9yOjpicmluZ1RvRnJvbnQgZnJv
bSB0aGUgcHJvdG9jb2wuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MjkzNwotCi0gICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OmJyaW5nRnJvbnRlbmRUb0Zyb250KToKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLQotMjAxMS0xMS0yMiAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+Ci0KLSAgICAgICAgV2ViIEluc3Bl
Y3Rvcjogc3RyaXAgdW51c2VkIEluc3BlY3RvckNvbnRyb2xsZXIgbWV0aG9kcy4KLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyODg2Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJpbnNwZWN0b3IuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3Jfc2V0X3Byb3Bl
cnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF9wcm9wZXJ0eSk6Ci0KLTIw
MTEtMTEtMjEgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAg
W0dUS10gRW5hYmxlIFdlYlNvY2tldCBoeWJpIHRlc3RzCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjg3MAotCi0gICAgICAgIFJldmlld2VkIGJ5IFhh
biBMb3Blei4KLQotICAgICAgICBDaGFuZ2UgdGhlIHNldHRpbmdzIHZhbHVlIHRocm91Z2ggRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLCBiZWNhdXNlIHdlIGRvIG5vdAotICAgICAgICB3YW50IHRv
IGV4cG9zZSB0aGlzIGFzIGEgcHVibGljIEFQSS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQpOgotICAgICAgICBD
aGFuZ2UgdGhlIHZhbHVlIG9mIGEgZmxhZyBpbiBXZWJDb3JlOjpTZXR0aW5ncy4KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLQotMjAxMS0xMS0y
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
W0dUS10gVXBkYXRlIE5FV1MgYW5kIGNvbmZpZ3VyZS5hYyBmb3IgMS43LjIgcmVsZWFzZQotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI4NjgKLQotICAg
ICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgKiBORVdTOiBBZGRlZCByZWxl
YXNlIG5vdGVzIGZvciAxLjcuMi4KLQotMjAxMS0xMC0xNyAgQW50b25pbyBHb21lcyAgPGFnb21l
c0ByaW0uY29tPgotCi0gICAgICAgIFBhc3MgYSBGcmFtZSogcGFyYW1ldGVyIGluIEVkaXRvckNs
aWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbgotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyNDgKLQotICAgICAgICBSZXZpZXdlZCBieSBSeW9z
dWtlIE5pd2EuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3Bw
OiBNYWtlIHVzZSBvZiB0aGUgbmV3bHkgYWRkZWQgRnJhbWUqIHBhcmFtZXRlci4KLSAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKToKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLQotMjAxMS0xMS0xOCAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUkVHUkVTU0lP
TiAocjk5OTI0KTogYnJva2UgMiBwYXN0ZWJvYXJkIHRlc3RzIG9uIEdUSwotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIxMzEKLQotICAgICAgICBSZXZp
ZXdlZCBieSBUb255IENoYW5nLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6c2V0U2VsZWN0aW9uUHJpbWFyeUNsaXBib2Fy
ZElmTmVlZGVkKTogVXNlIHRoZSBuZXcgY2xlYXJBbGwgbWV0aG9kLgotCi0yMDExLTExLTE4ICBN
YXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RL
XSBBY2Nlc3NpYmlsaXR5IEFQSSB0ZXN0cyBub3QgbG9hZGluZyBHdGsncyBhY2Nlc3NpYmlsaXR5
IGltcGxlbWVudGF0aW9uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MjczMgotCi0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxpcHBlIE5vcm1hbmQuCi0K
LSAgICAgICAgRW5zdXJlIHRoYXQgdGhlIEdBSUwgbW9kdWxlIGlzIGJlaW5nIGxvYWRlZCBieSBh
dm9pZGluZyB1c2luZwotICAgICAgICBndGtfdGVzdF9pbml0KCkgZGlyZWN0bHksIGJ1dCBhIG1v
ZGlmaWVkIHZlcnNpb24gb2YgaXQuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAg
ICAgICh0ZXN0V2Via2l0QXRrUGFyZW50Rm9yUm9vdE9iamVjdCk6IFVzZSBhIG5vcm1hbCBHdGtX
aWRnZXQgKGEKLSAgICAgICAgR3RrV2luZG93KSBhcyB0aGUgcGFyZW50IGNvbnRhaW5lciBmb3Ig
dGhlIHdlYlZpZXcsIGluc3RlYWQgb2YKLSAgICAgICAgdXNpbmcgYSBkdW1teSB3ZWJWaWV3IGZv
ciB0aGF0LCB3aGljaCB3YXMgaGFja2lzaC4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtTZXRQYXJl
bnRGb3JPYmplY3QpOiBVc2Ugbm9ybWFsIEd0a1dpZGdldHMgaW5zdGVhZAotICAgICAgICBvZiBk
dW1teSB3ZWJWaWV3cyAoYSBHdGtXaW5kb3cgYW5kIGEgR3RrQnV0dG9uKS4KLSAgICAgICAgKGlu
aXRpYWxpemVUZXN0aW5nRnJhbWV3b3JrKTogTmV3IGZ1bmN0aW9uLCBpZGVudGljYWwgdG8KLSAg
ICAgICAgZ3RrX3Rlc3RfaW5pdCgpLCBidXQgbG9hZGluZyBHQUlMIGFzIHRoZSBvbmx5IEdUSyBt
b2R1bGUuCi0gICAgICAgIChtYWluKTogVXNlIGluaXRpYWxpemVUZXN0aW5nRnJhbWV3b3JrKCku
Ci0KLTIwMTEtMTEtMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFtHVEtdIERvd25sb2FkcyBub3Qgc3RhcnRlZCBieSBXZWJWaWV3IG9ubHkg
ZmFpbCBmb3IgdHJhbnNwb3J0IGVycm9ycwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzI3MTgKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9i
aW5zb24uCi0KLSAgICAgICAgQWJvcnQgdGhlIGRvd25sb2FkIHdpdGggYW4gZXJyb3IgaWYgdGhl
IHJlc3BvbnNlIGNvbnRhaW5zIGFuCi0gICAgICAgIGVycm9yIGNvZGUuIEl0IGFkZHMgYSBuZXcg
dGVzdCBjYXNlIHRvIHRoZSBkb3dubG9hZCB1bml0IHRlc3RzLgotCi0gICAgICAgICogdGVzdHMv
dGVzdGRvd25sb2FkLmM6Ci0gICAgICAgIChub3RpZnlEb3dubG9hZFN0YXR1c0NhbGxiYWNrKToK
LSAgICAgICAgKHNlcnZlckNhbGxiYWNrKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X2Rvd25sb2Fk
X25vdF9mb3VuZCk6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93
bmxvYWQuY3BwOgotICAgICAgICAoRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6
IENoZWNrIHdoZXRoZXIgaHR0cCBzdGF0dXMgb2YKLSAgICAgICAgdGhlIHJlc3BvbnNlIGlzIGFu
IGVycm9yIGNvZGUgYW5kIGVtaXQgZXJyb3Igc2lnbmFsIGluIHN1Y2ggY2FzZS4KLQotMjAxMS0x
MS0xOCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgW0dUS10gQWNjZXNzaWJpbGl0eSBBUEkgdGVzdHMgZmFpbGluZyBiZWNhdXNlIG9mIHVzaW5n
IG5vbi1XZWJLaXQgR3RrV2lkZ2V0cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzI3MDgKLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0K
LSAgICAgICAgRG8gbm90IHVzZSBub24tV2ViS2l0IEd0a1dpZGdldCdzIGluIHVuaXQgdGVzdHMs
IHRvIGF2b2lkIHByb2JsZW1zCi0gICAgICAgIHdoZW4gR1RLJ3MgYWNjZXNzaWJpbGl0eSBpbXBs
ZW1lbnRhdGlvbiBpcyBub3QgYmVpbmcgbG9hZGVkLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0
ay5jOgotICAgICAgICAodGVzdFdlYmtpdEF0a1BhcmVudEZvclJvb3RPYmplY3QpOiBVc2UgYSBk
dW1teSBXZWJLaXRXZWJWaWV3Ci0gICAgICAgIHdpZGdldCBhcyB0aGUgcGFyZW50IGNvbnRhaW5l
ciBuZWVkZWQgZm9yIHRoaXMgdW5pdCB0ZXN0LgotICAgICAgICAodGVzdFdlYmtpdEF0a1NldFBh
cmVudEZvck9iamVjdCk6IERpdHRvLgotCi0yMDExLTExLTE3ICBNYXJ0aW4gUm9iaW5zb24gIDxt
cm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBSZW1vdmUgdGhlIGxhc3QgcmVt
YWluaW5nIFdlYktpdDEgZ3RrZG9jIHdhcm5pbmdzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjYyNwotCi0gICAgICAgIFJldmlld2VkIGJ5IFBoaWxp
cHBlIE5vcm1hbmQuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuaDogQWRkIG1p
c3NpbmcgZW51bSBkb2N1bWVudGF0aW9uLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRlcnJvci5o
OiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOiBEaXR0by4KLQotMjAx
MS0xMS0xNyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgW0d0a10gRW5zdXJlIHRoZSBwYXJlbnQgZm9yIHRoZSB3ZWJWaWV3J3MgYTExeSBvYmpl
Y3QgaXMgc2V0LgotCi0gICAgICAgIFRoaXMgc2hvdWxkIGZpeCBzb21lIGFjY2Vzc2liaWxpdHkg
cmVsYXRlZCBHVEsgQVBJIHRlc3RzLgotCi0gICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IFBoaWxp
cHBlIE5vcm1hbmQuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2FjY2Vzc2libGUpOiBBbHdheXMgc2V0IHRoZSBwYXJl
bnQgdG8gbWFrZQotICAgICAgICBuYXZpZ2F0aW9uIGFjcm9zcyBHVEsgYW5kIFdlYktpdCB3b3Js
ZHMgd29yayBwcm9wZXJseS4KLQotMjAxMS0xMS0xNyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1z
YW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gQ29uc2lkZXIgcGFyZW50IEF0a09i
amVjdCBpbiB3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcGFyZW50KCksIGlmIGFscmVhZHkgc2V0Ci0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjUyNQotCi0g
ICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsu
YzoKLSAgICAgICAgKHRlc3RXZWJraXRBdGtTZXRQYXJlbnRGb3JPYmplY3QpOiBOZXcgdW5pdCB0
ZXN0IHRvIGNoZWNrIHRoYXQKLSAgICAgICAgY2FsbHMgdG8gYXRrX29iamVjdF9nZXRfcGFyZW50
KCkgb3ZlciBhIFdlYktpdEdUSydzIGFjY2Vzc2liaWxpdHkKLSAgICAgICAgd3JhcHBlciBvYmpl
Y3QgcmV0dXJucyBpdHMgcGFyZW50IEF0a09iamVjdCBpZiBwcmV2aW91c2x5IHNldC4KLSAgICAg
ICAgKG1haW4pOiBBZGRlZCBuZXcgdGVzdC4KLQotMjAxMS0xMS0xNyAgTWFyaW8gU2FuY2hleiBQ
cmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gQVRLIEFQSSB0ZXN0
cyBmYWlsaW5nIGJlY2F1c2Ugb2YgcGF0Y2ggZm9yIGJ1ZyA3MjM5MAotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1OTIKLQotICAgICAgICBSZXZpZXdl
ZCBieSBQaGlsaXBwZSBOb3JtYW5kLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgotICAg
ICAgICAodGVzdFdlYmtpdEF0a1BhcmVudEZvclJvb3RPYmplY3QpOiBSZW1vdmUgdGhlIG9mZmVu
ZGluZyBsaW5lIGluCi0gICAgICAgIHRoZSB1bml0IHRlc3QsIHdoaWNoIGlzIG5vdCBhY3R1YWxs
eSByZXF1aXJlZCB0byB0ZXN0IHRoZSBuZXcKLSAgICAgICAgZnVuY3Rpb25hbGl0eSBhbmQgY2F1
c2VzIHByb2JsZW1zIGluIHNvbWUgc2NlbmFyaW9zLCBkdWUgdG8gdGhlCi0gICAgICAgIGxhenkg
Y3JlYXRpb24gbWVjaGFuaXNtIG9mIEF0a09iamVjdHMuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0
YXRrcm9sZXMuYzoKLSAgICAgICAgKGZpbmlzaF9sb2FkaW5nKTogUmVmbGVjdCB0aGF0IHRoZSBk
b2N1bWVudCBmcmFtZSBvYmplY3QgaXMgbm8KLSAgICAgICAgbG9uZ2VyIHRoZSByb290IGFjY2Vz
c2liaWxpdHkgb2JqZWN0IChhIHNjcm9sbCBwYW5lIGZyb20gbm93IG9uKSwKLSAgICAgICAgYnV0
IHRoZSBvbmx5IGNoaWxkIG9mIHRoYXQgb25lLiBUaHVzLCBza2lwIHRoYXQgcm9vdCBvYmplY3Qu
Ci0KLTIwMTEtMTEtMTYgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFtHVEtdIERvIG5vdCBoaWRlIGFjY2Vzc2liaWxpdHkgcm9vdCBvYmplY3Qg
ZnJvbSBBVCdzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MjM5MAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAg
ICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKGdldFdlYkFyZWFPYmplY3QpOiBOZXcgaGVs
cGVyIGZ1bmN0aW9uLCB0byBieXBhc3MgdGhlIG5ldyByb290Ci0gICAgICAgIG9iamVjdCBpbiB0
aGUgYWNjZXNzaWJpbGl0eSBoaWVyYXJjaHksIHNpbmNlIGl0J3Mgbm90IHVzdWFsbHkKLSAgICAg
ICAgbmVlZGVkIGZvciB0aGUgdW5pdCB0ZXN0cy4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtDYXJl
dE9mZnNldHMpOiBVc2UgZ2V0V2ViQXJlYU9iamVjdCgpLgotICAgICAgICAodGVzdFdlYmtpdEF0
a0NhcmV0T2Zmc2V0c0FuZEV4dHJhbm91c1doaXRlU3BhY2VzKTogRGl0dG8uCi0gICAgICAgICh0
ZXN0V2Via2l0QXRrQ29tYm9Cb3gpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtFbWJl
ZGRlZE9iamVjdHMpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZz
ZXRGb3Jtcyk6IERpdHRvLgotICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldCk6
IERpdHRvLgotICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldE5ld2xpbmVzKTog
RGl0dG8uCi0gICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0VGV4dGFyZWEpOiBE
aXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRUZXh0SW5wdXQpOiBE
aXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXRXaXRoU3BlY2lhbENo
YXJhY3RlcnMpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3Jh
cGhBbmRCb2R5U2ltcGxlKTogRGl0dG8uCi0gICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dElu
UGFyYWdyYXBoQW5kQm9keU1vZGVyYXRlKTogRGl0dG8uCi0gICAgICAgICh0ZXN0V2Via2l0QXRr
R2V0VGV4dEluVGFibGUpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRIZWFkZXJz
SW5UYWJsZSk6IERpdHRvLgotICAgICAgICAodGVzdFdlYmtpdEF0a1RleHRBdHRyaWJ1dGVzKTog
RGl0dG8uCi0gICAgICAgICh0ZXN0V2Via2l0QXRrVGV4dFNlbGVjdGlvbnMpOiBEaXR0by4KLSAg
ICAgICAgKHRlc3RXZWJraXRBdGtHZXRFeHRlbnRzKTogRGl0dG8uCi0gICAgICAgICh0ZXN0V2Vi
a2l0QXRrTGF5b3V0QW5kRGF0YVRhYmxlcyk6IERpdHRvLgotICAgICAgICAodGVzdFdlYmtpdEF0
a0xpbmtzV2l0aElubGluZUltYWdlcyk6IERpdHRvLgotICAgICAgICAodGVzdFdlYmtpdEF0a0h5
cGVydGV4dEFuZEh5cGVybGlua3MpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtMaXN0
c09mSXRlbXMpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtUZXh0Q2hhbmdlZE5vdGlm
aWNhdGlvbnMpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtQYXJlbnRGb3JSb290T2Jq
ZWN0KTogTmV3IHRlc3QsIHRvIG1ha2Ugc3VyZSB0aGF0Ci0gICAgICAgIGJvdGggdG9wLWRvd24g
YW5kIGJvdHRvbS11cCBuYXZpZ2F0aW9uIGFtb25nIEdUSyBhbmQgV2ViS2l0IHdvcmxkcwotICAg
ICAgICBtYXRjaGVzIGFjY29yZGluZ2x5LgotICAgICAgICAobWFpbik6IEFkZGVkIG5ldyB0ZXN0
LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl92aWV3X2dldF9hY2Nlc3NpYmxlKTogUmVtb3ZlIHRoZSBoYWNrIGludHJvZHVjZWQKLSAg
ICAgICAgYmVjYXVzZSBvZiBidWcgNTE5MzIsIHRvIGJ5cGFzcyB0aGUgcm9vdCBvYmplY3QgaGVy
ZS4KLQotMjAxMS0xMS0xNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgot
Ci0gICAgICAgIEhvc3RXaW5kb3cgc2NyZWVuVG9XaW5kb3cvd2luZG93VG9TY3JlZW4gc2hvdWxk
IGJlIHNjcmVlblRvUm9vdFZpZXcvcm9vdFZpZXdUb1NjcmVlbgotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzOTcKLQotICAgICAgICBSZXZpZXdlZCBi
eSBEYW4gQmVybnN0ZWluLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpyb290Vmlld1RvU2NyZWVu
KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JlZW5Ub1Jvb3RWaWV3KToKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAxMS0xMS0xNCAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgotCi0gICAgICAgIEhvc3RXaW5k
b3cgaW52YWxpZGF0aW9uIGZ1bmN0aW9ucyBzaG91bGQgdXNlIHJvb3QgdmlldyBjb29yZGluYXRl
cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzMzgK
LQotICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjppbnZhbGlkYXRlUm9vdFZpZXcpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAxMS0xMS0xNSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gSW1wbGVtZW50
IGRvd25sb2FkIHN1cHBvcnQgaW4gV2ViS2l0MgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIyNTgKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgVXNlIGVycm9ycyBmcm9tIFdlYkNvcmUgdG8gZW1pdCB0aGUg
ZXJyb3Igc2lnbmFscy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0g
ICAgICAgICh3ZWJraXREb3dubG9hZEVtaXRFcnJvcik6IEhlbHBlciBmdW5jdGlvbiB0aGF0IGVt
aXRzIHRoZSBlcnJvcgotICAgICAgICBzaWduYWwgZm9yIHRoZSBnaXZlbiBSZXNvdXJjZUVycm9y
LgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX29wZW5fc3RyZWFtX2Zvcl91cmkpOiBVc2Ugd2Vi
a2l0RG93bmxvYWRFbWl0RXJyb3IoKS4KLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9jYW5jZWwp
OiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9zZXRfZGVzdGluYXRpb25fdXJpKTog
RGl0dG8uCi0gICAgICAgICh3ZWJraXRfZG93bmxvYWRfcmVjZWl2ZWRfZGF0YSk6IERpdHRvLgot
ICAgICAgICAod2Via2l0X2Rvd25sb2FkX2Vycm9yKTogRGl0dG8uCi0KLTIwMTEtMTEtMTQgIFJ5
dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgotCi0gICAgICAgIFtHVEtdIFBvc3Np
YmxlIGNyYXNoIHdoZW4gZGVzdHJveWluZyBhZnRlciBjYWxsZWQgd2lkZ2V0U2l6ZUNoYW5nZWQu
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjIzNwot
Ci0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBDcmFzaCBj
YW4gb2NjdXIgd2hlbiBDaHJvbWVjbGllbnRHdGsgaXMgcmVtb3ZlZCBiZWZvcmUgY2FsbGluZyBy
ZXBhaW50RXZlcnl0aGluZ1Nvb25UaW1lb3V0Ci0gICAgICAgIHJlZ2lzdGVyZWQgYnkgd2lkZ2V0
U2l6ZUNoYW5nZWQuCi0gICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlIHRoZSBtX3JlcGFpbnRTb29u
U291cmNlSWQgZ2xpYiBzb3VyY2UgYmVmb3JlIGRlc3RydWN0aW9uCi0gICAgICAgIG9mIHRoZSBD
aHJvbWVDbGllbnRHdGsgdG8gcHJldmVudCB0aGUgYWJvdmUgY3Jhc2guCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnQ6OmNocm9tZURlc3Ryb3llZCk6Ci0KLTIwMTEtMTEtMDkgIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdW0RSVF0gd2luZG93IGlu
dGVybmFscyBvYmplY3QgaXMgbm90IHJlc2V0IGFmdGVyIGVhY2ggdGVzdAotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE4OTAKLQotICAgICAgICBSZXZp
ZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOiBSZW1vdmUgcHJvYmxlbWF0aWMKLSAgICAgICAgY2Fs
bHMgdG8gV2ViQ29yZVN1cHBvcnQgd2hpY2ggYmVsb25ncyB0byBsaWJXZWJDb3JlSW50ZXJuYWxz
LCBub3QgbGlid2Via2l0Z3RrLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oOgotCi0yMDExLTExLTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXVtEUlRdIHdpbmRvdyBpbnRlcm5hbHMgb2Jq
ZWN0IGlzIG5vdCByZXNldCBhZnRlciBlYWNoIHRlc3QKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxODkwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFu
IExvcGV6LgotCi0gICAgICAgIERSVFN1cHBvcnQgaW5mcmFzdHJ1Y3R1cmUgdG8gcmVzZXQgdGhl
IEludGVybmFscyBvYmplY3QsIGxpa2UgaW4gUXQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpyZXNldEludGVybmFsc09iamVjdCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTEtMTEtMDcgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBNb3ZlIHN0YXRpYyAicG9saWN5IiBzdGF0
ZSBmcm9tIFNlY3VyaXR5T3JpZ2luLmNwcCB0byBTZWN1cml0eVBvbGljeS5jcHAKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzU1Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzKToKLQotMjAxMS0xMS0wOCAg
WmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgotCi0gICAgICAgIFtXS11bR1RL
XSBBcHBsaWNhdGlvbiBjYWNoZSBkaXJlY3RvcnkgaXMgaW5jb3JyZWN0bHkgc2V0Ci0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTc2OQotCi0gICAgICAg
IFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBTZXQgdGhlIGFwcGxpY2F0
aW9uIGNhY2hlIGRpcmVjdG9yeSB0byBiZSBwbGFjZWQgaW4gY3VycmVudCB1c2VyJ3MKLSAgICAg
ICAgY2FjaGUgZGlyZWN0b3J5IGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IKLSAgICAgICAg
d2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dldF9kYXRhYmFzZV9kaXJlY3RvcnlfcGF0aCBhZnRl
ciB0aGVzZQotICAgICAgICBjaGFuZ2VzIGFuZCBjaGFuZ2VzIGluIHI4MDcxNTsKLQotICAgICAg
ICAqIHdlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0Z2xvYmFscy5jcHA6Ci0gICAgICAgICh3ZWJraXRJbml0KTogU3dpdGNoIG9uZSBzdHJp
bmcgZm9ybWF0aW9uIHRvIHVzZSBHT3duUHRyPGdjaGFyPi4KLQotMjAxMS0xMS0wMyAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgQ2hhbmdlIHJlbWFpbmluZyBjYWxs
ZXJzIG9mIHJlbGVhc2VSZWYgdG8gY2FsbCBsZWFrUmVmCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTQyMgotCi0gICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEZpc2hlci4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6a2l0TmV3KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlz
dG9yeWl0ZW0uY3BwOgotICAgICAgICAod2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3KToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2RhdGEpOgotICAgICAgICAo
d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fY29weSk6Ci0gICAgICAgIChXZWJLaXQ6OmtpdCk6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfcmVzb3VyY2VfbmV3X3dpdGhfY29yZV9yZXNvdXJjZSk6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3Jlc291cmNlX2luaXRfd2l0aF9jb3JlX3Jlc291cmNlKToKLSAgICAgICAgVXNlIGxlYWtSZWYu
Ci0KLTIwMTEtMTEtMDIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgotCi0gICAgICAg
IENoYW5nZSByZW1haW5pbmcgY2FsbGVycyBvZiByZWxlYXNlUmVmIHRvIGNhbGwgbGVha1JlZgot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0MjIKLQot
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZGF0YXNvdXJjZS5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmtpdE5ldyk6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX25ldyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdf
d2l0aF9kYXRhKToKLSAgICAgICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2NvcHkpOgotICAg
ICAgICAoV2ViS2l0OjpraXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Jlc291cmNlX25ld193aXRoX2NvcmVfcmVzb3VyY2Up
OgotICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9pbml0X3dpdGhfY29yZV9yZXNvdXJjZSk6
Ci0gICAgICAgIFVzZSBsZWFrUmVmLgotCi0yMDExLTExLTAzICBGYWR5IFNhbXVlbCAgPGZzYW11
ZWxAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJlbW92aW5nIGxpbmUgaW4gY29tcHV0ZVZpZXdw
b3J0QXR0cmlidXRlcyB0aGF0IGVuZm9yY2VzIGEgbWluaW11bSBzY2FsZSBmYWN0b3IgdG8gbmV2
ZXIgYWxsb3cgem9vbWluZyBvdXQgbW9yZSB0aGFuIHZpZXdwb3J0Ci0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYwOQotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCk6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHA6Ci0gICAgICAgICh3ZWJraXRWaWV3cG9y
dEF0dHJpYnV0ZXNSZWNvbXB1dGUpOgotCi0yMDExLTExLTAyICBKb24gTGVlICA8am9ubGVlQGFw
cGxlLmNvbT4KLQotICAgICAgICBFeHBhbmQgRHJhZ0NvbnRyb2xsZXIgdG8gcHJvdmlkZSBtb3Jl
IGluZm9ybWF0aW9uIGFib3V0IHRoZSBkcmFnZ2luZyBzZXNzaW9uCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTMyNAotICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTAzNzkxNzU+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZHJhZ19tb3Rpb24pOiBNaW5vciByZWZhY3RvcmluZy4KLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19kcmFnX2RhdGFfcmVjZWl2ZWQpOiBNaW5vciByZWZhY3RvcmluZy4KLQotMjAxMS0xMS0w
MiAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KLQotICAgICAgICBYU1NBdWRpdG9y
IGlzIHNpbGVudAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzA5NzMKLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgotCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlkRGV0ZWN0WFNTKToKLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotCi0yMDExLTExLTAyICBaYW4gRG9iZXJzZWsg
IDx6YW5kb2JlcnNla0BnbWFpbC5jb20+Ci0KLSAgICAgICAgW0dUS10gVmlzaXRlZCBsaW5rcyBv
ZiBhIHBhZ2UgZ3JvdXAgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBjbGVhcmluZyBiYWNrL2Zvcndh
cmQgbGlzdAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzEwNTIKLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAg
V2hlbiBjbGVhcmluZyBiYWNrLWZvcndhcmQgbGlzdCwgYWxzbyByZW1vdmUgdGhlIHZpc2l0ZWQg
bGlua3MgZnJvbSBwYWdlJ3MgcGFnZSBncm91cC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9iYWNrX2ZvcndhcmRf
bGlzdF9jbGVhcik6Ci0KLTIwMTEtMTAtMzEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEluc3RhbGwgaHRtbCBhbmQgdG1wbCBkaXJz
IGluIGEgJChET0NfTU9EVUxFKSBkaXIgaW4gdGFyYmFsbAotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMjQKLQotICAgICAgICBSZXZpZXdlZCBieSBN
YXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5ndGstZG9jLmFtOiBDb3B5
IGh0bWwgYW5kIHRtcGwgZGlycyB0bwotICAgICAgICAkKGRpc3RkaXIpLyQoRE9DX01PRFVMRSku
Ci0KLTIwMTEtMTAtMjkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFtHVEtdIFN3aXRjaCB0byBhIGJhY2tpbmcgc3RvcmUgYXBwcm9hY2ggZm9yIHBh
aW50aW5nIFdlYktpdFdlYlZpZXcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcwMjEzCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhLgotCi0gICAgICAgIFBhaW50IHRoZSBXZWJWaWV3IGludG8gYSBiYWNraW5nIHN0b3Jl
LiBUaGlzIHByZXZlbnRzIGV4cG9zZSBldmVudHMgZnJvbQotICAgICAgICB0cmlnZ2VyaW5nIGEg
bGF5b3V0LCBtYWtpbmcgc2Nyb2xsaW5nIGFuZCByZXNpemluZyBtdWNoIHNtb290aGVyLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpDaHJvbWVDbGllbnQpOiBJbml0aWFsaXplIG5ldyBtZW1iZXJz
LgotICAgICAgICAoV2ViS2l0OjpyZXBhaW50RXZlcnl0aGluZ1Nvb25UaW1lb3V0KTogQWRkZWQg
dGhpcyBoZWxwZXIgd2hpY2ggcmVwYWludHMKLSAgICAgICAgdGhlIFdlYlZpZXcgbW9yZSBxdWlj
a2x5IGR1cmluZyByZXNpemUgZXZlbnRzLgotICAgICAgICAoV2ViS2l0OjpjbGlwT3V0T2xkV2lk
Z2V0QXJlYSk6IENsaXBzIG91dCB0aGUgb2xkIHdpZGdldCBhcmVhLCBzbyB0aGF0IHdlCi0gICAg
ICAgIGNhbiBjbGVhciBvdXQgaW52YWxpZCBwaXhlbHMgd2hlbiBncm93aW5nIHRoZSB3aWRnZXQg
aW50byBhIHByZS1leGlzdGluZwotICAgICAgICBiYWNraW5nIHN0b3JlLgotICAgICAgICAoV2Vi
S2l0OjpjbGVhckV2ZXJ5d2hlcmVJbkJhY2tpbmdTdG9yZSk6IENsZWFyIG91dCB0aGUgZW50aXJl
IGJhY2tpbmcgc3RvcmUuCi0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6d2lkZ2V0U2l6
ZUNoYW5nZWQpOiBIYW5kbGUgd2lkZ2V0IHNpemUgY2hhbmdlcyBieQotICAgICAgICBpbnRlbGxp
Z2VudGx5IHJlc2l6aW5nIG9yIHJldXNpbmcgdGhlIGV4aXN0aW5nIGJhY2tpbmcgc3RvcmUuCi0g
ICAgICAgIChXZWJLaXQ6OmNvYWxlc2NlUmVjdHNJZlBvc3NpYmxlKTogTW92ZWQgdGhpcyBtZXRo
b2QgZnJvbSB3ZWJraXR3ZWJ2aWV3LmNwcC4KLSAgICAgICAgKFdlYktpdDo6cGFpbnRXZWJWaWV3
KTogTW92ZWQgdGhpcyBtZXRob2QgZnJvbSB3ZWJraXR3ZWJ2aWV3LmNwcC4KLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpwZXJmb3JtQWxsUGVuZGluZ1Njcm9sbHMpOiBJZiB0aGVyZSBh
cmUgYW55IHBlbmRpbmcKLSAgICAgICAgc2Nyb2xsaW5nIG9wZXJhdGlvbnMsIHBlcmZvcm0gdGhl
bSBieSBzY3JvbGxpbmcgdGhlIGJhY2tpbmcgc3RvcmUuCi0gICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6cGFpbnQpOiBBZGRlZCB0aGlzIHRpbWVyIGNhbGxiYWNrLCB3aGljaCBwYWludHMg
dGhlCi0gICAgICAgIFdlYlZpZXcgYWZ0ZXIgYSBzaG9ydCB0aW1lb3V0LgotICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVXaW5kb3cpOiBObyBuZWVkIHRvIGRvIGFueXRo
aW5nIGhlcmUgYW55IGxvbmdlci4KLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZh
bGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOiBOb3cgdW5pdGUgdGhlIHJlY3Qgd2l0aAotICAgICAg
ICB0aGUgZXhpc3RpbmcgZGlydHkgcmVnaW9uIGFuZCBxdWV1ZSB0aGUgcGFpbnQgdGltZW91dC4K
LSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGwpOiBOb3cganVzdCBxdWV1ZSBh
IHNjcm9sbCBldmVudCBpbiB0aGUgcmVwYWludCB0aW1lb3V0LgotICAgICAgICBJbnRlbGxpZ2Vu
dGx5IGNhbGN1bGF0ZSB0aGUgYXJlYSB0byBtb3ZlIGFuZCB0aGUgZGlydHkgYXJlYSB1c2luZyBj
b2RlIGRlcml2ZWQKLSAgICAgICAgZnJvbSBXZWJLaXQyLgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oOiBBZGRlZCBuZXcgbWV0aG9kIGRlZmluaXRpb25zIGFuZCBh
bHNvIHVzZQotICAgICAgICB0aGUgV2ViQ29yZSBuYW1lc3BhY2UgdG8gYXZvaWQgbG90cyBvZiB1
c2VzIG9mICJXZWJDb3JlOjoiLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kcmF3KTogTm93IGp1c3QgYmxpdCB0aGUgYmFja2lu
ZyBzdG9yZSBpbnRvIHRoZSB3aWRnZXQuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZXhwb3Nl
KTogRGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2l6ZV9hbGxvY2F0ZSk6IExldCB0
aGUgQ2hyb21lQ2xpZW50IGtub3cgdGhlIHdpZGdldCBzaXplIGNoYW5nZWQuCi0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfaW5pdCk6IFR1cm4gb2ZmIEdESyBkb3VibGUgYnVmZmVyaW5nIGFzIHdl
IGhhdmUgb3VyIG93biBkb3VibGUKLSAgICAgICAgYnVmZmVyLgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOiBBZGQgdGhlIGJhY2tpbmcgc3RvcmUgbWVtYmVyLgotCi0y
MDExLTEwLTI4ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgotCi0gICAg
ICAgIFJlbmFtZSBhIG51bWJlciBvZiBtZXRob2RzIG1lbnRpb25pbmcgSmF2YVNjcmlwdCB0byBq
dXN0IFNjcmlwdCBpbnN0ZWFkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTEwNQotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENsZWFyV2luZG93T2JqZWN0
SW5Xb3JsZCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfc2V0dGluZ3Nfbm90aWZ5KToKLQotMjAxMS0xMC0yNyAgTWFydGluIFJvYmluc29uICA8bXJv
Ymluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gUmVtb3ZlIG1vc3Qgb2YgdGhlIGRv
Y3VtZW50YXRpb24gZXJyb3JzIGZyb20gV2ViS2l0MQotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NzAKLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgRml4IG1vc3Qgb2YgdGhlIGRvY3VtZW50YXRp
b24gZXJyb3JzIGZvciBXZWJLaXQgYW5kIG1ha2UgbWFueQotICAgICAgICBtaXNzaW5nIHN5bWJv
bHMgc2hvdyB1cCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXRnbG9iYWxzLmg6IERvYyBmaXhlcy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c3BlbGxjaGVj
a2VyLmg6IERpdHRvLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50
LmNwcDogRGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5o
OiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHA6IERpdHRv
LgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6IERpdHRvLgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwOiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2ViaW5zcGVjdG9yLmg6IERpdHRvLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJw
bHVnaW4uaDogRGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRhdGFiYXNl
LmNwcDogRGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRhdGFiYXNlLmg6
IERpdHRvLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5oOiBEaXR0by4KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6IERpdHRvLgotICAgICAgICAod2Via2l0
X3dlYl92aWV3X2NsYXNzX2luaXQpOiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5oOiBEaXR0by4KLQotMjAxMS0xMC0yNyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dTdHJlYW1lcl0gV2ViQXVkaW8gQXVkaW9GaWxlUmVh
ZGVyIGltcGxlbWVudGF0aW9uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02OTgzNAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
LQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBMaW5rIGFnYWluc3QgbGliZmZ0dy4KLQotMjAx
MS0xMC0yNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgW0dUS10gVXBkYXRlIE5FV1MgYW5kIGNvbmZpZ3VyZS5hYyBmb3IgMS43LjEgcmVsZWFz
ZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MzIK
LQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiBORVdT
OiBBZGRlZCByZWxlYXNlIG5vdGVzLgotCi0yMDExLTEwLTI2ICBBbGVqYW5kcm8gRy4gQ2FzdHJv
ICA8YWxleEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEZpeCBkaXN0Y2hlY2sgY29tcGls
YXRpb24KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcw
OTIxCi0KLSAgICAgICAgQWRkIG5ldyBmaWxlcyByZXF1aXJlZCBieSBkb2MgY29tcGlsYXRpb24g
dG8gdGhlIGNsZWFuIHByb2Nlc3MuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmlu
c29uLgotCi0gICAgICAgICogZG9jcy9HTlVtYWtlZmlsZS5hbToKLQotMjAxMS0xMC0yNiAgWmFs
YW4gQnVqdGFzICA8emJ1anRhc0BnbWFpbC5jb20+Ci0KLSAgICAgICAgTmFtZSB2aWV3cG9ydCBj
aGFuZ2UgZXZlbnQgY29uc2lzdGVudGx5LgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzA5MDEKLQotICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbi4KLQotICAgICAgICBVc2UgVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hh
bmdlIHRlcm0gY29uc2lzdGVudGx5IHRocm91Z2hvdXQgV2ViS2l0LgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjpkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZSk6Ci0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMTEtMTAtMjYgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFJlbW92
ZSBnX3RocmVhZF9pbml0KCkgY2FsbHMgZnJvbSBndGstZG9jIHNjYW5uZXIgdG9vCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkwOAotCi0gICAgICAg
IFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICAqIGRvY3MvR05V
bWFrZWZpbGUuYW06Ci0KLTIwMTEtMTAtMjUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEd0a0FkanVzdG1lbnQgd2F0Y2hlciB1cGRhdGVz
IGFkanVzdG1lbnRzIHRvbyBsYXppbHkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcwMTgwCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jv
bmhhIFNpbHZhLgotCi0gICAgICAgIEluY3JlYXNlIHRoZSBwcmlvcml0eSBvZiB0aGUgR3RrQWRq
dXN0bWVudHMgdXBkYXRlIGluIEd0a0FkanVzdG1lbnRXYXRjaGVyLiBUaGlzCi0gICAgICAgIG1l
YW5zIHRoYXQgYWRqdXN0bWVudHMgd2lsbCBtb3JlIHF1aWNrbHkgcmVwcmVzZW50IHRoZSBzdGF0
ZSBvZiB0aGUgV2ViS2l0V2ViVmlldwotICAgICAgICB3aGVuIGl0IHNjcm9sbHMuIFRoaXMgZml4
ZXMgb3V0LW9mLXN5bmMgc2Nyb2xsYmFycyBhbmQgc29tZSB2aXN1YWwgYXJ0aWZhY3RzLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvR3RrQWRqdXN0bWVudFdhdGNoZXIuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpHdGtBZGp1c3RtZW50V2F0Y2hlcjo6dXBkYXRlQWRqdXN0bWVudHNGcm9tU2Ny
b2xsYmFyc0xhdGVyKTogVXNlIGEgdGltZW91dAotICAgICAgICB3aXRoIHRoZSBkZWZhdWx0IHBy
aW9yaXR5LgotCi0yMDExLTEwLTI0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBSZW1vdmUgZ190aHJlYWRfaW5pdCgpIGNhbGxzCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDcxNwotCi0g
ICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBXaXRoIG5ld2VyIGdsaWIg
aXQncyBub3QgbmVlZGVkIGFueW1vcmUgYW5kIHdpdGggcHJldmlvdXMgdmVyc2lvbnMKLSAgICAg
ICAgaXQgd2FzIGFscmVhZHkgY2FsbGVkIGJ5IGdfdHlwZV9pbml0KCkuCi0KLSAgICAgICAgKiB0
ZXN0cy90ZXN0YXBwbGljYXRpb25jYWNoZS5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICog
dGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogdGVzdHMvdGVzdGF0
a3JvbGVzLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0Y29weWFuZHBh
c3RlLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0ZG9tZG9jdW1lbnQu
YzoKLSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHRlc3RzL3Rlc3Rkb21kb213aW5kb3cuYzoK
LSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHRlc3RzL3Rlc3Rkb21ub2RlLmM6Ci0gICAgICAg
IChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0ZG93bmxvYWQuYzoKLSAgICAgICAgKG1haW4p
OgotICAgICAgICAqIHRlc3RzL3Rlc3RnbG9iYWxzLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAg
ICAgKiB0ZXN0cy90ZXN0aGl0dGVzdHJlc3VsdC5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAg
ICogdGVzdHMvdGVzdGh0dHBiYWNrZW5kLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0
ZXN0cy90ZXN0a2V5ZXZlbnRzLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90
ZXN0bG9hZGluZy5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogdGVzdHMvdGVzdG1pbWVo
YW5kbGluZy5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogdGVzdHMvdGVzdG5ldHdvcmty
ZXF1ZXN0LmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0bmV0d29ya3Jl
c3BvbnNlLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViYmFja2Zv
cndhcmRsaXN0LmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViZGF0
YXNvdXJjZS5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogdGVzdHMvdGVzdHdlYmZyYW1l
LmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViaGlzdG9yeWl0ZW0u
YzoKLSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJwbHVnaW5kYXRhYmFz
ZS5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogdGVzdHMvdGVzdHdlYnJlc291cmNlLmM6
Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vic2V0dGluZ3MuYzoKLSAg
ICAgICAgKG1haW4pOgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJ2aWV3LmM6Ci0gICAgICAgICog
dGVzdHMvdGVzdHdpbmRvdy5jOgotICAgICAgICAobWFpbik6Ci0KLTIwMTEtMTAtMjAgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgW0dUS10gd2Via2l0
Z3RrJ3MgcGtnY29uZmlnIGZpbGUgbmVlZHMgdG8gcmVxdWlyZSBqYXZhc2NyaXB0Y29yZWd0awot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1MDAKLQot
ICAgICAgICBSZXZpZXdlZCBieSBQaGlsaXBwZSBOb3JtYW5kLgotCi0gICAgICAgICogd2Via2l0
LnBjLmluOiBhZGQgamF2YXNjcmlwdGNvcmVndGsgdG8gUmVxdWlyZXMKLQotMjAxMS0xMC0xOSAg
R3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBHVEsrIGJ1
aWxkIGZpeC4gUmVuYW1lIHRoZSBJTkNMVURFUyB2YXJpYWJsZSBzbyBpdCBpcyBub3QgcGlja2Vk
Ci0gICAgICAgIHVwIGJ5IHJhbmRvbSBieXN0YW5kZXJzLiBBbHNvIGRvIHNvbWUgbW9yZSBjbGVh
bnVwIG9uIHN0dWZmIHdlCi0gICAgICAgIGluaGVyaXRlZCBmcm9tIGd0ay1kb2MubWFrZS4KLQot
ICAgICAgICAqIEdOVW1ha2VmaWxlLmd0ay1kb2MuYW06Ci0gICAgICAgICogZG9jcy9HTlVtYWtl
ZmlsZS5hbToKLQotMjAxMS0xMC0xOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21l
Lm9yZz4KLQotICAgICAgICBbR1RLXSBTdHJlYW1saW5lIHdrMSBkb2N1bWVudGF0aW9uIGJ1aWxk
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ0Nwot
Ci0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOiBtb3ZlIGZpbGVzIHBlcnRhaW5pbmcgdG8gdGhlIGRvY3MgYnVpbGQgdG8gdGhl
Ci0gICAgICAgICAgZG9jcyBHTlVtYWtlZmlsZS5hbTsKLSAgICAgICAgKiBHTlVtYWtlZmlsZS5n
dGstZG9jLm1ha2U6IGluY29ycG9yYXRlIHRoZSBndGstZG9jIG1ha2VmaWxlLCBhbmQgY3VzdG9t
aXplIGl0Ci0gICAgICAgICAgdG8gb3VyIG5vbi1yZWN1cnNpdmUgYnVpbGQ7Ci0gICAgICAgICog
ZG9jcy9HTlVtYWtlZmlsZS5hbTogc2ltcGxpZmljYXRpb24gYW5kIGFkYXB0aW9uIHRvIHdvcmsg
d2l0aCB0aGUKLSAgICAgICAgICByZXN0IG9mIHRoZSBidWlsZCBzeXN0ZW0uCi0KLTIwMTEtMTAt
MTkgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KLQotICAgICAgICBbR3Rr
XVtHZW9sb2NhdGlvbl0gQnVpbGQgZ3VhcmRzIG1pc3NpbmcgaW4gZ2VvbG9jYXRpb24gY2xpZW50
cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA0MjAK
LQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAg
QWRkcyBidWlsZCBndWFyZHMgdGhhdCB3ZXJlIGZvcmdvdHRlbiB3aGVuIGNsaWVudC1iYXNlZAot
ICAgICAgICBnZW9sb2NhdGlvbiB3YXMgaW50cm9kdWNlZCBpbiByOTc3NDYuIFRoaXMgc2hvdWxk
IG1ha2UgYnVpbGRzCi0gICAgICAgIHdpdGhvdXQgZ2VvbG9jYXRpb24gc3VwcG9ydCBzdWNjZWVk
IGFnYWluLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsu
Y3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmg6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2luaXQpOgotCi0yMDExLTEwLTE4ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFp
bC5jb20+Ci0KLSAgICAgICAgW0d0a10gU3VwcG9ydCBmb3IgY2xpZW50LWJhc2VkIGdlb2xvY2F0
aW9uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDk3
MAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBBZGQg
RHVtcFJlbmRlclRyZWUgc3VwcG9ydCBmdW5jdGlvbnMgZm9yIGNsaWVudC1iYXNlZCBnZW9sb2Nh
dGlvbiB0ZXN0cwotICAgICAgICBhbmQgaW1wbGVtZW50IEdlb2xvY2F0aW9uQ2xpZW50R3RrLiBU
aGUgaW1wbGVtZW50YXRpb24gaXMgYmFzZWQgb24gWmVja2UncwotICAgICAgICBpbXBsZW1lbnRh
dGlvbiBvZiBHZW9sb2NhdGlvblNlcnZpY2UgY2xhc3MgaW4gV2ViQ29yZSwgd2hpY2ggaXMgbm93
IHJlZHVuZGFudAotICAgICAgICBhbmQgc3Vic2VxdWVudGx5IHJlbW92ZWQuCi0KLSAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbTogQWRkIEdlb2xvY2F0aW9uQ2xpZW50R3RrLiogZmlsZXMgdG8gY29t
cGlsYXRpb24uCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcDogQWRkIHN1cHBvcnQgZnVuY3Rpb25zIHRvIG9wZXJhdGUKLSAgICAgICAgd2l0aCBH
ZW9sb2NhdGlvbkNsaWVudE1vY2suCi0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnJlc2V0R2VvbG9jYXRpb25DbGllbnRNb2NrKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbik6Ci0gICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKLSAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOgotICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0cyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmg6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25D
bGllbnRHdGsuY3BwOiBBZGRlZC4KLSAgICAgICAgKFdlYktpdDo6Z2V0UG9zaXRpb25DYWxsYmFj
ayk6Ci0gICAgICAgIChXZWJLaXQ6OnBvc2l0aW9uQ2hhbmdlZENhbGxiYWNrKToKLSAgICAgICAg
KFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6Okdlb2xvY2F0aW9uQ2xpZW50KToKLSAgICAgICAg
KFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6Omdlb2xvY2F0aW9uRGVzdHJveWVkKToKLSAgICAg
ICAgKFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgotICAgICAgICAo
V2ViS2l0OjpHZW9sb2NhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKToKLSAgICAgICAgKFdlYktp
dDo6R2VvbG9jYXRpb25DbGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeSk6Ci0gICAgICAgIChX
ZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24pOgotICAgICAgICAoV2ViS2l0
OjpHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgotICAgICAgICAoV2ViS2l0
OjpHZW9sb2NhdGlvbkNsaWVudDo6Y2FuY2VsUGVybWlzc2lvblJlcXVlc3QpOgotICAgICAgICAo
V2ViS2l0OjpHZW9sb2NhdGlvbkNsaWVudDo6cG9zaXRpb25DaGFuZ2VkKToKLSAgICAgICAgKFdl
YktpdDo6R2VvbG9jYXRpb25DbGllbnQ6OnVwZGF0ZVBvc2l0aW9uKToKLSAgICAgICAgKFdlYktp
dDo6R2VvbG9jYXRpb25DbGllbnQ6OmVycm9yT2NjdXJlZCk6Ci0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuaDogQWRkZWQuCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOiBVc2UgR2Vv
bG9jYXRpb25DbGllbnRNb2NrIGFzIGdlb2xvY2F0aW9uIGNsaWVudAotICAgICAgICB3aGVuIHJ1
bm5pbmcgaW4gRHVtcFJlbmRlclRyZWUuCi0KLTIwMTEtMTAtMTIgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgTWFrZSB0aGUgaW50ZXJmYWNlIG9mIGxvY2F0aW9u
QW5kTGVuZ3RoRnJvbVJhbmdlIGFuZCByYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aCBjb25zaXN0
ZW50Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTk2
NAotCi0gICAgICAgIFJldmlld2VkIGJ5IEVucmljYSBDYXN1Y2NpLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UpOgotCi0yMDEx
LTA5LTI4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAg
ICBbR1RLXSBNb3ZlIGRyYWctYW5kLWRyb3AgY29kZSB3aGljaCBjYW4gYmUgc2hhcmVkIHdpdGgg
V2ViS2l0MiB0byBXZWJDb3JlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Njg5MAotCi0gICAgICAgIFVzZSB0aGUgbmV3IEd0a1dpZGdldERyYWdBbmRE
cm9wR2x1ZSBjbGFzcyB0byBob2xkIHRoZSBsb2dpYyB0aGF0IHdpbGwgYmUKLSAgICAgICAgY29t
bW9uIGJldHdlZW4gV2ViS2l0MSBhbmQgV2ViS2l0Mi4gTW9kaWZ5IFdlYktpdFdlYlZpZXcgdG8g
dXNlIHRoaXMgY2xhc3MuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpEcmFnQ2xpZW50OjpzdGFydERyYWcpOiBJbmZvcm0gdGhlIGRyYWctYW5kLWRyb3Ag
Z2x1ZSBhYm91dCB0aGUgZHJhZy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6
IFVzZSBHdGtXaWRnZXREcmFnQW5kRHJvcEdsdWUgd2hlcmV2ZXIgdGhpcyBjbGFzcyB3YXMKLSAg
ICAgICAgbWFpbnRhaW5pbmcgZHJhZy1hbmQtZHJvcCBzdGF0ZSBpdHNlbGYuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IFN3YXAgb3V0IHRoZSBkcmFnLWFuZC1kcm9w
IHN0YXRlIGZvciBhbiBpbnN0YW5jZQotICAgICAgICBvZiB0aGUgZ2x1ZSBjbGFzcy4KLQotMjAx
MS0wOS0yOCAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KLQot
ICAgICAgICBbR3RrXSBJbXBsZW1lbnQgdGV4dElucHV0Q29udHJvbGxlci5kb0NvbW1hbmQKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDk2Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6ZG9Db21tYW5kKTogRnVuY3Rpb24gZGVmaW5pdGlvbiBmb3IgZG9Db21t
YW5kIAotICAgICAgICBjYWxsYmFjay4gQ29udmVydGVkIEluY29taW5nIGNvbW1hbmQgdG8gbWF0
Y2ggd2l0aCBXZWJDb3JlOjpFZGl0b3IgQ29tbWFuZE1hcC4KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLQotMjAxMS0wOS0yNyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dUS10gUmVvcmdh
bml6ZSBoZWFkZXIgZmlsZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY1NjE2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgot
Ci0gICAgICAgIEluc3RhbGwgaGVhZGVyIGZpbGVzIHVuZGVyICRsaWJ3ZWJraXRndGtpbmNsdWRl
ZGlyL3dlYmtpdC4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBVc2UgJGxpYndlYmtpdGd0
a2luY2x1ZGVkaXIuCi0gICAgICAgICogd2Via2l0LnBjLmluOiBVc2Ugd2Via2l0Z3RrLTxhcGkt
dmVyc2lvbj4gYXMgaW5jbHVkZSBkaXIuCi0KLTIwMTEtMDktMjYgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY29tPgotCi0gICAgICAgIEZpeCBkb2N1
bWVudGF0aW9uIGdlbmVyYXRpb24gYnkgc3BlY2lmeWluZyB0aGUgc291cmNlcwotICAgICAgICBk
aXJlY3Rvcnkgd2l0aCAkKHRvcF9zcmNkaXIpLgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBM
b3Blei4KLQotICAgICAgICAqIGRvY3MvR05VbWFrZWZpbGUuYW06Ci0KLTIwMTEtMDktMjYgIEd1
c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY29tPgotCi0g
ICAgICAgIFJFR1JFU1NJT046IEVtcGF0aHkgY3Jhc2hlcyB3aGVuIHN3aXRjaGluZyB0aGVtZQot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg2MDAKLQot
ICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Njcm9sbF9h
ZGp1c3RtZW50cyk6IHVzZSB0aGUgZXhpc3RpbmcKLSAgICAgICAgc2V0e0hvcml6b250YWwsVmVy
dGljYWx9QWRqdXN0bWVudCBmdW5jdGlvbnMsIHNvIHRoZSBjb2RlIGlzIG5vdAotICAgICAgICBk
dXBsaWNhdGVkCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6IHVuc2V0IHRoZSBh
ZGp1c3RtZW50cyBkdXJpbmcgZGlzcG9zZSwKLSAgICAgICAgdG8gYXZvaWQgbGF0ZSBhZGp1c3Rt
ZW50IGNoYW5nZSBub3RpZmljYXRpb25zIGhpdHRpbmcgdGhlCi0gICAgICAgIGFkanVzdG1lbnQg
d2F0Y2hlcgotCi0yMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0K
LSAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKLQot
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6Ci0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGFwcGxpY2F0
aW9uY2FjaGUuY3BwOgotICAgICAgICAod2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dldF9tYXhp
bXVtX3NpemUpOgotICAgICAgICAod2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX3NldF9tYXhpbXVt
X3NpemUpOgotICAgICAgICAod2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dldF9kYXRhYmFzZV9k
aXJlY3RvcnlfcGF0aCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAg
ICAgICAod2Via2l0SW5pdCk6Ci0KLTIwMTEtMDktMjIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY29tPgotCi0gICAgICAgIFJlbW92ZSB1c2VsZXNz
IGVtcHR5IFdlYktpdCBuYW1lc3BhY2UuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6
LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAgICAgICAod2Via2l0
SW5pdCk6Ci0KLTIwMTEtMDktMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFtHVEtdIFdlYlByb2Nlc3Mgc2hvdWxkbid0IHVzZSB0aGUgR1RL
KyBBUEkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4
MDYyCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFVz
ZSBXZWJDb3JlIEFQSSB0byBjcmVhdGUgZXJyb3JzIGluIGZyYW1lIGxvYWRlci4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmJsb2NrZWRFcnJvcik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJMRXJyb3IpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6aW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6Ci0gICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOgot
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRF
cnJvcik6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGVycm9yLmNwcDoKLSAgICAgICAgKHdlYmtp
dF9uZXR3b3JrX2Vycm9yX3F1YXJrKToKLSAgICAgICAgKHdlYmtpdF9wb2xpY3lfZXJyb3JfcXVh
cmspOgotICAgICAgICAod2Via2l0X3BsdWdpbl9lcnJvcl9xdWFyayk6Ci0KLTIwMTEtMDktMjAg
IFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtd
IFVwZGF0ZSBORVdTIGFuZCBjb25maWd1cmUuYWMgZm9yIDEuNS45MCByZWxlYXNlCi0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICogTkVXUzoKLQotMjAx
MS0wOS0xOSAgTGVhbmRybyBQZXJlaXJhICA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4KLQotICAg
ICAgICBHVEsgRFJUIGxlYWtzIG1lbW9yeSB3aGlsZSBjb21wYXJpbmcgaGlzdG9yeSBpdGVtcwot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgwODYKLQot
ICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0gICAgICAgIAotICAgICAgICB3
ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdGFyZ2V0KCkgZnVuY3Rpb24gcmV0dXJucyBhIGdf
c3RyZHVwKCknZAotICAgICAgICBzdHJpbmcsIHNvIGl0IHNob3VsZCByZXR1cm4gImdjaGFyKiIg
aW5zdGVhZCBvZiAiY29uc3QgZ2NoYXIqIi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJo
aXN0b3J5aXRlbS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdGFy
Z2V0KTogQ2hhbmdlIHJldHVybiB0eXBlIHRvICJnY2hhcioiLgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGUuaDogRGl0dG8uCi0KLTIwMTEtMDktMTkgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIEZp
eCBkaXN0Y2hlY2sgYnVpbGQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY4MzQ2Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGhpbGlwcGUgTm9ybWFuZC4K
LQotICAgICAgICAqIHRlc3RzL3Rlc3RtaW1laGFuZGxpbmcuYzogUmVtb3ZlIG9nZyB0ZXN0cywg
c2luY2UgdGhlIGJlaGF2aW91cwotICAgICAgICBoYXMgY2hhbmdlZCBpbiBsaWJzb3VwIChodHRw
czovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ4ODQ2I2M4KQotICAgICAg
ICAoc2VydmVyX2NhbGxiYWNrKToKLSAgICAgICAgKG1pbWVfdHlwZV9wb2xpY3lfZGVjaXNpb25f
cmVxdWVzdGVkX2NiKToKLSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJwbHVnaW4uY3BwOiBGaXggaW50cm9zcGVjdGlvbiBhbm5vdGF0aW9uLgotCi0yMDExLTA5LTE3
ICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIEZyYW1l
TG9hZGVyQ2xpZW50IEJhY2tGb3J3YXJkTGlzdC1yZWxhdGVkIG1ldGhvZHMgYXJlIHVuc3VlZAot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyOTMKLQot
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBSZW1vdmUgRnJhbWVM
b2FkZXJDbGllbnQgbWV0aG9kcyB0aGF0IHdlcmUgYWRkZWQgYnkgcjUxNjI5LCBzaW5jZSBvbmx5
ICAgICAgICAKLSAgICAgICAgdGhlIG9sZCAoc2luY2UtZGVsZXRlZCkgQW5kcm9pZCBwb3J0IG5l
ZWRlZCB0aGVtLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6
Ci0KLTIwMTEtMDktMTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAg
ICBSZW5hbWUgRU5BQkxFKERBVEFCQVNFKSB0byBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyMDUKLQotICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcDoKLSAgICAg
ICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3dlYl9kYXRhYmFzZV91c2FnZSk6Ci0gICAg
ICAgICh3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF93ZWJfZGF0YWJhc2VfcXVvdGEpOgotICAg
ICAgICAod2Via2l0X3NlY3VyaXR5X29yaWdpbl9zZXRfd2ViX2RhdGFiYXNlX3F1b3RhKToKLSAg
ICAgICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X2FsbF93ZWJfZGF0YWJhc2VzKToKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwOgotICAgICAgICAod2Via2l0X3dl
Yl9kYXRhYmFzZV9nZXRfZGlzcGxheV9uYW1lKToKLSAgICAgICAgKHdlYmtpdF93ZWJfZGF0YWJh
c2VfZ2V0X2V4cGVjdGVkX3NpemUpOgotICAgICAgICAod2Via2l0X3dlYl9kYXRhYmFzZV9nZXRf
c2l6ZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2RhdGFiYXNlX2dldF9maWxlbmFtZSk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX2RhdGFiYXNlX3JlbW92ZSk6Ci0gICAgICAgICh3ZWJraXRfcmVtb3Zl
X2FsbF93ZWJfZGF0YWJhc2VzKToKLSAgICAgICAgKHdlYmtpdF9nZXRfd2ViX2RhdGFiYXNlX2Rp
cmVjdG9yeV9wYXRoKToKLSAgICAgICAgKHdlYmtpdF9zZXRfd2ViX2RhdGFiYXNlX2RpcmVjdG9y
eV9wYXRoKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDExLTA5LTEwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+Ci0KLSAgICAgICAgRml4IGJ1aWxkIGJyZWFrLgotCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9lbmNvZGlu
Zyk6Ci0KLTIwMTEtMDktMDkgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+Ci0K
LSAgICAgICAgTW92ZSBwYWdlU2NhbGVGYWN0b3IgY29kZSBmcm9tIEZyYW1lLntofGNwcH0gdG8g
UGFnZS57aHxjcHB9Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzI1MAotCi0gICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNjYWxlUGFnZUJ5KToKLQotMjAxMS0wOS0wOCAg
RGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgRml4IHRoZSBHVEsg
YnVpbGQgYWZ0ZXIgPGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk0ODEwPgotICAg
ICAgICAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODA3KS4KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19nZXRfZW5jb2RpbmcpOiBTdWJzdGl0dXRlIERvY3VtZW50V3JpdGVyOjpkZXByZWNhdGVk
RnJhbWVFbmNvZGluZygpIGZvcgotICAgICAgICBEb2N1bWVudFdyaXRlcjo6ZW5jb2RpbmcoKS4K
LQotMjAxMS0wOS0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KLQotICAgICAg
ICBSZW5hbWUgY29uZmlybUNvbXBvc2l0aW9uV2l0aG91dERpc3R1cmJpbmdTZWxlY3Rpb24gdG8g
Y2FuY2VsQ29tcG9zaXRpb24KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3NTY5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbik6Ci0KLTIwMTEt
MDgtMzAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NDE0Miwgcjk0MTQ0LCByOTQxNDUsIGFuZCBy
OTQxNDguCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk0MTQyCi0g
ICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk0MTQ0Ci0gICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk0MTQ1Ci0gICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk0MTQ4Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NzI2MgotCi0gICAgICAgIEJyb2tlIGlzaW5kZXggZWxlbWVu
dCAoUmVxdWVzdGVkIGJ5IHJuaXdhIG9uICN3ZWJraXQpLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6c2V0QXV0b2ZpbGxlZCk6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldFZhbHVlRm9yVXNlcik6Ci0KLTIwMTEtMDgtMzAgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgR1RLIGJ1aWxkIGZpeCBhZnRlciByOTQxNDIu
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3Bw
OgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRBdXRvZmlsbGVkKToKLSAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0VmFsdWVGb3JVc2VyKToKLQotMjAx
MS0wOC0zMCAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4KLQot
ICAgICAgICBUaGUgdW51c2VkIFNjcm9sbFZpZXcqIGFyZ3VtZW50IGNhbiBhbmQgc2hvdWxkIGJl
IHJlbW92ZWQgZnJvbQotICAgICAgICBzY3JvbGxSZWN0SW50b1ZpZXcuCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzExNwotCi0gICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmg6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xsUmVjdEludG9W
aWV3KToKLQotMjAxMS0wOC0yNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9y
Zz4KLQotICAgICAgICBNaW5vciBzdHlsZSBmaXggaW4gdGhlIHNhbXBsZSBjb2RlIGZvciBXZWJL
aXRXZWJGcmFtZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0KLTIw
MTEtMDgtMTcgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgW0dUS10gRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIHdpdGggZGVwcmVjYXRpb25zIGluIGd0
aysKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2MDcz
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHA6Ci0gICAgICAgIChGdWxs
c2NyZWVuVmlkZW9Db250cm9sbGVyOjpjcmVhdGVIdWQpOiBBZGRlZCBndGtfYm94X25ldwotICAg
ICAgICBjb25kaXRpb25hbCBjb21waWxhdGlvbiBmb3IgZ3RrKy0zLgotCi0yMDExLTA4LTE4ICBD
YWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5v
cmc+Ci0KLSAgICAgICAgW0dUS10gQ2hhbmdlIHdlYnZpZXcgQVBJIHRlc3RzIHRvIHVzZSAibG9h
ZC1zdGF0dXMiIHNpZ25hbCBpbnN0ZWFkIG9mICJsb2FkLXByb2dyZXNzIgotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNDMKLQotICAgICAgICBSZXZp
ZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgVGhlIGlkbGVfcXVpdF9sb29wX2Ni
KCkgYWxyZWFkeSBjaGVja3MgdGhlICJsb2FkLXN0YXR1cyIgZmxhZywgc28gaXQgaXMgZW5vdWdo
IHRvCi0gICAgICAgIGNhbGwgaXQgb25seSB3aGVuIHRoZSAibG9hZC1zdGF0dXMiIGNoYW5nZS4K
LQotICAgICAgICBUaGlzIGNoYW5nZSBpcyBpbXBvcnRhbnQgaW4gdGhlIGNvbnRleHQgb2YgYnVn
IDI4ODUxLCB3aGljaCBhaW1zIHRvIGNoYW5nZSB0aGUKLSAgICAgICAgb3JkZXIgaW4gd2hpY2gg
InByb2dyZXNzIGZpbmlzaGVkIiBhbmQgImxvYWQgZmluaXNoZWQiIGNhbGxiYWNrcyBhcmUgY2Fs
bGVkLiBJbgotICAgICAgICB0aGlzIG5ldyBzY2VuYXJpbywgYXQgdGhlIHByb2dyZXNzIGNhbGxi
YWNrIHRoZSBsb2FkIHdpbGwgbmV2ZXIgYmUgZmluaXNoZWQuCi0KLSAgICAgICAgKiB0ZXN0cy90
ZXN0d2Vidmlldy5jOgotICAgICAgICAodGVzdF93ZWJraXRfd2ViX3ZpZXdfZ3JhYl9mb2N1cyk6
Ci0KLTIwMTEtMDgtMTcgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgotCi0gICAgICAg
IE1ha2UgV2ViQ29yZSBrZWVwIHRyYWNrIG9mIHRoZSBjdXJyZW50IGRldmljZSBzY2FsZSBmYWN0
b3IKLQotICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5vcmcvYi82NjQxMz4gV2ViQ29yZSBy
ZXF1aXJlcyBldmVyeSBXZWJLaXQgcG9ydCB0byBrZWVwIHRyYWNrIG9mIHRoZQotICAgICAgICBk
ZXZpY2Ugc2NhbGUgZmFjdG9yCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotICAgICAgICBSZW1vdmVkIGRldmlj
ZVNjYWxlRmFjdG9yLgotCi0yMDExLTA4LTE2ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvbT4KLQotICAgICAgICBBZGQgamF2YXNjcmlwdGNvcmVn
dGsgdG8gdGhlIGludHJvc3BlY3Rpb24gYnVpbGQsIHRvIGZpeCBpdC4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLQotMjAxMS0w
OC0xNSAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KLQotICAgICAgICBGcmFt
ZUxvYWRlckNsaWVudDo6dHJhbnNmZXJMb2FkaW5nUmVzb3VyY2VGcm9tUGFnZSBkb2VzIG5vdCBo
YXZlIGVub3VnaCBwYXJhbWV0ZXJzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NjE2NQotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGluZ1Jlc291cmNl
RnJvbVBhZ2UpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
Lmg6Ci0KLTIwMTEtMDgtMTAgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgotCi0gICAg
ICAgIENsZWFyIHVwIHNjYWxlIGZhY3RvciB0ZXJtaW5vbG9neQotCi0gICAgICAgIFdlYktpdCBi
eSBhbmQgbGFyZ2UgZGVhbHMgd2l0aCB0d28gc2NhbGUgZmFjdG9yczogb25lIGludHJpbnNpYyB0
byB0aGUgZGV2aWNlIG9uIHdoaWNoIHRoZQotICAgICAgICBzb2Z0d2FyZSBpcyBydW5uaW5nLCBh
bmQgb25lIHRoYXQgaXMgcGVyLVBhZ2UgYW5kIGNhbiBiZSBjb250cm9sbGVkIHZpYSBBUEkgY2Fs
bHMuIFRoaXMKLSAgICAgICAgcGF0Y2ggbmFtZXMgdGhlIGZvcm1lciAiZGV2aWNlU2NhbGVGYWN0
b3IiIGFuZCB0aGUgbGF0dGVyICJwYWdlU2NhbGVGYWN0b3IiLCBhbmQgbWFrZXMgdGhlCi0gICAg
ICAgIGNvZGUgdXNlIHRob3NlIG5hbWVzLiBJdCBzaG91bGQgaW50cm9kdWNlIG5vIGJlaGF2aW9y
IGNoYW5nZXMuCi0KLSAgICAgICAgRml4ZXMgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTU3ODc+IFdl
YktpdCB1c2VzIG11bHRpcGxlIGNvbmZsaWN0aW5nIG5hbWVzIHRvIHJlZmVyIHRvIHRoZQotICAg
ICAgICBkZXZpY2Ugc2NhbGUgZmFjdG9yCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAxMS0wOC0xMSAg
R3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBBZGQgdGhl
IGphdmFzY3JpcHQgY29yZSBkeW5hbWljIGxpYnJhcnkgZm9yIGd0ay1kb2MncyBpbnRyb3NwZWN0
aW9uIGhlbHBlci4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAg
KiBkb2NzL0dOVW1ha2VmaWxlLmFtOgotCi0yMDExLTA4LTExICBYYW4gTG9wZXogIDx4bG9wZXpA
aWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBVcGRhdGUgTkVXUyBhbmQgY29uZmlndXJlLmFj
IGZvciAxLjUuMiByZWxlYXNlCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jvbmhh
LgotCi0gICAgICAgICogTkVXUzogdXBkYXRlIGZvciByZWxlYXNlLgotCi0yMDExLTA4LTEwICBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFtHVEtdIHdy
b25nIGFubm90YXRpb24gZm9yIHRoZSByZXR1cm4gdmFsdWUgb2Ygd2Via2l0X3dlYl92aWV3X2dl
dF9oaXRfdGVzdF9yZXN1bHRzKCkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY1OTg1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDExLTA4LTAzICBQYXZlbCBG
ZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KLQotICAgICAgICBXZWIgSW5zcGVjdG9yOiBb
VGltZWxpbmVdIEhvdmVyIG9uIHBhaW50IGV2ZW50cyBhbmQgc2VlIHJlY3Qgb3V0bGluZSBhcm91
bmQgdGhhdCBhcmVhLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjU1MTAKLQotICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAocGFpbnRXZWJWaWV3
KToKLQotMjAxMS0wOC0wMyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4K
LQotICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgTm9kZSBwYXJhbWV0ZXIgZnJvbSB0aGUg
SW5zcGVjdG9yQ2xpZW50OjpoaWdobGlnaHQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY1NTQ5Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1p
a2hhdHNreS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6aGlnaGxpZ2h0KToKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLQotMjAxMS0wOC0wMyAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgW0dU
S10gUmVvcmdhbml6ZSBwa2ctY29uZmlnIGZpbGVzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTU0OAotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRp
biBSb2JpbnNvbi4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZW1vdmUgamF2YXNjcmlw
dGNvcmUgcGMgZmlsZSByZWZlcmVuY2VzLgotCi0yMDExLTA3LTMwICBQYXRyaWNrIEdhbnN0ZXJl
ciAgPHBhcm9nYUB3ZWJraXQub3JnPgotCi0gICAgICAgIFJlbW92ZSBpbmNsdXNpb24gb2YgTWFp
blRocmVhZC5oIGZyb20gVGhyZWFkaW5nLmgKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY1MDgxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCi0KLSAgICAgICAgQWRkIG1pc3NpbmcgaW5jbHVkZSBzdGF0ZW1lbnRzIGZvciBNYWluVGhy
ZWFkLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotCi0yMDExLTA3LTI2
ICBTYWRydWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KLQotICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgZG93bmxvYWQ9J2ZpbGVuYW1lJyBhdHRyaWJ1dGUgaW4gYW5jaG9y
cy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTgw
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KLQotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OnN0YXJ0RG93bmxvYWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMTEtMDctMjYgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFtHVEtdIFJlbW92ZSBoZWFkZXIgd2Vi
a2l0d2Vidmlld2NvbW1vbi5oCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTE3NwotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
LQotICAgICAgICBNb3ZlIHdlYmtpdHdlYnZpZXdjb21tb24uaCBjb250ZW50cyBiYWNrIHRvIHdl
YmtpdHdlYnZpZXcuaC4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZW1vdmUgd2Via2l0
d2Vidmlld2NvbW1vbi5oCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDoKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld2NvbW1vbi5oOiBSZW1vdmVkLgotCi0yMDExLTA2LTA3
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgW0dUS10gVXNlIFdlYkNv
cmUgc2Nyb2xsYmFycyBmb3IgdGhlIERSVCBpbnN0ZWFkIG9mIEd0a1Njcm9sbGVkV2luZG93Ci0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjI1MgotCi0g
ICAgICAgIEFkZGVkIGFuIHVuZG9jdW1lbnRlZCBzZWxmLXNjcm9sbGluZyBwcm9wZXJ0eSB0byBX
ZWJLaXRXZWJWaWV3IHdoaWNoCi0gICAgICAgIGNvbW11bmljYXRlcyB0byBXZWJDb3JlIHdoZXRo
ZXIgb3Igbm90IHRoaXMgd2lkZ2V0IGlzIGV4cGVjdGVkIHRvIGRyYXcKLSAgICAgICAgaXRzIG93
biBtYWluIGZyYW1lIHNjcm9sbGJhcnMgb3Igbm90LgotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOiBBZGQgdGhlIHNlbGYtc2Nyb2xsaW5nIHByb3BlcnR5LgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOiBBZGQgdGhlIHNlbGZTY3JvbGxpbmcgcHJp
dmF0ZSBtZW1iZXIuCi0KLTIwMTEtMDctMTEgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bn
bm9tZS5vcmc+Ci0KLSAgICAgICAgW0dUS10gR29vZ2xlIENhbGVuZGFyIHRoaW5rcyB3ZSdyZSBt
b2JpbGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYz
OTk0Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIEZ1cnRoZXIg
c3BlY2lhbC1jYXNlIEdvb2dsZSBDYWxlbmRhciwgZm9yIGl0IHRoaW5rcyBXZWJLaXQrTGludXgK
LSAgICAgICAgbWVhbnMgbW9iaWxlLCBzbyB3ZSBhbHNvIGhhdmUgdG8gc3Bvb2YgdGhlIE9TLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dXNlckFnZW50KTogdXNlIHRoZSBuZXcg
V2ViS2l0R1RLKwotICAgICAgICBwcml2YXRlIEFQSSB0aGF0IGNlbnRyYWxpemVzIHRoZSBsb2dp
YyBub3cuCi0gICAgICAgICogdGVzdHMvdGVzdHdlYnNldHRpbmdzLmM6IEFkZCB0ZXN0cyB0byBt
YWtlIHN1cmUgdGhlIEdvb2dsZQotICAgICAgICBzcGVjaWFsLWNhc2VzIG9ubHkgYXBwbHkgZm9y
IHRoZSBleHBlY3RlZCBkb21haW5zIGFuZCB3aGVuIHF1aXJrcwotICAgICAgICBzcGVjaWFsLWNh
c2luZyBpcyBlbmFibGVkLgotICAgICAgICAodGVzdF9ub25fcXVpcmt5X3VzZXJfYWdlbnRzKToK
LSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9zZXR0aW5nc191c2VyX2FnZW50KToKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0VXNlckFnZW50
KTogbWFrZSBpdCBzdGF0aWMuCi0gICAgICAgIChzYWZhcmlVc2VyQWdlbnQpOiByZXR1cm5zIGEg
ZmFrZSBTYWZhcmkgaW4gTWFjIE9TIFggVXNlci1BZ2VudC4KLSAgICAgICAgKGluaXRpYWxpemVE
b21haW5zTGlzdCk6IG1vdmVkIGZyb20gRnJhbWVMb2FkZXJDbGllbnRHdGsuCi0gICAgICAgIChp
c0dvb2dsZURvbWFpbik6ZGl0dG8uCi0gICAgICAgIChpc0dvb2dsZUNhbGVuZGFyKTogZGl0dG8u
Ci0gICAgICAgICh1c2VyQWdlbnRGb3JVUkwpOiBkaXR0by4KLSAgICAgICAgKHdlYmtpdFdlYlNl
dHRpbmdzVXNlckFnZW50Rm9yVXJpKTogY2VudHJhbGl6ZSB0aGUgd2hvbGUKLSAgICAgICAgdXNl
ciBhZ2VudCBzcG9vZmluZyBsb2dpYyBpbiB0aGlzIG5ldyBwcml2YXRlIEFQSSB0aGF0IGNhbiBi
ZSB1c2VkCi0gICAgICAgIGJ5IHRoZSBicm93c2VyIHRvIGtub3cgd2hhdCdzIGdvaW5nIHRvIGhh
cHBlbiBmb3IgYSBzcGVjaWZpYyBVUkkKLSAgICAgICAgYW5kIGFsc28gYWxsb3dzIG91ciBBUEkg
dGVzdGluZy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmg6Ci0K
LTIwMTEtMDctMTUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KLQotICAgICAgICBS
RUdSRVNTSU9OOiBNb3VzZSBjdXJzb3IgZG9lc27igJl0IGhpZGUgd2hlbiBmdWxsIHNjcmVlbiB2
aWRlbyBIVUQgaGlkZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY0NjE1Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMpOiBBZGRl
ZCB0aGlzIHN0dWIuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6
Ci0KLTIwMTEtMDctMTUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIEJ1aWxkIGZpeGVzIGZvciBXZWJLaXQyLiBFbnN1cmUgdGhhdCBhbGwgZ2VuZXJh
dGVkIHNvdXJjZXMgYXJlCi0gICAgICAgIG9uIG5vZGlzdCBwcmltYXJpZXMsIHRoYXQgdGhleSBh
cmUgb24gZm9yd2FyZCBkZWNsYXJlZCB2YXJpYWJsZXMKLSAgICAgICAgc28gdGhhdCBCVUlMVF9T
T1VSQ0VTIGlzIGNhbGN1bGF0ZWQgcHJvcGVybHkgYW5kIHRoYXQgemxpYiBpcyAKLSAgICAgICAg
aW5jbHVkZWQgZHVyaW5nIGxpbmtpbmcgKGZvciBXT0ZGIHN1cHBvcnQpLgotCi0gICAgICAgICog
R05VbWFrZWZpbGUuYW06Ci0KLTIwMTEtMDctMTQgIEx1a2FzeiBTbGFjaGNpYWsgIDxsLnNsYWNo
Y2lha0BzYW1zdW5nLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEu
Ci0KLSAgICAgICAgW0dUS10gRml4IEdUSyB1bml0IHRlc3RzIGZhaWx1cmVzIHdoZW4gV2ViS2l0
IGlzIGJ1aWxkIG91dHNpZGUgcmVwb3NpdG9yeSBkaXJlY3RvcnkuCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjkzNQotCi0gICAgICAgIFdlYktpdCBj
YW4gYmUgYnVpbGQgd2l0aCBXRUJLSVRPVVRQVVRESVIgZW52IHZhcmlhYmxlIHNldCB1c2luZyBi
dWlsZC13ZWJraXQgc2NyaXB0LgotICAgICAgICBJbiB0aGlzIGNhc2UgV0VCS0lUT1VUUFVESVIg
bWF5IGJlIG91dHNpZGUgcmVwb3NpdG9yeSBzdHJ1Y3R1cmUuIFRoaXMgY2F1c2VzIHRlc3RtaW1l
aGFuZGxpbmcgYW5kIHRlc3R3ZWJ2aWV3Ci0gICAgICAgIHRvIGZhaWwgYmVjYXVzZSB0aGV5IHVz
ZSBleHRlcm5hbCB0ZXN0IGZpbGVzIGluIFdlYktpdCBTb3VyY2UgZGlyZWN0b3J5LgotICAgICAg
ICBUaGlzIGJ1ZyBmaXhlcyB0aGlzIGlzc3VlIGludHJvZHVjaW5nIG9wdGlvbmFsIGVudmlyb25t
ZW50IHZhcmlhYmxlIFdFQktJVFJFUE9ESVIKLSAgICAgICAgQWxzbyBjb2Rpbmcgc3R5bGUgaW4g
ZXhpc3RpbmcgZnVuY3Rpb25zIGlzIGZpeGVkLgotCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0X3V0
aWxzLmM6IENvZGluZyBzdHlsZSBmaXhlcy4KLSAgICAgICAgKHRlc3R1dGlsc19yZWxhdGl2ZV9j
aGRpcik6IElmIFdFQktJVFJFUE9ESVIgaXMgc2V0LCBjaGFuZ2UgY3VycmVudCBkaXJlY3Rvcnkg
dG8gaXQuCi0gICAgICAgICogdGVzdHMvdGVzdF91dGlscy5oOiBDb2Rpbmcgc3R5bGUgZml4ZXMu
Ci0KLTIwMTEtMDctMTIgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KLQot
ICAgICAgICBBcHBsaWNhdGlvbkNhY2hlIHVwZGF0ZSBzaG91bGQgbm90IGltbWVkaWF0ZWx5IGZh
aWwgd2hlbiByZWFjaGluZyBwZXItb3JpZ2luIHF1b3RhCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDE3NwotCi0gICAgICAgIFJldmlld2VkIGJ5IEFs
ZXhleSBQcm9za3VyeWFrb3YuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5oOgotCi0yMDExLTA2LTE0ICBNaWtlIFN0ZWdlbWFuICA8bXJzdGVnZW1hbkBnbWFp
bC5jb20+Ci0KLSAgICAgICAgQWRkIEFQSSB0byBXZWJLaXQtR1RLIHRvIGFsbG93IHNldHRpbmcg
bG9jYWxTdG9yYWdlIGRhdGFiYXNlIHBhdGgKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyMDkxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJv
Ymluc29uIGFuZCBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgRXhwb3NlIHRoZSBwYXRoIG9m
IHRoZSBsb2NhbFN0b3JhZ2UgZGF0YWJhc2VzIHRocm91Z2ggYSBzZXR0aW5nCi0gICAgICAgIHRv
IGFsbG93IEhUTUw1IGxvY2FsU3RvcmFnZSB0byBiZSBwZXJzaXN0ZW50LiBOZXcgc2V0dGluZyBp
czoKLSAgICAgICAgaHRtbDUtbG9jYWwtc3RvcmFnZS1kYXRhYmFzZS1wYXRoCi0KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0
aW5nc19jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3Bl
cnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0
aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKLQotMjAx
MS0wNy0wOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9y
YS5jb20+Ci0KLSAgICAgICAgW0dUS10gdGVzdHdlYnZpZXcgQVBJIHRlc3QgZmFpbHMgYWZ0ZXIg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTA0NzEKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MTU5Ci0KLSAgICAgICAgUmV3b3JrIHRo
ZSBpY29uLXVyaSBjaGFuZ2UgdGVzdCBzbyB0aGF0IHRoZSBjb25kaXRpb24gZm9yIHF1aXR0aW5n
Ci0gICAgICAgIHRoZSBtYWlubG9vcCBpcyB0aGUgaWNvbi11cmkgY2hhbmdlIGl0c2VsZiwgYWxv
bmcgd2l0aCBhIHRpbWVvdXQKLSAgICAgICAgdG8gYXZvaWQgdGFraW5nIHRvbyBsb25nIGluIGNh
c2Ugb2YgZmFpbHVyZS4gU2luY2UgdGhlIGNvbmRpdGlvbnMKLSAgICAgICAgZm9yIGNvbnNpZGVy
aW5nIGEgcGFnZSBsb2FkZWQgd2VyZSBjaGFuZ2VkIHdlIGNhbid0IHJlbHkgb24gdGhhdAotICAg
ICAgICBmb3IgdGhpcyB0ZXN0IGFueW1vcmUuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExv
cGV6LgotCi0gICAgICAgICogdGVzdHMvdGVzdHdlYnZpZXcuYzoKLSAgICAgICAgKHRpbWVvdXRf
Y2IpOiBlcnJvciBvdXQgaWYgaXQgdGFrZXMgdG9vIGxvbmcgZm9yIHRoZSBpY29uLXVyaQotICAg
ICAgICBjaGFuZ2UgdG8gaGFwcGVuLgotICAgICAgICAoaWNvbl91cmlfY2hhbmdlZF9jYik6IHF1
aXQgdGhlIGxvb3AgaGVyZSBpbnN0ZWFkIG9mIHdhaXRpbmcgb24KLSAgICAgICAgdGhlIHBhZ2Ug
YmVpbmcgbG9hZGVkLgotICAgICAgICAodGVzdF93ZWJraXRfd2ViX3ZpZXdfaWNvbl91cmkpOgot
Ci0yMDExLTA3LTAxICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBBZGQg
RGV2aWNlT3JpZW50YXRpb24gZmVhdHVyZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjM3MjAKLQotICAgICAgICBBZGQgZW1wdHkgaW1wbGVtZW50YXRp
b24gb2YgRGV2aWNlTW90aW9uQ2xpZW50IGFuZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCBjYWxs
YmFjayBtZXRob2RzLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06Ci0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50R3RrLmNwcDogQWRkZWQuCi0gICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRHdGs6OkRldmljZU1vdGlvbkNsaWVudEd0ayk6Ci0g
ICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRHdGs6On5EZXZpY2VNb3Rpb25DbGll
bnRHdGspOgotICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50R3RrOjpkZXZpY2VN
b3Rpb25Db250cm9sbGVyRGVzdHJveWVkKToKLSAgICAgICAgKFdlYkNvcmU6OkRldmljZU1vdGlv
bkNsaWVudEd0azo6c2V0Q29udHJvbGxlcik6Ci0gICAgICAgIChXZWJDb3JlOjpEZXZpY2VNb3Rp
b25DbGllbnRHdGs6OnN0YXJ0VXBkYXRpbmcpOgotICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90
aW9uQ2xpZW50R3RrOjpzdG9wVXBkYXRpbmcpOgotICAgICAgICAoV2ViQ29yZTo6RGV2aWNlTW90
aW9uQ2xpZW50R3RrOjpjdXJyZW50RGV2aWNlTW90aW9uKToKLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EZXZpY2VNb3Rpb25DbGllbnRHdGsuaDogQWRkZWQuCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGsuY3BwOiBBZGRlZC4KLSAgICAgICAgKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50R3RrOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dEd0ayk6Ci0gICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0azo6fkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50R3RrKToKLSAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50R3RrOjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQpOgot
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGs6OnNldENvbnRyb2xs
ZXIpOgotICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGs6OnN0YXJ0
VXBkYXRpbmcpOgotICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGs6
OnN0b3BVcGRhdGluZyk6Ci0gICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dEd0azo6bGFzdE9yaWVudGF0aW9uKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudEd0ay5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6Ci0KLTIwMTEtMDYtMjgg
IEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIEFsbG93IHRvIGJ1aWxkIFdl
YktpdEd0aysgd2l0aCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM0MDQKLQotICAgICAgICBXZWJLaXRHdGsr
IG5lZWRzIHRvIGltcGxlbWVudCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBmb3IgcnVubmluZyBD
U1MzIDNEIHRyYW5zZm9ybXMgCi0gICAgICAgIGFuZCBhbmltYXRpb24gdGhyb3VnaCBHUFUgYWNj
ZWxlcmF0aW9uLiBXZSBjb3VsZCBpbXBsZW1lbnQgR3JhcGhpY3NMYXllciB1c2luZyBDbHV0dGVy
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6IG5vdCBp
bXBsZW1lbnRlZCB5ZXQuCi0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0TmVlZHNP
bmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbik6IERpdHRvLgotICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMpOiBEaXR0by4KLSAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphbGxvd2VkQ29tcG9zaXRpbmdUcmlnZ2Vycyk6IERp
dHRvLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDEx
LTA2LTI3ICBDaGFuZ1Nlb2sgT2ggIDxzaGl2YW1pZG93QGdtYWlsLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gRml4IGJ1aWxkIGJy
ZWFrIHRvIHN1cHBvcnQgd2ViZ2wKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYzNDI1Ci0KLSAgICAgICAgQSBtZW1iZXIgdmFyaWFibGUgZW5hYmxlV2Vi
R0wgaW4gV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlIGlzIGNoYW5nZWQgdG8gZW5hYmxlV2ViZ2wK
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotCi0yMDExLTA2LTI0ICBEb21pbmljIENvb25leSAg
PGRvbWluaWNjQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEds
YXprb3YuCi0KLSAgICAgICAgQ29udmVydCBzaGFkb3cgRE9NLXJlbGF0ZWQgdGVzdHMgdG8gdXNl
IHdpbmRvdy5pbnRlcm5hbHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYxNjcxCi0KLSAgICAgICAgUmVtb3ZlIHNoYWRvdy1ET00gcmVsYXRlZCBtZXRo
b2RzIGZyb20gR1RLIERSVCBBUEkuIFRoZXNlIGFyZSBub3QKLSAgICAgICAgcmVxdWlyZWQgYW55
IG1vcmUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oOgotCi0yMDExLTA2LTIwICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5v
cmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCi0KLSAgICAgICAgRmlsZUNo
b29zZXIgc2hvdWxkIGJlIG9ubHkgY3JlYXRlZCB3aGVuIHdlIG5lZWQgdG8gY2hvb3NlIGZpbGVz
LgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwMzkK
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKTogQ2hhbmdlZCB0byB1c2Ugc2V0
dGluZ3MuCi0KLTIwMTEtMDYtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RL
XSBNYWtlIHN1cmUgbGlic291cCBwYXNzd29yZCBtYW5hZ2VyIG1hY3JvIGlzIGRlZmluZWQgYmVm
b3JlIGluY2x1ZGluZyBsaWJzb3VwIGluIHdlYmtpdHNvdXBhdXRoZGlhbG9nCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzEyNAotCi0gICAgICAgIEZp
eGVzIGEgY3Jhc2ggd2hlbiBidWlsZGluZyB3aXRoIC0tZW5hYmxlLWRlYnVnLgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmg6IERlZmluZQotICAgICAgICBMSUJTT1VQ
X0lfSEFWRV9SRUFEX0JVR181OTQzNzdfQU5EX0tOT1dfU09VUF9QQVNTV09SRF9NQU5BR0VSX01J
R0hUX0dPX0FXQVkKLSAgICAgICAgYmVmb3JlIGluY2x1ZGluZyBsaWJzb3VwLmguCi0KLTIwMTEt
MDYtMTAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSB3ZWJraXRfd2ViX3NldHRp
bmdzX2NvcHkgZG9lcyBub3QgY29weSBhbGwgc2V0dGluZ3MKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNDI0Ci0KLSAgICAgICAgSW5zdGVhZCBvZiB0
cnlpbmcgdG8ga2VlcCB3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkgdXAgdG8gZGF0ZSB3aXRoCi0g
ICAgICAgIHByb3BlcnR5IGFkZGl0aW9ucywgY3JlYXRlIHRoZSBvYmplY3QgY29weSBieSBkeW5h
bWljYWxseSBpbml0aWFsaXppbmcKLSAgICAgICAgYWxsIHdlYmtpdF93ZWJfc2V0dGluZ3MgcHJv
cGVydGllcyBhdCBvbmNlLgotCi0gICAgICAgICogdGVzdHMvdGVzdHdlYnNldHRpbmdzLmM6Ci0g
ICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfc2V0dGluZ3NfY29weSk6IENyZWF0ZSBhIHRlc3QgZm9y
IHdlYmtpdF93ZWJfc2V0dGluZ3MgY29weS4KLSAgICAgICAgKG1haW4pOiBSdW4gdGhlIG5ldyB0
ZXN0LgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOiBEeW5hbWljYWxseSBpbml0aWFsaXplIGFsbCBwcm9w
ZXJ0aWVzIG9mIHRoZSBjb3B5LgotCi0yMDExLTA2LTIwICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KLQot
ICAgICAgICBbR1RLXSBDbGVhbiB1cCB1bmVjZXNzYXJ5IGJvaWxlcnBsYXRlIGZyb20gV2ViS2l0
V2ViU2V0dGluZ3MgYW5kIG1ha2UgcHJpdmF0ZSBtZW1iZXJzIG1lZXQgV2ViS2l0IHN0eWxlIGd1
aWRlbGluZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYxOTcyCi0KLSAgICAgICAgUmVuYW1lIGFsbCBwcml2YXRlIG1lbWJlcnMgb2YgV2ViS2l0V2Vi
U2V0dGluZ3MgdG8gbWVldCBXZWJLaXQgc3R5bGUgZ3VpZGVsaW5lcyBhbmQKLSAgICAgICAgcHV0
IHRoZSBwcml2YXRlIHN0cnVjdCBkZWZpbml0aW9uIGluIHdlYmtpdHdlYnNldHRpbmdzcHJpdmF0
ZS5oIHNvIGl0IGNhbiBiZQotICAgICAgICBhY2Nlc3NlZCBmcm9tIHdlYmtpdHdlYnZpZXcuY3Bw
LiBUaGlzIGN1dHMgZG93biBvbiB0aGUgYm9pbGVycGxhdGUgaW1tZW5zZWx5LgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDogUmVuYW1lIHByaXZhdGUgbWVtYmVycyB0
byBtZWV0IFdlYktpdCBzdHlsZSBndWlkZWxpbmVzCi0gICAgICAgIGFuZCBhbGxvY2F0ZSB0aGUg
cHJpdmF0ZSBzZWN0aW9uIHdpdGggbmV3L2RlbGV0ZS4gVGhpcyBhbGxvd3MgZm9yIHVzaW5nIENT
dHJpbmcgYW5kIHJlbW92ZXMKLSAgICAgICAgdGhlIG5lZWQgZm9yIG1hbnVhbCBzdHJpbmcgbWVt
b3J5IG1hbmFnZW1lbnQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0
ZS5oOiBNb3ZlIHRoZSBwcml2YXRlIHN0cnVjdCBkZWZpbml0aW9uIGhlcmUuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBVcGRhdGUgdG8gcmVmbGVjdCBuZXcgc3RydWN0IG5h
bWVzLiBSZW1vdmUgYm9pbGVycGxhdGUKLSAgICAgICAgYW5kIG90aGVyIHZlcnkgc21hbGwgY29k
ZSBjbGVhbnVwcy4KLQotMjAxMS0wNi0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAg
IFtHVEtdIFNwbGl0IGxpYldlYkNvcmUgaW50byB0d28gbGliV2ViQ29yZSBhbmQgbGliV2ViQ29y
ZUd0awotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA1
MzkKLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBMaW5rIHRvIGxpYldlYkNvcmVHdGsubGEg
dG9vLgotCi0yMDExLTA2LTE4ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5v
cmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgU2VwYXJh
dGUgY29uY2VybnMgb2YgbG9hZGluZyBmaWxlIGljb25zIGFuZCBjaG9vc2luZyBmaWxlcy4KLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyOTMxCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMpOiBSZW5hbWVkLgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDExLTA2LTE3ICBKb29uZSBI
dXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1h
cnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBj
YWlyb19yZWN0YW5nbGVfaW50X3QKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYwNjg3Ci0KLSAgICAgICAgUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fp
cm9fcmVjdGFuZ2xlX2ludF90LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcDogUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFu
Z2xlX2ludF90LgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJzdFJlY3RG
b3JDaGFyYWN0ZXJSYW5nZSk6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJl
Y3RhbmdsZUZvclNlbGVjdGlvbik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmg6IERpdHRvLgotCi0yMDExLTA2LTE2ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByODkwMjYuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzg5
MDI2Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Mjgw
NAotCi0gICAgICAgIFRoZXNlIHBhdGNoZXMgd2VyZSBsaWtlbHkgY29ycmVjdC4gIEknbGwgaW52
ZXN0aWdhdGUgdGhlCi0gICAgICAgIGJyb3dzZXJfdGVzdCBmYWlsdXJlcy4gKFJlcXVlc3RlZCBi
eSBhYmFydGggb24gI3dlYmtpdCkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GdWxsc2Ny
ZWVuVmlkZW9Db250cm9sbGVyLmNwcDoKLSAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xs
ZXI6OnBsYXkpOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6cGF1c2UpOgot
Ci0yMDExLTA2LTE2ICBWaXRhbHkgUmVwZXNoa28gIDx2aXRhbHlyQGNocm9taXVtLm9yZz4KLQot
ICAgICAgICBVbnJldmlld2VkLgotCi0gICAgICAgIFJldmVydCBBZGFtJ3MgdXNlciBnZXN0dXJl
IHBhdGNoIHNlcmllcyByODkwMDIsIHI4OTAwNSwgcjg5MDA3LCByODkwMTgKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyNzk2Ci0KLSAgICAgICAgVGhl
IHBhdGNoZXMgYnJva2UgY2hyb21pdW0gYnJvd3NlciB0ZXN0cy4KLTIwMTEtMDYtMTYgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KLQotICAgICAgICBSZW1vdmUgSFRNTFZpZGVvRWxlbWVudDo6cHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
Mjc4NAotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxl
ci5jcHA6Ci0gICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpwbGF5KToKLSAgICAg
ICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnBhdXNlKToKLQotMjAxMS0wNi0xNSAgQ2xh
dWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBGaXggdGhlIGJ1aWxkIHdpdGggaW50cm9z
cGVjdGlvbiBlbmFibGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MjcwNQotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06IFJlbW92ZSBpbmNsdWRl
IG9mICouYyBmaWxlcywgc2luY2UKLSAgICAgICAgdGhlcmUgYXJlIG5vIHN1Y2ggZmlsZXMgYW55
bW9yZS4KLQotMjAxMS0wNi0xNCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIFJlbW92
ZSBHX0NPTlNUX1JFVFVSTiB1c2FnZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjI2NzMKLQotICAgICAgICBDaGFuZ2UgR19DT05TVF9SRVRVUk4gZm9y
IGEgc2ltcGxlICJjb25zdCIgdGhyb3VnaG91dCB0aGUKLSAgICAgICAgY29kZWJhc2UsIHNpbmNl
IEdfQ09OU1RfUkVUVVJOIGlzIGRlcHJlY2F0ZWQgbm93LiBUaGlzIHNob3VsZCBiZQotICAgICAg
ICB0b3RhbGx5IGVxdWl2YWxlbnQgc2luY2UgZm9yIGFsbCBwcmFjdGljYWwgcHVycG9zZXMgdGhl
IG1hY3JvIGlzCi0gICAgICAgIGFsd2F5cyBleHBhbmRlZCB0byBjb25zdC4KLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcDoKLSAgICAgICAgKHdlYmtpdF9hcHBs
aWNhdGlvbl9jYWNoZV9nZXRfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgpOiB1c2UgY29uc3QKLSAg
ICAgICAgaW5zdGVhZCBvZiBHX0NPTlNUX1JFVFVSTi4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
YXBwbGljYXRpb25jYWNoZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRpY29uZGF0YWJhc2Uu
Y3BwOgotICAgICAgICAod2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0X3BhdGgpOiBkaXR0by4KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNlLmg6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdG5ldHdvcmtyZXF1ZXN0LmNwcDoKLSAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rf
Z2V0X3VyaSk6IGRpdHRvLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5o
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuY3BwOgotICAgICAgICAo
d2Via2l0X25ldHdvcmtfcmVzcG9uc2VfZ2V0X3VyaSk6IGRpdHRvLgotICAgICAgICAqIHdlYmtp
dC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c2VjdXJp
dHlvcmlnaW4uY3BwOgotICAgICAgICAod2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfcHJvdG9j
b2wpOiBkaXR0by4KLSAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X2hvc3QpOiBk
aXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uaDoKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9kYXRh
YmFzZV9nZXRfbmFtZSk6IGRpdHRvLgotICAgICAgICAod2Via2l0X3dlYl9kYXRhYmFzZV9nZXRf
ZGlzcGxheV9uYW1lKTogZGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2ViX2RhdGFiYXNlX2dldF9m
aWxlbmFtZSk6IGRpdHRvLgotICAgICAgICAod2Via2l0X2dldF93ZWJfZGF0YWJhc2VfZGlyZWN0
b3J5X3BhdGgpOiBkaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuaDoK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2RhdGFfc291cmNlX2dldF9lbmNvZGluZyk6IGRpdHRvLgotICAgICAgICAod2Via2l0
X3dlYl9kYXRhX3NvdXJjZV9nZXRfdW5yZWFjaGFibGVfdXJpKTogZGl0dG8uCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfdGl0bGUpOiBkaXR0by4K
LSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3VyaSk6IGRpdHRvLgotICAgICAgICAod2Vi
a2l0X3dlYl9mcmFtZV9nZXRfbmFtZSk6IGRpdHRvLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJmcmFtZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdGl0bGUpOiBkaXR0by4KLSAgICAg
ICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9hbHRlcm5hdGVfdGl0bGUpOiBkaXR0by4K
LSAgICAgICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF91cmkpOiBkaXR0by4KLSAgICAg
ICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9vcmlnaW5hbF91cmkpOiBkaXR0by4KLSAg
ICAgICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90YXJnZXQpOiBkaXR0by4KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViaGlzdG9yeWl0ZW1wcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5h
dmlnYXRpb25hY3Rpb24uY3BwOgotICAgICAgICAod2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlv
bl9nZXRfdGFyZ2V0X2ZyYW1lKTogZGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5h
dmlnYXRpb25hY3Rpb24uaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3Bw
OgotICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfdXJpKTogZGl0dG8uCi0gICAgICAg
ICh3ZWJraXRfd2ViX3Jlc291cmNlX2dldF9taW1lX3R5cGUpOiBkaXR0by4KLSAgICAgICAgKHdl
YmtpdF93ZWJfcmVzb3VyY2VfZ2V0X2VuY29kaW5nKTogZGl0dG8uCi0gICAgICAgICh3ZWJraXRf
d2ViX3Jlc291cmNlX2dldF9mcmFtZV9uYW1lKTogZGl0dG8uCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnJlc291cmNlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNw
cDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3VzZXJfYWdlbnQpOiBkaXR0by4K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxlKTog
ZGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaSk6IGRpdHRvLgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2dldF9pY29uX3VyaSk6IGRpdHRvLgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdjb21tb24u
aDoKLQotMjAxMS0wNi0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtH
VEtdIFJlbmFtZSBjb252ZXJ0V2lkZ2V0UmVjdFRvU2NyZWVuUmVjdCgpIHRvIGNvbnZlcnRXaWRn
ZXRQb2ludFRvU2NyZWVuUG9pbnQoKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjI2MjYKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6d2luZG93VG9TY3Jl
ZW4pOiBVcGRhdGUgdG8gdXNlCi0gICAgICAgIGNvbnZlcnRXaWRnZXRQb2ludFRvU2NyZWVuUG9p
bnQoKQotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcmVlblRvV2luZG93KTogRGl0
dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBSZW1vdmUgZ2xvYmFsUG9p
bnRGb3JDbGllbnRQb2ludCgpCi0gICAgICAgIHNpbmNlIGl0IGRvZXMgdGhlIHNhbWUgdGhhbiBj
b252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVlblBvaW50KCkuCi0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfcG9wdXBfbWVudV9oYW5kbGVyKTogVXNlCi0gICAgICAgIGNvbnZlcnRXaWRnZXRQb2ludFRv
U2NyZWVuUG9pbnQoKSBpbnN0ZWFkIG9mIGdsb2JhbFBvaW50Rm9yQ2xpZW50UG9pbnQoKS4KLSAg
ICAgICAgKGRvRHJhZ0xlYXZlTGF0ZXIpOiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19kcmFnX21vdGlvbik6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZGF0
YV9yZWNlaXZlZCk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZHJvcCk6
IERpdHRvLgotCi0yMDExLTA2LTE0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAg
ICAgW0dUS10gU3VwcG9ydCBhdXRoZW50aWNhdGlvbiBkaWFsb2dzIGluIFdlYktpdDIKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzY2Ci0KLSAgICAg
ICAgTW92ZSB0aGUgY29tbW9uIGNvZGUgb2Ygd2Via2l0c291cGF1dGhkaWFsb2cgdG8gYSBjb21t
b24gQysrIGNsYXNzCi0gICAgICAgIGluIFdlYkNvcmUgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBi
eSBXZWJLaXQyIHRvby4gVGhlIGZpbGUgaGFzCi0gICAgICAgIGJlZW4gY29udmVydGVkIGludG8g
YSBDKysgZmlsZS4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZW5hbWUgd2Via2l0c291
cGF1dGhkaWFsb2cuYyB0bwotICAgICAgICB3ZWJraXRzb3VwYXV0aGRpYWxvZy5jcHAuCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmM6IFJlbW92ZWQuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmNwcDogQWRkZWQuCi0gICAgICAgICh3ZWJraXRf
c291cF9hdXRoX2RpYWxvZ19jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF9zb3VwX2F1dGhf
ZGlhbG9nX2luaXQpOgotICAgICAgICAod2Via2l0X3NvdXBfYXV0aF9kaWFsb2dfc2Vzc2lvbl9m
ZWF0dXJlX2luaXQpOgotICAgICAgICAoc2Vzc2lvbkF1dGhlbnRpY2F0ZSk6IFVzZSBHdGtBdXRo
ZW50aWNhdGlvbkRpYWxvZyBvYmplY3QgZnJvbQotICAgICAgICBXZWJDb3JlLgotICAgICAgICAo
YXR0YWNoKToKLSAgICAgICAgKGRldGFjaCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNvdXBh
dXRoZGlhbG9nLmg6Ci0KLTIwMTEtMDYtMTMgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJv
cmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAg
ICAgIFtHVEtdIEFkZCBjb25maWd1cmUgb3B0aW9uIHRvIGVuYWJsZS9kaXNhYmxlIHJlZ2lzdGVy
IHByb3RvY29sIGhhbmRsZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYyNTM0Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyKTogQWRkZWQuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
Lmg6IEFkZCB0aGUgcmVnaXN0ZXJQcm90b2NvbEhhbmRsZXIgbWV0aG9kIGRlZmludGlvbi4KLQot
MjAxMS0wNi0xMyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFVwZGF0
ZSBndGtkb2MgZmlsZXMgYW5kIGlubGluZSBkb2N1bWVudGF0aW9uIHRvIHJlZHVjZSBndGtkb2Mg
ZXJyb3JzCi0gICAgICAgIGFuZCBlbnN1cmUgY29tcGxldGUgZG9jdW1lbnRhdGlvbiBvdXRwdXQu
Ci0KLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50eHQ6IEFkZCBtaXNzaW5nIHNl
Y3Rpb25zIHRvIHRoZSBsaXN0IGFuZCByZW1vdmUKLSAgICAgICAgdW5uZWVkZWQgc2VjdGlvbnMu
Ci0gICAgICAgICogZG9jcy93ZWJraXRndGsudHlwZXM6IFVwZGF0ZSB0aGUgdHlwZXMgbGlzdC4K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5jcHA6IEZpeCBpbmxpbmUgZG9j
dW1lbnRhdGlvbiBlcnJvcnMuCi0gICAgICAgICh3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NsYXNz
X2luaXQpOiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNlLmNwcDog
RGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDogRGl0dG8uCi0g
ICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOiBEaXR0by4KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2NsYXNzX2luaXQpOiBEaXR0by4KLQotMjAxMS0wNi0xMyAgTWFydGluIFJvYmluc29uICA8
bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6Lgot
Ci0gICAgICAgIFVwZGF0ZSB0aGUgbGlzdCBvZiBpZ25vcmVkIEdUSysgaGVhZGVyIGZpbGVzIGZv
ciB0aGUgZG9jdW1lbnRhdGlvbgotICAgICAgICBnZW5lcmF0aW9uLgotCi0gICAgICAgICogZG9j
cy9HTlVtYWtlZmlsZS5hbTogVXBkYXRlIGlnbm9yZWQgaGVhZGVyIGxpc3QuCi0KLTIwMTEtMDYt
MTMgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBVcGRhdGUgTkVXUyBmb3IgMS41LjEgcmVsZWFz
ZS4KLQotICAgICAgICAqIE5FV1M6IHVwZGF0ZS4KLQotMjAxMS0wNi0xMyAgWGFuIExvcGV6ICA8
eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29u
LgotCi0gICAgICAgIERpc3RjaGVjayBmaXhlcy4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgotCi0yMDExLTA2LTEzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dU
S10gRXhwb3J0IGFuIEFQSSBzaW1pbGFyIHRvIFdlYktpdDEKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3ODIwCi0KLSAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogQWRkIHdlYmtpdHdlYnZpZXdjb21tb24uaCB0byBwdWJsaWMgaGVhZGVyIGxpc3QuCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDogTW92ZSBkZWNsYXJhdGlvbnMgY29tbW9u
IHRvIFdlYktpdDIgdG8KLSAgICAgICAgd2Via2l0d2Vidmlld2NvbW1vbi5oLgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3Y29tbW9uLmg6IEFkZGVkLgotCi0yMDExLTA2LTEyICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5
IFByb3NrdXJ5YWtvdi4KLQotICAgICAgICBSZW5hbWUgRnJhbWVMb2FkZXJDbGllbnQ6OmludGVy
cnVwdEZvclBvbGljeUNoYW5nZUVycm9yIHRvIHVzZSB0aGUgcGFzdCB0ZW5zZQotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI1MTYKLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMTEt
MDYtMTIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBSZW1vdmUgd2Via2l0X3dlYl92
aWV3X2dldF9zZWxlY3RlZF90ZXh0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MjUxMgotCi0gICAgICAgIEl0J3Mgbm8gbG9uZ2VyIHVzZWQgYW5kIGl0
J3MgYSBwcml2YXRlIG1ldGhvZCwgc28gaXQgY2FuIGJlCi0gICAgICAgIHJlbW92ZWQuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6IGtpbGwgaXQuCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IGRpdHRvLgotCi0yMDExLTA2LTEyICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFBy
b3NrdXJ5YWtvdi4KLQotICAgICAgICBSZW1vdmUgdHJpdmFsICJmb3J3YXJkLXRvLWNsaWVudCIg
bWVtYmVyIGZ1bmN0aW9ucyBmcm9tIEZyYW1lTG9hZGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjUxMAotCi0gICAgICAgIFVwZGF0ZSB0byBjYWxs
IHRoZSBGcmFtZUxvYWRlckNsaWVudCBkaXJlY3RseS4gIEFsc28sIHJlbW92ZSBjYXJnby1jdWx0
Ci0gICAgICAgIGNvZGUgdGhhdCBjaGVja3Mgd2hldGhlciBGcmFtZUxvYWRlciBpcyBudWxsLgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X3N0b3BfbG9hZGluZyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2FuX3Nob3df
bWltZV90eXBlKToKLQotMjAxMS0wNi0wOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGln
YWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCi0KLSAgICAgICAg
W0dUS10gSW1wbGVtZW50IHRoZSBuZXh0IGJpdCBvZiB0aGUgVGV4dElucHV0Q29udHJvbGxlciAo
aGFzTWFya2VkVGV4dCBhbmQgbWFya2VkUmFuZ2UpCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTYwMwotCi0gICAgICAgIEFkZGVkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydCBtZXRob2RzIHRvIHN1cHBvcnQgaGFzTWFya2VkVGV4dCBhbmQgbWFya2VkUmFu
Z2UuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRDb21wb3NpdGlvbik6
IFVzZSBzdGFydCBhbmQgbGVuZ3RoIHJhdGhlciB0aGFuIHN0YXJ0IGFuZAotICAgICAgICBlbmQu
IFRoaXMgbWF0Y2hlcyBvdGhlciBwb3J0cy4gT25seSB1c2UgR0xpYiBzdHlsZSBlYXJseSByZXR1
cm5zIHdoZW4gY2hlY2tpbmcgdGhlCi0gICAgICAgIHZhbGlkaXR5IG9mIEdPYmplY3RzLgotICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpoYXNDb21wb3NpdGlvbik6ICBBZGRlZC4K
LSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y29tcG9zaXRpb25SYW5nZSk6IEFk
ZGVkLgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjb25maXJtQ29tcG9zaXRp
b24pOiBDbGVhbnVwIGFzIGRlc2NyaWJlZCBhYm92ZS4KLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UpOiBDbGVhbnVwIGFzIGRlc2Ny
aWJlZCBhYm92ZS4KLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0ZWRS
YW5nZSk6IENsZWFudXAgYXMgZGVzY3JpYmVkIGFib3ZlLgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOiBBZGRlZCBuZXcgZGVjbGFyYXRpb25zLgot
Ci0yMDExLTA2LTA4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gQWRkIFdlYktpdFNw
ZWxsQ2hlY2tlciBpbnRlcmZhY2UgYW5kIGltcGxlbWVudGF0aW9ucwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3ODcKLQotICAgICAgICBFeHBvc2Ug
dGhlIHNwZWxsIGNoZWNraW5nIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIFVBcyB0aHJvdWdoIGEKLSAg
ICAgICAgZ2VuZXJpYyBpbnRlcmZhY2UsIGFuZCBwcm92aWRlIGEgZGVmYXVsdCBFbmNoYW50LWJh
c2VkCi0gICAgICAgIGltcGxlbWVudGF0aW9uLiBPbiB0b3Agb2YgYWxsb3dpbmcgVUFzIHRvIHVz
ZSB0aGlzIGZ1bmN0aW9uYWxpdHkKLSAgICAgICAgdGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBj
aGFuZ2UgdGhlIHNwZWxsIGNoZWNraW5nIGJhY2tlbmQgYXQKLSAgICAgICAgcnVudGltZS4KLQot
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGQgbmV3IGZpbGVzLgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6RWRpdG9yQ2xpZW50KTogc2V0IHRoZSBzcGVsbCBjaGVja2VyIHVzaW5nCi0gICAgICAg
IHRoZSBuZXcgY2xhc3Nlcy4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNs
aWVudEVuY2hhbnQuY3BwOiBSZW1vdmVkLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRD
aGVja2VyQ2xpZW50R3RrLmNwcDogQWRkZWQKLSAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJD
bGllbnRHdGs6OlRleHRDaGVja2VyQ2xpZW50R3RrKToganVzdAotICAgICAgICBjaGFpbiB1cCB0
byB0aGUgV2ViS2l0U3BlbGxDaGVja2VyLgotICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNs
aWVudEd0azo6flRleHRDaGVja2VyQ2xpZW50R3RrKTogZGl0dG8uCi0gICAgICAgIChXZWJLaXQ6
OlRleHRDaGVja2VyQ2xpZW50R3RrOjppZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KTogZGl0dG8u
Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50R3RrOjpsZWFybldvcmQpOiBkaXR0
by4KLSAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDbGllbnRHdGs6OmNoZWNrU3BlbGxpbmdP
ZlN0cmluZyk6IGRpdHRvLgotICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0azo6
Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQpOiBkaXR0by4KLSAgICAg
ICAgKFdlYktpdDo6VGV4dENoZWNrZXJDbGllbnRHdGs6OmdldEd1ZXNzZXNGb3JXb3JkKTogZGl0
dG8uCi0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50R3RrOjp1cGRhdGVTcGVsbENo
ZWNraW5nTGFuZ3VhZ2UpOiBkaXR0by4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hl
Y2tlckNsaWVudEd0ay5oOiBzdG9yZSBhIHJlZmVyZW5jZSB0bwotICAgICAgICB0aGUgV2ViS2l0
U3BlbGxDaGVja2VyLgotICAgICAgICAqIHdlYmtpdC93ZWJraXQuaDogdGhlIHdlYmtpdHNwZWxs
Y2hlY2tlci5oIGhlYWRlciBpcyBwdWJsaWMuCi0gICAgICAgICogd2Via2l0L3dlYmtpdGRlZmlu
ZXMuaDogZGVmaW5lcyBmb3Igc3BlbGwgY2hlY2tlciBpbnRlcmZhY2UuCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdGdsb2JhbHMuY3BwOiBBZGQgQVBJcyB0byBnZXQgYW5kIHNldCB0aGUgZ2xvYmFs
Ci0gICAgICAgIHNwZWxsIGNoZWNrZXIuCi0gICAgICAgICh3ZWJraXRfZ2V0X3NwZWxsX2NoZWNr
ZXIpOiBnZXQgQVBJLgotICAgICAgICAod2Via2l0X3NldF9zcGVsbF9jaGVja2VyKTogc2V0IEFQ
SS4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5oOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXRzcGVsbGNoZWNrZXIuY3BwOiBBZGRlZC4gU3BlbGwgY2hlY2tpbmcgaW50ZXJmYWNlLgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXIuaDogQWRkZWQuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwOiBBZGRlZC4gRGVmYXVsdAotICAg
ICAgICBpbXBsZW1lbnRpb24sIHVzZXMgRW5jaGFudCBsaWJyYXJ5LgotICAgICAgICAqIHdlYmtp
dC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50Lmg6IEFkZGVkLgotCi0yMDExLTA2LTA3ICBYYW4g
TG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gIndlYmtpdGhpdHRlc3RyZXN1bHQuaCIgaXMgbWFs
Zm9ybWVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MjExNwotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuaDogZml4IHR5cG8g
aW4gR0VUX0NMQVNTIG1hY3JvLgotCi0yMDExLTA1LTMxICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCi0K
LSAgICAgICAgW0dUS10gU3VwcG9ydCBzbWFydCByZXBsYWNlIGZvciB0aGUgcGFzdGVib2FyZAot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE3MzQKLQot
ICAgICAgICBBZGQgdGhlIEVkaXRvckNsaWVudCBhbmQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
IGhvb2tzIGZvciBlbmFibGluZwotICAgICAgICBzbWFydCByZXBsYWNlIGluIHRoZSB0ZXN0cy4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpEcmFnQ2xpZW50OjpzdGFydERyYWcpOiB0YXJnZUxpc3RGb3JEYXRhT2JqZWN0IG5v
dyB0YWtlcyBhbm90aGVyCi0gICAgICAgIHBhcmFtZXRlciBkZXRlcm1pbmluZyB3aGV0aGVyIG9y
IG5vdCB0byBhZGQgc21hcnQgcGFzdGUgc3VwcG9ydC4gQWRkIGl0IGhlcmUuCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKTogQWRk
ZWQuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6
IEFkZCBuZXcgbWV0aG9kIGRlZmluaXRpb24uCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojp0b2dnbGVT
bWFydEluc2VydERlbGV0ZSk6IEFkZGVkIGltcGxlbWVudGF0aW9uLgotICAgICAgICAoV2ViS2l0
OjpFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6IEFkZGVkLgotICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6IEFkZCBuZXcgbWV0aG9kIGRlZmluaXRpb24uCi0K
LTIwMTEtMDYtMDMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIFVu
cmVmIHRoZSBTb3VwU2Vzc2lvbiB1c2VkIGJ5IFdlYktpdEd0aysgYXQgZXhpdAotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAxNjUKLQotICAgICAgICBX
ZWJLaXRHdGsrIGNyZWF0ZXMgYSBTb3VwU2Vzc2lvbiBpbnN0YW5jZSB0byBoYW5kbGUgbmV0d29y
ayBzdHVmZgotICAgICAgICB0aGF0IGlzIG5ldmVyIGZyZWVkLiBXZSBzaG91bGQgdW5yZWYgdGhh
dCBvYmplY3QgYXQgZXhpdCB0aW1lLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMu
Y3BwOgotICAgICAgICAod2Via2l0RXhpdCk6Ci0gICAgICAgICh3ZWJraXRJbml0KToKLQotMjAx
MS0wNS0yOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFtHVEtdIFJl
bW92ZSBQYXN0Ym9hcmRIZWxwZXJHdGsKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYxNjkwCi0KLSAgICAgICAgUmVtb3ZlIFBhc3RlYm9hcmRIZWxwZXJH
dGsgYW5kIHRhbGsgZGlyZWN0bHkgdG8gV2ViQ29yZSBmb3IgcGFzdGVib2FyZAotICAgICAgICBh
Y3Rpdml0eS4gVGhpcyBjaGFuZ2UgbW92ZXMgdGhlIFBhc3RlYm9hcmRIZWxwZXIgc2luZ2xldG9u
IGZyb20gV2ViS2l0Ci0gICAgICAgIHRvIFdlYkNvcmUuCi0KLSAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogUmVtb3ZlIFBhc3RlYm9hcmRIZWxwZXJHdGsgZnJvbSB0aGUgc291cmNlIGxpc3QuCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6IEFkZGVkIGFz
c2VydGlvbnMgdmVyaWZ5aW5nIHRoYXQgdGhlCi0gICAgICAgIFdlYkNvcmUgdmVyc2lvbnMgb2Yg
dGhlIEd0a0NsaXBib2FyZCBlbnVtcyBtYXRjaCB0aG9zZSBpbiB0aGUgV2ViS2l0IEFQSS4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktp
dDo6RHJhZ0NsaWVudDo6c3RhcnREcmFnKTogQWNjZXNzIHRoZSBwYXN0ZWJvYXJkIGhlbHBlciB2
aWEgYSBzdGF0aWMgbWV0aG9kLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OnNldFNlbGVjdGlvblByaW1hcnlDbGlwYm9hcmRJ
Zk5lZWRlZCk6IERpdHRvLiBDYWxsIGludG8gdGhlIGhlbHBlciB0byBzcGVjaWZ5Ci0gICAgICAg
IHRoYXQgdGhlIGN1cnJlbnQgY2xpcGJvYXJkIGlzIHNlbGVjdGlvbiBwcmltYXJ5IG5vdy4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmNwcDogUmVtb3ZlZC4K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6IFJlbW92ZSBmdW5jdGlvbiB0byBz
ZXQgYW5kIGdldCB0aGUgcGFzdGVib2FyZCBoZWxwZXIuCi0gICAgICAgICogd2Via2l0L3dlYmtp
dGdsb2JhbHNwcml2YXRlLmg6IERpdHRvLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19idXR0b25fcHJlc3NfZXZlbnQpOiBBY2Nl
c3MgdGhlIHBhc3RlYm9hcmQgaGVscGVyIHZpYSBhIHN0YXRpYyBtZXRob2QuCi0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfZHJhZ19kYXRhX2dldCk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2RyYWdfbW90aW9uKTogRGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJh
Z19kYXRhX3JlY2VpdmVkKTogRGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6
IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KTog
RGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bhc3RlX3RhcmdldF9saXN0KTog
RGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IERpdHRvLgot
Ci0yMDExLTA2LTAyICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBPbmx5
IGxvYWQgZGljdGlvbmFyaWVzIGlmIHNwZWxsIGNoZWNrIGlzIGVuYWJsZWQKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyODc5Ci0KLSAgICAgICAgV2Ug
ZG9uJ3QgbmVlZCB0byBjYWxsIGVuY2hhbnQgaWYgZW5hYmxlLXNwZWxsLWNoZWNraW5nIGlzIGZh
bHNlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6IFNraXAgbG9hZGluZyBkaWN0aW9uYXJpZXMg
d2hlbiBlbmFibGUtc3BlbGwtY2hlY2tpbmcgaXMgZmFsc2UuIAotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X3NldHRpbmdzX25vdGlmeSk6IERpdHRvLgotCi0yMDExLTA2LTAxICBYYW4gTG9wZXog
IDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24uCi0KLSAgICAgICAgRXhwbGljdGx5IHJlcXVlc3QgdGhlIHNpemUgb2YgYSBwb2ludGVyIGlu
IG1hbGxvYy4gT3RoZXJ3aXNlIHRoaXMKLSAgICAgICAgZXhwbG9kZXMgaW4gNjRiaXQgYXJjaGl0
ZWN0dXJlcywgYXQgbGVhc3QuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2luLmNw
cDoKLSAgICAgICAgKHdlYmtpdF93ZWJfcGx1Z2luX2dldF9taW1ldHlwZXMpOiBkaXR0by4KLQot
MjAxMS0wNi0wMSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIFV0aWxpdHkgbWV0aG9k
cyBmb3IgVUEgc3BlbGxjaGVja2luZwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjE3ODgKLQotICAgICAgICBBZGRzIGEgY291cGxlIG9mIHV0aWxpdHkg
bWV0aG9kcyBuZWVkZWQgdG8gaW1wbGVtZW50IHNvbWUgYXNwZWN0cwotICAgICAgICBvZiBzcGVs
bCBjaGVja2luZyBzdXBwb3J0IGluIGEgYnJvd3Nlci4KLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX3JlcGxhY2Vfc2VsZWN0
aW9uKTogbWV0aG9kIHRvIHJlcGxhY2UgdGhlIGN1cnJlbnQKLSAgICAgICAgc2VsZWN0aW9uIHdp
dGggYSBzdHJpbmcgb2YgdGV4dC4KLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Jhbmdl
X2Zvcl93b3JkX2Fyb3VuZF9jYXJldCk6IHJldHVybnMgdGhlIERPTQotICAgICAgICByYW5nZSBm
b3IgdGhlIHdvcmQgd2hlcmUgdGhlIGNhcmV0L3NlbGVjdGlvbiBjdXJyZW50bHkgaXMuCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6IGRlY2xhcmUgbmV3IG1ldGhvZHMuCi0KLTIw
MTEtMDUtMzEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBbR1RLXSBn
dGtkb2MgcnVuIHByb2R1Y2VzIG1hbnkgd2FybmluZ3MgYWJvdXQgbWlzc2luZyBkZWNsYXJhdGlv
bnMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzk3
Ci0KLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50eHQ6IFJlbW92ZSBpbmV4aXN0
ZW50IHN5bWJvbHMgZnJvbSB0aGlzIGZpbGUKLSAgICAgICAgdG8gcmVkdWNlIHRoZSBudW1iZXIg
b2YgZ3RrZG9jIHdhcm5pbmdzLgotCi0yMDExLTA1LTMxICBYYW4gTG9wZXogIDx4bG9wZXpAaWdh
bGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAg
ICAgW0dUS10gUHJvdmlkZSBjdXN0b20gRE9NIGJpbmRpbmdzIG1ldGhvZHMgdG8gY2hlY2sgaWYg
aW5wdXQvdGV4dGFyZWFzIGhhdmUgYmVlbiBlZGl0ZWQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzkxCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5h
bTogYWRkIG5ldyBmaWxlcy4KLQotMjAxMS0wNS0yNyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgot
Ci0gICAgICAgIFtHVEtdIERhdGEgZGlyZWN0b3J5IGlzIHdlYmtpdGd0ay14Lnkgbm90IHdlYmtp
dC14LnkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYx
NjQyCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogdXBkYXRlZCBkYXRhIGRpcmVjdG9yeS4K
LQotMjAxMS0wNS0yOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCi0KLSAgICAgICAgQXVkaXQgYWxsIHVz
ZXMgb2YgS1VSTDo6cHJldHR5VVJMCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MTIwMQotCi0gICAgICAgIFVwZGF0ZSBjYWxsZXJzIG9mIHByZXR0eVVS
TCB0byBqdXN0IGNhbGwgc3RyaW5nLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojptb3VzZURpZE1v
dmVPdmVyRWxlbWVudCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25fdXJpKToKLQot
MjAxMS0wNS0yNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxh
Ym9yYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAg
ICAgIENsZWFudXAgcG9zdENvbW1pdEZyYW1lVmlld1NldHVwIHBhcmFtZXRlcnMgd2hpY2ggYXJl
IG5vIGxvbmdlcgotICAgICAgICBuZWNlc3NhcnkgYWZ0ZXIgdGhlIGFkanVzdG1lbnRzIGhhbmRs
aW5nIHJlZmFjdG9yaW5nLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0Ojpwb3N0Q29tbWl0RnJhbWVWaWV3U2V0dXAp
OgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0
dGVkRnJvbUNhY2hlZEZyYW1lKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgotCi0yMDExLTA1LTIyICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgQnVpbGQgZml4LiAgTW9yZSBwdWJs
aWMgZGVzdHJ1Y3RvcnMgbmVlZGVkIHRvIHBsYXkgbmljZSB3aXRoIE93blB0ci4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0KLTIwMTEtMDUtMjIg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBCdWlsZCBmaXguICBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudCBuZWVkcyBhIHB1YmxpYyBkZXN0cnVjdG9yIHNvIHRoYXQK
LSAgICAgICAgd2UgY2FuIHByb3Blcmx5IHRyYWNrIG93bmVyc2hpcCB1c2luZyBPd25QdHIuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLQotMjAxMS0w
NS0yMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFN0cmljdCBQ
YXNzT3duUHRyIGJ1aWxkIGZpeC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6b3Blbklu
c3BlY3RvckZyb250ZW5kKToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50KToKLQotMjAxMS0wNS0yMiAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFN0cmljdCBQYXNzT3duUHRyIGJ1aWxkIGZp
eC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5j
cHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmFkZFVzZXJTdHlsZVNoZWV0
KToKLQotMjAxMS0wNS0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIG51bWJlck9mQWN0
aXZlQW5pbWF0aW9ucygpIGNhbiBpbmNsdWRlIGFuaW1hdGlvbnMgZnJvbSBkb2N1bWVudHMgaW4g
dGhlIHBhZ2UgY2FjaGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUzNjQxCi0KLSAgICAgICAgUGFzcyB0aGUgRnJhbWUncyBkb2N1bWVudCBhcyB0aGUg
b25lIHRvIGNvdW50IGFuaW1hdGlvbnMgb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMpOgotCi0yMDExLTA1LTE2ICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBY
YW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gU2Nyb2xsaW5nIGluIFR3aXR0ZXIgaXMgYnJva2Vu
IGFmdGVyIHI4NjEwMgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjA5MjIKLQotICAgICAgICBGaXggYWRqdXN0bWVudCBoYW5kbGluZyBmb3IgcGFnZXMg
dGhhdCB0cmlnZ2VyIHRoZSBzbG93IHNjcm9sbGluZyBwYXRoLgotICAgICAgICBUaGUgc2xvdyBz
Y3JvbGxpbmcgcGF0aCBpcyB0cmlnZ2VyZWQgYnkgV2ViQ29yZSB3aGVuIGl0IGRldGVybWluZXMg
dGhhdAotICAgICAgICBkb2luZyBhIHNpbXBsZSBpbnZhbGlkYXRpb24gaXMgcXVpY2tlciB0aGFu
IGRvaW5nIGEgbm9ybWFsIHNjcm9sbC4gVGhpcwotICAgICAgICB0eXBpY2FsbHkgaGFwcGVucyB3
aGVuIHRoZXJlIGFyZSBsYXJnZSBlbGVtZW50cyB3aXRoIGZpeGVkIHBvc2l0aW9ucy4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6IFBva2Ug
dGhlIGFkanVzdG1lbnQKLSAgICAgICAgd2F0Y2hlciB0byB1cGRhdGUgaXRzIGFkanVzdG1lbnRz
IHdoZW4gYSBwYWdlIHRyaWdnZXJzIHRoZSBzbG93IHNjcm9sbGluZyBwYXRoLgotCi0yMDExLTA1
LTEzICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBT
aW1vbiBGcmFzZXIuCi0KLSAgICAgICAgQ2FuJ3QgaG9yaXpvbnRhbGx5IHNjcm9sbCBpZnJhbWVz
IGFuZCBvdmVyZmxvdyBiZWNhdXNlIHdoZWVsIGV2ZW50cyBhcmUgYWx3YXlzIGFjY2VwdGVkCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc3OQotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudDo6c2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKTogRGVmYXVsdCBp
bXBsIG9mIG5ldyBDaHJvbWVDbGllbnQgbWV0aG9kCi0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCk6IERlZmF1bHQgaW1wbCBvZiBuZXcg
Q2hyb21lQ2xpZW50IG1ldGhvZAotCi0yMDExLTA1LTEzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgotCi0gICAgICAg
IFBydW5lICNpbmNsdWRlcyBmcm9tIEZyYW1lVmlldy5oIChQYXJ0IDIpCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDc0OAotCi0gICAgICAgIC0gVXBk
YXRlIGZpbGVzIHRoYXQgd2VyZSBkZXBlbmRpbmcgb24gRnJhbWVWaWV3LmggI2luY2x1ZGluZyBG
cmFtZS5oIG9yCi0gICAgICAgICAgUGFnZS5oLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
R3RrQWRqdXN0bWVudFdhdGNoZXIuY3BwOgotCi0yMDExLTA1LTEzICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KLQotICAgICAgICBbR1RLXSBTaGFyZSB0aGUgR1RLKyBrZXkgYmluZGluZyBjb2RlIGJldHdl
ZW4gV2ViS2l0MSBhbmQgV2ViS2l0MgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTk3NjUKLQotICAgICAgICBVc2UgdGhlIG5ldyBLZXlCaW5kaW5nVHJh
bnNsYXRvciBjbGFzcyBmcm9tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrLiBXaXRoIHRoaXMgdXRpbGl0
eQotICAgICAgICBjbGFzcyB3ZSBjYW4gbm93IHNoYXJlIHRoZSBjb2RlIHdpdGggV2ViS2l0Mi4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudDo6ZXhlY3V0ZVBlbmRpbmdFZGl0b3JDb21tYW5kcyk6IFVw
ZGF0ZWQgdG8gcmVmbGVjdCB0aGUgZmFjdCB0aGF0Ci0gICAgICAgIHRoZSBjb21tYW5kIHZlY3Rv
ciBub3cgY29udGFpbnMgV1RGOjpzdHJpbmcuCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6IFVzZSB0aGUgbmV3IGhlbHBlciB1dGlsaXR5IGNsYXNz
LgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6IAotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOiBSZW1vdmUgdW5uZWNlc3Nhcnkg
bWVtYmVyLiBBZGQgdGhlIHV0aWxpdHkgY2xhc3MuCi0KLTIwMTEtMDUtMTIgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIEF0dGVtcHQgdG8gZml4IHRo
ZSBHVEsrIHVuaXQgdGVzdCB0ZXN0d2VidmlldyBvbiB0aGUgMzItYml0IFJlbGVhc2UKLSAgICAg
ICAgYm90IHdoaWNoIGFwcGVhcnMgdG8gYmUgbW9yZSBzZW5zaXRpdmUgdG8gdGltaW5nIGlzc3Vl
cyB0aGFuIHRoZQotICAgICAgICBvdGhlciBib3RzLgotCi0gICAgICAgICogdGVzdHMvdGVzdHdl
YnZpZXcuYzogQWRkIGFub3RoZXIgc2hvcnQgcGF1c2Ugd2FpdGluZyBmb3IgYWRqdXN0bWVudHMg
dG8gdXBkYXRlLgotCi0yMDExLTA1LTA5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KLQotICAgICAgICBGaXggYSB0ZXN0IGFmdGVyIHI4NjEwMi4gU2Nyb2xsYmFycyB1
cGRhdGUgYXN5bmNocm9ub3VzbHksIHNvIHdlCi0gICAgICAgIG11c3QgY2hlY2sgdGhlIGFkanVz
dG1lbnRzIGFmdGVyIGEgc2hvcnQgZGVsYXkuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vidmll
dy5jOgotICAgICAgICAocXVpdF9hZnRlcl9zaG9ydF9kZWxheV9jYik6IEFkZCBhIHNob3J0IGRl
bGF5IGJlZm9yZSBjaGVja2luZyBhZGp1c3RtZW50cy4KLSAgICAgICAgKHRlc3Rfd2Via2l0X3dl
Yl92aWV3X2dyYWJfZm9jdXMpOiBEaXR0by4KLQotMjAxMS0wNS0wOSAgWGFuIExvcGV6ICA8eGxv
cGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCi0KLSAgICAg
ICAgRml4IGJ1aWxkLCBmb3IgcmVhbC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKGdldEhvcml6b250YWxBZGp1c3RtZW50KToKLQotMjAxMS0wNS0wOSAg
WGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXguLgotCi0gICAgICAgIEZpeCBHVEsrMy54IGJ1aWxkLgotCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAoZ2V0SG9yaXpvbnRhbEFkanVzdG1lbnQpOiB0
aGUgYWRqdXN0bWVudCBpcyBpbgotICAgICAgICBhZGp1c3RtZW50V2F0Y2hlcigpIG5vdy4KLSAg
ICAgICAgKGdldFZlcnRpY2FsQWRqdXN0bWVudCk6IGRpdHRvLgotCi0yMDExLTA0LTI5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgW0dUS10gVW50YW5nbGUgR3RrQWRq
dXN0bWVudHMgZnJvbSBXZWJDb3JlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01OTgyMQotCi0gICAgICAgIEhhdmUgQ2hyb21lQ2xpZW50IG1hbmFnZSB0
aGUgR3RrQWRqdXN0bWVudHMgb2YgdGhlIHBhcmVudCB3aWRnZXQgaW5zdGVhZCBvZiBwYXNzaW5n
Ci0gICAgICAgIHRoZW0gdG8gV2ViQ29yZSB0byBtYW5hZ2UuIFRoaXMgc2ltcGxpZmllcyB0aGUg
Y29kZSBxdWl0ZSBhIGJpdCBhbmQgc2hvdWxkIGJlIGxlc3MKLSAgICAgICAgY3Jhc2ggcHJvbmUg
aW4gdGhlIGZ1dHVyZS4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGRlZCBuZXcgR3Rr
QWRqdXN0bWVudFdhdGNoZXIgY2xhc3MgdG8gdGhlIHNvdXJjZXMgbGlzdC4KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOiBBZGRlZCBuZXcgR3RrQWRqdXN0bWVu
dFdhdGNoZXIgbWVtYmVyLgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OkNocm9tZUNs
aWVudCkgSW5pdGlhbGl6ZSB0aGUgbmV3IG1lbWJlci4KLSAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjpzY3JvbGwpOiBQb2tlIHRoZSBhZGp1c3RtZW50IHdhdGNoZXIgdG8gdXBkYXRlIHRo
ZSBhZGp1c3RtZW50cy4KLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpjb250ZW50c1Np
emVDaGFuZ2VkKTogRGl0dG8uCi0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xs
YmFyc01vZGVEaWRDaGFuZ2UpOiBUaGlzIG1heSBub3cgYmUgY2FsbGVkIGF0IGEgdGltZSB3aGVu
IHRoZXJlCi0gICAgICAgIGlzIG5vIG1haW4gZnJhbWUsIHNvIGRvIGFuIGVhcmx5IHJldHVybiBp
biB0aGF0IGNhc2UuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6
IEFkZCB0aGUgbmV3IG1lbWJlci4KLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjphZGp1
c3RtZW50V2F0Y2hlcik6IEFkZCB0aGlzIGdldHRlciBmb3IgV2ViS2l0V2ViVmlldy4KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6IFJlbW92ZSBjYWxs
cyB3aGljaCBwdXNoZWQgdGhlIGFkanVzdG1lbnRzIGludG8KLSAgICAgICAgV2ViQ29yZS4KLSAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVQbGF0Zm9ybURhdGFUb0NhY2hl
ZEZyYW1lKToKLSAgICAgICAgKFdlYktpdDo6cG9zdENvbW1pdEZyYW1lVmlld1NldHVwKToKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HdGtBZGp1c3RtZW50V2F0Y2hlci5jcHA6IEFkZGVkLgot
ICAgICAgICAoV2ViS2l0OjpHdGtBZGp1c3RtZW50V2F0Y2hlcjo6R3RrQWRqdXN0bWVudFdhdGNo
ZXIpOgotICAgICAgICAoV2ViS2l0Ojp1cGRhdGVBZGp1c3RtZW50RnJvbVNjcm9sbGJhcik6Ci0g
ICAgICAgIChXZWJLaXQ6Okd0a0FkanVzdG1lbnRXYXRjaGVyOjp1cGRhdGVBZGp1c3RtZW50c0Zy
b21TY3JvbGxiYXJzKToKLSAgICAgICAgKFdlYktpdDo6dXBkYXRlQWRqdXN0bWVudENhbGxiYWNr
KToKLSAgICAgICAgKFdlYktpdDo6R3RrQWRqdXN0bWVudFdhdGNoZXI6OnVwZGF0ZUFkanVzdG1l
bnRzRnJvbVNjcm9sbGJhcnNMYXRlcik6Ci0gICAgICAgIChXZWJLaXQ6OmFkanVzdG1lbnRWYWx1
ZUNoYW5nZWRDYWxsYmFjayk6Ci0gICAgICAgIChXZWJLaXQ6OnNldEFkanVzdG1lbnQpOgotICAg
ICAgICAoV2ViS2l0OjpHdGtBZGp1c3RtZW50V2F0Y2hlcjo6c2V0SG9yaXpvbnRhbEFkanVzdG1l
bnQpOgotICAgICAgICAoV2ViS2l0OjpHdGtBZGp1c3RtZW50V2F0Y2hlcjo6c2V0VmVydGljYWxB
ZGp1c3RtZW50KToKLSAgICAgICAgKFdlYktpdDo6R3RrQWRqdXN0bWVudFdhdGNoZXI6OmFkanVz
dG1lbnRWYWx1ZUNoYW5nZWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0d0a0FkanVzdG1l
bnRXYXRjaGVyLmg6IEFkZGVkLgotICAgICAgICAoV2ViS2l0OjpHdGtBZGp1c3RtZW50V2F0Y2hl
cjo6aG9yaXpvbnRhbEFkanVzdG1lbnQpOgotICAgICAgICAoV2ViS2l0OjpHdGtBZGp1c3RtZW50
V2F0Y2hlcjo6dmVydGljYWxBZGp1c3RtZW50KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHA6Ci0gICAgICAgIChzZXRIb3Jpem9udGFsQWRqdXN0bWVudCk6Ci0gICAgICAgIChz
ZXRWZXJ0aWNhbEFkanVzdG1lbnQpOiBSZW1vdmUgdGhlIGFkanVzdG1lbnQgbWVtYmVyLiBDYWxs
IGludG8gdGhlIGFkanVzdG1lbnQgd2F0Y2hlci4KLSAgICAgICAgKGdldEhvcml6b250YWxBZGp1
c3RtZW50KTogRGl0dG8uCi0gICAgICAgIChnZXRWZXJ0aWNhbEFkanVzdG1lbnQpOiBEaXR0by4K
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zaXplX2FsbG9jYXRlKTogRGl0dG8uCi0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Njcm9sbF9hZGp1c3RtZW50cyk6IERpdHRvLgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UpOiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19pbml0KTogRGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRl
Lmg6IERpdHRvLgotCi0yMDExLTA1LTA2ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCi0KLSAgICAgICAgRWxpbWlu
YXRlIFdlYkNvcmUvZG9tL0lucHV0RWxlbWVudC57Y3BwLGh9Ci0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDI2MgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6c2V0QXV0b2ZpbGxlZCk6Ci0gICAgICAgICAgRm9sbG93IHRoZSByZXR1
cm4gdHlwZSBjaGFuZ2Ugb2YgTm9kZTo6dG9JbnB1dEVsZW1lbnQoKS4KLSAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0VmFsdWVGb3JVc2VyKTogZGl0dG8uCi0KLTIwMTEtMDUt
MDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBbV2ViS2l0Ml0gV2ViVmlldzo6
d2luZG93VG9TY3JlZW4gbmVlZHMgYW4gaW1wbGVtZW50YXRpb24KLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1OTYwCi0KLSAgICAgICAgQWJzdHJhY3Qg
dGhlIGNvZGUgdG8gdHJhbnNsYXRlIGZyb20gd2lkZ2V0IHNwYWNlIHRvIHNjcmVlbiBzcGFjZSBp
bnRvCi0gICAgICAgIGEgaGVscGVyIG1ldGhvZCBpbiBXZWJDb3JlLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDogVXNlIHRoZSBuZXcgaGVscGVyIG1ldGhv
ZCBmcm9tIEd0a1V0aWxpdGllcy4KLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojp3aW5k
b3dUb1NjcmVlbik6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2NyZWVuVG9XaW5k
b3cpOgotCi0yMDExLTA1LTA0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCi0KLSAgICAgICAgSW1w
bGVtZW50IExheW91dFRlc3RDb250cm9sbGVyOjpwc2V1ZG9TaGFkb3dJZCgpCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDAzNAotCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2hhZG93UHNldWRvSWQpOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotCi0yMDExLTA1LTA1ICBCaGFy
YXRod2FhaiBTcmluaXZhc2FuICA8YmhhcmF0aHdhYWouc0BnbWFpbC5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIEZpeCBidWlsZC13ZWJraXQg
LS1taW5pbWFsLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjAyNTcKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRnbG9iYWxzLmNwcDoKLSAgICAgICAg
KHdlYmtpdEluaXQpOgotCi0yMDExLTA1LTA1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIFJlbmFt
ZSBTZWxlY3Rpb25Db250cm9sbGVyIHRvIEZyYW1lU2VsZWN0aW9uCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDIzNAotCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAoZ2V0TG9jYXRpb25Gb3JLZXlib2FyZEdlbmVy
YXRlZENvbnRleHRNZW51KToKLQotMjAxMS0wNS0wNCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KLQotICAgICAgICBHVEsgYnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjg1ODIzCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50Ojp3ZWJWaWV3KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjppbUNvbnRleHRDb21taXR0ZWQp
OgotICAgICAgICAoV2ViS2l0OjppbUNvbnRleHRQcmVlZGl0Q2hhbmdlZCk6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAoV2ViS2l0OjpraXQpOgotCi0yMDEx
LTA1LTA0ICBDcmlzIE5lY2thciAgPGNkbkBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBCYXJ0aC4KLQotICAgICAgICBFeHBvc2UgV2ViVmlldyBkaXJlY3RseSB0aHJv
dWdoIENocm9tZUNsaWVudC4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ5OTAyCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuaDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojp3ZWJWaWV3KToKLQotMjAxMS0w
NS0wNCAgVGFvIEJhaSAgPG1pY2hhZWxiYWlAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IERhdmlkIEtpbHplci4KLQotICAgICAgICBQb3B1bGF0ZSB0b3VjaC1pY29uIHVybCB0
byBGcmFtZUxvYWRlckNsaWVudAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTkxNDMKLQotICAgICAgICBSZXNwZWN0IHRoZSBpbnRlcmZhY2UgY2hhbmdl
IGluIEZyYW1lTG9hZGVyQ2xpZW50LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuaDoKLQotMjAxMS0wNS0wMyAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFm
ZnJhaXhAY29kZWF1cm9yYS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6
a292LgotCi0gICAgICAgIEVsZW1lbnQ6c2hhZG93Um9vdCAmIEVsZW1lbnQ6OmVuc3VyZVNoYWRv
d1Jvb3Qgc2hvdWxkIHJldHVybiBTaGFkb3dSb290KgotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg3MDMKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6IEFkZGVkICNpbmNsdWRlIGZvciBTaGFkb3dS
b290LmguCi0KLTIwMTEtMDQtMjkgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR3RrK10gQ3Jh
c2ggd2hlbiBuYXZpZ2F0aW5nIGJhY2sKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU5Nzk5Ci0KLSAgICAgICAgVGhlIGlubmVyTm9kZSBtYW5hZ2VtZW50
IGluIFdlYktpdEhpdFRlc3RSZXN1bHQgd2FzIHJlbHlpbmcgb24gdGhlCi0gICAgICAgIG9sZCBE
T00gYmluZGluZ3MgYmVoYXZpb3Igd2hlcmUgZXZlcnkgRE9NIG9iamVjdHMgaGFkIHRvIGJlCi0g
ICAgICAgIGRpc3Bvc2VkIGJ5IHRoZSBjYWxsZXIuIE5vdyB0aGUgb2JqZWN0cyBhcmUgZ2FyYmFn
ZSBjb2xsZWN0ZWQgYnkKLSAgICAgICAgV2ViS2l0IHdoZW4gZWl0aGVyIHRoZSBwYXJlbnQgZnJh
bWUgb3IgZG9jdW1lbnQgZGllcywgc28gdGhpcyBpcwotICAgICAgICBub3QgbmVlZGVkIGFueW1v
cmUuIFVwZGF0ZSB0aGUgY29kZSB0byBzaW1wbHkgdGFrZSBvd25lcnNoaXAgb2YKLSAgICAgICAg
dGhlIG5vZGUsIHdoaWNoIGVmZmVjdGl2ZWx5IGNvcnJlY3RseSBiYWxhbmNlcyB0aGUgcmVmZXJl
bmNlCi0gICAgICAgIGNvdW50LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1
bHQuY3BwOgotICAgICAgICAod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9kaXNwb3NlKTogY2FsbCBD
KysgZHRvcnMgaW4gcHJpdmF0ZSBkYXRhLgotICAgICAgICAod2Via2l0X2hpdF90ZXN0X3Jlc3Vs
dF9nZXRfcHJvcGVydHkpOiBhZGF0cCB0byBHUmVmUHRyIEFQSS4KLSAgICAgICAgKHdlYmtpdF9o
aXRfdGVzdF9yZXN1bHRfaW5pdCk6IGNhbGwgQysrIGN0b3JzIGluIHByaXZhdGUgZGF0YS4KLQot
MjAxMS0wNC0yOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5y
ZXZpZXdlZCBidWlsZCBmaXguCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLQotMjAxMS0w
NC0yOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHdGtdIFNwbGl0IEpTQyBhbmQgV2ViQ29y
ZSBidWlsZHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NDI4Ci0KLSAgICAgICAgQWRkIGEgcGtnLWNvbmZpZyBmaWxlIGZvciBKYXZhU2NyaXB0Q29y
ZUdUSysuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogdGFrZSBjYXJlIG9mIHRoZSBwa2ct
Y29uZmlnIGZpbGUuCi0gICAgICAgICogamF2YXNjcmlwdGNvcmVndGsucGMuaW46IEFkZGVkLgot
Ci0yMDExLTA0LTI4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0d0a10gU3BsaXQgSlNDIGFu
ZCBXZWJDb3JlIGJ1aWxkcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk0MjgKLQotICAgICAgICBCdWlsZCBKYXZhU2NyaXB0Q29yZSBhcyBhIGxpYnRv
b2wgc2hhcmVkIGxpYnJhcnkgaW5zdGVhZCBvZiBhCi0gICAgICAgIHByaXZhdGUgY29udmVuaWVu
Y2UgbGlicmFyeS4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGFwdCB0byBuZXcgbmFt
ZSBmb3IgamF2YXNjcmlwdGNvcmUgdGFyZ2V0LgotCi0yMDExLTA0LTI4ICBvamFiICA8b2phYkBv
amFiLnJ1PgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAg
ICBXZWJraXQtZ3RrIGJ1aWxkIGZhaWx1cmUsIG5vIHR5cGUvbWVtYmVyICdQYWdlJyBpbiBuYW1l
c3BhY2UgJ1dlYkNvcmUnCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01OTU4NQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6
Ci0KLTIwMTEtMDQtMjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBDbGljayBj
b3VudGluZyBsb2dpYyBzaG91bGQgYmUgc2hhcmVkIGJldHdlZW4gV2ViS2l0MSBhbmQgV2ViS2l0
MgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3MTUK
LQotICAgICAgICBTd2l0Y2ggV2ViS2l0MSB0byB1c2UgdGhlIG5ldyBHdGtDbGlja0NvdW50ZXIg
Zm9yIGNvdW50aW5nID4gMyBjbGlja3MgaW4gYSByb3cuCi0gICAgICAgIFRoaXMgYWxsb3dzIHRo
ZSBjb2RlIHRvIGJlIHNoYXJlZCBiZXR3ZWVuIFdlYktpdDEgYW5kIFdlYktpdDIuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
RHJhZ0NsaWVudDo6c3RhcnREcmFnKTogQ2FsbCBHdGtDbGlja0NvdW50ZXI6OnJlc2V0IGluc3Rl
YWQgb2YgZmlkZGxpbmcKLSAgICAgICAgdGhlIFdlYlZpZXcgcHJpdmF0ZSBkYXRhIGRpcmVjdGx5
LgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6cG9zdENvbW1pdEZyYW1lVmlld1NldHVwKTogRGl0dG8uCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2J1
dHRvbl9wcmVzc19ldmVudCk6IENhbGwgaW50byBHdGtDbGlja0NvdW50ZXIgbm93LgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2luaXQpOiBSZW1vdmUgcHJpdmF0ZSBtZW1iZXIgaW50aWFsaXph
dGlvbi4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDogUmVtb3ZlIHVu
bmVlZGVkIHByaXZhdGUgbWVtYmVycy4KLQotMjAxMS0wNC0yNyAgTWFydGluIFJvYmluc29uICA8
bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
Ci0KLSAgICAgICAgW0dUS10gTWVudWxpc3RzIGRvIG5vdCBmb2xsb3cgdGV4dCBkaXJlY3Rpb24g
d2hlbiByZW5kZXJpbmcgb3B0aW9ucyB3aXRoIHJpZ2h0LXRvLWxlZnQgdGV4dAotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQwMzgKLQotICAgICAgICBG
aXggcmVuZGVyaW5nIG9mIG1lbnVsaXN0cyB0aGF0IGNvbnRhaW4gcmlnaHQtdG8tbGVmdCB0ZXh0
LiBUZXh0IGRpcmVjdGlvbgotICAgICAgICBpbnNpZGUgYSBtZW51bGlzdCBub3cgZm9sbG93cyB0
aGUgYWxpZ25tZW50IG9mIGl0cyBjb250ZW50cy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwpOiBSZXR1cm4gZmFsc2UgaW5zdGVhZCBv
ZiB0cnVlLgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1BbGlnbm1l
bnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24pOiBSZXR1cm4gdHJ1ZSBpbnN0ZWFkIG9mIGZh
bHNlLgotCi0yMDExLTA0LTI3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODQ5ODcuCi0gICAgICAg
IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzg0OTg3Ci0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTYxOAotCi0gICAgICAgIENhdXNlZCBj
cmFzaGVzIG9uIHRoZSBHVEsrIGRlYnVnIGJvdHMuIChSZXF1ZXN0ZWQgYnkgbXJvYmluc29uCi0g
ICAgICAgIG9uICN3ZWJraXQpLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFi
YXNlUXVvdGEpOgotCi0yMDExLTA0LTI2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dU
S10gZmxha3kgY3Jhc2ggIHN0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi5o
dG1sCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODk4
OAotCi0gICAgICAgIENvbnN0cnVjdCB0aGUgc2VjdXJpdHkgb3JpZ2luIGRpcmVjdGx5IGluc3Rl
YWQgb2YgZ2V0dGluZyBpdCBmcm9tIHRoZSBXZWJLaXRXZWJGcmFtZSBvYmplY3QuCi0gICAgICAg
IFRoaXMgcHJldmVudHMgZmFpbGluZyB0byBjcmVhdGUgdGhlIFdlYktpdFNlY3VyaXR5T3JpZ2lu
IGluIGNhc2VzIHdoZXJlIHRoZSBmcmFtZSBpcyBpbgotICAgICAgICBzb21lIGluY29uc2lzdGVu
dCBzdGF0ZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKTog
Q29uc3RydWN0IHRoZSBvcmlnaW4gZGlyZWN0bHkuCi0KLTIwMTEtMDQtMjIgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBM
b3Blei4KLQotICAgICAgICBbR1RLXSBmYXN0L2V2ZW50cy9vdmVyZmxvdy12aWV3cG9ydC1yZW5k
ZXJlci1kZWxldGVkLmh0bWwgY3Jhc2hlcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTg5NzYKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OmdldElubmVyVGV4dCk6IEd1YXJkIGFnYWluc3Qgc2l0dWF0aW9ucyB3aGVuIHRoZSBkb2N1
bWVudEVsZW1lbnQKLSAgICAgICAgbWV0aG9kIG9mIHRoZSBkb2N1bWVudCByZXR1cm5zIG51bGwu
Ci0KLTIwMTEtMDQtMjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KLQotICAgICAgICBSZW1vdmUgcmVtYWluaW5n
IHVzZXMgb2YgZGVwcmVjYXRlZCB2ZXJzaW9uIG9mIHRvSlMKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTcwCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzaGFkb3dSb290KToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6ZW5zdXJlU2hhZG93Um9vdCk6Ci0gICAgICAgIFJlcGxhY2UgdXNlIG9mIGRlcHJlY2F0
ZWQgdG9KUyBvdmVybG9hZCB3aXRoIGV4cGxpY2l0IGNhbGwgdG8gZGVwcmVjYXRlZEdsb2JhbE9i
amVjdEZvclByb3RvdHlwZS4KLQotMjAxMS0wNC0yMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgot
Ci0gICAgICAgIFtHVEtdIERSVDogaW1wbGVtZW50IGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5Ci0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTA4MgotCi0g
ICAgICAgIEFkZGVkIHN1cHBvcnQgaW4gRFJUIGZvciB3ZWJ2aWV3IHNjYWxpbmcuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzY2FsZSk6Ci0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTEtMDQtMjEgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KLQotICAgICAgICBBZGQgRnJhbWUqIHRvIHRoZSBhcmd1bWVudCBsaXN0cyBvZiBjYW5Db3B5
Q3V0IGFuZCBjYW5QYXN0ZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTkxNTMKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2FuQ29weUN1dCk6Ci0gICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2FuUGFzdGUpOgotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgotCi0yMDExLTA0LTIxICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBbR1RLXSBEUlQ6IGltcGxlbWVudCBl
dmVudFNlbmRlci5zY2FsZVBhZ2VCeQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTkwODIKLQotICAgICAgICBSb2xsaW5nIG91dCByODQ1MDcgc2luY2Ug
aXQgYnJva2UgbWFueSBHVEsrIHRlc3RzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLQotMjAxMS0wNC0yMSAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmlu
c29uLgotCi0gICAgICAgIFtHVEtdIG1pc3NpbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNhbGxT
aG91bGRDbG9zZU9uV2ViVmlldygpCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01OTA4NgotCi0gICAgICAgIERSVDo6c2hvdWxkQ2xvc2UoKSwgdXNlZCBi
eSB0aGUgTGF5b3V0Q29udHJvbGxlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnNob3VsZENsb3NlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGsuaDoKLQotMjAxMS0wNC0yMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0g
ICAgICAgIFtHVEtdIERSVDogaW1wbGVtZW50IGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5Ci0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTA4MgotCi0gICAg
ICAgIEFkZGVkIHN1cHBvcnQgaW4gRFJUIGZvciB3ZWJ2aWV3IHNjYWxpbmcuCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeSk6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTEtMDQtMjAgIERvbWlu
aWMgQ29vbmV5ICA8ZG9taW5pY2NAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IERpbWl0cmkgR2xhemtvdi4KLQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlciBjYW4gY3Jl
YXRlIGFuZCBkZXN0cm95IHNoYWRvdyBET00KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU5MDU4Ci0KLSAgICAgICAgU3VwcG9ydCBmb3IgbmV3IG1ldGhv
ZHMgaW4gR1RLIERSVC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmVuc3Vy
ZVNoYWRvd1Jvb3QpOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZW1vdmVT
aGFkb3dSb290KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuaDoKLQotMjAxMS0wNC0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAg
ICAgIFtHVEtdIEJ1aWxkIGxpYldlYkNvcmUgd2l0aCB0aGUgZ3RrIHNvdXJjZXMgdG9vCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODk2OAotCi0gICAg
ICAgIEluIHNvbWUgY2FzZXMgd2ViY29yZSBmaWxlcyBhcmUgY29tcGlsZWQgdHdpY2UsIHNvIGl0
IGltcHJvdmVzIHRoZQotICAgICAgICBidWlsZCB0aW1lLgotCi0gICAgICAgICogR05VbWFrZWZp
bGUuYW06IFJlbW92ZSB3ZWJjb3JlIGd0ayBzb3VyY2VzIGZyb20gbGlid2Via2l0Z3RrCi0gICAg
ICAgIHNvdXJjZXMuCi0KLTIwMTEtMDQtMTkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJv
bWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KLQotICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBSZW5hbWUgbGVuZ3RoUmVjZWl2ZWQgdG8gZW5jb2RlZERhdGFMZW5n
dGgvZGF0YUxlbmd0aAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTg4ODMKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAg
ICAgICAgKERvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6Ci0KLTIwMTEtMDQtMTggIFph
biBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gTmVlZCBzdXBwb3J0IGZvciBkdW1w
aW5nIGZvY3VzIHJlY3RhbmdsZXMgaW4gcGl4ZWwgcmVzdWx0cwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2NDcKLQotICAgICAgICBBZGQgYSBzdXBw
b3J0IGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgcmVjdGFuZ2xlIG9mIHRoZSBjdXJyZW50Ci0g
ICAgICAgIHNlbGVjdGlvbiBpbiBmcmFtZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnJlY3RhbmdsZUZvclNlbGVjdGlvbik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTEtMDQtMTIgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgotCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcDoKLQotMjAxMS0wNC0xMiAgU3Rl
cGhhbmllIExld2lzICA8c2xld2lzQGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBP
bGl2ZXIgSHVudC4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTgyODAKLSAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkyNTI4MjQ+IGphdmFzY3JpcHQg
aW4gYW4gaW5jb25zaXN0ZW50IHN0YXRlIGR1ZSB0byBzZXJpYWxpemF0aW9uIHJldHVybmluZyBh
biB1bi1oYW5kbGVkIGV4Y2VwdGlvbi4KLQotICAgICAgICBBZGQgYSBoZWFkZXIgaW5jbHVkZS4g
IEZhbGxvdXQgZnJvbSB1bnRhbmdsaW5nIHNvbWUgaGVhZGVyIGZpbGVzIGluIFdlYkNvcmUuCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwOgotCi0yMDExLTAyLTAz
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICBbR1RLXSBUaGUgR1RLKyBEUlQgbmVlZHMg
YW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIFBsYWluVGV4dENvbnRyb2xsZXIKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNjA1Ci0KLSAgICAgICAgQWRk
ZWQganNWYWx1ZVRvRE9NUmFuZ2UgdG8gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLiBUaGlzIHN0
YXRpYyBtZXRob2QgY2FuIGNvbnZlcnQKLSAgICAgICAgYSBKU1ZhbHVlUmVmIHRvIGEgV2ViS2l0
RE9NUmFuZ2UuIFdoZW4gaXQncyBwb3NzaWJsZSB0byBkbyB0aGlzIHdpdGggdGhlIHB1YmxpYwot
ICAgICAgICBBUEksIHdlIGNhbiByZW1vdmUgdGhpcyBtZXRob2QuCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpqc1ZhbHVlVG9ET01SYW5nZSk6IEFkZGVkLgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOiBBZGRlZCBkZWNsYXJh
dGlvbi4KLQotMjAxMS0wNC0xMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCi0KLSAgICAgICAg
W0d0a10gSW1wbGVtZW50IHN1cHBvcnQgZm9yIEVtYmVkZGVkIE9iamVjdHMKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMTQ4Ci0KLSAgICAgICAgTmV3
IGFjY2Vzc2liaWxpdHkgdW5pdCB0ZXN0IGZvciBlbWJlZGRlZCBvYmplY3RzLgotCi0gICAgICAg
ICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGVzdFdlYmtpdEF0a0VtYmVkZGVkT2JqZWN0
cyk6IE5ldyB1bml0IHRlc3QuCi0gICAgICAgIChtYWluKTogQWRkZWQgdGhlIG5ldyB1bml0IHRl
c3QuCi0KLTIwMTEtMDQtMDggIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAZ29vZ2xlLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgotCi0gICAgICAgIE1ha2UgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdCByZXR1cm4gbnVsbCwgbm90IHVuZGVmaW5lZCwKLSAg
ICAgICAgd2hlbiBpdHMgYXJndW1lbnQgaXMgaW52YWxpZC4KLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MTIxCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzaGFkb3dSb290KToKLQotMjAxMS0wNC0wOCAgRG9taW5pYyBDb29uZXkg
IDxkb21pbmljY0Bnb29nbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJh
LgotCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qgc2hvdWxkIHJldHVy
biB1bmRlZmluZWQgaWYgaXRzCi0gICAgICAgIGFyZ3VtZW50IGlzIG5vdCBhbiBlbGVtZW50Lgot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgxMTkKLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0g
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNoYWRvd1Jvb3QpOgotCi0yMDExLTA0
LTA4ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gSW1wbGVtZW50
IGluY3JlbWVudCgpIGFuZCBkZWNyZW1lbnQoKSBmdW5jdGlvbnMgaW4gRFJUJ3MgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTgwMzkKLQotICAgICAgICBJbXBsZW1lbnRlZCBtaXNzaW5nIGZ1bmN0aW9ucyBpbiBH
VEsncyBEUlQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwOgotICAgICAgICAobW9kaWZ5QWNjZXNzaWJpbGl0eVZhbHVlKTogSGVscGVyIGZ1bmN0
aW9uIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQKLSAgICAgICAgdGhlIGN1cnJlbnQgdmFsdWUg
Zm9yIGFuIG9iamVjdCB0aHJvdWdoIHRoZSBBY2Nlc3NpYmlsaXR5T2JqZWN0J3MgQVBJLgotICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjppbmNyZW1lbnRBY2Nlc3NpYmlsaXR5VmFs
dWUpOiBOZXcgZnVuY3Rpb24sCi0gICAgICAgIHRvIGJlIHVzZWQgZnJvbSBHVEsncyBEUlQuCi0g
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmRlY3JlbWVudEFjY2Vzc2liaWxpdHlW
YWx1ZSk6IERpdHRvLgotCi0yMDExLTA0LTA2ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNA
Z25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAg
ICAgICBbR1RLXSBOZWVkIGEgd2F5IHRvIGdldCB0aGUgcGF0aCB0byBhIFdlYktpdFdlYlBsdWdp
bgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc5NjgK
LQotICAgICAgICBFeHBvc2UgdGhlIHBhdGggb2YgdGhlIHBsdWdpbiB0aHJvdWdoIHRoZSBXZWJL
aXRXZWJQbHVnaW4gb2JqZWN0LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBsdWdpbi5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3BsdWdpbl9nZXRfcGF0aCk6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnBsdWdpbi5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW5w
cml2YXRlLmg6Ci0KLTIwMTEtMDQtMDcgIEFsaWNlIEJveGhhbGwgIDxhYm94aGFsbEBjaHJvbWl1
bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgotCi0gICAgICAgIE1v
dmUgdGhlIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM6OnRhcmdldE5vZGUoKSBtZXRob2Qg
b24gdG8gRXZlbnRIYW5kbGVyLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTc5MjEKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19mb3J3YXJkX2NvbnRleHRfbWVudV9ldmVudCk6Ci0g
ICAgICAgIENhbGwgc3ViZnJhbWVGb3JIaXRUZXN0UmVzdWx0IHJhdGhlciB0aGFuIHN1YmZyYW1l
Rm9yVGFyZ2V0Tm9kZSBhcyB0aGUgdGFyZ2V0Tm9kZSgpCi0gICAgICAgIG1ldGhvZCBoYXMgbW92
ZWQgb24gdG8gRXZlbnRIYW5kbGVyLgotCi0yMDExLTA0LTA1ICBNYXJ0aW4gUm9iaW5zb24gIDxt
cm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
LQotICAgICAgICBbQ2Fpcm9dIEJldHRlciBzZXBhcmF0ZSB0aGUgY29uY2VybnMgb2YgR3JhcGhp
Y3NDb250ZXh0Q2Fpcm8KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU1MTUwCi0KLSAgICAgICAgQWRkIGEgUGxhdGZvcm1Db250ZXh0Q2Fpcm8gd2hpY2gg
cmlnaHQgbm93IHN0b3JlcyB0aGUgY2Fpcm9fdCogZm9yIGEKLSAgICAgICAgR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uIExhdGVyIHBhdGNoZXMgd2lsbCBtb3ZlIGxvZ2ljIGZvciB0cmFja2luZyBDb250
ZXh0U2hhZG93Ci0gICAgICAgIGFuZCBpbWFnZSBtYXNraW5nIGxheWVycyBpbnRvIHRoaXMgUGxh
dGZvcm1Db250ZXh0Q2Fpcm8gY2xhc3MuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJh
bWUuY3BwOgotICAgICAgICAoZHJhd19wYWdlX2NhbGxiYWNrKToKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50
KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kcmF3KToKLQotMjAxMS0wNC0wNCAgTU9SSVRB
IEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBSeW9z
dWtlIE5pd2EuCi0KLSAgICAgICAgW1JlZmFjdG9yaW5nXSBTcGVsbENoZWNraW5nUmVzdWx0IHNo
b3VsZCBiZSByZXBsYWNlZCB3aXRoIFRleHRDaGVja2luZ1Jlc3VsdAotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYwODUKLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50RW5jaGFudC5oOgotICAgICAgICAoV2ViS2l0OjpU
ZXh0Q2hlY2tlckNsaWVudEVuY2hhbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKLQotMjAx
MS0wNC0wNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFtHVEtdIFdl
YkdMIHN1cHBvcnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMxNTE3Ci0KLSAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRvZ2dsaW5nIFdlYkdMIGF0IHJ1
bnRpbWUgd2hlbiBpdCdzIGVuYWJsZWQuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3MuY3BwOiBBZGQgdGhlIGVuYWJsZS13ZWJnbCBwcm9wZXJ0eS4gV2hlbiBFTkFCTEVfV0VC
R0wKLSAgICAgICAgaXMgbm90IGVuYWJsZWQsIGl0J3MgYSBuby1vcC4KLSAgICAgICAgKHdlYmtp
dF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6IFVwZGF0ZSB0byBzdXBwb3J0IGVuYWJsZS13ZWJn
bC4KLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KTogRGl0dG8uCi0g
ICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6IERpdHRvLgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191
cGRhdGVfc2V0dGluZ3MpOiBEaXR0by4KLQotMjAxMS0wNC0wNCAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgot
Ci0gICAgICAgIFJFR1JFU1NJT04gKFdlYktpdDIpOiBDYXBzLUxvY2sgaW5kaWNhdG9yIHNvbWV0
aW1lcyBkb2Vzbid0IGFwcGVhciBpbiBXZWJLaXQyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTIzMAotICAgICAgICA8cmRhcjovL3Byb2JsZW0vODc4
MDk4OT4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogKHdlYmtpdF93ZWJf
dmlld19rZXlfcmVsZWFzZV9ldmVudCk6IE1vdmVkIENhcHMgTG9jayBoYW5kbGluZyBmcm9tCi0g
ICAgICAgIFdlYktpdHMgdG8gV2ViQ29yZSwgYmVjYXVzZSBXZWJLaXQgc2hvdWxkbid0IGJlIHNt
YXJ0LgotCi0yMDExLTA0LTA0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0d0a10gd2Vi
a2l0X3dlYl92aWV3X3BvcHVwX21lbnVfaGFuZGxlciBzaG91bGQgY2FsbCBTZWxlY3Rpb25Db250
cm9sbGVyOjpsb2NhbENhcmV0UmVjdAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTQ2MzMKLQotICAgICAgICBSZW1vdmUgdXNlIG9mIGxlZ2FjeSBlZGl0
aW5nIHBvc2l0aW9ucyB3aGVuIHBvc2l0aW9uaW5nIGtleWJvYXJkLWRyaXZlbiBjb250ZXh0Ci0g
ICAgICAgIG1lbnVzLiBTaW1wbGlmeSB0aGUgY29kZSBncmVhdGx5LgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAoZ2V0TG9jYXRpb25Gb3JLZXlib2FyZEdl
bmVyYXRlZENvbnRleHRNZW51KTogQWRkZWQgdGhpcyBoZWxwZXIgd2hpY2ggY2FsY3VsYXRlcwot
ICAgICAgICB0aGUgY29udGV4dCBtZW51IHBvc2l0aW9uLgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X3BvcHVwX21lbnVfaGFuZGxlcik6IFNpbXBsaWZ5IGNvZGUgcHJldmVudGluZyB0aGUgbWVu
dSBmcm9tIGJ1bXBpbmcKLSAgICAgICAgaW50byB0aGUgZWRnZXMgb2YgdGhlIHZpZXcuIFJlbW92
ZSAoMCwtMSkgaGFjayBhcyBpdCBubyBsb25nZXIgc2VlbXMgdG8gYmUgaW1wb3J0YW50LgotCi0y
MDExLTA0LTAyICBEb21pbmljIENvb25leSAgPGRvbWluaWNjQGdvb2dsZS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEFkZCBsYXlvdXRUZXN0
Q29udHJvbGxlci5zaGFkb3dSb290IHRvIEdUSyBEdW1wUmVuZGVyVHJlZS4KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3NTUxCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzaGFkb3dSb290KToKLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLQotMjAxMS0wNC0wMSAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjgyNzIxLgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC84MjcyMQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTc2ODcKLQotICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZWQgYXNzZXJ0aW9uIGZhaWx1
cmVzIG9uIHRoZSBHVEsrIGJvdHMuCi0gICAgICAgIChSZXF1ZXN0ZWQgYnkgbXJvYmluc29uIG9u
ICN3ZWJraXQpLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuaDoKLQotMjAxMS0wNC0wMSAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBB
ZGQgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdCB0byBHVEsgRHVtcFJlbmRlclRyZWUu
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzU1MQot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoK
LSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2hhZG93Um9vdCk6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTEtMDMt
MzEgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBMaW5rIGV4cGxpY2l0bHkgd2l0aCBY
UmVuZGVyIG9uIExpbnV4L1VuaXgKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU3NTU4Ci0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogYWRkIFhSZW5k
ZXIgTElCUy4KLQotMjAxMS0wMy0zMSAgRXZhbiBNYXJ0aW4gIDxldmFuQGNocm9taXVtLm9yZz4K
LQotICAgICAgICBCdWlsZCBmaXggZnJvbSBwcmV2aW91cyBjaGFuZ2UuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZSk6Ci0KLTIwMTEtMDMt
MzEgIEV2YW4gTWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBTZWlkZWwuCi0KLSAgICAgICAgPHRpdGxlPiBzaG91bGQgc3VwcG9ydCBkaXIgYXR0
cmlidXRlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MDk2MQotCi0gICAgICAgIFVwZGF0ZSB0byBuZXcgRnJhbWVMb2FkZXJDbGllbnQgaW50ZXJmYWNl
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0
bGUpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2V0VGl0bGUpOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMTEtMDMt
MjkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVu
cmV2aWV3ZWQsIGRpc2FibGUgYW4gYXNzZXJ0IGluIHRlc3R3ZWJ2aWV3IGR1ZSB0bwotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTczMTUKLQotICAgICAg
ICAqIHRlc3RzL3Rlc3R3ZWJ2aWV3LmM6Ci0KLTIwMTEtMDMtMjggIEFkZWxlIFBldGVyc29uICA8
YWRlbGVAYXBwbGUuY29tPgotCi0gICAgICAgIEJ1aWxkIGZpeC4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OndlYmtpdFdlYkZyYW1lU2VsZWN0aW9uSGFzU3BlbGxpbmdNYXJr
ZXIpOgotCi0yMDExLTAzLTI4ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBb
R1RLXSBGdWxsc2NyZWVuIHRlc3RzIGZhaWxpbmcgYWZ0ZXIgcjgyMDg0Ci0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzIxOQotCi0gICAgICAgIEFkZGVk
IHRoZSB3aXRoS2V5Ym9hcmQgcGFyYW1ldGVyIHRvIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQKLSAgICAgICAgbWV0aG9kIGluIENocm9tZUNsaWVudC4gRnVsbHNjcmVlbiB3aWxsIGJlIGRp
c2FibGVkIGZvciBrZXlib2FyZAotICAgICAgICBhY2Nlc3MgYnkgZGVmYXVsdC4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6Ci0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMTEtMDMtMjUgIEFuZHkgRXN0
ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVy
c29uLgotCi0gICAgICAgIFJFR1JFU1NJT04gKHI3MDc0OCk6IGxhdGVzdCBuaWdodGx5IGJ1aWxk
cyBraWxscyBBQ19RdWlja1RpbWUuanMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ5MDE2Ci0KLSAgICAgICAgVXBkYXRlIG9iamVjdENvbnRlbnRUeXBl
KCkgaW1wbGVtZW50YXRpb24gdG8gaGFuZGxlIHRoZQotICAgICAgICBzaG91bGRQcmVmZXJQbHVn
SW5zRm9ySW1hZ2VzIGZsYWcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpvYmpl
Y3RDb250ZW50VHlwZSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuaDoKLQotMjAxMS0wMy0yNSAgUHJpaXQgTGFlcyAgPHBsYWVzQHBsYWVzLm9yZz4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gW1BB
VENIXSBBdm9pZCBjcml0aWNhbCB3YXJuaW5nIHdoZW4gZnJlZS1pbmcgbGlzdCBvZiBwbHVnaW5z
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzAyNQot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRhdGFiYXNlLmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfcGx1Z2luX2RhdGFiYXNlX3BsdWdpbnNfbGlzdF9mcmVlKToKLSAgICAgICAg
VXNlIHJlZ3VsYXIgY2hlY2sgYW5kIHJldHVybiBpbnN0ZWFkIG9mIGdfcmV0dXJuX2lmX2ZhaWwu
Ci0KLTIwMTEtMDMtMjQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4MTkxNiBhbmQgcjgxOTE3Lgot
ICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC84MTkxNgotICAgICAgICBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC84MTkxNwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcwNzEKLQotICAgICAgICBicm9rZSBhIHRl
c3Qgb24gcGxhdGZvcm1zIHRoYXQgZG8gbm90IGhhdmUgUXVpY2tUaW1lIGluc3RhbGxlZAotICAg
ICAgICAoUmVxdWVzdGVkIGJ5IGVzdGVzIG9uICN3ZWJraXQpLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6b2JqZWN0Q29udGVudFR5cGUpOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMTEtMDMtMjQgIEFuZHkgRXN0ZXMgIDxh
ZXN0ZXNAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0g
ICAgICAgIFJFR1JFU1NJT04gKHI3MDc0OCk6IGxhdGVzdCBuaWdodGx5IGJ1aWxkcyBraWxscyBB
Q19RdWlja1RpbWUuanMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ5MDE2Ci0KLSAgICAgICAgVXBkYXRlIG9iamVjdENvbnRlbnRUeXBlKCkgaW1wbGVt
ZW50YXRpb24gdG8gaGFuZGxlIHRoZQotICAgICAgICBzaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1h
Z2VzIGZsYWcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50
VHlwZSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoK
LQotMjAxMS0wMy0yMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KLQotICAgICAgICBDaGFuZ2UgSWNvbkRhdGFiYXNl
IG9wZW5pbmcgdG8gYWxsb3cgZm9yIGFyYml0cmFyeSBmaWxlbmFtZXMKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2OTc3Ci0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0aWNvbmRhdGFiYXNlLmNwcDoKLSAgICAgICAgKHdlYmtpdF9pY29uX2RhdGFiYXNl
X3NldF9wYXRoKToKLQotMjAxMS0wMy0yMiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2
by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBY
YW4gTG9wZXouCi0KLSAgICAgICAgQXBwbGljYXRpb25zIHRoYXQgaW5jbHVkZSBXZWJLaXQgaGVh
ZGVycyBmYWlsIHRvIGJ1aWxkIHdoZW4gdXNpbmcgc3RyaWN0IHdhcm5pbmdzCi0gICAgICAgIGJl
Y2F1c2UgdGhlIHNpZ25hdHVyZSBmb3Igd2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dldF9tYXhp
bXVtX3NpemUgaXMgbWlzc2luZyBhCi0gICAgICAgICd2b2lkJyB0byBtYWtlIGl0IGV4cGxpY2l0
IGl0IHRha2VzIG5vIGFyZ3VtZW50cy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRhcHBsaWNh
dGlvbmNhY2hlLmg6Ci0KLTIwMTEtMDMtMjEgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGln
YWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAg
ICAgIFtHVEtdIDEuMy4xMyByZWxlYXNlIGJ1bXAKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU2Nzk1Ci0KLSAgICAgICAgVmVyc2lvbiBidW1wIGZvciAx
LjMuMTMgYW5kIHVwZGF0ZWQgTkVXUyBmaWxlIHdpdGggcmVsZWFzZSBub3Rlcy4KLQotICAgICAg
ICAqIE5FV1M6Ci0KLTIwMTEtMDMtMjEgIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgotCi0gICAgICAgIFJFR1JF
U1NJT04gKHI3OTk1Myk6IENhbid0IHR5cGUgaW4gTVMgT3V0bG9vayAyMDExCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjY2NQotCi0gICAgICAgIHI3
OTk1MyByZW1vdmVkIHRoZSBXZWJWaWV3IGxldmVsIGVkaXRhYmxpdHkgd2hpY2ggaXMgcGVyc2lz
dGVudCBubyBtYXR0ZXIgd2hldGhlcgotICAgICAgICB1bmRlcmx5aW5nIGRvY3VtZW50IGl0c2Vs
ZiBpcyBjaGFuZ2VkIGFuZCBlZGl0YWJpbGl0eSBnZXRzIGxvc3QuIFRoZSByZXNvbHV0aW9uIGlz
IHRvCi0gICAgICAgIHNldCB0aGlzIFdlYlZpZXcgZWRpdGFibGUgdmFsdWUgdG8gV2ViQ29yZS4g
VGhpcyBhdm9pZHMgdGhlIGNhbGxiYWNrIGZyb20gV2ViQ29yZSB0bwotICAgICAgICBXZWJLaXQg
d2hpY2ggd2FzIHRoZSBtYWluIGdvYWwgaW4gcjc5OTUzIHRvIGltcHJvdmUgcGVyZm9ybWFuY2Uu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2VkaXRhYmxlKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfZWRp
dGFibGUpOgotCi0yMDExLTAzLTIxICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdh
bGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAg
ICAgW0dUS10gW1N0YWJsZV0gQXRrSHlwZXJ0ZXh0IGV4cG9zZXMgd3Jvbmcgb2Zmc2V0cyBmb3Ig
bGlua3MgcGxhY2VkIGluc2lkZSA8c3Bhbj4gbm9kZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NzM3Ci0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRr
LmM6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrSHlwZXJ0ZXh0QW5kSHlwZXJsaW5rcyk6IFVwZGF0
ZWQgdW5pdCB0ZXN0IHRvIGFsc28KLSAgICAgICAgY2hlY2sgb2Zmc2V0cyBmb3IgaHlwZXJsaW5r
cyBpbnNpZGUgPHNwYW4+IG5vZGVzLgotCi0yMDExLTAzLTE4ICBEYXZpZCBLZWlqc2VyICA8a2Vp
anNlckBnbWFpbC5jb20+IGFuZCBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBPbi1kZW1h
bmQgZXZlbnQtbGlzdGVuZXJzIGZvciBET00gZXZlbnQgc2lnbmFscwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk2NDkKLQotICAgICAgICAqIHRlc3Rz
L3Rlc3Rkb21kb213aW5kb3cuYzogdXBkYXRlIHVuaXQgdGVzdHMgZm9yIG5ldyBBUElzLgotICAg
ICAgICAobG9hZF9ldmVudF9jYWxsYmFjayk6IGRpdHRvLgotICAgICAgICAodGVzdF9kb21fZG9t
dmlld19zaWduYWxzKTogZGl0dG8uCi0gICAgICAgIChsb2FkX3N0YXR1c19jYWxsYmFjayk6IGRp
dHRvLgotCi0yMDExLTAzLTE3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQyNQotICAgICAgICBNb3JlIGdyb3VuZHdvcmsg
Zm9yIFdlYktpdDIgSWNvbkRhdGFiYXNlCi0KLSAgICAgICAgVXBkYXRlIGFscmVhZHktdXNlZCBm
dW5jdGlvbiBuYW1lczoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNlLmNwcDoK
LSAgICAgICAgKHdlYmtpdF9pY29uX2RhdGFiYXNlX2dldF9pY29uX3VyaSk6Ci0gICAgICAgICh3
ZWJraXRfaWNvbl9kYXRhYmFzZV9nZXRfaWNvbl9waXhidWYpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl91cmkp
OgotCi0yMDExLTAzLTE2ICBKb3NlcGggUGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCi0KLSAgICAg
ICAgVmlld3BvcnQgbm8gbG9uZ2VyIGFsbG93cyBhbiBhdXRvIHZhbHVlIGZvciAidXNlci1zY2Fs
YWJsZSIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1
NDE2Ci0KLSAgICAgICAgTWFrZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdXNlclNjYWxhYmxlIGJl
IHRydWUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wQ29uZmlndXJh
dGlvbkZvclZpZXdwb3J0KTogdXBkYXRlIHRlc3Qgb3V0cHV0IHRvIGluY2x1ZGUgdXNlclNjYWxh
YmxlLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwOgotICAg
ICAgICAod2Via2l0Vmlld3BvcnRBdHRyaWJ1dGVzUmVjb21wdXRlKToKLQotMjAxMS0wMy0xNSAg
SWx5YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IFRvbnkgQ2hhbmcuCi0KLSAgICAgICAgQXV0b2ZpbGxlZCBmb3JtIGVsZW1lbnRzIGFyZSBh
c3NpZ25lZCBmaXhlZCBiYWNrZ3JvdW5kIGNvbG9yIGJ1dCBub3QgdGV4dCBjb2xvcgotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgzODIKLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAg
IChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldEF1dG9maWxsZWQpOiBBZGRlZC4KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLQotMjAxMS0w
My0xNCAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIFBvc3NpYmxlIGxlYWtz
IGFmdGVyIHNwbGl0dGluZyBUZXh0Q2hlY2tlckNsaWVudEVuY2hhbnQuCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTk4OQotCi0gICAgICAgIENvbnZl
cnQgZ2NoYXIqIHRvIEdPd25QdHI8Z2NoYXI+IGFuZCByZWZhY3RvciB0aGUgY29kZS4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50RW5jaGFudC5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50RW5jaGFudDo6Y2hlY2tTcGVsbGluZ09mU3Ry
aW5nKToKLQotMjAxMS0wMy0xMSAgTWFyY28gUGVlcmVib29tICA8bWFyY29AcGVlcmVib29tLnVz
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAg
ICBQcm92aWRlIGEga25vYiB0byBlbmFibGUvZGlzYWJsZSBETlMgcHJlZmV0Y2hpbmcuCi0gICAg
ICAgIEROUyBwcmVmZXRjaGluZyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTk3MwotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nf
Y2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6Ci0KLTIwMTEtMDMtMDggIFBoaWxp
cHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBjbG9zZS13ZWItdmlldyBlbWl0dGVk
IG9uIGRpc3Bvc2VkIFdlYlZpZXcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU1OTMyCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgotICAgICAgICAoQ2hyb21lQ2xpZW50OjpjaHJvbWVEZXN0cm95ZWQpOiBSZW1v
dmUgdGhlIGNsb3NlU29vblRpbWVyIGdsaWIKLSAgICAgICAgc291cmNlIGJlZm9yZSBkZXN0cnVj
dGlvbiBvZiB0aGUgQ2hyb21lQ2xpZW50LgotCi0yMDExLTAzLTExICBSb2xhbmQgU3RlaW5lciAg
PHJvbGFuZHN0ZWluZXJAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1
a2UgTml3YS4KLQotICAgICAgICBCdWcgNTU1NzAgLSBSZW1vdmUgZGVwZW5kZW5jeSBvZiBkb20v
SW5wdXRFbGVtZW50LmNwcCBvbiBodG1sLyBhbmQgd21sLwotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTU1NzAKLQotICAgICAgICBBZGQgYSB2aXJ0dWFs
IGZ1bmN0aW9uIHRvSW5wdXRFbGVtZW50KCkgdG8gTm9kZSB0aGF0IGhhcyBhIGRlZmF1bHQKLSAg
ICAgICAgaW1wbGVtZW50YXRpb24gb2YgcmV0dXJuaW5nIDAuCi0gICAgICAgIEZvciBIVE1MSW5w
dXRFbGVtZW50IGFuZCBXTUxJbnB1dEVsZW1lbnQgKHdoaWNoIGRlcml2ZSBmcm9tIElucHV0RWxl
bWVudCkKLSAgICAgICAgb3ZlcnJpZGUgdGhpcyB0byByZXR1cm4gdGhlIG9iamVjdC4KLSAgICAg
ICAgQ2hhbmdlIGFsbCBjYWxsaW5nIHNpdGVzIG9mIHRoZSBvbGQgdG9JbnB1dEVsZW1lbnQgdG8g
dXNlIHRoZSBuZXcgbWVtYmVyCi0gICAgICAgIGZ1bmN0aW9uLiBUaGlzIGFsc28gYWxsb3dzIHVz
IHRvIHNhdmUgc29tZSBjYXN0cy4KLQotICAgICAgICBObyBuZXcgdGVzdHMgKHJlZmFjdG9yaW5n
KS4KLQotICAgICAgICAqIHNyYy9XZWJJbnB1dEVsZW1lbnQuY3BwOgotICAgICAgICAoV2ViS2l0
Ojp0b1dlYklucHV0RWxlbWVudCk6Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRWYWx1ZUZvclVzZXIpOgotCi0yMDExLTAzLTEwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAg
ICAgICAgW0dUS10gdW5pdHRlc3RzL3Rlc3RhcHBsaWNhdGlvbmNhY2hlIGNyYXNoZXMKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MDgzCi0KLSAgICAg
ICAgUmVtb3ZlZCB0aGUgd2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dldF9kYXRhYmFzZV9kaXJl
Y3RvcnlfcGF0aAotICAgICAgICBBUEkgYXMgdGhlIHVuZGVybHlpbmcgQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UgZG9lc24ndCBhbGxvdwotICAgICAgICBzZXR0aW5nIHRoZSBjYWNoZSBwYXRoIG11
bHRpcGxlIHRpbWVzLgotCi0gICAgICAgICogdGVzdHMvdGVzdGFwcGxpY2F0aW9uY2FjaGUuYzoK
LSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hl
LmNwcDoKLSAgICAgICAgKHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9nZXRfZGF0YWJhc2VfZGly
ZWN0b3J5X3BhdGgpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmg6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAgICAgICAod2Via2l0SW5p
dCk6Ci0KLTIwMTEtMDMtMDkgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IE1paGFpIFBhcnBhcml0YS4KLQotICAgICAgICBVbmlmeSBX
aW5kb3dzIHZlcnNpb24gY2hlY2tzLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTU5NzkKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5n
cy5jcHA6Ci0gICAgICAgICh3ZWJraXRPU1ZlcnNpb24pOgotCi0yMDExLTAzLTA4ICBDaHJpc3Rp
YW4gRHl3YW4gIDxjaHJpc3RpYW5AbGFuZWRvLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBN
YXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gcHJvdmlkZSBhbiBBUEkgdG8gY29udHJv
bCB0aGUgSWNvbkRhdGFiYXNlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMjUxMAotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06Ci0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOiBFbWl0IHNpZ25hbHMgb24K
LSAgICAgICAgICAgIHRoZSBpY29uIGRhdGFiYXNlIGZvciBuZXcgaWNvbnMuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdC5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRkZWZpbmVzLmg6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRn
bG9iYWxzLmg6IEFkZCBhIGZ1bmN0aW9uIHRvIG9idGFpbiB0aGUgZ2xvYmFsCi0gICAgICAgICAg
ICBpY29uIGRhdGFiYXNlLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRpY29uZGF0YWJhc2UuY3Bw
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXRpY29uZGF0YWJhc2UuaDogSW1wbGVtZW50IHB1Ymxp
YyBpY29uIGRhdGFiYXNlCi0gICAgICAgICAgICBvYmplY3Qgd2l0aCBtZXRob2RzIGZvciBvYnRh
aW5pbmcgaWNvbiBVUkxzLCBwaXhidWZzLCBjbGVhcmluZwotICAgICAgICAgICAgd2FpdGluZyBm
b3IgbmV3IGljb25zLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOiBBZGQgYSBtZXRob2QgdG8gb2J0YWluIGFuIGlj
b24gcGl4YnVmCi0gICAgICAgICAgICBmb3IgdGhlIHdlYiB2aWV3LgotMjAxMS0wMy0wOCAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIEFkZCBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRWYWx1ZUZvclVzZXIoKSBhZnRlciByODA0MTIKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1ODYyCi0KLSAgICAgICAgQWRkIHNldFZh
bHVlRm9yVXNlciBtZXRob2QgdG8gRHVtcFJlbmRlclRyZWVTdXBwb3J0R1RLLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0VmFsdWVGb3JVc2VyKToKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLQotMjAxMS0wMy0wNyAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZGVy
cyBDYXJsc3Nvbi4KLQotICAgICAgICBSZXBsYWNlIFdlYktpdDIncyBkZWNpZGVQb2xpY3lGb3JN
SU1FVHlwZSB3aXRoIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTgyNwotCi0gICAgICAgIFJlbmFtZWQgRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUgdG8gZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZQotICAgICAgICBhbmQgcGFzcyB0aGUgZW50aXJlIHJl
c3BvbnNlLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIE1JTUVUeXBlLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAxMS0wMy0wMSAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIFdpbmRvd2xlc3MgcGx1Z2lucyBvdmVy
cmlkZSB0aGUgdmlldyBjdXJzb3IKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU1NTMxCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldEN1cnNvcik6IE1v
dmVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBzZXRDdXJzb3IgaGVyZQotICAgICAgICB3aGljaCBp
cyBtb3JlIGZpdHRpbmcgc2luY2UgaXQgc2V0cyB0aGUgY3Vyc29yIGZvciB0aGUgZW50aXJlIHdp
bmRvdy4KLQotMjAxMS0wMy0wMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NzIxCi0gICAgICAgIEdsb2JhbCBJY29uRGF0
YWJhc2Ugc2hvdWxkIGJlIHJldHVybmVkIGJ5IHJlZmVyZW5jZSwgbm90IGFzIGEgcG9pbnRlcgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgotICAgICAgICAoY2xvc2VJY29u
RGF0YWJhc2VPbkV4aXQpOgotICAgICAgICAoV2ViS2l0OjpzZXRJY29uRGF0YWJhc2VFbmFibGVk
KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2ljb25fdXJpKToKLQotMjAxMS0wMy0wMyAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KLQotICAgICAgICBSZW1vdmluZyBhbiBpbmNsdWRlIG9mIFdlYkNv
cmVLZXlib2FyZFVJTW9kZS5oIHRoYXQgSXZlIGp1c3QgYWRkZWQuIEl0J3MgYWxyZWFkeSBpbmNs
dWRlZAotICAgICAgICB2aWEgQ2hyb21lQ2xpZW50LmgKLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDExLTAzLTAyICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0g
ICAgICAgIFJFR1JFU1NJT04gKFdlYktpdDIpOiBUYWIga2V5cyBubyBsb25nZXIgb2JzZXJ2ZSBG
dWxsIEtleWJvYXJkIEFjY2VzcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTU2MzMKLSAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg5NjMwMjM+Ci0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOiAoV2ViS2l0OjpDaHJv
bWVDbGllbnQ6OmtleWJvYXJkVUlNb2RlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuaDoKLSAgICAgICAgSW1wbGVtZW50IGtleWJvYXJkVUlNb2RlKCkgaW5zdGVh
ZCBvZiB0YWJzVG9MaW5rcygpLiBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eSwgc2luY2UKLSAg
ICAgICAgdGhpcyBwbGF0Zm9ybSBkb2Vzbid0IG9ic2VydmUgb3IgaGF2ZSBmdWxsIGtleWJvYXJk
IGFjY2VzcyBzdGF0ZS4KLQotMjAxMS0wMy0wMyAgTHVrYXN6IFNsYWNoY2lhayAgPGwuc2xhY2hj
aWFrQHNhbXN1bmcuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAg
ICAgICBbR1RLXSBFeHRlbmRlZCBhcHBsaWNhdGlvbiBjYWNoZSBkYXRhYmFzZSBBUEkgYW5kIGFk
ZGVkIHVuaXQgdGVzdHMgZmlsZS4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU1MzM1Ci0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkIHRlc3Rh
cHBsaWNhdGlvbmNhY2hlLmMgYW5kIHJlbW92ZSB3ZWJraXRhcHBsaWNhdGlvbmNhY2hlcHJpdmF0
ZS5oLgotICAgICAgICAqIHRlc3RzL3Rlc3RhcHBsaWNhdGlvbmNhY2hlLmM6IEFkZGVkLgotICAg
ICAgICAodGVzdF9hcHBsaWNhdGlvbmNhY2hlX21heGltdW1fc2l6ZSk6IFRlc3RzIGlmIGFwcGxp
Y2F0aW9uIGNhY2hlIHN0b3JhZ2UgaXMgc2V0L2dldCBjb3JyZWN0bHkuCi0gICAgICAgICh0ZXN0
X2FwcGxpY2F0aW9uY2FjaGVfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgpOiBUZXN0cyBpZiBhcHBs
aWNhdGlvbiBjYWNoZSBkaXJlY3RvcnkgcGF0aCBpcyBzZXQvZ2V0IGNvcnJlY3RseS4KLSAgICAg
ICAgKG1haW4pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcDoK
LSAgICAgICAgKHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9nZXRfbWF4aW11bV9zaXplKTogTmV3
IEFQSSBmb3IgZ2V0dGluZyBhcHBsaWNhdGlvbiBjYWNoZSBtYXhpbXVtIHN0b3JhZ2Ugc2l6ZS4K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZS5oOiBEZWNsYXJhdGlvbiBv
ZiBBUEkgZm9yIGdldHRpbmcvc2V0dGluZyBhcHBsaWNhdGlvbiBjYWNoZSBtYXhpbXVtIHN0b3Jh
Z2Ugc2l6ZS4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZXByaXZhdGUu
aDogUmVtb3ZlZC4KLTIwMTEtMDMtMDMgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgotCi0gICAgICAgIERy
b3AgcmVkdW5kYW50ICJXaW5kb3dzOyAiIGZyb20gdGhlIFdpbmRvd3Mtc3BlY2lmaWMgVXNlciBB
Z2VudCBzdHJpbmcuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NDU2NwotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAg
ICAgICAgKHdlYmtpdFBsYXRmb3JtKToKLSAgICAgICAgKHdlYmtpdFVzZXJBZ2VudCk6Ci0KLTIw
MTEtMDMtMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBEbyBhIGJpdCBvZiBjbGVhbnVw
IGluIENocm9tZUNsaWVudEd0ay4gSW5zdGVhZCBvZiBhbHdheXMgZmV0Y2hpbmcgdGhlCi0gICAg
ICAgIFdlYktpdFdlYlZpZXcgZnJvbSB0aGUgZnJhbWUsIHNpbXBseSBnZXQgaXQgZnJvbSB0aGUg
bWVtYmVyIHZhcmlhYmxlIG9mCi0gICAgICAgIHRoZSBDaHJvbWVDbGllbnRHdGsgaW5zdGFuY2Ug
aXRzZWxmLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzVmlzaWJsZSk6Ci0gICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKToKLSAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVu
dDo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVu
dDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKToKLQotMjAxMS0wMy0wMSAgSm9zZXBoIFBlY29yYXJv
ICA8am9lcGVja0B3ZWJraXQub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIFJvbGwgb3V0IHI4
MDA2OCBhbmQgcjgwMDczIGR1ZSB0byBicmVha2luZyBXZWJLaXQyIFF0IHBvcnQuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0
KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcDoKLSAgICAg
ICAgKHdlYmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6Ci0KLTIwMTEtMDMtMDEgIEpv
c2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KLQotICAgICAgICBWaWV3cG9ydCBXYXJuaW5n
L0Vycm9yIE1lc3NhZ2VzIEFyZSBOb3cgSW5hY2N1cmF0ZQotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM3MDcKLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OmR1bXBDb25maWd1cmF0aW9uRm9yVmlld3BvcnQpOiBwYXNzIGEgRG9jdW1l
bnQgaW50byBjb21wdXRlVmlld3BvcnRBdHRyaWJ1dGVzIGZvciB3YXJuaW5ncyB0byBiZSByZXBv
cnRlZCB0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcDoK
LSAgICAgICAgKHdlYmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZSk6IHBhc3MgYSBEb2N1
bWVudCBpbnRvIGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMgZm9yIHdhcm5pbmdzIHRvIGJlIHJl
cG9ydGVkIHRvLgotCi0yMDExLTAzLTAxICBLYW1pbCBCbGFuayAgPGsuYmxhbmtAc2Ftc3VuZy5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtH
VEtdIEZpeGluZyBoZWFkZXJzIG9yZGVyIGluIHdlYmtpdC5oLgotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUzMTYKLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXQuaDogU3R5bGUgZml4LgotCi0yMDExLTAzLTAxICBKb29uZSBIdXIgIDxqb29uZS5odXJA
Y29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
LQotICAgICAgICBbR1RLXSBDb252ZXJ0IHVzZSBvZiBjYWlyb190IHRvIFJlZlB0cjxjYWlyb190
PiBpbiB3ZWJraXR3ZWJpZXcuY3BwCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NTQzNwotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OiBDb252ZXJ0IHVzZSBvZiBjYWlyb190IHRvIFJlZlB0cjxjYWlyb190Pi4KLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19leHBvc2VfZXZlbnQpOiAKLQotMjAxMS0wMi0yOCAgQ2hhbmcgU2h1ICA8
Y3NodUB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KLQot
ICAgICAgICBSZW1vdmUgdGhlIHN1cHBvcnQgb2YgRnJhbWU6OmlzQ29udGVudEVkaXRhYmxlIGFu
ZCBpdHMgZGVwZW5kZW5jaWVzLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTQyOTIKLQotICAgICAgICBSZW1vdmUgdGhlIFdlYktpdCBzaWRlIGltcGxl
bWVudGF0aW9uLiBNYWtlIFdlYktpdCBzdXBwb3J0IGRlcGVuZCBvbiBEb2N1bWVudDo6aW5EZXNp
Z25Nb2RlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlKToKLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19zZXRfZWRpdGFibGUpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
cHJpdmF0ZS5oOgotCi0yMDExLTAyLTI2ICBMdWthc3ogU2xhY2hjaWFrICA8bC5zbGFjaGNpYWtA
c2Ftc3VuZy5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAg
IFtHVEtdIEltcGxlbWVudGVkIEFQSSB0byBzZXQvZ2V0IHdlYiBhcHBsaWNhdGlvbiBjYWNoZSBk
aXJlY3RvcnkgcGF0aCBkYXRhYmFzZS4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGQg
d2Via2l0YXBwbGljYXRpb25jYWNoZS5oIGZpbGUuCi0gICAgICAgICogd2Via2l0L3dlYmtpdC5o
OiBBZGQgd2Via2l0YXBwbGljYXRpb25jYWNoZS5oIGZpbGUuCi0gICAgICAgICogd2Via2l0L3dl
YmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwOiBkZWZpbml0aW9uIG9mIEFQSSBzZXR0aW5nIGFuZCBn
ZXR0aW5nCi0gICAgICAgIHdlYiBhcHBsaWNhdGlvbiBjYWNoZSBkaXJlY3RvcnkgcGF0aCBkYXRh
YmFzZS4KLSAgICAgICAgKHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9nZXRfZGF0YWJhc2VfZGly
ZWN0b3J5X3BhdGgpOgotICAgICAgICAod2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX3NldF9kYXRh
YmFzZV9kaXJlY3RvcnlfcGF0aCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGFwcGxpY2F0aW9u
Y2FjaGUuaDogQWRkZWQgbmV3IEFQSSBmaWxlIGZvciBzZXR0aW5nIGFuZCBnZXR0aW5nCi0gICAg
ICAgIHdlYiBhcHBsaWNhdGlvbiBjYWNoZSBkaXJlY3RvcnkgcGF0aCBkYXRhYmFzZS4KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6Ci0gICAgICAgICh3ZWJraXRJbml0KTogdXNl
IHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9zZXRfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgKLSAg
ICAgICAgdG8gc2V0IGRlZmF1bHQgd2ViIGFwcGxpY2F0aW9uIGNhY2hlIGRpcmVjdG9yeSBwYXRo
IGRhdGFiYXNlLgotCi0yMDExLTAyLTI2ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21p
dW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCi0KLSAgICAgICAg
RHVtcFJlbmRlclRyZWUgc2hvdWxkIHJlc2V0IGZyYW1lIG9wZW5lciBiZXR3ZWVuIHRlc3RzLgot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ4NzQKLQot
ICAgICAgICBBZGRlZCBjbGVhck9wZW5lciBtZXRob2QgdG8gRHVtcFJlbmRlclRyZWVTdXBwb3J0
R1RLLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y2xlYXJPcGVuZXIpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotCi0y
MDExLTAyLTI2ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgotCi0gICAgICAgIE1ha2Ug
aXQgcG9zc2libGUgdG8gdGVzdCB0aGUgdGFyZ2V0ZGVuc2l0eS1kcGkgc3VwcG9ydAotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTUxNDIKLQotICAgICAg
ICBUZXN0IHRoZSB2aWV3cG9ydCBtZXRhIHRhZyBmZWF0dXJlIHRhcmdldGRlbnNpdHktZHBpIGJ5
Ci0gICAgICAgIGFkZGluZyBleHRyYSBhcmd1bWVudHMgdG8gZHVtcENvbmZpZ3VyYXRpb25Gb3JW
aWV3cG9ydAotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcENvbmZpZ3Vy
YXRpb25Gb3JWaWV3cG9ydCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTEtMDItMjYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3OTc2
NC4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNzk3NjQKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1Mjk1Ci0KLSAgICAg
ICAgImJyb2tlIENocm9taXVtIGJ1aWxkcyIgKFJlcXVlc3RlZCBieSBybml3YSBvbiAjd2Via2l0
KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5j
cHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6
Ci0KLTIwMTEtMDItMjYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KLQotICAgICAgICBEdW1wUmVuZGVy
VHJlZSBzaG91bGQgcmVzZXQgZnJhbWUgb3BlbmVyIGJldHdlZW4gdGVzdHMuCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDg3NAotCi0gICAgICAgIEFk
ZGVkIGNsZWFyT3BlbmVyIG1ldGhvZCB0byBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHVEsuCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjbGVhck9wZW5lcik6Ci0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTEtMDItMjQg
IFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIERyb3AgdGhlICJVOyAiIGVuY3J5cHRpb24gbGV2
ZWwgZnJvbSB0aGUgVXNlciBBZ2VudCBzdHJpbmcuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU2NgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdFVzZXJBZ2VudCk6Ci0KLTIwMTEtMDItMjQg
IEFuZHJldyBXaWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjc5NTcwLgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC83OTU3MAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTQ4NzQKLQotICAgICAgICBCcmVha3MgY2hyb21pdW0gYnVpbGQgYmVjYXVzZSBn
bHVlL21vY2tzL21vY2tfd2ViX2ZyYW1lLmgvY2MKLSAgICAgICAgd2FzIG5vdCB1cGRhdGVkCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotCi0y
MDExLTAyLTI0ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCi0KLSAgICAgICAgRHVtcFJlbmRl
clRyZWUgc2hvdWxkIHJlc2V0IGZyYW1lIG9wZW5lciBiZXR3ZWVuIHRlc3RzLgotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ4NzQKLQotICAgICAgICBB
ZGRlZCBjbGVhck9wZW5lciBtZXRob2QgdG8gRHVtcFJlbmRlclRyZWVTdXBwb3J0R1RLLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y2xlYXJPcGVuZXIpOgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotCi0yMDExLTAyLTIy
ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgotCi0gICAgICAgIERyb3AgdGhlIGxhbmd1
YWdlIHRhZyBwYXJ0IGZyb20gdGhlIFVzZXIgQWdlbnQgc3RyaW5nCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU2MAotCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdFVzZXJBZ2VudCk6Ci0KLTIw
MTEtMDItMjIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBwb3NpdGlvbjpmaXhl
ZCBlbGVtZW50cyBmbGlja2VyIHdoaWxlIHNjcm9sbGluZyBhZnRlciByNzQxOTYKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0OTgxCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnQ6OkNocm9tZUNsaWVudCk6IEluaXRpYWxpemUgdGhlIG5ldyBtX3BlbmRpbmdT
Y3JvbGxJbnZhbGlkYXRpb25zCi0gICAgICAgIGJvb2xlYW4gdG8gZmFsc2UuCi0gICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVdpbmRvdyk6IElmIHRoaXMgaXMgYW4gaW1t
ZWRpYXRlIGludmFsaWRhdGlvbiBhbmQgd2UKLSAgICAgICAgaGF2aW5nIHBlbmRpbmcgc2Nyb2xs
aW5nIGludmFsaWRhdGlvbnMsIGluc3RydWN0IEdESyB0byBwcm9jZXNzIHVwZGF0ZXMgbm93Lgot
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbCk6IFJlbW92ZSB0aGUgY2FsbCB0
byBnZGtfd2luZG93X3Byb2Nlc3NfdXBkYXRlcy4gU2V0Ci0gICAgICAgIG1fcGVuZGluZ1Njcm9s
bEludmFsaWRhdGlvbnMgdG8gdHJ1ZSB0byBmb3JjZSBpdCB0byBoYXBwZW4gaW4gaW52YWxpZGF0
ZVdpbmRvdyBpbnN0ZWFkLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5oOiBBZGQgbmV3IGJvb2xlYW4gbWVtYmVyLgotCi0yMDExLTAyLTAyICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9w
ZXouCi0KLSAgICAgICAgW0dUS10gRFJUIG5lZWRzIGFuIGltcGxlbWVudGF0aW9uIG9mIExheW91
dFRlc3RDb250cm9sbGVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZQotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MDMKLQotICAgICAgICBBZGQg
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCB3aGljaCBhbGxvdwotICAgICAgICBzZXR0aW5nIGFuZCBxdWVyeWluZyB0
aGUgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nLiBFZGl0b3JDbGllbnQg
anVzdAotICAgICAgICBsaXN0ZW5zIHRvIHRoaXMgdmFsdWUgZHVyaW5nIERSVCBydW5zLiBQZXJo
YXBzIGxhdGVyIHdlIGNhbiBleHBvc2UgdGhpcyB0byB0aGUgcHVibGljCi0gICAgICAgIEFQSS4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6
Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQpOiBBZGRlZAotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKTogQWRkZWQKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6IEFzayBEUlRTdXBwb3J0R3Rr
Ci0gICAgICAgIGZvciB0aGUgYXBwcm9wcmlhdGUgcmV0dXJuIHZhbHVlLgotCi0yMDExLTAyLTIx
ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBbUkVHUkVTU0lPTl0gQWZ0ZXIgcjc5
MTMwLCBzcGVsbCB0ZXN0cyBkaWQgbm90IHdvcmsKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU0ODYwCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9U
ZXh0Q2hlY2tlckNsaWVudEVuY2hhbnQuY3BwOgotICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tl
ckNsaWVudEVuY2hhbnQ6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyk6IEF2b2lkZWQKLSAgICAgICAg
ZnJlZWluZyB0aGUgZGVmYXVsdCBQYW5nb0xhbmd1YWdlLgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3Mp
OiBJbml0aWFsaXplZCBsaXN0IG9mIGRpY3Rpb25hcmllcy4KLQotMjAxMS0wMi0xNyAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRh
bXVyYS4KLQotICAgICAgICBSZW5hbWUgUG9zaXRpb246Om5vZGUoKSB0byBQb3NpdGlvbjo6ZGVw
cmVjYXRlZE5vZGUoKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTQ2MjIKLQotICAgICAgICBEb25lIHRoZSByZW5hbWUuIEFsbCBjYWxscyB0byBub2Rl
KCkgYXJlIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIGRlcHJlY2F0ZWROb2RlKCkuCi0KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcG9w
dXBfbWVudV9oYW5kbGVyKToKLQotMjAxMS0wMi0xOSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lA
c2Ftc3VuZy5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0g
ICAgICAgIFtHVEtdIFJlbW92ZSBtYW5kYXRvcnkgRW5jaGFudCBkZXBlbmRlbmN5Ci0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTU4NwotCi0gICAgICAg
IEV4dHJhY3QgVGV4dENoZWNrZXJDbGllbnRFbmNoYW50IEZyb20gRWRpdG9yQ2xpZW50R3RrIGFu
ZCByZW1vdmUKLSAgICAgICAgZW5jaGFudCBkZXBlbmRlbmN5IGZyb20gb3RoZXIgZmlsZXMuCi0K
LSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OkVkaXRvckNs
aWVudCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0gICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6dGV4dENoZWNrZXIpOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50RW5jaGFudC5jcHA6IEFkZGVkLgotICAgICAgICAo
V2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEVuY2hhbnQ6OlRleHRDaGVja2VyQ2xpZW50RW5jaGFu
dCk6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50RW5jaGFudDo6flRleHRDaGVj
a2VyQ2xpZW50RW5jaGFudCk6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50RW5j
aGFudDo6aWdub3JlV29yZEluU3BlbGxEb2N1bWVudCk6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRD
aGVja2VyQ2xpZW50RW5jaGFudDo6bGVhcm5Xb3JkKToKLSAgICAgICAgKFdlYktpdDo6VGV4dENo
ZWNrZXJDbGllbnRFbmNoYW50OjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcpOgotICAgICAgICAoV2Vi
S2l0OjpUZXh0Q2hlY2tlckNsaWVudEVuY2hhbnQ6OmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZv
ck1pc3NwZWxsZWRXb3JkKToKLSAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDbGllbnRFbmNo
YW50OjpjaGVja0dyYW1tYXJPZlN0cmluZyk6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2Vy
Q2xpZW50RW5jaGFudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgotICAgICAgICAoV2ViS2l0OjpnZXRB
dmFpbGFibGVEaWN0aW9uYXJpZXNDYWxsYmFjayk6Ci0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVj
a2VyQ2xpZW50RW5jaGFudDo6dXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlKToKLSAgICAgICAg
KFdlYktpdDo6VGV4dENoZWNrZXJDbGllbnRFbmNoYW50OjpmcmVlU3BlbGxDaGVja2luZ0xhbmd1
YWdlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEVuY2hhbnQu
aDogQWRkZWQuCi0gICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50RW5jaGFudDo6cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5n
cy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2ZpbmFsaXplKToKLSAgICAgICAg
KHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5
KToKLQotMjAxMS0wMi0xOSAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IE1paGFpIFBhcnBhcml0YS4KLQotICAgICAgICBFbnN1cmUgbG9h
ZGluZyBoYXMgc3RvcHBlZCBpbiBIaXN0b3J5Q29udHJvbGxlcjo6Z29Ub0l0ZW0KLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTE3Ci0KLSAgICAgICAg
QWRkIGEgRnJhbWVMb2FkZXJDbGllbnQgY2FsbGJhY2sgZm9yIHdoZXRoZXIgdG8gc3RvcCBsb2Fk
aW5nIGJlZm9yZSBnb1RvSXRlbS4KLQotICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL25hdmlnYXRp
b24vZm9yd2FyZC10by1mcmFnbWVudC1maXJlcy1vbmxvYWQuaHRtbAotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudEd0azo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbSk6IEFk
ZGVkLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0K
LTIwMTEtMDItMTggIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR3RrXSBh
dGtfdGV4dF9nZXRfc2VsZWN0aW9uL2F0a190ZXh0X3NldF9zZWxlY3Rpb24gZmFpbHMgZm9yIGxp
c3QgaXRlbXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUzNDUzCi0KLSAgICAgICAgVXBkYXRlIHVuaXQgdGVzdCB0byBjaGVjayB0aGUgZml4IGZvciB0
aGlzIGJ1Zy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKHRlc3RXZWJr
aXRBdGtUZXh0U2VsZWN0aW9ucyk6IENoZWNrIHRoYXQgZnVuY3Rpb25zIGZyb20gQXRrVGV4dAot
ICAgICAgICBpbnRlcmZhY2UgdG8gc2V0IGFuZCBnZXQgdGV4dCBzZWxlY3Rpb25zIHdvcmsgd2l0
aCBsaXN0IGl0ZW1zLgotCi0yMDExLTAyLTE3ICBSb2JlcnQgQW5jZWxsICA8cm9iZXIuYW5jZWxs
QGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAg
ICAgICAgW1BBVENIXSBHVEsgZG9jdW1lbnRhdGlvbiBmYWlscyB0byBidWlsZCBkdWUgdG8gY2hh
bmdlZCBwYXRocwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTQ2MDAKLQotICAgICAgICAqIGRvY3MvR05VbWFrZWZpbGUuYW06IFVwZGF0ZSB0aGUgcGF0
aHMgdGhhdCBoYXZlIG5vdyBtb3ZlZCB0aGUgU291cmNlCi0gICAgICAgIGRpcmVjdG9yeS4KLQot
MjAxMS0wMi0xNiAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gTWF0Y2ggbW9yZSB2
YXJpb3VzIFdlYktpdCBBUEkgZW51bSB2YWx1ZXMgd2l0aCBXZWJDb3JlIGVudW0gdmFsdWVzCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDM1MgotCi0g
ICAgICAgIEFzc2VydE1hdGNoaW5nRW51bXMuY3BwIHdhcyBhZGRlZCB0byBhc3NlcnQgdGhhdCB2
YXJpb3VzIFdlYktpdCBBUEkgZW51bSB2YWx1ZXMgCi0gICAgICAgIGNvbnRpbnVlIG1hdGNoaW5n
IFdlYkNvcmUgZGVmaW5lZCBlbnVtIHZhbHVlcyBpbiB0aGUgZm9sbG93aW5nIGNoYW5nZXNldC4K
LSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNzc4NjgKLSAgICAgICAg
SG93ZXZlciwgdGhlcmUgYXJlIGFscmVhZHkgZW51bSB2YWx1ZXMgdGhhdCBoYXZlIGJlZW4gYXNz
ZXJ0ZWQgaW4gb3RoZXIgZmlsZXMsIAotICAgICAgICBzbyB0aGVzZSBhc3NlcnQgbWFjcm9zIGRl
ZmluZWQgbmVlZCB0byBiZSBtb3ZlZCB0byBBc3NlcnRNYXRjaGluZ0VudW0uY3BwLiAgCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDogQWRkIG1vcmUg
ZW51bSB2YWx1ZXMgdG8gYmUgYXNzZXJ0ZWQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5h
dmlnYXRpb25hY3Rpb24uY3BwOiAgCi0gICAgICAgICh3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0
aW9uX2NsYXNzX2luaXQpOiBNb3ZlIHRoZSBhc3NlcnQgbWFjcm9zIG9mIAotICAgICAgICBXRUJL
SVRfV0VCX05BVklHQVRJT05fUkVBU09OXyogdG8gQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAuCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6IE1vdmUgdGhlIGFzc2VydCBtYWNyb3Mgb2YgV0VCS0lU
X0VESVRJTkdfQkVIQVZJT1JfKiAKLSAgICAgICAgdG8gQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAu
Ci0KLTIwMTEtMDItMTYgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RL
XSBldmVudHMgbWlzc2luZyB3aGVuIGEgZG9jdW1lbnQgaXMgKHJlKWxvYWRlZAotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4MzEKLQotICAgICAgICBF
bWl0IHRoZSByaWdodCBzaWduYWxzIHdoZW4gcmVsb2FkaW5nIGEgZG9jdW1lbnQuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlTdGF0dXMpOiBOZXcgZnVuY3Rpb24sIHRvIG1ha2Ug
c3VyZQotICAgICAgICB0aGUgc2lnbmFscyBpbnZvbHZlZCBpbiByZWxvYWRpbmcgYSBkb2N1bWVu
dCBhcmUgcHJvcGVybHkgZW1pdHRlZC4KLSAgICAgICAgKFdlYktpdDo6bm90aWZ5U3RhdHVzKTog
QWxzbyBub3RpZnkgYWNjZXNzaWJpbGl0eSBpZiBlbmFibGVkLgotCi0yMDExLTAyLTE1ICBLZW5u
ZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBGaXNoZXIuCi0KLSAgICAgICAgQWxsb3cgY29udHJvbGxpbmcgbWluaW11bSBET01UaW1lciBp
bnRlcnZhbCBvbiBhIHBlci1wYWdlIGJhc2lzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NDMxMgotCi0gICAgICAgIEFkZGVkIG5lZWRlZCBtZXRob2Rz
IHRvIGltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlcidzIG5ldwotICAgICAgICBzZXRNaW5p
bXVtVGltZXJJbnRlcnZhbCBtZXRob2QuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpkZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWwpOgotICAgICAgICAoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCk6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTEtMDItMTUgIENocmlz
dGlhbiBEeXdhbiAgPGNocmlzdGlhbkBsYW5lZG8uY29tPgotCi0gICAgICAgIFJ1YmJlci1zdGFt
cGVkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJzZXR0aW5ncy5jcHA6IENvcnJlY3QgYSB0eXBvLCBpdCBpcwotICAgICAgICAgICAgYWNjZXMq
cyppYmlsaXR5IHdpdGggdHdvIHMuCi0KLTIwMTEtMDEtMjYgIE1PUklUQSBIYWppbWUgIDxtb3Jy
aXRhQGdvb2dsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgotCi0g
ICAgICAgIFJlZmFjdG9yaW5nOiBFeHRyYWN0IFRleHRDaGVja2VyQ2xpZW50IGZyb20gRWRpdG9y
Q2xpZW50Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MzIxMwotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0gICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6dGV4dENoZWNrZXIpOgotCi0yMDExLTAyLTA3ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCi0KLSAgICAgICAgQWRkIEVkaXRvckNsaWVudCBjYWxsYmFja3MgdG8gb3ZlcnJp
ZGUgaXNET01QYXN0ZUFsbG93ZWQgYW5kIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyNDE3Ci0KLSAg
ICAgICAgQWRkZWQgdHdvIGNhbGxiYWNrIGZ1bmN0aW9ucywgY2FuQ29weUN1dCBhbmQgY2FuUGFz
dGUgdG8gRWRpdG9yQ2xpZW50LiBUaGV5IGFyZSBjdXJyZW50bHkKLSAgICAgICAgbm90IGltcGxl
bWVudGVkLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpjYW5Db3B5Q3V0KTogQWRkZWQuCi0gICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2FuUGFzdGUpOiBBZGRlZC4KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLQotMjAxMS0wMi0xNCAgQWxlamFuZHJv
IEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4g
TG9wZXouCi0KLSAgICAgICAgW0dUS10gdGVzdHdlYmRhdGFzb3VyY2UgdGVzdCBmYWlscyBpbiB0
aGUgYm90cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTQ0MTQKLQotICAgICAgICBDaGFuZ2VkIHRoZSB1cmkgd2UgY2hlY2ssIGFkZGVkIHd3dyB0byBh
dm9pZCB0aGUgcmV3cml0ZSB0aGF0IHdlCi0gICAgICAgIGdldCB3aGVuIHdlIGFzIHRoZSB1cmkg
dG8gdGhlIHJlcXVlc3QgaW4gY2FzZSBpdCBmaW5pc2hlcy4KLQotICAgICAgICAqIHRlc3RzL3Rl
c3R3ZWJkYXRhc291cmNlLmM6Ci0gICAgICAgIChub3RpZnlfbG9hZF9zdGF0dXNfY2IpOgotCi0y
MDExLTAyLTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQot
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzgzMzEuCi0gICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzc4MzMxCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDI5NQotCi0gICAgICAgIFRoaXMgcGF0Y2ggYnJva2Ug
MTEgdGVzdHMgaW4gR1RLIGJvdHMgKFJlcXVlc3RlZCBieSBzdmlsbGFyIG9uCi0gICAgICAgICN3
ZWJraXQpLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwOgotICAgICAgICAoV2ViS2l0Ojpub3RpZnlTdGF0dXMpOgotCi0yMDExLTAyLTEwICBOYXRl
IENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KLQotICAgICAgICBVcGRhdGUgY2FsbHMgdG8gRG9jdW1lbnRXcml0ZXIuCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDQ4OQotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6RnJhbWVMb2FkZXJDbGllbnQpOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlkUnVuSW5zZWN1cmVDb250ZW50KToKLSAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZE1haW5SZXNvdXJj
ZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRpbmcp
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2dldF9lbmNvZGluZyk6Ci0KLTIwMTEtMDItMTEgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2Fu
Y2hlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAg
ICAgICBbR1RLXSBldmVudHMgbWlzc2luZyB3aGVuIGEgZG9jdW1lbnQgaXMgKHJlKWxvYWRlZAot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4MzEKLQot
ICAgICAgICBFbWl0IHRoZSByaWdodCBzaWduYWxzIHdoZW4gcmVsb2FkaW5nIGEgZG9jdW1lbnQu
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0g
ICAgICAgIChXZWJLaXQ6Om5vdGlmeUFjY2Vzc2liaWxpdHlTdGF0dXMpOiBOZXcgZnVuY3Rpb24s
IHRvIG1ha2Ugc3VyZQotICAgICAgICB0aGUgc2lnbmFscyBpbnZvbHZlZCBpbiByZWxvYWRpbmcg
YSBkb2N1bWVudCBhcmUgcHJvcGVybHkgZW1pdHRlZC4KLSAgICAgICAgKFdlYktpdDo6bm90aWZ5
U3RhdHVzKTogQWxzbyBub3RpZnkgYWNjZXNzaWJpbGl0eSBpZiBlbmFibGVkLgotCi0yMDExLTAy
LTA4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gRFJUIG5lZWRzIGFuIGltcGxl
bWVudGF0aW9uIG9mIExheW91dFRlc3RDb250cm9sbGVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MDMzCi0K
LSAgICAgICAgQWRkIGEgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrIG1ldGhvZCBmb3IgdHVybmlu
ZyB0aGUgaWNvbiBkYXRhYmFzZSBvbiBhbmQgb2ZmLgotICAgICAgICBUaGlzIGlzIGEgbGlrZWx5
IGNhbmRpZGF0ZSBmb3IgYSBuZXcgQVBJIHBvaW50LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZCk6IEFkZGVkLgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXRnbG9iYWxzLmNwcDoKLSAgICAgICAgKHdlYmtpdEluaXQpOiBDYWxsIHNldEljb25E
YXRhYmFzZUVuYWJsZWQodHJ1ZSkgb24gc3RhcnR1cCwgaW5zdGVhZAotICAgICAgICBvZiBpbml0
aWFsaXppbmcgdGhlIGRhdGFiYXNlIG1hbnVhbGx5LgotICAgICAgICAoV2ViS2l0OjpzZXRJY29u
RGF0YWJhc2VFbmFibGVkKTogQWRkZWQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHNw
cml2YXRlLmg6IEFkZGVkIGRlY2xhcmF0aW9ucy4KLQotMjAxMS0wMi0wOCAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgot
Ci0gICAgICAgIFJlbW92ZSBvcnBoYW4gY29kZSBmcm9tIG9sZCBwYXJzZXIKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzOTg0Ci0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAxMS0wMi0wMiAgSWx5YSBUaWto
b25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWXVy
eSBTZW1pa2hhdHNreS4KLQotICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIEluc3BlY3RvckNv
bnRyb2xsZXIncyBtZXRob2RzIGZyb20gSW5zcGVjdG9yQWdlbnQgdG8gSW5zcGVjdG9yQ29udHJv
bGxlci4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMxNjkKLQotICAgICAgICBNaW5vciBjaGFuZ2UgZW5mb3JjZWQgYnkgbWFqb3IgY2hhbmdlcyBp
biBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViaW5zcGVjdG9yLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF9w
cm9wZXJ0eSk6Ci0KLTIwMTEtMDItMDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAg
ICAgICBbR1RLXSBEUlQncyBUZXh0SW5wdXRDb250cm9sbGVyIGlzIHVuaW1wbGVtZW50ZWQgb24g
R1RLCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjk5
NwotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0Q29tcG9zaXRpb24pOgot
ICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjb25maXJtQ29tcG9zaXRpb24pOgot
ICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJS
YW5nZSk6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNlbGVjdGVkUmFuZ2Up
OiBOZXcgbWV0aG9kcyBuZWVkZWQgYnkKLSAgICAgICAgVGV4dElucHV0Q29udHJvbGxlci4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLQotMjAx
MS0wMi0wNyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIEFkYW0gUm9iZW4gYW5kIERhcmluIEFkbGVyLgotCi0gICAgICAgIFdlYktpdDI6IGRy
YWcgYW5kIGRyb3Agc3VwcG9ydCBvbiBXaW5kb3dzLgotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI3NzUKLQotICAgICAgICBSZW1vdmVkIGNyZWF0ZURy
YWdJbWFnZUZvckxpbmsgZnJvbSBEcmFnQ2xpZW50LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHJhZ0NsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVu
dEd0ay5oOgotCi0yMDExLTAyLTA3ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNv
LnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBb
R3RrXSBJbXBsZW1lbnQgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZwotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyMzcKLQotICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOiBBZGQgQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAuCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6IEFkZCB0aGlzIGZpbGUgdG8g
YXNzZXJ0IHRoYXQgdmFyaW91cyAKLSAgICAgICAgV2ViS2l0IEFQSSBlbnVtIHZhbHVlcyBjb250
aW51ZSBtYXRjaGluZyBXZWJDb3JlIGRlZmluZWQgZW51bSB2YWx1ZXMuCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6ZmluZFN0cmluZyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTEtMDItMDcgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhbmll
bCBCYXRlcy4KLQotICAgICAgICBbR1RLXSBmYXN0L2hpc3RvcnkvaGlzdG9yeS1zdWJmcmFtZS13
aXRoLW5hbWUuaHRtbCBmYWlscyB3aXRoIEdUSyBEUlQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0Nzg0Ci0KLSAgICAgICAgQ2FsbCBGcmFtZUxvYWRl
cjo6bG9hZFVSTEludG9DaGlsZEZyYW1lIG9uIHRoZSBwYXJlbnQgZnJhbWUncyBsb2FkZXIsIG5v
dCB0aGUgY2hpbGQncy4gCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVG
cmFtZSk6IEZpeCB0aGUgY2FsbCB0byBGcmFtZUxvYWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1l
LgotCi0yMDExLTAyLTA3ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0d0a10gYXRr
X3RleHRfZ2V0X2NhcmV0X29mZnNldCBmYWlscyBmb3IgbGlzdCBpdGVtcwotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM0MzYKLQotICAgICAgICBVcGRh
dGUgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoZSBmaXggZm9yIHRoaXMgYnVnLgotCi0gICAgICAgICog
dGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGVzdFdlYmtpdEF0a0NhcmV0T2Zmc2V0cyk6IENo
ZWNrIHRoYXQgdGhlIGNhcmV0IG9mZnNldCByZXR1cm5lZAotICAgICAgICBtYXRjaCB0aGUgdmFs
dWUgcHJldmlvdXNseSBzZXQuCi0KLTIwMTEtMDItMDQgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBj
b2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgRml4IGNvbXBpbGF0aW9uIHdh
cm5pbmcuCi0KLSAgICAgICAgQ29uc3RydWN0b3IgaW5pdGlhbGl6YXRpb24gbGlzdCBzaG91bGQg
Zm9sbG93IHRoZSBkZWNsYXJhdGlvbiBvcmRlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OkZyYW1lTG9hZGVyQ2xpZW50KTogbV9oYXNSZXByZXNlbnRhdGlvbiBpcyBtb3ZlZCB0
byAKLSAgICAgICAgdGhlIGxhc3QgcG9zaXRpb24gaW4gdGhlIGluaXRpYWxpemF0aW9uIGxpc3Qu
Ci0KLTIwMTEtMDItMDQgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBXZWJLaXRX
ZWJGcmFtZSBjYW4gcmV0dXJuIGEgc3RhbGUgZnJhbWUgbmFtZSB3aGVuIGNhbGxpbmcgd2Via2l0
X3dlYl9mcmFtZV9nZXRfbmFtZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTM3OTcKLQotICAgICAgICBXaGVuIHRoZSBmcmFtZSBuYW1lIGNoYW5nZXMg
YmV0d2VlbiBkaWZmZXJlbnQgY2FsbHMgdG8gd2Via2l0X3dlYl9mcmFtZV9nZXRfbmFtZQotICAg
ICAgICBvbiB0aGUgc2FtZSBmcmFtZSwgcmV0dXJuIHRoZSBuZXcgZnJhbWUgbmFtZSBpbnN0ZWFk
IG9mIHRoZSBvbmUgdmFsaWQgZHVyaW5nIHRoZQotICAgICAgICBwcmV2aW91cyBjYWxsLgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJf
ZnJhbWVfaW5pdCk6IEluaXRpYWxpemUgdGhlIGZyYW1lIG5hbWUgdG8gMC4KLSAgICAgICAgKHdl
YmtpdF93ZWJfZnJhbWVfZ2V0X25hbWUpOiBDaGVjayB0aGUgY3VycmVudCBmcmFtZSBuYW1lIGZp
cnN0IGJlZm9yZQotICAgICAgICByZXR1cm5pbmcgdGhlIGNhY2hlZCB2YWx1ZS4KLQotMjAxMS0w
Mi0wNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFtHVEtdIGZhc3Qv
ZXZlbnRzL3BhZ2VoaWRlLXRpbWVvdXQuaHRtbCBmYWlscwotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM3NzEKLQotICAgICAgICBBZGQgdGhlIGRvY3Vt
ZW50IGJyb3dzZXIgY2FjaGUgbW9kZWwuIFRoaXMgbW9kZWwgaXMgb3B0aW1pemVkIGZvciB2aWV3
aW5nCi0gICAgICAgIGEgc2VyaWVzIG9mIGxvY2FsIGZpbGVzLCB3aGlsZSB0aGUgZG9jdW1lbnQg
dmlld2VyIGlzIG9wdGltaXplZCBmb3Igb25seQotICAgICAgICB2aWV3aW5nIG9uZSBsb2NhbCBm
aWxlLiBJbXByb3ZlIHRoZSBkb2N1bWVudGF0aW9uIG9uIHRoZSBtYXBwaW5nIG9mIHRoZXNlCi0g
ICAgICAgIGVudW0gdmFsdWVzIHRvIGFjdHVhbCBjYWNoZSBzZXR0aW5ncy4KLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXRnbG9iYWxzLmNwcDoKLSAgICAgICAgKHdlYmtpdF9zZXRfY2FjaGVfbW9k
ZWwpOiBBZGQgc3VwcG9ydCBmb3IgdGhlIGRvY3VtZW50IGJyb3dzZXIgY2FjaGUgbW9kZWwgYW5k
Ci0gICAgICAgIGltcHJvdmUgY29tbWVudHMgaW4gdGhpcyBzZWN0aW9uIGJldHRlciBleHBsYWlu
aW5nIHdoZXJlIHRoZSBtYWdpYyBudW1iZXJzIGNvbWUgZnJvbS4KLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0Z2xvYmFscy5oOiBBZGRlZCBhbiBlbnVtIHZhbHVlIGZvciB0aGUgZG9jdW1lbnQgYnJv
d3NlciBjYWNoZSBtb2RlbC4KLQotMjAxMS0wMi0wMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlz
QGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgotCi0g
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBzZXR0aW5ncyByZWxhdGVkIG1ldGhvZHMgZnJv
bSBJbnNwZWN0b3JDbGllbnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTUzNjg2Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6SW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ckNsaWVudEd0ay5oOgotCi0yMDExLTAyLTAzICBBZGFtIExhbmdsZXkgIDxhZ2xAY2hyb21pdW0u
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgUGx1bWIg
bWl4ZWQgc2NyaXB0IFVSTCB0byBGcmFtZUxvYWRlckNsaWVudAotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIzODQKLQotICAgICAgICBSZWdyZXNzaW9u
cyBjb3ZlcmVkIGJ5IGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50LyoKLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJ1bkluc2VjdXJlQ29udGVudCk6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAxMS0wMi0wMyAg
Sm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0d0a10gTm8gbmVlZCB0byBzZXQgdGV4
dCBlbmNvZGluZyBpbiB0aGUgcHJvdmlzaW9uYWwgcGhhc2UKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNDg3Ci0KLSAgICAgICAgQWNjb3JkaW5nIHRv
IGNoYW5nZXNldCA2NzI1Mywgc2V0RW5jb2RpbmcgY291bGQgYmUgY2FsbGVkIG11bHRpcGxlIHRp
bWVzIGZyb20gCi0gICAgICAgIGNvbW1pdHRlZExvYWQsIGZpbmlzaGVkTG9hZGluZywgZGlzcGF0
Y2hEaWRGYWlsTG9hZGluZywgYW5kIHNldE1haW5Eb2N1bWVudEVycm9yIAotICAgICAgICBpbiBG
cmFtZUxvYWRlckNsaWVudC4gVG8gZml4IHRoaXMsIHRoZSByZWxldmFudCBjb2RlIHdhcyByZW1v
dmVkIGZyb20gCi0gICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBtb3ZlZCB0byBEb2N1bWVu
dExvYWRlcjo6Y29tbWl0RGF0YS4gSG93ZXZlciwgdGhhdCAKLSAgICAgICAgY29kZSB3YXMgbm90
IHJlbW92ZWQgZnJvbSBGcmFtZUxvYWRlckNsaWVudDo6ZmluaXNoZWRMb2FkaW5nIGluIFdlYktp
dEd0aysuCi0KLSAgICAgICAgRHVlIHRvIHRoaXMgcmVhc29uLCBhZnRlciBsb2FkaW5nIGEgaHRt
bCBkb2N1bWVudCwgb3RoZXIgcG9ydHMgaW5pdGlhbGl6ZSB0aGUgCi0gICAgICAgIHRleHQgZW5j
b2RpbmcgZnJvbSBGcmFtZUxvYWRlckNsaWVudDo6ZmluaXNoZWRMb2FkaW5nLCBidXQgV2ViS2l0
R3RrKyBzZXRzIAotICAgICAgICB0aGUgc2FtZSBlbmNvZGluZyBhZ2FpbiwgZXZlbiB0cmllcyB0
byBzZXQgZW5jb2RpbmcgaW4gdGhlIHByb3Zpc2lvbmFsIHBoYXNlLiAKLSAgICAgICAgVGhpcyBj
YXVzZXMgdW5uZWNlc3NhcnkgZW5jb2Rpbmcgc2V0dGluZy4KLQotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OkZyYW1lTG9hZGVyQ2xpZW50KTogU2V0IG1faGFzUmVwcmVzZW50YXRpb24g
dG8gZmFsc2UuCi0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjptYWtlUmVwcmVz
ZW50YXRpb24pOiBTZXQgbV9oYXNSZXByZXNlbnRhdGlvbiB0byB0cnVlLgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKTogU2V0IG1f
aGFzUmVwcmVzZW50YXRpb24gdG8gdHJ1ZS4KLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OmZpbmlzaGVkTG9hZGluZyk6IFNraXAgdGhlIGVuY29kaW5nIHNldHRpbmcgd2hlbiAK
LSAgICAgICAgbV9oYXNSZXByZXNlbnRhdGlvbiBpcyBmYWxzZS4KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOiBBZGRlZCBtX2hhc1JlcHJlc2VudGF0aW9u
LgotCi0yMDExLTAyLTAyICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBVcGRhdGUg
dGhlIE5FV1MgZmlsZSBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIDEuMy4xMSByZWxlYXNlLgotCi0g
ICAgICAgICogTkVXUzogVXBkYXRlIHRoZSBORVdTLgotCi0yMDExLTAyLTAyICBEYW4gV2luc2hp
cCAgPGRhbndAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNv
bi4KLQotICAgICAgICBbR1RLXSBkcm9wIHNvdXAgY2FjaGUgc3R1ZmYsIHdoaWNoIGhhcyBiZWVu
IG1vdmVkIHRvIGxpYnNvdXAKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTUwNzQ3Ci0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogUmVtb3ZlIG9sZCBj
YWNoZSBmaWxlcy4KLQotMjAxMS0wMi0wMiAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgUmVtb3ZhbCBv
ZiByaWdodCgpL2JvdHRvbSgpLCBjb252ZXJ0aW5nIHRvIG1heFgoKS9tYXhZKCkuCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
cG9wdXBfbWVudV9oYW5kbGVyKToKLQotMjAxMS0wMi0wMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAg
PG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmlu
c29uLgotCi0gICAgICAgIFtHdGtdIGF0a190ZXh0X3NldF9jYXJldF9vZmZzZXQgZmFpbHMgZm9y
IGxpc3QgaXRlbXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUzMzg4Ci0KLSAgICAgICAgVXBkYXRlIHVuaXQgdGVzdCB0byBjaGVjayB0aGUgZml4IGZv
ciB0aGlzIGJ1Zy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKHRlc3RX
ZWJraXRBdGtDYXJldE9mZnNldHMpOiBFbnN1cmUgc2V0dGluZyB0aGUgY2FyZXQgaW4gYSBsaXN0
Ci0gICAgICAgIGl0ZW0gdGhyb3VnaCB0aGUgQXRrVGV4dCBpbnRlcmZhY2UgaXMgcG9zc2libGUu
Ci0KLTIwMTEtMDItMDEgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RL
XSBjaGFyYWN0ZXIgcmFuZ2UgZXh0ZW50cyBpcyBvZmYgd2hlbiB0aGUgZW5kIG9mIGEgd3JhcHBl
ZCBsaW5lIGlzIGluY2x1ZGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MzMyMwotCi0gICAgICAgIFVwZGF0ZSB1bml0IHRlc3QgdG8gY2hlY2sgdGhl
IGZpeCBmb3IgdGhpcyBidWcuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAg
ICh0ZXN0V2Via2l0QXRrR2V0RXh0ZW50cyk6IENoZWNrIHRoYXQgdGhlIGV4dGVudCBmb3IgYSBm
dWxsIGxpbmUKLSAgICAgICAgYXJlIHRoZSBzYW1lIGhlaWdodCB0aGFuIGZvciBhIHBhcnRpYWwg
c2VjdGlvbiBvZiB0aGUgc2FtZSBsaW5lLgotCi0yMDExLTAyLTAxICBNYXJpbyBTYW5jaGV6IFBy
YWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gQ2FyZXQgT2Zmc2V0IGlzIG9uZSBvZmYgYXQgdGhl
IGVuZCBvZiB3cmFwcGVkIGxpbmVzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzMwMAotCi0gICAgICAgIFVwZGF0ZSB1bml0IHRlc3QgdG8gY2hlY2sg
dGhlIGZpeCBmb3IgdGhpcyBidWcuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAg
ICAgICh0ZXN0V2Via2l0QXRrQ2FyZXRPZmZzZXRzQW5kRXh0cmFub3VzV2hpdGVTcGFjZXMpOiBT
ZXQgYW5kIGdldAotICAgICAgICB0aGUgY2FyZXQgb2Zmc2V0IGF0IHRoZSBlZGdlIG9mIHRoZSBs
aW5lLgotCi0yMDExLTAxLTMxICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlh
LmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAg
W0d0a10gYXRrX3RleHRfc2V0X2NhcmV0X29mZnNldCByZXR1cm5zIFRydWUgZXZlbiB3aGVuIGl0
IGlzIHVuc3VjY2Vzc2Z1bAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTMzODkKLQotICAgICAgICBOZXcgdW5pdCB0ZXN0IHRvIGNoZWNrIHRoZSBmaXgg
Zm9yIHRoaXMgYnVnLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGVz
dFdlYmtpdEF0a0NhcmV0T2Zmc2V0cyk6IE5ldy4KLSAgICAgICAgKG1haW4pOiBBZGQgbmV3IHRl
c3QuCi0KLTIwMTEtMDEtMjkgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9tZS5vcmc+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIFJlbW92ZSBIQVZFX0xJ
QlNPVVBfMl8yOV85MCBhbmQgSEFWRV9HU0VUVElOR1MgY29uZGl0aW9uYWxzOwotICAgICAgICB3
ZSBkZXBlbmQgb24gZ2xpYiAyLjI3LjQgYW5kIGxpYnNvdXAgMi4zMy4xIG5vdy4KLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNjc1Ci0KLSAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OnN0b3JlU2V0dGlu
Zyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAoaW5zcGVj
dG9yR1NldHRpbmdzKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotCi0yMDEx
LTAxLTI4ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgU2FtIFdlaW5pZy4KLQotICAgICAgICA8c2VsZWN0PiBjYW4ndCBkaXNwbGF5IHJpZ2h0
LXRvLWxlZnQgKHJ0bCkgbGFuZ3VhZ2VzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTc4NQotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKTogQWRkZWQuCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMTEtMDEtMjggIEFsZWphbmRy
byBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFu
IExvcGV6LgotCi0gICAgICAgIFtHVEtdIEZpeCBjb21waWxhdGlvbiB3YXJuaW5nCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzI5MgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKGRyYXdfcGFnZV9jYWxsYmFj
ayk6IENhc3QgdGhlIHBhZ2VDb3VudCBmcm9tIHNpemVfdCB0byBpbnQsIGl0Ci0gICAgICAgIHNo
b3VsZCBiZSBzYWZlIGNvbnNpZGVyaW5nIHBhZ2VfbnIgaXMgdGhlIG51bWJlciBvZiBwYWdlcywK
LSAgICAgICAgMC1iYXNlZC4KLQotMjAxMS0wMS0yNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAg
VXNlIERvY3VtZW50Ojp1cmwoKSBpbnN0ZWFkIG9mIEZyYW1lTG9hZGVyOjp1cmwoKS4KLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTY1Ci0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2ljb25fdXJpKToKLQotMjAxMS0wMS0yNyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5j
aGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgot
Ci0gICAgICAgIFtHVEtdIFNwYWNlIGNoYXJhY3RlcnMgaW4gc291cmNlIGRvY3VtZW50IGludGVy
ZmVyZSB3aXRoIHJlcG9ydGVkIGNhcmV0IG9mZnNldAotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMwMzMKLQotICAgICAgICBOZXcgdW5pdCB0ZXN0IHRv
IGNoZWNrIHRoZSBmaXggZm9yIHRoaXMgYnVnLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5j
OgotICAgICAgICAodGVzdFdlYmtpdEF0a0NhcmV0T2Zmc2V0c0FuZEV4dHJhbm91c1doaXRlU3Bh
Y2VzKTogTmV3LgotICAgICAgICAobWFpbik6IEFkZCBuZXcgdW5pdCB0ZXN0LgotCi0yMDExLTAx
LTI2ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gUmVsaWFibGUg
Y3Jhc2ggd2l0aCBnZXRUZXh0QXRPZmZzZXQoKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxMzEKLQotICAgICAgICBOZXcgdW5pdCB0ZXN0IHRvIGNo
ZWNrIHRoZSBmaXggZm9yIHRoaXMgYnVnLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgot
ICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRBdE9mZnNldFdpdGhTcGVjaWFsQ2hhcmFjdGVy
cyk6IE5ldy4KLSAgICAgICAgKG1haW4pOiBBZGQgbmV3IHVuaXQgdGVzdC4KLQotMjAxMS0wMS0y
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIFNob3cgY2FwcyBs
b2NrIGluZGljYXRvciBpbiBwYXNzd29yZCBmaWVsZHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODc4Ci0KLSAgICAgICAgVGVzdDogbWFudWFsLXRl
c3RzL3Bhc3N3b3JkLWNhcHMtbG9jay5odG1sCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfa2V5X3JlbGVhc2VfZXZlbnQpOiBD
YWxsCi0gICAgICAgIGNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZCgpIHdoZW4gY2FwcyBsb2Nr
IGtleSBpcyBwcmVzc2VkLgotCi0yMDExLTAxLTE5ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29s
bGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCi0KLSAg
ICAgICAgW0dUS10gTm8gbmVlZCB0byBpbnZhbGlkYXRlIGVtcHR5IGFyZWFzIGluIENocm9tZUNs
aWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93Ci0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjcwMgotCi0gICAgICAgIERvbid0IGNhbGwgZ2Rr
X3dpbmRvd19pbnZhbGlkYXRlX3JlY3QgaWYgYW4gdXBkYXRlZCByZWN0YW5nbGUgaXMgZW1wdHku
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyk6IAot
Ci0yMDExLTAxLTE3ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KLQot
ICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggZm9yIDIgR1RLIHRlc3RzIGh0bWwgZmlsZSBw
YXRocy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RtaW1laGFuZGxpbmcuYzoKLSAgICAgICAgKG1h
aW4pOgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJ2aWV3LmM6Ci0KLTIwMTEtMDEtMTYgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBF
cmljIFNlaWRlbC4KLQotICAgICAgICBNb3ZlIFdlYktpdCBpbnRvIFNvdXJjZQotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI1MzAKLQotICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgotCi0yMDExLTAxLTE0ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29v
Z2xlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KLQotICAgICAg
ICBSZW5hbWUgY2FjaGUoKSB0byBtZW1vcnlDYWNoZSgpCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjQzMwotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dGdsb2JhbHMuY3BwOgotICAgICAgICAod2Via2l0X3NldF9jYWNoZV9tb2RlbCk6Ci0KLTIwMTEt
MDEtMTQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAg
Tm90IHJldmlld2VkOiBndGsgYnVpbGQgZml4ICgyKS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDoKLQotMjAxMS0wMS0xNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNo
cm9taXVtLm9yZz4KLQotICAgICAgICBOb3QgcmV2aWV3ZWQ6IGd0ayBidWlsZCBmaXguCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcDoKLQotMjAxMS0wMS0xMyAgQWxl
amFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW2d0a10gWmVyby1zaXplZCBmb250IGRvZXMg
bm90IHlldCB3b3JrCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00OTc5MwotCi0gICAgICAgIEFsbG93IDAgYXMgYSBtaW5pbXVtLWZvbnQtc2l6ZSB2YWx1
ZSBmb3IgdGhlIHNldHRpbmdzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0KLTIwMTEt
MDEtMTIgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvciAzMi1iaXRzIFJlbGVhc2UuIEluY2x1ZGUgR1JlZlB0
ckd0ay5oIHNvCi0gICAgICAgIHRoZSBHZGtDdXJzb3IgdGVtcGxhdGVzIGFyZSBmb3VuZCBhbmQg
dXNlZCBhdCBydW50aW1lLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlci5jcHA6Ci0KLTIwMTEtMDEtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNv
bi4KLQotICAgICAgICBbR1RLXSBHUmVmUHRyIHNob3VsZCBub3QgYmUgdXNlZCB3aXRoIEd0ayB3
aWRnZXRzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MTI0MQotCi0gICAgICAgIEdSZWZQdHIgYnJlYWtzIHRoZSB3aWRnZXQgbGlmZS1jeWNsZSwgdGhl
IG1haW4gcHJvYmxlbSBpcwotICAgICAgICB0aGF0IEdSZWZQdHIgY2FsbHMgZ19vYmplY3RfdW5y
ZWYoKSB3aGVuIGl0J3MgZGVzdHJveWVkLAotICAgICAgICB3aGljaCBpcyB1bmRlc2lyYWJsZSBm
b3Igd2lkZ2V0cy4gSW4gZ3RrKyB3aWRnZXRzIGFyZSBjcmVhdGVkIHdpdGgKLSAgICAgICAgYSBm
bG9hdGluZyByZWZlcmVuY2UgYW5kIHdoZW4gYWRkZWQgdG8gYSBjb250YWluZXIsIHRoZSBjb250
YWluZXIKLSAgICAgICAgdGFrZXMgdGhlIG93bmVyc2hpcCBvZiB0aGUgd2lkZ2V0IGNvbnN1bWlu
ZyB0aGUgZmxvYXRpbmcKLSAgICAgICAgcmVmZXJlbmNlLiBTbyB5b3UgZG9uJ3QgdXN1YWxseSBu
ZWVkIHRvIGNhbGwgZ19vYmplY3RfcmVmL3VucmVmIG9uCi0gICAgICAgIHdpZGdldHMgKG9ubHkg
Zm9yIHNvbWUgb3BlcmF0aW9ucyBsaWtlIHJlcGFyZW50IGEgd2lkZ2V0KSBhbmQKLSAgICAgICAg
dG9wbGV2ZWwgd2lkZ2V0cyBhcmUgZGVzdHJveWVkIHdpdGggZ3RrX3dpZGdldF9kZXN0cm95KCku
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6RHJhZ0NsaWVudDo6RHJhZ0NsaWVudCk6Ci0gICAgICAgIChXZWJLaXQ6OkRyYWdD
bGllbnQ6On5EcmFnQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6c3RhcnRE
cmFnKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmg6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0Ojpwb3N0Q29tbWl0RnJhbWVWaWV3U2V0dXApOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kaXNwb3NlKToKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlld3ByaXZhdGUuaDoKLQotMjAxMS0wMS0xMCAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFu
IExvcGV6LgotCi0gICAgICAgIFVwZGF0ZSB0aGUgTkVXUyBmaWxlIGluIHByZXBhcmF0aW9uIGZv
ciB0aGUgMS4zLjEwIHJlbGVhc2UuCi0KLSAgICAgICAgKiBORVdTOiBVcGRhdGUgdGhlIE5FV1Mu
Ci0KLTIwMTEtMDEtMTAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBSZW1vdmUg
dXNlIG9mIGRlcHJlY2F0ZWQgR1RLKyBtZXRob2RzIGJlZm9yZSB0aGUgMS4zLjEwIHJlbGVhc2UK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMTczCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcDoK
LSAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbik6IFVz
ZSBhIEdSZWZQdHIgaGVyZSB0byBhdm9pZCBoYXZpbmcgdG8KLSAgICAgICAgY2FsbCBlaXRoZXIg
Z19vYmplY3RfdW5yZWYgb3IgZ2RrX2N1cnNvcl91bnJlZi4KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6IEd1YXJkIHVzZSBvZiBkZXByZWNhdGVkIG1ldGhvZHMuCi0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfcmVhbGl6ZSk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2RyYWdfZW5kKTogRGl0dG8uCi0KLTIwMTEtMDEtMTAgIEFsZWphbmRybyBHLiBDYXN0cm8g
IDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0g
ICAgICAgIFtHVEtdIEZpeCBndGsyIGNvbXBpbGF0aW9uIGZvciBtYXN0ZXIKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxODg1Ci0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuYzoKLSAgICAgICAgKHNob3dfYXV0aF9kaWFsb2cp
OiBSZW1vdmVkIHRoZSBjYWxsIHRvCi0gICAgICAgIGd0a19kaWFsb2dfc2V0X2hhc19zZXBhcmF0
b3IgQVBJIHRvIHJlbW92ZSBhIHdhcm5pbmcuCi0KLTIwMTEtMDEtMTAgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
LQotICAgICAgICBbR1RLXSBDcmVhdGUgaW50ZXJtZWRpYXRlIGxpYldlYkNvcmUgbGlicmFyeQot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxMTYKLQot
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGQgbGliV2ViQ29yZS5sYSB0byBMSUJBREQgYW5k
IHJlbW92ZSB3ZWJjb3JlCi0gICAgICAgIHNvdXJjZXMgZnJvbSB0aGUgbGlid2Via2l0IGxpYnJh
cnkgU09VUkNFUy4KLQotMjAxMS0wMS0wOSAgWGlhbnpodSBXYW5nIDxwaG5peHd4ekBnbWFpbC5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgotCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTQ0MQotICAgICAgICBjcmVhdGVX
aW5kb3cgbWV0aG9kIHNob3VsZCBvbmx5IGRvIHdpbmRvdy1jcmVhdGluZyB3aXRob3V0IFVSTCBu
YXZpZ2F0aW9uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6Ci0KLTIwMTEt
MDEtMDggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAg
IEdUSysgYnVpbGQgZml4LiBBZGRpbmcgbWlzc2luZyBoZWFkZXJzIHRvIHRoZSBzb3VyY2UgbGlz
dCwgZml4aW5nIG1ha2UgZGlzdC4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBGaXggbWFr
ZSBkaXN0LgotCi0yMDExLTAxLTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0K
LSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgRXJpYyBTZWlkZWwuCi0KLSAgICAgICAgTW92ZSBX
ZWJDb3JlIHRvIFNvdXJjZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTIwNTAKLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotCi0yMDExLTAxLTA3
ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KLQotICAgICAgICBHVEs6IEFYOiBhdGsgdGVzdHMg
bmVlZCB0byBiZSB1cGRhdGVkIGFmdGVyIHJlY2VudCBjaGFuZ2VzCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTkzMgotCi0gICAgICAgIEZpeCBndGtf
d2lkZ2V0X2dldF9hY2Nlc3NpYmxlKCkgaW4gV2ViS2l0V2ViVmlldyB0byBrZWVwIHJldHVybmlu
ZwotICAgICAgICB0aGUgQXRrT2JqZWN0IG9mIHJvbGUgQVRLX1JPTEVfRE9DVU1FTlRfRlJBTUUu
Ci0KLSAgICAgICAgV2l0aCB0aGUgY2hhbmdlIHRvIHN1cHBvcnQgV0syIGFjY2Vzc2liaWxpdHks
IHRoZSByb290IG9iamVjdCBvZgotICAgICAgICB0aGUgQVggaGllcmFyY2h5IGlzIGRpZmZlcmVu
dCBmcm9tIHdoYXQgR1RLIGV4cGVjdHMgYXMgdGhlIGN1cnJlbnQKLSAgICAgICAgaGlyYXJjaHkg
cmlnaHQgbm93IGluY2x1ZGVzIGEgbmV3IGFjY2Vzc2libGUgb2JqZWN0IGFzIHRoZSBwYXJlbnQK
LSAgICAgICAgb2YgdGhlIGFjY2Vzc2libGUgd2ViIGFyZWEgKEFYU2Nyb2xsVmlldykuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2FjY2Vzc2libGUpOiBSZXR1cm4gdGhlIGZpcnN0IGNoaWxkIG9mIHRoZQotICAgICAg
ICB3cmFwcGVyIGFzc29jaWF0ZWQgdG8gdGhlIHJvb3QgYWNjZXNzaWJsZSBvYmplY3QgaW4gdGhl
IGRvY3VtZW50LAotICAgICAgICB0byBrZWVwIGV2ZXJ5dGhpbmcgaW4gdGhlIEdUSyBwb3J0IHdv
cmtpbmcgYXMgaXQgdXNlZCB0byBiZS4KLQotICAgICAgICBSZS1lbmFibGUgc2tpcHBlZCBBVEsg
dW5pdCB0ZXN0cyBub3cgdGhleSBhcmUgcGFzc2luZyBhZ2Fpbi4KLQotICAgICAgICAqIHRlc3Rz
L3Rlc3RhdGsuYzoKLSAgICAgICAgKG1haW4pOiBSZS1lbmFibGUgc2tpcHBlZCB0ZXN0cy4KLSAg
ICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzoKLSAgICAgICAgKG1haW4pOiBEaXR0by4KLQot
MjAxMS0wMS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIEdUSzogQVg6IGF0ayB0ZXN0
cyBuZWVkIHRvIGJlIHVwZGF0ZWQgYWZ0ZXIgcmVjZW50IGNoYW5nZXMKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTMyCi0KLSAgICAgICAgU2tpcCBB
VEsgdW5pdCB0ZXN0cyB1bnRpbCB3ZSBjYW4gbG9vayBpbnRvIHdoYXQgaXMgY2F1c2luZyB0aGVz
ZSBmYWlsdXJlcy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKG1haW4p
OiBTa2lwIGFsbCB0ZXN0cy4KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzoKLSAgICAg
ICAgKG1haW4pOiBEaXR0by4KLQotMjAxMS0wMS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAg
ICAgIEluY2x1ZGUgYSBuZXcgaGVhZGVyIGluIHRoZSBzdGF0aWMgaGVhZGVycyBsaXN0LiBUaGlz
IGlzIG5lY2Vzc2FyeQotICAgICAgICBzbyB0aGF0ICJtYWtlIGluc3RhbGwiIGluc3RhbGxzIHRo
ZSBoZWFkZXIuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogSW5jbHVkZSB3ZWJraXRnbG9i
YWxzLmggaW4gdGhlIGhlYWRlciBsaXN0LgotCi0yMDExLTAxLTA1ICBNYXJ0aW4gUm9iaW5zb24g
IDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5v
cm9uaGEuCi0KLSAgICAgICAgQnVpbGQgZml4IGZvciBHVEsrIDMueC4gUmVtb3ZlIHRoZSBjYWxs
IHRvIGd0a19yYW5nZV9zZXRfdXBkYXRlX3BvbGljeS4KLSAgICAgICAgR1RLKyAzLnggaGFzIHJl
bW92ZWQgdGhpcyBtZXRob2QgYW5kIHRoZSBkZWZhdWx0IGluIEdUSysgMi54IGlzIGNvbnRpbnVv
dXMsCi0gICAgICAgIHNvIHRoaXMgY2FsbCBpcyB1bm5lY2Vzc2FyeS4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuY3BwOgotICAgICAgICAoRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlcjo6Y3JlYXRlSHVkKTogUmVtb3ZlIGNhbGwgdG8gZ3RrX3Jh
bmdlX3NldF91cGRhdGVfcG9saWN5KCkuCi0KLTIwMTEtMDEtMDQgIENocmlzIEZsZWl6YWNoICA8
Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24uCi0KLSAgICAgICAgR1RLOiBBWDogRFJUIG5lZWRzIHRvIHVzZSBjb3JyZWN0IHJvb3Qgb2Jq
ZWN0IG1ldGhvZC4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUxOTExCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnZXRSb290QWNj
ZXNzaWJsZUVsZW1lbnQpOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnZXRG
b2N1c2VkQWNjZXNzaWJsZUVsZW1lbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotCi0yMDExLTAxLTA0ICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KLQot
ICAgICAgICBXSzI6IFN1cHBvcnQgQWNjZXNzaWJpbGl0eQotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE4NTkKLQotICAgICAgICBVc2Ugcm9vdE9iamVj
dCgpIG1ldGhvZCB0byBnZXQgdG9wIG9mIGF4IHRyZWUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpnZXRGb2N1c2VkQWNjZXNzaWJsZUVsZW1lbnQpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfYWNj
ZXNzaWJsZSk6Ci0KLTIwMTEtMDEtMDMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgIFJl
bW92ZSB0aGUgbGFzdCBub24tR09iamVjdCB1c2FnZSBvZiBQbGF0Zm9ybVJlZlB0ciBhbmQgbW92
ZSB0aGUgY29kZSB0byBHUmVmUHRyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MTg0NgotCi0gICAgICAgIENoYW5nZWQgYWxsIHJlZmVyZW5jZXMgdG8g
UGxhdGZvcm1SZWZQdHIgaW4gR1RLKyBjb2RlIHRvIEdSZWZQdHIuCi0KLTIwMTEtMDEtMDMgIEd1
c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIFNw
bGl0IHdlYmtpdHByaXZhdGUue2NwcCxofSBpbiBtb3JlIG1hbmFnZWFibGUgY2h1bmtzCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY5OAotCi0gICAg
ICAgIEZpbmFsIHBhdGNoLCByZW1vdmluZyB3ZWJraXRwcml2YXRlLntjcHAsaH0sIGFuZCBhZGRp
bmcgYQotICAgICAgICB3ZWJraXRnbG9iYWxzIG1vZHVsZSB0byBob2xkIG5vbi1vYmplY3Qtc3Bl
Y2lmaWMgZnVuY3Rpb25zIGFuZAotICAgICAgICBkZWZpbml0aW9ucyB0aGF0IGRvIG5vdCBtYWtl
IHNlbnNlIG9uIHRoZWlyIG93bi4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
b250ZXh0TWVudUNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRG9jdW1l
bnRMb2FkZXJHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpEb2N1bWVudExvYWRlcjo6YXR0YWNo
VG9GcmFtZSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHA6Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnQ6Omlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQpOgotICAgICAgICAo
V2ViS2l0OjpFZGl0b3JDbGllbnQ6OmxlYXJuV29yZCk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudDo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9y
Q2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVu
dDo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdC5oOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcDoKLSAgICAgICAgKHdlYmtpdF9hcHBs
aWNhdGlvbl9jYWNoZV9zZXRfbWF4aW11bV9zaXplKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
ZG93bmxvYWQuY3BwOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX2NsYXNzX2luaXQpOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmNwcDoKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0Z2xvYmFscy5jcHA6IEFkZGVkLgotICAgICAgICAod2Via2l0X2dl
dF9kZWZhdWx0X3Nlc3Npb24pOgotICAgICAgICAod2Via2l0X3NldF9jYWNoZV9tb2RlbCk6Ci0g
ICAgICAgICh3ZWJraXRfZ2V0X2NhY2hlX21vZGVsKToKLSAgICAgICAgKHdlYmtpdF9nZXRfd2Vi
X3BsdWdpbl9kYXRhYmFzZSk6Ci0gICAgICAgIChjdXJyZW50VG9wbGV2ZWxDYWxsYmFjayk6Ci0g
ICAgICAgIChjbG9zZUljb25EYXRhYmFzZU9uRXhpdCk6Ci0gICAgICAgICh3ZWJraXRJbml0KToK
LSAgICAgICAgKFdlYktpdDo6cGFzdGVib2FyZEhlbHBlckluc3RhbmNlKToKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0Z2xvYmFscy5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Z2xv
YmFsc3ByaXZhdGUuaDogQ29waWVkIGZyb20gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3Nwcml2YXRlLmguCi0gICAgICAgICogd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3Bw
OgotICAgICAgICAod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jbGFzc19pbml0KToKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwOgotICAgICAgICAod2Via2l0X25ldHdv
cmtfcmVxdWVzdF9jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3Jl
c3BvbnNlLmNwcDoKLSAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2NsYXNzX2luaXQp
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDogUmVtb3ZlZC4KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOiBSZW1vdmVkLgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXRzZWN1cml0eW9yaWdpbi5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0
cmlidXRlcy5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2NsYXNzX2luaXQpOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5jcHA6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9kYXRhX3NvdXJj
ZV9jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfbmV3X3dpdGhf
cmVxdWVzdCk6Ci0gICAgICAgIChXZWJLaXQ6OmtpdE5ldyk6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfY2xhc3NfaW5pdCk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2hpc3Rv
cnlfaXRlbV9jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9y
LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHA6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBsdWdpbi5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3BsdWdpbl9jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2luZGF0
YWJhc2UuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9wbHVnaW5fZGF0YWJhc2VfY2xhc3NfaW5p
dCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBsdWdpbnByaXZhdGUuaDoKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJyZXNvdXJjZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAg
ICh3ZWJraXRXZWJWaWV3R2V0RW5jaGFudERpY3RzKToKLSAgICAgICAgKFdlYktpdDo6Y29yZSk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFz
c19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotICAg
ICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVy
ZXMuY3BwOgotICAgICAgICAod2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfY2xhc3NfaW5pdCk6
Ci0gICAgICAgIChXZWJLaXQ6OmtpdE5ldyk6Ci0KLTIwMTEtMDEtMDIgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIEZpeCBHVEsrIGJ1aWxkLgotCi0gICAgICAgICog
R05VbWFrZWZpbGUuYW06IHRlc3RzIGRvIGFjdHVhbGx5IGluY2x1ZGUgSlNDLgotCi0yMDExLTAx
LTAyICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBGaXggR1RLKyBi
dWlsZC4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiByZW1vdmUgaW5kaXZpZHVhbCAtSSQo
c3JjZGlyKS9Tb3VyY2Ugd2hlbiB3ZSdsbAotICAgICAgICBhbHJlYWR5IGdldCB0aGVtIGZyb20g
amF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MsIGFuZCBhZGQgaXQgZm9yIHRoZQotICAgICAgICBpbnRy
b3NwZWN0aW9uIGJ1aWxkICh3aGljaCBpcyBub3QgdGVzdGVkIGluIHRoZSBib3RzKS4KLQotMjAx
MS0wMS0wMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFNwZWN1
bGF0aXZlIGJ1aWxkIGZpeCBmb3IgR1RLLiAgQWRkIFNvdXJjZSB0byB0aGUgaW5jbHVkZSBwYXRo
cy4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotCi0yMDExLTAxLTAxICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
Ci0KLSAgICAgICAgTW92ZSBKYXZhU2NyaXB0Q29yZSB0byBTb3VyY2UKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNjA0Ci0KLSAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKLSAgICAgICAgKiBkb2NzL0dOVW1ha2VmaWxlLmFtOgotICAgICAgICAgIC0g
UG9pbnQgdG8gSmF2YVNjcmlwdENvcmUgaW4gaXRzIG5ldyBsb2NhdGlvbi4KLQotMjAxMC0xMi0y
OSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgQnVp
bGQgZml4IGZvciBHVEsrLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5j
cHA6IEFkZCBtaXNzaW5nIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayBpbmNsdWRlLgotCi0yMDEw
LTEyLTI5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAg
ICBbR1RLXSBHU2V0dGluZ3Mgd2FybmluZyBpcyBjb25jZWFsaW5nIHJlYWwgd2FybmluZ3Mgb24g
dGhlIGJ1aWxkIGJvdHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUxNjkxCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAg
IERvIG5vdCBwcmludCB0aGUgR1NldHRpbmdzIHdhcm5pbmcgbWVzc2FnZSB3aGVuIHJ1bm5pbmcg
aW4gRHVtcFJlbmRlclRyZWUuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9y
LmNwcDoKLSAgICAgICAgKGluc3BlY3RvckdTZXR0aW5ncyk6IERvIG5vdCBwcmludCB0aGUgR1Nl
dHRpbmdzIHdhcm5pbmcgaWYgd2UgYXJlIHJ1bm5pbmcKLSAgICAgICAgaW4gRHVtcFJlbmRlclRy
ZWUuIFRoaXMgc2hvdWxkIGNsZWFuIHVwIHRoZSB0ZXN0IHJlc3VsdHMgcGFnZSBhIGdyZWF0IGRl
YWwuCi0KLTIwMTAtMTItMjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBDbG9z
aW5nIGEgd2luZG93IGR1cmluZyBhbiBvbmxvYWQgZXZlbnQgY2FuIHRyaWdnZXIgc2VyaW91cyBH
TGliIHdhcm5pbmdzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MTY4NgotCi0gICAgICAgIERvbid0IGVtaXQgdGhlIGNsb3NlLXdlYi12aWV3IHNpZ25h
bCBpbW1lZGlhdGVseSBkdXJpbmcgZXhlY3V0aW9uIG9mIGNsb3NlV2luZG93U29vbi4KLSAgICAg
ICAgVGhlIHNpZ25hbCBoYW5kbGVyIG1heSBjaG9vc2UgdG8gZGVzdHJveSB0aGUgd2ViIHZpZXcg
d2hpbGUgaGFuZGxpbmcgdGhhdCBzaWduYWwsCi0gICAgICAgIHdoaWNoIG1heSByZW1vdmUgdGhl
IGxhc3QgcmVmZXJlbmNlIHRvIHRoZSB3ZWIgdmlldy4gRnJhbWVMb2FkZXJDbGllbnQgZGVwZW5k
cyBvbiB0aGUKLSAgICAgICAgdmlldyBzdGlsbCBleGlzdGluZyB0aG91Z2guIEluc3RlYWQsIGxl
dCB0aGUgY2FsbGVyIGZpbmlzaCBleGVjdXRpbmcgYW5kIGVtaXQgdGhlIHNpZ25hbAotICAgICAg
ICBhZnRlciBhIDAgbGVuZ3RoIHRpbWVvdXQuIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb24g
dGhlIFdpbmRvd3MgYW5kIE1hYyBwb3J0cy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Q2hyb21l
Q2xpZW50KTogSW5pdGlhbGl6ZSB0aGUgdGltZXIgaWQuCi0gICAgICAgIChXZWJLaXQ6OmVtaXRD
bG9zZVdlYlZpZXdTaWduYWxMYXRlcik6IENhbGxiYWNrIGZvciB0aGUgdGltZXIuCi0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKTogRG8gdGhlIGFjdHVhbCBz
aWduYWwgaW52b2NhdGlvbiBhZnRlcgotICAgICAgICB0aGUgY2FsbGVyIGZpbmlzaGVzIGl0cyB0
YXNrcy4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDogQWRkIGEg
bmV3IG1lbWJlciBmb3IgdGhlIHRpbWVyIGlkLiBXZQotICAgICAgICBjYW4gdXNlIHRoaXMgdG8g
cHJldmVudCBlbWl0dGluZyB0aGUgY2xvc2Utd2ViLXZpZXcgc2lnbmFsIHR3aWNlLgotCi0yMDEw
LTEyLTI4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICBbR1RLXSBDbGVhbiB1cCB1c2Fn
ZSBvZiBOVUxMIGluIHdlYmtpdHdlYmZyYW1lLmNwcAotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE2ODUKLQotICAgICAgICBSZXBsYWNlIG9jY3VycmVu
Y2VzIG9mIE5VTEwgd2l0aCAwLCBpbiB3ZWJraXR3ZWJmcmFtZS5jcHAuIE5vdCBhbGwKLSAgICAg
ICAgdXNlcyBvZiBOVUxMIGhhdmUgYmVlbiBjaGFuZ2VkLCBhcyBjZXJ0YWluIEdMaWIgZnVuY3Rp
b25zIHJlcXVpcmUKLSAgICAgICAgYW4gZXhwbGljaXQgTlVMTCBhcyBhIHNlbnRpbmVsLgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X2RhdGFfc291cmNlX2Zyb21fY29yZV9sb2FkZXIpOgotICAgICAgICAod2Via2l0
X3dlYl9mcmFtZV9jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbmV3KToK
LSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3RpdGxlKToKLSAgICAgICAgKHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3VyaSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmll
dyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lKToKLSAgICAgICAgKHdlYmtp
dF93ZWJfZnJhbWVfZ2V0X3BhcmVudCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2xvYWRf
c3RyaW5nKToKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9hbHRlcm5hdGVfc3RyaW5n
KToKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZmluZF9mcmFtZSk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2Zy
YW1lX2dldF9kYXRhX3NvdXJjZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9wcm92
aXNpb25hbF9kYXRhX3NvdXJjZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX3ByaW50X2Z1
bGwpOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfc2VjdXJpdHlfb3JpZ2luKToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25ldHdvcmtfcmVzcG9uc2UpOgotCi0yMDEwLTEy
LTI3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCi0KLSAgICAgICAgW0dUS10gRWRpdG9yQ2xpZW50Ojpn
ZW5lcmF0ZUVkaXRvckNvbW1hbmRzIHF1ZXVlcyB1cCAibnVsbCBzdHJpbmciIGNvbW1hbmRzCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTU2OQotCi0g
ICAgICAgIFByZXZlbnQgYWRkaW5nICJudWxsIHN0cmluZyIgZWRpdG9yIGNvbW1hbmRzIGJ5IGZp
cnN0IGNoZWNraW5nIHdoZXRoZXIgb3Igbm90Ci0gICAgICAgIHRoZSBjb21tYW5kIHN0cmluZyBp
cyBudWxsIGluIGdlbmVyYXRlRWRpdG9yQ29tbWFuZHMgYmVmb3JlIGFwcGVuZGluZyBpdCB0byB0
aGUKLSAgICAgICAgbGlzdCBvZiBwZW5kaW5nIGVkaXRvciBjb21tYW5kIHN0cmluZ3MuCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnQ6OmdlbmVyYXRlRWRpdG9yQ29tbWFuZHMpOiBDaGVjayBmb3IgdGhl
IG51bGwgc3RyaW5nIChubwotICAgICAgICBjb21tYW5kIGZvciB0aGlzIGtleSBjb21iaW5hdGlv
bikgYmVmb3JlIGFwcGVuZGluZyBhIGNvbW1hbmQgc3RyaW5nIHRvIHRoZSBsaXN0IG9mCi0gICAg
ICAgIHBlbmRpbmcgZWRpdG9yIGNvbW1hbmRzLgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OmV4ZWN1dGVQZW5kaW5nRWRpdG9yQ29tbWFuZHMpOiBBZGQgYW4gQVNTRVJUIHdoaWNoIGRl
dGVjdHMKLSAgICAgICAgbnVsbCBjb21tYW5kIHN0cmluZ3MuCi0KLTIwMTAtMTItMjcgIFhhbiBM
b3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBS
b2JpbnNvbi4KLQotICAgICAgICBSZW1vdmUgdW5uZWVkZWQgaW5jbHVkZXMgZnJvbSBvdXIgaGVh
ZGVycy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuaDog
ZGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDogZGl0dG8uCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmg6IGRpdHRvLgotCi0yMDEwLTEyLTIxICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICBbR1RLXSBtaW5pbWFsIGJ1aWxkIHdpdGggLS1k
YXRhYmFzZSBmYWlscwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTEzOTQKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoKLSAgICAg
ICAgKHdlYmtpdF9pbml0KTogVXNlIGNhY2hlU3RvcmFnZSgpIG9ubHkgaWYgdGhlCi0gICAgICAg
IE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyBmZWF0dXJlIGlzIGVuYWJsZWQuCi0KLTIwMTAtMTIt
MjIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KLQotICAgICAgICBXZWJLaXQyIG5lZWRzIHRvIG1pcnJvciB0aGUgZnJhbWUg
dHJlZSBpbiB0aGUgVUlQcm9jZXNzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MTU0NgotCi0gICAgICAgIC0gQWRkIGNsaWVudCBmdW5jdGlvbnMgdG8g
bm90aWZ5IHRoYXQgYSBmcmFtZSBoYXMgYmVlbiBhZGRlZCBvcgotICAgICAgICAgIHJlbW92ZWQg
ZnJvbSB0aGUgcGFnZSBjYWNoZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
ZFNhdmVUb1BhZ2VDYWNoZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuaDoKLQotMjAxMC0xMi0yMiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAg
ICogTkVXUzogdXBkYXRlIGZvciAxLjMuOSByZWxlYXNlLgotCi0yMDEwLTEyLTIwICBHdXN0YXZv
IE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBBZGQgV2ViUGx1Z2luLCBXZWJQ
bHVnaW5EYXRhYmFzZSwgYW5kIFZpZXdwb3J0QXR0cmlidXRlcyB0byB0aGUKLSAgICAgICAgZG9j
dW1lbnRhdGlvbiBjb250cm9sIGZpbGVzLCBpbiBwcmVwYXJhdGlvbiBmb3IgMS4zLjguIEFsc28g
dGFrZQotICAgICAgICB0aGUgb3Bwb3J0dW5pdHkgdG8gYWRkIGRlc2NyaXB0aW9ucyB0byBXZWJQ
bHVnaW4gYW5kCi0gICAgICAgIFdlYlBsdWdpbkRhdGFiYXNlLgotCi0gICAgICAgICogZG9jcy9H
TlVtYWtlZmlsZS5hbToKLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWw6Ci0gICAg
ICAgICogZG9jcy93ZWJraXRndGstc2VjdGlvbnMudHh0OgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJwbHVnaW4uY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFz
ZS5jcHA6Ci0KLTIwMTAtMTItMjAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICAqIEdOVW1ha2Vm
aWxlLmFtOiBhZGQgbWlzc2luZyBmaWxlcy4KLSAgICAgICAgKiBORVdTOiB1cGRhdGUgZm9yIDEu
My44IHJlbGVhc2UuCi0KLTIwMTAtMTItMTggIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUSytdIFNp
bXBsaWZ5IHNwYXRpYWwgbmF2aWdhdGlvbiBoYW5kbGluZyBpbiBFZGl0b3JDbGllbnRHdGsuY3Bw
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTMwMgot
Ci0gICAgICAgIFBhdGNoIGNoYW5nZXM6Ci0gICAgICAgIDEpIFRoZSBlZGl0b3IgY29tbWFuZCBm
b3IgTEVGVCBhcnJvdyBrZXkgcHJlc3Mgd2l0aG91dCBtb2RpZmllcgotICAgICAgICAgICBmcm9t
IE1vdmVCYWNrd2FyZCB0byBNb3ZlTGVmdDsKLSAgICAgICAgMikgQW5kIHNpbWlsYXJseSBjaGFu
Z2VzIHRoZSBlZGl0b3IgY29tbWFuZCBmb3IgUklHSFQgYXJyb3cga2V5Ci0gICAgICAgICAgcHJl
c3Mgd2l0aG91dCBtb2RpZmllciBmcm9tIE1vdmVGb3J3YXJkIHRvIE1vdmVSaWdodC4KLQotICAg
ICAgICBJdCBoYXMgbm8gaW1wbGljYXRpb25zIHNpbmNlIFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1v
ZGlmeU1vdmluZ1JpZ2h0KCkKLSAgICAgICAgaGFuZGxlcyAiTW92ZVJpZ2h0IiBlcXVhbHkgdG8g
aG93IFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeU1vdmluZ0ZvcndhcmQoKQotICAgICAgICBo
YW5kbGVzICJNb3ZlRm9yd2FyZCIgd2hlbiBncmFudWxhcml0eSBpcyAnQ2hhcmFjdGVyR3JhbnVs
YXJpdHknLiBUaGUgZm9ybWVyCi0gICAgICAgIGZhbGxzIGJhY2sgdG8gdGhlIGxhdGVyIGluIHRo
ZSBjYXNlIG9mIG90aGVyIGVkaXRvciBjb21tYW5kcy4KLQotICAgICAgICBBbmFsb2dvdXNseSwg
dGhlIHNhbWUgYXBwbGllcyB0byBob3cgU2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5TW92aW5n
TGVmdCgpIGFuZAotICAgICAgICBTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlNb3ZpbmdGb3J3
YXJkKCkgaGFuZGxlICJNb3ZlTGVmdCIgYW5kICJNb3ZlQmFja3dhcmQiCi0gICAgICAgIGVkaXRv
ciBjb21tYW5kcywgcmVzcGVjdGl2ZWx5LgotCi0gICAgICAgIFdpdGggdGhpcyBjaGFuZ2Ugd2Ug
Y2FuIHJlbW92ZSB0aGUgc3BhdGlhbCBuYXZpZ2F0aW9uIGhhY2sgZnJvbSBtb3ZlQ3Vyc29yQ2Fs
bGJhY2soKSwKLSAgICAgICAgaW4gRWRpdG9yQ2xpZW50R3RrLmNwcC4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Om1vdmVD
dXJzb3JDYWxsYmFjayk6Ci0KLTIwMTAtMTItMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
LQotICAgICAgICBbR3RrXSBzY3JvbGxpbmcgYXJ0aWZhY3RzCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAyOQotCi0gICAgICAgIENhbGwgZ2RrX3dp
bmRvd19wcm9jZXNzX3VwZGF0ZXMoKSByaWdodCBhZnRlciBtb3ZpbmcgdGhlIHdpbmRvdwotICAg
ICAgICB3aGVuIHNjcm9sbGluZy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xsKToKLQot
MjAxMC0xMi0xNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0K
LSAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjc0MTE3LgotICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC83NDExNwotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTExMTMKLQotICAgICAgICBUaGlzIGJyb2tlIHRoZSBH
VEsxIGJ1aWxkLiAoUmVxdWVzdGVkIGJ5IG1yb2JpbnNvbiBvbgotICAgICAgICAjd2Via2l0KS4K
LQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotCi0yMDEwLTEyLTE1ICBBbXJ1dGggUmFqICA8
YW1ydXRocmFqQG1vdG9yb2xhLmNvbT4gYW5kIFJhdmkgUGhhbmVlbmRyYSBLYXNpYmhhdGxhICA8
cmF2aS5rYXNpYmhhdGxhQG1vdG9yb2xhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0
aW4gUm9iaW5zb24uCi0KLSAgICAgICAgQ2hhbmdlcyB0byBlbmFibGUgYnVpbGRpbmcgV2ViS2l0
MiBmb3IgR3RrIHBvcnQuCi0gICAgICAgIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzczNjkpCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgV2ViQ29y
ZS9iaW5kaW5ncy9nb2JqZWN0IHRvIHdlYmtpdGd0a19zb3VyY2VzICYgd2Via2l0Z3RrX2NwcGZs
YWdzLgotICAgICAgICBUaGV5IHNob3VsZCBnZXQgY29tcGlsZWQgb25seSB3aGVuIFdlYktpdC9n
dGsvR05VbWFrZWZpbGUuYW0gaXMgZ2V0dGluZyBpbmNsdWRlZCBidXQgbm90Ci0gICAgICAgIHdp
dGggV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBpbmNsdXNpb24uCi0KLTIwMTAtMTItMTQgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBTaW1wbGlmeSBjb250ZXh0LW1l
bnUgaGFuZGxpbmcgY29kZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDk2NTgKLQotICAgICAgICBVc2UgZ3RrX2NvbnRhaW5lcl9mb3JlYWNoKCkgc28g
dGhhdCB3ZSBvbmx5IGl0ZXJhdGUgdGhlIGxpc3Qgb2YKLSAgICAgICAgY2hpbGRyZW4gb25jZSBh
bmQgd2UgYXZvaWQgY3JlYXRpbmcvZGVzdHJveWluZyB0aGUgbGlzdC4gSXQgYWxzbwotICAgICAg
ICBjb25uZWN0cyB0aGUgYWN0aXZhdGUgc2lnbmFsIGZvciBzdWJtZW51IGl0ZW1zLgotCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAoY29udGV4dE1lbnVDb25u
ZWN0QWN0aXZhdGUpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZvcndhcmRfY29udGV4dF9t
ZW51X2V2ZW50KToKLQotMjAxMC0xMi0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAg
IFtHVEtdIEZpeCBzZXZlcmFsIGlzc3VlcyBpbiByNzM4NTgKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMDMyCi0KLSAgICAgICAgLSBJdCB1c2VzIGJv
dGggZ2xpYiBwcml2YXRlIGRhdGEgYW5kIGl0IGFsbG9jYXRlcyBpdHMgb3duIHByaXZhdGUKLSAg
ICAgICAgICBzdHJ1Y3R1cmUuCi0gICAgICAgIC0gSXQgY2FsbHMgcGFyZW50J3MgZGlzcG9zZSBt
ZXRob2QgZnJvbSBmaW5hbGl6ZS4KLSAgICAgICAgLSB3ZWJraXRfd2ViX3BsdWdpbl9nZXRfbWlt
ZXR5cGVzKCkgdXNlcyBhIHdyb25nIGFubm90YXRpb24gZm9yIHRoZQotICAgICAgICAgIHJldHVy
bmVkIHZhbHVlLCBpdCBzaG91bGQgYmUgdHJhbnNmZXIgbm9uZSByYXRoZXIgdGhhbiB0cmFuc2Zl
cgotICAgICAgICAgIGNvbnRhaW5lci4KLSAgICAgICAgLSBTaW5jZSB0aGUgbWltZSB0eXBlIGxp
c3QgaXMgaW50ZXJuYWwgYW5kIHdlIHJldHVybiB0aGUgbGlzdCBhbmQgbm90IGEKLSAgICAgICAg
ICBjb3B5LCBpdCBzaG91bGQgbmV2ZXIgYmUgZnJlZWQgYnkgdGhlIGNhbGxlciwgc28KLSAgICAg
ICAgICB3ZWJraXRfd2ViX3BsdWdpbl9taW1lX3R5cGVfbGlzdF9mcmVlKCkgc2hvdWxkIGJlIHJl
bW92ZWQgZnJvbSB0aGUKLSAgICAgICAgICBwdWJsaWMgQVBJLgotICAgICAgICAtIE1pbWUgdHlw
ZXMgbGlzdCBpcyB1c2VkIHVuaW5pdGlhbGl6ZWQuCi0gICAgICAgIC0gTWVudGlvbiBpbiB0aGUg
ZG9jcyB0aGF0IGxpc3QgcmV0dXJuZWQgYnkKLSAgICAgICAgICB3ZWJraXRfd2ViX3BsdWdpbl9k
YXRhYmFzZV9nZXRfcGx1Z2lucygpIG11c3QgYmUgZnJlZWQgd2l0aAotICAgICAgICAgIHdlYmtp
dF93ZWJfcGx1Z2luX2RhdGFiYXNlX3BsdWdpbnNfbGlzdF9mcmVlKCkuCi0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2VicGx1Z2luLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfcGx1Z2luX2Zp
bmFsaXplKToKLSAgICAgICAgKHdlYmtpdF93ZWJfcGx1Z2luX2NsYXNzX2luaXQpOgotICAgICAg
ICAod2Via2l0X3dlYl9wbHVnaW5faW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBs
dWdpbi5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5jcHA6Ci0K
LTIwMTAtMTItMTQgIERpZWdvIEVzY2FsYW50ZSBVcnJlbG8gIDxkZXNjYWxhbnRlQGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtndGtdIG1p
c25hbWVkIGd0ay1kb2Mgc3RyaW5ncyBmb3Igd2Via2l0X3dlYl92aWV3X2Nhbl97Y3xjfHB9X2Ns
aXBib2FyZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTA1NzEKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAxMC0xMi0x
MyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
TWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gZW5hYmxlL2Rpc2Fi
bGUgcGx1Z2lucyBhdCBydW50aW1lCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MDg5MQotCi0gICAgICAgICogdGVzdHMvdGVzdHdlYnBsdWdpbmRhdGFi
YXNlLmM6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfcGx1Z2luX2RhdGFiYXNlX2dldF9wbHVn
aW5zKTogdGVzdCB0aGF0IGRpc2FibGluZwotICAgICAgICBhIHBsdWdpbiB3b3Jrcy4KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2luLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfcGx1
Z2luX2dldF9wcm9wZXJ0eSk6IGhvb2sgJ2VuYWJsZWQnIHByb3BlcnR5LgotICAgICAgICAod2Vi
a2l0X3dlYl9wbHVnaW5fc2V0X3Byb3BlcnR5KTogZGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2Vi
X3BsdWdpbl9jbGFzc19pbml0KTogZGVmaW5lICdlbmFibGVkJyBwcm9wZXJ0eS4KLSAgICAgICAg
KHdlYmtpdF93ZWJfcGx1Z2luX3NldF9lbmFibGVkKTogc2V0dGVyIGZvciB0aGUgcHJvcGVydHku
Ci0gICAgICAgICh3ZWJraXRfd2ViX3BsdWdpbl9nZXRfZW5hYmxlZCk6IGdldHRlciBmb3IgdGhl
IHByb3BlcnR5LgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW4uaDogYWRkIHRoZSBB
UElzIHRvIHRoZSBoZWFkZXIuCi0KLTIwMTAtMTItMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQot
ICAgICAgICBbR1RLXSBEbyBub3QgdXNlIEdFVF9QUklWQVRFIG1hY3JvcwotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA5MTUKLQotICAgICAgICBHRVRf
UFJJVkFURSBtYWNyb3MgYXJlIHNsb3cgYW5kIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gdGhlIG9i
amVjdAotICAgICAgICBpbml0KCkgbWV0aG9kLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q29udGV4dE1lbnVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjppbnB1dE1ldGhvZHNN
ZW51SXRlbSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cG9zdFByb2dyZXNzRmlu
aXNoZWROb3RpZmljYXRpb24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
c2V0VGl0bGUpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hD
cmVhdGVQYWdlKToKLSAgICAgICAgKFdlYktpdDo6cG9zdENvbW1pdEZyYW1lVmlld1NldHVwKToK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAod2Via2l0X2Rv
d25sb2FkX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRl
Y2lzaW9uLmNwcDoKLSAgICAgICAgKHdlYmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfZGVjaXNpb25f
aW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwOgotICAgICAg
ICAod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
bmV0d29ya3JlcXVlc3QuY3BwOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9pbml0
KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uY3BwOgotICAgICAgICAo
d2Via2l0X3NlY3VyaXR5X29yaWdpbl9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c2Vj
dXJpdHlvcmlnaW5wcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0
cmlidXRlcy5jcHA6Ci0gICAgICAgICh3ZWJraXRfdmlld3BvcnRfYXR0cmlidXRlc19pbml0KToK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmRhdGFiYXNlLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZGF0YWJhc2VfaW5pdCk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwOgotICAgICAgICAod2Vi
a2l0X3dlYl9kYXRhX3NvdXJjZV9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJh
bWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9pbml0KToKLSAgICAgICAgKHdlYmtp
dF93ZWJfZnJhbWVfbmV3KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWVwcml2YXRl
Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJpbnNwZWN0b3IuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3JfaW5pdCk6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2VicGx1Z2luLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfcGx1Z2luX2luaXQpOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3BsdWdpbl9kYXRhYmFzZV9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
cGx1Z2luZGF0YWJhc2Vwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnBsdWdp
bnByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3Bw
OgotICAgICAgICAod2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25faW5pdCk6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfcmVzb3Vy
Y2VfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnJlc291cmNlcHJpdmF0ZS5oOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3NldHRpbmdzX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKFBvcHVwTWVudVBvc2l0aW9uRnVuYyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZm9yd2FyZF9jb250ZXh0X21lbnVfZXZlbnQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2RyYWdfZW5kKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX2RhdGFfZ2V0KToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19xdWVyeV90b29sdGlwKToKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfaW5pdCk6Ci0KLTIwMTAt
MTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgT2phbiBWYWZhaS4KLQotICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNr
IHBhc3RlZCB0ZXh0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDA5MgotCi0gICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLSAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6Ci0KLTIwMTAtMTItMTIg
IFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJ1YmJlci1zdGFtcGVk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW4u
aDogYWRkIGEgbm90ZSBhYm91dCB0aGUgZXh0ZW5zaW9uIGxpc3QKLSAgICAgICAgYmVpbmcgYSBO
VUxMLXRlcm1pbmF0ZWQgYXJyYXkuCi0KLTIwMTAtMTItMTIgIFhhbiBMb3BleiAgPHhsb3BlekBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEd1c3Rhdm8gTm9yb25oYS4K
LQotICAgICAgICBTdG9wIGNoZWNraW5nIGZvciBnbGliID49IDIuMTYsIHdlIGhhdmUgZGVwZW5k
ZW5kIG9uIGEgbmV3ZXIKLSAgICAgICAgdmVyc2lvbiBmb3IgYSBsb25nIHRpbWUgbm93LgotCi0g
ICAgICAgICogdGVzdHMvdGVzdGF0ay5jOiBTdG9wIGNoZWNraW5nIGZvciBnbGliID49IDIuMTYu
Ci0gICAgICAgICogdGVzdHMvdGVzdGF0a3JvbGVzLmM6IGRpdHRvLgotICAgICAgICAqIHRlc3Rz
L3Rlc3Rkb21kb2N1bWVudC5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0ZG9tZG9td2lu
ZG93LmM6IGRpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3Rkb21ub2RlLmM6IGRpdHRvLgotICAg
ICAgICAqIHRlc3RzL3Rlc3RnbG9iYWxzLmM6IGRpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3Ro
dHRwYmFja2VuZC5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0bG9hZGluZy5jOiBkaXR0
by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0bWltZWhhbmRsaW5nLmM6IGRpdHRvLgotICAgICAgICAq
IHRlc3RzL3Rlc3RuZXR3b3JrcmVxdWVzdC5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0
bmV0d29ya3Jlc3BvbnNlLmM6IGRpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJiYWNrZm9y
d2FyZGxpc3QuYzogZGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdHdlYmRhdGFzb3VyY2UuYzog
ZGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdHdlYmZyYW1lLmM6IGRpdHRvLgotICAgICAgICAq
IHRlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jOiBkaXR0by4KLSAgICAgICAgKiB0ZXN0cy90ZXN0
d2VicmVzb3VyY2UuYzogZGl0dG8uCi0gICAgICAgICogdGVzdHMvdGVzdHdlYnNldHRpbmdzLmM6
IGRpdHRvLgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJ2aWV3LmM6IGRpdHRvLgotICAgICAgICAq
IHRlc3RzL3Rlc3R3aW5kb3cuYzogZGl0dG8uCi0KLTIwMTAtMTItMTEgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
LQotICAgICAgICBbR1RLXSBBZGQgQVBJcyBmb3IgcGx1Z2luIG1hbmFnZW1lbnQKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwODI3Ci0KLSAgICAgICAg
QWRkIFdlYktpdFdlYlBsdWdpbkRhdGFiYXNlIGFuZCBXZWJLaXRXZWJQbHVnaW4gY2xhc3NlcyBm
b3IgYmFzaWMKLSAgICAgICAgcGx1Z2luIG1hbmFnZW1lbnQgYXQgdGhlIGNsaWVudCBsZXZlbC4g
Rm9yIG5vdyB0aGV5IHByb3ZpZGUKLSAgICAgICAgInJlYWQtb25seSIgYWNjZXNzIHRvIHRoZSBw
bHVnaW4gbGlzdC4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBhZGQgbmV3IGZpbGVzIHRv
IHRoZSBidWlsZC4KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2VicGx1Z2luZGF0YWJhc2UuYzogVGVz
dCB0aGF0IHRoZSBkYXRhYmFzZSBjb250YWlucwotICAgICAgICB0aGUgdGVzdCBwbHVnaW4sIHdo
aWNoIHNob3VsZCBhbHdheXMgYmUgbG9hZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJraXQuaDog
YWRkIG5ldyBoZWFkZXJzLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRkZWZpbmVzLmg6IGFkZCBu
ZXcgZGVmaW5lcy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2luLmNwcDogQW4gbmV3
IGNsYXNzIHJlcHJlc2VudGluZyBhIHBsdWdpbiBvYmplY3QuCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnBsdWdpbi5oOiBkaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2lu
ZGF0YWJhc2UuY3BwOiBBIG5ldyBjbGFzcyB0aGF0IGNvbnRhaW5zIHRoZSBsaXN0IG9mIGFjdGl2
ZSBwbHVnaW5zLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZS5oOiBk
aXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicGx1Z2luZGF0YWJhc2Vwcml2YXRlLmg6
IFByaXZhdGUgaGVhZGVyLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwbHVnaW5wcml2YXRl
Lmg6IFByaXZhdGUgaGVhZGVyLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKHdlYmtpdF9nZXRfd2ViX3BsdWdpbl9kYXRhYmFzZSk6IHJldHVybnMgdGhlIFdl
YktpdFdlYlBsdWdpbkRhdGFiYXNlIGZvciB0aGlzIHNlc3Npb24uCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuaDogYWRkIG1ldGhvZCB0byBoZWFkZXIuCi0KLTIwMTAtMTItMTAgIEd1
c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIFNw
bGl0IHdlYmtpdHByaXZhdGUue2NwcCxofSBpbiBtb3JlIG1hbmFnZWFibGUgY2h1bmtzCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY5OAotCi0gICAg
ICAgIFNwbGl0IHByaXZhdGUgYml0cyBvZiBzZXZlcmFsIG9iamVjdHMgdG8gdGhlaXIgb3duIHBy
aXZhdGUKLSAgICAgICAgaGVhZGVycywgYW5kIHRvIHRoZWlyIGltcGxlbWVudGF0aW9uIGZpbGVz
LgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNl
bmRSZXF1ZXN0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAg
ICAod2Via2l0X2Rvd25sb2FkX3NldF9yZXNwb25zZSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtp
dGRvd25sb2FkcHJpdmF0ZS5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0aGl0dGVz
dHJlc3VsdC5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmtpdCk6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdGhpdHRlc3RyZXN1bHRwcml2YXRlLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXRuZXR3b3JrcmVzcG9uc2UuY3BwOgotICAgICAgICAoV2ViS2l0Ojpjb3JlKToKLSAgICAgICAg
KFdlYktpdDo6a2l0TmV3KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNl
cHJpdmF0ZS5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
c2VjdXJpdHlvcmlnaW4uY3BwOgotICAgICAgICAod2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRf
d2ViX2RhdGFiYXNlKToKLSAgICAgICAgKFdlYktpdDo6Y29yZSk6Ci0gICAgICAgIChXZWJLaXQ6
OmtpdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2lucHJpdmF0ZS5oOiBB
ZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcDoKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzcHJpdmF0ZS5oOiBBZGRlZC4K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDoKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0cHJpdmF0ZS5oOiBBZGRlZC4KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9uZXR3b3JrX3Jl
c3BvbnNlKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGUuaDogQWRkZWQuCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwOgotICAgICAgICAoV2Vi
S2l0OjpraXQpOgotICAgICAgICAoV2ViS2l0Ojpjb3JlKToKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2VibmF2aWdhdGlvbmFjdGlvbnByaXZhdGUuaDogQWRkZWQuCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
cG9saWN5ZGVjaXNpb25wcml2YXRlLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJyZXNvdXJjZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnJlc291cmNlcHJpdmF0
ZS5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaDogQWRkZWQuCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDEwLTEyLTEwICBBbGVqYW5kcm8gRy4g
Q2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIGZpeGVkIHNt
YWxsIHR5cG8gaW4gdGhlIG5hbWUgb2YgYSBmdW5jdGlvbi4KLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgIChnZXRBdmFpbGFibGVEaWN0aW9uYXJpZXND
YWxsYmFjayk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6Ci0K
LTIwMTAtMTItMDkgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIEFkZCBo
YXNTcGVsbGluZ01hcmtlciBzdXBwb3J0IHRvIHRoZSBEUlQKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzM5Ci0KLSAgICAgICAgQWRkZWQgYSBuZXcg
cHJpdmF0ZSBBUEkgZnVuY3Rpb24gdG8gc3VwcG9ydCB0aGUgc3BlbGxpbmcgbWFya2VyCi0gICAg
ICAgIHRlc3RzIGluIHRoZSBEUlQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
Ojp3ZWJraXRXZWJGcmFtZVNlbGVjdGlvbkhhc1NwZWxsaW5nTWFya2VyKToKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKLQotMjAxMC0xMi0xMCAg
QWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gQ2hvb3NlIGEgZGljdGlvbmFy
eSBpbiBjYXNlIHRoZXJlIGlzIG5vIG9uZSBkZWZpbmVkIG9yIHRoZQotICAgICAgICBlbnYgTEFO
RyBkb2VzIG5vdCBwcm9wb3NlIG9uZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTA3MzgKLQotICAgICAgICBJbiBjYXNlIG5vIGRpY3QgaXMgc2V0IGFu
ZCB3ZSBjYW4gbm90IGZpbmQgb25lIHVzaW5nIHRoZQotICAgICAgICBlbnZpcm9ubWVudCBqdXN0
IGdldCB0aGUgZmlyc3QgZGljdGlvbmFyeSBpbnN0YWxsZWQgaW4gdGhlIGxpc3QuCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAoZ2V0QXZpbGFibGVE
aWN0aW9uYXJpZXNDYWxsYmFjayk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9w
cm9wZXJ0eSk6Ci0KLTIwMTAtMTItMTAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQot
ICAgICAgICBSZW1vdmUgdW5uZWNlc3NhcnkgdmFyaWFibGUgbmFtZXMgZnJvbSBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUwODE1Ci0KLSAgICAgICAgVGhlcmUgd2VyZSBzb21lIHVubmVjZXNzYXJ5IHZhcmlh
YmxlIG5hbWVzIGluIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0aywKLSAgICAgICAgc28gcmVtb3Zl
IHRoZW0uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuaDogRG8gaXQuCi0KLTIwMTAtMTItMTAgIEpvb25lIEh1ciAgPGpvb25lQGtsZHAub3JnPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBVbnNraXBw
aW5nIHNvbWUgdGVzdCBjYXNlcyBpbiAvdXNlcnNjcmlwdHMgZGVwZW5kZW50IG9uIGFkZFVzZXJT
dHlsZVNoZWV0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MDgwOAotCi0gICAgICAgIFVuc2tpcHBpbmcgdGhlIGZvbGxvd2luZyB0ZXN0IGNhc2VzOgot
ICAgICAgICB1c2Vyc2NyaXB0cy9taXhlZC1jYXNlLXN0eWxlc2hlZXQuaHRtbAotICAgICAgICB1
c2Vyc2NyaXB0cy9zaW1wbGUtc3R5bGVzaGVldC5odG1sCi0gICAgICAgIHVzZXJzY3JpcHRzL3Vz
ZXItc3R5bGUtYWxsLWZyYW1lcy5odG1sCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjphZGRVc2VyU3R5bGVTaGVldCk6IEFkZGVkICJib29sIGFsbEZyYW1lcyIgcGFyYW1ldGVy
LgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgot
Ci0yMDEwLTEyLTEwICBKb29uZSBIdXIgIDxqb29uZUBrbGRwLm9yZz4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICBbR1RLXSBBZGQgRFJUIHN1cHBvcnQgZm9y
IHBhZ2VQcm9wZXJ0eSwgaXNQYWdlQm94VmlzaWJsZSwgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhl
bHMsIGFuZCBhZGRVc2VyU3R5bGVTaGVldAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTA3ODMKLSAgICAgICAgCi0gICAgICAgIFRoaXMgcGF0Y2ggYWxs
b3dzIHRvIHVuc2tpcCB0aGUgZm9sbG93aW5nIHRlc3QgY2FzZXM6Ci0gICAgICAgIHByaW50aW5n
L3BhZ2UtcnVsZS1zZWxlY3Rpb24uaHRtbAotICAgICAgICBwcmludGluZy9wYWdlLWZvcm1hdC1k
YXRhLmh0bWwKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHA6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnBhZ2VQcm9wZXJ0
eSk6IEFkZGVkLgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjppc1BhZ2VCb3hW
aXNpYmxlKTogRGl0dG8uCi0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKTogRGl0dG8uCi0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmFkZFVzZXJTdHlsZVNoZWV0KTogRGl0dG8uCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0KLTIwMTAtMTItMDkgIEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIFNwbGl0IHdl
YmtpdHByaXZhdGUue2NwcCxofSBpbiBtb3JlIG1hbmFnZWFibGUgY2h1bmtzCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY5OAotCi0gICAgICAgIFNw
bGl0IHByaXZhdGUgYml0cyBvZiBXZWJLaXRXZWJJbnNwZWN0b3IgdG8gaXRzIG93biBwcml2YXRl
Ci0gICAgICAgIGhlYWRlciwgYW5kIHRvIGl0cyBpbXBsZW1lbnRhdGlvbiBmaWxlLgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUu
aDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcDoKLSAgICAgICAgKGlz
U2NoZW1hQXZhaWxhYmxlKToKLSAgICAgICAgKGluc3BlY3RvckdTZXR0aW5ncyk6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3RvcnByaXZhdGUuaDogQWRkZWQuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDEwLTEyLTA5ICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBTcGxpdCB3ZWJraXRwcml2
YXRlLntjcHAsaH0gaW4gbW9yZSBtYW5hZ2VhYmxlIGNodW5rcwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA2OTgKLQotICAgICAgICBTcGxpdCBwcml2
YXRlIGJpdHMgb2YgV2ViS2l0TmV0d29ya1JlcXVlc3QgdG8gaXRzIG93biBwcml2YXRlCi0gICAg
ICAgIGhlYWRlciwgYW5kIHRvIGl0cyBpbXBsZW1lbnRhdGlvbiBmaWxlLiBBbHNvIHRha2UgdGhl
IG9wcG9ydHVuaXR5Ci0gICAgICAgIHRvIHVzZSBQbGF0Zm9ybVJlZlB0ciBmb3IgTmV0d29ya1Jl
cXVlc3Qgd2hlcmUgaXQgbWFrZXMgc2Vuc2UsIGFuZAotICAgICAgICBtYWtlIHRoZSBjcmVhdGlv
biBsZXNzIHZlcmJvc2UgYnkgYWRkaW5nIGtpdE5ldy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUpOgotICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdX
aW5kb3dBY3Rpb24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmRvd25sb2FkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OnN0YXJ0RG93bmxvYWQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5j
cHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcDoKLSAgICAgICAg
KFdlYktpdDo6a2l0TmV3KToKLSAgICAgICAgKFdlYktpdDo6Y29yZSk6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2RhdGFfc291cmNlX2dldF9pbml0aWFsX3JlcXVlc3QpOgotICAgICAgICAod2Via2l0
X3dlYl9kYXRhX3NvdXJjZV9nZXRfcmVxdWVzdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
YmZyYW1lLmNwcDoKLQotMjAxMC0xMi0wOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2
by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gU3BsaXQgd2Via2l0cHJpdmF0ZS57Y3BwLGh9IGlu
IG1vcmUgbWFuYWdlYWJsZSBjaHVua3MKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUwNjk4Ci0KLSAgICAgICAgU3BsaXQgcHJpdmF0ZSBiaXRzIG9mIFdl
YktpdFdlYkZyYW1lIHRvIGl0cyBvd24gcHJpdmF0ZSBoZWFkZXIsIGFuZAotICAgICAgICB0byBp
dHMgaW1wbGVtZW50YXRpb24gZmlsZS4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUu
Y3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmdldFZpZXdGcm9tRnJhbWUpOgotICAgICAgICAoV2Vi
S2l0Ojpjb3JlKToKLSAgICAgICAgKFdlYktpdDo6a2l0KToKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZnJhbWVwcml2YXRlLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJw
b2xpY3lkZWNpc2lvbi5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
Ci0yMDEwLTEyLTA5ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHdGtdIFBvcHVsYXRlIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayAocGFydCBJVikKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NDI5Ci0KLSAgICAgICAgTW92ZWQgYWxzbyB3ZWJr
aXRfd29ya2VyX3RocmVhZF9jb3VudCgpIHRvIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0aywKLSAg
ICAgICAgc2luY2UgaXQgd2FzIG9ubHkgdXNlZCBieSBEUlQgZm9yIG5vdy4KLQotICAgICAgICBT
aW5jZSB0aGlzIG1ldGhvZCB3YXMgdGhlIG9ubHkgb25lIGluIHdlYmtpdHdvcmtlci5jcHAsIHRo
ZSBmaWxlIHdhcwotICAgICAgICBhbHNvIHJlbW92ZWQuCi0KLSAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjp3b3JrZXJUaHJlYWRDb3Vu
dCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d29ya2Vycy5jcHA6IFJlbW92ZWQuCi0KLTIwMTAtMTItMDYgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KLQotICAgICAgICBbR1RLXSBTdXBwb3J0IHRoZSBNb3ppbGxhLXN0eWxlIEZ1bGxzY3Jl
ZW4gSmF2YXNjcmlwdCBBUEkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTUwNTcyCi0KLSAgICAgICAgRnVsbHNjcmVlbiBBUEkgc3VwcG9ydC4gSXQgaXMg
Y29udHJvbGxlZCBhdCBydW50aW1lIHVzaW5nIGEgbmV3Ci0gICAgICAgIHNldHRpbmcgY2FsbGVk
IGVuYWJsZS1mdWxsc2NyZWVuLCBzZXQgdG8gRkFMU0UgYnkgZGVmYXVsdC4KLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6Ci0gICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6Ci0gICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19p
bml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAg
ICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93
ZWJfc2V0dGluZ3NfY29weSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6Ci0KLTIwMTAtMTItMDkg
IEpvb25lIEh1ciAgPGpvb25lQGtsZHAub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRp
biBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBTdXBwb3J0IGZvciB2aWV3cG9ydCBtZXRhIHRh
ZwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU0NDMK
LQotICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgZ29iamVjdCB0byBvZmZlciB0aGUgdmll
d3BvcnQgcHJvcGVydGllcyB0byB1c2VyIGFnZW50cy4KLSAgICAgICAgSXQgaXMgV2ViS2l0Vmll
d3BvcnRBdHRyaWJ1dGVzIHRoYXQgY29udGFpbnMgdGhlIHZpZXdwb3J0IHNpemUsIGluaXRpYWwg
c2NhbGUgd2l0aCBsaW1pdHMsIAotICAgICAgICBhbmQgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhl
ciBhIHVzZXIgaXMgYWJsZSB0byBzY2FsZSB0aGUgY29udGVudHMgaW4gdGhlIHZpZXdwb3J0Lgot
ICAgICAgICAKLSAgICAgICAgVGhpcyBmZWF0dXJlIHdhcyBpbnRyb2R1Y2VkIGJ5IFNhZmFyaSBv
biB0aGUgaVBob25lLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiAKLSAgICAgICAgdGhlIHZpZXdw
b3J0IHByb3BlcnRpZXMsIHJlZmVyIHRvIHRoZSBTYWZhcmkgcmVmZXJlbmNlIGxpYnJhcnkgYXQg
Ci0gICAgICAgIGh0dHA6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3NhZmFyaS9saWJyYXJ5L2RvY3Vt
ZW50YXRpb24vYXBwbGVhcHBsaWNhdGlvbnMvcmVmZXJlbmNlL3NhZmFyaWh0bWxyZWYvYXJ0aWNs
ZXMvbWV0YXRhZ3MuaHRtbAotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZGVkIHdlYmtp
dHZpZXdwb3J0YXR0cmlidXRlcy5oIHdlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAuIAotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudDo6ZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2UpOiBBZGRlZCB0
aGlzIGNhbGxiYWNrIHRvIGtub3cgd2hldGhlciB0aGUgdmlld3BvcnQgYXJndW1lbnRzIGlzIGF2
YWlsYWJsZS4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdw
b3J0KTogQWRkZWQgdGhpcyBmdW5jdGlvbiB0byBjb21wdXRlIHRoZSB2aWV3cG9ydCBhdHRyaWJ1
dGVzIHdpdGggdGhlIGdpdmVuIGF2YWlsYWJsZVdpZHRoIGFuZCBhdmFpbGFibGVIZWlnaHQuCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6Ci0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOiAKLSAgICAgICAg
KFdlYktpdDo6cG9zdENvbW1pdEZyYW1lVmlld1NldHVwKTogSW52YWxpZGF0ZSB0aGUgdmlld3Bv
cnQgYXR0cmlidXRlcy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Lmg6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdGRlZmluZXMuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOiBB
ZGRlZCB3ZWJraXRWaWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUgYXMgYSBwcml2YXRlIGZ1bmN0
aW9uLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuY3BwOiBBZGRl
ZC4KLSAgICAgICAgKHdlYmtpdF92aWV3cG9ydF9hdHRyaWJ1dGVzX2NsYXNzX2luaXQpOgotICAg
ICAgICAod2Via2l0X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRf
dmlld3BvcnRfYXR0cmlidXRlc19nZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3ZpZXdw
b3J0X2F0dHJpYnV0ZXNfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdFZpZXdwb3J0QXR0
cmlidXRlc1JlY29tcHV0ZSk6IFJlY29tcHV0ZSB0aGUgb3B0aW1hbCB2aWV3cG9ydCBhdHRyaWJ1
dGVzIGFuZCBlbWl0IHRoZSB2aWV3cG9ydC1hdHRyaWJ1dGVzLWNoYW5nZWQgc2lnbmFsLgotICAg
ICAgICAod2Via2l0X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfcmVjb21wdXRlKTogYSBwdWJsaWMgQVBJ
IGZvciBjYWxsaW5nIHdlYmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZS4KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmg6IEFkZGVkLgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfcHJv
cGVydHkpOiBBZGRlZCBQUk9QX1ZJRVdQT1JUX0FUVFJJQlVURVMuCi0gICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfZGlzcG9zZSk6IERlYWxsb2NhdGUgdGhlIFdlYktpdFZpZXdwb3J0QXR0cmlidXRl
cyBpbnN0YW5jZS4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KTogQWRkZWQg
dGhlIHZpZXdwb3J0LWF0dHJpYnV0ZXMtcmVjb21wdXRlLXJlcXVlc3RlZCBhbmQgdmlld3BvcnQt
YXR0cmlidXRlcy1jaGFuZ2VkIHNpZ25hbHMuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5p
dCk6IFNldCB0aGUgV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzIGluc3RhbmNlLgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2dldF92aWV3cG9ydF9hdHRyaWJ1dGVzKTogQWRkZWQgYSBnZXR0ZXIg
dG8gb2J0YWluIHRoZSBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMgaW5zdGFuY2UgaGVsZCBieSB0
aGUgZ2l2ZW4gV2ViS2l0V2ViVmlldy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5o
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oOiBBZGRlZCBXZWJLaXRW
aWV3cG9ydEF0dHJpYnV0ZXMgYXMgYSBwcml2YXRlIHZhcmlhYmxlLgotCi0yMDEwLTEyLTA5ICBY
YW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0
aW4gUm9iaW5zb24uCi0KLSAgICAgICAgRml4ICdtYWtlIGluc3RhbGwnIHdvZXMgd2l0aCBzb21l
IHZlcnNpb25zIG9mIGF1dG9tYWtlLgotCi0gICAgICAgICogR05VbWFrZWZpbGUuYW06IHVzZSAk
KHRvcF9idWlsZGRpcikgaW5zdGVhZCBvZiAkKGJ1aWxkZGlyKSwKLSAgICAgICAgc2luY2Ugd2Ug
YWN0dWFsbHkgd2FudCBhIHZhbGlkIHBhdGggZm9yIHRoZSBmaWxlIHJlZ2FyZGxlc3Mgb2YgdGhl
Ci0gICAgICAgIHBsYWNlIGZyb20gd2hlcmUgdGhlIHNjcmlwdCBpcyBjYWxsZWQuCi0KLTIwMTAt
MTItMDggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEu
Y28udWs+Ci0KLSAgICAgICAgQnVpbGQgZml4LiBUYWtlIHdlYlZpZXd7RW50ZXIsRXhpdH1GdWxs
c2NyZWVuIGJhY2sgb3V0IG9mIHRoZQotICAgICAgICBXZWJLaXQgbmFtZXNwYWNlLCBhbmQgcmVt
b3ZlIGEgZnVuY3Rpb24gc2lnbmF0dXJlIHRoYXQgZ290IGluIGJ5Ci0gICAgICAgIG1pc3Rha2Ug
YmVjYXVzZSBvZiBhIGJhZCBtZXJnZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRl
Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAoV2ViS2l0
Ojpjb3JlKToKLSAgICAgICAgKFdlYktpdDo6a2l0KToKLQotMjAxMC0xMi0wOCAgQnJpYW4gV2Vp
bnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSm9o
biBTdWxsaXZhbi4KLQotICAgICAgICBMYXllcmluZyBWaW9sYXRpb24gaW4gQ29udGV4dE1lbnUg
LSBtZW1iZXIgdmFyaWFibGUgb2YgdHlwZSBIaXRUZXN0UmVzdWx0Ci0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDU4NgotICAgICAgICAKLSAgICAgICAg
VXBkYXRlIHVzZXJzIG9mIENvbnRleHRNZW51IGFuZCBDb250ZXh0TWVudUNvbnRyb2xsZXIgdG8g
bWF0Y2ggd2hlcmUgdGhlIG5ldyBmdW5jdGlvbnMgCi0gICAgICAgIGFyZSBsb2NhdGVkLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0TWVudUNsaWVudDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRl
bXMpOgotCi0yMDEwLTEyLTA4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgotCi0gICAgICAgIFtHVEtd
IExheWVyaW5nIHZpb2xhdGlvbiBpbiBDb250ZXh0TWVudUd0ay5jcHAKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNjc2Ci0KLSAgICAgICAgQ29udGV4
dE1lbnVHdGsgYWNjZXNzZXMgdGhlIHBhZ2UncyBDb250ZXh0TWVudUNvbnRyb2xsZXIsIHdoaWNo
IGlzIGEgbGF5ZXJpbmcKLSAgICAgICAgdmlvbGF0aW9uLiBUaGlzIHdhcyBmaXhlZCBmb3IgTWFj
IHdpdGggY2hhbmdlIHI3MzQ2OS4gV2UgbWFrZSBhIHNpbWlsYXIgZml4IGhlcmUKLSAgICAgICAg
YnkgbW92aW5nIHRoZSAiYWN0aXZhdGVkIiBzaWduYWwgY29ubmVjdGlvbiB0byB0aGUgV2ViS2l0
IGxheWVyLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
cG9wdXBNZW51SXRlbUFjdGl2YXRlZCk6IEhhdmUgQ29udGV4dE1lbnVDb250cm9sbGVyIGhhbmRs
ZSB0aGlzIHNpZ25hbC4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19mb3J3YXJkX2NvbnRleHRf
bWVudV9ldmVudCk6IEZvciBhbGwgaXRlbXMgaW4gdGhlIHVudG91Y2hlZAotICAgICAgICBjb250
ZXh0IG1lbnUsIGNvbm5lY3QgdGhlaXIgImFjdGl2YXRlZCIgc2lnbmFsIHRvIHRoZSBuZXcgcG9w
dXBNZW51SXRlbUFjdGl2YXRlZAotICAgICAgICBoYW5kbGVyLgotCi0yMDEwLTEyLTA4ICBBbnRv
bmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGlu
IFJvYmluc29uLgotCi0gICAgICAgIFtHdGtdIFBvcHVsYXRlIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ayAocGFydCBJSUkpCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00ODQyOQotCi0gICAgICAgIEFkanVzdGVkIHNvbWUgY2FsbCBzaXRlcyBvZiBwcmV2
aW91c2x5IGludGVybmFsIEFQSSBkZWNsYXJlZAotICAgICAgICB3ZWJraXRwcml2YXRlLmggdGhh
dCBoYXZlIG1vdmVkIHRvIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Ci0gICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OmdjQ29sbGVjdEphdmFzY3JpcHRPYmplY3RzKToKLSAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Z2NDb2xsZWN0SmF2YXNjcmlwdE9iamVjdHNP
bkFsdGVybmF0ZVRocmVhZCk6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6Omdj
Q291bnRKYXZhc2NyaXB0T2JqZWN0cyk6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OmxheW91dEZyYW1lKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGsuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0KLTIwMTAtMTItMDggIEd1c3Rhdm8gTm9y
b25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIFNwbGl0IHdlYmtp
dHByaXZhdGUue2NwcCxofSBpbiBtb3JlIG1hbmFnZWFibGUgY2h1bmtzCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDY5OAotCi0gICAgICAgIFNwbGl0
IHByaXZhdGUgYml0cyBvZiBXZWJLaXRXZWJWaWV3IHRvIGl0cyBvd24gcHJpdmF0ZSBoZWFkZXIs
IGFuZAotICAgICAgICB0byBpdHMgaW1wbGVtZW50YXRpb24gZmlsZS4gVGFrZSB0aGUgb3Bwb3J0
dW5pdHkgdG8gZml4IGluY2x1ZGVzCi0gICAgICAgIHNvcnRpbmcgdG8gY29tcGx5IHdpdGggdGhl
IHN0eWxlIGd1aWRlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjplbnRlckZ1bGxzY3JlZW5Gb3JO
b2RlKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpleGl0RnVsbHNjcmVlbkZvck5v
ZGUpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFzdGVib2Fy
ZEhlbHBlckd0ay5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAg
ICAgICAod2Via2l0X2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJmcmFtZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAg
ICAoV2ViS2l0Ojpjb3JlKToKLSAgICAgICAgKFdlYktpdDo6a2l0KToKLSAgICAgICAgKFdlYktp
dDo6d2ViVmlld0VudGVyRnVsbHNjcmVlbik6Ci0gICAgICAgIChXZWJLaXQ6OndlYlZpZXdFeGl0
RnVsbHNjcmVlbik6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmg6IEFk
ZGVkLgotCi0yMDEwLTEyLTA4ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9u
aGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQot
ICAgICAgICBUaGUgc3RvcmFnZSBmb3IgdGhlIHN1YnJlc291cmNlcyBpcyBhIEdIYXNoVGFibGUg
d2hpY2ggZG9lcyBub3QKLSAgICAgICAgZ3VhcmFudGVlIG9yZGVyLCBzbyB3ZSBuZWVkIHRvIG1h
a2Ugb3VyIGNoZWNraW5nIG1vcmUgcmVzaWxpZW50LgotCi0gICAgICAgICogdGVzdHMvdGVzdHdl
YnJlc291cmNlLmM6Ci0gICAgICAgICh0ZXN0X3dlYl9yZXNvdXJjZV9zdWJfcmVzb3VyY2VfbG9h
ZGluZyk6Ci0KLTIwMTAtMTItMDggIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAg
ICAgIEZpeCBhc3NlcnRpb24gaW4gdGhlIEFQSSB0ZXN0LCB3ZSBhcmUgcmVxdWVzdGluZyB0aGUg
ZmF2aWNvbiBhbmQKLSAgICAgICAgdGhlIHN1YnJlc291cmNlIHNvIHdlIGhhdmUgdG8gbWFrZSBz
dXJlIHdlIGFyZSBhc3NpZ25pbmcganVzdCB0aGUKLSAgICAgICAgZmlyc3Qgc3VicmVzb3VyY2Uu
Ci0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2VicmVzb3VyY2UuYzoKLSAgICAgICAgKHJlc291cmNl
X3JlcXVlc3Rfc3RhcnRpbmdfc3ViX2NiKToKLQotMjAxMC0xMi0wNyAgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gY2xlYXJzIHRoZSBzdWJy
ZXNvdXJjZXMgcHJlbWF0dXJlbHkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUwNjM0Ci0KLSAgICAgICAgTWFrZSBhZGRpbmcgdGhlIG1haW4gcmVzb3Vy
Y2UgZXhwbGljaXQsIGFuZCBvbmx5IGNsZWFyCi0gICAgICAgIHN1YnJlc291cmNlcyB3aGVuIHRo
ZSBuZXcgbG9hZCBpcyBjb21taXR0ZWQsIGF2b2lkIGNsZWFyaW5nIHRoZW0KLSAgICAgICAgcHJl
bWF0dXJlbHkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojphc3NpZ25JZGVudGlm
aWVyVG9Jbml0aWFsUmVxdWVzdCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
Ojpwcm92aXNpb25hbExvYWRTdGFydGVkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OnByZXBhcmVGb3JEYXRhU291cmNlUmVwbGFjZW1lbnQpOgotICAgICAgICAoV2ViS2l0
Ojpwb3N0Q29tbWl0RnJhbWVWaWV3U2V0dXApOgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJkYXRh
c291cmNlLmM6Ci0gICAgICAgIChub3RpZnlfbG9hZF9zdGF0dXNfbGlmZXRpbWVfY2IpOgotICAg
ICAgICAodGVzdF93ZWJraXRfd2ViX2RhdGFfc291cmNlX2xpZmV0aW1lKToKLSAgICAgICAgKG1h
aW4pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2FkZF9tYWluX3Jl
c291cmNlKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19hZGRfcmVzb3VyY2UpOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2NsZWFyX3Jlc291cmNlcyk6Ci0KLTIwMTAtMTItMDcgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIHRlc3R3ZWJkYXRh
c291cmNlIC0gdW5yZWFjaGFibGUgdGVzdCBpcyBicm9rZW4KLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNjI5Ci0KLSAgICAgICAgRml4LCBhbmQgZGlz
YWJsZSB0ZXN0d2ViZGF0YXNvdXJjZSdzIHVucmVhY2hhYmxlIHRlc3QgKGl0IGlzIG5vdAotICAg
ICAgICBwYXNzaW5nIG5vdyB0aGF0IGl0IGFjdHVhbGx5IHRlc3RzIHdoYXQgaXQgc2hvdWxkKS4g
VGhpcyBhbHNvCi0gICAgICAgIGZpeGVzIHRoZSB3YWl0IHRpbWVyIHRvIGFjdHVhbGx5IHdvcmsg
YXMgZXhwZWN0ZWQuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViZGF0YXNvdXJjZS5jOgotICAg
ICAgICAobm90aWZ5X2xvYWRfc3RhdHVzX3VucmVhY2hhYmxlX2NiKToKLSAgICAgICAgKG5vdGlm
eV9sb2FkX3N0YXR1c19jYik6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfZGF0YV9zb3VyY2Up
OgotCi0yMDEwLTEyLTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
LQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzMzOTIuCi0gICAgICAgIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzczMzkyCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDQ4OQotCi0gICAgICAgIFRoaXMgY29tbWl0IGNh
dXNlZCBjcmFzaGVzIG9uIHRoZSBHVEsrIGJvdHMKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OmZpbmlzaGVkTG9hZGluZyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9lbmNvZGluZyk6Ci0KLTIwMTAtMTIt
MDYgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgotCi0gICAgICAgIFVwZGF0ZSBjYWxscyB0byBEb2N1bWVudFdyaXRl
ci4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNDg5
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0g
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRpbmcpOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19nZXRfZW5jb2RpbmcpOgotCi0yMDEwLTEyLTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAg
ICAgW0dUS10gQnVpbGQgaXMgYnJva2VuIGFmdGVyIHI3MzM1MwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA1NjgKLQotICAgICAgICBGaXggdGhlIGd0
ay1kb2MgYnVpbGQgYnkgbWFraW5nIGFsbCBtZW1iZXJzIG9mIHRoZSBjYWNoZSBtb2RlbAotICAg
ICAgICBlbnVtIHB1YmxpYy4gZ3RrLWRvYyBkb2VzIG5vdCBzdXBwb3J0IG1ha2luZyBvbmx5IHNv
bWUgZW51bQotICAgICAgICBtZW1iZXJzIHByaXZhdGUuIFdlIHNob3VsZCBhbHNvIGV4cG9zZSBp
dCBzbyB0aGF0IHVzZXJzIHF1ZXJ5aW5nCi0gICAgICAgIHRoZSBjYWNoZSBtb2RlbCBkbyBub3Qg
Z2V0IG15c3RlcmlvdXMsIHVuZG9jdW1lbnRlZCByZXN1bHRzLgotCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuaDogRml4IGd0ay1kb2MgZm9yIHRoZSBjYWNoZSBtb2RlbCBlbnVtLgot
Ci0yMDEwLTEyLTA2ICBEZXJlayBXZWl0emVsICA8ZGp3ODYwNUBnbWFpbC5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIEFQSSBEb2N1
bWVudGF0aW9uIHJlZmVyZW5jaW5nIGRlcHJlY2lhdGVkIEdUS19XSURHRVRfVE9QTEVWRUwKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNTEyCi0KLSAg
ICAgICAgRml4ZWQgcmVmZXJlbmNlIHRvIGRlcHJlY2lhdGVkIEdUS19XSURHRVRfVE9QTEVWRUwu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMTAtMTItMDYgIEpv
b25lIEh1ciAgPGpvb25lQGtsZHAub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Bl
ei4KLQotICAgICAgICBbR1RLXSBUaGUgd2Via2l0IGNhY2hlIG1vZGVsIG5lZWRzIHRvIGJlIHNl
dCB3aGVuIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkg
aXMgY2FsbGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MDQzMAotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
Y3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlkUGVyZm9ybUZpcnN0
TmF2aWdhdGlvbik6IFNldCB0aGUgd2VidmlldyBjYWNoZSBtb2RlbC4KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfaW5pdCk6IFJlbW92ZWQgdGhl
IGNvZGUgb2Ygc2V0dGluZyB0aGUgd2VidmlldyBjYWNoZSBtb2RlbC4KLQotMjAxMC0xMi0wNCAg
QW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1h
cnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR3RrXSBQb3B1bGF0ZSBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsgKFBhcnQgSUkpCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00ODQyOQotCi0gICAgICAgIE1vdmVkIG1vcmUgcHJpdmF0ZSBtZXRob2QgZGVj
bGFyZWQgd2l0aCBXRUJLSVRfQVBJIHRvCi0gICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
aywgc2luY2UgdGhleSB3ZXJlIG9ubHkgYmVpbmcgdXNlZCBieSBEUlQuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgotICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUpOgotICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjppc0NvbW1hbmRFbmFibGVkKToKLSAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbik6Ci0g
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVM
aXN0cyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
Ci0yMDEwLTExLTA4ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHdGtdIFBvcHVsYXRlIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0awotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDg0MjkKLQotICAgICAgICBNb3ZlZCBtb3N0IG9mIHRoZSB3ZWJraXRf
d2ViX2ZyYW1lKiBtZXRob2RzIGRlZmluZWQgYXMgcHJpdmF0ZSBBUElzIGluIHdlYmtpdHByaXZh
dGUuaAotICAgICAgICB0byBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGssIGFzIHN0YXRpYyBjbGFz
cyBtZXRob2RzLiBUaGVzZSBtZXRob2RzIGhhZAotICAgICAgICBub3QgZ29uZSB0aHJvdWdodCB0
aGUgZm9ybWFsIEFQSSByZXZpZXcgcHJvY2VzcyBhbmQgd2VyZSBvbmx5IGJlaW5nIHVzZWQgYnkg
RFJUIGZvciBub3cuCi0KLSAgICAgICAgVGhlIGVzc2VuY2Ugb2YgZWFjaCBvcmlnaW5hbCBtZXRo
b2QgbmFtZSB3ZXJlIGtlcHQuIEZvciBleGFtcGxlCi0gICAgICAgIHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X2NoaWxkcmVuKC4uLikgd2FzIHJlbmFtZWQgdG8gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpnZXRGcmFtZUNoaWxkcmVuKC4uLiksCi0gICAgICAgIGFuZCBzbyBvbi4KLQotICAgICAgICBB
bHNvIHNvbWUgb2YgdGhlIG1ldGhvZCBib2RpZXMgd2VyZSBjaGFuZ2VkIHRvIHJldHVybiBub24t
Z2xpYiB0eXBlcyAoZ2NoYXIqIC0+IENTdHJpbmcpLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6Z2V0RnJhbWVDaGlsZHJlbik6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmdldElubmVyVGV4dCk6Ci0gICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OmR1bXBSZW5kZXJUcmVlKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQpOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpwYWdlTnVtYmVyRm9yRWxlbWVudEJ5SWQpOgotICAgICAgICAoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpudW1iZXJPZlBhZ2VzRm9yRnJhbWUpOgotICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpnZXRQZW5kaW5nVW5sb2FkRXZlbnRDb3VudCk6Ci0gICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnBhdXNlQW5pbWF0aW9uKToKLSAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6cGF1c2VUcmFuc2l0aW9uKToKLSAgICAgICAgKER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6cGF1c2VTdmdBbmltYXRpb24pOgotICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0pOgotICAgICAgICAoRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMpOgotICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzdXNwZW5kQW5pbWF0aW9ucyk6Ci0gICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlc3VtZUFuaW1hdGlvbnMpOgotICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjbGVhck1haW5GcmFtZU5hbWUpOgotICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnZXRGb2N1c2VkQWNjZXNzaWJsZUVsZW1lbnQpOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmNwcDoKLQotMjAxMC0xMi0wMiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtd
IER1bXBSZW5kZXJUcmVlIGhhcyB0d28gY29waWVzIG9mIEphdmFTY3JpcHRDb3JlCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTg3NwotCi0gICAgICAg
IEtlZXAgV2ViS2l0L1dlYkNvcmUgc3ltYm9scyBoaWRkZW4uCi0KLSAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbTogTW92ZSB0aGUgc3ltYm9sIHZpc2liaWxpdHkgcnVsZXMgaGVyZSwgYmVjYXVzZQot
ICAgICAgICBub3cgSlNDIHN5bWJvbHMgYXJlIHZpc2libGUsIGJ1dCBXZWJDb3JlL1dlYktpdCBz
eW1ib2xzIGFyZSBoaWRkZW4uCi0KLTIwMTAtMTItMDIgIERhbmllbCBCYXRlcyAgPGRiYXRlc0By
aW0uY29tPgotCi0gICAgICAgIElnbm9yZSBXZWJLaXQvZ3RrL2RvY3MvR05VbWFrZWZpbGUuaW4g
YW5kIFdlYktpdC9ndGsvcG8vKi5wb3Qgc28gdGhhdAotICAgICAgICB0aGVzZSBmaWxlcyBkbyBu
b3QgYXBwZWFyIGluIGFuIHN2biBzdGF0LiBUaGlzIGNoYW5nZSBtYWtlcyBTVk4KLSAgICAgICAg
Y29uc2lzdGVudCB3aXRoIHRoZSBjdXJyZW50IEdpdCBpZ25vcmUgYmVoYXZpb3IgZm9yIHRoZXNl
IGZpbGVzLgotCi0gICAgICAgICogZG9jczogQWRkZWQgcHJvcGVydHkgc3ZuOmlnbm9yZS4KLSAg
ICAgICAgKiBwbzogQWRkZWQgcHJvcGVydHkgc3ZuOmlnbm9yZS4KLQotMjAxMC0xMi0wMSAgSmlh
IFB1ICA8anB1QGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
LQotICAgICAgICBTdXBwb3J0IG11bHRpcGxlIGNvcnJlY3Rpb24gY2FuZGlkYXRlcyBwYW5lbCBm
b3IgbWlzc3BlbGxlZCB3b3JkIG9uIE1hYyBPUyBYLgotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMzcKLSAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1
NjgwNTk+Ci0KLSAgICAgICAgQWRvcHRlZCBuZXcgZnVuY3Rpb24gc2lnbmF0dXJlIGRlZmluZWQg
aW4gYmFzZSBjbGFzcy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nlc0ZvcldvcmQp
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgotCi0yMDEwLTEx
LTMwICBOaWNvbGFzIER1ZnJlc25lICA8bmljb2xhcy5kdWZyZXNuZUBjb2xsYWJvcmEuY28udWs+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtd
IEZpeCB3cm9uZyB0eXBlIGluIGFzc2VydCByZXR1cm4gdmFsdWUKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMjA4Ci0KLSAgICAgICAgVXNlIGFwcHJv
cHJpYXRlIHJldHVybiB0eXBlIGluIGRpZmZlcmVudCBnX3JldHVybl92YWxfaWZfZmFpbCgpLiBU
aGlzCi0gICAgICAgIHJlbW92ZXMgc29tZSBjb21waWxlciB3YXJuaW5nLgotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9kYXRh
X3NvdXJjZV9pc19sb2FkaW5nKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3Bw
OgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9wYWdlX251bWJlcl9mb3JfZWxlbWVudF9ieV9p
ZCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX251bWJlcl9vZl9wYWdlcyk6Ci0KLTIwMTAt
MTEtMzAgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgotCi0gICAgICAgIFtHVEtdIEltcGxlbWVu
dCBST0xFX0NPTUJPX0JPWAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU2NzgKLQotICAgICAgICBOZXcgdGVzdCB0byBjaGVjayB0aGUgaW1wbGVtZW50
YXRpb24gb2YgdGhlIGNvbWJvIGJveGVzLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgot
ICAgICAgICAodGVzdFdlYmtpdEF0a0NvbWJvQm94KTogTmV3IHRlc3QsIGNoZWNraW5nIHRoYXQg
dGhlIHJvbGVzIGFuZCB0aGUKLSAgICAgICAgaW1wbGVtZW50ZWQgaW50ZXJmYWNlcyBmb3IgYSBj
b21ibyBib3ggYW5kIGl0cyBkZXNjZW5kYW50cyB3b3JrLgotICAgICAgICAobWFpbik6IEFkZGVk
IHRoZSBuZXcgdW5pdCB0ZXN0LgotCi0yMDEwLTExLTMwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24uCi0KLSAgICAgICAgW0dUS10gVGVzdCBmYXN0L2V2ZW50cy9tb3VzZW92ZXItbW91c2VvdXQy
Lmh0bWwgY3Jhc2hlcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTAyMTQKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19xdWVyeV90b29sdGlwKToKLQotMjAxMC0xMS0zMCAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjcyNzY0LgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC83
Mjc2NAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAy
MTUKLQotICAgICAgICBUaGlzIGNoYW5nZSBpcyBjYXVzaW5nIGFzc2VydGlvbiBmYWlsdXJlcyBv
biB0aGUgZGVidWcgYm90cy4KLSAgICAgICAgKFJlcXVlc3RlZCBieSBtcm9iaW5zb24gb24gI3dl
YmtpdCkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6Om5vdGlmeVN0YXR1cyk6Ci0gICAgICAgICogdGVzdHMvdGVz
dGF0ay5jOgotICAgICAgICAobWFpbik6Ci0KLTIwMTAtMTEtMjkgIFhhbiBMb3BleiAgPHhsb3Bl
ekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQot
ICAgICAgICAqIE5FV1M6IHVwZGF0ZSBmb3IgMS4zLjcgcmVsZWFzZS4KLQotMjAxMC0xMS0yOSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHdGtdIFRvb2x0aXBzIHNob3VsZCBiZSBm
dWxseSBrZXlib2FyZCBhY2Nlc3NpYmxlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNTUyNQotCi0gICAgICAgIFBvc2l0aW9uIHRoZSB0b29sdGlwIHVu
ZGVyIHRoZSBjdXJyZW50IGZvY3VzZWQgZWxlbWVudCB3aGVuIHRoZQotICAgICAgICB0b29sdGlw
IGhhcyBiZWVuIHRyaWdnZXJlZCB1c2luZyB0aGUga2V5Ym9hcmQuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcXVlcnlfdG9v
bHRpcCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2hvd19oZWxwKToKLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLQotMjAxMC0xMS0yOSAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExv
cGV6LgotCi0gICAgICAgIFtHVEtdIFRvb2x0aXBzIG5vdCBzaG93biB3aGVuIHNjcm9sbGluZwot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxNDMKLQot
ICAgICAgICBDb252ZXJ0IHRvb2x0aXAgYXJlYSB0byB3aW5kb3cgY29vcmRpbmF0ZXMgc28gdGhh
dCB0b29sdGlwcyBhcmUKLSAgICAgICAgc2hvd24gZXZlbiBhZnRlciBzY3JvbGxpbmcuCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KToKLQotMjAxMC0xMS0y
NiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIEluc3BlY3RvcjogYWRkIGEg
d2F5IHRvIGluc3BlY3QgYSBXZWJLaXRET01Ob2RlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTkwMwotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
Ymluc3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9pbnNwZWN0X25v
ZGUpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuaDoKLQotMjAxMC0xMS0y
NiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIGV2ZW50cyBtaXNzaW5nIHdo
ZW4gYSBkb2N1bWVudCBpcyAocmUpbG9hZGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNTgzMQotCi0gICAgICAgIEVtaXQgdGhlIHJpZ2h0IHNpZ25h
bHMgd2hlbiByZWxvYWRpbmcgYSBkb2N1bWVudC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6bm90aWZ5QWNjZXNz
aWJpbGl0eVN0YXR1cyk6IE5ldyBmdW5jdGlvbiwgdG8gbWFrZSBzdXJlCi0gICAgICAgIHRoZSBz
aWduYWxzIGludm9sdmVkIGluIHJlbG9hZGluZyBhIGRvY3VtZW50IGFyZSBwcm9wZXJseSBlbWl0
dGVkLgotICAgICAgICAoV2ViS2l0Ojpub3RpZnlTdGF0dXMpOiBBbHNvIG5vdGlmeSBhY2Nlc3Np
YmlsaXR5IGlmIGVuYWJsZWQuCi0KLSAgICAgICAgTmV3IHVuaXQgdGVzdCB0byBjaGVjayB0aGUg
c2lnbmFscyBhcmUgYmVpbmcgYWN0dWFsbHkgZW1pdHRlZC4KLQotICAgICAgICAqIHRlc3RzL3Rl
c3RhdGsuYzoKLSAgICAgICAgKHN0YXRlQ2hhbmdlZENiKTogQ2FsbGJhY2sgZm9yICdzdGF0ZS1j
aGFuZ2UnIHNpZ25hbCBlbWl0dGVkIGJ5Ci0gICAgICAgIHRoZSBhY2Nlc3NpYmxlIG9iamVjdCBh
c3NvY2lhdGVkIHRvIHRoZSB3ZWJWaWV3LgotICAgICAgICAoZG9jdW1lbnRSZWxvYWRDYik6IENh
bGxiYWNrIGZvciAncmVsb2FkJyBzaWduYWwuCi0gICAgICAgIChkb2N1bWVudExvYWRDb21wbGV0
ZUNiKTogQ2FsbGJhY2sgZm9yICdsb2FkLWNvbXBsZXRlJyBzaWduYWwuCi0gICAgICAgICh3ZWJ2
aWV3TG9hZFN0YXR1c0NoYW5nZWRDYik6IENhbGxiYWNrIGZvciAnbm90aWZ5Ojpsb2FkLXN0YXR1
cycKLSAgICAgICAgc2lnbmFsLCBlbWl0dGVkIGJ5IHRoZSBXZWJLaXRXZWJWaWV3IG9iamVjdCAo
bm90IHRoZSBBdGtPYmplY3QpLgotICAgICAgICAodGVzdFdlYmtpdEF0a0RvY3VtZW50UmVsb2Fk
RXZlbnRzKTogTmV3IHVuaXQgdGVzdC4KLSAgICAgICAgKG1haW4pOiBBZGRlZCB0aGUgbmV3IHVu
aXQgdGVzdC4KLQotMjAxMC0xMS0yNCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIE1h
a2Uga2l0KCkgbWV0aG9kcyByZXR1cm4gdGhlIHByb3BlciB0eXBlIGluc3RlYWQgb2YgZ3BvaW50
ZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDM0
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNob3VsZERlbGV0ZVJhbmdlKTogZ2V0IHJpZCBvZiB1
bm5lZWRlZCBjYXN0LgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dE
ZWxldGVJbnRlcmZhY2UpOiBkaXR0by4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpz
aG91bGRCZWdpbkVkaXRpbmcpOiBkaXR0by4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50
OjpzaG91bGRFbmRFZGl0aW5nKTogZGl0dG8uCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dDo6c2hvdWxkSW5zZXJ0VGV4dCk6IGRpdHRvLgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UpOiBkaXR0by4KLSAgICAgICAgKFdlYktpdDo6
RWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKTogZGl0dG8uCi0gICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0Tm9kZSk6IGRpdHRvLgotICAgICAgICAqIHdlYmtp
dC93ZWJraXRwcml2YXRlLmNwcDoKLSAgICAgICAgKFdlYktpdDo6a2l0KTogZGl0dG8uCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2dldF9kb21fZG9jdW1lbnQpOiBkaXR0by4KLQotMjAxMC0xMS0yNCAgWGFuIExvcGV6ICA8eGxv
cGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgot
Ci0gICAgICAgIEZpeCBjcmFzaGVzIGluIEdUSysgYm90cy4gVXNlIGtpdCgpIGluc3RlYWQgb2Yg
d3JhcEZvbywgb3RoZXJ3aXNlCi0gICAgICAgIHRoZSBET00gb2JqZWN0cyB3b24ndCBiZSBpbiB0
aGUgY2FjaGUgYW5kIHdlJ2xsIEFTU0VSVCB3aGVuCi0gICAgICAgIHVucmVmZmluZyB0aGVtLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGREZWxldGVSYW5nZSk6IHVzZSBraXQgdG8gZ2V0
IHRoZQotICAgICAgICBHT2JqZWN0IHdyYXBwZXIgZm9yIHRoZSBET00gb2JqZWN0LgotICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UpOiBkaXR0
by4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRCZWdpbkVkaXRpbmcpOiBk
aXR0by4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRFbmRFZGl0aW5nKTog
ZGl0dG8uCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0VGV4dCk6
IGRpdHRvLgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVj
dGVkUmFuZ2UpOiBkaXR0by4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRB
cHBseVN0eWxlKTogZGl0dG8uCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxk
SW5zZXJ0Tm9kZSk6IGRpdHRvLgotCi0yMDEwLTExLTI0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAg
ICAgICAgW0dUS10gVGhlIFdlYktpdFdlYlZpZXcgc2hvdWxkIGV4cG9zZSBhIHNldCBvZiBzaWdu
YWxzIGVuY2Fwc3VsYXRpbmcgdGhlIGJlaGF2aW9yIG9mIHRoZSBFZGl0b3JDbGllbnQKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MTQzCi0KLSAgICAg
ICAgQWRkIHNpZ25hbHMgdGhhdCBlbmNhcHN1bGF0ZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUg
TWFjIEVkaXRpbmdEZWxlZ2F0ZS4gVGhlc2Ugc2lnbmFscwotICAgICAgICBhcmUgcHJpdmF0ZSBm
b3Igbm93LCBidXQgRFJUIGNvbnN1bWVzIHRoZW0gdG8gcHJvZHVjZSBwcm9wZXIgb3V0cHV0IGZv
ciBlZGl0aW5nIHRlc3RzLgotICAgICAgICBBZnRlciBzb21lIHRpbWUsIHRoZXNlIG1heSBiZSBw
YXJ0IG9mIHRoZSBwdWJsaWMgQVBJLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGREZWxl
dGVSYW5nZSk6IEZpcmUgdGhlIGFwcHJvcHJpYXRlIGVkaXRpbmcgc2lnbmFsLgotICAgICAgICAo
V2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UpOiBEaXR0by4K
LSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRCZWdpbkVkaXRpbmcpOiBEaXR0
by4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRFbmRFZGl0aW5nKTogRGl0
dG8uCi0gICAgICAgIChXZWJLaXQ6OmtpdCk6IEFkZGVkIGhlbHBlciBmdW5jdGlvbi4KLSAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRJbnNlcnRUZXh0KTogRmlyZSB0aGUgYXBw
cm9wcmlhdGUgZWRpdGluZyBzaWduYWwuCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZSk6IERpdHRvLgotICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUpOiBEaXR0by4KLSAgICAgICAgKFdlYktpdDo6RWRp
dG9yQ2xpZW50OjpkaWRCZWdpbkVkaXRpbmcpOiBEaXR0by4KLSAgICAgICAgKFdlYktpdDo6RWRp
dG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2VkQ29udGVudHMpOiBEaXR0by4KLSAgICAgICAgKFdl
YktpdDo6RWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKTogRGl0dG8uCi0g
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6ZGlkRW5kRWRpdGluZyk6IERpdHRvLgotICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNob3VsZEluc2VydE5vZGUpOiBEaXR0by4KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfcmVhbF9zaG91bGRfYWxsb3dfZWRpdGluZ19hY3Rpb24pOiBBZGRlZCB0aGlzIGRlZmF1bHQg
c2lnbmFsCi0gICAgICAgIGNhbGxiYWNrIHdoaWNoIGV4cGxpY2l0bHkgYWxsb3dzIGNhbmNlbGxh
YmxlIGVkaXRpbmcgYWN0aW9ucy4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0
KTogQWRkIG5ldyBlZGl0aW5nIHNpZ25hbCBkZWNsYXJhdGlvbnMgdG8gdGhlIHZpZXcuCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDoKLSAgICAgICAgKiB3ZWJraXRtYXJzaGFsLmxp
c3Q6IEFkZGVkIHNvbWUgbmV3IG1hcnNoYWxpbmcgZGVmaW5pdGlvbnMuCi0KLTIwMTAtMTEtMjQg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MjQ5OS4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvNzI0OTkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUwMDIyCi0KLSAgICAgICAgVGhpcyBjaGFuZ2UgaXMgY2F1c2luZyBjcmFz
aGVzIG9uIHRoZSBib3RzLiAoUmVxdWVzdGVkIGJ5Ci0gICAgICAgIG1yb2JpbnNvbiBvbiAjd2Vi
a2l0KS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKG1haW4pOgotCi0y
MDEwLTExLTIzICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gRml4IElGcmFtZSBET00g
YmluZGluZ3MgQVBJCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00OTk4MAotCi0gICAgICAgICogdGVzdHMvdGVzdGRvbWRvY3VtZW50LmM6Ci0gICAgICAg
ICh0ZXN0X2RvbV9kb2N1bWVudF9nYXJiYWdlX2NvbGxlY3Rpb24pOiBjaGFuZ2UgdG8gdXNlIHRo
ZSBmaXhlZAotICAgICAgICBJRnJhbWUgQVBJcy4KLQotMjAxMC0xMS0yMyAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFy
dGluIFJvYmluc29uLgotCi0gICAgICAgIGZvY3VzIGlzc3VlIHdpdGggbGlua3MgdGhhdCBoYXZl
IHRvb2x0aXBzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00OTQ5OAotCi0gICAgICAgIFNldCB0aGUgYXJlYSBvZiB0aGUgd2lkZ2V0IHdoZXJlIHRoZSB0
b29sdGlwIHNob3VsZCBiZSBzaG93biB3aGVuCi0gICAgICAgIGEgbmV3IHRvb2x0aXAgaXMgc2V0
LiBTaW5jZSB0aGUgd2lkZ2V0IGlzIHRoZSBzYW1lICh0aGUgdmlldyksIGlmCi0gICAgICAgIHRo
ZSB0b29sdGlwIGFyZWEgaXMgbm90IHNldCBhbmQgYSBuZXcgdG9vbHRpcCBpcyB0cmlnZ2VyZWQg
d2hpbGUKLSAgICAgICAgdGhlIHByZXZpb3VzIG9uZSBpcyBzdGlsbCB2aXNpYmxlLCB0aGUgdGV4
dCBvZiB0aGUgdG9vbHRpcCBpcwotICAgICAgICB1cGRhdGVkIGJ1dCBpdHMgcG9zaXRpb24gZG9l
c24ndCBjaGFuZ2UuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19xdWVyeV90b29s
dGlwKToKLQotMjAxMC0xMS0yMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCi0KLSAgICAgICAg
W0dUS10gSW1wbGVtZW50IFJPTEVfQ09NQk9fQk9YCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTY3OAotCi0gICAgICAgIE5ldyB0ZXN0IHRvIGNoZWNr
IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY29tYm8gYm94ZXMuCi0KLSAgICAgICAgKiB0ZXN0
cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrQ29tYm9Cb3gpOiBOZXcgdGVzdCwg
Y2hlY2tpbmcgdGhhdCB0aGUgcm9sZXMgYW5kIHRoZQotICAgICAgICBpbXBsZW1lbnRlZCBpbnRl
cmZhY2VzIGZvciBhIGNvbWJvIGJveCBhbmQgaXRzIGRlc2NlbmRhbnRzIHdvcmsuCi0gICAgICAg
IChtYWluKTogQWRkZWQgdGhlIG5ldyB1bml0IHRlc3QuCi0KLTIwMTAtMTEtMjAgIFhhbiBMb3Bl
eiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KLQotICAgICAgICBSZW1vdmUgbGVmdG92ZXIgY29kZSBpbiB1bml0IHRlc3QuCi0KLSAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbTogcmVtb3ZlIHVubmVlZGVkIHV0aWxzIGZpbGUgaW4gZGVw
ZW5kZW5jeSBsaXN0LgotICAgICAgICAqIHRlc3RzL3Rlc3Rkb21kb2N1bWVudC5jOgotICAgICAg
ICAobWFpbik6IGRvIG5vdCBjaGFuZ2UgdG8gdGhlIGRpcmVjdG9yeSBvZiBhIG5vbiBleGlzdGlu
ZyByZXNvdXJjZQotICAgICAgICBsaXN0LgotCi0yMDEwLTExLTIwICBYYW4gTG9wZXogIDx4bG9w
ZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0K
LSAgICAgICAgW0dUS10gTWVtb3J5IG1hbmFnYW1lbnQgZm9yIERPTSBHT2JqZWN0IHdyYXBwZXJz
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDMwMgot
Ci0gICAgICAgIEluaXRpYWwgYXR0ZW1wdCB0byBoYXZlIGEga2luZCBvZiBwb29yIG1hbidzIGdh
cmJhZ2UgY29sbGVjdGlvbgotICAgICAgICBmb3IgR09iamVjdCBET00gb2JqZWN0cy4gV2UgdGll
IHRoZSBvYmplY3QncyBsaWZlY3ljbGUgdG8gdGhlaXIKLSAgICAgICAgcGFyZW50IEZyYW1lIGFu
ZC9vciBpdHMgZG9jdW1lbnQ7IHRoYXQgaXMsIGFsbCBvYmplY3RzIHdpbGwgYmUKLSAgICAgICAg
Y29sbGVjdGVkIHdoZW4gdGhlaXIgcGFyZW50IGZyYW1lIGlzIGRlc3Ryb3llZCBvciB3aGVuIHRo
YXQgZnJhbWUKLSAgICAgICAgdHJhbnNpdGlvbnMgdG8gYSBuZXcgZG9jdW1lbnQuIE1hbnVhbCBt
YW5hZ2VtZW50IChjYWxsaW5nCi0gICAgICAgIGdfb2JqZWN0X3VucmVmIG9uIHRoZW0pIGlzIGFs
c28gYWxsb3dlZCwgYW5kIGlzIHJlcXVpcmVkIGZvcgotICAgICAgICBvYmplY3RzIHRoYXQgYXJl
IG5vdCBpbiB0aGUgRE9NIHRyZWUgKGVnIE5vZGVMaXN0cykuCi0KLSAgICAgICAgKiBHTlVtYWtl
ZmlsZS5hbTogYWRkIHRlc3R1dGlscyBmaWxlIHRvIHRlc3Rkb21kb2N1bWVudC5jCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2V0TWFpbkZyYW1lRG9jdW1lbnRSZWFkeSk6IGNvbGxl
Y3QKLSAgICAgICAgRE9NIG9iamVjdHMgb24gZG9jdW1lbnQgdHJhbnNpdGlvbi4KLSAgICAgICAg
KiB0ZXN0cy90ZXN0ZG9tZG9jdW1lbnQuYzoKLSAgICAgICAgKGRvbV9kb2N1bWVudF9maXh0dXJl
X3RlYXJkb3duKTogb25seSBkZXN0cm95IHRoZSB2aWV3IGlmIGl0J3Mgbm90Ci0gICAgICAgIGFs
cmVhZHkgZGVzdHJveWVkLCBzaW5jZSB0aGUgbmV3IHRlc3QgZGV0cm95cyBpdCBvbiBpdHMgb3du
LgotICAgICAgICAodGVzdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1lKTog
bWFudWFsbHkgdW5yZWYgbm9kZSBsaXN0LgotICAgICAgICAodGVzdF9kb21fZG9jdW1lbnRfZ2V0
X2VsZW1lbnRzX2J5X2NsYXNzX25hbWUpOiBkaXR0by4KLSAgICAgICAgKHRlc3RfZG9tX2RvY3Vt
ZW50X2dldF9saW5rcyk6IGRpdHRvLgotICAgICAgICAodGVzdF9kb21fZG9jdW1lbnRfZ2FyYmFn
ZV9jb2xsZWN0aW9uKTogdGVzdCBhbGwgcG9zc2libGUKLSAgICAgICAgc2NlbmFyaW9zIGZvciBE
T00gb2JqZWN0ICJnYXJiYWdlIGNvbGxlY3Rpb24iLgotICAgICAgICAobWFpbik6IGFkZCBuZXcg
dGVzdC4KLSAgICAgICAgKiB0ZXN0cy90ZXN0ZG9tbm9kZS5jOgotICAgICAgICAodGVzdF9kb21f
bm9kZV9oaWVyYXJjaHlfbmF2aWdhdGlvbik6IG1hbnVhbGx5IHVucmVmIG5vZGUgbGlzdC4KLSAg
ICAgICAgKHRlc3RfZG9tX25vZGVfaW5zZXJ0aW9uKTogZGl0dG8uCi0gICAgICAgICogd2Via2l0
L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwOgotICAgICAgICAod2Via2l0X2hpdF90ZXN0X3Jlc3Vs
dF9kaXNwb3NlKTogdW5yZWYgdGhlIGlubmVyIG5vZGUgb24gZGlzcG9zZQotICAgICAgICBub3cg
dGhhdCB0aGUgbWVtb3J5IG1hbmFnZW1lbnQgbW9kZWwgaXMgY2xhcmlmaWVkLgotICAgICAgICAo
d2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9jbGFzc19pbml0KTogaG9vayBkaXNwb3NlLgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1l
X2NvcmVfZnJhbWVfZ29uZSk6IGNsZWFyIERPTSBvYmplY3RzIGF0dGFjaGVkIHRvIHRoaXMgZnJh
bWUuCi0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2ZpbmFsaXplKTogZGl0dG8uCi0KLTIwMTAt
MTEtMTggIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBGaXggaW50cm9zcGVjdGlvbiBidWlsZCwg
d2Ugd2VyZSBtaXNzaW5nIGEgLUkgZmxhZy4KLQotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgot
Ci0yMDEwLTExLTE4ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0d0a10g
IGF0a190ZXh0X2dldF9zZWxlY3Rpb24gcmV0dXJucyB0aGUgd3Jvbmcgb2Zmc2V0cyBhZnRlciBh
IGxpbmsKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5
NTE0Ci0KLSAgICAgICAgVXBkYXRlZCB0ZXN0IGNhc2UgdG8gYWxzbyBjaGVjaCB0aGlzIHNwZWNp
ZmljIHN1YmNhc2UuCi0KLSAgICAgICAgV2UgbmVlZCB0byBleHBsaWNpdGx5IGNoZWNrIHRoZSBj
YXNlIG9mIGhhdmluZyBhIHNlbGVjdGlvbiBpbiBhCi0gICAgICAgIHBhcmFncmFwaCBhZnRlciBh
biBlbWJlZGRlZCBvYmplY3QgKGkuZS4gYSBsaW5rKSB0byBtYWtlIHN1cmUgdGhlCi0gICAgICAg
IHJpZ2h0IGNhbGN1bGF0aW9ucyBhcmUgYmVpbmcgZG9uZSB3aGVuIHRoZSBwYXJhZ3JhcGggaXMg
Y29tcG9zZWQKLSAgICAgICAgb2YgbW9yZSB0aGFuIGp1c3Qgb25lIHRleHQgb2JqZWN0LCBhbmQg
dGhlIGN1cnJlbnQgc2VsZWN0aW9uIGlzCi0gICAgICAgIG1hZGUgb25seSBpbiBvbmUgb2YgdGhl
bS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKHRlc3RXZWJraXRBdGtU
ZXh0U2VsZWN0aW9ucyk6IE1ha2Ugc3VyZSB0aGF0IGEgc2VsZWN0aW9uIGFmdGVyIGEKLSAgICAg
ICAgbGluayBpbiBhIHBhcmFncmFwaCBpcyB3b3JraW5nIG9rIHdoZW4gYXNraW5nIGZvciB0aGUg
dGV4dAotICAgICAgICBzZWxlY3Rpb24gZnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZiB0aGUgcGFy
YWdyYXBoLgotCi0yMDEwLTExLTE3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAg
ICAgICAgW0dUS10gQ2hhbmdpbmcgYW55IEdOVW1ha2VmaWxlLmFtIGluIHRoZSBzb3VyY2UgdHJl
ZSBmb3JjZXMgYSByZWJ1bGQgb2YgdGhlIERPTSBiaW5kaW5ncyBhbmQgV2ViS2l0IEFQaQotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk0MDAKLQotICAg
ICAgICBBZGQgR05VbWFrZWZpbGUuYW0gYW5kIGluY2x1ZGUgYWxsIFdlYktpdCBBUEkgYnVpbGQg
cnVsZXMuIE1ha2Ugd2Via2l0ZW51bS4qCi0gICAgICAgIGRlcGVuZCBvbiB0aGlzIG5ldyBmaWxl
LCBpbnN0ZWFkIG9mIHRoZSBnZW5lcmF0ZWQgR05VbWFrZWZpbGUuYW0uCi0KLSAgICAgICAgKiBH
TlVtYWtlZmlsZS5hbTogQ29waWVkIGZyb20gR05VbWFrZWZpbGUuYW0uCi0KLTIwMTAtMTEtMTcg
IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEZpeCBh
IHR5cG8gdGhhdCBsZWFkcyB0byBlbWl0dGluZyB0aGUgd3Jvbmcgc2lnbmFsIGlmIGl0IGlzIGRv
bmUKLSAgICAgICAgYnkgdXNpbmcgdGhlIHNpZ25hbHMgYXJyYXkuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6Ci0KLTIwMTAtMTEtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBb
R1RLXSBTb21lIGtleS1wcmVzcyBldmVudHMgY2FuJ3QgYmUgaGFuZGxlZCBieSBXZWJWaWV3Ci0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODk4NgotCi0g
ICAgICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQgInBvcHVwLW1lbnUiIGFuZCAic2hvdy1oZWxwIiBz
aWduYWxzIGFyZQotICAgICAgICBoYW5kbGVkIGJ5IEd0a1RleHRWaWV3LCBhcyB0aGV5IGFyZSBh
ZGRlZCB0byB0aGUga2V5IGJpbmRpbmdzIHNldAotICAgICAgICBvZiBldmVyeSB3aWRnZXQgaW4g
Z3RrX3dpZGdldF9jbGFzc19pbml0KCkuIEZvciBhbGwgb3RoZXIgYmluZGluZ3MKLSAgICAgICAg
aGFuZGxlZCBieSBHdGtUZXh0VmlldyB3ZSBhcmUgc3RvcHBpbmcgdGhlIHNpZ25hbCBlbWlzc2lv
biBpbgotICAgICAgICB0aGVpciBjYWxsYmFja3MsIHNvIHdlIG9ubHkgbmVlZCB0byBkbyB0aGUg
c2FtZSBmb3IgInBvcHVwLW1lbnUiCi0gICAgICAgIGFuZCAic2hvdy1oZWxwIiBzaWduYWxzLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6dG9nZ2xlT3ZlcndyaXRlQ2FsbGJhY2spOgotICAgICAgICAoV2ViS2l0Ojpwb3B1
cE1lbnVDYWxsYmFjayk6Ci0gICAgICAgIChXZWJLaXQ6OnNob3dIZWxwQ2FsbGJhY2spOgotICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6Ci0KLTIwMTAtMTEtMTYg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBTaG93IGRlZmF1bHQg
Y29udGV4dCBtZW51IGZvciB0aGUgY3VycmVudGx5IGZvY3VzZWQgZWxlbWVudCB3aGVuIGFjdGl2
YXRlZCB3aXRoIGtleWJvYXJkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00OTM3NgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X3BvcHVwX21lbnVfaGFuZGxlcik6Ci0KLTIwMTAtMTEt
MTEgIEpvb25lIEh1ciAgPGpvb25lQGtsZHAub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFu
dG9uaW8gR29tZXMuCi0KLSAgICAgICAgW0dUS11bRFJUXSBJbXBsZW1lbnQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ2NTk4Ci0KLSAgICAgICAgU3VwcG9ydCBub2Rlc0Zyb21SZWN0IGlu
IERSVAotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcDoKLSAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bm9kZXNGcm9tUmVjdCk6
IEFkZGVkLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oOgotCi0yMDEwLTExLTExICBDaGFuZyBTaHUgIDxjaGFuZy5zaHVAbm9raWEuY29tPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCi0KLSAgICAgICAgW0dUS10gUmVwbGFj
ZSAiTW92ZUZvcndhcmQiLyJNb3ZlQmFja3dhcmQiIHdpdGggIk1vdmVSaWdodCIvIk1vdmVMZWZ0
IgotICAgICAgICB0byBtYWtlIHNwYXRpYWwgbmF2aWdhdGlvbiB3b3JrIG9uIGlucHV0L3RleHRh
cmVhLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkw
NTYKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6Om1vdmVDdXJzb3JDYWxsYmFjayk6Ci0KLTIwMTAtMTEtMDggIE5pY29sYXMg
RHVmcmVzbmUgIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gTGluayB3aXRoIHRh
cmdldCBuYW1lIHNldCBkb2VzIG5vdCB3b3JrCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00ODg2NQotCi0gICAgICAgIFdoZW4gYSBuZXcgcGFnZSBpcyBj
cmVhdGVkIHdpdGggYSBuYW1lICh0YXJnZXQ9bXlGcmFtZSksIHRoZSBuZXcKLSAgICAgICAgbWFp
bkZyYW1lIGNvdWxkIG5vdCBiZSBmb3VuZCBiZWNhdXNlIHRoZXkgd2hlcmUgbm90IHN0b3JlZCBp
biB0aGUKLSAgICAgICAgc2FtZSBQYWdlR3JvdXAuIEFzIFBhZ2VHcm91cCBhcmUgbm90IGV4cG9z
ZWQgZXh0ZXJuYWxseSBzbyB0aGUKLSAgICAgICAgc2ltcGxpZXN0IHNvbHV0aW9uIGlzIHRvIHVz
ZSBhIGdsb2JhbCBwYWdlIGdyb3VwIG5hbWUuIFRoaXMgYWxzbyBmaXhlcwotICAgICAgICBpc3N1
ZSB3aXRoIHZpc2l0ZWQgbGluayBjb2xvcmF0aW9uIGFjcm9zcyBwYWdlcy4gQWZ0ZXIgdGhpcyBj
aGFuZ2UgdGhlCi0gICAgICAgIHByaXZhdGUgZnVuY3Rpb24gd2Via2l0X3dlYl92aWV3X3NldF9n
cm91cF9uYW1lKCkgd2FzIG5vIGxvbmdlciB1c2VkCi0gICAgICAgIHNvIGl0IHdhcyByZW1vdmVk
IGNvbXBsZXRseS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKToKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6Ci0KLTIwMTAtMTEtMDggIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ4Njg1Ci0gICAgICAgIE5vdGlmeSBVSSBwcm9jZXNzIGFib3V0IGZvY3VzZWQgZnJh
bWUKLQotICAgICAgICBBZGRlZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IENo
cm9tZUNsaWVudCBtZXRob2QuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNo
YW5nZWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0y
MDEwLTExLTA4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgotCi0gICAgICAgIFtHVEtdIEVycm9yIHBh
Z2UgdGVtcGxhdGVzIGFyZSBub3QgZmlsbGVkIHByb3Blcmx5Ci0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTE0OAotCi0gICAgICAgIFJlcGxhY2UgYSBj
YWxsIHRvIG1ha2VTdHJpbmcgd2l0aCBTdHJpbmc6OmZvcm1hdC4gVGhpcyB3YXMgbWlzdGFrZW5s
eQotICAgICAgICBjaGFuZ2VkIHRvIG1ha2VTdHJpbmcgaW4gYW4gZWFybGllciBjb21taXQuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKLQot
MjAxMC0xMS0wOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgICogTkVXUzogdXBkYXRlIGZvciBy
ZWxlYXNlLgotCi0yMDEwLTExLTA4ICBDc2FiYSBPc3p0cm9nb25hYyAgPG9zc3lAd2Via2l0Lm9y
Zz4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzE0NjYuCi0gICAgICAgIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzcxNDY2Ci0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODg2NQotCi0gICAgICAgIEl0IGJyb2tlIGxh
eW91dCB0ZXN0cyBvbiBHVEsgYm90cy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y2xvc2VXaW5k
b3dTb29uKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfZ3JvdXBfbmFtZSk6Ci0KLTIwMTAtMTEtMDcg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBF
cmljIFNlaWRlbC4KLQotICAgICAgICBSZW5hbWUgQ2FjaGUgdG8gTWVtb3J5Q2FjaGUKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MTU5Ci0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMTAtMTEtMDUgIE5pY29sYXMgRHVm
cmVzbmUgIDxuaWNvbGFzLmR1ZnJlc25lQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gTGluayB3aXRoIHRhcmdl
dCBuYW1lIHNldCBkb2VzIG5vdCB3b3JrIGNvcnJlY3RseQotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg4NjUKLQotICAgICAgICBXaGVuIGEgbmV3IHBh
Z2UgaXMgY3JlYXRlZCB3aXRoIGEgbmFtZSAodGFyZ2V0PW15RnJhbWUpLCB0aGUgbmV3Ci0gICAg
ICAgIG1haW5GcmFtZSBjb3VsZCBub3QgYmUgZm91bmQgYmVjYXVzZSB0aGV5IHdoZXJlIG5vdCBz
dG9yZWQgaW4gdGhlCi0gICAgICAgIHNhbWUgUGFnZUdyb3VwLiBBcyBQYWdlR3JvdXAgYXJlIG5v
dCBleHBvc2VkIGV4dGVybmFsbHkgc28gdGhlCi0gICAgICAgIHNpbXBsaWVzdCBzb2x1dGlvbiBp
cyB0byB1c2UgYSBnbG9iYWwgcGFnZSBncm91cCBuYW1lLiBUaGlzIGFsc28gZml4ZXMKLSAgICAg
ICAgaXNzdWUgd2l0aCB2aXNpdGVkIGxpbmsgY29sb3JhdGlvbiBhY3Jvc3MgcGFnZXMuIEFmdGVy
IHRoaXMgY2hhbmdlIHRoZQotICAgICAgICBwcml2YXRlIGZ1bmN0aW9uIHdlYmtpdF93ZWJfdmll
d19zZXRfZ3JvdXBfbmFtZSgpIHdhcyBubyBsb25nZXIgdXNlZAotICAgICAgICBzbyBpdCB3YXMg
cmVtb3ZlZCBjb21wbGV0bHkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNsb3NlV2luZG93U29v
bik6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6Ci0KLTIw
MTAtMTEtMDUgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KLQotICAgICAgICBNb3ZlIHJlc3VtZUFuaW1hdGlvbnMv
c3VzcGVuZEFuaW1hdGlvbnMgZnJvbSBGcmFtZSB0byBBbmltYXRpb25Db250cm9sbGVyLgotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkwNzMKLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2Zy
YW1lX3N1c3BlbmRfYW5pbWF0aW9ucyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX3Jlc3Vt
ZV9hbmltYXRpb25zKToKLQotMjAxMC0xMS0wNSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBs
ZS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4KLQotICAgICAgICBTbWFsbCBmaXggdG8gR1RL
IGJ1aWxkCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl9mcmFtZV9zdXNwZW5kX2FuaW1hdGlvbnMpOgotICAgICAgICAod2Via2l0X3dl
Yl9mcmFtZV9yZXN1bWVfYW5pbWF0aW9ucyk6Ci0KLTIwMTAtMTEtMDUgIENocmlzIE1hcnJpbiAg
PGNtYXJyaW5AYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
LQotICAgICAgICBNYWtlIHN1c3BlbmRBbmltYXRpb25zL3Jlc3VtZUFuaW1hdGlvbnMgYW5kIHNl
dENTU0FuaW1hdGlvbnMgdHJhdmVyc2UgdGhyb3VnaCBzdWJmcmFtZXMgYW5kIHJlbWVtYmVyIHN0
YXRlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Njk0
NQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtp
dF93ZWJfZnJhbWVfc3VzcGVuZF9hbmltYXRpb25zKToKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJh
bWVfcmVzdW1lX2FuaW1hdGlvbnMpOgotCi0yMDEwLTExLTAzICBEYW5pZWwgQmF0ZXMgIDxkYmF0
ZXNAcmltLmNvbT4KLQotICAgICAgICBGb3IgdW5uYW1lZCBmcmFtZXMsIHdpbmRvdy5uYW1lIHJl
dHVybnMgYSBnZW5lcmF0ZWQgbmFtZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc1MQotCi0gICAgICAgIFBhcnQgMSBvZiAyLgotCi0gICAgICAgIFN1
YnN0aXR1dGUgRnJhbWVUcmVlOjp1bmlxdWVOYW1lKCkgZm9yIEZyYW1lVHJlZTo6bmFtZSgpIGlu
IHRoZSBHVEsgcG9ydC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lKToKLQotMjAxMC0xMS0wMiAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBCYXJ0aC4KLQotICAgICAgICBbQ2Fpcm9dIFJlbW92ZSBQbGF0Zm9ybVJlZlB0ckNhaXJv
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODE5Mgot
Ci0gICAgICAgIFJlcGxhY2UgaW5zdGFuY2VzIG9mIFBsYXRmb3JtUmVmUHRyIHNtYXJ0IHBvaW50
ZXJzIHRoYXQgd3JhcCBDYWlybwotICAgICAgICB0eXBlcyB3aXRoIFJlZlB0cnMuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDogVXNlIFJlZlB0ciBpbnN0ZWFk
IG9mIFBsYXRmb3JtUmVmUHRyLgotICAgICAgICAoV2ViS2l0OjpkcmFnSWNvbldpbmRvd0RyYXdF
dmVudENhbGxiYWNrKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmg6
IERpdHRvLgotCi0yMDEwLTExLTAyICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgU2V0IGZyYW1l
IG5hbWUgYmVmb3JlIGFwcGVuZGluZyBpdCB0byB0aGUgZnJhbWUgdHJlZSBpbiB0aGUgQXBwbGUg
V2luZG93cywKLSAgICAgICAgR1RLLCBhbmQgRUZMIHBvcnRzCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODgwNgotCi0gICAgICAgIE1ha2UgdGhlIGZy
YW1lIGNyZWF0aW9uIHByb2Nlc3MgaW4gdGhlIEdUSy1wb3J0IGNvbnNpc3RlbnQgd2l0aCB0aGUK
LSAgICAgICAgTWFjLCBRdCwgYW5kIEhhaWt1IHBvcnRzLiBJbiBwYXJ0aWN1bGFyLCBzZXQgdGhl
IG5hbWUgb2YgdGhlIG5ldwotICAgICAgICBmcmFtZSBiZWZvcmUgaXQncyBhcHBlbmRlZCB0byB0
aGUgZnJhbWUgdHJlZS4KLQotICAgICAgICBBdCB0aGlzIHRpbWUgd2UgY2Fubm90IHRlc3QgdGhp
cyBjaGFuZ2Ugc2luY2UgaXQgaXMgYmVpbmcgbWFza2VkIGJ5Ci0gICAgICAgIEhUTUxGcmFtZUVs
ZW1lbnRCYXNlOjpzZXROYW1lKCkgPGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvYnJvd3Nlci90cnVu
ay9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwP3Jldj03MDk3NiNMMTYwPi4K
LSAgICAgICAgV2UnbGwgYmUgYWJsZSB0byB0ZXN0IHRoaXMgb25jZSB3ZSBmaXggYnVnICM2NzUx
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgotCi0yMDEw
LTExLTAxICBKZW5uaWZlciBCcmFpdGh3YWl0ZSAgPGplbm5iQGdvb2dsZS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEdUSzogVXBkYXRlIHJl
c291cmNlIHRyYWNraW5nIHdoZW4gbW92aW5nIGEgZnJhbWUgYmV0d2VlbiBkb2N1bWVudHMKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MzYyCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2ZlckxvYWRpbmdSZXNvdXJjZUZyb21Q
YWdlKToKLSAgICAgICAgQXNzaWduIHJlc291cmNlIGlkIHRvIGN1cnJlbnQgd2ViIHZpZXcgYW5k
IHJlbW92ZSBmcm9tIGZvcm1lciB3ZWIgdmlldy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJp
dmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19yZW1vdmVfcmVzb3VyY2UpOgotICAgICAgICBBZGRlZC4KLQotMjAxMC0x
MS0wMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIENsZWFudXAg
bmVlZGVkIGluIHRlc3RhdGsuYyBmaWxlCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00ODc1OQotCi0gICAgICAgIENsZWFudXAgZG9uZSBpbiB0ZXN0YXRr
LmMsIG1haW5seSBhZGRyZXNzaW5nIHRoZSBmb2xsb3dpbmcgaXNzdWVzOgotCi0gICAgICAgIC0g
UmVtb3ZlZCBhbnkgdHJhY2Ugb2YgZXh0cmEgbWFpbiBsb29wcyBpbiB0ZXN0cywgc28gbm93IHdl
IGp1c3QKLSAgICAgICAgc3BpbiB0aGUgb3JpZ2luYWwgbWFpbiBsb29wIGluIGFsbCBvZiB0aGVt
IHRvIGdldCB0aGUgYTExeQotICAgICAgICBvYmplY3RzLgotCi0gICAgICAgIC0gQXMgd2Ugbm8g
bG9uZ2VyIHVzZSB0aGUgZXh0cmEgbWFpbiBsb29wcywgcmVtb3ZlZCB0aGUgYmFpbF9vdXQKLSAg
ICAgICAgZnVuY3Rpb24sIHVzZWQgYWxvbmcgd2l0aCBnX2lkbGVfYWRkKCkgdG8gc3RvcCB0aG9z
ZSBleHRyYSBsb29wcy4KLQotICAgICAgICAtIEFzIHdlIG5vdyBzcGluIHRoZSBsb29wIGluIGV2
ZXJ5IHRlc3QsIGNyZWF0ZWQgYSBuZXcgZnVuY3Rpb24KLSAgICAgICAgd2FpdEZvckFjY2Vzc2li
aWxpdHlPYmplY3RzKCkgdG8gd3JpdGUgdGhlIGxvb3AganVzdCBvbmNlLgotCi0gICAgICAgIC0g
Rml4ZWQgbmFtZSBpbiBpbmNvcnJlY3RseSBuYW1lZCB0ZXN0IHRlc3RXZWtpdEF0a1RleHRTZWxl
Y3Rpb25zLgotCi0gICAgICAgIC0gQWxwaGFiZXRpY2FsbHkgc29ydGVkIHRoZSBsaXN0IG9mIGlu
Y2x1ZGVzLgotCi0gICAgICAgIC0gUmVuYW1lZCBhbGwgaWRlbnRpZmllcnMgdG8gY2FtZWwgQ2Fz
ZSBub3RhdGlvbi4KLQotICAgICAgICAtIERlY2xhcmUgdmFyaWFibGVzIHdoZW4gbmVlZGVkIG9u
bHkgKGluc3RlYWQgb2YgZGVjbGFyaW5nIGFsbCBvZgotICAgICAgICB0aGVtIGF0IHRoZSBiZWdp
bm5pbmcgb2YgdGhlIGZ1bmN0aW9uKS4KLQotICAgICAgICAtIERvbid0IGRlY2xhcmUgdHdvIHZh
cmlhYmxlcyBvZiB0aGUgc2FtZSB0eXBlIGluIHRoZSBzYW1lIGxpbmUuCi0KLSAgICAgICAgLSBO
byBtb3JlIHNob3J0IG5hbWVzIGxpa2UgJ29iaicsICd0ZXh0T2JqJyBvciAnYWxsb2MnLiBVc2Ug
bmFtZXMKLSAgICAgICAgbGlrZSAnb2JqZWN0JywgJ3RleHRPYmplY3QnIGFuZCAnYWxsb2NhdGlv
bicgaW5zdGVhZC4KLQotICAgICAgICAtIEZpeGVkIGluZGVudGF0aW9uLgotCi0gICAgICAgIC0g
TWFrZSBzdXJlIGFsbCBjb21tZW50cyBmaW5pc2ggd2l0aCAnLicKLQotICAgICAgICAtIFJlcGxh
Y2UgTlVMTCdzIHdpdGggMCdzLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAg
ICAod2FpdEZvckFjY2Vzc2libGVPYmplY3RzKTogTmV3LCBtYW51YWxseSBzcGlucyB0aGUgbWFp
biBjb250ZXh0Ci0gICAgICAgIHRvIG1ha2Ugc3VyZSBhY2Nlc3NpYmxlIG9iamVjdHMgYXJlIGNy
ZWF0ZWQgYmVmb3JlIGNvbnRpbnVpbmcuCi0gICAgICAgICh0ZXN0R2V0VGV4dEZ1bmN0aW9uKTog
Rml4ZWQgdGhpcyBmdW5jdGlvbiB0byBiZSBjb21wbGlhbnQgd2l0aAotICAgICAgICB0aGUgV2Vi
S2l0J3MgY29kaW5nIHN0eWxlLgotICAgICAgICAocnVuR2V0VGV4dFRlc3RzKTogRGl0dG8uCi0g
ICAgICAgICh0ZXN0V2Via2l0QXRrR2V0VGV4dEF0T2Zmc2V0Rm9ybXMpOiBEaXR0by4KLSAgICAg
ICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0QXRPZmZzZXQpOiBEaXR0by4KLSAgICAgICAgKHRlc3RX
ZWJraXRBdGtHZXRUZXh0QXRPZmZzZXROZXdsaW5lcyk6IERpdHRvLgotICAgICAgICAodGVzdFdl
YmtpdEF0a0dldFRleHRBdE9mZnNldFRleHRhcmVhKTogRGl0dG8uCi0gICAgICAgICh0ZXN0V2Vi
a2l0QXRrR2V0VGV4dEF0T2Zmc2V0VGV4dElucHV0KTogRGl0dG8uCi0gICAgICAgICh0ZXN0V2Vi
a2l0QXRrR2V0VGV4dEluUGFyYWdyYXBoQW5kQm9keVNpbXBsZSk6IERpdHRvLgotICAgICAgICAo
dGVzdFdlYmtpdEF0a0dldFRleHRJblBhcmFncmFwaEFuZEJvZHlNb2RlcmF0ZSk6IERpdHRvLgot
ICAgICAgICAodGVzdFdlYmtpdEF0a0dldFRleHRJblRhYmxlKTogRGl0dG8uCi0gICAgICAgICh0
ZXN0V2Via2l0QXRrR2V0SGVhZGVyc0luVGFibGUpOiBEaXR0by4KLSAgICAgICAgKGNvbXBBdGtB
dHRyaWJ1dGUpOiBEaXR0by4KLSAgICAgICAgKGF0a0F0dHJpYnV0ZVNldEF0dHJpYnV0ZU5hbWVI
YXNWYWx1ZSk6IERpdHRvLgotICAgICAgICAodGVzdFdlYmtpdEF0a1RleHRBdHRyaWJ1dGVzKTog
RGl0dG8uCi0gICAgICAgICh0ZXN0V2Via2l0QXRrVGV4dFNlbGVjdGlvbnMpOiBEaXR0by4KLSAg
ICAgICAgKHRlc3RXZWJraXRBdGtHZXRFeHRlbnRzKTogRGl0dG8uCi0gICAgICAgICh0ZXN0V2Vi
a2l0QXRrTGF5b3V0QW5kRGF0YVRhYmxlcyk6IERpdHRvLgotICAgICAgICAodGVzdFdlYmtpdEF0
a0xpbmtzV2l0aElubGluZUltYWdlcyk6IERpdHRvLgotICAgICAgICAodGVzdFdlYmtpdEF0a0h5
cGVydGV4dEFuZEh5cGVybGlua3MpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtMaXN0
c09mSXRlbXMpOiBEaXR0by4KLSAgICAgICAgKHRlc3RXZWJraXRBdGtUZXh0Q2hhbmdlZE5vdGlm
aWNhdGlvbnMpOiBEaXR0by4KLSAgICAgICAgKG1haW4pOiBEaXR0by4KLQotMjAxMC0xMS0wMSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kZXJzIENhcmxzc29uLgotCi0gICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjYwNTQ3PiBhbmQg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Njk5Ci0gICAgICAgIENv
bnRleHQgbWVudSBzdXBwb3J0IGZvciBXZWJLaXQgMi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5oOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNo
b3dDb250ZXh0TWVudSk6Ci0KLTIwMTAtMTEtMDEgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNv
bkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAg
ICBbR1RLXSBQYXN0aW5nIG1hcmt1cCBpbnRvIFRodW5kZXJiaXJkIGNvbXBvc2Ugd2luZG93IHBy
b2R1Y2VzIG5vIHRleHQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQzNzM3Ci0KLSAgICAgICAgQWRkZWQgYSB0ZXN0IHZlcmlmeWluZyB0aGF0IHRoZSBt
ZXRhIHRhZyBwcmVmaXggb24gbWFya3VwIGRhdGEgZXhpc3RzLgotCi0gICAgICAgICogdGVzdHMv
dGVzdGNvcHlhbmRwYXN0ZS5jOgotICAgICAgICAobG9hZF9zdGF0dXNfY2IpOiBBZGQgYSBjaGVj
ayBmb3IgdGhlIG1ldGEgdGFnIHByZWZpeC4KLQotMjAxMC0xMS0wMSAgTWFyaW8gU2FuY2hleiBQ
cmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGlu
IFJvYmluc29uLgotCi0gICAgICAgIFtHdGtdIEF0a0h5cGVybGluayBuZWVkcyB0byBiZSBpbXBs
ZW1lbnRlZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzM3ODUKLQotICAgICAgICBOZXcgdGVzdCB0byBlbnN1cmUgdGhlIEF0a0h5cGVydGV4dC9BdGtI
eXBlcmxpbmsgc3R1ZmYgd29ya3MuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAg
ICAgICh0ZXN0V2Via2l0QXRrSHlwZXJ0ZXh0QW5kSHlwZXJsaW5rcyk6IE5ldyB0ZXN0LCBjaGVj
a2luZyBib3RoIHRoZQotICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQXRrSHlwZXJ0ZXh0
IGludGVyZmFjZSwgdGhlIHN1YmNsYXNzIG9mIHRoZQotICAgICAgICBBdGtIeXBlcmxpbmsgYWJz
dHJhY3QgY2xhc3MsIGFuZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlCi0gICAgICAgIEF0a0Fj
dGlvbiBpbnRlcmZhY2UgaW4gdGhhdCBzdWJjbGFzcy4KLSAgICAgICAgKG1haW4pOiBBZGRlZCB0
aGUgbmV3IHVuaXQgdGVzdC4KLQotMjAxMC0xMC0zMCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAg
IFtHVEtdIFVzZSBuZXcgd2lkdGggZm9yIGhlaWdodCBBUElzIGluIEdUSysgMy54Ci0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODcwOQotCi0gICAgICAg
IFVzZSB0aGUgbmV3IHdpZHRoIGZvciBoZWlnaHQgQVBJcyBpbiBHVEsrIDMueCwgc2luY2Ugc2l6
ZS1yZXF1ZXN0Ci0gICAgICAgIGlzIGRlcHJlY2F0ZWQuCi0KLSAgICAgICAgRm9yIG5vdyB3ZSBq
dXN0IHJldHVybiB0aGUgc2FtZSB2YWx1ZSBmb3IgcHJlZmVycmVkIGFuZCBtaW5pbXVtCi0gICAg
ICAgIHdpZHRoL2hlaWdodCwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSAyLnggYmVoYXZpb3IuIFBy
b2JhYmx5IHdlCi0gICAgICAgIGNvdWxkIGRvIHNvbWV0aGluZyBzbWFydGVyIGZvciB0aGUgbWlu
aW11bSB2YWx1ZXMuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ByZWZlcnJlZF93aWR0aCk6IHJldHVybiBvdXIgcHJl
ZmVycmVkIHdpZHRoLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wcmVmZXJyZWRfaGVp
Z2h0KTogcmV0dXJuIG91ciBwcmVmZXJyZWQgaGVpZ2h0LgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2NsYXNzX2luaXQpOiBob29rIHRoZSBuZXcgZGVmYXVsdCBoYW5kbGVycy4KLQotMjAxMC0x
MC0yOSAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+Ci0KLSAgICAgICAgTm8gcmV2aWV3
LCByb2xsaW5nIG91dCA3MDk3MS4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvNzA5NzEKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY3NTEKLQotICAgICAgICBSb2xsaW5nIG91dCBjaGFuZ2VzZXQgNzA5NzEgPGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzcwOTcxPiBzaW5jZQotICAgICAgICBpdCBjYXVzZWQg
bGF5b3V0IHRlc3QgZmFpbHVyZXMgb24gYWxsIGJvdHMuIEluIHBhcnRpY3VsYXIsIHRoZQotICAg
ICAgICBjaGlsZCBjb3VudCBpbiBhIGdlbmVyYXRlZCBmcmFtZSBuYW1lIGRpZmZlcnMgYWZ0ZXIg
dGhpcyBwYXRjaC4gV2UgbmVlZAotICAgICAgICB0byBsb29rIGludG8gdGhpcyBmdXJ0aGVyLgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X25hbWUpOgotCi0yMDEwLTEwLTI4ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVz
QHJpbS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KLQotICAgICAgICBO
ZWVkcyBhICJMaW51eEVkaXRpbmdCZWhhdmlvciIsIHBlcmhhcHMgd2l0aCBhIGJldHRlciBuYW1l
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjYyNwot
Ci0gICAgICAgIEFkZGVkIHRoZSBjb3JyZXNwb25kaW5nIEdUSysgc2V0dGluZyB0byBXZWJDb3Jl
J3MgRWRpdGluZ1VuaXhCZWhhdmlvcjogV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfVU5JWC4KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5oOgotCi0yMDEwLTEwLTI5ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgotCi0gICAgICAgIEZvciB1bm5hbWVkIGZy
YW1lcywgd2luZG93Lm5hbWUgcmV0dXJucyBhIGdlbmVyYXRlZCBuYW1lCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzUxCi0KLSAgICAgICAgTW9kaWZp
ZWQgR1RLLXBvcnQgdG8gdXNlIEZyYW1lVHJlZTo6dW5pcXVlTmFtZSgpLgotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0
X25hbWUpOgotCi0yMDEwLTEwLTI5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KLQotICAgICAgICBCdWlsZCBmaXggZm9yIEdUSysgYWZ0ZXIgQmFja0ZvcndhcmRMaXN0
SW1wbCBpbnRyb2R1Y3Rpb24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViYmFja2Zvcndh
cmRsaXN0LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfbmV3X3dp
dGhfd2ViX3ZpZXcpOgotCi0yMDEwLTEwLTI5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIENoYW5nZSBC
YWNrRm9yd2FyZExpc3QgY2xpZW50cyB0byB1c2UgQmFja0ZvcndhcmRMaXN0SW1wbCB0byBwcmVw
YXJlIGZvciBmdXJ0aGVyIHJlZmFjdG9yaW5nCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00ODU3NAotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZh
dGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDoKLSAg
ICAgICAgKHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZGlzcG9zZSk6Ci0gICAgICAgICh3
ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X25ld193aXRoX3dlYl92aWV3KToKLSAgICAgICAg
KHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ29fZm9yd2FyZCk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dvX2JhY2spOgotICAgICAgICAod2Via2l0X3dlYl9i
YWNrX2ZvcndhcmRfbGlzdF9jb250YWluc19pdGVtKToKLSAgICAgICAgKHdlYmtpdF93ZWJfYmFj
a19mb3J3YXJkX2xpc3RfZ29fdG9faXRlbSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2JhY2tfZm9y
d2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3Rfd2l0aF9saW1pdCk6Ci0gICAgICAgICh3ZWJraXRf
d2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2xpc3Rfd2l0aF9saW1pdCk6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2l0ZW0pOgotICAgICAgICAo
d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfY3VycmVudF9pdGVtKToKLSAgICAgICAg
KHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfaXRlbSk6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9udGhfaXRlbSk6Ci0gICAgICAgICh3
ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2xlbmd0aCk6Ci0gICAgICAgICh3
ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xlbmd0aCk6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9saW1pdCk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X3NldF9saW1pdCk6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X2JhY2tfZm9yd2FyZF9saXN0X2FkZF9pdGVtKToKLSAgICAgICAgKHdlYmtpdF93ZWJfYmFja19m
b3J3YXJkX2xpc3RfY2xlYXIpOgotICAgICAgICAoV2ViS2l0Ojpjb3JlKToKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X21h
aW50YWluc19iYWNrX2ZvcndhcmRfbGlzdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2JhY2tfZm9yd2FyZF9saXN0KToKLSAgICAgICAgVXNlIEJhY2tGb3J3YXJkTGlzdEltcGwuCi0K
LTIwMTAtMTAtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NTc2Ci0gICAgICAgIExldCBXZWJLaXQyIGNsaWVudCBr
bm93IHdoZW4gYSBmcmFtZSBpcyBhIGZyYW1lc2V0Ci0KLSAgICAgICAgQWRkZWQgYSBibGFuayBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEZyYW1lTG9hZGVyQ2xpZW50IG1ldGhvZC4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldCk6Ci0KLTIwMTAt
MTAtMjkgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtHVEtdIEFkZCB0aGUgR3Rr
U2Nyb2xsYWJsZVBvbGljeSBwcm9wZXJ0eSB0byB0aGUgd2VidmlldwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgzNTcKLQotICAgICAgICBBZGRlZCB0
aGUgR3RrU2Nyb2xsYWJsZVBvbGljeSBwcm9wZXJ0aWVzIHRvIHRoZSB3ZWJ2aWV3IHdpZGdldCwg
aXQKLSAgICAgICAgaXMgbm93IHJlcXVpcmVkIGZvciBHdGtTY3JvbGxhYmxlIHdpZGdldHMgaW4g
R1RLKyAzLnguCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHNldEhvcml6b250YWxTY3JvbGxQ
b2xpY3kpOiBBZGRlZC4KLSAgICAgICAgKHNldFZlcnRpY2FsU2Nyb2xsUG9saWN5KTogQWRkZWQu
Ci0gICAgICAgIChnZXRIb3Jpem9udGFsU2Nyb2xsUG9saWN5KTogQWRkZWQuCi0gICAgICAgIChn
ZXRWZXJ0aWNhbFNjcm9sbFBvbGljeSk6IEFkZGVkLgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Byb3BlcnR5KToK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLQotMjAxMC0xMC0yOCAgU2Vy
Z2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gV2ViS2l0V2ViRnJhbWUncyBs
b2FkLXN0YXR1cyBpcyBub3QgcHJvcGVybHkgbm90aWZpZWQgdG8gdGhlIHRlc3RzCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00ODA0OAotCi0gICAgICAg
ICJmcmFtZS1jcmVhdGVkIiBzaWduYWwgbXVzdCBiZSBpc3N1ZWQgYmVmb3JlIGxvYWRpbmcgYW55
IGRhdGEsCi0gICAgICAgIHRoYXQgd2F5IGNsaWVudHMgY2FuIGNvcnJlY3RseSBjYXB0dXJlIGFs
bCB0aGUgbG9hZGluZyByZWxhdGVkCi0gICAgICAgIHNpZ25hbHMgZm9yIHRoYXQgZnJhbWUuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZSk6Ci0KLTIwMTAtMTAt
MjcgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBnZXRUZXh0QXRPZmZzZXQg
cmV0dXJucyBpbmNvcnJlY3QgcmVzdWx0cyBpZiBhIGxpbmsgaW5jbHVkZXMgdGV4dCBhbmQgYW4g
aW1hZ2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3
MzY1Ci0KLSAgICAgICAgTmV3IHRlc3QgdG8gbWFrZSBzdXJlIHRoaXMgYnVnIGlzIGFjdHVhbGx5
IGZpeGVkLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGVzdFdlYmtp
dEF0a0xpbmtzV2l0aElubGluZUltYWdlcyk6IE5ldyB0ZXN0LgotICAgICAgICAobWFpbik6IEFk
ZGVkIG5ldyB0ZXN0LgotCi0yMDEwLTEwLTI2ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtH
VEtdIEltcGxlbWVudCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsgKHNpbWlsYXJseSB0byBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdCBpZGVhKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDgxOTkKLQotICAgICAgICBJbXBsZW1lbnRlZCBhbiBpbml0aWFs
IHZlcnNpb24gb2YgdGhlIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayBjbGFzcy4KLSAgICAgICAg
VGhlIG1haW4gaWRlYSBpcyB0aGF0IGl0IGdyb3VwcyB0b2dldGhlciB0aGUgYm9kaWVzIG9mIG1h
bnkgTGF5b3V0VGVzdENvbnRyb2xsZXIKLSAgICAgICAgbWV0aG9kcywgc28gdGhleSBjYW4gZGly
ZWN0bHkgYWNjZXNzIFdlYkNvcmUgZmVhdHVyZXMuIFRoaXMgd2F5IHdlIGVsaW1pbmF0ZSB0aGUK
LSAgICAgICAgbmVlZCBvZiBhZGRpbmcgQVBJcyB0byBXZWJLaXRHVEsganVzdCB0byBleHBhbmQg
aXRzIHRlc3QgY292ZXJhZ2UgdGhyb3VnaCBEUlQuCi0KLSAgICAgICAgVGhlIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ayBjbGFzcyBzbyBmYXIgaW5jbHVkZXMgYSBnZXR0ZXIgYW5kIHNldHRlciBm
b3IgdGhlIFdlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5Ci0gICAgICAgIHByb3BlcnR5IGFz
IGEgc2FtcGxlIGltcGxlbWVudGF0aW9uLiBBbHNvIGl0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVu
c2tpcCBmYXN0L2V2ZW50cy90YWItZm9jdXMtYW5jaG9yLmh0bWwgYW5kCi0gICAgICAgIHRvIGZp
eCBzdGRlcnIgbWVzc2FnZXMgZnJvbSBhbGwgMjIgc3BhdGlhbC1uYXZpZ2F0aW9uIHRlc3RzIGlu
IGZhc3QvZXZlbnRzL3NwYXRpYWwtbmF2aWdhdGlvbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
dGFic1RvTGlua3MpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5jcHA6IEFkZGVkLgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgotICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjp+RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKLSAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2V0RHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZCk6Ci0gICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQpOiBHZXR0ZXIg
dG8gdGhlIFdlYktpdFRhYlRvTGlua3NQcmVmZXJlbmNlS2V5IHByb3BlcnR5LgotICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRMaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKTog
U2V0dGVyIHRvIHRoZSBXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5jZUtleSBwcm9wZXJ0eS4KLSAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFp
bik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6
IEFkZGVkLgotCi0yMDEwLTEwLTI2ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0u
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KLQotICAgICAgICBSZXNv
dXJjZSB0cmFja2luZyBmYWlsdXJlIHdoZW4gdHJ5aW5nIHRvIG1vdmUgYSBmcmFtZSBiZXR3ZWVu
IGRvY3VtZW50cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDQ3MTMKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zZmVyTG9hZGlu
Z1Jlc291cmNlRnJvbVBhZ2UpOgotICAgICAgICBFbXB0eSBtZXRob2QuCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAxMC0xMC0yNiAgTWFyaW8g
U2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRmxlaXphY2guCi0KLSAgICAgICAgW0d0a10gTGF5b3V0IHRhYmxlcyBzaG91bGQg
aW5kaWNhdGUgdGhhdCB0aGV5IGFyZSBub3QgZGF0YSB0YWJsZXMgdmlhIGFuIG9iamVjdCBhdHRy
aWJ1dGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1
NDIyCi0KLSAgICAgICAgTmV3IHVuaXQgdGVzdCB0byBjaGVjayB0aGUgJ2xheW91dC1ndWVzcycg
YXR0cmlidXRlIGluIHRhYmxlcy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAg
ICAgKGF0a0F0dHJpYnV0ZVNldEF0dHJpYnV0ZU5hbWVIYXNWYWx1ZSk6IE5ldywgbG9va3MgZm9y
IGEgYXR0cmlidXRlCi0gICAgICAgIHdpdGggYSBzcGVjaWZpYyB2YWx1ZSwgYnkgdGhlIG5hbWUg
b2YgYXR0cmlidXRlLgotICAgICAgICAoYXRrQXR0cmlidXRlU2V0Q29udGFpbnNBdHRyaWJ1dGVO
YW1lKTogTmV3LCBqdXN0IGNoZWNrcyB3aGV0aGVyCi0gICAgICAgIGFuIGF0dHJpYnV0ZSB3aXRo
IGEgc3BlY2lmaWVkIG5hbWUgaXMgcHJlc2VudCBpbiB0aGUgc2V0LgotICAgICAgICAoYXRrQXR0
cmlidXRlU2V0QXR0cmlidXRlSGFzVmFsdWUpOiBNb2RpZmllZCB0byByZWxheSBvbiB0aGUgbmV3
Ci0gICAgICAgIGZ1bmN0aW9uIGF0a0F0dHJpYnV0ZVNldEF0dHJpYnV0ZU5hbWVIYXNWYWx1ZSgp
LgotICAgICAgICAodGVzdFdlYmtpdEF0a0xheW91dEFuZERhdGFUYWJsZXMpOiBOZXcgdGVzdC4K
LSAgICAgICAgKG1haW4pOiBBZGRlZCB0aGUgbmV3IHRlc3QuCi0KLTIwMTAtMTAtMjYgIFhhbiBM
b3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBS
b2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBQb3J0IHRvIG5ldyBHdGtTY3JvbGxhYmxlIGludGVy
ZmFjZSBpbiBHVEsrIDMueAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDgyMDIKLQotICAgICAgICBVc2UgdGhlIG5ldyBHdGtTY3JvbGxhYmxlIGludGVy
ZmFjZSB3aGVuIGNvbXBpbGluZyBhZ2FpbnN0IEdUSysKLSAgICAgICAgMy54LgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAoc2V0SG9yaXpvbnRhbEFkanVz
dG1lbnQpOgotICAgICAgICAoc2V0VmVydGljYWxBZGp1c3RtZW50KToKLSAgICAgICAgKGdldEhv
cml6b250YWxBZGp1c3RtZW50KToKLSAgICAgICAgKGdldFZlcnRpY2FsQWRqdXN0bWVudCk6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2lu
aXQpOgotCi0yMDEwLTEwLTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgotCi0gICAgICAgIFdlYktpdDIgbmVlZHMg
dG8gcGFzcyB0aGUgY3VycmVudCBldmVudCBtb2RpZmllciBmbGFncyB3aGVuIHJlcXVlc3Rpbmcg
YSBuZXcgd2luZG93Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00ODE0MAotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3cpOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLSAgICAgICAgQWRkIE5hdmlnYXRpb25BY3Rpb24g
cGFyYW1ldGVyLgotCi0yMDEwLTEwLTIwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dU
S10gdXNlIGd0a193aWRnZXRfaGlkZSBpbnN0ZWFkIG9mIGd0a193aWRnZXRfaGlkZV9hbGwgaW4g
dGhlIGZ1bGxzY3JlZW4gdmlkZW8gY29ucm9sbGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Nzk3MgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHA6Ci0gICAgICAgIChGdWxsc2NyZWVuVmlkZW9D
b250cm9sbGVyOjpoaWRlSHVkKToKLSAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6
OmV4aXRGdWxsc2NyZWVuKToKLQotMjAxMC0xMC0xOSAgSm9vbmUgSHVyICA8am9vbmVAa2xkcC5v
cmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtH
VEtdIE5lZWRzIGZpeGluZyBtaXN0eXBlZCBjb21tZW50cyBpbiB0aGUgQVBJIGRvY3VtZW50YXRp
b24KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NjU2
Ci0KLSAgICAgICAgRml4ZWQgbWlzdHlwZWQgY29tbWVudHMgaW4gdGhlIEFQSSBkb2N1bWVuZW50
YXRpb24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOiBGaXhlZCBh
IG1pc3R5cGVkIGNvbW1lbnQgaW4gdGhlIHRoZSBzZWN0aW9uIGJsb2NrLgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5jcHA6IEZpeGVkIGEgbWlzdHlwZWQgY29tbWVu
dCBpbiB0aGUgc2VjdGlvbiBibG9jay4KLQotMjAxMC0xMC0xOCAgWGFuIExvcGV6ICA8eGxvcGV6
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0g
ICAgICAgICogTkVXUzogdXBkYXRlIGZvciAxLjMuNSByZWxlYXNlLgotICAgICAgICAqIGRvY3Mv
d2Via2l0Z3RrLXNlY3Rpb25zLnR4dDogYWRkIG5ldyBBUElzLgotCi0yMDEwLTEwLTE4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KLQotICAgICAgICBXZWIgSW5zcGVjdG9yOiBbY3Jhc2hdIHdoZW4gSW5z
cGVjdG9yIE9wZW4gaW4gQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdJbWFnZXMoKS4KLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjI0Ci0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6Ci0KLTIwMTAt
MTAtMTQgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBNYXJ0aW4gUm9iaW5zb24gYW5kIFhhbiBMb3Blei4KLQotICAgICAgICBbR3RrXTogRFJU
IGRvZXMgbm90IHN1cHBvcnQgZnJhbWUgZmxhdHRlbmluZyB0ZXN0aW5nCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODY1MAotCi0gICAgICAgIEltcGxl
bWVudCBlbmFibGUtZnJhbWUtZmxhdHRlbmluZyBBUEkgZm9yIEd0aysuCi0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5n
c19jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5
KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAg
KHdlYmtpdF93ZWJfc2V0dGluZ3NfY29weSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToKLQotMjAxMC0xMC0xNSAgTmlr
b2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBEaXJrIFNjaHVsemUuCi0KLSAgICAgICAgUmVwbGFjZSBzb21lIFN0cmluZzo6Zm9ybWF0
KCkgdXNhZ2VzIGJ5IFN0cmluZ0NvbmNhdGVuYXRlIGluIFdlYktpdAotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc3MTQKLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRPU1ZlcnNpb24pOgotICAgICAg
ICAod2Via2l0VXNlckFnZW50KToKLQotMjAxMC0xMC0xNCAgSm9vbmUgSHVyICA8am9vbmVAa2xk
cC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLQotICAgICAgICBb
R1RLXSBnb29nbGUuY28ua3Igd2FzIG1pc3NlZCB3aGVuIGNoZWNraW5nIEdvb2dsZSBkb21haW5z
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzY1Mgot
Ci0gICAgICAgIFdlYktpdEd0aysgbWFpbnRhaW5zIGEgbGlzdCBvZiBHb29nbGUgZG9tYWlucyBm
b3Igd29ya2luZyB3ZWxsIHdpdGggR29vZ2xlIHNpdGVzLgotICAgICAgICBBZGQgZ29vZ2xlLmNv
LmtyIGFsc28gdG8gdGhlIGxpc3QgdG8gYmUgY2hlY2tlZCB3aXRoIG90aGVyIEdvb2dsZSBkb21h
aW5zLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplRG9tYWluc0xpc3QpOiBBZGRlZCBnb29nbGUu
Y28ua3IuCi0KLTIwMTAtMTAtMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAg
IFdlYktpdEd0aysgdG8gdXNlIHRoZSBuZXcgQVBJIGZyb20gdGhlIGltcG9ydGVkIFNvdXBVUklM
b2FkZXIgY29kZQotCi0gICAgICAgIFtHVEtdIEFkZCBIVFRQIGNhY2hpbmcgc3VwcG9ydAotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyNjEKLQotICAg
ICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsIG1fbXNnIGlzIG5vdyBjYWxsZWQgbV9zb3VwTWVz
c2FnZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0gICAgICAgICh3
ZWJraXRfZG93bmxvYWRfbmV3X3dpdGhfaGFuZGxlKToKLSAgICAgICAgKHdlYmtpdF9kb3dubG9h
ZF9zdGFydCk6Ci0KLTIwMTAtMTAtMTMgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBbR1RLXSBS
ZW1vdmUgbW9yZSB3YXJuaW5ncyBmcm9tIHRoZSBnLWkgc2Nhbm5lciBydW4KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MjU1Ci0KLSAgICAgICAgRml4
ZXMgYWxtb3N0IGFsbCB3YXJuaW5ncyBjb21pbmcgZnJvbSB0aGUgZy1pIHNjYW5uZXIuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uY3BwOiBSZW5hbWUgcGFyYW1ldGVy
IG5hbWVzIGluCi0gICAgICAgIGd0ay1kb2MgYmx1cmIgdG8gdGhlIGFjdHVhbCBuYW1lIG9mIHRo
ZSBwYXJhbWV0ZXIuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmM6IGRp
dHRvLgotICAgICAgICAod2Via2l0X3NvdXBfYXV0aF9kaWFsb2dfY2xhc3NfaW5pdCk6IFdyaXRl
IG1pc3NpbmcgZG9jIGZvciB0aGUKLSAgICAgICAgJ2N1cnJlbnQtdG9wbGV2ZWwnIHNpZ25hbC4K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuaDogUmVuYW1lIHNpZ25hbCBw
YXJhbWV0ZXIgdG8gaXRzCi0gICAgICAgIGFjdHVhbCBuYW1lLgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJkYXRhYmFzZS5jcHA6IFJlbmFtZSBwYXJhbWV0ZXIgbmFtZXMgaW4KLSAgICAgICAg
Z3RrLWRvYyBibHVyYiB0byB0aGUgYWN0dWFsIG5hbWUgb2YgdGhlIHBhcmFtZXRlci4KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcDogZGl0dG8uCi0gICAgICAgICh3ZWJr
aXRfd2ViX2luc3BlY3Rvcl9jbGFzc19pbml0KTogZGl0dG8uCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOiBkaXR0by4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19p
bml0KTogZGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDogUmVuYW1lIHRo
ZSBwYXJhbWV0ZXIgbmFtZXMgdG8gYmUgaW4gc3luYwotICAgICAgICB3aXRoIHRoZSBvbmVzIHdl
IHVzZSBpbiB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbi4KLQotMjAxMC0xMC0xMiAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjY5NTg5LgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC82OTU4OQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDc1NDcKLQotICAgICAgICBXcm9uZyBwYXRjaCBsYW5kZWQgZnJvbSBhIGJ1ZyB3aXRoIHR3
byBwYXRjaGVzIChSZXF1ZXN0ZWQgYnkKLSAgICAgICAgbXJvYmluc29uIG9uICN3ZWJraXQpLgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKHdlYmtpdF9k
b3dubG9hZF9uZXdfd2l0aF9oYW5kbGUpOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX3N0YXJ0
KToKLQotMjAxMC0xMC0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dU
S10gQWRkIEhUVFAgY2FjaGluZyBzdXBwb3J0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDI2MQotCi0gICAgICAgIFJlc291cmNlSGFuZGxlJ3MgbV9t
c2cgcmVuYW1lZCB0byBtX3NvdXBNc2cgYW5kIGl0J3MgYWxzbyBub3cgYSBQbGF0Zm9ybVJlZlB0
cgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKHdlYmtp
dF9kb3dubG9hZF9uZXdfd2l0aF9oYW5kbGUpOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX3N0
YXJ0KToKLQotMjAxMC0xMC0wOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtd
IFJlbW92ZWQgdW51c2VkIGNhbGxiYWNrIGluIHdlYmtpdHdlYnZpZXcKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MDkyCi0KLSAgICAgICAgSW4gd2Vi
a2l0X3dlYl92aWV3X2ZvcndhcmRfY29udGV4dF9tZW51X2V2ZW50KCkgYSBjYWxsYmFjayBpcwot
ICAgICAgICBjb25uZWN0ZWQgZm9yIHRoZSBkZXN0cm95IHNpZ25hbCBvZiB0aGUgcG9wdXAgbWVu
dSwgaG93ZXZlciB3ZQotICAgICAgICByZXVzZSB0aGUgc2FtZSBtZW51IGFsd2F5cywgaG9sZGlu
ZyBhIHJlZiB0byBpdCwgc28gaXQncyBub3QKLSAgICAgICAgZGVzdHJveWVkIHdoZW4gd2l0aGRy
YXduIGJ5IHRoZSB1c2VyLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZvcndhcmRfY29udGV4dF9tZW51X2V2ZW50KToKLQot
MjAxMC0xMC0wOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIFJlbW92ZSBkdXBs
aWNhdGUgY29kZSBpbiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3Bw
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzM2Nwot
Ci0gICAgICAgIFJlbW92ZSBhcyBtdWNoIGR1cGxpY2F0ZSBjb2RlIGFzIHBvc3NpYmxlIGZyb20g
RHJhZ0NsaWVudEd0ay4gTW9zdCBvZiB0aGlzIGNvZGUKLSAgICAgICAgaXMgR1RLMi9HVEszIGlu
ZGVwZW5kZW50LCBzbyBvbmx5IHRoZSBiaXRzIHRoYXQgYXJlbid0IHNob3VsZCBiZSBwcm90ZWN0
ZWQgYnkKLSAgICAgICAgI2lmZGVmcy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpkcmFnSWNvbldpbmRvd0RyYXdFdmVudENh
bGxiYWNrKTogTW9kaWZpZWQgdGhlIG5hbWUgb2YgdGhpcyBjYWxsYmFjawotICAgICAgICBzbyB0
aGF0IGl0IGlzIHNoYXJlZCBiZXR3ZWVuIGJ1aWxkIHR5cGVzLgotICAgICAgICAoV2ViS2l0OjpE
cmFnQ2xpZW50OjpEcmFnQ2xpZW50KTogVXBkYXRlZCB0aGUgc2lnbmFsIGNvbm5lY3RvcnMgdG8g
cmVmbGVjdCB0aGUgY2hhbmdlIGFib3ZlLgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50Ojp+
RHJhZ0NsaWVudCk6IFRoZSBidWlsZCB0eXBlcyBzaGFyZSB0aGUgY2FsbGJhY2sgbmFtZSwgc28g
cmVtb3ZlCi0gICAgICAgIHRoZSAjaWZkZWYgaGVyZS4KLSAgICAgICAgKFdlYktpdDo6RHJhZ0Ns
aWVudDo6ZHJhd0RyYWdJY29uV2luZG93KTogQ2hhbmdlZCB0aGUgbmFtZSBvZiB0aGlzIG1ldGhv
ZCBhbmQgbWFrZSBpdAotICAgICAgICBpbmRlcGVuZGVudCBvZiB0aGUgYnVpbGQgdHlwZS4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmg6IFVwZGF0ZSBtZXRob2QgZGVj
bGFyYXRpb24gYW5kIHJlbW92ZSAjaWZkZWZzLgotCi0yMDEwLTEwLTA3ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4g
TG9wZXouCi0KLSAgICAgICAgW0dUS10gVXNlIGRyYXcgaW5zdGVhZCBvZiBleHBvc2VfZXZlbnQg
aW4gV2ViVmlldyB3aGVuIGJ1aWxkaW5nIHdpdGggZ3RrMwotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDczMzgKLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19leHBvc2VfZXZlbnQpOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYXcpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2NsYXNzX2luaXQpOgotCi0yMDEwLTEwLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAg
ICAgW0dUS10gRG9uJ3QgdXNlIEd0a09iamVjdAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcwOTAKLQotICAgICAgICBHdGtPYmplY3QgaGFzIGJlZW4g
cmVtb3ZlZCBpbiBndGszLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpnZW5lcmF0ZUVkaXRvckNv
bW1hbmRzKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyLmNwcDoKLSAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OmNyZWF0ZUh1ZCk6
Ci0KLTIwMTAtMTAtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBGaXgg
dGhlIGJ1aWxkIGZvciBHVEsrIDMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ3MjQ5Ci0KLSAgICAgICAgVXNlIEdka1Zpc3VhbCBpbnN0ZWFkIG9mIEdk
a0NvbG9ybWFwLiBHZGtDb2xvcm1hcCBoYXMgYmVlbiByZW1vdmVkCi0gICAgICAgIGluIGd0azMK
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19yZWFsaXplKToKLQotMjAxMC0xMC0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0g
ICAgICAgIFtHVEtdIEZpeCB0aGUgYnVpbGQgZm9yIEdUSysgMwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcyNDkKLQotICAgICAgICBEbyBub3QgdXNl
IEdka0RyYXdhYmxlIGRlcHJlY2F0ZWQgQVBJLiBTb21lIG1ldGhvZHMgb2YgR2RrRHJhd2FibGUK
LSAgICAgICAgYXJlIGRlcHJlY2F0ZWQgaW4gZ3RrMiBhbmQgaGF2ZSBiZWVuIHJlbW92ZWQgaW4g
Z3RrMy4gRXF1aXZhbGVudAotICAgICAgICBBUEkgaGFzIGJlZW4gYWRkZWQgdG8gR2RrV2luZG93
LgotCi0gICAgICAgICogdGVzdHMvdGVzdGNvcHlhbmRwYXN0ZS5jOgotICAgICAgICAocnVuUGFz
dGVUZXN0Q2FsbGJhY2spOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19idXR0b25fcHJlc3NfZXZlbnQpOgotCi0yMDEwLTEwLTA3
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gVXNlIGRyYXcgc2lnbmFsIGlu
c3RlYWQgb2YgZXhwb3NlX2V2ZW50IGluIERyYWdDbGllbnRHdGsgd2hlbiBidWlsZGluZyB3aXRo
IGd0azMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3
MzI2Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6ZHJhZ0ljb25XaW5kb3dEcmF3Q2FsbGJhY2spOgotICAgICAgICAoV2ViS2l0
OjpEcmFnQ2xpZW50OjpEcmFnQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6
fkRyYWdDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50OjpzdGFydERyYWcpOgot
ICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50OjpkcmFnSWNvbldpbmRvd0RyYXcpOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuaDoKLQotMjAxMC0xMC0wNyAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIEZpeCB0aGUgYnVpbGQgZm9yIEdUSysgMwot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcyNDkKLQot
ICAgICAgICBEb24ndCB1c2UgZ3RrX3NpemVfcmVxdWVzdF9nZXRfc2l6ZSgpLiBJdCBoYXMgYmVl
biByZW1vdmVkLAotICAgICAgICBndGtfd2lkZ2V0X2dldF9wcmVmZXJyZWRfc2l6ZSgpIHNob3Vs
ZCBiZSB1c2VkIGluc3RlYWQKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKFBvcHVwTWVudVBvc2l0aW9uRnVuYyk6Ci0KLTIwMTAtMTAtMDYgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI2OTIwMS4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvNjkyMDEKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ3Mjc5Ci0KLSAgICAgICAgVGhpcyBjaGFuZ2UgYnJva2UgdGhlIFdlYktpdEdUSysgYnVp
bGQgZm9yIEdUSysgMi4wLgotICAgICAgICAoUmVxdWVzdGVkIGJ5IG1yb2JpbnNvbiBvbiAjd2Vi
a2l0KS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3Rjb3B5YW5kcGFzdGUuYzoKLSAgICAgICAgKHJ1
blBhc3RlVGVzdENhbGxiYWNrKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfYnV0dG9uX3ByZXNzX2V2ZW50KToKLQotMjAxMC0x
MC0wNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFBvcnQgdG8gZ3RrKzMgKDIuOTEu
MCkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MjQ5
Ci0KLSAgICAgICAgRG8gbm90IHVzZSBHZGtEcmF3YWJsZSBkZXByZWNhdGVkIEFQSQotCi0gICAg
ICAgIFNvbWUgbWV0aG9kcyBvZiBHZGtEcmF3YWJsZSBhcmUgZGVwcmVjYXRlZCBpbiBndGsyIGFu
ZCBoYXZlIGJlZW4KLSAgICAgICAgcmVtbW92ZWQgaW4gZ3RrMy4gRXF1aXZhbGVudCBBUEkgaGFz
IGJlZW4gYWRkZWQgdG8gR2RrV2luZG93LgotCi0gICAgICAgICogdGVzdHMvdGVzdGNvcHlhbmRw
YXN0ZS5jOgotICAgICAgICAocnVuUGFzdGVUZXN0Q2FsbGJhY2spOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19idXR0b25fcHJl
c3NfZXZlbnQpOgotCi0yMDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21p
dW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KLQotICAgICAgICBB
ZGRlZCBvbGRQYWdlIHBhcmFtIHRvIEZyYW1lTG9hZGVyQ2xpZW50OjpkaWRUcmFuc2ZlckNoaWxk
RnJhbWVUb05ld0RvY3VtZW50LgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDY2NjMKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpZFRy
YW5zZmVyQ2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMTAtMDktMjcgIE1hcmlvIFNhbmNoZXogUHJh
ZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZs
ZWl6YWNoLgotCi0gICAgICAgIFtHdGtdIEFkanVzdCBhdGtfdGV4dF9nZXRfdGV4dF9hdF9vZmZz
ZXQgdG8gYWNjb3VudCBmb3IgYnVsbGV0cy9udW1iZXJzIGluIGxpc3QgaXRlbXMKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzgxCi0KLSAgICAgICAg
VXBkYXRlZCB0ZXN0IHRvIG1hdGNoIHRoZSBuZXcgZXhwb3N1cmUgb2YgbGlzdCBpdGVtIG1hcmtl
cnMuCi0KLSAgICAgICAgQWxzbywgYWRkZWQgc29tZSBleHRyYSBhc3NlcnRpb25zIGluIHRoYXQg
dGVzdCB0byBtYWtlIHN1cmUgdGhlCi0gICAgICAgIGFjY2Vzc2libGUgb2JqZWN0cyBhc3NvY2lh
dGVkIHRvIHRoZSBpdGVtcyBpbXBsZW1lbnQgQXRrVGV4dC4KLQotICAgICAgICAqIHRlc3RzL3Rl
c3RhdGsuYzoKLSAgICAgICAgKHRlc3RXZWJraXRBdGtMaXN0c09mSXRlbXMpOgotICAgICAgICAo
bWFpbik6Ci0KLTIwMTAtMDktMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBb
R1RLXSBEb2Vzbid0IGJ1aWxkIHdpdGggZ3RrKyAyLjE0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjU2NQotCi0gICAgICAgIEZpeGVkIHRoZSBidWls
ZCBmb3IgR1RLKyAyLjE0LiBEb24ndCB1c2UgZ2RrX3dpbmRvd19nZXRfY3Vyc29yKCkKLSAgICAg
ICAgZm9yIHRoYXQgR1RLKyB2ZXJzaW9uIGFzIEkgZm91bmQgbm8gYWNjZXB0YWJsZSB3YXkgdG8g
d29yay1hcm91bmQKLSAgICAgICAgaXRzIGFic2VuY2UuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcDoKLSAgICAgICAgKEZ1bGxzY3JlZW5W
aWRlb0NvbnRyb2xsZXI6OnNob3dIdWQpOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJv
bGxlcjo6aGlkZUh1ZCk6Ci0gICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjplbnRl
ckZ1bGxzY3JlZW4pOgotCi0yMDEwLTA5LTI2ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAg
R1RLIGNsaWVudCBuZWVkcyB1cGRhdGluZyB3aGVuIGxpdmUgaWZyYW1lIGVsZW1lbnQgaXMgbW92
ZWQKLSAgICAgICAgYmV0d2VlbiBwYWdlcy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ2MzAwCi0KLSAgICAgICAgVGVzdDogZmFzdC9mcmFtZXMvaWZy
YW1lLXJlcGFyZW50aW5nLWFkb3B0LW5vZGUuaHRtbAotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6ZGlkVHJhbnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCk6Ci0gICAgICAgIFVw
ZGF0ZSB0aGUgd2ViVmlldyBmb3IgdGhlIGZyYW1lIHRvIG1hdGNoIHRoZSBwYXJlbnQgZnJhbWUn
cwotICAgICAgICB3ZWJWaWV3LgotCi0yMDEwLTA5LTI0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEuCi0KLSAgICAgICAgW0dUS10gb3BlbmluZyBsb2NhbCBmaWxlcyBvbiB3aW4zMgotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwNjYKLQotICAg
ICAgICBBZGQgdGVzdHMgdGhhdCBjaGVjayB0aGUgbWltZSB0eXBlIHJldHVybmVkIGJ5IGxvY2Fs
IGZpbGVzIGxvYWRlZCB2aWEgZmlsZSBVUkxzLgotCi0gICAgICAgICogdGVzdHMvdGVzdG1pbWVo
YW5kbGluZy5jOgotICAgICAgICAodGVzdFJlbW90ZU1pbWVUeXBlKTogQWRkZWQuCi0gICAgICAg
ICh0ZXN0TG9jYWxNaW1lVHlwZSk6IEFkZGVkLgotICAgICAgICAobWFpbik6IFJ1biB0ZXN0cyBi
eSB1c2luZyBnX3Rlc3RfYWRkX2RhdGFfZnVuYyB3aXRoIGVpdGhlciAKLSAgICAgICAgdGVzdFJl
bW90ZU1pbWVUeXBlIG9yIHRlc3RMb2NhbE1pbWVUeXBlLgotCi0yMDEwLTA5LTIzICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBO
YXRlIENoYXBpbi4KLQotICAgICAgICBbR1RLXSBTb21lIHRlc3RzIGZyb20gcjY4MTc0IGZhaWwg
b24gdGhlIEdUSysgYm90cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDYzOTYKLQotICAgICAgICBGaXggc2luY2UgdmVyc2lvbiBudW1iZXIgaW4gdGhp
cyBuZXcgV2ViS2l0V2ViU2V0dGluZ3MgcHJvcGVydHkuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19p
bml0KTogRml4IHRoZSBzaW5jZSB2ZXJzaW9uIG51bWJlci4KLQotMjAxMC0wOS0yMyAgTmF0ZSBD
aGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxk
IGZpeC4KLQotICAgICAgICBBZGQgYSBtaXNzaW5nIGNvbW1hIGluIHdlYmtpdHdlYnNldHRpbmdz
LmNwcC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0KLTIwMTAt
MDktMjMgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBGaXNoZXIuCi0KLSAgICAgICAgQWRkIGh5cGVybGluayBhdWRpdGluZyBz
ZXR0aW5ncyAoaS5lLiwgPGEgcGluZz4pLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzA0NTgKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAg
ICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0
X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5n
c19jb3B5KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEwLTA5LTIyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8
bXNhbmNoZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5z
b24uCi0KLSAgICAgICAgW0dUS10gUmVwbGFjZSBpbnN0YW5jZXMgb2YgZ190aW1lb3V0X2FkZCgp
IHdpdGggZ19pZGxlX2FkZCgpIGluIHRlc3RhdGsuYwotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYyODQKLQotICAgICAgICBVc2UgZ19pZGxlX2FkZCgp
IHdoZW5ldmVyIGdfdGltZW91dF9hZGQoKSB3YXMgYmVpbmcgdXNlZC4KLQotICAgICAgICBUaGlz
IGlzIGRlc2lyZWQgYmVjYXVzZSBpdCdzIGJldHRlciB0byByZWx5IG9uIHRoZSBtYWluIGxvb3Ag
dG8KLSAgICAgICAgZGVjaWRlIHdoZW4gaXQncyBhIGdvb2QgbW9tZW50IHRvIGV4ZWN1dGUgdGhl
IHRhc2sgKHdoZW4gaWRsZSkKLSAgICAgICAgdGhhbiBtYW51YWxseSBzZXR0aW5nIGEgdGltZW91
dCwgd2hpY2ggYWxzbyBzZXRzIGEgbWluaW11bSBhbW91bnQKLSAgICAgICAgb2YgdGltZSBuZWVk
ZWQgdG8gZ2V0IHRoZSBmdW5jdGlvbiBleGVjdXRlZC4KLQotICAgICAgICAqIHRlc3RzL3Rlc3Rh
dGsuYzoKLSAgICAgICAgKHRlc3RXZWtpdEF0a1RleHRTZWxlY3Rpb25zKToKLSAgICAgICAgKHRl
c3RXZWJraXRBdGtHZXRFeHRlbnRzKToKLSAgICAgICAgKHRlc3RXZWJraXRBdGtMaXN0c09mSXRl
bXMpOgotICAgICAgICAobWFpbik6Ci0KLTIwMTAtMDktMjIgIE1hcmlvIFNhbmNoZXogUHJhZGEg
IDxtc2FuY2hlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KLQotICAgICAgICBbR3RrXSBvYmplY3Q6dGV4dC1jaGFuZ2VkIGV2ZW50cyBzaG91bGQg
YmUgZW1pdHRlZCBmb3IgZW50cmllcyBhbmQgcGFzc3dvcmQgdGV4dAotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4OTgKLQotICAgICAgICBOZXcgdW5p
dCB0ZXN0IHRvIG1ha2Ugc3VyZSB0ZXh0LWNoYW5nZWQgc2lnbmFscyBhcmUgZW1pdHRlZAotCi0g
ICAgICAgICogdGVzdHMvdGVzdGF0ay5jOgotICAgICAgICAodGV4dENoYW5nZWRDYik6IE5ldy4g
U2lnbmFsIGhhbmRsZXIgZm9yIHRoZQotICAgICAgICB0ZXh0LWNoYW5nZWQ6Omluc2VydCBhbmQg
dGV4dC1jaGFuZ2VkOjpkZWxldGUgc2lnbmFscy4KLSAgICAgICAgKGNoZWNrVGV4dENoYW5nZXNB
bmRCYWlsT3V0KTogTmV3LiBTb3VyY2UgZnVuY3Rpb24gdG8gY2hlY2sKLSAgICAgICAgdGhlIGds
b2JhbCByZXN1bHQgb2YgdGhlIHRlc3QgYW5kIHF1aXQgZnJvbSB0aGUgbWFpbiBsb29wLgotICAg
ICAgICAodGVzdFdlYmtpdEF0a1RleHRDaGFuZ2VkTm90aWZpY2F0aW9ucyk6IE5ldyB0ZXN0Lgot
ICAgICAgICAobWFpbik6Ci0KLTIwMTAtMDktMjIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNv
bkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAg
ICBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCBkcm9wIHNoYWRvdyBpbXByb3ZlbWVudHMgdG8gdGhl
IE5FV1MgZmlsZS4KLQotICAgICAgICAqIE5FV1M6IEFkZGVkIGluZm9ybWF0aW9uIGFib3V0IGRy
b3Agc2hhZG93IGltcHJvdmVtZW50cy4KLQotMjAxMC0wOS0yMSAgWGFuIExvcGV6ICA8eGxvcGV6
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0g
ICAgICAgIFtHVEtdIEZpeCB0cmFuc2ZlciBhbm5vdGF0aW9ucyBmb3IgV2ViS2l0R1RLKyBzdGF0
aWMgQVBJCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NjI0NAotCi0gICAgICAgIERlYWwgd2l0aCBhbGwgdGhlIHdhcm5pbmdzIHJlbGF0ZWQgdG8gdHJh
bnNmZXIgaXNzdWVzLiBNb3N0bHkgdGhlCi0gICAgICAgIHByb2JsZW0gd2FzIHRoZSB0cmFuc2Zl
ciBiZWluZyBtaXNzaW5nLCBidXQgdGhlcmUgd2VyZSBhbHNvIHR5cG9zCi0gICAgICAgIGluIHRo
ZSBmdW5jdGlvbiBuYW1lIG9yIG1pc3NpbmcgJzonIGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9u
Ci0gICAgICAgIG5hbWUgaW4gdGhlIGd0ay1kb2MuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
ZG93bmxvYWQuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHA6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHA6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViZGF0YWJhc2UuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNw
cDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmlu
c3BlY3Rvci5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcDoKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSk6Ci0KLTIwMTAtMDktMjEg
IFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1
c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBVcGRhdGUgZm9yIDEuMy40IHJlbGVhc2UuCi0KLSAg
ICAgICAgKiBORVdTOgotCi0yMDEwLTA5LTE3ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIFJFR1JFU1NJ
T04gKHI2MDEwNCk6IFpvb20gbGV2ZWwgaXMgdW5leHBlY3RlZGx5IHJlc2V0IG9uIHBhZ2UgcmVs
b2FkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mjg2
MwotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl92aWV3X2dldF96b29tX2xldmVsKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19hcHBs
eV96b29tX2xldmVsKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfZnVsbF9jb250ZW50
X3pvb20pOgotICAgICAgICBDYWxsIGZ1bmN0aW9ucyBvbiBGcmFtZSBpbnN0ZWFkIG9mIEZyYW1l
Vmlldy4KLQotMjAxMC0wOS0xNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIElt
cGxlbWVudCBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24KLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1ODI2Ci0KLSAgICAgICAgVG8gc3VwcG9ydCBm
dWxsIGFscGhhIGluIHRoZSBkcmFnIGljb24sIGNoYW5nZWQgdGhlIGRyYWcgaWNvbiB0byBiZSBh
IAotICAgICAgICBHdGtXaW5kb3cgd2l0aCBhbiBSR0JBIGNvbG9ybWFwLiBBZGRlZCBsb2dpYyB0
byBzdXBwb3J0IHBhaW50aW5nIHRoZSBkcmFnCi0gICAgICAgIGltYWdlIHRvIHRoaXMgd2luZG93
IGR1cmluZyB0aGUgZXhwb3NlIGV2ZW50LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJh
Z0NsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmRyYWdJY29uV2luZG93RXhwb3NlRXZl
bnRDYWxsYmFjayk6IEFkZGVkLgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50OjpEcmFnQ2xp
ZW50KTogSW5pdGlhbGl6ZSB0aGUgbmV3IGRyYWcgaWNvbiB3aW5kb3cuCi0gICAgICAgIChXZWJL
aXQ6OkRyYWdDbGllbnQ6On5EcmFnQ2xpZW50KTogRGlzY29ubmVjdCB0aGUgZXhwb3NlIGV2ZW50
IHNpZ25hbC4KLSAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6c3RhcnREcmFnKTogUmVzaXpl
IHRoZSBkcmFnIGljb24gd2luZG93IHRoZSBhcHByb3ByaWF0ZSBzaXplIGFuZAotICAgICAgICBp
ZiBuZWNlc3NhcnksIHNldCBpdHMgY29sb3JtYXAuCi0gICAgICAgIChXZWJLaXQ6OkRyYWdDbGll
bnQ6OmRyYWdJY29uV2luZG93RXhwb3NlRXZlbnQpOiBBZGRlZC4KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EcmFnQ2xpZW50R3RrLmg6IEFkZGVkIG5ldyBtZW1iZXIgYW5kIG1ldGhvZCBkZWNs
YXJhdGlvbnMuCi0KLTIwMTAtMDktMTQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbiBhbmQgTWFydGluIFJv
Ymluc29uLgotCi0gICAgICAgIFtHVEtdIGV2ZW50U2VuZGVyLmNvbnRleHRDbGljaygpIHNob3Vs
ZCByZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHRoZSBjb250ZXh0IG1lbnUKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MTAyCi0KLSAgICAgICAgTmV3IHBy
aXZhdGUgV2ViVmlldyBBUEkgdG8gcmV0cmlldmUgdGhlIGNvbnRleHQtbWVudSB3aWRnZXQuIFRo
aXMKLSAgICAgICAgaXMgdXNlZCBieSBEUlQgb25seS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0X21lbnUpOgotCi0yMDEwLTA5LTE2ICBBbGVq
YW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KLQotICAgICAgICBHVEsrIDMueC4gdXBkYXRlcywgZ3RrX3dpZGdldF9zaXpl
X3JlcXVlc3QgaXMgZGVwcmVjYXRlZCBhbmQKLSAgICAgICAgImFjdGl2YXRlLXNsaWRlciIgc3R5
bGUgcHJvcGVydHkgZm9yIHNjcm9sbGJhcnMgaXMgZ29uZS4KLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKFBvcHVwTWVudVBvc2l0aW9uRnVuYyk6Ci0KLTIw
MTAtMDktMTUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgotCi0gICAgICAgIFtHVEtdIFtSRUdSRVNTSU9O
XSByNjc1OTEgYnJva2UgdGhlIHRlc3R3ZWJiYWNrZm9yd2FyZGxpc3QgQVBJIHRlc3QgYW5kIGlu
dHJvZHVjZWQgYSBtZW1vcnkgbGVhawotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDU4NjUKLQotICAgICAgICBXaGVuIGluaXRpYWxpemluZyB0aGUgYmFj
a0ZvcndhcmRMaXN0IHByaXZhdGUgbWVtYmVyIG9mIHRoZSBXZWJWaWV3LCBkbwotICAgICAgICBz
byB3aXRoIGFkb3B0UGxhdGZvcm1SZWYgdG8gcHJldmVudCBhIG1lbW9yeSBsZWFrLgotCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2luaXQpOiBJbml0aWFsaXplIG1lbWJlciB3aXRoIGFkb3B0UGxhdGZvcm1SZWYuCi0KLTIwMTAt
MDktMTUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIFtHdGtdIFVzZSBHT3duUHRyIGZv
ciBjb2RlIHRoYXQgbmVlZHMgaXQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxNTk0Ci0KLSAgICAgICAgQ29udmVydCBhcyByZWZlcmVuY2UgY291bnRl
ZCBwcml2YXRlIG1lbWJlcnMgb2YgV2ViS2l0V2ViVmlldyB0bwotICAgICAgICBzbWFydCBwb2lu
dGVycyBhcyBwb3NzaWJsZS4gVGhpcyByZW1vdmVzIGEgbG90IG9mIHVuZWNlc3NhcnkgbWFudWFs
Ci0gICAgICAgIG1lbW9yeSBtYW5hZ2VtZW50LiBBbHNvIGNvbnZlcnQgc29tZSBwb2ludGVyIG1l
bWJlcnMgYXdheSBmcm9tIHBvaW50ZXIKLSAgICAgICAgdHlwZXMsIG5vdyB0aGF0IHdlIGFyZSBz
dXJlIHRoZWlyIGRlc3RydWN0b3JzIGFyZSBjYWxsZWQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmlucHV0TWV0
aG9kc01lbnVJdGVtKTogVXBkYXRlZCB0byByZWZsZWN0IFBsYXRmb3JtUmVmUHRyIGNoYW5nZXMu
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6IERpdHRvLgotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dDo6c2V0SW5wdXRNZXRob2RTdGF0ZSk6IERpdHRvLgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JD
bGllbnQ6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24pOiBEaXR0by4KLSAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24pOiBEaXR0by4KLSAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZE1vdXNlUHJlc3MpOiBE
aXR0by4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOiBEaXR0
by4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojp+RWRpdG9yQ2xpZW50KTogRGl0dG8u
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAg
ICAgICAoV2ViS2l0Ojpwb3N0Q29tbWl0RnJhbWVWaWV3U2V0dXApOiBEaXR0by4KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6IERpdHRvLgotICAgICAgICAoZGVzdHJveV9tZW51X2NiKTogRGl0dG8uCi0g
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9yd2FyZF9jb250ZXh0X21lbnVfZXZlbnQpOiBEaXR0
by4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19rZXlfcmVsZWFzZV9ldmVudCk6IERpdHRvLgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2J1dHRvbl9wcmVzc19ldmVudCk6IERpdHRvLgotICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2J1dHRvbl9yZWxlYXNlX2V2ZW50KTogRGl0dG8uCi0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9jdXNfaW5fZXZlbnQpOiBEaXR0by4KLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19mb2N1c19vdXRfZXZlbnQpOiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19yZWFsaXplKTogRGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Nj
cm9sbF9hZGp1c3RtZW50cyk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2Rpc3Bv
c2UpOiBDaGFuZ2VkIGFsbCBnX29iamVjdF91bnJlZiBjYWxscyB0bwotICAgICAgICBQbGF0Zm9y
bVJlZlB0ci5jbGVhcigpLiBBbHRob3VnaCB0aGlzIHdpbGwgYWxzbyBiZSBkb25lIGJ5IHRoZSBt
YW51YWwKLSAgICAgICAgY2FsbCB0byB0aGUgV2ViS2l0V2ViVmlld1ByaXZhdGUgZGVzdHJ1Y3Rv
ciwgdGhlIG9yZGVyIHRoYXQgdGhlc2UKLSAgICAgICAgZmllbGRzIGFyZSB6ZXJvJ2QgaW4gaXMg
c3RpbGwgdmVyeSBzZW5zaXRpdmUuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZmluYWxpemUp
OiBVcGRhdGVkIHRvIHJlZmxlY3QgUGxhdGZvcm1SZWZQdHIgY2hhbmdlcy4KLSAgICAgICAgKHdl
YlZpZXdHZXREUEkpOiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zY3JlZW5fY2hh
bmdlZCk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZW5kKTogRGl0dG8u
Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19kYXRhX2dldCk6IERpdHRvLgotICAgICAg
ICAoZG9EcmFnTGVhdmVMYXRlcik6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2Ry
YWdfbGVhdmUpOiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX21vdGlvbik6
IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZGF0YV9yZWNlaXZlZCk6IERp
dHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZHJvcCk6IERpdHRvLgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2dldF9pbV9jb250ZXh0KTogRGl0dG8uCi0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKTogRGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfaW5pdCk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF9zZXR0aW5n
cyk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyk6IERpdHRv
LgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9pbnNwZWN0b3IpOiBEaXR0by4KLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19zZXRfd2luZG93X2ZlYXR1cmVzKTogRGl0dG8uCi0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19mZWF0dXJlcyk6IERpdHRvLgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlzdCk6IERpdHRvLgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X3pvb21faW4pOiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d196b29tX291dCk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2FkZF9yZXNvdXJj
ZSk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSk6IERpdHRv
LgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNlKTogRGl0dG8uCi0g
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xlYXJfcmVzb3VyY2VzKTogRGl0dG8uCi0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJlc291cmNlcyk6IERpdHRvLgotCi0yMDEwLTA5LTE0
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gZmFzdC9ldmVudHMva2V5ZG93bi1u
dW1wYWQta2V5cy5odG1sIHByb2R1Y2VzIG1hbnkgR0xpYiB3YXJuaW5ncwotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU3NzUKLQotICAgICAgICBIYW5k
bGUgdGhlIHRvZ2dsZS1vdmVyd3JpdGUgc2lnbmFsIG9uIHRoZSBHdGtUZXh0VmlldyB1c2VkIGZv
ciBnZW5lcmF0aW5nIGVkaXRpbmcKLSAgICAgICAgY29tbWFuZHMuIElnbm9yZSB0aGlzIHNpZ25h
bHMsIGFzIHRoZSBkZWZhdWx0IGhhbmRsZXIgYXNzdW1lcyB0aGF0IHRoZSBHdGtUZXh0Vmlldwot
ICAgICAgICBoYXMgYSBsYXlvdXQgYW5kIHRoaXMgb25lIGRvZXMgbm90LgotCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6dG9n
Z2xlT3ZlcndyaXRlQ2FsbGJhY2spOiBBZGRlZC4gQ2FuY2VscyB0aGUgZGVmYXVsdCBoYW5kbGVy
LgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6IEF0dGFjaCBh
IGhhbmRsZXIgZm9yIHRvZ2dsZS1vdmVyd3JpdGUuCi0KLTIwMTAtMDktMTQgIFBhdmVsIEZlbGRt
YW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBT
ZW1pa2hhdHNreS4KLQotICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFz
ZWQgbG9hZCB0aW1pbmcuCi0gICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVz
ZWQgdGltZXJzIHRha2VuIGZyb20KLSAgICAgICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9u
cyAodGhhdCBhcmUgYnkgZGVmaW5pdGlvbgotICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFs
aXplZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCi0gICAgICAgIGFmZmVjdGVkIGJ5IHRoZSBy
b3V0aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAotICAgICAgICAoSmF2YVNjcmlwdCBh
bmQgc3VjaCkuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTY2NAotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAg
KERvd25sb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToKLQotMjAxMC0wOS0xNSAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjY3NTUxLgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC82NzU1MQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDU4MTYKLQotICAgICAgICAiUGx1Z2luIHRlc3RzIGZhaWwiIChSZXF1ZXN0ZWQgYnkg
eXVyeXMgb24gI3dlYmtpdCkuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3Bw
OgotICAgICAgICAoRG93bmxvYWRDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgotCi0yMDEwLTA5
LTE0ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCi0KLSAgICAgICAgV2ViIEluc3BlY3RvcjogUHJv
dmlkZSBuZXR3b3JrLWJhc2VkIGxvYWQgdGltaW5nLgotICAgICAgICBCZWZvcmUgdGhpcyBjaGFu
Z2UsIGluc3BlY3RvciB1c2VkIHRpbWVycyB0YWtlbiBmcm9tCi0gICAgICAgIHdpdGhpbiBXZWJD
b3JlIG5vdGlmaWNhdGlvbnMgKHRoYXQgYXJlIGJ5IGRlZmluaXRpb24KLSAgICAgICAgc3luY2hy
b25vdXMgYW5kIHNlcmlhbGl6ZWQpLiBBcyBhIHJlc3VsdCwgdGltaW5nIHdhcwotICAgICAgICBh
ZmZlY3RlZCBieSB0aGUgcm91dGluZXMgcnVubmluZyBvbiB0aGUgbWFpbiB0aHJlYWQKLSAgICAg
ICAgKEphdmFTY3JpcHQgYW5kIHN1Y2gpLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDU2NjQKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9h
ZC5jcHA6Ci0gICAgICAgIChEb3dubG9hZENsaWVudDo6ZGlkRmluaXNoTG9hZGluZyk6Ci0KLTIw
MTAtMDktMTMgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIFBhc3RlIHNob3VsZCBiZSBpbXBsZW1l
bnRlZCBpbiBXZWJDb3JlIGxpa2UgQ29weSBhbmQgQ3V0IGZvciBNYWMgYWxzby4KLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NDk0Ci0gICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NjYwNTM3PgotCi0gICAgICAgIE9uIHRoZSBNYWMgcGxhdGZvcm0sIHRo
ZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcGFzdGUgb3BlcmF0aW9uIGlzIGFsbCBkb25lCi0gICAg
ICAgIGF0IHRoZSBXZWJLaXQgbGV2ZWwuIEluIG9yZGVyIHRvIHN1cHBvcnQgaXQgb24gV2ViS2l0
MiBpdCBpcyBuZWNlc3NhcnkgdG8KLSAgICAgICAgcmVmYWN0b3IgdGhlIGNvZGUgYW5kIG1vdmUg
dGhpcyBmdW5jdGlvbmFsaXR5IGF0IHRoZSBsZXZlbCBvZiBXZWJDb3JlIGxpa2UKLSAgICAgICAg
d2UgYWxyZWFkeSBoYXZlIG9uIFdpbmRvd3MuCi0gICAgICAgIFRoZSBvcmlnaW5hbCBjb2RlIHJl
bGllcyBvbiBzb21lIGluIEFwcEtpdCBmdW5jdGlvbnMgdGhhdCBjYWxsIGJhY2sgaW50bwotICAg
ICAgICBXZWJLaXQgY2F1c2luZyBwcm9ibGVtcyBpbiBXZWJLaXQyLiBBbGwgdGhpcyBmdW5jdGlv
bmFsaXR5IGhhcyBiZWVuIG1vdmVkCi0gICAgICAgIGF0IHRoZSBsZXZlbCBvZiB0aGUgZWRpdG9y
IGNsaWVudCB3aGVyZSBpdCBjYW4gYmUgZGVhbHQgd2l0aCBhcHByb3ByaWF0ZWx5LgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKTogQWRkZWQg
c3R1Yi4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgot
Ci0yMDEwLTA5LTEzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10g
UHJvdmlkZSB1bml0IHRlc3RzIGZvciBBdGtUZXh0J3MgdGV4dCBzZWxlY3Rpb24gZnVuY3Rpb25z
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzkxOQot
Ci0gICAgICAgIE5ldyB0ZXN0cyB0byBjaGVjayBnZXR0aW5nLCBzZXR0aW5nIGFuZCByZW1vdmlu
ZyB0ZXh0IHNlbGVjdGlvbnMKLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAg
KHRlc3RXZWtpdEF0a1RleHRTZWxlY3Rpb25zKTogTmV3IHVuaXQgdGVzdHMgdG8gY2hlY2sgYWxs
IHRoZSB0ZXh0Ci0gICAgICAgIHNlbGVjdGlvbiByZWxhdGVkIGZ1bmN0aW9ucyBhbHRvZ2V0aGVy
IHRocm91Z2ggYSBzaW5nbGUgdGVzdAotICAgICAgICBmdW5jdGlvbi4KLSAgICAgICAgKG1haW4p
OgotCi0gICAgICAgIE1ha2Ugc3VyZSB0aGF0IGNvZGUgZGVwZW5kYW50IG9uIGdldHRpbmcgaW5m
b3JtYXRpb24gZnJvbSB0aGUKLSAgICAgICAgY2xpcGJvYXJkIGdldHMgZXhlY3V0ZWQgb25seSB3
aGVuIHRoZXJlJ3MgYSBHREsgd2luZG93IGFzc29jaWF0ZWQKLSAgICAgICAgdG8gdGhlIHdlYnZp
ZXcgd2lkZ2V0LCBhcyB0aGF0J3Mgbm90IHRoZSBjYXNlIHdoZW4gZXhlY3V0aW5nIHRoZQotICAg
ICAgICB1bml0IHRlc3RzICh0aGUgd2VkYnZpZXcgaXMgbm90IGluc2lkZSBvZiBhbnkgdG9wbGV2
ZWwgd2luZG93KSBhbmQKLSAgICAgICAgd2lsbCBtYWtlIHRoZSB0ZXN0cyBjcmFzaCBpZiBub3Qg
dGFrZW4gaW50byBhY2NvdW50LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFu
Z2VkU2VsZWN0aW9uKToKLQotMjAxMC0wOS0xMSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIFtH
VEtdIE1ha2UgaW50cm9zcGVjdGlvbiB3b3JrIHdpdGggZy1vLWkgMC45LjUKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NTkwCi0KLSAgICAgICAgVXNl
IG5ldyB0eXBlIHN5bnRheCBhbmQgYnVtcCB2ZXJzaW9uIG51bWJlciBvZiB0aGUgZ2lyIGZpbGUu
Ci0KLSAgICAgICAgKiBKU0NvcmUuZ2lyLmluOgotCi0yMDEwLTA5LTEwICBKZXN1cyBTYW5jaGV6
LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8g
YXZvaWQgbGF5ZXIgdmlvbGF0aW9ucwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIyOTIKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5j
cHA6Ci0gICAgICAgICh3ZWJraXRfZG93bmxvYWRfc3RhcnQpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXRwcml2YXRlLmNwcDoKLSAgICAgICAgKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKToKLQot
MjAxMC0wOS0xMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgotCi0gICAgICAgIEZpeCBH
VEsgYnVpbGQuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2Z1bGxfY29udGVudF96b29tKToKLQotMjAxMC0wOS0xMCAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgotCi0gICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBjb25zdHJhaW50IGluIFdlYkNv
cmUgb2YgY2hvb3NpbmcgZWl0aGVyIHRleHQgem9vbSBvciBmdWxsIHBhZ2Ugem9vbS4KLSAgICAg
ICAgUHJlY3Vyc29yIHRvIDxyZGFyOi8vcHJvYmxlbS83NjYwNjU3PgotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU1MjIKLQotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfem9vbV9s
ZXZlbCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfYXBwbHlfem9vbV9sZXZlbCk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2Z1bGxfY29udGVudF96b29tKToKLQotMjAxMC0wOS0x
MCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFtHVEtdIEZpeCB3
YXJuaW5ncyBiZWNhdXNlIG9mIGJhZCBhc3NpZ25tZW50cyBpbiB0ZXN0YXRrLmMKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NTM4Ci0KLSAgICAgICAg
VXNlIEF0a09iamVjdCBhbmQgQXRrVGV4dCBpbnN0YW5jZXMgcHJvcGVybHkgaW4gdGhlIGNvZGUu
Ci0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrTGlz
dHNPZkl0ZW1zKToKLQotMjAxMC0wOS0xMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KLQotICAgICAgICBNb3ZlIGNv
ZGUgZnJvbSBXZWJLaXQtbGF5ZXIgdG8gRG9jdW1lbnRMb2FkZXIKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NTY5Ci0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50Ojpjb21taXR0ZWRMb2FkKToKLQotMjAxMC0wOS0xMCAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgot
Ci0gICAgICAgIE1haW4gcmVzb3VyY2UgYnl0ZXMgc2hvdWxkbid0IGJvdW5jZSB0aHJvdWdoIEZy
YW1lTG9hZGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTQ5NgotCi0gICAgICAgIE5vdyByZXR1cm4gdGhlIGJ5dGVzIHRvIHRoZSBEb2N1bWVudExv
YWRlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNvbW1pdHRlZExvYWQpOgot
Ci0yMDEwLTA5LTEwICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gUGxhY2VtZW50
IG5ldyAvIG1hbnVhbCBkZXN0cnVjdG9yIGludm9jYXRpb24gc2hvdWxkIGJlIHVzZWQgb24gcHJp
dmF0ZSBHT2JqZWN0IG1lbW9yeQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDU1NTAKLQotICAgICAgICBHTGliIGFsbG9jYXRlcyBhbmQgZGVhbGxvY2F0
ZXMgR09iamVjdCBwcml2YXRlIGRhdGEgc3RydWN0cyBpdHNlbGYuIFdoZW4KLSAgICAgICAgdGhv
c2Ugc3RydWN0cyBjb250YWluIEMrKyBtZW1iZXJzLCB0aGVpciBjb25zdHJ1Y3RvcnMgYW5kIGRl
c3RydWN0b3JzIGFyZSBub3QKLSAgICAgICAgY2FsbGVkLiBUaGlzIGlzIG5vdCBvbmx5IGRhbmdl
cm91cywgaXQgbWFrZXMgUmVmUHRyLXR5cGUgc21hcnQgcG9pbnRlcnMgbXVjaAotICAgICAgICBs
ZXNzIHVzZWZ1bC4gV2UgY2FuIGZpeCB0aGlzIHByb2JsZW0gYnkgY2FsbGluZyBwbGFjZW1lbnQg
bmV3IG9uIHRoZSBwcml2YXRlCi0gICAgICAgIGRhdGEgc3RydWN0IGR1cmluZyBpbnN0YW5jZSBp
bml0aWFsaXphdGlvbiBhbmQgY2FsbGluZyB0aGUgZGVzdHJ1Y3RvciBkdXJpbmcKLSAgICAgICAg
ZmluYWxpemF0aW9uLgotCi0gICAgICAgIFRoaXMgcGF0Y2ggdGFrZXMgdGhhdCBhcHByb2FjaCBh
bmQgc3dpdGNoZXMgcGxhaW4gY2hhciogbWVtYmVycyBvZgotICAgICAgICBXZWJLaXRXZWJWaWV3
ICh3aXRoIG1hbnVhbCBtZW1vcnkgYWxsb2NhdGlvbikgdG8gdXNlIENTdHJpbmcuCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOiBTd2l0Y2ggY2hhciogbWVtYmVycyB0byBDU3Ry
aW5nLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19maW5hbGl6ZSk6IE1hbnVhbGx5IGNhbGwgdGhlIGRlc3RydWN0b3Igb24gdGhl
IHByaXZhdGUKLSAgICAgICAgZGF0YS4gUmVtb3ZlIG1hbnVhbCBkZWFsbG9jYXRpb24gb2YgbWVt
YmVycyB3aGljaCBhcmUgbm93IENTdHJpbmcuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcXVl
cnlfdG9vbHRpcCk6IFVwZGF0ZSB0byByZWZsZWN0IENTdHJpbmcgY2hhbmdlLgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2luaXQpOiBVc2UgcGxhY2VtZW50IG5ldyB0byBpbml0aWFsaXplIEMr
KyBtZW1iZXJzIG9mCi0gICAgICAgIHRoZSBwcml2YXRlIGRhdGEgc2VjdGlvbi4KLSAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19nZXRfZW5jb2RpbmcpOiBVcGRhdGUgdG8gcmVmbGVjdCBDU3RyaW5n
IGNoYW5nZS4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfY3VzdG9tX2VuY29kaW5nKTog
RGl0dG8uCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfYWRkX3Jlc291cmNlKTogRGl0dG8uCi0g
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKTogRGl0dG8uCi0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfY2xlYXJfcmVzb3VyY2VzKTogRGl0dG8uCi0gICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfc2V0X3Rvb2x0aXBfdGV4dCk6IERpdHRvLgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2dldF9pY29uX3VyaSk6IERpdHRvLgotCi0yMDEwLTA5LTEwICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KLQotICAgICAgICBbR1RLXSBHb29nbGUgc2l0ZXMgZG8gbm90IGxpa2UgV2ViS2l0R1RL
KwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk2MTcK
LQotICAgICAgICBTcGVjaWFsLWNhc2UgR29vZ2xlIGRvbWFpbnMsIGFuZCBzcG9vZiBVc2VyLUFn
ZW50IHdoZW4gdGFsa2luZyB0bwotICAgICAgICB0aGVtLCB0byBzdG9wIGJlaW5nIHRyZWF0ZWQg
YXMgYSBzZWNvbmQtY2xhc3MgY2l0aXplbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZURvbWFp
bnNMaXN0KToKLSAgICAgICAgKFdlYktpdDo6aXNHb29nbGVEb21haW4pOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dXNlckFnZW50KTogSWYgZW5hYmxlLXNpdGUtc3BlY2lm
aWMtcXVpcmtzCi0gICAgICAgIGlzIGVuYWJsZWQsIHNlbmQgdGhlIHN0YW5kYXJkIFdlYktpdCBV
c2VyLUFnZW50IHN0cmluZywgZGlzcmVnYXJkaW5nIHRoZQotICAgICAgICBjdXN0b20gb25lIHNl
dCBieSB0aGUgYnJvd3NlciBmb3IgR29vZ2xlIGRvbWFpbnMuCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgot
ICAgICAgICAod2Via2l0UGxhdGZvcm0pOiBGaXggc3R5bGUsIGFuZCBzaW1wbGlmeS4KLSAgICAg
ICAgKHdlYmtpdE9TVmVyc2lvbik6IERpdHRvLgotICAgICAgICAod2Via2l0VXNlckFnZW50KTog
QWRkIHRoZSBWZXJzaW9uL3gueSBzdHJpbmcgU2FmYXJpIGhhcyBiZWVuCi0gICAgICAgIHVzaW5n
IHNpbmNlIFNhZmFyaSAyLjIuCi0KLTIwMTAtMDktMTAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAg
ICBGaXggY29tcGlsYXRpb24gd2l0aCBHVEsrIDMueC4KLQotICAgICAgICBHREsga2V5IG1hY3Jv
cyB3ZXJlIHJlbmFtZWQgZnJvbSBHREtfRk9PIHRvIEdES19LRVlfRk9PLCB3ZSBuZWVkCi0gICAg
ICAgIHRvIGluY2x1ZGUgdGhlIGNvbXBhdCBoZWFkZXIgcHJvdmlkZWQgaWYgd2Ugd2FudCB0byBr
ZWVwIHVzaW5nIHRoZQotICAgICAgICBvbGQgbmFtZXMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcDogaW5jbHVkZSBHdGtWZXJzaW9uaW5n
LmgKLQotMjAxMC0wOS0wOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KLQotICAgICAgICBNb3ZlIGZ1bmN0aW9ucyBmcm9t
IEZyYW1lIHRvIEVkaXRvciBhcyBwbGFubmVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NTIxOAotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF9oaWdobGlnaHRfdGV4dF9tYXRj
aGVzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfc2VsZWN0ZWRfdGV4dCk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKToKLSAgICAgICAgQ2hhbmdlZCBjYWxs
IHNpdGVzIHRvIHVzZSBlZGl0b3IoKS4KLQotMjAxMC0wOS0wOSAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmlu
c29uLgotCi0gICAgICAgIFtHVEtdIHRlc3RtaW1laGFuZGxpbmcgZmFsc2VseSBzdWNjZWVkcyB0
ZXN0aW5nIE9nZyBtaW1lIHR5cGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ1MzQ5Ci0KLSAgICAgICAgTWFrZSB0aGlzIGFjdHVhbGx5IHRlc3QgYW4g
b2dnIGZpbGUgcmVxdWVzdCBpbnN0ZWFkIG9mIHBkZiBhbmQKLSAgICAgICAgY2hhbmdlZCB0aGUg
ZXhwZWN0ZWQgcmVzdWx0IHRvIG1hdGNoIGxpYnNvdXAgY29udGVudC1zbmlmZmluZwotICAgICAg
ICByZXN1bHQgaW4gdGhlIGNhc2Ugb2Ygb2dnL3ZvcmJpcyBmaWxlLgotCi0gICAgICAgICogdGVz
dHMvdGVzdG1pbWVoYW5kbGluZy5jOgotICAgICAgICAobWltZV90eXBlX3BvbGljeV9kZWNpc2lv
bl9yZXF1ZXN0ZWRfY2IpOgotICAgICAgICAodGVzdF9taW1lX29nZyk6Ci0KLTIwMTAtMDktMDgg
IE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR3RrXSBBIGxpc3QgaXRlbSdz
IG51bWJlci9idWxsZXQgc2hvdWxkIG5vdCBiZSBhIGNoaWxkIG9mIHRoYXQgbGlzdCBpdGVtCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE5MAotCi0g
ICAgICAgIE5ldyB1bml0IHRlc3QgYWRkZWQuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6
Ci0gICAgICAgICh0ZXN0V2Via2l0QXRrTGlzdHNPZkl0ZW1zKTogTmV3IHRlc3QgdG8gY2hlY2sg
b3JkZXJlZC91bm9yZGVyZWQKLSAgICAgICAgbGlzdCBvZiBpdGVtcyBhcmUgcHJvcGVybHkgZXhw
b3NlZCB0byBBVCB0ZWNobm9sb2dpZXMuCi0gICAgICAgIChtYWluKToKLQotMjAxMC0wOS0wNyAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIEZpeCBzb21lIGZlYXR1cmUgZ3VhcmRz
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTMwMgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDogQWRkIEVOQUJMRShWSURFTykgZ3Vh
cmRzIGZvciB2aWRlbyBzcGVjaWZpYyBtZW1iZXJzLgotCi0yMDEwLTA5LTAzICBKZXN1cyBTYW5j
aGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQg
dG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKLQotICAgICAgICBBZGQgR1RLJ3Mgc3BlY2lmaWMgaW1w
bGVtZW50YXRpb24gb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dC4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotCi0yMDEwLTA5LTAzICBYYW4gTG9w
ZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5v
cm9uaGEuCi0KLSAgICAgICAgRGlhbG9nIHNlcGFyYXRvcnMgYXJlIGdvbmUgaW4gR1RLKyAzLngu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuYzoKLSAgICAgICAgKHNo
b3dfYXV0aF9kaWFsb2cpOgotCi0yMDEwLTA5LTAyICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNA
Y2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCi0KLSAg
ICAgICAgUkVHUkVTU0lPTjogQ3Jhc2ggb2NjdXJzIGF0IG9iamNfbXNnU2VuZCB3aGVuIGNsb3Np
bmcgYSB3aW5kb3cgdGhhdCBpcyBkaXNwbGF5aW5nIHRoZSB3ZWIgaW5zcGVjdG9yCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDIzMAotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktp
dDo6bm90aWZ5V2ViVmlld0Rlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpkZXN0cm95SW5zcGVjdG9yV2luZG93KToKLSAgICAgICAgKFdlYktpdDo6
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmNsb3NlV2luZG93KToKLSAgICAgICAgKFdlYktpdDo6
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmRpc2Nvbm5lY3RGcm9tQmFja2VuZCk6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmg6Ci0KLTIwMTAtMDgtMzEgIERh
dmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ4NjMsIGRpc2VudGFuZ2xlIHN0eWxlIHJlY2FsYyBmcm9tIGxheW91dCwgc28gdGhhdAotICAg
ICAgICB0aGUgZm9ybWVyIGNhbiBvY2N1ciBpbiBtb3JlIHBsYWNlcyB3aXRob3V0IGhhdmluZyB0
byBkbyB0aGUgbGF0dGVyLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2V4cG9zZV9ldmVudCk6Ci0KLTIwMTAtMDgtMzEgIE1h
cnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBbR1RLXSBJc29sYXRlIGFsbCBH
VEsrIHR5cGVkZWZzIGludG8gb25lIGZpbGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ0OTAwCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaDogUmVtb3ZlIEdUSysgdHlwZWRlZnMuCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5oOiBEaXR0by4KLQotMjAxMC0wOC0zMSAg
R3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4K
LQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgUHJlcGFy
YXRpb25zIGZvciB0aGUgMS4zLjQgcmVsZWFzZS4KLQotICAgICAgICAqIE5FV1M6Ci0gICAgICAg
ICogZG9jcy93ZWJraXRndGstZG9jcy5zZ21sOgotCi0yMDEwLTA4LTMxICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFVu
cmV2aWV3ZWQuIE1pbm9yIGRvY3VtZW50YXRpb24gdHlwbyBmaXguCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMTAtMDgtMzAgIEFsZWphbmRybyBHLiBDYXN0cm8g
IDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29u
LgotCi0gICAgICAgIFtHdGtdIGdka19kaXNwbGF5X2dldF9jb3JlX3BvaW50ZXIgYW5kIGdka19k
ZXZpY2VfZ2V0X2NvcmVfcG9pbnRlcgotICAgICAgICBhcmUgZGVwcmVjYXRlZAotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3ODcKLQotICAgICAgICBX
ZSBoYXZlIHJlcGxhY2VkIEd0a1ZlcnNpb25pbmcuY3BwIHdpdGggR3RrVmVyc2lvbmluZy5jIGFu
ZAotICAgICAgICBjcmVhdGVkIGEgZnVuY3Rpb24gKGdldERlZmF1bHRHREtQb2ludGVyRGV2aWNl
KSB0byBnZXQgdGhlIHBvaW50ZXIKLSAgICAgICAgb2YgdGhlIHdpbmRvdyB3aXRoIHRoZSBuZXcg
QVBJcy4gV2UgYWRkZWQgdGhhdCBmdW5jdGlvbiB0byBEUlQgYW5kCi0gICAgICAgIGNvcHlhbmRw
YXN0ZSB1bml0IHRlc3QuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0Y29weWFuZHBhc3RlLmM6Ci0g
ICAgICAgIChydW5QYXN0ZVRlc3RDYWxsYmFjayk6Ci0KLTIwMTAtMDgtMzAgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI2NjE5OC4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvNjYxOTgKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ0ODU2Ci0KLSAgICAgICAgSXQgbWFkZSB0ZXN0cyBjcmFzaCBvbiBRdCBib3QgKFJlcXVlc3Rl
ZCBieSBPc3N5XyBvbiAjd2Via2l0KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Om5vdGlmeVdlYlZpZXdEZXN0cm95
ZWQpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUlu
c3BlY3RvcldpbmRvdyk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
OjpjbG9zZVdpbmRvdyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
R3RrLmg6Ci0KLTIwMTAtMDgtMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KLQotICAgICAgICBSRUdS
RVNTSU9OOiBDcmFzaCBvY2N1cnMgYXQgb2JqY19tc2dTZW5kIHdoZW4gY2xvc2luZyBhIHdpbmRv
dyB0aGF0IGlzIGRpc3BsYXlpbmcgdGhlIHdlYiBpbnNwZWN0b3IKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MjMwCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0Ojpub3RpZnlX
ZWJWaWV3RGVzdHJveWVkKToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3cpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6Y2xvc2VXaW5kb3cpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6ZGlzY29ubmVjdEZyb21CYWNrZW5kKToKLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLQotMjAxMC0wOC0yNiAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KLQotICAgICAgICBVbnJldmlld2VkLiBSZXZlcnQg
cjY2MTAzIHNpbmNlIFF0IHRlc3RzIGFyZSBmYWlsaW5nLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6bm90aWZ5V2Vi
Vmlld0Rlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
OjpkZXN0cm95SW5zcGVjdG9yV2luZG93KToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQ6OmNsb3NlV2luZG93KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRHdGsuaDoKLQotMjAxMC0wOC0yNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlz
QGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgotCi0g
ICAgICAgIFJFR1JFU1NJT046IENyYXNoIG9jY3VycyBhdCBvYmpjX21zZ1NlbmQgd2hlbiBjbG9z
aW5nIGEgd2luZG93IHRoYXQgaXMgZGlzcGxheWluZyB0aGUgd2ViIGluc3BlY3RvcgotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyMzAKLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6Om5vdGlmeVdlYlZpZXdEZXN0cm95ZWQpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6Ci0gICAgICAgIChXZWJLaXQ6
Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpjbG9zZVdpbmRvdyk6Ci0gICAgICAgIChXZWJLaXQ6
Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkaXNjb25uZWN0RnJvbUJhY2tlbmQpOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotCi0yMDEwLTA4LTI2ICBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBXZWJLaXRHVEsrIG5lZWRzIHBy
b3BlciBpbnRyb3NwZWN0aW9uIGFubm90YXRpb24gZm9yIG1vc3QgdHlwZXMgYW5kIG1ldGhvZHMK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NTY1Ci0K
LSAgICAgICAgQWRkIGRvY3VtZW50YXRpb24gYW5kIGludHJvc3BlY3Rpb24gc3BlY2lmaWMgaW5m
b3JtYXRpb24gdG8gYSBmZXcKLSAgICAgICAgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kcy4KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAxMC0wOC0yNSAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
R3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIGNvbmZpcm0gZGlhbG9nIHNob3VsZCBz
aG93IE9LL0NhbmNlbCBpbnN0ZWFkIG9mIFllcy9ObyBmb3IgY29uc2lzdGVuY3kKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyODc3Ci0KLSAgICAgICAg
Q2hhbmdlIHRoZSBidXR0b24gbGFiZWxzIGZvciB0aGUgZmFsbGJhY2sgY29uZmlybWF0aW9uIGRp
YWxvZyB0byBiZQotICAgICAgICBPSyBhbmQgQ2FuY2VsLgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NjcmlwdF9kaWFsb2cp
OgotCi0yMDEwLTA4LTI1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAg
Q2Fpcm8gYW5kIEVGTCBwb3J0IHNob3VsZG4ndCBkZXBlbmQgb24gZ2xpYi4KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MzU0Ci0KLSAgICAgICAgUmVw
bGFjZSBvY2N1cnJlbmNlcyBvZiBHUmVmUHRyIGFuZCBhZG9wdEdSZWYgd2l0aCBQbGF0Zm9ybVJl
ZlB0ciBhbmQKLSAgICAgICAgYWRvcHRQbGF0Zm9ybVJlZi4KLQotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVu
dDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKToKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVu
dDo6c3RhcnREcmFnKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsu
aDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0g
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVz
dCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvck1JTUVUeXBlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNy
ZWF0ZVBsdWdpbik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29u
dHJvbGxlci5oOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6cG9wdWxhdGVTZXR0aW5nKToK
LSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpzdG9yZVNldHRpbmcpOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0gICAgICAgICh3ZWJraXRfZG93bmxvYWRf
ZXJyb3IpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ld193aXRoX2NvcmVfcmVxdWVzdCk6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHA6Ci0gICAgICAgICh3ZWJraXRf
bmV0d29ya19yZXNwb25zZV9uZXdfd2l0aF9jb3JlX3Jlc3BvbnNlKToKLQotMjAxMC0wOC0yNCAg
WGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFy
dGluIFJvYmluc29uLgotCi0gICAgICAgIFNldCBhIGRldmljZSB0byB0aGUgZXZlbnQgc3RydWN0
IHdoZW4gYnVpbGRpbmcgd2l0aCBHVEsrIDMueCwgaXQncwotICAgICAgICBtYW5kYXRvcnkuCi0K
LSAgICAgICAgKiB0ZXN0cy90ZXN0Y29weWFuZHBhc3RlLmM6Ci0gICAgICAgIChydW5QYXN0ZVRl
c3RDYWxsYmFjayk6Ci0KLTIwMTAtMDgtMjQgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgotCi0gICAgICAgIEJ1aWxkIGZpeCBmb3IgR1RLKy4KLQotICAgICAgICAqIHRl
c3RzL3Rlc3RrZXlldmVudHMuYzoKLSAgICAgICAgKGtleV9wcmVzc19ldmVudF9jYik6Ci0gICAg
ICAgIChrZXlfcmVsZWFzZV9ldmVudF9jYik6Ci0KLTIwMTAtMDgtMjQgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Bl
ei4KLQotICAgICAgICBbR1RLXSBHVEszOiBFdmVudFNlbmRlciBhbmQgQVBJIHRlc3RzIHNob3Vs
ZCB1c2UgZ2RrX2V2ZW50X25ldyB3aGVuIHN5bnRoZXNpemluZyBldmVudHMKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NTM0Ci0KLSAgICAgICAgRml4
IGFuIGlzc3VlIHdoZXJlIGEgR2RrRXZlbnQqIGlzIHRyZWF0ZWQgbGlrZSBhIEdka0V2ZW50Lgot
Ci0gICAgICAgICogdGVzdHMvdGVzdGtleWV2ZW50cy5jOgotICAgICAgICAoa2V5X3ByZXNzX2V2
ZW50X2NiKToKLSAgICAgICAgKGtleV9yZWxlYXNlX2V2ZW50X2NiKToKLQotMjAxMC0wOC0yNCAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIEdUSzM6IEV2ZW50U2VuZGVyIGFuZCBB
UEkgdGVzdHMgc2hvdWxkIHVzZSBnZGtfZXZlbnRfbmV3IHdoZW4gc3ludGhlc2l6aW5nIGV2ZW50
cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1MzQK
LQotICAgICAgICAqIHRlc3RzL3Rlc3Rjb3B5YW5kcGFzdGUuYzoKLSAgICAgICAgKHJ1blBhc3Rl
VGVzdENhbGxiYWNrKTogU3dpdGNoIHRvIHVzaW5nIGdka19ldmVudF9uZXcgYW5kIGFsc28gcmVm
ZXJlbmNlIHRoZSBHZGtXaW5kb3cuCi0gICAgICAgIHdoZW4gc2V0dGluZyBpdCBvbiB0aGUgZXZl
bnQuIEl0IGlzIGRlcmVmZXJlbmNlZCBieSBnZGtfZXZlbnRfZnJlZSguLi4pLgotICAgICAgICAq
IHRlc3RzL3Rlc3RoaXR0ZXN0cmVzdWx0LmM6Ci0gICAgICAgIChsb2FkX3N0YXR1c19jYik6IFN3
aXRjaCB0byB1c2luZyBnZGtfZXZlbnRfbmV3LgotCi0yMDEwLTA4LTI0ICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJ1
YmJlci1zdGFtcGVkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBEbyBub3QgaW5pdGlhbGl6ZSB0
aGUgR1NldHRpbmdzIG9iamVjdCBpbiB3ZWJraXRfaW5pdCAtIHRoZSBvdGhlcgotICAgICAgICBj
YWxsIHNpdGVzIGFyZSBhbHdheXMgY2FsbGVkIGluIHRoZSBtYWluIHRocmVhZCBzbyB0aGlzIGlz
Ci0gICAgICAgIHVubmVjZXNzYXJ5LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUu
Y3BwOgotICAgICAgICAod2Via2l0X2luaXQpOgotCi0yMDEwLTA4LTIwICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBG
ZWxkbWFuLgotCi0gICAgICAgIFdlYiBJbnNwZWN0b3I6IEluc3BlY3RvciB0ZXN0cyB3ZXJlIGRp
c2FibGVkIGZvciBHVEsuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00Mzk3NwotCi0gICAgICAgIEFsbG93IHNldHRpbmcgdGhlIGluc3BlY3RvciByZXNv
dXJjZXMgcGF0aCB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGVzCi0gICAgICAgIGFuZCBhZGQg
YSBtZXRob2QsIGluc3BlY3RvckZpbGVzUGF0aCwgdG8gdGhlIFdlYktpdCBJbnNwZWN0b3JDbGll
bnQgdGhhdAotICAgICAgICBlbmNhcHN1bGF0ZXMgdGhpcyBsb2dpYy4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Oklu
c3BlY3RvckNsaWVudDo6b3Blbkluc3BlY3RvckZyb250ZW5kKTogVXNlIHRoZSBuZXcgaW5zcGVj
dG9yRmlsZXNQYXRoIG1ldGhvZCB0bwotICAgICAgICBnZXQgdGhlIHBhdGggdG8gdGhlIHJlc291
cmNlLgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6Omluc3BlY3RvckZpbGVzUGF0
aCk6IEFkZGVkLgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6bG9j
YWxpemVkU3RyaW5nc1VSTCk6IFVzZSBpbnNwZWN0b3JGaWxlc1BhdGggbWV0aG9kLgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOiBBZGQgbWV0aG9kIGFuZCBt
ZW1iZXIgdmFyaWFibGVzIGZvciBjYWNoaW5nIHRoZSByZXN1bHQuCi0KLTIwMTAtMDgtMTkgIEd1
c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCi0KLSAgICAg
ICAgW0d0a10gRW5hYmxlIHZpZXcgbW9kZSBtZWRpYSBmZWF0dXJlIGxheW91dCB0ZXN0Ci0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzI3OAotCi0gICAg
ICAgIEFkZCB0aGUgdmlldy1tb2RlIHByb3BlcnR5LCB0byBjb250cm9sIHRoZSBXZWJDb3JlIHBh
Z2UncyB2aWV3TW9kZS4KLQotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLXNlY3Rpb25zLnR4dDoK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfcHJvcGVy
dHkpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X3NldF92aWV3X21vZGUpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dl
dF92aWV3X21vZGUpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6Ci0KLTIwMTAt
MDgtMTkgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBbR1N0cmVhbWVy
XSBHVEsgWE92ZXJsYXkgc3VwcG9ydCBpbiBHU3RyZWFtZXJHV29ybGQKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NDc0Ci0KLSAgICAgICAgTmV3IEZ1
bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIgb2JqZWN0LCBwcml2YXRlIGluIHRoZSB3ZWJ2aWV3LiBJ
dAotICAgICAgICBpcyBjcmVhdGVkIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyB0aGUgZnVsbHNjcmVl
biBidXR0b24gb2YgdGhlCi0gICAgICAgIHZpZGVvIGNvbnRyb2xzLiBWaWRlbyBpcyBkaXNwbGF5
ZWQgaW4gZnVsbHNjcmVlbiwgY29udHJvbHMgYXJlCi0gICAgICAgIGRpc3BsYXllZCB3aGVuIHRo
ZSB1c2VyIG1vdmVzIHRoZSBtb3VzZSBhbmQgd2hlbiB0aGUgdmlkZW8gaXMKLSAgICAgICAgcGF1
c2VkLiBUaGVyZSdzIGFsc28gYmFzaWMga2V5Ym9hcmQgc2hvcnRjdXRzIHN1cHBvcnQ6IEYvZiB0
bwotICAgICAgICBsZWF2ZSBmdWxsc2NyZWVuLCBzcGFjZSB0byB0b2dnbGUgcGxheS9wYXVzZSBh
bmQgdXAvZG93biB0bwotICAgICAgICBjb250cm9sIHZvbHVtZS4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVu
VmlkZW9Db250cm9sbGVyLmNwcDogQWRkZWQuCi0gICAgICAgIChoaWRlSHVkQ2FsbGJhY2spOgot
ICAgICAgICAob25GdWxsc2NyZWVuR3RrTW90aW9uTm90aWZ5RXZlbnQpOgotICAgICAgICAob25G
dWxsc2NyZWVuR3RrQWN0aXZlTm90aWZpY2F0aW9uKToKLSAgICAgICAgKG9uRnVsbHNjcmVlbkd0
a0NvbmZpZ3VyZUV2ZW50KToKLSAgICAgICAgKG9uRnVsbHNjcmVlbkd0a0Rlc3Ryb3kpOgotICAg
ICAgICAodG9nZ2xlUGxheVBhdXNlQWN0aXZhdGVkKToKLSAgICAgICAgKGV4aXRGdWxsc2NyZWVu
QWN0aXZhdGVkKToKLSAgICAgICAgKHByb2dyZXNzQmFyVXBkYXRlQ2FsbGJhY2spOgotICAgICAg
ICAodGltZVNjYWxlQnV0dG9uUHJlc3NlZCk6Ci0gICAgICAgICh0aW1lU2NhbGVCdXR0b25SZWxl
YXNlZCk6Ci0gICAgICAgICh0aW1lU2NhbGVWYWx1ZUNoYW5nZWQpOgotICAgICAgICAodm9sdW1l
VmFsdWVDaGFuZ2VkKToKLSAgICAgICAgKHBsYXllclZvbHVtZUNoYW5nZWRDYWxsYmFjayk6Ci0g
ICAgICAgIChwbGF5ZXJNdXRlQ2hhbmdlZENhbGxiYWNrKToKLSAgICAgICAgKEZ1bGxzY3JlZW5W
aWRlb0NvbnRyb2xsZXI6OkZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIpOgotICAgICAgICAoRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlcjo6fkZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIpOgotICAg
ICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0TWVkaWFFbGVtZW50KToKLSAgICAg
ICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6Omd0a0NvbmZpZ3VyZSk6Ci0gICAgICAgIChG
dWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpzaG93SHVkKToKLSAgICAgICAgKEZ1bGxzY3JlZW5W
aWRlb0NvbnRyb2xsZXI6OmhpZGVIdWQpOgotICAgICAgICAob25GdWxsc2NyZWVuR3RrS2V5UHJl
c3NFdmVudCk6Ci0gICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjplbnRlckZ1bGxz
Y3JlZW4pOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6dXBkYXRlSHVkUG9z
aXRpb24pOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6ZXhpdE9uVXNlclJl
cXVlc3QpOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6ZXhpdEZ1bGxzY3Jl
ZW4pOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6Y2FuUGxheSk6Ci0gICAg
ICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpwbGF5KToKLSAgICAgICAgKEZ1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXI6OnBhdXNlKToKLSAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRy
b2xsZXI6OnBsYXlTdGF0ZUNoYW5nZWQpOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJv
bGxlcjo6dG9nZ2xlUGxheSk6Ci0gICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjp2
b2x1bWUpOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6bXV0ZWQpOgotICAg
ICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6c2V0Vm9sdW1lKToKLSAgICAgICAgKEZ1
bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnZvbHVtZUNoYW5nZWQpOgotICAgICAgICAoRnVsbHNj
cmVlblZpZGVvQ29udHJvbGxlcjo6bXV0ZUNoYW5nZWQpOgotICAgICAgICAoRnVsbHNjcmVlblZp
ZGVvQ29udHJvbGxlcjo6Y3VycmVudFRpbWUpOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29u
dHJvbGxlcjo6c2V0Q3VycmVudFRpbWUpOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJv
bGxlcjo6ZHVyYXRpb24pOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6cGVy
Y2VudExvYWRlZCk6Ci0gICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpiZWdpblNl
ZWspOgotICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6ZG9TZWVrKToKLSAgICAg
ICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OmVuZFNlZWspOgotICAgICAgICAodGltZVRv
U3RyaW5nKToKLSAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OnVwZGF0ZUh1ZFBy
b2dyZXNzQmFyKToKLSAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6OmNyZWF0ZUh1
ZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5o
OiBBZGRlZC4KLSAgICAgICAgKEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXI6Om1lZGlhRWxlbWVu
dCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl92aWV3X2VudGVyX2Z1bGxzY3JlZW4pOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2V4
aXRfZnVsbHNjcmVlbik6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLQotMjAx
MC0wOC0xOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9y
YS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAg
ICAgW0dUS10gV2ViQmFja0ZvcndhcmRMaXN0J3MgbmV3X3dpdGhfd2ViX3ZpZXcgc2hvdWxkIG5v
dCBiZSBwdWJsaWMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQzODAyCi0KLSAgICAgICAgRGVwcmVjYXRlIHRoZSBjb25zdHJ1Y3Rvci4gVGhlIGludHJv
c3BlY3Rpb24gYW5ub3RhdGlvbiBoYXMgYmVlbgotICAgICAgICBmaXhlZCBpbiBhIHByZXZpb3Vz
IGNvbW1pdC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3Bw
OgotCi0yMDEwLTA4LTE3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
LQotICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgotCi0gICAgICAgIFdlYiBJ
bnNwZWN0b3I6IHJlcGxhY2UgaGFuZCB3cml0dGVuIEluc3BlY3RvckJhY2tlbmRTdHViLmpzIHdp
dGggZ2VuZXJhdGVkIG9uZS4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQzNzkxCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0
b3JGcm9udGVuZCk6Ci0KLTIwMTAtMDgtMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NTU5NS4K
LSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjU1OTUKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTYxCi0KLSAgICAgICAg
cXQgYnVpbGQgZmFpbGVkIChSZXF1ZXN0ZWQgYnkgbG9pc2xvIG9uICN3ZWJraXQpLgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6SW5zcGVjdG9yQ2xpZW50OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgotCi0yMDEwLTA4
LTE3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgotCi0gICAgICAgIFdlYiBJbnNwZWN0b3I6IHJl
cGxhY2UgaGFuZCB3cml0dGVuIEluc3BlY3RvckJhY2tlbmRTdHViLmpzIGJ5IGdlbmVyYXRlZCBv
bmUuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzc5
MQotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQpOgot
Ci0yMDEwLTA4LTE3ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgRml4IHRoZSBidWlsZHMgd2hl
biBIQVZFX0dTRVRUSU5HUyBpcyBkZWZpbmVkLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHBy
aXZhdGUuY3BwOgotICAgICAgICAoaXNTY2hlbWFBdmFpbGFibGUpOgotICAgICAgICAoaW5zcGVj
dG9yR1NldHRpbmdzKToKLQotMjAxMC0wOC0xNyAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGpl
c3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCi0KLSAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZp
b2xhdGlvbnMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyMjkyCi0KLSAgICAgICAgUHJlcGFyYXRpb246IEp1c3QgYWRkIHRoZSBmaWxlcyB0byB0aGUg
YnVpbGQgc3lzdGVtLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dEd0ay5oOiBBZGRlZC4KLSAgICAgICAgUGxhY2Vob2xkZXIgd2l0aCB0ZW50YXRpdmUg
Y29kZSB0aGF0IG1pZ2h0IGJlIGNoYW5nZWQgd2hlbiBsYW5kaW5nCi0gICAgICAgIHRoZSByZXN0
IG9mIGl0LgotCi0yMDEwLTA4LTE3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5v
cm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KLQotICAgICAgICBXZWJCYWNrRm9yd2FyZExpc3QuZ2V0X3tiYWNrfGZvcndhcmR9X2xp
c3Rfd2l0aF9saW1pdCBub3QgaW50cm9zcGVjdGFibGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMDU0Ci0KLSAgICAgICAgQW5ub3RhdGUgV2ViS2l0
V2ViQmFja0ZvcndhcmRMaXN0IGFuZCB0aGUgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHRvIGZldGNo
IGl0IGZyb20KLSAgICAgICAgdGhlIFdlYktpdFdlYlZpZXcuIE1vcmUgd2lsbCBmb2xsb3cuCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDogQW5ub3RhdGlv
bnMsIGFuZCBzbWFsbAotICAgICAgICBpbXByb3ZlbWVudHMgdG8gdGhlIGRvY3MuCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oOiBDb3VwbGUgZW1wdHkgbGluZXMg
bWlzc2luZy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMTAtMDgt
MTcgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBbR1RLXSBDbGVhbiB1
cCBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbWFnZUd0ay5jcHAKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MDY5Ci0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJ
bnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6IFN3aXRjaGVkIHRvIHVzaW5n
IHRoZSBuZXcgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORyBkZWZpbmUuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAoaW5zcGVjdG9yR1NldHRpbmdzKTog
RGl0dG8uCi0KLTIwMTAtMDgtMTcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21h
aWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2NTUwMC4KLSAgICAg
ICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjU1MDAKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTA4Ci0KLSAgICAgICAgUXQgYm90
cyBmYWlsZWQgdG8gY29tcGlsZS4gKFJlcXVlc3RlZCBieSBsb2lzbG8gb24gI3dlYmtpdCkuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6Ci0KLTIw
MTAtMDgtMTcgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCi0KLSAgICAgICAgV2ViIEluc3BlY3Rv
cjogcmVwbGFjZSBoYW5kIHdyaXR0ZW4gSW5zcGVjdG9yQmFja2VuZFN0dWIuanMgYnkgZ2VuZXJh
dGVkIG9uZS4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQzNzkxCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVu
ZCk6Ci0KLTIwMTAtMDgtMTcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25o
YUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29u
LgotCi0gICAgICAgIFtHVEtdIEdTZXR0aW5ncyBzdXBwb3J0IGFkZHMgYW5ub3lpbmcgd2Fybmlu
Z3Mgb24gc3lzdGVtcyB3aXRoIG9sZGVyIGdsaWIgdmVyc2lvbnMKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MDU2Ci0KLSAgICAgICAgVXNlICNpZmRl
ZiBpbnN0ZWFkIG9mICNpZiBmb3IgSEFWRV9HU0VUVElOR1MgdG8gYXZvaWQgd2FybmluZ3MKLSAg
ICAgICAgd2hlbiBpdCBpcyBub3QgZGVmaW5lZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUu
Y3BwOgotICAgICAgICAod2Via2l0X2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2
YXRlLmg6Ci0KLTIwMTAtMDgtMTIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9y
b25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmVhbGx5IGFkZCBhIG1pc3NpbmcgZmls
ZS4gSSB3aXNoIEkgd291bGQgcmVtZW1iZXIgcnVubmluZyBnaXQgYWRkCi0gICAgICAgIG9uIHRo
ZW0gYWZ0ZXIgYXBwbHlpbmcgYSBwYXRjaCA9KC4KLQotICAgICAgICAqIG9yZy53ZWJraXRndGsu
Z3NjaGVtYS54bWwuaW46IEFkZGVkLgotCi0yMDEwLTA4LTEyICBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBbR1RLXSBVc2UgR1NldHRpbmdzIHRvIHNh
dmUvcmVzdG9yZSBXZWIgSW5zcGVjdG9yIHNldHRpbmdzCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzUxMgotCi0gICAgICAgIFVzZSBHU2V0dGluZ3Mg
dG8gc2F2ZS9yZXN0b3JlIHNldHRpbmdzIHVzZWQgYnkgdGhlIFdlYiBJbnNwZWN0b3IuCi0gICAg
ICAgIEEgZmV3IGhlbHBlciBmdW5jdGlvbnMgd2VyZSBhZGRlZCB0byBoYXZlIHNldHRpbmdzIHRo
YXQgdXNlCi0gICAgICAgIGJvb2xlYW4gdmFsdWVzIGJlIGFjdHVhbCBib29sZWFucywgYW5kIGFs
c28gdG8gY29uZm9ybSB3aXRoIHRoZQotICAgICAgICBHU2V0dGluZ3MgbmFtaW5nIHJlcXVpcmVt
ZW50cyBmb3Iga2V5cy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OnRvR1NldHRpbmdOYW1lKToKLSAgICAgICAgKFdl
YktpdDo6dHJ1dGhTdHJpbmdGcm9tVmFyaWFudCk6Ci0gICAgICAgIChXZWJLaXQ6OnZhcmlhbnRG
cm9tVHJ1dGhTdHJpbmcpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OnBvcHVs
YXRlU2V0dGluZyk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6c3RvcmVTZXR0
aW5nKToKLSAgICAgICAgKiBvcmcud2Via2l0Lmd0ay5nc2NoZW1hLnhtbDogQWRkZWQuCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAoaW5zcGVjdG9yR1NldHRp
bmdzKToKLSAgICAgICAgKHdlYmtpdF9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJp
dmF0ZS5oOgotCi0yMDEwLTA4LTExICBKb29uZSBIdXIgIDxqb29uZUBrbGRwLm9yZz4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0dUS10gTGFzdCBI
YW5ndWwgbGV0dGVyIGlzIHR5cGVkIGFnYWluIHdoZW4gYSBjb21wb3NpdGlvbiBpcyBmaW5pc2hl
ZCB3aXRoIG1vdXNlIHByZXNzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDUxOAotCi0gICAgICAgIFdoZW4gYSBtb3VzZSBwcmVzcyBmaXJlcyBkdXJp
bmcgYSBJTUUgY29tcG9zaXRpb24sIHRoZSBjdXJyZW50IGNvbXBvc2l0aW9uIGNoYXJhY3RlciAg
IAotICAgICAgICBjYW4gYmUgZW50ZXJlZCB0d2ljZSBhdCB0aGUgcHJldmlvdXMgZWRpdGluZyBw
b3NpdGlvbiBhbmQgYSBuZXcgZWRpdGluZyBwb3NpdGlvbi4KLSAgICAgICAgQmVjYXVzZSB0aGUg
SU1FIGNvbW1pdCBzaWduYWwgaXMgZW1pdHRlZCBhZnRlciB0aGUgbW91c2UgcHJlc3MgZXZlbnQu
IAotICAgICAgICBUaGlzIHBhdGNoIGFsbG93cyB0byBwcmV2ZW50IHRoZSBjb21taXQgc2lnbmFs
IGR1cmluZyBhIGNvbXBvc2l0aW9uIHdoZW4gYSBtb3VzZSBwcmVzcyBmaXJlcy4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6IAotICAgICAgICAoV2ViS2l0
OjppbUNvbnRleHRDb21taXR0ZWQpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6Omhh
bmRsZUlucHV0TWV0aG9kS2V5ZG93bik6IEFsbG93IHRvIGFjY2VwdCB0aGUgbmV4dCBjb21wb3Np
dGlvbiBjb21taXQuCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRN
ZXRob2RNb3VzZVByZXNzKTogQWRkZWQgZm9yIGhhbmRsaW5nIElNRSB3aGVuIGEgbW91c2UgcHJl
c3MgZmlyZXMuCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KTog
IEluaXRpYWxpemUgbV9wcmV2ZW50TmV4dENvbXBvc2l0aW9uQ29tbWl0Ci0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6cHJldmVudE5leHRDb21wb3NpdGlvbkNvbW1pdCk6IEFkZGVkIGZvciBjaGVja2luZyB3
aGV0aGVyIHNraXBwaW5nIGEgY29tbWl0LgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19idXR0b25fcHJlc3NfZXZlbnQpOiBDYWxs
IGhhbmRsZUlucHV0TWV0aG9kTW91c2VQcmVzcygpIAotCi0yMDEwLTA4LTExICBHdXN0YXZvIE5v
cm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KLQotICAgICAgICBTbWFsbCBpbXByb3ZlbWVu
dCB0byB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZ2VvbG9jYXRpb24tcG9saWN5LWRlY2lzaW9u
LXJlcXVlc3RlZAotICAgICAgICBzaWduYWwsIHN0YXRpbmcgbW9yZSBjbGVhcmx5IHdoYXQgaXMg
ZXhwZWN0ZWQgZnJvbSB0aGUgaGFuZGxlci4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLQotMjAxMC0w
OC0xMSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5j
by51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAg
W0dUS10gR2VvbG9jYXRpb24gcG9saWN5IGRlY2lzaW9uIG9iamVjdCBsZWFraW5nCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00Mzg4NAotCi0gICAgICAg
IFVzZSBHUmVmUHRyIG9uIHRoZSBwb2xpY3kgZGVjaXNpb24gb2JqZWN0IHRvIGZpeCB0aGUgbGVh
ay4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKToKLQotMjAxMC0wOC0xMCAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCi0KLSAgICAgICAgQWRkIHN1c3Bl
bmRBbmltYXRpb25zL3Jlc3VtZUFuaW1hdGlvbiBBUEkgdG8gRFJUCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzczMwotICAgICAgICAKLSAgICAgICAg
R3RrIHNwZWNpZmljIEFQSS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJf
ZnJhbWVfc3VzcGVuZF9hbmltYXRpb25zKToKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfcmVz
dW1lX2FuaW1hdGlvbnMpOgotCi0yMDEwLTA4LTEwICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJh
Y2xvdWdoQGFwcGxlLmNvbT4KLQotICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBTYW0gV2Vpbmln
LgotCi0gICAgICAgIEJ1ZyA0Mzc4NiAtIE1vdmUgQXRvbWljU3RyaW5nSGFzaCBmcm9tIFdlYkNv
cmUgdG8gV1RGCi0gICAgICAgIEFsc28gcmVtb3ZlIGRlcHJlY2F0ZWQgc3RyaW5nIGhlYWRlcnMg
ZnJvbSBXZWJDb3JlL3BsYXRmb3JtL3RleHQuCi0KLSAgICAgICAgKiBnZG9tL0NvbnZlcnRUb0dD
aGFyUHJpdmF0ZS5oOgotCi0yMDEwLTA4LTA2ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xv
dWdoQGFwcGxlLmNvbT4KLQotICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBTYW0gV2VpbmlnCi0K
LSAgICAgICAgQnVnIDQzNTk0IC0gQWRkIHN0cmluZyBmb3J3YXJkcyB0byBGb3J3YXJkLmgKLSAg
ICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gcmVtb3ZlIGZvcndhcmQgZGVjbGFyYXRpb25zIGZvciB0
aGVzZSBjbGFzc2VzIGZyb20KLSAgICAgICAgV2ViQ29yZS9XZWJLaXQgKGEgc3RlcCBpbiBtb3Zp
bmcgdGhlc2UgY2xhc3MgZnJvbSBXZWJDb3JlOjogdG8gV1RGOjopLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmg6Ci0KLTIwMTAtMDgtMDkgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhh
biBMb3Blei4KLQotICAgICAgICBbZ3RrXSBndGtfaW1fY29udGV4dF9mb2N1c19pbigpIHNob3Vs
ZCBvbmx5IGJlIGNhbGxlZCB3aGVuIGFuIGlucHV0LWFibGUgZWxlbWVudCBoYXMgZm9jdXMKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzNjAyCi0KLSAg
ICAgICAgT25seSBjYWxsIGd0a19pbV9jb250ZXh0X2ZvY3VzX2luKCkgd2hlbiB3ZSBmb2N1cyBh
IGZyYW1lIHdoaWNoIGlzIGN1cnJlbnRseSBpbgotICAgICAgICBhbiBlZGl0YWJsZSBub2RlLiAK
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19mb2N1c19pbl9ldmVudCk6IENvbmRpdGlvbmFsaXplIGNhbGwgdG8gZ3RrX2ltX2Nv
bnRleHRfZm9jdXNfaW4oKS4KLQotMjAxMC0wOC0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8
Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBY
YW4gTG9wZXouCi0KLSAgICAgICAgVXNlIHRoZSBuZXcgcGF0aHMsIGFuZCBhbHNvIGZpeCB0aGUg
cGF0aCBmb3IgbG9jYWxpemVkU3RyaW5ncy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6
b3Blbkluc3BlY3RvckZyb250ZW5kKToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6OmxvY2FsaXplZFN0cmluZ3NVUkwpOgotCi0yMDEwLTA4LTA2ICBKZXNzaWUgQmVy
bGluICA8amJlcmxpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUm9sbCBvdXQgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjQ4MDEsIHdoaWNoIGJyb2tlIHRoZSBTYWZhcmkgV2luZG93
cyBCdWlsZC4KLSAgICAgICAgVW5yZXZpZXdlZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0luc3BlY3RvckNsaWVudEd0ay5oOgotCi0yMDEwLTA4LTA1ICBYYW4gTG9wZXogIDx4bG9wZXpA
aWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAg
ICAgICAgW0dUS10gVXNlIGNvcnJlY3QgcGF0aCBmb3IgSW5zcGVjdG9yIGRhdGEgZmlsZXMgaW4g
R1RLKzMueCBidWlsZHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQzNDQ1Ci0KLSAgICAgICAgVXNlIHRoZSByaWdodCBkYXRhIHBhdGggZm9yIGluc3Bl
Y3RvciBmaWxlcyB3aGVuIGJ1aWxkaW5nIHdpdGgKLSAgICAgICAgR1RLKyAzLnguCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6Ci0KLTIwMTAtMDgt
MDMgIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgotCi0gICAgICAgIEZpeCBtaXNzcGVs
bGVkIHdvcmQgJ3RlaCcgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBYU1MgQXVkaXRvciBzZXR0
aW5nLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0KLTIwMTAtMDgtMDMgIFhhbiBMb3Bl
eiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9y
b25oYS4KLQotICAgICAgICBbR1RLXSBGaXggRE9NIGV2ZW50IGRpc3BhdGNoCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDg0NwotCi0gICAgICAgIFRl
c3QgRE9NIGV2ZW50IGRpc3BhdGNoLgotCi0gICAgICAgICogdGVzdHMvdGVzdGRvbWRvbXdpbmRv
dy5jOgotICAgICAgICAobG9hZF9ldmVudF9jYWxsYmFjayk6Ci0gICAgICAgICh0ZXN0X2RvbV9k
b212aWV3X3NpZ25hbHMpOgotICAgICAgICAoY2xpY2tlZF9jYik6Ci0gICAgICAgIChsb2FkX3N0
YXR1c19jYWxsYmFjayk6Ci0gICAgICAgICh0ZXN0X2RvbV9kb212aWV3X2Rpc3BhdGNoX2V2ZW50
KToKLSAgICAgICAgKG1haW4pOgotCi0yMDEwLTA4LTAzICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEg
IDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBEb2VzIG5vdCBwYWludCB0aGUgbm9kZSBoaWdo
bGlnaHQgdXNlZCBieSB0aGUgaW5zcGVjdG9yCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MzQyOQotCi0gICAgICAgIEltcGxlbWVudCBoaWdobGlnaHRp
bmcgdGhlIG5vZGVzIHdoZW4gdXNpbmcgdGhlIGluc3BlY3Rvci4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3Bl
Y3RvckNsaWVudDo6aGlnaGxpZ2h0KToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50
OjpoaWRlSGlnaGxpZ2h0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50KToKLQotMjAxMC0wOC0wMyAgWGFu
IExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2
byBOb3JvbmhhLgotCi0gICAgICAgIFVwZGF0ZSB1bml0IHRlc3RzIG5vdyB0aGF0IHN0cmluZyBw
YXJhbWV0ZXJzIGFyZSAnY29uc3QgY2hhcionLgotCi0gICAgICAgICogdGVzdHMvdGVzdGRvbWRv
Y3VtZW50LmM6Ci0gICAgICAgICh0ZXN0X2RvbV9kb2N1bWVudF90aXRsZSk6Ci0gICAgICAgICh0
ZXN0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWUpOgotICAgICAgICAodGVz
dF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X2NsYXNzX25hbWUpOgotICAgICAgICAodGVz
dF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQpOgotICAgICAgICAqIHRlc3RzL3Rlc3Rk
b21ub2RlLmM6Ci0gICAgICAgICh0ZXN0X2RvbV9ub2RlX2luc2VydGlvbik6Ci0KLTIwMTAtMDgt
MDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBEUlQgaW1wbGVtZW50IGV4ZWND
b21tYW5kKCkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM1MzUxCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOiBBZGQgc29tZSBwcml2
YXRlIG1ldGhvZHMgZm9yIHRoZSBEUlQgd2hpY2ggZW5hYmxlCi0gICAgICAgIExheW91dFRlc3RD
b250cm9sbGVyLmV4ZWNDb21tYW5kIGFuZCBMYXlvdXRUZXN0Q29udHJvbGxlci5pc0NvbW1hbmRF
bmFibGVkOgotICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9jb3JlX2NvbW1hbmRfYnlf
bmFtZSBhbmQgd2Via2l0X3dlYl92aWV3X2lzX2NvbW1hbmRfZW5hYmxlZC4KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6IAotICAgICAgICAod2Via2l0X3dlYl92aWV3X2V4ZWN1
dGVfY29yZV9jb21tYW5kX2J5X25hbWUpOiBhZGRlZC4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19pc19jb21tYW5kX2VuYWJsZWQpOiBBZGRlZC4KLQotMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGlu
aSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBGaXNoZXIuCi0KLSAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0
aW9uIHRvIFdlYktpdDIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyNTkyCi0KLSAgICAgICAgQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNp
YmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKLSAgICAgICAg
aW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVu
dCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bwotICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRo
b2RzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51
KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUp
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDEwLTA4
LTAyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gQ3JlYXRlIGEgZnJhbWUtY3Jl
YXRlZCBzaWduYWwKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQzMjg0Ci0KLSAgICAgICAgQWRkIGEgZnJhbWUtY3JlYXRlZCBzaWduYWwsIHdoaWNoIHdp
bGwgYWxsb3cgZGV2ZWxvcGVycyB0byB0cmFjawotICAgICAgICB0aGUgYmVnaW5uaW5nIG9mIGEg
ZnJhbWUgbGlmZWN5Y2xlIGFuZCBhdHRhY2ggc2lnbmFsIGhhbmRsZXJzIHRvCi0gICAgICAgIGFs
bCBuZXcgZnJhbWVzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJh
bWUpOiBFbWl0IHRoZSBmcmFtZS1jcmVhdGVkIHNpZ25hbC4KLSAgICAgICAgKiB0ZXN0cy90ZXN0
d2ViZnJhbWUuYzogQWRkIGEgdGVzdCB3aGljaCB2ZXJpZmllcyB0aGF0IHRoZSBjb3JyZWN0IG51
bWJlciBvZgotICAgICAgICBmcmFtZS1jcmVhdGVkIHNpZ25hbHMgaXMgZmlyZWQgd2hlbiBhIHBh
Z2Ugd2l0aCBpZnJhbWVzIGxvYWRzLgotICAgICAgICAoY3JlYXRlRnJhbWVTaWduYWxUZXN0RnJh
bWVDcmVhdGVkQ2FsbGJhY2spOiBBZGRlZC4KLSAgICAgICAgKGNyZWF0ZUZyYW1lU2lnbmFsVGVz
dFRpbWVvdXQpOiBBZGRlZC4KLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9mcmFtZV9jcmVhdGVk
X3NpZ25hbCk6IEFkZGVkLgotICAgICAgICAobWFpbik6IEFkZCBhIHJlZmVyZW5jZSB0byB0aGUg
bmV3IHRlc3QuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDogRGUtbm9ybWFsaXpl
IHdlYmtpdF93ZWJfZnJhbWVfaW5pdF93aXRoX3dlYl92aWV3IGludG8KLSAgICAgICAgdGhlIG9u
ZSBwbGFjZSB0aGF0IGl0IGlzIHVzZWQsIHNvIHRoYXQgdGhlIGZyYW1lLWNyZWF0ZWQgc2lnbmFs
IG1heSBiZSBmaXJlZCB0aGVyZS4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3Bw
OiBSZW1vdmUgd2Via2l0X3dlYl9mcmFtZV9pbml0X3dpdGhfd2ViX3ZpZXcuCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOiAKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFz
c19pbml0KTogQWRkIHRoZSBmcmFtZS1jcmVhdGVkIHNpZ25hbCBkZWNsYXJhdGlvbi4KLQotMjAx
MC0wOC0wMiAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCi0KLSAgICAgICAgW0dUS10gSW1wbGVt
ZW50IHN1cHBvcnQgZm9yIGdldF9jaGFyYWN0ZXJfZXh0ZW50cyBhbmQgZ2V0X3JhbmdlX2V4dGVu
dHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1Njc3
Ci0KLSAgICAgICAgQWRkZWQgbmV3IHVuaXQgdGVzdHMgdG8gY2hlY2sgZ2V0X2NoYXJhY3Rlcl9l
eHRlbnRzIGFuZAotICAgICAgICBnZXRfcmFuZ2VfZXh0ZW50cyBmdW5jdGlvbnMgZm9yIHRoZSBB
VEtfVEVYVCBpbnRlcmZhY2UKLQotICAgICAgICBCYXNlZCBvbiBhIHByZXZpb3VzIHBhdGNoIGJ5
IEpvYW5tYXJpZSBEaWdncy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAg
KHRlc3Rfd2Via2l0X2F0a19nZXRfZXh0ZW50cyk6Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0w
OC0wMiAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KLQotICAgICAgICBTcGVj
dWxhdGl2ZSByZXZlcnQgb2YgNjQ0MjUgZHVlIHRvIENocm9taXVtIGluc3RhYmlsaXR5Ci0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzM0NwotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAxMC0wNy0yNyAgTHVpeiBBZ29zdGlu
aSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBGaXNoZXIuCi0KLSAgICAgICAgUG9wdXBNZW51IHJlZmFjdG9yaW5nIGluIHByZXBhcmF0
aW9uIHRvIFdlYktpdDIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyNTkyCi0KLSAgICAgICAgQXMgQ2hyb21lQ2xpZW50IHdhcyBtYWRlIHJlc3BvbnNp
YmxlIGZvciBwcm92aWRpbmcgUG9wdXBNZW51IGFuZCBTZWFyY2hQb3B1cE1lbnUKLSAgICAgICAg
aW5zdGFuY2VzLCBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgaW5oZXJpdCBmcm9tIENocm9tZUNsaWVu
dCBuZWVkZWQgdG8gYmUgY2hhbmdlZCB0bwotICAgICAgICBpbXBsZW1lbnQgdGhlIG5ldyBtZXRo
b2RzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51
KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUp
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDEwLTA3
LTMxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQotICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjQ0MjIuCi0gICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzY0NDIyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzMwNAotCi0gICAgICAgIEJ1aWxkIGZpeGVzIGFyZSBuZWVkZWQg
Zm9yIFNub3cgTGVvcGFyZCBhbmQgV2luZG93cy4KLSAgICAgICAgKFJlcXVlc3RlZCBieSBsY2Eg
b24gI3dlYmtpdCkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDEw
LTA3LTI3ICBMdWl6IEFnb3N0aW5pICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KLQotICAgICAgICBQb3B1cE1lbnUgcmVm
YWN0b3JpbmcgaW4gcHJlcGFyYXRpb24gdG8gV2ViS2l0MgotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI1OTIKLQotICAgICAgICBBcyBDaHJvbWVDbGll
bnQgd2FzIG1hZGUgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBQb3B1cE1lbnUgYW5kIFNlYXJj
aFBvcHVwTWVudQotICAgICAgICBpbnN0YW5jZXMsIGNvbmNyZXRlIGNsYXNzZXMgdGhhdCBpbmhl
cml0IGZyb20gQ2hyb21lQ2xpZW50IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvCi0gICAgICAgIGlt
cGxlbWVudCB0aGUgbmV3IG1ldGhvZHMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVQb3B1cE1lbnUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmg6Ci0KLTIwMTAtMDctMzAgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0
Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBLaWx6ZXIuCi0KLSAgICAgICAgTGlt
aXQgQXBwbGljYXRpb25DYWNoZSBUb3RhbCBhbmQgUGVyLU9yaWdpbiBTdG9yYWdlIENhcGFjaXR5
IChRdW90YXMpCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDYyNwotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoK
LTIwMTAtMDctMjYgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KLQotICAgICAgICBQYWdlIGNsaWVudHMgc2hv
dWxkIGJlIHBhc3NlZCB0byBQYWdlIGNvbnN0cnVjdG9yIHZpYSBzdHJ1Y3R1cmUgb2YgcG9pbnRl
cnMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyODM0
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfaW5pdCk6Ci0KLTIwMTAtMDctMTYgIFpoZSBTdSAgPHN1emhlQGNocm9taXVtLm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBSRUdSRVNT
SU9OKHI2MTQ4NCk6IEJyb2tlIGZvY3VzIGJlaGF2aW91ciBvbiBRdCBhbmQgcHJvYmFibHkgb3Ro
ZXIgcGxhdGZvcm1zCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MjI1MwotCi0gICAgICAgIER1bW15IGltcGxlbWVudGF0aW9uIG9mIEVkaXRvckNsaWVu
dDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OndpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuaDoKLQotMjAxMC0wNy0xNiAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3Jn
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KLQotICAgICAgICBVbmNvbW1l
bnQgYW4gYXNzZXJ0IHRoYXQgYnJva2UgZHVlIHRvIHI2MzEwMC4KLQotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTgKLQotICAgICAgICAqIHRlc3Rz
L3Rlc3R3ZWJ2aWV3LmM6Ci0KLTIwMTAtMDctMTQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBQYXRjaCBm
b3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjMyCi0gICAgICAg
IE1ha2UgY2hhbmdpbmcgQ3Vyc29ycyB3b3JrIGluIFdlYktpdDIuCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OnNldEN1cnNvcik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmg6Ci0gICAgICAgIENoYW5nZSBwcm90b3R5cGUgdG8gbWF0Y2ggbmV3IG9uZS4KLQotMjAx
MC0wNy0xMiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFtHVEtdIHI2
MzEwMCBicm9rZSB0aGUgdGVzdHdlYnZpZXcgdGVzdAotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIxMTQKLQotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJ2
aWV3LmM6IERpc2FibGUgYSBmYWlsaW5nIGFzc2VydGlvbiBpbiB0ZXN0X3dlYmtpdF93ZWJfdmll
d19hZGp1c3RtZW50cwotICAgICAgICB1bnRpbCB3ZSBjYW4gZ2V0IHRvIHRoZSBib3R0b20gb2Yg
dGhlIGZhaWx1cmUuCi0KLTIwMTAtMDctMTIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBVcGRh
dGUgZm9yIDEuMy4zCi0KLSAgICAgICAgKiBORVdTOgotCi0yMDEwLTA3LTEyICBYYW4gTG9wZXog
IDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9u
aGEuCi0KLSAgICAgICAgRml4IGNvbXBpbGF0aW9uIHdpdGggc2VhbGVkIEdUSysuCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
ZHJhZ19tb3Rpb24pOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZGF0YV9yZWNlaXZl
ZCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19kcm9wKToKLQotMjAxMC0wNy0xMSAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIFdlYktpdFdlYlZpZXcgc2hvdWxkIHN1
cHBvcnQgZHJvcHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM5ODQzCi0KLSAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGRyb3BwaW5nIGNvbnRlbnQgb250
byBHVEsrIFdlYlZpZXdzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAg
ICAgICAgQWRkIGEgRHJvcHBpbmdDb250ZXh0IHN0cnVjdCB0byBrZWVwIHRyYWNrIG9mIGRyb3Ag
ZGF0YSB3aGlsZSB0aGUgZHJvcCBpcwotICAgICAgICBpbiBwcm9ncmVzcy4gSGF2ZSBXZWJLaXRX
ZWJWaWV3IGtlZXAgYSBtYXAgb2YgR2RrRHJhZ0NvbnRleHRzIHRvIERyb3BwaW5nQ29udGV4dHMu
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBBZGQgbmVjZXNzYXJ5IGluY2x1
ZGVzIGFuZCBnbG9iYWxQb2ludEZvckNsaWVudFBvaW50IGhlbHBlci4KLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19wb3B1cF9tZW51X2hhbmRsZXIpOiBVc2UgZ2xvYmFsUG9pbnRGb3JDbGllbnRQ
b2ludCBoZWxwZXIuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6IFByb3Blcmx5
IGNsZWFuIHVwIGRyb3BwaW5nQ29udGV4dHMgbWVtYmVyLgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2ZpbmFsaXplKTogRGVsZXRlIGRyb3BwaW5nQ29udGV4dCBtZW1iZXIuCi0gICAgICAgIChn
bG9iYWxQb2ludEZvckNsaWVudFBvaW50KTogQWRkZWQuCi0gICAgICAgIChkb0RyYWdMZWF2ZUxh
dGVyKTogQWRkZWQuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19sZWF2ZSk6IEFkZGVk
LgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfbW90aW9uKTogQWRkZWQuCi0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19kYXRhX3JlY2VpdmVkKTogQWRkZWQuCi0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfZHJhZ19kcm9wKTogQWRkZWQuCi0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfY2xhc3NfaW5pdCk6IENvbm5lY3QgbmV3IGRyb3Agc2lnbmFsIGhhbmRsZXJzIHRvIHRoZSB3
aWRnZXQgZGVmaW5pdGlvbi4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KTogU2V0IHVw
IHRoZSB3aWRnZXQgYXMgYSBkcm9wIGRlc3RpbmF0aW9uIGFuZCBpbml0aWFsaXplIGRyb3BwaW5n
Q29udGV4dHMuCi0KLTIwMTAtMDctMDcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCi0KLSAgICAgICAgUGF0Y2ggZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTc3MgotICAgICAgICBB
ZGQgYmFzaWMgcGlwaW5nIGZvciBCYWNrRm9yd2FyZENvbnRyb2xsZXJDbGllbnQuCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
aW5pdCk6Ci0KLTIwMTAtMDYtMTkgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0u
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCi0KLSAgICAgICAg
V2ViSW5zcGVjdG9yOiBqcyBmdW5jdGlvbiBuYW1lIHdhcyBmaXhlZC4KLSAgICAgICAgZGlzcGF0
Y2hNZXNzYWdlVG9Gcm9udGVuZCAtPiBkaXNwYXRjaE1lc3NhZ2VGcm9tQmFja2VuZC4KLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjc1Ci0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JDbGllbnQ6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6Ci0KLTIwMTAtMDYt
MjMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBbR1RLXSBTZXBhcmF0
ZSBEZXJpdmVkU291cmNlcyBwZXItcHJvamVjdAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDExMDkKLQotICAgICAgICBTZXBhcmF0ZSBXZWJLaXRHVEsr
IERlcml2ZWRTb3VyY2VzIGludG8gcGVyLXByb2plY3Qgc3ViZGlyZWN0b3JpZXMgdG8gcHJlcGFy
ZQotICAgICAgICBmb3IgcHJvcGVybHkgYnVpbGRpbmcgV2ViS2l0Mi4KLQotICAgICAgICAqIHdl
YmtpdG1hcnNoYWwubGlzdDogVG91Y2ggdGhpcyBmaWxlIHRvIGZvcmNlIGEgcmVidWlsZCBvZiB0
aGUgbWFyc2hhbGluZyBjb2RlLgotCi0yMDEwLTA3LTAxICBYYW4gTG9wZXogIDx4bG9wZXpAaWdh
bGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAg
ICAgW0dUS10gU3RvcCB1c2luZyBHZGtSZWdpb24gaW4gMy54IG1vZGUKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNDYzCi0KLSAgICAgICAgTWFrZSB1
cyBjb21waWxlIHdpdGhvdXQgdXNpbmcgR2RrUmVnaW9uLCBzaW5jZSBpdCdzIGdvbmUgZnJvbSBH
VEsrCi0gICAgICAgIDMueC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xsKToKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
ZXhwb3NlX2V2ZW50KToKLQotMjAxMC0wNy0wMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29u
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAg
IFtHVEtdIENvbnZlcnQgV2ViS2l0V2ViVmlldydzIHByaXZhdGUgZHJhZ2dpbmdEYXRhT2JqZWN0
cyBtZW1iZXIgdG8gYSBwb2ludGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDMzMwotCi0gICAgICAgIENvbnZlcnQgZHJhZ2dpbmdEYXRhT2JqZWN0
cyB0byBhIHBvaW50ZXIuIFRoZSBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciBvZiB0aGUKLSAg
ICAgICAgSGFzaE1hcCBzaG91bGQgYmUgY2FsbGVkIGV4cGxpY2l0bHkuIEdPYmplY3QgbWVtb3J5
IGFsbG9jYXRpb24gZG9lcyBub3QgZG8gdGhpcy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0RyYWdDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50OjpzdGFydERy
YWcpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UpOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZW5kKToKLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19kcmFnX2RhdGFfZ2V0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKLQot
MjAxMC0wNi0zMCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjYyMjI2LgotICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC82MjIyNgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzMzMKLQotICAgICAgICBUaGlzIGNoYW5nZSBjYXVzZWQg
MTMgbmV3IGNyYXNoZXJzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZHJhZ19lbmQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZGF0
YV9nZXQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOgotCi0yMDEwLTA2LTMwICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gQ29udmVydCBXZWJLaXRXZWJWaWV3J3Mg
cHJpdmF0ZSBkcmFnZ2luZ0RhdGFPYmplY3RzIG1lbWJlciB0byBhIHBvaW50ZXIKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzMzCi0KLSAgICAgICAg
Q29udmVydCBkcmFnZ2luZ0RhdGFPYmplY3RzIHRvIGEgcG9pbnRlci4gVGhlIGNvbnN0cnVjdG9y
IGFuZCBkZXN0cnVjdG9yIG9mIHRoZQotICAgICAgICBIYXNoTWFwIHNob3VsZCBiZSBjYWxsZWQg
ZXhwbGljaXRseS4gR09iamVjdCBtZW1vcnkgYWxsb2NhdGlvbiBkb2VzIG5vdCBkbyB0aGlzLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHBy
aXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19l
bmQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZGF0YV9nZXQpOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2luaXQpOgotCi0yMDEwLTA2LTMwICBYYW4gTG9wZXogIDx4bG9wZXpA
aWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAg
ICAgICAgW0dUS10gVW5pdCB0ZXN0IGZvciBET00gaW5zZXJ0aW9uIG1ldGhvZHMKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNDk1Ci0KLSAgICAgICAg
QWRkIHVuaXQgdGVzdCBmb3Igd2Via2l0X2RvbV9ub2RlX3JlbW92ZV9jaGlsZC4KLQotICAgICAg
ICAqIHRlc3RzL3Rlc3Rkb21ub2RlLmM6Ci0gICAgICAgICh0ZXN0X2RvbV9ub2RlX2luc2VydGlv
bik6Ci0KLTIwMTAtMDYtMzAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBbR1RLXSBVbml0IHRl
c3QgZm9yIERPTSBpbnNlcnRpb24gbWV0aG9kcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA0OTUKLQotICAgICAgICBBZGQgdW5pdCB0ZXN0cyBmb3Ig
bm9kZSBpbnNlcnRpb24gYW5kIHJlcGxhY2VtZW50IG1ldGhvZHMuCi0KLSAgICAgICAgKiB0ZXN0
cy90ZXN0ZG9tbm9kZS5jOgotICAgICAgICAodGVzdF9kb21fbm9kZV9pbnNlcnRpb24pOgotICAg
ICAgICAobWFpbik6Ci0KLTIwMTAtMDYtMzAgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hl
ekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAg
ICBbR1RLXSBSYW5kb20gZmFpbHVyZSBvbiAndGVzdGRvd25sb2FkJyB1bml0IHRlc3QKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MjU2Ci0KLSAgICAg
ICAgTWFrZSBzdXJlIHRoZSBzZXRfZmlsZW5hbWUgZnVuY3Rpb24gaXMgY2FsbGVkIGFmdGVyIGhh
bmRsaW5nIHRoZQotICAgICAgICAnZG93bmxvYWQtcmVxdWVzdGVkJyBzaWduYWwgZm9yIHRoZSBh
c3luY2hyb25vdXMgdGVzdC4gVGhpcyBjaGFuZ2UKLSAgICAgICAgaXMgbmVlZGVkIGJlY2F1c2Ug
aXQgY291bGQgaGFwcGVuLCB3aXRoIHRoZSBjdXJyZW50IGNvZGUsIHRoYXQgdGhlCi0gICAgICAg
IHNldF9maWxlbmFtZSAoKSBmdW5jdGlvbiBnb3QgY2FsbGVkIHRvbyBlYXJseSBpbiB0aGUgbWFp
bmxvb3AsCi0gICAgICAgIHRoZXJlZm9yZSBzY3Jld2luZyB0aGUgdGVzdHMgYmVjYXVzZSB0aGUg
J3RoZURvd25sb2FkJyBnbG9iYWwKLSAgICAgICAgdmFyaWFibGUgd291bGRuJ3QgYmUgcHJvcGVy
bHkgc2V0IHlldC4KLQotICAgICAgICBXaXRoIHRoaXMgbW9kaWZpY2F0aW9uIHdlIGVuc3VyZSB0
aGUgc2V0X2ZpbGVuYW1lKCkgZnVuY3Rpb24gZ2V0cwotICAgICAgICBjYWxsZWQgYWx3YXlzIGFm
dGVyIGhhbmRsaW5nIHRoZSBkb3dubG9hZC1yZXF1ZXN0ZWQgc2lnbmFsLAotICAgICAgICB0aGVy
ZWZvcmUgYXZvaWRpbmcgcG90ZW50aWFscHJvYmxlbXMuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0
ZG93bmxvYWQuYzoKLSAgICAgICAgKHNldF9maWxlbmFtZSk6Ci0gICAgICAgIChoYW5kbGVfZG93
bmxvYWRfcmVxdWVzdGVkX2NiKToKLSAgICAgICAgKGRvd25sb2FkX3JlcXVlc3RlZF9jYik6Ci0g
ICAgICAgIChkb3dubG9hZF9yZXF1ZXN0ZWRfYXN5bmNoX2NiKToKLSAgICAgICAgKHRlc3Rfd2Vi
a2l0X2Rvd25sb2FkX3BlcmZvcm0pOgotCi0yMDEwLTA2LTMwICBKb3PDqSBNaWxsw6FuIFNvdG8g
IDxqbWlsbGFuQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6Lgot
Ci0gICAgICAgIFtHdGtdIFRleHQgYXR0cmlidXRlcyBub3QgZXhwb3NlZAotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU1MjgKLQotICAgICAgICBBZGRl
ZCBuZXcgdGVzdHMgZm9yIGFjY2Vzc2libGUgdGV4dCBhdHRyaWJ1dGVzCi0KLSAgICAgICAgKiB0
ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgIChjb21wQXRrQXR0cmlidXRlKToKLSAgICAgICAgKGNv
bXBBdGtBdHRyaWJ1dGVOYW1lKToKLSAgICAgICAgKGF0a0F0dHJpYnV0ZVNldEF0dHJpYnV0ZUhh
c1ZhbHVlKToKLSAgICAgICAgKGF0a0F0dHJpYnV0ZVNldEFyZUVxdWFsKToKLSAgICAgICAgKHRl
c3RXZWJraXRBdGtUZXh0QXR0cmlidXRlcyk6Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0wNi0y
OCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
R3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIFVwZGF0ZSBmb3IgMS4zLjIuCi0KLSAgICAgICAg
KiBORVdTOgotCi0yMDEwLTA2LTI4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgW0dUS10gRG9l
cyBub3QgY29tcGlsZSB3aXRoIC1ER1NFQUxfRU5BQkxFCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzg1MQotCi0gICAgICAgIEZpeCBidWlsZCB3aXRo
IEdTRUFMIGVuYWJsZWQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1
dGhkaWFsb2cuYzoKLSAgICAgICAgKHNob3dfYXV0aF9kaWFsb2cpOgotCi0yMDEwLTA2LTI4ICBY
YW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0
YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgW0dUS10gQWRkIHN1cHBvcnQgZm9yIEdUSyszCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTI1MwotCi0gICAg
ICAgIEFkYXB0IGJ1aWxkIHN5c3RlbSB0byAzLnggc3VwcG9ydCwgYWxsb3cgdGhlIEpTQ29yZSBn
aXIgYW5kIHdlYmtpdAotICAgICAgICBwYyBmaWxlcyB0byBiZSBjb25maWd1cmFibGUgYXQgYnVp
bGQgdGltZSBmb3IgZGlmZmVyZW50IEFQSQotICAgICAgICB2ZXJzaW9ucy4KLQotICAgICAgICAq
IEpTQ29yZS0xLjAuZ2lyOiBSZW1vdmVkLgotICAgICAgICAqIEpTQ29yZS5naXIuaW46IEFkZGVk
LgotICAgICAgICAqIGRvY3MvR05VbWFrZWZpbGUuYW06Ci0gICAgICAgICogd2Via2l0LnBjLmlu
OgotCi0yMDEwLTA2LTI1ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0d0a10gSW1w
bGVtZW50IGF0a190YWJsZV9nZXRfY29sdW1uX2hlYWRlcgotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA4OTYKLQotICAgICAgICBSZXBsYWNlIGdfdGlt
ZW91dF9hZGQoKSB3aXRoIGdfaWRsZV9hZGQoKS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsu
YzoKLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXRfZm9ybXMpOgot
ICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCk6Ci0gICAgICAgICh0
ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0X25ld2xpbmVzKToKLSAgICAgICAgKHRl
c3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXRfdGV4dGFyZWEpOgotICAgICAgICAodGVz
dF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldF90ZXh0X2lucHV0KToKLSAgICAgICAgKHRl
c3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3JhcGhBbmRCb2R5U2ltcGxlKToKLSAgICAgICAgKHRl
c3RXZWJraXRBdGtHZXRUZXh0SW5QYXJhZ3JhcGhBbmRCb2R5TW9kZXJhdGUpOgotICAgICAgICAo
dGVzdFdlYmtpdEF0a0dldFRleHRJblRhYmxlKToKLSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRI
ZWFkZXJzSW5UYWJsZSk6Ci0KLTIwMTAtMDYtMjUgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2Fu
Y2hlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAg
ICAgICBbR3RrXSBJbXBsZW1lbnQgYXRrX3RhYmxlX2dldF9jb2x1bW5faGVhZGVyCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDg5NgotCi0gICAgICAg
IEFkZGVkIG5ldyB0ZXN0IHRvIGNoZWNrIHdoZXRoZXIgdGhlIGltcGxlbWVudGF0aW9uIG9mCi0g
ICAgICAgIGdldF9jb2x1bW5faGVhZGVycygpIGFuZCBnZXRfcm93X2hlYWRlcnMoKSB3b3JrcyBv
ay4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKHRlc3RXZWJraXRBdGtH
ZXRIZWFkZXJzSW5UYWJsZSk6Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0wNi0yNSAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
WGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIFBhc3RlYm9hcmQgY29kZSBkb2VzIG5vdCB0YWtl
IGludG8gYWNjb3VudCB0aGUgbmlsIGNoYXJhY3RlciB3aGVuIGdldHRpbmcgYW5kIHNldHRpbmcg
bWFya3VwL25ldHNjYXBlLXVybCBkYXRhCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MTIyMQotCi0gICAgICAgIEFkZCBhIHRlc3QgZm9yIHRoaXMgaXNz
dWUgd2hpY2ggc2ltdWxhdGVzIGEgcGFzdGUga2V5Ym9hcmQgZXZlbnQgaW50byBhbiBlZGl0YWJs
ZQotICAgICAgICBib2R5LiBUaGUgcGFzdGVib2FyZCBzaG91bGQgY29udGFpbiBhIG1hcmt1cCBw
b3J0aW9uIGNvbnRhaW5pbmcgYSBudWxsIHRlcm1pbmF0b3IuCi0KLSAgICAgICAgKiB0ZXN0cy90
ZXN0Y29weWFuZHBhc3RlLmM6Ci0gICAgICAgICh0ZXN0X2luZm9fbmV3KToKLSAgICAgICAgKHRl
c3RfaW5mb19kZXN0cm95KToKLSAgICAgICAgKGxvYWRfc3RhdHVzX2NiKToKLSAgICAgICAgKHJ1
blBhc3RlVGVzdENhbGxiYWNrKToKLSAgICAgICAgKHdpbmRvd19vYmplY3RfY2xlYXJlZF9jYWxs
YmFjayk6Ci0gICAgICAgIChwYXN0aW5nX3Rlc3RfZ2V0X2RhdGFfY2FsbGJhY2spOgotICAgICAg
ICAocGFzdGluZ190ZXN0X2NsZWFyX2RhdGFfY2FsbGJhY2spOgotICAgICAgICAodGVzdF9wYXN0
aW5nX21hcmt1cCk6Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0wNi0yNCAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExv
cGV6LgotCi0gICAgICAgIFtHVEtdIENhbm5vdCBjaGFuZ2UgdGhlIHNlbGVjdGlvbiB2aWEgdGhl
IGtleWJvYXJkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MTE2MgotCi0gICAgICAgIEZpeCBpc3N1ZSB3aGVyZSB0aGUgc2VsZWN0aW9uIGNvdWxkIG5v
dCBiZSBleHRlbmRlZCB2aWEgdGhlIGtleWJvYXJkIGJ5Ci0gICAgICAgIGFkanVzdGluZyB0aGUg
bG9naWMgZ3VhcmRpbmcgYWdhaW5zdCBpbnNlcnRpbmcgdGV4dCBpbiBub24tZWRpdGFibGUgbm9k
ZXMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgotICAgICAg
ICBBbGxvdyBlZGl0b3IgY29tbWFuZHMgdGhhdCBkbyBub3QgaW5zZXJ0IHRleHQgaW4gbm9uLWVk
aXRhYmxlIG5vZGVzLiBUaGlzCi0gICAgICAgIGZpeGVzIGtleWJvYXJkIHNlbGVjdGlvbiBleHRl
bnNpb24gaW4gbm9uLWVkaXRhYmxlIG5vZGVzLiBNb3ZlIHRoZSBleGlzdGluZwotICAgICAgICBj
aGVjayB0byBhZnRlciB0aGUgZXhlY3V0aW9uIG9mIGFueSBlZGl0b3IgY29tbWFuZHMuCi0KLTIw
MTAtMDYtMTUgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9taXVtLm9yZz4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgotCi0gICAgICAgIE1vdmUgaXNBdmFpbGFibGUoKS9z
ZXRJc0F2YWlsYWJsZSgpIGZyb20gRGF0YWJhc2UvRGF0YWJhc2VTeW5jIHRvIEFic3RyYWN0RGF0
YWJhc2UuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
OTA0MQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
c2V0dGluZ3Nfbm90aWZ5KToKLSAgICAgICAgKHdlYmtpdF9nZXRfY2FjaGVfbW9kZWwpOgotCi0y
MDEwLTA2LTE2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgW0dUS10g
UmVtb3ZlIHRoZSBhYnVzZSBvZiBHREtfQ1VSUkVOVF9USU1FIGluIHRoZSBEUlQKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwNjAwCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDogCi0gICAgICAgIChXZWJLaXQ6OkRy
YWdDbGllbnQ6OnN0YXJ0RHJhZyk6IFJlc2V0IHRoZSBjbGljayBjb3VudCBhZnRlciBhIGRyYWcg
c3RhcnRzLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKFdlYktpdDo6cG9zdENvbW1pdEZyYW1lVmlld1NldHVwKTogUmVzZXQgdGhl
IGNsaWNrIGNvdW50IGFmdGVyIGEgbG9hZCBpcyBjb21taXR0ZWQuCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHByaXZhdGUuaDogTW92ZSBzdGF0aWMgY2xpY2sgY291bnRpbmcgdmFyaWFibGVzIHRv
IGJlIHBlci12aWV3LgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogCi0gICAg
ICAgIChnZXRFdmVudFRpbWUpOiBBZGRlZC4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19idXR0
b25fcHJlc3NfZXZlbnQpOiBJZiB0aGUgZXZlbnQgdGltZSBpcyB6ZXJvLCB1c2UgdGhlIGN1cnJl
bnQgdGltZS4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19maW5hbGl6ZSk6IENsZWFuIHVwIGNs
aWNrIGNvdW50aW5nIG1lbWJlci4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KTogSW5p
dGlhbGl6ZSBjbGljayBjb3VudGluZyBtZW1iZXIuCi0KLTIwMTAtMDYtMTUgIFhhbiBMb3BleiAg
PHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIEZpeCBjb21waWxhdGlvbiB3aXRoIG9sZGVy
IEdUSysuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnBhZ2VSZWN0KToKLQotMjAxMC0wNi0xNSAg
WGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3Vz
dGF2byBOb3JvbmhhLgotCi0gICAgICAgIFtHVEtdIERvZXMgbm90IGNvbXBpbGUgd2l0aCAtREdT
RUFMX0VOQUJMRQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mzc4NTEKLQotICAgICAgICBGaXggY29tcGlsYXRpb24gd2l0aCBHU0VBTF9FTkFCTEUuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6OnBhZ2VSZWN0KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0ZG9tbm9k
ZS5jOgotICAgICAgICAodGVzdF9kb21fbm9kZV9pbnNlcnRpb24pOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19yZWFsaXplKToK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zY3JpcHRfZGlhbG9nKToKLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19kcmFnX2VuZCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6Ci0K
LTIwMTAtMDYtMTQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgotCi0g
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgotCi0gICAgICAgIFRoaXMgaXMgYSBmaXggZm9y
IGZsYWt5IGluc3BlY3RvciB0ZXN0cyBhdCBndGstZGVidWcgYm90cy4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0cm95SW5zcGVjdG9yV2luZG93KToKLQotMjAxMC0w
Ni0xNCAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KLQotICAgICAgICBXZWJJbnNwZWN0b3I6IE9uIHRo
ZSB3YXkgdG8gUmVtb3RlIERlYnVnZ2luZyB3ZSB3YW50IHRvIHRyYW5zZmVyIGRvbS90aW1lbGlu
ZS9ldGMKLSAgICAgICAgZGF0YSBmcm9tIGluc3BlY3RlZCBwYWdlIHRvIFdlYkluc3BlY3RvciBh
cyBKU09OIHN0cmluZyB2aWEgaHR0cC4gVGhlIG5hdGl2ZQotICAgICAgICBzZXJpYWxpemF0aW9u
IHRvIEpTT04gc3RyaW5nIGlzIHN1cHBvcnRlZCBieSBJbnNwZWN0b3JWYWx1ZSdzIGNsYXNzZXMu
IFRoaXMgcGF0Y2gKLSAgICAgICAgaGFzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQgZnVuY3Rpb24uIFdlYktpdCB2ZXJzaW9uIG9mIGl0IHN0aWxsCi0gICAgICAg
IHVzZXMgU2NyaXB0RnVuY3Rpb25DYWxsIGFuZCB3aWxsIGJlIHN3aXRjaGVkIHRvIGFub3RoZXIg
dHJhbnNwb3J0IGEgbGl0dGxlIGJpdCBsYXRlci4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMTM0Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6
OnJlbGVhc2VGcm9udGVuZFBhZ2UpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6
OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50R3RrLmg6Ci0KLTIwMTAtMDYtMTAgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQu
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgUmVkdWNl
IEZyYW1lVmlldy5oIGluY2x1ZGVzIHRvIHNwZWVkIHVwIGJ1aWxkIHRpbWVzCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDQwOAotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgICAtIEluY2x1ZGUgUmVuZGVy
TGF5ZXIuaAotCi0yMDEwLTA2LTA5ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjA4ODkuCi0gICAg
ICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzYwODg5Ci0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM2NQotCi0gICAgICAgIGd0ayBi
b3QgaGFzIHNvbWUga2luZCBvZiBtZW1vcnkgY29ycnVwdGlvbiAoUmVxdWVzdGVkIGJ5Ci0gICAg
ICAgIGxvaXNsbyBvbiAjd2Via2l0KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6SW5z
cGVjdG9yQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpvcGVuSW5z
cGVjdG9yRnJvbnRlbmQpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmg6Ci0KLTIwMTAtMDYtMDcgIElseWEgVGlraG9u
b3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFBhdmVs
IEZlbGRtYW4uCi0KLSAgICAgICAgV2ViSW5zcGVjdG9yOiBPbiB0aGUgd2F5IHRvIFJlbW90ZSBE
ZWJ1Z2dpbmcgd2Ugd2FudCB0byB0cmFuc2ZlciBkb20vdGltZWxpbmUvZXRjCi0gICAgICAgIGRh
dGEgZnJvbSBpbnNwZWN0ZWQgcGFnZSB0byBXZWJJbnNwZWN0b3IgYXMgSlNPTiBzdHJpbmcgdmlh
IGh0dHAuIFRoZSBuYXRpdmUKLSAgICAgICAgc2VyaWFsaXphdGlvbiB0byBKU09OIHN0cmluZyBp
cyBzdXBwb3J0ZWQgYnkgSW5zcGVjdG9yVmFsdWUncyBjbGFzc2VzLiBUaGlzIHBhdGNoCi0gICAg
ICAgIGhhcyB0aGUgaW1wbGVtZW50YXRpb24gb2Ygc2VuZE1lc3NhZ2VUb0Zyb250ZW5kIGZ1bmN0
aW9uLiBXZWJLaXQgdmVyc2lvbiBvZiBpdCBzdGlsbAotICAgICAgICB1c2VzIFNjcmlwdEZ1bmN0
aW9uQ2FsbCBhbmQgd2lsbCBiZSBzd2l0Y2hlZCB0byBhbm90aGVyIHRyYW5zcG9ydCBhIGxpdHRs
ZSBiaXQgbGF0ZXIuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDEzNAotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpyZWxlYXNlRnJvbnRlbmRQ
YWdlKToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJv
bnRlbmQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgot
Ci0yMDEwLTA2LTA4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgW0dUS10gVW5pdCB0ZXN0aW5n
IGZvciBXZWJLaXRET01Ob2RlIGhpZXJhcmNoeSB3YWxrCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDE3MQotCi0gICAgICAgIEFkZCBzb21lIERPTSBu
b2RlIHVuaXQgdGVzdGluZy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3Rkb21ub2RlLmM6IEFkZGVk
LgotICAgICAgICAoZmluaXNoX2xvYWRpbmcpOgotICAgICAgICAoZG9tX25vZGVfZml4dHVyZV9z
ZXR1cCk6Ci0gICAgICAgIChkb21fbm9kZV9maXh0dXJlX3RlYXJkb3duKToKLSAgICAgICAgKHRl
c3RfZG9tX25vZGVfaGllcmFyY2h5X25hdmlnYXRpb24pOgotICAgICAgICAobWFpbik6Ci0KLTIw
MTAtMDYtMDggIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBPamFuIFZhZmFpIGFuZCBEYXJpbiBBZGxlci4KLQotICAgICAgICBSZWZh
Y3RvciBwbGF0Zm9ybSBkZXBlbmRlbnQgZWRpdGluZyBiZWhhdmlvciBjb2RlIG91dCBvZiBTZXR0
aW5ncwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk4
NTQKLQotICAgICAgICBFZGl0aW5nQmVoYXZpb3IgZW51bSB3YXMgcmVuYW1lZCB0byBFZGl0aW5n
QmVoYXZpb3JUeXBlcyBhbmQgbW92ZWQgb3V0IGZyb20gU2V0dGluZ3MuaCB0bwotICAgICAgICBF
ZGl0aW5nQmVoYXZpb3JUeXBlcy5oIC4gQ2FsbCBzaXRlcyBpbiBXZWJLaXQvIGFkanVzdGVkIGFj
Y29yZGluZ2x5LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAg
ICAoV2ViS2l0Ojpjb3JlKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d191cGRhdGVfc2V0dGluZ3MpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25v
dGlmeSk6Ci0KLTIwMTAtMDYtMDggIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBbR1RLXSBBZGQg
aW5uZXItbm9kZSBwcm9wZXJ0eSB0byBXZWJLaXRIaXRUZXN0UmVzdWx0Ci0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDEzMQotCi0gICAgICAgIEFkZCBh
ICdpbm5lci1ub2RlJyBwcm9wZXJ0eSB0byBXZWJLaXRIaXRUZXN0UmVzdWx0LCBjYXJyeWluZyB0
aGUKLSAgICAgICAgRE9NIG5vZGUgd2hlcmUgdGhlIGhpdCB0ZXN0IGhhcHBlbmVkLgotCi0gICAg
ICAgICogdGVzdHMvdGVzdGhpdHRlc3RyZXN1bHQuYzoKLSAgICAgICAgKGxvYWRfc3RhdHVzX2Ni
KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5jcHA6Ci0gICAgICAgICh3
ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfaGl0
X3Rlc3RfcmVzdWx0X3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfaGl0X3Rlc3RfcmVz
dWx0X2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6a2l0KToKLQotMjAxMC0wNi0wNyAgTWFydGluIFJvYmluc29uICA8bXJv
Ymluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0g
ICAgICAgIFtHVEtdIGd0a193aWRnZXRfZ2V0X3dpbmRvdyBzaG91bGQgcmVwbGFjZSB3aWRnZXQt
PndpbmRvdwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAxODAKLQotICAgICAgICBSZXBsYWNlIHVzZXMgb2Ygd2lkZ2V0LT53aW5kb3cgd2l0aCBndGtf
d2lkZ2V0X2dldF93aW5kb3cuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyk6IFJlcGxhY2Ugd2lkZ2V0LT53aW5kb3cgdXNlcy4KLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGwpOiBEaXR0by4KLSAgICAgICAgKFdlYktpdDo6d2lk
Z2V0U2NyZWVuUG9zaXRpb24pOiBEaXR0by4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFn
Q2xpZW50R3RrLmNwcDogTW92ZSBndGtfd2lkZ2V0X2dldF93aW5kb3cgZGVmaW5lIHRvIEd0a1Zl
cnNpb25pbmcuaC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfcG9wdXBfbWVudV9oYW5kbGVyKTogUmVwbGFjZSB3aWRnZXQtPndp
bmRvdyB1c2VzLgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2J1dHRvbl9wcmVzc19ldmVudCk6
IERpdHRvLgotCi0yMDEwLTA2LTA0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10g
RHJhZyBnZXN0dXJlIGNhbiB0YWtlIG1vdXNlIGdyYWIgaW5kZWZpbml0ZWx5Ci0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjg0MAotCi0gICAgICAgIElu
aXRpYXRlIGRyYWcgZXZlbnRzIHdpdGggdGhlIGN1cnJlbnQgR1RLKyBldmVudCBpbnN0ZWFkIG9m
IHN5bnRoZXNpemluZwotICAgICAgICBhbiBldmVudC4gU29tZXRoaW5nIGFib3V0IHN5bnRoZXNp
emVkIGV2ZW50cyBpcyBjYXVzaW5nIGEgZHJhZyBmcmVlemUgaW4KLSAgICAgICAgY2VydGFpbiBz
aXR1YXRpb25zLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6IFN0YXJ0IHRoZSBkcmFn
IHdpdGggdGhlIGN1cnJlbnQgR1RLKyBldmVudC4KLQotMjAxMC0wNi0wMyAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjYwNjMyLgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNl
dC82MDYzMgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAxNDMKLQotICAgICAgICBUaGlzIGNoYW5nZSBicm9rZSB0aGUgNjQtYml0IGJvdHMuIChSZXF1
ZXN0ZWQgYnkgbXJvYmluc29uIG9uCi0gICAgICAgICN3ZWJraXQpLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkRyYWdDbGll
bnQ6OkRyYWdDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50OjpzdGFydERyYWcp
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuaDoKLQotMjAxMC0wNi0w
MyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIERyYWcgZ2VzdHVyZSBjYW4gdGFr
ZSBtb3VzZSBncmFiIGluZGVmaW5pdGVseQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzI4NDAKLQotICAgICAgICBTdGFydCBHVEsrIGRyYWdzIHdpdGgg
dGhlIHByZXZpb3VzIG1vdXNlIGJ1dHRvbiBkb3duIGV2ZW50IGluc3RlYWQgb2YKLSAgICAgICAg
c3ludGhlc2l6aW5nIHRoZSBldmVudC4gVGhlIHN5bnRoZXNpemVkIGV2ZW50IHdhcyBub3QgY29t
cGxldGVseSB2YWxpZAotICAgICAgICBhbmQgZnJvemUgc29tZSBkcmFncyBpbmRlZmluaXRlbHku
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6YnV0dG9uUHJlc3NFdmVudCk6IEFkZGVkLgotICAgICAgICAoV2ViS2l0OjpEcmFn
Q2xpZW50OjpEcmFnQ2xpZW50KToKLSAgICAgICAgQ29ubmVjdCB0byB0aGUgJ2J1dHRvbi1wcmVz
cy1ldmVudCcgc2lnbmFsIG9mIHRoZSBXZWJWaWV3LgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xp
ZW50OjpzdGFydERyYWcpOgotICAgICAgICBJbnN0ZWFkIG9mIHN5bnRoZXNpemluZyBhIGJ1dHRv
biBwcmVzcyBldmVudCB1c2UgdGhlIGxhc3QgcmVhbCBvbmUuCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHJhZ0NsaWVudEd0ay5oOgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50OjpzZXRM
YXN0QnV0dG9uUHJlc3NFdmVudCk6IEFkZGVkLgotCi0yMDEwLTA2LTAxICBYYW4gTG9wZXogIDx4
bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEu
Ci0KLSAgICAgICAgTWVtb3J5IExlYWs6IFRoZSBtYWluIHJlc291cmNlIG9mIHBhZ2UgaXMgbm90
IGZyZWUuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
OTk3MwotCi0gICAgICAgIEZpeCByZWZjb3VudCB0cmFja2luZyBvZiB0aGUgbWFpbiByZXNvdXJj
ZS4gUGF0Y2ggYnkgR2VuaHVhIExpdS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6Ci0KLTIwMTAtMDYtMDEgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4K
LQotICAgICAgICBGaXgtdXAgZm9yIHByZXZpb3VzIGxlYWsgZml4LCB0aGUgaWRlbnRpZmllciB3
YXMgbm90IGFsd2F5cyBkdXBlZC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2FkZF9yZXNvdXJjZSk6Ci0KLTIwMTAtMDYtMDEgIFhhbiBMb3BleiAgPHhsb3BlekBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAg
ICAgICBQbHVnIGEgc21hbGwgbGVhay4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KToKLQotMjAxMC0wNi0wMSAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
WGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIERvdWJsZSBjbGlja3MgY2F1c2UgdGhyZWUgYnV0
dG9uIHByZXNzIGV2ZW50cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mzg4NTMKLQotICAgICAgICBIYW5kbGUgY2xpY2sgY291bnRpbmcgbXVjaCBsaWtl
IHRoZSBXaW5kb3dzIHBvcnQuIEdUSysgb25seQotICAgICAgICBjb3VudHMgdHJpcGxlLWNsaWNr
cyBuYXRpdmVseSwgc28gdXNlIEdUSysgZG91YmxlLWNsaWNrIHNldHRpbmdzCi0gICAgICAgIHRv
IGNvdW50IGNsaWNrcyB3aXRoIGV2ZW4gbGFyZ2VyIGNsaWNrIGNvdW50cy4gQWxzbyBmaWx0ZXIg
dGhlCi0gICAgICAgIGV4dHJhIEdES19CVVRUT05fUFJFU1MgYmVmb3JlIEdES197MiwzfUJVVFRP
Tl9QUkVTUyBldmVudHMgdXNpbmcKLSAgICAgICAgZ2RrX2V2ZW50X3BlZWsoKS4KLQotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19i
dXR0b25fcHJlc3NfZXZlbnQpOiBDb3VudCBjbGlja3MgbWFudWFsbHkuIEZpbHRlciBleHRyYSBl
dmVudHMuCi0KLTIwMTAtMDUtMzEgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9y
b25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6Lgot
Ci0gICAgICAgIFtHVEtdIE1pc3NpbmcgbGlua3MgdG8gZG9jdW1lbnRhdGlvbiBvZiBnZW5lcmFs
IGZ1bmN0aW9ucwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mzk5NjQKLQotICAgICAgICBBZGQgZ2xvYmFsIGZ1bmN0aW9ucyBzZWN0aW9uLCBhbmQgbW92
ZSB0aG9zZSBmdW5jdGlvbnMgdGhhdCBhcmUKLSAgICAgICAgY3VycmVudGx5IGluIFdlYktpdFdl
YlZpZXcncyBzb3VyY2UgZmlsZSB0byB0aGUgYm90dG9tLCBhbG9uZyB3aXRoCi0gICAgICAgIHRo
ZSBkZXNjcmlwdGlvbi4KLQotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLWRvY3Muc2dtbDoKLSAg
ICAgICAgKiBkb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50eHQ6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9kb21fZG9jdW1l
bnQpOgotICAgICAgICAod2Via2l0X2dldF9kZWZhdWx0X3Nlc3Npb24pOgotCi0yMDEwLTA1LTMx
ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgW0dUS10gVGV4dCBjb3Bp
ZWQgZnJvbSBhIFdlYlZpZXcgY2Fubm90IGJlIHBhc3RlZCBpbnRvIGdub21lLXRlcm1pbmFsCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTgyNwotCi0g
ICAgICAgIEFkZCBhIHRlc3QgdG8gcHJldmVudCByZWdyZXNzaW9ucyBmb3IgdGhpcyBpc3N1ZS4K
LQotICAgICAgICAqIHRlc3RzL3Rlc3Rjb3B5YW5kcGFzdGUuYzogQWRkZWQuCi0gICAgICAgICh0
ZXN0X2luZm9fbmV3KToKLSAgICAgICAgKHRlc3RfaW5mb19kZXN0cm95KToKLSAgICAgICAgKGNv
cHlfYW5kX3Bhc3RlX2ZpeHR1cmVfc2V0dXApOgotICAgICAgICAoY29weV9hbmRfcGFzdGVfZml4
dHVyZV90ZWFyZG93bik6Ci0gICAgICAgIChsb2FkX3N0YXR1c19jYik6Ci0gICAgICAgIChtYXBf
ZXZlbnRfY2IpOgotICAgICAgICAodGVzdF9jb3B5X2FuZF9wYXN0ZSk6Ci0gICAgICAgIChtYWlu
KToKLQotMjAxMC0wNS0yNyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4K
LQotICAgICAgICBVcGRhdGUgZG9jdW1lbnRhdGlvbiBjb250cm9sIGZpbGVzLCBhbmQgZml4IFNp
bmNlIHRhZ3MgZm9yIDEuMy4xLgotCi0gICAgICAgICogZG9jcy93ZWJraXRndGstZG9jcy5zZ21s
OgotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLXNlY3Rpb25zLnR4dDoKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0KLTIwMTAtMDUtMjcgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBVcGRh
dGUgZm9yIDEuMy4xIHJlbGVhc2UuCi0KLSAgICAgICAgKiBORVdTOgotCi0yMDEwLTA1LTI3ICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gRHJhZ2dpbmcgb250byB0aGUgZGVza3Rv
cCBjYXVzZXMgYSBjcml0aWNhbCBHTGliIHdhcm5pbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NzE4Ci0KLSAgICAgICAgT25seSBpbmNyZW1lbnQg
dGhlIHdpbmRvdyByZWZlcmVuY2UgY291bnQgaWYgaXQgaXMgbm90IG51bGwgZHVyaW5nIGRyYWct
ZW5kCi0gICAgICAgIHNpZ25hbCBwcm9jZXNzaW5nLgotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZW5kKTogR3VhcmQg
YWdhaW5zdCBudWxsIHdpbmRvdyB2YWx1ZXMuCi0KLTIwMTAtMDUtMjYgIFhhbiBMb3BleiAgPHhs
b3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4K
LQotICAgICAgICBbR1RLXSBBZGQgc3VwcG9ydCBmb3IgRE9NIGV2ZW50cyBpbiB0aGUgR09iamVj
dCBET00gYmluZGluZ3MKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM4ODQ0Ci0KLSAgICAgICAgVGVzdCBET01XaW5kb3cgc2lnbmFscy4KLQotICAgICAg
ICAqIHRlc3RzL3Rlc3Rkb21kb213aW5kb3cuYzogQWRkZWQuCi0gICAgICAgIChmaW5pc2hfbG9h
ZGluZyk6Ci0gICAgICAgIChkb21fZG9tdmlld19maXh0dXJlX3NldHVwKToKLSAgICAgICAgKGRv
bV9kb212aWV3X2ZpeHR1cmVfdGVhcmRvd24pOgotICAgICAgICAobG9hZGVkQ2FsbGJhY2spOgot
ICAgICAgICAoY2xpY2tlZENhbGxiYWNrKToKLSAgICAgICAgKG1hcF9ldmVudF9jYik6Ci0gICAg
ICAgIChsb2FkX2V2ZW50X2NhbGxiYWNrKToKLSAgICAgICAgKHRlc3RfZG9tX2RvbXZpZXdfc2ln
bmFscyk6Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0wNS0yNCAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCi0KLSAgICAg
ICAgTW92ZSB2aWV3LXJlbGF0ZWQgZnVuY3Rpb25zIGZyb20gRnJhbWUgdG8gRnJhbWVWaWV3Ci0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTM2NgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X3NldF9lZGl0YWJsZSk6IFJlbW92ZSBjYWxsIHRvIGVtcHR5IGZ1bmN0aW9uCi0gICAgICAg
IHJlbW92ZUVkaXRuZ1N0eWxlRnJvbUJvZHlFbGVtZW50LgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2dldF96b29tX2xldmVsKTogQ2FsbCBmdW5jdGlvbnMgb24gRnJhbWVWaWV3LgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2FwcGx5X3pvb21fbGV2ZWwpOiBEaXR0by4KLQotMjAxMC0wNS0y
MiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIHdlYmtpdF93ZWJfdmlld19kcmFn
X2VuZCBzaG91bGQgY2FsbCBFdmVudEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRlZEF0Ci0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQ2NQotCi0gICAgICAg
IFByb3Blcmx5IGNhbGwgRXZlbnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdCBzbyB0aGF0IGRy
YWdFbmQgZXZlbnRzIGFyZSBwcm9jZXNzZWQgaW4gdGhlIERPTS4KLSAgICAgICAgZHJhZ1NvdXJj
ZUVuZGVkQXQgaXMgcmVzcG9uc2libGUgZm9yIGNhbGxpbmcgdGhlIGRyYWdFbmQgRE9NIGV2ZW50
IGFzIHdlbGwgYXMgY2xlYW5pbmcgdXAgYXNzZXRzCi0gICAgICAgIChzdWNoIGFzIHRoZSBDbGlw
Ym9hcmQpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZHJhZyBzb3VyY2UuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19lbmQp
OiBSZW1lbWJlciB0byBjYWxsIGRyYWdTb3VyY2VFbmRlZEF0IGhlcmUuCi0KLTIwMTAtMDUtMjIg
IE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0RyYWdDbGllbnRHdGs6OnN0YXJ0RHJhZyBzaG91bGQgdXNlIHRoZSBDbGlwYm9hcmQ6OnNv
dXJjZU9wZXJhdGlvbgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzk0NTkKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50OjpzdGFydERyYWcpOgotICAgICAgICBVc2Ug
Q2xpcGJvYXJkOjpzb3VyY2VPcGVyYXRpb24gaW5zdGVhZCBvZiB0cnlpbmcgdG8gZmlndXJlIG91
dCB0aGUgR2RrRHJhZ0FjdGlvbgotICAgICAgICBtYW51YWxseS4gVGhlIERPTSBtYXkgaGF2ZSBj
aGFuZ2VkIHRoZSBhcHByb3ByaWF0ZSBsaXN0IG9mIGFjdGlvbnMgYW55aG93LgotCi0yMDEwLTA1
LTIxICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBKZXJlbXkgT3Jsb3cuCi0KLSAgICAgICAgQWRkIERldmljZU9yaWVudGF0aW9uIGFu
ZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0NzkKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKLQotMjAxMC0wNS0xOSAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjU5MjQwLgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC81OTI0MAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzkzNzcKLQotICAgICAgICAiTWlnaHQgY2F1c2UgY3Jhc2hlcyBpbiBHVEsrIGJv
dHMiIChSZXF1ZXN0ZWQgYnkgeGFuXyBvbgotICAgICAgICAjd2Via2l0KS4KLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktp
dDo6aW5wdXRNZXRob2RzTWVudUl0ZW0pOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2V0SW5wdXRN
ZXRob2RTdGF0ZSk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hh
bmdlZFNlbGVjdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aGFuZGxlSW5w
dXRNZXRob2RLZXlkb3duKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JD
bGllbnQpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6On5FZGl0b3JDbGllbnQpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6cG9zdENvbW1pdEZyYW1lVmlld1NldHVwKToKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAg
ICAgICAgKGRlc3Ryb3lfbWVudV9jYik6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9yd2Fy
ZF9jb250ZXh0X21lbnVfZXZlbnQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2tleV9yZWxl
YXNlX2V2ZW50KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19idXR0b25fcmVsZWFzZV9ldmVu
dCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9jdXNfaW5fZXZlbnQpOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2ZvY3VzX291dF9ldmVudCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfcmVhbGl6ZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Njcm9sbF9hZGp1c3Rt
ZW50cyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZmluYWxpemUpOgotICAgICAgICAod2ViVmlld0dldERQSSk6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfc2NyZWVuX2NoYW5nZWQpOgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X3F1ZXJ5X3Rvb2x0aXApOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9pbV9jb250
ZXh0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF9z
ZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKToKLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19nZXRfaW5zcGVjdG9yKToKLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19zZXRfd2luZG93X2ZlYXR1cmVzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRf
d2luZG93X2ZlYXR1cmVzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfYmFja19mb3J3
YXJkX2xpc3QpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3pvb21faW4pOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X3pvb21fb3V0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRf
ZW5jb2RpbmcpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9jdXN0b21fZW5jb2Rpbmcp
OgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2FkZF9yZXNvdXJjZSk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRf
bWFpbl9yZXNvdXJjZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xlYXJfcmVzb3VyY2Vz
KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfc3VicmVzb3VyY2VzKToKLSAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19zZXRfdG9vbHRpcF90ZXh0KToKLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19nZXRfaWNvbl91cmkpOgotCi0yMDEwLTA1LTE4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25AaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAg
ICAgICAgW0dUS10gRHJhZ0NsaWVudEd0azo6c3RhcnREcmFnIGxlYWtzIEdka0V2ZW50cwotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkzMjIKLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0
OjpEcmFnQ2xpZW50OjpzdGFydERyYWcpOiBQcm9wZXJseSBjbGVhbiB1cCBhbGxvY2F0ZWQgR2Rr
RXZlbnQuCi0KLTIwMTAtMDUtMTIgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR3RrXSBV
c2UgR093blB0ciBmb3IgY29kZSB0aGF0IG5lZWRzIGl0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU5NAotCi0gICAgICAgIENvbnZlcnQgbWFueSB1
c2VzIG9mIHJhdyBwb2ludGVycyB0byBHUmVmUHRyIGFuZCBHT3duUHRyIGluIFdlYktpdFdlYlZp
ZXcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OmlucHV0TWV0aG9kc01lbnVJdGVtKToKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JD
bGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24pOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JD
bGllbnQ6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bik6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudDo6RWRpdG9yQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojp+
RWRpdG9yQ2xpZW50KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OnBvc3RDb21taXRGcmFtZVZpZXdTZXR1cCk6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0gICAgICAgIChkZXN0cm95X21lbnVfY2IpOgotICAgICAgICAod2Via2l0
X3dlYl92aWV3X2ZvcndhcmRfY29udGV4dF9tZW51X2V2ZW50KToKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19rZXlfcmVsZWFzZV9ldmVudCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfYnV0
dG9uX3JlbGVhc2VfZXZlbnQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZvY3VzX2luX2V2
ZW50KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19mb2N1c19vdXRfZXZlbnQpOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3JlYWxpemUpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3Nl
dF9zY3JvbGxfYWRqdXN0bWVudHMpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2Rpc3Bvc2Up
OgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZpbmFsaXplKToKLSAgICAgICAgKHdlYlZpZXdH
ZXREUEkpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NjcmVlbl9jaGFuZ2VkKToKLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19xdWVyeV90b29sdGlwKToKLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19nZXRfaW1fY29udGV4dCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3Nl
dHRpbmdzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19zZXRfc2V0dGluZ3MpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9z
ZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2luc3BlY3Rvcik6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3dpbmRvd19mZWF0dXJlcyk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19mZWF0dXJlcyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2JhY2tfZm9yd2FyZF9saXN0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld196b29t
X2luKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld196b29tX291dCk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2VuY29kaW5nKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRf
Y3VzdG9tX2VuY29kaW5nKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19hZGRfcmVzb3VyY2Up
OgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X21haW5fcmVzb3VyY2UpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2NsZWFyX3Jlc291cmNlcyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJlc291
cmNlcyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Rvb2x0aXBfdGV4dCk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25fdXJpKToKLQotMjAxMC0wNS0xMSAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
WGFuIExvcGV6LgotCi0gICAgICAgIFtHdGtdIERvZXNuJ3Qgc3VwcG9ydCBndGsta2V5LXRoZW1l
cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgyNTcK
LQotICAgICAgICBBZGQgc3VwcG9ydCBmb3IgR1RLKyBrZXkgdGhlbWVzLgotCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6YmFj
a3NwYWNlQ2FsbGJhY2spOiBBZGRlZC4KLSAgICAgICAgKFdlYktpdDo6Y3V0Q2xpcGJvYXJkQ2Fs
bGJhY2spOiBBZGRlZC4KLSAgICAgICAgKFdlYktpdDo6Y29weUNsaXBib2FyZENhbGxiYWNrKTog
QWRkZWQuCi0gICAgICAgIChXZWJLaXQ6OnBhc3RlQ2xpcGJvYXJkQ2FsbGJhY2spOiBBZGRlZC4K
LSAgICAgICAgKFdlYktpdDo6c2VsZWN0QWxsQ2FsbGJhY2spOiBBZGRlZC4KLSAgICAgICAgKFdl
YktpdDo6ZGVsZXRlRnJvbUN1cnNvckNhbGxiYWNrKTogQWRkZWQuCi0gICAgICAgIChXZWJLaXQ6
Om1vdmVDdXJzb3JDYWxsYmFjayk6IEFkZGVkLgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OmdlbmVyYXRlRWRpdG9yQ29tbWFuZHMpOiBBZGRlZC4KLSAgICAgICAgKFdlYktpdDo6RWRp
dG9yQ2xpZW50OjpleGVjdXRlUGVuZGluZ0VkaXRvckNvbW1hbmRzKTogQWRkZWQuCi0gICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6IERlcml2ZSBlZGl0
b3IgY29tbWFuZHMgYm90aCBmcm9tIGludGVybmFsIHRleHQgd2lkZ2V0IGFuZCBhIGxpc3Qgb2Yg
ZmFsbGJhY2tzLgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6
IEFkZCBtX25hdGl2ZVdpZGdldCBpbml0aWFsaXplci4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuaDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjphZGRQ
ZW5kaW5nRWRpdG9yQ29tbWFuZCk6IEFkZCBtX25hdGl2ZVdpZGdldCBtZW1iZXIuCi0KLTIwMTAt
MDUtMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBSZW1vdmUgdXNlIG9mIEdPd25QdHIg
dG8gaG9sZCBHT2JqZWN0IHR5cGVzLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzg2NjkKLQotICAgICAgICBDaGFuZ2UgdXNlIG9mIEdPd25QdHIgdG8g
R1JlZlB0ciB0byB0eXBlcyB3aGljaCBhcmUgbmF0aXZlbHkgcmVmZXJlbmNlLWNvdW50ZWQuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCk6
IENoYW5nZSBHT3duUHRyIHRvIEdSZWZQdHIgaW4gc29tZSBwbGFjZXMuCi0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlKTog
RGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcDoKLSAgICAg
ICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3X3dpdGhfY29yZV9yZXF1ZXN0KTogRGl0dG8u
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHA6Ci0gICAgICAgICh3
ZWJraXRfbmV0d29ya19yZXNwb25zZV9uZXdfd2l0aF9jb3JlX3Jlc3BvbnNlKTogRGl0dG8uCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOiBSZW1vdmUgR093blB0ciByZWZlcmVu
Y2UgY291bnRpbmcgdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24uCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHByaXZhdGUuaDogRGl0dG8uCi0KLTIwMTAtMDUtMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25o
YSBTaWx2YS4KLQotICAgICAgICBbR1RLXSBFbmFibGUgRE9NIGNsaXBib2FyZCBhbmQgZHJhZy1h
bmQtZHJvcCBhY2Nlc3MKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMwNjIzCi0KLSAgICAgICAgQ29udmVydCBkcmFnZ2luZyBwb3J0aW9uIG9mIGRyYWct
YW5kLWRyb3AgdG8gdXNlIERhdGFPYmplY3RHdGsuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6d2lsbFBl
cmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24pOiBSZW1vdmUgdGhlIG5vdEltcGxlbWVudGVkLiBJ
dCBpcyBpbXBsZW1lbnRlZCwgaXQncyBqdXN0IGEgbm8tb3AuCi0gICAgICAgIChXZWJLaXQ6OkRy
YWdDbGllbnQ6OnN0YXJ0RHJhZyk6IFN0YXJ0IHRoZSBkcmFnIGNvbnRleHQgdmlhIHRoZSBDbGlw
Ym9hcmRHdGsgYW5kIFBhc3RlYm9hcmRIZWxwZXIgbm93LgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0RyYWdDbGllbnRHdGsuaDogU21hbGwgc3R5bGUgZml4LgotICAgICAgICAqIHdlYmtpdC93
ZWJraXRwcml2YXRlLmg6IEFkZCBhIEhhc2hNYXAgb2YgY29udGV4dHMgYW5kIERhdGFPYmplY3Rz
IGhlcmUgdG8gdG8gcmVwcmVzZW50IGFsbCBjdXJyZW50IGRyYWcgb3BlcmF0aW9ucy4KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6IAotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2Rpc3Bvc2UpOiBDbGVhciBhbGwgZGF0YSBvYmplY3RzIGR1cmluZyBkaXNwb3NhbC4KLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX2VuZCk6IFdoZW4gYSBkcmFnIGlzIG92ZXIsIGp1c3Qg
cmVtb3ZlIGl0IGZyb20gdGhlIG1hcC4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX2Rh
dGFfZ2V0KTogVG8gZ2V0IHRoZSBkcmFnIGRhdGEsIGp1c3QgZ3JhYiBpdCBmcm9tIHRoZSBEYXRh
T2JqZWN0LgotCi0yMDEwLTA1LTAzICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5v
cmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KLQotICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgY29udHJvbGxpbmcgY2xpcGJvYXJkIGFjY2VzcyBmcm9tIGphdmFzY3JpcHQuCi0g
ICAgICAgIENsaXBib2FyZCBhY2Nlc3MgZnJvbSBqYXZhc2NyaXB0IGlzIGRpc2FibGVkIGJ5IGRl
ZmF1bHQuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Nzc1MQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Nl
dHRpbmdzX3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9w
cm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRh
dGVfc2V0dGluZ3MpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6
Ci0KLTIwMTAtMDUtMDMgIEplbnMgQWxma2UgIDxzbmVqQGNocm9taXVtLm9yZz4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCi0KLSAgICAgICAgW2Nocm9taXVtXSBBZGQgIndp
bGxTZW5kU3VibWl0RXZlbnQiIGhvb2sgdG8gV2ViRnJhbWVDbGllbnQgYW5kIEZyYW1lTG9hZGVy
Q2xpZW50Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODM5NwotCi0gICAgICAgIE5vIHRlc3RzIChmdW5jdGlvbmFsaXR5IGlzIGV4cG9zZWQgb25seSB0
aHJvdWdoIG5hdGl2ZSBXZWJLaXQgQVBJLikKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFdpbGxTZW5kU3VibWl0RXZlbnQpOgotCi0yMDEwLTA1LTAxICBYYW4gTG9wZXog
IDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4K
LQotICAgICAgICBbR1RLXSBHT2JqZWN0IERPTSBiaW5kaW5ncwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1OTAKLQotICAgICAgICBUZXN0IHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X2xpbmtzLgotCi0gICAgICAgICogdGVzdHMvdGVzdGRvbWRvY3Vt
ZW50LmM6Ci0gICAgICAgICh0ZXN0X2RvbV9kb2N1bWVudF9nZXRfbGlua3MpOgotICAgICAgICAo
bWFpbik6Ci0KLTIwMTAtMDQtMjkgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBbR1RLXSBHT2Jq
ZWN0IERPTSBiaW5kaW5ncwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzM1OTAKLQotICAgICAgICBUZXN0IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Vs
ZW1lbnRfYnlfaWQ7Ci0KLSAgICAgICAgKiB0ZXN0cy90ZXN0ZG9tZG9jdW1lbnQuYzoKLSAgICAg
ICAgKHRlc3RfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50X2J5X2lkKToKLSAgICAgICAgKG1haW4p
OgotCi0yMDEwLTA0LTI5ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgW0dUS10gR09iamVjdCBE
T00gYmluZGluZ3MKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMzNTkwCi0KLSAgICAgICAgVGVzdCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50
c19ieV9jbGFzc19uYW1lLgotCi0gICAgICAgICogdGVzdHMvdGVzdGRvbWRvY3VtZW50LmM6Ci0g
ICAgICAgICh0ZXN0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZSk6Ci0g
ICAgICAgIChtYWluKToKLQotMjAxMC0wNC0yOSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIFtH
VEtdIEdPYmplY3QgRE9NIGJpbmRpbmdzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMzU5MAotCi0gICAgICAgIFRlc3Qgd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWUuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0ZG9tZG9j
dW1lbnQuYzoKLSAgICAgICAgKHRlc3RfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV90YWdf
bmFtZSk6Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0wNC0yOSAgWGFuIExvcGV6ICA8eGxvcGV6
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0g
ICAgICAgIFtHVEtdIEdPYmplY3QgRE9NIGJpbmRpbmdzCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzU5MAotCi0gICAgICAgIE1vdmUgV2ViS2l0RE9N
RG9jdW1lbnQgdW5pdCB0ZXN0cyB0byB0aGVpciBvd24gZmlsZS4KLQotICAgICAgICAqIHRlc3Rz
L3Rlc3Rkb21kb2N1bWVudC5jOiBBZGRlZC4KLSAgICAgICAgKGZpbmlzaF9sb2FkaW5nKToKLSAg
ICAgICAgKGRvbV9kb2N1bWVudF9maXh0dXJlX3NldHVwKToKLSAgICAgICAgKGRvbV9kb2N1bWVu
dF9maXh0dXJlX3RlYXJkb3duKToKLSAgICAgICAgKHRlc3RfZG9tX2RvY3VtZW50X3RpdGxlKToK
LSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJ2aWV3LmM6Ci0KLTIwMTAt
MDQtMjkgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBbR1RLXSBHT2JqZWN0IERPTSBiaW5kaW5n
cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1OTAK
LQotICAgICAgICBJbmNsdWRlIDx3ZWJraXQvd2Via2l0ZG9tLmg+IGluIHRoZSBtYWluIHdlYmtp
dC5oIGhlYWRlci4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXQuaDoKLQotMjAxMC0wNC0yNSAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hY2ll
aiBTdGFjaG93aWFrLgotCi0gICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM4MDk3Ci0gICAgICAgIERpc2VudGFuZ2xlIGluaXRpYWxpemluZyB0
aGUgbWFpbiB0aHJlYWQgZnJvbSBpbml0aWFsaXppbmcgdGhyZWFkaW5nCi0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfaW5pdCk6IEFkZCBjYWxs
IHRvIGluaXRpYWxpemVNYWluVGhyZWFkLgotCi0yMDEwLTA0LTIyICBEYXZlIE1vb3JlICA8ZGF2
ZW1vb3JlQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXpr
b3YuCi0KLSAgICAgICAgQWRkZWQgbm90aWZpY2F0aW9uIHdoZW4gdGhlIGZhdmljb25zIGZvciBh
IHBhZ2UgYXJlIGNoYW5nZWQKLSAgICAgICAgZnJvbSBhIHNjcmlwdC4KLSAgICAgICAgVGhlIERv
Y3VtZW50IG9iamVjdCB3aWxsIG5vdGlmeSB0aGUgZnJhbWUgbG9hZGVyLCB3aGljaCB3aWxsCi0g
ICAgICAgIG5vdGlmeSB0aGUgY2xpZW50LiBJbXBsZW1lbnRhdGlvbnMgb2YgRnJhbWVMb2FkZXJD
bGllbnQgd2lsbAotICAgICAgICBoYXZlIHRvIGFkZCBvbmUgbWV0aG9kOyBkaXNwYXRjaERpZENo
YW5nZUljb25zKCkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZENoYW5nZUljb25zKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5oOgotCi0yMDEwLTA0LTIyICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgW0dUS10gR09i
amVjdCBET00gYmluZGluZ3MKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMzNTkwCi0KLSAgICAgICAgQWRkIHdlYmtpdF93ZWJfdmlld19nZXRfZG9jdW1l
bnQgdG8gcmV0cmlldmUgdGhlIFdlYktpdERPTURvY3VtZW50Ci0gICAgICAgIGZyb20gYSBXZWJL
aXRXZWJWaWV3LCBhbmQgYSB2ZXJ5IHNpbXBsZSB0ZXN0IGZvciBpdC4KLQotICAgICAgICAqIHRl
c3RzL3Rlc3R3ZWJ2aWV3LmM6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9kb2N1bWVudCk6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuaDoKLQotMjAxMC0wNC0yMiAgRGllZ28gRXNjYWxhbnRlIFVycmVsbyAg
PGRlc2NhbGFudGVAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXou
Ci0KLSAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBB
dGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkKLSAgICAgICAgV2ViS2l0R3RrCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQotCi0gICAgICAgIEV4cGFu
ZCB0ZXN0YXRrcm9sZXMgdG8gdGVzdCBBVEtfUk9MRV9DT01CT19CT1guCi0KLSAgICAgICAgKiB0
ZXN0cy90ZXN0YXRrcm9sZXMuYzoKLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9j
b21ib2JveCk6Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0wNC0yMiAgRGllZ28gRXNjYWxhbnRl
IFVycmVsbyAgPGRlc2NhbGFudGVAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBY
YW4gTG9wZXouCi0KLSAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3Ig
YWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkKLSAgICAgICAgV2ViS2l0R3RrCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQotCi0gICAg
ICAgIEV4cGFuZCB0ZXN0YXRrcm9sZXMgdG8gdGVzdCBBVEtfUk9MRV9TRVBBUkFUT1IuCi0KLSAg
ICAgICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzoKLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19n
ZXRfcm9sZV9zZXBhcmF0b3IpOgotICAgICAgICAobWFpbik6Ci0KLTIwMTAtMDQtMjIgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByNTgwNjkuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzU4
MDY5Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc1
MQotCi0gICAgICAgIEJyb2tlIGNvbXBpbGUgb24gV2luZG93cy4KLQotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2Ns
YXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgot
ICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAod2Vi
a2l0X3dlYl9zZXR0aW5nc19jb3B5KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEwLTA0LTIyICBBYmhpc2hl
ayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KLQotICAgICAgICBBZGQgc3VwcG9ydCBmb3IgY29udHJvbGxpbmcgY2xpcGJvYXJk
IGFjY2VzcyBmcm9tIGphdmFzY3JpcHQuCi0gICAgICAgIENsaXBib2FyZCBhY2Nlc3MgZnJvbSBq
YXZhc2NyaXB0IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzc1MQotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5p
dCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3NldHRpbmdzX2NvcHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotICAgICAgICAod2Via2l0
X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6Ci0KLTIwMTAtMDQtMjEgIEpha3ViIFdpZWN6b3Jl
ayAgPGp3aWVjem9yZWtAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KLQotICAgICAgICBMaXN0IGl0ZW0gbWFya2VycyBhcmUgbm90IGFsd2F5cyB1cGRhdGVk
IGFmdGVyIGNoYW5nZXMgaW4gdGhlIERPTS4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM3MDYwCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0
ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2ZyYW1lX21hcmtlcl90ZXh0X2Zvcl9saXN0X2l0ZW0pOiBBZGQgYSBwcml2YXRlIEFQ
SSB0byBnZXQgdGhlIG1hcmtlciB0ZXh0IGZvciBhIGxpc3QgaXRlbS4KLQotMjAxMC0wNC0yMSAg
RGllZ28gRXNjYWxhbnRlIFVycmVsbyAgPGRlc2NhbGFudGVAaWdhbGlhLmNvbT4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNy
ZWF0ZSB0ZXN0cyBmb3IgYWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkKLSAgICAgICAg
V2ViS2l0R3RrCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNDQ0OQotCi0gICAgICAgIEV4cGFuZCB0ZXN0YXRrcm9sZXMgdG8gdGVzdCBBVEtfUk9MRV9G
T1JNLgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0a3JvbGVzLmM6Ci0gICAgICAgICh0ZXN0X3dl
YmtpdF9hdGtfZ2V0X3JvbGVfZm9ybSk6Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0wNC0yMCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgU2VpZGVsLgotCi0gICAgICAgIEZhY3RvciBEb2N1bWVudFdyaXRlciBvdXQgb2YgRnJhbWVM
b2FkZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3
MTc1Ci0KLSAgICAgICAgVXBkYXRlIHRoZXNlIGNhbGxzaXRlcyBiZWNhdXNlIHRoZSBtZXRob2Qg
bW92ZWQgdG8gRG9jdW1lbnRXcml0ZXIuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
Ojpjb21taXR0ZWRMb2FkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmZp
bmlzaGVkTG9hZGluZyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2dldF9lbmNvZGluZyk6Ci0KLTIwMTAtMDQtMjAgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgotCi0gICAgICAgIENoYW5nZSBhIHBhcmFtZXRlciB0eXBlIG9mIGNob29zZUljb25G
b3JGaWxlcygpCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNzUwNAotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjaG9vc2VJY29uRm9yRmlsZXMpOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDEwLTA0LTIwICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgW0dUS10gRW5hYmxlIERPTSBj
bGlwYm9hcmQgYW5kIGRyYWctYW5kLWRyb3AgYWNjZXNzCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDYyMwotCi0gICAgICAgIE1vdmUgbW9zdCBvZiB0
aGUgUGFzdGVib2FyZEhlbHBlciBsb2dpYyBpbnRvIFdlYkNvcmUuIFRoaXMgaGVscHMKLSAgICAg
ICAgcHJlcGFyZSBmb3IgV2ViS2l0MiBhbmQgbGVhZHMgdG8gYSBjbGVhcmVyIHNlcGFyYXRpb24g
b2YgY29uY2VybnMKLSAgICAgICAgYmV0d2VlbiB0aGUgV2ViS2l0IGFuZCBXZWJDb3JlIGxheWVy
cy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OmNvbGxhcHNlU2VsZWN0aW9uKTogQ29udmVydGVkIHRoaXMgbG9naWMgdG8g
YSBHQ2xvc3VyZSBjYWxsYmFjay4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZXNw
b25kVG9DaGFuZ2VkU2VsZWN0aW9uKTogQ29sbGFwc2Ugc2VsZWN0aW9uIHZpYSBHQ2xvc3VyZSBu
b3cuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5jcHA6IE1v
dmVkIG1vc3Qgb2YgdGhlIGNvZGUgdG8gV2ViQ29yZS4KLSAgICAgICAgKFdlYktpdDo6UGFzdGVi
b2FyZEhlbHBlckd0azo6UGFzdGVib2FyZEhlbHBlckd0ayk6IFRoaXMgY29uc3RydWN0b3IganVz
dCBpbml0aWFsaXplcyB0aGUgdGFyZ2V0IGxpc3QuCi0gICAgICAgIChXZWJLaXQ6OlBhc3RlYm9h
cmRIZWxwZXJHdGs6On5QYXN0ZWJvYXJkSGVscGVyR3RrKTogVGhlIGRlc3RydWN0b3Igbm8gbG9u
Z2VyIG5lZWRzIHRvIGZyZWUgdGhlIHRhcmdldCBsaXN0LgotICAgICAgICAoV2ViS2l0OjpQYXN0
ZWJvYXJkSGVscGVyR3RrOjpnZXRJZEZvclRhcmdldFR5cGUpOiBBZGRlZCwgdmlydHVhbCBtZXRo
b2QgZm9yIGdldHRpbmcgdGFyZ2V0IGlkcy4KLSAgICAgICAgKFdlYktpdDo6UGFzdGVib2FyZEhl
bHBlckd0azo6dXNlUHJpbWFyeVNlbGVjdGlvbkNsaXBib2FyZCk6IEFkZGVkLCB2aXJ0dWFsIG1l
dGhvZCBmb3IgcXVlcnlpbmcgY3VycmVudCBjbGlwYm9hcmQuCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5oOiBVcGRhdGUgbWV0aG9kIGxpc3QgdG8gcmVmbGVj
dCByZWR1Y2VkIGZ1bmN0aW9uYWxpdHkuCi0KLTIwMTAtMDQtMTkgIERpZWdvIEVzY2FsYW50ZSBV
cnJlbG8gIDxkZXNjYWxhbnRlQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFu
IExvcGV6LgotCi0gICAgICAgIFtHdGtdIEV2YWx1YXRlIGFuZCBjcmVhdGUgdGVzdHMgZm9yIGFs
bCB0aGUgQXRrUm9sZSdzIGltcGxlbWVudGVkIGJ5Ci0gICAgICAgIFdlYktpdEd0awotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0NDkKLQotICAgICAg
ICBFeHBhbmQgdGVzdGF0a3JvbGVzIHRvIHRlc3QgQVRLIGZvcm0gcm9sZXMuCi0KLSAgICAgICAg
KiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzoKLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9s
ZV9jaGVja19ib3gpOgotICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2VudHJ5KToK
LSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9sYWJlbCk6Ci0gICAgICAgICh0ZXN0
X3dlYmtpdF9hdGtfZ2V0X3JvbGVfbGlzdGJveCk6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtf
Z2V0X3JvbGVfcGFzc3dvcmRfdGV4dCk6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3Jv
bGVfcHVzaF9idXR0b24pOgotICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3JhZGlv
X2J1dHRvbik6Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0wNC0xOSAgRGllZ28gRXNjYWxhbnRl
IFVycmVsbyAgPGRlc2NhbGFudGVAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBY
YW4gTG9wZXouCi0KLSAgICAgICAgW0d0a10gRXZhbHVhdGUgYW5kIGNyZWF0ZSB0ZXN0cyBmb3Ig
YWxsIHRoZSBBdGtSb2xlJ3MgaW1wbGVtZW50ZWQgYnkKLSAgICAgICAgV2ViS2l0R3RrCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQ0OQotCi0gICAg
ICAgIEFkZCB0ZXN0YXRrcm9sZXMgdG8gdGVzdCBBVEsgbm9uIGZvcm0gcm9sZXMuCi0KLSAgICAg
ICAgKiB0ZXN0cy90ZXN0YXRrcm9sZXMuYzogQWRkZWQuCi0gICAgICAgIChmaW5pc2hfbG9hZGlu
Zyk6Ci0gICAgICAgIChhdGtfcm9sZXNfZml4dHVyZV9zZXR1cCk6Ci0gICAgICAgIChhdGtfcm9s
ZXNfZml4dHVyZV90ZWFyZG93bik6Ci0gICAgICAgIChnZXRfY2hpbGRfYW5kX3Rlc3Rfcm9sZSk6
Ci0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3JvbGVfZG9jdW1lbnRfZnJhbWUpOgotICAg
ICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX2hlYWRpbmcpOgotICAgICAgICAodGVzdF93
ZWJraXRfYXRrX2dldF9yb2xlX2ltYWdlKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRf
cm9sZV9saW5rKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9saXN0X2FuZF9p
dGVtKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfcm9sZV9wYXJhZ3JhcGgpOgotICAg
ICAgICAodGVzdF93ZWJraXRfYXRrX2dldF9yb2xlX3NlY3Rpb24pOgotICAgICAgICAodGVzdF93
ZWJraXRfYXRrX2dldF9yb2xlX3RhYmxlKToKLSAgICAgICAgKG1haW4pOgotCi0yMDEwLTA0LTE3
ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBXZSBoYXZlIHRvIGluaXRpYWxpemUgdGhlIHRp
bWVyIGF0dHJpYnV0ZSBhZnRlciBkZXN0cm95aW5nIGl0LCBub3QKLSAgICAgICAgZG9pbmcgaXQg
d2FzIGNhdXNpbmcgY3Jhc2hlcyBpbiBzb21lIHNpdHVhdGlvbnMuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX2ZpbmFsaXpl
KToKLQotMjAxMC0wNC0xMyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+Ci0K
LSAgICAgICAgUmVuYW1lIFNlY3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2lu
IHRvIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5LgotICAgICAgICBBbmQgU2VjdXJpdHlP
cmlnaW46OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cyB0byByZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHMuCi0KLSAgICAgICAgU2VjdXJpdHlPcmlnaW4gbmVlZHMgYSB3YXkgdG8gcmVtb3Zl
IGluZGl2aWR1YWwgT3JpZ2luQWNjZXNzRW50cmllcwotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc0NDkKLQotICAgICAgICBSZXZpZXdlZCBieSBEYXZl
IEh5YXR0LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAo
d2Via2l0X3doaXRlX2xpc3RfYWNjZXNzX2Zyb21fb3JpZ2luKToKLSAgICAgICAgKHdlYmtpdF9y
ZXNldF9vcmlnaW5fYWNjZXNzX3doaXRlX2xpc3RzKToKLQotMjAxMC0wNC0xMSAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjU3NDY4LgotICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5n
ZXNldC81NzQ2OAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mzc0MzMKLQotICAgICAgICBCcm9rZSB0aGUgd29ybGQuLi4gIE11c3QgaGF2ZSBhcHBsaWVk
IHRoZSBwYXRjaCB3cm9uZwotICAgICAgICAoUmVxdWVzdGVkIGJ5IGFiYXJ0aCBvbiAjd2Via2l0
KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNvbW1pdHRlZExvYWQpOgotICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZmluaXNoZWRMb2FkaW5nKToKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2VuY29kaW5nKToKLQotMjAxMC0wNC0xMSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIEZhY3Rv
ciBEb2N1bWVudFdyaXRlciBvdXQgb2YgRnJhbWVMb2FkZXIKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MTc1Ci0KLSAgICAgICAgVXBkYXRlIHRoZXNl
IGNhbGxzaXRlcyBiZWNhdXNlIHRoZSBtZXRob2QgbW92ZWQgdG8gRG9jdW1lbnRXcml0ZXIuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpjb21taXR0ZWRMb2FkKToKLSAgICAgICAg
KFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmZpbmlzaGVkTG9hZGluZyk6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9l
bmNvZGluZyk6Ci0KLTIwMTAtMDQtMDcgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVt
Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgotCi0gICAgICAg
IFJlbW92ZWQgcmVkdW5kYW50IEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNv
dXJjZUJ5WE1MSHR0cFJlcXVlc3QoKQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzY5NDkKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5oOgotCi0yMDEwLTA0LTAxICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZv
Lm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBG
cmV5dGhlci4KLQotICAgICAgICBbR1RLXSB3ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbigpIHNo
b3VsZCBtYWtlIHN1cmUgd2Via2l0X2luaXQoKSBpcyBjYWxsZWQKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NzU0Ci0KLSAgICAgICAgTWFrZSBzdXJl
IGdsb2JhbCBmdW5jdGlvbnMgdGhhdCBkbyBub3QgcmVxdWlyZSBhIFdlYktpdFdlYlZpZXcgdG8K
LSAgICAgICAgYmUgY3JlYXRlZCBjYWxsIHdlYmtpdF9pbml0KCkgYmVmb3JlIGRvaW5nIHRoZWly
IGpvYi4gQWxzbyBhZGQgYW4KLSAgICAgICAgQVBJIHRlc3QgdG8gY2hlY2sgZm9yIHRoYXQuCi0K
LSAgICAgICAgKiB0ZXN0cy90ZXN0Z2xvYmFscy5jOiBBZGRlZC4KLSAgICAgICAgKHRlc3RfZ2xv
YmFsc19kZWZhdWx0X3Nlc3Npb24pOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X2dldF9kZWZhdWx0X3Nlc3Npb24p
OgotICAgICAgICAod2Via2l0X3NldF9jYWNoZV9tb2RlbCk6Ci0gICAgICAgICh3ZWJraXRfZ2V0
X2NhY2hlX21vZGVsKToKLQotMjAxMC0wMy0zMSAgTWFyY3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJv
bWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgotCi0gICAgICAg
IEFkZHMgR2VvbG9jYXRpb24gcGFyYW0gZm9yIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RGb3JGcmFtZS4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM1MDMxCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsu
Y3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RGb3JGcmFtZSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmg6Ci0KLTIwMTAtMDMtMzAgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91
Z2hAYXBwbGUuY29tPgotCi0gICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcuCi0K
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2ODY2Ci0g
ICAgICAgIE1vdmUgQ1N0cmluZyB0byBXVEYKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVD
bGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAg
ICogZ2RvbS9Db252ZXJ0VG9HQ2hhclByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
ZG93bmxvYWQuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0LmNwcDoK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuY3BwOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNlY3VyaXR5b3Jp
Z2luLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
Ymhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2ZpbmFs
aXplKToKLSAgICAgICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90YXJnZXQpOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6
Ci0KLTIwMTAtMDMtMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+Ci0KLSAg
ICAgICAgQnVpbGQgZml4LiBJbmNsdWRlIFdpbmRvd3NLZXlib2FyZENvZGVzLmggaW5zdGVhZCBv
ZiBLZXlib2FyZENvZGVzLmguCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuY3BwOgotCi0yMDEwLTAzLTI3ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAg
IEZyYW1lTG9hZGVyIGVtaXRzIG9ubG9hZC1ldmVudCB3aGVuIGhhbmRsaW5nCi0gICAgICAgIGRp
c3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzCi0KLSAgICAgICAgW0dUS10gSW1wcm92ZSByZXBv
cnRpbmcgb2YgZnJhbWUgbG9hZGVyIGNhbGxiYWNrcyBpbiBEUlQKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NDU0Ci0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cyk6Ci0gICAgICAgIGlt
cGxlbWVudGVkLCBub3cgaXQgZW1pdHMgb25sb2FkLWV2ZW50IHNpZ25hbAotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogYWRkZWQgb25sb2FkLWV2ZW50IHNpZ25hbAotCi0yMDEw
LTAzLTI1ICBTZXJnaW8gVmlsbGFyIFNlbsOtbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgQWRkZWQgbmV3IEFQSSB3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2NsZWFyLiBUaGlzIGZ1bmN0aW9uCi0gICAgICAgIGNs
ZWFycyB0aGUgYmFjayBmb3J3YXJkIGxpc3QKLQotICAgICAgICBbR1RLXSBodHRwL2hpc3Rvcnkg
dGVzdHMgYXJlIGZhaWxpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2MTczCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0
LmM6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY2xlYXIpOgot
ICAgICAgICAobWFpbik6IGFkZGVkIG5ldyB1bml0IHRlc3QgZm9yIHRoZSBuZXcgQVBJCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2NsZWFyKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViYmFja2ZvcndhcmRsaXN0Lmg6IG5ldyBmdW5jdGlvbiB0aGF0IGNsZWFycyB0aGUKLSAgICAg
ICAgYmFjayBmb3J3YXJkIGxpc3QKLQotMjAxMC0wMy0yNCAgS2VudCBUYW11cmEgIDx0a2VudEBj
aHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAg
ICAgTWFrZSBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoKSBvcHRpb25hbC4KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MDcyCi0KLSAgICAgICAgLSBS
ZW5hbWUgaWNvbkZvckZpbGVzKCkgdG8gY2hvb3NlSWNvbkZvckZpbGVzKCkuCi0gICAgICAgIC0g
Q2FsbCBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoKSBmcm9tIGNob29zZUljb25Gb3JGaWxlcygp
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAxMC0wMy0yMyAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgW0dUS10gRG9l
cyBub3QgYnVpbGQgd2l0aCBsYXRlc3QgR1RLKyBkZXZlbG9wbWVudCByZWxlYXNlCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjM5OAotCi0gICAgICAg
IEZpeCBidWlsZGluZyB3aXRoIG5ld2VzdCBHVEsrIHZlcnNpb25zLgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50Ojp3aW5kb3dSZWN0KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXRX
aW5kb3dSZWN0KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojp1bmZvY3VzKToKLSAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjYW5UYWtlRm9jdXMpOgotICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXRwcml2YXRlLmNwcDoKLSAgICAgICAgKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNrKToK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dl
Yl9mcmFtZV9wcmludF9mdWxsKToKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfcHJpbnQpOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19ncmFiX2ZvY3VzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19mb2N1c19pbl9ldmVu
dCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2NyaXB0X2RpYWxvZyk6Ci0KLTIwMTAtMDMt
MTggIFBoaWxpcCBDaGltZW50byAgPHBoaWxpcC5jaGltZW50b0BnbWFpbC5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCi0KLSAgICAgICAgU2V0dGluZyB0aGUgR09iamVj
dCBXZWJLaXRXZWJWaWV3IHByb3BlcnR5ICd3aW5kb3ctZmVhdHVyZXMnIHRvIE5VTEwKLSAgICAg
ICAgY2F1c2VzIGEgY3Jhc2guIAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzYxNDQKLQotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJ2aWV3LmM6IEFkZCB1
bml0IHRlc3QgZm9yIHRoaXMgYnVnLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDogRG9uJ3QgYWxsb3cgdGhlICd3aW5kb3ctZmVhdHVyZXMnIHByb3BlcnR5Ci0gICAgICAgIHRv
IGJlIHNldCB0byBOVUxMLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJl
cy5jcHA6IAotICAgICAgICAod2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfZXF1YWwpOiBEb24n
dCBleGFtaW5lIHRoZSBtZW1iZXJzIG9mIGVpdGhlcgotICAgICAgICB3ZWJfd2luZG93X2ZlYXR1
cmVzIGFyZ3VtZW50IGlmIGVpdGhlciBpcyBOVUxMLCBqdXN0IHJldHVybiB0aGF0IHRoZXkKLSAg
ICAgICAgYXJlIG5vdCBlcXVhbC4gQWRkaXRpb25hbGx5LCBpZiB0aGV5IGFyZSB0aGUgc2FtZSBv
YmplY3QsIHJldHVybiB0aGF0IAotICAgICAgICB0aGV5IGFyZSBlcXVhbC4KLQotMjAxMC0wMy0x
NiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
R3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIFVwZGF0ZSBmb3IgMS4xLjkwIHJlbGVhc2UuCi0K
LSAgICAgICAgKiBORVdTOgotCi0yMDEwLTAzLTE2ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxn
dXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIEZpeCBvbmUgdG9vIG1h
bnkgZW1wdHkgbGluZXMgaW4gZG9jdW1lbnRhdGlvbiBvZgotICAgICAgICB3aW5kb3ctb2JlamN0
LWNsZWFyZWQgc2lnbmFsLCB3aGljaCBjYXVzZWQgdGhlIGRvY3VtZW50YXRpb24gdG8gYmUKLSAg
ICAgICAgcmVuZGVyZWQgZnVubnkuIFRoYW5rcyB0byBNYXJ0aW4gUm9iaW5zb24gZm9yIG5vdGlj
aW5nLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDEwLTAzLTE2
ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVr
PgotCi0gICAgICAgIFVucmV2aWV3ZWQuIEFkZCBtaXNzaW5nIHN5bWJvbCB0byBHZW9Mb2NhdGlv
biBkb2N1bWVudGF0aW9uCi0gICAgICAgIHNlY3Rpb24uCi0KLSAgICAgICAgKiBkb2NzL3dlYmtp
dGd0ay1zZWN0aW9ucy50eHQ6Ci0KLTIwMTAtMDMtMTYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2Jp
bnNvbkB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAg
ICAgICBjYW4ndCBpbnB1dCBrb3JlYW4gaW50byBsb3dlciBhbGwgaW5wdXQgYm94IGV4Y2VwdCBh
ZHJlc3MgaW5wdXQgYm94IGluIHdlYmtpdCBndGsgbGF1bmNoZXIKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMjkwCi0KLSAgICAgICAgTWFrZSB0aGUg
R1RLKyBFZGl0b3JDbGllbnQgcHJvcGVybHkgaGFuZGxlIGRpZmZlcmVudCB0eXBlcyBvZiBpbnB1
dCBtb2R1bGUKLSAgICAgICAgYmVoYXZpb3Igc3VjaCBhcyBjb21taXQgYW5kIHByZWVkaXQgc2ln
bmFscyB0aGF0IGhhcHBlbiBvdXRzaWRlIG9mIGtleSBldmVudAotICAgICAgICBmaWx0ZXJpbmcg
YW5kIG11bHRpcGxlIHRpbWVzIGluIGEgcm93LiBGaWx0ZXIga2V5dXAgZXZlbnRzIGFzIHdlbGwg
YXMga2V5ZG93bgotICAgICAgICBldmVudHMgYW5kIGNhbGwgZ3RrX2ltX2NvbnRleHRfZm9jdXNf
e2luL291dH0gd2hlbiB0aGUgV2ViVmlldyBmb2N1cyBjaGFuZ2VzLgotCi0gICAgICAgIEFkZGVk
IHRlc3RzIGZvciB0aGlzIGJlaGF2aW9yIHRvIHRoZSBHVEsrIHVuaXQgdGVzdHMuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0
OjppbUNvbnRleHRDb21taXR0ZWQpOiBIYW5kbGUgdGhpcyBzaWduYWwgcHJvcGVybHkgd2hlbiBp
dCBoYXBwZW5zIG91dHNpZGUgb2YKLSAgICAgICAga2V5IGV2ZW50IGZpbHRlcmluZy4KLSAgICAg
ICAgKFdlYktpdDo6aW1Db250ZXh0UHJlZWRpdENoYW5nZWQpOiBJbW1lZGlhdGVseSB1cGRhdGUg
dGhlIHByZWVkaXQgc3RhdGUgYW5kIGRvIG5vdCByZWplY3QKLSAgICAgICAgZW1wdHkgcHJlZWRp
dHMsIHNvIHRoYXQgY2FuY2VsbGF0aW9uIHdvcmtzIHByb3Blcmx5LgotICAgICAgICAoV2ViS2l0
OjpFZGl0b3JDbGllbnQ6OnVwZGF0ZVBlbmRpbmdDb21wb3NpdGlvbik6IEFkZCB0aGlzIG1ldGhv
ZCwgd2hpY2ggaGFuZGxlcyB0aGUKLSAgICAgICAgc2l0dWF0aW9uIHdoZXJlIGEgY29tbWl0IHNp
Z25hbCBoYXBwZW5zIHdoZW4gdGhlcmUgaXMgc3RpbGwgYSBwZW5kaW5nIGNvbW1pdC4KLSAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRCZWdpbkVkaXRpbmcpOiBDbGVhciBwZW5k
aW5nIGNvbXBvc2l0aW9uIHN0YXRlIGJlZm9yZSBlZGl0aW5nCi0gICAgICAgIHN0YXJ0cy4KLSAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRFbmRFZGl0aW5nKTogQ2xlYXIgcGVu
ZGluZyBjb21wb3NpdGlvbiBzdGF0ZSBiZWZvcmUgZWRpdGluZyBlbmRzLgotICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOiBObyBsb25nZXIgc3BlY2lh
bCBjYXNlIHByZWVkaXRzIHdoaWNoIGhhcHBlbiBkdXJpbmcKLSAgICAgICAga2V5IGV2ZW50IGZp
bHRlcmluZy4gV2hlbiBjb25maXJtaW5nIGEgcGVuZGluZyBjb21wb3NpdGlvbiB1c2UgaW5zZXJ0
VGV4dCBpbnN0ZWFkIG9mIGNvbmZpcm1Db21wb3NpdGlvbi4KLSAgICAgICAgKFdlYktpdDo6RWRp
dG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24pOgotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOiBNYWtlIHBlbmRpbmdDb21wb3NpdGlvbiBhIG1lbWJl
ciwgc28gdGhhdCBtdWx0aXBsZSBXZWJWaWV3cwotICAgICAgICBkbyBub3Qgc2hhcmUgc3RhdGUu
Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6d2ViVmlldyk6IEFkZGVkLgotICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnRyZWF0Q29udGV4dENvbW1pdEFzS2V5RXZlbnQpOiBB
ZGRlZC4KLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpjbGVhclBlbmRpbmdDb21wb3Np
dGlvbik6IEFkZGVkLgotICAgICAgICAqIHRlc3RzL3Rlc3RrZXlldmVudHMuYzoKLSAgICAgICAg
KHRlc3Rfa2V5cHJlc3NfZXZlbnRzX2xvYWRfc3RhdHVzX2NiKToKLSAgICAgICAgKG1hcF9ldmVu
dF9jYik6Ci0gICAgICAgIChzZXR1cF9rZXlldmVudF90ZXN0KToKLSAgICAgICAgKHRlc3Rfa2V5
cHJlc3NfZXZlbnRzKToKLSAgICAgICAgKGVsZW1lbnRfdGV4dF9lcXVhbF90byk6Ci0gICAgICAg
ICh0ZXN0X2ltZV9sb2FkX3N0YXR1c19jYik6Ci0gICAgICAgICh0ZXN0X2ltZSk6Ci0gICAgICAg
IChtYWluKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfa2V5X3JlbGVhc2VfZXZlbnQpOgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2ZvY3VzX2luX2V2ZW50KToKLQotMjAxMC0wMy0xNiAgWXVyeSBTZW1pa2hhdHNreSA8eXVy
eXNAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCi0K
LSAgICAgICAgSW50cm9kdWNlIEluc3BlY3RvckZyb250ZW5kQ2xpZW50IHRoYXQgcHJvdmlkZXMg
SW5zcGVjdG9yRnJvbnRlbmQgd2l0aCBhbiBpbnRlcmZhY2UgdG8gdGhlIGVtYmVkZGVyLiBJbnNw
ZWN0b3JDbGllbnQgbm93IHNlcnZlcyBhcyBhIGRlbGVnYXRlIGZvciBJbnNwZWN0b3JDb250cm9s
bGVyIGFuZCBkb2VzIG5vdCBjb250YWluIG1ldGhvZHMgZm9yIG1hbmFnaW5nIGluc3BlY3RvciBm
cm9udGVuZCB3aW5kb3cuIFRoYXQgYWxsb3dzIHRvIGNyZWF0ZSByZW1vdGUgSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LgotCi0gICAgICAgIEludHJvZHVjZSBJbnNwZWN0b3JGcm9udGVuZENsaWVudCB0
aGF0IHdvdWxkIHByb3ZpZGUgSW5zcGVjdG9yRnJvbnRlbmQgd2l0aCBhbiBpbnRlcmZhY2UgdG8g
dGhlIGVtYmVkZGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNTAzNgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6bm90aWZ5V2ViVmlld0Rlc3Ryb3llZCk6Ci0gICAgICAg
IChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6SW5zcGVjdG9yQ2xpZW50KToKLSAgICAgICAgKFdl
YktpdDo6SW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0b3JEZXN0cm95ZWQpOgotICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6Ci0gICAgICAgIChX
ZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6aGlnaGxpZ2h0KToKLSAgICAgICAgKFdlYktpdDo6SW5z
cGVjdG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0KToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9y
Q2xpZW50Ojpwb3B1bGF0ZVNldHRpbmcpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGll
bnQ6OnN0b3JlU2V0dGluZyk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudCk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50Ojp+SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpOgotICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyk6Ci0g
ICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpsb2NhbGl6ZWRTdHJpbmdz
VVJMKToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmhpZGRlblBh
bmVscyk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpicmluZ1Rv
RnJvbnQpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xvc2VX
aW5kb3cpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6YXR0YWNo
V2luZG93KToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmRldGFj
aFdpbmRvdyk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzZXRB
dHRhY2hlZFdpbmRvd0hlaWdodCk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckZyb250ZW5k
Q2xpZW50OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRHdGsuaDoKLQotMjAxMC0wMy0xNSAgSm9hbm1hcmllIERpZ2dzICA8am9h
bm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJl
eXRoZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM1NTAyCi0gICAgICAgIFtHdGtdIE9iamVjdHMgb2YgQVRLX1JPTEVfVEFCTEUgc2hvdWxkIG5v
dCBpbXBsZW1lbnQgQXRrVGV4dAotCi0gICAgICAgIE5ldyB0ZXN0IHRvIGJlIHN1cmUgd2UgZG8g
bm90IGFjY2lkZW50YWxseSBpbXBsZW1lbnQgQXRrVGV4dCBmb3IgdGFibGVzCi0KLSAgICAgICAg
KiB0ZXN0cy90ZXN0YXRrLmMKLSAgICAgICAgKHRlc3RXZWJraXRBdGtHZXRUZXh0SW5UYWJsZSk6
Ci0gICAgICAgIChtYWluKToKLQotMjAxMC0wMy0wOSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3Jt
YW5kQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgot
Ci0gICAgICAgIFtHVEtdIEdUS19XSURHRVRfSVNfU0VOU0lUSVZFIGlzIGRlcHJlY2F0ZWQgaW4g
R1RLKyAyLjIwCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNTkwOQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBHVEtfV0lER0VU
X0lTX1NFTlNJVElWRSBoYXMgYmVlbgotICAgICAgICBkZXByZWNhdGVkIGluIGd0ayAyLjIwLiBV
c2UgZ3RrX3dpZGdldF9pc19zZW5zaXRpdmUgd2hlbiBhdmFpbGFibGUuCi0KLTIwMTAtMDMtMTIg
IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+
Ci0KLSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4u
Ci0KLSAgICAgICAgTWlzYyBkb2N1bWVudGF0aW9uIGZpeGVzLiBGaXhlcyAoYWxtb3N0KSBhbGwg
d2FybmluZ3MgZW1pdHRlZCBieQotICAgICAgICB0aGUgZG9jdW1lbnRhdGlvbiBidWlsZCBwcm9j
ZXNzLiBPbmx5IHRoZSBicm9rZW4gcmVmZXJlbmNlcyB0byBKU0MKLSAgICAgICAgb2JqZWN0cyBy
ZW1haW4uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uY3BwOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX2luc3BlY3Rvcl9jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0
dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgIChETkRDb250ZW50c1Jl
cXVlc3Q6OndlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLQotMjAxMC0wMy0xMSAgQW5kZXJz
IENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERh
dmlkIEh5YXR0LgotCi0gICAgICAgIFJlbW92ZSBpbnZhbGlkYXRlQ29udGVudHMsIGl0IGlzbid0
IHVzZWQgYW5kIGl0IG5ldmVyIG1ha2VzIHNlbnNlIHRvIG9ubHkgaW52YWxpZGF0ZSB0aGUgY29u
dGVudHMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDEwLTAzLTA5
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgW0dUS10gdGVzdGtleWV2
ZW50cyBkb2Vzbid0IHN0b3AgaWYgaW5wdXQgZXZlbnQgaW5qZWN0aW9uIGZhaWxzCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTkyMgotCi0gICAgICAg
ICogdGVzdHMvdGVzdGtleWV2ZW50cy5jOgotICAgICAgICAobG9hZF9zdGF0dXNfY2IpOiBBZGRl
ZCBhIHNhZmVndWFyZCB0byBleGl0IGZyb20gdGhlIHRlc3QgaWYgdGhlCi0gICAgICAgIGlucHV0
IGV2ZW50IGluamVjdGlvbiBmYWlsZWQuCi0KLTIwMTAtMDMtMDkgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgVW5yZXZp
ZXdlZC4gRG9jdW1lbnRhdGlvbiBjb250cm9sIGZpbGVzIHVwZGF0ZSBmb3IgMS4xLjIzLgotCi0g
ICAgICAgICogZG9jcy93ZWJraXRndGstZG9jcy5zZ21sOgotCi0yMDEwLTAzLTA4ICBDc2FiYSBP
c3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgW0dUS10gVW5yZXZpZXdl
ZCBidWlsZGZpeCBhZnRlciByNTU2ODguCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxv
YWQuY3BwOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKLQotMjAxMC0wMy0wMiAg
QWRhbSBUcmVhdCAgPGF0cmVhdEByaW0uY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhdmUg
SHlhdHQuCi0KLSAgICAgICAgQWRhcHQgdGhlIGd0ayBwb3J0IHRvIHRoZSByZWZhY3RvcmluZyBv
ZiByZXBhaW50IG1ldGhvZHMuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM0MjE0Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgot
Ci0yMDEwLTAzLTA4ICBFcmljIFVocmhhbmUgIDxlcmljdUBjaHJvbWl1bS5vcmc+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCi0KLSAgICAgICAgUmVtb3ZlIHRoZSBub3ctcmVk
dW5kYW50IFNldHRpbmdzIGZpZWxkcyBmb3IgdGhlIERhdGFiYXNlCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTc2MwotCi0gICAgICAgIE5vIG5ldyB0
ZXN0czsgdGhpcyBjb2RlIGlzbid0IGNhbGxlZC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcDogUmVtb3ZlIHRoZSBjYWxscyBpbnRvIFNldHRpbmdzLgotICAgICAgICAoRE5E
Q29udGVudHNSZXF1ZXN0Ojp3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAg
ICAgKERORENvbnRlbnRzUmVxdWVzdDo6d2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6
Ci0KLTIwMTAtMDMtMDYgIEFybm8gUmVuZXZpZXIgIDxhcm5vQHJlbmV2aWVyLm5ldD4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KLQotICAgICAgICBbR3RrXSBHRU9MT0NBVElP
Tl9QT0xJQ1lfREVDSVNJT05fQ0FOQ0VMTEVEIHVudXNlZAotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzU4MDMKLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKERORENvbnRlbnRzUmVxdWVzdDo6d2Via2l0X3dlYl92
aWV3X2NsYXNzX2luaXQpOgotCi0yMDEwLTAzLTAzICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9v
QHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotICAg
ICAgICBQYXRjaCBieSBBbnRvbmlvIEdvbWVzIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KLQotICAg
ICAgICBbR3RrXSBBZGQgJ2VuYWJsZS1zcGF0aWFsLW5hdmlnYXRpb24nIHNldHRpbmcgZm9yIHRv
Z2dsZSBTcGF0aWFsIE5hdmlnYXRpb24gb24vb2ZmCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTcwMQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Nl
dHRpbmdzX2NvcHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAg
ICAgKERORENvbnRlbnRzUmVxdWVzdDo6d2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyk6
Ci0gICAgICAgIChETkRDb250ZW50c1JlcXVlc3Q6OndlYmtpdF93ZWJfdmlld19zZXR0aW5nc19u
b3RpZnkpOgotCi0yMDEwLTAzLTAzICBGcmlkcmljaCBTdHJiYSAgPGZyaWRyaWNoLnN0cmJhQGJs
dWV3aW4uY2g+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIE1p
c2NlbGxhbmVvdXMgbGl0dGxlIGZpeGVzIGZvciB0aGUgd2luZG93cyBidWlsZCBvZiB3ZWJraXQt
Z3RrCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTY0
MAotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDogV2luZG93cyBoZWFkZXJz
IGRlZmluZSBFUlJPUgotICAgICAgICB3aGljaCBicmVha3MgdGhlIGJ1aWxkLiBVbmRlZiBFUlJP
UiBpZiBpdCBpcyBkZWZpbmVkLgotCi0yMDEwLTAzLTAzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggYWZ0ZXIg
cjU1NDUyLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
RE5EQ29udGVudHNSZXF1ZXN0Ojp3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KTogYWRk
ZWQgbWlzc2luZyBicmFjZXMuCi0KLTIwMTAtMDMtMDIgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNo
cm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KLQotICAgICAg
ICBNb3ZlIGRhdGFiYXNlIGVuYWJsZSBiaXQgZnVsbHkgb3V0IG9mIHNldHRpbmdzCi0gICAgICAg
IFRoaXMgaXMgc3RhZ2Ugb25lIG9mIGEgdGhyZWUtc3RhZ2UgY29tbWl0IFt3ZWJraXQsIHRoZW4g
Y2hyb21pdW0sIHRoZW4KLSAgICAgICAgd2Via2l0IGFnYWluXS4gIEluIHRoaXMgY2hhbmdlIEkn
bSBhZGRpbmcgY2FsbHMgdG8KLSAgICAgICAgRGF0YWJhc2U6OnNldElzQXZhaWxhYmxlIGluc2lk
ZSBTZXR0aW5nczo6c2V0RGF0YWJhc2VFbmFibGVkIGFuZAotICAgICAgICBhbnl3aGVyZSBlbHNl
IHRoYXQgY2FsbGVkIGl0LCBhbmQgc3dpdGNoaW5nIHdlYmtpdCBmdWxseSBvdmVyIHRvIHVzaW5n
Ci0gICAgICAgIHRoYXQgZmxhZyBbYWRkZWQgaW4gYSBwcmV2aW91cyBjaGVja2luXS4gIFBoYXNl
IHR3byB3aWxsIHJlbW92ZQotICAgICAgICBDaHJvbWl1bSdzIHVzZSBvZiBTZXR0aW5ncyBmb3Ig
dGhlIERhdGFiYXNlLCBhbmQgcGhhc2UgdGhyZWUgd2lsbCByZW1vdmUKLSAgICAgICAgdGhlIFNl
dHRpbmcgZm9yIHRoZSBEYXRhYmFzZSBlbmFibGUgZW50aXJlbHksIGxlYXZpbmcgb25seQotICAg
ICAgICBEYXRhYmFzZTo6aXNBdmFpbGFibGUvc2V0SXNBdmFpbGFibGUuCi0KLSAgICAgICAgTm8g
bmV3IHRlc3RzOyB0ZXN0ZWQgYnkgZXhpc3Rpbmcgc3RvcmFnZSB0ZXN0cy4KLQotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUzMTAKLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogIEFkZCBjYWxscyB0byBEYXRhYmFzZTo6c2V0SXNB
dmFpbGFibGUKLSAgICAgICAgKERORENvbnRlbnRzUmVxdWVzdDo6d2Via2l0X3dlYl92aWV3X3Vw
ZGF0ZV9zZXR0aW5ncyk6Ci0gICAgICAgIChETkRDb250ZW50c1JlcXVlc3Q6OndlYmtpdF93ZWJf
dmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEwLTAzLTAyICBBcm5vIFJlbmV2aWVyICA8YXJu
b0ByZW5ldmllci5uZXQ+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNp
bHZhLgotCi0gICAgICAgIFtHdGtdIGltcGxlbWVudHMgQ2hyb21lQ2xpZW50OjpyZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM1MjEwCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5oOgotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLXNlY3Rpb25zLnR4dDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGRlZmluZXMuaDoKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbi5jcHA6IEFkZGVkLgot
ICAgICAgICAod2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9kZWNpc2lvbl9jbGFzc19pbml0KToK
LSAgICAgICAgKHdlYmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfZGVjaXNpb25faW5pdCk6Ci0gICAg
ICAgICh3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyk6Ci0gICAgICAgICh3
ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2FsbG93KToKLSAgICAgICAgKHdlYmtpdF9nZW9sb2Nh
dGlvbl9wb2xpY3lfZGVueSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9s
aWN5ZGVjaXNpb24uaDogQWRkZWQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgIChETkRDb250ZW50
c1JlcXVlc3Q6OndlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXRt
YXJzaGFsLmxpc3Q6Ci0KLTIwMTAtMDMtMDEgIEpvc8OpIE1pbGzDoW4gU290byAgPGptaWxsYW5A
aWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEu
Ci0KLSAgICAgICAgW0dUS10gUmlnaHQgY2xpY2sgZG9lcyBub3QgYWN0aXZhdGUgdGV4dCBlbnRy
eQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkxNzcK
LQotICAgICAgICBNYWtlcyB0aGUgZnJhbWUgaGFuZGxlIHRoZSBtb3VzZSBjbGljayBldmVudCBi
ZWZvcmUgc2VuZGluZyB0aGUKLSAgICAgICAgY29udGV4dCBtZW51IGV2ZW50LgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAoUG9wdXBNZW51UG9zaXRpb25G
dW5jKToKLSAgICAgICAgRnVuY3Rpb24gY3JlYXRlZCB0byBtYWtlIHRoZSBwb3B1cCBtZW51IGFw
cGVhciBpbiB0aGUgY29ycmVjdCBwb3NpdGlvbiwgZXNwZWNpYWxseQotICAgICAgICB3aGVuIGlu
dm9rZWQgZnJvbSB0aGUga2V5Ym9hcmQuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9yd2Fy
ZF9jb250ZXh0X21lbnVfZXZlbnQpOgotICAgICAgICBNb3VzZSBjbGljayBldmVudCBpcyBzZW50
IHRvIGZyYW1lIGJlZm9yZSBjcmVhdGluZyBjb250ZXh0IG1lbnUsCi0gICAgICAgIFBvcHVwTWVu
dVBvc2l0aW9uRnVuYyB1c2VkIHRvIGRldGVybWluZSB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIG1l
bnUgc2hvdWxkIGFwcGVhci4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hh
bmRsZXIpOgotICAgICAgICBJbXByb3ZlZCBmb2N1c2VkIG5vZGUgcG9zaXRpb24gZGV0ZWN0aW9u
LiBFdmVudCBidXR0b24gc2V0IHRvIHJpZ2h0IGJ1dHRvbi4KLQotMjAxMC0wMy0wMSAgSmFrb2Ig
UGV0c292aXRzICA8anBldHNvdml0c0ByaW0uY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCi0KLSAgICAgICAgQWRhcHQgdG8gdGhlIG5ldyBab29tTW9kZSBlbnVtLgotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUzNDcKLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKERORENvbnRlbnRzUmVx
dWVzdDo6d2Via2l0X3dlYl92aWV3X2FwcGx5X3pvb21fbGV2ZWwpOgotCi0yMDEwLTAzLTAxICBL
YWxsZSBWYWhsbWFuICA8enVoQGlraS5maT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZv
IE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgUXVldWUgYSByZXNpemUgd2hlbiBlaXRoZXIgb2Yg
dGhlIGNvbnRlbnQgZGltZW5zaW9ucyBjaGFuZ2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NDg5Ci0KLSAgICAgICAgVGhlIGNoZWNrIGZvciBzaXpl
IGNoYW5nZXMgb25seSBxdWV1ZWQgYSByZXNpemUgaWYgYm90aCBvZiB0aGUgY29udGVudAotICAg
ICAgICBkaW1lbnNpb25zIGNoYW5nZSwgbGVhdmluZyB0aGUgd2lkZ2V0IHNpemUgb3V0LW9mLXN5
bmMgaWYgZWcuIG9ubHkgdGhlCi0gICAgICAgIHdpZHRoIGNoYW5nZXMuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotCi0yMDA5LTEyLTA0ICBHdXN0YXZv
IE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBOZWVkcyBwcm9wZXIg
cmVwb3J0aW5nIG9mIGZyYW1lIGxvYWRlciBjYWxsYmFja3MsIGluIERSVAotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIxNzAKLQotICAgICAgICBBZGQg
bmV3IHNpZ25hbCB0byByZXBvcnQgd2hlbiB0aGUgZG9jdW1lbnQgbG9hZCBpcyBmaW5pc2hlZCBm
b3IgYQotICAgICAgICBmcmFtZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6Ci0KLTIwMTAt
MDItMjYgIEFudG9uaW8gR29tZXMgIDx0b25pa2l0b29Ad2Via2l0Lm9yZz4KLQotICAgICAgICBD
b21wbGVtZW50YXJ5IGNvbW1pdCBvZiByNTUzMDAuIE1pc3NpbmcgIm5vdGlmeTo6IiB0byBzaWdu
YWwgbmFtZS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJ2aWV3LmM6Ci0gICAgICAgICh0ZXN0
X3dlYmtpdF93ZWJfdmlld19ncmFiX2ZvY3VzKToKLQotMjAxMC0wMi0yNiAgQW50b25pbyBHb21l
cyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Bl
ei4KLSAgICAgICAgUGF0Y2ggYnkgQW50b25pbyBHb21lcyA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+
Ci0KLSAgICAgICAgW0dUS10gTWFrZSB3ZWJraXRfd2ViX3ZpZXdfZ3JhYl9mb2N1cyB0byBhY3Rp
dmUgZm9jdXMgY29udHJvbGxlci4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM1NDAyCi0KLSAgICAgICAgV2hlbiBwcm9ncmFtYXRpY2FsbHkgc2V0dGlu
ZyBmb2N1cyB0byBhbiBlbGVtZW50IGluIGFuIGlubmVyIGRvY3VtZW50LAotICAgICAgICBjYWxs
aW5nICJoYXNGb2N1cygpIiBmcm9tIHRoaXMgZG9jdW1lbnQgcmV0dXJucyBGQUxTRSwgYmVjYXVz
ZQotICAgICAgICBkb2N1bWVudCdzIEZvY3VzQ29udHJvbGxlciBpcyBub3QgYWN0aXZhdGVkLiBJ
dCBkb2VzIG5vdCBoYXBwZW4KLSAgICAgICAgaWYgfGRvY3VtZW50fCBpcyB0aGUgbWFpbiBkb2N1
bWVudC4KLQotICAgICAgICBNYWtpbmcgd2Via2l0X3dlYl92aWV3X2dyYWJfZm9jdXMgdG8gYWN0
dWFsbHkgYWN0aXZhdGUgdGhlIEZvY3VzQ29udHJvbGxlciwKLSAgICAgICAgZml4ZXMgdGhlIGlz
c3VlLgotCi0gICAgICAgICogdGVzdHMvdGVzdHdlYnZpZXcuYzoKLSAgICAgICAgKHNlcnZlcl9j
YWxsYmFjayk6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfdmlld19ncmFiX2ZvY3VzKToKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZ3JhYl9mb2N1cyk6Ci0KLTIwMTAtMDItMjYgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4KLQotICAgICAgICBSZXZlcnRlZCBs
YXN0IHBhdGNoIChyNTUyOTUpLCBpdCBjYXVzZXMgcHJvYmxlbXMgd2l0aCB0aGUgZnJhbWVzLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLQotMjAxMC0w
Mi0xOSAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gU29tZSByZWdpb24gY2hlY2tz
IGluIHNjcm9sbCBhcmUgbm90IHJlcXVpcmVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNTE0MgotCi0gICAgICAgIFJlbW92ZXMgc29tZSBvZiB0aGUg
b3BlcmF0aW9ucyBjaGVja2luZyB0aGUgbW92ZWQgYW5kIGludmFsaWRhdGVkCi0gICAgICAgIHJl
Z2lvbnMgd2hlbiBzY3JvbGxpbmcsIGl0IGlzIGRvbmUgYWxyZWFkeSBpbgotICAgICAgICBnZGtf
d2luZG93X21vdmVfcmVnaW9uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcDoKLQotMjAxMC0wMi0yNSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2
by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9w
ZXouCi0KLSAgICAgICAgW0d0a10gY3Jhc2hlZCB3aGVuIGRlc3Ryb3lpbmcKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMjcxCi0KLSAgICAgICAgTlVM
TC1jaGVjayB0aGUgcGFnZSBiZWZvcmUgcmVsYXlpbmcgdGhlIGZvY3VzIG91dCBldmVudCwgc2lu
Y2UKLSAgICAgICAgdGhpcyBtaWdodCBoYXBwZW4gd2hlbiBkZXN0cm95aW5nIHRoZSB3aWRnZXQg
d2l0aG91dCBkZXN0cm95aW5nCi0gICAgICAgIGl0cyBwYXJlbnQsIGFuZCB3ZSBjdXJyZW50bHkg
Y3Jhc2guCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vidmlldy5jOgotICAgICAgICAoZGVsYXll
ZF9kZXN0cm95KToKLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl92aWV3X2Rlc3Ryb3kpOgotICAg
ICAgICAobWFpbik6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2ZvY3VzX2luX2V2ZW50KToKLQotMjAxMC0wMi0yNCAgS3J6eXN6
dG9mIEtvdGxlbmdhIDxwb2Nla0B1c2Vycy5zZi5uZXQ+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
R3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFtHdGtdIENyZWF0aW9uIG9mIGEgV2Vi
a2l0V2ViVmlldyB3aWRnZXQgaXMgdmVyeSBzbG93Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDAzMgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjppZ25v
cmVXb3JkSW5TcGVsbERvY3VtZW50KTogQ2hhbmdlICdsYW5ncycgdG8gJ2RpY3RzJwotICAgICAg
ICB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgdGhlIGxpc3QganVzdCBob2xkcyBFbmNoYW50IGRp
Y3Rpb25hcmllcyBub3cuCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6bGVhcm5Xb3Jk
KTogRGl0dG8uCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2hlY2tTcGVsbGluZ09m
U3RyaW5nKTogRGl0dG8uCi0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Z2V0R3Vlc3Nl
c0ZvcldvcmQpOiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOiBSZW1v
dmUgdGhlIG5vdyB1bnVzZWQgU3BlbGxMYW5ndWFnZSBzdHJ1Y3QuCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcDogQ2hhbmdlIGZ1bmN0aW9uIGNhbGwgdG8gcmVmbGVjdCBu
ZXcKLSAgICAgICAgd2Via2l0X3dlYl9zZXR0aW5nc19nZXRfZW5jaGFudF9kaWN0cyBuYW1lLgot
ICAgICAgICAoZ2V0X2VuY2hhbnRfYnJva2VyKTogQWRkIHRoaXMgbWV0aG9kIHdoaWNoIHJldHVy
bnMgdGhlIGVuY2hhbnQgYnJva2VyIHNpbmdsZXRvbi4KLSAgICAgICAgKGZyZWVfc3BlbGxfY2hl
Y2tpbmdfbGFuZ3VhZ2UpOiBUaGUgbGlzdCBjb250ZW50cyBoYXZlIGNoYW5nZWQsIHNvIGNoYW5n
ZQotICAgICAgICB0aGUgd2F5IGVhY2ggZWxlbWVudCBpcyBmcmVlZC4KLSAgICAgICAgKHdlYmtp
dF93ZWJfc2V0dGluZ3NfZmluYWxpemUpOiBDaGFuZ2UgdG8gcmVmbGVjdCAnc3BlbGxfY2hlY2tp
bmdfbGFuZ3VhZ2VzX2xpc3QnCi0gICAgICAgIHRvICdlbmNoYW50X2RpY3RzJyBtZW1iZXIgbmFt
ZSBjaGFuZ2UuCi0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6IFVz
ZSB0aGUgYnJva2VyIHNpbmdsZXRvbiBoZXJlIGluc3RlYWQgb2YgbWFraW5nCi0gICAgICAgIGEg
bmV3IG9uZSBmb3IgZWFjaCBsYW5ndWFnZS4gVGhlIEVuY2hhbnQgZGljdGlvbmFyeSBpcyBub3cg
dGhlIGxpc3QgcGF5bG9hZC4KLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY29weSk6IE1v
cmUgbmFtZS1jaGFuZ2UgdXBkYXRlcy4KLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0
X2VuY2hhbnRfZGljdHMpOiBEaXR0by4KLQotMjAxMC0wMi0yMyAgTGVhbmRybyBQZXJlaXJhICA8
bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5v
cm9uaGEgU2lsdmEuCi0KLSAgICAgICAgRml4ZXMgcmVmZXJlbmNlcyB0byBHT3duUHRyIGFuZCBH
UmVmUHRyIHNvIHRoZSBHVEsrIHBvcnQgYnVpbGRzCi0gICAgICAgIGFnYWluLgotICAgICAgICBo
dHRwOi8vd2Via2l0Lm9yZy9iLzM1MDg0Ci0KLSAgICAgICAgKiBXZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAxMC0wMi0yMyAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1h
amlAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0g
ICAgICAgIFtHdGtdIEltcGxlbWVudCBsYXlvdXRUZXN0Q29udHJvbGxlci5udW1iZXJPZlBhZ2Vz
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTIyOAot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9udW1iZXJfb2ZfcGFn
ZXMpOgotCi0yMDEwLTAyLTIzICBKb3PDqSBNaWxsw6FuIFNvdG8gIDxqbWlsbGFuQGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHdGtdIFNl
cnZlciBtZXNzYWdlIG5vdCBzaG93biBvbiBodHRwIGF1dGhlbnRpY2F0aW9uCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxOQotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmM6Ci0gICAgICAgIChzaG93X2F1dGhfZGlhbG9n
KToKLSAgICAgICAgU2VydmVyIG1lc3NhZ2UgaXMgZGlzcGxheWVkLCBtZXNzYWdlTGFiZWwgYW5k
IG1lc3NhZ2UgdmFyaWFibGVzIHdlcmUKLSAgICAgICAgcmVuYW1lZCB0byBhdm9pZCBjb25mdXNp
b24uCi0KLTIwMTAtMDItMjMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgIEFkZHMgQ2hyb21l
Q2xpZW50OjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTYyCi0KLSAgICAg
ICAgVGhpcyBtZXRob2QgaXMgcmVxdWlyZWQgc28gdGhhdCBhIEdlb2xvY2F0aW9uIG9iamVjdCBj
YW4gY2FuY2VsIGFuCi0gICAgICAgIGFzeW5jaHJvbm91cyBwZXJtaXNzaW9uIHJlcXVlc3QuIFRo
aXMgYWxsb3dzIHRoZSBjaHJvbWUgY2xpZW50IHRvIGNhbmNlbAotICAgICAgICBhbnkgVUkgaXQg
aXMgc2hvd2luZyBmb3IgdGhlIHBlcm1pc3Npb24gcmVxdWVzdC4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZSk6Ci0KLTIwMTAt
MDItMjMgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBEbyBub3QgZG8gdW5uZWNlc3Nhcnkgd29y
ayBkdXJpbmcgc2l6ZV9hbGxvY2F0ZS4KLQotICAgICAgICBGcmFtZVZpZXc6OnJlc2l6ZSB3aWxs
IGFscmVhZHkgcXVldWUgYSBsYXlvdXQsIHNvIHRoZXJlJ3Mgbm8gbmVlZAotICAgICAgICB0byBm
b3JjZSBvbmUgb3Vyc2VsdmVzLiBPbiB0b3Agb2YgdGhhdCwgdGhlIGxheW91dCBmdW5jdGlvbgot
ICAgICAgICBhbHJlYWR5IGFkanVzdHMgdGhlIHZpZXcgc2l6ZSB3aGVuIG5lZWRlZCwgc28gdGhl
cmUncyBubyBuZWVkIHRvCi0gICAgICAgIGRvIHRoYXQgbWFudWFsbHkgZWl0aGVyLiBObyBjaGFu
Z2UgaW4gdGhlIGxheW91dCB0ZXN0cyBvciB1bml0Ci0gICAgICAgIHRlc3RzIGFmdGVyIHRoaXMu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfc2l6ZV9hbGxvY2F0ZSk6Ci0KLTIwMTAtMDItMjIgIFhhbiBMb3BleiAgPHhsb3Bl
ekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQot
ICAgICAgICBVcGRhdGUgZm9yIHJlbGVhc2UuCi0KLSAgICAgICAgKiBORVdTOgotCi0yMDEwLTAy
LTIyICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNv
LnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbU291cF0g
bG9zZXMgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBtZXNzYWdlIGZsYWdzIHdoZW4gY29udmVydGlu
ZyBmcm9tL3RvIFJlc291cmNle1JlcXVlc3QsUmVzcG9uc2V9Ci0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTA5MwotCi0gICAgICAgIFVwZGF0ZSB0aGUg
ZmxhZ3MgdGhhdCBhcmUgc3RvcmVkIGluIHRoZSByZXF1ZXN0LCB3aGVuIHRoZSByZXNwb25zZQot
ICAgICAgICBpcyByZWNlaXZlZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKToKLQotMjAxMC0wMi0yMCAgR3VzdGF2byBOb3Jvbmhh
IFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBVbnJldmlld2VkLiBUcml2aWFsIGZp
eCAtIHVubmVjZXNzYXJ5IHZhcmlhYmxlIGdvdCBhZGRlZCBieQotICAgICAgICBtaXN0YWtlLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9u
c2UpOgotCi0yMDEwLTAyLTE4ICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGVzY2FsYW50ZUBp
Z2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4K
LQotICAgICAgICBbR1RLXSBXZWJLaXREb3dubG9hZCBkb2N1bWVudGF0aW9uIGlzIGluY29tcGxl
dGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1MDE4
Ci0KLSAgICAgICAgQ29uY3JldGVseSB0aGUgZXJyb3Igc2lnbmFsIHdhcyB1bmRvY3VtZW50ZWQu
IEFsc28gdHdvIHJlbGV2YW50IGVudW1zCi0gICAgICAgIHdlcmUgbm90IGluY2x1ZGVkLgotCi0g
ICAgICAgICogZG9jcy93ZWJraXRndGstc2VjdGlvbnMudHh0OgotICAgICAgICAqIGRvY3Mvd2Vi
a2l0Z3RrLnR5cGVzOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfZG93bmxvYWRfY2xhc3NfaW5pdCk6Ci0KLTIwMTAtMDItMTcgIERtaXRyeSBU
aXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
TGV2aW4sIERhcmluIEZpc2hlciwgU2ltb24gSGF1c21hbm4uCi0KLSAgICAgICAgV2hlbiBhIGxp
dmUgaWZyYW1lIGVsZW1lbnQgaXMgbW92ZWQgYmV0d2VlbiBwYWdlcywgaXQgc3RpbGwgZGVwZW5k
cyBvbiB0aGUgb2xkIHBhZ2UuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDM4MgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlkVHJh
bnNmZXJDaGlsZEZyYW1lVG9OZXdEb2N1bWVudCk6Ci0gICAgICAgIEFkZGVkIGVtcHR5IGltcGxl
bWVudGF0aW9uIG9mIGEgbmV3IHZpcnR1YWwgbWV0aG9kLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAxMC0wMi0xNyAgS2VudCBUYW11cmEg
IDx0a2VudEBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
Ci0KLSAgICAgICAgSW50cm9kdWNlcyBuZXcgSWNvbiBsb2FkaW5nIGludGVyZmFjZSBpbiBvcmRl
ciB0byBzdXBwb3J0Ci0gICAgICAgIGFzeW5jaHJvbm91cyBsb2FkaW5nLgotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIwNTQKLQotICAgICAgICBBZGQg
YW4gZW1wdHkgaW1wbGVtZW50YXRpb24gb2YgQ2hyb21lQ2xpZW50OjppY29uRm9yRmlsZXMoKS4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aWNvbkZvckZpbGVzKToKLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAxMC0wMi0xNyAgWGFuIExvcGV6ICA8eGxv
cGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgot
Ci0gICAgICAgIFJlbmFtZSAnZW5hYmxlLWphdmEnIHNldHRpbmcgdG8gJ2VuYWJsZS1qYXZhLWFw
cGxldCcsIHNpbmNlIGl0Ci0gICAgICAgIG9ubHkgY29udHJvbHMgd2hldGhlciA8YXBwbGV0PiBp
cyBzdXBwb3J0ZWQgb3Igbm90IGluc3RlYWQgb2YKLSAgICAgICAgd2hldGhlciBhbGwgSmF2YSBj
b250ZW50IGlzIHN1cHBvcnRlZCBvciBub3QuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToK
LSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdl
YmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0
dGluZ3NfY29weSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAg
ICAoRE5EQ29udGVudHNSZXF1ZXN0Ojp3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToK
LSAgICAgICAgKERORENvbnRlbnRzUmVxdWVzdDo6d2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25v
dGlmeSk6Ci0KLTIwMTAtMDItMTcgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBbTGludXhdIFdl
YmtpdCBpbmNvbXBhdGlibGUgd2l0aCBKYXZhIHBsdWdpbnMKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0OTEyCi0KLSAgICAgICAgSW1wbGVtZW50IEZy
YW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0LgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6Ci0KLTIwMTAtMDItMTcg
IFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1
c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBbTGludXhdIFdlYmtpdCBpbmNvbXBhdGlibGUgd2l0
aCBKYXZhIHBsdWdpbnMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0OTEyCi0KLSAgICAgICAgQWRkIGEgV2ViS2l0V2ViU2V0dGluZyB0byBlbmFibGUv
ZGlzYWJsZSB0aGUgSmF2YSBwbHVnaW4gc3VwcG9ydC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2lu
aXQpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotICAgICAg
ICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dl
Yl9zZXR0aW5nc19jb3B5KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpOgotCi0yMDEwLTAyLTE3ICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBUZXN0IHRoYXQgZGF0YSBVUklzIHRoYXQg
Y2F1c2UgZG93bmxvYWRzIHRvIGJlIHN0YXJ0ZWQgZG8gbm90IGNyYXNoLgotCi0gICAgICAgICog
dGVzdHMvdGVzdGRvd25sb2FkLmM6Ci0gICAgICAgIChtaW1lX3R5cGVfcG9saWN5X2RlY2lzaW9u
X3JlcXVlc3RlZF9jYik6Ci0gICAgICAgIChpZGxlX3F1aXRfbG9vcF9jYik6Ci0gICAgICAgICh0
ZXN0X3dlYmtpdF9kb3dubG9hZF9kYXRhKToKLSAgICAgICAgKG1haW4pOgotCi0yMDEwLTAyLTE3
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgTWlzc2luZyBwcm9wZXJ0eSB3YXJuaW5nIGFm
dGVyIHI1NDg3MwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzUwMjMKLQotICAgICAgICBBZGQgYSBuZXcgV2ViS2l0V2ViU2V0dGluZ3Mgc2V0dGluZywg
J2VuYWJsZS1maWxlLWFjY2Vzcy1mcm9tLWZpbGUtdXJpcycsIHNldCB0bwotICAgICAgICBGQUxT
RSBieSBkZWZhdWx0LCB0aGF0IHdoZW4gZW5hYmxlZCB3aWxsIGFzc2lnbiBlYWNoIGZpbGU6Ly8g
VVJJCi0gICAgICAgIHRoZWlyIG93biBzZWN1cml0eSBkb21haW4uCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19j
bGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToK
LSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdl
YmtpdF93ZWJfc2V0dGluZ3NfY29weSk6Ci0KLTIwMTAtMDItMTYgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIENoZWNrIGlmIHRoZSBoYW5kbGUgaGFzIGEgU291
cE1lc3NhZ2UgYmVmb3JlIHRyeWluZyB0byB1c2UKLSAgICAgICAgaXQuIFRoaXMgd2lsbCBiZSB0
aGUgY2FzZSBpbiBub24tSFRUUChTKSBVUkxzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGRv
d25sb2FkLmNwcDoKLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9uZXdfd2l0aF9oYW5kbGUpOgot
ICAgICAgICAod2Via2l0X2Rvd25sb2FkX3N0YXJ0KToKLQotMjAxMC0wMi0xNiAgWGFuIExvcGV6
ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jv
bmhhLgotCi0gICAgICAgIEFkZCBhIG5ldyBXZWJLaXRXZWJTZXR0aW5ncyBzZXR0aW5nLCAnYXV0
by1yZXNpemUtd2luZG93Jywgc2V0IHRvCi0gICAgICAgIEZBTFNFIGJ5IGRlZmF1bHQsIHRoYXQg
d2hlbiBlbmFibGVkIHdpbGwgYXBwbHkgYW55IHJlc2l6ZXMgb3IKLSAgICAgICAgbW92ZXMgZG9u
ZSBieSBhIHBhZ2UgdGhyb3VnaCB2YXJpb3VzIERPTSBtZXRob2RzIChtb3ZlVG8sCi0gICAgICAg
IHJlc2l6ZVRvLCBtb3ZlQnksIHJlc2l6ZUJ5KS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2Nv
cHkpOgotCi0yMDEwLTAyLTE1ICBFbWlsaW8gUG96dWVsbyBNb25mb3J0ICA8cG9jaHUyN0BnbWFp
bC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0g
ICAgICAgIFtHVEtdIEZhaWxzIHRvIGJ1aWxkIG9uIEdOVS9IdXJkIGJlY2F1c2Ugb2YgUEFUSF9N
QVggdXNhZ2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0OTIwCi0KLSAgICAgICAgVXNlIGR5bmFtaWMgYWxsb2NhdGlvbiBpbnN0ZWFkIG9mIGZpeGVk
IFBBVEhfTUFYIHNpemUgYnVmZmVycyB0bwotICAgICAgICBmaXggdGhlIGJ1aWxkIG9uIEdOVS9I
dXJkLCB3aGVyZSBQQVRIX01BWCBpcyB1bmRlZmluZWQuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0
bWltZWhhbmRsaW5nLmM6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0d2Vi
dmlldy5jOgotICAgICAgICAobWFpbik6Ci0KLTIwMTAtMDItMTQgIERpZWdvIEVzY2FsYW50ZSBV
cnJlbG8gIDxkZXNjYWxhbnRlQGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFtndGtdIFdlYktpdERvd25sb2FkJ3MgY3Vy
cmVudFNpemUgcHJvcGVydHkgaXMgZ3VpbnQsIHNob3VsZCBiZSBndWludDY0Ci0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDgyOQotCi0gICAgICAgIEFj
dHVhbGx5IHVzZSBhIGd1aW50NjQgZm9yIGN1cnJlbnQtc2l6ZSBwcm9wZXJ0eSBpbiBXZWJLaXRE
b3dubG9hZCwgd2UKLSAgICAgICAgd2VyZSB1c2luZyBhIGd1aW50IHdoaWNoIGlzIGxpa2VseSB0
aGUgY2F1c2UgZm9yIHdyb25nIHNpemVzIGZvciBmaWxlcwotICAgICAgICBvdmVyIDQgR2IuCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgotCi0yMDEwLTAyLTA5ICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KLQotICAgICAgICBbR1RLXSBIaXRzIGFzc2VydGlvbiBvbiBoaXN0b3J5IGJh
Y2ssIHdpdGggcGFnZSBjYWNoZSBlbmFibGVkLCBpbiBzcGVjaWZpYyBjb25kaXRpb25zCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDc3MwotCi0gICAg
ICAgIE1ha2Ugc3VyZSBjYWNoZWQgZnJhbWVzIGhhdmUgdGhlaXIgc2Nyb2xsYmFycyBkaXNjb25u
ZWN0ZWQgZnJvbQotICAgICAgICB0aGUgV2ViVmlldydzIGFkanVzdG1lbnRzLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVBsYXRmb3JtRGF0YVRvQ2FjaGVkRnJhbWUpOgot
Ci0yMDEwLTAyLTA5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29s
bGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAg
ICBbR1RLXSBTZXQgR3RrQWRqdXN0bWVudHMgb24gb3VyIEZyYW1lVmlldyB3aGVuIGxvYWRpbmcg
YSBwYWdlIGluIHRoZSBQYWdlQ2FjaGUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0NzU0Ci0KLSAgICAgICAgVGVzdCB0aGF0IGxvd2VyLCBhbmQgdXBw
ZXIgYm91bmRzIGFyZSBrZXB0IHdoZW4gZ29pYmcgYmFjayB3aXRoCi0gICAgICAgIHBhZ2UgY2Fj
aGUgZW5hYmxlZCwgYW5kIGRpc2FibGVkLiBQYWdlIGNhY2hlIGJlaGF2aW91ciBpcyBzdGlsbCBh
Ci0gICAgICAgIGJpdCBicm9rZW4gKHNlZSBGSVhNRSkuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0
d2Vidmlldy5jOgotICAgICAgICAoc2VydmVyX2NhbGxiYWNrKToKLSAgICAgICAgKG1hcF9ldmVu
dF9jYik6Ci0gICAgICAgIChkb190ZXN0X3dlYmtpdF93ZWJfdmlld19hZGp1c3RtZW50cyk6Ci0g
ICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfdmlld19hZGp1c3RtZW50cyk6Ci0gICAgICAgIChtYWlu
KToKLQotMjAxMC0wMi0wOSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIFtHVEtdIFNldCBHdGtB
ZGp1c3RtZW50cyBvbiBvdXIgRnJhbWVWaWV3IHdoZW4gbG9hZGluZyBhIHBhZ2UgaW4gdGhlIFBh
Z2VDYWNoZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzQ3NTQKLQotICAgICAgICBTZXQgdGhlIEd0ayBBZGp1c3RtZW50cyBvZiB0aGUgRnJhbWVWaWV3
cyB3aGVuIHRoZXkgYXJlIHJlc3RvcmVkCi0gICAgICAgIGZyb20gdGhlIFBhZ2VDYWNoZSB0b28u
IFJpZ2h0IHdlIG9ubHkgZG8gaXQgZm9yIHRoZSBuZXdseSBjcmVhdGVkCi0gICAgICAgIEZyYW1l
Vmlld3MgaW4gdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSwgYnV0IHdlIGl0IGFsc28K
LSAgICAgICAgbmVlZHMgdG8gYmUgZG9uZSBpbiB0aGUgZXF1aWxhdmVudCB0cmFuc2l0aW9uIG1l
dGhvZCBmb3IgY2FjaGVkCi0gICAgICAgIHBhZ2VzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0Ojpwb3N0Q29tbWl0
RnJhbWVWaWV3U2V0dXApOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dHJh
bnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKToKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgotCi0yMDEw
LTAyLTA4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgW0dUS10gSW1wbGVtZW50IEZyYW1lTG9h
ZGVyQ2xpZW50OjpoYXNXZWJWaWV3Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNDY4MgotCi0gICAgICAgIFVzZWQgZm9yIHNhbml0eS1jaGVjayBBU1NF
UlRTIGluIHRoZSBGcmFtZUxvYWRlciBjb2RlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudDo6aGFzV2ViVmlldyk6Ci0KLTIwMTAtMDItMDggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
WGFuIExvcGV6LgotCi0gICAgICAgIE5ld3MgYWJvdXQgMS4xLjIxLgotCi0gICAgICAgICogTkVX
UzoKLQotMjAxMC0wMi0wNSAgU2hpbmljaGlybyBIYW1hamkgIDxoYW1hamlAY2hyb21pdW0ub3Jn
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAg
ICBbR3RrXSBJbXBsZW1lbnQgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZU51bWJlckZvckVsZW1l
bnRCeUlkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NDU3MgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9wYWdlX251
bWJlcl9mb3JfZWxlbWVudF9ieV9pZCk6Ci0KLTIwMTAtMDItMDQgIENocmlzdGlhbiBEeXdhbiAg
PGNocmlzdGlhbkB0d290b2FzdHMuZGU+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBO
b3JvbmhhIFNpbHZhLgotCi0gICAgICAgIFtHVEtdIEFkZCBhbmQgY2xlYW51cCByZXR1cm4gdmFs
dWVzIG9mIHNpZ25hbHMgaW4gdmlldyBhbmQgZnJhbWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNDg0Ci0KLSAgICAgICAgQWRkIG1pc3NpbmcgYW5k
IGNsZWFudXAgcmV0dXJuIHZhbHVlcyBvZiB3ZWIgZnJhbWUgYW5kIHdlYiB2aWV3IHNpZ25hbHMu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl9mcmFtZV9jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6Ci0gICAgICAgIChETkRDb250ZW50c1JlcXVlc3Q6OndlYmtpdF93ZWJfdmlld19jbGFzc19p
bml0KToKLQotMjAxMC0wMi0wMiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgQ2hhbmdlcyBp
biAxLjEuMjAsIGFuZCBkb2N1bWVudGF0aW9uIGNvbnRyb2wgZmlsZXMgdXBkYXRlLgotCi0gICAg
ICAgICogTkVXUzoKLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWw6Ci0KLTIwMTAt
MDItMDIgIE1hcnRpbiBSb2JpbnNvbiAgPG1hcnRpbi5qYW1lcy5yb2JpbnNvbkBnbWFpbC5jb20+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0gICAgICAg
IFtHVEtdIFdoZW4gc2VsZWN0aW9uIGNoYW5nZXMgc2VsZWN0aW9ucyBpbiBvdGhlciBXZWJWaWV3
IGFyZSBub3QgY29sbGFwc2VkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDA0MwotCi0gICAgICAgIENvbGxhcHNlIHRoZSBzZWxlY3Rpb24gb2YgYSBX
ZWJWaWV3IGV2ZW4gd2hlbiB0aGUgbmV3IHNlbGVjdGlvbiBvd25lciBpcwotICAgICAgICBhIG5l
dyBXZWJWaWV3LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmNsZWFyQ2xpcGJvYXJkQ29udGVudHNDYWxsYmFjayk6
IE9ubHkgY2xlYXIgdGhlIERhdGFPYmplY3Qgd2UgYXJlIHNldHRpbmcKLSAgICAgICAgaXMgbm90
IHRoZSBzYW1lIGFzIHRoZSBvbmUgcmVmZXJlbmNlZCBpbiB0aGlzIGNhbGxiYWNrLiBVc2UgdGhl
IHNhbWUgYmVoYXZpb3IgZm9yCi0gICAgICAgIGNvbGxhcHNpbmcgdGhlIHNlbGVjdGlvbi4KLSAg
ICAgICAgKFdlYktpdDo6UGFzdGVib2FyZEhlbHBlckd0azo6d3JpdGVDbGlwYm9hcmRDb250ZW50
cyk6IEluc3RlYWQgb2YgcmVjb3JkaW5nIGEgYm9vbGVhbgotICAgICAgICByZWNvcmQgdGhlIGFj
dHVhbCBkYXRhIHVzZWQgd2hpbGUgd3JpdGluZyB0byB0aGUgY2xpcGJvYXJkLgotCi0yMDEwLTAx
LTI3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgW0dUS10gRXhwb3Nl
IHRoZSBJTSBjb250ZXh0IHZpYSB0aGUgQVBJCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMzMyNwotCi0gICAgICAgIEV4cG9zZSB0aGUgR3RrSU1NdWx0
aUNvbnRleHQgYXMgYSBwcm9wZXJ0eSBvZiBXZWJLaXRXZWJWaWV3LiBUaGlzIHdpbGwKLSAgICAg
ICAgYWxsb3cgZW1iZWRkZXJzIHRvIGdlbmVyYXRlIHRoZSBpbnB1dCBtZXRob2QgY29udGV4dCBt
ZW51IGVudHJpZXMgYW5kCi0gICAgICAgIG1ha2UgdGVzdGluZyBjZXJ0YWluIElNIGNvbnRleHQg
YmVoYXZpb3IgcG9zc2libGUuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKERORENv
bnRlbnRzUmVxdWVzdDo6d2Via2l0X3dlYl92aWV3X2dldF9pbV9jb250ZXh0KToKLSAgICAgICAg
KERORENvbnRlbnRzUmVxdWVzdDo6d2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotCi0yMDEw
LTAxLTE5ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUuZGlnZ3NAZ21haWwuY29tPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA4ODMKLSAgICAgICAgW0d0a10gSW1wbGVtZW50IEF0
a1RleHQgZm9yIEhUTUwgZWxlbWVudHMgd2hpY2ggY29udGFpbiB0ZXh0Ci0KLSAgICAgICAgQWRk
cyB0d28gbmV3cyB0ZXN0cy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYwotICAgICAgICAo
dGVzdFdlYmtpdEF0a0dldFRleHRJblBhcmFncmFwaEFuZEJvZHlTaW1wbGUpOgotICAgICAgICAo
dGVzdFdlYmtpdEF0a0dldFRleHRJblBhcmFncmFwaEFuZEJvZHlNb2RlcmF0ZSk6Ci0gICAgICAg
IChtYWluKToKLQotMjAxMC0wMS0xOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21l
Lm9yZz4KLQotICAgICAgICBVbnJldmlld2VkLiBDaGFuZ2VzIHRvIHRoZSB0ZXN0IEkgZm9yZ290
IHRvIG1ha2UgYWZ0ZXIgYSBsYXN0Ci0gICAgICAgIG1pbnV0ZSBjaGFuZ2UgYmVmb3JlIGxhbmRp
bmcgNTMyOTQgLSB0aGlzIGNhdXNlcyBtYWtlIGRpc3RjaGVjayB0bwotICAgICAgICBmYWlsLgot
Ci0gICAgICAgICogdGVzdHMvdGVzdGxvYWRpbmcuYzoKLSAgICAgICAgKGxvYWRfZXJyb3Jfc3Rh
dHVzX2NoYW5nZWRfY2IpOgotICAgICAgICAodGVzdF9sb2FkaW5nX2Vycm9yKToKLQotMjAxMC0w
MS0xOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgTmV3cyBpdGVtcyBmb3IgMS4xLjE5Lgot
Ci0gICAgICAgICogTkVXUzoKLQotMjAxMC0wMS0xOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8
Z25zQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAg
ICAgW0dUS10gTW9yZSBjcmFzaGVzIHJlbGF0ZWQgdG8gdGhlIGNsaXBib2FyZCBtYW5hZ2VtZW50
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzc0Ngot
Ci0gICAgICAgIFBhc3MgdGhlIFdlYktpdFdlYlZpZXcgb2JqZWN0ICh3aGljaCBpcyBhIEdPYmpl
Y3QsIHRodXMKLSAgICAgICAgcmVmLWNvdW50ZWQpIHRvIHRoZSBjbGlwYm9hcmQgZnVuY3Rpb25z
IGluc3RlYWQgb2YgcGFzc2luZyB0aGUKLSAgICAgICAgUGFnZSAtIHRoaXMgYWxsb3dzIHVzIHRv
IGV4cGxpY2l0ZWx5IHByb3RlY3QgdGhlIG9iamVjdCBpbmJldHdlZW4KLSAgICAgICAgdGhlIGNs
aXBib2FyZCBjYWxsIGFuZCBpdHMgY2FsbGJhY2tzLCB3aGljaCBmaXhlcyB0aGUgY3Jhc2guCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24pOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpnZXRDbGlwYm9hcmRDb250ZW50c0NhbGxiYWNrKToKLSAgICAgICAgKFdlYktpdDo6Y2xl
YXJDbGlwYm9hcmRDb250ZW50c0NhbGxiYWNrKToKLSAgICAgICAgKFdlYktpdDo6UGFzdGVib2Fy
ZEhlbHBlckd0azo6d3JpdGVDbGlwYm9hcmRDb250ZW50cyk6Ci0KLTIwMTAtMDEtMTUgIEFsZWph
bmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
WGFuIExvcGV6LgotCi0gICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IERhdmlkIFJvbmlzIDxkYXZp
ZC5yb25pc0BtY2dpbGwuY2E+Ci0KLSAgICAgICAgVXBncmFkZSAxLjEuMTctPjEuMS4xOCBmYWls
czogR1RLX1dJREdFVF9UT1BMRVZFTCcgd2FzIG5vdCBkZWNsYXJlZCBpbiB0aGlzIHNjb3BlCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzQ4NgotCi0g
ICAgICAgIERlcHJlY2F0ZWQgc3ltYm9scyByZXBsYWNlZCBmb3IgZ3RrKyB2ZXJzaW9ucyBvdmVy
IDIuMTguCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3QpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXRwcml2YXRlLmNwcDoKLSAgICAgICAgKGN1cnJlbnRUb3BsZXZlbENhbGxiYWNr
KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl9mcmFtZV9wcmludF9mdWxsKToKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfcHJpbnQp
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19mb2N1c19pbl9ldmVudCk6Ci0KLTIwMTAtMDEtMTQgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
Ci0KLSAgICAgICAgW0dUS10gQ3Jhc2hlcyBjbGVhbmluZyBjbGlwYm9hcmQgY29udGVudHMsIHdp
dGggcGFnZSBjYWNoZSBlbmFibGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMjkwMAotCi0gICAgICAgIE51bGwtY2hlY2sgdGhlIGZvY3VzIGNvbnRy
b2xsZXIgdG8gYXZvaWQgY3Jhc2hpbmcuIENvdWxkIG5vdCBmaW5kCi0gICAgICAgIGEgd2F5IHRv
IHJlcHJvZHVjZSB0aGlzIGNvbnNpc3RlbnRseSwgdGh1cyBubyB0ZXN0LgotCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OmNsZWFyQ2xpcGJvYXJkQ29udGVudHNDYWxsYmFjayk6Ci0KLTIwMTAtMDEtMTQgIEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgT2xp
dmVyIEh1bnRlci4KLQotICAgICAgICBbR1RLXSBjb3VwbGUgZml4ZXMgZm9yIHNpZ25hbCBlbWlz
c2lvbnMsIGFuZCBwcm9wZXJ0eSBub3RpZmljYXRpb25zCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzQyOAotCi0gICAgICAgIERvIG5vdCBlbWl0IHNp
Z25hbHMgYW5kIHByb3BlcnR5IG5vdGlmaWNhdGlvbnMgZm9yIGVycm9yCi0gICAgICAgIHBhZ2Vz
LiBUaGUgbm90aWZpY2F0aW9ucyBhcmUgbm90IHJlYWxseSB1c2VmdWwgZm9yIGFueXRoaW5nLCB5
b3UKLSAgICAgICAgY2FuIGdldCB0aGVtIGJhY2sgYnkgb3ZlcnJpZGluZyB0aGUgZXJyb3IgcGFn
ZXMsIGFuZCBpdCBhdm9pZHMgYQotICAgICAgICBudW1iZXIgb2YgaGFja3MuCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpGcmFtZUxvYWRlckNsaWVudCk6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWQpOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbik6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
UmVjZWl2ZVRpdGxlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkQ29tbWl0TG9hZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCk6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotICAgICAgICAqIHRlc3RzL3Rlc3Rs
b2FkaW5nLmM6Ci0gICAgICAgIChsb2FkX2Vycm9yX3N0YXR1c19jaGFuZ2VkX2NiKToKLSAgICAg
ICAgKHRlc3RfbG9hZGluZ19lcnJvcik6Ci0KLTIwMTAtMDEtMTQgIE1hcnRpbiBSb2JpbnNvbiAg
PG1hcnRpbi5qYW1lcy5yb2JpbnNvbkBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
WGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIEVuYWJsZSBET00gY2xpcGJvYXJkIGFuZCBkcmFn
LWFuZC1kcm9wIGFjY2VzcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzA2MjMKLQotICAgICAgICBVc2UgRGF0YU9iamVjdEd0ayB3aGVuIHNldHRpbmcg
YW5kIGNsZWFyaW5nIHBhc3RlYm9hcmQgZGF0YSBvbgotICAgICAgICB0aGUgR0RLX1NFTEVDVElP
Tl9QUklNQVJZIGNsaXBib2FyZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hh
bmdlZFNlbGVjdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xp
ZW50KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6ZmlsbFNlbGVjdGlvbkRhdGEpOgotICAgICAgICAoV2ViS2l0Ojp0YXJnZXRMaXN0Rm9y
RGF0YU9iamVjdCk6Ci0gICAgICAgIChXZWJLaXQ6OmdldENsaXBib2FyZENvbnRlbnRzQ2FsbGJh
Y2spOgotICAgICAgICAoV2ViS2l0OjpjbGVhckNsaXBib2FyZENvbnRlbnRzQ2FsbGJhY2spOgot
ICAgICAgICAoV2ViS2l0OjpQYXN0ZWJvYXJkSGVscGVyR3RrOjp3cml0ZUNsaXBib2FyZENvbnRl
bnRzKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmg6Ci0K
LTIwMTAtMDEtMTQgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFJldmlldyB0aGUgdG9vbHRp
cCBpbXBsZW1lbnRhdGlvbgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzI4MTkKLQotICAgICAgICBDaGFuZ2UgdGhlIEdUSyB0b29sdGlwIGltcGxlbWVu
dGF0aW9uIHRvIGF2b2lkIHRoZSB3b3JrYXJvdW5kIHRoYXQKLSAgICAgICAgd2UgYXJlIGN1cnJl
bnRseSB1c2luZy4gTm93IHdlIHVzZSBhIG5ldyBwcml2YXRlIEFQSSB0byBzZXQgdGhlCi0gICAg
ICAgIHRleHQgYW5kIGFsbCB0aGUgdG9vbHRpcCBoYW5kbGluZyBpcyBkb25lIGluIHRoZSB3ZWJ2
aWV3IHdpZGdldC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Rvb2x0aXBf
dGV4dCk6IEFkZGVkLCBuZXcgcHJpdmF0ZSBBUEkuCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
cXVlcnlfdG9vbHRpcCk6IEFkZGVkCi0KLTIwMTAtMDEtMDkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0g
ICAgICAgIFtHVEtdIGNvdXBsZSBmaXhlcyBmb3Igc2lnbmFsIGVtaXNzaW9ucywgYW5kIHByb3Bl
cnR5IG5vdGlmaWNhdGlvbnMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMzNDI4Ci0KLSAgICAgICAgRml4IGNvbW1pdGVkTG9hZCBiZWluZyBjYWxsZWQg
d2hlcmUgaXQgc2hvdWxkIG5vdCwgY2F1c2luZyBpdCB0bwotICAgICAgICBiZSBjYWxsZWQgb25l
IHRpbWUgdG9vIG1hbnkgaW4gc29tZSBjYXNlcy4gV2Ugbm93IG1hdGNoIFF0J3MgYW5kCi0gICAg
ICAgIE1hYydzIGJlaGF2aW9yIGhlcmUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
OjpmaW5pc2hlZExvYWRpbmcpOgotICAgICAgICAqIHRlc3RzL3Rlc3Rsb2FkaW5nLmM6Ci0gICAg
ICAgIChsb2FkX2Vycm9yX3N0YXR1c19jaGFuZ2VkX2NiKToKLQotMjAxMC0wMS0wOCAgR3VzdGF2
byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBY
YW4gTG9wZXouCi0KLSAgICAgICAgW0dUS10gbG9hZGluZyB0ZXN0IHNob3VsZCB1c2UgU291cFNl
cnZlciBpbnN0ZWFkIG9mIGFjdHVhbCBzaXRlcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMzNTMKLQotICAgICAgICBNYWtlIGFsbCB0aGUgbG9hZGlu
ZyB0ZXN0cyB1c2UgU291cFNlcnZlciwgaW5zdGVhZCBvZiBmZXRjaGluZwotICAgICAgICBzdHVm
ZiBmcm9tIHRoZSBJbnRlcm5ldC4KLQotICAgICAgICAqIHRlc3RzL3Rlc3Rsb2FkaW5nLmM6Ci0g
ICAgICAgIChzZXJ2ZXJfY2FsbGJhY2spOgotICAgICAgICAoZ2V0X3VyaV9mb3JfcGF0aCk6Ci0g
ICAgICAgICh0ZXN0X2xvYWRpbmdfc3RhdHVzKToKLSAgICAgICAgKHRlc3RfbG9hZGluZ19lcnJv
cik6Ci0gICAgICAgICh0ZXN0X2xvYWRpbmdfY2FuY2VsbGVkKToKLSAgICAgICAgKGxvYWRfd2Vu
dGJhY2tfc3RhdHVzX2NoYW5nZWRfY2IpOgotICAgICAgICAobG9hZF9lcnJvcl90ZXN0KToKLSAg
ICAgICAgKHRlc3RfbG9hZGluZ19nb2JhY2spOgotICAgICAgICAobWFpbik6Ci0KLTIwMTAtMDEt
MDYgIEpvYW5tYXJpZSBEaWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zMDg4MwotICAgICAgICBbR3RrXSBJbXBsZW1lbnQgQXRrVGV4
dCBmb3IgSFRNTCBlbGVtZW50cyB3aGljaCBjb250YWluIHRleHQKLQotICAgICAgICAqIHRlc3Rz
L3Rlc3RhdGsuYwotICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCk6
Ci0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRfb2Zmc2V0X2Zvcm1zKToKLSAg
ICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4dF9hdF9vZmZzZXRfbmV3bGluZXMpOgotCi0y
MDEwLTAxLTA1ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAg
ICAgIFVwZGF0ZWQgZG9jcyBmb3IgMS4xLjE4IHJlbGVhc2UuCi0KLSAgICAgICAgKiBkb2NzL3dl
YmtpdGd0ay1kb2NzLnNnbWw6Ci0gICAgICAgICogZG9jcy93ZWJraXRndGstc2VjdGlvbnMudHh0
OgotCi0yMDEwLTAxLTA1ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAg
ICBVcGRhdGUgZm9yIDEuMS4xOCByZWxlYXNlLgotCi0gICAgICAgICogTkVXUzoKLQotMjAxMC0w
MS0wNCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEZpc2hlci4KLQotICAgICAgICBSZW9yZ2FuaXplLCBkb2N1bWVudCBhbmQg
cmVuYW1lIE9TKCkgcGxhdGZvcm0gbWFjcm9zLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzMxOTgKLQotICAgICAgICBBZGFwdCB0byBuYW1lIGNoYW5n
ZXMuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAo
d2Via2l0X2dldF91c2VyX2FnZW50KToKLQotMjAxMC0wMS0wNCAgTWFjaWVqIFN0YWNob3dpYWsg
IDxtanNAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAg
ICAgICAgUmVvcmdhbml6ZSwgZG9jdW1lbnQgYW5kIHJlbmFtZSBDUFUoKSBwbGF0Zm9ybSBtYWNy
b3MuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzE0
NQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdl
YmtpdF9nZXRfdXNlcl9hZ2VudCk6Ci0KLTIwMDktMTItMjAgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgWGFuIExvcGV6LgotCi0gICAgICAgIFJlbW92ZSBlbWlzc2lvbiBvZiBzaWduYWwgdGhhdCBk
b2VzIG5vdCBleGlzdC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6aW5zcGVjdG9yRGVz
dHJveWVkKToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50Ojp3ZWJWaWV3RGVzdHJv
eWVkKToKLQotMjAwOS0xMi0yMCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIFVuc2V0IHRoZSBh
ZGp1c3RtZW50cyBpbiBvdXIgRnJhbWVWaWV3IHdoZW4gZGV0YWNoaW5nIGZyb20KLSAgICAgICAg
cGFyZW50LiBGaXhlcyBzb21lIGNyYXNoZXJzIHdoZW4gdHJhbnNpdGlvbmluZyB0byBhIG5ldyBw
YWdlIGZyb20KLSAgICAgICAgYSBzY3JvbGxlZCBwYWdlLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6ZGV0YWNoZWRGcm9tUGFyZW50Mik6Ci0KLTIwMDktMTItMjAgIFhhbiBMb3Bl
eiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEd1c3Rh
dm8gTm9yb25oYS4KLQotICAgICAgICBEaXNhYmxlIHRoZSBwYWdlIGNhY2hlIGJ5IGRlZmF1bHQg
c2luY2U6Ci0KLSAgICAgICAgLSBJdCB3YXMgcHJldmlvdXNseSBvZmYgYnkgZGVmYXVsdC4KLSAg
ICAgICAgLSBUaGVyZSBhcmUgc3RpbGwgc29tZSBpc3N1ZXMgd2hlbiBlbmFibGluZyBpdC4KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotCi0yMDA5LTEyLTIwICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBQcm92aWRlcyBhIG5ldyBBUEkgdG8gY29weSBX
ZWJLaXRXZWJIaXN0b3J5SXRlbSBvYmplY3RzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
Ymhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2NvcHkp
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oOgotCi0yMDA5LTEyLTIw
ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVr
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBNYWtlIHN1cmUg
d2UgZ2V0IHRoZSBVUkkgdGhhdCBpcyBiZWluZyBsb2FkZWQgd2hlbiB1cGRhdGluZwotICAgICAg
ICBXZWJLaXRXZWJGcmFtZSdzIGtub3dsZWRnZSBvZiBpdC4gVGhpcyB3YXMgY2F1c2luZyBwcm9i
bGVtcyBub3cKLSAgICAgICAgdGhhdCBwYWdlIGNhY2hlIGlzIGVuYWJsZWQuCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgotICAgICAgICAq
IHRlc3RzL3Rlc3Rsb2FkaW5nLmM6Ci0gICAgICAgIChsb2FkX2dvYmFja19zdGF0dXNfY2hhbmdl
ZF9jYik6Ci0gICAgICAgIChsb2FkX3dlbnRiYWNrX3N0YXR1c19jaGFuZ2VkX2NiKToKLSAgICAg
ICAgKHRlc3RfbG9hZGluZ19nb2JhY2spOgotICAgICAgICAobWFpbik6Ci0KLTIwMDktMTItMjAg
IEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHVEtdIENhY2hlIGNvbnRyb2wgQVBJcwotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDEKLQotICAg
ICAgICBPcmlnaW5hbCBwYXRjaCBieSBCb2JieSBQb3dlcnMgPGJvYmJ5QGxhcHRvcC5vcmc+Ci0K
LSAgICAgICAgQWRkZWQgbmV3IEFQSSB0byBzcGVjaWZ5IGNhY2hlIG1vZGVscyBmb3IgR1RLIHBv
cnQuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfaW5pdCk6IHNldCBhIGRlZmF1bHQgY2FjaGUgbW9kZWwuCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6Ci0gICAg
ICAgICh3ZWJraXRfc2V0X2NhY2hlX21vZGVsKTogQWRkZWQgZnVuY3Rpb24uCi0gICAgICAgICh3
ZWJraXRfZ2V0X2NhY2hlX21vZGVsKTogQWRkZWQgZnVuY3Rpb24uCi0KLTIwMDktMTItMjAgIFhh
biBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmVydCB0aGUgcHJldmlv
dXMgcGF0Y2gsIGl0IGludHJvZHVjZXMgc29tZSBmYWlsdXJlcyBpbiB0aGUKLSAgICAgICAgYm90
cy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNvbW1pdHRlZExvYWQpOgotICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9y
TmV3UGFnZSk6Ci0KLTIwMDktMTItMjAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBbR1RLXSBj
cmFzaCB3aGVuIGxvYWRpbmcgbmV3IHBhZ2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMyNzUyCi0KLSAgICAgICAgV2FpdCB1bnRpbCB0aGUgZG9jdW1l
bnQgaXMgYXR0YWNoZWQgdG8gYWRqdXN0IG91ciBhbGlnbm1lbnRzLAotICAgICAgICBzaW5jZSB3
ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgRnJhbWVWaWV3IGluIHRoZSBkb2N1bWVudCBjb250ZW50
Ci0gICAgICAgIHJlbmRlciBvYmplY3QgbWF0Y2hlcyB0aGUgbmV3bHkgY3JlYXRlZCBGcmFtZVZp
ZXcgZm9yIHRoZSBuZXcKLSAgICAgICAgcGFnZSwgb3RoZXJ3aXNlIHdlJ2xsIHRyeSB0byByZWxh
eW91dCB0aGUgd3Jvbmcgdmlldy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNv
bW1pdHRlZExvYWQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNp
dGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6Ci0KLTIwMDktMTItMjAgIEd1c3Rhdm8gTm9yb25o
YSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIENyZWF0ZSBhIG5ldyBXZWJLaXREYXRhU291
cmNlIG9iamVjdCB3aGVuIGF0dGFjaGluZyB0byBhIGZyYW1lLCBpZgotICAgICAgICBvbmUgZG9l
cyBub3QgZXhpc3QuIFRoaXMgbWF5IGhhcHBlbiB3aGVuIHdlIGFyZSBmZXRjaGluZyBkYXRhIGZy
b20KLSAgICAgICAgdGhlIHBhZ2UgY2FjaGUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
b2N1bWVudExvYWRlckd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkRvY3VtZW50TG9hZGVyOjph
dHRhY2hUb0ZyYW1lKToKLSAgICAgICAgKFdlYktpdDo6RG9jdW1lbnRMb2FkZXI6OnVucmVmRGF0
YVNvdXJjZSk6Ci0KLTIwMDktMTItMjAgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8u
bm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFu
IExvcGV6LgotCi0gICAgICAgIE1ha2Ugc3VyZSB0aGUgdGV4dCBlbmNvZGluZyBtYWNoaW5lcnkg
aXMgaW5pdGlhbGl6ZWQgZnJvbSB0aGUgbWFpbgotICAgICAgICBmcmFtZSwgYmVmb3JlIG9wZW5p
bmcgdGhlIGljb24gZGF0YWJhc2UuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5j
cHA6Ci0gICAgICAgICh3ZWJraXRfaW5pdCk6Ci0KLTIwMDktMTItMTkgIEFsZWphbmRybyBHLiBD
YXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6
LgotCi0gICAgICAgIEZpeGVkIHRoZSBwcm9ibGVtIHdoZW4gcGFzdGluZyBpbiB0aGUgc2FtZSB3
aW5kb3cgd2l0aCB0aGUKLSAgICAgICAgbWlkZGxlLWJ1dHRvbiwgbm93IHdlIHN0b3JlIGEgcmVm
ZXJlbmNlIHRvIHRoZSByYW5nZSBpbnN0ZWFkIG9mCi0gICAgICAgIHJlcXVlc3RpbmcgaXQgZXZl
cnkgdGltZSwgYW5kIHdlIGRvIG5vdCByZWxlYXNlIGl0IHVudGlsIHRoZQotICAgICAgICBjbGlw
Ym9hcmQgaXMgcmVxdWVzdGVkLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjgxNTMKLQotICAgICAgICAqIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oOgotCi0yMDA5LTEyLTE5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEg
IDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KLQotICAgICAgICBQcm90ZWN0IGRvd25sb2FkIG9iamVjdHMgd2hlbiByZXBv
cnRpbmcgZXJyb3JzLCB0byBtYWtlIHN1cmUgdGhlCi0gICAgICAgIGRvd25sb2FkIHN0YXlzIGFs
aXZlIGJldHdlZW4gdGhlIHN0YXR1cyBjaGFuZ2Ugbm90aWZpY2F0aW9uLCBhbmQKLSAgICAgICAg
dGhlIGVycm9yIHNpZ25hbCBlbWlzc2lvbi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3du
bG9hZC5jcHA6Ci0gICAgICAgICh3ZWJraXRfZG93bmxvYWRfZXJyb3IpOgotCi0yMDA5LTEyLTE4
ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBH
dXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgRml4IGd0ay1kb2Mgb2Ygd2Via2l0X3dlYl9yZXNv
dXJjZV9uZXcuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgotCi0y
MDA5LTEyLTE4ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KLQotICAgICAgICBHVEsg
YnVpbGQgZml4Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6IEFkZGVkICNp
bmNsdWRlLgotCi0yMDA5LTEyLTE4ICBLYWxsZSBWYWhsbWFuICA8a2FsbGUudmFobG1hbkBtb3Zp
YWwuY29tPiBhbmQgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgW0dUS10g
QWRkIGVuYWJsZS1wYWdlLWNhY2hlIHByb3BlcnR5IHRvIFdlYlNldHRpbmdzIGZvciBkaXNhYmxp
bmcgdGhlIFBhZ2UgQ2FjaGUKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5j
cHA6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlOjopOgotICAgICAgICAoX1dl
YktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6d2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToK
LSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3Nf
c2V0X3Byb3BlcnR5KToKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtp
dF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5n
c1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3NfY29weSk6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgotCi0yMDA5LTEyLTE3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxn
dXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhh
biBMb3Blei4KLQotICAgICAgICBNb3JlIG1ha2UgZGlzdGNoZWNrIGZpeGVzLiBVc2UgYSBtb3Jl
IHJvYnVzdCBzb2x1dGlvbiB0byBtYWtpbmcKLSAgICAgICAgc3VyZSB3ZSBhcmUgaW4gdGhlIGNv
cnJlY3QgZGlyZWN0b3J5IGZvciBydW5uaW5nIHRoZXNlIHRlc3RzLgotCi0gICAgICAgICogdGVz
dHMvdGVzdG1pbWVoYW5kbGluZy5jOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogdGVzdHMv
dGVzdHdlYnZpZXcuYzoKLSAgICAgICAgKG1haW4pOgotCi0yMDA5LTEyLTE3ICBDaHJpc3RpYW4g
RHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1
c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBbR1RLXSBEb24ndCBhc3N1bWUgZG93bmxv
YWRzIGFyZSBhbHdheXMgc3luY2hyb25vdXMKLSAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzIzNTkKLQotICAgICAgICAqIHRlc3RzL3Rlc3Rkb3dubG9hZC5j
OgotICAgICAgICAoZG93bmxvYWRfcmVxdWVzdGVkX2NiKToKLSAgICAgICAgKHNldF9maWxlbmFt
ZSk6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF9kb3dubG9hZF9wZXJmb3JtKToKLSAgICAgICAgKHRl
c3Rfd2Via2l0X2Rvd25sb2FkX3N5bmNoKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X2Rvd25sb2Fk
X2FzeW5jaCk6Ci0gICAgICAgIChtYWluKTogVGVzdCBkb3dubG9hZHMgc3luY2hyb25vdXNseSBh
bmQgYXN5bmNocm9ub3VzbHkuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X3JlcXVlc3RfZG93bmxvYWQpOiBPbmx5IHRyeSB0byBzdGFydCBhIHJlcXVlc3RlZAot
ICAgICAgICBkb3dubG9hZCBpZiB0aGUgZGVzdGluYXRpb24gVVJJIGlzIHNldCBhbmQgY2xhcmlm
eSB0aGUgZG9jdW1lbnRhdGlvbi4KLQotMjAwOS0xMi0xNyAgQ2hyaXN0aWFuIER5d2FuICA8Y2hy
aXN0aWFuQHR3b3RvYXN0cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0K
LSAgICAgICAgRGVwcmVjYXRlIHRoZSB0aXRsZS1jaGFuZ2VkIHNpZ25hbCBvZiBXZWJLaXRXZWJG
cmFtZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQpOgotCi0yMDA5LTEyLTE3ICBNYXJ0aW4gUm9iaW5z
b24gIDxtYXJ0aW4uamFtZXMucm9iaW5zb25AZ21haWwuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBbR1RLXSBXZWJLaXQgR1RLIG5l
ZWRzIGEgd3JhcHBlciBmb3IgcmVmIGNvdW50ZWQgZ2xpYi9nb2JqZWN0IHN0cnVjdHMKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNTk5Ci0KLSAgICAg
ICAgQ29udmVydCBhIHVzZSBvZiBHT3duUHRyIGZvciBhIHJlZmVyZW5jZSBjb3VudGVkIHR5cGUg
dG8gR1JlZlB0ci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVBsdWdp
bik6Ci0KLTIwMDktMTItMTcgIEV2YW4gTWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIEV4cG9zZSB0aGUgcGFnZSB3
b3JrYXJvdW5kcyAoInF1aXJrcyIpIHNldHRpbmcgdG8gdGhlIEdUSysgV2ViS2l0IEFQSS4KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19z
ZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkp
OgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jb3B5KToKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRp
bmdzKToKLQotMjAwOS0xMi0xNiAgRGFuIFdpbnNoaXAgIDxkYW53QGdub21lLm9yZz4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgQ29udGVu
dC1FbmNvZGluZyBzdXBwb3J0Ci0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUyMjc3MgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
OgotICAgICAgICAod2Via2l0X2luaXQpOiBhZGQgYSBTb3VwQ29udGVudERlY29kZXIgZmVhdHVy
ZSB0byB0aGUgc2Vzc2lvbgotCi0yMDA5LTEyLTE2ICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3Rp
YW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBT
aWx2YS4KLQotICAgICAgICBEZXByZWNhdGUgdGhlIG9sZCBsb2FkaW5nIHNpZ25hbHMgbG9hZC1z
dGFydGVkLCBsb2FkLWNvbW1pdHRlZCwKLSAgICAgICAgbG9hZC1maW5pc2hlZCwgbG9hZC1wcm9n
cmVzcy1jaGFuZ2VkIGFuZCBjaGFuZ2UgdW5pdCB0ZXN0cyB0byB1c2UKLSAgICAgICAgbG9hZC1z
dGF0dXMgaW5zdGVhZC4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RtaW1laGFuZGxpbmcuYzoKLSAg
ICAgICAgKGlkbGVfcXVpdF9sb29wX2NiKToKLSAgICAgICAgKHRlc3RfbWltZV90eXBlKTogdXNl
IG5vdGlmeTo6bG9hZC1zdGF0dXMKLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViZGF0YXNvdXJjZS5j
OgotICAgICAgICAobm90aWZ5X2xvYWRfc3RhdHVzX3VucmVhY2hhYmxlX2NiKToKLSAgICAgICAg
KG5vdGlmeV9sb2FkX3N0YXR1c19jYik6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfZGF0YV9z
b3VyY2UpOgotICAgICAgICAodGVzdF93ZWJraXRfd2ViX2RhdGFfc291cmNlX3VucmVhY2hhYmxl
X3VyaSk6IFJlbW92ZSB1c2VzIG9mCi0gICAgICAgIGdfbWFpbl9sb29wX2lzX3J1bm5pbmcuIEl0
J3MgYW4gZXJyb3IgaWYgdGhlIGxvb3AgaXMgd3JvbmdseSB0ZXJtaW5hdGVkLgotICAgICAgICAq
IHRlc3RzL3Rlc3R3ZWJyZXNvdXJjZS5jOgotICAgICAgICAobm90aWZ5X2xvYWRfc3RhdHVzX2Ni
KToKLSAgICAgICAgKHRlc3Rfd2ViX3Jlc291cmNlX2xvYWRpbmcpOgotICAgICAgICAobm90aWZ5
X2xvYWRfc3RhdHVzX3N1Yl9jYik6Ci0gICAgICAgICh0ZXN0X3dlYl9yZXNvdXJjZV9zdWJfcmVz
b3VyY2VfbG9hZGluZyk6IHVzZSBub3RpZnk6OmxvYWQtc3RhdHVzCi0gICAgICAgICogdGVzdHMv
dGVzdHdlYnZpZXcuYzoKLSAgICAgICAgKGlkbGVfcXVpdF9sb29wX2NiKToKLSAgICAgICAgKHRl
c3Rfd2Via2l0X3dlYl92aWV3X2ljb25fdXJpKToKLSAgICAgICAgKiB0ZXN0cy90ZXN0d2luZG93
LmM6Ci0gICAgICAgIChub3RpZnlfbG9hZF9zdGF0dXNfY2IpOgotICAgICAgICAodGVzdF93ZWJr
aXRfd2luZG93X3Njcm9sbGJhcl9wb2xpY3kpOiB1c2Ugbm90aWZ5Ojpsb2FkLXN0YXR1cwotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2Zy
YW1lX2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KTogRGVwcmVjYXRlIG9sZCBsb2FkIHNp
Z25hbHMuCi0KLTIwMDktMTItMTYgIENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2Fz
dHMuZGU+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgotCi0g
ICAgICAgIFRha2UgaW50byBhY2NvdW50IGZhdmljb24uaWNvIGluIHRoZSB3ZWJyZXNvdXJjZSB0
ZXN0LgotCi0gICAgICAgICogdGVzdHMvdGVzdHdlYnJlc291cmNlLmM6Ci0gICAgICAgICh0ZXN0
X3dlYl9yZXNvdXJjZV9zdWJfcmVzb3VyY2VfbG9hZGluZyk6Ci0KLTIwMDktMTItMTYgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAg
ICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIEFkZCB0YWJfa2V5
X2N5Y2xlc190aHJvdWdoX2VsZW1lbnRzIHRvIGNvcGllcyBvZgotICAgICAgICBXZWJLaXRXZWJT
ZXR0aW5ncy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgotCi0yMDA5LTEyLTE2ICBNYXJ0aW4gUm9i
aW5zb24gIDxtYXJ0aW4uamFtZXMucm9iaW5zb25AZ21haWwuY29tPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBbR1RLXSB3ZWJraXRfd2Vi
X25hdmlnYXRpb25fYWN0aW9uX2dldF9idXR0b24oKSBkb2N1bWVudGF0aW9uCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTU1NQotCi0gICAgICAgIFNt
YWxsIGRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnQgZm9yIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9h
Y3Rpb25fZ2V0X2J1dHRvbi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9u
YWN0aW9uLmNwcDoKLQotMjAwOS0xMi0xMyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCi0KLSAgICAgICAgRml4IGZvciBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0OTkKLSAgICAgICAgQWRk
IGNsaWVudCBiYXNlZCBHZW9sb2NhdGlvbiBwcm92aWRlcgotCi0gICAgICAgIEFkZCBmaXJzdCBj
dXQgb2YgYSBjbGllbnQgYmFzZWQgR2VvbG9jYXRpb24gcHJvdmlkZXIuIFRoaXMgaXMgZ3VhcmRl
ZCBieQotICAgICAgICBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSBhbmQgaXMgb2Zm
IGJ5IGRlZmF1bHQgZm9yIG5vdy4gVGhpcyBhZGRzIGEKLSAgICAgICAgR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50IGludGVyZmFjZSB0aGF0IG5vLW9uZSBjdXJyZW50bHkgaW1wbGVtZW50cywK
LSAgICAgICAgYnV0IHdpbGwgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2luaXQpOgot
Ci0yMDA5LTEyLTE0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29s
bGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAg
ICBOZXcgc2V0dGluZyB0byBhbGxvdyBhcHBsaWNhdGlvbnMgdG8gY29tcGxldGVseSBzdXBwcmVz
cyB0aGUKLSAgICAgICAgZGVmYXVsdCBjb250ZXh0IG1lbnUgdGhhdCBpcyBnZW5lcmF0ZWQgYnkg
V2ViS2l0LiBUaGlzIGFsbG93cyB0aGVtCi0gICAgICAgIHRvIHN0aWxsIHBhc3MgdGhlIGV2ZW50
IHRvIHRoZSBkZWZhdWx0IGhhbmRsZXIgd2l0aG91dCBuZWVkaW5nIHRvCi0gICAgICAgIHVzZSB1
Z2x5IGhhY2tzIHN1Y2ggYXMgaGFuZGxpbmcgcG9wdWxhdGUtcG9wdXAsIGFuZCByZW1vdmluZyBh
bGwKLSAgICAgICAgdGhlIGl0ZW1zIGZyb20gdGhlIGRlZmF1bHQgY29udGV4dCBtZW51LgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3Nl
dF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19mb3J3YXJkX2NvbnRl
eHRfbWVudV9ldmVudCk6Ci0KLTIwMDktMTItMTMgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1
c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFu
IExvcGV6LgotCi0gICAgICAgIEFsc28gZ2l2ZSB0aGUgcmlnaHQgY2xpY2sgZXZlbnQgdG8gdGhl
IGZyYW1lJ3MgZXZlbnQgaGFuZGxlciwgaWYKLSAgICAgICAgdGhlcmUgV2ViQ29yZSBkZWNpZGVz
IHRvIG5vdCBnZW5lcmF0ZSB0aGUgZGVmYXVsdCBjb250ZXh0Ci0gICAgICAgIG1lbnUuIFRoaXMg
Zml4ZXMgc29tZSBwYWdlcyB0aGF0IGhhbmRsZSByaWdodC1idXR0b24gY2xpY2tzIGZvcgotICAg
ICAgICB0aGluZ3Mgb3RoZXIgdGhhbiBjb250ZXh0IG1lbnUgY3JlYXRpb24uCi0KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9y
d2FyZF9jb250ZXh0X21lbnVfZXZlbnQpOgotCi0yMDA5LTEyLTEzICBDaHJpc3RpYW4gRHl3YW4g
IDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBG
cmV5dGhlci4KLQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTAxNAotICAgICAgICBbR3RrXSBCdWlsZCBmYWlscyB3aXRoIGd0aystMi4xMCAobm8gdGVz
dGVkIHdpdGggb2xkZXIgcmVsZWFzZXMpCi0KLSAgICAgICAgR3VhcmQgR1RLKyAyLjEyIHNwZWNp
ZmljIHRvb2x0aXAgY29kZSB3aXRoICNpZmRlZi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6bW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnQpOgotCi0yMDA5LTEyLTExICBDaHJpc3RpYW4gRHl3YW4gIDxj
aHJpc3RpYW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgotCi0gICAgICAgIFtHVEtdIEJ1aWxkIHdpdGggLS1kaXNhYmxlLXN2ZyBpcyBicm9rZW4KLSAg
ICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIzNjEKLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2Zy
YW1lX3BhdXNlX3N2Z19hbmltYXRpb24pOiBGaXggRU5BQkxFKFNWRykgZ3VhcmRzLgotCi0yMDA5
LTEyLTEwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3Jh
LmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBBZGQg
YSBtaXNzaW5nIG51bGwtY2hlY2ssIHRoYXQgaXMgY2F1c2luZyBzb21lIGNyYXNoIHJlcG9ydHMu
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0g
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpjb21taXR0ZWRMb2FkKToKLQotMjAw
OS0xMi0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9y
YS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgW0dU
S10gU2hvdWxkIHByb3ZpZGUgYW4gQVBJIHRvIGNvbnRyb2wgdGhlIEljb25EYXRhYmFzZQotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIzMzQKLQotICAg
ICAgICBGaXJzdCBzdGVwIHRvd2FyZHMgYSBmdWxsIEljb25EYXRhYmFzZSBBUEkuIFRoaXMgcHJv
dmlkZXMKLSAgICAgICAgbm90aWZpY2F0aW9uIGZvciBwYWdlcyB3aXRoIGZhdmljb25zLCBhbmQg
bGV0cyBjbGllbnRzIGhhbmRsZQotICAgICAgICB0aGVtLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6cmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKToKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUljb24pOgotICAgICAgICAq
IHRlc3RzL3Jlc291cmNlcy9ibGFuay5pY286IEFkZGVkLgotICAgICAgICAqIHRlc3RzL3Rlc3R3
ZWJ2aWV3LmM6IEFkZGVkLgotICAgICAgICAoc2VydmVyX2NhbGxiYWNrKToKLSAgICAgICAgKGlk
bGVfcXVpdF9sb29wX2NiKToKLSAgICAgICAgKGljb25fdXJpX2NoYW5nZWRfY2IpOgotICAgICAg
ICAoaWNvbl9sb2FkZWRfY2IpOgotICAgICAgICAodGVzdF93ZWJraXRfd2ViX3ZpZXdfaWNvbl91
cmkpOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
OgotICAgICAgICAoY2xvc2VJY29uRGF0YWJhc2VPbkV4aXQpOgotICAgICAgICAod2Via2l0X2lu
aXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0
eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZmluYWxpemUpOgotICAgICAgICAod2Via2l0
X3dlYl92aWV3X2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9pY29u
X3VyaSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDoKLQotMjAwOS0xMi0wOCAg
Q2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCi0KLSAgICAgICAgUG9pbnQgb3V0IHRoZSBt
ZWFuaW5nIG9mICJDb250ZW50LURpc3Bvc2l0aW9uIiB3aGVuIGltcGxlbWVudGluZyB0aGUKLSAg
ICAgICAgbWltZS10eXBlLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQgc2lnbmFsLgotCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2NsYXNzX2luaXQpOgotCi0yMDA5LTEyLTA3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBM
b3Blei4KLQotICAgICAgICBbR1RLXSBEb2Vzbid0IHJlc3BlY3QgQ29udGVudC1EaXNwb3NpdGlv
biBmb3IgZG93bmxvYWRzLCBhbmQgcHJvdmlkZXMgbm8gd2F5IGZvciBhcHBzIHRvIGRvIHRoYXQK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMjQ3Ci0K
LSAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgYXBwbGljYXRpb25zIHRvIHJlc3BlY3QgQ29udGVu
dC1EaXNwb3NpdGlvbiwgYnkKLSAgICAgICAgZmV0Y2hpbmcgdGhlIFdlYktpdE5ldHdvcmtSZXNw
b25zZSBmcm9tIHRoZSBmcmFtZSBkdXJpbmcKLSAgICAgICAgbWltZS10eXBlLXBvbGljeS1kZWNp
c2lvbi1yZXF1ZXN0ZWQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvck1JTUVUeXBlKTogRG93bmxvYWQKLSAgICAgICAgY29udGVudCB3aGVu
IENvbnRlbnQtRGlzcG9zaXRpb24gaXMgYXR0YWNobWVudC4KLSAgICAgICAgKiB0ZXN0cy90ZXN0
bWltZWhhbmRsaW5nLmM6Ci0gICAgICAgIChzZXJ2ZXJfY2FsbGJhY2spOgotICAgICAgICAobWlt
ZV90eXBlX3BvbGljeV9kZWNpc2lvbl9yZXF1ZXN0ZWRfY2IpOgotICAgICAgICAqIHRlc3RzL3Rl
c3R3ZWJmcmFtZS5jOgotICAgICAgICAodGVzdF93ZWJraXRfd2ViX2ZyYW1lX3Jlc3BvbnNlKToK
LSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6Y29yZSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25ldHdvcmtfcmVzcG9uc2UpOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgotCi0yMDA5LTEyLTA3ICBHeXV5b3VuZyBL
aW0gIDxneXV5b3VuZ0BnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMy
MDI0Ci0gICAgICAgIFtHVEtdIFdlYktpdCBkb2VzIG5vdCBjb21waWxlIHdpdGhvdXQgSkFWQVND
UklQVF9ERUJVR0dFUgotCi0gICAgICAgIEZpeCBidWlsZCBlcnJvcnMgd2hlbiBqYXZhc2NyaXB0
LWRlYnVnZ2VyIGlzIGRpc2FibGVkIG9uIEdUSwotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
Ymluc3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRfcHJvcGVy
dHkpOgotICAgICAgICAod2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X3Byb3BlcnR5KToKLQotMjAw
OS0xMi0wNyAgSm9hbm1hcmllIERpZ2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDE1Ci0gICAgICAgIFtHVEtdW0FUS10gUGxlYXNl
IGltcGxlbWVudCBzdXBwb3J0IGZvciBnZXRfdGV4dF9hdF9vZmZzZXQKLQotICAgICAgICBFbGlt
aW5hdGUgdGhlIHNlZ2ZhdWx0cyB3aGljaCBvY2N1ciB3aGVuIGFjY2Vzc2luZyB0aGUgdGV4dCBp
bnRlcmZhY2Ugbm93Ci0gICAgICAgIGltcGxlbWVudGVkIGJ5IHRleHQgY29udHJvbHMuCi0KLSAg
ICAgICAgKiB0ZXN0cy90ZXN0YXRrLmMKLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0a19nZXRfdGV4
dF9hdF9vZmZzZXRfdGV4dGFyZWEpOgotICAgICAgICAodGVzdF93ZWJraXRfYXRrX2dldF90ZXh0
X2F0X29mZnNldF90ZXh0X2lucHV0KToKLSAgICAgICAgKG1haW4pOgotCi0yMDA5LTEyLTA2ICBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBOZXcgdGVzdCB0byBtYWtlIHN1cmUgd2UgZG8gbm90
IHJlZ3Jlc3MgdGhpcyBmZWF0dXJlIGFueW1vcmUuIEFsbAotICAgICAgICB0ZXN0IGZpbGVzIHdl
cmUgY3JlYXRlZCBieSBtZS4KLQotICAgICAgICBbR1RLXSBSRUdSRVNTSU9OOiB3ZWJraXQgdGhp
bmtzIGl0IGNhbiByZW5kZXIgUERGcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzIxODMKLQotICAgICAgICAqIHRlc3RzL3Jlc291cmNlcy90ZXN0Lmh0
bWw6IEFkZGVkLgotICAgICAgICAqIHRlc3RzL3Jlc291cmNlcy90ZXN0Lm9nZzogQWRkZWQuCi0g
ICAgICAgICogdGVzdHMvcmVzb3VyY2VzL3Rlc3QucGRmOiBBZGRlZC4KLSAgICAgICAgKiB0ZXN0
cy9yZXNvdXJjZXMvdGVzdC50eHQ6IEFkZGVkLgotICAgICAgICAqIHRlc3RzL3Rlc3RtaW1laGFu
ZGxpbmcuYzogQWRkZWQuCi0gICAgICAgIChzZXJ2ZXJfY2FsbGJhY2spOgotICAgICAgICAoaWRs
ZV9xdWl0X2xvb3BfY2IpOgotICAgICAgICAobWltZV90eXBlX3BvbGljeV9kZWNpc2lvbl9yZXF1
ZXN0ZWRfY2IpOgotICAgICAgICAodGVzdF9taW1lX3R5cGUpOgotICAgICAgICAodGVzdF9taW1l
X3BkZik6Ci0gICAgICAgICh0ZXN0X21pbWVfaHRtbCk6Ci0gICAgICAgICh0ZXN0X21pbWVfdGV4
dCk6Ci0gICAgICAgICh0ZXN0X21pbWVfb2dnKToKLSAgICAgICAgKG1haW4pOgotCi0yMDA5LTEy
LTA1ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNv
LnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBVc2UgYSBi
ZXR0ZXIgVVJJIGZvciB0aGUgdW5yZWFjaGFibGUgdGVzdC4gbG9jYWxob3N0OjgwIGlzIHZlcnkK
LSAgICAgICAgbGlrZWx5IHRvIGJlIG9wZW4uCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViZGF0
YXNvdXJjZS5jOgotICAgICAgICAobG9hZF9maW5pc2hlZF91bnJlYWNoYWJsZV9jYik6Ci0gICAg
ICAgICh0ZXN0X3dlYmtpdF93ZWJfZGF0YV9zb3VyY2VfdW5yZWFjaGFibGVfdXJpKToKLQotMjAw
OS0xMi0wMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgU2FtIFdlaW5pZy4KLQotICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIxNDIzNj4g
YW5kIGh0dHA6Ly93ZWJraXQub3JnL2IvMzIwNTIgLSBJbXBsZW1lbnQgSFRNTDUgc3RhdGUgb2Jq
ZWN0IGhpc3RvcnkgQVBJCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZFB1c2hTdGF0ZVdpdGhpblBhZ2UpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRSZXBsYWNlU3RhdGVXaXRoaW5QYWdlKToKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUG9wU3RhdGVXaXRoaW5QYWdlKToKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotCi0yMDA5LTEy
LTAzICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZGhjcC0xNzItMjgtMTc0LTIyMC5zcGIuY29y
cC5nb29nbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KLQot
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBTaW1wbGlmeSB0aGUgc2V0dGluZ3Mgc3VwcG9ydCBpbiBp
bnNwZWN0b3IgY29udHJvbGxlci4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzIwNzYKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6cG9wdWxh
dGVTZXR0aW5nKToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpzdG9yZVNldHRp
bmcpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotCi0y
MDA5LTEyLTAzICBCZW4gTXVyZG9jaCAgPGJlbm1AZ29vZ2xlLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBCcmFkeSBFaWRzb24uCi0KLSAgICAgICAgW0FuZHJvaWRdIFRoZSBGcmFtZUxvYWRl
ckNsaWVudCBpcyB1bmF3YXJlIG9mIEJhY2tGb3J3YXJkTGlzdCBjaGFuZ2VzLgotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE5MTQKLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQWRkQmFja0ZvcndhcmRJdGVtKTogQWRk
IGFuIGVtcHR5IGltcGxlbWVudGF0aW9uLiBNZXRob2QgYWRkZWQgdG8gRnJhbWVMb2FkZXJDbGll
bnQgYnkgQW5kcm9pZCAoc2VlIGJ1ZykuCi0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZFJlbW92ZUJhY2tGb3J3YXJkSXRlbSk6IGRpdHRvLgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFuZ2VCYWNrRm9yd2FyZElu
ZGV4KTogZGl0dG8uCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuaDoKLQotMjAwOS0xMi0wMSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5Acmlt
LmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCi0KLSAgICAgICAgQWRk
IFNWRyBhbmltYXRpb24gdGVzdCBmcmFtZXdvcmsgd2l0aCAnc25hcHNob3QnIGZ1bmN0aW9uYWxp
dHkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODk3
Ci0KLSAgICAgICAgQWRkIEFQSSB1c2VkIGJ5IHRoZSBuZXcgJ3NhbXBsZVNWR0FuaW1hdGlvbkZv
ckVsZW1lbnRBdFRpbWUnIERSVCBtZXRob2QsCi0gICAgICAgIGZvcndhcmRpbmcgdGhlIGNhbGwg
dG8gU1ZHRG9jdW1lbnRFeHRlbnNpb25zLCBpZiBTVkcgaXMgZW5hYmxlZC4KLQotICAgICAgICBJ
bXBsZW1lbnRlZCBqdXN0IGxpa2UgdGhlIGV4aXN0aW5nIHBhdXNlQW5pbWF0aW9uKiBtZXRob2Rz
IGZvciBDU1MgYW5pbWF0aW9ucy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfZnJhbWVfcGF1c2Vfc3ZnX2FuaW1hdGlvbik6Ci0KLTIwMDktMTEtMzAgIFhhbiBMb3BleiAg
PHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25o
YS4KLQotICAgICAgICBQcmVwYXJlIGZvciAxLjEuMTcgcmVsZWFzZS4KLQotICAgICAgICAqIE5F
V1M6Ci0gICAgICAgICogZG9jcy93ZWJraXRndGstZG9jcy5zZ21sOgotICAgICAgICAqIGRvY3Mv
d2Via2l0Z3RrLXNlY3Rpb25zLnR4dDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGlu
Z3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLQotMjAw
OS0xMS0yNiAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCi0KLSAgICAgICAgTW92ZSBHT3duUHRyKiBm
cm9tIHd0ZiB0byB3dGYvZ3RrCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMTc5MwotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBD
aGFuZ2UgdGhlIHBhdGggZm9yIEdPd25QdHIuaC4KLQotMjAwOS0xMS0yNCAgSm9hbm1hcmllIERp
Z2dzICA8am9hbm1hcmllLmRpZ2dzQGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBY
YW4gTG9wZXouCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI1NDE1Ci0gICAgICAgIFtHVEtdW0FUS10gUGxlYXNlIGltcGxlbWVudCBzdXBwb3J0IGZv
ciBnZXRfdGV4dF9hdF9vZmZzZXQKLQotICAgICAgICBXaGVuIGJ1aWxkaW5nIHVwIHRoZSBwYW5n
byBsYXlvdXQgZnJvbSB0ZXh0IGJveGVzLCBvbmx5IGFwcGVuZCBhCi0gICAgICAgIG5ld2xpbmUg
Y2hhciBhZnRlciB2ZXJpZnlpbmcgdGhlcmUgYXJlIG5vIG1vcmUgYm94ZXMgb24gdGhpcyBsaW5l
LgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jCi0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtf
Z2V0X3RleHRfYXRfb2Zmc2V0X25ld2xpbmVzKToKLSAgICAgICAgKG1haW4pOgotCi0yMDA5LTEx
LTE5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KLQotICAgICAgICBXZWIgSW5zcGVjdG9y
OiBJbXBsZW1lbnQgInNob3cgaW5zcGVjdG9yIiBpbiBXZWJLaXQgR1RLCi0gICAgICAgIEFQSSBh
bmQgZW5hYmxlIGNvbnNvbGUgdGVzdHMuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxNjY5Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5z
cGVjdG9yLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfaW5zcGVjdG9yX3Nob3cpOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuaDoKLQotMjAwOS0xMS0xOCAgTWFydGluIFJv
Ymluc29uICA8bWFydGluLmphbWVzLnJvYmluc29uQGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgW0dUS10gVGFiIGtleSBkb2VzIG5v
dCBjeWNsZSB0aHJvdWdoIGVsZW1lbnRzIGJ5IGRlZmF1bHQKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNTA1Ci0KLSAgICAgICAgUHJvcGVybHkgbG9j
YWxpemUgZG9jdW1lbnRhdGlvbiBzdHJpbmdzIGZvciB0aGUKLSAgICAgICAgdGFiLWtleS1jeWNs
ZXMtdGhyb3VnaC1lbGVtZW50cyBwcm9wZXJ0eS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQp
OgotCi0yMDA5LTExLTE3ICBNYXJ0aW4gUm9iaW5zb24gIDxtYXJ0aW4uamFtZXMucm9iaW5zb25A
Z21haWwuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAg
ICAgICBbR1RLXSBUYWIga2V5IGRvZXMgbm90IGN5Y2xlIHRocm91Z2ggZWxlbWVudHMgYnkgZGVm
YXVsdAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE1
MDUKLQotICAgICAgICBFbnN1cmUgdGhhdCBXZWJLaXRXZWJTZXR0aW5ncyB0YWIta2V5LWN5Y2xl
cy10aHJvdWdoLWVsZW1lbnRzCi0gICAgICAgIHByb3BlcnR5IGlzIHRydWUgYnkgZGVmYXVsdCB3
aXRoIHRoZSBHX1BBUkFNX0NPTlNUUlVDVF9GTEFHLgotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5p
dCk6Ci0KLTIwMDktMTEtMTggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25o
YUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0g
ICAgICAgIFtHVEtdIEZhaWxpbmcgdGVzdCBtZWRpYS92aWRlby1kb2N1bWVudC10eXBlcy5odG1s
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTM1Mgot
Ci0gICAgICAgIE1hdGNoIHdoYXQgTWFjIGhhcyBiZWVuIGRvaW5nIHNpbmNlIHIzNjAwMTogY2Fu
Y2VsIHRoZSBtYWluIGxvYWQsCi0gICAgICAgIGFuZCBoYW5kbGUgZmFpbHVyZXMgY2F1c2VkIGJ5
ICd3aWxsIGJlIGhhbmRsZWQgYnkgcGx1Z2luJyBlcnJvcnMuCi0KLSAgICAgICAgQ292ZXJlZCBi
eSB0ZXN0IG1lZGlhL3ZpZGVvLWRvY3VtZW50LXR5cGVzLmh0bWwKLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmNvbW1pdHRlZExvYWQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6c2hvdWxkRmFsbEJhY2spOgotCi0yMDA5LTExLTE3ICBQYXZlbCBGZWxkbWFu
ICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkg
SGF0Y2hlci4KLQotICAgICAgICBXZWIgSW5zcGVjdG9yOiBNYWtlIERSVCBzaG93IHdlYiBpbnNw
ZWN0b3IgZm9yIHRlc3RzIGluIGluc3BlY3Rvci8gZm9sZGVyLgotICAgICAgICAtIFVwZGF0ZWQg
RFJUIHRvIHNob3cvY2xvc2UgaW5zcGVjdG9yIGZvciBhbGwgdGVzdHMgdW5kZXIgL2luc3BlY3Rv
cgotICAgICAgICAtIEludHJvZHVjZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRpbWVsaW5l
UHJvZmlsaW5nRW5hYmxlZCBhbmQKLSAgICAgICAgICBXZWJJbnNwZWN0b3I6OnNldFRpbWVsaW5l
UHJvZmlsaW5nRW5hYmxlZCBiZXNpZGUgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQKLSAg
ICAgICAgLSBSZW1vdmVkIHJlbG9hZCBvbiBlYWNoIGluc3BlY3RvciB0ZXN0Ci0gICAgICAgIC0g
UmVuYW1lZCBmYXN0L2luc3BlY3RvciB0byBmYXN0L2luc3BlY3Rvci1zdXBwb3J0IGluIG9yZGVy
IG5vdCB0byB0cmlnZ2VyCi0gICAgICAgIGluc3BlY3RvciBmb3IgdGhvc2UuCi0gICAgICAgIC0g
UmVpbXBsZW1lbnRlZCB0aW1lbGluZSB0ZXN0cyBpbiBvcmRlciB0byBnZXQgcmlkIG9mIHJlbG9h
ZCB0aGVyZS4KLSAgICAgICAgLSBNb3ZlZCB0ZXN0cyB0aGF0IGRvbid0IHJlcXVpcmUgaGFybmVz
cyBpbnRvIHRoZSBmYXN0IGdyb3VwLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMTQ3MgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3Bl
Y3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9jbGFzc19pbml0KToKLSAg
ICAgICAgKHdlYmtpdF93ZWJfaW5zcGVjdG9yX3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2luc3BlY3Rvcl9nZXRfcHJvcGVydHkpOgotCi0yMDA5LTExLTEzICBBZGFtIFJvYmVu
ICA8YXJvYmVuQGFwcGxlLmNvbT4KLQotICAgICAgICBVcGRhdGUgZm9yIGNoYW5nZXMgdG8gRnJh
bWVMb2FkZXJDbGllbnQKLQotICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5vcmcvYi8zMTEy
ND4gVGVsbCB0aGUgV2ViRnJhbWVMb2FkRGVsZWdhdGUgd2hlbgotICAgICAgICB3aW5kb3cgb2Jq
ZWN0cyBpbiBpc29sYXRlZCB3b3JsZHMgYXJlIGNsZWFyZWQKLQotICAgICAgICBSZXZpZXdlZCBi
eSBEYXZlIEh5YXR0LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRDbGVhcldpbmRvd09iamVjdEluV29ybGQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0gICAgICAgIFJlcGxhY2VkIHdpbmRvd09iamVjdENsZWFy
ZWQgd2l0aCB0aGlzIGZ1bmN0aW9uLiBEb2VzIG5vdGhpbmcgaWYgdGhlCi0gICAgICAgIHBhc3Nl
ZC1pbiB3b3JsZCBpcyBub3QgdGhlIG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLgotCi0yMDA5LTEx
LTEyICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgZXh0ZXJuYWxSZXByZXNlbnRhdGlv
biBzaG91bGQgdGFrZSBGcmFtZSBhcyB0aGUgYXJndW1lbnQKLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMzkzCi0KLSAgICAgICAgTm8gbmV3IHRlc3Rz
IGFzIHRoaXMgaXMganVzdCBhIHJlZmFjdG9yaW5nLgotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZHVtcF9yZW5kZXJfdHJl
ZSk6Ci0KLTIwMDktMTEtMTEgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25o
YUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVy
LgotCi0gICAgICAgIFNob3VsZCBub3QgcHJpbnQgamF2YXNjcmlwdCBjb25zb2xlIG1lc3NhZ2Vz
IHRvIHN0ZG91dAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzEzNDYKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19yZWFsX2NvbnNvbGVfbWVzc2FnZSk6IFByaW50IGNvbnNvbGUgbWVz
c2FnZXMgdG8KLSAgICAgICAgc3RkZXJyIGluc3RlYWQsIHVzaW5nIHRoZSByZWNvbW1lbmRlZCBt
ZXRob2QgKGEgZ19sb2cgdmFyaWFudCkuCi0KLTIwMDktMTEtMTEgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4K
LQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAyMjEK
LSAgICAgICAgW0dUS10gZmFpbHMgdG8gbG9hZCBtZWRpYSBlbWJlZGRlZCBpbiBpZnJhbWUgZWxl
bWVudAotCi0gICAgICAgIFRoZSBGcmFtZUxvYWRlciBjYW4gc2hvdyBNZWRpYSBpZiB0aGUgYXVk
aW8vdmlkZW8gc3VwcG9ydCBpcwotICAgICAgICBlbmFibGVkIGF0IGNvbXBpbGUgdGltZS4KLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZSk6Ci0KLTIwMDkt
MTEtMTAgIE1hcnRpbiBSb2JpbnNvbiAgPG1hcnRpbi5qYW1lcy5yb2JpbnNvbkBnbWFpbC5jb20+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSmFuIEFsb256by4KLQotICAgICAgICBbR1RLXSBSZW1v
dmUgV2ViU29ja2V0IGNvbmZpZ3VyYXRpb24gZnJvbSBXZWJLaXRXZWJTZXR0aW5ncwotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEyNDQKLQotICAgICAg
ICBSZW1vdmUgbm9uLWZ1bmN0aW9uYWwgZW5hYmxlLXdlYi1zb2NrZXRzIHByb3BlcnR5IGZyb20g
V2ViS2l0V2ViU2V0dGluZ3MuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAg
KHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJf
c2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY29w
eSk6Ci0KLTIwMDktMTEtMDkgIE1hcnRpbiBSb2JpbnNvbiAgPG1hcnRpbi5qYW1lcy5yb2JpbnNv
bkBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSmFuIEFsb256by4KLQotICAgICAg
ICBbR1RLXSBFeHBvc2UgUGFnZTo6dGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzIGluIHRoZSBB
UEkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDgy
Ci0KLSAgICAgICAgRXhwb3NlIFBhZ2U6OnRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyBhcyBh
IHByb3BlcnR5IG9mCi0gICAgICAgIFdlYktpdFdlYlNldHRpbmdzLgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nf
Y2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3VwZGF0
ZV9zZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90aWZ5KToK
LQotMjAwOS0xMS0wNCAgTWFydGluIFJvYmluc29uICA8bWFydGluLmphbWVzLnJvYmluc29uQGdt
YWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgotCi0gICAgICAgIFtH
VEtdIEVuYWJsZSBET00gY2xpcGJvYXJkIGFuZCBkcmFnLWFuZC1kcm9wIGFjY2VzcwotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA2MjMKLQotICAgICAg
ICBNb3ZlIGhhbmRsaW5nIG9mIHRhcmdldCBsaXN0IHRvIFBhc3RlYm9hcmRIZWxwZXJHdGsuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6UGFzdGVib2FyZEhlbHBlckd0azo6UGFzdGVib2FyZEhlbHBlckd0ayk6Ci0g
ICAgICAgIChXZWJLaXQ6OlBhc3RlYm9hcmRIZWxwZXJHdGs6On5QYXN0ZWJvYXJkSGVscGVyR3Rr
KToKLSAgICAgICAgKFdlYktpdDo6UGFzdGVib2FyZEhlbHBlckd0azo6ZnVsbFRhcmdldExpc3Qp
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuaDoKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OnBhc3RlYm9h
cmRIZWxwZXJJbnN0YW5jZSk6Ci0gICAgICAgICh3ZWJraXRfaW5pdCk6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZSk6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvcHlfdGFyZ2V0X2xp
c3QpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJnZXRfbGlzdCk6Ci0K
LTIwMDktMTAtMzAgIEV2YW4gU3RhZGUgIDxlc3RhZGVAY2hyb21pdW0ub3JnPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IERhdmlkIExldmluLgotCi0gICAgICAgIE5vdGlmeSB0aGUgY2hyb21lIHdo
ZW4gdGhlIGZvY3VzZWQgbm9kZSBoYXMgY2hhbmdlZC4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwODMyCi0KLSAgICAgICAgQWRkZWQgc3R1YiBpbXBs
ZW1lbnRhdGlvbiBmb3IgbmV3IENocm9tZUNsaWVudCBmdW5jdGlvbi4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6Zm9jdXNlZE5vZGVDaGFuZ2VkKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaDoKLQotMjAwOS0xMC0yOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8
Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBVbnJldmlld2VkLiBU
cml2aWFsIGZpeCAtIG1vdmUgcHVibGljIEFQSSBkZWNsYXJhdGlvbiBpbnRvIHRoZQotICAgICAg
ICBwdWJsaWMgc3Vic2VjdGlvbiBvZiB0aGUgZG9jLgotCi0gICAgICAgICogZG9jcy93ZWJraXRn
dGstc2VjdGlvbnMudHh0OgotCi0yMDA5LTEwLTI4ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxn
dXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEph
biBBbG9uem8uCi0KLSAgICAgICAgW0dUS10gQVBJIHRvIHN0YXJ0IGluc3BlY3RvciBmb3IgYSBX
ZWJWaWV3Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjU1MQotCi0gICAgICAgIFByb3ZpZGUgYSBzaW1wbGUsIGNvb3JkaW5hdGVzLWJhc2VkIEFQSSB0
byBzdGFydCB0aGUgaW5zcGVjdG9yLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpjcmVh
dGVQYWdlKTogVXNlIGZpbGVzIGZyb20gdGhlIHNvdXJjZQotICAgICAgICB0cmVlIHdoZW4gcnVu
bmluZyBmcm9tIHRoZSB0b3Agb2YgdGhlIHNvdXJjZSBkaXJlY3RvcnkuCi0gICAgICAgIChXZWJL
aXQ6Okluc3BlY3RvckNsaWVudDo6bG9jYWxpemVkU3RyaW5nc1VSTCk6IERpdHRvLgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmlu
c3BlY3Rvci5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9pbnNwZWN0X2Nvb3Jk
aW5hdGVzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfaW5zcGVjdG9yX2Nsb3NlKToKLSAgICAgICAg
KHdlYmtpdF93ZWJfaW5zcGVjdG9yX2V4ZWN1dGVfc2NyaXB0KToKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2ViaW5zcGVjdG9yLmg6Ci0KLTIwMDktMTAtMjcgIFNoaW5pY2hpcm8gSGFtYWppICA8
aGFtYWppQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
LQotICAgICAgICBQcm92aWRlIGEgd2F5IHRvIGdldCBjb3VudGVyIHZhbHVlcyB3aXRoIGxheW91
dFRlc3RDb250b2xsZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMwNTU1Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1l
X2NvdW50ZXJfdmFsdWVfZm9yX2VsZW1lbnRfYnlfaWQpOgotCi0yMDA5LTEwLTI4ICBKb2UgTWFz
b24gIDxqbWFzb25AcmltLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFRyZWF0Lgot
Ci0gICAgICAgIENhbGwgdGhlIHNoYXJlZCBGcmFtZUxvYWRlcjo6ZGVmYXVsdE9iamVjdENvbnRl
bnRUeXBlIGluc3RlYWQgb2YKLSAgICAgICAgY29weWluZyBjb2RlIGludG8gRnJhbWVMb2FkZXJD
bGllbnQ6Om9iamVjdENvbnRlbnRUeXBlLiAgVGhpcyBjYXVzZXMgbm8KLSAgICAgICAgYmVoYXZp
b3VyYWwgY2hhbmdlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6b2JqZWN0Q29u
dGVudFR5cGUpOgotCi0yMDA5LTEwLTI4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgotCi0gICAgICAgIFtHdGtdIEV4dHJh
bmVvdXMgb2JqZWN0IG9mIFJPTEVfUEFORUwgaW4gaGllcmFyY2h5IGZvciBlbnRyaWVzCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg5NwotCi0gICAg
ICAgIFVwZGF0ZSB0ZXN0IHRvIGFsc28gY2hlY2sgdGhhdCBlbnRyaWVzIGltcGxlbWVudCB0aGUg
QXRrVGV4dAotICAgICAgICBpbnRlcmZhY2UuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0YXRrLmM6
Ci0gICAgICAgIChydW5fZ2V0X3RleHRfdGVzdHMpOgotICAgICAgICAodGVzdF93ZWJraXRfYXRr
X2dldF90ZXh0X2F0X29mZnNldF9mb3Jtcyk6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0
X3RleHRfYXRfb2Zmc2V0KToKLSAgICAgICAgKG1haW4pOgotCi0yMDA5LTEwLTI2ICBHdXN0YXZv
IE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAg
ICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBkb2N1bWVudGF0aW9uIGNvbnRyb2wgZmlsZXMgZm9yIDEu
MS4xNi4KLQotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLWRvY3Muc2dtbDoKLSAgICAgICAgKiBk
b2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50eHQ6Ci0KLTIwMDktMTAtMjYgIEd1c3Rhdm8gTm9yb25o
YSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMDc1OQotICAgICAgICBbR1RLXSBTaG91bGQgdXNlIFdlYktpdE5ldHdv
cmtSZXNwb25zZSwgYW5kIGV4cG9zZSBpdAotCi0gICAgICAgIFdlYktpdERvd25sb2FkIG5vdyB1
c2VzIG91ciBXZWJLaXROZXR3b3JrUmVzcG9uc2UgaW5zdGVhZCBvZiB1c2luZwotICAgICAgICBS
ZXNvdXJjZVJlc3BvbnNlIGRpcmVjdGx5LiBCeSBleHBvc2luZyB0aGUgcmVzcG9uc2UsIGxpa2Ug
d2UgZG8KLSAgICAgICAgd2l0aCB0aGUgcmVxdWVzdCwgd2UgZ2l2ZSBvdXIgdXNlcnMgdGhlIGFi
aWxpdHkgdG8gbG9vayBhdCB0aGUKLSAgICAgICAgcmVzcG9uc2UgaGVhZGVycywgc3RhdHVzIGNv
ZGUsIGFuZCBzbyBvbiwgdGhyb3VnaCB0aGUgU291cE1lc3NhZ2UKLSAgICAgICAgb2JqZWN0Lgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKHdlYmtpdF9k
b3dubG9hZF9kaXNwb3NlKToKLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9maW5hbGl6ZSk6Ci0g
ICAgICAgICh3ZWJraXRfZG93bmxvYWRfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF9k
b3dubG9hZF9zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX2NsYXNzX2lu
aXQpOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX2dldF9uZXR3b3JrX3Jlc3BvbnNlKToKLSAg
ICAgICAgKHdlYmtpdF9kb3dubG9hZF9zZXRfcmVzcG9uc2UpOgotICAgICAgICAod2Via2l0X2Rv
d25sb2FkX2dldF90b3RhbF9zaXplKToKLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9nZXRfcHJv
Z3Jlc3MpOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX3JlY2VpdmVkX2RhdGEpOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5oOgotCi0yMDA5LTEwLTI2ICBYYW4gTG9wZXogIDx4
bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEu
Ci0KLSAgICAgICAgVXBkYXRlIGZvciAxLjEuMTYgcmVsZWFzZS4KLQotICAgICAgICAqIE5FV1M6
Ci0KLTIwMDktMTAtMjIgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoYnVpbGQgZml4KS4KLSAgICAgICAgQnVp
bGQgZml4IGZvbGxvd2luZyBidWcgIzMwNjk2LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudDo6d2luZG93T2JqZWN0Q2xlYXJlZCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2dsb2JhbF9jb250ZXh0KToK
LQotMjAwOS0xMC0yMiAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgbV93ZWJWaWV3IHNob3Vs
ZCBiZSBwcml2YXRlIGF0dHJpYnV0ZSBvZiB0aGUgRWRpdG9yQ2xpZW50R3RrLgotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA2NjQKLQotICAgICAgICAq
IFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0KLTIwMDktMTAt
MjAgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgRGF2aWQgTGV2aW4uCi0KLSAgICAgICAgUmVtb3ZlZCBXZWJTb2NrZXQgcnVudGltZSBz
ZXR0aW5ncy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI5ODk2Ci0KLSAgICAgICAgV2ViU29ja2V0IHJ1bnRpbWUgY29uZmlndXJhdGlvbiBpcyBzdXBw
b3J0ZWQgYnkgY2hyb21pdW0vdjggb25seS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotICAg
ICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6Ci0KLTIwMDktMTAtMTkgIEph
biBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KLQotICAgICAgICBbR3RrXSBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZSBlcnJvciB3aGlsZSBjb21waWxpbmcgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
YXBwbGljYXRpb25jYWNoZS5jcHAKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMwMzU4Ci0KLSAgICAgICAgR3VhcmQgY2FsbHMgdG8gY2FjaGVTdG9yYWdl
KCkgd2l0aCBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKS4KLQotICAgICAgICAqIHdl
YmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcDoKLQotMjAwOS0xMC0xOSAgWmFuIERvYmVy
c2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rh
dm8gTm9yb25oYS4KLQotICAgICAgICBBZGQgYSBzZXR0aW5ncyB0byBhbGxvdyBET00gcGFzdGVz
IHRvIGJlIHBlcmZvcm1lZC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICAo
d2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9z
ZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jb3B5
KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXR0
aW5nc19ub3RpZnkpOgotCi0yMDA5LTEwLTE5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIE1ha2Ug
V2ViS2l0SGl0VGVzdFJlc3VsdCBhY3R1YWxseSBhcHBlYXIgaW4gdGhlCi0gICAgICAgIGRvY3Vt
ZW50YXRpb24gaW5kZXguCi0KLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWw6Ci0K
LTIwMDktMTAtMTUgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBQcm90ZWN0IFdlYlNvY2tldCBj
YWxscyBpbiBjYXNlIHRoZSBmZWF0dXJlIGlzIG5vdCBjb21waWxlZCBpbi4KLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRh
dGVfc2V0dGluZ3MpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6
Ci0KLTIwMDktMTAtMTUgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgQWRkIGEgc2V0
dGluZ3MgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIGV4cGVyaW1lbnRhbCBXZWIgU29ja2V0cy4KLSAg
ICAgICAgQ3VycmVudGx5IHRoaXMgY29tZXMgaW4gaGFuZHkgaW4gbGF5b3V0IHRlc3RzLgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3Nl
dF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGlu
Z3MpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6Ci0KLTIwMDkt
MTAtMTUgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEu
Y28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIHBhZ2Ug
dHJhbnNpdGlvbiBtYXkgY3Jhc2ggd2Via2l0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTg5MAotCi0gICAgICAgIFRoZXJlIGFyZSBhY3R1YWxseSBj
YXNlcyBpbiB3aGljaCBhIHJlc291cmNlIG1heSBiZSBhc2tlZCB1c2luZwotICAgICAgICB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlIGFmdGVyIGEgbmV3IGxvYWQgaGFzIGFscmVhZHkgYmVl
bgotICAgICAgICBzdGFydGVkLCBzbyBwcm90ZWN0IG91cnNlbHZlcyBmcm9tIGNyYXNoZXMgaW4g
dGhpcyBjYXNlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRG
aW5pc2hMb2FkaW5nKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKToKLQotMjAwOS0xMC0xMiAgR3VzdGF2
byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAg
ICAgICBSdWJiZXItc3RhbXBlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgUmVtb3ZlIHVubmVj
ZXNzYXJ5IHNlbGYtaW5jbHVkZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRzZWN1cml0eW9y
aWdpbi5oOgotCi0yMDA5LTEwLTEyICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9h
c3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAg
ICBbR1RLXSBDcmFzaCB3aGVuIHJpZ2h0LWNsaWNraW5nIG1pc3NwZWxsZWQgd29yZAotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk3NzIKLQotICAgICAg
ICBNYWtlIHN1cmUgdGhlIGRpY3Rpb25hcnkgZXhpc3QgYmVmb3JlIGFkZGluZyBpdCB0byB0aGUg
bGlzdCBvZgotICAgICAgICBkaWN0aW9uYXJpZXMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmNo
ZWNrU3BlbGxpbmdPZlN0cmluZyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLQotMjAw
OS0xMC0wOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIE1vdmUgZXhlY3V0ZVNjcmlwdCBmcm9tIEZy
YW1lTG9hZGVyIHRvIFNjcmlwdENvbnRyb2xsZXIKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMjAwCi0KLSAgICAgICAgVXBkYXRlIEFQSSBjYWxsLgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X2V4ZWN1dGVfc2NyaXB0KToKLQotMjAwOS0xMC0wNyAgWGFuIExvcGV6ICA8eGxvcGV6
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgRml4IHRoZSBHVEsrIGJ1aWxkLgotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJf
cG9saWN5X2RlY2lzaW9uX3VzZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lv
bl9pZ25vcmUpOgotICAgICAgICAod2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fZG93bmxvYWQp
OgotCi0yMDA5LTEwLTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgRmFjdG9yIFBvbGljeUNoZWNr
ZXIgb3V0IG9mIEZyYW1lTG9hZGVyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMDE1NQotCi0gICAgICAgIE1vdmUgdGhlIHBvbGljeSBjYWxsYmFjayB0
byB0aGUgcG9saWN5IG9iamVjdC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoV2lsbFN1Ym1pdEZvcm0pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6
Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24pOgotCi0yMDA5LTEwLTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxt
YXJ0aW4uamFtZXMucm9iaW5zb25AZ21haWwuY29tPgotCi0gICAgICAgIFtHVEtdIFNlZ2ZhdWx0
IHdoaWxlIHRlc3RpbmcgZmFzdC9ldmVudHMva2V5ZG93bi1rZXlwcmVzcy1wcmV2ZW50RGVmYXVs
dC5odG1sCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MDEyMQotCi0gICAgICAgIENsZWFyIHByZXZpb3VzIHByZWVkaXQgb3IgcGVuZGluZyBjb21wb3Np
dGlvbiBiZWZvcmUgc3RvcmluZyBuZXcgb25lcy4KLSAgICAgICAgVGhpcyBjYW4gaGFwcGVuIHdo
ZW4gYSBXZWJWaWV3IHJlY2VpdmVzIGEgbmF0aXZlIGtleWRvd24gZXZlbnQgd2l0aG91dAotICAg
ICAgICBhIG1hdGNoaW5nIGtleXVwIGV2ZW50IG9yIHdoZW4gcHJldmVudERlZmF1bHQoKSBpcyBj
YWxsZWQgb24gRE9NIGtleWRvd24KLSAgICAgICAgZXZlbnRzLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6c2V0UGVuZGlu
Z0NvbXBvc2l0aW9uKToKLSAgICAgICAgKFdlYktpdDo6c2V0UGVuZGluZ1ByZWVkaXQpOgotICAg
ICAgICAoV2ViS2l0OjpjbGVhclBlbmRpbmdJTURhdGEpOgotICAgICAgICAoV2ViS2l0OjppbUNv
bnRleHRDb21taXR0ZWQpOgotICAgICAgICAoV2ViS2l0OjppbUNvbnRleHRQcmVlZGl0Q2hhbmdl
ZCk6Ci0KLTIwMDktMTAtMDYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTUyNgotICAgICAgICBbR3RrXSBBZGRpdGlvbmFsIHN1
cHBvcnQgaXMgbmVlZGVkIGZvciBjYXJldCBicm93c2luZwotCi0gICAgICAgIFJlbW92ZSBzcGVj
aWFsIGNhc2VzIGZvciBjYXJldCBicm93c2luZywgdGhleSBhcmUgbm93IGhhbmRsZWQgaW4KLSAg
ICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aGFuZGxl
S2V5Ym9hcmRFdmVudCk6Ci0KLTIwMDktMTAtMDYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBj
aHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgotCi0g
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGNsb3NlIGluc3BlY3RvciBjbGllbnQgdmlldyBvbgotICAg
ICAgICBJbnNwZWN0b3JDb250cm9sbGVyOjpjbG9zZSBBUEkgY2FsbC4KLQotICAgICAgICBJbiBv
cmRlciB0byBydW4gYmF0Y2ggd2ViIGluc3BlY3RvciBsYXlvdXQgdGVzdHMgKGFuZCBub3QgYWZm
ZWN0IAotICAgICAgICBzdWJzZXF1ZW50IHRlc3RzKSB3ZSBzaG91bGQgY2xvc2UgaW5zcGVjdG9y
IGNsaWVudCdzIHZpZXcgdXBvbgotICAgICAgICBJbnNwZWN0b3JDb250cm9sbGVyOjpjbG9zZSBB
UEkgY2FsbC4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzAwMDkKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6Y3JlYXRlUGFnZSk6Ci0KLTIw
MDktMTAtMDYgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIEFTU0VSVCBleGVjdXRpbmcgdGhl
IHdlYmhpc3RvcnkgdW5pdHRlc3QgaW4gYSBkZWJ1ZyBidWlsZAotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg5NDcKLQotICAgICAgICBXZSBoYXZlIHRv
IGNhbGwgZ19vYmplY3RfbmV3IGZpcnN0IHRvIGluaXRpYWxpemUgd2Via2l0IHRocmVhZGluZwot
ICAgICAgICBiZWZvcmUgY3JlYXRpbmcgdGhlIEtVUkwuCi0KLSAgICAgICAgKiBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0KLTIwMDktMTAtMDYgIEpvc8OpIE1p
bGzDoW4gU290byAgPGZpZEBncHVsLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9w
ZXouCi0KLSAgICAgICAgSGVhZGVyIGZpbGVzIG9mIFdlYktpdEdUSyBkbyBub3QgY29tcGx5IHdp
dGggV2ViS2l0IGNvZGluZyBzdHlsZSAoUGF0Y2ggYXR0YWNoZWQpCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDA3NgotCi0gICAgICAgIFNvbHZlcyB2
YXJpb3VzIGlzc3VlcyBpbiBoZWFkZXIgZmlsZXMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9Eb2N1bWVudExvYWRlckd0ay5oOiBBZGRlZCAiaGVhZGVkIGd1YXJkcyIKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0ZGVmaW5lcy5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5o
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXRlcnJvci5oOgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXRoaXR0ZXN0cmVzdWx0Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0
Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5oOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNlY3VyaXR5
b3JpZ2luLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmg6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdHZlcnNpb24uaC5pbjoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViYmFja2ZvcndhcmRsaXN0Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmRhdGFiYXNl
Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuaDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViZnJhbWUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9y
eWl0ZW0uaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmg6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2VicG9saWN5ZGVjaXNpb24uaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicmVz
b3VyY2UuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaDoKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ3aW5k
b3dmZWF0dXJlcy5oOgotCi0yMDA5LTEwLTAzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+Ci0KLSAgICAgICAgTW9yZSBidWlsZCBmaXhpbmcuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ29fYmFja19vcl9mb3J3
YXJkKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jYW5fZ29fYmFja19vcl9mb3J3YXJkKToK
LQotMjAwOS0xMC0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAg
IFVucmV2aWV3ZWQgYnVpbGQgZml4LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dvX2JhY2tfb3JfZm9yd2FyZCk6Ci0KLTIw
MDktMTAtMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIEZhY3RvciBQYWdlQ29udHJvbGxlciBvdXQg
b2YgRnJhbWVMb2FkZXIgYW5kIFBhZ2UKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMwMDM3Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2JhY2tfb3JfZm9yd2FyZCk6Ci0K
LTIwMDktMTAtMDEgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBTZXQgdGhlIHR5cGUgZm9yIHRo
ZSBmYWtlIGV2ZW50LCBvdGhlcndpc2UgdGhlIHRlc3QgQVNTRVJUcyBpbgotICAgICAgICBkZWJ1
ZyBidWlsZHMuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0aGl0dGVzdHJlc3VsdC5jOgotICAgICAg
ICAobG9hZF9zdGF0dXNfY2IpOgotCi0yMDA5LTEwLTAxICBNYXJ0aW4gUm9iaW5zb24gIDxtYXJ0
aW4uamFtZXMucm9iaW5zb25AZ21haWwuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBM
b3Blei4KLQotICAgICAgICBbR1RLXSBHdGtJTUNvbnRleHQgZmlsdGVyaW5nIGludGVyZmVyZXMg
d2l0aCBET00ga2V5IGV2ZW50cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjg3MzMKLQotICAgICAgICBFbnN1cmUgdGhhdCBrZXlib2FyZCBldmVudHMg
ZmlsdGVyZWQgYnkgdGhlIEd0a0lNQ29udGV4dCBzdGlsbCBjcmVhdGUKLSAgICAgICAgdGhlIHBy
b3BlciBET00gZXZlbnRzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Y2xlYXJQZW5kaW5nSU1EYXRhKToKLSAgICAgICAg
KFdlYktpdDo6aW1Db250ZXh0Q29tbWl0dGVkKToKLSAgICAgICAgKFdlYktpdDo6aW1Db250ZXh0
UHJlZWRpdENoYW5nZWQpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNob3VsZEJl
Z2luRWRpdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkRW5kRWRp
dGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OmludGVycHJldEVkaXRvckNvbW1hbmRLZXlFdmVudCk6
Ci0gICAgICAgIChXZWJLaXQ6OmhhbmRsZUNhcmV0QnJvd3NpbmdLZXlib2FyZEV2ZW50KToKLSAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKLSAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24pOgotICAg
ICAgICAqIHRlc3RzL3Rlc3RrZXlldmVudHMuYzogQWRkZWQuCi0gICAgICAgICh0ZXN0X2luZm9f
bmV3KToKLSAgICAgICAgKHRlc3RfaW5mb19kZXN0cm95KToKLSAgICAgICAgKGtleV9ldmVudF9m
aXh0dXJlX3NldHVwKToKLSAgICAgICAgKGtleV9ldmVudF9maXh0dXJlX3RlYXJkb3duKToKLSAg
ICAgICAgKGtleV9wcmVzc19ldmVudF9jYik6Ci0gICAgICAgIChrZXlfcmVsZWFzZV9ldmVudF9j
Yik6Ci0gICAgICAgIChsb2FkX3N0YXR1c19jYik6Ci0gICAgICAgIChtYXBfZXZlbnRfY2IpOgot
ICAgICAgICAodGVzdF9rZXlwcmVzcyk6Ci0gICAgICAgIChtYWluKToKLQotMjAwOS0wOS0yOSAg
WGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3Vz
dGF2byBOb3JvbmhhLgotCi0gICAgICAgIERvIG5vdCBzZXQgYSBub24tZGVmYXVsdCBwYXJlbnQg
d2luZG93IGZvciBjaGlsZCB3aWRnZXRzLiBXZSBhcmUKLSAgICAgICAganVzdCBkb2luZyB0aGUg
c2FtZSB0aGFuIHRoZSBkZWZhdWx0IHBhdGggZG9lcywgYW5kIG9uIHRvcCBvZiB0aGF0Ci0gICAg
ICAgIGlmIHRoZSB3aWRnZXQncyB3aW5kb3cgY2hhbmdlcyAoZm9yIGV4YW1wbGUsIGR1cmluZyBE
bkQgd2lkZ2V0cwotICAgICAgICBhcmUgdXN1YWxseSB1bnJlYWxpemVkL3JlYWxpemVkKSB0aGUg
Y2hpbGQgd2lkZ2V0IHdpbGwgd2UgbGVmdAotICAgICAgICBwb2ludGluZyB0byBhIGRlYWQgd2lu
ZG93LgotCi0gICAgICAgIEZvciBleGFtcGxlcyBvZiBjcmFzaGVycyBjYXVzZWQgYnkgdGhpcyBz
ZWUKLSAgICAgICAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTU5
NjM5NyBhbmQKLSAgICAgICAgaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dp
P2lkPTU5NjM5OAotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2NvbnRhaW5lcl9hZGQpOgotCi0yMDA5LTA5LTI5ICBYYW4gTG9w
ZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBFcmlj
IFNlaWRlbC4KLQotICAgICAgICBbR3RrXSBDcmFzaCB3aGVuIHNhdmluZyBhIHBhc3N3b3JkCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODA3MAotCi0g
ICAgICAgIERpc2Nvbm5lY3QgdGhlICdnb3QtaGVhZGVycycgY2FsbGJhY2sgd2hlbiB3ZSBhcmUg
ZG9uZSB3aXRoCi0gICAgICAgIGl0LiBUaGUgc2lnbmFsIGNhbiBiZSBlbWl0dGVkIG1vcmUgdGhh
biBvbmNlIGlmIHRoZSBtZXNzYWdlIGlzCi0gICAgICAgIHJldHJhbnNtaXR0ZWQsIGJ1dCBlYWNo
IHRpbWUgdGhhdCBoYXBwZW5zIGF1dGhEYXRhIGlzIGNyZWF0ZWQKLSAgICAgICAgYWdhaW4gYW5k
IGEgbmV3IGNhbGxiYWNrIGNvbm5lY3RlZCwgc28gd2UgaGF2ZSB0byBnZXQgcmlkIG9mIHRoZQot
ICAgICAgICBvbGQgb25lICh3aGljaCB3aWxsIGNyYXNoIGJlY2F1c2Ugd2UgZnJlZSBhdXRoRGF0
YSkuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuYzoKLSAgICAgICAg
KHNhdmVfcGFzc3dvcmRfY2FsbGJhY2spOgotCi0yMDA5LTA5LTI1ICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBQb3AgZG93biB0aGUgY29udGV4dCBtZW51IHdo
ZW4gdGhlIHBhZ2UgdHJhbnNpdGlvbnMgdG8gY29tbWl0dGVkLAotICAgICAgICB0byBhdm9pZCBr
ZWVwaW5nIGEgY29udGV4dCBtZW51IG91dCBvZiBjb250ZXh0LgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5jcHA6Ci0gICAgICAgIChkZXN0cm95X21lbnVfY2IpOgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2ZvcndhcmRfY29udGV4dF9tZW51X2V2ZW50KToKLQotMjAwOS0wOS0yNCAgSm9uIEhvbmV5
Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFsaWNl
IExpdS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19pbml0KToKLSAgICAgICAgUGFzcyAwIGZvciBuZXcgUGFnZSBjb25zdHJ1
Y3RvciBhcmd1bWVudC4KLQotMjAwOS0wOS0yNCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIGFuZCBKYW4gQWxvbnpv
LgotICAgICAgICBbR1RLXSBBZGQgV0VCS0lUX0xPQURfRVJST1Igc3RhdHVzCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTY0NAotCi0gICAgICAgIEFk
ZCBhIG5ldyBsb2FkLXN0YXR1cyBlbnVtIHZhbHVlLCBXRUJLSVRfTE9BRF9GQUlMRUQsIGVtaXR0
ZWQgd2hlbgotICAgICAgICB0aGVyZSdzIGFuIGVycm9yIGR1cmluZyB0aGUgbG9hZCBwcm9jZXNz
LiBUaGlzIGlzIG5lZWRlZCBpZiB3ZQotICAgICAgICB3YW50IG5vdGlmeTo6bG9hZC1zdGF0dXMg
dG8gYmUgYWJsZSB0byBoYW5kbGUgYWxsIHNpdHVhdGlvbnMsCi0gICAgICAgIHNpbmNlIFdFQktJ
VF9MT0FEX0ZJTklTSEVEIGlzIG5vdCBlbWl0dGVkIHdoZW4gdGhlcmUncyBhbiBlcnJvcgotICAg
ICAgICBhbmQgd2UgYXJlIGxhY2tpbmcgYSBub3RpZmljYXRpb24gb2YgdGhlIGxvYWQgYmVpbmcg
c3RvcHBlZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFp
bExvYWQpOgotICAgICAgICAqIHRlc3RzL3Rlc3Rsb2FkaW5nLmM6Ci0gICAgICAgICh3ZWJfbG9h
ZGluZ19maXh0dXJlX3NldHVwKToKLSAgICAgICAgKGxvYWRfZXJyb3Jfc3RhdHVzX2NoYW5nZWRf
Y2IpOgotICAgICAgICAobG9hZF9lcnJvcl9jYik6Ci0gICAgICAgICh0ZXN0X2xvYWRpbmdfZXJy
b3IpOgotICAgICAgICAobG9hZF9jYW5jZWxsZWRfY2IpOgotICAgICAgICAoc3RvcF9sb2FkKToK
LSAgICAgICAgKGxvYWRfY2FuY2VsbGVkX3N0YXR1c19jaGFuZ2VkX2NiKToKLSAgICAgICAgKHRl
c3RfbG9hZGluZ19jYW5jZWxsZWQpOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmg6Ci0KLTIwMDktMDktMjQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFJldmVydCByNDg2OTcsIHNpbmNlIGl0IGJyb2tlIGtleSBoYW5k
bGluZyBub3RpZmljYXRpb24gdG8gR1RLKy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmltQ29udGV4dENvbW1pdHRlZCk6
Ci0gICAgICAgIChXZWJLaXQ6OmltQ29udGV4dFByZWVkaXRDaGFuZ2VkKToKLSAgICAgICAgKFdl
YktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRCZWdpbkVkaXRpbmcpOgotICAgICAgICAoV2ViS2l0
OjpFZGl0b3JDbGllbnQ6OnNob3VsZEVuZEVkaXRpbmcpOgotICAgICAgICAoV2ViS2l0OjppbnRl
cnByZXRLZXlFdmVudCk6Ci0gICAgICAgIChXZWJLaXQ6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2
ZW50KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50
KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRv
d24pOgotCi0yMDA5LTA5LTIzICBNYXJ0aW4gUm9iaW5zb24gIDxtYXJ0aW4uamFtZXMucm9iaW5z
b25AZ21haWwuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAg
ICBbR1RLXSBSRUdSRVNTSU9OOiBCaXRtYXBJbWFnZTo6Z2V0R2RrUGl4YnVmIGZhaWxzIGZvciBu
b24tc3F1YXJlIGltYWdlcwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mjk2NTQKLQotICAgICAgICBFbnN1cmUgdGhhdCBldmVuIHdoZW4gR1RLU2ltcGxl
SU1Db250ZXh0IGZpbHRlcnMgbm9uLUlNRSBrZXlzdHJva2VzLAotICAgICAgICBrZXlib2FyZCBl
dmVudHMgYXJlIGZpcmVkIHByb3Blcmx5LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Y2xlYXJQZW5kaW5nSU1EYXRhKToK
LSAgICAgICAgKFdlYktpdDo6aW1Db250ZXh0Q29tbWl0dGVkKToKLSAgICAgICAgKFdlYktpdDo6
aW1Db250ZXh0UHJlZWRpdENoYW5nZWQpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6
OnNob3VsZEJlZ2luRWRpdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hv
dWxkRW5kRWRpdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OmludGVycHJldEVkaXRvckNvbW1hbmRL
ZXlFdmVudCk6Ci0gICAgICAgIChXZWJLaXQ6OmhhbmRsZUNhcmV0QnJvd3NpbmdLZXlib2FyZEV2
ZW50KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50
KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRv
d24pOgotCi0yMDA5LTA5LTIzICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9u
aGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQot
ICAgICAgICBbR1RLXSBuZWVkIHRvIGR1bXAgbnVtYmVyIG9mIHBlbmRpbmcgdW5sb2FkIGhhbmRs
ZXJzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTY4
NQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfcGVuZGlu
Z191bmxvYWRfZXZlbnRfY291bnQpOiBOZXcgZnVuY3Rpb24gdG8KLSAgICAgICAgc2F0aXNmeSBE
UlQgbmVlZHMuCi0KLTIwMDktMDktMjMgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdl
YmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIE1p
bm9yIHJlb3JnYW5pemF0aW9uIHRvIHRoZSBwYXRjaCBsYW5kZWQgaW4KLSAgICAgICAgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNDg2NzAuIEFsc28gbW92ZSBKU0NvcmUtMS4wLmdp
cgotICAgICAgICBpbiB0aGUgZ3RrIGRpcmVjdG9yeSBhcyB0aGF0J3Mgb25seSB1c2VmdWwgdG8g
dGhlIEd0ayBwb3J0IGF0IHRoZQotICAgICAgICBtb21lbnQuCi0KLSAgICAgICAgKiBKU0NvcmUt
MS4wLmdpcjogUmVuYW1lZCBmcm9tIEpTQ29yZS0xLjAuZ2lyLgotCi0yMDA5LTA5LTIyICBYYW4g
TG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxv
bnpvLgotCi0gICAgICAgIEhhcmRjb2RlIGVsZW1lbnQgcG9zaXRpb25zIGF0IDAsMCBzbyB0aGF0
IHdlIGtub3cgd2hlcmUgdG8KLSAgICAgICAgZ2VuZXJhdGUgZXZlbnRzIHRvIHRlc3QgV2ViS2l0
SGl0VGVzdFJlc3VsdC4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RoaXR0ZXN0cmVzdWx0LmM6Ci0g
ICAgICAgIChsb2FkX3N0YXR1c19jYik6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF9oaXRfdGVzdF9y
ZXN1bHQpOgotICAgICAgICAobWFpbik6Ci0KLTIwMDktMDktMjIgIFhhbiBMb3BleiAgPHhsb3Bl
ekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCi0KLSAgICAg
ICAgW0dUS10gV2ViS2l0SGl0VGVzdFJlc3VsdCBpcyBjb21wbGV0ZWx5IGJyb2tlbiBpbiBnbWFp
bAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk1MjcK
LQotICAgICAgICBXZSBuZWVkIHRvIHVzZSB0aGUgbWFpbiBvciBmb2N1c2VkIGZyYW1lIHdoZW4g
ZG9pbmcgdGhlIGNvb3JkaW5hdGUKLSAgICAgICAgdHJhbnNmb3JtYXRpb24gaW5zdGVhZCBvZiBh
bHdheXMgdXNpbmcgdGhlIG1haW4gZnJhbWUuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hpdF90ZXN0X3Jlc3VsdCk6
Ci0KLTIwMDktMDktMjEgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBj
b2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgVXBkYXRlIGRvY3VtZW50YXRpb24gY29udHJvbCBm
aWxlcyB0byAxLjEuMTUuCi0KLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWw6Ci0g
ICAgICAgICogZG9jcy93ZWJraXRndGstc2VjdGlvbnMudHh0OgotCi0yMDA5LTA5LTIxICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0g
ICAgICAgIFVucmV2aWV3ZWQgZG9jcyBidWlsZCBmaXguIEN1cnJlbnQgQ0ZMQUdTIGFuZCBMSUJT
IHZhcmlhYmxlcyBubwotICAgICAgICBsb25nZXIgYnJpbmcgZ3RocmVhZCBpbi4KLQotICAgICAg
ICAqIGRvY3MvR05VbWFrZWZpbGUuYW06Ci0KLTIwMDktMDktMjEgIFhhbiBMb3BleiAgPHhsb3Bl
ekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQot
ICAgICAgICBVcGRhdGUgZm9yIHJlbGVhc2UuCi0KLSAgICAgICAgKiBORVdTOgotCi0yMDA5LTA5
LTIwICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgU21hbGwgZG9jdW1lbnRhdGlvbiBmaXguCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5jcHA6Ci0KLTIwMDktMDktMTgg
IFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIEJ1aWxkIGZpeC4KLQot
ICAgICAgICBBZGQgbWlzc2luZyBmaWxlIHRvIHRoZSByZXBvc2l0b3J5LgotCi0gICAgICAgICog
dGVzdHMvdGVzdGhpdHRlc3RyZXN1bHQuYzogQWRkZWQuCi0gICAgICAgICh0ZXN0X2luZm9fbmV3
KToKLSAgICAgICAgKHRlc3RfaW5mb19kZXN0cm95KToKLSAgICAgICAgKGhpdF90ZXN0X3Jlc3Vs
dF9maXh0dXJlX3NldHVwKToKLSAgICAgICAgKGhpdF90ZXN0X3Jlc3VsdF9maXh0dXJlX3RlYXJk
b3duKToKLSAgICAgICAgKGxvYWRfc3RhdHVzX2NiKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X2hp
dF90ZXN0X3Jlc3VsdCk6Ci0gICAgICAgIChtYWluKToKLQotMjAwOS0wOS0xOCAgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgW0d0a10g
VW5yZXZpZXdlZCBidWlsZCBmaXguCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFn
ZUNsaWVudCk6Ci0KLTIwMDktMDktMTcgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2Vu
bmV0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgot
Ci0gICAgICAgIE1ha2UgUGxhdGZvcm1XaW5kb3cgcmV0dXJuIHNvbWV0aGluZyBlbHNlIHRoYW4g
UGxhdGZvcm1XaWRnZXQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI5MDg1Ci0KLSAgICAgICAgUmVmbGVjdCB0aGUgcmVuYW1lIG9mIHBsYXRmb3JtV2lu
ZG93IGFuZCBpdCdzIHJldHVybiB0eXBlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpwbGF0Zm9y
bVBhZ2VDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5l
bCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAoY3VycmVudFRvcGxldmVsQ2Fs
bGJhY2spOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19wb3B1cF9tZW51X2hhbmRsZXIpOgotCi0yMDA5LTA5LTE4ICBYYW4gTG9w
ZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpv
LgotCi0gICAgICAgIERvY3VtZW50IHdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDktMTggIFhhbiBMb3Bl
eiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9y
b25oYSBhbmQgSmFuIEFsb256by4KLQotICAgICAgICBbR1RLXSBjb250ZXh0IG1lbnUgb3ZlcnJp
ZGluZyBBUEkgaXMgdmVyeSBsaW1pdGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNzU0NgotCi0gICAgICAgIEFkZCB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2hpdF90ZXN0X3Jlc3VsdCwgYSBmdW5jdGlvbiB0byBnZXQgYSBoaXQKLSAgICAgICAgdGVzdCBy
ZXN1bHQgZnJvbSBhIEdka0V2ZW50QnV0dG9uLiBVc2VmdWwgdG8gbGV0IGFwcGxpY2F0aW9ucwot
ICAgICAgICBkZWNpZGUgYmV0d2VlbiBzZXZlcmFsIGFjdGlvbnMgb24gYnV0dG9uIHByZXNzIGRl
cGVuZGluZyBvbiB3aGF0Ci0gICAgICAgIGlzIGJlaW5nIHByZXNzZWQuCi0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc3RvcF9s
b2FkaW5nKToKLSAgICAgICAgKGRvY3VtZW50UG9pbnRGb3JXaW5kb3dQb2ludCk6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2hpdF90ZXN0X3Jlc3VsdCk6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuaDoKLQotMjAwOS0wOS0xOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIGFuZCBKYW4gQWxv
bnpvLgotCi0gICAgICAgIFtHVEtdIGNvbnRleHQgbWVudSBvdmVycmlkaW5nIEFQSSBpcyB2ZXJ5
IGxpbWl0ZWQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI3NTQ2Ci0KLSAgICAgICAgQWRkIFdlYktpdEhpdFRlc3RSZXN1bHQsIGEgd3JhcHBlciBvdmVy
IEhpdFRlc3RSZXN1bHQuIEl0IGNvbnRhaW5zCi0gICAgICAgIGNvbnRleHQgaW5mb3JtYXRpb24g
YWJvdXQgYSBwb2ludCBpbiB0aGUgd2ViIHBhZ2UuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGRlZmluZXMuaDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0aGl0dGVzdHJlc3VsdC5jcHA6IEFkZGVkLgotICAgICAgICAod2Via2l0X2hpdF90ZXN0
X3Jlc3VsdF9maW5hbGl6ZSk6Ci0gICAgICAgICh3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2dldF9w
cm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X3NldF9wcm9wZXJ0eSk6
Ci0gICAgICAgICh3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2NsYXNzX2luaXQpOgotICAgICAgICAo
d2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0aGl0
dGVzdHJlc3VsdC5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OmtpdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUu
aDoKLQotMjAwOS0wOS0xNCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jvbmhh
QGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXogYW5kIEph
biBBbG9uem8uCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI5MTM0Ci0gICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gYWNjZXNzIHN1YiByZXNvdXJjZXMK
LQotICAgICAgICBJbXBsZW1lbnQgZ2V0dGluZyBzdWJyZXNvdXJjZXMsIGFuZCBpbXByb3ZlIHRl
c3Rpbmcgb2YKLSAgICAgICAgbWFpbiwgYW5kIHN1YiByZXNvdXJjZXMgbG9hZGluZy4KLQotMjAw
OS0wOS0xMSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgSmFuIEFsb256by4KLQotICAgICAgICBbR1RLXSBVc2UgZ3RrX3N0eWxlX3NldF9iYWNr
Z3JvdW5kIGluc3RlYWQgb2YgZ2RrX3dpbmRvd19zZXRfYmFja2dyb3VuZAotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkxNzMKLQotICAgICAgICBVc2Ug
Z3RrX3N0eWxlX3NldF9iYWNrZ3JvdW5kIGluc3RlYWQgb2YgZ2RrX3dpbmRvd19zZXRfYmFja2dy
b3VuZCwKLSAgICAgICAgYXMgc3VnZ2VzdGVkIGJ5IHRoZSBkb2N1bWVudGF0aW9uLiBBbHNvLCB1
c2UgR1RLX1NUQVRFX05PUk1BTAotICAgICAgICBkaXJlY3RseSwgc2luY2UgdGhhdCdzIHRoZSBk
ZWZhdWx0IHN0YXRlIG9mIGEgR3RrV2lkZ2V0LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3JlYWxpemUpOgotCi0yMDA5LTA5
LTA5ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIFtHVEtdIER1bXBSZW5kZXJUcmVl
IG5lZWRzIGV2ZW50U2VuZGVyIG9iamVjdCBhbmQgaW1wbGVtZW50YXRpb24KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1OTkwCi0KLSAgICAgICAgQ3Jl
YXRlcyBhIGZ1bmN0aW9uIHRoYXQgaXMgYWNjZXNzaWJsZSBmcm9tIHRoZSBEdW1wUmVuZGVyVHJl
ZSB0b29sCi0gICAgICAgIGFuZCBjYWxscyB0aGUgbGF5b3V0IG1ldGhvZCBvbiB0aGUgZnJhbWUg
dmlldy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbGF5b3V0
KToKLQotMjAwOS0wOS0wOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jvbmhh
QGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MDQ0Ci0gICAg
ICAgIFtHVEtdIFNob3VsZCB1cGRhdGUgc3VnZ2VzdGVkLWZpbGVuYW1lIHdoZW4gdGhlIHJlc3Bv
bnNlIGlzIHJlY2VpdmVkCi0KLSAgICAgICAgU2V0IHN1Z2dlc3RlZCBmaWxlbmFtZSBhbHNvIHdo
ZW4gdGhlIHJlc3BvbnNlIG9ubHkgY29tZXMgYWZ0ZXIgdGhlCi0gICAgICAgIGRvd25sb2FkIGhh
cyBzdGFydGVkLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAg
ICAgKHdlYmtpdF9kb3dubG9hZF9zZXRfcmVzcG9uc2UpOgotICAgICAgICAod2Via2l0X2Rvd25s
b2FkX3NldF9zdWdnZXN0ZWRfZmlsZW5hbWUpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2FkKToKLQot
MjAwOS0wOS0wOCAgUHJpaXQgTGFlcyAgPHBsYWVzQHBsYWVzLm9yZz4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgRml4IHVwIGVycm9uZXVzICdTaW5j
ZTogQHZlcnNpb25AJyB0YWdzIGluIGRvY3VtZW50YXRpb24uCi0KLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2ViZGF0YXNvdXJjZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnJlc291
cmNlLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfcmVzb3VyY2VfY2xhc3NfaW5pdCk6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJf
c2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5jcHA6Ci0KLTIwMDktMDktMDcgIEd1c3Rhdm8gTm9y
b25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAg
TGluayBuZXcgb2JqZWN0cyBkb2N1bWVudHMgaW4gdGhlIG1haW4gZG9jdW1lbnQuCi0KLSAgICAg
ICAgKiBkb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWw6Ci0KLTIwMDktMDktMDcgIEd1c3Rhdm8gTm9y
b25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAg
RG9jdW1lbnRhdGlvbiBjb250cm9sIGZpbGVzIHVwZGF0ZWQgZm9yIDEuMS4xNC4KLQotICAgICAg
ICAqIGRvY3Mvd2Via2l0Z3RrLWRvY3Muc2dtbDoKLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1z
ZWN0aW9ucy50eHQ6Ci0KLTIwMDktMDktMDcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rh
dm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgV2hhdCdzIG5ldyBmb3IgMS4x
LjE0LgotCi0gICAgICAgICogTkVXUzoKLQotMjAwOS0wOS0wNyAgR3VzdGF2byBOb3JvbmhhIFNp
bHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSdWJiZXIt
c3RhbXBlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgVXNlIGdfcmV0dXJuX2lmX2ZhaWwgdG8g
Y2hlY2sgZm9yIHRoZSBTb3VwVVJJIGNyZWF0aW9uLCBpbnN0ZWFkIG9mCi0gICAgICAgIHByaW50
aW5nIGEgY3VzdG9tIHdhcm5pbmcuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3Jl
cXVlc3QuY3BwOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfdXJpKToKLQot
MjAwOS0wOS0wNyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxh
Ym9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2ODU0Ci0gICAgICAgIFtH
VEtdIE5lZWRzIEFQSSB0byBhbGxvdyBtb3JlIGNvbnRyb2wgb3ZlciBvdXRnb2luZyByZXF1ZXN0
cwotCi0gICAgICAgIE1hcCB0aGUgd2lsbFNlbmRSZXF1ZXN0IGRlbGVnYXRlIHRvIHRoZSAncmVz
b3VyY2UtcmVxdWVzdC1zdGFydGluZycKLSAgICAgICAgc2lnbmFsLCBhbGxvd2luZyBtb3JlIGNv
bnRyb2wgb2YgdGhlIHJlc291cmNlcyB0aGF0IGFyZSBmZXRjaGVkLgotCi0gICAgICAgIE1hcHBp
bmcgd2lsbFNlbmRSZXF1ZXN0IHByb3Blcmx5IHJlcXVpcmVzIGFuIGFwcHJvcHJpYXRlIFJlc3Bv
bnNlCi0gICAgICAgIG9iamVjdCwgc28gd2UgYXJlIGludHJvZHVjaW5nIFdlYktpdE5ldHdvcmtS
ZXNwb25zZSwgd2hpY2ggd29ya3MgaW4gYQotICAgICAgICB3YXkgc2ltaWxhciB0byBXZWJLaXRO
ZXR3b3JrUmVxdWVzdC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
V2lsbFNlbmRSZXF1ZXN0KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmFz
c2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKToKLSAgICAgICAgKiB0
ZXN0cy90ZXN0bmV0d29ya3Jlc3BvbnNlLmM6IEFkZGVkLgotICAgICAgICAodGVzdF9uZXR3b3Jr
X3Jlc3BvbnNlX2NyZWF0ZV9kZXN0cm95KToKLSAgICAgICAgKHRlc3RfbmV0d29ya19yZXNwb25z
ZV9wcm9wZXJ0aWVzKToKLSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJy
ZXNvdXJjZS5jOgotICAgICAgICAocmVzb3VyY2VfcmVxdWVzdF9zdGFydGluZ19jYik6Ci0gICAg
ICAgIChsb2FkX2ZpbmlzaGVkX2NiKToKLSAgICAgICAgKHRlc3Rfd2ViX3Jlc291cmNlX2xvYWRp
bmcpOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdC5oOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXRkZWZpbmVzLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdv
cmtyZXF1ZXN0LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlLmNw
cDogQWRkZWQuCi0gICAgICAgICh3ZWJraXRfbmV0d29ya19yZXNwb25zZV9kaXNwb3NlKToKLSAg
ICAgICAgKHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2ZpbmFsaXplKToKLSAgICAgICAgKHdlYmtp
dF9uZXR3b3JrX3Jlc3BvbnNlX2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfbmV0d29y
a19yZXNwb25zZV9zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVzcG9u
c2VfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfbmV0d29ya19yZXNwb25zZV9pbml0KToK
LSAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX25ld193aXRoX2NvcmVfcmVzcG9uc2Up
OgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVzcG9uc2VfbmV3KToKLSAgICAgICAgKHdlYmtp
dF9uZXR3b3JrX3Jlc3BvbnNlX3NldF91cmkpOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVz
cG9uc2VfZ2V0X3VyaSk6Ci0gICAgICAgICh3ZWJraXRfbmV0d29ya19yZXNwb25zZV9nZXRfbWVz
c2FnZSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5oOiBBZGRlZC4K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgIChXVEY6OlNvdXBN
ZXNzYWdlKToKLSAgICAgICAgKFdURjo6V2ViS2l0TmV0d29ya1JlcXVlc3QpOgotICAgICAgICAo
V1RGOjpXZWJLaXROZXR3b3JrUmVzcG9uc2UpOgotICAgICAgICAoV1RGOjpXZWJLaXRXZWJSZXNv
dXJjZSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2VicmVzb3VyY2UuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9yZXNvdXJjZV9j
bGVhbnVwKToKLSAgICAgICAgKHdlYmtpdF93ZWJfcmVzb3VyY2VfZmluYWxpemUpOgotICAgICAg
ICAod2Via2l0X3dlYl9yZXNvdXJjZV9jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJf
cmVzb3VyY2Vfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0
X3VyaSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Vi
a2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtpdG1hcnNoYWwubGlzdDoK
LQotMjAwOS0wOS0wNyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgotCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODk3OQotICAgICAg
ICBbR1RLXSBNaXNjIGltcHJvdm1lbnRzIHRvIE5ldHdvcmtSZXF1ZXN0Ci0KLSAgICAgICAgVW5y
ZWYgbWVzc2FnZSBpbiBkaXNwb3NlLCBhcyBpdCBzaG91bGQgYmUsIG5vdCBpbiBmaW5hbGl6ZS4K
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHA6Ci0gICAgICAgICh3
ZWJraXRfbmV0d29ya19yZXF1ZXN0X2Rpc3Bvc2UpOgotICAgICAgICAod2Via2l0X25ldHdvcmtf
cmVxdWVzdF9maW5hbGl6ZSk6Ci0gICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NsYXNz
X2luaXQpOgotCi0yMDA5LTA5LTA3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5v
cm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8u
Ci0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4OTc5
Ci0gICAgICAgIFtHVEtdIE1pc2MgaW1wcm92bWVudHMgdG8gTmV0d29ya1JlcXVlc3QKLQotICAg
ICAgICBCcmluZyBkb2N1bWVudGF0aW9uIHVwLXRvLWRhdGUgd2l0aCByZWFsaXR5IHJlZ2FyZGlu
ZyBOZXR3b3JrUmVxdWVzdC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVz
dC5jcHA6Ci0KLTIwMDktMDktMDcgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBNYWtlIHRoZSBh
dXRoIGRpYWxvZyB1c2FibGUgd2hlbiBsaWJzb3VwIGRvZXMgbm90IGhhdmUgYQotICAgICAgICBT
b3VwUGFzc3dvcmRNYW5hZ2VyLCBzaW5jZSBpdCBtaWdodCBnbyBhd2F5IGluIHRoZSBuZXh0Ci0g
ICAgICAgIGRldmVsb3BtZW50IGN5Y2xlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHNvdXBh
dXRoZGlhbG9nLmM6Ci0gICAgICAgIChyZXNwb25zZV9jYWxsYmFjayk6Ci0gICAgICAgIChzZXNz
aW9uX2Nhbl9zYXZlX3Bhc3N3b3Jkcyk6Ci0gICAgICAgIChzZXNzaW9uX2F1dGhlbnRpY2F0ZSk6
Ci0yMDA5LTA5LTA2ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgVXBkYXRlIHRoZSB1bml0ZXN0
cyB0byBsYXRlc3QgY2hhbmdlcyB3cnQgc2Nyb2xsYmFyIHBvbGljeS4KLQotICAgICAgICAqIHRl
c3RzL3Rlc3R3aW5kb3cuYzoKLSAgICAgICAgKHRlc3Rfd2Via2l0X3dpbmRvd19zY3JvbGxiYXJf
cG9saWN5KToKLQotMjAwOS0wOS0wNiAgTWFydGluIFJvYmluc29uICA8bWFydGluLmphbWVzLnJv
Ymluc29uQGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEs
IEphbiBBbG9uem8gYW5kIFhhbiBMb3Blei4KLQotICAgICAgICBbR3RrXSBFeHBvc2UgYSBkYXRh
YmFzZSBBUEkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI3ODk5Ci0KLSAgICAgICAgRXhwb3NlIGFuIEhUTUw1IGRhdGFiYXNlIEFQSSBmb3IgR1RLKy4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cHJpbnQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXQu
aDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZGVmaW5lcy5oOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXRwcml2YXRlLmNwcDoKLSAgICAgICAgKHdlYmtpdF9pbml0KToKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdp
bi5jcHA6IEFkZGVkLgotICAgICAgICAod2Via2l0X3NlY3VyaXR5X29yaWdpbl9maW5hbGl6ZSk6
Ci0gICAgICAgICh3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2Rpc3Bvc2UpOgotICAgICAgICAod2Vi
a2l0X3NlY3VyaXR5X29yaWdpbl9zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3NlY3Vy
aXR5X29yaWdpbl9nZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3NlY3VyaXR5X29yaWdp
bnMpOgotICAgICAgICAod2Via2l0X3NlY3VyaXR5X29yaWdpbl9jbGFzc19pbml0KToKLSAgICAg
ICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5faW5pdCk6Ci0gICAgICAgICh3ZWJraXRfc2VjdXJp
dHlfb3JpZ2luX2dldF9wcm90b2NvbCk6Ci0gICAgICAgICh3ZWJraXRfc2VjdXJpdHlfb3JpZ2lu
X2dldF9ob3N0KToKLSAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3BvcnQpOgot
ICAgICAgICAod2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfd2ViX2RhdGFiYXNlX3VzYWdlKToK
LSAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3dlYl9kYXRhYmFzZV9xdW90YSk6
Ci0gICAgICAgICh3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX3NldF93ZWJfZGF0YWJhc2VfcXVvdGEp
OgotICAgICAgICAod2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfYWxsX3dlYl9kYXRhYmFzZXMp
OgotICAgICAgICAoV2ViS2l0OjpraXQpOgotICAgICAgICAoV2ViS2l0Ojpjb3JlKToKLSAgICAg
ICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3dlYl9kYXRhYmFzZSk6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJkYXRhYmFzZS5jcHA6IEFkZGVkLgotICAgICAgICAod2Via2l0X3dlYl9kYXRhYmFz
ZV9maW5hbGl6ZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2RhdGFiYXNlX2Rpc3Bvc2UpOgotICAg
ICAgICAod2Via2l0X3dlYl9kYXRhYmFzZV9zZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0
X3dlYl9kYXRhYmFzZV9nZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9kYXRhYmFz
ZV9jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfZGF0YWJhc2VfaW5pdCk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX2RhdGFiYXNlX3NldF9zZWN1cml0eV9vcmlnaW4pOgotICAgICAgICAo
d2Via2l0X3dlYl9kYXRhYmFzZV9zZXRfbmFtZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2RhdGFi
YXNlX2dldF9zZWN1cml0eV9vcmlnaW4pOgotICAgICAgICAod2Via2l0X3dlYl9kYXRhYmFzZV9n
ZXRfbmFtZSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2RhdGFiYXNlX2dldF9kaXNwbGF5X25hbWUp
OgotICAgICAgICAod2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfZXhwZWN0ZWRfc2l6ZSk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX2RhdGFiYXNlX2dldF9zaXplKToKLSAgICAgICAgKHdlYmtpdF93ZWJf
ZGF0YWJhc2VfZ2V0X2ZpbGVuYW1lKToKLSAgICAgICAgKHdlYmtpdF93ZWJfZGF0YWJhc2VfcmVt
b3ZlKToKLSAgICAgICAgKHdlYmtpdF9yZW1vdmVfYWxsX3dlYl9kYXRhYmFzZXMpOgotICAgICAg
ICAod2Via2l0X2dldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgpOgotICAgICAgICAod2Vi
a2l0X3NldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgpOgotICAgICAgICAod2Via2l0X2dl
dF9kZWZhdWx0X3dlYl9kYXRhYmFzZV9xdW90YSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
YmRhdGFiYXNlLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6
Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX25ldyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2Zy
YW1lX2dldF9mb2N1c2VkX2FjY2Vzc2libGVfZWxlbWVudCk6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X2ZyYW1lX2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kpOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJmcmFtZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLQotMjAwOS0wOS0wMyAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IGVyaWNA
d2Via2l0Lm9yZy4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjQ2OTYKLQotICAgICAgICBTdHViIGltcGxlbWVudGF0aW9ucyBvZiBtaXhlZCBjb250
ZW50IG1ldGhvZHMgb2YgRnJhbWVMb2FkZXJDbGllbnQuIAotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCk6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnQpOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMDktMDktMDMgIFhhbiBM
b3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8g
Tm9yb25oYS4KLQotICAgICAgICBBY2Nlc3MgcHJpdmF0ZSBtZW1iZXIgdmFyaWFibGVzIGRpcmVj
dGx5IGluc3RlYWQgb2YgdXNpbmcgdGhlCi0gICAgICAgIGFjY2Vzc29yLgotCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6d2luZG93T2JqZWN0Q2xlYXJlZCk6Ci0KLTIwMDktMDktMDMgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFJlbW92ZSBib2d1cyBhc3Nl
cnRzIHRoYXQgYnJlYWsgRGVidWcgYnVpbGRzIGF0IHJ1bnRpbWUuCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9Eb2N1bWVudExvYWRlckd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkRvY3Vt
ZW50TG9hZGVyOjpkZXRhY2hGcm9tRnJhbWUpOgotICAgICAgICAoV2ViS2l0OjpEb2N1bWVudExv
YWRlcjo6ZGVjcmVhc2VMb2FkQ291bnQpOgotCi0yMDA5LTA5LTAyICBKYW4gTWljaGFlbCBBbG9u
em8gIDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Bl
eiBhbmQgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgICBbR3RrXSBJbXBsZW1lbnQgYSBXZWJE
YXRhU291cmNlIGZvciB0aGUgZ3RrIHBvcnQKLSAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc1OAotCi0gICAgICAgIEFkZCBkYXRhIHNvdXJjZSBBUEkg
Z2V0dGVycyB0byBXZWJLaXRXZWJGcmFtZS4KLSAgICAgICAgQWxzbyBhZGQgV2ViS2l0V2ViRGF0
YVNvdXJjZSB1bml0IHRlc3QuCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViZGF0YXNvdXJjZS5j
OiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgotCi0yMDA5LTA5LTAyICBKYW4gTWljaGFlbCBBbG9u
em8gIDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Bl
eiBhbmQgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIFtHdGtdIEltcGxlbWVudCBhIFdlYkRh
dGFTb3VyY2UgZm9yIHRoZSBndGsgcG9ydAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3NTgKLQotICAgICAgICBTdWJjbGFzcyBEb2N1bWVudExvYWRl
ciBmb3IgR3RrIGFuZCBpbXBsZW1lbnQgaXQgdW5kZXIgdGhlIFdlYktpdAotICAgICAgICBuYW1l
c3BhY2UuIEFkZCBXZWJLaXRXZWJEYXRhU291cmNlIGltcGxlbWVudGF0aW9uIHRoYXQgY2xvc2Vs
eQotICAgICAgICBmb2xsb3dzIHRoZSBtYWMgaW1wbGVtZW50YXRpb24gb2YgdGhlIEFQSS4KLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RvY3VtZW50TG9hZGVyR3RrLmNwcDogQWRkZWQuCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRG9jdW1lbnRMb2FkZXJHdGsuaDogQWRkZWQuCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwOiBBZGRlZC4KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViZGF0YXNvdXJjZS5oOiBBZGRlZC4KLQotMjAwOS0wOS0wMSAgR3VzdGF2
byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgQXZvaWQgY2F1c2luZyB1bmV4
cGVjdGVkIGlzc3VlcyB3aXRoIHdpbmRvdyBzaXppbmcgd2hlbiBzaXRlcwotICAgICAgICBkaXNh
YmxlIHNjcm9sbGJhcnMgY29tcGxldGVseS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2Nyb2xs
YmFyc01vZGVEaWRDaGFuZ2UpOgotICAgICAgICAqIHRlc3RzL3Rlc3R3aW5kb3cuYzoKLSAgICAg
ICAgKHRlc3Rfd2Via2l0X3dpbmRvd19zY3JvbGxiYXJfcG9saWN5KToKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9jbGFzc19p
bml0KToKLQotMjAwOS0wOS0wMSAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0
Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXogYW5kIEd1c3Rhdm8gTm9yb25o
YS4KLQotICAgICAgICBbR3RrXSBJbXBsZW1lbnQgYSBXZWJEYXRhU291cmNlIGZvciB0aGUgZ3Rr
IHBvcnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
NzU4Ci0KLSAgICAgICAgSW1wbGVtZW50IFdlYktpdFdlYlJlc291cmNlIGZvciB0aGUgcmVzb3Vy
Y2UtcmVsYXRlZCBBUEkgZm9yCi0gICAgICAgIFdlYktpdFdlYkRhdGFTb3VyY2UuCi0KLSAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKLQotMjAwOS0wOS0wMSAgWGFuIExvcGV6ICA8eGxvcGV6QGln
YWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSmFuIEFsb256by4KLQotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4NDIKLSAgICAgICAgW0dU
S10gRG8gbm90IGVtaXQgZXh0cmEgRklOSVNIRUQgbG9hZC1zdGF0dXMgc2lnbmFscwotCi0gICAg
ICAgIERvIG5vdCBlbWl0IEZJTklTSEVEIGxvYWQtc3RhdHVzIHNpZ25hbHMgb24gb3VyIG93biwg
anVzdCByZWx5IG9uCi0gICAgICAgIFdlYkNvcmUgZm9yIHRoYXQuIEF2b2lkcyBlbWl0dGluZyBG
SU5JU0hFRCBzZXZlcmFsIHRpbWVzIHdoZW4gd2UKLSAgICAgICAgZmFpbCB0byBsb2FkIGEgVVJJ
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlz
aW9uYWxMb2FkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbExvYWQpOgotICAgICAgICAqIHRlc3RzL3Rlc3Rsb2FkaW5nLmM6Ci0gICAgICAgICh3
ZWJfbG9hZGluZ19maXh0dXJlX3NldHVwKToKLSAgICAgICAgKHdlYl9sb2FkaW5nX2ZpeHR1cmVf
dGVhcmRvd24pOgotICAgICAgICAobG9hZF9maW5pc2hlZF9jYik6Ci0gICAgICAgIChzdGF0dXNf
Y2hhbmdlZF9jYik6Ci0gICAgICAgICh0ZXN0X2xvYWRpbmdfc3RhdHVzKToKLSAgICAgICAgKGxv
YWRfZXJyb3Jfc3RhdHVzX2NoYW5nZWRfY2IpOgotICAgICAgICAobG9hZF9lcnJvcl9jYik6Ci0g
ICAgICAgICh0ZXN0X2xvYWRpbmdfZXJyb3IpOgotICAgICAgICAobWFpbik6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmZyYW1lLmg6Ci0KLTIwMDktMDgtMzEgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg0NjYKLSAgICAgICAgV2hlbiBkb3dubG9hZGluZyBhIGZp
bGUsIHR3byBHRVQgcmVxdWVzdHMgYXJlIHNlbnQgdG8gdGhlIEhUVFAgc2VydmVyCi0KLSAgICAg
ICAgU3VwcG9ydCByZXVzaW5nIGEgY29ubmVjdGlvbiB0aGF0IGlzIGFscmVhZHkgb25nb2luZywg
aW5zdGVhZCBvZgotICAgICAgICBjYW5jZWxsaW5nIHRoZSBjb25uZWN0aW9uIGFuZCBjcmVhdGlu
ZyBhbm90aGVyLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZG93bmxvYWQpOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0gICAgICAgICh3ZWJraXRfZG93
bmxvYWRfbmV3X3dpdGhfaGFuZGxlKToKLSAgICAgICAgKHdlYmtpdF9kb3dubG9hZF9zdGFydCk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVxdWVzdF9kb3dubG9h
ZCk6Ci0KLTIwMDktMDgtMzEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+Ci0K
LSAgICAgICAgR3RrIGJ1aWxkIGZpeC4KLQotICAgICAgICBUaGlzIGlzIGFsc28gYSBiZWhhdmlv
ciBmaXgsIGF0IGxlYXN0IG9uIGRlYnVnIGJ1aWxkcyAtIGEgY2FsbGVyIG9mCi0gICAgICAgIHdl
YmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2RhdGEoKSBjb3VsZCBwYXNzIGFuIFVSTCB0
aGF0IGNvdWxkIGNhdXNlIGFuIGFzc2VydGlvbgotICAgICAgICBmYWlsdXJlIGluIEtVUkwuCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwOiAod2Via2l0X3dlYl9o
aXN0b3J5X2l0ZW1fbmV3X3dpdGhfZGF0YSk6IFBhc3MgYSBudWxsCi0gICAgICAgIEtVUkwgYXMg
YmFzZSB0byBwYXJzZSBwcm9wZXJseS4KLQotMjAwOS0wOC0yOCAgR3VzdGF2byBOb3JvbmhhIFNp
bHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI1ODg5Ci0gICAgICAgIFtHVEtdIHNjcm9sbGJhciBwb2xpY3kgZm9y
IG1haW4gZnJhbWUgaXMgbm90IGltcGxlbWVudGFibGUKLQotICAgICAgICBBZGQgcHJvcGVydGll
cyBhbmQgYSBzaWduYWwgdG8gcmVwb3J0IHNjcm9sbGJhciBwb2xpY3kgY2hhbmdlcyB0bwotICAg
ICAgICBjbGllbnQgY29kZSwgYW5kIGEgZGVmYXVsdCBoYW5kbGVyIHRoYXQgZG9lcyB0aGUgcmln
aHQgdGhpbmcgd2hlbgotICAgICAgICB1c2luZyBHdGtTY3JvbGxlZFdpbmRvdy4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudDo6c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UpOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJm
cmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF9wcm9wZXJ0eSk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl9m
cmFtZV9nZXRfaG9yaXpvbnRhbF9zY3JvbGxiYXJfcG9saWN5KToKLSAgICAgICAgKHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3kpOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJmcmFtZS5oOgotICAgICAgICAqIHRlc3RzL3Rlc3R3aW5kb3cuYzogQWRkZWQu
Ci0gICAgICAgIChsb2FkX2ZpbmlzaGVkX2NiKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X3dpbmRv
d19zY3JvbGxiYXJfcG9saWN5KToKLSAgICAgICAgKG1haW4pOgotCi0yMDA5LTA4LTI4ICBKYW4g
TWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEd1c3Rhdm8gTm9yb25oYSBhbmQgWGFuIExvcGV6LgotCi0gICAgICAgIFtHdGtdIEFkZCB2
aWV3IHNvdXJjZSBtb2RlIEFQSQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjg4MDUKLQotICAgICAgICBJbXBsZW1lbnQgc2V0dGVyIGFuZCBnZXR0ZXIg
Zm9yICJ2aWV3IHNvdXJjZSIgbW9kZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXRfdmlld19zb3VyY2VfbW9kZSk6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2dldF92aWV3X3NvdXJjZV9tb2RlKToKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgotCi0yMDA5LTA4LTI2ICBYYW4gTG9wZXogIDx4bG9w
ZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0K
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4NzM4Ci0g
ICAgICAgIEV4cG9zZSB1bmRvL3JlZG8gZnVuY3Rpb25hbGl0eSBpbiBXZWJLaXRXZWJWaWV3Ci0K
LSAgICAgICAgRXhwb3NlIHVuZG8vcmVkbyBmdW5jdGlvbmFsaXR5IGluIFdlYktpdFdlYlZpZXcs
IGtlZXBpbmcgdGhlCi0gICAgICAgIGRlZmF1bHQgYmluZGluZ3MgYXMgdGhleSB3ZXJlLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfcmVhbF91bmRvKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19yZWFs
X3JlZG8pOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2Nhbl91bmRvKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191bmRv
KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jYW5fcmVkbyk6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfcmVkbyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDoKLQotMjAw
OS0wOC0yNCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9y
YS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgTmV3
cyBhYm91dCB0aGUgMS4xLjEzIHJlbGVhc2UuCi0KLSAgICAgICAgKiBORVdTOgotCi0yMDA5LTA4
LTI0ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNv
LnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBBZGQgbmV3
IHN5bWJvbHMsIGFuZCBhbiBpbmRleCBvZiBuZXcgc3ltYm9scyBmb3IgdGhlIDEuMS4xMwotICAg
ICAgICByZWxlYXNlLgotCi0gICAgICAgICogZG9jcy93ZWJraXRndGstZG9jcy5zZ21sOgotICAg
ICAgICAqIGRvY3Mvd2Via2l0Z3RrLXNlY3Rpb25zLnR4dDoKLQotMjAwOS0wOC0yMyAgWGFuIExv
cGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBO
b3JvbmhhLgotCi0gICAgICAgIEZpeCBhIGNvdXBsZSBvZiB0eXBvcy4KLQotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdz
X2NsYXNzX2luaXQpOgotCi0yMDA5LTA4LTIzICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgVXBk
YXRlIGVkaXRpbmctYmVoYXZpb3IgcHJvcGVydHkgaGVyZSB0b28uCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nf
bm90aWZ5KToKLQotMjAwOS0wOC0yMyAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Vi
a2l0Lm9yZz4KLQotICAgICAgICBSdWJiZXJzdGFtcGVkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQot
ICAgICAgICBGaXggcmVncmVzc2lvbnMgaW50cm9kdWNlZCBieSBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC80NzY5MC4KLQotICAgICAgICBVcGRhdGUgdGhlIHNldHRpbmcgd2hlbmV2
ZXIgdGhlIHByb3BlcnR5IGdldHMgc2V0LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6Ci0KLTIw
MDktMDgtMjMgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHdGtdIEFQSSBmb3IgZGlz
YWJsaW5nIGxvY2FsIGZpbGUgYWNjZXNzIHRvIHdlYiBVUkxzCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODY2MwotCi0gICAgICAgIEFkZCBhIHNldHRp
bmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgZmlsZSBhY2Nlc3MgdG8gd2ViIFVSTHMuIEl0J3MKLSAg
ICAgICAgZGlzYWJsZWQgYnkgZGVmYXVsdCBmb3Igc2VjdXJpdHkgcmVhc29ucy4KLQotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Nl
dHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJv
cGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAg
ICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jb3B5KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKToK
LQotMjAwOS0wOC0yMiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgSmFuIEFsb256by4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjgxNTQKLSAgICAgICAgY2xpY2tpbmcgYmVsb3cgZW5kIG9mIHRl
eHQgaW4gYSB0ZXh0YXJlYSBtb3ZlcyBjdXJzb3IgdG8gd3JvbmcgcG9zaXRpb24KLQotICAgICAg
ICBFeHBvc2UgdGhlIEVkaXRpbmdCZWhhdmlvciBzZXR0aW5nIGFuZCBzZXQgaXQgYnkgZGVmYXVs
dCB0byBNYWMsCi0gICAgICAgIHNpbmNlIHRoYXQgd2hhdCBtYXRjaGVzIHRoZSBHVEsrIGRlZmF1
bHQgYmVoYXZpb3IuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OmNvcmUpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3Nl
dF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotCi0yMDA5LTA4LTIw
ICBBYXJvbiBCb29kbWFuICA8YWFAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIEhvcGVmdWxseSB0
aGUgbGFzdCBzcGVjdWxhdGl2ZSBidWlsZCBmb3IgZ3RrLgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHByaXZhdGUuY3BwOgotICAgICAgICAod2Via2l0X3doaXRlX2xpc3RfYWNjZXNzX2Zyb21f
b3JpZ2luKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotCi0yMDA5LTA4LTIw
ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KLQotICAgICAgICBBbm90aGVyIHNw
ZWN1bGF0aXZlIGJ1aWxkIGZvciBndGsuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0
ZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2hpdGVfbGlzdF9hY2Nlc3NfdG9fb3JpZ2luKToKLQot
MjAwOS0wOC0yMCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAg
U3BlY3VsYXRpdmUgYnVpbGQgZm9yIGd0ay4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2
YXRlLmNwcDoKLSAgICAgICAgKHdlYmtpdF93aGl0ZV9saXN0X2FjY2Vzc190b19vcmlnaW4pOgot
Ci0yMDA5LTA4LTE5ICBBYXJvbiBCb29kbWFuICA8YWFAY2hyb21pdW0ub3JnPgotCi0gICAgICAg
IEZpeCBidWlsZCBicmVhay4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6ICJX
RUJLSVQgQVBJIiAtPiAiV0VCS0lUX0FQSSIKLQotMjAwOS0wOC0xOSAgQWFyb24gQm9vZG1hbiAg
PGFhQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KLQot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ4NTM6IFBy
b3ZpZGUgYSB3YXkgZm9yIFdlYktpdCBjbGllbnRzIHRvCi0gICAgICAgIHNwZWNpZnkgYSBtb3Jl
IGdyYW51bGFyIHBvbGljeSBmb3IgY3Jvc3Mtb3JpZ2luIFhIUiBhY2Nlc3MuCi0KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2hpdGVfbGlzdF9h
Y2Nlc3NfdG9fb3JpZ2luKTogQWRkIEFQSSB0byBtYW5pcHVsYXRlIG9yaWdpbiBhY2Nlc3Mgd2hp
dGVsaXN0cy4KLSAgICAgICAgKHdlYmtpdF9yZXNldF9vcmlnaW5fYWNjZXNzX3doaXRlX2xpc3Rz
KTogRGl0dG8uCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDogRGl0dG8uCi0KLTIw
MDktMDgtMTggIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJ1YmJl
ci1zdGFtcGVkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBSZW1vdmUgYW4gdW5uZWVk
ZWQgaW5jbHVkZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3Bw
OgotCi0yMDA5LTA4LTE4ICBGdW1pdG9zaGkgVWthaSAgPHVrYWlAY2hyb21pdW0ub3JnPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODQ0MwotICAgICAgICBGaXggYnVpbGQgYnJlYWsg
d2l0aCBndGsgb2xkZXIgdGhhbiAyLjE0LgotCi0gICAgICAgIFdlYktpdCBndGsgcG9ydCByZXF1
aXJlcyBndGsgMi4xMCBvciBsYXRlciwgYnV0IERyYWdDbGllbnRHdGsuY3BwCi0gICAgICAgIHVz
ZXMgZ3RrX3dpZGdldF9nZXRfd2luZG93IHRoYXQgaXMgaW50cm9kdWNlZCBpbiAyLjE0LgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHA6Ci0gICAgICAgICBkZWZp
bmUgZ3RrX3dpZGdldF9nZXRfd2luZG93IGZvciBndGsgb2xkZXIgdGhhbiAyLjE0LgotCi0yMDA5
LTA4LTE4ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgotCi0gICAgICAgIFtHdGtdIGNyYXNoIHdoZW4g
Y2xvc2luZyBwYWdlIGZyb20gamF2YXNjcmlwdAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc0MzkKLQotICAgICAgICBEbyBub3QgdW5yZWYgdGhlIFdl
YlZpZXcgaW4gQ2hyb21lQ2xpZW50R3RrOjpjbG9zZVdpbmRvd1Nvb24KLSAgICAgICAgYmVjYXVz
ZSAoMSkgYSBjcmVhdGUtd2ViLXZpZXcgaGFuZGxlciBjYW4gcmV0dXJuIGEgTlVMTCBXZWJWaWV3
LAotICAgICAgICAoMikgdGhlIGNyZWF0ZWQgV2ViVmlldyBpcyBvd25lZCBieSBpdHMgY29udGFp
bmluZyB3aWRnZXQsIGFuZCAoMykKLSAgICAgICAgY2xpZW50cyBtYXkgbm90IGhhbmRsZSB0aGUg
Y2xvc2Utd2ViLXZpZXcgc2lnbmFsIHNvIHRoaXMgYXZvaWRzCi0gICAgICAgIHVucmVmZmluZyBh
IFdlYlZpZXcgbW9yZSB0aGFuIG9uY2UuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNsb3NlV2lu
ZG93U29vbik6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgotCi0yMDA5LTA4LTE4ICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEphbiBBbG9uem8uCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MzYwCi0gICAgICAgIEZyYWdzIG9uIGN1cnJlbnQgcGFnZSBkb24n
dCBnZW5lcmF0ZSAibmF2aWdhdGlvbi1yZXF1ZXN0ZWQiIGV2ZW50cwotCi0gICAgICAgIEZpeCBv
cmRlciBvZiBwYXJhbWV0ZXJzIGZvciB0aGUgY3JlYXRpb24gb2YgU3Vic3RpdHV0ZURhdGEgb2Jq
ZWN0LAotICAgICAgICBzbyB0aGF0IG5vcm1hbCBkYXRhIGxvYWRzIGRvIG5vdCBoYXZlIGFuIHVu
cmVhY2hhYmxlIFVSTC4gQWxzbwotICAgICAgICByZW1vdmUgYSBjb25mdXNpb24gYWJvdXQgdGhl
IHB1cnBvc2Ugb2YgdGhlIGxhc3QgcGFyYW1ldGVyLgotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKToKLQot
MjAwOS0wOC0xOCAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIE5lZWQgdG8gZXh0ZW5kIER1bXBS
ZW5kZXJUcmVlIHRvIGV4cG9zZSBudW1iZXIgb2Ygd29ya2VyIHRocmVhZHMKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjkyCi0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3b3JrZXJzLmNw
cDogQWRkZWQuCi0gICAgICAgICh3ZWJraXRfd29ya2VyX3RocmVhZF9jb3VudCk6Ci0gICAgICAg
IEV4cG9zZWQgV2ViQ29yZTo6V29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudCgpIGZvciB0
aGUgZ3RrIHZlcnNpb24gb2YgRHVtcFJlbmRlclRyZWUuCi0KLTIwMDktMDgtMTggIFhhbiBMb3Bl
eiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9y
b25oYS4KLQotICAgICAgICBGaXggdGhlIEFUSyB1bml0IHRlc3QuCi0KLSAgICAgICAgV2Ugbm93
IHN1cHBvcnQgbGluZSBib3VuZGFyaWVzIGluIHRoZSBnZXRfdGV4dCBmdW5jdGlvbnMsIHNvIHdl
Ci0gICAgICAgIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSB0ZXN0IGhhcyB0aGUgbGF5b3V0IHdlIGV4
cGVjdCBieSBnaXZpbmcgaXQKLSAgICAgICAgZW5vdWdoIHNwYWNlIHRvIGZpdCBpbiBvbmUgbGlu
ZS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKLSAgICAgICAgKHRlc3Rfd2Via2l0X2F0
a19nZXRfdGV4dF9hdF9vZmZzZXQpOgotCi0yMDA5LTA4LTE1ICBaYW4gRG9iZXJzZWsgIDx6YW5k
b2JlcnNla0BnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0g
ICAgICAgIEZpeCBjb21waWxlciB3YXJuaW5ncy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcDoKLSAgICAgICAgKGNsaXBib2FyZF9jb250ZW50c19yZWNlaXZlZCk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZHJhZ19kYXRhX2dldCk6Ci0KLTIwMDktMDgtMTQgIEppYWh1
YSBIdWFuZyAgPGpodWFuZ2ppYWh1YUBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
SmFuIEFsb256by4KLQotICAgICAgICBbZ3RrXSBQYXN0ZWJvYXJkL0d0a0NsaXBib2FyZCBjYW4n
dCBoYW5kbGUgdGhlICJ0ZXh0L2h0bWwiIHRhcmdldC4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MDI4Ci0KLSAgICAgICAgQWRkIGEgZnVuY3Rpb24g
aW4gV2ViS2l0OjpQYXN0ZWJvYXJkSGVscGVyR3RrIHRoYXQgd2lsbCByZXR1cm4gdGhlCi0gICAg
ICAgIHZhbHVlIG9mIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MLAotICAgICAgICBh
bmQgV2ViQ29yZTo6Y2xpcGJvYXJkX2dldF9jb250ZW50c19jYiB3aWxsIHVzZSB0aGF0LgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5jcHA6Ci0gICAgICAg
IChXZWJLaXQ6OlBhc3RlYm9hcmRIZWxwZXJHdGs6OmdldFdlYlZpZXdUYXJnZXRJbmZvSHRtbCk6
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5oOgotCi0yMDA5
LTA4LTE0ICBCZW5qYW1pbiBPdHRlICA8b3R0ZUBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIEZpeCB3ZWJraXRfd2ViX3ZpZXdfc2V0
X2hpZ2hsaWdodF90ZXh0X21hdGNoZXMoKSBzbyB0aGF0IGhpZ2hsaWdodGluZwotICAgICAgICB3
b3JrcyBwcm9wZXJseSBpbiBkb2N1bWVudHMgd2l0aCBmcmFtZXMuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2hpZ2hs
aWdodF90ZXh0X21hdGNoZXMpOgotCi0yMDA5LTA4LTEzICBaYW4gRG9iZXJzZWsgIDx6YW5kb2Jl
cnNla0BnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgot
Ci0gICAgICAgIFtHVEtdIERyYWcgYW5kIGRyb3Agc3VwcG9ydAotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NDIKLQotICAgICAgICBBZGRzIHN1cHBv
cnQgZm9yIGRyYWcgYWN0aW9ucyBpbiBXZWJLaXRXZWJWaWV3IGFuZCBEcmFnQ2xpZW50LgotCi0g
ICAgICAgIERlZmluZXMgYSBzdXBwb3J0IHN0cnVjdHVyZSB0aGF0IGNhbiBob2xkIGFkZGl0aW9u
YWwgZHJhZyBhbmQgZHJvcCBkYXRhLAotICAgICAgICBzdWNoIGFzIHNlbGVjdGlvbiBkYXRhIG9y
IHRhcmdldCBJRHMgKGluZm9zKSBhbmQgY2FuIGJlIHBhc3NlZCB0aHJvdWdoCi0gICAgICAgIGNs
aXBib2FyZCByZXF1ZXN0cy4KLQotICAgICAgICBJbXBsZW1lbnRzIERyYWdDbGllbnQgZnVuY3Rp
b25zIHRoYXQgZ2F0aGVyIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBkcmFnCi0gICAgICAgIGFuZCBz
dGFydCB0aGUgR1RLIGRyYWcuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6RHJhZ0NsaWVudCk6Ci0gICAg
ICAgIChXZWJLaXQ6OkRyYWdDbGllbnQ6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbik6Ci0g
ICAgICAgIChXZWJLaXQ6OkRyYWdDbGllbnQ6OnN0YXJ0RHJhZyk6Ci0gICAgICAgIChXZWJLaXQ6
OkRyYWdDbGllbnQ6OmNyZWF0ZURyYWdJbWFnZUZvckxpbmspOiBBIHNtYWxsIHN0eWxlIGZpeC4K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmg6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZW5k
KToKLSAgICAgICAgKGNsaXBib2FyZF9jb250ZW50c19yZWNlaXZlZCk6IEd0a0NsaXBib2FyZCBj
YWxsYmFjay4KLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX2RhdGFfZ2V0KToKLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOiBBZGQgR1RLIHNlbGVj
dGlvbiB0YXJnZXRzLgotCi0yMDA5LTA4LTEyICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0
YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFVucmV2aWV3ZWQgYnVpbGQg
Zml4LgotCi0gICAgICAgIExhc3QtbWludXRlIGNoYW5nZSBvbiB0aGUgbmV3IHNvdXAgQVBJIHRv
IHVzZSB0aGUga2V5cmluZyB3YXMgbm90Ci0gICAgICAgIHJlZmxlY3RlZCBpbiBvdXIgdXNhZ2Ug
LSB0aGUgZG9jdW1lbnRhdGlvbiBzYXlzIHdlIHNob3VsZCB1c2UKLSAgICAgICAgZ19zbGlzdF9m
cmVlLCBhbmQgc291cF9hdXRoX2ZyZWVfc2F2ZWRfdXNlcnMgZG9lc24ndCBleGlzdC4KLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXRzb3VwYXV0aGRpYWxvZy5jOgotICAgICAgICAoc2Vzc2lvbl9h
dXRoZW50aWNhdGUpOgotCi0yMDA5LTA4LTEyICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgotCi0gICAgICAgIFtHVEtdIFJl
bW92ZSBrZXlyaW5nIG9wdGlvbmFsIGZlYXR1cmVzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODE3MwotCi0gICAgICAgIFJlbW92ZSBrZXlyaW5nIHN1
cHBvcnQgZnJvbSBvdXIgY29kZSBhbmQgcmVseSBvbiBsaWJzb3VwIHRvIHN0b3JlCi0gICAgICAg
IHRoZSBhdXRoZW50aWNhdGlvbiBkYXRhIGlmIHRoZSB1c2VyIHJlcXVlc3RzIHRoYXQgc3VwcG9y
dCBpbiB0aGVpcgotICAgICAgICBhcHBsaWNhdGlvbi9saWJyYXJ5LgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmM6Ci0gICAgICAgIChyZXNwb25zZV9jYWxsYmFjayk6
Ci0gICAgICAgIChzaG93X2F1dGhfZGlhbG9nKToKLSAgICAgICAgKHNlc3Npb25fYXV0aGVudGlj
YXRlKToKLQotMjAwOS0wOC0xMSAgQmVuamFtaW4gT3R0ZSAgPG90dGVAZ25vbWUub3JnPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBXaGVuIGluc3RydWN0ZWQg
dG8gcHJpbnQgYW4gb3V0LW9mLXJhbmdlIHBhZ2UsIHByaW50IGFuIGVtcHR5IHBhZ2UKLSAgICAg
ICAgaW5zdGVhZCBvZiBjcmFzaGluZy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHA6Ci0gICAgICAgIChkcmF3X3BhZ2VfY2FsbGJhY2spOgotCi0yMDA5LTA4LTEwICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KLQotICAgICAgICBHVEsgYnVpbGQgZml4Lgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKHdlYmtpdF9k
b3dubG9hZF9nZXRfc3VnZ2VzdGVkX2ZpbGVuYW1lKToKLQotMjAwOS0wOC0wOCAgWGFuIExvcGV6
ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUm9sbCBvdXQgcjQ2OTI4LCBzaW5jZSBp
dCB3YXNuJ3QgZG9uZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlCi0gICAgICAgIGFncmVlZCBuYW1p
bmcuCi0KLSAgICAgICAgKiBDaGFuZ2VMb2c6Ci0KLSAgICAgICAgUmVtb3ZlIHRoZSBDaGFuZ2VM
b2cgZW50cnksIHNpbmNlIGl0IHdhcyBhZGRlZCBhdCB0aGUgYm90dG9tIG9mCi0gICAgICAgIHRo
ZSBmaWxlLgotCi0gICAgICAgICogZ2RvbS9HZG9tRE9NT2JqZWN0Lmg6IFJlbW92ZWQuCi0gICAg
ICAgICogZ2RvbS9HZG9tRE9NT2JqZWN0UHJpdmF0ZS5oOiBSZW1vdmVkLgotCi0yMDA5LTA4LTA4
ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBbR3RrXSBFbmFibGUgYWNjZXNzaWJpbGl0
eSBpbiBHdGsgRFJUCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTk4OQotCi0gICAgICAgIEFkZCBTUEkgdG8gZ2V0IHRoZSBmb2N1c2VkIGFjY2Vzc2li
bGUgZWxlbWVudCB0byBiZSB1c2VkIGJ5IERSVC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRw
cml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAg
KHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2ZvY3VzZWRfYWNjZXNzaWJsZV9lbGVtZW50KToKLQotMjAw
OS0wNy0zMCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGFwcGNlbGVyYXRvci5jb20+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LCBHdXN0YXZvIE5vcm9uaGEgYW5kIEphbiBB
bG9uem8uCi0KLSAgICAgICAgW0dUS10gbmV3LXdpbmRvdy1wb2xpY3ktZGVjaXNpb24tcmVxdWVz
dGVkIHByb3ZpZGVzIG5vIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0YXJnZXQgZnJhbWUKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzkyCi0KLSAgICAg
ICAgQWRkIGZyYW1lTmFtZSBwcm9wZXJ0eSB0byB0aGUgV2ViS2l0V2ViTmF2aWdhdGlvbiBvYmpl
Y3QuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OmdldE5hdmlnYXRpb25BY3Rpb24pOgotICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VibmF2
aWdhdGlvbmFjdGlvbi5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9u
X2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3Nl
dF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2NsYXNz
X2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfdGFyZ2V0
X2ZyYW1lKToKLSAgICAgICAgKHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fc2V0X3Rhcmdl
dF9mcmFtZSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uaDoK
LQotMjAwOS0wNy0yOSAgS2V2aW4gTWNDdWxsb3VnaCAgPGttY2N1bGxvdWdoQGFwcGxlLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBBZGRlZCBmb3Vu
ZGF0aW9uIHdvcmsgdG8gYWxsb3cgYSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlIGZvciB0aGUgV2Vi
Ci0gICAgICAgIEluc3BlY3Rvci4KLSAKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0
b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6Omluc3Bl
Y3RvcldpbmRvd09iamVjdENsZWFyZWQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEd0ay5oOgotCi0yMDA5LTA3LTI5ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFs
b256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsIGFuZCBY
YW4gTG9wZXouCi0KLSAgICAgICAgW0d0a10gRW5hYmxlIGh0dHAvdGVzdHMvYXBwY2FjaGUgdGVz
dHMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3Njc0
Ci0KLSAgICAgICAgQWRkICdlbmFibGUtb2ZmbGluZS13ZWItYXBwbGljYXRpb24tY2FjaGUnIFdl
YlNldHRpbmcgdG8gZW5hYmxlCi0gICAgICAgIG9yIGRpc2FibGUgdGhlIGFwcGNhY2hlLiBBbHNv
LCBBZGQgYXBwY2FjaGUgU1BJIGZvciBEUlQgdG8gdXNlLgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwOiBBZGRlZC4KLSAgICAgICAgKHdlYmtpdF9hcHBsaWNh
dGlvbl9jYWNoZV9zZXRfbWF4aW11bV9zaXplKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJp
dmF0ZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtp
dHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAg
ICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF93
ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nf
Z2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY29weSk6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X3VwZGF0ZV9zZXR0aW5ncyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0dGluZ3Nfbm90
aWZ5KToKLQotMjAwOS0wNy0yOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jv
bmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0K
LSAgICAgICAgQWRkIGluZm9ybWF0aW9uIGFib3V0IHRoZSByZWdyZXNzaW9uIGZpeCBmb3IgV0VC
S0lUX0RFQlVHLgotCi0gICAgICAgICogTkVXUzoKLQotMjAwOS0wNy0yOCAgUHJpaXQgTGFlcyAg
PHBsYWVzQHBsYWVzLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAg
ICAgICAgRml4IG1uZW1vbmljcyBpbiB0aGUgc291cCBhdXRoZW50aWNhdGlvbiBkaWFsb2cuCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuYzoKLSAgICAgICAgKHNob3df
YXV0aF9kaWFsb2cpOgotCi0yMDA5LTA3LTI4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgKiBO
RVdTOiB1cGRhdGUgZm9yIDEuMS4xMiByZWxlYXNlLgotCi0yMDA5LTA3LTI3ICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAd2Via2l0Lm9yZz4KLQotICAgICAgICBCdWlsZCBmaXguCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOiAod2Via2l0X2djX2NvdW50X2phdmFzY3Jp
cHRfb2JqZWN0cyk6IEFkZGVkIGEgbmFtZXNwYWNlIHRvCi0gICAgICAgIFNpbGVuY2VBc3NlcnRp
b25zT25seS4KLQotMjAwOS0wNy0yNyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5v
cmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzM1Ci0gICAgICAgIEdpdmUgYSBo
ZWxwZnVsIG5hbWUgdG8gSlNMb2NrIGNvbnN0cnVjdG9yIGFyZ3VtZW50Ci0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X2djX2NvdW50X2phdmFz
Y3JpcHRfb2JqZWN0cyk6Ci0KLTIwMDktMDctMjQgIFByaWl0IExhZXMgIDxwbGFlc0BwbGFlcy5v
cmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIFtHdGtdIFBh
c3N3b3JkIGlzIHNhdmVkIGludG8gZ25vbWUta2V5cmluZyBldmVuIGlmIGF1dGguIGZhaWxzCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzU2MAotCi0g
ICAgICAgIENoZWNrIGF1dGhlbnRpY2F0aW9uIHJlc3VsdCBhbmQgc2F2ZSBwYXNzd29yZCBvbmx5
IHdoZW4gYXV0aGVudGljYXRpb24KLSAgICAgICAgc3VjY2VlZHMuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0c291cGF1dGhkaWFsb2cuYzoKLSAgICAgICAgKGZyZWVfYXV0aERhdGEpOgotICAg
ICAgICAocmVzcG9uc2VfY2FsbGJhY2spOgotICAgICAgICAoc2F2ZV9wYXNzd29yZF9jYWxsYmFj
ayk6Ci0KLTIwMDktMDctMjQgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KLQotICAgICAgICBBcHBsaWNh
dGlvbkNhY2hlIHNob3VsZCBoYXZlIHNpemUgbGltaXQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzAwCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJl
YWNoZWRNYXhBcHBDYWNoZVNpemUpOgotICAgICAgICBBZGRzIGVtcHR5IGltcGxlbWVudGF0aW9u
IG9mIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmg6Ci0KLTIwMDktMDctMjMgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxv
bnpvQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCi0KLSAg
ICAgICAgW0d0a10gQWRkIGltcGxlbWVudGF0aW9uIG9mIEdDQ29udHJvbGxlciBmb3IgRFJUCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzYzNgotCi0g
ICAgICAgIEFkZCBTUEkgZm9yIEdDQ29udHJvbGxlciB0byB1c2UuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6
Ci0gICAgICAgICh3ZWJraXRfZ2NfY29sbGVjdF9qYXZhc2NyaXB0X29iamVjdHMpOgotICAgICAg
ICAod2Via2l0X2djX2NvbGxlY3RfamF2YXNjcmlwdF9vYmplY3RzX29uX2FsdGVybmF0ZV90aHJl
YWQpOgotICAgICAgICAod2Via2l0X2djX2NvdW50X2phdmFzY3JpcHRfb2JqZWN0cyk6Ci0KLTIw
MDktMDctMjIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IE1hcmsgUm93ZS4KLQotICAgICAgICBGaXggY29tcGlsZXIgd2FybmluZy4KLQotICAg
ICAgICAqIHRlc3RzL3Rlc3R3ZWJzZXR0aW5ncy5jOgotICAgICAgICAodGVzdF93ZWJraXRfd2Vi
X3NldHRpbmdzX3VzZXJfYWdlbnQpOgotCi0yMDA5LTA3LTIyICBYYW4gTG9wZXogIDx4bG9wZXpA
aWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAg
ICAgICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ3JhYl9mb2N1cyk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9jdXNfaW5fZXZlbnQpOgotCi0yMDA5LTA3LTIxICBQcmlp
dCBMYWVzICA8cGxhZXNAcGxhZXMub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBG
cmV5dGhlci4KLQotICAgICAgICBbR1RLK10gTWlzc2luZyBhY2NlbGVyYXRvciBpbiBhdXRoZW50
aWNhdGlvbiBkaWFsb2cKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI1NTA5Ci0KLSAgICAgICAgQWRkIGFjY2VsZXJhdG9yIHRvIGNoZWNrYm94IHRleHQu
Ci0KLSAgICAgICAgKiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzb3VwYXV0aGRpYWxvZy5jOgot
ICAgICAgICAoc2hvd19hdXRoX2RpYWxvZyk6Ci0KLTIwMDktMDctMjEgIFByaWl0IExhZXMgIDxw
bGFlc0BwbGFlcy5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgot
Ci0gICAgICAgIFtHVEtdIGh0dHAgYXV0aCBkaWFsb2cgcG9wcyB1cCB0d2ljZSBhZnRlciBhIGNh
bmNlbGxlZCBhdGVtcHQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0ODE4Ci0KLSAgICAgICAgUmVtb3ZlIHdvcmthcm91bmQgcmVxdWlyZWQgZm9yIGxp
YnNvdXAgdmVyc2lvbnMgPD0yLjI2LjIgYXMgd2UgZGVwZW5kCi0gICAgICAgIG9uIDIuMjcuNCBu
b3cuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuYzoKLSAgICAgICAg
KHNlc3Npb25fYXV0aGVudGljYXRlKToKLQotMjAwOS0wNy0yMCAgR3VzdGF2byBOb3JvbmhhIFNp
bHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgW0dUS10gV2lkZ2V0IHNpemUgbmVnb3Rp
YXRpb24KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MTU0Ci0KLSAgICAgICAgSW1wbGVtZW50IHByb3BlciBzaXplIHJlcXVlc3QgZm9yIHRoZSBXZWJW
aWV3IHdpZGdldC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dl
Yl92aWV3X3NpemVfcmVxdWVzdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6Ci0KLTIwMDktMDctMTYgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2Vs
ZmlzaC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSmFuIEFsb256by4KLQotICAgICAgICBb
R1RLK10gVXBkYXRlIHRoZSBmb2N1cyBoYW5kbGluZyBjb2RlLgotCi0gICAgICAgIENoYW5nZSBm
b2N1cy1pbiB0byBhbHdheXMgY2FsbCBzZXRBY3RpdmUodHJ1ZSksIGNhbGwKLSAgICAgICAgRm9j
dXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUgd2hlbiBubyBmb2N1c2VkIGZyYW1lIGV4aXN0
cwotICAgICAgICBvdGhlciBTZWxlY3Rpb25Db250cm9sbGVyOjpzZXRBY3RpdmUuIFRoaXMgaXMg
bWF0Y2hpbmcgV2luZG93cwotICAgICAgICBhbmQgUXQuCi0KLSAgICAgICAgT24gZm9jdXMtb3V0
IGNhbGwgRm9jdXNDb250cm9sbGVyOjpzZXRBY3RpdmUoZmFsc2UpIGFuZAotICAgICAgICBTZWxl
Y3Rpb25Db250cm9sbGVyOjpzZXRGb2N1ZWQoZmFsc2UpLiBUaGlzIGlzIG1hdGNoaW5nIFdpbmRv
d3MKLSAgICAgICAgYW5kIFF0IGFzIHdlbGwuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9jdXNfaW5fZXZlbnQpOgotICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2ZvY3VzX291dF9ldmVudCk6Ci0KLTIwMDktMDctMTYgIFhp
YW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhbiBC
ZXJuc3RlaW4uCi0KLSAgICAgICAgVGhpcyBpcyB0aGUgMm5kIHBhcnQgb2YgZml4aW5nICJSVEw6
IHRvb2x0aXAgZG9lcyBub3QgZ2V0IGl0cyBkaXJlY3Rpb25saXR5IGZyb20gaXRzIGVsZW1lbnQn
cy4iCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDE4
NyAKLQotICAgICAgICBBZGQgb25lIGV4dHJhIHBhcmFtZXRlciB0byB0aGUgY2FsbGVlIG9mIEhp
dFRlc3RSZXN1bHQ6OnRpdGxlKCkgZHVlIHRvIHRoZSBzaWduYXR1cmUgY2hhbmdlLgotCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KTogQWRkIGRpcmVjdGlv
biBhcyBhIHBhcmFtZXRlciB0byB0aGUgY2FsbGVlIG9mIEhpdFRlc3RSZXN1bHQ6OnRpdGxlKCku
Ci0KLTIwMDktMDctMTYgIFhpYW9tZWkgSmkgIDx4amlAY2hyb21pdW0ub3JnPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgIEZpeCB0b29sdGlwIGRvZXMgbm90
IGdldCBpdHMgZGlyZWN0aW9uYWxpdHkgZnJvbSBpdHMgZWxlbWVudCdzIGRpcmVjdGlvbmFsaXR5
LgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQxODcK
LQotICAgICAgICBQZXIgbWl0eidzIHN1Z2dlc3Rpb24gaW4gY29tbWVudCAjNiwgd2hpbGUgZ2V0
dGluZyB0aGUgcGxhaW4tdGV4dCAKLSAgICAgICAgdGl0bGUsIHdlIGFsc28gZ2V0IHRoZSBkaXJl
Y3Rpb25hbGl0eSBvZiB0aGUgdGl0bGUuIEhvdyB0byBoYW5kbGUgCi0gICAgICAgIHRoZSBkaXJl
Y3Rpb25hbGl0eSBpcyB1cCB0byBjbGllbnRzLiBDbGllbnRzIGNvdWxkIGlnbm9yZSBpdCwgCi0g
ICAgICAgIG9yIHVzZSBhdHRyaWJ1dGUgb3IgdW5pY29kZSBjb250cm9sIGNoYXJhY3RlcnMgdG8g
ZGlzcGxheSB0aGUgdGl0bGUKLSAgICAgICAgYXMgd2hhdCB0aGV5IHdhbnQuCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnQ6OnNldFRvb2xUaXApOiBBZGQgZGlyZWN0aW9uYWxpdHkgYXMgMm5kIHBhcmFt
ZXRlciB0byBzZXRUb29wVGlwKCkgKHdpdGhvdXQgaGFuZGxpbmcgaXQgeWV0KS4KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDogQWRkIGRpcmVjdGlvbmFsaXR5IGFz
IDJuZCBwYXJhbWV0ZXIgdG8gc2V0VG9vbFRpcCgpLgotCi0yMDA5LTA3LTE1ICBHdXN0YXZvIE5v
cm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAg
IFJ1YmJlci1zdGFtcGVkIGJ5IEphbiBBbG9uem8uCi0KLSAgICAgICAgRml4IGVuYWJsZS14c3Mt
YXVkaXRvciBwcm9wZXJ0eSBkb2N1bWVudGF0aW9uLCBhbmQgZGVmYXVsdCB2YWx1ZQotICAgICAg
ICB0byBtYXRjaCB0aGUgZmFjdCB0aGF0IGl0IGlzIG5vdyBlbmFibGVkIGJ5IGRlZmF1bHQuCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0
X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLQotMjAwOS0wNy0xNCAgWm9sdGFuIEhvcnZhdGgg
IDxoem9sdGFuQGluZi51LXN6ZWdlZC5odT4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KLQotICAgICAgICBDaGFuZ2UgYWxsIE5vbmNvcHlhYmxlIGluaGVyaXRpbmcgdmlzaWJp
bGl0eSB0byBwdWJsaWMuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNzIyNQotCi0gICAgICAgIENoYW5nZSBhbGwgTm9uY29weWFibGUgaW5oZXJpdGlu
ZyB2aXNpYmlsaXR5IHRvIHB1YmxpYyBiZWNhdXNlCi0gICAgICAgIGl0IGlzIG5lZWRlZCB0byB0
aGUgY3VzdG9tIGFsbG9jYXRpb24gZnJhbWV3b3JrIChidWcgIzIwNDIyKS4KLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0KLTIwMDktMDctMTMgIEd1c3Rhdm8gTm9yb25o
YSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgVW5y
ZXZpZXdlZC4gTGF0ZSBORVdTIGZpbGUgZm9yIDEuMS4xMS4KLQotICAgICAgICAqIE5FV1M6Ci0K
LTIwMDktMDctMTMgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xs
YWJvcmEuY28udWs+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4gQ2hhbmdlcyB0byB0aGUgZG9jIGNv
bnRyb2wgZmlsZXMgZm9yIDEuMS4xMS4KLQotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLWRvY3Mu
c2dtbDoKLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50eHQ6Ci0KLTIwMDktMDct
MTMgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28u
dWs+Ci0KLSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAg
ICAgIEZpeCB1bml0IHRlc3QgdG8gdXNlIHRoZSBjb3JyZWN0IGFzc3VtcHRpb24gdGhhdCB0aGUg
U291cE1lc3NhZ2UKLSAgICAgICAgd2lsbCBiZSBOVUxMIHdoZW4gV2ViS2l0TmV0d29ya1JlcXVl
c3QgaXMgY3JlYXRlZCBmcm9tIGFuIFVSSS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3RuZXR3b3Jr
cmVxdWVzdC5jOgotICAgICAgICAodGVzdF9uZXR3b3JrX3JlcXVlc3RfY3JlYXRlX2Rlc3Ryb3kp
OgotCi0yMDA5LTA3LTEzICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3Jn
PgotCi0gICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjcx
NzE+IFtHdGtdCi0gICAgICAgIFJFR1JFU1NJT04gKHI0NTQ0MCk6IGZhaWxzIGF0IGZhc3QvZXZl
bnRzL2ZyYW1lLXByb2dyYW1tYXRpYy1mb2N1cy5odG1sCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
R3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIGZvY3VzLWluIGFuZCBmb2N1cy1vdXQgZXZlbnRz
IG9ubHkgZ2V0IHRyaWdnZXJlZCB3aGVuIHRoZXJlJ3MgdXNlcgotICAgICAgICBpbnRlcmFjdGlv
biwgaGVuY2Ugc2V0Rm9jdXNlZChib29sKSBuZXZlciBnZXRzIGNhbGxlZCB3aGVuCi0gICAgICAg
IGZvY3VzRXZlbnQgaXMgdHJpZ2dlcmVkIHdoZW4gcnVubmluZyB0aGUgbGF5b3V0IHRlc3RzLiBU
aGUKLSAgICAgICAgc29sdXRpb24gc2VlbXMgdG8gYmUgdG8gaW1wbGVtZW50IGdyYWItZm9jdXMg
dG9vIHNvIHdlIGNhbiBjYWxsCi0gICAgICAgIHNldEZvY3VzZWQoYm9vbCkgd2hlbiBhIHdpZGdl
dCBoYXMgZm9jdXMuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZ3JhYl9mb2N1cyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZm9jdXNfaW5fZXZlbnQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQp
OgotCi0yMDA5LTA3LTEzICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3Jn
PgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjcx
OCBbR3RrXSBBZGQgc3VwcG9ydCBmb3IgamF2YXNjcmlwdCB3aW5kb3dzIGZvciBEUlQKLQotICAg
ICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgYW5kIFhhbiBMb3Blei4KLQotICAgICAg
ICBBZGQgQVBJIHRvIHN1cHBvcnQgb3BlbmluZyBhbmQgY2xvc2luZyBvZiBKYXZhU2NyaXB0IHdp
bmRvd3MgYXV0b21hdGljYWxseS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dT
b29uKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2Ns
YXNzX2luaXQpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgot
ICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkpOgotICAgICAgICAod2Vi
a2l0X3dlYl9zZXR0aW5nc19jb3B5KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jbG9zZV93ZWJfdmlldyk6Ci0gICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfdXBkYXRlX3NldHRpbmdzKToKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19u
b3RpZnkpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF9ncm91cF9uYW1lKToKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgotCi0yMDA5LTA3LTEyICBCcmVudCBGdWxnaGFt
ICA8YmZ1bGdoYW1AZ21haWwuY29tPgotCi0gICAgICAgIFNwZWN1bGF0aXZlIGJ1aWxkIGZpeCBh
ZnRlciBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC80NTc4Ni4KLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMDktMDctMDkgIEJldGggRGFraW4gYW5kIEpvbiBI
b25leWN1dHQgPGJkYWtpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBI
eWF0dC4KLQotICAgICAgICBNYWtlIFdpZGdldCBSZWZDb3VudGVkIHRvIGZpeDoKLQotICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzAzODgzMT4gUkVHUkVTU0lPTiAoVE9UKTogSW4gTWFpbCwgYSBj
cmFzaCBvY2N1cnMgCi0gICAgICAgIGF0IFdlYkNvcmU6OldpZGdldDo6YWZ0ZXJNb3VzZURvd24o
KSBhZnRlciBjbGlja2luZyBUbyBEbydzIGNsb3NlIAotICAgICAgICBib3gKLSAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzY5Nzg4MDQ+IFdFUiAjMTY6IFJlcHJvIEFjY2VzcyBWaW9sYXRpb24gaW4g
Ci0gICAgICAgIFdlYkNvcmU6OlBsdWdpblZpZXc6OmJpbmRpbmdJbnN0YW5jZSAoMTMxMDE3ODAy
MykKLSAgICAgICAgLWFuZC0KLSAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5OTEyNTE+IFdFUiAj
MTM6IENyYXNoIGluIFdlYktpdCEKLSAgICAgICAgV2ViQ29yZTo6UGx1Z2luVmlldzo6cGVyZm9y
bVJlcXVlc3QrMjAzICgxMzExNDYxMTY5KSAKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmNyZWF0ZVBsdWdpbik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpj
cmVhdGVKYXZhQXBwbGV0V2lkZ2V0KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5oOgotCi0yMDA5LTA3LTA2ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxn
dXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEph
biBBbG9uem8uCi0KLSAgICAgICAgVXNlIHNvdXAncyBjb250ZW50IHNuaWZmaW5nCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjk4MgotCi0gICAgICAg
IEFkZCB0aGUgbmV3IENvbnRlbnQgU25pZmZpbmcgZmVhdHVyZSBwcm92aWRlZCBieSBsaWJzb3Vw
LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAod2Via2l0
X2luaXQpOgotCi0yMDA5LTA3LTA1ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tl
QHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAg
ICBBbHdheXMgaW5pdGlhbGl6ZSBXZWJDb3JlLgotCi0gICAgICAgIEl0IGlzIHBvc3NpYmxlIHRo
YXQgV2ViS2l0V2ViU2V0dGluZ3MgYW5kIG90aGVyIGNsYXNzZXMgZ2V0Ci0gICAgICAgIGNvbnN0
cnVjdGVkIGJlZm9yZSB0aGUgV2ViS2l0V2ViVmlldy4gSW4gdGhpcyBjYXNlIFdlYkNvcmUgaXMK
LSAgICAgICAgbm90IHlldCBwcm9wZXJseSBpbml0aWFsaXplZC4gQWRkIHdlYmtpdF9pbml0IHRv
IGV2ZXJ5IGNsYXNzCi0gICAgICAgIHRoYXQgY2FuIGJlIGNvbnN0cnVjdGVkIGJ5IEFQSSB1c2Vy
cy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfZG93bmxvYWRfY2xhc3NfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmty
ZXF1ZXN0LmNwcDoKLSAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfY2xhc3NfaW5pdCk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2NsYXNzX2luaXQpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX2hpc3Rv
cnlfaXRlbV9jbGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Mu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuY3BwOgotICAgICAgICAod2Via2l0X3dl
Yl93aW5kb3dfZmVhdHVyZXNfY2xhc3NfaW5pdCk6Ci0KLTIwMDktMDctMDMgIEphbiBNaWNoYWVs
IEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFu
IExvcGV6IGFuZCBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgU2V0IHVzZXItYWdlbnQgZnJv
bSBhcHBsaWNhdGlvbgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTczNzUKLQotICAgICAgICBBZGQgJ3VzZXItYWdlbnQnIHNldHRlci9nZXR0ZXIgQVBJ
IHRvIFdlYlNldHRpbmdzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6RnJhbWVM
b2FkZXJDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dXNlckFn
ZW50KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtp
dHZlcnNpb24uaC5pbjoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgot
ICAgICAgICAod2Via2l0X2dldF91c2VyX2FnZW50KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0
dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2ZpbmFsaXpl
KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAg
KHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKHdlYmtpdF93ZWJf
c2V0dGluZ3NfY29weSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF91c2VyX2Fn
ZW50KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZGlzcG9z
ZSk6Ci0KLTIwMDktMDctMDIgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBVcGRhdGUgdGhlIG5l
dyBib29sZWFuIHByb3BlcnR5IGluIEZvY3VzQ29udHJvbGxlciB0aGF0IGtlZXBzCi0gICAgICAg
IHRyYWNrIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBQYWdlIGlzIGZvY3VzZWQuCi0KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZm9j
dXNfaW5fZXZlbnQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2ZvY3VzX291dF9ldmVudCk6
Ci0KLTIwMDktMDYtMjkgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IEphbiBBbG9uem8uCi0KLSAgICAgICAgRml4IGEgY291cGxlIG9mIGNvbXBp
bGVyIHdhcm5pbmdzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rp
b24uY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19yZWFsX21vdmVfY3Vyc29yKToKLQotMjAwOS0wNi0yOCAgWGFuIExvcGV6
ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgRml4IHRoZSBHVEsrIGJ1aWxkLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0TWVudUNsaWVudDo6aXNTcGVha2luZyk6Ci0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuaDoKLQotMjAwOS0wNi0yNCAgSmlhaHVh
IEh1YW5nICA8amh1YW5namlhaHVhQGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBI
b2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgW0d0a10gQWRkIFVuZG8vUmVkbyBzdXBwb3J0IHRv
IFdlYktpdEd0awotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjY1NzMKLQotICAgICAgICBJbXBsZW1lbnQgRWRpdG9yQ2xpZW50Ojp1bmRvIGFuZCBvdGhl
ciBpbnRlcmVzdGVkIGZ1bmNzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1h
bmRGb3JVbmRvKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1h
bmRGb3JSZWRvKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpjbGVhclVuZG9SZWRv
T3BlcmF0aW9ucyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2FuVW5kbyk6Ci0g
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2FuUmVkbyk6Ci0gICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudDo6dW5kbyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVk
byk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KToKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLQotMjAwOS0wNi0yMCAgSmFu
IE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEgYW5kIFhhbiBMb3Blei4KLQotICAgICAgICBbR3RrXSBJbXBs
ZW1lbnQgRFJUIFhTUyBhdWRpdG9yIHN1cHBvcnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTcxCi0KLSAgICAgICAgQWRkIGEgc2V0dGluZyAiZW5h
YmxlLXhzcy1hdWRpdG9yIiB0byBlbmFibGUgdGhpcyBmZWF0dXJlLgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nf
Y2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6Ci0KLTIwMDktMDYtMjAgIEphbiBN
aWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgR3VzdGF2byBOb3JvbmhhIGFuZCBYYW4gTG9wZXouCi0KLSAgICAgICAgd2Via2l0X3dlYl9i
YWNrX2ZvcndhcmRfbGlzdF9hZGRfaXRlbSgpIHNob3VsZCBhZGQgYSByZWYgZm9yIHRoZSBoaXN0
b3J5IGl0ZW0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI2NTE3Ci0KLSAgICAgICAgQWRkIGEgcmVmIHRvIHRoZSBXZWJIaXN0b3J5SXRlbSB3aGVuIGl0
J3MgYWRkZWQgdG8gdGhlIGJhY2sKLSAgICAgICAgZm9yd2FyZCBsaXN0IHRocm91Z2ggd2Via2l0
X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9hZGRfaXRlbS4KLSAgICAgICAgVGhpcyBrZWVwcyB0aGUg
aGlzdG9yeSBpdGVtIGFsaXZlIGFuZCBwcmV2ZW50cyBweXdlYmtpdGd0ayBmcm9tCi0gICAgICAg
IGNyYXNoaW5nCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViYmFja2ZvcndhcmRsaXN0LmM6Ci0g
ICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2xpZmV0aW1lKToKLSAgICAgICAg
KHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9vcmRlcik6Ci0gICAgICAgICh0ZXN0
X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0ZW0pOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9iYWNr
X2ZvcndhcmRfbGlzdF9hZGRfaXRlbSk6Ci0KLTIwMDktMDYtMjAgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSmFuIEFsb256by4K
LQotICAgICAgICBJbml0aWFsIHRlc3QgY2FzZSBmb3IgbG9hZGluZyBzdGF0dXNlcy4KLQotICAg
ICAgICAqIHRlc3RzL3Rlc3Rsb2FkaW5nLmM6IEFkZGVkLgotICAgICAgICAobG9hZF9maW5pc2hl
ZF9jYik6Ci0gICAgICAgIChzdGF0dXNfY2hhbmdlZF9jYik6Ci0gICAgICAgICh0ZXN0X2xvYWRp
bmdfc3RhdHVzKToKLSAgICAgICAgKG1haW4pOgotCi0yMDA5LTA2LTIwICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJ1
YmJlci1zdGFtcGVkIGJ5IEphbiBBbG9uem8uCi0KLSAgICAgICAgRml4IHRoZSBvcmRlcmluZyBp
biB3aGljaCB0aGUgbmV3IGxvYWQgc3RhdHVzIGdvZXMgaW50byB0aGUgZW51bQotICAgICAgICB0
byBhdm9pZCBBQkkgYnJlYWthZ2UuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUu
aDoKLQotMjAwOS0wNi0xOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jvbmhh
QGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXogYW5kIENo
cmlzdGlhbiBEeXdhbi4KLQotICAgICAgICBBZGQgYSBuZXcgbG9hZCBzdGF0dXMgdG8gcmVwb3J0
IHRoYXQgdGhlIGZpcnN0IHZpc3VhbGx5IG5vbi1lbXB0eQotICAgICAgICBsYXlvdXQgaGFzIGJl
ZW4gZG9uZS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJh
bWUuaDoKLQotMjAwOS0wNi0xOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jv
bmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0K
LSAgICAgICAgRml4IHBhcmFtZXRlcnMgb2YgbmF2aWdhdGlvbi1wb2xpY3ktZGVjaXNpb24tcmVx
dWVzdGVkIGNhbGxiYWNrLAotICAgICAgICB0byBiZSBjb3JyZWN0IGluIG51bWJlciBhbmQgdHlw
ZQotCi0gICAgICAgICogdGVzdHMvdGVzdGh0dHBiYWNrZW5kLmM6Ci0gICAgICAgIChuYXZpZ2F0
aW9uX3BvbGljeV9kZWNpc2lvbl9yZXF1ZXN0ZWRfY2IpOgotCi0yMDA5LTA2LTE4ICBDaHJpc3Rp
YW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6bG9hZERvbmUpOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKToKLSAgICAgICAg
KFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxM
b2FkKTogSW50cm9kdWNlIHRoZSBzdGF0aWMKLSAgICAgICAgZnVuY3Rpb24gbG9hZERvbmUgdG8g
ZW1pdCAibG9hZC1kb25lIiBhbmQgdXBkYXRlIHRoZSBzdGF0dXMgYW5kIHVwZGF0ZQotICAgICAg
ICB0aGUgcmVsZXZlbnQgcGxhY2VzLiBXZSBtaXNzZWQgc29tZSBzdGF0dXMgbm90aWZpY2F0aW9u
cyBiZWZvcmUuCi0KLTIwMDktMDYtMTggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8u
bm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFu
IExvcGV6LgotCi0gICAgICAgIEJlIGNvbnNpc3RlbnQgaW4gYWx3YXlzIHVzaW5nIHRoZSB0ZXJt
IFVSSSBpbnN0ZWFkIG9mIFVSTCBpbiB0aGUKLSAgICAgICAgZG9jdW1lbnRhdGlvbiBvZiBXZWJL
aXRXZWJWaWV3IHNpZ25hbHMuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6
Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6Ci0KLTIwMDktMDYtMTYgIFhh
biBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rh
dm8gTm9yb25oYS4KLQotICAgICAgICBEbyBub3QgdXNlIGdfYXNzZXJ0X2NtcGludCB0byB0ZXN0
IGZvciBOVUxMIHBvaW50ZXIsIGp1c3QKLSAgICAgICAgZ19hc3NlcnQuCi0KLSAgICAgICAgKiB0
ZXN0cy90ZXN0bmV0d29ya3JlcXVlc3QuYzoKLSAgICAgICAgKHRlc3RfbmV0d29ya19yZXF1ZXN0
X2NyZWF0ZV9kZXN0cm95KToKLQotMjAwOS0wNi0xNSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxp
YS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjM3NwotICAgICAgICBb
R1RLXSBDb25mdXNpb24gYWJvdXQgcmFuZ2Ugb2YgJ3Byb2dyZXNzJyBwcm9wZXJ0eQotCi0gICAg
ICAgIFJhbmdlIGZvciB0aGUgcHJvZ3Jlc3MgcHJvcGVydHkgaXMgMC4wIC4uIDEuMCwgZG9uJ3Qg
bXVsdGlwbHkgaXQKLSAgICAgICAgYnkgMTAwIHRvIG1ha2UgaXQgYSBwZXJjZW50YWdlLgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92
aWV3X2dldF9wcm9ncmVzcyk6Ci0KLTIwMDktMDYtMTUgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4g
QWRkIG5ldyBzeW1ib2xzIGxpc3QgZm9yIDEuMS4xMCByZWxlYXNlLgotCi0gICAgICAgICogZG9j
cy93ZWJraXRndGstZG9jcy5zZ21sOgotCi0yMDA5LTA2LTE1ICBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJ1YmJlci1z
dGFtcGVkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBGaXggU2luY2UgdGFncyBmb3IgdGhlIG5l
dyB1cmkgYW5kIG1lc3NhZ2UgcHJvcGVydGllcy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRu
ZXR3b3JrcmVxdWVzdC5jcHA6Ci0gICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2NsYXNz
X2luaXQpOgotCi0yMDA5LTA2LTE1ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5v
cm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIEFkZGluZyBuZXcg
ZG9jdW1lbnRlZCBBUEkgdG8gdGhlIGdlbmVyYXRlZAotICAgICAgICBkb2N1bWVudGF0aW9uLgot
Ci0gICAgICAgICogZG9jcy93ZWJraXRndGstc2VjdGlvbnMudHh0OgotCi0yMDA5LTA2LTE1ICBY
YW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0
YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgVXBkYXRlIE5FV1MgZm9yIDEuMS4xMCByZWxlYXNlLgot
Ci0gICAgICAgICogTkVXUzoKLQotMjAwOS0wNi0xMSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8
Z25zQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAg
ICAgQWRkIGEgdGVzdCB0byBwZXJmb3JtIGFuIGFjdHVhbCBkb3dubG9hZC4KLQotICAgICAgICAq
IHRlc3RzL3Rlc3Rkb3dubG9hZC5jOgotICAgICAgICAobmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNp
b25fcmVxdWVzdGVkX2NiKToKLSAgICAgICAgKG5vdGlmeV9zdGF0dXNfY2IpOgotICAgICAgICAo
ZG93bmxvYWRfcmVxdWVzdGVkX2NiKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X2Rvd25sb2FkX3Bl
cmZvcm0pOgotICAgICAgICAobWFpbik6Ci0KLTIwMDktMDYtMTEgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6Lgot
Ci0gICAgICAgIEZpeCBjcmFzaCB3aGVuIGRvd25sb2FkaW5nLCBjYXVzZWQgYnkgYXNzdW1pbmcg
U291cE1lc3NhZ2Ugd291bGQKLSAgICAgICAgYmUgdGhlcmUuIFRoaXMgY2hhbmdlIGZhY3RvcnMg
dGhlIGxvZ2ljIHJlcXVpcmVkIHRvIGNyZWF0ZSBhCi0gICAgICAgIFJlc291cmNlUmVxdWVzdCBm
cm9tIGEgV2ViS2l0TmV0d29ya1JlcXVlc3QgaW50byBhIGNvcmUoKQotICAgICAgICBmdW5jdGlv
biwgbGlrZSB3ZSBoYXZlIGZvciBzb21lIG90aGVyIGNsYXNzZXMuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAod2Via2l0X2Rvd25sb2FkX3N0YXJ0KToK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmNv
cmUpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1
ZXN0KToKLQotMjAwOS0wNi0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgTWFrZSBXZWJL
aXROZXR3b3JrUmVxdWVzdCBhIHByb3BlciBHT2JqZWN0LCBtYWtpbmcgVVJJIGFuZAotICAgICAg
ICBTb3VwTWVzc2FnZSBwcm9wZXJ0aWVzLiBBbHNvIGFkZGluZyB1bml0IHRlc3RzIGZvciBjcmVh
dGlvbiBhbmQKLSAgICAgICAgZGVzdHJ1Y3Rpb24uCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0bmV0
d29ya3JlcXVlc3QuYzogQWRkZWQuCi0gICAgICAgICh0ZXN0X25ldHdvcmtfcmVxdWVzdF9jcmVh
dGVfZGVzdHJveSk6Ci0gICAgICAgICh0ZXN0X25ldHdvcmtfcmVxdWVzdF9wcm9wZXJ0aWVzKToK
LSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5j
cHA6Ci0gICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF9wcm9wZXJ0eSk6Ci0gICAg
ICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJr
aXRfbmV0d29ya19yZXF1ZXN0X2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X25ldHdvcmtf
cmVxdWVzdF9pbml0KToKLSAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfY29uc3RydWN0
b3IpOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXdfd2l0aF9jb3JlX3JlcXVl
c3QpOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcpOgotICAgICAgICAod2Vi
a2l0X25ldHdvcmtfcmVxdWVzdF9zZXRfdXJpKToKLSAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3Jl
cXVlc3RfZ2V0X3VyaSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg6
Ci0KLTIwMDktMDYtMTAgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBj
b2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAg
ICAgIE5ld3MgZm9yIDEuMS45LgotCi0gICAgICAgICogTkVXUzoKLQotMjAwOS0wNi0wOSAgSmFu
IE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgQ2xlYXIgdGhlIGZyYW1lIG5hbWUgYmVm
b3JlIHdlIHJ1biBlYWNoIHRlc3RzIHNvIHdlIGRvbid0IGdldAotICAgICAgICAic29tZUZsb2FT
dHJpbmciIG9yICIzIiBpbiB0aGUgdGFyZ2V0IGZyYW1lIG5hbWUuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6
Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2NsZWFyX21haW5fZnJhbWVfbmFtZSk6Ci0KLQot
MjAwOS0wNi0xMCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgSmFuIEFsb256by4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjU0MTUKLSAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50
IHN1cHBvcnQgZm9yIGdldF90ZXh0X2F0X29mZnNldAotCi0gICAgICAgIFVwZGF0ZSB0ZXN0IGZv
ciBuZXcgaW1wbGVtZW50YXRpb24gKGl0IGZpeGVzIHR3byBidWdzIGFuZCBhZGRzCi0gICAgICAg
IGFjdHVhbCBpbXBsZW1lbnRhdGlvbnMgZm9yIExJTkUgYm91bmRhcmllcykuCi0KLSAgICAgICAg
KiB0ZXN0cy90ZXN0YXRrLmM6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF9hdGtfZ2V0X3RleHRfYXRf
b2Zmc2V0KToKLQotMjAwOS0wNi0wOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5u
b3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXou
Ci0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MTA0
Ci0gICAgICAgIFtHVEtdIE1ha2UgTmV0d29ya1JlcXVlc3QgYSBwcm9wZXIgR09iamVjdCBhbmQg
ZXhwb3NlIFNvdXBNZXNzYWdlCi0KLSAgICAgICAgUmVmYWN0b3IgaG93IFNvdXBNZXNzYWdlIGlz
IGhhbmRsZWQsIHNvIHRoYXQgb3VyIFJlc291cmNlUmVxdWVzdAotICAgICAgICBvYmplY3QgZG9l
c24ndCBoYXZlIHRvIHN0b3JlIGl0IGFzIGEgbWVtYmVyLCB3aGljaCBjb21wbGljYXRlcwotICAg
ICAgICBtYW5hZ2luZyBSZXNvdXJjZVJlcXVlc3QncyBsaWZldHZpbWUuCi0KLSAgICAgICAgKiB0
ZXN0cy90ZXN0aHR0cGJhY2tlbmQuYzoKLSAgICAgICAgKG5hdmlnYXRpb25fcG9saWN5X2RlY2lz
aW9uX3JlcXVlc3RlZF9jYik6Ci0gICAgICAgICh0ZXN0X3NvdXBfbWVzc2FnZV9saWZldGltZSk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcDoKLSAgICAgICAgKFdU
Rjo6U291cE1lc3NhZ2UpOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXdfd2l0
aF9jb3JlX3JlcXVlc3QpOgotCi0yMDA5LTA2LTA4ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxn
bnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8uCi0KLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MjQwCi0gICAgICAg
IFtHVEtdIFRyeSBhZ2FpbiBidXR0b24gbG9zZXMgcXVlcnkgc3RyaW5ncwotCi0gICAgICAgIE9u
bHkgdHJpZ2dlciByZWxvYWQsIHdoZW4gdHJ5IGFnYWluIGlzIGNsaWNrZWQsIHRoaXMgd2F5IHdl
IGRvIG5vdAotICAgICAgICBsb3NlIHRoZSBxdWVyeSBzdHJpbmdzLCBsaWtlIHdlIGRpZCB3aGVu
IGFsc28gdHJpZ2dlcmluZyBhIGZvcm0KLSAgICAgICAgc3VibWlzc2lvbi4KLQotICAgICAgICAq
IHJlc291cmNlcy9lcnJvci5odG1sOgotCi0yMDA5LTA2LTA2ICBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYxNzUKLSAg
ICAgICAgW0dUS10gRG93bmxvYWQgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIHNob3VsZCBiZSB0aHJv
dHRsZWQsIGZvciB0aGUgYmVuZWZpdCBvZiBkb3dubG9hZCBtYW5hZ2VycwotCi0gICAgICAgIFRo
cm90dGxlIG5vdGlmaWNhdGlvbnMgZm9yIHRoZSAncHJvZ3Jlc3MnIHByb3BlcnR5IG9mIHRoZSBE
b3dubG9hZAotICAgICAgICBvYmplY3QsIGFuZCB1cGRhdGUgZG9jdW1lbnRhdGlvbiB0byBub3Rl
IHRoZSBmYWN0IHRoYXQgdGhpcyBpcwotICAgICAgICBiZWluZyBkb25lLCBhbmQgaG93IHRvIGdl
dCBhbGwgbm90aWZpY2F0aW9ucyBpZiB5b3UgcmVhbGx5IGNhcmUKLSAgICAgICAgYWJvdXQgdGhl
bS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfZG93bmxvYWRfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRfZG93bmxvYWRfcmVjZWl2
ZWRfZGF0YSk6Ci0KLTIwMDktMDUtMjkgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdl
YmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAg
ICAgIEZpeGVkIGNvbXBpbGUgd2FybmluZyB3aGVuIGNvbXBhcmluZyB0aGUgZGlmZmVyZW50IG5h
dmlnYXRpb24gdHlwZXMKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0
aW9uLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fY2xhc3NfaW5p
dCk6Ci0KLTIwMDktMDUtMjkgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYwNzUKLSAgICAgICAgW0dUS10gUmVmYWN0b3Ig
a2V5IHNjcm9sbGluZyBjb2RlCi0KLSAgICAgICAgQWZ0ZXIgdGhlIHNjcm9sbGluZyBjaGFuZ2Vz
IGluIHI0NDE3NyB3ZSBjYW4gbm93IHVzZSB0aGUKLSAgICAgICAgRnJhbWVWaWV3OjpzY3JvbGwg
bWV0aG9kIGxpa2UgdGhlIG90aGVyIHBvcnRzLCBrZWVwaW5nIHRoZSBtYWdpYwotICAgICAgICBj
b25zdGFudHMgZm9yIHRoZSBzY3JvbGxpbmcgYW1vdW50cyBpbnNpZGUgV2ViQ29yZSBwcm9wZXIu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3ZpZXdfcmVhbF9tb3ZlX2N1cnNvcik6Ci0KLTIwMDktMDUtMjkgIEd1c3Rhdm8gTm9yb25o
YSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSmFuIEFsb256
by4KLQotICAgICAgICBNYWtlIE5ldHdvcmtSZXF1ZXN0IGNhcnJ5IGEgcmVmZXJlbmNlIG9mIHRo
ZSBTb3VwTWVzc2FnZSB1c2VkIGJ5Ci0gICAgICAgIFJlc291cmNlUmVxdWVzdCwgYW5kIHVzZSB0
aGF0IHRvIGNyZWF0ZSBuZXcgUmVzb3VyY2VSZXF1ZXN0cyB3aGVyZQotICAgICAgICBuZWVkZWQs
IHNvIHRoYXQgbm8gaW5mb3JtYXRpb24gaXMgbG9zdCB3aGlsZSBwYXNzaW5nIGFyb3VuZAotICAg
ICAgICBOZXR3b3JrUmVxdWVzdCBvYmplY3RzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSk6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c3RhcnREb3dubG9hZCk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKHdlYmtpdF9k
b3dubG9hZF9zdGFydCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNw
cDoKLSAgICAgICAgKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZmluYWxpemUpOgotICAgICAgICAo
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXdfd2l0aF9jb3JlX3JlcXVlc3QpOgotICAgICAgICAo
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcpOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVx
dWVzdF9nZXRfbWVzc2FnZSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9m
cmFtZV9sb2FkX3JlcXVlc3QpOgotCi0yMDA5LTA1LTI4ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEg
IDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjYwNDgKLSAgICAgICAgbmF2aWdhdGlvbi1wb2xpY3ktZGVjaXNpb24tcmVxdWVzdGVk
IGRvY3VtZW50YXRpb24gaW5jb21wbGV0ZQotCi0gICAgICAgIEZpeCBkb2N1bWVudGF0aW9uIGZv
ciBhbGwgcG9saWN5IGRlY2lzaW9uIHJlcXVlc3Qgc2lnbmFscywgdG8KLSAgICAgICAgbWVudGlv
biB0aGF0IGFuIGFjdHVhbCBkZWNpc2lvbiBpcyBleHBlY3RlZCB3aGVuIHlvdSByZXR1cm4gVFJV
RSwKLSAgICAgICAgbWVhbmluZyB0aGF0IHlvdSBoYW5kbGVkIHRoZSBzaWduYWwuCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
Y2xhc3NfaW5pdCk6Ci0KLTIwMDktMDUtMjggIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBNZW50
aW9uIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEF0a1RleHQgbWV0aG9kcy4KLQotICAg
ICAgICAqIE5FV1M6Ci0KLTIwMDktMDUtMTkgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9uem8gYW5kIEd1c3Rhdm8gTm9yb25oYS4K
LQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MTUK
LSAgICAgICAgW0dUS11bQVRLXSBQbGVhc2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGdldF90ZXh0
X2F0X29mZnNldAotCi0gICAgICAgIE5ldyB0ZXN0IGZpbGUgZm9yIEFUSyBmdW5jdGlvbmFsaXR5
LgotCi0gICAgICAgICogdGVzdHMvdGVzdGF0ay5jOiBBZGRlZC4KLSAgICAgICAgKGJhaWxfb3V0
KToKLSAgICAgICAgKHRlc3RfZ2V0X3RleHRfZnVuY3Rpb24pOgotICAgICAgICAodGVzdF93ZWJr
aXRfYXRrX2dldF90ZXh0X2F0X29mZnNldCk6Ci0gICAgICAgIChtYWluKToKLQotMjAwOS0wNS0y
OCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51
az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgRG9jdW1lbnQg
Y2hhbmdlcyB3b3J0aCBub3RpbmcgZm9yIDEuMS44LgotCi0gICAgICAgICogTkVXUzoKLQotMjAw
OS0wNS0yNyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNjAzOQotICAgICAgICBbR1RLXSBXZWJLaXRXZWJIaXN0b3J5SXRl
bSBsaWZldGltZSBmaXhlcwotCi0gICAgICAgIE1vZGlmeSB0aGUgbWFuYWdlbWVudCBvZiBoaXN0
b3J5IGl0ZW1zIGJ5IHRoZSBCYWNrRm9yd2FyZCBsaXN0LgotCi0gICAgICAgIEhhdmluZyB0aGUg
b2JqZWN0cyBhZGQgdGhlbXNlbHZlcyB0byBhIGhhc2ggdGFibGUgd2l0aCBhbiBleHRyYQotICAg
ICAgICByZWZlcmVuY2UgbWFkZSBpbXBvc3NpYmxlIGZvciB0aGUgY2xlYW51cCBjb2RlIGluIHRo
ZSBkaXNwb3NlCi0gICAgICAgIG1ldGhvZCB0byBiZSBldmVyIGNhbGxlZCBpbiBub3JtYWwgY29u
ZGl0aW9ucywgc2luY2UgZGlzcG9zZSBpcwotICAgICAgICBjYWxsZWQgYmVmb3JlIGdldHRpbmcg
cmlkIG9mIHRoZSBsYXN0IHJlZmVyZW5jZSwgd2hpY2ggdGhlIG9iamVjdHMKLSAgICAgICAgd2Vy
ZSBtYWtpbmcgdG8gdGhlbXNlbHZlcy4gR2V0IHJpZCBvZiB0aGlzIGV4dHJhIHJlZmVyZW5jZSBh
bmQKLSAgICAgICAgbW92ZSB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNsZWFudXAgdG8gdGhl
IEJhY2tGb3J3YXJkIGxpc3QKLSAgICAgICAgaXRzZWxmLCB3aGljaCBlZmZlY3RpdmVseSBvd25z
IHRoZSBXZWJLaXRXZWJIaXN0b3J5SXRlbXMgbm93LgotCi0gICAgICAgIEFsc28sIHVwZGF0ZSB0
aGUgdGVzdHMgdG8gcmVmbGVjdCB0aGlzIGNoYW5nZS4KLQotICAgICAgICAqIHRlc3RzL3Rlc3R3
ZWJiYWNrZm9yd2FyZGxpc3QuYzoKLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9oaXN0b3J5X2l0
ZW1fbGlmZXRpbWUpOgotICAgICAgICAodGVzdF93ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0
X29yZGVyKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9hZGRf
aXRlbSk6Ci0gICAgICAgICogdGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtLmM6Ci0gICAgICAgICh3
ZWJfaGlzdG9yeV9pdGVtX2ZpeHR1cmVfc2V0dXApOgotICAgICAgICAod2ViX2hpc3RvcnlfaXRl
bV9maXh0dXJlX3RlYXJkb3duKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9kaXNwb3NlKToKLSAgICAgICAgKHdlYmtpdF93
ZWJfYmFja19mb3J3YXJkX2xpc3RfY2xhc3NfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKHdlYmtpdF9oaXN0b3J5X2l0ZW1zKToKLSAg
ICAgICAgKHdlYmtpdF9oaXN0b3J5X2l0ZW1fYWRkKToKLSAgICAgICAgKHdlYmtpdF93ZWJfaGlz
dG9yeV9pdGVtX2Rpc3Bvc2UpOgotICAgICAgICAoV2ViS2l0OjpraXQpOgotCi0yMDA5LTA1LTI2
ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBK
YW4gQWxvbnpvLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNjAzOQotICAgICAgICBbR1RLXSBXZWJLaXRXZWJIaXN0b3J5SXRlbSBsaWZldGltZSBm
aXhlcwotCi0gICAgICAgIERlbGV0ZSB0aGUgQmFja0ZvcndhcmRMaXN0IGJlZm9yZSB0aGUgUGFn
ZSwgb3RoZXJ3aXNlIHRoZSByZWZlcmVuY2VzCi0gICAgICAgIHRvIHRoZSBXZWJLaXRXZWJIaXN0
b3J5SXRlbXMgd2lsbCBiZSBnb25lLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2Rpc3Bvc2UpOgotCi0yMDA5LTA1LTI3ICBH
dXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBBZGQgY29tbWVudCB0byBjbGFyaWZ5IHdoeSBzY3Jv
bGxpbmcgaXMgZG9uZSBhcyBpdCBpcyBhbmQgbm90IHdpdGgKLSAgICAgICAgZ2RrX3dpbmRvd19z
Y3JvbGwuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbCk6Ci0KLTIwMDktMDUtMjcgIEd1
c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0K
LSAgICAgICAgVW5yZXZpZXdlZC4gQWRkaW5nIG5ldyBzeW1ib2xzIGluZGV4IGZvciAxLjEuOC4K
LQotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLWRvY3Muc2dtbDoKLQotMjAwOS0wNS0yNiAgSG9s
Z2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgQWRkIGEgbmV3IHNpZ25hbCBjYWxsZWQg
ImNyZWF0ZS1wbHVnaW4td2lkZ2V0IiBhbmQgZW1pdCBpdCBmcm9tCi0gICAgICAgIHdpdGhpbiB0
aGUgRnJhbWVMb2FkZXJDbGllbnRHdGs6OmNyZWF0ZVBsdWdpbiBtZXRob2QuIElmIGEKLSAgICAg
ICAgR3RrV2lkZ2V0IGdldHMgcmV0dXJuZWQgaXQgd2lsbCBiZSBlbWJlZGRlZCBhcyBhIFdlYkNv
cmU6OldpZGdldAotICAgICAgICB1c2luZyB0aGUgbmV3IEd0a1BsdWdpbldpZGdldC4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVBsdWdpbik6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3NpZ25hbF9hY2N1bXVsYXRv
cl9vYmplY3RfaGFuZGxlZCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6
Ci0gICAgICAgICogd2Via2l0bWFyc2hhbC5saXN0OgotCi0yMDA5LTA1LTI0ICBYYW4gTG9wZXog
IDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0K
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1OTg3Ci0g
ICAgICAgIFtHVEtdIENsYXJpZnkgV2ViS2l0V2ViVmlldzo6ZG93bmxvYWQtcmVxdWVzdGVkIGRv
Y3VtZW50YXRpb24KLQotICAgICAgICBFeHBsYWluIGEgYml0IHdoeSB0aGlzIHNpZ25hbCBpcyBu
b3QgZW1pdHRlZCBieSBkZWZhdWx0IGFuZCBvZmZlcgotICAgICAgICBhIGNvbW1vbiBzb2x1dGlv
bi9zZXR1cCBmb3IgdGhhdCBpc3N1ZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLQotMjAwOS0wNS0y
MyAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KLQotICAgICAgICBS
dWJiZXItc3RhbXBlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgQnJlYWsgdGhlIHN3
aXRjaCBvbmNlIHByaXZhdGUgYnJvd3NpbmcgaXMgc2VsZWN0ZWQuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19z
ZXRfcHJvcGVydHkpOgotICAgICAgICAod2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkp
OgotCi0yMDA5LTA1LTIzICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3Jn
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBhbmQgWGFuIExvcGV6Lgot
Ci0gICAgICAgIFtHdGtdIEVuYWJsZSBkYXRhYmFzZSBhbmQgbG9jYWxTdG9yYWdlIHN1cHBvcnQK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NjI5Ci0K
LSAgICAgICAgQWRkIHNldHRpbmdzIHRvIGVuYWJsZSBvciBkaXNhYmxlIGRhdGFiYXNlIGFuZCBs
b2NhbFN0b3JhZ2UKLSAgICAgICAgc3VwcG9ydCBhbmQgZW5hYmxlIHRoZW0gYnkgZGVmYXVsdC4g
VGhpcyBhbGxvd3MgZGF0YWJhc2VzIHRvIGJlCi0gICAgICAgIHNob3duIGluIHRoZSBXZWJJbnNw
ZWN0b3IgYXMgd2VsbCBhcyBhbGxvdyB1cyB0byBydW4gdGhlIHN0b3JhZ2UKLSAgICAgICAgbGF5
b3V0IHRlc3RzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAg
ICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICh3ZWJraXRf
d2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdz
X2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmll
d191cGRhdGVfc2V0dGluZ3MpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25v
dGlmeSk6Ci0KLTIwMDktMDUtMjMgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4K
LQotICAgICAgICBQYXJ0IDIgb2YgMjogQnVnIDI1NDk1OiBJbXBsZW1lbnQgUGFzc093blB0ciBh
bmQgcmVwbGFjZSB1c2VzIG9mIHN0ZDo6YXV0b19wdHIKLQotICAgICAgICA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDk1PgotCi0gICAgICAgIFJldmlld2VkIGJ5
IE9saXZlciBIdW50LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
Lmg6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y3JlYXRlSFRNTFBhcnNlclF1aXJr
cyk6IFJldHVybiBhCi0gICAgICAgIFBhc3NPd25QdHI8PiBpbnN0ZWFkIG9mIGEgcmF3IEhUTUxQ
YXJzZXJRdWlya3MgcG9pbnRlci4KLQotMjAwOS0wNS0yMiAgR3VzdGF2byBOb3JvbmhhIFNpbHZh
ICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBKYW4gQWxvbnpvLgotCi0g
ICAgICAgIEltcHJvdmUgTmV0d29ya1JlcXVlc3QgZG9jdW1lbnRhdGlvbi4KLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHA6Ci0gICAgICAgICh3ZWJraXRfbmV0d29y
a19yZXF1ZXN0X2NsYXNzX2luaXQpOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9p
bml0KToKLQotMjAwOS0wNS0yMSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCi0KLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0ODE4Ci0gICAgICAgIFtHVEtdIGh0dHAg
YXV0aCBkaWFsb2cgcG9wcyB1cCB0d2ljZSBhZnRlciBhIGNhbmNlbGxlZCBhdGVtcHQKLQotICAg
ICAgICBXb3JrYXJvdW5kIGxpYnNvdXAgYnVnCi0gICAgICAgIGh0dHA6Ly9idWd6aWxsYS5nbm9t
ZS5vcmcvc2hvd19idWcuY2dpP2lkPTU4MzQ2Miwgd2hpY2ggbWFkZQotICAgICAgICBsaWJzb3Vw
IGVtaXQgdGhlICdhdXRoZW50aWNhdGUnIHNpZ25hbCBtb3JlIG9mdGVuIHRoYW4gaXQgd2FzCi0g
ICAgICAgIGV4cGVjdGVkLgotCi0gICAgICAgIFdlJ2xsIGJlIGFibGUgdG8gcmVtb3ZlIHRoaXMg
d2hlbiB3ZSBkZXBlbmQgb24gbGlic291cCA+IDIuMjYuMi4KLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXRzb3VwYXV0aGRpYWxvZy5jOgotICAgICAgICAoc2Vzc2lvbl9hdXRoZW50aWNhdGUpOgot
Ci0yMDA5LTA1LTIxICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+Ci0KLSAgICAg
ICAgRml4IGJ1aWxkIGJ1c3RhZ2UuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmdldEF1dG9Db3Jy
ZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKTogQWRkIHN0dWIgZm9yIG1ldGhvZC4KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKLQotMjAwOS0wNS0yMCAg
SG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4MzQKLQotICAgICAgICBNYWtlIENocm9tZUNsaWVudCBh
IGludGVyZmFjZSBhZ2FpbgotCi0gICAgICAgIFdpdGggcmVjZW50IGFkZGl0aW9ucyB0byBDaHJv
bWVDbGllbnQuaCBlbXB0eSBkZWZhdWx0cyB3ZXJlCi0gICAgICAgIGFkZGVkLiBUaGlzIGlzIGJh
ZCBmb3IgcG9ydGVycyBhcyB0aGVzZSBjaGFuZ2VzIGdvIHVubm90aWNlZAotICAgICAgICBhbmQg
YXQgcnVudGltZSBubyBub3RJbXBsZW1lbnRlZCB3YXJuaW5nIGlzIGxvZ2dlZCBhbmQgZ3JlcHBp
bmcKLSAgICAgICAgZm9yIG5vdEltcGxlbWVudGVkIHdpbGwgbm90IHNob3cgYW55dGhpbmcuIENo
YW5nZSB0aGlzIENsaWVudAotICAgICAgICB0byBiZSBsaWtlIHRoZSBvdGhlciBDbGllbnRzIGFn
YWluIGFuZCBhbHdheXMgaGF2ZSBwdXJlIHZpcnR1YWxzCi0gICAgICAgIChidXQgZm9yIHN0dWZm
IGluc2lkZSAjaWZkZWYgUExBVEZPUk0oTUFDKSkuCi0KLSAgICAgICAgVXBkYXRlIHRoZSB2YXJp
b3VzIFdlYktpdC8qIGltcGxlbWVudGF0aW9ucyB0byBjb21waWxlIGFnYWluLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50OjpzZXRDdXJzb3IpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVu
dDo6c2Nyb2xsUmVjdEludG9WaWV3KToKLQotMjAwOS0wNS0xOSAgWGFuIExvcGV6ICA8eGxvcGV6
QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSmFuIEFsb256by4KLQotICAgICAg
ICBEbyBub3QgdHJ5IHRvIGZyZWUgZW5jaGFudCBicm9rZXIgYW5kIGRpY3Rpb25hcnkgaWYgdGhl
eSBkbyBub3QKLSAgICAgICAgZXhpc3QsIHRob3NlIGZ1bmN0aW9ucyBhcmVuJ3QgTlVMTC1zYWZl
LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKGZy
ZWVfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2UpOgotCi0yMDA5LTA1LTE1ICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEphbiBBbG9u
em8uCi0KLSAgICAgICAgUGx1ZyBtZW1vcnkgbGVhay4KLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgIChmcmVlX3NwZWxsX2NoZWNraW5nX2xhbmd1YWdl
KToKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZmluYWxpemUpOgotICAgICAgICAod2Vi
a2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotCi0yMDA5LTA1LTE1ICBGcmlkcmljaCBT
dHJiYSAgPGZyaWRyaWNoLnN0cmJhQGJsdWV3aW4uY2g+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
SmFuIEFsb256by4KLQotICAgICAgICBDb252ZXJ0aW5nIGZpbGVuYW1lIHRvIHVyaSBieSBjb25j
YXRlbmF0aW5nIHN0cmluZ3MgaXMgYnJva2VuCi0gICAgICAgIG9uIFdpbmRvd3MuIFVzZSBwcm9w
ZXIgZ2xpYiBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19vcGVuKToKLSAgICAgICAgKiB0
ZXN0cy90ZXN0ZG93bmxvYWQuYzoKLSAgICAgICAgKHRlc3Rfd2Via2l0X2Rvd25sb2FkX2NyZWF0
ZSk6Ci0KLTIwMDktMDUtMTMgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBEbyBub3QgaGFuZGxl
IEtleUV2ZW50cyB3aXRoIEN0cmwgb3IgQWx0IG1vZGlmaWVycyB0aGF0IHdlCi0gICAgICAgIG90
aGVyd2lzZSBrbm93IG5vdGhpbmcgYWJvdXQuIE90aGVyd2lzZSBzaG9ydGN1dHMgZGVmaW5lZCBp
biB0aGUKLSAgICAgICAgV2ViVmlldyB3aWxsIG5ldmVyIGJlIGV4ZWN1dGVkLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQpOgotCi0yMDA5LTA1LTEzICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIEFk
ZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgU1ZHIGluZGV4IGJvdW5kcyBjaGVjayBjb21taXR0ZWQg
aW4KLSAgICAgICAgcjQzNTkwLgotCi0gICAgICAgICogTkVXUzoKLQotMjAwOS0wNS0xMyAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgTm90ZSBjaGFuZ2VzIHNp
bmNlIDEuMS42LgotCi0gICAgICAgICogTkVXUzoKLQotMjAwOS0wNS0xMyAgR3VzdGF2byBOb3Jv
bmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBV
bnJldmlld2VkLiBVcGRhdGVkIGNvbnRyb2wgZmlsZSwgYW5kIG1haW4gZmlsZSBmb3IgdGhlIDEu
MS43Ci0gICAgICAgIHJlbGVhc2UuCi0KLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1kb2NzLnNn
bWw6Ci0gICAgICAgICogZG9jcy93ZWJraXRndGstc2VjdGlvbnMudHh0OgotCi0yMDA5LTA1LTEx
ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU2ODUKLSAgICAgICAgW0dUS10gTWlkZGxlIGNsaWNrIHBh
c3RlIGZvcm0gdGhlIHBhc3RlYm9hcmQKLQotICAgICAgICBGb3IgcGFzdGUgZnJvbSBtaWRkbGUg
YnV0dG9uIChidXR0b249PTIpIHdlIHdhbnQgdG8gdXNlCi0gICAgICAgIHRoZSBHREtfUFJJTUFS
WV9TRUxFQ1RJT04uIEltcGxlbWVudCB0aGUgbmV3IGdldEN1cnJlbnRUYXJnZXQKLSAgICAgICAg
bWV0aG9kIGluIFBhc3RlYm9hcmRIZWxwZXJHdGsgYnkgYXNraW5nIHRoZSBXZWJWaWV3IHdoaWNo
Ci0gICAgICAgIGNsaXBib2FyZCB0byB1c2UuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Q
YXN0ZWJvYXJkSGVscGVyR3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6UGFzdGVib2FyZEhlbHBl
ckd0azo6Z2V0Q3VycmVudFRhcmdldCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFzdGVi
b2FyZEhlbHBlckd0ay5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3
X2J1dHRvbl9wcmVzc19ldmVudCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfdXNlX3ByaW1h
cnlfZm9yX3Bhc3RlKToKLQotMjAwOS0wNS0xMiAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9u
em9Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0K
LSAgICAgICAgW0d0a10gVmFyaW91cyBhdXRvdG9vbHMgYnVpbGQgcmVmYWN0b3JpbmcgYW5kIGZp
eGVzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTI4
NgotCi0gICAgICAgIEFkZCBnbGliLTIuMCB0byB0aGUgbGlzdCBvZiByZXF1aXJlZCBwYWNrYWdl
LgotCi0gICAgICAgICogd2Via2l0LnBjLmluOgotCi0yMDA5LTA1LTExICBDaHJpc3RpYW4gRHl3
YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rh
dm8gTm9yb25oYS4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU2OTcKLSAgICAgICAgW0dUS10gV2FybmluZ3MgYnVpbGRpbmcgV2ViS2l0L2d0ay90
ZXN0cy90ZXN0d2ViZnJhbWUuYwotCi0gICAgICAgICogdGVzdHMvdGVzdHdlYmZyYW1lLmM6Ci0g
ICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfZnJhbWVfY3JlYXRlX2Rlc3Ryb3kpOiBEZWNsYXJlIHdl
YlZpZXcgYXMgYSBHdGtXaWRnZXQqCi0gICAgICAgIHRvIGZpeCBwb2ludGVyIHR5cGUgaW5jb21w
YXRpYmlsaXR5IHdhcm5pbmdzLgotCi0yMDA5LTA1LTA4ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEg
IDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KLQotICAgICAgICBNYWtlIHRoZSBzY2FuIHByb2dyYW0gY2FsbCBnX3RocmVh
ZF9pbml0KE5VTEwpIGluIGFkZGl0aW9uIHRvCi0gICAgICAgIGdfdHlwZV9pbml0KCksIHNvIHRo
YXQgaXQgYWN0dWFsbHkgd29ya3MuCi0KLSAgICAgICAgKiBkb2NzL0dOVW1ha2VmaWxlLmFtOgot
Ci0yMDA5LTA1LTA4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgVW5pZnkgc2Nyb2xsaW5nIGNv
ZGUgdmlhIGFkanVzdG1lbnRzIGFuZCBrZXlzLiBVc2UgdGhlIFdlYkNvcmUKLSAgICAgICAgZGVm
aW5lZCBjb25zdGFudHMsIHNpbmNlIHRoYXQncyB3aGF0IHBlb3BsZSBhcmUgbW9zdCB1c2VkIHRv
IGF0Ci0gICAgICAgIHRoaXMgcG9pbnQuCi0KLSAgICAgICAgKiBDaGFuZ2VMb2c6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3Jl
YWxfbW92ZV9jdXJzb3IpOgotCi0yMDA5LTA1LTA3ICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3Rp
YW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRp
b25XaXRoaW5QYWdlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkQ29tbWl0TG9hZCk6IEFkZCBtaXNzaW5nCi0gICAgICAgIGNhbGwgdG8gbm90aWZ5U3Rh
dHVzIGluIHRoZSBjb21taXR0ZWQgY2FzZSBhbmQgYSBtaXNzaW5nIHByb3BlcnR5IG5vdGlmeS4K
LQotMjAwOS0wNS0wNiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNv
bGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzg2Ci0gICAgICAg
IFdlYktpdERvd25sb2FkIHNvbWV0aW1lcyBzdWdnZXN0cyBwZWN1bGlhciBmaWxlbmFtZXMKLQot
ICAgICAgICBXaGVuIGEgZG93bmxvYWQgaXMgcmVxdWVzdGVkIGJ5IGFuIG9uZ29pbmcgcmVxdWVz
dCwgdXNlIHRoZSBhbHJlYWR5Ci0gICAgICAgIHByb3ZpZGVkIHJlc3BvbnNlIHRvIHNldCB0aGUg
c3VnZ2VzdGVkIGZpbGVuYW1lIGZvciB0aGUgV2ViS2l0RG93bmxvYWQKLSAgICAgICAgb2JqZWN0
LCBpZiBhdmFpbGFibGUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9h
ZCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKF9XZWJL
aXREb3dubG9hZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9zZXRfcHJvcGVydHkpOgotICAgICAg
ICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25sb2FkX2dldF9zdWdnZXN0ZWRf
ZmlsZW5hbWUpOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25s
b2FkX3NldF9zdWdnZXN0ZWRfZmlsZW5hbWUpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2
YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA5LTA1LTA2
ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBHVEsrIEFQSSBpbXBsZW1lbnRh
dGlvbiBmaWxlcyBoYXZlIGJvZ3VzIGV4dGVybiAiQyIgZW50cmllcwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQzMjIKLQotICAgICAgICBSZW1vdmUg
Ym9ndXMgZXh0ZXJuICJDIiBmcm9tIHRoZSBzb3VyY2UgZmlsZXMuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAoRG93bmxvYWRDbGllbnQ6OmNhbm5vdFNo
b3dVUkwpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRlcnJvci5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfcGx1Z2luX2Vycm9yX3F1YXJrKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3Jl
cXVlc3QuY3BwOgotICAgICAgICAod2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfdXJpKToKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfaW5pdCk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHZlcnNpb24uY3BwOgotICAgICAgICAod2Via2l0X21p
Y3JvX3ZlcnNpb24pOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3Qu
Y3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1cyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
Ymhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNw
cDoKLSAgICAgICAgKHdlYmtpdF93ZWJfaW5zcGVjdG9yX3NldF9pbnNwZWN0b3JfY2xpZW50KToK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbi5jcHA6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9tb2RpZmllcl9zdGF0ZSk6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNwcDoKLSAgICAgICAgKHdlYmtp
dF93ZWJfcG9saWN5X2RlY2lzaW9uX2NhbmNlbCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzLmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3NwZWxsX2xh
bmd1YWdlcyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3dpbmRvd19mZWF0dXJlc19lcXVhbCk6Ci0KLTIwMDktMDUtMDYgIEphbiBNaWNoYWVsIEFsb256
byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZy
ZXl0aGVyLgotCi0gICAgICAgIE1pc2MgZml4ZXMgdG8gSW5zcGVjdG9yQ2xpZW50R3RrLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpjcmVhdGVQYWdlKTogdXNlIGdfZmlsZW5hbWVfdG9f
dXJpIHRvCi0gICAgICAgIGdldCB0aGUgVVJJIGFuZCB1c2Ugd2ViX3ZpZXdfbG9hZF91cmkgaW5z
dGVhZCBvZiB0aGUgZGVwcmVjYXRlZAotICAgICAgICB3ZWJfdmlld19vcGVuIG1ldGhvZCBmb3Ig
bG9hZGluZyB0aGUgVVJJLgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OmxvY2Fs
aXplZFN0cmluZ3NVUkwpOiBpbXBsZW1lbnQuCi0KLTIwMDktMDUtMDUgIEJlbiBNdXJkb2NoICA8
YmVubUBnb29nbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotICAg
ICAgICAKLSAgICAgICAgQWRkICNpZiBFTkFCTEUoREFUQUJBU0UpIGd1YXJkcyBhcm91bmQgZGF0
YWJhc2UgY29kZSBzbyB0b2dnbGluZyBFTkFCTEVfREFUQUJBU0Ugb2ZmIGRvZXMgbm90IGJyZWFr
IGJ1aWxkcy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI0Nzc2Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMDktMDUtMDYg
IENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MDY2Ci0gICAgICAgIFtHVEtdIEltcHJvdmUgZnJhbWVsb2Fk
ZXIgc2lnbmFscwotCi0gICAgICAgIEltcGxlbWVudCBsb2FkLXN0YXR1cyBhbmQgcHJvZ3Jlc3Mg
cHJvcGVydGllcyBvbiB0aGUgdmlldywgYXMgd2VsbCBhcwotICAgICAgICBsb2FkLXN0YXR1cyBv
biB0aGUgZnJhbWUuIFRoaXMgc3VwZXJzZWRlcyB0aGUgZGlmZmVyZW50IGxvYWQgc2lnbmFscwot
ICAgICAgICBsb2FkLXByb2dyZXNzLWNoYW5nZWQsIGxvYWQtY29tbWl0dGVkLCBsb2FkLWRvbmUs
IGxvYWQtc3RhcnRlZCBhbmQKLSAgICAgICAgbG9hZC1maW5pc2hlZCB3aGljaCBhcmUgbm90IG9u
bHkgbWlzbmFtZWQgYnV0IGJyb2tlbiBieSBkZXNpZ24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Om5vdGlmeVN0
YXR1cyk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpwb3N0UHJvZ3Jlc3NT
dGFydGVkTm90aWZpY2F0aW9uKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWQpOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5oOgotCi0yMDA5LTA1LTA1ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgRml4
IG1lbW9yeSBsZWFrcy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2hlY2tTcGVsbGluZ09mU3Ry
aW5nKToKLQotMjAwOS0wNS0wMiAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDY2Ci0gICAgICAgIFdlYktp
dEd0aysgMS4xLjYgcHJpbnRzIHdlaXJkIGVycm9yIG1lc3NhZ2VzIGluIExpZmVyZWEKLQotICAg
ICAgICBVc2Ugc3RybGVuIGluc3RlYWQgb2YgZ191dGY4X3N0cmxlbiB3aGVuIGNhbGN1bGF0aW5n
IHRoZSBzaXplIG9mCi0gICAgICAgIHRoZSBkYXRhIHRoYXQgaXMgYmVpbmcgZ2l2ZW4gdG8gd2Vi
a2l0X3dlYl9mcmFtZV9sb2FkX3N0cmluZyB0byBiZQotICAgICAgICBsb2FkZWQsIHNvIHRoYXQg
d2UgZG9uJ3QgbWlzcyBhbnkgb2YgdGhlIGNvbnRlbnQuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuY3BwOgotCi0yMDA5LTA1LTAxICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtv
dkBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgYnVsaWQgZml4LgotCi0gICAg
ICAgIEZpeCBtaXMtYXBwbGllZCBwYXRjaC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKToKLQotMjAwOS0wNS0w
MSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCi0KLSAgICAgICAgQWRkIGEgRnJhbWVMb2FkZXJDbGll
bnQgY2FsbGJhY2sgZm9yIHRoZSBSZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QuCi0g
ICAgICAgIAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjUzNDcKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJl
c291cmNlQnlYTUxIdHRwUmVxdWVzdCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuaDoKLQotMjAwOS0wNC0zMCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJA
YXBwbGUuY29tPgotCi0gICAgICAgIFByb3ZpZGUgYSBtZWNoYW5pc20gdG8gY3JlYXRlIGEgcXVp
cmtzIGRlbGVnYXRlIGZvciBIVE1MUGFyc2VyCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
SHlhdHQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLSAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVIVE1MUGFyc2VyUXVpcmtzKTogQWRk
ZWQuICBUaGUKLSAgICAgICAgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZhY3Rvcnkg
bWV0aG9kIHJldHVybnMgMC4KLQotMjAwOS0wNC0zMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFu
QGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCi0K
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MzQyCi0g
ICAgICAgIEFkZCBNZXNzYWdlU291cmNlIGFuZCBNZXNzYWdlTGV2ZWwgcGFyYW1ldGVycyB0byB0
aGUgQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuaDoKLQotMjAwOS0wNC0yOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3Vz
dGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBVbnJldmlld2VkLiBVcGRh
dGUgZ3RrLWRvYyBjb250cm9sIGFuZCBiYXNlIHNnbWwgZmlsZXMgZm9yIDEuMS42LgotCi0gICAg
ICAgICogZG9jcy93ZWJraXRndGstZG9jcy5zZ21sOgotICAgICAgICAqIGRvY3Mvd2Via2l0Z3Rr
LXNlY3Rpb25zLnR4dDoKLQotMjAwOS0wNC0yOCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3Vz
dGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBYYW4g
TG9wZXouCi0KLSAgICAgICAgVXBkYXRlZCB3aXRoIG5ld3MgZm9yIHRoZSAxLjEuNiByZWxlYXNl
LgotCi0gICAgICAgICogTkVXUzoKLQotMjAwOS0wNC0yOCAgWGFuIExvcGV6ICA8eGxvcGV6QGln
YWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAg
ICAgIExlYXZlIGEgYml0IG9mIHNwYWNlIGZyb20gdGhlIHByZXZpb3VzIHBhZ2Ugd2hlbiBhZHZh
Y2luZyBhIHdob2xlCi0gICAgICAgIHBhZ2UuIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2Yg
b3VyIHNjcm9sbGJhciBzY3JvbGxpbmcgY29kZQotICAgICAgICBhbmQgaXMganVzdCBuaWNlciBp
biBnZW5lcmFsLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA5
LTA0LTI4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBVbnJldmll
d2VkOiBjb21taXR0ZWQgYSBmZXcgYml0cyBieSBtaXN0YWtlLCByZW1vdmUgdGhlbS4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KToKLQotMjAwOS0wNC0yOCAgWGFuIExvcGV6
ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jv
bmhhLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjEzNQotICAgICAgICBbR1RLXSBTdXBwb3J0IGNhcmV0IGJyb3dzaW5nCi0KLSAgICAgICAgUmVm
YWN0b3Iga2V5Ym9hcmQgZXZlbnQgaGFuZGxpbmcgdG8gd29yayBwcm9wZXJseSB1bmRlciBjYXJl
dAotICAgICAgICBicm93c2luZyBtb2RlLiBNb3N0IG9mIHRoZSBjb2RlIGNvbWVzIGZyb20gdGhl
IFdpbmRvd3MgcG9ydC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Oik6Ci0gICAgICAgIChXZWJLaXQ6OmludGVycHJldEtl
eUV2ZW50KToKLSAgICAgICAgKFdlYktpdDo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQpOgot
ICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgotCi0y
MDA5LTA0LTI4ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MTM1Ci0gICAgICAgIFtHVEtdIFN1cHBvcnQgY2FyZXQgYnJv
d3NpbmcKLQotICAgICAgICBCYXNlZCBvbiBhIHBhdGNoIGJ5IEFscCBUb2tlci4KLQotICAgICAg
ICBBZGQgZW5hYmxlLWNhcmV0LWJyb3dzaW5nIHNldHRpbmcgdG8gV2ViS2l0V2ViVmlldy4KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgIChfV2ViS2l0
V2ViU2V0dGluZ3NQcml2YXRlOjopOgotICAgICAgICAoX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0
ZTo6d2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAgKF9XZWJLaXRXZWJT
ZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAg
ICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3By
b3BlcnR5KToKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJf
c2V0dGluZ3NfY29weSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0y
MDA5LTA0LTI3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0MDkKLSAgICAgICAgW0dUS10gaW5jb3JyZWN0bHkgZmFs
bHNiYWNrIG9uIGNhbmNlbGxhdGlvbgotCi0gICAgICAgIENoZWNrIHdoZXRoZXIgd2Ugc2hvdWxk
IGZhbGxiYWNrIGFsc28gb24gZGlkRmFpbExvYWQsIHNvIHRoYXQgd2UKLSAgICAgICAgZG9uJ3Qg
Z2V0IGVycm9yIHBhZ2VzIHNob3dpbmcgdXAgaW4gcGFydHMgb2YgdGhlIGNvbnRlbnQgb2Ygc29t
ZQotICAgICAgICBzaXRlcyBiZWNhdXNlIG9mLCBmb3IgaW5zdGFuY2UsIGxvY2F0aW9uIGNoYW5n
ZXMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2Fk
KToKLQotMjAwOS0wNC0yNyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4K
LQotICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDA5Ci0gICAgICAgIFtHVEtdIGluY29ycmVj
dGx5IGZhbGxzYmFjayBvbiBjYW5jZWxsYXRpb24KLQotICAgICAgICBDb3JyZWN0bHkgaGFuZGxl
IGNhbmNlbGxhdGlvbiBhbmQgZnJhbWUgbG9hZGluZyBpbnRlcnJ1cHRpb24KLSAgICAgICAgY2F1
c2VkIGJ5IHBvbGljeSBjaGFuZ2UuICBUaGlzIGFsc28gZml4ZXMKLSAgICAgICAgZmFzdC9mcmFt
ZXMvbG9jYXRpb24tY2hhbmdlLmh0bWwuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
OjpzaG91bGRGYWxsQmFjayk6Ci0KLTIwMDktMDQtMjYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KLQotICAgICAgICBQbHVn
IG1lbW9yeSBsZWFrLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRGYWlsTG9hZCk6Ci0KLTIwMDktMDQtMjYgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUzOTEKLSAgICAgICAgR19TSUdO
QUxfQUNUSU9OIGZsYWcgaW4gV2ViS2l0V2ViVmlldyBzaWduYWxzCi0KLSAgICAgICAgTW9zdCBv
ZiB0aGUgc2lnbmFscyBpbiBXZWJLaXRHVEsrIGhhdmUgdGhlIEdfU0lHTkFMX0FDVElPTiBmbGFn
LAotICAgICAgICBidXQgSSBkb24ndCB0aGluayB0aGlzIG1ha2VzIHNlbnNlLiBUaGUgZmxhZyBp
cyBtZWFudCBmb3IgdGhvc2UKLSAgICAgICAgc2lnbmFscyB0aGF0IGNhbiBiZSBlbWl0dGVkIGJ5
IHRoZSB1c2VyIHRvIHRyaWdnZXIgc29tZSBhY3Rpb24gaW4KLSAgICAgICAgdGhlIHZpZXcsIGFz
IGlmIGl0IHdlcmUgYSBub3JtYWwgQVBJLCB3aGljaCBpcyBub3QgdGhlIGNhc2UgZm9yCi0gICAg
ICAgIG1vc3Qgb2YgdGhlbS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6
Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfY2xhc3Nf
aW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9yLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJJbnNwZWN0
b3JQcml2YXRlOjp3ZWJraXRfd2ViX2luc3BlY3Rvcl9jbGFzc19pbml0KToKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDQtMjYgIFhhbiBMb3BleiAgPHhsb3Bl
ekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIGFjdHVhbGx5IGFwcGx5IHRoZSBy
aWdodCBwYXRjaC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19tb3ZlX2N1cnNvcik6Ci0KLTIwMDktMDQtMjYgIFhhbiBMb3Bl
eiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9y
b25oYS4KLQotICAgICAgICBQYXNzIGEgdmFyaWFibGUgdG8gaG9sZCB0aGUgcmV0dXJuIHZhbHVl
IG9mIHRoZSAnbW92ZS1jdXJzb3InCi0gICAgICAgIHNpZ25hbCwgb3RoZXJ3aXNlIGEgY3Jhc2gg
Y2FuIGhhcHBlbi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19tb3ZlX2N1cnNvcik6Ci0KLTIwMDktMDQtMjUgIEd1c3Rhdm8g
Tm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc4NgotICAgICAgICBXZWJLaXREb3dubG9hZCBzb21ldGlt
ZXMgc3VnZ2VzdHMgcGVjdWxpYXIgZmlsZW5hbWVzCi0KLSAgICAgICAgUmVmYWN0b3IgdGhlIGVt
aXNzaW9uIG9mIHRoZSBkb3dubG9hZC1yZXF1ZXN0ZWQgc2lnbmFsIHNvIHRoYXQgd2UKLSAgICAg
ICAgaGF2ZSBsZXNzIGNvZGUgZHVwbGljYXRpb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9Db250ZXh0TWVudUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51
Q2xpZW50Ojpkb3dubG9hZFVSTCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c3Rh
cnREb3dubG9hZCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDQtMjUgIEphbiBNaWNoYWVsIEFs
b256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExv
cGV6LgotCi0gICAgICAgIFtHVEtdIEVycm9yIHJlcG9ydGluZwotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDQKLQotICAgICAgICBVcGRhdGUgRnJh
bWVMb2FkIGVycm9ycyB0byB1c2UgV2ViS2l0RXJyb3JzLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6YmxvY2tlZEVycm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmNhbm5vdFNob3dVUkxFcnJvcik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjppbnRlcnJ1cHRGb3JQb2xpY3lDaGFuZ2VFcnJvcik6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93TUlNRVR5cGVFcnJvcik6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IpOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcik6Ci0g
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayk6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdGVycm9yLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXRlcnJvci5jcHA6IEFkZGVkLgotCi0yMDA5LTA0LTI1ICBKYW4gTWljaGFlbCBBbG9uem8gIDxq
bWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQot
ICAgICAgICBbR1RLXSBFcnJvciByZXBvcnRpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQ0Ci0KLSAgICAgICAgRGlzcGxheSBhIGRlZmF1bHQg
ZXJyb3IgcGFnZSBmb3IgbG9hZCBlcnJvcnMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKLSAgICAgICAgKiByZXNvdXJjZXMvZXJyb3IuaHRt
bDogQWRkZWQuCi0KLTIwMDktMDQtMjUgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdl
YmtpdC5vcmc+Ci0KLSAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICAg
W0dUS10gRXJyb3IgcmVwb3J0aW5nCi0gICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzNDQKLQotICAgICAgICAgQWRkIGEgV2ViS2l0V2ViRnJhbWUgQVBJ
IHRvIGxvYWQgYWx0ZXJuYXRlIGNvbnRlbnQgZm9yIHVucmVhY2hhYmxlIFVSTHMuCi0gICAgICAg
ICBBbHNvIGFkZCBhIG5ldyBzaWduYWwgImxvYWQtZXJyb3IiIGZvciBoYW5kbGluZyBsb2FkIGVy
cm9ycy4KLQotICAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cG9zdFByb2dyZXNzRmlu
aXNoZWROb3RpZmljYXRpb24pOgotICAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmFpbExvYWRpbmcpOgotICAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6Ci0gICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZCk6Ci0gICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5oOgotICAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDQtMjQg
IEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUnVi
YmVyLXN0YW1wZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIEZpeCBicmFjZXMgdG8g
Y29tcGx5IHdpdGggc3R5bGUgZ3VpZGVsaW5lcy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1Bhc3RlYm9hcmRIZWxwZXJHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpQYXN0ZWJvYXJkSGVs
cGVyR3RrOjpnZXRDbGlwYm9hcmQpOgotICAgICAgICAoV2ViS2l0OjpQYXN0ZWJvYXJkSGVscGVy
R3RrOjpnZXRDb3B5VGFyZ2V0TGlzdCk6Ci0gICAgICAgIChXZWJLaXQ6OlBhc3RlYm9hcmRIZWxw
ZXJHdGs6OmdldFBhc3RlVGFyZ2V0TGlzdCk6Ci0KLTIwMDktMDQtMjQgIFNlcmdpbyBHYXJjw61h
LUN1ZXZhcyAgPHNlcmdpb19nY2dAdGVsZWZvbmljYS5uZXQ+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzI2NwotICAgICAgICBbR1RLXSBQcmltYXJ5IHNlbGVjdGlvbi9jbGlw
Ym9hcmQgc3VwcG9ydAotCi0gICAgICAgIEFkZCBhIG1ldGhvZCBmb3IgZ2V0dGluZyB0aGUgcHJp
bWFyeSBzZWxlY3Rpb24uCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVs
cGVyR3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6UGFzdGVib2FyZEhlbHBlckd0azo6Z2V0UHJp
bWFyeSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhlbHBlckd0ay5oOgot
Ci0yMDA5LTA0LTI0ICBKb2hhbiBCaWxpZW4gIDxqb2JpQHZpYS5lY3AuZnI+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNTM3MwotICAgICAgICBQb3B1cCBtZW51IGhhcyB0aGUgd3Jvbmcg
c2l6ZSB3aGVuIHBvcHBlZCB1cCBuZWFyIHRoZSBlZGdlCi0gICAgICAgIG9mIHRoZSBzY3JlZW4K
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19mb3J3YXJkX2NvbnRleHRfbWVudV9ldmVudCk6IExldCBHVEsgcGxhY2UKLSAgICAg
ICAgdGhlIHBvcHVwIG1lbnUgaW5zdGVhZCBvZiB0cnlpbmcgdG8gZG8gYmV0dGVyIGFuZCBmYWls
aW5nCi0KLTIwMDktMDQtMjQgIENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2FzdHMu
ZGU+Ci0KLSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgR3VzdGF2byBOb3JvbmhhLgotCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJT
ZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6IFJld29yZCB0
aGUKLSAgICAgICAgZGVzY3JpcHRpb24gb2YgdGhlIGVuYWJsZS1zcGVsbC1jaGVja2luZyBwcm9w
ZXJ0eSBhbmQgY29ycmVjdCB0aGUKLSAgICAgICAgbWVudGlvbmluZyBvZiB0aGUgZGVmYXVsdCBs
YW5ndWFnZSB1c2VkLgotCi0yMDA5LTA0LTI0ICBEaWVnbyBFc2NhbGFudGUgVXJyZWxvICA8ZGll
Z29lQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEuCi0K
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjE2Ci0g
ICAgICAgIFtHVEtdIEFkZCBzcGVsbCBjaGVja2luZwotCi0gICAgICAgIEltcGxlbWVudCBFZGl0
b3JDbGllbnQ6Omlnbm9yZVdvcmRJblNwZWxsRG9jdW1lbnQsCi0gICAgICAgIEVkaXRvckNsaWVu
dDo6bGVhcm5Xb3JkIGFuZCBFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkLiBUaGlzCi0g
ICAgICAgIGVuYWJsZXMgdGhlIGNvcnJlc3BvbmRpbmcgdXNlciBhY3Rpb25zLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
RWRpdG9yQ2xpZW50OjppZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KToKLSAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpsZWFybldvcmQpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OmdldEd1ZXNzZXNGb3JXb3JkKToKLQotMjAwOS0wNC0yNCAgRGllZ28gRXNjYWxhbnRlIFVy
cmVsbyAgPGRpZWdvZUBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBO
b3JvbmhhLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTYxNgotICAgICAgICBbR1RLXSBBZGQgc3BlbGwgY2hlY2tpbmcKLQotICAgICAgICBJbXBs
ZW1lbnQgRWRpdG9yQ2xpZW50OjpjaGVja1NwZWxsaW5nT2ZTdHJpbmc7IGVuYWJsaW5nIHNwZWxs
IGNoZWNraW5nCi0gICAgICAgIHRvIGFjdHVhbGx5IGhhcHBlbiwgdGhpcyBpcyB0aGUgYmFzaXMg
Zm9yIG90aGVyIHNwZWxsaW5nIGZ1bmN0aW9ucy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2hl
Y2tTcGVsbGluZ09mU3RyaW5nKToKLQotMjAwOS0wNC0yNCAgRGllZ28gRXNjYWxhbnRlIFVycmVs
byAgPGRpZWdvZUBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3Jv
bmhhLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTYxNgotICAgICAgICBbR1RLXSBBZGQgc3BlbGwgY2hlY2tpbmcKLQotICAgICAgICBBZGQgc3Bl
bGwtY2hlY2tpbmctbGFuZ3VhZ2VzIHByb3BlcnR5IHRvIFdlYktpdFdlYlNldHRpbmdzLgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vic2V0dGluZ3MuY3BwOgotICAgICAgICAoX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6KToK
LSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3Nf
Y2xhc3NfaW5pdCk6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlOjp3ZWJraXRf
d2ViX3NldHRpbmdzX2luaXQpOgotICAgICAgICAoX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6
d2Via2l0X3dlYl9zZXR0aW5nc19maW5hbGl6ZSk6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGlu
Z3NQcml2YXRlOjp3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgIChf
V2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlOjp3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0
eSk6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlOjp3ZWJraXRfd2ViX3NldHRp
bmdzX2NvcHkpOgotICAgICAgICAoX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6d2Via2l0X3dl
Yl9zZXR0aW5nc19nZXRfc3BlbGxfbGFuZ3VhZ2VzKToKLQotMjAwOS0wNC0yNCAgRGllZ28gRXNj
YWxhbnRlIFVycmVsbyAgPGRpZWdvZUBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
R3VzdGF2byBOb3JvbmhhLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTYxNgotICAgICAgICBbR1RLXSBBZGQgc3BlbGwgY2hlY2tpbmcKLQotICAg
ICAgICBBZGQgZW5hYmxlLXNwZWxsLWNoZWNraW5nIHByb3BlcnR5IHRvIFdlYktpdFdlYlNldHRp
bmdzIGFuZCBpbXBsZW1lbnQKLSAgICAgICAgRWRpdG9yQ2xpZW50Ojppc0NvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZCBhbmQKLSAgICAgICAgRWRpdG9yQ2xpZW50Ojp0b2dnbGVDb250aW51
b3VzU3BlbGxDaGVja2luZyB0byBhbGxvdyB0aGUgVUkgdG8KLSAgICAgICAgZW5hYmxlIGNoZWNr
IGFzIHlvdSB0eXBlIHNwZWxsIGNoZWNraW5nLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojppc0Nv
bnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRl
OjopOgotICAgICAgICAoX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6d2Via2l0X3dlYl9zZXR0
aW5nc19jbGFzc19pbml0KToKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6Ondl
YmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0
aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAg
KF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3NfY29weSk6Ci0K
LTIwMDktMDQtMjEgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYS4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1NDYKLSAgICAgICAgW0dUS10gQVRLIGFjY2Vzc2liaWxp
dHkgZW5oYW5jZW1lbnRzCi0KLSAgICAgICAgSW1wbGVtZW50IHdpbmRvdzwtPnNjcmVlbiBjb29y
ZGluYXRlIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9ucy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OndpZGdldFNjcmVlblBv
c2l0aW9uKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojp3aW5kb3dUb1NjcmVlbik6
Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2NyZWVuVG9XaW5kb3cpOgotCi0yMDA5
LTA0LTIwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3Jh
LmNvLnVrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KLQotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ3ODYKLSAgICAgICAgV2ViS2l0
RG93bmxvYWQgc29tZXRpbWVzIHN1Z2dlc3RzIHBlY3VsaWFyIGZpbGVuYW1lcwotCi0gICAgICAg
IFJlbW92ZSBxdWVyeSBhbmQgcmVmIGZyb20gdGhlIFVSSSB0aGF0IGlzIHRvIGJlIGRvd25sb2Fk
ZWQgd2hlbgotICAgICAgICB1c2luZyBpdCB0byBwcm92aWRlIGEgZmlsZSBuYW1lIHN1Z2dlc3Rp
b24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAoX1dl
YktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25sb2FkX3NldF9wcm9wZXJ0eSk6Ci0KLTIw
MDktMDQtMjAgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJv
cmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgotCi0gICAgICAgIEhh
bmRsZSB0aGUgY2FzZSB3aGVuIHRoZSBwbHVnaW4gdmlldyBpcyBkZXN0cm95ZWQgZHVyaW5nCi0g
ICAgICAgIGRpZFJlY2VpdmVSZXNwb25zZSwgdG8gYXZvaWQgY3Jhc2hpbmcuCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpjb21taXR0ZWRMb2FkKToKLQotMjAwOS0wNC0xNyAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgotCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTI1MQotICAgICAgICBDcmFzaCB3
aGVuIGZyYW1lIGNyZWF0aW9uIHJlbW92ZXMgaXQgZnJvbSB0aGUgcGFyZW50Ci0KLSAgICAgICAg
VGhpcyBicmluZ3MgdXMgdXAtdG8tZGF0ZSB3aXRoIHRoZSBleHBlY3RhdGlvbnMgb2Ygc3ViLWZy
YW1lCi0gICAgICAgIGNyZWF0aW9uLCBmb2xsb3dpbmcgd2hhdCBNYWMgaGFzIGRvbmUuIEl0IGZp
eGVzIGNyYXNoZXMgd2hlbgotICAgICAgICBjYWxsaW5nIGluaXQgb24gdGhlIGNoaWxkIGZyYW1l
IHJlbW92ZXMgaXQgZnJvbSB0aGUgcGFnZS4KLQotICAgICAgICBUaGlzIG1ha2VzIHRoZSBmb2xs
b3dpbmcgdGVzdCBwYXNzIGluc3RlYWQgb2YgY3Jhc2g6Ci0KLSAgICAgICAgICBmYXN0L2xvYWRl
ci9mcmFtZS1jcmVhdGlvbi1yZW1vdmFsLmh0bWwKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OmNyZWF0ZUZyYW1lKToKLQotMjAwOS0wNC0xNiAgQ2hyaXN0aWFuIER5d2FuICA8Y2hy
aXN0aWFuQHR3b3RvYXN0cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRo
ZXIuCi0KLSAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUw
NDIKLSAgICAgICAgZGVzdHJveWluZyB3ZWJ2aWV3IHdpZGdldCBkaXJlY3RseSBjYXVzZXMgY3Jh
c2guCi0KLSAgICAgICAgKiB0ZXN0cy90ZXN0d2ViZnJhbWUuYzoKLSAgICAgICAgKHRlc3Rfd2Vi
a2l0X3dlYl9mcmFtZV9jcmVhdGVfZGVzdHJveSk6IEFkZCBhIHRlc3QgY2FzZSBmb3IgZGVzdHJv
eWluZwotICAgICAgICBhIHdlYiB2aWV3IHNob3J0bHkgYWZ0ZXIgcGFja2luZyBpdCBpbiBhIHdp
bmRvdy4KLQotMjAwOS0wNC0xNiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyNDEKLSAgICAgICAgUmVtb3ZlIHN1cGVyZmx1b3Vz
IE5vdEltcGxlbWVudGVkLmggaW5jbHVkZXMuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJp
dmF0ZS5jcHA6Ci0KLTIwMDktMDQtMTQgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8u
bm9yb25oYUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIGd0
ay1kb2MgY29udHJvbCBhbmQgYmFzZSBzZ21sIGZpbGVzIGZvciAxLjEuNS4KLQotICAgICAgICAq
IGRvY3Mvd2Via2l0Z3RrLWRvY3Muc2dtbDoKLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1zZWN0
aW9ucy50eHQ6Ci0KLTIwMDktMDQtMTQgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgot
Ci0gICAgICAgICogTkVXUzogdXBkYXRlZCBmb3IgMS4xLjUgcmVsZWFzZS4KLQotMjAwOS0wNC0x
MyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51
az4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODk4Ci0gICAgICAgIFtHVEtd
IG5lZWQgcHJvcGVyIEFQSSBmb3IgcHJpbnRpbmcKLQotICAgICAgICBBZGRlZCBzaW1wbGUgcHJp
bnRpbmcgdW5pdCB0ZXN0cy4KLQotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJmcmFtZS5jOgotICAg
ICAgICAocHJpbnRfcmVxdWVzdGVkX2NiKToKLSAgICAgICAgKHByaW50X3RpbWVvdXQpOgotICAg
ICAgICAodGVzdF93ZWJraXRfd2ViX2ZyYW1lX3ByaW50aW5nKToKLSAgICAgICAgKG1haW4pOgot
Ci0yMDA5LTA0LTEzICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4OTgKLSAgICAgICAgW0dUS10gbmVlZCBw
cm9wZXIgQVBJIGZvciBwcmludGluZwotCi0gICAgICAgIEltcGxlbWVudCBwcm9wZXIgcHJpbnRp
bmcgQVBJLCB1c2luZyB0aGUgR1RLKyBwcmludGluZyBBUEkuCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OnByaW50KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZy
YW1lLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA5LTA0LTEw
ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVr
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUxMjQKLSAgICAgICAgW0dUS10g
bWFueSBzdHJpbmdzIHN0aWxsIG1pc3NpbmcgdHJhbnNsYXRpb24gY2FsbHMKLQotICAgICAgICBN
YXJrIHRoZSBtaXNzaW5nIHN0cmluZ3MgZm9yIHRyYW5zbGF0aW9uLgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKLSAgICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZhdGU6
OndlYmtpdF9kb3dubG9hZF9jYW5jZWwpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRzb3VwYXV0
aGRpYWxvZy5jOgotICAgICAgICAoc2hvd19hdXRoX2RpYWxvZyk6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRl
bVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2NsYXNzX2luaXQpOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwOgotICAgICAgICAoX1dlYktpdFdlYkluc3Bl
Y3RvclByaXZhdGU6OndlYmtpdF93ZWJfaW5zcGVjdG9yX2NsYXNzX2luaXQpOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDoKLSAgICAgICAgKF9XZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9j
bGFzc19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwOgotICAg
ICAgICAoX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6d2Via2l0X3dlYl9zZXR0aW5nc19jbGFz
c19pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDQt
MDggIEFsZWphbmRybyBQacOxZWlybyAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1NDYKLSAgICAgICAgW0dUS10gQVRLIGFjY2Vzc2li
aWxpdHkgZW5oYW5jZW1lbnRzCi0KLSAgICAgICAgVXNlIGdldE9yQ3JlYXRlIGluc3RlYWQgb2Yg
anVzdCBnZXQsIGFzIHdlIG5lZWQgdG8gYWN0dWFsbHkgY3JlYXRlCi0gICAgICAgIHRoZSB3cmFw
cGVyIG9iamVjdCB0aGUgZmlyc3QgdGltZSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4KLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOS0wNC0wNiAgR3VzdGF2byBO
b3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAg
ICBSdWJiZXItc3RhbXBlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU3NQotICAgICAgICBObyBsb2NhbGl6YXRpb24g
aW4gV2ViS2l0R3RrCi0KLSAgICAgICAgSW1wbGVtZW50ZWQgbG9jYWxpemF0aW9uIHN1cHBvcnQg
Zm9yIFdlYktpdEdUSysuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKiBwby9QT1RGSUxFUzogQWRkZWQuCi0gICAgICAgICogcG8vUkVBRE1FOiBB
ZGRlZC4KLSAgICAgICAgKiBwby93ZWJraXQucG90OiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Vi
a2l0X2Rvd25sb2FkX2NsYXNzX2luaXQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRl
LmNwcDoKLSAgICAgICAgKHdlYmtpdF9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
ZnJhbWUuY3BwOgotCi0yMDA5LTA0LTA1ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1MDQyCi0gICAgICAgIGRlc3Ryb3lp
bmcgd2VidmlldyB3aWRnZXQgZGlyZWN0bHkgY2F1c2VzIGNyYXNoLgotCi0gICAgICAgIERvIG5v
dCBjb25uZWN0IHRoZSBXZWJWaWV3IHRvIGl0cyBvd24gc2NyZWVuLWNoYW5nZWQgc2lnbmFsLCBz
ZXQgYQotICAgICAgICBkZWZhdWx0IGhhbmRsZXIgaW5zdGVhZC4KLQotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOS0wNC0wNSAgWGFuIExvcGV6ICA8eGxvcGV6QGln
YWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTA0MgotICAgICAg
ICBkZXN0cm95aW5nIHdlYnZpZXcgd2lkZ2V0IGRpcmVjdGx5IGNhdXNlcyBjcmFzaC4KLQotICAg
ICAgICBHdGtXaWRnZXQ6OnNjcmVlbi1jaGFuZ2VkIGNhbiBiZSBlbWl0dGVkIHdoZW4gYSB3aWRn
ZXQgaXMgYmVpbmcKLSAgICAgICAgZGVzdHJveWVkLCBwcm90ZWN0IGFnYWluc3QgaXQuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDQtMDUgIEphbiBNaWNo
YWVsIEFsb256byAgPGptYWxvbnpvQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
SG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIFtHdGtdIEltcGxlbWVudCBMYXlvdXRUZXN0Q29u
dHJvbGxlckd0azo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZAotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ0ODcKLQotICAgICAgICBVcGRhdGVkIGRv
Y3VtZW50YXRpb24gYW5kIHB1dCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZQotICAgICAgICBw
cml2YXRlLWJyb3dzaW5nIHNldHRpbmcgZm9yIFdlYktpdEd0ay4KLQotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2
YXRlOjp3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotCi0yMDA5LTA0LTAzICBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBSZW1vdmUgcHJl
LXByb2Nlc3NvciBjaGVja3MgZm9yIEdUSysgPj0gMi4xMCwgc2luY2Ugd2Ugbm93IHJlcXVpcmUK
LSAgICAgICAgYXQgbGVhc3QgdGhhdCB2ZXJzaW9uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Y2xpcGJvYXJkX2NsZWFy
X2NvbnRlbnRzX2NiKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZXNwb25kVG9D
aGFuZ2VkU2VsZWN0aW9uKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOS0wNC0wMiAgR3VzdGF2
byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgIFByb3NrdXJ5YWtvdi4KLQotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ4NDQKLSAgICAgICAgVW5pdCB0ZXN0
IFdlYktpdERvd25sb2FkCi0KLSAgICAgICAgRXh0cmEgY2hlY2tzIHRvIGF2b2lkIGNyYXNoaW5n
IGFuZCBhIGNyaXRpY2FsIG1lc3NhZ2Ugd2hlbgotICAgICAgICBwcm9wZXJ0eSBhY2Nlc3NvciBm
dW5jdGlvbnMgYXJlIGNhbGxlZCBiZWZvcmUgdGhlIGRvd25sb2FkIGlzCi0gICAgICAgIHN0YXJ0
ZWQuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAoX1dl
YktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25sb2FkX2dldF9wcm9ncmVzcyk6Ci0gICAg
ICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfZ2V0X2VsYXBzZWRf
dGltZSk6Ci0KLTIwMDktMDQtMDEgIENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2Fz
dHMuZGU+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAg
ICogdGVzdHMvdGVzdGRvd25sb2FkLmM6IEFkZGVkLgotICAgICAgICAodGVzdF93ZWJraXRfZG93
bmxvYWRfY3JlYXRlKToKLSAgICAgICAgKG1haW4pOiBBZGQgYW4gaW5pdGlhbCB1bml0IHRlc3Qg
Zm9yIGRvd25sb2FkaW5nLgotCi0yMDA5LTA0LTAxICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxn
dXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFVucmV2aWV3ZWQgdHlw
byBmaXhlcywgYW5kIG5hbWluZyBub3JtYWxpemF0aW9uIGluIHRoZQotICAgICAgICBkb2N1bWVu
dGF0aW9uLgotCi0gICAgICAgICogZG9jcy93ZWJraXRlbnZpcm9ubWVudC54bWw6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA5LTAzLTMxICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBVcGRhdGVkIGd0ay1kb2MgY29u
ZmlndXJhdGlvbiBmaWxlcyBmb3IgdGhlIDEuMS4xLCAxLjEuMiwgMS4xLjMsCi0gICAgICAgIGFu
ZCAxLjEuNCB2ZXJzaW9ucyBvZiBXZWJLaXRHVEsrLgotCi0gICAgICAgICogZG9jcy93ZWJraXRn
dGstZG9jcy5zZ21sOgotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLXNlY3Rpb25zLnR4dDoKLQot
MjAwOS0wMy0zMSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxh
Ym9yYS5jby51az4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDQ1Ci0gICAg
ICAgIFtHVEtdIERvY3VtZW50YXRpb24KLQotICAgICAgICBBZGRlZCBoZWFkZXIgZG9jdW1lbnRh
dGlvbiBmb3IgV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiBhbmQKLSAgICAgICAgV2ViS2l0V2Vi
UG9saWN5RGVjaXNpb24uCi0KLSAgICAgICAgQWRkZWQgbWlzc2luZyBkb2N1bWVudGF0aW9uIHBp
ZWNlcyBmb3IgV2ViS2l0U291cEF1dGhEaWFsb2csCi0gICAgICAgIFdlYktpdERvd25sb2FkIGFu
ZCBXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbi4KLQotICAgICAgICBXcm90ZSBhIHNlY3Rpb24gYWJv
dXQgdXNpbmcgdGhlIFdFQktJVF9ERUJVRyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KLQotICAgICAg
ICAqIGRvY3MvR05VbWFrZWZpbGUuYW06Ci0gICAgICAgICogZG9jcy93ZWJraXRlbnZpcm9ubWVu
dC54bWw6IEFkZGVkLgotICAgICAgICAqIGRvY3Mvd2Via2l0Z3RrLWRvY3Muc2dtbDoKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRz
b3VwYXV0aGRpYWxvZy5jOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0
aW9uLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3BwOgot
Ci0yMDA5LTAzLTMwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGd1c3Rhdm8ubm9yb25oYUBjb2xs
YWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0g
ICAgICAgIEludGVncmF0ZSBndGstZG9jIGludG8gdGhlIEd0aysgYnVpbGRzeXN0ZW0uCi0KLSAg
ICAgICAgQmFzZWQgb24gb3JpZ2luYWwgd29yayBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAg
ICAgSW50ZWdyYXRlIGd0ay1kb2MgaW50byBvdXIgYnVpbGRzeXN0ZW0uIFdlIGFyZSBmb3JjZWQg
dG8KLSAgICAgICAgdXNlIHJlY3Vyc2l2ZSBtYWtlIGZvciBndGstZG9jIGl0c2VsZiBhcyB0aGUg
dG8gYmUgaW5zdGFsbGVkCi0gICAgICAgIGd0ay1kb2MubWFrZSAoZG9uZSBieSBndGtkb2NpemUp
IGlzIG5vdCB3b3JraW5nIGluIGEgbm9uCi0gICAgICAgIHJlY3Vyc2l2ZSBlbnZpcm9ubWVudC4K
LQotICAgICAgICBUaGUgZG9jdW1lbnRhdGlvbiBjYW4gb25seSBiZSBnZW5lcmF0ZWQgd2hlbiBz
cmNkaXIgPT0gYnVpbGRkaXIuCi0gICAgICAgIEluIGFsbCBvdGhlciBjYXNlcyB0aGUgZ2VuZXJh
dGVkIGZpbGVzIHdpbGwgbm90IGJlIGZvdW5kLiBUaGlzCi0gICAgICAgIGxpbWl0YXRpb24gY2Fu
IGJlIGZvdW5kIGluIHBhbmdvIGFuZCBndGsrIGFzIHdlbGwuIFRoZXJlIGlzIG5vCi0gICAgICAg
IGVhc3kgd2F5IGFyb3VuZC4gVGhlIHJlc3VsdGluZyBodG1sIGRvY3VtZW50YXRpb24gd2lsbCBi
ZSBzYXZlZAotICAgICAgICBpbiB0aGUgc3JjZGlyIGFzIHdlbGwuCi0KLSAgICAgICAgKiBkb2Nz
L0dOVW1ha2VmaWxlLmFtOiBBZGRlZC4KLSAgICAgICAgKiBkb2NzL3ZlcnNpb24ueG1sLmluOiBB
ZGRlZC4KLSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay1kb2NzLnNnbWw6Ci0KLTIwMDktMDMtMzAg
IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+
Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4gRG9jdW1lbnRpbmcgd2hhdCBjaGFuZ2VkIHNpbmNlIHRo
ZSAxLjEuMyByZWxlYXNlLCBpbgotICAgICAgICB0aGUgR1RLKyBwb3J0LgotCi0gICAgICAgICog
TkVXUzoKLQotMjAwOS0wMy0zMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3Jv
bmhhQGNvbGxhYm9yYS5jby51az4KLQotICAgICAgICBVbnJldmlld2VkLiBBZGQgaW5mb3JtYXRp
b24gb24gdGhlIGJ1Zy1maXgtb25seSAxLjEuMyByZWxlYXNlLgotCi0gICAgICAgICogTkVXUzoK
LQotMjAwOS0wMy0zMCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDg3OAotICAgICAgICBbR1RLXSBVc2UgR3RrQmluZGlu
ZyBzeXN0ZW0gdG8gaGFuZGxlIGtleSBldmVudHMgaW4gV2ViVmlldwotCi0gICAgICAgIFVzZSBH
dGtCaW5kaW5nIHN5c3RlbSBmb3Iga2V5IGV2ZW50cyBpbiBXZWJLaXRXZWJWaWV3LiBBbGxvd3Mg
dGhlCi0gICAgICAgIHVzZXIgdG8gcmVjb25maWd1cmUgdGhlIGJpbmRpbmdzIGFuZCBmaXhlcyBh
IGJ1bmNoIG9mIGJ1Z3MgYWxvbmcKLSAgICAgICAgdGhlIHdheSAod2Ugd2VyZSBub3QgY2hlY2tp
bmcgbW9kaWZpZXIga2V5cyBpbiBtb3N0IGFjdGlvbnMpLgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X21vdmVfY3Vyc29yKToK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgotICAgICAgICAqIHdlYmtpdG1hcnNo
YWwubGlzdDoKLQotMjAwOS0wMy0yOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc5MAotICAgICAgICBbR1RLXSB3ZWJraXRzb3Vw
YXV0aGRpYWxvZy5oIGxhY2tzIFdFQktJVF9BUEkgYmVmb3JlIGZ1bmN0aW9uCi0KLSAgICAgICAg
U2V0IHRoZSByaWdodCB2aXNpYmlsaXR5IHRvIHRoZSBXZWJLaXRTb3VwQXV0aERpYWxvZyBnZXRf
dHlwZQotICAgICAgICBmdW5jdGlvbi4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRzb3VwYXV0
aGRpYWxvZy5oOgotCi0yMDA5LTAzLTI4ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3
ZWJraXQub3JnPgotCi0gICAgICAgIEd0ayBidWlsZCBmaXguIE5vdCByZXZpZXdlZC4KLQotICAg
ICAgICBGcmFtZUxvYWRlcjo6bG9hZFVSTCBhbmQgRnJhbWVMb2FkZXI6OmRldGFjaENoaWxkcmVu
IHdlbnQgcHJpdmF0ZQotICAgICAgICBwZXIgY2hhbmdlcyBpbiBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC80MjA1NS4gRm9sbG93Ci0gICAgICAgIE1hYydzIGJlaGF2aW91ciBhbmQg
dXNlIEZyYW1lTG9hZGVyOjpsb2FkVVJMSW50b0NoaWxkRnJhbWUgZm9yCi0gICAgICAgIGxvYWRV
UkwgYW5kIEZyYW1lTG9hZGVyOjpkZXRhY2hQYXJlbnQgZm9yIGRldGFjaENoaWxkcmVtLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOS0wMy0yNSAgR3VzdGF2byBOb3JvbmhhIFNp
bHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRo
ZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NzkzCi0gICAgICAgIFtHVEtdIHRvb2x0aXAgcG9zaXRpb24gZG9lc24ndCB1cGRhdGUgd2hlbiBo
b3ZlcmluZyBjb25zZWN1dGl2ZSBsaW5rcwotCi0gICAgICAgIFdvcmstYXJvdW5kIHRvb2x0aXBz
IG5vdCB1cGRhdGluZyB0aGVpciBsb2NhdGlvbiB3aGVuIHRoZSBlbGVtZW50cwotICAgICAgICBh
cmUgY29uc2VjdXRpdmUsIGJ5IGNsZWFyaW5nIHRoZSB0b29sdGlwIHdoZW4gaGFuZGxpbmcKLSAg
ICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6Om1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50KToKLQotMjAwOS0wMy0yMyAgQWxlamFuZHJvIEdhcmNpYSBD
YXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZy
ZXl0aGVyLgotCi0gICAgICAgIFtHdGtdIEN1cnJlbnQgQVBJIGRvZXMgbm90IGFsbG93IHVzIHRv
IG9wZW4gdGFyZ2V0PSJfYmxhbmsiIGxpbmtzCi0gICAgICAgIGluIG5ldyB0YWJzIGluc3RlYWQg
b2Ygd2luZG93cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM5MzIKLQotICAgICAgICBBZGRlZCBhIHNpZ25hbCB0byB0aGUgQVBJIChuZXctd2luZG93
LXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQpCi0gICAgICAgIHRoYXQgYWxsb3dzIHRoZSBicm93
c2VyIHRvIGRlY2lkZSB0aGUgcG9saWN5IGZvciB0aGUgbmV3IHdpbmRvdwotICAgICAgICByZXF1
ZXN0LCBpZiB0aGUgc2lnbmFsIGlzIG5vdCBoYW5kbGVkIHdlIG9wZW4gdGhlIG5ldyB3aW5kb3cg
YXMKLSAgICAgICAgdXN1YWwuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmdldE5hdmlnYXRpb25BY3Rpb24pOgot
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDMtMjAgIEphbiBNaWNoYWVsIEFsb256byAg
PGptYWxvbnpvQGdtYWlsLmNvbT4KLQotICAgICAgICBOb3QgcmV2aWV3ZWQuIEZpeCBzdHlsZSBp
c3N1ZXMgd2l0aCBteSBwcmV2aW91cyBjb21taXQgKHI0MTg2NikgYXMKLSAgICAgICAgc3VnZ2Vz
dGVkIGJ5IEhvbGdlciBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQ0OTMKLQotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJoaXN0b3J5aXRlbS5jOgotICAgICAgICAo
dGVzdF93ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfZGF0YSk6Ci0gICAgICAgICh0ZXN0X3dl
YmtpdF93ZWJfaGlzdG9yeV9pdGVtX2FsdGVybmF0ZV90aXRsZSk6Ci0KLTIwMDktMDMtMjAgIEph
biBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgW0dUS10gTWlzYyBwYXRjaGVzIGZvciBX
ZWJLaXRXZWJIaXN0b3J5SXRlbQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjQ0OTMKLQotICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBXZWJLaXRXZWJI
aXN0b3J5SXRlbQotCi0gICAgICAgICogdGVzdHMvdGVzdHdlYmhpc3RvcnlpdGVtLmM6IEFkZGVk
LgotICAgICAgICAod2ViX2hpc3RvcnlfaXRlbV9maXh0dXJlX3NldHVwKToKLSAgICAgICAgKHdl
Yl9oaXN0b3J5X2l0ZW1fZml4dHVyZV90ZWFyZG93bik6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF93
ZWJfaGlzdG9yeV9pdGVtX2dldF9kYXRhKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9oaXN0
b3J5X2l0ZW1fYWx0ZXJuYXRlX3RpdGxlKToKLSAgICAgICAgKG1haW4pOgotCi0yMDA5LTAzLTIw
ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0BnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIFNlcGFyYXRlIGd0ayB1bml0IHRl
c3RzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAz
OQotCi0gICAgICAgIFNwbGl0IHRoZSBjdXJyZW50IHNpbmdsZS1maWxlIHVuaXQgdGVzdCB0byBt
YWtlIGl0IG1vcmUKLSAgICAgICAgbW9kdWxhcml6ZWQgYW5kIG1hbmFnZWFibGUgaW4gdGhlIGZ1
dHVyZSBhcyBtb3JlIHVuaXQgdGVzdHMgYXJlCi0gICAgICAgIHdyaXR0ZW4uCi0KLSAgICAgICAg
KiB0ZXN0cy9tYWluLmM6IFJlbW92ZWQuCi0gICAgICAgICogdGVzdHMvdGVzdHdlYmJhY2tmb3J3
YXJkbGlzdC5jOiBDb3BpZWQgZnJvbSBXZWJLaXQvZ3RrL3Rlc3RzL21haW4uYy4KLSAgICAgICAg
KG1haW4pOgotICAgICAgICAqIHRlc3RzL3Rlc3R3ZWJmcmFtZS5jOiBDb3BpZWQgZnJvbSBXZWJL
aXQvZ3RrL3Rlc3RzL21haW4uYy4KLSAgICAgICAgKG1haW4pOgotCi0yMDA5LTAzLTE2ICBDaHJp
c3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gUm9iZW4uCi0KLSAgICAgICAgW2d0a10gQVBJIGltcGxlbWVudGF0aW9uOiB1cmwg
YW5kIHRpdGxlCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE0ODA3Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5n
ZUxvY2F0aW9uV2l0aGluUGFnZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOiBJbXBsZW1lbnQg
InRpdGxlIiBhbmQgInVyaSIgcHJvcGVydGllcyBhcyB3ZWxsCi0gICAgICAgIGFzIGFjY29yZGlu
ZyBmdW5jdGlvbnMuICJ1cmkiIGFsd2F5cyByZWZsZWN0cyB0aGUgY3VycmVudCBsb2NhdGlvbgot
ICAgICAgICBpbmNsdWRpbmcgbmF2aWdhdGlvbiBpbnNpZGUgdGhlIHNhbWUgcGFnZS4gdGl0bGUt
Y2hhbmdlZCBpcyBkZXByZWNhdGVkLgotCi0yMDA5LTAzLTE1ICBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nv
bi4KLQotICAgICAgICBGaXggZGVmYXVsdCBwb2xpY3kgZGVjaXNpb24gdG8gYmUgaWdub3JlLCBv
biBNSU1FIGNoZWNrcywgaWYKLSAgICAgICAgV2ViS2l0IGRvZXNuJ3Qga25vdyBob3cgdG8gaGFu
ZGxlIHRoZSBNSU1FIHR5cGUuIFRoZSBkb2N1bWVudGF0aW9uCi0gICAgICAgIGlzIGFscmVhZHkg
Y29ycmVjdCwgYW5kIHRoaXMgd2FzIGFuIG92ZXJzaWdodCB3aGVuIHRoZSBwb2xpY3kKLSAgICAg
ICAgZGVjaXNpb24gY29kZSB3YXMgZmlyc3QgY29tbWl0dGVkLiBTaW5jZSAxLjEuMiB3aWxsIGJl
IHRoZSBmaXJzdAotICAgICAgICByZWxlYXNlIHRvIHN1cHBvcnQgZG93bmxvYWQsIHRoZXJlIGlz
IG5vIHByYWN0aWNhbCBjaGFuZ2UgaW4KLSAgICAgICAgYmVoYXZpb3IuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlKToKLQot
MjAwOS0wMy0xNSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAgICAgICAgKiBO
RVdTOiB1cGRhdGUgZm9yIDEuMS4yLgotCi0yMDA5LTAzLTE0ICBKYW4gTWljaGFlbCBBbG9uem8g
IDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5
dGhlci4KLQotICAgICAgICBbR1RLXSB1c2Ugb2YgY29uZmlybSBkaWFsb2cgKHllcy9ubykgY2F1
c2VzIHNlZ2ZhdWx0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDk0MAotCi0gICAgICAgIENoYW5nZSB0aGUgc2NyaXB0LWNvbmZpcm0gbWFyc2hhbGxl
ciBmcm9tIE9CSkVDVCxTVFJJTkcsQk9PTEVBTiB0bwotICAgICAgICBPQkpFQ1QsU1RSSU5HLFBP
SU5URVIKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3
ZWJraXRtYXJzaGFsLmxpc3Q6Ci0KLTIwMDktMDMtMTIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5ICBQcm9za3VyeWFr
b3YuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
NTUzCi0gICAgICAgIFtHVEtdIEltcHJvdmVtZW50cyB0byBXZWJLaXREb3dubG9hZAotCi0gICAg
ICAgIFJlbmFtZSAnc3RhdGUnIHRvICdzdGF0dXMnIHRvIG1hdGNoIHRoZSBuYW1pbmcgaW4gdGhl
IGZyYW1lCi0gICAgICAgIGxvYWRlciByZXdvcmsgdGhhdCB3ZSBwbGFuIHRvIGxhbmQgc29vbmlz
aCwgYW5kIG1ha2UgaXQgYQotICAgICAgICBwcm9wZXJ0eSwgZm9yIHRoZSBzYW1lIHJlYXNvbi4K
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6Ci0gICAgICAgIChfV2ViS2l0
RG93bmxvYWRQcml2YXRlOjopOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Vi
a2l0X2Rvd25sb2FkX2ZpbmFsaXplKToKLSAgICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZhdGU6
OndlYmtpdF9kb3dubG9hZF9nZXRfcHJvcGVydHkpOgotICAgICAgICAoX1dlYktpdERvd25sb2Fk
UHJpdmF0ZTo6d2Via2l0X2Rvd25sb2FkX3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgIChfV2ViS2l0
RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfY2xhc3NfaW5pdCk6Ci0gICAgICAgIChf
V2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfaW5pdCk6Ci0gICAgICAgIChf
V2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfc3RhcnQpOgotICAgICAgICAo
X1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25sb2FkX2NhbmNlbCk6Ci0gICAgICAg
IChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfc2V0X2Rlc3RpbmF0aW9u
X3VyaSk6Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRf
Z2V0X3N0YXR1cyk6Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93
bmxvYWRfc2V0X3N0YXR1cyk6Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJr
aXRfZG93bmxvYWRfcmVjZWl2ZWRfZGF0YSk6Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2
YXRlOjp3ZWJraXRfZG93bmxvYWRfZmluaXNoZWRfbG9hZGluZyk6Ci0gICAgICAgIChfV2ViS2l0
RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfZXJyb3IpOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXRkb3dubG9hZC5oOgotCi0yMDA5LTAzLTEyICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEg
IDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSAgUHJvc2t1cnlh
a292LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NDU1MwotICAgICAgICBbR1RLXSBJbXByb3ZlbWVudHMgdG8gV2ViS2l0RG93bmxvYWQKLQotICAg
ICAgICBJbXByb3ZlZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgZG93bmxvYWQtcmVxdWVzdGVkIHNp
Z25hbCwgdG8gbWFrZQotICAgICAgICBpdHMgdXNhZ2UgY2xlYXIuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDMtMTIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDU0MQotICAg
ICAgICBTY3JvbGxpbmcgd2l0aCBob21lIGFuZCBlbmQga2V5cyBub3QgYWx3YXlzIHdvcmtzCi0K
LSAgICAgICAgQWxzbyBtYWtlIHBhZ2UgdXAgYW5kIHBhZ2UgZG93biBrZXlzIGJlIGhhbmRsZWQg
YnkgdGhlIHdlYnZpZXcga2V5Ci0gICAgICAgIGV2ZW50IGNvZGUsIHNvIHRoYXQgdGhleSBhbHNv
IHdvcmsgaW4gY2FzZXMgd2hlcmUgdGhlIEdUSysKLSAgICAgICAgc2Nyb2xsYmFycyBkb24ndCBo
YW5kbGUgdGhlbSBkaXJlY3RseSwgbGlrZSBpbiB0aGUgYnVnemlsbCdzIHBhdGNoCi0gICAgICAg
IHJldmlldyBwYWdlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0y
MDA5LTAzLTEyICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ1NDEKLSAgICAgICAgU2Nyb2xsaW5nIHdpdGggaG9tZSBh
bmQgZW5kIGtleXMgbm90IGFsd2F5cyB3b3JrcwotCi0gICAgICAgIE1ha2UgaG9tZSBhbmQgZW5k
IGtleXMgYmVoYXZlIG1vcmUgY29uc2lzdGVudGx5IGZvciBzY3JvbGxpbmcgdGhlCi0gICAgICAg
IHZpZXcuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDMt
MTIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNDI1NAotICAgICAgICBbR1RLXSBzcGFjZWJhciBkb2Vzbid0IHNjcm9s
bCBkb3duCi0KLSAgICAgICAgTWFrZSBzcGFjZWJhciBhbmQgc2hpZnQrc3BhY2ViYXIgc2Nyb2xs
IGxpa2UgcGFnZSB1cCBhbmQgZG93bgotICAgICAgICByZXNwZWN0aXZlbHkgd291bGQuCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDMtMTAgIFhhbiBMb3Bl
eiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5
dGhlci4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQ0OTMKLSAgICAgICAgW0dUS10gTWlzYyBwYXRjaGVzIGZvciBXZWJLaXRXZWJIaXN0b3J5SXRl
bQotCi0gICAgICAgIE9ubHkgcnVuIGNvZGUgaW4gZGlzcG9zZSBvbmNlIHBlciBpbnN0YW5jZS4K
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0gICAgICAgIChf
V2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9kaXNw
b3NlKToKLQotMjAwOS0wMy0xMCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDQ5MwotICAgICAgICBbR1RLXSBNaXNjIHBh
dGNoZXMgZm9yIFdlYktpdFdlYkhpc3RvcnlJdGVtCi0KLSAgICAgICAgQ2FsbCBkZXJlZigpIG9u
IG91ciBpbnRlcm5hbCBIaXN0b3J5SXRlbSBvbiBkaXNwb3NlLCBhcyB3ZSBhbHdheXMKLSAgICAg
ICAgYWNxdWlyZSBpdCB3aXRoIGEgcmVsZWFzZVJlZigpIGNhbGwgdG8gYSBQYXNzUmVmUHRyLCB3
aGljaCBwYXNzZXMKLSAgICAgICAgb3duZXJzaGlwLgotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYmhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZh
dGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2Rpc3Bvc2UpOgotCi0yMDA5LTAzLTEwICBYYW4g
TG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIg
RnJleXRoZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI0NDkzCi0gICAgICAgIFtHVEtdIE1pc2MgcGF0Y2hlcyBmb3IgV2ViS2l0V2ViSGlzdG9y
eUl0ZW0KLQotICAgICAgICByZXR1cm4gZm9vPyBmb28gOiBOVUxMID09IHJldHVybiBmb28KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OmNvcmUpOgotCi0yMDA5LTAzLTExICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3
ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAg
ICAgICBHdGtdIEltcGxlbWVudCBMYXlvdXRUZXN0Q29udHJvbGxlckd0azo6c2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjQ0ODcKLQotICAgICAgICBBZGQgcHJpdmF0ZSBicm93c2luZyBvcHRpb24gImVuYWJs
ZS1wcml2YXRlLWJyb3dzaW5nIiB0byBXZWJLaXRXZWJTZXR0aW5ncy4KLQotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQ
cml2YXRlOjopOgotICAgICAgICAoX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6d2Via2l0X3dl
Yl9zZXR0aW5nc19jbGFzc19pbml0KToKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZh
dGU6OndlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKF9XZWJLaXRX
ZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAg
ICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3NfY29w
eSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA5LTAzLTExICBK
YW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBbR1RLXSBCYWNrRm9yd2FyZCBoaXN0
b3J5IGxlYWs/Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTUyOAotCi0gICAgICAgIERvbid0IHJlZiB0aGUgaGlzdG9yeSBpdGVtcyB3aGVuIHJldHVy
bmluZyB0aGUgYmFjay9mb3J3YXJkIGxpc3QKLSAgICAgICAgQWRkZWQgdGVzdF93ZWJraXRfd2Vi
X2hpc3RvcnlfaXRlbV9saWZldGltZSB0ZXN0IGNhc2UgZm9yIHRoaXMuCi0KLSAgICAgICAgKiB0
ZXN0cy9tYWluLmM6Ci0gICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2xpZmV0
aW1lKToKLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9vcmRlcik6
IFN0eWxlIGZpeC4KLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9h
ZGRfaXRlbSk6IFN0eWxlIGZpeC4KLSAgICAgICAgKG1haW4pOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgotICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3
YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRf
bGlzdF93aXRoX2xpbWl0KToKLSAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2
YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2xpc3Rfd2l0aF9saW1p
dCk6Ci0KLTIwMDktMDMtMTAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCi0KLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDkzCi0gICAgICAgIFtHVEtdIE1pc2Mg
cGF0Y2hlcyBmb3IgV2ViS2l0V2ViSGlzdG9yeUl0ZW0KLQotICAgICAgICBVc2UgZ19oYXNoX3Rh
YmxlX25ld19mdWxsIHNvIHdlIGNhbiBzYXZlIHRoZSBtYW51YWwgdW5yZWYgb24gdGhlCi0gICAg
ICAgIHZhbHVlcyB3aGVuIHJlbW92aW5nIHRoZW0gZnJvbSB0aGUgdGFibGUuCi0KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwOgotICAgICAgICAoX1dlYktpdFdlYkhp
c3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZGlzcG9zZSk6Ci0KLTIw
MDktMDMtMTAgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjQ0OTMKLSAgICAgICAgW0dUS10gTWlzYyBwYXRjaGVzIGZvciBX
ZWJLaXRXZWJIaXN0b3J5SXRlbQotCi0gICAgICAgIFVzZSAnaWYgKGZvbyknIGluc3RlYWQgb2Yg
J2lmIChmb28gIT0gTlVMTCknLCBwZXIgY29kaW5nIHN0eWxlCi0gICAgICAgIGd1aWRlbGluZXMu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwOgotICAgICAgICAo
X1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X2hpc3RvcnlfaXRlbV9yZW1vdmUp
OgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0
b3J5X2l0ZW1fZ2V0X3RpdGxlKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZh
dGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9hbHRlcm5hdGVfdGl0bGUpOgotICAgICAg
ICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1f
Z2V0X3VyaSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRf
d2ViX2hpc3RvcnlfaXRlbV9nZXRfb3JpZ2luYWxfdXJpKToKLSAgICAgICAgKF9XZWJLaXRXZWJI
aXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9sYXN0X3Zpc2l0
ZWRfdGltZSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRf
d2ViX2hpc3RvcnlfaXRlbV9nZXRfdGFyZ2V0KToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5
SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2lzX3RhcmdldF9pdGVtKToKLSAg
ICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9p
dGVtX2dldF9jaGlsZHJlbik6Ci0KLTIwMDktMDMtMTAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2Fs
aWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCi0KLSAg
ICAgICAgQ29ycmVjdCByZXR1cm4gdmFsdWUgdG8gZmFsc2UgaW5zdGVhZCBvZiBOVUxMLgotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKF9XZWJL
aXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2lzX3Rhcmdl
dF9pdGVtKToKLQotMjAwOS0wMy0wOCAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNr
ZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0KLSAgICAg
ICAgQWRkIGphdmFzY3JpcHQtcHJvZmlsaW5nLWVuYWJsZWQgcHJvcGVydHkgYW5kIGltcGxlbWVu
dCBpdC4gVGhpcwotICAgICAgICB3aWxsIGVuYWJsZS9kaXNhYmxlIHRoZSBwcm9maWxlciBvbiB0
aGUgSW5zdHBlY3RvckNvbnRyb2xsZXIuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0
ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwOgotICAgICAgICAo
X1dlYktpdFdlYkluc3BlY3RvclByaXZhdGU6OndlYmtpdF93ZWJfaW5zcGVjdG9yX2NsYXNzX2lu
aXQpOgotICAgICAgICAoX1dlYktpdFdlYkluc3BlY3RvclByaXZhdGU6OndlYmtpdF93ZWJfaW5z
cGVjdG9yX3NldF9wcm9wZXJ0eSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0
ZTo6d2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKF9XZWJLaXRX
ZWJJbnNwZWN0b3JQcml2YXRlOjp3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRfaW5zcGVjdG9yX2Ns
aWVudCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA5LTAzLTA1
ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IE9sbGllai4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjQyOTUKLSAgICAgICAgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9hZGRf
aXRlbSBuZWVkcyBhIFNpbmNlIHRhZwotCi0gICAgICAgIEFkZCBtaXNzaW5nIFNpbmNlIHRhZyB0
byB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9pdGVtCi0gICAgICAgIGRvY3VtZW50
YXRpb24uCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDoK
LQotMjAwOS0wMy0wNSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0NDE3Ci0gICAgICAgIFtHVEtdIFdlYktpdERvd25s
b2FkJ3MgX2NhbmNlbCBhbmQgX2Rpc3Bvc2UgbWV0aG9kcyBtYXkgZW1pdCB3YXJuaW5ncwotCi0g
ICAgICAgIE5VTEwtY2hlY2sgZm9yIHRpbWVyIG9uIF9jYW5jZWwgYW5kIF9kaXNwb3NlLCB0byBh
dm9pZCBiYWQKLSAgICAgICAgd2FybmluZ3MuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93
bmxvYWQuY3BwOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25s
b2FkX2ZpbmFsaXplKToKLSAgICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZhdGU6OndlYmtpdF9k
b3dubG9hZF9jYW5jZWwpOgotCi0yMDA5LTAzLTAyICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3Jn
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KLQotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQyODcKLSAgICAgICAgW0dUS10gTW92ZSBh
dXRoIGRpYWxvZyBmZWF0dXJlIHRvIFdlYktpdC8KLQotICAgICAgICBBZGQgV2ViS2l0U291cEF1
dGhEaWFsb2cgYW5kIGFkZCBpdCB0byB0aGUgc2Vzc2lvbiBpbiB3ZWJraXRfaW5pdC4KLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoKLSAgICAgICAgKGN1cnJlbnRUb3BsZXZl
bENhbGxiYWNrKToKLSAgICAgICAgKHdlYmtpdF9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0c291cGF1dGhkaWFsb2cuYzogQWRkZWQuCi0gICAgICAgICh3ZWJraXRfc291cF9hdXRoX2Rp
YWxvZ19jbGFzc19pbml0KToKLSAgICAgICAgKHdlYmtpdF9zb3VwX2F1dGhfZGlhbG9nX2luaXQp
OgotICAgICAgICAod2Via2l0X3NvdXBfYXV0aF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2luaXQp
OgotICAgICAgICAoZnJlZV9hdXRoRGF0YSk6Ci0gICAgICAgIChzZXRfcGFzc3dvcmRfY2FsbGJh
Y2spOgotICAgICAgICAocmVzcG9uc2VfY2FsbGJhY2spOgotICAgICAgICAodGFibGVfYWRkX2Vu
dHJ5KToKLSAgICAgICAgKHNob3dfYXV0aF9kaWFsb2cpOgotICAgICAgICAoZmluZF9wYXNzd29y
ZF9jYWxsYmFjayk6Ci0gICAgICAgIChzZXNzaW9uX2F1dGhlbnRpY2F0ZSk6Ci0gICAgICAgIChh
dHRhY2gpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRzb3VwYXV0aGRpYWxvZy5oOiBBZGRlZC4K
LQotMjAwOS0wMy0wMyAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgotCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgyNgotICAgICAgICBbR3RrXSBJ
bXBsZW1lbnQgV2ViS2l0RG93bmxvYWQKLQotICAgICAgICBJbXBsZW1lbnQgZG93bmxvYWQsIGFu
ZCBwcm92aWRlIGEgbmljZSBvYmplY3Qgd3JhcHBpbmcgdGhlCi0gICAgICAgIGRvd25sb2FkIHBy
b2Nlc3MuIEluaXRpYWwgd29yayBkb25lIGJ5IE1hcmNvIEJhcmlzaW9uZSBhbmQKLSAgICAgICAg
UGllcnJlLUx1YyBCZWF1ZG9pbiBmb3IgQ29sbGFib3JhLgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDb250ZXh0
TWVudUNsaWVudDo6ZG93bmxvYWRVUkwpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRvd25sb2FkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnN0YXJ0RG93
bmxvYWQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXQuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0ZGVmaW5lcy5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6IEFkZGVk
LgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6KToKLSAgICAgICAgKF9XZWJLaXRE
b3dubG9hZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9kaXNwb3NlKToKLSAgICAgICAgKF9XZWJL
aXREb3dubG9hZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9maW5hbGl6ZSk6Ci0gICAgICAgIChf
V2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfZ2V0X3Byb3BlcnR5KToKLSAg
ICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9zZXRfcHJvcGVy
dHkpOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25sb2FkX2Ns
YXNzX2luaXQpOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25s
b2FkX2luaXQpOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25s
b2FkX25ldyk6Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxv
YWRfb3Blbl9zdHJlYW1fZm9yX3VyaSk6Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRl
Ojp3ZWJraXRfZG93bmxvYWRfY2xvc2Vfc3RyZWFtKToKLSAgICAgICAgKF9XZWJLaXREb3dubG9h
ZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9zdGFydCk6Ci0gICAgICAgIChfV2ViS2l0RG93bmxv
YWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfY2FuY2VsKToKLSAgICAgICAgKF9XZWJLaXREb3du
bG9hZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9nZXRfdXJpKToKLSAgICAgICAgKF9XZWJLaXRE
b3dubG9hZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9nZXRfbmV0d29ya19yZXF1ZXN0KToKLSAg
ICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9zZXRfcmVzcG9u
c2UpOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25sb2FkX2dl
dF9zdWdnZXN0ZWRfZmlsZW5hbWUpOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6
d2Via2l0X2Rvd25sb2FkX2dldF9kZXN0aW5hdGlvbl91cmkpOgotICAgICAgICAoX1dlYktpdERv
d25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25sb2FkX3NldF9kZXN0aW5hdGlvbl91cmkpOgotICAg
ICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25sb2FkX2dldF9zdGF0ZSk6
Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfZ2V0X3Rv
dGFsX3NpemUpOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6d2Via2l0X2Rvd25s
b2FkX2dldF9jdXJyZW50X3NpemUpOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6
d2Via2l0X2Rvd25sb2FkX2dldF9wcm9ncmVzcyk6Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQ
cml2YXRlOjp3ZWJraXRfZG93bmxvYWRfZ2V0X2VsYXBzZWRfdGltZSk6Ci0gICAgICAgIChfV2Vi
S2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfcmVjZWl2ZWRfZGF0YSk6Ci0gICAg
ICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfZmluaXNoZWRfbG9h
ZGluZyk6Ci0gICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRf
ZXJyb3IpOgotICAgICAgICAoX1dlYktpdERvd25sb2FkUHJpdmF0ZTo6RG93bmxvYWRDbGllbnQ6
OkRvd25sb2FkQ2xpZW50KToKLSAgICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZhdGU6OkRvd25s
b2FkQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgotICAgICAgICAoX1dlYktpdERvd25sb2Fk
UHJpdmF0ZTo6RG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKLSAgICAgICAgKF9XZWJL
aXREb3dubG9hZFByaXZhdGU6OkRvd25sb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToKLSAg
ICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZhdGU6OkRvd25sb2FkQ2xpZW50OjpkaWRGYWlsKToK
LSAgICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZhdGU6OkRvd25sb2FkQ2xpZW50Ojp3YXNCbG9j
a2VkKToKLSAgICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZhdGU6OkRvd25sb2FkQ2xpZW50Ojpj
YW5ub3RTaG93VVJMKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuaDogQWRkZWQu
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICogd2Via2l0bWFyc2hhbC5saXN0OgotCi0yMDA5LTAz
LTAxICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICAgW0d0a10gZ2V0IHRoZSBI
VFRQIGxheW91dCB0ZXN0cyBnb2luZwotICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI0MjU5Ci0KLSAgICAgICAgQWRkZWQgQVBJIHRvIGdldCB0aGUgcmVz
cG9uc2UgbWltZSB0eXBlIGZyb20gYSBmcmFtZS4gV2UgbmVlZCB0aGlzCi0gICAgICAgIHNvIHdl
IGNhbiBkZWNpZGUgaWYgd2UgbmVlZCB0byBkdW1wIHRoZSBmcmFtZSBhcyB0ZXh0IG9yIGl0cwot
ICAgICAgICByZW5kZXIgdHJlZQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotCi0yMDA5LTAzLTAxICBKYW4g
TWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBbR3RrXSBnZXQgdGhlIEhUVFAgbGF5b3V0
IHRlc3RzIGdvaW5nCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNDI1OQotCi0gICAgICAgIENyZWF0ZSBhIFdlYktpdFdlYkhpc3RvcnlJdGVtIGZvciBl
YWNoIFdlYkNvcmU6Okhpc3RvcnlJdGVtIHdoZW4KLSAgICAgICAgbmVjZXNzYXJ5LgotICAgICAg
ICBBZGQgbmVjZXNzYXJ5IEFQSSBhZGRpdGlvbnMgZm9yIHVzIHRvIGJlIGFibGUgdG8gZHVtcCBh
IFdlYktpdFdlYkhpc3RvcnlJdGVtCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5o
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgotICAgICAg
ICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3
YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGlzdF93aXRoX2xpbWl0KToKLSAgICAgICAgKF9XZWJLaXRX
ZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dl
dF9iYWNrX2xpc3Rfd2l0aF9saW1pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3Rv
cnlpdGVtLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtp
dF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVfaXRlbSk6Ci0gICAgICAgIChfV2ViS2l0
V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXcpOgotICAg
ICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0
ZW1fbmV3X3dpdGhfZGF0YSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRl
Ojp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdGFyZ2V0KToKLSAgICAgICAgKF9XZWJLaXRX
ZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2lzX3RhcmdldF9p
dGVtKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX2dldF9jaGlsZHJlbik6Ci0gICAgICAgIChXZWJLaXQ6OmNvcmUpOgotICAg
ICAgICAoV2ViS2l0OjpraXQpOgotCi0yMDA5LTAzLTAxICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJp
c3RpYW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhl
ci4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF9lbmNvZGlu
Zyk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDogSW1wbGVtZW50ICdlbmNvZGlu
ZycgYW5kICdjdXN0b20tZW5jb2RpbmcnCi0gICAgICAgIHByb3BlcnRpZXMgYXMgd2VsbCBhcyB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2VuY29kaW5nLgotCi0yMDA5LTAzLTAxICBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEgIDxnbnNAZ25vbWUub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQgc2ltcGxlIHdv
cmRpbmcgZml4IGZvciB0aGUgTkVXUyBmaWxlLgotCi0gICAgICAgICogTkVXUzoKLQotMjAwOS0w
My0wMSAgWGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4KLQotICAgICAgICBBZGQgTkVXUyBmaWxl
IHRvIHRyYWNrIHByb2dyZXNzIGJldHdlZW4gcmVsZWFzZXMuCi0KLSAgICAgICAgKiBORVdTOiBB
ZGRlZC4KLQotMjAwOS0wMi0yOCAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0
cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6IExldCB3ZWJraXRfd2ViX3ZpZXdfb3BlbiBhZGQg
ZmlsZTovLyBpZiBhCi0gICAgICAgIGxvY2FsZSBwYXRoIGlzIHBhc3NlZCBmb3IgY29tcGF0aWJp
bGl0eSwgc2luY2Ugd2UgdXNlZCB0byBzdXBwb3J0IHRoYXQuCi0KLTIwMDktMDItMjcgIEd1c3Rh
dm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
RGF2aWQgSHlhdHQuCi0KLSAgICAgICAgQXV0b21hdGljYWxseSBpZ25vcmUgZW1wdHkgcmVxdWVz
dHMgdG8gYXZvaWQgY3Jhc2hpbmcuIFRoaXMgZml4ZXMKLSAgICAgICAgdGhlIGNyYXNoIGluIGZh
c3QvbG9hZGVyL2VtcHR5LWVtYmVkLXNyYy1hdHRyaWJ1dGUuaHRtbC4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUpOgotICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKLQotMjAwOS0wMi0yNyAgWGFu
IExvcGV6ICA8eGFuQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJv
c2t1cnlha292LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNDIyMQotICAgICAgICBbR1RLXSBEbyBub3QgZW1pdCBsb2FkLWZpbmlzaGVkIHdoZW4g
YmVpbmcgZGlzcG9zZWQKLQotICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkKCkgaXMg
Y2FsbGVkIGZyb20gZGlzcG9zZSgpIG9uCi0gICAgICAgIFdlYktpdFdlYlZpZXcuIFRoaXMgZXZl
bnR1YWxseSBjYWxscyBwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbgotICAgICAgICBp
biBGcmFtZUxvYWRlckNsaWVudEd0aywgd2hpY2ggZW1pdHMgbG9hZC1maW5pc2hlZC4gQWRkCi0g
ICAgICAgIGEgJ2Rpc3Bvc2luZycgZmxhZyB0byBXZWJWaWV3IHRoYXQgd2UgY2FuIGNoZWNrIGhl
cmUsIHNvCi0gICAgICAgIHdlIGF2b2lkIGVtaXR0aW5nIHNpZ25hbHMgb24gb2JqZWN0cyBvbiB0
aGVpciB3YXkgdG8gYmUKLSAgICAgICAgZGVzdHJveWVkLiAgVGhpcyBmaXhlcyBhIGJ1bmNoIG9m
IGNyaXRpY2FsIHdhcm5pbmdzIHdoZW4KLSAgICAgICAgY2xvc2luZyBhIGxvYWRpbmcgV2ViVmll
dy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0ZpbmlzaGVk
Tm90aWZpY2F0aW9uKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOS0wMi0yNyAgWGFuIExvcGV6ICA8
eGFuQGdub21lLm9yZz4KLQotICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBBbGV4ZXkgUHJvc2t1
cnlha292LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNDIyMgotICAgICAgICBbR1RLXSBSZW1vdmUgY2hlY2tzIGZvciBvbGQgZ2xpYiB2ZXJzaW9u
cwotCi0gICAgICAgIGxpYnNvdXAsIHdoaWNoIGlzIGEgaGFyZCBkZXBlbmRlbmN5LCBuZWVkcyBh
dCBsZWFzdCBnbGliIDIuMTUuMywKLSAgICAgICAgc28gcmVtb3ZlIGFsbCBnbGliIGNoZWNrcyBm
b3IgdmVyc2lvbnMgb2xkZXIgdGhhbiB0aGF0LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwOgotCi0yMDA5LTAyLTI2ICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5NDcKLSAgICAgICAgW0dUS10gTWlzc2lu
ZyBIVFRQIEF1dGggY2hhbGxlbmdlCi0KLSAgICAgICAgQWRkIG5ldyBtYXJzaGFsZXJzIGxpc3Qu
Ci0KLSAgICAgICAgKiB3ZWJraXRtYXJzaGFsLmxpc3Q6IEFkZGVkLgotCi0yMDA5LTAyLTI2ICBY
YW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQ
cm9za3VyeWFrb3YuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MTkzCi0gICAgICAgIFtHVEtdIENoZWNrYnV0dG9ucyBub3QgYWN0aXZhdGVkIHdp
dGggc3BhY2UKLQotICAgICAgICBEbyBub3Qgc3dhbGxvdyBrZXkgZXZlbnRzIHdpdGggR3RrSU1D
b250ZXh0IGZvciBub24tZWRpdGFibGUKLSAgICAgICAgY29udGVudC4KLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKToKLQotMjAwOS0wMi0yNiAgWGFuIExv
cGV6ICA8eGFuQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1
cnlha292LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNDEwMwotICAgICAgICBbR1RLXSBVc2UgY29ycmVjdCByZXR1cm4gdmFsdWUgZm9yIFdlYlZp
ZXcgYnV0dG9uLXJlbGVhc2UgaGFuZGxlcgotCi0gICAgICAgIFdlIGFyZSByZXR1cm5pbmcgd2hh
dGV2ZXIgdGhlIGNvcmUgY29kZSB0ZWxscyB1cyBpdCBkaWQsIGJ1dCB0aGlzCi0gICAgICAgIGRv
ZXMgbm90IHBsYXkgd2VsbCB3aXRoIHRoZSBHVEsrIG1vZGVsLiBHVEsrIGluIGdlbmVyYWwgZXhw
ZWN0cyBpdAotICAgICAgICB3aWxsIHNlZSBhIGJ1dHRvbi1yZWxlYXNlIGlmIGl0IHNhdyBhIGJ1
dHRvbi1wcmVzcyBhbmQgbm8KLSAgICAgICAgbW90aW9uL2xlYXZlL2V0YyBldmVudHMgaW4gYmV0
d2Vlbi4gRXZlbnRIYW5kbGVyLmNwcCB3aWxsLCBpbiBzb21lCi0gICAgICAgIGNhc2VzLCBub3Qg
aGFuZGxlIHByZXNzIGJ1dCBoYW5kbGUgcmVsZWFzZSwgY29uZnVzaW5nIHRoZSBwYXJlbnQKLSAg
ICAgICAgY29udGFpbmVyIG9mIHRoZSBXZWJWaWV3LgotCi0gICAgICAgIEFzIGEgd29ya2Fyb3Vu
ZCByZXR1cm4gYWx3YXlzIEZBTFNFIGZvciBidXR0b24tcmVsZWFzZSAodGhpcyBpcwotICAgICAg
ICB0aGUgc2FtZSB0aGFuIHRoZSBXaW5kb3dzIHBvcnQgZG9lcykuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDItMjYgIFhhbiBMb3BleiAgPHhhbkBnbm9t
ZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU4NQotICAgICAgICBb
Z3RrXSBnZXR8c2V0IGVuY29kaW5nIGFwaQotCi0gICAgICAgIEFkZCBmdW5jdGlvbnMgdG8gZ2V0
IGFuZCBzZXQgYSBjdXN0b20gZW5jb2RpbmcgYW4gYSB2aWV3LgotCi0gICAgICAgICogd2Via2l0
L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0g
ICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2N1c3RvbV9lbmNvZGluZyk6Ci0gICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2N1c3RvbV9lbmNvZGluZyk6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYnZpZXcuaDoKLQotMjAwOS0wMi0yMyAgWGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4K
LQotICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgotCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYyNAotICAgICAgICBbU09V
UF1bR1RLXSBOZWVkIEFQSSB0byBnZXQgU291cFNlc3Npb24gZnJvbSBXZWJLaXQuCi0KLSAgICAg
ICAgQWRkIEFQSSB0byBnZXQgdGhlIGRlZmF1bHQgc291cCBzZXNzaW9uLgotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
Lmg6Ci0KLTIwMDktMDItMjMgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KLQotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MjQKLSAgICAgICAgW1NPVVBdW0dUS10gTmVl
ZCBBUEkgdG8gZ2V0IFNvdXBTZXNzaW9uIGZyb20gV2ViS2l0LgotCi0gICAgICAgIEFkZCBzb3Vw
IGRlcGVuZGVuY3kgdG8gcGMgZmlsZS4KLQotICAgICAgICAqIHdlYmtpdC5wYy5pbjoKLQotMjAw
OS0wMi0yMyAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0KLSAgICAgICAgW0dUS10gQmFjayAvIEZvcndh
cmQgaGlzdG9yeSBtZW51cyBhcmUgZmxpcHBlZAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2OTQKLQotICAgICAgICBEb24ndCBjYWxsIGdfbGlzdF9y
ZXZlcnNlIHdoZW4gcmV0dXJuaW5nIHRoZSBiYWNrIG9yIGZvcndhcmQgbGlzdC4KLQotICAgICAg
ICAqIHRlc3RzL21haW4uYzoKLSAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRf
bGlzdF9vcmRlcik6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
YmFja2ZvcndhcmRsaXN0LmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQ
cml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3Rfd2l0
aF9saW1pdCk6Ci0gICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Vi
a2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQpOgotCi0y
MDA5LTAyLTE3ICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgotCi0gICAgICAgIFJ1YmJlci1z
dGFtcGVkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCi0KLSAgICAgICAgUmVzdG9yaW5nIGNoYW5n
ZSBsYW5kZWQgaW4gcjQwNzE1LCB3aGljaCB3YXMgYWNjaWRlbnRhbGx5IHVuZG9uZQotICAgICAg
ICBieSByNDA5MTguCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotCi0y
MDA5LTAyLTEyICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBodHRwOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE3NgotICAgICAgICBbR1RLXSBBUEk6IGhv
dmVyaW5nLW92ZXItbGluayBhbmQgd2Via2l0X3dlYl92aWV3X29wZW4gL19sb2FkX2ZvbwotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViZnJhbWUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDogSW50cm9kdWNlIHdlYmtpdF93ZWJfZnJhbWVf
bG9hZF91cmksCi0gICAgICAgIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9zdHJpbmcsIHdlYmtpdF93
ZWJfdmlld19sb2FkX3VyaSBhbmQKLSAgICAgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfcmVxdWVz
dCBhbmQgdW5pZnkgaW1wbGVtZW50YXRpb25zLgotCi0yMDA5LTAyLTExICBEaW1pdHJpIER1cHVp
cy1sYXRvdXIgIDxkdXB1aXNsYXRvdXJAYXBwbGUuY29tPgotCi0gICAgICAgIFN0dWIgb3V0IElu
c3BlY3RvckNsaWVudDo6aGlkZGVuUGFuZWxzLgotCi0gICAgICAgIFJldmlld2VkIGJ5IFRpbW90
aHkgSGF0Y2hlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6aGlkZGVuUGFuZWxzKToK
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLQotMjAwOS0w
Mi0wNyAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQot
ICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBVc2UgdG9Ob3JtYWxpemVkUmFuZ2UoKS4KLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OmNsaXBib2FyZF9nZXRfY29udGVudHNfY2IpOgotCi0yMDA5LTAyLTA2ICBHZW9mZnJl
eSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgQnVpbGQgZml4LgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeVJlZGlyZWN0TGlu
a3MpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0K
LTIwMDktMDItMDYgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIFJlcG9ydGVkIGJ5IERhbmllbCBNYWNr
cy4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MTIKLQotICAgICAgICBVc2UgcG9zaXRpdmUgbnVtYmVycyBmb3IgdGhlIHRhcmdldCBpbmZvIElE
cywgZ3RrX3RhcmdldF9saXN0X2FkZAotICAgICAgICBjYXN0cyB0aGVtIHRvICdndWludCcuIEFs
c28ganVzdCBzdGFydCB0aGVtIGZyb20gMCwgc2luY2UgdGhlCi0gICAgICAgIHZhbHVlcyBhcmUg
bm90IHJlbGV2YW50IG9yIG1hZ2ljIGluIGFueSB3YXksIHRoZXkgYXJlIGp1c3QgdXNlZCBhcwot
ICAgICAgICB0b2tlbnMgZm9yIHRoZSB1c2VyIG9mIHRoZSBBUEkuCi0KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5oOgotCi0yMDA5LTAyLTA2ICBYYW4gTG9wZXogIDx4YW5AZ25vbWUu
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCi0KLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzY5Ci0KLSAgICAg
ICAgRG8gbm90IHVzZSBlbXB0eSBSZXNvdXJjZUVycm9yIGVycm9ycy4KLQotICAgICAgICBSYXRo
ZXIgY3JlYXRlIGJvZ3VzIGJ1dCBub24tbnVsbCBlcnJvcnMsIHNpbmNlIHNvbWUgY29kZXBhdGhz
Ci0gICAgICAgIGV4cGVjdCB0aGVzZS4gRm9yIGV4YW1wbGUsIHNlZSBEb2N1bWVudExvYWRlcjo6
bWFpblJlY2VpdmVkRXJyb3IuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5j
ZWxsZWRFcnJvcik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2Vk
RXJyb3IpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd1VS
TEVycm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdEZv
clBvbGljeUNoYW5nZUVycm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKToKLQotMjAwOS0wMi0wNiAgWGFu
IExvcGV6ICA8eGFuQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJv
c2t1cnlha292LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzc2MQotCi0gICAgICAgIFVzZSB0d28tYXJnIEtVUkwgY3Rvci4KLQotICAgICAgICBX
ZSBhcmUgdXNpbmcgdGhlIG9uZS1hcmcgY3RvciBjdXJyZW50bHksIGJ1dDoKLQotICAgICAgICAt
IEl0IGFzc3VtZXMgdGhlIHN0cmluZ3MgYXJlIGFscmVhZHkgZW5jb2RlZCwgd2hpY2ggaXMgbm90
Ci0gICAgICAgIG5lY2VzYXJpbHkgdGhlIGNhc2UgZm9yIHVzLgotCi0gICAgICAgIC0gVGhlIHNp
bmdsZS1hcmd1bWVudCBLVVJMIGN0b3JzIGV4cGVjdCB0aGVpciBpbnB1dCB0byBhbHJlYWR5IGJl
Ci0gICAgICAgIHRoZSBvdXRwdXQgb2YgYSBwcmV2aW91cyBLVVJMOjpwYXJzZSBjYWxsLCBzbyBm
b3IgdGhlIGdlbmVyYWwKLSAgICAgICAgY2FzZSAoaWUsIHJhbmRvbSB1c2VyIGlucHV0KSB3ZSBu
ZWVkIHRvIHVzZSB0aGUgdHdvLWFyZyBjdG9yCi0gICAgICAgIGFueXdheS4KLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgotCi0yMDA5LTAyLTA1ICBBYXJvbiBCb29kbWFuIDxhYUBjaHJvbWl1bS5vcmc+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KLQotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDgKLSAgICAgICAgQWRkcyBkb2N1bWVudEVs
ZW1lbnRBdmFpbGFibGUoKSBjYWxsYmFjayB0byBGcmFtZUxvYWRlckNsaWVudC4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSk6Ci0gICAg
ICAgIFN0dWIgb3V0IGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLSAgICAgICAgRGl0dG8uCi0KLTIwMDkt
MDItMDMgIEhpcm95dWtpIElrZXpvZSAgPHBvaW5jYXJlQGlrZXpvZS5uZXQ+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk4OAotICAgICAgICBbR1RLXSBOZWVkIGEgcHVibGlj
IG1ldGhvZCB0byBhZGQgYSBXZWJLaXRXZWJIaXN0b3J5SXRlbSB0bwotICAgICAgICBXZWJLaXRX
ZWJCYWNrRm9yd2FyZExpc3QuCi0KLSAgICAgICAgV3JhcCBXZWJDb3JlOjpCYWNrRm9yd2FyZExp
c3Q6OmFkZEl0ZW0uCi0KLSAgICAgICAgKiB0ZXN0cy9tYWluLmM6Ci0gICAgICAgICh0ZXN0X3dl
YmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0ZW0pOgotICAgICAgICAobWFpbik6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6Ci0gICAgICAgIChf
V2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRf
bGlzdF9hZGRfaXRlbSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlz
dC5oOgotCi0yMDA5LTAyLTAyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+Ci0K
LSAgICAgICAgQnVpbGQgZml4LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgotCi0yMDA5LTAyLTAyICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+Ci0KLSAg
ICAgICAgQnVpbGQgZml4LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoK
LQotMjAwOS0wMi0wMiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgotCi0gICAg
ICAgIEJ1aWxkIGZpeC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZy
YW1lKToKLQotMjAwOS0wMi0wMiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCi0KLSAgICAgICAgVHJhY2sgcmVkaXJl
Y3RzIGluIGdsb2JhbCBoaXN0b3J5LgotCi0gICAgICAgIEtlZXAgR1RLIGJ1aWxkaW5nLgotCi0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeUZvclJlZGlyZWN0V2l0
aG91dEhpc3RvcnlJdGVtKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5oOgotCi0yMDA5LTAyLTAyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+Ci0KLSAgICAgICAgQnVpbGQgZml4LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAwOS0wMi0wMiAgQW5kZXJzIENhcmxzc29uICA8
YW5kZXJzY2FAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4u
Ci0KLSAgICAgICAgVXBkYXRlIGZvciBjaGFuZ2VzIHRvIFdlYkNvcmUuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAwOS0wMi0wMiAgSG9sZ2VyIEhh
bnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBNb3ZlIEZyYW1lOjpmb3JjZUxheW91dCwgRnJh
bWU6OmFkanVzdFBhZ2VIZWlnaHQgYW5kIEZyYW1lOjpmb3JjZUxheW91dFdpdGhQYWdlV2lkdGhS
YW5nZSB0byBGcmFtZVZpZXcKLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM0MjgKLQotICAgICAgICBGcmFtZVZpZXc6OmZvcmNlTGF5b3V0IGNvdWxk
IGJlIGtpbGxlZCBidXQgdGhlIGNvbW1lbnQgbWlnaHQKLSAgICAgICAgY29udGFpbiBhIHZhbHVl
IG92ZXIgdGhlIHRoZSBwbGFpbiBGcmFtZVZpZXc6OmxheW91dC4uLgotCi0gICAgICAgIEFkanVz
dCB0aGUgV2ViQ29yZS9XZWJLaXQgY29uc3VtZXJzIG9mIHRoZXNlIG1ldGhvZHMuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dCk6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA5LTAxLTMwICBHZW9mZnJleSBHYXJlbiAgPGdnYXJl
bkBhcHBsZS5jb20+Ci0KLSAgICAgICAgQnVpbGQgZml4LgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgotCi0yMDA5LTAxLTMwICBIb2xnZXIgSGFucyBQZXRl
ciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEhhdXNtYW5uLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjA1NgotCi0gICAgICAgIEtpbGwgRnJhbWVMb2FkZXJDbGllbnQuY3BwLCBtb3Zl
IHRoZSBjb2RlIG92ZXIgdG8gRnJhbWU6OmNyZWF0ZVZpZXcKLQotICAgICAgICBGcmFtZUxvYWRl
ckNsaWVudCBpcyBzdXBwb3NlZCB0byBiZSBhbiBpbnRlcmZhY2UsIG1vdmUgdGhlCi0gICAgICAg
IHRvIGJlIHNoYXJlZCBjb2RlIHRvIEZyYW1lIHdoaWNoIGlzIGEgY29udHJvbGxlciBhbmQgaXMK
LSAgICAgICAgYWxsb3dlZCB0byBjcmVhdGUgYSBGcmFtZVZpZXcuCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKLQotMjAw
OS0wMS0yNyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbgotCi0gICAgICAgIFJld29yayBGcmFtZUxvYWRlckNsaWVu
dCB0byB3b3JrIG9uIGEgQ2FjaGVkRnJhbWUgYmFzaXMgaW5zdGVhZCBvZiBDYWNoZWRQYWdlCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRG
cmFtZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9D
b21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMDktMDEtMjUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgotCi0gICAgICAgIFRyeSB0byBmaXggR1RLIGJ1aWxkLgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBBZGRlZCBpbmNsdWRlIG9mIEZsb2F0UXVhZC5oLgotCi0y
MDA5LTAxLTEzICBBbGV4YW5kZXIgVi4gQnV0ZW5rbyAgPGFsZXhAZGlnaXF1YmUuY29tPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNzkKLQotICAgICAgICBGaXggY3Jhc2gg
b24gV2ViVmlldyBkaXNwb3NlIHN0YWdlLgotCi0gICAgICAgIEFkZCBudWxsIGNoZWNrcyB0byB3
ZWJraXRfd2ViX3ZpZXdfc2V0X3Njcm9sbF9hZGp1c3RtZW50cyAgYW5kCi0gICAgICAgIHdlYmtp
dF93ZWJfdmlld19nZXRfYWNjZXNzaWJsZSBhcyB0aGV5IGdldCBjYWxsZWQgZnJvbSB3aXRoaW4K
LSAgICAgICAgdGhlIGRpc3Bvc2UuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6Ci0KLTIwMDktMDEtMTEgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIFVzZSBOVUxMIGluc3RlYWQg
b2YgMCB3aGVuIGRlYWxpbmcgd2l0aCBwb2ludGVycywgYXMgYWdyZWVkIGZvcgotICAgICAgICB0
aGUgY29kaW5nIHN0eWxlIG9mIHRoZSBXZWJLaXQgR1RLIHBvcnQgZm9yIGl0cyBHVEsrIHNwZWNp
ZmljCi0gICAgICAgIGZpbGVzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
OgotCi0yMDA5LTAxLTExICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBBZGQgcGFkZGluZyB0byB0aGUg
Y2xhc3Mgc3RydWN0cyB0byBhdm9pZCBicmVha2luZyBBQkkgZWFjaCB0aW1lCi0gICAgICAgIHdl
IGFkZCBzdHVmZiB0aGVyZS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVz
dC5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaDoKLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2VibmF2aWdhdGlvbmFjdGlvbi5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwb2xp
Y3lkZWNpc2lvbi5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6Ci0KLTIwMDkt
MDEtMDkgIEJlbmphbWluIE90dGUgIDxvdHRlQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTk0Ci0KLSAgICAgICAgbWFrZSB0aGUgZmluYWxpemUgZnVuY3Rp
b24gdGhlIGRpc3Bvc2UgZnVuY3Rpb24uIE5vdCByZWxlYXNpbmcgaGVsZAotICAgICAgICBvYmpl
Y3RzIGluIGRpc3Bvc2UgY2FuIGNhdXNlIGNyYXNoZXJzIGxhdGVyLgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA5LTAxLTA5ICBCZW5qYW1pbiBPdHRlICA8b3R0
ZUBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5NAotCi0g
ICAgICAgIFJlbW92ZSBicm9rZW4gY29kZSB0aGF0IHVzZXMgYSBmYWxsYmFjay4gVGhlIHByZXZp
b3VzIGNvZGUgZGlkIDIKLSAgICAgICAgcG9saWN5IGRlY2lzaW9ucyB3aGljaCBjYXVzZWQgY3Jh
c2hlcy4KLSAgICAgICAgRG93bmxvYWQgaXMgc3RpbGwgbm90SW1wbGVtZW50ZWQoKTsKLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5jcHA6Ci0gICAgICAgIChfV2Vi
S2l0V2ViUG9saWN5RGVjaXNpb25Qcml2YXRlOjp3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9k
b3dubG9hZCk6Ci0KLTIwMDktMDEtMDMgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIFtHVEtdIE5lZWQg
YSBwdWJsaWMgbWV0aG9kIHRvIHJlbG9hZCB2aWV3IGJ5cGFzc2luZyBjYWNoZQotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MTUKLQotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5oOgotCi0gICAgICAgIEFkZCB3ZWJraXRfd2ViX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZS4K
LQotMjAwOS0wMS0wNyAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNo
Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KLQotICAgICAg
ICBBZGQgcHJpdmF0ZSBBUEkgdG8gZ2V0IHRoZSBudW1iZXIgb2YgYWN0aXZlIGFuaW1hdGlvbnMg
b2YKLSAgICAgICAgYSBmcmFtZS4gVGhpcyBpcyByZXF1aXJlZCBieSB0aGUgRHVtcFJlbmRlclRy
ZWUgdXRpbGl0eS4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLQotMjAwOS0wMS0wNSAgQWRhbSBUcmVhdCAg
PGFkYW0udHJlYXRAdG9yY2htb2JpbGUuY29tPgotCi0gICAgICAgIEZpeCBidWlsZAotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMDktMDEtMDUgIEFk
YW0gVHJlYXQgIDxhZGFtLnRyZWF0QHRvcmNobW9iaWxlLmNvbT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBHZW9yZ2UgU3RhaWtvcy4KLQotICAgICAgICBCdWlsZCBmaXggZm9yIGNvbnRlbnRzU2l6
ZUNoYW5nZWQKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6Ci0g
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMDktMDEtMDQg
IEFkYW0gVHJlYXQgIDxhZGFtLnRyZWF0QHRvcmNobW9iaWxlLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBHZW9yZ2UgU3RhaWtvcy4KLQotICAgICAgICBNYWtlIHRoZSBndGsgcG9ydCBidWls
ZCB3aXRoIHRoZSBuZXcgZml4ZWRMYXlvdXRTaXplIGZlYXR1cmUKLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgotCi0yMDA5
LTAxLTAzICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgIFtHVEtdIEZpeCB0
aGUgcmVmZXJlbmNlIGNvdW50aW5nIG9mIFdlYktpdFdlYkZyYW1lcwotCi0gICAgICAgIFRoZSBv
d25lcnNoaXAgaXMgdGhlIGZvbGxvd2luZzogV2ViS2l0V2ViVmlldyBvd25zIGEgV2ViQ29yZTo6
UGFnZS4KLSAgICAgICAgV2ViS2l0V2ViVmlldyBpcyBjcmVhdGluZyBvbmUgV2ViS2l0V2ViRnJh
bWUgd2hpY2ggd2lsbCBiZSB0aGUKLSAgICAgICAgbWFpbkZyYW1lIG9mIHRoZSBXZWJDb3JlOjpQ
YWdlIChoYXZpbmcgdGhlIHJlZmVyZW5jZSBvbiB0aGUgRnJhbWUpLgotCi0gICAgICAgIFRoZSBG
cmFtZUxvYWRlckNsaWVudCBoYXMgdGhlIHJlZmVyZW5jZSBvZiB0aGUgV2ViS2l0V2ViRnJhbWUg
Zm9yCi0gICAgICAgIHRoZSBtYWluIGZyYW1lIGFuZCBhbHNvIGFueSBvdGhlciBmcmFtZS4gVGhp
cyBtZWFucyB3aGVuIHRoZQotICAgICAgICBXZWJDb3JlOjpGcmFtZSBnb2VzIGF3YXkgdGhlIEZy
YW1lTG9hZGVyQ2xpZW50IHdpbGwgZ28gYXdheSB3aGljaAotICAgICAgICB3aWxsIG5vcm1hbGx5
IHJlbW92ZSB0aGUgbGFzdCByZWZlcmVuY2Ugb2YgdGhlIFdlYktpdFdlYkZyYW1lLiBCZWNhdXNl
Ci0gICAgICAgIGFuIEFQSSB1c2VyIG1pZ2h0IGhhdmUgZ19vYmplY3RfcmVmJ2VkIHRoZSBXZWJL
aXRXZWJGcmFtZSBudWxsCi0gICAgICAgIGNoZWNrcyBoYWQgdG8gYmUgYWRkZWQgdG8gV2ViS2l0
V2ViRnJhbWUuCi0KLSAgICAgICAgRm9yIFdlYkNvcmU6OkZyYW1lcyBjcmVhdGVkIGJ5IHRoZSBG
cmFtZUxvYWRlckNsaWVudCB0aGUgb3duZXJzaGlwCi0gICAgICAgIHdpbGwgYmUgcGFzc2VkIGRv
d24gdG8gdGhlIEZyYW1lVHJlZSwgdGhlIFdlYktpdFdlYkZyYW1lIGlzIG5vdCBob2xkaW5nCi0g
ICAgICAgIGEgcmVmZXJlbmNlIHRvIHRoZSBXZWJDb3JlOjpGcmFtZS4KLQotICAgICAgICBEbyBu
b3QgZ19vYmplY3RfdW5yZWYgdGhlIG1haW5GcmFtZSBpbiB0aGUgZGVzdHJ1Y3RvciBvZiB0aGUK
LSAgICAgICAgV2ViS2l0V2ViRnJhbWUgYXMgdGhpcyB3aWxsIGhhcHBlbiBmcm9tIHdpdGhpbiB0
aGUgV2ViQ29yZTo6UGFnZQotICAgICAgICBkZXN0cnVjdGlvbi4gRG8gbm90IGhvbGQgYSByZWZl
cmVuY2UgdG8gdGhlIFdlYkNvcmU6OkZyYW1lIChjaXJjbGUpIGluCi0gICAgICAgIFdlYktpdFdl
YkZyYW1lLCBhZGQgbnVsbCBjaGVja3MgYXMgdGhlIFdlYkNvcmU6OkZyYW1lIG1pZ2h0IGhhdmUg
Z29uZQotICAgICAgICBhd2F5LiBEbyBub3Qga2VlcCB0cmFjayBvZiB0aGUgRnJhbWVMb2FkZXJD
bGllbnQgaW4gdGhlIHByaXZhdGUKLSAgICAgICAgc3RydWN0dXJlcyBhcyBpdCB3YXMgbW9zdGx5
IHVudXN1ZWQuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxODM3Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRlckRl
c3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFt
ZSk6Ci0gICAgICAgICogdGVzdHMvbWFpbi5jOiBBZGQgdGVzdCBjYXNlLgotICAgICAgICAodGVz
dF93ZWJraXRfd2ViX2ZyYW1lX2NyZWF0ZV9kZXN0cm95KToKLSAgICAgICAgKHRlc3Rfd2Via2l0
X3dlYl9mcmFtZV9saWZldGltZSk6Ci0gICAgICAgIChtYWluKToKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmNvcmUpOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNw
cDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDktMDEtMDIgIEhv
bGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+Ci0KLSAgICAgICAg
VW5yZXZpZXdlZCBidWlsZCBmaXguCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEd0ay5jcHA6Ci0KLTIwMDgtMTItMzEgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0
aGVyICA8emVja2VAc2VsZmlzaC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBa
aW1tZXJtYW5uLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA0NQotCi0gICAgICAgIEFkZCBzZWN0aW9uIGluZm9ybWF0aW9uIGZvciBWaWV3LCBG
cmFtZSwgU2V0dGluZ3MsIEhpc3RvcnlJdGVtLCBCYWNrRm9yd2FyZExpc3QsIFdpbmRvd0ZlYXR1
cmVzIGFuZCBJbnNwZWN0b3IKLQotICAgICAgICBBZGQgc2VjdGlvbiBpbmZvcm1hdGlvbiBhbmQg
aW5mb3JtYWwgZXhhbXBsZXMgZm9yIFdlYktpdFdlYlZpZXcsCi0gICAgICAgIFdlYktpdFdlYkZy
YW1lLCBXZWJLaXRXZWJTZXR0aW5ncywgV2ViS2l0V2ViTmV0d29ya1JlcXVlc3QsCi0gICAgICAg
IFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzLCBXZWJLaXRXZWJIaXN0b3J5SXRlbSwKLSAgICAgICAg
V2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0IGFuZCBXZWJLaXRXZWJJbnNwZWN0b3IuCi0KLSAgICAg
ICAgKiBkb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50eHQ6IERlY2lkZSB0byBub3QgZG9jdW1lbnQg
c29tZSBiaXRzCi0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcDoKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0
b3J5aXRlbS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmg6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGlu
Z3MuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1cmVzLmNwcDoKLQotMjAwOC0xMi0yMSAgWGFuIExvcGV6
ICA8eGFuQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIu
Ci0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDky
Ci0gICAgICAgIFtHVEtdIE1pZGRsZS1tb3VzZSBjbGljayBzaG91bGQgYWxsb3cgb3BlbmluZyBh
IFVSTCBpbiBhIG5ldyB0YWIKLQotICAgICAgICBBZGQgbW91c2UgYnV0dG9uIGFuZCBrZXlib2Fy
ZCBzdGF0ZSBtb2RpZmllcnMgaW5mbyB0byBuYXZpZ2F0aW9uIGFjdGlvbi4KLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbik6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwOgot
ICAgICAgICAoX1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlOjopOgotICAgICAgICAo
X1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlOjp3ZWJraXRfd2ViX25hdmlnYXRpb25f
YWN0aW9uX2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgIChfV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlv
blByaXZhdGU6OndlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fc2V0X3Byb3BlcnR5KToKLSAg
ICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZp
Z2F0aW9uX2FjdGlvbl9jbGFzc19pbml0KToKLSAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9u
QWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKToK
LSAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9u
YXZpZ2F0aW9uX2FjdGlvbl9nZXRfbW9kaWZpZXJfc3RhdGUpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmg6Ci0KLTIwMDgtMTItMTkgIE1hcmNvIEJhcmlzaW9u
ZSAgPG1hcmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NTYyCi0gICAgICAgIFtndGtdIEltcGxlbWVudCBXZWJQb2xpY3lEZWxl
Z2F0ZSBtZXRob2RzCi0KLSAgICAgICAgT3JpZ2luYWwgd29yayBieSBQaWVycmUtTHVjIEJlYXVk
b2luLiBGaW5hbCB0b3VjaGVzIGJ5IEd1c3Rhdm8KLSAgICAgICAgTm9yb25oYS4KLQotICAgICAg
ICBUaGlzIGltcGxlbWVudHMgdGhlIGRlbGVnYXRlcyBtZXRob2RzIG9mIFdlYlBvbGljeURlbGVn
YXRlLgotICAgICAgICBTaW5jZSBHdGsrL0MgZG9lc24ndCBoYXZlIGRlbGVnYXRlIG1ldGhvZHMs
IHRoZXkgYXJlIHJlcGxhY2VkIHdpdGgKLSAgICAgICAgc2lnbmFscy4KLQotICAgICAgICBBIG5l
dyBvYmplY3QgV2ViS2l0V2ViUG9saWN5RGVjaXNpb24gYWxsb3dzIHRoZSBicm93c2VyIHRvIGRl
bGF5IGl0cwotICAgICAgICByZXNwb25zZSBpbiBjZXJ0YWluIGNhc2VzLiBXZWJLaXRXZWJOYXZp
Z2F0aW9uQWN0aW9uIGNvbnRhaW5zIHRoZQotICAgICAgICBpbmZvcm1hdGlvbiBhYm91dCB3aGF0
IGNhdXNlZCBhIG5hdmlnYXRpb24gcmVxdWVzdC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OkZyYW1lTG9hZGVyQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6On5GcmFtZUxvYWRlckNsaWVudCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlKToKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVy
Q2xpZW50OjpjYW5jZWxQb2xpY3lDaGVjayk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVy
Q2xpZW50OjpjYW5TaG93TUlNRVR5cGUpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdC5oOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXRkZWZpbmVzLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUu
Y3BwOgotICAgICAgICAoV2ViS2l0OjpraXQpOgotICAgICAgICAoV2ViS2l0Ojpjb3JlKToKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJuYXZpZ2F0aW9uYWN0aW9uLmNwcDogQWRkZWQuCi0gICAgICAgIChfV2ViS2l0V2ViTmF2aWdh
dGlvbkFjdGlvblByaXZhdGU6Oik6Ci0gICAgICAgIChfV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlv
blByaXZhdGU6OndlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X3Byb3BlcnR5KToKLSAg
ICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZp
Z2F0aW9uX2FjdGlvbl9zZXRfcHJvcGVydHkpOgotICAgICAgICAoX1dlYktpdFdlYk5hdmlnYXRp
b25BY3Rpb25Qcml2YXRlOjp3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2luaXQpOgotICAg
ICAgICAoX1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlOjp3ZWJraXRfd2ViX25hdmln
YXRpb25fYWN0aW9uX2ZpbmFsaXplKToKLSAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0
aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFzc19pbml0KToKLSAg
ICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZp
Z2F0aW9uX2FjdGlvbl9nZXRfcmVhc29uKToKLSAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9u
QWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfcmVhc29uKToK
LSAgICAgICAgKF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9u
YXZpZ2F0aW9uX2FjdGlvbl9nZXRfb3JpZ2luYWxfdXJpKToKLSAgICAgICAgKF9XZWJLaXRXZWJO
YXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRf
b3JpZ2luYWxfdXJpKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlv
bi5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb24uY3Bw
OiBBZGRlZC4KLSAgICAgICAgKF9XZWJLaXRXZWJQb2xpY3lEZWNpc2lvblByaXZhdGU6OndlYmtp
dF93ZWJfcG9saWN5X2RlY2lzaW9uX2NsYXNzX2luaXQpOgotICAgICAgICAoX1dlYktpdFdlYlBv
bGljeURlY2lzaW9uUHJpdmF0ZTo6d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25faW5pdCk6Ci0g
ICAgICAgIChfV2ViS2l0V2ViUG9saWN5RGVjaXNpb25Qcml2YXRlOjp3ZWJraXRfd2ViX3BvbGlj
eV9kZWNpc2lvbl9uZXcpOgotICAgICAgICAoX1dlYktpdFdlYlBvbGljeURlY2lzaW9uUHJpdmF0
ZTo6d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fdXNlKToKLSAgICAgICAgKF9XZWJLaXRXZWJQ
b2xpY3lEZWNpc2lvblByaXZhdGU6OndlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX2lnbm9yZSk6
Ci0gICAgICAgIChfV2ViS2l0V2ViUG9saWN5RGVjaXNpb25Qcml2YXRlOjp3ZWJraXRfd2ViX3Bv
bGljeV9kZWNpc2lvbl9kb3dubG9hZCk6Ci0gICAgICAgIChfV2ViS2l0V2ViUG9saWN5RGVjaXNp
b25Qcml2YXRlOjp3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9jYW5jZWwpOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5oOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuaDoK
LQotMjAwOC0xMi0xOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCi0KLSAgICAgICAgLSBzdHViIG91dCBGcmFtZUxvYWRl
ckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKS4KLQotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKToKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotCi0yMDA4LTEyLTE4ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBTdWxs
aXZhbi4KLQotICAgICAgICBTdHViIG91dCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQoKQotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQpOgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMDgtMTItMTMgIEhv
bGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQ2FtZXJvbiBad2FyaWNoLgotCi0gICAgICAgIFtHVEtdIEZpeCBjcmFzaCB3
aXRoIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2ZyYW1lLWNyZWF0aW9uLXJlbW92YWwuaHRtbAot
Ci0gICAgICAgIENhbGwgV2ViQ29yZTo6RnJhbWU6OmluaXQgYWZ0ZXIgdGhlIGZyYW1lIGhhcyBi
ZWVuIGdpdmVuCi0gICAgICAgIGEgbmFtZSBhbmQgYmVlbiBhZGRlZCB0byB0aGUgRnJhbWVUcmVl
IG9mIHRoZSBwYXJlbnQuCi0KLSAgICAgICAgUmVtb3ZpbmcgdGhlIGNhbGwgdG8gaW5pdCBpcyBm
aW5lIGFzIEZyYW1lTG9hZGVyQ2xpZW50R3RrOjpjcmVhdGVGcmFtZQotICAgICAgICBpcyB0aGUg
b25seSB1c2VyIG9mIHdlYmtpdF93ZWJfZnJhbWVfaW5pdF93aXRoX3dlYl92aWV3IGFuZCBpcyBh
bHJlYWR5Ci0gICAgICAgIGNhbGxpbmcgV2ViQ29yZTo6RnJhbWU6OmluaXQuCi0KLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotCi0yMDA4LTEyLTEzICBBZGFtIEJlcmdrdmlz
dCA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhv
bGdlciBGcmV5dGhlci4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI3NzkKLQotICAgICAgICBDaGVjayBmb3IgR1RLIHZlcnNpb24gPj0gMi4xNC4w
IGJlZm9yZSB1c2luZyBndGtfdGVzdF9pbml0LgotCi0gICAgICAgICogdGVzdHMvbWFpbi5jOgot
ICAgICAgICAobWFpbik6Ci0KLTIwMDgtMTItMTMgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2Vr
QGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwMzkKLQotICAgICAg
ICBJbXBsZW1lbnQgYW5pbWF0aW9uIGFuZCB0cmFuc2l0aW9uIHBhdXNpbmcgYXMgbmVlZGVkIGJ5
IER1bXBSZW5kZXJUcmVlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotCi0yMDA4LTExLTI5ICBIb2xnZXIg
SGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJ1YmJl
ci1zdGFtcGVkIGJ5IFNpbW9uIEhhdXNtYW5uLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NAotCi0gICAgICAgIE1ha2Ugd2Via2l0X3dlYl92
aWV3X3NldF93aW5kb3dfZmVhdHVyZXMgaW50ZXJuYWwKLQotICAgICAgICBDYWxsaW5nIHRoaXMg
bWV0aG9kIHdpbGwgbm90IHJlc3VsdCBpbiBhIG5vdGlmeTo6d2luZG93LWZlYXR1cmVzCi0gICAg
ICAgIHNpZ25hbCBiZWluZyBlbWl0dGVkLiBUaGlzIHdvdWxkIGFsbG93IHJlcGxhY2luZyBhCi0g
ICAgICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmUgb24gYSBXZWJLaXRXZWJWaWV3IHdpdGhvdXQg
YW55b25lIG5vdGljaW5nCi0gICAgICAgIGFuZCB0aGUgY2xpZW50IGNvZGUgd291bGQgbW9uaXRv
ciB0aGUgd3Jvbmcgb2JqZWN0LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3cp
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5oOgotCi0yMDA4LTEyLTA5ICBCcmV0dCBXaWxzb24gIDxicmV0dHdAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCi0KLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTc3Ci0KLSAgICAgICAg
QWRkIGEgY2FsbGJhY2sgb24gQ2hyb21lQ2xpZW50IHRoYXQgdGhlIHN0YXRlIG9mIGZvcm0gZWxl
bWVudHMgb24KLSAgICAgICAgdGhlIHBhZ2UgaGFzIGNoYW5nZWQuIFRoaXMgaXMgdG8gYWxsb3cg
Y2xpZW50cyBpbXBsZW1lbnRpbmcgc2Vzc2lvbgotICAgICAgICBzYXZpbmcgdG8ga25vdyB3aGVu
IHRoZSBjdXJyZW50IHN0YXRlIGlzIGRpcnR5LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Zm9ybVN0
YXRlRGlkQ2hhbmdlKToKLQotMjAwOC0xMi0wNyAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIg
IDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
LQotICAgICAgICBbR3RrK10gVXNlIGdsaWIncyB1bml0IHRlc3QgZmFjaWxpdGllcyB0byB0ZXN0
IHRoZSBXZWJLaXQvR3RrKyBBUEkKLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI0OTEKLQotICAgICAgICBBZGQgdGhlIHNrZWxldG9uIHRvIFdlYktp
dC9ndGsvdGVzdHMgYW5kIGludGVncmF0ZSB0aGF0IGludG8gdGhlCi0gICAgICAgIGJ1aWxkc3lz
dGVtLiBUZXN0aW5nIHN1cHBvcnQgd2FzIGFkZGVkIGluIGdsaWIgMi4xNi4gRm9yIHZlcnNpb25z
Ci0gICAgICAgIHVzaW5nIGdsaWIgPCAyLjE2IHdlIGNvbXBpbGUgYW4gZW1wdHkgYXBwbGljYXRp
b24uCi0KLSAgICAgICAgKiB0ZXN0cy9tYWluLmM6IEFkZGVkLiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MzcKLSAgICAgICAgd2lsbCBiZSB0aGUgZmlyc3QgY29u
c3VtZXIuCi0gICAgICAgIChtYWluKToKLQotMjAwOC0xMi0wNiAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0Ci0K
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjcxCi0K
LSAgICAgICAgUmVuZGVyZXI6OmNhcmV0UmVjdCgpIGlzIG5vdyBsb2NhbENhcmV0UmVjdCgpLCB3
aGljaCBuZWVkcwotICAgICAgICBjb252ZXJ0aW5nIHRvIGFic29sdXRlIGNvb3JkaW5hdGVzICh0
YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQpLgotCi0gICAgICAgICogd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwOgotCi0yMDA4LTEyLTAxICBYYW4gTG9wZXogIDx4YW5AZ25vbWUub3JnPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU1MwotICAgICAgICBSZW1vdmUgdW5u
ZWVkZWQgR09iamVjdCBjYXN0cy4KLQotICAgICAgICBSZW1vdmUgdW5uZWVkZWQgY2FzdHMgdG8g
R09iamVjdCBpbiBmdW5jdGlvbnMgdGhhdCB0YWtlIGEgZ3BvaW50ZXIKLSAgICAgICAgYXJndW1l
bnQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAg
ICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgotICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6c2V0VG9vbGJhcnNWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50Ojp0b29sYmFyc1Zpc2libGUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNl
dFN0YXR1c2JhclZpc2libGUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnN0YXR1
c2JhclZpc2libGUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFNjcm9sbGJh
cnNWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzVmlz
aWJsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0TWVudWJhclZpc2libGUp
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6Om1lbnViYXJWaXNpYmxlKToKLSAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKToKLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0
b3JDbGllbnQ6OmNyZWF0ZVBhZ2UpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5j
cHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViV2luZG93
RmVhdHVyZXNQcml2YXRlOjp3ZWJraXRfd2ViX3dpbmRvd19mZWF0dXJlc19uZXdfZnJvbV9jb3Jl
X2ZlYXR1cmVzKToKLQotMjAwOC0xMS0yOSAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3
b3RvYXN0cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAg
ICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjIKLSAgICAg
ICAgW0dUS10gQmFkIGZvbnQgZGVmYXVsdCBzZXR0aW5ncwotCi0gICAgICAgIEltcGxlbWVudCBh
IHByb3BlcnR5ICJlbmZvcmNlLTk2LWRwaSIgaW4gV2ViS2l0V2ViU2V0dGluZ3MKLSAgICAgICAg
dGhhdCBjYW4gYmUgZW5hYmxlZCB0byBmb3JjZSB0aGUgdmlldyB0byBhc3N1bWUgOTYgRFBJLgot
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKF9XZWJL
aXRXZWJTZXR0aW5nc1ByaXZhdGU6Oik6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2
YXRlOjp3ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICAoX1dlYktpdFdl
YlNldHRpbmdzUHJpdmF0ZTo6d2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotICAg
ICAgICAoX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6d2Via2l0X3dlYl9zZXR0aW5nc19nZXRf
cHJvcGVydHkpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0x
MS0yOCAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCi0KLSAgICAgICAgU2ltcGxp
ZnkgdGhlIGNvZGUuIFRoZXJlIGlzIG5vIHJlYXNvbiB0byBoYXZlIGNvZGUgbGlrZQotICAgICAg
ICBpZiAodHJ1ZSkgcmV0dXJuIGZhbHNlOyB3aGljaCBpcyB1c2luZyB0ZW1wb3JhcnkgdmFyaWFi
bGVzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA4LTExLTI4
ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IE5pa29sYXMgWmltbWVybWFubi4KLQotICAgICAgICBSZW1vdmUgYm9n
dXMgbnVsbCBjaGVja3MuIFRoZSBXZWJLaXRXZWJWaWV3IG93bidzIGEgV2ViQ29yZTo6UGFnZQot
ICAgICAgICB3aGljaCBpcyBvd25pbmcgYSBXZWJDb3JlOjpDaHJvbWVDbGllbnQuIFRoZXJlIGlz
IG5vIHdheSB0aGF0IGEKLSAgICAgICAgV2ViQ29yZTo6Q2hyb21lQ2xpZW50IGlzIHN0aWxsIGFy
b3VuZCB3aGVuIHRoZSBXZWJLaXRXZWJWaWV3IGlzIGdvbmUuCi0KLSAgICAgICAgbV93ZWJWaWV3
IGNhbiBvbmx5IGJlIG51bGwgd2hlbiBhIENocm9tZUNsaWVudCBnZXRzIGNvbnN0cnVjdGVkIHdp
dGgKLSAgICAgICAgYSBudWxsIFdlYktpdFdlYlZpZXcgd2hpY2ggaXMgbm90IGFsbG93ZWQuCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6OkNocm9tZUNsaWVudCk6Ci0gICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudDo6d2luZG93UmVjdCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
c2V0V2luZG93UmVjdCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cGFnZVJlY3Qp
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmZvY3VzKToKLSAgICAgICAgKFdlYktp
dDo6Q2hyb21lQ2xpZW50Ojp1bmZvY3VzKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjpzaG93KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXRUb29sYmFyc1Zpc2li
bGUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnRvb2xiYXJzVmlzaWJsZSk6Ci0g
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0U3RhdHVzYmFyVmlzaWJsZSk6Ci0gICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c3RhdHVzYmFyVmlzaWJsZSk6Ci0gICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0U2Nyb2xsYmFyc1Zpc2libGUpOgotICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OnNldE1lbnViYXJWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50OjptZW51YmFyVmlzaWJsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6Y2FuVGFrZUZvY3VzKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpyZXBh
aW50KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGwpOgotICAgICAgICAo
V2ViS2l0OjpDaHJvbWVDbGllbnQ6OnBsYXRmb3JtV2luZG93KToKLQotMjAwOC0xMS0yOCAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBh
bmQgc2xpZ2h0bHkgbW9kaWZpZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTEzMAotCi0gICAgICAgIENocm9t
ZUNsaWVudDo6Y3JlYXRlV2luZG93IGFuZCBmcmllbmRzIG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQK
LQotICAgICAgICBDb2RlIGZyb20gR3VzdGF2byBOb3JvbmhhIGFuZCBNYXJjbyBCYXJpc2lvbmUK
LSAgICAgICAgPG1hcmNvLmJhcmlzaW9uZUBjb2xsYWJvcmEuY28udWs+IGluIHRoaXMgY2hhbmdl
IHNldC4KLQotICAgICAgICBJbXBsZW1lbnRlZCBhbGwgdGhlIENocm9tZUNsaWVudCBpbnRlcmZh
Y2VzIG5lZWRlZCB0byBoYXZlIG5ldwotICAgICAgICB3aW5kb3cgY3JlYXRpb24gZnVuY3Rpb25p
bmcgYW5kIGV4cG9zZWQgdG8gY2xpZW50IGNvZGUuIFdlCi0gICAgICAgIGltcGxlbWVudGVkIGEg
bWlycm9yIEdPYmplY3QgdG8gdGhlIFdpbmRvd0ZlYXR1cmVzIG9iamVjdCBwcm92aWRlZAotICAg
ICAgICBieSBXZWJDb3JlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojp3aW5kb3dSZWN0KToKLSAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXRXaW5kb3dSZWN0KToKLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50Ojp1bmZvY3VzKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpjcmVhdGVXaW5kb3cpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNob3cp
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFRvb2xiYXJzVmlzaWJsZSk6Ci0g
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6dG9vbGJhcnNWaXNpYmxlKToKLSAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXRTdGF0dXNiYXJWaXNpYmxlKToKLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpzdGF0dXNiYXJWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50OjpzZXRTY3JvbGxiYXJzVmlzaWJsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudDo6c2Nyb2xsYmFyc1Zpc2libGUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OnNldE1lbnViYXJWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjptZW51YmFyVmlzaWJsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0UmVz
aXphYmxlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaFNob3cpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hDcmVhdGVQYWdlKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Lmg6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdGRlZmluZXMuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0
ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2Vidmlldy5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0
dXJlcy5jcHA6IEFkZGVkLgotICAgICAgICAoX1dlYktpdFdlYldpbmRvd0ZlYXR1cmVzUHJpdmF0
ZTo6d2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfY2xhc3NfaW5pdCk6Ci0gICAgICAgIChfV2Vi
S2l0V2ViV2luZG93RmVhdHVyZXNQcml2YXRlOjp3ZWJraXRfd2ViX3dpbmRvd19mZWF0dXJlc19p
bml0KToKLSAgICAgICAgKF9XZWJLaXRXZWJXaW5kb3dGZWF0dXJlc1ByaXZhdGU6OndlYmtpdF93
ZWJfd2luZG93X2ZlYXR1cmVzX2ZpbmFsaXplKToKLSAgICAgICAgKF9XZWJLaXRXZWJXaW5kb3dG
ZWF0dXJlc1ByaXZhdGU6OndlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX3NldF9wcm9wZXJ0eSk6
Ci0gICAgICAgIChfV2ViS2l0V2ViV2luZG93RmVhdHVyZXNQcml2YXRlOjp3ZWJraXRfd2ViX3dp
bmRvd19mZWF0dXJlc19nZXRfcHJvcGVydHkpOgotICAgICAgICAoX1dlYktpdFdlYldpbmRvd0Zl
YXR1cmVzUHJpdmF0ZTo6d2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfbmV3KToKLSAgICAgICAg
KF9XZWJLaXRXZWJXaW5kb3dGZWF0dXJlc1ByaXZhdGU6OndlYmtpdF93ZWJfd2luZG93X2ZlYXR1
cmVzX25ld19mcm9tX2NvcmVfZmVhdHVyZXMpOgotICAgICAgICAoX1dlYktpdFdlYldpbmRvd0Zl
YXR1cmVzUHJpdmF0ZTo6d2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfZXF1YWwpOgotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oOiBBZGRlZC4KLQotMjAwOC0xMS0y
NCAgRGFyaW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgotCi0gICAgICAgIEZpeCBidXN0
YWdlLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
NjQzCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0KLTIw
MDgtMTEtMjQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IERhbiBCZXJuc3RlaW4uCi0KLSAgICAgICAgLSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzAKLSAgICAgICAgICByZW1vdmUgdW5uZWVkZWQgVVJMIGFy
Z3VtZW50IGZyb20gRnJhbWVMb2FkZXJDbGllbnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnkKLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnkpOiBSZW1vdmUg
YXJndW1lbnQuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsu
aDogRGl0dG8uCi0KLTIwMDgtMTEtMjQgIENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290
b2FzdHMuZGU+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAg
ICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTIyCi0gICAgICAg
IFtHVEtdIEJhZCBmb250IGRlZmF1bHQgc2V0dGluZ3MKLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJzZXR0aW5ncy5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlOjp3
ZWJraXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICBVc2UgZGVmYXVsdCBmb250
IHNpemUgMTIgaW5zdGVhZCBvZiAxMAotCi0yMDA4LTExLTI0ICBaYW4gRG9iZXJzZWsgIDx6YW5k
b2JlcnNla0BnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVy
LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAz
OQotCi0gICAgICAgIEltcGxlbWVudCBhIHNlbWktcHJpdmF0ZSBmdW5jdGlvbiBmb3IgYWRkaW5n
IGEgZGlyZWN0b3J5IHRvCi0gICAgICAgIFBsdWdpbkRhdGFiYXNlJ3MgcGF0aHMuCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJz
ZXR0aW5ncy5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlOjp3ZWJraXRf
d2ViX3NldHRpbmdzX2FkZF9leHRyYV9wbHVnaW5fZGlyZWN0b3J5KToKLQotMjAwOC0xMS0yMyAg
SG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAg
ICBSdWJiZXItc3RhbXBlZCBieSBTYW0gV2VpbmlnLgotCi0gICAgICAgIEFkZCBndGstZG9jIGNv
bmZpZ3VyYXRpb24vc291cmNlIGZvciB0aGUgV2ViS2l0L0d0aysgUmVmZXJlbmNlIE1hbnVhbAot
Ci0gICAgICAgIFRoZXNlIGZpbGVzIHdpbGwgYmUgdXNlZCBieSBndGstZG9jIHRvIGdlbmVyYXRl
IHRoZSBkb2N1bWVudGF0aW9uLiBUaGV5Ci0gICAgICAgIGNvbnRhaW4gaW5mb3JtYXRpb24gaG93
IHRvIGdyb3VwIHRoZSBzeW1ib2xzIG9mIG91ciBBUEksIHdoaWNoIG9iamVjdHMKLSAgICAgICAg
dG8gaW5zcGVjdCBkdXJpbmcgdGhlIGdlbmVyYXRpb24gb2YgdGhlIG1hbnVhbCBhbmQgaG93IHRv
IGRpc3BsYXkgdGhlCi0gICAgICAgIG1hbnVhbC4KLQotICAgICAgICAqIGRvY3Mvd2Via2l0Z3Rr
LWRvY3Muc2dtbDogQWRkZWQuCi0gICAgICAgICogZG9jcy93ZWJraXRndGstb3ZlcnJpZGVzLnR4
dDogQWRkZWQuCi0gICAgICAgICogZG9jcy93ZWJraXRndGstc2VjdGlvbnMudHh0OiBBZGRlZC4K
LSAgICAgICAgKiBkb2NzL3dlYmtpdGd0ay50eXBlczogQWRkZWQuCi0KLTIwMDgtMTEtMjMgIEhv
bGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KLQotICAgICAgICBNYWtlIGd0ay1kb2MgaGFwcHkgd2l0
aCB0aGUgZXhpc3RpbmcgQVBJIGRvY3VtZW50YXRpb24KLQotICAgICAgICAtIE1hcmsgdGhlICpQ
cml2YXRlIHBvaW50ZXJzIGluIHRoZSBzdHJ1Y3QgcHJpdmF0ZQotICAgICAgICAtIFVzZSBSZXR1
cm5zOiB3aGVyZSBndGstZG9jIHdhbnRzIHVzIHRvCi0gICAgICAgIC0gRml4IHRoZSBwYXJhbWV0
ZXJzIHRvIG1ha2UgZ3RrLWRvYyBoYXBweQotICAgICAgICAtIEZpeCBzaWduYWwgcmVmZXJlbmNl
cwotCi0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0Lmg6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6Ci0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViSW5z
cGVjdG9yUHJpdmF0ZTo6d2Via2l0X3dlYl9pbnNwZWN0b3JfY2xhc3NfaW5pdCk6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2
aWV3Lmg6Ci0KLTIwMDgtMTEtMTkgIERhcmluIEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4K
LQotICAgICAgICBCdXN0YWdlIGZpeC4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIzNzMKLSAgICAgICAgUG9ydHMgYnVzdGVkIGJ5IGFkZGl0aW9u
IG9mIFNjcmlwdFZhbHVlLntoLGNwcH0KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLQotMjAwOC0xMS0xOCAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBz
ZWxmaXNoLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KLQotICAg
ICAgICBBdHRlbXB0IHRvIHNoYXJlIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2Ugb2Yg
RnJhbWVMb2FkZXJDbGllbnQgd2l0aCB0aGUgZGlmZmVyZW50IHBvcnRzCi0KLSAgICAgICAgQWZ0
ZXIgSHlhdHQncyB3b3JrIG9uIFdpZGdldCBhbmQgU2Nyb2xsVmlldyB0aGVyZSBpcyBsaXR0bGUg
ZGlmZmVyZW5jZQotICAgICAgICBiZXR3ZWVuIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBRdCwgR3Rr
KyBhbmQgV2luLiBJbiBmYWN0IGFueSBraW5kIG9mCi0gICAgICAgIGRpZmZlcmVuY2UgaXMgbW9z
dGx5IGEgYnVnLiBBbHAgaGFzIGZpeGVkIHR3byBvZiBzdWNoIGVycm9ycyBmb3IgdGhlIEd0aysK
LSAgICAgICAgcG9ydCBhbmQgdGhlIFF0IHBvcnQgaGFzIGF0IGxlYXN0IG9uZSBvZiB0aGVtIGxl
ZnQuCi0KLSAgICAgICAgVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBpbXBsZW1lbnRh
dGlvbnMgaXMgaW4gZ2V0dGluZyB0aGUgdGhlCi0gICAgICAgIEludFNpemUgZm9yIHRoZSBuZXcg
RnJhbWVWaWV3LCB0aGUgYmFja2dyb3VuZCBjb2xvciB0byBiZSBhcHBsaWVkIGFuZAotICAgICAg
ICBldmVudHVhbGx5IHNvbWUgcG9zdCBwcm9jZXNzaW5nLgotCi0gICAgICAgIFVuaWZ5IHRoZSBp
bXBsZW1lbnRhdGlvbnMgYnkgcHJvdmlkaW5nIGEgc3RhdGljIGhlbHBlciBmdW5jdGlvbiB0aGF0
Ci0gICAgICAgIHRha2VzIGEgRnJhbWUsIEludFNpemUsIGNvbG9yIGFuZCB0cmFuc3BhcmVuY3kg
Yml0IGFuZCBjYWxsaW5nIGl0IGZyb20KLSAgICAgICAgdGhlIEd0ayssIHRoZSBRdCBhbmQgdGhl
IFdpbmRvd3MgcG9ydC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRp
b25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgotCi0yMDA4LTExLTE2ICBDaHJpc3RpYW4gRHl3YW4g
IDxjaHJpc3RpYW5AdHdvYXN0cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJl
eXRoZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMjA3Ci0gICAgICAgIFtHdGtdIEZvbnQgc2l6ZXMgYXJlIG5vdCBoYW5kbGVkIHByb3Blcmx5
IHdoZW4gdXBkYXRlZCBhdCBydW50aW1lCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5jcHA6IE1vdmUgdGhlIERQSS8gY29udmVyc2lvbiBpbnRvIGEKLSAgICAgICAgaGVscGVyIGZ1
bmN0aW9uIGFuZCBhcHBseSB0aGUgbG9naWMgaW4gdGhlIG5vdGlmaWNhdGlvbiBjYWxsYmFjay4K
LQotMjAwOC0xMS0wNiAgQWxwIFRva2VyICA8YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMDQ3Ci0gICAgICAgIEdUSzogQWRkIHN1cHBvcnQgZm9yIG11bHRp
cGxlIGZpbGUgc2VsZWN0aW9uIGluIHRoZSBmaWxlIHVwbG9hZCBjb250cm9sCi0KLSAgICAgICAg
SW1wbGVtZW50ZWQgd2l0aCBHdGtGaWxlQ2hvb3Nlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
cnVuT3BlblBhbmVsKToKLQotMjAwOC0xMS0wMyAgQ2FtZXJvbiBad2FyaWNoICA8endhcmljaEBh
cHBsZS5jb20+Ci0KLSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsu
Ci0KLSAgICAgICAgTW92ZSBtb3JlIGZpbGVzIGludG8gdGhlIHJ1bnRpbWUgc3ViZGlyZWN0b3J5
IG9mIEphdmFTY3JpcHRDb3JlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3Bw
OgotCi0yMDA4LTExLTAzICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgRGVwcmVjYXRlIGZsYXdlZCB3
ZWJraXRfd2ViX2ZyYW1lX25ldygpIGZ1bmN0aW9uLiBUaGlzIHdvdWxkIG5ldmVyCi0gICAgICAg
IGhhdmUgd29ya2VkIHByb3Blcmx5IHdoZW4gdXNlZCBvdXRzaWRlIFdlYkNvcmUgc2luY2UgRnJh
bWU6OmNyZWF0ZSgpCi0gICAgICAgIGNhbiBvbmx5IGJlIGNhbGxlZCB3aXRob3V0IGFuIG93bmVy
IGVsZW1lbnQgb25jZSBpbiB0aGUgbGlmZXRpbWUgb2YgYQotICAgICAgICBQYWdlIGFuZCB3b3Vs
ZCByZXN1bHQgaW4gYXNzZXJ0aW9ucywgbGVha3MgYW5kIGFuIHVudXNhYmxlIFdlYlZpZXcKLSAg
ICAgICAgaW5zdGFuY2UuCi0KLSAgICAgICAgRnJhbWUgY3JlYXRpb24gbWF5IGJlIGV4cG9zZWQg
aW4gQVBJIHNvbWUgdGltZSBsYXRlciB2aWEgdGhlIERPTQotICAgICAgICBiaW5kaW5nIGJ1dCBw
cm9iYWJseSBub3QgaW4gdGhlIFdlYktpdCBHVEsrIGNvcmUgQVBJLgotCi0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUu
aDoKLQotMjAwOC0xMS0wMyAgQWxwIFRva2VyICA8YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIFJlZHVuZGFudCBzY3JvbGxi
YXJzIGFwcGVhciBpbiBmcmFtZXMgd2hlcmUgdGhleSBzaG91bGRuJ3QgYmUgdmlzaWJsZQotICAg
ICAgICBlZy4gZW1iZWRkZWQgR29vZ2xlIGFkdmVydHMuCi0KLSAgICAgICAgQ2FsbCBzZXRDYW5I
YXZlU2Nyb2xsYmFycygpIHdoZW4gbmVjZXNzYXJ5LiBUaGUgTWFjIGFuZCBXaW4gcG9ydHMKLSAg
ICAgICAgYWxyZWFkeSBoYXZlIHRoaXMgYnV0IGl0IHdhcyBtaXNzaW5nIGluIEZyYW1lTG9hZGVy
Q2xpZW50R3RrLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRv
Q29tbWl0dGVkRm9yTmV3UGFnZSk6Ci0KLTIwMDgtMTEtMDMgIEFscCBUb2tlciAgPGFscEBudWFu
dGkuY29tPgotCi0gICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQot
ICAgICAgICBTeW5jIFdlYktpdCBHVEsrIGRlZmF1bHQgVUEgdmVyc2lvbiBzdHJpbmcgdG8gNTI4
LjUrLiAoV2UncmUgc3RpbGwKLSAgICAgICAgZG9pbmcgdGhpcyBtYW51YWxseSEpCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OmNvbXBvc2VVc2VyQWdlbnQpOgotCi0yMDA4LTEwLTMxICBDaHJpc3RpYW4gRHl3YW4g
IDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93
ZS4KLQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjAx
OAotICAgICAgICBlbmFibGUtZGV2ZWxvcGVyLWV4dHJhcyBkb2Vzbid0IHRvZ2dsZSBXZWJJbnNw
ZWN0b3IKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgQWRk
IG1pc3NpbmcgJ2lmJyBpbiBub3RpZmljYXRpb24gZm9yICdlbmFibGUtZGV2ZWxvcGVyLWV4dHJh
cycuCi0KLTIwMDgtMTAtMzAgIEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCi0KLSAgICAgICAgRml4IEdJRiBhbmltYXRpb25zLiBX
ZWJDb3JlIHdpbGwgbm90IHVwZGF0ZSBhbmltYXRlZCBHSUZzIGlmCi0gICAgICAgIHRoZSBXZWJW
aWV3IGlzIG1hcmtlZCBvZmZzY3JlZW4gc28gd2UgbmVlZCB0byBjYWxsCi0gICAgICAgIGZyYW1l
Vmlldy0+c2V0UGFyZW50VmlzaWJsZSgpIHdoZW4gbmVjZXNzYXJ5IGxpa2UgdGhlIE1hYyBhbmQg
V2luCi0gICAgICAgIHBvcnRzIGRvLiBSZWdyZXNzaW9uIHdhcyBpbnRyb2R1Y2VkIGFyb3VuZCBy
MzcxNTUgZHVyaW5nIHRoZQotICAgICAgICBIb3N0V2luZG93IHJlZmFjdG9yLgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6
Ci0KLTIwMDgtMTAtMzAgIEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgotCi0gICAgICAgIFJ1
YmJlci1zdGFtcGVkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBGaXggdHlwbyBpbiBy
ZWNlbnRseSBhZGRlZCB3ZWIgaW5zcGVjdG9yIHNpZ25hbC4gZGV0dGFjaCAtPiBkZXRhY2guCi0K
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OmRldGFjaFdpbmRvdyk6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViSW5zcGVjdG9y
UHJpdmF0ZTo6d2Via2l0X3dlYl9pbnNwZWN0b3JfY2xhc3NfaW5pdCk6Ci0KLTIwMDgtMTAtMzAg
IEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgotCi0gICAgICAgIEZpeCB2ZXJzaW9uIGNvbW1l
bnRzIGZvciB0aGUgd2ViIGluc3BlY3RvciBhZGRlZCBpbiByMzc5ODIuIEF2YWlsYWJsZQotICAg
ICAgICBzaW5jZSAxLjAuMywgbm90IDEuMC4yLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
Ymluc3BlY3Rvci5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZTo6d2Vi
a2l0X3dlYl9pbnNwZWN0b3JfY2xhc3NfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
YnNldHRpbmdzLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtp
dF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgotCi0yMDA4LTEwLTI5ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUu
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGFuZCBzbGlnaHRseSBjaGFuZ2VkIGJ5IEhvbGdlciBG
cmV5dGhlci4KLQotICAgICAgICBJbXBsZW1lbnRlZCBhIG5ldyBXZWJLaXRXZWJJbnNwZWN0b3Ig
Y2xhc3MgdG8gcHJvdmlkZSBhIEdPYmplY3QKLSAgICAgICAgQVBJIGZvciB0aGUgV2ViIEluc3Bl
Y3Rvci4gQWxzbyBpbXBsZW1lbnRlZCBJbnNwZWN0b3JDbGllbnQuCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0Ojpub3Rp
ZnlXZWJWaWV3RGVzdHJveWVkKToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpJ
bnNwZWN0b3JDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6Omluc3Bl
Y3RvckRlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6d2ViVmll
d0Rlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6Y3JlYXRlUGFn
ZSk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6c2hvd1dpbmRvdyk6Ci0gICAg
ICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6Y2xvc2VXaW5kb3cpOgotICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JDbGllbnQ6OmF0dGFjaFdpbmRvdyk6Ci0gICAgICAgIChXZWJLaXQ6Oklu
c3BlY3RvckNsaWVudDo6ZGV0YWNoV2luZG93KToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9y
Q2xpZW50OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRHdGsuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0Lmg6Ci0gICAgICAg
ICogd2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3Q6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdGRl
ZmluZXMuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJpbnNwZWN0b3IuY3BwOiBBZGRlZC4KLSAgICAgICAgKF9XZWJLaXRXZWJJ
bnNwZWN0b3JQcml2YXRlOjp3ZWJraXRfaW5zcGVjdF93ZWJfdmlld19yZXF1ZXN0X2hhbmRsZWQp
OgotICAgICAgICAoX1dlYktpdFdlYkluc3BlY3RvclByaXZhdGU6OndlYmtpdF93ZWJfaW5zcGVj
dG9yX2NsYXNzX2luaXQpOgotICAgICAgICAoX1dlYktpdFdlYkluc3BlY3RvclByaXZhdGU6Ondl
YmtpdF93ZWJfaW5zcGVjdG9yX2luaXQpOgotICAgICAgICAoX1dlYktpdFdlYkluc3BlY3RvclBy
aXZhdGU6OndlYmtpdF93ZWJfaW5zcGVjdG9yX2ZpbmFsaXplKToKLSAgICAgICAgKF9XZWJLaXRX
ZWJJbnNwZWN0b3JQcml2YXRlOjp3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRfcHJvcGVydHkpOgot
ICAgICAgICAoX1dlYktpdFdlYkluc3BlY3RvclByaXZhdGU6OndlYmtpdF93ZWJfaW5zcGVjdG9y
X2dldF9wcm9wZXJ0eSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZTo6d2Vi
a2l0X3dlYl9pbnNwZWN0b3Jfc2V0X3dlYl92aWV3KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViaW5zcGVjdG9yLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5n
cy5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlOjopOgotICAgICAgICAo
X1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6d2Via2l0X3dlYl9zZXR0aW5nc19jbGFzc19pbml0
KToKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGlu
Z3Nfc2V0X3Byb3BlcnR5KToKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6Ondl
YmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3Byb3BlcnR5KToKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0
aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3NfY29weSk6Ci0gICAgICAgICogd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg6Ci0K
LTIwMDgtMTAtMjcgIE1pY2hhZWwgVHJvc3MgIDxtaWNoYWVsQHRyb3NzLm9yZz4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuIExhbmRlZCBieSBKYW4gQWxvbnpvLgotCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgyNwotICAgICAgICBb
R1RLXSBGaXggbWVtb3J5IGxlYWsgaW4gd2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nCi0KLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDgtMTAtMjQgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KLQotICAgICAgICBGaXggdGhlIEd0ayBidWlsZC4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0KLTIwMDgtMTAtMjQg
IFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYW4g
QmVybnN0ZWluLgotCi0gICAgICAgIEZpeCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE3NTkKLSAgICAgICAgTGF5ZXJpbmcgdmlvbGF0aW9uOiBGaWxlQ2hvb3NlciBz
aG91bGQgbm90IGRlcGVuZCBvbiBEb2N1bWVudC9GcmFtZS9QYWdlCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OnJ1bk9wZW5QYW5lbCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmg6Ci0KLTIwMDgtMTAtMjQgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUu
Y29tPgotCi0gICAgICAgIFN0dWIgb3V0IG5ldyBJbnNwZWN0b3JDbGllbnQgbWV0aG9kcy4KLQot
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTYKLQot
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNs
aWVudDo6cG9wdWxhdGVTZXR0aW5nKTogTm90IGltcGxlbWVudGVkLgotICAgICAgICAoV2ViS2l0
OjpJbnNwZWN0b3JDbGllbnQ6OnN0b3JlU2V0dGluZyk6IERpdHRvLgotICAgICAgICAoV2ViS2l0
OjpJbnNwZWN0b3JDbGllbnQ6OnJlbW92ZVNldHRpbmcpOiBEaXR0by4KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLQotMjAwOC0xMC0yMiAgQWxwIFRva2Vy
ICA8YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAgQnVpbGQgZml4IGZvciBvbGRlciBHVEsrIHZl
cnNpb25zIHdoZXJlIEdUS19UWVBFX1RBUkdFVF9MSVNUIGlzbid0Ci0gICAgICAgIGRlZmluZWQu
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDgtMTAtMjIgIEFs
cCBUb2tlciAgPGFscEBudWFudGkuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9i
ZW4uCi0KLSAgICAgICAgQXZvaWQgY3JpdGljYWwgd2FybmluZ3Mgb24gb2xkZXIgR1RLKyB2ZXJz
aW9ucyAoMi44KSBieSBub3QgY2hlY2tpbmcKLSAgICAgICAgZm9yIEdUSysgc2V0dGluZyBwcm9w
ZXJ0aWVzIHdoZW4gd2Uga25vdyB0aGV5IGRvbid0IGV4aXN0LgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjppbnB1
dE1ldGhvZHNNZW51SXRlbSk6Ci0gICAgICAgIChXZWJLaXQ6OnVuaWNvZGVNZW51SXRlbSk6Ci0K
LTIwMDgtMTAtMjAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCi0KLSAgICAgICAgUmVtb3ZlIEZyYW1lTG9hZGVyQ2xp
ZW50OjpkZXRhY2hlZEZyb21QYXJlbnQ0LiAgSXQgaXMgbm8gbG9uZ2VyIHVzZWQgYnkgYW55IHBv
cnQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAw
OC0xMC0yMCAgQWxwIFRva2VyICA8YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgRGF2ZSBIeWF0dC4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEzMDMKLSAgICAgICAgW0dUS10gU2Nyb2xsaW5nIGdsaXRjaGVzCi0KLSAgICAg
ICAgSW1wbGVtZW50IGEgYnVmZmVyaW5nIHNjaGVtZSB0byBhdm9pZCBmdWxsIHJlcGFpbnRzIHdo
ZW4gc2Nyb2xsaW5nCi0gICAgICAgIHZpZXdzIG9yIHN1YmZyYW1lcyBzaWduaWZpY2FudGx5IGlt
cHJvdmluZyBzY3JvbGxpbmcgcGVyZm9ybWFuY2UuCi0KLSAgICAgICAgSW1wcm92ZSByZW5kZXJp
bmcgcGVyZm9ybWFuY2UgYnkgY29hbGVzY2luZyBsYXJnZSBudW1iZXJzIG9mIHNtYWxsCi0gICAg
ICAgIHJlcGFpbnRzLgotCi0gICAgICAgIEFsc28gZml4ZXMgbG9uZy1ydW5uaW5nIGlzc3VlcyB3
aXRoIHNjcm9sbGJhciBwb3NpdGlvbmluZyBhbmQgZnJhbWUKLSAgICAgICAgaW52YWxpZGF0aW9u
LgotCi0gICAgICAgIFJlbmRlcmluZyBpbiB0aGUgR1RLKyBwb3J0IHNob3VsZCBiZSBtb3JlIHNp
bWlsYXIgdG8gb3RoZXIgcG9ydHMgYWZ0ZXIKLSAgICAgICAgdGhlc2UgY2hhbmdlcy4KLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudDo6cmVwYWludCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVu
dDo6c2Nyb2xsKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dCk6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA4LTEwLTE3ICBMdWtl
IEtlbm5ldGggQ2Fzc29uIExlaWdodG9uICA8bGtjbEBsa2NsLm5ldD4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBNYXJrIFJvd2UuIExhbmRlZCBieSBKYW4gQWxvbnpvLgotCi0gICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwMwotICAgICAgICBbR3RrXSBT
ZWdmYXVsdCBhZnRlciBhIHRhYmxlIHdpdGggYW4gaWZyYW1lIGlzIGF0dGVtcHRlZCB0byBiZSBh
ZGRlZCB0d2ljZSB0byBET00gbW9kZWwgd2l0aCBqYXZhc2NyaXB0Ci0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRlckRlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQ0KToKLQotMjAwOC0xMC0wNiAg
RGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+Ci0KLSAgICAgICAgRW5hYmxlIHZpZXdsZXNz
IE1hYyBXZWJLaXQgdG8gcGFpbnQgc29tZSBiYXNpYyBwYWdlcy4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBTYW0gV2VpbmlnCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5oOgotCi0yMDA4LTEwLTAzICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFw
cGxlLmNvbT4KLQotICAgICAgICBGaXggR3RrIGJ1c3RhZ2UgZnJvbSB1c2Ugb2YgY29udGFpbmlu
Z1dpbmRvdygpIG92ZXIgb24gdGhlIFdlYktpdCBzaWRlLiAgUmVwbGFjZSB3aXRoIEhvc3RXaW5k
b3cgdXNlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA4LTEw
LTAzICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KLQotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDAKLQotICAgICAgICBSZW1vdmUgImNv
bnRhaW5pbmdXaW5kb3coKS9zZXRDb250YWluaW5nV2luZG93KCkiIGZyb20gV2lkZ2V0LiAgSG9z
dFdpbmRvdyBjb3ZlcnMgdGhpcyBub3cuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5z
dGVpbiAmIERhcmluIEFkbGVyCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFu
c2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKLQotMjAwOC0xMC0wMyAgQWxwIFRva2VyICA8
YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAgUmVtb3ZlIHNvbWUgbGVmdC1vdmVyIEdUSysgaW5j
bHVkZXMuIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFsaXR5LgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmhpc3RvcnlpdGVtLmg6Ci0KLTIwMDgtMTAtMDMgIEFscCBUb2tlciAgPGFscEBudWFu
dGkuY29tPgotCi0gICAgICAgIEJ1aWxkIGZpeCBmb2xsb3dpbmcgcjM3MjM0LiBSZW1vdmUgYWRk
VG9EaXJ0eVJlZ2lvbiBmcm9tIHRoZSBoZWFkZXIKLSAgICAgICAgdG9vLgotCi0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMDgtMTAtMDMgIERhdmlkIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgotCi0gICAgICAgICBSZW1vdmUgYWRkVG9EaXJ0eVJlZ2lv
bi4KLQotICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudAotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLQotMjAwOC0xMC0wMiAgRGF2aWQgSHlhdHQg
IDxoeWF0dEBhcHBsZS5jb20+Ci0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMzE0Ci0KLSAgICAgICAgTWFrZSBzY3JvbGxCYWNraW5nU3RvcmUgY3Jv
c3MtcGxhdGZvcm0uCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZwotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50OjpyZXBhaW50KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpz
Y3JvbGwpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0y
MDA4LTEwLTAxICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KLQotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyODIKLQotICAgICAgICBNYWtl
IGNvbnRlbnRzVG9TY3JlZW4vc2NyZWVuVG9Db250ZW50cyBjcm9zcy1wbGF0Zm9ybS4gIE9ubHkg
aW1wbGVtZW50ZWQgYnkgTWFjL1dpbiByaWdodCBub3cuCi0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBSb2JlbgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojp3aW5kb3dUb1NjcmVlbik6Ci0gICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2NyZWVuVG9XaW5kb3cpOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDA4LTA5LTMwICBEYXZlIEh5YXR0
ICA8aHlhdHRAYXBwbGUuY29tPgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMjUwCi0KLSAgICAgICAgUmVuYW1lIHVwZGF0ZUNvbnRlbnRzIHRvIHJl
cGFpbnRDb250ZW50UmVjdGFuZ2xlIGFuZCBtYWtlIGl0IGNyb3NzLXBsYXRmb3JtIGJ5IGFsd2F5
cyBzZW5kaW5nCi0gICAgICAgIHJlcGFpbnRzIHVwIHRocm91Z2ggdGhlIENocm9tZUNsaWVudC4K
LQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlcgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjpyZXBhaW50KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoK
LQotMjAwOC0wOS0xNiAgQWxwIFRva2VyICA8YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAgU3Vn
Z2VzdGVkIGJ5IERhdmUgSHlhdHQuCi0KLSAgICAgICAgQnVpbGQgZml4IGFuZCBjbGVhbnVwLiBS
ZW5hbWUgU2Nyb2xsQmFyIHRvIFNjcm9sbGJhci4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcDoKLQotMjAwOC0wOS0xMyAgQWRyaWVuIE5hZGVyICA8Y2FtYXJhZGV0dXhAZ21h
aWwuY29tPgotCi0gICAgICAgIEd0ayBidWlsZCBmaXgsIG5vdCByZXZpZXdlZC4KLQotICAgICAg
ICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0wOS0xMCAgQWxwIFRva2VyICA8
YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgotCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI2NwotICAgICAg
ICBbR1RLXSBQcmltYXJ5IHNlbGVjdGlvbi9jbGlwYm9hcmQgc3VwcG9ydAotCi0gICAgICAgIElt
cGxlbWVudCBwcmltYXJ5IHNlbGVjdGlvbiBzdXBwb3J0IChjb3B5aW5nIG9ubHksIG5vIHBhc3Rl
IHlldCkuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiKToKLSAgICAgICAgKFdl
YktpdDo6Y2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiKToKLSAgICAgICAgKFdlYktpdDo6RWRp
dG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKToKLQotMjAwOC0wOS0wNyAgQ2Ft
ZXJvbiBad2FyaWNoICA8Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBNYWNpZWogU3RhY2hvd2lhay4KLQotICAgICAgICBCdWcgMjA3MDQ6IFJlcGxhY2UgdGhl
IEtKUyBuYW1lc3BhY2UKLSAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDcwND4KLQotICAgICAgICBSZW5hbWUgdGhlIEtKUyBuYW1lc3BhY2UgdG8gSlND
LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAod2Via2l0
X2luaXQpOgotCi0yMDA4LTA5LTA1ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25vbWUu
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNDYKLSAgICAgICAgW0dUS10gUmVt
b3ZlIGJ1aWxkIHdhcm5pbmdzCi0KLSAgICAgICAgUmVtb3ZlZC9jb21tZW50ZWQgY29kZSB0aGF0
IGlzIG5vdCAoeWV0KSB1c2VkLCBhbmQgcmVvcmRlcmVkCi0gICAgICAgIG1lbWJlciB2YXJpYWJs
ZXMgaW5pdGlhbGl6YXRpb24gZm9yIEZyYW1lTG9hZGVyQ2xpZW50LCBzbyB0aGF0IHRoZQotICAg
ICAgICBjb21waWxlciBpcyBoYXBweSBhbmQgcHJpbnRzIGxlc3Mgd2FybmluZ3Mgd2hlbiBidWls
ZGluZy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNw
cDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0g
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpGcmFtZUxvYWRlckNsaWVudCk6Ci0K
LTIwMDgtMDktMDMgIEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgotCi0gICAgICAgIEJ1aWxk
IGZpeCBmb2xsb3dpbmcgcjM2MDczLiBJbmNsdWRlIGNvbmZpZy5oIHdoZXJlIG5lY2Vzc2FyeS4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuY3BwOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR2ZXJzaW9uLmNwcDoKLQotMjAwOC0wOS0wMSAgQWxwIFRva2Vy
ICA8YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCi0K
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTM5Ci0g
ICAgICAgIFtHVEtdIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90aXRsZSgpIGZhaWxzIHdp
dGggYXNzZXJ0aW9uCi0KLSAgICAgICAgTWFrZSBzdXJlIG5ld2x5IGNvbnN0cnVjdGVkIFdlYkhp
c3RvcnlJdGVtIG9iamVjdHMgd3JhcCBhIFdlYkNvcmUKLSAgICAgICAgaGlzdG9yeSBpdGVtIHdo
ZW4gbmVjZXNzYXJ5LiBBdm9pZCBHX1BBUkFNX0NPTlNUUlVDVCBzaW5jZSBpdCBkZXN0cm95cwot
ICAgICAgICBoaXN0b3J5IGRhdGEgLS0gdXNlIFdFQktJVF9QQVJBTSBmbGFncyBpbnN0ZWFkIGFz
IHRoZXkgZG8gdGhlIHJpZ2h0Ci0gICAgICAgIHRoaW5nLiBUaGlzIHJlc3RvcmVzIGhpc3Rvcnkg
ZnVuY3Rpb25hbGl0eS4KLQotICAgICAgICBBbHNvIHVzZSBDU3RyaW5nIHRvIHNpbXBsaWZ5IFVU
Ri04IHN0cmluZyBtYW5hZ2VtZW50LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tm
b3J3YXJkbGlzdC5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0
ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9saXN0X3dpdGhfbGlt
aXQpOgotICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93
ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfbGlzdF93aXRoX2xpbWl0KToKLSAgICAgICAg
Tm8gbmVlZCB0byBpbml0aWFsaXplIHRoZSB2ZWN0b3Igd2l0aCBhIHNpemUgc2luY2UgaXQncyBj
bGVhcmVkIGJ5IHRoZQotICAgICAgICBjYWxsZWUuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdl
Ymhpc3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6
OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2ZpbmFsaXplKToKLSAgICAgICAgKF9XZWJLaXRXZWJI
aXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2NsYXNzX2luaXQpOgot
ICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5
X2l0ZW1fbmV3X3dpdGhfY29yZV9pdGVtKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRl
bVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ldyk6Ci0gICAgICAgIChfV2ViS2l0
V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0aF9k
YXRhKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX2dldF90aXRsZSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Q
cml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfYWx0ZXJuYXRlX3RpdGxlKToKLSAg
ICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9p
dGVtX3NldF9hbHRlcm5hdGVfdGl0bGUpOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVt
UHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3VyaSk6Ci0gICAgICAgIChfV2Vi
S2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfb3Jp
Z2luYWxfdXJpKToKLQotMjAwOC0wOC0yNyAgQWRyaWVuIE5hZGVyICA8Y2FtYXJhZGV0dXhAZ21h
aWwuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA5OQotICAgICAgICBbR1RL
XSBTSElGVCtQQUdFX1VQL0RPV04gZG9lc24ndCBleHRlbmQgc2VsZWN0aW9uCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpF
ZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgotCi0yMDA4LTA4LTI3ICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMK
LQotICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjEzNDEzMz4gLSBDcmFzaCB3aGVuIGxvYWRpbmcg
bGFyZ2UgbW92aWUgYXMgYSBzdGFuZGFsb25lIGRvY3VtZW50Ci0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50OjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKTogU3R1YmJlZCBmb3Igbm93
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAw
OC0wOC0xOCAgQWxwIFRva2VyICA8YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDM1MAotICAgICAgICBbR1RLXSBHZXQgRHVtcFJlbmRlclRyZWUgd29y
a2luZwotCi0gICAgICAgIEFkZCBhIHByaXZhdGUgZnVuY3Rpb24gdG8gV2ViRnJhbWUgdG8gZHVt
cCB0aGUgcmVuZGVyIHRyZWUgYXMgcmVxdWlyZWQKLSAgICAgICAgZm9yIHRoZSBEdW1wUmVuZGVy
VHJlZSB0ZXN0aW5nIHRvb2wuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0KLTIwMDgtMDgtMTIgIFRpbW90
aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgotCi0gICAgICAgIEFkZCBhIHN0dWIgZm9y
IEluc3BlY3RvckNsaWVudDo6c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJ
bnNwZWN0b3JDbGllbnQ6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KToKLSAgICAgICAgQ2FsbCBu
b3RJbXBsZW1lbnRlZCgpLgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEd0ay5oOgotCi0yMDA4LTA4LTEwICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KLQotICAg
ICAgICBSZW1vdmUgbGVmdG92ZXIgcW1ha2UvR1RLKyBidWlsZCBmaWxlcy4KLQotICAgICAgICAq
IHdlYmtpdC9oZWFkZXJzLnByaTogUmVtb3ZlZC4KLQotMjAwOC0wOC0wMiAgQ2hyaXN0aWFuIER5
d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KLQotICAgICAgICBSZW1vdmUgd2Via2l0LW1hcnNoYWwubGlzdCwgd2hpY2ggd2Fz
IG1hZGUgb2Jzb2xldGUgaW4gIzE5NzQyCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0LW1hcnNo
YWwubGlzdDogUmVtb3ZlZC4KLQotMjAwOC0wOC0wMSAgV291dGVyIEJvbHN0ZXJsZWUgIDx1d3NA
eHM0YWxsLm5sPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgotCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDAzNQotICAgICAgICBb
R1RLXSBGaXggcmV0dXJuIHZhbHVlIGZvciB3ZWJraXRfd2ViX3ZpZXdfZ29fdG9fYmFja19mb3J3
YXJkX2l0ZW0oKQotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA4
LTA3LTMwICBNYXJjbyBCYXJpc2lvbmUgIDxtYXJjby5iYXJpc2lvbmVAY29sbGFib3JhLmNvLnVr
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlci4KLQotICAgICAgICBodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc0MgotICAgICAgICBbR1RLXSBBdXRvIGdlbmVy
YXRlIHdlYmtpdG1hcnNoYWwubGlzdAotCi0gICAgICAgIEF1dG8gZ2VuZXJhdGUgd2Via2l0bWFy
c2hhbC5saXN0IGZyb20gc291cmNlIGZpbGVzIHRvIHJlZHVjZSB0aGUKLSAgICAgICAgbnVtYmVy
IG9mIGNvbmZsaWN0cyB3aGVuIG1lcmdpbmcgZ2l0IGJyYW5jaGVzIG9yIHdoZW4gYXBwbHlpbmcK
LSAgICAgICAgcGF0Y2hlcy4KLSAgICAgICAgQWxzbyByZW5hbWUgd2Via2l0LW1hcnNoYWwuKiB0
byB3ZWJraXRtYXJzaGFsLiogZm9yIGNvbnNpc3RlbmN5LgotCi0gICAgICAgICogd2Via2l0L3dl
YmtpdHdlYmZyYW1lLmNwcDogSW5jbHVkZSB3ZWJraXRtYXJzaGFsLmggaW5zdGVhZCBvZgotICAg
ICAgICAgd2Via2l0LW1hcnNoYWwuaC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5j
cHA6IERpdHRvLgotCi0yMDA4LTA3LTMwICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNAZ25v
bWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNhbS4KLQotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDUKLSAgICAgICAgVHlwbyBpbiBjb21t
ZW50IGZvciBicmFjZXIgZW5kaW5nIGJsb2NrCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJp
dmF0ZS5jcHA6IFR5cG8gZml4IGluIGNvbW1lbnQgZm9yIHRoZSBicmFjZQotICAgICAgICAgdGhh
dCBlbmRzIHRoZSBXZWJLaXQgbmFtZXNwYWNlOyBXZWJDb3JlIC0+IFdlYktpdAotCi0yMDA4LTA3
LTI2ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+Ci0KLSAgICAgICAgQnVpbGQgZml4LiAg
Q2hhbmdlcyB0byBhY2NvbW1vZGF0ZSBuZXdseSBuYW1lZC9zaWduYXR1cmVkIGxvYWRpbmcgbWV0
aG9kcyBpbiBXZWJDb3JlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRl
RnJhbWUpOgotCi0yMDA4LTA3LTE3ICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9h
c3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4MTMKLSAgICAgICAg
W0dUS10gV2ViS2l0IGNyYXNoZXMgb24gaW52YWxpZCBzZXR0aW5ncyBub3RpZnkgY2FsbGJhY2sK
LQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogRGlzY29ubmVjdCBpbiB3ZWJr
aXRfd2ViX3ZpZXdfZmluYWxpemUKLQotMjAwOC0wNy0wOCAgSmFuIE1pY2hhZWwgQWxvbnpvICA8
am1hbG9uem9Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBDaHJpc3RpYW4gRHl3
YW4uCi0KLSAgICAgICAgUmVwbGFjZSAnY29uc3QnIHdpdGggR19DT05TVF9SRVRVUk4gbWFjcm8g
dG8gbWFrZSBpdCBmbGV4aWJsZSB0bwotICAgICAgICBkaXNhYmxlIGNvbnN0bmVzcwotCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0bmV0d29ya3JlcXVlc3QuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUu
Y3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5oOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhp
c3RvcnlpdGVtLmg6Ci0KLTIwMDgtMDYtMTggIE1hcmNvIEJhcmlzaW9uZSAgPG1hcmNvLmJhcmlz
aW9uZUBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgot
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTE3MQot
ICAgICAgICBbR1RLXSBHVHlwZXMgZm9yIGVudW1lcmF0aW9ucwotCi0gICAgICAgIEdlbmVyYXRl
IEdUeXBlcyBmb3IgcHVibGljIGVudW1lcmF0aW9ucyBzbyB0aGV5IGNhbiBiZSB1c2VkIGFzCi0g
ICAgICAgIHByb3BlcnRpZXMuCi0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogR2VuZXJhdGUg
d2Via2l0LWVudW0tdHlwZXMuY3BwIGFuZAotICAgICAgICB3ZWJraXQtZW51bS10eXBlcy5oLgot
Ci0yMDA4LTA2LTE3ICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEFscC4KLQotICAgICAgICBbR1RLXSBXZWJLaXRXZWJIaXN0
b3J5SXRlbSBuZWVkcyBwcm9wZXJ0aWVzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTU1OAotCi0gICAgICAgIEltcGxlbWVudCBwcm9wZXJ0aWVzIG1h
dGNoaW5nIHRoZSBleGlzdGluZyBhY2Nlc3NvcnMuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViaGlzdG9yeWl0ZW0uY3BwOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0
ZTo6KToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX2NsYXNzX2luaXQpOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVt
UHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fc2V0X3Byb3BlcnR5KToKLSAgICAgICAg
KF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dl
dF9wcm9wZXJ0eSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJr
aXRfd2ViX2hpc3RvcnlfaXRlbV9zZXRfYWx0ZXJuYXRlX3RpdGxlKToKLQotMjAwOC0wNi0xNSAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgLSBnaXZlIEZyYW1lIG9i
amVjdCBmdW5jdGlvbnMgc2hvcnRlciBuYW1lczogc2NyaXB0UHJveHkoKSAtPiBzY3JpcHQoKSwK
LSAgICAgICAgICBzZWxlY3Rpb25Db250cm9sbGVyKCkgLT4gc2VsZWN0aW9uKCksIGFuaW1hdGlv
bkNvbnRyb2xsZXIoKSAtPiBhbmltYXRpb24oKQotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5k
bGVLZXlib2FyZEV2ZW50KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp3aW5kb3dP
YmplY3RDbGVhcmVkKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0wNi0xNSAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgLSB1bmRvIGJvZ3VzIHJlbmFtaW5nIGRv
bmUgYnkgdGhlIHNjcmlwdAotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVD
bGllbnRHdGsuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oOgot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViZnJhbWUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9y
eWl0ZW0uaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaDoKLQotMjAwOC0w
Ni0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgLSBuZXcgbmFt
ZXMgZm9yIGEgZmV3IGtleSBKYXZhU2NyaXB0Q29yZSBmaWxlcwotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXRuZXR3b3JrcmVxdWVzdC5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2Fy
ZGxpc3QuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuaDoKLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
c2V0dGluZ3MuaDoKLQotMjAwOC0wNi0xNSAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3
b3RvYXN0cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAg
W0dUS10gUHJvcGVydHkgc2V0dGVycyBkbyBub3QgY2FsbCBnX29iamVjdF9ub3RpZnkoKQotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MDUKLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0wNi0xNSAgQ2hyaXN0aWFu
IER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBB
bHAgVG9rZXIuCi0KLSAgICAgICAgVGlueSBkb2N1bWVudGF0aW9uIGZpeCwgcy9jYXBhY2l0eS9s
aW1pdAotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6Ci0K
LTIwMDgtMDYtMTQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgotCi0gICAgICAgIFJ1
YmJlciBzdGFtcGVkIGJ5IFNhbS4KLQotICAgICAgICAtIG5ldyBuYW1lcyBmb3Iga2pzX2JpbmRp
bmcuaCBhbmQga2pzX3Byb3h5LmgKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgot
Ci0yMDA4LTA2LTE0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KLQotICAgICAgICAt
IGZpeCBidWlsZAotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1lLmNwcDogUmVtb3Zl
IGEgYm9ndXMgcmVsZWFzZSgpIGNhbGwuCi0KLTIwMDgtMDYtMTQgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNhbS4KLQotICAgICAgICAtIG1v
cmUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjU3Ci0gICAgICAg
ICAgc3RhcnQgcmVmIGNvdW50cyBhdCAxIGluc3RlYWQgb2YgMCBmb3Igc3BlZWQKLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZURvY3VtZW50TG9hZGVyKTogVXNlIGNyZWF0
ZSBpbnN0ZWFkIG9mIG5ldy4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgot
ICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9uZXcpOiBEaXR0by4KLSAgICAgICAgKHdlYmtpdF93
ZWJfZnJhbWVfaW5pdF93aXRoX3dlYl92aWV3KTogRGl0dG8uCi0KLTIwMDgtMDYtMTMgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgotCi0gICAgICAgIC0gdHJ5IHRvIGZpeCBidWlsZAot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDogQWRkIG1p
c3NpbmcgYXJndW1lbnQuCi0KLTIwMDgtMDYtMTMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3VsbGl2YW4uCi0KLSAgICAgICAgLSB1
cGRhdGVkIGZvciBhZGRpdGlvbiBvZiBGb3JtU3RhdGUgYXJndW1lbnQgdG8gYWN0aW9uIHBvbGlj
eSBmdW5jdGlvbnMKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6Ci0KLTIw
MDgtMDYtMTAgIENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyIGFuZCBEYXJpbiBBZGxlci4KLQotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2NzYKLSAgICAgICAgQXBw
bHkgR1RLIGNvZGluZyBzdHlsZSB0byBXZWJLaXQgR3RrIHB1YmxpYyBoZWFkZXJzCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2ViYmFja2ZvcndhcmRsaXN0Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1l
Lmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmg6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuaDoKLQotMjAwOC0wNi0wNyAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0
Lm9yZz4KLQotICAgICAgICBDb25maXJtZWQgYnkgQ2hyaXN0aWFuIER5d2FuLgotCi0gICAgICAg
IEd0ayBidWlsZCBmaXggZm9yIHIzNDQzMgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhp
c3RvcnlpdGVtLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6Ondl
YmtpdF9oaXN0b3J5X2l0ZW1fYWRkKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVBy
aXZhdGU6OndlYmtpdF9oaXN0b3J5X2l0ZW1fcmVtb3ZlKToKLSAgICAgICAgKF9XZWJLaXRXZWJI
aXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2Rpc3Bvc2UpOgotICAg
ICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0
ZW1fbmV3X3dpdGhfY29yZV9pdGVtKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVBy
aXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ldyk6Ci0gICAgICAgIChfV2ViS2l0V2Vi
SGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0aF9kYXRh
KToKLSAgICAgICAgKFdlYktpdDo6Y29yZSk6Ci0KLTIwMDgtMDYtMDcgIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgotCi0gICAgICAgIC0gdHJ5IHRvIGZpeCBidWlsZCBhZnRlciBIaXN0
b3J5SXRlbSBjaGFuZ2VzCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0u
Y3BwOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9o
aXN0b3J5X2l0ZW1fbmV3KTogVXNlIEhpc3RvcnlJdGVtOjpjcmVhdGUuCi0gICAgICAgIChfV2Vi
S2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0
aF9kYXRhKTogRGl0dG8uIEkgYWxzbwotICAgICAgICBiZWxpZXZlIHRoaXMgZml4ZXMgYSBtZW1v
cnkgbGVhayBpbiB0aGUgb2xkIHZlcnNpb24uCi0KLTIwMDgtMDYtMDcgIENocmlzdGlhbiBEeXdh
biAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRv
a2VyLgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzMyNAotICAgICAgICBSZW1vdmUgUExBVEZPUk0gaWZkZWZzIGZyb20gQ29udGV4dE1lbnUuY3Bw
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5jcHA6Ci0g
ICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51Q2xpZW50OjpDb250ZXh0TWVudUNsaWVudCk6Ci0g
ICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51Q2xpZW50Ojpjb250ZXh0TWVudURlc3Ryb3llZCk6
Ci0gICAgICAgIChXZWJLaXQ6OmlucHV0TWV0aG9kc01lbnVJdGVtKToKLSAgICAgICAgKFdlYktp
dDo6KToKLSAgICAgICAgKFdlYktpdDo6aW5zZXJ0Q29udHJvbENoYXJhY3Rlcik6Ci0gICAgICAg
IChXZWJLaXQ6OnVuaWNvZGVNZW51SXRlbSk6Ci0gICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51
Q2xpZW50OjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vidmlldy5jcHA6Ci0KLTIwMDgtMDYtMDUgIEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgot
Ci0gICAgICAgIEFkZCAnU2luY2UnIGRvY3VtZW50YXRpb24gZm9yIEFQSSB2ZXJzaW9uaW5nIGZ1
bmN0aW9ucy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR2ZXJzaW9uLmNwcDoKLQotMjAwOC0w
Ni0wNSAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0MTQxCi0gICAgICAgIFBsZWFzZSBhZGQgYSB2ZXJzaW9uIHRv
IHRoZSBHdGsgcG9ydAotCi0gICAgICAgICogd2Via2l0L3dlYmtpdC5oOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR2ZXJzaW9uLmNwcDogQWRkZWQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHZl
cnNpb24uaC5pbjogQWRkZWQuCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNw
cDoKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGlu
Z3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0y
MDA4LTA2LTAxICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KLQotICAgICAgICBTdWdnZXN0
ZWQgYnkgQ2hyaXN0aWFuIER5d2FuLgotCi0gICAgICAgIFVzZSBmbG9hdCBsaXRlcmFscyBmb3Ig
em9vbSB2YWx1ZXMgYW5kIGltcHJvdmUgZG9jdW1lbnRhdGlvbiB3b3JkaW5nLgotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0
aW5nc1ByaXZhdGU6OndlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3NfaW5pdCk6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA4LTA2LTAxICBBbHAgVG9rZXIgIDxhbHBA
bnVhbnRpLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIuCi0KLSAgICAgICAgUmVt
b3ZlIHdlYmtpdF93ZWJfdmlld19nb19iYWNrd2FyZCgpLAotICAgICAgICB3ZWJraXRfd2ViX3Zp
ZXdfY2FuX2dvX2JhY2t3YXJkKCkuIFRoZXNlIGhhdmUgYmVlbiBvYnNvbGV0ZWQgYnkKLSAgICAg
ICAgdGhlIGJhY2soKSB2ZXJzaW9ucyBmb3IgcXVpdGUgYSB3aGlsZS4KLQotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5o
OgotCi0yMDA4LTA1LTMxICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KLQotICAgICAgICBG
aXggaW5jb25zaXN0ZW50IHpvb20gZG9jcyBhbmQgZW51bSBuYW1lIGxhbmRlZCBpbiByMzQyNDku
IElzc3VlCi0gICAgICAgIG5vdGljZWQgYnkgTWFyY28gQmFyaXNpb25lLgotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA4LTA1LTMwICBDYXJsb3MgTWFydMOtbiBO
aWV0byAgPGNhcmxvc0BjbWFydGluLnRrPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tl
ci4KLQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM4
MwotICAgICAgICBbR1RLXSBUaGUgImhvdmVyaW5nLW92ZXItbGluayIgc2lnbmFsIGFyZ3VtZW50
cyBhcmVuJ3QgZG9jdW1lbnRlZC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDoKLQotMjAwOC0wNS0yOSAgTWFyY28gQmFyaXNpb25lICA8bWFyY29AY29sbGFib3JhLmNvLnVr
PgotCi0gICAgICAgIFJldmlld2VkIChhbmQgdHdlYWtlZCkgYnkgQWxwIFRva2VyLgotCi0gICAg
ICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjgxCi0gICAgICAg
IFtHVEtdIGFkZCBmdW5jdGlvbnMgdG8gc2V0L2dldCB0aGUgem9vbSBsZXZlbAotCi0gICAgICAg
ICogd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKLSAgICAgICAgKF9XZWJLaXRXZWJTZXR0
aW5nc1ByaXZhdGU6Oik6Ci0gICAgICAgIChfV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlOjp3ZWJr
aXRfd2ViX3NldHRpbmdzX2NsYXNzX2luaXQpOgotICAgICAgICAoX1dlYktpdFdlYlNldHRpbmdz
UHJpdmF0ZTo6d2Via2l0X3dlYl9zZXR0aW5nc19zZXRfcHJvcGVydHkpOgotICAgICAgICAoX1dl
YktpdFdlYlNldHRpbmdzUHJpdmF0ZTo6d2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJvcGVydHkp
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogQWRkIGZ1bmN0aW9ucyB0byBn
ZXQgYW5kIHNldCB0aGUgem9vbQotICAgICAgICBsZXZlbC4KLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5oOiBEaXR0by4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgot
Ci0yMDA4LTA1LTI4ICBBbHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KLQotICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzA0Ci0gICAgICAgIFtndGtdIGNhbm5vdCB0eXBlIGxl
dHRlcnMgd2l0aCBkZWFkIGtleXMgaW4gdGV4dGFyZWEKLQotICAgICAgICBodHRwOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDEyMAotICAgICAgICBbR0RLXSBTdXBwb3J0IGlu
cHV0IG1ldGhvZHMKLQotICAgICAgICBBZGQgc3VwcG9ydCBmb3IgaW5wdXQgbWV0aG9kIGNvbXBv
c2l0aW9uLgotCi0gICAgICAgIFJlbW92ZSBzb21lIG9sZCBoYWNrcyBzbyB3ZSBoYW5kbGUgaW5w
dXQgbWV0aG9kIGV2ZW50cyBtb3JlCi0gICAgICAgIGNvbnNpc3RlbnRseS4KLQotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6Omlt
Q29udGV4dENvbW1pdHRlZCk6Ci0gICAgICAgIChXZWJLaXQ6OmltQ29udGV4dFByZWVkaXRDaGFu
Z2VkKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRl
KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0
aW9uKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtl
eWRvd24pOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6Ci0g
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6fkVkaXRvckNsaWVudCk6Ci0gICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKToKLSAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50Ojp0ZXh0RmllbGREaWRFbmRFZGl0aW5nKToKLSAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQpOgotICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmRvVGV4dEZpZWxkQ29tbWFuZEZyb21FdmVudCk6Ci0g
ICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA4LTA1LTI1ICBBbHAgVG9r
ZXIgIDxhbHBAbnVhbnRpLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBOaWtvLgotCi0gICAg
ICAgIERyb3AgV2ViVmlldyBmb2N1cyB3aGVuIHRoZSB3aWRnZXQgaXMgZm9jdXNlZCBvdXQuCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDgtMDUtMjUgIFNyaXJh
bSBOZWVsYWthbmRhbiAgPHNyaXJhbS5uZWVsYWthbmRhbkBnbWFpbC5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4OTM1Ci0gICAgICAgIFtHdGtdIFBsdWdpbiBMb2FkIGNyYXNoZXMg
d2l0aCBOUF9GVUxMIG1vZGUKLQotICAgICAgICBGaXggY3Jhc2ggZHVlIHRvIHVuaW5pdGlhbGl6
ZWQgdmFyaWFibGUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpGcmFtZUxvYWRl
ckNsaWVudCk6Ci0KLTIwMDgtMDUtMjQgIEFscCBUb2tlciAgPGFscEBudWFudGkuY29tPgotCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgyNQotICAg
ICAgICB3ZWJraXRndGsgZmFpbHMgdG8gYnVpbGQgZnJvbSBzb3VyY2U6ICJEYXRhYmFzZSBUcmFj
a2VyIiBoYXMgbm90IGJlZW4gZGVjbGFyZWQKLQotICAgICAgICBHVEsrIGZpeCBmb3IgYnVpbGRp
bmcgd2l0aG91dCBkYXRhYmFzZSBzdXBwb3J0LgotICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVv
dGEoKSBzdGlsbCBuZWVkcyB0byBiZSBwcmVzZW50LCBqdXN0IGEgbm8tb3AuCi0KLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6Ci0KLTIwMDgtMDUtMjMgIEFscCBU
b2tlciAgPGFscEBudWFudGkuY29tPgotCi0gICAgICAgIEdUSysgZml4ZXMgZm9yIGJ1aWxkaW5n
IHdpdGhvdXQgZGF0YWJhc2Ugc3VwcG9ydC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6Ci0KLTIwMDgtMDUtMTkgIEFscCBUb2tlciAgPGFscEBudWFudGku
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBhbmQgQmV0aC4KLQotICAgICAgICBo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ5NQotICAgICAgICBbR1RL
XSBBY2Nlc3NpYmlsaXR5IHN1cHBvcnQgd2l0aCBBVEsvQVQtU1BJCi0KLSAgICAgICAgSW5pdGlh
bCBBVEsvQVQtU1BJIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBmb3IgdGhlIEdUSysgcG9ydC4KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0wNS0wNiAgQ2hyaXN0
aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KLQotICAgICAgICBSdWJiZXIgc3Rh
bXBlZCBieSBBbHAuCi0KLSAgICAgICAgQmFjayBvdXQgMTc2MjYuIEl0IHdhc24ndCByZWFkeSBm
b3IgY29tbWl0LgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuaDoKLQotMjAwOC0wNS0wMSAgTWFyYyBPcmRpbmFzIGkgTGxvcGlzICA8bWFyYy5vcmRpbmFz
aWxsb3Bpc0Bjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2Vy
LgotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc1
MAotICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBOUEFQSSBwbHVnaW5zIG9uIEd0ayBhbmQgUXQt
eDExIHBvcnRzLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6RnJhbWVMb2FkZXJD
bGllbnQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y29tbWl0dGVkTG9h
ZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgot
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4p
OgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZmluaXNoZWRMb2FkaW5nKToK
LSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnNldE1haW5Eb2N1bWVudEVycm9y
KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotCi0y
MDA4LTA0LTMwICBTZWFuIEVnYW4gIDxzZWFuZWdhbkBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYW5kIG1vZGlmaWVkIGJ5IEhvbGdlci4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MjYKLSAgICAgICAgU3VwcG9ydCBzZXR0aW5nIGJh
Y2tncm91bmQgY29sb3IgYW5kIGEgMTYtYml0IGFscGhhIGNoYW5uZWwuCi0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgotCi0yMDA4LTA0LTI0ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+Ci0KLSAgICAgICAgLSBidWlsZCBmaXgKLQotICAg
ICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0wNC0yNCAgQW5kZXJzIENh
cmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNhbS4K
LQotICAgICAgICBDaGFuZ2Ugc29tZSBTdHJpbmcgYXJndW1lbnRzIHRvIGJlIGNvbnN0IHJlZmVy
ZW5jZXMgaW5zdGVhZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0VGV4dCk6
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0KLTIwMDgtMDQt
MjMgIENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIEVtaXQgYSB3YXJuaW5nIGFib3V0IGFu
IHVua25vd24gc2V0dGluZyBvbmx5IGlmIGl0IGlzCi0gICAgICAgIG5vdCBhIHZhbGlkIHByb3Bl
cnR5LiBPdGhlcndpc2UgYXBwbGljYXRpb25zIGNhbid0Ci0gICAgICAgIHN1YmNsYXNzIFdlYktp
dFdlYlNldHRpbmdzIHRvIGFkZCBuZXcgcHJvcGVydGllcy4KLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0wNC0yMCAgU2ltb24gSGF1c21hbm4gIDxoYXVzbWFu
bkB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAg
ICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU3OAotICAgICAgICBT
aGFyZSB0aGUgcHJpbnRpbmcgY29kZSBiZXR3ZWVuIHRoZSBHdGsgYW5kIHRoZSBRdCBwb3J0Ci0K
LSAgICAgICAgU2hhcmUgdGhlIHByaW50aW5nIGNvZGUgYmV0d2VlbiB0aGUgR3RrIGFuZCB0aGUg
UXQgcG9ydAotICAgICAgICBhbmQgYWRkZWQgcHJpbnRpbmcgdG8gdGhlIFF0IFdlYktpdCBBUEku
Ci0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOiBSZW1vdmVkIFByaW50Q29u
dGV4dCBpbiBmYXZvdXIgb2YKLSAgICAgICAgcGFnZS9QcmludGNvbnRleHQuY3BwL2gKLQotMjAw
OC0wNC0xOSAgQWxwIFRva2VyICA8YWxwQG51YW50aS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgTWFjaWVqLgotCi0gICAgICAgIEVuYWJsZSB2aXNpdGVkIGxpbmsgdHJhY2tpbmcgYnkgZGVm
YXVsdCBhdCBzdGFydHVwLgotCi0gICAgICAgIFdpdGggdGhpcyBwYXRjaCwgdGhlIEdUSysgcG9y
dCByZW5kZXJpbmcgb2YgQWNpZDMgbm93IG1hdGNoZXMgdGhlCi0gICAgICAgIHJlZmVyZW5jZSBw
YWdlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAoV2Vi
S2l0Ojpjb3JlKToKLSAgICAgICAgKHdlYmtpdF9pbml0KToKLQotMjAwOC0wNC0xMSAgTWFyayBS
b3dlICA8bXJvd2VAYXBwbGUuY29tPgotCi0gICAgICAgIEd0ayBidWlsZCBmaXggYWZ0ZXIgcjMy
MjMxLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBVcGRhdGUgdG8gdXNl
IGNvbnRlbnRSZW5kZXJlci4KLQotMjAwOC0wNC0xOCAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5j
b20+Ci0KLSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgotCi0gICAg
ICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjE4Ci0gICAgICAg
IFtHdGtdIHNlZ2ZhdWx0IHdoZW4gY2xpY2tpbmcgb24gYSBkaXNhYmxlZCBidXR0b24KLQotICAg
ICAgICBBbHdheXMgdXNlIHRoZSBtYWluIGZyYW1lIGZvciBtb3VzZSBldmVudHMgKG5vdCB0aGUg
Zm9jdXNlZCBmcmFtZSkKLSAgICAgICAgc2luY2UgaXQga25vd3MgYmVzdCBob3cgdG8gZ2V0IHRo
ZSBldmVudCB0aHJvdWdoIHRvIHRoZSByaWdodCB0YXJnZXQuCi0KLSAgICAgICAgVGhpcyBhbHNv
IGZpeGVzIGEgbnVsbCBjcmFzaGVyLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwOgotCi0yMDA4LTA0LTE3ICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KLQotICAgICAg
ICBSdWJiZXItc3RhbXBlZCBieSBIb2xnZXIgRnJleXRoZXIuCi0KLSAgICAgICAgUmVkdWNlIGhh
cmQtY29kZWQgcGFnZS1jYWNoZSBjb3VudCB0byAzIGJhc2VkIG9uIHJlc2VhcmNoIGRvbmUgZm9y
IHRoZQotICAgICAgICBNYWMgcG9ydCBvbiB2YWx1ZSAvIHBhZ2UuCi0KLSAgICAgICAgV2Ugd2ls
bCBuZWVkIHRvIG1ha2UgdGhpcyBtb3JlIGR5bmFtaWMgb3IgY29uZmlndXJhYmxlIGF0IHNvbWUg
cG9pbnQKLSAgICAgICAgYnV0IGZvciBub3cgaXQncyBiZXN0IHRvIGtlZXAgY2xvc2VyIHRvIHRo
ZSBiZWhhdmlvdXIgYmVmb3JlIHBhZ2UKLSAgICAgICAgY2FjaGluZyB3YXMgZW5hYmxlZC4KLQot
ICAgICAgICBJc3N1ZSBzcG90dGVkIGJ5IE1hcmsgUm93ZS4KLQotICAgICAgICAqIHdlYmtpdC93
ZWJraXRwcml2YXRlLmNwcDoKLSAgICAgICAgKHdlYmtpdF9pbml0KToKLQotMjAwOC0wNC0xNyAg
RGFuaWVsZSBNZXRpbGxpICA8ZGFuaWVsZS5tZXRpbGxpQGdtYWlsLmNvbT4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBFcmljLgotCi0gICAgICAgIEZpeGVkIGEgdHlwbyBpbiB0aGUgY29weXJpZ2h0
IGhlYWRlci4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmg6Ci0KLTIwMDgtMDQt
MTQgIEhvbGdlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg0MTEKLSAgICAgICAgRW5hYmxlIFBhZ2UgY2FjaGluZyBhbmQgY3JlYXRl
IEZyYW1lVmlld3Mgb24gdGhlIGZseQotCi0gICAgICAgIENyZWF0ZSB0aGUgRnJhbWVWaWV3IG9u
IHRoZSBmbHkgYW5kIGNhY2hlIHBhZ2VzCi0KLSAgICAgICAgLSBLZWVwIGEgY29weSBvZiB0aGUg
R3RrQWRqdXN0bWVudCB0byBiZSBhYmxlIHRvIHJldXNlIGl0IGZvciB0aGUKLSAgICAgICAgICBG
cmFtZVZpZXdzCi0gICAgICAgIC0gRG8gbm90IGluaXRpYWxseSBjcmVhdGUgYSBGcmFtZVZpZXcg
YW5kIHVwZGF0ZSB0aGUgV2ViS2l0IGNvZGUgdG8KLSAgICAgICAgICBjb3BlIHdpdGggbm90IGhh
dmluZyBhIHZpZXcuCi0gICAgICAgIC0gQ2FjaGUgc2V2ZW4gcGFnZXMgYnkgZGVmYXVsdC4KLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1lKToKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNhbkNhY2hlUGFnZSk6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRQYWdlKToKLSAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21D
YWNoZWRQYWdlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRp
b25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRl
LmNwcDoKLSAgICAgICAgKHdlYmtpdF9pbml0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJp
dmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA4LTA0LTEwICBNYXJpbyBCZW5zaSAgPG1i
ZW5zaUBwbGV5by5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQwMAotICAgICAg
ICBEYXRhYmFzZSBleGFtcGxlIGRvZXNuJ3Qgd29yayBvbiBHdGsgcG9ydAotCi0gICAgICAgIEZp
eCBxdW90YSBpbiBDaHJvbWVDbGllbnQKLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKToKLQotMjAwOC0wNC0wOCAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5j
b20+Ci0KLSAgICAgICAgTW92ZSBjYWxsT25NYWluVGhyZWFkIHRvIFdURgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
cHJpdmF0ZS5jcHA6IFVwZGF0ZWQgI2luY2x1ZGUuCi0gICAgICAgICh3ZWJraXRfaW5pdCk6IENo
YW5nZWQgdG8gY2FsbCBLSlM6OmluaXRpYWxpemVUaHJlYWRpbmcuCi0KLTIwMDgtMDQtMDYgIEx1
Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
QWxwIFRva2VyLgotCi0gICAgICAgIEZpeCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RyYW5zcGFyZW50
KCkgcmV0dXJuIHZhbHVlLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgot
Ci0yMDA4LTAzLTMxICBKYXNwZXIgQnJ5YW50LUdyZWVuZSAgPGphc3BlckB1bml4LmdlZWsubno+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgUmVzb2x2ZXMg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMTAKLSAgICAgICAgIldl
YktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSBpcyBkZWZpbmVkIGluIHR3byBwbGFjZXMgdW5uZWNl
c3NhcmlseSIKLQotICAgICAgICBSZW1vdmVkIHVubmVjZXNzYXJ5IGRlZmluaXRpb24gb2YgV2Vi
S2l0TmV0d29ya1JlcXVlc3RQcml2YXRlIGluCi0gICAgICAgIHdlYmtpdHByaXZhdGUuaAotCi0g
ICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKLQotMjAwOC0wMy0yNSAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4KLQot
ICAgICAgICBSZW1vdmUgbmV3bHkgb2Jzb2xldGUgRnJhbWVMb2FkZXJDbGllbnQgbWV0aG9kcwot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMDgtMDMt
MjAgIEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgotCi0gICAgICAgIEdUSysgYnVpbGQgZml4
LiBCYWNrIG91dCByMzExODMuIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2VkIEFQSSBzdHlsZQot
ICAgICAgICBpc3N1ZXMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgotICAgICAgICAqIHdlYmtpdC9oZWFk
ZXJzLnByaToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0LW1hcnNoYWwubGlzdDoKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0ZGVmaW5lcy5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRuYXZpZ2F0
aW9uYWN0aW9uLmNwcDogUmVtb3ZlZC4KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmF2aWdhdGlv
bmFjdGlvbi5oOiBSZW1vdmVkLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgotCi0yMDA4
LTAzLTIwICBKYXNwZXIgQnJ5YW50LUdyZWVuZSAgPGphc3BlckB1bml4LmdlZWsubno+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYW5kIHR3ZWFrZWQgYnkgQW5kZXJzLgotCi0gICAgICAgIFJlc29sdmVz
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDkyCi0gICAgICAgICJb
R1RLXSBNaWRkbGUtbW91c2UgY2xpY2sgc2hvdWxkIGFsbG93IG9wZW5pbmcgYSBVUkwgaW4gYSBu
ZXcgdGFiIgotCi0gICAgICAgIENyZWF0ZWQgV2ViS2l0TmF2aWdhdGlvbkFjdGlvbiBvYmplY3Qg
ZXhwb3J0ZWQgdGhyb3VnaCB0aGUgQVBJLiBUaGUKLSAgICAgICAgbmF2aWdhdGlvbi1yZXF1ZXN0
ZWQgc2lnbmFsIHByb3ZpZGVzIHRoaXMgb2JqZWN0IGFzIGNvbnRleHQgZm9yIHRoZQotICAgICAg
ICByZXF1ZXN0ZWQgbmF2aWdhdGlvbiwgYWxsb3dpbmcgdGhlIGFwcGxpY2F0aW9uIHRvIGRlY2lk
ZSB3aGF0IHRvIGRvCi0gICAgICAgIHdpdGggdGhlIG5hdmlnYXRpb24gYmFzZWQgb24gd2hpY2gg
bW91c2UgYnV0dG9uIHdhcyB1c2VkLCB3aGljaAotICAgICAgICBtb2RpZmllciBrZXlzIHdlcmUg
aGVsZCBkb3duLCBldGMuIFRoaXMgYWxsb3dzLCBmb3IgZXhhbXBsZSwgdGhlCi0gICAgICAgIGFw
cGxpY2F0aW9uIHRvIG9wZW4gbGlua3MgaW4gYSBuZXcgdGFiIHdoZW4gZWl0aGVyIG1pZGRsZS1j
bGljayBvcgotICAgICAgICBjb250cm9sLWNsaWNrIGFyZSB1c2VkIHRvIGluaXRpYXRlIHRoZSBu
YXZpZ2F0aW9uLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRH
dGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKLSAgICAgICAgKiB3ZWJraXQvaGVhZGVycy5w
cmk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdC1tYXJzaGFsLmxpc3Q6Ci0gICAgICAgICogd2Vi
a2l0L3dlYmtpdGRlZmluZXMuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmF2aWdhdGlvbmFj
dGlvbi5jcHA6IEFkZGVkLgotICAgICAgICAod2Via2l0X25hdmlnYXRpb25fYWN0aW9uX2ZpbmFs
aXplKToKLSAgICAgICAgKHdlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9jbGFzc19pbml0KToKLSAg
ICAgICAgKHdlYmtpdF9uYXZpZ2F0aW9uX2FjdGlvbl9pbml0KToKLSAgICAgICAgKHdlYmtpdF9u
YXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKToKLSAgICAgICAgKHdlYmtpdF9uYXZpZ2F0aW9u
X2FjdGlvbl9nZXRfbW9kaWZpZXJfZmxhZ3MpOgotICAgICAgICAod2Via2l0X25hdmlnYXRpb25f
YWN0aW9uX2dldF9uYXZpZ2F0aW9uX3R5cGUpOgotICAgICAgICAod2Via2l0X25hdmlnYXRpb25f
YWN0aW9uX2dldF9vcmlnaW5hbF91cmwpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRuYXZpZ2F0
aW9uYWN0aW9uLmg6IEFkZGVkLgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoK
LSAgICAgICAgKFdlYktpdDo6a2l0KToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5o
OgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2Vidmlldy5oOgotCi0yMDA4LTAzLTE4ICBSb2RuZXkgRGF3ZXMgIDxkb2JleUB3YXlv
ZnRoZW1vbmtleS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYW5kIGxhbmRlZCBieSBqaG9uZXlj
dXR0LgotCi0gICAgICAgIFVwZGF0ZSB0byBjaGVjayBpZiB0aGUgTUlNRSB0eXBlIGlzIHN1cHBv
cnRlZCBieSBhIHBsdWdpbi4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50
VHlwZSk6Ci0KLTIwMDgtMDMtMTggIFJvZG5leSBEYXdlcyAgPGRvYmV5QHdheW9mdGhlbW9ua2V5
LmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBKb24gSG9uZXljdXR0LgotCi0gICAgICAgIFVw
ZGF0ZSBzZXRDb250YWluaW5nV2luZG93KCkgY2FsbHMgdG8gcGFzcyBhIEd0a1dpZGdldC4KLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X2ZyYW1lX25ldyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX2ZyYW1lX2luaXRfd2l0aF93ZWJfdmll
dyk6Ci0KLTIwMDgtMDMtMTMgIFJvZG5leSBEYXdlcyAgPGRvYmV5QHdheW9mdGhlbW9ua2V5LmNv
bT4KLQotICAgICAgICBGaXggR1RLKyBidWlsZCBmb3IgU2hhcmVkQnVmZmVyIGNoYW5nZXMuCi0K
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfbG9hZF9zdHJpbmcpOgotCi0yMDA4LTAzLTEyICBUb21taSBLb211bGFpbmVuICA8dG9t
bWkua29tdWxhaW5lbkBpa2kuZmk+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgot
Ci0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Nzk5Ci0g
ICAgICAgIFdlYlZpZXcgc2lnbmFscyBzaG91bGQgdXNlIG1vcmUgc3BlY2lmaWMgdHlwZXMKLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDogVXNlIFdFQktJVF9UWVBFX1dFQl9G
UkFNRSBhcmd1bWVudAotICAgICAgICB0eXBlIGluICJzY3JpcHQtYWxlcnQiLCAic2NyaXB0LWNv
bmZpcm0iLCAic2NyaXB0LXNjcmlwdC1wcm9tcHQiCi0gICAgICAgIHNpZ25hbHMgc28gdGhhdCBp
dCBnZXRzIG1vcmUgY2xlYXJseSBkb2N1bWVudGVkIHJhdGhlciB0aGFuIGp1c3QKLSAgICAgICAg
cGxhaW4gR09iamVjdC4KLQotMjAwOC0wMy0xMCAgWGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4K
LQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAgRml4ICJtaXNzaW5n
IGJyYWNlcyIgY29tcGlsZXIgd2FybmluZy4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2
aWV3LmNwcDoKLQotMjAwOC0wMy0wNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KLQotICAgICAgICAtIFJlbW92ZSBhbGwgdW5u
ZWNlc3NhcnkgaW5jbHVkZXMgb2YgSlNET01XaW5kb3dCYXNlLmgsIHdlIHByZWZlciBpbmNsdWRp
bmcKLSAgICAgICAgICBKU0RPTVdpbmRvdy5oCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmZyYW1l
LmNwcDoKLQotMjAwOC0wMy0wMyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgotCi0gICAg
ICAgIEdUSysgYnVpbGQgZml4LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6d2lu
ZG93T2JqZWN0Q2xlYXJlZCk6Ci0KLTIwMDgtMDMtMDMgIEFscCBUb2tlciAgPGFscEBhdG9rZXIu
Y29tPgotCi0gICAgICAgIEZpeCB0aGUgR1RLKyBidWlsZCBmb2xsb3dpbmcgYnJlYWthZ2UgaW50
cm9kdWNlZCBpbiByMzA3MTIuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjppbUNvbnRleHRDb21taXR0ZWQpOgotCi0yMDA4
LTAzLTAyICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBNYXJrIFJvd2UuCi0KLSAgICAgICAgU3BsaXQgdGhlIFdlYktpdCBHVEsrIGJ1aWxkIG91dCBv
ZiB0aGUgV2ViQ29yZSBidWlsZCBhbmQgY2hhbmdlIHRoZQotICAgICAgICBzaGFyZWQgb2JqZWN0
IG5hbWUgdG8gbWF0Y2ggdGhlIHBhY2thZ2UgbmFtZS4KLQotICAgICAgICAqIHdlYmtpdC5wYy5p
bjoKLQotMjAwOC0wMi0yNyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+Ci0KLSAgICAg
ICAgQXR0ZW1wdCB0byBmaXggdGhlIEdUSysgYnVpbGQKLQotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5jcHA6Ci0KLTIwMDgtMDItMjQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNhbS4KLQotICAgICAgICAtIHJlbW92ZSBzZXBh
cmF0ZSBjbGllbnQgY2FsbHMgZm9yICJzdGFuZGFyZCIgYW5kICJyZWxvYWQnIGhpc3RvcnkKLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnkpOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMDgtMDIt
MjMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgotCi0gICAgICAgIEJ1aWxk
IGZpeC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoKLSAgICAgICAgKHdl
YmtpdF9pbml0KTogUmVuYW1lZCBpbml0aWFsaXplVGhyZWFkaW5nIHRvIGluaXRpYWxpemVUaHJl
YWRpbmdBbmRNYWluVGhyZWFkLgotCi0yMDA4LTAyLTE4ICBBbHAgVG9rZXIgIDxhbHBAYXRva2Vy
LmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0KLSAgICAgICAgaHR0cDov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMTIKLSAgICAgICAgW0dUS10gV2Vi
dmlldyBUcmFuc3BhcmVudCBCYWNrZ3JvdW5kCi0KLSAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFdl
YlZpZXcgYmFja2dyb3VuZCB0cmFuc3BhcmVuY3kuCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5oOgotCi0yMDA4LTAyLTE4ICBBbHAgVG9rZXIgIDxhbHBA
YXRva2VyLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0KLSAgICAgICAg
SW1wbGVtZW50IHdlYmtpdF93ZWJfdmlld19nZXRfZm9jdXNlZF9mcmFtZSgpCi0KLSAgICAgICAg
RXF1aXZhbGVudCB0byBzZWxlY3RlZEZyYW1lIGluIHRoZSBNYWMgQVBJLgotCi0gICAgICAgICog
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
Lmg6Ci0KLTIwMDgtMDItMTcgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHVucGx1Z2dh
YmxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0KLSAgICAgICAgRml4
IGEgY3Jhc2ggaW50cm9kdWNlZCBpbiBjaGFuZ2VzZXQgIzI5OTg1IGJ5IG1vdmluZyB0aGUgZGVy
ZWZlcmVuY2UgdG8gYWZ0ZXIKLSAgICAgICAgdGhlIG51bGwgY2hlY2suCi0KLSAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwOgotICAgICAgICAoX1dlYktpdFdlYkhpc3Rv
cnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfY29yZV9pdGVt
KToKLQotMjAwOC0wMi0xNSAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAgICAg
Rml4IHRoZSBHVEsrIGJ1aWxkIGZvbGxvd2luZyBicmVha2FnZSBpbnRyb2R1Y2VkIGluIHIzMDI0
My4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQpOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKToKLQotMjAwOC0w
Mi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgLSBhbm90aGVy
IHRyeSBhdCBmaXhpbmcgdGhlIGJ1aWxkCi0KLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5jcHA6IEFkZGVkIHNvbWUgZXhwbGljaXQgY29udmVyc2lvbnMgdG8gS1VSTC4KLQotMjAwOC0w
Mi0xNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2ViZnJhbWUuY3BwOiBSZW1vdmVkIERlcHJlY2F0ZWRTdHJpbmcgdXNlIHRvIHRyeSB0
byBrZWVwIGl0IGJ1aWxkaW5nLgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDog
RGl0dG8uCi0KLTIwMDgtMDItMTQgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VA
c2VsZmlzaC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwLgotCi0gICAgICAgICogTWFr
ZSB0aGUgaGFuZGxpbmcgb2YgdGhlIGNvcmVGcmFtZSBjb25zaXN0ZW50LiBXZSBjb25zdHJ1Y3Qg
dGhlIGNvcmVGcmFtZQotICAgICAgICBhdCB0aGUgYmVnaW5uaW5nIGFuZCBpdCB3aWxsIGxpdmUg
dW50aWwgdGhlIGVuZC4gQ2hhbmdlIHRoZSBnX3JldHVybl8odmFsXylpZgotICAgICAgICB0byBB
U1NFUlRzIGFzIGhhdmluZyBhIDAgY29yZUZyYW1lIGNhbiBuZXZlciBoYXBwZW4uCi0KLSAgICAg
ICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAoUHJpbnRDb250ZXh0Ojp3
ZWJraXRfd2ViX2ZyYW1lX3ByaW50KToKLQotMjAwOC0wMi0xNCAgSG9sZ2VyIEhhbnMgUGV0ZXIg
RnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbHAu
Ci0KLSAgICAgICAgKiBNYWtlIHN1cmUgdGhhdCB0aGUgV2ViQ29yZTo6RnJhbWUgaXMgbGl2aW5n
IGFzIGxvbmcgYXMgdGhlIFdlYktpdFdlYkZyYW1lCi0gICAgICAgIHdyYXBwZWQgYXJvdW5kIGl0
LiBBbGwgY3VycmVudCBjYWxscyB0byBXZWJDb3JlOjpGcmFtZSBmcm9tIHdpdGhpbiB0aGUKLSAg
ICAgICAgV2ViS2l0V2ViRnJhbWUgYXJlIHNhZmUsIGV2ZW4gaW4gdGhlIGNhc2Ugd2hlcmUgdGhl
IFdlYkNvcmU6OkZyYW1lIGlzIGFscmVhZHkKLSAgICAgICAgZGV0YWNoZWQgZnJvbSB0aGUgV2Vi
Q29yZTo6UGFnZS4KLSAgICAgICAgKiBGb3IgdGhlIG1haW5GcmFtZSB0aGUgV2ViS2l0V2ViVmll
dyBpcyBob2xkaW5nIHRoZSBpbml0aWFsIHJlZmVyZW5jZSBhbmQKLSAgICAgICAgd2lsbCB1bnJl
ZiBvbiBkZXN0cnVjdGlvbi4KLSAgICAgICAgKiBGb3Igc3ViLWZyYW1lcyB0aGUgRnJhbWVyTG9h
ZGVyQ2xpZW50R3RrLmNwcCB3aWxsIGRvIHRoZSB1bnJlZmluZyB3aGVuIHRoZQotICAgICAgICBm
cmFtZSBnZXRzIGRldGFjaGVkIGZyb20gdGhlIHBhcmVudC4KLSAgICAgICAgKiBNYWtlIHN1cmUg
RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQgZ2V0cyBjYWxsZWQgYnkgY2FsbGluZyBGcmFt
ZUxvYWRlcjo6ZGV0YWNoQ2hpbGRyZW4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRldGFjaGVkRnJvbVBhcmVudDQpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNw
cDoKLSAgICAgICAgKFdlYktpdDo6Y29yZSk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHByaXZh
dGUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0wMi0xNCAgSG9sZ2VyIEhhbnMgUGV0ZXIg
RnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbHAu
Ci0KLSAgICAgICAgV2ViQ29yZTo6RnJhbWUgaXMgUmVmQ291bnRlZCwgZG8gbm90IG1hbnVhbGx5
IGRlbGV0ZSBpdCEKLQotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0KLTIw
MDgtMDItMTQgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwLgotCi0gICAgICAgICogUGx1ZyBhIGxlYWsKLQot
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0KLTIwMDgtMDItMTQgIEhvbGdl
ciBIYW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgQWxwLgotCi0gICAgICAgICogVXBkYXRlIHRoZSBDb3B5cmlnaHQgSW5mb3JtYXRp
b24KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoK
LSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJmcmFtZS5jcHA6Ci0KLTIwMDgtMDItMTMgIEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCi0KLSAgICAgICAgRml4IHZlcnkg
c21hbGwsIHVwc2lkZSBkb3duLCBpbnNpZGUgb3V0IHRleHQgb24gR1RLKy9EaXJlY3RGQi4KLQot
ICAgICAgICBCYXNlZCBvbiBhbiBpbml0aWFsIHBhdGNoIGJ5IFNyaXJhbSBOZWVsYWthbmRhbiA8
c3JpcmFtLm5lZWxha2FuZGFuQGdtYWlsLmNvbT4KLQotICAgICAgICBUZXN0IHRoZSByZXN1bHQg
b2YgZ2RrX3NjcmVlbl9nZXRfcmVzb2x1dGlvbigpIGFuZCB1c2UgYSBkZWZhdWx0Ci0gICAgICAg
IGZhbGxiYWNrIGluIGNhc2Ugb2YgZmFpbHVyZS4KLQotICAgICAgICBBbHNvIHJlbW92ZSBhbiB1
bmhlbHBmdWwgcnVudGltZSB3YXJuaW5nLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZp
ZXcuY3BwOgotCi0yMDA4LTAyLTA4ICBQaWVycmUtTHVjIEJlYXVkb2luICA8cGllcnJlLWx1Yy5i
ZWF1ZG9pbkBjb2xsYWJvcmEuY28udWs+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2Vy
LgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDA5
Ci0gICAgICAgIFtHdGtdIFdlYmtpdCBzdHJpcHMgYWNjZW50cyBmcm9tIHNvbWUgZGVhZC1rZXkg
Y29tYmluYXRpb25zCi0KLSAgICAgICAgS2V5RXZlbnRzIGhhdmUgdG8gZ28gdGhyb3VnaCB0aGUg
Z3RrIGlucHV0IG1ldGhvZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmltQ29udGV4dENvbW1pdHRlZCk6Ci0gICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KToKLQot
MjAwOC0wMi0wNSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAgICBGaXggd2FybmluZ3Mgc2VlbiBvbiB0aGUgR3Rr
IHBvcnQgYnkgZGVjbGFyaW5nIHZhcmlhYmxlcyBhbmQgdXNpbmcgY29uc3RhbnRzIG9mIHRoZSBj
b3JyZWN0IHR5cGVzLgotCi0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlz
dC5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0
X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jb250YWluc19pdGVtKToKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKLQotMjAwOC0wMi0wNCAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQGltZW5kaW8u
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAgICBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2NQotICAgICAgICBbR1RLXSBVc2Ug
YSBjb25zaXN0ZW50IGNvZGluZyBzdHlsZQotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6aW1Db250ZXh0Q29tbWl0dGVkKToK
LSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgotICAgICAgICAo
V2ViS2l0OjpFZGl0b3JDbGllbnQ6On5FZGl0b3JDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpF
ZGl0b3JDbGllbnQ6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcpOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNw
cDoKLSAgICAgICAgKF9XZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGU6OndlYmtpdF9uZXR3b3Jr
X3JlcXVlc3RfZmluYWxpemUpOgotICAgICAgICAoX1dlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0
ZTo6d2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0KToKLSAgICAgICAgKF9XZWJLaXRO
ZXR3b3JrUmVxdWVzdFByaXZhdGU6OndlYmtpdF9uZXR3b3JrX3JlcXVlc3RfaW5pdCk6Ci0gICAg
ICAgIChfV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlOjp3ZWJraXRfbmV0d29ya19yZXF1ZXN0
X25ldyk6Ci0gICAgICAgIChfV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlOjp3ZWJraXRfbmV0
d29ya19yZXF1ZXN0X3NldF91cmkpOgotICAgICAgICAoX1dlYktpdE5ldHdvcmtSZXF1ZXN0UHJp
dmF0ZTo6d2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfdXJpKToKLSAgICAgICAgKiB3ZWJraXQv
d2Via2l0bmV0d29ya3JlcXVlc3QuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OmdldFZpZXdGcm9tRnJhbWUpOgotICAgICAgICAoV2ViS2l0
Ojpjb3JlKToKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgotICAgICAgICAoX1dlYktpdFdlYkJh
Y2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfbmV3X3dp
dGhfd2ViX3ZpZXcpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3Qu
aDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJmcmFtZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRl
bS5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2Vi
X2hpc3RvcnlfaXRlbV9kaXNwb3NlKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVBy
aXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2ZpbmFsaXplKToKLSAgICAgICAgKF9XZWJL
aXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRo
X2NvcmVfaXRlbSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJr
aXRfd2ViX2hpc3RvcnlfaXRlbV9uZXcpOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVt
UHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfZGF0YSk6Ci0gICAgICAg
IChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9n
ZXRfdGl0bGUpOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0
X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X2FsdGVybmF0ZV90aXRsZSk6Ci0gICAgICAgIChfV2ViS2l0
V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9zZXRfYWx0ZXJu
YXRlX3RpdGxlKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtp
dF93ZWJfaGlzdG9yeV9pdGVtX2dldF91cmkpOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJ
dGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X29yaWdpbmFsX3VyaSk6Ci0g
ICAgICAgIChXZWJLaXQ6OmNvcmUpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJoaXN0b3J5
aXRlbS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5oOgotICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmll
dy5oOgotCi0yMDA4LTAyLTA0ICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KLQotICAgICAg
ICBSdWJiZXItc3RhbXBlZCBieSBNYXJrIFJvd2UuCi0KLSAgICAgICAgUmVtb3ZlIGFsbCB0cmFp
bGluZyB3aGl0ZXNwYWNlIGluIHRoZSBHVEsrIHBvcnQgYW5kIHJlbGF0ZWQKLSAgICAgICAgY29t
cG9uZW50cy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuaDoKLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJp
dmF0ZS5oOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwOgot
ICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFj
a19mb3J3YXJkX2xpc3RfY29udGFpbnNfaXRlbSk6Ci0gICAgICAgIChfV2ViS2l0V2ViQmFja0Zv
cndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2Fy
ZF9saXN0X3dpdGhfbGltaXQpOgotICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFBy
aXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfaXRlbSk6Ci0gICAg
ICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2Zv
cndhcmRfbGlzdF9nZXRfZm9yd2FyZF9sZW5ndGgpOgotICAgICAgICAqIHdlYmtpdC93ZWJraXR3
ZWJoaXN0b3J5aXRlbS5jcHA6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRl
Ojp3ZWJraXRfaGlzdG9yeV9pdGVtcyk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Q
cml2YXRlOjp3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZCk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlz
dG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfaGlzdG9yeV9pdGVtX3JlbW92ZSk6Ci0gICAgICAgIChf
V2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9kaXNw
b3NlKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX25ld193aXRoX2RhdGEpOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJ
dGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3RpdGxlKToKLSAgICAgICAg
KF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dl
dF9hbHRlcm5hdGVfdGl0bGUpOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0
ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fc2V0X2FsdGVybmF0ZV90aXRsZSk6Ci0gICAgICAg
IChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9n
ZXRfb3JpZ2luYWxfdXJpKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6
OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9sYXN0X3Zpc2l0ZWRfdGltZSk6Ci0gICAgICAg
IChXZWJLaXQ6OmtpdCk6Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmg6
Ci0gICAgICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3Lmg6Ci0KLTIwMDgtMDItMDMgIENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlh
bkBpbWVuZGlvLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAg
ICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNDYKLSAgICAgICAg
W0dUS10gQ29udGV4dCBtZW51IGZpeGVzIGFuZCBjdXN0b21pc2F0aW9uIHN1cG9ydAotCi0gICAg
ICAgICogd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA4LTAxLTMxICBBbHAgVG9rZXIg
IDxhbHBAYXRva2VyLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0KLSAg
ICAgICAgRml4IHRoZSBwa2ctY29uZmlnIGZpbGUgdG8gZm9sbG93IEdUSysgcGFja2FnZSBuYW1p
bmcgYW5kIHZlcnNpb25pbmcKLSAgICAgICAgY29udmVudGlvbnMuCi0KLSAgICAgICAgUmVtb3Zl
IHVubmVlZGVkIGRlcGVuZGVuY3kgbGlzdGluZ3MuCi0KLSAgICAgICAgKiBXZWJLaXRHdGsucGMu
aW46IFJlbW92ZWQuCi0gICAgICAgICogd2Via2l0LnBjLmluOiBDb3BpZWQgZnJvbSBXZWJLaXQv
Z3RrL1dlYktpdEd0ay5wYy5pbi4KLQotMjAwOC0wMS0zMSAgQWxwIFRva2VyICA8YWxwQGF0b2tl
ci5jb20+Ci0KLSAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgQWRhbSBSb2Jlbi4KLQotICAgICAg
ICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAwNgotICAgICAgICBb
R1RLXSBIZWFkZXIgcGF0aCBzaG91bGQgYmUgd2Via2l0L3dlYmtpdC5oCi0KLSAgICAgICAgTW92
ZSB0aGUgR1RLKyBBUEkgc291cmNlcyBhcyBuZWVkZWQgYW5kIHVwZGF0ZSB0aGUgYnVpbGQgc3lz
dGVtcy4KLQotICAgICAgICAqIFdlYlZpZXc6IFJlbW92ZWQuCi0gICAgICAgICogV2ViVmlldy9o
ZWFkZXJzLnByaTogUmVtb3ZlZC4KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdC1tYXJzaGFsLmxp
c3Q6IFJlbW92ZWQuCi0gICAgICAgICogV2ViVmlldy93ZWJraXQuaDogUmVtb3ZlZC4KLSAgICAg
ICAgKiBXZWJWaWV3L3dlYmtpdGRlZmluZXMuaDogUmVtb3ZlZC4KLSAgICAgICAgKiBXZWJWaWV3
L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmNwcDogUmVtb3ZlZC4KLSAgICAgICAgKiBXZWJWaWV3L3dl
YmtpdG5ldHdvcmtyZXF1ZXN0Lmg6IFJlbW92ZWQuCi0gICAgICAgICogV2ViVmlldy93ZWJraXRw
cml2YXRlLmNwcDogUmVtb3ZlZC4KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHByaXZhdGUuaDog
UmVtb3ZlZC4KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5jcHA6
IFJlbW92ZWQuCi0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaDog
UmVtb3ZlZC4KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYmZyYW1lLmNwcDogUmVtb3ZlZC4K
LSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYmZyYW1lLmg6IFJlbW92ZWQuCi0gICAgICAgICog
V2ViVmlldy93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6IFJlbW92ZWQuCi0gICAgICAgICogV2Vi
Vmlldy93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oOiBSZW1vdmVkLgotICAgICAgICAqIFdlYlZpZXcv
d2Via2l0d2Vic2V0dGluZ3MuY3BwOiBSZW1vdmVkLgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0
d2Vic2V0dGluZ3MuaDogUmVtb3ZlZC4KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcu
Y3BwOiBSZW1vdmVkLgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5oOiBSZW1vdmVk
LgotICAgICAgICAqIHdlYmtpdDogQ29waWVkIGZyb20gV2ViS2l0L2d0ay9XZWJWaWV3LgotICAg
ICAgICAqIHdlYmtpdC93ZWJraXQuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0bmV0d29ya3Jl
cXVlc3QuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2ViZnJhbWUuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaDoKLSAg
ICAgICAgKiB3ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaDoKLSAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5oOgotCi0yMDA4LTAxLTI3ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256
b0B1bnBsdWdnYWJsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0g
ICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODExCi0gICAg
ICAgIFtndGtdIFtyZXF1ZXN0XSBhZGQgYSB3ZWJraXRfZ3RrX3BhZ2VfZ29fdG9faGlzdG9yeV9p
dGVtIGZ1bmN0aW9uCi0KLSAgICAgICAgaW1wbGVtZW50IGJhY2svZm9yd2FyZCBsaXN0IGFuZCBo
aXN0b3J5IGl0ZW0KLQotICAgICAgICAqIFdlYlZpZXcvaGVhZGVycy5wcmk6Ci0gICAgICAgICog
V2ViVmlldy93ZWJraXQuaDoKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHByaXZhdGUuY3BwOgot
ICAgICAgICAqIFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIFdlYlZpZXcvd2Vi
a2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDogQWRkZWQuCi0gICAgICAgIChfV2ViS2l0V2ViQmFj
a0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9kaXNwb3Nl
KToKLSAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlOjp3ZWJraXRfd2Vi
X2JhY2tfZm9yd2FyZF9saXN0X2NsYXNzX2luaXQpOgotICAgICAgICAoX1dlYktpdFdlYkJhY2tG
b3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfaW5pdCk6Ci0g
ICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNr
X2ZvcndhcmRfbGlzdF9uZXdfd2l0aF93ZWJfdmlldyk6Ci0gICAgICAgIChfV2ViS2l0V2ViQmFj
a0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nb19mb3J3
YXJkKToKLSAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlOjp3ZWJraXRf
d2ViX2JhY2tfZm9yd2FyZF9saXN0X2dvX2JhY2spOgotICAgICAgICAoX1dlYktpdFdlYkJhY2tG
b3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY29udGFpbnNf
aXRlbSk6Ci0gICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0
X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nb190b19pdGVtKToKLSAgICAgICAgKF9XZWJLaXRXZWJC
YWNrRm9yd2FyZExpc3RQcml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9m
b3J3YXJkX2xpc3Rfd2l0aF9saW1pdCk6Ci0gICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRM
aXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0X3dp
dGhfbGltaXQpOgotICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6Ondl
YmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfaXRlbSk6Ci0gICAgICAgIChfV2Vi
S2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlz
dF9nZXRfY3VycmVudF9pdGVtKToKLSAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQ
cml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2l0ZW0pOgot
ICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFj
a19mb3J3YXJkX2xpc3RfZ2V0X250aF9pdGVtKToKLSAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9y
d2FyZExpc3RQcml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2xl
bmd0aCk6Ci0gICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0
X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9sZW5ndGgpOgotICAgICAgICAoX1dl
YktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xp
c3RfZ2V0X2xpbWl0KToKLSAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRl
Ojp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X3NldF9saW1pdCk6Ci0gICAgICAgICogV2Vi
Vmlldy93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuaDogQWRkZWQuCi0gICAgICAgICogV2ViVmll
dy93ZWJraXR3ZWJoaXN0b3J5aXRlbS5jcHA6IEFkZGVkLgotICAgICAgICAoX1dlYktpdFdlYkhp
c3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X2hpc3RvcnlfaXRlbXMpOgotICAgICAgICAoX1dlYktp
dFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X2hpc3RvcnlfaXRlbV9hZGQpOgotICAgICAg
ICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X2hpc3RvcnlfaXRlbV9yZW1v
dmUpOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9o
aXN0b3J5X2l0ZW1fZGlzcG9zZSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2
YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9maW5hbGl6ZSk6Ci0gICAgICAgIChfV2ViS2l0
V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9jbGFzc19pbml0
KToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlz
dG9yeV9pdGVtX2luaXQpOgotICAgICAgICAoX1dlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6
d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfY29yZV9pdGVtKToKLSAgICAgICAgKF9X
ZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ldyk6
Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3Rv
cnlfaXRlbV9uZXdfd2l0aF9kYXRhKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVBy
aXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90aXRsZSk6Ci0gICAgICAgIChfV2Vi
S2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfYWx0
ZXJuYXRlX3RpdGxlKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGU6Ondl
YmtpdF93ZWJfaGlzdG9yeV9pdGVtX3NldF9hbHRlcm5hdGVfdGl0bGUpOgotICAgICAgICAoX1dl
YktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZTo6d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3Vy
aSk6Ci0gICAgICAgIChfV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlOjp3ZWJraXRfd2ViX2hp
c3RvcnlfaXRlbV9nZXRfb3JpZ2luYWxfdXJpKToKLSAgICAgICAgKF9XZWJLaXRXZWJIaXN0b3J5
SXRlbVByaXZhdGU6OndlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9sYXN0X3Zpc2l0ZWRfdGlt
ZSk6Ci0gICAgICAgIChXZWJLaXQ6OmNvcmUpOgotICAgICAgICAoV2ViS2l0OjpraXQpOgotICAg
ICAgICAqIFdlYlZpZXcvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaDogQWRkZWQuCi0gICAgICAgICog
V2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZp
ZXcuaDoKLQotMjAwOC0wMS0yNSAgT3JpIEJlcm5zdGVpbiAgPG9yaUBlaWdlbnN0YXRlLm9yZz4K
LQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAgaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3OTUKLSAgICAgICAgV2ViS2l0R3RrIGNyYXNo
ZXMgd2hlbiB0aGVyZSBpcyBubyBmb2N1c2VkIEZyYW1lCi0KLSAgICAgICAgQWRkIGEgbnVsbCBj
aGVjay4gZm9jdXNlZEZyYW1lKCkgaXNuJ3QgdXNlZCBkaXJlY3RseSBhbnl3aGVyZSBlbHNlIHNv
Ci0gICAgICAgIHRoaXMgaXMgdGhlIG9ubHkgY2FzZSB0aGF0IG5lZWRzIHRvIGJlIGZpeGVkLgot
Ci0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0wMS0yMiAgQ2hy
aXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQGltZW5kaW8uY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEFscCBUb2tlci4KLQotICAgICAgICBbR1RLXSBBUEk6IFdlYktpdFdlYlNldHRpbmdzIGlz
IG5vdCB1c2FibGUKLSAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYyMTkKLQotICAgICAgICBJbXBsZW1lbnQgV2ViS2l0V2ViU2V0dGluZ3MuCi0KLSAgICAg
ICAgKiBXZWJWaWV3L2hlYWRlcnMucHJpOgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0Lmg6Ci0g
ICAgICAgICogV2ViVmlldy93ZWJraXRwcml2YXRlLmNwcDoKLSAgICAgICAgKiBXZWJWaWV3L3dl
YmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHNldHRpbmdzLmNwcDogUmVt
b3ZlZC4KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHNldHRpbmdzLmg6IFJlbW92ZWQuCi0gICAg
ICAgICogV2ViVmlldy93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6IEFkZGVkLgotICAgICAgICAqIFdl
YlZpZXcvd2Via2l0d2Vic2V0dGluZ3MuaDogQWRkZWQuCi0gICAgICAgICogV2ViVmlldy93ZWJr
aXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKLQotMjAw
OC0wMS0yMSAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAgICAgR1RLKyBidWls
ZCBmaXggZm9yIGJyZWFrYWdlIGludHJvZHVjZWQgaW4gcjI5Njk4LgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMDgtMDEtMjEgIERhcmluIEFkbGVy
ICA8ZGFyaW5AYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3VsbGl2YW4u
Ci0KLSAgICAgICAgLSB1cGRhdGVkIGZvciBjaGFuZ2VzIHRvIGRhdGFiYXNlIGZ1bmN0aW9ucwot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotICAgICAgICAqIFdlYlZpZXcvd2Vi
a2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgICh3ZWJraXRfaW5pdCk6Ci0KLTIwMDgtMDEtMjAgIEFs
cCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93
ZS4KLQotICAgICAgICBBdHRhY2ggdGhlIHdpZGdldCdzIHN0eWxlIHRvIGl0cyB3aW5kb3cgYW5k
IHNldCB0aGUgYmFja2dyb3VuZCB0byB0aGUKLSAgICAgICAgYmFzZSBiYWNrZ3JvdW5kIHRvIGF2
b2lkIGJsYWNrIGZsaWNrZXIgd2hlbiByZXBhaW50aW5nLiBUaGlzIGlzCi0gICAgICAgIHNpbWls
YXIgdG8gd2hhdCBHdGtUZXh0VmlldyBkb2VzLgotCi0gICAgICAgICogV2ViVmlldy93ZWJraXR3
ZWJ2aWV3LmNwcDoKLQotMjAwOC0wMS0xOSAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQGlt
ZW5kaW8uY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAgICBo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4MgotICAgICAgICBbR1RL
XSBDaHJvbWVDbGllbnRHdGsgaXMgaW5jb21wZXRlCi0KLSAgICAgICAgSW1wbGVtZW50IHRoZXNl
IGZ1bmN0aW9ucy4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6d2luZG93UmVjdCk6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cGFnZVJlY3QpOgotICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnQ6OnNjYWxlRmFjdG9yKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojpm
b2N1cyk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6dW5mb2N1cyk6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y2FuVGFrZUZvY3VzKToKLSAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50Ojp0YWtlRm9jdXMpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6Ci0KLTIwMDgtMDEtMTggIEx1Y2EgQnJ1
bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRv
a2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
OTEwCi0gICAgICAgIFtHVEtdIFJFR1JFU1NJT046IGtleWJvYXJkIGN1cnNvciBkb2Vzbid0IGJs
aW5rCi0KLSAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4
NjMKLSAgICAgICAgW0dUS10gUkVHUkVTU0lPTjogdGFiIGZvY3VzaW5nIGRvZXNuJ3Qgd29yawot
Ci0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19mb2N1c19pbl9ldmVudCk6IEFkZGVkLiBTZXQgdGhlIGFjdGl2ZSBmcmFtZS4KLSAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKLQotMjAwOC0wMS0xNiAgQWxwIFRv
a2VyICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgot
Ci0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjE4Ci0g
ICAgICAgIFtHVEtdIEFQSTogU2hvdWxkIHRoaXMgZW50cnkgcG9pbnQgYmUgY2FsbGVkIGdvX2Jh
Y2sgcmF0aGVyIHRoYW4gZ29fYmFja3dhcmQ/Ci0KLSAgICAgICAgT2Jzb2xldGUgJ2JhY2t3YXJk
JyB0ZXJtaW5vbG9neSBpbiBBUEkgaW4gZmF2b3VyIG9mICdiYWNrJy4gSW50cm9kdWNlCi0gICAg
ICAgIHN0ZXAtYmFzZWQgYmFjay9mb3J3YXJkIGZ1bmN0aW9ucy4KLQotICAgICAgICBEb2N1bWVu
dCBtb3JlIGZ1bmN0aW9ucy4KLQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0ZGVmaW5lcy5oOgot
ICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICogV2ViVmlldy93
ZWJraXR3ZWJ2aWV3Lmg6Ci0KLTIwMDgtMDEtMTAgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFw
cGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBTYW0uCi0KLSAgICAgICAgLSByZW1vdmUg
U2VjdXJpdHlPcmlnaW5EYXRhIGFuZCBmb2xkIGl0cyBmdW5jdGlvbmFsaXR5IGludG8gU2VjdXJp
dHlPcmlnaW4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cmVxdWVzdFF1b3RhSW5jcmVhc2VGb3JO
ZXdEYXRhYmFzZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cmVxdWVzdFF1b3Rh
SW5jcmVhc2VGb3JEYXRhYmFzZU9wZXJhdGlvbik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmg6Ci0KLTIwMDgtMDEtMDkgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44
OEBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAg
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODAyCi0gICAgICAgIFtH
VEtdIE1pc3NpbmcgZ3RrIHByb3BlcnRpZXMKLQotICAgICAgICBBZGQgbWlzc2luZyBwcm9wZXJ0
aWVzIHRvIFdlYktpdFZpZXdGcmFtZSBhbmQgV2ViS2l0V2ViVmlldy4KLQotICAgICAgICAqIFdl
YlZpZXcvd2Via2l0cHJpdmF0ZS5oOiBhZGQgc29tZSB1c2VmdWwgZGVmaW5lcyBmb3IgcGFyYW0g
c3BlY3MKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKHdl
YmtpdF93ZWJfZnJhbWVfZ2V0X3Byb3BlcnR5KTogYWRkZWQKLSAgICAgICAgKHdlYmtpdF93ZWJf
ZnJhbWVfY2xhc3NfaW5pdCk6IGFkZCBuYW1lLCB0aXRsZSBhbmQgdXJpIHJlYWQtb25seSBwcm9w
ZXJ0aWVzCi0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHkpOiBhZGQgZWRpdGFibGUgcHJvcGVydHkgcmVhZAot
ICAgICAgICAod2Via2l0X3dlYl92aWV3X3NldF9wcm9wZXJ0eSk6IGFkZGVkIGZvciBlZGl0YWJs
ZSBwcm9wZXJ0eSB3cml0ZQotICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOiBh
ZGQgcmVhZC13cml0ZSBlZGl0YWJsZSBwcm9wZXJ0eQotCi0yMDA4LTAxLTAzICBYYW4gTG9wZXog
IDx4YW5AZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAg
ICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY1NAotICAgICAg
ICBbR1RLXSBTaWduYWwgIm5hdmlnYXRpb24tcmVxdWVzdGVkIiBkb2VzIG5vdCByZWFjdCBjb3Jy
ZWN0bHkgb24KLSAgICAgICAgcmV0dXJuIFRSVUUgZnJvbSBjYWxsYmFja3MKLQotICAgICAgICAq
IFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6IHVzZSBvdXIgb3duIGFjY3VtdWxhdG9yIGZvciBz
aWduYWxzCi0gICAgICAgIHJldHVybmluZyBXZWJLaXROYXZpZ2F0aW9uUmVzcG9uc2UuIFRoZSBl
bWlzc2lvbiB3aWxsIGJlIHN0b3BwZWQKLSAgICAgICAgd2hlbiBhbnkgY2FsbGJhY2sgcmV0dXJu
cyBhbnl0aGluZyBidXQKLSAgICAgICAgV0VCS0lUX05BVklHQVRJT05fUkVTUE9OU0VfQUNDRVBU
LgotCi0yMDA4LTAxLTAyICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZp
c2gub3JnPgotCi0gICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IERhcmluIEFkbGVyLgotCi0gICAg
ICAgIENvZGluZyBTdHlsZSBmaXguIERvIG5vdCB1c2UgYW4gZWxzZSBiZWNhdXNlIHdlIHVzZSBh
IHJldHVybiBpbiB0aGUKLSAgICAgICAgaWYgYnJhbmNoLgotCi0gICAgICAgICogV2ViVmlldy93
ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwOC0wMS0wMiAgTHVjYSBCcnVubyAgPGxldGhhbG1hbjg4
QGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMTUKLSAgICAgICAgW0dU
S10gQ29udGV4dE1lbnUgYW5kIENvbnRleHRNZW51SXRlbSBsYWNrcyBhbiBpbXBsZW1lbnRhdGlv
bgotCi0gICAgICAgIEFkZCBjb250ZXh0IG1lbnUgc3VwcG9ydC4KLQotICAgICAgICBCYXNlZCBv
biBhIHBhdGNoIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q29udGV4dE1lbnVD
bGllbnQ6OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKToKLSAgICAgICAgKiBXZWJWaWV3
L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwOgot
Ci0yMDA3LTEyLTI5ICBKYW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B1bnBsdWdnYWJsZS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjY5Ci0gICAgICAgIGF1dG90b29scyB1
cGRhdGUgYW5kIGZpeGVzCi0KLSAgICAgICAgcGtnY29uZmlnIGZpbGUgYW5kIGljb24gZGF0YWJh
c2UgaW5jbHVzaW9uIGZpeAotCi0gICAgICAgICogV2ViS2l0R3RrLnBjLmluOiBSZW1vdmUgSUNV
X0ZMQUdTIGZyb20gQ2ZsYWdzCi0gICAgICAgICogV2ViVmlldy93ZWJraXRwcml2YXRlLmNwcDog
R3VhcmQgSUNPTkRBVEFCQVNFIGluY2x1c2lvbnMKLQotMjAwNy0xMi0yOCAgQ2hyaXN0aWFuIER5
d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbHAg
VG9rZXIuCi0KLSAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTY2NDIKLSAgICAgICAgW0dUS10gd2Via2l0X3dlYl92aWV3X2hhc19zZWxlY3Rpb24gcmV0dXJu
cyB0aGUgb3Bwb3NpdGUgcmVzdWx0Ci0KLSAgICAgICAgSW52ZXJ0IHRoZSByZXR1cm4gdmFsdWUu
Ci0KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwOgotCi0yMDA3LTEyLTI2ICBK
YW4gTWljaGFlbCBBbG9uem8gIDxqbWFsb256b0B1bnBsdWdnYWJsZS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2MzkwCi0gICAgICAgIFVzZSBhdXRvdG9vbHMgb3IgR05VIG1ha2Ug
YXMgdGhlIGJ1aWxkIHN5c3RlbSBmb3IgdGhlIEdUSyBwb3J0Ci0KLSAgICAgICAgKiBXZWJLaXRH
dGsucGMuaW46IEFkZGVkLgotCi0yMDA3LTEyLTI0ICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3Rp
YW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAg
ICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL2F0dGFjaG1lbnQuY2dpP2lkPTE4MDk5Ci0gICAg
ICAgIFRoZXJlIGFyZSBubyBOVUxMIGNoZWNrcyBmb3Igc3RyaW5ncyBpbiBwdWJsaWMgYXBpCi0K
LSAgICAgICAgQWRkIG1pc3NpbmcgTlVMTCBjaGVja3MgZm9yIHN0cmluZyBwYXJhbWV0ZXJzLgot
Ci0gICAgICAgIFByb3ZpZGUgc2Vuc2libGUgZGVmYXVsdHMgd2hlbiBOVUxMIGlzIHBhc3NlZCBm
b3IgdGhlIG9wdGlvbmFsCi0gICAgICAgIHBhcmFtZXRlcnMgaW4gd2Via2l0X3dlYl92aWV3X2xv
YWRfc3RyaW5nKCkuIFVURi04IGlzIHRoZSBkZWZhdWx0Ci0gICAgICAgIGVuY29kaW5nIHVzZWQg
YnkgR0xpYiBhbmQgdGV4dC9odG1sIGlzIGEgcmVhc29uYWJsZSBkZWZhdWx0IGNvbnRlbnQKLSAg
ICAgICAgdHlwZS4KLQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0bmV0d29ya3JlcXVlc3QuY3Bw
OgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDctMTItMjIgIFhh
biBMb3BleiAgPHhhbkBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2Vy
LgotCi0gICAgICAgIFVzZSB3ZWJWaWV3LCB3ZWJfdmlldywgZXRjIGZvciB2YXJpYWJsZSBuYW1l
cyBpbnN0ZWFkIG9mIHBhZ2UsIHdoaWNoCi0gICAgICAgIHdhcyBsZWZ0IG92ZXIgZnJvbSB0aGUg
b2xkIEFQSS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OmltQ29udGV4dENvbW1pdHRlZCk6Ci0gICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xp
ZW50Ojp+RWRpdG9yQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojp0ZXh0
RmllbGREaWRCZWdpbkVkaXRpbmcpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnRl
eHRGaWVsZERpZEVuZEVkaXRpbmcpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEd0ay5oOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3Rr
LmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc1N0
YXJ0ZWROb3RpZmljYXRpb24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKToKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKToK
LSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
Ojp3aW5kb3dPYmplY3RDbGVhcmVkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUljb24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUpOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKLQotMjAwNy0xMi0yMiAgQWxw
IFRva2VyICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAgICAgR1RLKyBidWlsZCBmaXgKLQotICAg
ICAgICBHVEtfVEFSR0VUX09USEVSX0FQUCBpcyBub3QgYXZhaWxhYmxlIGluIG9sZGVyIEdUSysg
dmVyc2lvbnMuIFBhc3MKLSAgICAgICAgZW1wdHkgdGFyZ2V0IGZsYWdzIGZvciBub3cuCi0KLSAg
ICAgICAgQ2hlY2sgR1RLKywgbm90IEdMaWIgdmVyc2lvbnMsIHNpbmNlIHRoZXkgYXJlIGRpZmZl
cmVudC4KLQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDctMTIt
MjIgIEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MzExCi0gICAgICAgIFtHdGtdIENvcHkgcmljaCB0ZXh0IHRvIGNsaXBib2Fy
ZCBhcyB0ZXh0L3BsYWluIGFuZCB0ZXh0L2h0bWwuCi0KLSAgICAgICAgQWRkIGNvcHkgYW5kIHBh
c3RlIHRhcmdldHMgZm9yIFdlYlZpZXcgYW5kIGltcGxlbWVudAotICAgICAgICBXZWJDb3JlOjpQ
YXN0ZWJvYXJkSGVscGVyLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFzdGVib2FyZEhl
bHBlckd0ay5jcHA6IEFkZGVkLgotICAgICAgICAoV2ViS2l0OjpQYXN0ZWJvYXJkSGVscGVyR3Rr
OjpnZXRDbGlwYm9hcmQpOgotICAgICAgICAoV2ViS2l0OjpQYXN0ZWJvYXJkSGVscGVyR3RrOjpn
ZXRDb3B5VGFyZ2V0TGlzdCk6Ci0gICAgICAgIChXZWJLaXQ6OlBhc3RlYm9hcmRIZWxwZXJHdGs6
OmdldFBhc3RlVGFyZ2V0TGlzdCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGFzdGVib2Fy
ZEhlbHBlckd0ay5oOiBBZGRlZC4KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHByaXZhdGUuY3Bw
OgotICAgICAgICAod2Via2l0X2luaXQpOiBzZXQgdGhlIFBhc3RlYm9hcmRIZWxwZXJHdGsgYXMg
V2ViQ29yZTo6UGFzdGVib2FyZCBoZWxwZXIKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHByaXZh
dGUuaDoKLSAgICAgICAgKF9XZWJLaXRXZWJWaWV3UHJpdmF0ZTo6Y29weV90YXJnZXRfbGlzdCk6
IGFkZGVkCi0gICAgICAgIChfV2ViS2l0V2ViVmlld1ByaXZhdGU6OnBhc3RlX3RhcmdldF9saXN0
KTogYWRkZWQKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2dldF9wcm9wZXJ0eSk6IGFkZGVkCi0gICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfZmluYWxpemUpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOiBj
cmVhdGUgcHJvcGVydGllcyBmb3IgQ09QWV9UQVJHRVQgYW5kIFBBU1RFX1RBUkdFVCBhbmQgY3Jl
YXRlIHRoZSBjb3B5IGFuZCBwYXN0ZSB0YXJnZXQgbGlzdHMKLSAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19nZXRfY29weV90YXJnZXRfbGlzdCk6IGFkZGVkCi0gICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X3Bhc3RlX3RhcmdldF9saXN0KTogYWRkZWQKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtp
dHdlYnZpZXcuaDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfY29weV90YXJnZXRfbGlz
dCk6IGFkZGVkCi0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bhc3RlX3RhcmdldF9saXN0
KTogYWRkZWQKLQotMjAwNy0xMi0yMiAgWGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAgRm9sbG93IHVwIHRvIGh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTQ0Ci0KLSAgICAgICAgKiBXZWJW
aWV3L3dlYmtpdHdlYnZpZXcuY3BwOgotICAgICAgICBGaXggc2lnbmFsIGlkIGFyZ3VtZW50cyBm
b3IgZ19zaWduYWxfZW1pdCBpbgotICAgICAgICBjbGlwYm9hcmQgZnVuY3Rpb25zLgotCi0yMDA3
LTEyLTIxICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KLQotICAgICAgICBEb2N1bWVudGF0
aW9uIHR5cG8gZml4OiBzL3dldGhlci93aGV0aGVyCi0KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtp
dHdlYnZpZXcuY3BwOgotCi0yMDA3LTEyLTIxICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5A
dHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAg
ICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0NAotICAgICAgICBb
R1RLXSBDbGlwYm9hcmQvIHNlbGVjdGlvbiBoYW5kbGluZyBmdW5jdGlvbnMKLQotICAgICAgICAq
IFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmll
dy5jcHA6Ci0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3Lmg6Ci0KLTIwMDctMTItMTkg
IENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MjIyCi0gICAgICAgIFtHVEtdIEltcGxlbWVudCBpbmxpbmUgc2VhcmNo
IGFuZCBoaWdobGlnaHRpbmcgb2YgbWF0Y2hpbmcgc3RyaW5ncy4KLQotICAgICAgICAqIFdlYlZp
ZXcvd2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3Lmg6
Ci0KLTIwMDctMTItMTkgIEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEhvbGdlciBGcmV5dGhlci4KLQotICAgICAgICBEZWxldGUgd2hlbiBEZXN0cm95
IGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHRvIGF2b2lkIGxlYWtzCi0KLSAgICAgICAgVGhpcyBtYXRj
aGVzIHRoZSBNYWMgcG9ydC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsu
Y3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6Ci0K
LTIwMDctMTItMTQgIEp1YW4gQS4gU3VhcmV6IFJvbWVybyAgPGphc3VhcmV6QGlnYWxpYS5jb20+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDQyCi0gICAgICAgIFtHVEtdIEVsaW1pbmF0
ZSB3ZWJraXRfaW5pdCgpCi0KLSAgICAgICAgTW92ZSB3ZWJraXQgaW5pdGlhbGl6YXRpb24gdG8g
V2ViVmlldyBjbGFzcyBpbml0LgotCi0gICAgICAgICogV2ViVmlldy9oZWFkZXJzLnByaToKLSAg
ICAgICAgKiBXZWJWaWV3L3dlYmtpdC5oOgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0Z2xvYmFs
LmNwcDogUmVtb3ZlZC4KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdGdsb2JhbC5oOiBSZW1vdmVk
LgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OndlYmtpdF9pbml0KToKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHByaXZhdGUuaDoKLSAgICAg
ICAgKiBXZWJWaWV3L3dlYmtpdHdlYmZyYW1lLmNwcDoKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtp
dHdlYnZpZXcuY3BwOgotCi0yMDA3LTEyLTE3ICBMdWNhIEJydW5vICA8bGV0aGFsbWFuODhAZ21h
aWwuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAgICBodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU0MgotICAgICAgICBnZGtsYXVu
Y2hlciBkb2VzbnQgY2hhbmdlIFVSTCBpbiBhZHJlc3MgR1RLRW50cnkuCi0KLSAgICAgICAgTGV0
IERPTURvY3VtZW50IG9ic2VydmVycyBkbyB0aGVpciB3b3JrIGJlZm9yZSBlbWl0dGluZyB0aXRs
ZS1jaGFuZ2VkLgotICAgICAgICBUaGUgbG9hZC1jb21taXR0ZWQgc2lnbmFsIGhhcyBiZWVuIGFk
ZGVkIGZvciBib3RoIHRoZSB2aWV3IGFuZCB0aGUgZnJhbWUuCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZSk6IGVtaXQgdGl0bGUtY2hhbmdl
ZAotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2V0VGl0bGUpOiBzZXQgcHJp
dmF0ZSB0aXRsZQotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRDb21taXRMb2FkKTogdXBkYXRlIHRoZSBmcmFtZSB1cmkgYW5kIGVtaXQgbG9hZC1jb21taXR0
ZWQKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdC1tYXJzaGFsLmxpc3Q6Ci0gICAgICAgICogV2Vi
Vmlldy93ZWJraXRwcml2YXRlLmg6Ci0gICAgICAgIChfV2ViS2l0V2ViRnJhbWVQcml2YXRlKTog
cmVuYW1lIGxvY2F0aW9uIHRvIHVyaQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2ViZnJhbWUu
Y3BwOgotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfbG9jYXRpb24pOiByZW5hbWVkIHRv
ICpfZ2V0X3VyaQotICAgICAgICAod2Via2l0X3dlYl9mcmFtZV9nZXRfdXJpKToKLSAgICAgICAg
KHdlYmtpdF93ZWJfZnJhbWVfcmVhbF90aXRsZV9jaGFuZ2VkKTogcmVtb3ZlZCAoc2VlIEZyYW1l
TG9hZGVyQ2xpZW50OjpzZXRUaXRsZSkKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfY2xhc3Nf
aW5pdCk6IHBhc3MgdGhlIGZyYW1lIGFuZCB0aGUgdGl0bGUgaW4gdGl0bGUtY2hhbmdlZCwgbm90
IHRoZSB1cmkKLSAgICAgICAgKHdlYmtpdF93ZWJfZnJhbWVfZmluYWxpemUpOgotICAgICAgICAq
IFdlYlZpZXcvd2Via2l0d2ViZnJhbWUuaDoKLSAgICAgICAgKF9XZWJLaXRXZWJGcmFtZUNsYXNz
KTogcmVtb3ZlZCB0aXRsZV9jaGFuZ2VkCi0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmNwcDoKLSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KTogcGFzcyBvbmx5IHRo
ZSB0aXRsZSBpbiB0aXRsZS1jaGFuZ2VkCi0KLTIwMDctMTItMTQgIEFscCBUb2tlciAgPGFscEBh
dG9rZXIuY29tPgotCi0gICAgICAgIEZpeCBpbmNvbnNpc3RlbnQgaW5kZW50YXRpb24gaW4gdGhl
IGxpY2Vuc2UgaGVhZGVyLiBNYWNpZWogd2FzIHJpZ2h0IQotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotCi0yMDA3LTEyLTE0ICBBbHAgVG9rZXIg
IDxhbHBAYXRva2VyLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWouCi0KLSAgICAg
ICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MzIKLSAgICAgICAg
W0dUS10gVXBkYXRlIGxpY2Vuc2UgaGVhZGVycwotCi0gICAgICAgIENvbnNlbnQgaGFzIGJlZW4g
Z2l2ZW4gYnkgdGhlIGF1dGhvcnMgb2YgdGhlc2UgZmlsZXMgdG8gY2hhbmdlIGxpY2Vuc2UKLSAg
ICAgICAgdG8gdGhlIExHUEwgYXMgb3V0bGluZWQgaW4gdGhlIGJ1ZyByZXBvcnQuCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EcmFnQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6Om1ha2VSZXByZXNl
bnRhdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91
dCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dEZvck5v
bkhUTUwpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2V0Q29waWVzT25T
Y3JvbGwpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGV0YWNoZWRGcm9t
UGFyZW50MSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZy
b21QYXJlbnQyKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRldGFjaGVk
RnJvbVBhcmVudDMpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGV0YWNo
ZWRGcm9tUGFyZW50NCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpsb2Fk
ZWRGcm9tQ2FjaGVkUGFnZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cyk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENh
bmNlbENsaWVudFJlZGlyZWN0KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSk6Ci0g
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxDbG9zZSk6Ci0g
ICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQp
OgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hE
b2N1bWVudExvYWQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRGaXJzdExheW91dCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaFNob3cpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2Vs
UG9saWN5Q2hlY2spOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRMb2FkTWFpblJlc291cmNlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OnJldmVydFRvUHJvdmlzaW9uYWxTdGF0ZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpjbGVhclVuYXJjaGl2aW5nU3RhdGUpOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6d2lsbENoYW5nZVRpdGxlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmRpZENoYW5nZVRpdGxlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OmZpbmFsU2V0dXBGb3JSZXBsYWNlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OnNldERlZmVyc0xvYWRpbmcpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6aXNBcmNoaXZlTG9hZFBlbmRpbmcpOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6Y2FuY2VsUGVuZGluZ0FyY2hpdmVMb2FkKToKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNsZWFyQXJjaGl2ZWRSZXNvdXJjZXMpOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y2FuSGFuZGxlUmVxdWVzdCk6Ci0gICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5cGUpOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUp
OgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVG
b3JVUkxTY2hlbWUpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcpOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyk6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNo
ZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9hZCk6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcik6Ci0gICAgICAg
IChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpibG9ja2VkRXJyb3IpOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90U2hvd1VSTEVycm9yKToKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVwdEZvclBvbGljeUNoYW5nZUVycm9yKToK
LSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVy
cm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhp
c3RFcnJvcik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxs
QmFjayk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsVXNlQXJjaGl2
ZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5DYWNoZVBhZ2UpOgot
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKToK
LSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoVW5hYmxlVG9JbXBs
ZW1lbnRQb2xpY3kpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2V0TWFp
bkRvY3VtZW50RXJyb3IpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c3Rh
cnREb3dubG9hZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp1cGRhdGVH
bG9iYWxIaXN0b3J5Rm9yU3RhbmRhcmRMb2FkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnlGb3JSZWxvYWQpOgotICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVBsYXRmb3JtRGF0YVRvQ2FjaGVkUGFnZSk6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9t
Q2FjaGVkUGFnZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6
Ci0KLTIwMDctMTItMTQgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IEFsZXhleS4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9h
cmRFdmVudCk6IENoYW5nZWQgdG8gdXNlIEVkaXRvcjo6Y29tbWFuZAotICAgICAgICBpbnN0ZWFk
IG9mIEVkaXRvcjo6ZXhlY0NvbW1hbmQuCi0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmNwcDogRGl0dG8uCi0KLTIwMDctMTItMTIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcKLQotICAgICAgICBBcyBwYXJ0
IG9mIGRvaW5nIHNvbWUgQ2FjaGVkUGFnZSBhbmQgY2xpZW50IGNsZWFudXAsIGtlZXAgR1RLIGJ1
aWxkaW5nCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpzYXZlUGxhdGZvcm1EYXRh
VG9DYWNoZWRQYWdlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5z
aXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRQYWdlKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMDctMTItMTIgIEFs
cCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEhvbGdlciBG
cmV5dGhlci4KLQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTU3NgotICAgICAgICBbR1RLXSBQcmludGluZyBzdXBwb3J0Ci0KLSAgICAgICAgQWRkIHBy
aW50aW5nIHN1cHBvcnQuCi0KLSAgICAgICAgVGhlIEFQSSB3aWxsIGJlIGtlcHQgaW50ZXJuYWwg
Zm9yIHRoZSB0aW1lIGJlaW5nLCBidXQgcHJpbnRpbmcgY2FuIG5vdwotICAgICAgICBiZSB0cmln
Z2VyZWQgYnkgV2ViIHBhZ2VzIG9yIHRoZSBKU0MgQVBJIHVzaW5nIEphdmFTY3JpcHQuCi0KLSAg
ICAgICAgVGhlIHByaW50IHNwb29sZXIgYW5kIHBhZ2luYXRpb24gY29kZSBpcyBmYWlybHkgYWJz
dHJhY3QgYW5kIGNvdWxkIGJlCi0gICAgICAgIHNoYXJlZCBieSBvdGhlciBwb3J0cyBpbmNsdWRp
bmcgV2luIGFuZCBRdCBvbmNlIGNvbXBsZXRlLiBJdCBkb2Vzbid0Ci0gICAgICAgIGhhdmUgaGVh
ZGVyL2Zvb3RlciBzdXBwb3J0IHlldC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cHJpbnQpOgot
ICAgICAgICAqIFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAqIFdlYlZpZXcvd2Vi
a2l0d2ViZnJhbWUuY3BwOgotICAgICAgICAoUHJpbnRDb250ZXh0OjpiZWdpbl9wcmludCk6Ci0g
ICAgICAgIChQcmludENvbnRleHQ6OmRyYXdfcGFnZSk6Ci0gICAgICAgIChQcmludENvbnRleHQ6
OmVuZF9wcmludCk6Ci0gICAgICAgIChQcmludENvbnRleHQ6OndlYmtpdF93ZWJfZnJhbWVfcHJp
bnQpOgotCi0yMDA3LTEyLTEyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+Ci0KLSAgICAg
ICAgQnVpbGQgZml4LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlkQ2hhbmdl
VGl0bGUpOgotCi0yMDA3LTEyLTEyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+Ci0KLSAg
ICAgICAgQnVpbGQgZml4LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKLQotMjAwNy0xMi0xMSAgR2Vvcmdl
IFdyaWdodCAgPGdlb3JnZS53cmlnaHRAY29sbGFib3JhLmNvLnVrPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDEyMAotICAgICAgICBbR0RLXSBTdXBwb3J0IGlucHV0IG1ldGhvZHMKLQot
ICAgICAgICBUaGlzIHBhdGNoIGFkZHMgaW5mcmFzdHJ1Y3R1cmUgZm9yIGlucHV0IG1ldGhvZCBz
dXBwb3J0LgotCi0gICAgICAgIEl0IGFsc28gYWRkcyBIaWxkb24gZmVhdHVyZXMgZm9yIHRoZSBN
YWVtbyBtb2JpbGUgcGxhdGZvcm0gc3VmZmljaWVudAotICAgICAgICB0byBzdXBwb3J0IHRoZSB2
aXJ0dWFsIGtleWJvYXJkLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6aW1Db250ZXh0Q29tbWl0dGVkKToKLSAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpF
ZGl0b3JDbGllbnQ6On5FZGl0b3JDbGllbnQpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmg6Ci0gICAgICAgICogV2ViVmlldy93ZWJraXRwcml2YXRlLmg6Ci0g
ICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcDoKLQotMjAwNy0xMi0wNyAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCi0KLSAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1MzU2MzY+Ci0gICAgICAgIEhh
dmUgdG8gcHJlc3MgNCB0aW1lcyBpbnN0ZWFkIG9mIDIgdGltZXMgdG8gZ2V0IHRoZSBleHBlY3Rl
ZCByZXN1bHQgb2YgXl4gd2l0aCBnZXJtYW4ga2V5Ym9hcmQuCi0KLSAgICAgICAgaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5MTYKLSAgICAgICAgSmF2YVNjcmlwdCBk
ZXRlY3RzIFRhYiBhcyBhIGNoYXJhY3RlciBpbnB1dCBvbiBhIHRleHRmaWVsZCB2YWxpZGF0aW9u
Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgotICAgICAgICAo
V2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bik6Ci0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6Ci0gICAgICAgIFVwZGF0ZWQgZm9y
IGNyb3NzLXBsYXRmb3JtIGNoYW5nZXMgYXMgbXVjaCBhcyBpdCB3YXMgcG9zc2libGUgd2l0aG91
dCBhIGd0ayBidWlsZCBlbnZpcm9ubWVudC4KLQotMjAwNy0xMi0wOCAgTHVjYSBCcnVubyAgPGxl
dGhhbG1hbjg4QGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0K
LSAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDYKLSAg
ICAgICAgW0dUS10gU29tZSB3ZWJ2aWV3IHBhcnRzIG11c3QgdXNlIHRoZSBmb2N1c2VkIGZyYW1l
LgotCi0gICAgICAgIEFsc28gdXBkYXRlIHNvbWUgb2xkIGNvZGUuCi0KLSAgICAgICAgKiBXZWJW
aWV3L3dlYmtpdHByaXZhdGUuY3BwOgotICAgICAgICAoZ2V0RnJhbWVGcm9tVmlldyk6IHJlbW92
ZWQKLQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5oOgotICAgICAgICAoZ2V0RnJh
bWVGcm9tVmlldyk6IHJlbW92ZWQKLQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5j
cHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50KToKLSAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19rZXlfcHJlc3NfZXZlbnQpOiB1c2UgZm9jdXNlZCBmcmFtZQotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2tleV9yZWxlYXNlX2V2ZW50KTogdXNlIGZvY3VzZWQgZnJhbWUK
LSAgICAgICAgKHdlYmtpdF93ZWJfdmlld19idXR0b25fcHJlc3NfZXZlbnQpOgotICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2J1dHRvbl9yZWxlYXNlX2V2ZW50KToKLSAgICAgICAgKHdlYmtpdF93
ZWJfdmlld19tb3Rpb25fZXZlbnQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3Njcm9sbF9l
dmVudCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2l6ZV9hbGxvY2F0ZSk6Ci0gICAgICAg
ICh3ZWJraXRfd2ViX3ZpZXdfc2V0X3Njcm9sbF9hZGp1c3RtZW50cyk6Ci0gICAgICAgICh3ZWJr
aXRfd2ViX3ZpZXdfZXhlY3V0ZV9zY3JpcHQpOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3N0
b3BfbG9hZGluZyk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcpOgotICAg
ICAgICAod2Via2l0X3dlYl92aWV3X3JlbG9hZCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdf
b3Blbik6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQpOgotICAgICAg
ICAod2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrd2FyZCk6Ci0gICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfZ29fZm9yd2FyZCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZ29fYmFja3dhcmQp
OgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlwcmVzcyk6IGZpeCBmb3IgcGFnZSB1
cCBhbmQgcGFnZSBkb3duIGtleXMgZm9yIGVkaXRhYmxlIGNvbnRlbnRzCi0KLTIwMDctMTItMDcg
IEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MzMzCi0gICAgICAgIFtHVEtdIEtleSBiaW5kaW5ncyBtdXN0IHdvcmsgd2l0aCBm
b2N1c2VkIGZyYW1lcy4KLQotICAgICAgICBUaGVyZSBhcmUgc3RpbGwgbW9yZSBjYXNlcyB3aGVy
ZSBnZXRGcmFtZUZyb21WaWV3KCkgaXMgbWlzLXVzZWQgdGhhdAotICAgICAgICBuZWVkIHRvIGJl
IGZpeGVkLCBidXQgdGhpcyBpcyBhIGdvb2Qgc3RhcnQuCi0KLSAgICAgICAgKiBXZWJWaWV3L3dl
YmtpdHdlYnZpZXcuY3BwOgotICAgICAgICAod2Via2l0X3dlYl92aWV3X3JlYWxfc2VsZWN0X2Fs
bCk6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jdXRfY2xpcGJvYXJkKToKLSAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19yZWFsX2NvcHlfY2xpcGJvYXJkKToKLSAgICAgICAgKHdlYmtp
dF93ZWJfdmlld19yZWFsX3Bhc3RlX2NsaXBib2FyZCk6Ci0KLTIwMDctMTItMDYgIFhhbiBMb3Bl
eiAgPHhhbkBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0g
ICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzI5Ci0gICAg
ICAgIFtHVEtdIFR3byBzbWFsbCBjbGVhbnVwcwotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjcmVh
dGVXaW5kb3cpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0Nv
bnNvbGUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVy
dCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0p
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOgot
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFN0YXR1c2JhclRleHQpOgotICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KToKLSAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKToKLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHByaXZh
dGUuY3BwOgotICAgICAgICAoV2ViS2l0OjpraXQpOgotICAgICAgICBzL21fd2ViUGFnZS9tX3dl
YlZpZXcvCi0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcDoKLSAgICAgICAgQ2hh
aW4gdXAgdG8gdGhlIHBhcmVudCBjbGFzcyB0byBhY3RpdmF0ZSBiaW5kaW5ncyBpbnN0ZWFkCi0g
ICAgICAgIG9mIGRvaW5nIGl0IGV4cGxpY2l0ZWx5LgotCi0yMDA3LTEyLTA2ICBIb2xnZXIgSGFu
cyBQZXRlciBGcmV5dGhlciA8aG9sZ2VyLmZyZXl0aGVyQHRyb2xsdGVjaC5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2MTczCi0gICAgICAgIExpY2Vuc2luZyBjaGFuZ2UKLQotICAg
ICAgICBDaGFuZ2UgbGljZW5zZSBmcm9tIEJTRCB0byBMR1BMLgotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgICogV2ViVmlldy93ZWJraXRkZWZp
bmVzLmg6Ci0gICAgICAgICogV2ViVmlldy93ZWJraXRnbG9iYWwuY3BwOgotICAgICAgICAqIFdl
YlZpZXcvd2Via2l0Z2xvYmFsLmg6Ci0gICAgICAgICogV2ViVmlldy93ZWJraXRuZXR3b3JrcmVx
dWVzdC5jcHA6Ci0gICAgICAgICogV2ViVmlldy93ZWJraXRuZXR3b3JrcmVxdWVzdC5oOgotICAg
ICAgICAqIFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5jcHA6Ci0gICAgICAgICogV2ViVmlldy93ZWJr
aXRwcml2YXRlLmg6Ci0gICAgICAgICogV2ViVmlldy93ZWJraXRzZXR0aW5ncy5jcHA6Ci0gICAg
ICAgICogV2ViVmlldy93ZWJraXRzZXR0aW5ncy5oOgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0
d2ViZnJhbWUuY3BwOgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2ViZnJhbWUuaDoKLSAgICAg
ICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKLQotMjAwNy0xMi0wNSAgTWljaGFlbCBOYXR0
ZXJlciAgPG1pdGNoQGltZW5kaW8uY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tl
ci4KLQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6IHNwbGl0IGtleSBhbmQg
YnV0dG9uIGV2ZW50IGhhbmRsZXJzCi0gICAgICAgIGludG8gc2VwYXJhdGUgcHJlc3MgYW5kIHJl
bGVhc2UgZnVuY3Rpb25zLgotCi0yMDA3LTEyLTA1ICBMdWNhIEJydW5vICA8bGV0aGFsbWFuODhA
Z21haWwuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAgICBI
YW5kbGUgZXZlbnRzIGZvciBIb21lIGFuZCBFbmQga2V5cy4KLQotICAgICAgICAqIFdlYlZpZXcv
d2Via2l0d2Vidmlldy5jcHA6Ci0gICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfa2V5X2V2ZW50KToK
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAo
RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlwcmVzcyk6Ci0KLTIwMDctMTItMDUgIE1pY2hhZWwgTmF0
dGVyZXIgIDxtaXRjaEBpbWVuZGlvLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9r
ZXIuCi0KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDogY2Fub25pY2FsaXplIHNpZ25hbCBuYW1lcy4KLQot
MjAwNy0xMi0wNCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgS2V2aW4gRGVja2VyLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwOiBSZW1vdmVkIG9ic29sZXRlIHByaXZhdGVCcm93c2luZ0VuYWJs
ZWQuCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDogRGl0
dG8uCi0KLTIwMDctMTItMDQgIE1pY2hhZWwgTmF0dGVyZXIgIDxtaXRjaEBpbWVuZGlvLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAgKiBXZWJWaWV3L3dl
YmtpdHdlYmZyYW1lLmNwcDogZG9uJ3QgcmVkZWNsYXJlIHRoZSBtYXJzaGFsbGVyCi0gICAgICAg
IHByb3RvdHlwZSBidXQgc2ltcGx5IGluY2x1ZGUgIndlYmtpdC1tYXJzaGFsLmgiIG5vdyB0aGF0
IGl0cyBidWlsZAotICAgICAgICBpcyBmaXhlZC4KLQotMjAwNy0xMi0wNCAgTHVjYSBCcnVubyAg
PGxldGhhbG1hbjg4QGdtYWlsLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIu
Ci0KLSAgICAgICAgRml4IGEgcmVncmVzc2lvbiBpbiBrZXkgcHJlc3MgcHJvcGFnYXRpb24gaW4g
cjI4Mzg2LgotCi0gICAgICAgIEZpeCBpbmRlbnRhdGlvbiAod2FzIG9mZiBieSB0d28gc3BhY2Vz
KS4KLQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5jcHA6Ci0KLTIwMDctMTItMDQg
IEx1Y2EgQnJ1bm8gIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1OTExCi0gICAgICAgIFtHVEtdIFVzZSBHdGtCaW5kaW5nU2V0IHRvIG1ha2Uga2V5
IGJpbmRpbmdzIHVzZXItY29uZmlndXJhYmxlCi0KLSAgICAgICAgVGhpcyBwYXRjaCBkb2Vzbid0
IGNvdmVyIHRoZSBmdWxsIHJhbmdlIG9mIGJpbmRpbmdzLCBvbmx5IHRoZSBvbmVzCi0gICAgICAg
IHRoYXQgc2VlbSBvYnZpb3VzbHkgY29ycmVjdCBhbmQgaGF2ZSBjbGVhciBwdWJsaWMgQVBJLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlwcmVzcyk6IGRvIG5vdCBoYW5kbGUgY2xp
cGJvYXJkIG9wZXJhdGlvbnMgYW5kIHNlbGVjdC1hbGwKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtp
dHdlYnZpZXcuY3BwOiBhZGQgY3V0LCBjb3B5LCBwYXN0ZSBhbmQgc2VsZWN0LWFsbCBzaWduYWxz
IGFuZCBhbGxvdyBiaW5kaW5nIHNldHMgKGlzc3VlICMxNTkxMSBhbmQgIzE2MTQ0KQotICAgICAg
ICAqIFdlYlZpZXcvd2Via2l0d2Vidmlldy5oOgotCi0yMDA3LTEyLTA0ICBYYW4gTG9wZXogIDx4
YW5AZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4KLQotICAgICAg
ICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU2MQotICAgICAgICBH
VEsgcG9ydCBuZWVkcyBEdW1wUmVuZGVyVHJlZSBpbXBsZW1lbnRhdGlvbgotCi0gICAgICAgIFN0
YXJ0IHdvcmsgb24gdGhlIEdUSysgRFJULgotCi0gICAgICAgIEFkZCBhIGNvdXBsZSBvZiBwcm9w
b3NlZCBuZXcgQVBJIGVudHJ5IHBvaW50cy4gVGhleSBhcmUgY3VycmVudGx5IGZvcgotICAgICAg
ICBpbnRlcm5hbCB1c2Ugb25seSBieSBEUlQgYW5kIG5vdCBpbiB0aGUgcHVibGljIGhlYWRlcnMu
Ci0KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHByaXZhdGUuaDoKLSAgICAgICAgKiBXZWJWaWV3
L3dlYmtpdHdlYmZyYW1lLmNwcDoKLQotMjAwNy0xMi0wMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpA
YXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCi0KLSAgICAgICAg
LSBmaXggPHJkYXI6Ly9wcm9ibGVtLzUzNDY0NTI+IFJlc2l6ZSBldmVudCBkb2Vzbid0IGZpcmUg
b24gYm9keSBlbGVtZW50IGluc2lkZSBhIGZyYW1lCi0KLSAgICAgICAgKiBXZWJWaWV3L3dlYmtp
dHdlYnZpZXcuY3BwOiBSZW1vdmUgdGhlIGNhbGwgdG8gc2VuZFJlc2l6ZUV2ZW50KCkgc2luY2UK
LSAgICAgICAgRnJhbWVWaWV3IHNlbmRzIGl0IG5vdy4KLQotMjAwNy0xMi0wMyAgQWxwIFRva2Vy
ICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAgICAgZ2xvYmFsT2JqZWN0KCkgR1RLKyBidWlsZCBm
aXguCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp3aW5kb3dPYmplY3RDbGVhcmVk
KToKLQotMjAwNy0xMi0wMyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgotCi0g
ICAgICAgIEdUSyBCdWlsZCBmaXg6IGdldCBnbG9iYWxFeGVjIGZyb20gdGhlIHJpZ2h0IHBsYWNl
LgotCi0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5jcHA6Ci0KLTIwMDctMTItMDEg
IEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
Um9iZW4uCi0KLSAgICAgICAgV3JhcCB0eXBlIGRlZmluaXRpb25zIGluIHdlYmtpdGRlZmluZXMu
aCB3aXRoIEdfQkVHSU5fREVDTFMsIHdoaWNoCi0gICAgICAgIHRha2VzIGNhcmUgb2YgZXh0ZXJu
ICJDIi4KLQotICAgICAgICBJbnRyb2R1Y2UgYSB3ZWJraXQuaCBjb252ZW5pZW5jZSBoZWFkZXIu
Ci0KLSAgICAgICAgUmVtb3ZlIGFub3RoZXIgbGVmdC1vdmVyIGZyb20gdGhlIG9sZCBBUEkuCi0K
LSAgICAgICAgKiBXZWJWaWV3L2hlYWRlcnMucHJpOgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0
Lmg6IEFkZGVkLgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0ZGVmaW5lcy5oOgotCi0yMDA3LTEy
LTAxICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIFJvYmVuLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1Njg3Ci0gICAgICAgIFtHdGtdIEFsbG93IEFQSSBjbGllbnRzIHRvIGludGVyYWN0IHdp
dGggSmF2YVNjcmlwdCBpbiB3ZWIgcGFnZXMKLQotICAgICAgICBJbmNsdWRlIHRoZSBuZWNlc3Nh
cnkgSmF2YVNjcmlwdENvcmUgaGVhZGVycyBkaXJlY3RseSBpbiB0aGUgcHVibGljCi0gICAgICAg
IEFQSSBoZWFkZXJzLgotCi0gICAgICAgIFRoaXMgaXMgdGhlIGxhc3Qgb2YgYSBzZXJpZXMgb2Yg
Y2hhbmdlcyBuZWVkZWQgdG8gYWxsb3cgR1RLKwotICAgICAgICBhcHBsaWNhdGlvbnMgdG8gYWNj
ZXNzIHRoZSBKUyBBUEkuCi0KLSAgICAgICAgVW50aWwgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYwMjkgaXMgcmVzb2x2ZWQsCi0gICAgICAgIGRldmVsb3BlcnMgd2ls
bCBzdGlsbCBoYXZlIHRvIGluY2x1ZGUgdGhlIGluZGl2aWR1YWwgSlMgQVBJIGhlYWRlcnMKLSAg
ICAgICAgaW5kaXZpZHVhbGx5IGlmIHRoZXkgd2FudCB0byB1c2UgaXQgaW4gdGhlaXIgYXBwbGlj
YXRpb25zLgotCi0gICAgICAgIFBhdGNoIGFsc28gcmVtb3ZlcyBzb21lIG9sZCBsZWdhY3kgdXNl
IG9mIEdESyB0aGF0IHdhcyBpbgotICAgICAgICBXZWJLaXRXZWJGcmFtZS4gTm8gQUJJIGNoYW5n
ZS4KLQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0ZGVmaW5lcy5oOgotICAgICAgICAqIFdlYlZp
ZXcvd2Via2l0d2ViZnJhbWUuaDoKLSAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoK
LQotMjAwNy0xMS0zMCAgSmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9AdW5wbHVnZ2FibGUu
Y29tPgotCi0gICAgICAgIEZpeCBmb3IgR1RLKyBEZWJ1ZyBidWlsZCBicmVha2FnZSBpbnRyb2R1
Y2VkIGluIHIyODI3My4KLQotICAgICAgICAqIFdlYlZpZXcvd2Via2l0cHJpdmF0ZS5jcHA6Ci0g
ICAgICAgIChXZWJLaXQ6OmtpdCk6Ci0KLTIwMDctMTEtMzAgIEFscCBUb2tlciAgPGFscEBhdG9r
ZXIuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCi0KLSAgICAgICAgaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2OTEKLSAgICAgICAgW0dUS10g
UHVibGljIEFQSSBkb2VzIG5vdCBmb2xsb3cgR1RLKyBjb252ZW50aW9ucwotCi0gICAgICAgIFJl
ZmFjdG9yIHRoZSBXZWJLaXQvR1RLKyBwdWJsaWMgQVBJLiBDaGFuZ2VzOgotICAgICAgICAgIFdl
YktpdFBhZ2UgLT4gV2ViS2l0V2ViVmlldwotICAgICAgICAgIFdlYktpdEZyYW1lIC0+IFdlYktp
dFdlYkZyYW1lCi0KLSAgICAgICAgUHVibGljIEFQSSBzb3VyY2UgYW5kIGhlYWRlciBuYW1lcyBo
YXZlIGJlZW4gdXBkYXRlZCB0byBtaXJyb3IgdGhlIEFQSQotICAgICAgICBjaGFuZ2VzLgotCi0g
ICAgICAgIFRoZSBBUEkgaXMgbm93IGtlcHQgaW4gV2ViS2l0L2d0ay9XZWJWaWV3IHRvIG1hdGNo
IG90aGVyIHBvcnRzIGluIHRoZQotICAgICAgICBzYW1lIGNsYXNzIHN1Y2ggYXMgTWFjIGFuZCBX
aW4uCi0KLSAgICAgICAgQVBJL0FCSS1icmVha2luZyBjaGFuZ2UuCi0KLSAgICAgICAgKiBBcGk6
IFJlbW92ZWQuCi0gICAgICAgICogQXBpL2hlYWRlcnMucHJpOiBSZW1vdmVkLgotICAgICAgICAq
IEFwaS93ZWJraXRndGstbWFyc2hhbC5saXN0OiBSZW1vdmVkLgotICAgICAgICAqIEFwaS93ZWJr
aXRndGtkZWZpbmVzLmg6IFJlbW92ZWQuCi0gICAgICAgICogQXBpL3dlYmtpdGd0a2ZyYW1lLmNw
cDogUmVtb3ZlZC4KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrZnJhbWUuaDogUmVtb3ZlZC4KLSAg
ICAgICAgKiBBcGkvd2Via2l0Z3RrZ2xvYmFsLmNwcDogUmVtb3ZlZC4KLSAgICAgICAgKiBBcGkv
d2Via2l0Z3RrZ2xvYmFsLmg6IFJlbW92ZWQuCi0gICAgICAgICogQXBpL3dlYmtpdGd0a25ldHdv
cmtyZXF1ZXN0LmNwcDogUmVtb3ZlZC4KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrbmV0d29ya3Jl
cXVlc3QuaDogUmVtb3ZlZC4KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6IFJlbW92
ZWQuCi0gICAgICAgICogQXBpL3dlYmtpdGd0a3BhZ2UuaDogUmVtb3ZlZC4KLSAgICAgICAgKiBB
cGkvd2Via2l0Z3RrcHJpdmF0ZS5jcHA6IFJlbW92ZWQuCi0gICAgICAgICogQXBpL3dlYmtpdGd0
a3ByaXZhdGUuaDogUmVtb3ZlZC4KLSAgICAgICAgKiBBcGkvd2Via2l0Z3Rrc2V0dGluZ3MuY3Bw
OiBSZW1vdmVkLgotICAgICAgICAqIEFwaS93ZWJraXRndGtzZXR0aW5ncy5oOiBSZW1vdmVkLgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6Q2hyb21lQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50OjpjcmVhdGVXaW5kb3cpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OndlYlBhZ2UpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNFZGl0YWJsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudDo6RWRpdG9yQ2xpZW50KToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpGcmFtZUxvYWRlckNs
aWVudCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpwb3N0UHJvZ3Jlc3NT
dGFydGVkTm90aWZpY2F0aW9uKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbik6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbik6
Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVu
dDo6Y3JlYXRlRnJhbWUpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6d2lu
ZG93T2JqZWN0Q2xlYXJlZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZFJlY2VpdmVJY29uKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQ6OnNldFRpdGxlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEd0ay5oOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6d2ViRnJhbWUpOgot
ICAgICAgICAqIFdlYlZpZXc6IEFkZGVkLgotICAgICAgICAqIFdlYlZpZXcvaGVhZGVycy5wcmk6
IEFkZGVkLgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0LW1hcnNoYWwubGlzdDogQWRkZWQuCi0g
ICAgICAgICogV2ViVmlldy93ZWJraXRkZWZpbmVzLmg6IEFkZGVkLgotICAgICAgICAqIFdlYlZp
ZXcvd2Via2l0Z2xvYmFsLmNwcDogQWRkZWQuCi0gICAgICAgICogV2ViVmlldy93ZWJraXRnbG9i
YWwuaDogQWRkZWQuCi0gICAgICAgICogV2ViVmlldy93ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHA6
IEFkZGVkLgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0bmV0d29ya3JlcXVlc3QuaDogQWRkZWQu
Ci0gICAgICAgICogV2ViVmlldy93ZWJraXRwcml2YXRlLmNwcDogQWRkZWQuCi0gICAgICAgIChX
ZWJLaXQ6OmFwcGx5KToKLSAgICAgICAgKFdlYktpdDo6Y3JlYXRlKToKLSAgICAgICAgKFdlYktp
dDo6Z2V0RnJhbWVGcm9tVmlldyk6Ci0gICAgICAgIChXZWJLaXQ6OmdldFZpZXdGcm9tRnJhbWUp
OgotICAgICAgICAoV2ViS2l0Ojpjb3JlKToKLSAgICAgICAgKFdlYktpdDo6a2l0KToKLSAgICAg
ICAgKiBXZWJWaWV3L3dlYmtpdHByaXZhdGUuaDogQWRkZWQuCi0gICAgICAgICogV2ViVmlldy93
ZWJraXRzZXR0aW5ncy5jcHA6IEFkZGVkLgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0c2V0dGlu
Z3MuaDogQWRkZWQuCi0gICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJmcmFtZS5jcHA6IEFkZGVk
LgotICAgICAgICAqIFdlYlZpZXcvd2Via2l0d2ViZnJhbWUuaDogQWRkZWQuCi0gICAgICAgICog
V2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcDogQWRkZWQuCi0gICAgICAgICogV2ViVmlldy93ZWJr
aXR3ZWJ2aWV3Lmg6IEFkZGVkLgotCi0yMDA3LTExLTI4ICBBbHAgVG9rZXIgIDxhbHBAYXRva2Vy
LmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCi0KLSAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNzQKLSAgICAgICAgW0dU
S10gVXNlICJVUkkiIG5vdCAiVVJMIiBpbiBwdWJsaWMgQVBJCi0KLSAgICAgICAgUmVwbGFjZSB1
c2Ugb2YgdGhlIHRlcm0gIlVSTCIgd2l0aCAiVVJJIiBpbiBwdWJsaWMgaGVhZGVycywKLSAgICAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQgc29tZSBpbnRlcm5hbCBjb2RlIHRvIG1hdGNoIEdMaWIvR1RL
KyBjb252ZW50aW9uLgotCi0gICAgICAgIFRoaXMgaXMgbm93IG1lbnRpb25lZCBpbiB0aGUgQVBJ
IGd1aWRlbGluZXM6Ci0gICAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9wcm9qZWN0cy93
ZWJraXQvd2lraS9IYWNraW5nR3RrCi0KLSAgICAgICAgQVBJL0FCSS1icmVha2luZyBjaGFuZ2Uu
Ci0KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrZnJhbWUuY3BwOgotICAgICAgICAqIEFwaS93ZWJr
aXRndGtuZXR3b3JrcmVxdWVzdC5jcHA6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a25ldHdvcmty
ZXF1ZXN0Lmg6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3BhZ2UuY3BwOgotICAgICAgICAqIEFw
aS93ZWJraXRndGtwYWdlLmg6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3ByaXZhdGUuaDoKLSAg
ICAgICAgKiBBcGkvd2Via2l0Z3Rrc2V0dGluZ3MuaDoKLQotMjAwNy0xMS0yOSAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgQmV0dGVyIGJ1aWxkIGZpeCBmb3Ig
R3RrCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKLQotMjAw
Ny0xMS0yOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0KLSAgICAgICAgS2Vl
cCBpdCBidWlsZGluZyB3aXRoIG5ldyBjbGllbnQgbWV0aG9kCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OnJlcXVlc3RRdW90YUluY3JlYXNlRm9yTmV3RGF0YWJhc2UpOgotICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnQ6OnJlcXVlc3RRdW90YUluY3JlYXNlRm9yRGF0YWJhc2VPcGVyYXRpb24p
OgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgotCi0yMDA3LTEx
LTI2ICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBB
ZGFtIFJvYmVuLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE2MTQ5Ci0gICAgICAgIEltcGxlbWVudCB0aGUgd2luZG93LW9iamVjdC1jbGVhcmVkIHNp
Z25hbAotCi0gICAgICAgIFRoaXMgaW1wbGVtZW50YXRpb24gcHJvdmlkZXMgdGhlIEpTR2xvYmFs
Q29udGV4dFJlZiBhbmQgSlNPYmplY3RSZWYKLSAgICAgICAgZGlyZWN0bHkgcmF0aGVyIHRoYW4g
dXNpbmcgYW4gaW50ZXJtZWRpYXRlIEpTIHdyYXBwZXIgb2JqZWN0LCBzaW1pbGFyCi0gICAgICAg
IHRvIHRoZSBhcHByb2FjaCB0YWtlbiBieSB0aGUgV2luIHBvcnQuCi0KLSAgICAgICAgKiBBcGkv
d2Via2l0Z3RrLW1hcnNoYWwubGlzdDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrZnJhbWUuaDoK
LSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0
a3BhZ2UuaDoKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp3aW5kb3dPYmplY3RDbGVh
cmVkKToKLQotMjAwNy0xMS0yNCAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NjkxCi0gICAgICAgIFtHVEtdIFB1YmxpYyBBUEkgZG9lcyBu
b3QgZm9sbG93IEdUSysgY29udmVudGlvbnMKLQotICAgICAgICBQdWJsaWMgQVBJIGVuaGFuY2Vt
ZW50czoKLQotICAgICAgICBJbXBsZW1lbnQgd2Via2l0X3BhZ2VfZ2V0X2VkaXRhYmxlKCkgYW5k
IHdlYmtpdF9wYWdlX3NldF9lZGl0YWJsZSgpLgotCi0gICAgICAgIEltcGxlbWVudCB3ZWJraXRf
ZnJhbWVfZ2V0X25hbWUoKS4KLQotICAgICAgICBSZW1vdmUgZGVmaW5pdGlvbnMgZm9yIGZ1bmN0
aW9ucyB0aGF0IGFyZSB1bnVzYWJsZSBvciBub3QgaW1wbGVtZW50ZWQuCi0gICAgICAgIFRoaXMg
aGFzIGNhdXNlZCBtdWNoIGNvbmZ1c2lvbiBmb3IgYXBwbGljYXRpb24gZGV2ZWxvcGVycy4KLQot
ICAgICAgICBJbXByb3ZlIGRvY3VtZW50YXRpb24uCi0KLSAgICAgICAgQ29ycmVjdC9jb25zdGlm
eSBzb21lIHJldHVybiB0eXBlcy4KLQotICAgICAgICBBZGQgcGFyYW1ldGVyIGNoZWNrcy4KLQot
ICAgICAgICBNYWtlIHRoZSBkZWZhdWx0IGZpeGVkIGZvbnQgIkNvdXJpZXIgTmV3IiB0byBtYXRj
aCB0aGUgb3RoZXIgV2ViCi0gICAgICAgIGZvbnQgbmFtZXMuCi0KLSAgICAgICAgKiBBcGkvd2Vi
a2l0Z3RrZnJhbWUuY3BwOgotICAgICAgICAqIEFwaS93ZWJraXRndGtmcmFtZS5oOgotICAgICAg
ICAqIEFwaS93ZWJraXRndGtwYWdlLmNwcDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5o
OgotICAgICAgICAqIEFwaS93ZWJraXRndGtwcml2YXRlLmg6Ci0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50
Ojppc0VkaXRhYmxlKToKLQotMjAwNy0xMS0yNCAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgotCi0gICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTI1Ci0gICAgICAgIFtHVEtdIFVwIGtleSBk
b2Vzbid0IHdvcmsgcHJvcGVybHkgd2hlbiBjb250ZW50IGlzIGVkaXRhYmxlCi0KLSAgICAgICAg
QWRkIGEgbWlzc2luZyAnYnJlYWsnIHRvIGF2b2lkIGZhbGxpbmcgdGhyb3VnaCB0byB0aGUgbmV4
dCBjYXNlIHdoZW4KLSAgICAgICAgaGFuZGxpbmcgVktfVVAga2V5c3Ryb2tlcy4gVGhpcyB3YXMg
bm90aWNlZCB3aGVuIHdvcmtpbmcgb24gZWRpdGluZwotICAgICAgICBzdXBwb3J0IGluIHRoZSBH
VEsrIHBvcnQuCi0KLSAgICAgICAgSSd2ZSBjaGVja2VkIHRoZSBvdGhlciBjYXNlcyBmb3Igc2lt
aWxhciB0eXBvcyBhbmQgdGhleSBzZWVtIGZpbmUuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6Omhh
bmRsZUtleXByZXNzKToKLQotMjAwNy0xMS0yNCAgWGFuIExvcGV6ICA8eGFuQGdub21lLm9yZz4K
LQotICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAgaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NDUKLSAgICAgICAgW0dUS10gQXJyb3cga2V5
cyBkbyBub3QgU2Nyb2xsCi0KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6Ci0KLSAg
ICAgICAgU3VwcG9ydCBVcC9Eb3duL1JpZ2h0L0xlZnQga2V5cyB0byBzY3JvbGwuIFNsaWdodCBo
YWNrLCBzZWUgRklYTUUgZm9yCi0gICAgICAgIGRldGFpbHMuCi0KLTIwMDctMTEtMjQgIENocmlz
dGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1ODkxCi0gICAgICAgIFtHVEtdIEphdmFzY3JpcHQgY29uc29sZSBhbmQgZGlhbG9n
cyBhcmUgbm90IGltcGxlbWVudGVkCi0KLSAgICAgICAgRml4IGNhbGwgdG8gZ3RrX21lc3NhZ2Vf
ZGlhbG9nX25ldygpIHdoaWNoIGV4cGVjdHMgYSBmb3JtYXQgc3RyaW5nLgotCi0gICAgICAgICog
QXBpL3dlYmtpdGd0a3BhZ2UuY3BwOgotCi0yMDA3LTExLTI0ICBDaHJpc3RpYW4gRHl3YW4gIDxj
aHJpc3RpYW5AdHdvdG9hc3RzLmRlPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBUb2tlci4K
LQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5Mwot
ICAgICAgICBbR1RLXSBXZWJraXQgZG9lc24ndCBzaG93IHRpdGxlIGF0dHJpYnV0ZSB0b29sdGlw
IHdoZW4gaG92ZXJpbmcgb3ZlciBhbiBpbWFnZQotCi0gICAgICAgIEltcGxlbWVudCB0b29sdGlw
IHN1cHBvcnQgdXNpbmcgdGhlIG5ldyBUb29sdGlwIEFQSS4KLQotICAgICAgICBTdXBwb3J0IGZv
ciBvbGRlciB2ZXJzaW9ucyBvZiBHVEsrIGlzIHN0aWxsIGxhY2tpbmcuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnQ6OnNldFRvb2xUaXApOgotCi0yMDA3LTExLTIyICBBbHAgVG9rZXIgIDxhbHBAYXRv
a2VyLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0KLSAgICAgICAgSW1w
bGVtZW50IGFuZCBkb2N1bWVudCBzZXZlcmFsIFdlYktpdEZyYW1lIGZ1bmN0aW9ucywgc29tZSBv
ZiB3aGljaAotICAgICAgICBhcmUgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgRFJULgotCi0gICAgICAg
IENvcnJlY3QgTlVMTCBoYW5kbGluZyBhbmQgaW1wcm92ZSBydW4tdGltZSBjaGVja3MuCi0KLSAg
ICAgICAgKiBBcGkvd2Via2l0Z3RrZnJhbWUuY3BwOgotICAgICAgICAqIEFwaS93ZWJraXRndGtm
cmFtZS5oOgotICAgICAgICAqIEFwaS93ZWJraXRndGtwcml2YXRlLmNwcDoKLQotMjAwNy0xMS0y
MiAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAgICAgV2hpdGVzcGFjZSBmaXhl
cyBvbmx5LgotCi0gICAgICAgICogQXBpL3dlYmtpdGd0a2ZyYW1lLmNwcDoKLSAgICAgICAgKiBB
cGkvd2Via2l0Z3RrcGFnZS5jcHA6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3BhZ2UuaDoKLSAg
ICAgICAgKiBBcGkvd2Via2l0Z3RrcHJpdmF0ZS5oOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1l
bnVDbGllbnRHdGsuY3BwOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xp
ZW50R3RrLmg6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5oOgotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KToK
LSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0VzdGltYXRl
Q2hhbmdlZE5vdGlmaWNhdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
OjpjcmVhdGVGcmFtZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVKYXZhQXBwbGV0V2lkZ2V0KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6
OnJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpzZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KToKLSAgICAgICAgKFdlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCk6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRDb21wbGV0ZWQpOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRvSXRlbSk6Ci0gICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKToKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEdvVG9IaXN0b3J5SXRlbSk6Ci0gICAgICAg
IChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpzZXRUaXRsZSk6Ci0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQotMjAwNy0xMS0yMiAgTWljaGFlbCBO
YXR0ZXJlciAgPG1pdGNoQGltZW5kaW8uY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFscCBU
b2tlci4KLQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTk4NAotICAgICAgICBJbXBsZW1lbnQgIm5hdmlnYXRpb24tcmVxdWVzdGVkIiBzaWduYWwgZm9y
IFdlYktpdCBHdGsKLQotICAgICAgICAqIEFwaS93ZWJraXRndGtuZXR3b3JrcmVxdWVzdC5oOiBm
aXggcGFyZW50IGNsYXNzIG1lbWJlci4KLQotICAgICAgICAqIEFwaS93ZWJraXRndGtuZXR3b3Jr
cmVxdWVzdC5jcHAKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcHJpdmF0ZS5oOiBiYXNpYyBpbXBs
ZW1lbnRhdGlvbiBmZWF0dXJpbmcgYW4KLSAgICAgICAgInVybCIgbWVtYmVyIGFuZCBBUEkuCi0K
LSAgICAgICAgKiBBcGkvd2Via2l0Z3RrZGVmaW5lcy5oOiBhZGRlZCBuZXR3b3JrIHJlcXVlc3Qg
dHlwZWRlZnMuCi0KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5oOiBmaXggZW51bSBuYW1l
OgotICAgICAgICBzL1dFQktJVF9OQVZJR0FUSU9OX1JFUVVFU1RfUkVTUE9OU0UvV2ViS2l0TmF2
aWdhdGlvblJlcXVlc3RSZXNwb25zZS8KLSAgICAgICAgYW5kIHNhbml0aXplZCBlbnVtIHZhbHVl
cy4KLQotICAgICAgICAqIEFwaS93ZWJraXRndGtwYWdlLmNwcDogbWFkZSAibmF2aWdhdGlvbi1y
ZXF1ZXN0ZWQiIGEgc2lnbmFsLgotCi0gICAgICAgICogQXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxp
c3Q6IGFkZGVkIElOVDpPQkpFQ1QsT0JKRUNUCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEd0ay5jcHA6IGVtaXQgdGhlIG5ldyBzaWduYWwgaW4KLSAgICAgICAg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKCkuCi0KLTIwMDctMTEtMTgg
IENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgQWxwLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1ODkxCi0gICAgICAgIFtHVEtdIEphdmFzY3JpcHQgY29uc29sZSBhbmQgZGlhbG9n
cyBhcmUgbm90IGltcGxlbWVudGVkCi0KLSAgICAgICAgQ29ycmVjdCBzY3JpcHQtcHJvbXB0IHRv
IHJldHVybiBOVUxMIHdoZW4gY2FuY2VsbGVkLgotCi0gICAgICAgIFNtYWxsIGNoYW5nZXMgdG8g
YXZvaWQgY29tcGlsZXIgd2FybmluZ3MuCi0KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5j
cHA6Ci0KLTIwMDctMTEtMTcgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4KLQotICAgICAgICBCdWcgMTM0NzA6IGkx
OG46IFRoZSBXZWIgSW5zcGVjdG9yIGlzIG5vdCBsb2NhbGl6YWJsZQotICAgICAgICBodHRwOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ3MAotCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6SW5zcGVj
dG9yQ2xpZW50Ojpsb2NhbGl6ZWRTdHJpbmdzVVJMKTogRW1wdHkgc3R1Yi4KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDogQWRkIGxvY2FsaXplZFN0cmluZ3NV
UkwuCi0KLTIwMDctMTEtMTMgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KLQotICAgICAg
ICBHdGsgYnVpbGQgZml4LiBSZXBsYWNlIGluY29ycmVjdCB1c2Ugb2YgdGhlIExPRyBtYWNybyB3
aXRoIGdfcHJpbnQuCi0KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6Ci0KLTIwMDct
MTEtMTMgIENocmlzdGlhbiBEeXdhbiAgPGNocmlzdGlhbkB0d290b2FzdHMuZGU+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxwLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1ODkxCi0gICAgICAgIFtHVEtdIEphdmFzY3JpcHQgY29uc29sZSBhbmQg
ZGlhbG9ncyBhcmUgbm90IGltcGxlbWVudGVkCi0KLSAgICAgICAgSW1wbGVtZW50IHNpZ25hbHMg
Zm9yIHNjcmlwdCBkaWFsb2dzIGFuZCBjb25zb2xlIG1lc3NhZ2VzLgotCi0gICAgICAgICogQXBp
L3dlYmtpdGd0ay1tYXJzaGFsLmxpc3Q6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3BhZ2UuY3Bw
OgotICAgICAgICAqIEFwaS93ZWJraXRndGtwYWdlLmg6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojph
ZGRNZXNzYWdlVG9Db25zb2xlKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpydW5K
YXZhU2NyaXB0QWxlcnQpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRDb25maXJtKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpydW5KYXZhU2Ny
aXB0UHJvbXB0KToKLQotMjAwNy0xMS0xMSAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzLgotCi0gICAgICAgIEluaXRpYWxpemUgbV91c2Vy
QWdlbnQuCi0KLSAgICAgICAgRml4IHR5cG9zIGluIEdES19XSU5ET1dJTkcgY29uZGl0aW9uYWxz
LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgot
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6RnJhbWVMb2FkZXJDbGllbnQpOgot
ICAgICAgICAoV2ViS2l0OjphZ2VudFBsYXRmb3JtKToKLQotMjAwNy0xMS0xMSAgQWxwIFRva2Vy
ICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgotCi0g
ICAgICAgIE1lbnRpb24gU2FmYXJpIGluIHRoZSBVc2VyQWdlbnQgc3RyaW5nIHRvIGltcHJvdmUg
c2l0ZSBjb21wYXRpYmlsaXR5LgotCi0gICAgICAgIEFsc28gYnVtcCB0aGUgaGFyZC1jb2RlZCBB
cHBsZVdlYktpdCB2ZXJzaW9uIG51bWJlci4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Y29tcG9zZVVzZXJBZ2Vu
dCk6Ci0KLTIwMDctMTEtMDkgIFhhbiBMb3BleiAgPHhhbkBnbm9tZS5vcmc+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQWxwLgotCi0gICAgICAgIEZpeCBodHRwOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTkyNgotICAgICAgICBbR1RLXSBXZWJLaXRQYWdlIG1hcCBoYW5kbGVy
IGlzIHJlZHVuZGFudC4KLQotICAgICAgICAqIEFwaS93ZWJraXRndGtwYWdlLmNwcDoKLSAgICAg
ICAgVGhlIG1hcCBoYW5kbGVyIGZvciBXZWJLaXRQYWdlIGlzIHJlZHVuZGFudCwgR3RrQ29udGFp
bmVyIGRvZXMKLSAgICAgICAgdGhlIHNhbWUgKGFuZCBtb3JlIGNvcnJlY3RseSkuCi0KLTIwMDct
MTEtMDggIEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IE1hcmsgUm93ZS4KLQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTY1MwotICAgICAgICBbR1RLXSBUZXh0IGVkaXRvciBkb2VzIG5vdCBoYW5kbGUgY29t
bW9uIGtleXN0cm9rZXMKLQotICAgICAgICBIYW5kbGUgbW9yZSBrZXlzdHJva2VzIGluIEVkaXRv
ckNsaWVudEd0ay4gTm90ZSB0aGF0IHRoaXMgaXMgYQotICAgICAgICB0ZW1wb3JhcnkgbWVhc3Vy
ZSBwZW5kaW5nIGEgcHJvcGVyIHNvbHV0aW9uIHVzaW5nIEd0a0JpbmRpbmdTZXQgKHNlZQotICAg
ICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkxMSkuCi0KLSAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleXByZXNzKToKLQotMjAwNy0xMS0wOCAgS2V2aW4g
TWNDdWxsb3VnaCAgPGttY2N1bGxvdWdoQGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBTYW0uCi0KLSAgICAgICAgLSB3aW5kb3dPYmplY3RDbGVhcmVkKCkgaXMgbm8gbG9uZ2VyIGNv
bnN0LiAgSXQgbmVlZHMgdG8gc2V0dXAgdGhlCi0gICAgICAgIHNjcmlwdCBkZWJ1Z2dlciBhbmQg
Y2Fubm90IGJlIGNvbnN0IHRvIGRvIHNvLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVu
dDo6d2luZG93T2JqZWN0Q2xlYXJlZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuaDoKLQotMjAwNy0xMS0wNiAgUm9kbmV5IERhd2VzICA8ZG9iZXlAd2F5
b2Z0aGVtb25rZXkuY29tPgotCi0gICAgICAgIEZpeCBodHRwOi8vYnVncy53ZWJraXQub3JnL2F0
dGFjaG1lbnQuY2dpP2lkPTE3MDQzJmFjdGlvbj12aWV3Ci0gICAgICAgIEJ1ZyAxNTc2NjogW0dU
S10gV2ViS2l0IHNvbWV0aW1lcyBzcGV3cyBiaW5hcnkgZGF0YSBhcyB0ZXh0L3BsYWluIGludG8g
aWZyYW1lcwotCi0gICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZSBu
ZWVkcyB0byBjaGVjayB3aXRoIHRoZSBNSU1FVHlwZVJlZ2lzdHJ5Ci0gICAgICAgIHRvIGRldGVy
bWluZSB3aGV0aGVyIHRoZSBnaXZlbiBNSU1FIHR5cGUgaXMgZGlzcGxheWFibGUgYXMgYW4gaW1h
Z2Ugb3Igbm9uLWltYWdlLgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOgotICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRU
eXBlKTogQ2hhbmdlIGxvZ2ljIHRvIG1hdGNoIHRoYXQgaW4KLSAgICAgICAgdGhlIFdpbmRvd3Mg
YW5kIE1hYyBwb3J0cy4KLQotMjAwNy0xMS0wNSAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFu
QHR3b3RvYXN0cy5kZT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWouCi0KLSAgICAgICAg
aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MDkKLSAgICAgICAgRnJh
bWVMb2FkZXJDbGllbnRHdGsgaGFyZGNvZGVzIGRhdGEsIGluY2x1ZGluZyBwbGF0Zm9ybSB0byBM
aW51eCBpNjg2Ci0KLSAgICAgICAgQ29tcHV0ZSBhIHByb3BlciB1c2VyIGFnZW50IHN0cmluZy4K
LQotICAgICAgICBQYXRjaCBpbmNsdWRlcyBmaXhlcyBieSBBbHAuCi0KLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmFn
ZW50UGxhdGZvcm0pOgotICAgICAgICAoV2ViS2l0OjphZ2VudE9TKToKLSAgICAgICAgKFdlYktp
dDo6Y29tcG9zZVVzZXJBZ2VudCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
Ojp1c2VyQWdlbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmg6Ci0KLTIwMDctMTEtMDUgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KLQotICAg
ICAgICBSdWJiZXItc3RhbXBlZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAgUmVtb3ZlIHVudXNl
ZCBtX2ZpcnN0RGF0YSBtZW1iZXIgZnJvbSBGcmFtZUxvYWRlckNsaWVudEd0ay4KLQotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotCi0yMDA3LTExLTA1ICBNYXJr
IFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwIFRva2Vy
LgotCi0gICAgICAgIEZpeCBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTg0MgotICAgICAgICBCdWcgMTU4NDI6IFtHdGtdIGFib3V0OmJsYW5rIGRvZXNuJ3Qgd29yawot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAg
ICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZmluaXNoZWRMb2FkaW5nKTogU2V0IHRo
ZSBlbmNvZGluZyBvbiB0aGUgZnJhbWUgbG9hZGVyIHRvCi0gICAgICAgIGdldCB3b3JrIGRvbmUg
dGhhdCBpcyBub3JtYWxseSBkb25lIHdoZW4gdGhlIGZpcnN0IGJpdCBvZiBkYXRhIGlzIHJlY2Vp
dmVkLCBldmVuIGluIHRoZQotICAgICAgICBjYXNlIG9mIGEgZG9jdW1lbnQgd2l0aCBubyBkYXRh
IChsaWtlIGFib3V0OmJsYW5rKS4KLQotMjAwNy0xMS0wMyAgQWxwIFRva2VyICA8YWxwQGF0b2tl
ci5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgotCi0gICAgICAgIFJlc3Rv
cmUgY29ycmVjdCBkb3VibGUgYW5kIHRyaXBsZSBjbGljayBiZWhhdmlvdXIKLQotICAgICAgICBX
ZSBlbmRlZCB1cCBpZ25vcmluZyBHREtfMkJVVFRPTl9QUkVTUyBhbmQgR0RLXzNCVVRUT05fUFJF
U1MgYWZ0ZXIKLSAgICAgICAgcmVjZW50IHJlZmFjdG9yaW5nLgotCi0gICAgICAgICogQXBpL3dl
YmtpdGd0a3BhZ2UuY3BwOgotCi0yMDA3LTExLTAzICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCi0KLSAgICAgICAgRnJhbWUgc2Ny
b2xsaW5nIGFuZCBpbnZhbGlkYXRpb24gZml4ZXMKLQotICAgICAgICBNYWtlIHVwd2FyZCBzY3Jv
bGwgZXZlbnRzIGhhdmUgYSBwb3NpdGl2ZSBkZWx0YSB0byBtYXRjaCBvdGhlciBwb3J0cy4KLQot
ICAgICAgICBGaXggdGhlIGludmFsaWRhdGlvbiByZWN0IG9mZnNldCBmb3IgZnJhbWVzIHNvIHRo
YXQgc2Nyb2xsaW5nIHdvcmtzIHByb3Blcmx5LgotCi0gICAgICAgIEF2b2lkIGFsbG9jYXRpbmcg
bmVnYXRpdmUgc2l6ZXMgdG8gd2lkZ2V0cyB0byBhdm9pZCBHVEsrIHdhcm5pbmdzLgotCi0gICAg
ICAgIEFsbG93IHRhYmJpbmcgdG8gYWxsIHdpZGdldHMgYW5kIGxpbmtzLgotCi0gICAgICAgIEZp
eCBldmVudCByZXR1cm5zLCBpbXByb3ZpbmcgdGhlIGZvY3VzIHNpdHVhdGlvbiBhbmQgY29ycmVj
dGluZyBzY3JvbGwgd2hlZWwKLSAgICAgICAgYmVoYXZpb3IuCi0KLSAgICAgICAgKiBBcGkvd2Vi
a2l0Z3RrcGFnZS5jcHA6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcDoKLQotMjAwNy0xMC0yOSAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgTWFjaWVqLgotCi0gICAgICAgIERvIG5vdCBhbGxvdyBjb250cm9sIHRv
IHJlYWNoIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbnMKLQotICAgICAgICAqIEFwaS93ZWJraXRn
dGtzZXR0aW5ncy5jcHA6Ci0KLTIwMDctMTAtMjggIExhcnMgTGluZG5lciAgPGxhcnMubGluZG5l
ckBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWxwLgotCi0gICAgICAgIGh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDY2Ci0gICAgICAgIFtndGtdIHdp
ZGdldCBkb2VzIG5vdCB0YWtlIGZvY3VzIG9uIG1vdXNlIGNsaWNrCi0KLSAgICAgICAgR3JhYiB3
aWRnZXQgZm9jdXMgaW4gbW91c2UgcHJlc3MgY2FsbGJhY2suCi0KLSAgICAgICAgKiBBcGkvd2Vi
a2l0Z3RrcGFnZS5jcHA6Ci0KLTIwMDctMTAtMjUgIEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29t
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEJyYWR5LgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njg2Ci0gICAgICAgIEd0a0xhdW5jaGVyIGFib3J0
cyBvbiBsYXVuY2ggZHVlIHRvIHVuaW5pdGlhbGl6ZWQgdGhyZWFkaW5nIHN1YnN5c3RlbQotCi0g
ICAgICAgIFJlLWVuYWJsZSBkYXRhYmFzZSBzdXBwb3J0IGluIHRoZSBHVEsrIHBvcnQsIHdpdGgg
YSBmaXguCi0KLSAgICAgICAgSW5pdGlhbGl6ZSBHTGliIHRocmVhZGluZyBhcyBlYXJseSBhcyBw
b3NzaWJsZS4KLQotICAgICAgICAqIEFwaS93ZWJraXRndGtnbG9iYWwuY3BwOgotCi0yMDA3LTEw
LTI1ICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkIGZp
eCB0byBtYWtlIHRoZSBHVEsrIHBvcnQgcnVuLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njg2Ci0gICAgICAgIEd0a0xhdW5jaGVyIGFib3J0cyBv
biBsYXVuY2ggZHVlIHRvIHVuaW5pdGlhbGl6ZWQgdGhyZWFkaW5nIHN1YnN5c3RlbQotCi0gICAg
ICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Njg4Ci0gICAgICAg
IFtHVEtdIE1ha2UgaXQgcG9zc2libGUgdG8gZGlzYWJsZSBkYXRhYmFzZSBzdXBwb3J0Ci0KLSAg
ICAgICAgTWFrZSBkYXRhYmFzZSBwYXRoIGluaXRpYWxpemF0aW9uIGNvbmRpdGlvbmFsIG9uIGRh
dGFiYXNlIHN1cHBvcnQKLSAgICAgICAgYmVpbmcgZW5hYmxlZC4KLQotICAgICAgICAqIEFwaS93
ZWJraXRndGtnbG9iYWwuY3BwOgotCi0yMDA3LTEwLTI0ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBs
ZS5jb20+Ci0KLSAgICAgICAgR3RrIGJ1aWxkIGZpeC4gIFRyYWNrIFdlYkNvcmUgY2hhbmdlcyBp
biByMjcwMDQuCi0KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrZ2xvYmFsLmNwcDoKLQotMjAwNy0x
MC0yMiAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
TWFyayBSb3dlLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NjExCi0gICAgICAgIFtHVEtdIFRleHQgc2VsZWN0aW9uIGJlaGF2aW91ciBkaWZmZXJl
bnQgaW4gRGVidWcgYW5kIFJlbGVhc2UgYnVpbGRzCi0KLSAgICAgICAgaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzgKLSAgICAgICAgW0dUS10gVGV4dCBlZGl0b3Ig
Y2FyZXQgZG9lcyBub3QgYmxpbmsKLQotICAgICAgICBOZXZlciBhbGxvdyBjb250cm9sIHRvIHJl
YWNoIHRoZSBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb25zLgotCi0gICAgICAgIFJldHVybiBtb3Jl
IHNlbnNpYmxlIHZhbHVlcywgb3IgaW4gc29tZSBjYXNlcywgbnVsbHMuCi0KLSAgICAgICAgKiBB
cGkvd2Via2l0Z3Rrc2V0dGluZ3MuY3BwOgotICAgICAgICAqIEFwaS93ZWJraXRndGtzZXR0aW5n
cy5oOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOgotICAgICAg
ICAoV2ViS2l0OjpEcmFnQ2xpZW50OjphY3Rpb25NYXNrRm9yRHJhZyk6Ci0gICAgICAgIChXZWJL
aXQ6OkRyYWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQpOgotICAgICAgICAo
V2ViS2l0OjpEcmFnQ2xpZW50OjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKToKLQotMjAwNy0xMC0y
MCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFs
cC4KLQotICAgICAgICBHdGsgY2hhbmdlcyBuZWVkZWQgdG8gZW5hYmxlIEhUTUwgNSBjbGllbnQt
c2lkZSBkYXRhYmFzZSBzdG9yYWdlLgotCi0gICAgICAgICogQXBpL3dlYmtpdGd0a2dsb2JhbC5j
cHA6IFNldCBhIGRlZmF1bHQgZGF0YWJhc2UgcGF0aCBiYXNlZCBvbiB0aGUgdXNlciBkYXRhIGRp
cmVjdG9yeS4KLSAgICAgICAgVGhpcyBzaG91bGQgYmVjb21lIGNvbmZpZ3VyYWJsZSBieSBjbGll
bnQgYXBwbGljYXRpb25zIGluIHRoZSBmdXR1cmUuCi0KLTIwMDctMTAtMjAgIE1hcmsgUm93ZSAg
PG1yb3dlQGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBFcmljLgotCi0gICAgICAg
IERvbid0IGFsbG93IGNvbnRyb2wgY2hhcmFjdGVycyB0byBiZSBpbnNlcnRlZCBpbnRvIGVkaXRh
YmxlIHJlZ2lvbnMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsu
Y3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmhhbmRsZUtleXByZXNzKToKLQot
MjAwNy0xMC0xOSAgQWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgT2xpdmVyLgotCi0gICAgICAgIEdUSysgYnVpbGQgZml4IGVuYWJsaW5nIHRoZSBuZXcg
bG9jYWwgZGF0YWJhc2Ugc3RvcmFnZSBmZWF0dXJlLgotICAgICAgICBUaGVyZSBpcyBhbHNvIGEg
cHJvc3BlY3RpdmUgUXQgYnVpbGQgZml4LgotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpydW5EYXRh
YmFzZVNpemVMaW1pdFByb21wdCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmg6Ci0KLTIwMDctMTAtMTQgIEphbiBNaWNoYWVsIEFsb256byAgPGptYWxvbnpvQHVu
cGx1Z2dhYmxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtLgotCi0gICAgICAgIGh0
dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjk5Ci0gICAgICAgIEZpeCAi
aG92ZXJpbmdfb3Zlcl9saW5rIiBzaWduYWwgbm90IGVtaXR0ZWQgd2hlbiBjb25zZWN1dGl2ZSBs
aW5rcwotICAgICAgICBhcmUgaG92ZXJlZC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5oOgotICAgICAgICAtIFJlbW92ZSBtX2RpZFNlbmRMaW5rU2lnbmFsIGFzIGl0IGlzIHN1
cGVyc2VkZWQgYnkgbV9ob3ZlcmVkTGlua1VSTAotCi0yMDA3LTEwLTEwICBBbGljZSBMaXUgIDxh
bGljZS5saXVAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgot
Ci0gICAgICAgIGNoYW5nZXMgdG8ga2VlcCB0aGUgYnVpbGQgZnJvbSBicmVha2luZwotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUpOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMDctMTAtMDMgIEFscCBUb2tl
ciAgPGFscEBhdG9rZXIuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0uCi0KLSAgICAg
ICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MjYKLSAgICAgICAg
W2d0a10gQVBJIGRlc2lnbi4gTWFwcGluZyB0aGUgV2ViVmlldyBkZWxlZ2F0ZXMgdG8gc2lnbmFs
cy4KLQotICAgICAgICBDaGFuZ2UgdGhlIEFQSSBuYW1lc3BhY2Ugb2YgdGhlIEd0aysgcG9ydCBm
cm9tICdXZWJLaXRHdGsnIHRvICdXZWJLaXQnLgotCi0gICAgICAgICogQXBpL3dlYmtpdGd0a2Rl
ZmluZXMuaDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrZnJhbWUuY3BwOgotICAgICAgICAqIEFw
aS93ZWJraXRndGtmcmFtZS5oOgotICAgICAgICAqIEFwaS93ZWJraXRndGtnbG9iYWwuY3BwOgot
ICAgICAgICAqIEFwaS93ZWJraXRndGtnbG9iYWwuaDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3Rr
bmV0d29ya3JlcXVlc3QuaDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6Ci0gICAg
ICAgICogQXBpL3dlYmtpdGd0a3BhZ2UuaDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcHJpdmF0
ZS5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OmFwcGx5KToKLSAgICAgICAgKFdlYktpdDo6Y3JlYXRl
KToKLSAgICAgICAgKFdlYktpdDo6Z2V0RnJhbWVGcm9tUGFnZSk6Ci0gICAgICAgIChXZWJLaXQ6
OmdldFBhZ2VGcm9tRnJhbWUpOgotICAgICAgICAoV2ViS2l0Ojpjb3JlKToKLSAgICAgICAgKFdl
YktpdDo6a2l0KToKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcHJpdmF0ZS5oOgotICAgICAgICAq
IEFwaS93ZWJraXRndGtzZXR0aW5ncy5jcHA6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3NldHRp
bmdzLmg6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpDaHJvbWVDbGllbnQpOgotICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
cnVuSmF2YVNjcmlwdFByb21wdCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmg6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6d2ViUGFnZSk6Ci0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OkZyYW1l
TG9hZGVyQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQ
cm9ncmVzc1N0YXJ0ZWROb3RpZmljYXRpb24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKToKLSAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZp
Y2F0aW9uKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZUZyYW1l
KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2
ZUljb24pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2V0VGl0bGUpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0gICAgICAg
IChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojp3ZWJGcmFtZSk6Ci0KLTIwMDctMTAtMDIgIENv
c2ltbyBDZWNjaGkgIDxjb3NpbW9jQHN2bi5nbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgTWFyay4KLQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTI5OQotICAgICAgICBGaXggImhvdmVyaW5nX292ZXJfbGluayIgc2lnbmFsIGJlaW5nIGZp
cmVkIGV2ZXJ5IHRpbWUgbW91c2UgbW92ZXMuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OkNocm9t
ZUNsaWVudCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6bW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgot
Ci0yMDA3LTA5LTIxICBTZWFuIEVnYW4gIDxzZWFuZWdhbkBnbWFpbC5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgQWxwLgotCi0gICAgICAgIEFkZCBhbiAiZXhlY3V0ZV9zY3JpcHQiIG1ldGhv
ZCB0byBwcm9ncmFtbWF0aWNhbGx5IGNhbGwgSmF2YXNjcmlwdAotICAgICAgICBodHRwOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI1NQotCi0gICAgICAgICogQXBpL3dlYmtp
dGd0a3BhZ2UuY3BwOgotICAgICAgICAqIEFwaS93ZWJraXRndGtwYWdlLmg6Ci0KLTIwMDctMDkt
MjkgIExhcnMgTGluZG5lciAgPGxhcnMubGluZG5lckBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbS4KLQotICAgICAgICBDaHJvbWVDbGllbnRHdGsuY3BwIGRvZXMgbm90IGlt
cGxlbWVudCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCgpCi0gICAgICAgIGh0dHA6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjk5Ci0KLSAgICAgICAgSW1wbGVtZW50aW5nICJo
b3ZlcmluZ19vdmVyX2xpbmsiIHNpZ25hbC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQpOgotCi0yMDA3LTA5LTI2ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBs
ZS5jb20+Ci0KLSAgICAgICAgR3RrIGJ1aWxkIGZpeC4KLQotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDogIENoZWNrIGZvciBlbXB0eSBVUkwgaW5zdGVh
ZCBvZiBpbnZhbGlkIFVSTC4KLQotMjAwNy0wOS0xNyAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRo
ZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtLgotCi0g
ICAgICAgIFdlYktpdEd0a1BhZ2UgYW5kIFdlYktpdEd0a0ZyYW1lIGhhdmUgYSBkZXBlbmRlbmN5
IG9uIGVhY2ggb3RoZXIuIFRvCi0gICAgICAgIGFsbG93IGNsaWVudCBjb2RlIHRvIGluY2x1ZGUg
Ym90aCBoZWFkZXJzIHRoZSB0eXBlZGVmJ3MgZm9yCi0gICAgICAgIFdlYktpdEd0a0ZyYW1lLCBX
ZWJLaXRHdGtQYWdlLCBXZWJLaXRHdGtGcmFtZURhdGEgYW5kIFdlYktpdEd0a05ldHdvcmtSZXF1
ZXN0Ci0gICAgICAgIGFyZSBtb3ZlZCBpbnRvIHdlYmtpdGd0a2RlZmluZXMuaCBhbmQgaW5jbHVk
ZWQgYnkgYm90aCB3ZWJraXRndGtwYWdlLmggYW5kCi0gICAgICAgIHdlYmtpdGd0a2ZyYW1lLmgK
LQotICAgICAgICAqIEFwaS93ZWJraXRndGtkZWZpbmVzLmg6Ci0gICAgICAgICogQXBpL3dlYmtp
dGd0a2ZyYW1lLmg6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3BhZ2UuaDoKLQotMjAwNy0wOS0x
NyAgQ3lyaWwgQnJ1bGVib2lzICA8Y3lyaWwuYnJ1bGVib2lzQGVuc3QtYnJldGFnbmUuZnI+Ci0K
LSAgICAgICAgUmV2aWV3ZWQgYnkgTWFyaywgc29tZSBDb2RpbmcgU3R5bGUgY2hhbmdlcyBieSBI
b2xnZXIuCi0KLSAgICAgICAgVGhpcyBpcyBmcm9tIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0ODEyLgotCi0gICAgICAgIEFkZCB0aXRsZSBhbmQgbG9jYXRpb24gdG8g
V2ViS2l0R3RrRnJhbWVQcml2YXRlLCBhZGQKLSAgICAgICAgd2Via2l0X2d0a19mcmFtZV9nZXRf
bG9jYXRpb24gdG8gdGhlIFdlYktpdEd0a0ZyYW1lIEFQSSBhcyB3ZWxsCi0gICAgICAgIGFzIGEg
dGl0bGVfY2hhbmdlZCBjYWxsYmFjaywgaW1wbGVtZW50Ci0gICAgICAgIHdlYmtpdF9ndGtfZnJh
bWVfZ2V0X3RpdGxlIGFuZCB3ZWJraXRfZ3RrX2ZyYW1lX2dldF9sb2NhdGlvbi4KLQotICAgICAg
ICBJbml0aWFsIHBhdGNoIGJ5IERpZWdvIEVzY2FsYW50ZSBVcnJlbG8uCi0KLSAgICAgICAgKiBB
cGkvd2Via2l0Z3RrZnJhbWUuY3BwOgotICAgICAgICAqIEFwaS93ZWJraXRndGtmcmFtZS5oOgot
ICAgICAgICAqIEFwaS93ZWJraXRndGtwcml2YXRlLmg6Ci0KLTIwMDctMDktMTUgIEhvbGdlciBI
YW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgTWFyay4KLQotICAgICAgICBVc2UgdGhlIG5ldyBXZWJDb3JlOjpTdHJpbmc6OmZyb21V
VEY4IGZ1bmN0aW9uIHRvIGNvbnZlcnQKLSAgICAgICAgZnJvbSB0aGUgR3RrKyByZXByZXNlbnRh
dGlvbiBvZiBhIHN0cmluZyB0byBXZWJDb3JlOjpTdHJpbmcuCi0KLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOgotCi0yMDA3LTA5LTEwICBOaWdlbCBUYW8gIDxuaWdl
bHRhb0Bnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgotCi0gICAg
ICAgIEZpeCBhIHR5cG8gd2hlcmUgd2Via2l0X2d0a19wYWdlX2Nhbl9jb3B5IHdhcyBkZWNsYXJl
ZCB0d2ljZSwKLSAgICAgICAgcmF0aGVyIHRoYW4gd2Via2l0X2d0a19wYWdlX2Nhbl9wYXN0ZS4K
LQotICAgICAgICAqIEFwaS93ZWJraXRndGtwYWdlLmg6Ci0KLTIwMDctMDktMDggIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgotCi0gICAgICAgIEJldHRlciBidWlsZCBmaXgKLQot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlv
bik6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLQot
MjAwNy0wOS0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0KLSAgICAgICAg
QnVpbGQgZml4Ci0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0
ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3RlckZvcklj
b25Ob3RpZmljYXRpb24pOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmg6Ci0KLTIwMDctMDktMDUgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlciwgTWFjaWVqIFN0YWNob3dpYWss
IE1hcmsgUm93ZSwgVGltIEhhdGNoZXIuCi0KLSAgICAgICAgRml4ZWQgPHJkYXI6Ly9wcm9ibGVt
LzUzMjYwMDk+IE1ha2Ugbm9uLWJyb3dzZXIgV2ViS2l0IGNsaWVudHMgaGF2ZSBubwotICAgICAg
ICBtZW1vcnkgY2FjaGUsIG9yIGEgdmVyeSB0aW55IG9uZQotCi0gICAgICAgIEtlZXAgdGhlIEdU
SyBidWlsZCB3b3JraW5nIHdpdGggYW4gZW1wdHkgc3R1Yi4KLQotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24pOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMDctMDktMDEgIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBTYW0uCi0KLSAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUzNDQ4NDg+IElNRSBpcyBpbmNvcnJlY3RseSB1c2VkIGZv
ciBrZXkgZXZlbnRzIHdoZW4gb24gbm9uLWVkaXRhYmxlIHJlZ2lvbnMKLQotICAgICAgICBFZGl0
b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUgc3R1YgotCi0gICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50
OjpzZXRJbnB1dE1ldGhvZFN0YXRlKToKLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaDoKLQotMjAwNy0wOC0xOCAgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIgIDx6
ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBCdWlsZCBmaXguIEFkZCBjb25zdCB0byB0aGUg
Zmlyc3QgcGFyYW1ldGVyIG9mIGNyZWF0ZVBsdWdpbgotCi0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotCi0yMDA3LTA4LTE3ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+Ci0KLSAgICAgICAgQnVpbGQgZml4LgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUGx1Z2luKToKLSAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgotCi0yMDA3LTA4LTExICBIb2xnZXIgSGFu
cyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0uCi0KLSAgICAgICAgVG8gbm90IGhpdCB0aGUgbmVlZHNMYXlvdXQoKSBhc3NlcnQg
b2YgRnJhbWU6OnBhaW50IGZvciBzdWJmcmFtZXMgd2UgbmVlZCB0bwotICAgICAgICBtYWtlIHN1
cmUgdGhleSBhcmUgbGF5ZWQgb3V0LiBVc2UgdGhlIG5ld2x5IGNyZWF0ZWQgRnJhbWVWaWV3Ojps
YXlvdXRJZk5lZWRlZFJlY3Vyc2l2ZQotICAgICAgICBtZXRob2QgdG8gZG8gdGhpcy4KLQotICAg
ICAgICAqIEFwaS93ZWJraXRndGtwYWdlLmNwcDoKLQotMjAwNy0wOC0xMSAgSG9sZ2VyIEhhbnMg
UGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtLgotCi0gICAgICAgIEZpeCB0ZXh0IHNlbGVjdGlvbiBieSBzZXR0aW5nIGEgRHJhZ0Ns
aWVudCB3aGVuIGNyZWF0aW5nIHRoZSBQYWdlLiBOb3cKLSAgICAgICAgdGhhdCB3ZSBoYXZlIGEg
RHJhZ0NsaWVudCB3ZSBjYW4gZnJlZSB0aGUgUGFnZSB3aGVuIFdlYktpdEd0a1BhZ2UgZ2V0cwot
ICAgICAgICBkZXN0cnVjdGVkLgotCi0gICAgICAgICogQXBpL3dlYmtpdGd0a3BhZ2UuY3BwOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwOiBBZGRlZC4KLSAgICAg
ICAgKFdlYktpdDo6RHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24p
OgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50Ojp3aWxsUGVyZm9ybURyYWdTb3VyY2VBY3Rp
b24pOgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50OjphY3Rpb25NYXNrRm9yRHJhZyk6Ci0g
ICAgICAgIChXZWJLaXQ6OkRyYWdDbGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQp
OgotICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50OjpzdGFydERyYWcpOgotICAgICAgICAoV2Vi
S2l0OjpEcmFnQ2xpZW50OjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKToKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmg6IEFkZGVkLgotCi0yMDA3LTA4LTEwICBIb2xnZXIg
SGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IEFuZGVycy4KLQotICAgICAgICBNYWtlIFdlYktpdEd0a1BhZ2UgYSBHdGtDb250YWlu
ZXIgdG8gYXZvaWQgYSBzaXplX2FsbG9jYXRlCi0gICAgICAgIHJhY2Ugb2YgR3RrU2Nyb2xsQmFy
IGFuZCBHdGtMYXlvdXQuCi0KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrLW1hcnNoYWwubGlzdDoK
LSAgICAgICAgKiBBcGkvd2Via2l0Z3RrZnJhbWUuY3BwOgotICAgICAgICAqIEFwaS93ZWJraXRn
dGtwYWdlLmNwcDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5oOgotICAgICAgICAqIEFw
aS93ZWJraXRndGtwcml2YXRlLmg6Ci0KLTIwMDctMDgtMTAgIEhvbGdlciBIYW5zIFBldGVyIEZy
ZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgTmlrby4K
LQotICAgICAgICBNaW5vciBjaGFuZ2VzIHRvIHRoZSBXZWJLaXQ6OkVkaXRvckNsaWVudCB0byBh
bGxvdyByZW1vdmluZwotICAgICAgICBvZiB0ZXh0IGZyb20gVGV4dEZpZWxkcy4gUmVtb3ZlIHRo
ZSBzZWxlY3RXb3JkQmVmb3JlTWVudUV2ZW50IG1ldGhvZAotICAgICAgICB3aGljaCBpcyBub3Qg
dXNlZCBhbmQgbm90IHdpdGhpbiBXZWJDb3JlOjpFZGl0b3JDbGllbnQuCi0KLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnQ6OnNob3VsZERlbGV0ZVJhbmdlKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xp
ZW50OjpzaG91bGRCZWdpbkVkaXRpbmcpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6
OnNob3VsZEVuZEVkaXRpbmcpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNob3Vs
ZEFwcGx5U3R5bGUpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNob3VsZEluc2Vy
dE5vZGUpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgotCi0y
MDA3LTA4LTEwICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3Jn
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcmsuCi0KLSAgICAgICAgUmVuYW1lIHRoZSBuYW1l
c3BhY2UgZnJvbSBXZWJLaXRHdGsgdG8gV2ViS2l0LiBNb3ZlIHRoZSB2YXJpb3VzICpDbGllbnQK
LSAgICAgICAgY2xhc3NlcyBpbnRvIHRoZSBXZWJLaXQgbmFtZXNwYWNlLiBDaGFuZ2UgdGhlIGNs
YXNzIG5hbWVzIHRvIG5vdCBjb250YWluIEd0ay4KLSAgICAgICAgVGhlIGZpbGUgbmFtZXMgaGF2
ZSB0byBjb250YWluIHRoZSBHdGsgc3VmZml4IHRvIG5vdCBjbGFzaCB3aXRoIGZpbGVzIGluIFdl
YkNvcmUgKGUuZy4KLSAgICAgICAgYnJpZGdlL0VkaXRvckNsaWVudC5oKS4KLQotCi0gICAgICAg
ICogQXBpL3dlYmtpdGd0a2ZyYW1lLmNwcDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5j
cHA6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3ByaXZhdGUuY3BwOgotICAgICAgICAqIEFwaS93
ZWJraXRndGtwcml2YXRlLmg6Ci0gICAgICAgICogQ2hhbmdlTG9nOgotICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNs
aWVudDo6Q2hyb21lQ2xpZW50KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpjaHJv
bWVEZXN0cm95ZWQpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OndpbmRvd1JlY3Qp
OgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNldFdpbmRvd1JlY3QpOgotICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnBhZ2VSZWN0KToKLSAgICAgICAgKFdlYktpdDo6Q2hy
b21lQ2xpZW50OjpzY2FsZUZhY3Rvcik6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
Zm9jdXMpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnVuZm9jdXMpOgotICAgICAg
ICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6Ci0gICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudDo6Y3JlYXRlTW9kYWxEaWFsb2cpOgotICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnQ6OnNob3cpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNhblJ1bk1v
ZGFsKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpydW5Nb2RhbCk6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0VG9vbGJhcnNWaXNpYmxlKToKLSAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50Ojp0b29sYmFyc1Zpc2libGUpOgotICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnQ6OnNldFN0YXR1c2JhclZpc2libGUpOgotICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnQ6OnN0YXR1c2JhclZpc2libGUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OnNldFNjcm9sbGJhcnNWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjpzY3JvbGxiYXJzVmlzaWJsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0
TWVudWJhclZpc2libGUpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6Om1lbnViYXJW
aXNpYmxlKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzZXRSZXNpemFibGUpOgot
ICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmNsb3NlV2luZG93U29vbik6Ci0gICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6Y2FuVGFrZUZvY3VzKToKLSAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50Ojp0YWtlRm9jdXMpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6
OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9t
ZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKLSAgICAgICAgKFdlYktpdDo6
Q2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQpOgotICAgICAgICAoV2ViS2l0OjpDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjpzZXRTdGF0dXNiYXJUZXh0KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjpzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KToKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50Ojp0YWJzVG9MaW5rcyk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6d2luZG93
UmVzaXplclJlY3QpOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmFkZFRvRGlydHlS
ZWdpb24pOgotICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbEJhY2tpbmdTdG9y
ZSk6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6dXBkYXRlQmFja2luZ1N0b3JlKToK
LSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6
Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcCk6Ci0gICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6Ci0gICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVu
dUNsaWVudDo6Y29udGV4dE1lbnVEZXN0cm95ZWQpOgotICAgICAgICAoV2ViS2l0OjpDb250ZXh0
TWVudUNsaWVudDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMpOgotICAgICAgICAoV2Vi
S2l0OjpDb250ZXh0TWVudUNsaWVudDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQpOgotICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0TWVudUNsaWVudDo6ZG93bmxvYWRVUkwpOgotICAgICAgICAoV2Vi
S2l0OjpDb250ZXh0TWVudUNsaWVudDo6Y29weUltYWdlVG9DbGlwYm9hcmQpOgotICAgICAgICAo
V2ViS2l0OjpDb250ZXh0TWVudUNsaWVudDo6c2VhcmNoV2l0aEdvb2dsZSk6Ci0gICAgICAgIChX
ZWJLaXQ6OkNvbnRleHRNZW51Q2xpZW50Ojpsb29rVXBJbkRpY3Rpb25hcnkpOgotICAgICAgICAo
V2ViS2l0OjpDb250ZXh0TWVudUNsaWVudDo6c3BlYWspOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmg6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzaG91bGRE
ZWxldGVSYW5nZSk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0Rl
bGV0ZUludGVyZmFjZSk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNDb250aW51
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6
OmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dDo6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OnNob3VsZEJlZ2luRWRpdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6
c2hvdWxkRW5kRWRpdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxk
SW5zZXJ0VGV4dCk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkQ2hhbmdl
U2VsZWN0ZWRSYW5nZSk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkQXBw
bHlTdHlsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkTW92ZVJhbmdl
QWZ0ZXJEZWxldGUpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmRpZEJlZ2luRWRp
dGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZENv
bnRlbnRzKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2Vk
U2VsZWN0aW9uKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpkaWRFbmRFZGl0aW5n
KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpkaWRXcml0ZVNlbGVjdGlvblRvUGFz
dGVib2FyZCk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6ZGlkU2V0U2VsZWN0aW9u
VHlwZXNGb3JQYXN0ZWJvYXJkKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzZWxl
Y3RXb3JkQmVmb3JlTWVudUV2ZW50KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpp
c0VkaXRhYmxlKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1h
bmRGb3JVbmRvKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZWdpc3RlckNvbW1h
bmRGb3JSZWRvKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpjbGVhclVuZG9SZWRv
T3BlcmF0aW9ucyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2FuVW5kbyk6Ci0g
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2FuUmVkbyk6Ci0gICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudDo6dW5kbyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVk
byk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0Tm9kZSk6Ci0g
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cGFnZURlc3Ryb3llZCk6Ci0gICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKLSAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50Ojp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZyk6Ci0g
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6dG9nZ2xlR3JhbW1hckNoZWNraW5nKToKLSAg
ICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleXByZXNzKToK
LSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgotICAgICAgICAo
V2ViS2l0OjpFZGl0b3JDbGllbnQ6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyk6Ci0gICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6Ci0gICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKToKLSAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpkb1RleHRGaWVsZENvbW1hbmRGcm9tRXZlbnQpOgot
ICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnRleHRXaWxsQmVEZWxldGVkSW5UZXh0Rmll
bGQpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnRleHREaWRDaGFuZ2VJblRleHRB
cmVhKToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjppZ25vcmVXb3JkSW5TcGVsbERv
Y3VtZW50KToKLSAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpsZWFybldvcmQpOgotICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyk6Ci0gICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcpOgotICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmlu
Zyk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6dXBkYXRlU3BlbGxpbmdVSVdpdGhN
aXNzcGVsbGVkV29yZCk6Ci0gICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c2hvd1NwZWxs
aW5nVUkpOgotICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNwZWxsaW5nVUlJc1Nob3dp
bmcpOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgotICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OkZyYW1lTG9hZGVyQ2xpZW50KToKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OnVzZXJBZ2VudCk6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVEb2N1bWVudExvYWRlcik6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50Ojpjb21taXR0ZWRMb2FkKToKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2Vs
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6YXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QpOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6cG9zdFByb2dyZXNzU3RhcnRlZE5vdGlmaWNhdGlv
bik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpwb3N0UHJvZ3Jlc3NGaW5p
c2hlZE5vdGlmaWNhdGlvbik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpm
cmFtZUxvYWRlckRlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4pOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50OjpvdmVycmlkZU1lZGlhVHlwZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50Ojp3aW5kb3dPYmplY3RDbGVhcmVkKToKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OnNldE1haW5GcmFtZURvY3VtZW50UmVhZHkpOgotICAgICAgICAoV2Vi
S2l0OjpGcmFtZUxvYWRlckNsaWVudDo6aGFzV2ViVmlldyk6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpoYXNGcmFtZVZpZXcpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKToKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZENvbXBsZXRlZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtKToKLSAgICAgICAgKFdlYktpdDo6
RnJhbWVMb2FkZXJDbGllbnQ6OnJlc3RvcmVWaWV3U3RhdGUpOgotICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjptYWtlRG9jdW1lbnRWaWV3KToKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6Om1ha2VSZXByZXNlbnRhdGlvbik6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dCk6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dEZvck5vbkhUTUwpOgotICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6c2V0Q29waWVzT25TY3JvbGwpOgotICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6ZGV0YWNoZWRGcm9tUGFyZW50MSk6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkZXRhY2hlZEZyb21QYXJlbnQyKToKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRldGFjaGVkRnJvbVBhcmVudDMpOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGV0YWNoZWRGcm9tUGFyZW50NCk6Ci0gICAgICAg
IChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpsb2FkZWRGcm9tQ2FjaGVkUGFnZSk6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2
ZW50cyk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCk6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KToKLSAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxDbG9zZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQpOgotICAgICAg
ICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUpOgot
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2Fk
KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNo
RG9jdW1lbnRMb2FkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkRmlyc3RMYXlvdXQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hTaG93KToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNl
bFBvbGljeUNoZWNrKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkTG9hZE1haW5SZXNvdXJjZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50OjpyZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGUpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6Y2xlYXJVbmFyY2hpdmluZ1N0YXRlKToKLSAgICAgICAgKFdlYktpdDo6RnJh
bWVMb2FkZXJDbGllbnQ6OndpbGxDaGFuZ2VUaXRsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50OjpkaWRDaGFuZ2VUaXRsZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRpbmcpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6ZmluYWxTZXR1cEZvclJlcGxhY2UpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudDo6c2V0RGVmZXJzTG9hZGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50Ojppc0FyY2hpdmVMb2FkUGVuZGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50OjpjYW5jZWxQZW5kaW5nQXJjaGl2ZUxvYWQpOgotICAgICAgICAoV2ViS2l0
OjpGcmFtZUxvYWRlckNsaWVudDo6Y2xlYXJBcmNoaXZlZFJlc291cmNlcyk6Ci0gICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5IYW5kbGVSZXF1ZXN0KToKLSAgICAgICAgKFdl
YktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZSk6Ci0gICAgICAgIChXZWJL
aXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpyZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSk6
Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1FVHlwZUZv
clVSTFNjaGVtZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm92aXNp
b25hbExvYWRTdGFydGVkKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRp
ZEZpbmlzaExvYWQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c2V0RG9j
dW1lbnRWaWV3RnJvbUNhY2hlZFBhZ2UpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aCk6Ci0gICAgICAgIChXZWJLaXQ6
OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcpOgotICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyk6Ci0gICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRSZXNvdXJjZUZy
b21NZW1vcnlDYWNoZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50Ojpkb3dubG9hZCk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
OjpjYW5jZWxsZWRFcnJvcik6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50Ojpi
bG9ja2VkRXJyb3IpOgotICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6Y2Fubm90
U2hvd1VSTEVycm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmludGVy
cnVwdEZvclBvbGljeUNoYW5nZUVycm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnQ6OmNhbm5vdFNob3dNSU1FVHlwZUVycm9yKToKLSAgICAgICAgKFdlYktpdDo6RnJhbWVM
b2FkZXJDbGllbnQ6OmZpbGVEb2VzTm90RXhpc3RFcnJvcik6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGYWxsQmFjayk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50Ojp3aWxsVXNlQXJjaGl2ZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZyYW1lTG9h
ZGVyQ2xpZW50OjpzYXZlRG9jdW1lbnRWaWV3VG9DYWNoZWRQYWdlKToKLSAgICAgICAgKFdlYktp
dDo6RnJhbWVMb2FkZXJDbGllbnQ6OmNhbkNhY2hlUGFnZSk6Ci0gICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UpOgotICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeSk6Ci0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDoKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpJ
bnNwZWN0b3JDbGllbnQ6Omluc3BlY3RvckRlc3Ryb3llZCk6Ci0gICAgICAgIChXZWJLaXQ6Oklu
c3BlY3RvckNsaWVudDo6Y3JlYXRlUGFnZSk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNs
aWVudDo6c2hvd1dpbmRvdyk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6Y2xv
c2VXaW5kb3cpOgotICAgICAgICAoV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQ6OmF0dGFjaFdpbmRv
dyk6Ci0gICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckNsaWVudDo6ZGV0YWNoV2luZG93KToKLSAg
ICAgICAgKFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50OjpoaWdobGlnaHQpOgotICAgICAgICAoV2Vi
S2l0OjpJbnNwZWN0b3JDbGllbnQ6OmhpZGVIaWdobGlnaHQpOgotICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5oOgotCi0yMDA3LTA4LTEwICBIb2xnZXIgSGFucyBQ
ZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5
IEFkYW0uCi0KLSAgICAgICAgQXMgb2YgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3MjcgbW92ZSB0aGUKLSAgICAgICAgdmFyaW91cyAqQ2xpZW50R2RrLntjcHAsaH0g
ZmlsZXMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQgYW5kCi0gICAg
ICAgIHJlbmFtZSBpdCBmcm9tIEdkayB0byBHdGsuCi0KLSAgICAgICAgKiBBcGkvd2Via2l0Z3Rr
ZGVmaW5lcy5oOgotICAgICAgICAqIEFwaS93ZWJraXRndGtmcmFtZS5jcHA6Ci0gICAgICAgICog
QXBpL3dlYmtpdGd0a2ZyYW1lLmg6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a2dsb2JhbC5jcHA6
Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a2dsb2JhbC5oOgotICAgICAgICAqIEFwaS93ZWJraXRn
dGtuZXR3b3JrcmVxdWVzdC5jcHA6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a25ldHdvcmtyZXF1
ZXN0Lmg6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3BhZ2UuY3BwOgotICAgICAgICAqIEFwaS93
ZWJraXRndGtwYWdlLmg6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3ByaXZhdGUuY3BwOgotICAg
ICAgICAqIEFwaS93ZWJraXRndGtwcml2YXRlLmg6Ci0gICAgICAgICogQXBpL3dlYmtpdGd0a3Nl
dHRpbmdzLmNwcDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3Rrc2V0dGluZ3MuaDoKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOiBSZW5hbWVkIGZyb20gV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHZGsuY3BwLgotICAgICAgICAoV2ViS2l0
R3RrOjpDaHJvbWVDbGllbnRHdGs6OkNocm9tZUNsaWVudEd0ayk6Ci0gICAgICAgIChXZWJLaXRH
dGs6OkNocm9tZUNsaWVudEd0azo6Y2hyb21lRGVzdHJveWVkKToKLSAgICAgICAgKFdlYktpdEd0
azo6Q2hyb21lQ2xpZW50R3RrOjp3aW5kb3dSZWN0KToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hy
b21lQ2xpZW50R3RrOjpzZXRXaW5kb3dSZWN0KToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hyb21l
Q2xpZW50R3RrOjpwYWdlUmVjdCk6Ci0gICAgICAgIChXZWJLaXRHdGs6OkNocm9tZUNsaWVudEd0
azo6c2NhbGVGYWN0b3IpOgotICAgICAgICAoV2ViS2l0R3RrOjpDaHJvbWVDbGllbnRHdGs6OmZv
Y3VzKToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hyb21lQ2xpZW50R3RrOjp1bmZvY3VzKToKLSAg
ICAgICAgKFdlYktpdEd0azo6Q2hyb21lQ2xpZW50R3RrOjpjcmVhdGVXaW5kb3cpOgotICAgICAg
ICAoV2ViS2l0R3RrOjpDaHJvbWVDbGllbnRHdGs6OmNyZWF0ZU1vZGFsRGlhbG9nKToKLSAgICAg
ICAgKFdlYktpdEd0azo6Q2hyb21lQ2xpZW50R3RrOjpzaG93KToKLSAgICAgICAgKFdlYktpdEd0
azo6Q2hyb21lQ2xpZW50R3RrOjpjYW5SdW5Nb2RhbCk6Ci0gICAgICAgIChXZWJLaXRHdGs6OkNo
cm9tZUNsaWVudEd0azo6cnVuTW9kYWwpOgotICAgICAgICAoV2ViS2l0R3RrOjpDaHJvbWVDbGll
bnRHdGs6OnNldFRvb2xiYXJzVmlzaWJsZSk6Ci0gICAgICAgIChXZWJLaXRHdGs6OkNocm9tZUNs
aWVudEd0azo6dG9vbGJhcnNWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hyb21lQ2xp
ZW50R3RrOjpzZXRTdGF0dXNiYXJWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hyb21l
Q2xpZW50R3RrOjpzdGF0dXNiYXJWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hyb21l
Q2xpZW50R3RrOjpzZXRTY3JvbGxiYXJzVmlzaWJsZSk6Ci0gICAgICAgIChXZWJLaXRHdGs6OkNo
cm9tZUNsaWVudEd0azo6c2Nyb2xsYmFyc1Zpc2libGUpOgotICAgICAgICAoV2ViS2l0R3RrOjpD
aHJvbWVDbGllbnRHdGs6OnNldE1lbnViYXJWaXNpYmxlKToKLSAgICAgICAgKFdlYktpdEd0azo6
Q2hyb21lQ2xpZW50R3RrOjptZW51YmFyVmlzaWJsZSk6Ci0gICAgICAgIChXZWJLaXRHdGs6OkNo
cm9tZUNsaWVudEd0azo6c2V0UmVzaXphYmxlKToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hyb21l
Q2xpZW50R3RrOjpjbG9zZVdpbmRvd1Nvb24pOgotICAgICAgICAoV2ViS2l0R3RrOjpDaHJvbWVD
bGllbnRHdGs6OmNhblRha2VGb2N1cyk6Ci0gICAgICAgIChXZWJLaXRHdGs6OkNocm9tZUNsaWVu
dEd0azo6dGFrZUZvY3VzKToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hyb21lQ2xpZW50R3RrOjpj
YW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOgotICAgICAgICAoV2ViS2l0R3RrOjpDaHJv
bWVDbGllbnRHdGs6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6Ci0gICAgICAgIChXZWJL
aXRHdGs6OkNocm9tZUNsaWVudEd0azo6YWRkTWVzc2FnZVRvQ29uc29sZSk6Ci0gICAgICAgIChX
ZWJLaXRHdGs6OkNocm9tZUNsaWVudEd0azo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKLSAgICAgICAg
KFdlYktpdEd0azo6Q2hyb21lQ2xpZW50R3RrOjpydW5KYXZhU2NyaXB0Q29uZmlybSk6Ci0gICAg
ICAgIChXZWJLaXRHdGs6OkNocm9tZUNsaWVudEd0azo6cnVuSmF2YVNjcmlwdFByb21wdCk6Ci0g
ICAgICAgIChXZWJLaXRHdGs6OkNocm9tZUNsaWVudEd0azo6c2V0U3RhdHVzYmFyVGV4dCk6Ci0g
ICAgICAgIChXZWJLaXRHdGs6OkNocm9tZUNsaWVudEd0azo6c2hvdWxkSW50ZXJydXB0SmF2YVNj
cmlwdCk6Ci0gICAgICAgIChXZWJLaXRHdGs6OkNocm9tZUNsaWVudEd0azo6dGFic1RvTGlua3Mp
OgotICAgICAgICAoV2ViS2l0R3RrOjpDaHJvbWVDbGllbnRHdGs6OndpbmRvd1Jlc2l6ZXJSZWN0
KToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hyb21lQ2xpZW50R3RrOjphZGRUb0RpcnR5UmVnaW9u
KToKLSAgICAgICAgKFdlYktpdEd0azo6Q2hyb21lQ2xpZW50R3RrOjpzY3JvbGxCYWNraW5nU3Rv
cmUpOgotICAgICAgICAoV2ViS2l0R3RrOjpDaHJvbWVDbGllbnRHdGs6OnVwZGF0ZUJhY2tpbmdT
dG9yZSk6Ci0gICAgICAgIChXZWJLaXRHdGs6OkNocm9tZUNsaWVudEd0azo6bW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQpOgotICAgICAgICAoV2ViS2l0R3RrOjpDaHJvbWVDbGllbnRHdGs6OnNldFRv
b2xUaXApOgotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOiBSZW5h
bWVkIGZyb20gV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHZGsuaC4KLSAg
ICAgICAgKFdlYktpdEd0azo6Q2hyb21lQ2xpZW50R3RrOjp3ZWJQYWdlKToKLSAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5jcHA6IFJlbmFtZWQgZnJvbSBXZWJD
b3JlL3BhZ2UvZ2RrL0NvbnRleHRNZW51Q2xpZW50R2RrLmNwcC4KLSAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q2xpZW50R3RrOjpjb250ZXh0TWVudURlc3Ryb3llZCk6Ci0gICAgICAgIChX
ZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEd0azo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRl
bXMpOgotICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRHdGs6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKToKLSAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50R3RrOjpk
b3dubG9hZFVSTCk6Ci0gICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEd0azo6Y29w
eUltYWdlVG9DbGlwYm9hcmQpOgotICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRH
dGs6OnNlYXJjaFdpdGhHb29nbGUpOgotICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGll
bnRHdGs6Omxvb2tVcEluRGljdGlvbmFyeSk6Ci0gICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVu
dUNsaWVudEd0azo6c3BlYWspOgotICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRH
dGs6OnN0b3BTcGVha2luZyk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVD
bGllbnRHdGsuaDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvcGFnZS9nZGsvQ29udGV4dE1lbnVDbGll
bnRHZGsuaC4KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOiBS
ZW5hbWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRWRpdG9yQ2xpZW50R2RrLmNwcC4KLSAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0azo6c2hvdWxkRGVsZXRlUmFuZ2UpOgotICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNl
KToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0azo6aXNDb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjppc0dy
YW1tYXJDaGVja2luZ0VuYWJsZWQpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3Rr
OjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZyk6Ci0gICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGll
bnRHdGs6OnNob3VsZEJlZ2luRWRpdGluZyk6Ci0gICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGll
bnRHdGs6OnNob3VsZEVuZEVkaXRpbmcpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
R3RrOjpzaG91bGRJbnNlcnRUZXh0KToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0
azo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZSk6Ci0gICAgICAgIChXZWJDb3JlOjpFZGl0b3JD
bGllbnRHdGs6OnNob3VsZEFwcGx5U3R5bGUpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xp
ZW50R3RrOjpzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpF
ZGl0b3JDbGllbnRHdGs6OmRpZEJlZ2luRWRpdGluZyk6Ci0gICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRHdGs6OnJlc3BvbmRUb0NoYW5nZWRDb250ZW50cyk6Ci0gICAgICAgIChXZWJDb3Jl
OjpFZGl0b3JDbGllbnRHdGs6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24pOgotICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjpkaWRFbmRFZGl0aW5nKToKLSAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudEd0azo6ZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQpOgotICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjpkaWRTZXRTZWxlY3Rpb25UeXBlc0ZvclBh
c3RlYm9hcmQpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjpzZWxlY3RXb3Jk
QmVmb3JlTWVudUV2ZW50KToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0azo6aXNF
ZGl0YWJsZSk6Ci0gICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRHdGs6OnJlZ2lzdGVyQ29t
bWFuZEZvclVuZG8pOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjpyZWdpc3Rl
ckNvbW1hbmRGb3JSZWRvKToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0azo6Y2xl
YXJVbmRvUmVkb09wZXJhdGlvbnMpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3Rr
OjpjYW5VbmRvKToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0azo6Y2FuUmVkbyk6
Ci0gICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRHdGs6OnVuZG8pOgotICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50R3RrOjpyZWRvKToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNs
aWVudEd0azo6c2hvdWxkSW5zZXJ0Tm9kZSk6Ci0gICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGll
bnRHdGs6OnBhZ2VEZXN0cm95ZWQpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3Rr
OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xp
ZW50R3RrOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZyk6Ci0gICAgICAgIChXZWJDb3Jl
OjpFZGl0b3JDbGllbnRHdGs6OnRvZ2dsZUdyYW1tYXJDaGVja2luZyk6Ci0gICAgICAgIChXZWJD
b3JlOjpFZGl0b3JDbGllbnRHdGs6OmhhbmRsZUtleXByZXNzKToKLSAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudEd0azo6aGFuZGxlSW5wdXRNZXRob2RLZXlwcmVzcyk6Ci0gICAgICAgIChX
ZWJDb3JlOjpFZGl0b3JDbGllbnRHdGs6OkVkaXRvckNsaWVudEd0ayk6Ci0gICAgICAgIChXZWJD
b3JlOjpFZGl0b3JDbGllbnRHdGs6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyk6Ci0gICAgICAg
IChXZWJDb3JlOjpFZGl0b3JDbGllbnRHdGs6OnRleHRGaWVsZERpZEVuZEVkaXRpbmcpOgotICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjp0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQp
OgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjpkb1RleHRGaWVsZENvbW1hbmRG
cm9tRXZlbnQpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjp0ZXh0V2lsbEJl
RGVsZXRlZEluVGV4dEZpZWxkKToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0azo6
dGV4dERpZENoYW5nZUluVGV4dEFyZWEpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
R3RrOjppZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudEd0azo6bGVhcm5Xb3JkKToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0
azo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEd0azo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcpOgotICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xp
ZW50R3RrOjp1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcpOgotICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50R3RrOjp1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3Jk
KToKLSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0azo6c2hvd1NwZWxsaW5nVUkpOgot
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50R3RrOjpzcGVsbGluZ1VJSXNTaG93aW5nKToK
LSAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEd0azo6Z2V0R3Vlc3Nlc0ZvcldvcmQpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOiBSZW5hbWVkIGZyb20g
V2ViQ29yZS9wbGF0Zm9ybS9nZGsvRWRpdG9yQ2xpZW50R2RrLmguCi0gICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOiBSZW5hbWVkIGZyb20gV2ViQ29yZS9s
b2FkZXIvZ2RrL0ZyYW1lTG9hZGVyQ2xpZW50R2RrLmNwcC4KLSAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyQ2xpZW50R3RrOjpGcmFtZUxvYWRlckNsaWVudEd0ayk6Ci0gICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6dXNlckFnZW50KToKLSAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpjcmVhdGVEb2N1bWVudExvYWRlcik6Ci0gICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybSk6Ci0g
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6Y29tbWl0dGVkTG9hZCk6Ci0g
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6ZGlzcGF0Y2hEaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRHdGs6OmRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgotICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0KToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjphc3NpZ25JZGVu
dGlmaWVyVG9Jbml0aWFsUmVxdWVzdCk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEd0azo6cG9zdFByb2dyZXNzU3RhcnRlZE5vdGlmaWNhdGlvbik6Ci0gICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90
aWZpY2F0aW9uKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpwb3N0
UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbik6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudEd0azo6ZnJhbWVMb2FkZXJEZXN0cm95ZWQpOgotICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKToKLSAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck1JTUVUeXBlKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6Ci0gICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEd0azo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpjcmVhdGVQbHVn
aW4pOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmNyZWF0ZUZyYW1l
KToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpyZWRpcmVjdERhdGFU
b1BsdWdpbik6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6Y3JlYXRl
SmF2YUFwcGxldFdpZGdldCk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0
azo6b2JqZWN0Q29udGVudFR5cGUpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRHdGs6Om92ZXJyaWRlTWVkaWFUeXBlKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50R3RrOjp3aW5kb3dPYmplY3RDbGVhcmVkKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50R3RrOjpzZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KToKLSAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpoYXNXZWJWaWV3KToKLSAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpoYXNGcmFtZVZpZXcpOgotICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRpc3BhdGNoRGlkRmluaXNoTG9hZCk6Ci0gICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6ZnJhbWVMb2FkQ29tcGxldGVkKToKLSAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpzYXZlVmlld1N0YXRlVG9JdGVt
KToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpyZXN0b3JlVmlld1N0
YXRlKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpzaG91bGRHb1Rv
SGlzdG9yeUl0ZW0pOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OnBy
aXZhdGVCcm93c2luZ0VuYWJsZWQpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRHdGs6Om1ha2VEb2N1bWVudFZpZXcpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRHdGs6Om1ha2VSZXByZXNlbnRhdGlvbik6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudEd0azo6Zm9yY2VMYXlvdXQpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRHdGs6OmZvcmNlTGF5b3V0Rm9yTm9uSFRNTCk6Ci0gICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEd0azo6c2V0Q29waWVzT25TY3JvbGwpOgotICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRldGFjaGVkRnJvbVBhcmVudDEpOgotICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRldGFjaGVkRnJvbVBhcmVudDIpOgotICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRldGFjaGVkRnJvbVBhcmVudDMp
OgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRldGFjaGVkRnJvbVBh
cmVudDQpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmxvYWRlZEZy
b21DYWNoZWRQYWdlKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpk
aXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cyk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudEd0azo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWQpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRpc3Bh
dGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRHdGs6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6Ci0gICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6ZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlv
bldpdGhpblBhZ2UpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRp
c3BhdGNoV2lsbENsb3NlKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3Rr
OjpkaXNwYXRjaERpZFJlY2VpdmVJY29uKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50R3RrOjpkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKToKLSAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpkaXNwYXRjaERpZFJlY2VpdmVUaXRsZSk6Ci0g
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6ZGlzcGF0Y2hEaWRDb21taXRM
b2FkKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpkaXNwYXRjaERp
ZEZpbmlzaERvY3VtZW50TG9hZCk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dEd0azo6ZGlzcGF0Y2hEaWRGaXJzdExheW91dCk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudEd0azo6ZGlzcGF0Y2hTaG93KToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50R3RrOjpjYW5jZWxQb2xpY3lDaGVjayk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEd0azo6ZGlzcGF0Y2hEaWRMb2FkTWFpblJlc291cmNlKToKLSAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpyZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGUp
OgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmNsZWFyVW5hcmNoaXZp
bmdTdGF0ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6d2lsbENo
YW5nZVRpdGxlKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpkaWRD
aGFuZ2VUaXRsZSk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6Zmlu
aXNoZWRMb2FkaW5nKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpm
aW5hbFNldHVwRm9yUmVwbGFjZSk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dEd0azo6c2V0RGVmZXJzTG9hZGluZyk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEd0azo6aXNBcmNoaXZlTG9hZFBlbmRpbmcpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXJDbGllbnRHdGs6OmNhbmNlbFBlbmRpbmdBcmNoaXZlTG9hZCk6Ci0gICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6Y2xlYXJBcmNoaXZlZFJlc291cmNlcyk6Ci0gICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6Y2FuSGFuZGxlUmVxdWVzdCk6Ci0g
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6Y2FuU2hvd01JTUVUeXBlKToK
LSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpyZXByZXNlbnRhdGlvbkV4
aXN0c0ZvclVSTFNjaGVtZSk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0
azo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUpOgotICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnRHdGs6OnByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQpOgotICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRpZEZpbmlzaExvYWQpOgotICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OnByZXBhcmVGb3JEYXRhU291cmNlUmVwbGFjZW1l
bnQpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OnNldFRpdGxlKToK
LSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpzZXREb2N1bWVudFZpZXdG
cm9tQ2FjaGVkUGFnZSk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6
ZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aCk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEd0azo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKToKLSAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpkaXNwYXRjaERpZEZhaWxMb2FkaW5nKToKLSAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpkaXNwYXRjaERpZExvYWRSZXNv
dXJjZUZyb21NZW1vcnlDYWNoZSk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dEd0azo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKLSAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpkaXNwYXRjaERpZEZhaWxMb2FkKToKLSAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpkb3dubG9hZCk6Ci0gICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudEd0azo6Y2FuY2VsbGVkRXJyb3IpOgotICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmJsb2NrZWRFcnJvcik6Ci0gICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudEd0azo6Y2Fubm90U2hvd1VSTEVycm9yKToKLSAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjppbnRlcnJ1cHRGb3JQb2xpY3lDaGFuZ2VFcnJv
cik6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6Y2Fubm90U2hvd01J
TUVUeXBlRXJyb3IpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6OmZp
bGVEb2VzTm90RXhpc3RFcnJvcik6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dEd0azo6c2hvdWxkRmFsbEJhY2spOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRHdGs6OndpbGxVc2VBcmNoaXZlKToKLSAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50R3RrOjpzYXZlRG9jdW1lbnRWaWV3VG9DYWNoZWRQYWdlKToKLSAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50R3RrOjpjYW5DYWNoZVBhZ2UpOgotICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRHdGs6OmRpc3BhdGNoQ3JlYXRlUGFnZSk6Ci0gICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGlj
eSk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaDogUmVu
YW1lZCBmcm9tIFdlYkNvcmUvbG9hZGVyL2dkay9GcmFtZUxvYWRlckNsaWVudEdkay5oLgotICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRHdGs6On5GcmFtZUxvYWRlckNsaWVudEd0
ayk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEd0azo6d2ViRnJhbWUpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHA6IFJlbmFtZWQg
ZnJvbSBXZWJDb3JlL3BhZ2UvZ2RrL0luc3BlY3RvckNsaWVudEdkay5jcHAuCi0gICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRHdGs6Omluc3BlY3RvckRlc3Ryb3llZCk6Ci0gICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRHdGs6OmNyZWF0ZVBhZ2UpOgotICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2xpZW50R3RrOjpzaG93V2luZG93KToKLSAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNsaWVudEd0azo6Y2xvc2VXaW5kb3cpOgotICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ2xpZW50R3RrOjphdHRhY2hXaW5kb3cpOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ2xpZW50R3RrOjpkZXRhY2hXaW5kb3cpOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q2xpZW50R3RrOjpoaWdobGlnaHQpOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50
R3RrOjpoaWRlSGlnaGxpZ2h0KToKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNsaWVudEd0
azo6aW5zcGVjdGVkVVJMQ2hhbmdlZCk6Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVj
dG9yQ2xpZW50R3RrLmg6IFJlbmFtZWQgZnJvbSBXZWJDb3JlL3BhZ2UvZ2RrL0luc3BlY3RvckNs
aWVudEdkay5oLgotCi0yMDA3LTA4LTEwICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHpl
Y2tlQHNlbGZpc2gub3JnPgotCi0gICAgICAgIEJ1aWxkIGZpeC4KLQotICAgICAgICAqIEFwaS93
ZWJraXRndGtmcmFtZS5jcHA6Ci0KLTIwMDctMDgtMTAgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0
aGVyICA8emVja2VAc2VsZmlzaC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbS4KLQot
ICAgICAgICBSZW1vdmUgdGhlIGNyZWF0ZV9mcmFtZSB2aXJ0dWFsIG1ldGhvZCBvZiBXZWJLaXRH
dGtQYWdlLiBUaGlzIG1ldGhvZCB3YXMgaW5zcGlyZWQKLSAgICAgICAgYnkgdGhlIFF0IHBvcnQg
YnV0IHRvIGJlIHVzZWZ1bCBmb3IgcmVpbXBsZW1lbnRhdGlvbnMgV2ViS2l0R3RrRnJhbWVEYXRh
IHdvdWxkIG5lZWQKLSAgICAgICAgdG8gZXhwb3J0L2V4cG9zZSBXZWJDb3JlIHR5cGVzLiBXZWJW
aWV3IGRvZXNuJ3Qgb2ZmZXIgc3VjaCBhIG1ldGhvZCBzbyBJIGRlY2lkZWQgdG8KLSAgICAgICAg
cmVtb3ZlIGl0LgotICAgICAgICBBZGQgYSBpbnRlcm5hbCBjb25zdHJ1Y3RvciB0byBXZWJLaXRH
dGtGcmFtZSB0byBiZSB1c2VkIGZvciBjb25zdHJ1Y3RpbmcgU3ViLUZyYW1lcy4gVGhpcwotICAg
ICAgICBpcyBjdXJyZW50bHkgdXNlZCBieSBGcmFtZUxvYWRlckNsaWVudEdkazo6Y3JlYXRlRnJh
bWUuCi0KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrZnJhbWUuY3BwOgotICAgICAgICAqIEFwaS93
ZWJraXRndGtmcmFtZWRhdGEuY3BwOiBSZW1vdmVkLgotICAgICAgICAqIEFwaS93ZWJraXRndGtm
cmFtZWRhdGEuaDogUmVtb3ZlZC4KLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcGFnZS5jcHA6Ci0g
ICAgICAgICogQXBpL3dlYmtpdGd0a3BhZ2UuaDoKLSAgICAgICAgKiBBcGkvd2Via2l0Z3RrcHJp
dmF0ZS5oOgotCi0yMDA3LTA4LTEwICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tl
QHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0uCi0KLSAgICAgICAgRm9s
bG93IHRoZSBjaGFuZ2VzIG9mIFNjcm9sbFZpZXcgaW4gV2ViQ29yZSBhbmQgY2FsbCBzZXRDb250
YWluaW5nV2luZG93LCBzZXQgdGhlCi0gICAgICAgIEd0a0FkanVzdG1lbnQgb2YgdGhlIEd0a0xh
eW91dCBhbmQgcmVpbXBsZW1lbnQgdGhlIHNldF9zY3JvbGxfYWRqdXN0bWVudHMgbWV0aG9kIGFu
ZCBwYXNzCi0gICAgICAgIHRoZSBHdGtBZGp1c3RtZW50cyB0byBTY3JvbGxWaWV3LgotICAgICAg
ICBUaGlzIG1ha2VzIGhhdmluZyBvbmUgR2RrV2luZG93IGZvciB0aGUgY29tcGxldGUgRnJhbWVU
cmVlIHBvc3NpYmxlLgotCi0KLSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a2ZyYW1lLmNwcDoK
LSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwOgotCi0yMDA3LTA4LTA4ICBIb2xn
ZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IE5pa28uCi0KLSAgICAgICAgV2Ugb25seSBuZWVkIHRvIHNldCB0aGUgU2V0dGlu
Z3Mgb2YgdGhlIFBhZ2Ugb25jZSBzbyBkbyBpdCBpbgotICAgICAgICBXZWJLaXRHdGtQYWdlIGlu
c3RlYWQgb2YgV2ViS2l0R3RrRnJhbWUuCi0KLSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a2Zy
YW1lLmNwcDoKLSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwOgotCi0yMDA3LTA4
LTA4ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IE5pa28uCi0KLSAgICAgICAgSW5zdGVhZCBvZiByZWltcGxlbWVu
dGluZyB0aGUgZ2VuZXJhbCBldmVudCBtZXRob2QsIHJlaW1wbGVtZW50Ci0gICAgICAgIHRoZSBz
cGVjaWZpYyBtb3VzZSwgZXhwb3NlLCBrZXlib2FyZCBldmVudCBtZXRob2RzLgotCi0gICAgICAg
IENhbGwgdGhlIGZpbmFsaXplIGltcGxlbWVudGF0aW9uIG9mIHRoZSBiYXNlIGNsYXNzIGZyb20g
V2ViS2l0R3RrUGFnZQotICAgICAgICBhbmQgV2ViS2l0R3RrRnJhbWUuCi0KLSAgICAgICAgKiBn
dGsvQXBpL3dlYmtpdGd0a2ZyYW1lLmNwcDoKLSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a3Bh
Z2UuY3BwOgotCi0yMDA3LTA4LTA4ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tl
QHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE5pa28uCi0KLSAgICAgICAgUmVt
b3ZlIHRoZSBjdXN0b20gcGFpbnRpbmcgaW4gZmF2b3Igb2YgdGhlIFdpZGdldDo6cGFpbnQKLSAg
ICAgICAgaW1wbGVtZW50YXRpb24uCi0KLSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a3BhZ2Uu
Y3BwOgotCi0yMDA3LTA4LTA4ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNl
bGZpc2gub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0uCi0KLSAgICAgICAgTW92ZWQg
Y29kZSBmcm9tIGNsYXNzIEZyYW1lR2RrIGludG8gV2ViS2l0R3RrRnJhbWUuIFVwZGF0ZSB0aGUK
LSAgICAgICAgd2Via2l0Z3JrcHJpdmF0ZS5oIGhlYWRlciBmaWxlIHRvIG5vdCBpbmNsdWRlIEZy
YW1lR2RrLmguCi0KLSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a2ZyYW1lLmNwcDoKLSAgICAg
ICAgKiBndGsvQXBpL3dlYmtpdGd0a3ByaXZhdGUuaDoKLQotMjAwNy0wOC0wOCAgSG9sZ2VyIEhh
bnMgUGV0ZXIgRnJleXRoZXIgIDx6ZWNrZUBzZWxmaXNoLm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtLgotCi0gICAgICAgIENoYW5nZSB2YXJpYWJsZSBuYW1lcyB0byBmb2xsb3cgdGhl
IENvZGluZy1TdHlsZS4gUmVwbGFjZSBvY2N1cmVuY2VzCi0gICAgICAgIG9mIGFfYiB3aXRoIGFC
IGFuZCBwbGFjZSB0aGUgJyonIGNvcnJlY3RseS4KLQotICAgICAgICAqIGd0ay9BcGkvd2Via2l0
Z3RrZnJhbWUuY3BwOgotICAgICAgICAqIGd0ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHA6Ci0gICAg
ICAgICogZ3RrL0FwaS93ZWJraXRndGtwcml2YXRlLmg6Ci0KLTIwMDctMDgtMDggIEhvbGdlciBI
YW5zIFBldGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbS4KLQotICAgICAgICBSZWltcGxlbWVudCBHdGtXaWRnZXQ6OmV2ZW50IGFuZCBo
YW5kbGUgdGhlIGtleWJvYXJkIGFuZCBtb3VzZQotICAgICAgICBldmVudHMgaW5zaWRlIFdlYktp
dEd0a1BhZ2UuCi0KLSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a3BhZ2UuY3BwOgotICAgICAg
ICAoRnJhbWVHZGtFeHBvc2VEYXRhOjpmcmFtZV9nZGtfZXhwb3NlX2NoaWxkKToKLSAgICAgICAg
KEZyYW1lR2RrRXhwb3NlRGF0YTo6d2Via2l0X2d0a19wYWdlX3JlbmRlcmluZ19hcmVhX2hhbmRs
ZV9nZGtfZXZlbnQpOgotICAgICAgICAoRnJhbWVHZGtFeHBvc2VEYXRhOjp3ZWJraXRfZ3RrX3Bh
Z2VfcmVnaXN0ZXJfcmVuZGVyaW5nX2FyZWFfZXZlbnRzKToKLSAgICAgICAgKEZyYW1lR2RrRXhw
b3NlRGF0YTo6d2Via2l0X2d0a19wYWdlX2NsYXNzX2luaXQpOgotCi0yMDA3LTA4LTA3ICBYYW4g
TG9wZXogIDx4YW5AZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IE1hcmsgUm93ZS4K
LQotICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgxNQot
ICAgICAgICBbZ3RrXSBBUEkgaW1wbGVtZW50YXRpb246IHJlbG9hZAotCi0gICAgICAgICogZ3Rr
L0FwaS93ZWJraXRndGtwYWdlLmNwcDogSW1wbGVtZW50IHRoZSB3ZWJraXRfZ3RrX3BhZ2VfcmVs
b2FkKCkKLSAgICAgICAgZnVuY3Rpb24uCi0KLTIwMDctMDctMzAgIERpZWdvIEVzY2FsYW50ZSBV
cnJlbG8gIDxkaWVnb2VAZ25vbWUub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0uCi0K
LSAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4MDYKLSAg
ICAgICAgSW1wbGVtZW50IGNhbl9nb19iYWNrd2FyZCBhbmQgY2FuX2dvX2ZvcndhcmQgaW4gd2Vi
a2l0Z3RrcGFnZS5jcHAKLQotICAgICAgICAqIGd0ay9BcGkvd2Via2l0Z3RrcGFnZS5jcHA6IElt
cGxlbWVudCB3ZWJraXRfZ3RrX3BhZ2VfY2FuX2dvX2JhY2t3YXJkKCkgYW5kCi0gICAgICAgIHdl
YmtpdF9ndGtfcGFnZV9jYW5fZ29fZm9yd2FyZCgpIGZ1bmN0aW9ucy4KLQotMjAwNy0wNy0zMCAg
RGllZ28gRXNjYWxhbnRlIFVycmVsbyAgPGRpZWdvZUBnbm9tZS5vcmc+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgQWxwIFRva2VyLgotCi0gICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE0ODEwCi0gICAgICAgIEJhZCBuX3BhcmFtcyBvbiBsb2FkX2ZpbmlzaGVk
J3MgZ19zaWduYWxfbmV3IGluIHdlYmtpdGd0a3BhZ2UuY3BwCi0KLSAgICAgICAgVGhpcyBpcyB0
aGUgcHJvcGVyIGZpeCBmb3IgIzE0ODEwLgotCi0gICAgICAgICogZ3RrL0FwaS93ZWJraXRndGtm
cmFtZS5jcHA6Ci0gICAgICAgICogZ3RrL0FwaS93ZWJraXRndGtwYWdlLmNwcDogRml4IHRoZSBt
YXJzaGFsbGVyIHR5cGUgb2YgdGhlICJsb2FkX2ZpbmlzaGVkIiBzaWduYWwgYW5kCi0gICAgICAg
IGNvcnJlY3QgdGhlIGNsYXNzX29mZnNldCBwYXJhbWV0ZXJzLgotCi0yMDA3LTA3LTI5ICBEaWVn
byBFc2NhbGFudGUgVXJyZWxvICA8ZGllZ29lQGdub21lLm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBBbHAgVG9rZXIuCi0KLSAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MTAKLSAgICAgICAgQmFkIG5fcGFyYW1zIG9uIGxvYWRfZmluaXNoZWQncyBn
X3NpZ25hbF9uZXcgaW4gd2Via2l0Z3RrcGFnZS5jcHAKLQotICAgICAgICAqIGd0ay9BcGkvd2Vi
a2l0Z3RrcGFnZS5jcHA6IFVzZSBhIGNvcnJlY3Qgbl9wYXJhbXMgdmFsdWUgYW5kIHRoZSBjb3Jy
ZXNwb25kaW5nIHR5cGVzIGZvcgotICAgICAgICB0aGVtIGluIHRoZSAibG9hZF9maW5pc2hlZCIg
c2lnbmFsLgotCi0yMDA3LTA3LTIyICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tl
QHNlbGZpc2gub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0uCi0KLSAgICAgICAgQWRk
IHRoZSBmaXJzdCBBUEkgYW5kIHBhcnRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIFdlYktpdC9H
dGsgcG9ydCBhcwotICAgICAgICBvZiBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNDY3OC4KLQotICAgICAgICBUaGUgZGVsZWdhdGVzIG9mIFdlYlZpZXcgd2lsbCBiZSBt
b2RlbGVkIGFzIHNpZ25hbHMuIERlbGVnYXRlcyBsaWtlIHRoZQotICAgICAgICBXZWJQb2xpY3lE
ZWxlZ2F0ZSB3aWxsIGJlIGltcGxlbWVudGVkIGFzIHNpZ25hbHMgd2l0aCBkZWZhdWx0IGhhbmRs
ZXJzLgotCi0gICAgICAgIFN0YXJ0IG1vdmluZyBmaWxlcyB0byBXZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0LgotCi0gICAgICAgICogZ3RrOiBBZGRlZC4KLSAgICAgICAgKiBndGsvQXBpOiBBZGRl
ZC4KLSAgICAgICAgKiBndGsvQXBpL2hlYWRlcnMucHJpOiBBZGRlZC4KLSAgICAgICAgKiBndGsv
QXBpL3dlYmtpdGd0ay1tYXJzaGFsLmxpc3Q6IEFkZGVkLgotICAgICAgICAqIGd0ay9BcGkvd2Vi
a2l0Z3RrZGVmaW5lcy5oOiBBZGRlZC4KLSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a2ZyYW1l
LmNwcDogQWRkZWQuCi0gICAgICAgICogZ3RrL0FwaS93ZWJraXRndGtmcmFtZS5oOiBBZGRlZC4K
LSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a2ZyYW1lZGF0YS5jcHA6IEFkZGVkLgotICAgICAg
ICAqIGd0ay9BcGkvd2Via2l0Z3RrZnJhbWVkYXRhLmg6IEFkZGVkLgotICAgICAgICAqIGd0ay9B
cGkvd2Via2l0Z3RrZ2xvYmFsLmNwcDogQWRkZWQuCi0gICAgICAgICogZ3RrL0FwaS93ZWJraXRn
dGtnbG9iYWwuaDogQWRkZWQuCi0gICAgICAgICogZ3RrL0FwaS93ZWJraXRndGtuZXR3b3JrcmVx
dWVzdC5jcHA6IEFkZGVkLgotICAgICAgICAqIGd0ay9BcGkvd2Via2l0Z3RrbmV0d29ya3JlcXVl
c3QuaDogQWRkZWQuCi0gICAgICAgICogZ3RrL0FwaS93ZWJraXRndGtwYWdlLmNwcDogQWRkZWQu
Ci0gICAgICAgICogZ3RrL0FwaS93ZWJraXRndGtwYWdlLmg6IEFkZGVkLgotICAgICAgICAqIGd0
ay9BcGkvd2Via2l0Z3RrcHJpdmF0ZS5jcHA6IEFkZGVkLgotICAgICAgICAqIGd0ay9BcGkvd2Vi
a2l0Z3RrcHJpdmF0ZS5oOiBBZGRlZC4KLSAgICAgICAgKiBndGsvQXBpL3dlYmtpdGd0a3NldHRp
bmdzLmNwcDogQWRkZWQuCi0gICAgICAgICogZ3RrL0FwaS93ZWJraXRndGtzZXR0aW5ncy5oOiBB
ZGRlZC4KLSAgICAgICAgKiBndGsvV2ViQ29yZVN1cHBvcnQ6IEFkZGVkLgotICAgICAgICAqIGd0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHZGsuY3BwOiBBZGRlZC4KLSAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEdkazo6Q2hyb21lQ2xpZW50R2RrKToKLSAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEdkazo6Y2hyb21lRGVzdHJveWVkKToKLSAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudEdkazo6d2luZG93UmVjdCk6Ci0gICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRHZGs6OnNldFdpbmRvd1JlY3QpOgotICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
R2RrOjpwYWdlUmVjdCk6Ci0gICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OnNjYWxl
RmFjdG9yKToKLSAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEdkazo6Zm9jdXMpOgotICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50R2RrOjp1bmZvY3VzKToKLSAgICAgICAgKFdlYkNv
cmU6OkNocm9tZUNsaWVudEdkazo6Y3JlYXRlV2luZG93KToKLSAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudEdkazo6Y3JlYXRlTW9kYWxEaWFsb2cpOgotICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50R2RrOjpzaG93KToKLSAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEdkazo6
Y2FuUnVuTW9kYWwpOgotICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50R2RrOjpydW5Nb2Rh
bCk6Ci0gICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OnNldFRvb2xiYXJzVmlzaWJs
ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OnRvb2xiYXJzVmlzaWJsZSk6
Ci0gICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OnNldFN0YXR1c2JhclZpc2libGUp
OgotICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50R2RrOjpzdGF0dXNiYXJWaXNpYmxlKToK
LSAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEdkazo6c2V0U2Nyb2xsYmFyc1Zpc2libGUp
OgotICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50R2RrOjpzY3JvbGxiYXJzVmlzaWJsZSk6
Ci0gICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OnNldE1lbnViYXJWaXNpYmxlKToK
LSAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEdkazo6bWVudWJhclZpc2libGUpOgotICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50R2RrOjpzZXRSZXNpemFibGUpOgotICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50R2RrOjpjbG9zZVdpbmRvd1Nvb24pOgotICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50R2RrOjpjYW5UYWtlRm9jdXMpOgotICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50R2RrOjp0YWtlRm9jdXMpOgotICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50R2RrOjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOgotICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50R2RrOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOgotICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50R2RrOjphZGRNZXNzYWdlVG9Db25zb2xlKToKLSAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEdkazo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKLSAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEdkazo6cnVuSmF2YVNjcmlwdENvbmZpcm0pOgotICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50R2RrOjpydW5KYXZhU2NyaXB0UHJvbXB0KToKLSAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEdkazo6c2V0U3RhdHVzYmFyVGV4dCk6Ci0gICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OnNob3VsZEludGVycnVwdEphdmFTY3JpcHQp
OgotICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50R2RrOjp0YWJzVG9MaW5rcyk6Ci0gICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OndpbmRvd1Jlc2l6ZXJSZWN0KToKLSAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEdkazo6YWRkVG9EaXJ0eVJlZ2lvbik6Ci0gICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OnNjcm9sbEJhY2tpbmdTdG9yZSk6Ci0gICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OnVwZGF0ZUJhY2tpbmdTdG9yZSk6Ci0gICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KToKLSAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEdkazo6c2V0VG9vbFRpcCk6Ci0gICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRHZGs6OnByaW50KToKLSAgICAgICAgKiBndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R2RrLmg6IEFkZGVkLgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Nv
bnRleHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FjZmM4ZC4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBJZ2FsaWEsIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICov
Ci0KLSNpZm5kZWYgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRfaAotI2RlZmluZSBBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dF9oCi0KLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNp
bmNsdWRlICJHcmFwaGljc0xheWVyLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NMYXllckNsaWVudC5o
IgotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jaW5jbHVkZSAi
VGltZXIuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KLQotI2lmIFVTRShURVhUVVJFX01BUFBFUikKLSNpbmNsdWRlICJUZXh0dXJlTWFw
cGVyTGF5ZXIuaCIKLSNlbmRpZgotCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQotI2luY2x1
ZGUgIkdMQ29udGV4dC5oIgotI2luY2x1ZGUgIlJlZGlyZWN0ZWRYQ29tcG9zaXRlV2luZG93Lmgi
Ci0jaW5jbHVkZSAiVGV4dHVyZU1hcHBlckZQU0NvdW50ZXIuaCIKLSNlbmRpZgotCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotY2xhc3MgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQgOiBwdWJs
aWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQpOwotcHVibGljOgotICAgIGV4cGxpY2l0
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KFdlYktpdFdlYlZpZXcqKTsKLSAgICB2aXJ0
dWFsIH5BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCgpOwotCi0gICAgdm9pZCBzZXRSb290
Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7Ci0gICAgdm9pZCBzZXRO
b25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7
Ci0gICAgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2goKTsKLSAgICB2b2lkIHJlc2l6ZVJvb3RMYXll
cihjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Ci0gICAgYm9vbCByZW5kZXJMYXllcnNUb1dpbmRv
dyhjYWlyb190KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwotICAgIGJvb2wg
ZW5hYmxlZCgpOwotCi0gICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBk
b3VibGUgdGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRz
KGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQm
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiByZWN0VG9QYWludCk7Ci0KLSAgICB2b2lkIGluaXRpYWxpemUoKTsKLQotICAgIGVu
dW0gQ29tcG9zaXRlUHVycG9zZSB7IEZvclJlc2l6ZSwgTm90Rm9yUmVzaXplIH07Ci0gICAgdm9p
ZCBjb21wb3NpdGVMYXllcnNUb0NvbnRleHQoQ29tcG9zaXRlUHVycG9zZSA9IE5vdEZvclJlc2l6
ZSk7Ci0KLSAgICB2b2lkIGZsdXNoQW5kUmVuZGVyTGF5ZXJzKCk7Ci0gICAgYm9vbCBmbHVzaFBl
bmRpbmdMYXllckNoYW5nZXMoKTsKLSAgICB2b2lkIHNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzY3JvbGxPZmZzZXQpOwotCi1wcml2YXRlOgotICAgIFdlYktpdFdlYlZpZXcqIG1fd2Vi
VmlldzsKLSAgICB1bnNpZ25lZCBpbnQgbV9sYXllckZsdXNoVGltZXJDYWxsYmFja0lkOwotCi0j
aWYgVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQotICAgIE93blB0cjxXZWJDb3JlOjpSZWRpcmVjdGVk
WENvbXBvc2l0ZVdpbmRvdz4gbV9yZWRpcmVjdGVkV2luZG93OwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyOwot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBw
ZXI7Ci0gICAgZG91YmxlIG1fbGFzdEZsdXNoVGltZTsKLSAgICBkb3VibGUgbV9yZWRyYXdQZW5k
aW5nVGltZTsKLSAgICBib29sIG1fbmVlZHNFeHRyYUZsdXNoOwotICAgIFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJGUFNDb3VudGVyIG1fZnBzQ291bnRlcjsKLQotICAgIHZvaWQgbGF5ZXJGbHVzaFRp
bWVyRmlyZWQoKTsKLSAgICB2b2lkIHN0b3BBbnlQZW5kaW5nTGF5ZXJGbHVzaCgpOwotICAgIHN0
YXRpYyBnYm9vbGVhbiBsYXllckZsdXNoVGltZXJGaXJlZENhbGxiYWNrKEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdDb250ZXh0Kik7Ci0gICAgV2ViQ29yZTo6R0xDb250ZXh0KiBwcmVwYXJlRm9yUmVu
ZGVyaW5nKCk7Ci0gICAgdm9pZCBjbGVhckV2ZXJ5d2hlcmUoKTsKLSNlbGlmIFVTRShURVhUVVJF
X01BUFBFUikKLSAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXIqIG1fcm9vdFRleHR1cmVN
YXBwZXJMYXllcjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4g
bV9yb290R3JhcGhpY3NMYXllcjsKLSAgICBPd25QdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlcj4g
bV90ZXh0dXJlTWFwcGVyOwotI2VuZGlmCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHRHTC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVk
MGIyNjEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHRHTC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MDkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEsIFMuTC4KLSAqCi0gKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oIgotCi0jaWYgVVNFKFRFWFRVUkVfTUFQUEVS
X0dMKQotCi0jaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKLSNpbmNsdWRlICJHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIgotI2luY2x1ZGUgIkd0
a1ZlcnNpb25pbmcuaCIKLSNpbmNsdWRlICJNYWluRnJhbWUuaCIKLSNpbmNsdWRlICJQbGF0Zm9y
bUNvbnRleHRDYWlyby5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiVGV4dHVy
ZU1hcHBlckdMLmgiCi0jaW5jbHVkZSAiVGV4dHVyZU1hcHBlckxheWVyLmgiCi0jaW5jbHVkZSAi
d2Via2l0d2Vidmlld3ByaXZhdGUuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLQot
I2lmIFVTRShPUEVOR0xfRVNfMikKLSNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KLSNlbHNlCi0jaW5j
bHVkZSA8R0wvZ2wuaD4KLSNlbmRpZgotCi0jaW5jbHVkZSA8Y2Fpcm8uaD4KLSNpbmNsdWRlIDxn
ZGsvZ2RrLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5oPgotCi0jaWYgUExBVEZPUk0oWDExKSAmJiBk
ZWZpbmVkKEdES19XSU5ET1dJTkdfWDExKQotI2luY2x1ZGUgPGdkay9nZGt4Lmg+Ci0jZW5kaWYK
LQotY29uc3QgZG91YmxlIGdGcmFtZXNQZXJTZWNvbmQgPSA2MDsKLQotLy8gVGhlcmUgc2VlbXMg
dG8gYmUgYSBkZWxpY2F0ZSBiYWxhbmNlIGJldHdlZW4gdGhlIG1haW4gbG9vcCBiZWluZyBmbG9v
ZGVkCi0vLyB3aXRoIG1vdGlvbiBldmVudHMgKHRoYXQgZm9yY2UgZmx1c2hlcykgYW5kIHN0YXJ2
aW5nIHRoZSBtYWluIGxvb3Agb2YgZXZlbnRzCi0vLyB3aXRoIGZsdXNoIGNhbGxiYWNrcy4gVGhp
cyBkZWxheSBpcyBlbnRpcmVseSBlbXBpcmljYWwuCi1jb25zdCBkb3VibGUgZ1NjaGVkdWxlRGVs
YXkgPSAoMS4wIC8gKGdGcmFtZXNQZXJTZWNvbmQgLyAzLjApKTsKLQotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1BY2NlbGVyYXRlZENvbXBvc2l0aW5n
Q29udGV4dDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKLSAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQotICAgICwgbV9sYXllckZsdXNoVGltZXJD
YWxsYmFja0lkKDApCi0gICAgLCBtX2xhc3RGbHVzaFRpbWUoMCkKLSAgICAsIG1fcmVkcmF3UGVu
ZGluZ1RpbWUoMCkKLSAgICAsIG1fbmVlZHNFeHRyYUZsdXNoKGZhbHNlKQotewotfQotCi1zdGF0
aWMgSW50U2l6ZSBnZXRXZWJWaWV3U2l6ZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAg
IEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKLSAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9u
KEdUS19XSURHRVQod2ViVmlldyksICZhbGxvY2F0aW9uKTsKLSAgICByZXR1cm4gSW50U2l6ZShh
bGxvY2F0aW9uLndpZHRoLCBhbGxvY2F0aW9uLmhlaWdodCk7Ci19Ci0KLXZvaWQgcmVkaXJlY3Rl
ZFdpbmRvd0RhbWFnZWRDYWxsYmFjayh2b2lkKiBkYXRhKQotewotICAgIGd0a193aWRnZXRfcXVl
dWVfZHJhdyhHVEtfV0lER0VUKGRhdGEpKTsKLX0KLQotdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dDo6aW5pdGlhbGl6ZSgpCi17Ci0gICAgaWYgKG1fcm9vdExheWVyKQotICAgICAg
ICByZXR1cm47Ci0KLSNpZiBQTEFURk9STShYMTEpICYmIGRlZmluZWQoR0RLX1dJTkRPV0lOR19Y
MTEpCi0gICAgR2RrRGlzcGxheSogZGlzcGxheSA9IGdka19kaXNwbGF5X21hbmFnZXJfZ2V0X2Rl
ZmF1bHRfZGlzcGxheShnZGtfZGlzcGxheV9tYW5hZ2VyX2dldCgpKTsKLSAgICBpZiAoIUdES19J
U19YMTFfRElTUExBWShkaXNwbGF5KSkKLSNlbmRpZgotICAgICAgICByZXR1cm47Ci0KLSAgICBJ
bnRTaXplIHBhZ2VTaXplID0gZ2V0V2ViVmlld1NpemUobV93ZWJWaWV3KTsKLSAgICBpZiAoIW1f
cmVkaXJlY3RlZFdpbmRvdykgewotICAgICAgICBpZiAobV9yZWRpcmVjdGVkV2luZG93ID0gUmVk
aXJlY3RlZFhDb21wb3NpdGVXaW5kb3c6OmNyZWF0ZShwYWdlU2l6ZSkpCi0gICAgICAgICAgICBt
X3JlZGlyZWN0ZWRXaW5kb3ctPnNldERhbWFnZU5vdGlmeUNhbGxiYWNrKHJlZGlyZWN0ZWRXaW5k
b3dEYW1hZ2VkQ2FsbGJhY2ssIG1fd2ViVmlldyk7Ci0gICAgfSBlbHNlCi0gICAgICAgIG1fcmVk
aXJlY3RlZFdpbmRvdy0+cmVzaXplKHBhZ2VTaXplKTsKLQotICAgIGlmICghbV9yZWRpcmVjdGVk
V2luZG93KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Jvb3RMYXllciA9IEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZSgwLCB0aGlzKTsKLSAgICBtX3Jvb3RMYXllci0+c2V0RHJhd3NDb250ZW50KGZh
bHNlKTsKLSAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZShwYWdlU2l6ZSk7Ci0KLSAgICAvLyBUaGUg
bm9uLWNvbXBvc2l0ZWQgY29udGVudHMgYXJlIGEgY2hpbGQgb2YgdGhlIHJvb3QgbGF5ZXIuCi0g
ICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKDAs
IHRoaXMpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0RHJhd3NDb250ZW50
KHRydWUpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0Q29udGVudHNPcGFx
dWUoIW1fd2ViVmlldy0+cHJpdi0+dHJhbnNwYXJlbnQpOwotICAgIG1fbm9uQ29tcG9zaXRlZENv
bnRlbnRMYXllci0+c2V0U2l6ZShwYWdlU2l6ZSk7Ci0gICAgaWYgKGNvcmUobV93ZWJWaWV3KS0+
c2V0dGluZ3MoKS5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkpCi0gICAgICAgIG1fbm9uQ29t
cG9zaXRlZENvbnRlbnRMYXllci0+c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKHRydWUpOwotCi0jaWZu
ZGVmIE5ERUJVRwotICAgIG1fcm9vdExheWVyLT5zZXROYW1lKCJSb290IGxheWVyIik7Ci0gICAg
bV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXROYW1lKCJOb24tY29tcG9zaXRlZCBjb250
ZW50Iik7Ci0jZW5kaWYKLQotICAgIG1fcm9vdExheWVyLT5hZGRDaGlsZChtX25vbkNvbXBvc2l0
ZWRDb250ZW50TGF5ZXIuZ2V0KCkpOwotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+
c2V0TmVlZHNEaXNwbGF5KCk7Ci0KLSAgICAvLyBUaGUgY3JlYXRpb24gb2YgdGhlIFRleHR1cmVN
YXBwZXIgbmVlZHMgYW4gYWN0aXZlIE9wZW5HTCBjb250ZXh0LgotICAgIEdMQ29udGV4dCogY29u
dGV4dCA9IG1fcmVkaXJlY3RlZFdpbmRvdy0+Y29udGV4dCgpOwotICAgIGNvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpOwotCi0gICAgbV90ZXh0dXJlTWFwcGVyID0gVGV4dHVyZU1hcHBlckdM
OjpjcmVhdGUoKTsKLSAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1cmVN
YXBwZXIuZ2V0KCkpLT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcodHJ1ZSk7Ci0g
ICAgdG9UZXh0dXJlTWFwcGVyTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5zZXRUZXh0dXJlTWFw
cGVyKG1fdGV4dHVyZU1hcHBlci5nZXQoKSk7Ci0KLSAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsK
LX0KLQotQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6On5BY2NlbGVyYXRlZENvbXBvc2l0
aW5nQ29udGV4dCgpCi17Ci0gICAgc3RvcEFueVBlbmRpbmdMYXllckZsdXNoKCk7Ci19Ci0KLXZv
aWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnN0b3BBbnlQZW5kaW5nTGF5ZXJGbHVz
aCgpCi17Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hUaW1lckNhbGxiYWNrSWQpCi0gICAgICAgIHJl
dHVybjsKLSAgICBnX3NvdXJjZV9yZW1vdmUobV9sYXllckZsdXNoVGltZXJDYWxsYmFja0lkKTsK
LSAgICBtX2xheWVyRmx1c2hUaW1lckNhbGxiYWNrSWQgPSAwOwotfQotCi1ib29sIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjplbmFibGVkKCkKLXsKLSAgICByZXR1cm4gbV9yZWRpcmVj
dGVkV2luZG93ICYmIG1fcm9vdExheWVyICYmIG1fdGV4dHVyZU1hcHBlcjsKLX0KLQotYm9vbCBB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6cmVuZGVyTGF5ZXJzVG9XaW5kb3coY2Fpcm9f
dCogY3IsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQotewotICAgIG1fcmVkcmF3UGVuZGluZ1Rp
bWUgPSAwOwotCi0gICAgaWYgKCFlbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGNhaXJvX3N1cmZhY2VfdCogd2luZG93U3VyZmFjZSA9IG1fcmVkaXJlY3RlZFdpbmRvdy0+
Y2Fpcm9TdXJmYWNlRm9yV2lkZ2V0KEdUS19XSURHRVQobV93ZWJWaWV3KSk7Ci0gICAgaWYgKCF3
aW5kb3dTdXJmYWNlKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGNhaXJvX3JlY3Rhbmds
ZShjciwgY2xpcFJlY3QueCgpLCBjbGlwUmVjdC55KCksIGNsaXBSZWN0LndpZHRoKCksIGNsaXBS
ZWN0LmhlaWdodCgpKTsKLSAgICBjYWlyb19zZXRfc291cmNlX3N1cmZhY2UoY3IsIHdpbmRvd1N1
cmZhY2UsIDAsIDApOwotICAgIGNhaXJvX3NldF9vcGVyYXRvcihjciwgQ0FJUk9fT1BFUkFUT1Jf
U09VUkNFKTsKLSAgICBjYWlyb19maWxsKGNyKTsKLQotICAgIGlmICghbV9sYXllckZsdXNoVGlt
ZXJDYWxsYmFja0lkICYmICh0b1RleHR1cmVNYXBwZXJMYXllcihtX3Jvb3RMYXllci5nZXQoKSkt
PmRlc2NlbmRhbnRzT3JTZWxmSGF2ZVJ1bm5pbmdBbmltYXRpb25zKCkgfHwgbV9uZWVkc0V4dHJh
Rmx1c2gpKSB7Ci0gICAgICAgIG1fbmVlZHNFeHRyYUZsdXNoID0gZmFsc2U7Ci0gICAgICAgIGRv
dWJsZSBuZXh0Rmx1c2ggPSBzdGQ6Om1heCgoMSAvIGdGcmFtZXNQZXJTZWNvbmQpIC0gKGN1cnJl
bnRUaW1lKCkgLSBtX2xhc3RGbHVzaFRpbWUpLCAwLjApOwotICAgICAgICBtX2xheWVyRmx1c2hU
aW1lckNhbGxiYWNrSWQgPSBnX3RpbWVvdXRfYWRkX2Z1bGwoR0RLX1BSSU9SSVRZX0VWRU5UUywg
MTAwMCAqIG5leHRGbHVzaCwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4obGF5ZXJGbHVz
aFRpbWVyRmlyZWRDYWxsYmFjayksIHRoaXMsIDApOwotICAgICAgICBnX3NvdXJjZV9zZXRfbmFt
ZV9ieV9pZChtX2xheWVyRmx1c2hUaW1lckNhbGxiYWNrSWQsICJbV2ViS2l0XSBsYXllckZsdXNo
VGltZXJGaXJlZENhbGxiYWNrIik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLUdM
Q29udGV4dCogQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnByZXBhcmVGb3JSZW5kZXJp
bmcoKQotewotICAgIGlmICghZW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEdM
Q29udGV4dCogY29udGV4dCA9IG1fcmVkaXJlY3RlZFdpbmRvdy0+Y29udGV4dCgpOwotICAgIGlm
ICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoIWNvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBjb250ZXh0
OwotfQotCi12b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpjb21wb3NpdGVMYXll
cnNUb0NvbnRleHQoQ29tcG9zaXRlUHVycG9zZSBwdXJwb3NlKQotewotICAgIEdMQ29udGV4dCog
Y29udGV4dCA9IHByZXBhcmVGb3JSZW5kZXJpbmcoKTsKLSAgICBpZiAoIWNvbnRleHQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGNvbnN0IEludFNpemUmIHdpbmRvd1NpemUgPSBtX3JlZGlyZWN0
ZWRXaW5kb3ctPnNpemUoKTsKLSAgICBnbFZpZXdwb3J0KDAsIDAsIHdpbmRvd1NpemUud2lkdGgo
KSwgd2luZG93U2l6ZS5oZWlnaHQoKSk7Ci0KLSAgICBpZiAocHVycG9zZSA9PSBGb3JSZXNpemUp
IHsKLSAgICAgICAgZ2xDbGVhckNvbG9yKDEsIDEsIDEsIDApOwotICAgICAgICBnbENsZWFyKEdM
X0NPTE9SX0JVRkZFUl9CSVQpOwotICAgIH0KLQotICAgIG1fdGV4dHVyZU1hcHBlci0+YmVnaW5Q
YWludGluZygpOwotICAgIHRvVGV4dHVyZU1hcHBlckxheWVyKG1fcm9vdExheWVyLmdldCgpKS0+
cGFpbnQoKTsKLSAgICBtX2Zwc0NvdW50ZXIudXBkYXRlRlBTQW5kRGlzcGxheShtX3RleHR1cmVN
YXBwZXIuZ2V0KCkpOwotICAgIG1fdGV4dHVyZU1hcHBlci0+ZW5kUGFpbnRpbmcoKTsKLQotICAg
IGNvbnRleHQtPnN3YXBCdWZmZXJzKCk7Ci19Ci0KLXZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0NvbnRleHQ6OmNsZWFyRXZlcnl3aGVyZSgpCi17Ci0gICAgR0xDb250ZXh0KiBjb250ZXh0ID0g
cHJlcGFyZUZvclJlbmRlcmluZygpOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgY29uc3QgSW50U2l6ZSYgd2luZG93U2l6ZSA9IG1fcmVkaXJlY3RlZFdpbmRvdy0+
c2l6ZSgpOwotICAgIGdsVmlld3BvcnQoMCwgMCwgd2luZG93U2l6ZS53aWR0aCgpLCB3aW5kb3dT
aXplLmhlaWdodCgpKTsKLSAgICBnbENsZWFyQ29sb3IoMSwgMSwgMSwgMSk7Ci0gICAgZ2xDbGVh
cihHTF9DT0xPUl9CVUZGRVJfQklUKTsKLQotICAgIGNvbnRleHQtPnN3YXBCdWZmZXJzKCk7Ci0K
LSAgICAvLyBGSVhNRTogSXQgc2VlbXMgdGhhdCB3aGVuIHVzaW5nIGRvdWJsZS1idWZmZXJpbmcg
KGFuZCBvbiBzb21lIGRyaXZlcnMgc2luZ2xlLWJ1ZmZlcmluZykKLSAgICAvLyBhbmQgWENvbXBv
c2l0ZSB3aW5kb3cgcmVkaXJlY3Rpb24sIHR3byBzd2FwIGJ1ZmZlcnMgYXJlIHJlcXVpcmVkIHRv
IGZvcmNlIHRoZSBwaXhtYXAKLSAgICAvLyB0byB1cGRhdGUuIFRoaXMgaXNuJ3QgYSBwcm9ibGVt
IGR1cmluZyBhbmltYXRpb25zLCBiZWNhdXNlIHN3YXBCdWZmZXIgaXMgY29udGludW91c2x5Ci0g
ICAgLy8gY2FsbGVkLiBGb3Igbm9uLWFuaW1hdGlvbiBzaXR1YXRpb25zIHdlIHVzZSB0aGlzIHRl
cnJpYmxlIGhhY2sgdW50aWwgd2UgY2FuIGdldCB0byB0aGUKLSAgICAvLyBib3R0b20gb2YgdGhl
IGlzc3VlLgotICAgIGlmICghdG9UZXh0dXJlTWFwcGVyTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkp
LT5kZXNjZW5kYW50c09yU2VsZkhhdmVSdW5uaW5nQW5pbWF0aW9ucygpKSB7Ci0gICAgICAgIGNv
bnRleHQtPnN3YXBCdWZmZXJzKCk7Ci0gICAgICAgIGNvbnRleHQtPnN3YXBCdWZmZXJzKCk7Ci0g
ICAgfQotfQotCi12b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzZXRSb290Q29t
cG9zaXRpbmdMYXllcihHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQotewotICAgIC8vIENs
ZWFyaW5nIGV2ZXJ5d2hlcmUgd2hlbiB0dXJuaW5nIG9uIG9yIG9mZiB0aGUgbGF5ZXIgdHJlZSBw
cmV2ZW50cyB1cyBmcm9tIGZsYXNoaW5nCi0gICAgLy8gb2xkIGNvbnRlbnQgYmVmb3JlIHRoZSBm
aXJzdCBmbHVzaC4KLSAgICBjbGVhckV2ZXJ5d2hlcmUoKTsKLQotICAgIGlmICghZ3JhcGhpY3NM
YXllcikgewotICAgICAgICBzdG9wQW55UGVuZGluZ0xheWVyRmx1c2goKTsKLQotICAgICAgICAv
LyBTaHJpbmsgdGhlIG9mZnNjcmVlbiB3aW5kb3cgdG8gc2F2ZSBtZW1vcnkgd2hpbGUgYWNjZWxl
cmF0ZWQgY29tcG9zaXRpbmcgaXMgdHVybmVkIG9mZi4KLSAgICAgICAgaWYgKG1fcmVkaXJlY3Rl
ZFdpbmRvdykKLSAgICAgICAgICAgIG1fcmVkaXJlY3RlZFdpbmRvdy0+cmVzaXplKEludFNpemUo
MSwgMSkpOwotICAgICAgICBtX3Jvb3RMYXllciA9IG51bGxwdHI7Ci0gICAgICAgIG1fbm9uQ29t
cG9zaXRlZENvbnRlbnRMYXllciA9IG51bGxwdHI7Ci0gICAgICAgIG1fdGV4dHVyZU1hcHBlciA9
IG51bGxwdHI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBBZGQgdGhlIGFjY2Vs
ZXJhdGVkIGxheWVyIHRyZWUgaGllcmFyY2h5LgotICAgIGluaXRpYWxpemUoKTsKLSAgICBpZiAo
IW1fcmVkaXJlY3RlZFdpbmRvdykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9ub25Db21wb3Np
dGVkQ29udGVudExheWVyLT5yZW1vdmVBbGxDaGlsZHJlbigpOwotICAgIG1fbm9uQ29tcG9zaXRl
ZENvbnRlbnRMYXllci0+YWRkQ2hpbGQoZ3JhcGhpY3NMYXllcik7Ci0KLSAgICBzdG9wQW55UGVu
ZGluZ0xheWVyRmx1c2goKTsKLQotICAgIC8vIEZJWE1FOiBUd28gZmx1c2hlcyBzZWVtIG5lY2Vz
c2FyeSB0byBnZXQgdGhlIHByb3BlciByZW5kZXJpbmcgaW4gc29tZSBjYXNlcy4gSXQncyB1bmNs
ZWFyCi0gICAgLy8gaWYgdGhpcyBpcyBhIGJ1ZyB3aXRoIHRoZSBSZWRpcmVjdGVkWENvbXBvc2l0
ZSB3aW5kb3cgb3Igd2l0aCB0aGlzIGNsYXNzLgotICAgIG1fbmVlZHNFeHRyYUZsdXNoID0gdHJ1
ZTsKLSAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKLQotICAgIG1fbGF5ZXJGbHVzaFRpbWVyQ2Fs
bGJhY2tJZCA9IGdfdGltZW91dF9hZGRfZnVsbChHREtfUFJJT1JJVFlfRVZFTlRTLCA1MDAsIHJl
aW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KGxheWVyRmx1c2hUaW1lckZpcmVkQ2FsbGJhY2sp
LCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9zZXRfbmFtZV9ieV9pZChtX2xheWVyRmx1c2hUaW1l
ckNhbGxiYWNrSWQsICJbV2ViS2l0XSBsYXllckZsdXNoVGltZXJGaXJlZENhbGxiYWNrIik7Ci19
Ci0KLXZvaWQgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnNldE5vbkNvbXBvc2l0ZWRD
b250ZW50c05lZWREaXNwbGF5KGNvbnN0IEludFJlY3QmIHJlY3QpCi17Ci0gICAgaWYgKCFtX3Jv
b3RMYXllcikKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChyZWN0LmlzRW1wdHkoKSkgewotICAg
ICAgICBtX3Jvb3RMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJl
Y3QocmVjdCk7Ci0gICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Ci19Ci0KLXZvaWQgQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0NvbnRleHQ6OnJlc2l6ZVJvb3RMYXllcihjb25zdCBJbnRTaXplJiBuZXdT
aXplKQotewotICAgIGlmICghZW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAo
bV9yb290TGF5ZXItPnNpemUoKSA9PSBuZXdTaXplKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X3JlZGlyZWN0ZWRXaW5kb3ctPnJlc2l6ZShuZXdTaXplKTsKLSAgICBtX3Jvb3RMYXllci0+c2V0
U2l6ZShuZXdTaXplKTsKLQotICAgIC8vIElmIHRoZSBuZXdTaXplIGV4cG9zZXMgbmV3IGFyZWFz
IG9mIHRoZSBub24tY29tcG9zaXRlZCBjb250ZW50IGEgc2V0TmVlZHNEaXNwbGF5IGlzIG5lZWRl
ZAotICAgIC8vIGZvciB0aG9zZSBuZXdseSBleHBvc2VkIGFyZWFzLgotICAgIEZsb2F0U2l6ZSBv
bGRTaXplID0gbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zaXplKCk7Ci0gICAgbV9ub25D
b21wb3NpdGVkQ29udGVudExheWVyLT5zZXRTaXplKG5ld1NpemUpOwotCi0gICAgaWYgKG5ld1Np
emUud2lkdGgoKSA+IG9sZFNpemUud2lkdGgoKSkgewotICAgICAgICBmbG9hdCBoZWlnaHQgPSBz
dGQ6Om1pbihzdGF0aWNfY2FzdDxmbG9hdD4obmV3U2l6ZS5oZWlnaHQoKSksIG9sZFNpemUuaGVp
Z2h0KCkpOwotICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnNldE5lZWRzRGlz
cGxheUluUmVjdChGbG9hdFJlY3Qob2xkU2l6ZS53aWR0aCgpLCAwLCBuZXdTaXplLndpZHRoKCkg
LSBvbGRTaXplLndpZHRoKCksIGhlaWdodCkpOwotICAgIH0KLQotICAgIGlmIChuZXdTaXplLmhl
aWdodCgpID4gb2xkU2l6ZS5oZWlnaHQoKSkKLSAgICAgICAgbV9ub25Db21wb3NpdGVkQ29udGVu
dExheWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QoRmxvYXRSZWN0KDAsIG9sZFNpemUuaGVpZ2h0
KCksIG5ld1NpemUud2lkdGgoKSwgbmV3U2l6ZS5oZWlnaHQoKSAtIG9sZFNpemUuaGVpZ2h0KCkp
KTsKLQotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmVlZHNEaXNwbGF5SW5S
ZWN0KEludFJlY3QoSW50UG9pbnQoKSwgbmV3U2l6ZSkpOwotICAgIGNvbXBvc2l0ZUxheWVyc1Rv
Q29udGV4dChGb3JSZXNpemUpOwotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwotfQotCi12b2lk
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpzY3JvbGxOb25Db21wb3NpdGVkQ29udGVu
dHMoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgLyogc2Nyb2xsT2Zm
c2V0ICovKQotewotICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c2V0TmVlZHNEaXNw
bGF5SW5SZWN0KHNjcm9sbFJlY3QpOwotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwotfQotCi1n
Ym9vbGVhbiBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bGF5ZXJGbHVzaFRpbWVyRmly
ZWRDYWxsYmFjayhBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCogY29udGV4dCkKLXsKLSAg
ICBjb250ZXh0LT5sYXllckZsdXNoVGltZXJGaXJlZCgpOwotICAgIHJldHVybiBGQUxTRTsKLX0K
LQotdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6c2NoZWR1bGVMYXllckZsdXNo
KCkKLXsKLSAgICBpZiAoIWVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1f
bGF5ZXJGbHVzaFRpbWVyQ2FsbGJhY2tJZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gV2Ug
dXNlIGEgR0xpYiB0aW1lciBiZWNhdXNlIG90aGVyd2lzZSBHVEsrIGV2ZW50IGhhbmRsaW5nIGR1
cmluZyBkcmFnZ2luZyBjYW4KLSAgICAvLyBzdGFydmUgV2ViQ29yZSB0aW1lcnMsIHdoaWNoIGhh
dmUgYSBsb3dlciBwcmlvcml0eS4KLSAgICBkb3VibGUgbmV4dEZsdXNoID0gc3RkOjptYXgoZ1Nj
aGVkdWxlRGVsYXkgLSAoY3VycmVudFRpbWUoKSAtIG1fbGFzdEZsdXNoVGltZSksIDAuMCk7Ci0g
ICAgbV9sYXllckZsdXNoVGltZXJDYWxsYmFja0lkID0gZ190aW1lb3V0X2FkZF9mdWxsKEdES19Q
UklPUklUWV9FVkVOVFMsIG5leHRGbHVzaCAqIDEwMDAsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJj
ZUZ1bmM+KGxheWVyRmx1c2hUaW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKLSAgICBnX3Nv
dXJjZV9zZXRfbmFtZV9ieV9pZChtX2xheWVyRmx1c2hUaW1lckNhbGxiYWNrSWQsICJbV2ViS2l0
XSBsYXllckZsdXNoVGltZXJGaXJlZENhbGxiYWNrIik7Ci19Ci0KLWJvb2wgQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQ6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCi17Ci0gICAgbV9y
b290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKLSAgICBt
X25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkoKTsKLSAgICByZXR1cm4gY29yZShtX3dlYlZpZXcpLT5tYWluRnJhbWUoKS52aWV3
KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwotfQotCi12b2lk
IEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OjpmbHVzaEFuZFJlbmRlckxheWVycygpCi17
Ci0gICAgaWYgKCFlbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEZyYW1lJiBmcmFt
ZSA9IGNvcmUobV93ZWJWaWV3KS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZS5jb250ZW50
UmVuZGVyZXIoKSB8fCAhZnJhbWUudmlldygpKQotICAgICAgICByZXR1cm47Ci0gICAgZnJhbWUu
dmlldygpLT51cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7Ci0KLSAgICBp
ZiAoIWVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgR0xDb250ZXh0KiBjb250ZXh0
ID0gbV9yZWRpcmVjdGVkV2luZG93LT5jb250ZXh0KCk7Ci0gICAgaWYgKGNvbnRleHQgJiYgIWNv
bnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAo
IWZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2xh
c3RGbHVzaFRpbWUgPSBjdXJyZW50VGltZSgpOwotICAgIGNvbXBvc2l0ZUxheWVyc1RvQ29udGV4
dCgpOwotCi0gICAgLy8gSWYgaXQncyBiZWVuIGEgbG9uZyB0aW1lIHNpbmNlIHdlJ3ZlIGFjdHVh
bGx5IHBhaW50ZWQsIHdoaWNoIG1lYW5zIHRoYXQgZXZlbnRzIG1pZ2h0Ci0gICAgLy8gYmUgc3Rh
cnZpbmcgdGhlIG1haW4gbG9vcCwgd2Ugc2hvdWxkIGZvcmNlIGEgZHJhdyBub3cuIFRoaXMgc2Vl
bXMgdG8gcHJldmVudCBkaXNwbGF5Ci0gICAgLy8gbGFnIG9uIGh0dHA6Ly8yMDEyLmJlZXJjYW1w
LmNvbS4KLSAgICBpZiAobV9yZWRyYXdQZW5kaW5nVGltZSAmJiBjdXJyZW50VGltZSgpIC0gbV9y
ZWRyYXdQZW5kaW5nVGltZSA+IGdTY2hlZHVsZURlbGF5KSB7Ci0gICAgICAgIGd0a193aWRnZXRf
cXVldWVfZHJhdyhHVEtfV0lER0VUKG1fd2ViVmlldykpOwotICAgICAgICBnZGtfd2luZG93X3By
b2Nlc3NfdXBkYXRlcyhndGtfd2lkZ2V0X2dldF93aW5kb3coR1RLX1dJREdFVChtX3dlYlZpZXcp
KSwgRkFMU0UpOwotICAgIH0gZWxzZSBpZiAoIW1fcmVkcmF3UGVuZGluZ1RpbWUpCi0gICAgICAg
IG1fcmVkcmF3UGVuZGluZ1RpbWUgPSBjdXJyZW50VGltZSgpOwotfQotCi12b2lkIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0OjpsYXllckZsdXNoVGltZXJGaXJlZCgpCi17Ci0gICAgbV9s
YXllckZsdXNoVGltZXJDYWxsYmFja0lkID0gMDsKLSAgICBmbHVzaEFuZFJlbmRlckxheWVycygp
OwotfQotCi12b2lkIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0Ojpub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgLyogdGltZSAqLykKLXsKLQot
fQotdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6bm90aWZ5Rmx1c2hSZXF1aXJl
ZChjb25zdCBHcmFwaGljc0xheWVyKikKLXsKLQotfQotCi12b2lkIEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9h
dFJlY3QmIHJlY3RUb1BhaW50KQotewotICAgIGNvbnRleHQuc2F2ZSgpOwotICAgIGNvbnRleHQu
Y2xpcChyZWN0VG9QYWludCk7Ci0gICAgY29yZShtX3dlYlZpZXcpLT5tYWluRnJhbWUoKS52aWV3
KCktPnBhaW50KCZjb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0KHJlY3RUb1BhaW50KSk7Ci0gICAg
Y29udGV4dC5yZXN0b3JlKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50R3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDI4NTgyMS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9CYXR0ZXJ5Q2xpZW50R3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkJhdHRlcnlDbGllbnRHdGsuaCIKLQotI2lmIEVOQUJMRShCQVRURVJZ
X1NUQVRVUykKLQotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1CYXR0ZXJ5Q2xpZW50R3RrOjpCYXR0ZXJ5Q2xpZW50R3RrKCkKLXsKLX0KLQotdm9p
ZCBCYXR0ZXJ5Q2xpZW50R3RrOjpzdGFydFVwZGF0aW5nKCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCi12b2lkIEJhdHRlcnlDbGllbnRHdGs6OnN0b3BVcGRhdGluZygpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBCYXR0ZXJ5Q2xpZW50R3RrOjpiYXR0ZXJ5Q29u
dHJvbGxlckRlc3Ryb3llZCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50R3Rr
LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50R3RrLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3ZDM3ZmYuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQmF0dGVyeUNsaWVudEd0ay5oCisrKyAvZGV2
L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEg
Uy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
LwotCi0jaWZuZGVmIEJhdHRlcnlDbGllbnRHdGtfaAotI2RlZmluZSBCYXR0ZXJ5Q2xpZW50R3Rr
X2gKLQotI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKLQotI2luY2x1ZGUgIkJhdHRlcnlDbGll
bnQuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIEJhdHRlcnlDbGllbnRHdGsgOiBw
dWJsaWMgV2ViQ29yZTo6QmF0dGVyeUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgQmF0dGVyeUNsaWVu
dEd0aygpOwotCi0gICAgLy8gV2ViQ29yZTo6QmF0dGVyeUNsaWVudAotICAgIHZpcnR1YWwgdm9p
ZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwotICAg
IHZpcnR1YWwgdm9pZCBiYXR0ZXJ5Q29udHJvbGxlckRlc3Ryb3llZCgpOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCi0KLSNl
bmRpZiAvLyBCYXR0ZXJ5Q2xpZW50R3RrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3Zjc1ZTI0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDM0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJl
eXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlz
dGlhbkBpbWVuZGlvLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBOdWFudGkgTHRkLgotICog
Q29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Ci0gKiBDb3B5cmln
aHQgKEMpIDIwMDggR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KLSAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy4gTC4KLSAqCi0gKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDaHJvbWVD
bGllbnRHdGsuaCIKLQotI2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkR1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oIgotI2luY2x1ZGUgIkVkaXRvci5oIgotI2luY2x1ZGUgIkVsZW1lbnQu
aCIKLSNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgotI2luY2x1ZGUgIkZpbGVJY29uTG9hZGVyLmgi
Ci0jaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1
ZGUgIkZvY3VzQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKLSNp
bmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1
ZGUgIkd0a1V0aWxpdGllcy5oIgotI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKLSNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCi0jaW5jbHVkZSAiSWNv
bi5oIgotI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJJbnRSZWN0
LmgiCi0jaW5jbHVkZSAiTWFpbkZyYW1lLmgiCi0jaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbi5o
IgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50
LmgiCi0jaW5jbHVkZSAiUG9wdXBNZW51R3RrLmgiCi0jaW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIK
LSNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnVHdGsuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgotI2luY2x1ZGUgIlVSTC5oIgotI2luY2x1ZGUgIldlYktpdERPTUhUTUxFbGVtZW50UHJp
dmF0ZS5oIgotI2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCi0jaW5jbHVkZSAid2Via2l0Zmls
ZWNob29zZXJyZXF1ZXN0cHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9s
aWN5ZGVjaXNpb24uaCIKLSNpbmNsdWRlICJ3ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9u
cHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0LmgiCi0jaW5jbHVkZSAi
d2Via2l0c2VjdXJpdHlvcmlnaW5wcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0dmlld3BvcnRh
dHRyaWJ1dGVzcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgot
I2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0
ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYndpbmRvd2ZlYXR1cmVzcHJpdmF0ZS5oIgotI2luY2x1
ZGUgPGdkay9nZGsuaD4KLSNpbmNsdWRlIDxnZGsvZ2Rra2V5c3ltcy5oPgotI2luY2x1ZGUgPGds
aWIuaD4KLSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPGd0ay9ndGsuaD4K
LSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KLQotI2lmIFBMQVRGT1JNKFgxMSkgJiYgZGVmaW5lZChHREtfV0lORE9XSU5HX1gx
MSkKLSNkZWZpbmUgRm9udCBYRm9udAotI2RlZmluZSBDdXJzb3IgWEN1cnNvcgotI2RlZmluZSBS
ZWdpb24gWFJlZ2lvbgotI2luY2x1ZGUgPGdkay9nZGt4Lmg+Ci0jdW5kZWYgRm9udAotI3VuZGVm
IEN1cnNvcgotI3VuZGVmIFJlZ2lvbgotI3VuZGVmIE5vbmUKLSN1bmRlZiBTdGF0dXMKLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSNpbmNsdWRlICJEYXRhYmFzZU1hbmFnZXIu
aCIKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oWDExKSAmJiBkZWZpbmVkKEdES19XSU5ET1dJTkdf
WDExKQotI2luY2x1ZGUgIldpZGdldEJhY2tpbmdTdG9yZUd0a1gxMS5oIgotI2VuZGlmCi0jaW5j
bHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdGF0aWMgUGFzc093blB0cjxXaWRnZXRCYWNr
aW5nU3RvcmU+IGNyZWF0ZUJhY2tpbmdTdG9yZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKLXsKLSNpZiBQTEFURk9STShYMTEpICYmIGRlZmluZWQoR0RLX1dJTkRPV0lO
R19YMTEpCi0gICAgR2RrRGlzcGxheSogZGlzcGxheSA9IGdka19kaXNwbGF5X21hbmFnZXJfZ2V0
X2RlZmF1bHRfZGlzcGxheShnZGtfZGlzcGxheV9tYW5hZ2VyX2dldCgpKTsKLSAgICBpZiAoR0RL
X0lTX1gxMV9ESVNQTEFZKGRpc3BsYXkpKQotICAgICAgICByZXR1cm4gV2ViQ29yZTo6V2lkZ2V0
QmFja2luZ1N0b3JlR3RrWDExOjpjcmVhdGUod2lkZ2V0LCBzaXplKTsKLSNlbmRpZgotICAgIHJl
dHVybiBXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmVDYWlybzo6Y3JlYXRlKHdpZGdldCwgc2l6
ZSk7Ci19Ci0KLUNocm9tZUNsaWVudDo6Q2hyb21lQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCi0gICAgOiBtX3dlYlZpZXcod2ViVmlldykKLSAgICAsIG1fYWRqdXN0bWVudFdhdGNoZXIo
d2ViVmlldykKLSAgICAsIG1fY2xvc2VTb29uVGltZXIoMCkKLSAgICAsIG1fZGlzcGxheVRpbWVy
KHRoaXMsICZDaHJvbWVDbGllbnQ6OnBhaW50KQotICAgICwgbV9mb3JjZVBhaW50KGZhbHNlKQot
ICAgICwgbV9sYXN0RGlzcGxheVRpbWUoMCkKLSAgICAsIG1fcmVwYWludFNvb25Tb3VyY2VJZCgw
KQotewotICAgIEFTU0VSVChtX3dlYlZpZXcpOwotfQotCi12b2lkIENocm9tZUNsaWVudDo6Y2hy
b21lRGVzdHJveWVkKCkKLXsKLSAgICBpZiAobV9jbG9zZVNvb25UaW1lcikKLSAgICAgICAgZ19z
b3VyY2VfcmVtb3ZlKG1fY2xvc2VTb29uVGltZXIpOwotCi0gICAgaWYgKG1fcmVwYWludFNvb25T
b3VyY2VJZCkKLSAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fcmVwYWludFNvb25Tb3VyY2VJZCk7
Ci0KLSAgICBkZWxldGUgdGhpczsKLX0KLQotRmxvYXRSZWN0IENocm9tZUNsaWVudDo6d2luZG93
UmVjdCgpCi17Ci0gICAgR3RrV2lkZ2V0KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZl
bChHVEtfV0lER0VUKG1fd2ViVmlldykpOwotICAgIGlmICh3aWRnZXRJc09uc2NyZWVuVG9wbGV2
ZWxXaW5kb3cod2luZG93KSkgewotICAgICAgICBnaW50IGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdo
dDsKLSAgICAgICAgZ3RrX3dpbmRvd19nZXRfcG9zaXRpb24oR1RLX1dJTkRPVyh3aW5kb3cpLCAm
bGVmdCwgJnRvcCk7Ci0gICAgICAgIGd0a193aW5kb3dfZ2V0X3NpemUoR1RLX1dJTkRPVyh3aW5k
b3cpLCAmd2lkdGgsICZoZWlnaHQpOwotICAgICAgICByZXR1cm4gSW50UmVjdChsZWZ0LCB0b3As
IHdpZHRoLCBoZWlnaHQpOwotICAgIH0KLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7Ci19Ci0KLXZv
aWQgQ2hyb21lQ2xpZW50OjpzZXRXaW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKLXsK
LSAgICBJbnRSZWN0IGludHJlY3QgPSBJbnRSZWN0KHJlY3QpOwotICAgIFdlYktpdFdlYldpbmRv
d0ZlYXR1cmVzKiB3ZWJXaW5kb3dGZWF0dXJlcyA9IHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93
X2ZlYXR1cmVzKG1fd2ViVmlldyk7Ci0KLSAgICBnX29iamVjdF9zZXQod2ViV2luZG93RmVhdHVy
ZXMsCi0gICAgICAgICAgICAgICAgICJ4IiwgaW50cmVjdC54KCksCi0gICAgICAgICAgICAgICAg
ICJ5IiwgaW50cmVjdC55KCksCi0gICAgICAgICAgICAgICAgICJ3aWR0aCIsIGludHJlY3Qud2lk
dGgoKSwKLSAgICAgICAgICAgICAgICAgImhlaWdodCIsIGludHJlY3QuaGVpZ2h0KCksCi0gICAg
ICAgICAgICAgICAgIE5VTEwpOwotCi0gICAgZ2Jvb2xlYW4gYXV0b1Jlc2l6ZVdpbmRvdzsKLSAg
ICBXZWJLaXRXZWJTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRp
bmdzKG1fd2ViVmlldyk7Ci0gICAgZ19vYmplY3RfZ2V0KHNldHRpbmdzLCAiYXV0by1yZXNpemUt
d2luZG93IiwgJmF1dG9SZXNpemVXaW5kb3csIE5VTEwpOwotCi0gICAgaWYgKCFhdXRvUmVzaXpl
V2luZG93KQotICAgICAgICByZXR1cm47Ci0KLSAgICBHdGtXaWRnZXQqIHdpbmRvdyA9IGd0a193
aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQobV93ZWJWaWV3KSk7Ci0gICAgaWYgKHdpZGdl
dElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyh3aW5kb3cpKSB7Ci0gICAgICAgIGd0a193aW5kb3df
bW92ZShHVEtfV0lORE9XKHdpbmRvdyksIGludHJlY3QueCgpLCBpbnRyZWN0LnkoKSk7Ci0gICAg
ICAgIGd0a193aW5kb3dfcmVzaXplKEdUS19XSU5ET1cod2luZG93KSwgaW50cmVjdC53aWR0aCgp
LCBpbnRyZWN0LmhlaWdodCgpKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBJbnRSZWN0IGdldFdlYlZp
ZXdSZWN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgR3RrQWxsb2NhdGlvbiBhbGxv
Y2F0aW9uOwotICAgIGd0a193aWRnZXRfZ2V0X2FsbG9jYXRpb24oR1RLX1dJREdFVCh3ZWJWaWV3
KSwgJmFsbG9jYXRpb24pOwotICAgIHJldHVybiBJbnRSZWN0KGFsbG9jYXRpb24ueCwgYWxsb2Nh
dGlvbi55LCBhbGxvY2F0aW9uLndpZHRoLCBhbGxvY2F0aW9uLmhlaWdodCk7Ci19Ci0KLUZsb2F0
UmVjdCBDaHJvbWVDbGllbnQ6OnBhZ2VSZWN0KCkKLXsKLSAgICByZXR1cm4gZ2V0V2ViVmlld1Jl
Y3QobV93ZWJWaWV3KTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OmZvY3VzKCkKLXsKLSAgICBn
dGtfd2lkZ2V0X2dyYWJfZm9jdXMoR1RLX1dJREdFVChtX3dlYlZpZXcpKTsKLX0KLQotdm9pZCBD
aHJvbWVDbGllbnQ6OnVuZm9jdXMoKQotewotICAgIEd0a1dpZGdldCogd2luZG93ID0gZ3RrX3dp
ZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChtX3dlYlZpZXcpKTsKLSAgICBpZiAod2lkZ2V0
SXNPbnNjcmVlblRvcGxldmVsV2luZG93KHdpbmRvdykpCi0gICAgICAgIGd0a193aW5kb3dfc2V0
X2ZvY3VzKEdUS19XSU5ET1cod2luZG93KSwgTlVMTCk7Ci19Ci0KLVBhZ2UqIENocm9tZUNsaWVu
dDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNv
bnN0IFdpbmRvd0ZlYXR1cmVzJiBjb3JlRmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
KQotewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSAwOwotCi0jaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQo
KS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5kb2N1
bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7Ci0jZW5kaWYKLQotICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJjcmVhdGUtd2ViLXZpZXciLCBraXQoZnJhbWUpLCAm
d2ViVmlldyk7Ci0KLSAgICBpZiAoIXdlYlZpZXcpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAg
R1JlZlB0cjxXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcz4gd2ViV2luZG93RmVhdHVyZXMoYWRvcHRH
UmVmKGtpdE5ldyhjb3JlRmVhdHVyZXMpKSk7Ci0gICAgZ19vYmplY3Rfc2V0KHdlYlZpZXcsICJ3
aW5kb3ctZmVhdHVyZXMiLCB3ZWJXaW5kb3dGZWF0dXJlcy5nZXQoKSwgTlVMTCk7Ci0KLSAgICBy
ZXR1cm4gY29yZSh3ZWJWaWV3KTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OnNob3coKQotewot
ICAgIHdlYmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkobV93ZWJWaWV3KTsKLX0KLQotYm9vbCBD
aHJvbWVDbGllbnQ6OmNhblJ1bk1vZGFsKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OnJ1bk1vZGFsKCkKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENocm9tZUNsaWVudDo6c2V0VG9vbGJhcnNW
aXNpYmxlKGJvb2wgdmlzaWJsZSkKLXsKLSAgICBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyogd2Vi
V2luZG93RmVhdHVyZXMgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19mZWF0dXJlcyhtX3dl
YlZpZXcpOwotCi0gICAgZ19vYmplY3Rfc2V0KHdlYldpbmRvd0ZlYXR1cmVzLCAidG9vbGJhci12
aXNpYmxlIiwgdmlzaWJsZSwgTlVMTCk7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50Ojp0b29sYmFy
c1Zpc2libGUoKQotewotICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJXaW5kb3dGZWF0
dXJlcyA9IHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X2ZlYXR1cmVzKG1fd2ViVmlldyk7Ci0g
ICAgZ2Jvb2xlYW4gdmlzaWJsZTsKLQotICAgIGdfb2JqZWN0X2dldCh3ZWJXaW5kb3dGZWF0dXJl
cywgInRvb2xiYXItdmlzaWJsZSIsICZ2aXNpYmxlLCBOVUxMKTsKLSAgICByZXR1cm4gdmlzaWJs
ZTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OnNldFN0YXR1c2JhclZpc2libGUoYm9vbCB2aXNp
YmxlKQotewotICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJXaW5kb3dGZWF0dXJlcyA9
IHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X2ZlYXR1cmVzKG1fd2ViVmlldyk7Ci0KLSAgICBn
X29iamVjdF9zZXQod2ViV2luZG93RmVhdHVyZXMsICJzdGF0dXNiYXItdmlzaWJsZSIsIHZpc2li
bGUsIE5VTEwpOwotfQotCi1ib29sIENocm9tZUNsaWVudDo6c3RhdHVzYmFyVmlzaWJsZSgpCi17
Ci0gICAgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzID0gd2Via2l0
X3dlYl92aWV3X2dldF93aW5kb3dfZmVhdHVyZXMobV93ZWJWaWV3KTsKLSAgICBnYm9vbGVhbiB2
aXNpYmxlOwotCi0gICAgZ19vYmplY3RfZ2V0KHdlYldpbmRvd0ZlYXR1cmVzLCAic3RhdHVzYmFy
LXZpc2libGUiLCAmdmlzaWJsZSwgTlVMTCk7Ci0gICAgcmV0dXJuIHZpc2libGU7Ci19Ci0KLXZv
aWQgQ2hyb21lQ2xpZW50OjpzZXRTY3JvbGxiYXJzVmlzaWJsZShib29sIHZpc2libGUpCi17Ci0g
ICAgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzID0gd2Via2l0X3dl
Yl92aWV3X2dldF93aW5kb3dfZmVhdHVyZXMobV93ZWJWaWV3KTsKLQotICAgIGdfb2JqZWN0X3Nl
dCh3ZWJXaW5kb3dGZWF0dXJlcywgInNjcm9sbGJhci12aXNpYmxlIiwgdmlzaWJsZSwgTlVMTCk7
Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50OjpzY3JvbGxiYXJzVmlzaWJsZSgpCi17Ci0gICAgV2Vi
S2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzID0gd2Via2l0X3dlYl92aWV3
X2dldF93aW5kb3dfZmVhdHVyZXMobV93ZWJWaWV3KTsKLSAgICBnYm9vbGVhbiB2aXNpYmxlOwot
Ci0gICAgZ19vYmplY3RfZ2V0KHdlYldpbmRvd0ZlYXR1cmVzLCAic2Nyb2xsYmFyLXZpc2libGUi
LCAmdmlzaWJsZSwgTlVMTCk7Ci0gICAgcmV0dXJuIHZpc2libGU7Ci19Ci0KLXZvaWQgQ2hyb21l
Q2xpZW50OjpzZXRNZW51YmFyVmlzaWJsZShib29sIHZpc2libGUpCi17Ci0gICAgV2ViS2l0V2Vi
V2luZG93RmVhdHVyZXMqIHdlYldpbmRvd0ZlYXR1cmVzID0gd2Via2l0X3dlYl92aWV3X2dldF93
aW5kb3dfZmVhdHVyZXMobV93ZWJWaWV3KTsKLQotICAgIGdfb2JqZWN0X3NldCh3ZWJXaW5kb3dG
ZWF0dXJlcywgIm1lbnViYXItdmlzaWJsZSIsIHZpc2libGUsIE5VTEwpOwotfQotCi1ib29sIENo
cm9tZUNsaWVudDo6bWVudWJhclZpc2libGUoKQotewotICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1
cmVzKiB3ZWJXaW5kb3dGZWF0dXJlcyA9IHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X2ZlYXR1
cmVzKG1fd2ViVmlldyk7Ci0gICAgZ2Jvb2xlYW4gdmlzaWJsZTsKLQotICAgIGdfb2JqZWN0X2dl
dCh3ZWJXaW5kb3dGZWF0dXJlcywgIm1lbnViYXItdmlzaWJsZSIsICZ2aXNpYmxlLCBOVUxMKTsK
LSAgICByZXR1cm4gdmlzaWJsZTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OnNldFJlc2l6YWJs
ZShib29sKQotewotICAgIC8vIElnbm9yZWQgZm9yIG5vdwotfQotCi1zdGF0aWMgZ2Jvb2xlYW4g
ZW1pdENsb3NlV2ViVmlld1NpZ25hbExhdGVyKFdlYktpdFdlYlZpZXcqIHZpZXcpCi17Ci0gICAg
Z2Jvb2xlYW4gaXNIYW5kbGVkOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh2aWV3LCAiY2xv
c2Utd2ViLXZpZXciLCAmaXNIYW5kbGVkKTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLXZvaWQg
Q2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nvb24oKQotewotICAgIC8vIFdlIG1heSBub3QgaGF2
ZSBhIFdlYlZpZXcgYXMgY3JlYXRlLXdlYi12aWV3IGNhbiByZXR1cm4gTlVMTC4KLSAgICBpZiAo
IW1fd2ViVmlldykKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX2Nsb3NlU29vblRpbWVyKSAv
LyBEb24ndCBjYWxsIGNsb3NlLXdlYi12aWV3IG1vcmUgdGhhbiBvbmNlLgotICAgICAgICByZXR1
cm47Ci0KLSAgICAvLyBXZSBuZWVkIHRvIHJlbW92ZSB0aGUgcGFyZW50IFdlYlZpZXcgZnJvbSBX
ZWJWaWV3U2V0cyBoZXJlLCBiZWZvcmUgaXQgYWN0dWFsbHkKLSAgICAvLyBjbG9zZXMsIHRvIG1h
a2Ugc3VyZSB0aGF0IEphdmFTY3JpcHQgY29kZSB0aGF0IGV4ZWN1dGVzIGJlZm9yZSBpdCBjbG9z
ZXMKLSAgICAvLyBjYW4ndCBmaW5kIGl0LiBPdGhlcndpc2UsIHdpbmRvdy5vcGVuIHdpbGwgc2Vs
ZWN0IGEgY2xvc2VkIFdlYlZpZXcgaW5zdGVhZCBvZiAKLSAgICAvLyBvcGVuaW5nIGEgbmV3IG9u
ZSA8cmRhcjovL3Byb2JsZW0vMzU3MjU4NT4uCi0gICAgbV93ZWJWaWV3LT5wcml2LT5jb3JlUGFn
ZS0+c2V0R3JvdXBOYW1lKCIiKTsKLQotICAgIC8vIFdlIGFsc28gbmVlZCB0byBzdG9wIHRoZSBs
b2FkIHRvIHByZXZlbnQgZnVydGhlciBwYXJzaW5nIG9yIEphdmFTY3JpcHQgZXhlY3V0aW9uCi0g
ICAgLy8gYWZ0ZXIgdGhlIHdpbmRvdyBoYXMgdG9ybiBkb3duIDxyZGFyOi8vcHJvYmxlbS80MTYx
NjYwPi4KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nKG1fd2ViVmlldyk7Ci0KLSAg
ICAvLyBDbGllbnRzIGNvbW1vbmx5IGRlc3Ryb3kgdGhlIHdlYiB2aWV3IGR1cmluZyB0aGUgY2xv
c2Utd2ViLXZpZXcgc2lnbmFsLCBidXQgb3VyIGNhbGxlcgotICAgIC8vIG1heSBuZWVkIHRvIHNl
bmQgbW9yZSBzaWduYWxzIHRvIHRoZSB3ZWIgdmlldy4gRm9yIGluc3RhbmNlLCBpZiB0aGlzIGhh
cHBlbmVkIGluIHRoZQotICAgIC8vIG9ubG9hZCBoYW5kbGVyLCBpdCB3aWxsIG5lZWQgdG8gY2Fs
bCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVudHMuCi0gICAg
Ly8gSW5zdGVhZCBvZiBmaXJpbmcgdGhlIGNsb3NlLXdlYi12aWV3IHNpZ25hbCBub3csIGZpcmUg
aXQgYWZ0ZXIgdGhlIGNhbGxlciBmaW5pc2hlcy4KLSAgICAvLyBUaGlzIHNlZW1zIHRvIG1hdGNo
IHRoZSBNYWMvV2luZG93cyBwb3J0IGJlaGF2aW9yLgotICAgIG1fY2xvc2VTb29uVGltZXIgPSBn
X2lkbGVfYWRkX2Z1bGwoR19QUklPUklUWV9ERUZBVUxULCByZWludGVycHJldF9jYXN0PEdTb3Vy
Y2VGdW5jPihlbWl0Q2xvc2VXZWJWaWV3U2lnbmFsTGF0ZXIpLCBtX3dlYlZpZXcsIDApOwotfQot
Ci1ib29sIENocm9tZUNsaWVudDo6Y2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKQotewotICAg
IHJldHVybiBndGtfd2lkZ2V0X2dldF9jYW5fZm9jdXMoR1RLX1dJREdFVChtX3dlYlZpZXcpKTsK
LX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OnRha2VGb2N1cyhGb2N1c0RpcmVjdGlvbikKLXsKLSAg
ICB1bmZvY3VzKCk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRWxlbWVudENoYW5n
ZWQoRWxlbWVudCopCi17Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFu
Z2VkKEZyYW1lKikKLXsKLX0KLQotYm9vbCBDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xp
ZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3Nh
Z2UsIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKLXsKLSAgICByZXR1cm4gcnVuSmF2YVNjcmlwdENv
bmZpcm0oZnJhbWUsIG1lc3NhZ2UpOwotfQotCi12b2lkIENocm9tZUNsaWVudDo6YWRkTWVzc2Fn
ZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBX
VEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgLyogY29s
dW1uTnVtYmVyICovLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlSWQpCi17Ci0gICAgZ2Jvb2xl
YW4gcmV0dmFsOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJjb25zb2xl
LW1lc3NhZ2UiLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1iZXIsIHNvdXJjZUlkLnV0
ZjgoKS5kYXRhKCksICZyZXR2YWwpOwotfQotCi12b2lkIENocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIGdi
b29sZWFuIHJldHZhbDsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZWJWaWV3LCAic2Ny
aXB0LWFsZXJ0Iiwga2l0KGZyYW1lKSwgbWVzc2FnZS51dGY4KCkuZGF0YSgpLCAmcmV0dmFsKTsK
LX0KLQotYm9vbCBDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIGdib29sZWFuIHJldHZhbDsKLSAgICBn
Ym9vbGVhbiBkaWRDb25maXJtOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcs
ICJzY3JpcHQtY29uZmlybSIsIGtpdChmcmFtZSksIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSwgJmRp
ZENvbmZpcm0sICZyZXR2YWwpOwotICAgIHJldHVybiBkaWRDb25maXJtID09IFRSVUU7Ci19Ci0K
LWJvb2wgQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiBy
ZXN1bHQpCi17Ci0gICAgZ2Jvb2xlYW4gcmV0dmFsOwotICAgIGdjaGFyKiB2YWx1ZSA9IDA7Ci0g
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgInNjcmlwdC1wcm9tcHQiLCBraXQo
ZnJhbWUpLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCksIGRlZmF1bHRWYWx1ZS51dGY4KCkuZGF0YSgp
LCAmdmFsdWUsICZyZXR2YWwpOwotICAgIGlmICh2YWx1ZSkgewotICAgICAgICByZXN1bHQgPSBT
dHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICAgICAgZ19mcmVlKHZhbHVlKTsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBDaHJvbWVD
bGllbnQ6OnNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17Ci0gICAgQ1N0
cmluZyBzdHJpbmdNZXNzYWdlID0gc3RyaW5nLnV0ZjgoKTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUobV93ZWJWaWV3LCAic3RhdHVzLWJhci10ZXh0LWNoYW5nZWQiLCBzdHJpbmdNZXNzYWdl
LmRhdGEoKSk7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50OjpzaG91bGRJbnRlcnJ1cHRKYXZhU2Ny
aXB0KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
S2V5Ym9hcmRVSU1vZGUgQ2hyb21lQ2xpZW50OjprZXlib2FyZFVJTW9kZSgpCi17Ci0gICAgYm9v
bCB0YWJzVG9MaW5rcyA9IHRydWU7Ci0gICAgaWYgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
ZHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZCgpKQotICAgICAgICB0YWJzVG9MaW5rcyA9IER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpOwotCi0gICAg
cmV0dXJuIHRhYnNUb0xpbmtzID8gS2V5Ym9hcmRBY2Nlc3NUYWJzVG9MaW5rcyA6IEtleWJvYXJk
QWNjZXNzRGVmYXVsdDsKLX0KLQotSW50UmVjdCBDaHJvbWVDbGllbnQ6OndpbmRvd1Jlc2l6ZXJS
ZWN0KCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBJbnRSZWN0
KCk7Ci19Ci0KLXN0YXRpYyBnYm9vbGVhbiByZXBhaW50RXZlcnl0aGluZ1Nvb25UaW1lb3V0KENo
cm9tZUNsaWVudCogY2xpZW50KQotewotICAgIGNsaWVudC0+cGFpbnQoMCk7Ci0gICAgcmV0dXJu
IEZBTFNFOwotfQotCi1zdGF0aWMgdm9pZCBjbGlwT3V0T2xkV2lkZ2V0QXJlYShjYWlyb190KiBj
ciwgY29uc3QgSW50U2l6ZSYgb2xkU2l6ZSwgY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKLXsKLSAg
ICBjYWlyb19tb3ZlX3RvKGNyLCBvbGRTaXplLndpZHRoKCksIDApOwotICAgIGNhaXJvX2xpbmVf
dG8oY3IsIG5ld1NpemUud2lkdGgoKSwgMCk7Ci0gICAgY2Fpcm9fbGluZV90byhjciwgbmV3U2l6
ZS53aWR0aCgpLCBuZXdTaXplLmhlaWdodCgpKTsKLSAgICBjYWlyb19saW5lX3RvKGNyLCAwLCBu
ZXdTaXplLmhlaWdodCgpKTsKLSAgICBjYWlyb19saW5lX3RvKGNyLCAwLCBvbGRTaXplLmhlaWdo
dCgpKTsKLSAgICBjYWlyb19saW5lX3RvKGNyLCBvbGRTaXplLndpZHRoKCksIG9sZFNpemUuaGVp
Z2h0KCkpOwotICAgIGNhaXJvX2Nsb3NlX3BhdGgoY3IpOwotICAgIGNhaXJvX2NsaXAoY3IpOwot
fQotCi1zdGF0aWMgdm9pZCBjbGVhckV2ZXJ5d2hlcmVJbkJhY2tpbmdTdG9yZShXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBjYWlyb190KiBjcikKLXsKLSAgICAvLyBUaGUgc3RyYXRlZ3kgaGVyZSBp
cyB0byBxdWlja2x5IGRyYXcgd2hpdGUgaW50byB0aGlzIG5ldyBjYW52YXMsIHNvIHRoYXQKLSAg
ICAvLyB3aGVuIGEgdXNlciBxdWlja2x5IHJlc2l6ZXMgdGhlIFdlYlZpZXcgaW4gYW4gZW52aXJv
bm1lbnQgdGhhdCBoYXMgb3BhcXVlCi0gICAgLy8gcmVzaXppbmcgKGxpa2UgR25vbWUgU2hlbGwp
LCB0aGVyZSBhcmUgbm8gZHJhd2luZyBhcnRpZmFjdHMuCi0gICAgaWYgKCF3ZWJWaWV3LT5wcml2
LT50cmFuc3BhcmVudCkgewotICAgICAgICBjYWlyb19zZXRfc291cmNlX3JnYihjciwgMSwgMSwg
MSk7Ci0gICAgICAgIGNhaXJvX3NldF9vcGVyYXRvcihjciwgQ0FJUk9fT1BFUkFUT1JfU09VUkNF
KTsKLSAgICB9IGVsc2UKLSAgICAgICAgY2Fpcm9fc2V0X29wZXJhdG9yKGNyLCBDQUlST19PUEVS
QVRPUl9DTEVBUik7Ci0gICAgY2Fpcm9fcGFpbnQoY3IpOwotfQotCi12b2lkIENocm9tZUNsaWVu
dDo6d2lkZ2V0U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYgb2xkV2lkZ2V0U2l6ZSwgSW50U2l6
ZSBuZXdTaXplKQotewotICAgIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KiBjb21wb3Np
dGluZ0NvbnRleHQgPSBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmdldCgpOwotICAgIGlmIChjb21wb3NpdGluZ0NvbnRleHQtPmVuYWJsZWQoKSkgewotICAg
ICAgICBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LT5yZXNp
emVSb290TGF5ZXIobmV3U2l6ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBH
cm93IHRoZSBiYWNraW5nIHN0b3JlIGJ5IGF0IGxlYXN0IDEuNSB0aW1lcyB0aGUgY3VycmVudCBz
aXplLiBUaGlzIHByZXZlbnRzCi0gICAgLy8gbG90cyBvZiB1bm5lY2Vzc2FyeSBhbGxvY2F0aW9u
cyBkdXJpbmcgYW4gb3BhcXVlIHJlc2l6ZS4KLSAgICBXaWRnZXRCYWNraW5nU3RvcmUqIGJhY2tp
bmdTdG9yZSA9IG1fd2ViVmlldy0+cHJpdi0+YmFja2luZ1N0b3JlLmdldCgpOwotICAgIGlmIChi
YWNraW5nU3RvcmUgJiYgb2xkV2lkZ2V0U2l6ZSA9PSBuZXdTaXplKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpZiAoYmFja2luZ1N0b3JlKSB7Ci0gICAgICAgIGNvbnN0IEludFNpemUmIG9sZFNp
emUgPSBiYWNraW5nU3RvcmUtPnNpemUoKTsKLSAgICAgICAgaWYgKG5ld1NpemUud2lkdGgoKSA+
IG9sZFNpemUud2lkdGgoKSkKLSAgICAgICAgICAgIG5ld1NpemUuc2V0V2lkdGgoc3RkOjptYXgo
bmV3U2l6ZS53aWR0aCgpLCBzdGF0aWNfY2FzdDxpbnQ+KG9sZFNpemUud2lkdGgoKSAqIDEuNSkp
KTsKLSAgICAgICAgaWYgKG5ld1NpemUuaGVpZ2h0KCkgPiBvbGRTaXplLmhlaWdodCgpKQotICAg
ICAgICAgICAgbmV3U2l6ZS5zZXRIZWlnaHQoc3RkOjptYXgobmV3U2l6ZS5oZWlnaHQoKSwgc3Rh
dGljX2Nhc3Q8aW50PihvbGRTaXplLmhlaWdodCgpICogMS41KSkpOwotICAgIH0KLQotICAgIC8v
IElmIHdlIGRpZCBub3QgaGF2ZSBhIGJhY2tpbmcgc3RvcmUgYmVmb3JlIG9yIGlmIHRoZSBiYWNr
aW5nIHN0b3JlIGlzIGdyb3dpbmcsIHdlIG5lZWQKLSAgICAvLyB0byByZWFsbG9jYXRlIGEgbmV3
IG9uZSBhbmQgc2V0IGl0IHVwIHNvIHRoYXQgd2UgZG9uJ3Qgc2VlIGFydGlmYWN0cyB3aGlsZSBy
ZXNpemluZy4KLSAgICBpZiAoIWJhY2tpbmdTdG9yZQotICAgICAgICB8fCBuZXdTaXplLndpZHRo
KCkgPiBiYWNraW5nU3RvcmUtPnNpemUoKS53aWR0aCgpCi0gICAgICAgIHx8IG5ld1NpemUuaGVp
Z2h0KCkgPiBiYWNraW5nU3RvcmUtPnNpemUoKS5oZWlnaHQoKSkgewotCi0gICAgICAgIE93blB0
cjxXaWRnZXRCYWNraW5nU3RvcmU+IG5ld0JhY2tpbmdTdG9yZSA9IGNyZWF0ZUJhY2tpbmdTdG9y
ZShHVEtfV0lER0VUKG1fd2ViVmlldyksIG5ld1NpemUpOwotICAgICAgICBSZWZQdHI8Y2Fpcm9f
dD4gY3IgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUobmV3QmFja2luZ1N0b3JlLT5jYWlyb1N1cmZh
Y2UoKSkpOwotCi0gICAgICAgIGNsZWFyRXZlcnl3aGVyZUluQmFja2luZ1N0b3JlKG1fd2ViVmll
dywgY3IuZ2V0KCkpOwotCi0gICAgICAgIC8vIE5vdyB3ZSBjb3B5IHRoZSBvbGQgYmFja2luZyBz
dG9yZSBpbWFnZSBvdmVyIHRoZSBuZXcgY2xlYXJlZCBzdXJmYWNlIHRvIHByZXZlbnQKLSAgICAg
ICAgLy8gYW5ub3lpbmcgZmxhc2hpbmcgYXMgdGhlIHdpZGdldCBncm93cy4gV2UgZG8gdGhlICJy
ZWFsIiBwYWludCBpbiBhIHRpbWVvdXQKLSAgICAgICAgLy8gc2luY2Ugd2UgZG9uJ3Qgd2FudCB0
byBibG9jayByZXNpemluZyB0b28gbG9uZy4KLSAgICAgICAgaWYgKGJhY2tpbmdTdG9yZSkgewot
ICAgICAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGNyLmdldCgpLCBiYWNraW5nU3Rv
cmUtPmNhaXJvU3VyZmFjZSgpLCAwLCAwKTsKLSAgICAgICAgICAgIGNhaXJvX3JlY3RhbmdsZShj
ci5nZXQoKSwgMCwgMCwgYmFja2luZ1N0b3JlLT5zaXplKCkud2lkdGgoKSwgYmFja2luZ1N0b3Jl
LT5zaXplKCkuaGVpZ2h0KCkpOwotICAgICAgICAgICAgY2Fpcm9fZmlsbChjci5nZXQoKSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBtX3dlYlZpZXctPnByaXYtPmJhY2tpbmdTdG9yZSA9IG5ld0Jh
Y2tpbmdTdG9yZS5yZWxlYXNlKCk7Ci0gICAgICAgIGJhY2tpbmdTdG9yZSA9IG1fd2ViVmlldy0+
cHJpdi0+YmFja2luZ1N0b3JlLmdldCgpOwotCi0gICAgfSBlbHNlIGlmIChvbGRXaWRnZXRTaXpl
LndpZHRoKCkgPCBuZXdTaXplLndpZHRoKCkgfHwgb2xkV2lkZ2V0U2l6ZS5oZWlnaHQoKSA8IG5l
d1NpemUuaGVpZ2h0KCkpIHsKLSAgICAgICAgLy8gVGhlIHdpZGdldCBpcyBncm93aW5nLCBidXQg
d2UgZGlkIG5vdCBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBiYWNraW5nIHN0b3JlLgotICAgICAgICAv
LyBXZSBzaG91bGQgY2xlYXIgYW55IG9sZCBkYXRhIG91dHNpZGUgb2YgdGhlIG9sZCB3aWRnZXQg
cmVnaW9uLgotICAgICAgICBSZWZQdHI8Y2Fpcm9fdD4gY3IgPSBhZG9wdFJlZihjYWlyb19jcmVh
dGUoYmFja2luZ1N0b3JlLT5jYWlyb1N1cmZhY2UoKSkpOwotICAgICAgICBjbGlwT3V0T2xkV2lk
Z2V0QXJlYShjci5nZXQoKSwgb2xkV2lkZ2V0U2l6ZSwgbmV3U2l6ZSk7Ci0gICAgICAgIGNsZWFy
RXZlcnl3aGVyZUluQmFja2luZ1N0b3JlKG1fd2ViVmlldywgY3IuZ2V0KCkpOwotICAgIH0KLQot
ICAgIC8vIFdlIG5lZWQgdG8gZm9yY2UgYSByZWRyYXcgYW5kIGlnbm9yZSB0aGUgZnJhbWVyYXRl
IGNhcC4KLSAgICBtX2xhc3REaXNwbGF5VGltZSA9IDA7Ci0gICAgbV9kaXJ0eVJlZ2lvbi51bml0
ZShJbnRSZWN0KEludFBvaW50KCksIGJhY2tpbmdTdG9yZS0+c2l6ZSgpKSk7Ci0KLSAgICAvLyBX
ZWJDb3JlIHRpbWVycyBieSBkZWZhdWx0IGhhdmUgYSBsb3dlciBwcmlvcml0eSB3aGljaCBsZWFk
cyB0byBtb3JlIGFydGlmYWN0cyB3aGVuIG9wYXF1ZQotICAgIC8vIHJlc2l6ZSBpcyBvbiwgdGh1
cyB3ZSB1c2UgZ190aW1lb3V0X2FkZCBoZXJlIHRvIGZvcmNlIGEgaGlnaGVyIHRpbWVvdXQgcHJp
b3JpdHkuCi0gICAgaWYgKCFtX3JlcGFpbnRTb29uU291cmNlSWQpCi0gICAgICAgIG1fcmVwYWlu
dFNvb25Tb3VyY2VJZCA9IGdfaWRsZV9hZGRfZnVsbChHX1BSSU9SSVRZX0RFRkFVTFQsIHJlaW50
ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHJlcGFpbnRFdmVyeXRoaW5nU29vblRpbWVvdXQpLCB0
aGlzLCAwKTsKLX0KLQotc3RhdGljIHZvaWQgY29hbGVzY2VSZWN0c0lmUG9zc2libGUoY29uc3Qg
SW50UmVjdCYgY2xpcFJlY3QsIFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMpCi17Ci0gICAgY29uc3Qg
dW5zaWduZWQgaW50IGNSZWN0VGhyZXNob2xkID0gMTA7Ci0gICAgY29uc3QgZmxvYXQgY1dhc3Rl
ZFNwYWNlVGhyZXNob2xkID0gMC43NWY7Ci0gICAgYm9vbCB1c2VVbmlvbmVkUmVjdCA9IChyZWN0
cy5zaXplKCkgPD0gMSkgfHwgKHJlY3RzLnNpemUoKSA+IGNSZWN0VGhyZXNob2xkKTsKLSAgICBp
ZiAoIXVzZVVuaW9uZWRSZWN0KSB7Ci0gICAgICAgIC8vIEF0dGVtcHQgdG8gZ3Vlc3Mgd2hldGhl
ciBvciBub3Qgd2Ugc2hvdWxkIHVzZSB0aGUgdW5pb25lZCByZWN0IG9yIHRoZSBpbmRpdmlkdWFs
IHJlY3RzLgotICAgICAgICAvLyBXZSBkbyB0aGlzIGJ5IGNvbXB1dGluZyB0aGUgcGVyY2VudGFn
ZSBvZiAid2FzdGVkIHNwYWNlIiBpbiB0aGUgdW5pb24uIElmIHRoYXQgd2FzdGVkIHNwYWNlCi0g
ICAgICAgIC8vIGlzIHRvbyBsYXJnZSwgdGhlbiB3ZSB3aWxsIGRvIGluZGl2aWR1YWwgcmVjdCBw
YWludGluZyBpbnN0ZWFkLgotICAgICAgICBmbG9hdCB1bmlvblBpeGVscyA9IChjbGlwUmVjdC53
aWR0aCgpICogY2xpcFJlY3QuaGVpZ2h0KCkpOwotICAgICAgICBmbG9hdCBzaW5nbGVQaXhlbHMg
PSAwOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlY3RzLnNpemUoKTsgKytpKQot
ICAgICAgICAgICAgc2luZ2xlUGl4ZWxzICs9IHJlY3RzW2ldLndpZHRoKCkgKiByZWN0c1tpXS5o
ZWlnaHQoKTsKLSAgICAgICAgZmxvYXQgd2FzdGVkU3BhY2UgPSAxIC0gKHNpbmdsZVBpeGVscyAv
IHVuaW9uUGl4ZWxzKTsKLSAgICAgICAgaWYgKHdhc3RlZFNwYWNlIDw9IGNXYXN0ZWRTcGFjZVRo
cmVzaG9sZCkKLSAgICAgICAgICAgIHVzZVVuaW9uZWRSZWN0ID0gdHJ1ZTsKLSAgICB9Ci0KLSAg
ICBpZiAoIXVzZVVuaW9uZWRSZWN0KQotICAgICAgICByZXR1cm47Ci0KLSAgICByZWN0cy5jbGVh
cigpOwotICAgIHJlY3RzLmFwcGVuZChjbGlwUmVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHBhaW50
V2ViVmlldyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBGcmFtZSogZnJhbWUsIGNvbnN0IFJlZ2lv
biYgZGlydHlSZWdpb24pCi17Ci0gICAgaWYgKCF3ZWJWaWV3LT5wcml2LT5iYWNraW5nU3RvcmUp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIFZlY3RvcjxJbnRSZWN0PiByZWN0cyA9IGRpcnR5UmVn
aW9uLnJlY3RzKCk7Ci0gICAgY29hbGVzY2VSZWN0c0lmUG9zc2libGUoZGlydHlSZWdpb24uYm91
bmRzKCksIHJlY3RzKTsKLQotICAgIFJlZlB0cjxjYWlyb190PiBiYWNraW5nU3RvcmVDb250ZXh0
ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHdlYlZpZXctPnByaXYtPmJhY2tpbmdTdG9yZS0+Y2Fp
cm9TdXJmYWNlKCkpKTsKLSAgICBHcmFwaGljc0NvbnRleHQgZ2MoYmFja2luZ1N0b3JlQ29udGV4
dC5nZXQoKSk7Ci0gICAgZ2MuYXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmcmFtZS0+cGFnZSgpLT5k
ZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlY3RzLnNp
emUoKTsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IEludFJlY3QmIHJlY3QgPSByZWN0c1tpXTsKLQot
ICAgICAgICBnYy5zYXZlKCk7Ci0gICAgICAgIGdjLmNsaXAocmVjdCk7Ci0gICAgICAgIGlmICh3
ZWJWaWV3LT5wcml2LT50cmFuc3BhcmVudCkKLSAgICAgICAgICAgIGdjLmNsZWFyUmVjdChyZWN0
KTsKLSAgICAgICAgZnJhbWUtPnZpZXcoKS0+cGFpbnQoJmdjLCByZWN0KTsKLSAgICAgICAgZ2Mu
cmVzdG9yZSgpOwotICAgIH0KLQotICAgIGdjLnNhdmUoKTsKLSAgICBnYy5jbGlwKGRpcnR5UmVn
aW9uLmJvdW5kcygpKTsKLSAgICBmcmFtZS0+cGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCku
ZHJhd0hpZ2hsaWdodChnYyk7Ci0gICAgZ2MucmVzdG9yZSgpOwotfQotCi12b2lkIENocm9tZUNs
aWVudDo6cGVyZm9ybUFsbFBlbmRpbmdTY3JvbGxzKCkKLXsKLSAgICBpZiAoIW1fd2ViVmlldy0+
cHJpdi0+YmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBTY3JvbGwgYWxs
IHBlbmRpbmcgc2Nyb2xsIHJlY3RzIGFuZCBpbnZhbGlkYXRlIHRob3NlIHBhcnRzIG9mIHRoZSB3
aWRnZXQuCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3JlY3RzVG9TY3JvbGwuc2l6ZSgp
OyBpKyspIHsKLSAgICAgICAgSW50UmVjdCYgc2Nyb2xsUmVjdCA9IG1fcmVjdHNUb1Njcm9sbFtp
XTsKLSAgICAgICAgbV93ZWJWaWV3LT5wcml2LT5iYWNraW5nU3RvcmUtPnNjcm9sbChzY3JvbGxS
ZWN0LCBtX3Njcm9sbE9mZnNldHNbaV0pOwotICAgICAgICBndGtfd2lkZ2V0X3F1ZXVlX2RyYXdf
YXJlYShHVEtfV0lER0VUKG1fd2ViVmlldyksIHNjcm9sbFJlY3QueCgpLCBzY3JvbGxSZWN0Lnko
KSwgc2Nyb2xsUmVjdC53aWR0aCgpLCBzY3JvbGxSZWN0LmhlaWdodCgpKTsKLSAgICB9Ci0KLSAg
ICBtX3JlY3RzVG9TY3JvbGwuY2xlYXIoKTsKLSAgICBtX3Njcm9sbE9mZnNldHMuY2xlYXIoKTsK
LX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OnBhaW50KFdlYkNvcmU6OlRpbWVyPENocm9tZUNsaWVu
dD4qKQotewotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgbWluaW11bUZyYW1lSW50ZXJ2YWwgPSAx
LjAgLyA2MC4wOyAvLyBObyBtb3JlIHRoYW4gNjAgZnJhbWVzIGEgc2Vjb25kLgotICAgIGRvdWJs
ZSB0aW1lU2luY2VMYXN0RGlzcGxheSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0g
bV9sYXN0RGlzcGxheVRpbWU7Ci0gICAgZG91YmxlIHRpbWVVbnRpbE5leHREaXNwbGF5ID0gbWlu
aW11bUZyYW1lSW50ZXJ2YWwgLSB0aW1lU2luY2VMYXN0RGlzcGxheTsKLQotICAgIGlmICh0aW1l
VW50aWxOZXh0RGlzcGxheSA+IDAgJiYgIW1fZm9yY2VQYWludCkgewotICAgICAgICBtX2Rpc3Bs
YXlUaW1lci5zdGFydE9uZVNob3QodGltZVVudGlsTmV4dERpc3BsYXkpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgRnJhbWUmIGZyYW1lID0gY29yZShtX3dlYlZpZXcpLT5tYWluRnJh
bWUoKTsKLSAgICBpZiAoIWZyYW1lLmNvbnRlbnRSZW5kZXJlcigpIHx8ICFmcmFtZS52aWV3KCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGZyYW1lLnZpZXcoKS0+dXBkYXRlTGF5b3V0QW5kU3R5
bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpOwotICAgIHBlcmZvcm1BbGxQZW5kaW5nU2Nyb2xscygpOwot
ICAgIHBhaW50V2ViVmlldyhtX3dlYlZpZXcsICZmcmFtZSwgbV9kaXJ0eVJlZ2lvbik7Ci0KLSAg
ICBIYXNoU2V0PEd0a1dpZGdldCo+IGNoaWxkcmVuID0gbV93ZWJWaWV3LT5wcml2LT5jaGlsZHJl
bjsKLSAgICBIYXNoU2V0PEd0a1dpZGdldCo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBjaGlsZHJl
bi5lbmQoKTsKLSAgICBmb3IgKEhhc2hTZXQ8R3RrV2lkZ2V0Kj46OmNvbnN0X2l0ZXJhdG9yIGN1
cnJlbnQgPSBjaGlsZHJlbi5iZWdpbigpOyBjdXJyZW50ICE9IGVuZDsgKytjdXJyZW50KSB7Ci0g
ICAgICAgIGlmIChzdGF0aWNfY2FzdDxHdGtBbGxvY2F0aW9uKj4oZ19vYmplY3RfZ2V0X2RhdGEo
R19PQkpFQ1QoKmN1cnJlbnQpLCAiZGVsYXllZC1hbGxvY2F0aW9uIikpKSB7Ci0gICAgICAgICAg
ICBndGtfd2lkZ2V0X3F1ZXVlX3Jlc2l6ZV9ub19yZWRyYXcoR1RLX1dJREdFVChtX3dlYlZpZXcp
KTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY29uc3QgSW50
UmVjdCYgcmVjdCA9IG1fZGlydHlSZWdpb24uYm91bmRzKCk7Ci0gICAgZ3RrX3dpZGdldF9xdWV1
ZV9kcmF3X2FyZWEoR1RLX1dJREdFVChtX3dlYlZpZXcpLCByZWN0LngoKSwgcmVjdC55KCksIHJl
Y3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0KLSAgICBtX2RpcnR5UmVnaW9uID0gUmVnaW9u
KCk7Ci0gICAgbV9sYXN0RGlzcGxheVRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KTsKLSAgICBtX3JlcGFpbnRTb29uU291cmNlSWQgPSAwOwotCi0gICAgLy8gV2UgdXBkYXRlIHRo
ZSBJTSBjb250ZXh0IHdpbmRvdyBsb2NhdGlvbiBoZXJlLCBiZWNhdXNlIHdlIHdhbnQgaXQgdG8g
YmUKLSAgICAvLyBzeW5jZWQgd2l0aCBjdXJzb3IgbW92ZW1lbnQuIEZvciBpbnN0YW5jZSwgYSB0
ZXh0IGZpZWxkIGNhbiBtb3ZlIHdpdGhvdXQKLSAgICAvLyB0aGUgc2VsZWN0aW9uIGNoYW5naW5n
LgotICAgIEZyYW1lJiBmb2N1c2VkRnJhbWUgPSBjb3JlKG1fd2ViVmlldyktPmZvY3VzQ29udHJv
bGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIGlmIChmb2N1c2VkRnJhbWUuZWRpdG9y
KCkuY2FuRWRpdCgpKQotICAgICAgICBtX3dlYlZpZXctPnByaXYtPmltRmlsdGVyLnNldEN1cnNv
clJlY3QoZnJhbWUuc2VsZWN0aW9uKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpKTsKLX0KLQotdm9p
ZCBDaHJvbWVDbGllbnQ6OmZvcmNlUGFpbnQoKQotewotICAgIGlmIChtX3dlYlZpZXctPnByaXYt
PmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LT5lbmFibGVkKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fZm9yY2VQYWludCA9IHRydWU7Ci0gICAgcGFpbnQoMCk7Ci0gICAgbV9mb3Jj
ZVBhaW50ID0gZmFsc2U7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlUm9vdFZp
ZXcoY29uc3QgSW50UmVjdCYpCi17Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQotewotICAgIEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KiBhY0NvbnRleHQgPSBtX3dlYlZpZXctPnByaXYt
PmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmdldCgpOwotICAgIGlmIChhY0NvbnRleHQt
PmVuYWJsZWQoKSkgewotICAgICAgICBhY0NvbnRleHQtPnNldE5vbkNvbXBvc2l0ZWRDb250ZW50
c05lZWREaXNwbGF5KHVwZGF0ZVJlY3QpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
aWYgKHVwZGF0ZVJlY3QuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgbV9kaXJ0eVJl
Z2lvbi51bml0ZSh1cGRhdGVSZWN0KTsKLSAgICBtX2Rpc3BsYXlUaW1lci5zdGFydE9uZVNob3Qo
MCk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCi17Ci0gICAgbV9hZGp1c3RtZW50V2F0Y2hl
ci51cGRhdGVBZGp1c3RtZW50c0Zyb21TY3JvbGxiYXJzTGF0ZXIoKTsKLQotICAgIEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdDb250ZXh0KiBhY0NvbnRleHQgPSBtX3dlYlZpZXctPnByaXYtPmFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmdldCgpOwotICAgIGlmIChhY0NvbnRleHQtPmVuYWJs
ZWQoKSkgewotICAgICAgICBhY0NvbnRleHQtPnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWRE
aXNwbGF5KHVwZGF0ZVJlY3QpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcodXBkYXRlUmVjdCk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xp
ZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Nj
cm9sbCwgY29uc3QgSW50UmVjdCYgLyogY2xpcFJlY3QgKi8pCi17Ci0gICAgbV9hZGp1c3RtZW50
V2F0Y2hlci51cGRhdGVBZGp1c3RtZW50c0Zyb21TY3JvbGxiYXJzTGF0ZXIoKTsKLQotICAgIEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KiBjb21wb3NpdGluZ0NvbnRleHQgPSBtX3dlYlZp
ZXctPnByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmdldCgpOwotICAgIGlmIChj
b21wb3NpdGluZ0NvbnRleHQtPmVuYWJsZWQoKSkgewotICAgICAgICBBU1NFUlQoIXJlY3RUb1Nj
cm9sbC5pc0VtcHR5KCkpOwotICAgICAgICBBU1NFUlQoZGVsdGEud2lkdGgoKSB8fCBkZWx0YS5o
ZWlnaHQoKSk7Ci0KLSAgICAgICAgY29tcG9zaXRpbmdDb250ZXh0LT5zY3JvbGxOb25Db21wb3Np
dGVkQ29udGVudHMocmVjdFRvU2Nyb2xsLCBkZWx0YSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBtX3JlY3RzVG9TY3JvbGwuYXBwZW5kKHJlY3RUb1Njcm9sbCk7Ci0gICAgbV9zY3Jv
bGxPZmZzZXRzLmFwcGVuZChkZWx0YSk7Ci0KLSAgICAvLyBUaGUgY29kZSB0byBjYWxjdWxhdGUg
dGhlIHNjcm9sbCByZXBhaW50IHJlZ2lvbiBpcyBvcmlnaW5hbGx5IGZyb20gV2ViS2l0Mi4KLSAg
ICAvLyBHZXQgdGhlIHBhcnQgb2YgdGhlIGRpcnR5IHJlZ2lvbiB0aGF0IGlzIGluIHRoZSBzY3Jv
bGwgcmVjdC4KLSAgICBSZWdpb24gZGlydHlSZWdpb25JblNjcm9sbFJlY3QgPSBpbnRlcnNlY3Qo
cmVjdFRvU2Nyb2xsLCBtX2RpcnR5UmVnaW9uKTsKLSAgICBpZiAoIWRpcnR5UmVnaW9uSW5TY3Jv
bGxSZWN0LmlzRW1wdHkoKSkgewotICAgICAgICAvLyBUaGVyZSBhcmUgcGFydHMgb2YgdGhlIGRp
cnR5IHJlZ2lvbiB0aGF0IGFyZSBpbnNpZGUgdGhlIHNjcm9sbCByZWN0LgotICAgICAgICAvLyBX
ZSBuZWVkIHRvIHN1YnRyYWN0IHRoZW0gZnJvbSB0aGUgcmVnaW9uLCBtb3ZlIHRoZW0gYW5kIHJl
LWFkZCB0aGVtLgotICAgICAgICBtX2RpcnR5UmVnaW9uLnN1YnRyYWN0KHJlY3RUb1Njcm9sbCk7
Ci0KLSAgICAgICAgLy8gTW92ZSB0aGUgZGlydHkgcGFydHMuCi0gICAgICAgIFJlZ2lvbiBtb3Zl
ZERpcnR5UmVnaW9uSW5TY3JvbGxSZWN0ID0gaW50ZXJzZWN0KHRyYW5zbGF0ZShkaXJ0eVJlZ2lv
bkluU2Nyb2xsUmVjdCwgZGVsdGEpLCByZWN0VG9TY3JvbGwpOwotCi0gICAgICAgIC8vIEFuZCBh
ZGQgdGhlbSBiYWNrLgotICAgICAgICBtX2RpcnR5UmVnaW9uLnVuaXRlKG1vdmVkRGlydHlSZWdp
b25JblNjcm9sbFJlY3QpOwotICAgIH0KLQotICAgIC8vIENvbXB1dGUgdGhlIHNjcm9sbCByZXBh
aW50IHJlZ2lvbi4gV2UgZW5zdXJlIHRoYXQgd2UgYXJlIG5vdCBzdWJ0cmFjdGluZyBhcmVhcwot
ICAgIC8vIHRoYXQgd2UndmUgc2Nyb2xsZWQgZnJvbSBvdXRzaWRlIHRoZSB2aWV3cG9ydCBmcm9t
IHRoZSByZXBhaW50IHJlZ2lvbi4KLSAgICBJbnRSZWN0IG9uU2NyZWVuU2Nyb2xsUmVjdCA9IHJl
Y3RUb1Njcm9sbDsKLSAgICBvblNjcmVlblNjcm9sbFJlY3QuaW50ZXJzZWN0KEludFJlY3QoSW50
UG9pbnQoKSwgZW5jbG9zaW5nSW50UmVjdChwYWdlUmVjdCgpKS5zaXplKCkpKTsKLSAgICBSZWdp
b24gc2Nyb2xsUmVwYWludFJlZ2lvbiA9IHN1YnRyYWN0KHJlY3RUb1Njcm9sbCwgdHJhbnNsYXRl
KG9uU2NyZWVuU2Nyb2xsUmVjdCwgZGVsdGEpKTsKLQotICAgIG1fZGlydHlSZWdpb24udW5pdGUo
c2Nyb2xsUmVwYWludFJlZ2lvbik7Ci0gICAgbV9kaXNwbGF5VGltZXIuc3RhcnRPbmVTaG90KDAp
OwotfQotCi1JbnRSZWN0IENocm9tZUNsaWVudDo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRS
ZWN0JiByZWN0KSBjb25zdAotewotICAgIHJldHVybiBJbnRSZWN0KGNvbnZlcnRXaWRnZXRQb2lu
dFRvU2NyZWVuUG9pbnQoR1RLX1dJREdFVChtX3dlYlZpZXcpLCByZWN0LmxvY2F0aW9uKCkpLCBy
ZWN0LnNpemUoKSk7Ci19Ci0KLUludFBvaW50IENocm9tZUNsaWVudDo6c2NyZWVuVG9Sb290Vmll
dyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0Ci17Ci0gICAgSW50UG9pbnQgd2lkZ2V0UG9z
aXRpb25PblNjcmVlbiA9IGNvbnZlcnRXaWRnZXRQb2ludFRvU2NyZWVuUG9pbnQoR1RLX1dJREdF
VChtX3dlYlZpZXcpLCBJbnRQb2ludCgpKTsKLSAgICBJbnRQb2ludCByZXN1bHQocG9pbnQpOwot
ICAgIHJlc3VsdC5tb3ZlKC13aWRnZXRQb3NpdGlvbk9uU2NyZWVuLngoKSwgLXdpZGdldFBvc2l0
aW9uT25TY3JlZW4ueSgpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1QbGF0Zm9ybVBhZ2VD
bGllbnQgQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAotewotICAgIHJl
dHVybiBHVEtfV0lER0VUKG1fd2ViVmlldyk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50Ojpjb250
ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QK
LXsKLSAgICBpZiAobV9hZGp1c3RtZW50V2F0Y2hlci5zY3JvbGxiYXJzRGlzYWJsZWQoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgLy8gV2UgbmVlZCB0byBxdWV1ZSBhIHJlc2l6ZSByZXF1ZXN0
IG9ubHkgaWYgdGhlIHNpemUgY2hhbmdlZCwKLSAgICAvLyBvdGhlcndpc2Ugd2UgZ2V0IGludG8g
YW4gaW5maW5pdGUgbG9vcCEKLSAgICBHdGtXaWRnZXQqIHdpZGdldCA9IEdUS19XSURHRVQobV93
ZWJWaWV3KTsKLSAgICBHdGtSZXF1aXNpdGlvbiByZXF1aXNpdGlvbjsKLSAgICBndGtfd2lkZ2V0
X2dldF9wcmVmZXJyZWRfc2l6ZSh3aWRnZXQsICZyZXF1aXNpdGlvbiwgMCk7Ci0gICAgaWYgKGd0
a193aWRnZXRfZ2V0X3JlYWxpemVkKHdpZGdldCkKLSAgICAgICAgJiYgKHJlcXVpc2l0aW9uLmhl
aWdodCAhPSBzaXplLmhlaWdodCgpCi0gICAgICAgIHx8IHJlcXVpc2l0aW9uLndpZHRoICE9IHNp
emUud2lkdGgoKSkpCi0gICAgICAgIGd0a193aWRnZXRfcXVldWVfcmVzaXplX25vX3JlZHJhdyh3
aWRnZXQpOwotCi0gICAgLy8gSWYgdGhpcyB3YXMgYSBtYWluIGZyYW1lIHNpemUgY2hhbmdlLCB1
cGRhdGUgdGhlIHNjcm9sbGJhcnMuCi0gICAgaWYgKGZyYW1lICE9ICZmcmFtZS0+cGFnZSgpLT5t
YWluRnJhbWUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fYWRqdXN0bWVudFdhdGNoZXIudXBk
YXRlQWRqdXN0bWVudHNGcm9tU2Nyb2xsYmFyc0xhdGVyKCk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xp
ZW50OjpzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0Ci17Ci0gICAgV2ViS2l0V2ViRnJh
bWUqIHdlYkZyYW1lID0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKG1fd2ViVmlldyk7
Ci0gICAgaWYgKCF3ZWJGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ19vYmplY3Rfbm90
aWZ5KEdfT0JKRUNUKHdlYkZyYW1lKSwgImhvcml6b250YWwtc2Nyb2xsYmFyLXBvbGljeSIpOwot
ICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJGcmFtZSksICJ2ZXJ0aWNhbC1zY3JvbGxi
YXItcG9saWN5Iik7Ci0KLSAgICBnYm9vbGVhbiBpc0hhbmRsZWQ7Ci0gICAgZ19zaWduYWxfZW1p
dF9ieV9uYW1lKHdlYkZyYW1lLCAic2Nyb2xsYmFycy1wb2xpY3ktY2hhbmdlZCIsICZpc0hhbmRs
ZWQpOwotCi0gICAgaWYgKGlzSGFuZGxlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgR3RrV2lk
Z2V0KiBwYXJlbnQgPSBndGtfd2lkZ2V0X2dldF9wYXJlbnQoR1RLX1dJREdFVChtX3dlYlZpZXcp
KTsKLSAgICBpZiAoIXBhcmVudCB8fCAhR1RLX0lTX1NDUk9MTEVEX1dJTkRPVyhwYXJlbnQpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBHdGtQb2xpY3lUeXBlIGhvcml6b250YWxQb2xpY3kgPSB3
ZWJraXRfd2ViX2ZyYW1lX2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9wb2xpY3kod2ViRnJhbWUp
OwotICAgIEd0a1BvbGljeVR5cGUgdmVydGljYWxQb2xpY3kgPSB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9saWN5KHdlYkZyYW1lKTsKLQotICAgIC8vIFNjcm9sbGVk
V2luZG93IGRvZXNuJ3QgbGlrZSB0byBkaXNwbGF5IG9ubHkgcGFydCBvZiBhIHdpZGdldCBpZgot
ICAgIC8vIHRoZSBzY3JvbGxiYXJzIGFyZSBjb21wbGV0ZWx5IGRpc2FibGVkOyBXZSBoYXZlIGEg
ZGlzcGFyaXR5Ci0gICAgLy8gaGVyZSBvbiB3aGF0IHRoZSBwb2xpY3kgcmVxdWVzdGVkIGJ5IHRo
ZSB3ZWIgYXBwIGlzIGFuZCB3aGF0IHdlCi0gICAgLy8gY2FuIHJlcHJlc2VudDsgdGhlIGlkZWEg
aXMgbm90IHRvIHNob3cgc2Nyb2xsYmFycywgb25seS4KLSAgICBpZiAoaG9yaXpvbnRhbFBvbGlj
eSA9PSBHVEtfUE9MSUNZX05FVkVSKQotICAgICAgICBob3Jpem9udGFsUG9saWN5ID0gR1RLX1BP
TElDWV9BVVRPTUFUSUM7Ci0KLSAgICBpZiAodmVydGljYWxQb2xpY3kgPT0gR1RLX1BPTElDWV9O
RVZFUikKLSAgICAgICAgdmVydGljYWxQb2xpY3kgPSBHVEtfUE9MSUNZX0FVVE9NQVRJQzsKLQot
ICAgIGd0a19zY3JvbGxlZF93aW5kb3dfc2V0X3BvbGljeShHVEtfU0NST0xMRURfV0lORE9XKHBh
cmVudCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvcml6b250YWxQb2xp
Y3ksIHZlcnRpY2FsUG9saWN5KTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdCwgdW5zaWduZWQgLyogbW9kaWZp
ZXJGbGFncyAqLykKLXsKLSAgICAvLyBjaGVjayBpZiB0aGUgZWxlbWVudCBpcyBhIGxpbmsuLi4K
LSAgICBib29sIGlzTGluayA9IGhpdC5pc0xpdmVMaW5rKCk7Ci0gICAgaWYgKGlzTGluaykgewot
ICAgICAgICBVUkwgdXJsID0gaGl0LmFic29sdXRlTGlua1VSTCgpOwotICAgICAgICBpZiAoIXVy
bC5pc0VtcHR5KCkgJiYgdXJsICE9IG1faG92ZXJlZExpbmtVUkwpIHsKLSAgICAgICAgICAgIFRl
eHREaXJlY3Rpb24gZGlyOwotICAgICAgICAgICAgQ1N0cmluZyB0aXRsZVN0cmluZyA9IGhpdC50
aXRsZShkaXIpLnV0ZjgoKTsKLSAgICAgICAgICAgIENTdHJpbmcgdXJsU3RyaW5nID0gdXJsLnN0
cmluZygpLnV0ZjgoKTsKLSAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZp
ZXcsICJob3ZlcmluZy1vdmVyLWxpbmsiLCB0aXRsZVN0cmluZy5kYXRhKCksIHVybFN0cmluZy5k
YXRhKCkpOwotICAgICAgICAgICAgbV9ob3ZlcmVkTGlua1VSTCA9IHVybDsKLSAgICAgICAgfQot
ICAgIH0gZWxzZSBpZiAoIWlzTGluayAmJiAhbV9ob3ZlcmVkTGlua1VSTC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImhvdmVyaW5nLW92ZXIt
bGluayIsIDAsIDApOwotICAgICAgICBtX2hvdmVyZWRMaW5rVVJMID0gVVJMKCk7Ci0gICAgfQot
Ci0gICAgaWYgKE5vZGUqIG5vZGUgPSBoaXQuaW5uZXJOb25TaGFyZWROb2RlKCkpIHsKLSAgICAg
ICAgRnJhbWUqIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpOwotICAgICAgICBGcmFt
ZVZpZXcqIHZpZXcgPSBmcmFtZSA/IGZyYW1lLT52aWV3KCkgOiAwOwotICAgICAgICBtX3dlYlZp
ZXctPnByaXYtPnRvb2x0aXBBcmVhID0gdmlldyA/IHZpZXctPmNvbnRlbnRzVG9XaW5kb3cobm9k
ZS0+cGl4ZWxTbmFwcGVkQm91bmRpbmdCb3goKSkgOiBJbnRSZWN0KCk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIG1fd2ViVmlldy0+cHJpdi0+dG9vbHRpcEFyZWEgPSBJbnRSZWN0KCk7Ci19Ci0KLXZv
aWQgQ2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERp
cmVjdGlvbikKLXsKLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3Rvb2x0aXBfdGV4dChtX3dlYlZp
ZXcsIHRvb2xUaXAudXRmOCgpLmRhdGEoKSk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50Ojpwcmlu
dChGcmFtZSogZnJhbWUpCi17Ci0gICAgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lID0ga2l0KGZy
YW1lKTsKLSAgICBnYm9vbGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsKLSAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUobV93ZWJWaWV3LCAicHJpbnQtcmVxdWVzdGVkIiwgd2ViRnJhbWUsICZpc0hhbmRs
ZWQpOwotCi0gICAgaWYgKGlzSGFuZGxlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgd2Via2l0
X3dlYl9mcmFtZV9wcmludCh3ZWJGcmFtZSk7Ci19Ci0KLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNF
KQotdm9pZCBDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpCi17Ci0gICAgZ3Vp
bnQ2NCBkZWZhdWx0UXVvdGEgPSB3ZWJraXRfZ2V0X2RlZmF1bHRfd2ViX2RhdGFiYXNlX3F1b3Rh
KCk7Ci0gICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuc2V0UXVvdGEoZnJhbWUtPmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGRlZmF1bHRRdW90YSk7Ci0KLSAgICBXZWJLaXRXZWJG
cmFtZSogd2ViRnJhbWUgPSBraXQoZnJhbWUpOwotICAgIFdlYktpdFNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4gPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF9zZWN1cml0eV9vcmlnaW4od2ViRnJhbWUpOwot
ICAgIFdlYktpdFdlYkRhdGFiYXNlKiB3ZWJEYXRhYmFzZSA9IHdlYmtpdF9zZWN1cml0eV9vcmln
aW5fZ2V0X3dlYl9kYXRhYmFzZShvcmlnaW4sIGRhdGFiYXNlTmFtZS51dGY4KCkuZGF0YSgpKTsK
LSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZWJWaWV3LCAiZGF0YWJhc2UtcXVvdGEtZXhj
ZWVkZWQiLCB3ZWJGcmFtZSwgd2ViRGF0YWJhc2UpOwotfQotI2VuZGlmCi0KLXZvaWQgQ2hyb21l
Q2xpZW50OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QgLyogc3BhY2VOZWVkZWQgKi8p
Ci17Ci0gICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFjZS4KLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotfQotCi12b2lkIENocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8
RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2VyKQotewotICAgIEdSZWZQdHI8V2ViS2l0RmlsZUNo
b29zZXJSZXF1ZXN0PiByZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdF9maWxlX2Nob29zZXJfcmVx
dWVzdF9jcmVhdGUocHJwRmlsZUNob29zZXIpKTsKLSAgICB3ZWJraXRXZWJWaWV3UnVuRmlsZUNo
b29zZXJSZXF1ZXN0KG1fd2ViVmlldywgcmVxdWVzdC5nZXQoKSk7Ci19Ci0KLXZvaWQgQ2hyb21l
Q2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIGZpbGVu
YW1lcywgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqIGxvYWRlcikKLXsKLSAgICBsb2FkZXItPm5v
dGlmeUZpbmlzaGVkKEljb246OmNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKLX0KLQot
dm9pZCBDaHJvbWVDbGllbnQ6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNv
bnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3QKLXsKLSAgICAvLyBSZWNvbXB1dGUgdGhlIHZp
ZXdwb3J0IGF0dHJpYnV0ZXMgbWFraW5nIGl0IHZhbGlkLgotICAgIHdlYmtpdFZpZXdwb3J0QXR0
cmlidXRlc1JlY29tcHV0ZSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdwb3J0X2F0dHJpYnV0ZXMo
bV93ZWJWaWV3KSk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3IoY29uc3QgQ3Vy
c29yJiBjdXJzb3IpCi17Ci0gICAgLy8gW0dUS10gV2lkZ2V0OjpzZXRDdXJzb3IoKSBnZXRzIGNh
bGxlZCBmcmVxdWVudGx5Ci0gICAgLy8gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTYzODgKLSAgICAvLyBTZXR0aW5nIHRoZSBjdXJzb3IgbWF5IGJlIGFuIGV4cGVuc2l2
ZSBvcGVyYXRpb24gaW4gc29tZSBiYWNrZW5kcywKLSAgICAvLyBzbyBkb24ndCByZS1zZXQgdGhl
IGN1cnNvciBpZiBpdCdzIGFscmVhZHkgc2V0IHRvIHRoZSB0YXJnZXQgdmFsdWUuCi0gICAgR2Rr
V2luZG93KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF93aW5kb3cocGxhdGZvcm1QYWdlQ2xpZW50
KCkpOwotICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm47Ci0KLSAgICBHZGtDdXJzb3Iq
IGN1cnJlbnRDdXJzb3IgPSBnZGtfd2luZG93X2dldF9jdXJzb3Iod2luZG93KTsKLSAgICBHZGtD
dXJzb3IqIG5ld0N1cnNvciA9IGN1cnNvci5wbGF0Zm9ybUN1cnNvcigpLmdldCgpOwotICAgIGlm
IChjdXJyZW50Q3Vyc29yICE9IG5ld0N1cnNvcikKLSAgICAgICAgZ2RrX3dpbmRvd19zZXRfY3Vy
c29yKHdpbmRvdywgbmV3Q3Vyc29yKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OnNldEN1cnNv
ckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19
Ci0KLWJvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIENocm9tZUNsaWVudDo6c2VsZWN0
SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpCi17Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLWJvb2wgQ2hyb21lQ2xpZW50OjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0Ci17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLVBhc3NSZWZQ
dHI8V2ViQ29yZTo6UG9wdXBNZW51PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKLXsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFBvcHVwTWVudUd0ayhjbGllbnQpKTsKLX0KLQotUGFzc1JlZlB0cjxXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnU+IENocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAotewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2VhcmNoUG9wdXBNZW51R3RrKGNsaWVudCkpOwotfQotCi0jaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQotYm9vbCBDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKQotewotICAgIHJl
dHVybiAhd2l0aEtleWJvYXJkOwotfQotCi1zdGF0aWMgZ2Jvb2xlYW4gb25GdWxsc2NyZWVuR3Rr
S2V5UHJlc3NFdmVudChHdGtXaWRnZXQqLCBHZGtFdmVudEtleSogZXZlbnQsIENocm9tZUNsaWVu
dCogY2hyb21lQ2xpZW50KQotewotICAgIHN3aXRjaCAoZXZlbnQtPmtleXZhbCkgewotICAgIGNh
c2UgR0RLX0tFWV9Fc2NhcGU6Ci0gICAgY2FzZSBHREtfS0VZX2Y6Ci0gICAgY2FzZSBHREtfS0VZ
X0Y6Ci0gICAgICAgIGNocm9tZUNsaWVudC0+Y2FuY2VsRnVsbFNjcmVlbigpOwotICAgICAgICBy
ZXR1cm4gVFJVRTsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gRkFMU0U7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50OjpjYW5jZWxGdWxsU2NyZWVuKCkK
LXsKLSAgICBBU1NFUlQobV9mdWxsU2NyZWVuRWxlbWVudCk7Ci0gICAgbV9mdWxsU2NyZWVuRWxl
bWVudC0+ZG9jdW1lbnQoKS53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7Ci19Ci0KLXZvaWQgQ2hy
b21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVs
ZW1lbnQpCi17Ci0gICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWU7Ci0gICAgR1JlZlB0cjxXZWJLaXRE
T01IVE1MRWxlbWVudD4ga2l0RWxlbWVudChhZG9wdEdSZWYoa2l0KHJlaW50ZXJwcmV0X2Nhc3Q8
SFRNTEVsZW1lbnQqPihlbGVtZW50KSkpKTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93
ZWJWaWV3LCAiZW50ZXJpbmctZnVsbHNjcmVlbiIsIGtpdEVsZW1lbnQuZ2V0KCksICZyZXR1cm5W
YWx1ZSk7Ci0gICAgaWYgKHJldHVyblZhbHVlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBHdGtX
aWRnZXQqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQobV93ZWJW
aWV3KSk7Ci0gICAgaWYgKCF3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3cod2luZG93KSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgZ19zaWduYWxfY29ubmVjdCh3aW5kb3csICJrZXktcHJl
c3MtZXZlbnQiLCBHX0NBTExCQUNLKG9uRnVsbHNjcmVlbkd0a0tleVByZXNzRXZlbnQpLCB0aGlz
KTsKLQotICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQgPSBlbGVtZW50OwotCi0gICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS53ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsK
LSAgICBtX2FkanVzdG1lbnRXYXRjaGVyLmRpc2FibGVBbGxTY3JvbGxiYXJzKCk7Ci0gICAgZ3Rr
X3dpbmRvd19mdWxsc2NyZWVuKEdUS19XSU5ET1cod2luZG93KSk7Ci0gICAgZWxlbWVudC0+ZG9j
dW1lbnQoKS53ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOwotfQot
Ci12b2lkIENocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVs
ZW1lbnQqKQotewotICAgIC8vIFRoZSBlbGVtZW50IHBhc3NlZCBpbnRvIHRoaXMgZnVuY3Rpb24g
aXMgbm90IHJlbGlhYmxlLCBpLmUuIGl0IGNvdWxkCi0gICAgLy8gYmUgbnVsbC4gSW4gYWRkaXRp
b24gdGhlIHBhcmFtZXRlciBtYXkgYmUgZGlzYXBwZWFyaW5nIGluIHRoZSBmdXR1cmUuCi0gICAg
Ly8gU28gd2UgdXNlIHRoZSByZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgd2Ugc2F2ZWQgYWJvdmUu
Ci0gICAgQVNTRVJUKG1fZnVsbFNjcmVlbkVsZW1lbnQpOwotCi0gICAgZ2Jvb2xlYW4gcmV0dXJu
VmFsdWU7Ci0gICAgR1JlZlB0cjxXZWJLaXRET01IVE1MRWxlbWVudD4ga2l0RWxlbWVudChhZG9w
dEdSZWYoa2l0KHJlaW50ZXJwcmV0X2Nhc3Q8SFRNTEVsZW1lbnQqPihtX2Z1bGxTY3JlZW5FbGVt
ZW50LmdldCgpKSkpKTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZWJWaWV3LCAibGVh
dmluZy1mdWxsc2NyZWVuIiwga2l0RWxlbWVudC5nZXQoKSwgJnJldHVyblZhbHVlKTsKLSAgICBp
ZiAocmV0dXJuVmFsdWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIEd0a1dpZGdldCogd2luZG93
ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChtX3dlYlZpZXcpKTsKLSAgICBB
U1NFUlQod2lkZ2V0SXNPbnNjcmVlblRvcGxldmVsV2luZG93KHdpbmRvdykpOwotICAgIGdfc2ln
bmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyh3aW5kb3csIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KG9uRnVsbHNjcmVlbkd0a0tleVByZXNzRXZlbnQpLCB0aGlzKTsKLQotICAgIG1fZnVs
bFNjcmVlbkVsZW1lbnQtPmRvY3VtZW50KCkud2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxl
bWVudChtX2Z1bGxTY3JlZW5FbGVtZW50LmdldCgpKTsKLSAgICBndGtfd2luZG93X3VuZnVsbHNj
cmVlbihHVEtfV0lORE9XKHdpbmRvdykpOwotICAgIG1fYWRqdXN0bWVudFdhdGNoZXIuZW5hYmxl
QWxsU2Nyb2xsYmFycygpOwotICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPmRvY3VtZW50KCkud2Vi
a2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fZnVsbFNjcmVlbkVsZW1lbnQuZ2V0KCkp
OwotICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQuY2xlYXIoKTsKLX0KLSNlbmRpZgotCi12b2lkIENo
cm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVy
KiByb290TGF5ZXIpCi17Ci0gICAgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQqIGNvbnRl
eHQgPSBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmdldCgp
OwotICAgIGJvb2wgdHVybmluZ09mZkNvbXBvc2l0aW5nID0gIXJvb3RMYXllciAmJiBjb250ZXh0
LT5lbmFibGVkKCk7Ci0gICAgYm9vbCB0dXJuaW5nT25Db21wb3NpdGluZyA9IHJvb3RMYXllciAm
JiAhY29udGV4dC0+ZW5hYmxlZCgpOwotCi0gICAgY29udGV4dC0+c2V0Um9vdENvbXBvc2l0aW5n
TGF5ZXIocm9vdExheWVyKTsKLQotICAgIGlmICh0dXJuaW5nT25Db21wb3NpdGluZykgewotICAg
ICAgICBtX2Rpc3BsYXlUaW1lci5zdG9wKCk7Ci0gICAgICAgIG1fd2ViVmlldy0+cHJpdi0+YmFj
a2luZ1N0b3JlID0gY3JlYXRlQmFja2luZ1N0b3JlKEdUS19XSURHRVQobV93ZWJWaWV3KSwgSW50
U2l6ZSgxLCAxKSk7Ci0gICAgfQotCi0gICAgaWYgKHR1cm5pbmdPZmZDb21wb3NpdGluZykgewot
ICAgICAgICBtX3dlYlZpZXctPnByaXYtPmJhY2tpbmdTdG9yZSA9IGNyZWF0ZUJhY2tpbmdTdG9y
ZShHVEtfV0lER0VUKG1fd2ViVmlldyksIGdldFdlYlZpZXdSZWN0KG1fd2ViVmlldykuc2l6ZSgp
KTsKLSAgICAgICAgUmVmUHRyPGNhaXJvX3Q+IGNyID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKG1f
d2ViVmlldy0+cHJpdi0+YmFja2luZ1N0b3JlLT5jYWlyb1N1cmZhY2UoKSkpOwotICAgICAgICBj
bGVhckV2ZXJ5d2hlcmVJbkJhY2tpbmdTdG9yZShtX3dlYlZpZXcsIGNyLmdldCgpKTsKLSAgICB9
Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKCkKLXsKLSAgICBtX3dlYlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OnNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKLXsKLSAgICBtX3dlYlZpZXctPnByaXYtPmFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKLX0KLQot
Q2hyb21lQ2xpZW50OjpDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBDaHJvbWVDbGllbnQ6OmFsbG93
ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3QKLXsKLSAgICAgaWYgKCFwbGF0Zm9ybVBhZ2VD
bGllbnQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2lmIFVTRShDTFVUVEVSKQotICAgIC8v
IEN1cnJlbnRseSwgd2Ugb25seSBzdXBwb3J0IENTUyAzRCBUcmFuc2Zvcm1zLgotICAgIHJldHVy
biBUaHJlZURUcmFuc2Zvcm1UcmlnZ2VyIHwgQW5pbWF0aW9uVHJpZ2dlcjsKLSNlbHNlCi0gICAg
cmV0dXJuIEFsbFRyaWdnZXJzOwotI2VuZGlmCi19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJkNWM3ZDYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNzggKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhl
cgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKi8KLQotI2lmbmRlZiBDaHJvbWVDbGllbnRHdGtfaAotI2RlZmluZSBDaHJvbWVD
bGllbnRHdGtfaAotCi0jaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiR3RrQWRq
dXN0bWVudFdhdGNoZXIuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiSW50U2l6
ZS5oIgotI2luY2x1ZGUgIlVSTC5oIgotI2luY2x1ZGUgIlBvcHVwTWVudS5oIgotI2luY2x1ZGUg
IlJlZ2lvbi5oIgotI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudS5oIgotI2luY2x1ZGUgIlRpbWVy
LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdl
YlZpZXcgV2ViS2l0V2ViVmlldzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgUG9wdXBN
ZW51Q2xpZW50OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotICAgIGNsYXNzIENocm9tZUNs
aWVudCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJvbWVDbGllbnQgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgQ2hyb21lQ2xpZW50KFdlYktpdFdlYlZpZXcqKTsKLSAgICAgICAgR3RrQWRqdXN0bWVudFdh
dGNoZXIqIGFkanVzdG1lbnRXYXRjaGVyKCkgeyByZXR1cm4gJm1fYWRqdXN0bWVudFdhdGNoZXI7
IH0KLQotICAgICAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCk7Ci0KLSAgICAgICAg
dmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgICAgIHZp
cnR1YWwgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKLQotICAgICAgICB2aXJ0dWFsIEZsb2F0UmVj
dCBwYWdlUmVjdCgpOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgdW5mb2N1cygpOwotCi0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9j
dXMoRm9jdXNEaXJlY3Rpb24pOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKEZvY3Vz
RGlyZWN0aW9uKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2Vk
KEVsZW1lbnQqKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJh
bWUqKTsKLQotICAgICAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNob3coKTsKLQotICAgICAgICB2aXJ0
dWFsIGJvb2wgY2FuUnVuTW9kYWwoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCk7
Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xiYXJzVmlzaWJsZShib29sKTsKLSAgICAg
ICAgdmlydHVhbCBib29sIHRvb2xiYXJzVmlzaWJsZSgpOwotCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc3RhdHVz
YmFyVmlzaWJsZSgpOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJs
ZShib29sKTsKLSAgICAgICAgdmlydHVhbCBib29sIHNjcm9sbGJhcnNWaXNpYmxlKCk7Ci0KLSAg
ICAgICAgdmlydHVhbCB2b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wpOwotICAgICAgICB2aXJ0
dWFsIGJvb2wgbWVudWJhclZpc2libGUoKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVz
aXphYmxlKGJvb2wpOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpT
dHJpbmcmIHNvdXJjZUlEKTsKLQotICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKCk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSk7Ci0K
LSAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpOwotCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpOwot
ICAgICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBX
VEY6OlN0cmluZyYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChG
cmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVm
YXVsdFZhbHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNl
dFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICAgICAgdmlydHVhbCBib29s
IHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKTsKLSAgICAgICAgdmlydHVhbCBLZXlib2FyZFVJ
TW9kZSBrZXlib2FyZFVJTW9kZSgpOwotCi0gICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dS
ZXNpemVyUmVjdCgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RW
aWV3KGNvbnN0IEludFJlY3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRS
ZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKLQotICAgICAgICB2
aXJ0dWFsIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdDsK
LSAgICAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYp
IGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VD
bGllbnQoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQo
RnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3Q7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHNj
cm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBtb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZp
ZXJGbGFncyk7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpT
dHJpbmcmLCBUZXh0RGlyZWN0aW9uKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hW
aWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBjb25z
dDsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKTsKLSNpZiBFTkFCTEUoU1FM
X0RBVEFCQVNFKQotICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZy
YW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpOwotI2VuZGlmCi0gICAg
ICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVk
ZWQpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2Vy
Pik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxX
VEY6OlN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciopOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXRDdXJzb3IoY29uc3QgQ3Vyc29yJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JI
aWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9Ci0KLSAgICAgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0OwotICAgICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLQotI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVs
bFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKTsK
LSAgICAgICAgdm9pZCBjYW5jZWxGdWxsU2NyZWVuKCk7Ci0jZW5kaWYKLQotICAgICAgICB2aXJ0
dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCkgeyB9Ci0KLSAgICAgICAgdmly
dHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciop
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXph
dGlvbigpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1
c2goKTsKLSAgICAgICAgdmlydHVhbCBDb21wb3NpdGluZ1RyaWdnZXJGbGFncyBhbGxvd2VkQ29t
cG9zaXRpbmdUcmlnZ2VycygpIGNvbnN0OwotCi0gICAgICAgIHZvaWQgcGVyZm9ybUFsbFBlbmRp
bmdTY3JvbGxzKCk7Ci0gICAgICAgIHZvaWQgcGFpbnQoVGltZXI8Q2hyb21lQ2xpZW50PiopOwot
ICAgICAgICB2b2lkIGZvcmNlUGFpbnQoKTsKLSAgICAgICAgdm9pZCB3aWRnZXRTaXplQ2hhbmdl
ZChjb25zdCBJbnRTaXplJiBvbGRXaWRnZXRTaXplLCBJbnRTaXplIG5ld1NpemUpOwotCi0gICAg
ICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KLQotICAg
IHByaXZhdGU6Ci0gICAgICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKLSAgICAgICAgR3Rr
QWRqdXN0bWVudFdhdGNoZXIgbV9hZGp1c3RtZW50V2F0Y2hlcjsKLSAgICAgICAgVVJMIG1faG92
ZXJlZExpbmtVUkw7Ci0gICAgICAgIHVuc2lnbmVkIGludCBtX2Nsb3NlU29vblRpbWVyOwotCi0g
ICAgICAgIFRpbWVyIDxDaHJvbWVDbGllbnQ+IG1fZGlzcGxheVRpbWVyOwotICAgICAgICBib29s
IG1fZm9yY2VQYWludDsKLSAgICAgICAgUmVnaW9uIG1fZGlydHlSZWdpb247Ci0gICAgICAgIFZl
Y3RvcjxJbnRSZWN0PiBtX3JlY3RzVG9TY3JvbGw7Ci0gICAgICAgIFZlY3RvcjxJbnRTaXplPiBt
X3Njcm9sbE9mZnNldHM7Ci0gICAgICAgIGRvdWJsZSBtX2xhc3REaXNwbGF5VGltZTsKLSAgICAg
ICAgdW5zaWduZWQgaW50IG1fcmVwYWludFNvb25Tb3VyY2VJZDsKLQotI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fZnVsbFNjcmVlbkVsZW1lbnQ7
Ci0jZW5kaWYKLSAgICB9OwotfQotCi0jZW5kaWYgLy8gQ2hyb21lQ2xpZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3Rr
LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50
R3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI1ZjUzYS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0
ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNjggKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMDggTnVhbnRpIEx0ZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDkgR3VzdGF2byBOb3Jv
bmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy
aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0KLSNp
bmNsdWRlICJDb250ZXh0TWVudUNsaWVudEd0ay5oIgotCi0jaW5jbHVkZSAiQ29udGV4dE1lbnUu
aCIKLSNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJIaXRUZXN0
UmVzdWx0LmgiCi0jaW5jbHVkZSAiVVJMLmgiCi0jaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5o
IgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1
ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCi0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNp
bmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotQ29udGV4dE1lbnVDbGllbnQ6OkNvbnRleHRNZW51Q2xpZW50KFdl
YktpdFdlYlZpZXcgKndlYlZpZXcpCi0gICAgOiBtX3dlYlZpZXcod2ViVmlldykKLXsKLX0KLQot
dm9pZCBDb250ZXh0TWVudUNsaWVudDo6Y29udGV4dE1lbnVEZXN0cm95ZWQoKQotewotICAgIGRl
bGV0ZSB0aGlzOwotfQotCi1zdGF0aWMgR3RrV2lkZ2V0KiBpbnB1dE1ldGhvZHNNZW51SXRlbSAo
V2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBpZiAoZ3RrX21ham9yX3ZlcnNpb24gPiAy
IHx8IChndGtfbWFqb3JfdmVyc2lvbiA9PSAyICYmIGd0a19taW5vcl92ZXJzaW9uID49IDEwKSkg
ewotICAgICAgICBHdGtTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJWaWV3ID8gZ3RrX3dpZGdldF9n
ZXRfc2V0dGluZ3MoR1RLX1dJREdFVCh3ZWJWaWV3KSkgOiBndGtfc2V0dGluZ3NfZ2V0X2RlZmF1
bHQoKTsKLQotICAgICAgICBnYm9vbGVhbiBzaG93TWVudSA9IFRSVUU7Ci0gICAgICAgIGlmIChz
ZXR0aW5ncykKLSAgICAgICAgICAgIGdfb2JqZWN0X2dldChzZXR0aW5ncywgImd0ay1zaG93LWlu
cHV0LW1ldGhvZC1tZW51IiwgJnNob3dNZW51LCBOVUxMKTsKLSAgICAgICAgaWYgKCFzaG93TWVu
dSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIFdlYktpdFdlYlZpZXdQcml2
YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKLSAgICBDb250ZXh0TWVudSBpbUNvbnRleHRNZW51
OwotICAgIGd0a19pbV9tdWx0aWNvbnRleHRfYXBwZW5kX21lbnVpdGVtcyhHVEtfSU1fTVVMVElD
T05URVhUKHByaXYtPmltRmlsdGVyLmNvbnRleHQoKSksIEdUS19NRU5VX1NIRUxMKGltQ29udGV4
dE1lbnUucGxhdGZvcm1EZXNjcmlwdGlvbigpKSk7Ci0KLSAgICBDb250ZXh0TWVudUl0ZW0gbWVu
dUl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnSW5wdXRNZXRob2RzLCBjb250ZXh0
TWVudUl0ZW1UYWdJbnB1dE1ldGhvZHMoKSwgJmltQ29udGV4dE1lbnUpOwotICAgIGltQ29udGV4
dE1lbnUucmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKTsKLQotICAgIHJldHVybiBHVEtfV0lE
R0VUKG1lbnVJdGVtLnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKCkpOwotfQotCi1zdGF0aWMg
aW50IGdldFVuaWNvZGVNZW51SXRlbVBvc2l0aW9uKEd0a01lbnUqIG1lbnUpCi17Ci0gICAgR1Vu
aXF1ZVB0cjxHTGlzdD4gaXRlbXMoZ3RrX2NvbnRhaW5lcl9nZXRfY2hpbGRyZW4oR1RLX0NPTlRB
SU5FUihtZW51KSkpOwotICAgIGludCB1bmljb2RlTWVudUl0ZW1Qb3NpdGlvbiA9IC0xOwotICAg
IEdMaXN0KiBpdGVyOwotICAgIGludCBpID0gMDsKLSAgICBmb3IgKGl0ZXIgPSBpdGVtcy5nZXQo
KSwgaSA9IDA7IGl0ZXI7IGl0ZXIgPSBnX2xpc3RfbmV4dChpdGVyKSwgKytpKSB7Ci0gICAgICAg
IEd0a01lbnVJdGVtKiBpdGVtID0gR1RLX01FTlVfSVRFTShpdGVyLT5kYXRhKTsKLSAgICAgICAg
aWYgKEdUS19JU19TRVBBUkFUT1JfTUVOVV9JVEVNKGl0ZW0pKQotICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIGlmIChTdHJpbmc6OmZyb21VVEY4KGd0a19tZW51X2l0ZW1fZ2V0X2xhYmVs
KGl0ZW0pKSA9PSBjb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlKCkpIHsKLSAgICAgICAgICAgIHVu
aWNvZGVNZW51SXRlbVBvc2l0aW9uID0gaTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgfQotICAgIHJldHVybiB1bmljb2RlTWVudUl0ZW1Qb3NpdGlvbjsKLX0KLQotUGxhdGZv
cm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVDbGllbnQ6OmdldEN1c3RvbU1lbnVGcm9tRGVm
YXVsdEl0ZW1zKENvbnRleHRNZW51KiBtZW51KQotewotICAgIEd0a01lbnUqIGd0a21lbnUgPSBt
ZW51LT5yZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpOwotCi0gICAgV2ViS2l0V2ViVmlldyog
d2ViVmlldyA9IG1fd2ViVmlldzsKLSAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGNvcmUod2Vi
VmlldyktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmhpdFRlc3RSZXN1bHQoKTsKLQotICAgIGlm
IChyZXN1bHQuaXNDb250ZW50RWRpdGFibGUoKSkgewotICAgICAgICBHdGtXaWRnZXQqIGltQ29u
dGV4dE1lbnUgPSBpbnB1dE1ldGhvZHNNZW51SXRlbSh3ZWJWaWV3KTsKLSAgICAgICAgaWYgKCFp
bUNvbnRleHRNZW51KQotICAgICAgICAgICAgcmV0dXJuIGd0a21lbnU7Ci0KLSAgICAgICAgLy8g
UGxhY2UgdGhlIGltIGNvbnRleHQgbWVudSBpdGVtIHJpZ2h0IGJlZm9yZSB0aGUgdW5pY29kZSBt
ZW51IGl0ZW0KLSAgICAgICAgLy8gaWYgaXQncyBwcmVzZW50LgotICAgICAgICBpbnQgdW5pY29k
ZU1lbnVJdGVtUG9zaXRpb24gPSBnZXRVbmljb2RlTWVudUl0ZW1Qb3NpdGlvbihndGttZW51KTsK
LSAgICAgICAgaWYgKHVuaWNvZGVNZW51SXRlbVBvc2l0aW9uID09IC0xKSB7Ci0gICAgICAgICAg
ICBHdGtXaWRnZXQqIHNlcGFyYXRvciA9IGd0a19zZXBhcmF0b3JfbWVudV9pdGVtX25ldygpOwot
ICAgICAgICAgICAgZ3RrX21lbnVfc2hlbGxfYXBwZW5kKEdUS19NRU5VX1NIRUxMKGd0a21lbnUp
LCBzZXBhcmF0b3IpOwotICAgICAgICAgICAgZ3RrX3dpZGdldF9zaG93KHNlcGFyYXRvcik7Ci0g
ICAgICAgIH0KLQotICAgICAgICBndGtfbWVudV9zaGVsbF9pbnNlcnQoR1RLX01FTlVfU0hFTEwo
Z3RrbWVudSksIGltQ29udGV4dE1lbnUsIHVuaWNvZGVNZW51SXRlbVBvc2l0aW9uKTsKLSAgICAg
ICAgZ3RrX3dpZGdldF9zaG93KGltQ29udGV4dE1lbnUpOwotICAgIH0KLQotICAgIHJldHVybiBn
dGttZW51OwotfQotCi12b2lkIENvbnRleHRNZW51Q2xpZW50Ojpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZChDb250ZXh0TWVudUl0ZW0qLCBjb25zdCBDb250ZXh0TWVudSopCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDb250ZXh0TWVudUNsaWVudDo6ZG93bmxvYWRVUkwoY29u
c3QgVVJMJiB1cmwpCi17Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIG5ldHdvcmtSZXF1ZXN0
ID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcodXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwotCi0gICAgd2Via2l0X3dlYl92aWV3X3JlcXVlc3RfZG93bmxvYWQobV93ZWJWaWV3LCBuZXR3
b3JrUmVxdWVzdCk7Ci0gICAgZ19vYmplY3RfdW5yZWYobmV0d29ya1JlcXVlc3QpOwotfQotCi12
b2lkIENvbnRleHRNZW51Q2xpZW50Ojpjb3B5SW1hZ2VUb0NsaXBib2FyZChjb25zdCBIaXRUZXN0
UmVzdWx0JikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENvbnRleHRNZW51
Q2xpZW50OjpzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IEZyYW1lKikKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotfQotCi12b2lkIENvbnRleHRNZW51Q2xpZW50Ojpsb29rVXBJbkRpY3Rpb25hcnko
RnJhbWUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgQ29udGV4dE1lbnVD
bGllbnQ6OnNwZWFrKGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQotdm9pZCBDb250ZXh0TWVudUNsaWVudDo6c3RvcFNwZWFraW5nKCkKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotfQotCi1ib29sIENvbnRleHRNZW51Q2xpZW50Ojppc1NwZWFraW5nKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfQotCi0jZW5k
aWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxYTYxMmQwLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IFphY2sgUnVzaW4gPHphY2tA
a2RlLm9yZz4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBDb250ZXh0TWVudUNsaWVudEd0a19oCi0jZGVmaW5lIENvbnRleHRNZW51Q2xpZW50R3Rr
X2gKLQotI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotCi0jaW5jbHVkZSAiQ29udGV4dE1lbnVD
bGllbnQuaCIKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgV2ViS2l0V2ViVmlldzsK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIENvbnRleHRNZW51OwotfQotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotICAgIGNsYXNzIENvbnRleHRNZW51Q2xpZW50IDogcHVibGljIFdl
YkNvcmU6OkNvbnRleHRNZW51Q2xpZW50Ci0gICAgewotICAgIHB1YmxpYzoKLSAgICAgICAgQ29u
dGV4dE1lbnVDbGllbnQoV2ViS2l0V2ViVmlldyopOwotCi0gICAgICAgIHZpcnR1YWwgdm9pZCBj
b250ZXh0TWVudURlc3Ryb3llZCgpOwotCi0gICAgICAgIHZpcnR1YWwgV2ViQ29yZTo6UGxhdGZv
cm1NZW51RGVzY3JpcHRpb24gZ2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoV2ViQ29yZTo6
Q29udGV4dE1lbnUqKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSosIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51
Kik7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkVVJMKGNvbnN0IFdlYkNvcmU6OlVS
TCYgdXJsKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvcHlJbWFnZVRvQ2xpcGJvYXJkKGNvbnN0
IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNlYXJjaFdp
dGhHb29nbGUoY29uc3QgV2ViQ29yZTo6RnJhbWUqKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGxv
b2tVcEluRGljdGlvbmFyeShXZWJDb3JlOjpGcmFtZSopOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
c3BlYWsoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHN0b3BTcGVh
a2luZygpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTcGVha2luZygpOwotCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwotICAgIH07Ci19Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0RldmljZU1vdGlvbkNsaWVudEd0ay5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhZDkyN2UuLjAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50R3RrLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQ29sbGFib3JhIEx0ZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50R3Rr
LmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLURldmljZU1vdGlvbkNsaWVudEd0azo6RGV2
aWNlTW90aW9uQ2xpZW50R3RrKCkKLXsKLX0KLQotRGV2aWNlTW90aW9uQ2xpZW50R3RrOjp+RGV2
aWNlTW90aW9uQ2xpZW50R3RrKCkKLXsKLX0KLQotdm9pZCBEZXZpY2VNb3Rpb25DbGllbnRHdGs6
OmRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwot
fQotCi12b2lkIERldmljZU1vdGlvbkNsaWVudEd0azo6c2V0Q29udHJvbGxlcihEZXZpY2VNb3Rp
b25Db250cm9sbGVyKiBjb250cm9sbGVyKQotewotICAgIG1fY29udHJvbGxlciA9IGNvbnRyb2xs
ZXI7Ci19Ci0KLXZvaWQgRGV2aWNlTW90aW9uQ2xpZW50R3RrOjpzdGFydFVwZGF0aW5nKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIERldmljZU1vdGlvbkNsaWVudEd0azo6
c3RvcFVwZGF0aW5nKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1EZXZpY2VNb3Rp
b25EYXRhKiBEZXZpY2VNb3Rpb25DbGllbnRHdGs6Omxhc3RNb3Rpb24oKSBjb25zdAotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLX0gLy8gbmFtZXNwZWNlIFdl
YktpdAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0RldmljZU1vdGlvbkNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRGV2aWNlTW90aW9uQ2xpZW50R3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDNjNWY0NWIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRGV2aWNlTW90aW9uQ2xpZW50R3RrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQotICogQ29weXJpZ2h0IChDKSAyMDExIENvbGxhYm9yYSBMdGQuCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwot
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAqLwot
I2lmbmRlZiBEZXZpY2VNb3Rpb25DbGllbnRHdGtfaAotI2RlZmluZSBEZXZpY2VNb3Rpb25DbGll
bnRHdGtfaAotCi0jaW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50LmgiCi0jaW5jbHVkZSAiRGV2
aWNlTW90aW9uRGF0YS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgRGV2aWNlTW90
aW9uQ2xpZW50R3RrIDogcHVibGljIFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudCB7Ci1wdWJs
aWM6Ci0gICAgRGV2aWNlTW90aW9uQ2xpZW50R3RrKCk7Ci0gICAgdmlydHVhbCB+RGV2aWNlTW90
aW9uQ2xpZW50R3RrKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihXZWJDb3Jl
OjpEZXZpY2VNb3Rpb25Db250cm9sbGVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRp
bmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCBXZWJD
b3JlOjpEZXZpY2VNb3Rpb25EYXRhKiBsYXN0TW90aW9uKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2
b2lkIGRldmljZU1vdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKLQotcHJpdmF0ZToKLSAgICBX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7Ci19OwotCi19IC8v
IG5hbWVzcGVjZSBXZWJLaXQKLQotI2VuZGlmIC8vIERldmljZU1vdGlvbkNsaWVudEd0a19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EZXZp
Y2VPcmllbnRhdGlvbkNsaWVudEd0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDM2ZDMwM2IuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIENvcHlyaWdodCAoQykgMjAxMSBDb2xsYWJvcmEgTHRk
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKLSNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0ay5oIgotCi0jaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0azo6RGV2aWNlT3JpZW50YXRp
b25DbGllbnRHdGsoKQotewotfQotCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0azo6fkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50R3RrKCkKLXsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudEd0azo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAgICBk
ZWxldGUgdGhpczsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0azo6c2V0Q29u
dHJvbGxlcihEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCi17Ci0gICAg
bV9jb250cm9sbGVyID0gY29udHJvbGxlcjsKLX0KLQotdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudEd0azo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQot
dm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0azo6c3RvcFVwZGF0aW5nKCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi1XZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkRhdGEqIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50R3RrOjpsYXN0T3JpZW50YXRpb24oKSBjb25zdAotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmNhYTJkMi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0ay5oCisrKyAvZGV2L251bGwKQEAg
LTEsNDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqIENvcHlyaWdodCAoQykgMjAxMSBDb2xs
YWJvcmEgTHRkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KLSAqCi0gKi8KLSNpZm5kZWYgRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGtfaAotI2RlZmlu
ZSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0a19oCi0KLSNpbmNsdWRlICJEZXZpY2VPcmllbnRh
dGlvbkNsaWVudC5oIgotI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGsgOiBwdWJs
aWMgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnQgewotcHVibGljOgotICAgIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50R3RrKCk7Ci0gICAgdmlydHVhbCB+RGV2aWNlT3JpZW50YXRpb25D
bGllbnRHdGsoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopOwotICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0
aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpOwotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7Ci0K
LXByaXZhdGU6Ci0gICAgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2Nv
bnRyb2xsZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50R3RrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0RvY3VtZW50TG9hZGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0RvY3VtZW50TG9hZGVyR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjZlMmE2Zi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9Eb2N1bWVudExvYWRlckd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjYgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgIEphbiBNaWNoYWVsIEFsb256bwot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7Ci0gICAgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyR3RrLmgiCi0KLSNpbmNsdWRlICJ3
ZWJraXR3ZWJkYXRhc291cmNlLmgiCi0jaW5jbHVkZSAid2Via2l0d2ViZGF0YXNvdXJjZXByaXZh
dGUuaCIKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0KLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotRG9jdW1lbnRMb2FkZXI6OkRvY3Vt
ZW50TG9hZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Vic3RpdHV0
ZURhdGEmIHN1YnN0aXR1dGVEYXRhKQotICAgIDogV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIocmVx
dWVzdCwgc3Vic3RpdHV0ZURhdGEpCi0gICAgLCBtX2lzRGF0YVNvdXJjZVJlZmZlZChmYWxzZSkK
LSAgICAsIG1fZGF0YVNvdXJjZSgwKQotewotfQotCi12b2lkIERvY3VtZW50TG9hZGVyOjpzZXRE
YXRhU291cmNlKFdlYktpdFdlYkRhdGFTb3VyY2UqIGRhdGFTb3VyY2UpCi17Ci0gICAgQVNTRVJU
KCFtX2RhdGFTb3VyY2UpOwotCi0gICAgbV9kYXRhU291cmNlID0gZGF0YVNvdXJjZTsKLSAgICBy
ZWZEYXRhU291cmNlKCk7Ci19Ci0KLXZvaWQgRG9jdW1lbnRMb2FkZXI6OmRldGFjaERhdGFTb3Vy
Y2UoKQotewotICAgIHVucmVmRGF0YVNvdXJjZSgpOwotfQotCi12b2lkIERvY3VtZW50TG9hZGVy
OjphdHRhY2hUb0ZyYW1lKCkKLXsKLSAgICBXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6YXR0YWNo
VG9GcmFtZSgpOwotCi0gICAgaWYgKG1fZGF0YVNvdXJjZSkgewotICAgICAgICByZWZEYXRhU291
cmNlKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBXZSBtYXkgZ2V0IHRvIGhl
cmUgd2l0aG91dCBoYXZpbmcgYSBkYXRhc291cmNlLCB3aGVuIHRoZSBkYXRhCi0gICAgLy8gaXMg
Y29taW5nIGZyb20gdGhlIHBhZ2UgY2FjaGUuCi0gICAgR1JlZlB0cjxXZWJLaXRXZWJEYXRhU291
cmNlPiBkYXRhU291cmNlKGFkb3B0R1JlZihraXROZXcodGhpcykpKTsKLSAgICBzZXREYXRhU291
cmNlKGRhdGFTb3VyY2UuZ2V0KCkpOwotfQotCi12b2lkIERvY3VtZW50TG9hZGVyOjpkZXRhY2hG
cm9tRnJhbWUoKQotewotICAgIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpkZXRhY2hGcm9tRnJh
bWUoKTsKLQotICAgIGlmIChtX2xvYWRpbmdSZXNvdXJjZXMuaXNFbXB0eSgpKQotICAgICAgICB1
bnJlZkRhdGFTb3VyY2UoKTsKLX0KLQotdm9pZCBEb2N1bWVudExvYWRlcjo6aW5jcmVhc2VMb2Fk
Q291bnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQotewotICAgIEFTU0VSVChtX2RhdGFTb3Vy
Y2UpOwotCi0gICAgaWYgKG1fbG9hZGluZ1Jlc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIG1fbG9hZGluZ1Jlc291cmNlcy5hZGQoaWRlbnRpZmllcik7
Ci0gICAgcmVmRGF0YVNvdXJjZSgpOwotfQotCi12b2lkIERvY3VtZW50TG9hZGVyOjpkZWNyZWFz
ZUxvYWRDb3VudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCi17Ci0gICAgSGFzaFNldDx1bnNp
Z25lZCBsb25nPjo6aXRlcmF0b3IgaXQgPSBtX2xvYWRpbmdSZXNvdXJjZXMuZmluZChpZGVudGlm
aWVyKTsKLQotICAgIC8vIEl0IGlzIHZhbGlkIGZvciBhIGxvYWQgdG8gYmUgY2FuY2VsbGVkIGJl
Zm9yZSBpdCdzIHN0YXJ0ZWQuCi0gICAgaWYgKGl0ID09IG1fbG9hZGluZ1Jlc291cmNlcy5lbmQo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9sb2FkaW5nUmVzb3VyY2VzLnJlbW92ZShpdCk7
Ci0KLSAgICBpZiAobV9sb2FkaW5nUmVzb3VyY2VzLmlzRW1wdHkoKSAmJiAhZnJhbWUoKSkKLSAg
ICAgICAgdW5yZWZEYXRhU291cmNlKCk7Ci19Ci0KLS8vIGhlbHBlciBtZXRob3MgdG8gYXZvaWQg
cmVmIGNvdW50IGNodXJuCi12b2lkIERvY3VtZW50TG9hZGVyOjpyZWZEYXRhU291cmNlKCkKLXsK
LSAgICBpZiAoIW1fZGF0YVNvdXJjZSB8fCBtX2lzRGF0YVNvdXJjZVJlZmZlZCkKLSAgICAgICAg
cmV0dXJuOwotICAgIG1faXNEYXRhU291cmNlUmVmZmVkID0gdHJ1ZTsKLSAgICBnX29iamVjdF9y
ZWYobV9kYXRhU291cmNlKTsKLX0KLXZvaWQgRG9jdW1lbnRMb2FkZXI6OnVucmVmRGF0YVNvdXJj
ZSgpCi17Ci0gICAgaWYgKCFtX2lzRGF0YVNvdXJjZVJlZmZlZCkKLSAgICAgICAgcmV0dXJuOwot
ICAgIEFTU0VSVChtX2RhdGFTb3VyY2UpOwotICAgIG1faXNEYXRhU291cmNlUmVmZmVkID0gZmFs
c2U7Ci0gICAgZ19vYmplY3RfdW5yZWYobV9kYXRhU291cmNlKTsKLSAgICBtX2RhdGFTb3VyY2Ug
PSAwOwotfQotCi19IC8vIGVuZCBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Eb2N1bWVudExvYWRlckd0ay5oIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRG9jdW1lbnRMb2FkZXJHdGsuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmMwNGFjMS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9Eb2N1bWVudExvYWRlckd0ay5oCisrKyAvZGV2L251bGwKQEAgLTEs
NzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgIEphbiBNaWNoYWVsIEFs
b256bwotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBEb2N1bWVudExvYWRlckd0a19oCi0jZGVmaW5lIERvY3VtZW50TG9hZGVyR3RrX2gKLQotI2lu
Y2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCi0jaW5jbHVkZSAid2Via2l0ZGVmaW5lcy5oIgotI2lu
Y2x1ZGUgInd0Zi9IYXNoU2V0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7Ci0gICAgY2xhc3MgU3Vic3RpdHV0ZURhdGE7Ci19Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1jbGFzcyBEb2N1bWVudExvYWRlciA6IHB1YmxpYyBXZWJDb3JlOjpEb2N1
bWVudExvYWRlciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0OjpEb2N1
bWVudExvYWRlcj4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGEmIGRhdGEpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50TG9hZGVyKHJlcXVlc3QsIGRhdGEpKTsKLSAgICB9
Ci0KLSAgICB2b2lkIHNldERhdGFTb3VyY2UoV2ViS2l0V2ViRGF0YVNvdXJjZSopOwotICAgIHZv
aWQgZGV0YWNoRGF0YVNvdXJjZSgpOwotICAgIFdlYktpdFdlYkRhdGFTb3VyY2UqIGRhdGFTb3Vy
Y2UoKSBjb25zdCB7IHJldHVybiBtX2RhdGFTb3VyY2U7IH0KLQotICAgIHZvaWQgaW5jcmVhc2VM
b2FkQ291bnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICB2b2lkIGRlY3JlYXNlTG9h
ZENvdW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7Ci0KLXByaXZhdGU6Ci0gICAgRG9jdW1l
bnRMb2FkZXIoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
U3Vic3RpdHV0ZURhdGEmKTsKLQotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hUb0ZyYW1lKCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGRldGFjaEZyb21GcmFtZSgpOwotCi0gICAgdm9pZCByZWZEYXRhU291
cmNlKCk7Ci0gICAgdm9pZCB1bnJlZkRhdGFTb3VyY2UoKTsKLQotICAgIGJvb2wgbV9pc0RhdGFT
b3VyY2VSZWZmZWQ7Ci0gICAgV2ViS2l0V2ViRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOwotICAg
IEhhc2hTZXQ8dW5zaWduZWQgbG9uZz4gbV9sb2FkaW5nUmVzb3VyY2VzOwotfTsKLQotfSAvLyBl
bmQgbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGFmZGFjMjcuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHJhZ0NsaWVudEd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBJZ2FsaWEgUy5MLgotICoKLSAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRyYWdD
bGllbnRHdGsuaCIKLQotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0KLSNpbmNsdWRlICJDbGlw
Ym9hcmQuaCIKLSNpbmNsdWRlICJDbGlwYm9hcmRVdGlsaXRpZXNHdGsuaCIKLSNpbmNsdWRlICJE
YXRhT2JqZWN0R3RrLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJEcmFnQ29u
dHJvbGxlci5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2lu
Y2x1ZGUgIkdSZWZQdHJHdGsuaCIKLSNpbmNsdWRlICJHVW5pcXVlUHRyR3RrLmgiCi0jaW5jbHVk
ZSAiR3RrVmVyc2lvbmluZy5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVk
ZSAiUGFzdGVib2FyZC5oIgotI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIuaCIKLSNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKLSNp
bmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcu
aCIKLSNpbmNsdWRlIDxnZGsvZ2RrLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5oPgotCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLURyYWdDbGllbnQ6OkRy
YWdDbGllbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLSAgICA6IG1fd2ViVmlldyh3ZWJWaWV3
KQotICAgICwgbV9zdGFydFBvcygwLCAwKQotewotfQotCi1EcmFnQ2xpZW50Ojp+RHJhZ0NsaWVu
dCgpCi17Ci19Ci0KLXZvaWQgRHJhZ0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25B
Y3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFnRGF0YSYpCi17Ci19Ci0KLXZvaWQgRHJh
Z0NsaWVudDo6d2lsbFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKERyYWdTb3VyY2VBY3Rpb24sIGNv
bnN0IEludFBvaW50JiBzdGFydFBvcywgQ2xpcGJvYXJkJikKLXsKLSAgICBtX3N0YXJ0UG9zID0g
c3RhcnRQb3M7Ci19Ci0KLURyYWdEZXN0aW5hdGlvbkFjdGlvbiBEcmFnQ2xpZW50OjphY3Rpb25N
YXNrRm9yRHJhZyhEcmFnRGF0YSYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uQW55OwotfQotCi1EcmFnU291cmNlQWN0aW9uIERyYWdD
bGllbnQ6OmRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIERyYWdTb3VyY2VBY3Rpb25Bbnk7Ci19
Ci0KLXZvaWQgRHJhZ0NsaWVudDo6c3RhcnREcmFnKERyYWdJbWFnZVJlZiBpbWFnZSwgY29uc3Qg
SW50UG9pbnQmIGRyYWdJbWFnZU9yaWdpbiwgY29uc3QgSW50UG9pbnQmIGV2ZW50UG9zLCBDbGlw
Ym9hcmQmIGNsaXBib2FyZCwgRnJhbWUmIGZyYW1lLCBib29sIC8qIGxpbmtEcmFnICovKQotewot
ICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmll
dyhraXQoJmZyYW1lKSk7Ci0gICAgUmVmUHRyPERhdGFPYmplY3RHdGs+IGRhdGFPYmplY3QgPSBj
bGlwYm9hcmQucGFzdGVib2FyZCgpLmRhdGFPYmplY3QoKTsKLSAgICBHUmVmUHRyPEd0a1Rhcmdl
dExpc3Q+IHRhcmdldExpc3QgPSBhZG9wdEdSZWYoUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBh
c3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlzdEZvckRhdGFPYmplY3QoZGF0YU9iamVjdC5nZXQo
KSkpOwotICAgIEdVbmlxdWVQdHI8R2RrRXZlbnQ+IGN1cnJlbnRFdmVudChndGtfZ2V0X2N1cnJl
bnRfZXZlbnQoKSk7Ci0KLSAgICBHZGtEcmFnQ29udGV4dCogY29udGV4dCA9IGd0a19kcmFnX2Jl
Z2luKEdUS19XSURHRVQobV93ZWJWaWV3KSwgdGFyZ2V0TGlzdC5nZXQoKSwgZHJhZ09wZXJhdGlv
blRvR2RrRHJhZ0FjdGlvbnMoY2xpcGJvYXJkLnNvdXJjZU9wZXJhdGlvbigpKSwgMSwgY3VycmVu
dEV2ZW50LmdldCgpKTsKLSAgICB3ZWJWaWV3LT5wcml2LT5kcmFnQW5kRHJvcEhlbHBlci5zdGFy
dGVkRHJhZyhjb250ZXh0LCBkYXRhT2JqZWN0LmdldCgpKTsKLQotICAgIC8vIEEgZHJhZyBzdGFy
dGluZyBzaG91bGQgcHJldmVudCBhIGRvdWJsZS1jbGljayBmcm9tIGhhcHBlbmluZy4gVGhpcyBt
aWdodAotICAgIC8vIGhhcHBlbiBpZiBhIGRyYWcgaXMgZm9sbG93ZWQgdmVyeSBxdWlja2x5IGJ5
IGFub3RoZXIgY2xpY2sgKGxpa2UgaW4gdGhlIERSVCkuCi0gICAgd2ViVmlldy0+cHJpdi0+Y2xp
Y2tDb3VudGVyLnJlc2V0KCk7Ci0KLSAgICBpZiAoaW1hZ2UpIHsKLSAgICAgICAgbV9kcmFnSWNv
bi5zZXRJbWFnZShpbWFnZSk7Ci0gICAgICAgIG1fZHJhZ0ljb24udXNlRm9yRHJhZyhjb250ZXh0
LCBJbnRQb2ludChldmVudFBvcyAtIGRyYWdJbWFnZU9yaWdpbikpOwotICAgIH0gZWxzZQotICAg
ICAgICBndGtfZHJhZ19zZXRfaWNvbl9kZWZhdWx0KGNvbnRleHQpOwotfQotCi12b2lkIERyYWdD
bGllbnQ6OmRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0K
LX0KLQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50R3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFmNzA0OWIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHJhZ0NsaWVudEd0ay5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCi0KLSNpZm5kZWYgRHJhZ0NsaWVudEd0a19oCi0jZGVmaW5lIERyYWdDbGllbnRH
dGtfaAotCi0jaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgotI2luY2x1ZGUgIkRyYWdJY29uLmgiCi0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0
V2ViVmlldyBXZWJLaXRXZWJWaWV3OwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgRHJh
Z0NsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpEcmFnQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBEcmFn
Q2xpZW50KFdlYktpdFdlYlZpZXcqKTsKLSAgICB+RHJhZ0NsaWVudCgpOwotCi0gICAgdmlydHVh
bCB2b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24oV2ViQ29yZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSYpOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURy
YWdTb3VyY2VBY3Rpb24oV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBXZWJDb3JlOjpDbGlwYm9hcmQmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkRy
YWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhXZWJDb3JlOjpEcmFnRGF0YSYp
OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9u
TWFza0ZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB3aW5kb3dQb2ludCk7Ci0gICAg
dmlydHVhbCB2b2lkIHN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBkcmFnSW1hZ2VPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBl
dmVudFBvcywgV2ViQ29yZTo6Q2xpcGJvYXJkJiwgV2ViQ29yZTo6RnJhbWUmLCBib29sIGxpbmtE
cmFnID0gZmFsc2UpOwotCi1wcml2YXRlOgotICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsK
LSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX3N0YXJ0UG9zOwotICAgIFdlYkNvcmU6OkRyYWdJY29u
IG1fZHJhZ0ljb247Ci19OwotfQotCi0jZW5kaWYKLQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NV
UFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjdlN2ExNy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjk3
ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogIENvcHlyaWdodCAoQykgMjAxMCBKb29u
ZSBIdXIgPGpvb25lQGtsZHAub3JnPgotICogIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgotICogIENvcHlyaWdodCAoQykgMjAxMiwgMjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgiCi0KLSNpbmNsdWRlICJB
UElDYXN0LmgiCi0jaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgotI2luY2x1ZGUgIkFjY2Vzc2li
aWxpdHlPYmplY3QuaCIKLSNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVk
ZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKLSNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNs
dWRlICJDaHJvbWVDbGllbnRHdGsuaCIKLSNpbmNsdWRlICJET01XcmFwcGVyV29ybGQuaCIKLSNp
bmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkVkaXRvci5oIgotI2luY2x1ZGUgIkVkaXRv
ckNsaWVudEd0ay5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJGb2N1c0NvbnRy
b2xsZXIuaCIKLSNpbmNsdWRlICJGcmFtZVRyZWUuaCIKLSNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
LSNpbmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudE1v
Y2suaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJHZW9s
b2NhdGlvbkVycm9yLmgiCi0jaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgotI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKLSNp
bmNsdWRlICJKU0NKU1ZhbHVlLmgiCi0jaW5jbHVkZSAiSlNDU1NTdHlsZURlY2xhcmF0aW9uLmgi
Ci0jaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKLSNpbmNsdWRlICJKU0RvY3VtZW50LmgiCi0jaW5j
bHVkZSAiSlNFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVkZSAiSlNOb2Rl
TGlzdC5oIgotI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCi0jaW5jbHVkZSAiTXV0YXRpb25PYnNl
cnZlci5oIgotI2luY2x1ZGUgIk5vZGVMaXN0LmgiCi0jaW5jbHVkZSAiUGFnZUdyb3VwLmgiCi0j
aW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCi0jaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKLSNp
bmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVkZSAiUmVuZGVyVmlldy5oIgotI2lu
Y2x1ZGUgIlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgotI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKLSNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRlICJTZXR0
aW5ncy5oIgotI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgotI2luY2x1ZGUgIlZpc2libGVTZWxl
Y3Rpb24uaCIKLSNpbmNsdWRlICJXZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5oIgotI2luY2x1
ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0d2ViZnJhbWUuaCIK
LSNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ2
aWV3LmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKLSNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9BUElDYXN0Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0K
LXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7Ci0KLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2RydFJ1
biA9IGZhbHNlOwotYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRl
ZEluVGFiQ2hhaW4gPSB0cnVlOwotRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFtZUxvYWRF
dmVudENhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENh
bGxiYWNrID0gMDsKLUR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRpb25DYWxs
YmFjayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxsYmFjayA9
IDA7Ci0KLXN0YXRpYyBpbmxpbmUgV2ViQ29yZTo6RmluZE9wdGlvbnMgdG9XZWJDb3JlRmluZE9w
dGlvbnMoV2ViS2l0RmluZE9wdGlvbnMgdHlwZSkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RmluZE9wdGlvbnM+KCh0eXBlICYgV2ViRmluZE9wdGlvbnNDYXNlSW5zZW5zaXRp
dmUgPyBDYXNlSW5zZW5zaXRpdmUgOiAwKQotICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9wdGlv
bnNBdFdvcmRTdGFydHMgPyBBdFdvcmRTdGFydHMgOiAwKQotICAgICAgICB8ICh0eXBlICYgV2Vi
RmluZE9wdGlvbnNUcmVhdE1lZGlhbENhcGl0YWxBc1dvcmRTdGFydCA/IFRyZWF0TWVkaWFsQ2Fw
aXRhbEFzV29yZFN0YXJ0IDogMCkKLSAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25zQmFj
a3dhcmRzID8gQmFja3dhcmRzIDogMCkKLSAgICAgICAgfCAodHlwZSAmIFdlYkZpbmRPcHRpb25z
V3JhcEFyb3VuZCA/IFdyYXBBcm91bmQgOiAwKQotICAgICAgICB8ICh0eXBlICYgV2ViRmluZE9w
dGlvbnNTdGFydEluU2VsZWN0aW9uID8gU3RhcnRJblNlbGVjdGlvbiA6IDApKTsKLX0KLQotRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsoKQotewotfQot
Ci1EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6On5EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsoKQot
ewotfQotCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RHVtcFJlbmRlclRyZWVN
b2RlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgc19kcnRSdW4gPSBlbmFibGVkOwotfQot
Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcFJlbmRlclRyZWVNb2RlRW5hYmxl
ZCgpCi17Ci0gICAgcmV0dXJuIHNfZHJ0UnVuOwotfQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnNldExpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oYm9vbCBlbmFibGVkKQotewotICAg
IHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW4gPSBlbmFibGVkOwotfQotCi1ib29sIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCi17Ci0gICAgcmV0
dXJuIHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW47Ci19Ci0KLS8qKgotICogZ2V0RnJhbWVDaGls
ZHJlbjoKLSAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKLSAqCi0gKiBSZXR1cm4gdmFsdWU6
IGNoaWxkIGZyYW1lcyBvZiBAZnJhbWUKLSAqLwotR1NMaXN0KiBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OmdldEZyYW1lQ2hpbGRyZW4oV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCAwKTsKLQotICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBHU0xpc3QqIGNoaWxkcmVuID0gMDsKLSAgICBmb3IgKEZy
YW1lKiBjaGlsZCA9IGNvcmVGcmFtZS0+dHJlZSgpLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQtPnRyZWUoKS5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIFdlYktpdFdlYkZyYW1l
KiBraXRGcmFtZSA9IGtpdChjaGlsZCk7Ci0gICAgICAgIGlmIChraXRGcmFtZSkKLSAgICAgICAg
ICBjaGlsZHJlbiA9IGdfc2xpc3RfYXBwZW5kKGNoaWxkcmVuLCBraXRGcmFtZSk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIGNoaWxkcmVuOwotfQotCi0vKioKLSAqIGdldElubmVyVGV4dDoKLSAqIEBm
cmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKLSAqCi0gKiBSZXR1cm4gdmFsdWU6IGlubmVyIHRleHQg
b2YgQGZyYW1lCi0gKi8KLUNTdHJpbmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnZXRJbm5l
clRleHQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBDU3RyaW5nKCIiKSk7Ci0KLSAgICBGcmFtZSog
Y29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJl
dHVybiBDU3RyaW5nKCIiKTsKLQotICAgIEZyYW1lVmlldyogdmlldyA9IGNvcmVGcmFtZS0+dmll
dygpOwotICAgIGlmICh2aWV3ICYmIHZpZXctPmxheW91dFBlbmRpbmcoKSkKLSAgICAgICAgdmll
dy0+bGF5b3V0KCk7Ci0KLSAgICBFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQgPSBjb3JlRnJhbWUt
PmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpOwotICAgIGlmICghZG9jdW1lbnRFbGVtZW50
KQotICAgICAgICByZXR1cm4gQ1N0cmluZygiIik7Ci0gICAgcmV0dXJuIGRvY3VtZW50RWxlbWVu
dC0+aW5uZXJUZXh0KCkudXRmOCgpOwotfQotCi0vKioKLSAqIGR1bXBSZW5kZXJUcmVlOgotICog
QGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQotICoKLSAqIFJldHVybiB2YWx1ZTogTm9uLXJlY3Vy
c2l2ZSByZW5kZXIgdHJlZSBkdW1wIG9mIEBmcmFtZQotICovCi1DU3RyaW5nIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6ZHVtcFJlbmRlclRyZWUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewot
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBDU3Ry
aW5nKCIiKSk7Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgaWYg
KCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiBDU3RyaW5nKCIiKTsKLQotICAgIEZyYW1lVmll
dyogdmlldyA9IGNvcmVGcmFtZS0+dmlldygpOwotCi0gICAgaWYgKHZpZXcgJiYgdmlldy0+bGF5
b3V0UGVuZGluZygpKQotICAgICAgICB2aWV3LT5sYXlvdXQoKTsKLQotICAgIHJldHVybiBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKGNvcmVGcmFtZSkudXRmOCgpOwotfQotCi12b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6YWRkVXNlclNjcmlwdChXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNv
bnN0IGNoYXIqIHNvdXJjZUNvZGUsIGJvb2wgcnVuQXRTdGFydCwgYm9vbCBhbGxGcmFtZXMpCi17
Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSk7Ci0KLSAg
ICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJv
bUZyYW1lKGZyYW1lKTsKLSAgICBQYWdlKiBwYWdlID0gY29yZSh3ZWJWaWV3KTsKLSAgICBwYWdl
LT5ncm91cCgpLmFkZFVzZXJTY3JpcHRUb1dvcmxkKG1haW5UaHJlYWROb3JtYWxXb3JsZCgpLCBz
b3VyY2VDb2RlLCBVUkwoKSwgVmVjdG9yPFN0cmluZz4oKSwgVmVjdG9yPFN0cmluZz4oKSwKLSAg
ICAgICAgcnVuQXRTdGFydCA/IEluamVjdEF0RG9jdW1lbnRTdGFydCA6IEluamVjdEF0RG9jdW1l
bnRFbmQsIGFsbEZyYW1lcyA/IEluamVjdEluQWxsRnJhbWVzIDogSW5qZWN0SW5Ub3BGcmFtZU9u
bHkpOwotfQotCi0vKioKLSAqIGFkZFVzZXJTdHlsZVNoZWV0Ci0gKiBAZnJhbWU6IGEgI1dlYktp
dFdlYkZyYW1lCi0gKiBAc291cmNlQ29kZTogY29kZSBvZiBhIHVzZXIgc3R5bGVzaGVldAotICoK
LSAqLwotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmFkZFVzZXJTdHlsZVNoZWV0KFdl
YktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciogc291cmNlQ29kZSwgYm9vbCBhbGxGcmFt
ZXMpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSk7
Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJh
bWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRW
aWV3RnJvbUZyYW1lKGZyYW1lKTsKLSAgICBQYWdlKiBwYWdlID0gY29yZSh3ZWJWaWV3KTsKLSAg
ICBwYWdlLT5ncm91cCgpLmFkZFVzZXJTdHlsZVNoZWV0VG9Xb3JsZChtYWluVGhyZWFkTm9ybWFs
V29ybGQoKSwgc291cmNlQ29kZSwgVVJMKCksIFZlY3RvcjxTdHJpbmc+KCksIFZlY3RvcjxTdHJp
bmc+KCksIGFsbEZyYW1lcyA/IEluamVjdEluQWxsRnJhbWVzIDogSW5qZWN0SW5Ub3BGcmFtZU9u
bHkpOyAKLX0KLQotLyoqCi0gKiBnZXRQZW5kaW5nVW5sb2FkRXZlbnRDb3VudDoKLSAqIEBmcmFt
ZTogYSAjV2ViS2l0V2ViRnJhbWUKLSAqCi0gKiBSZXR1cm4gdmFsdWU6IG51bWJlciBvZiBwZW5k
aW5nIHVubG9hZCBldmVudHMKLSAqLwotZ3VpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpn
ZXRQZW5kaW5nVW5sb2FkRXZlbnRDb3VudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCi17Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIDApOwotCi0g
ICAgcmV0dXJuIGNvcmUoZnJhbWUpLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+cGVuZGluZ1Vu
bG9hZEV2ZW50TGlzdGVuZXJzKCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpjbGVhck1haW5GcmFtZU5hbWUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSkpOwotCi0gICAgY29yZShmcmFt
ZSktPnRyZWUoKS5jbGVhck5hbWUoKTsKLX0KLQotQXRrT2JqZWN0KiBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmdldFJvb3RBY2Nlc3NpYmxlRWxlbWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUp
Ci17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSks
IDApOwotCi0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIGlmICghQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKLSAgICAgICAgQVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNj
ZXNzaWJpbGl0eSgpOwotCi0gICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUt
PnByaXY7Ci0gICAgaWYgKCFwcml2LT5jb3JlRnJhbWUgfHwgIXByaXYtPmNvcmVGcmFtZS0+ZG9j
dW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBdGtPYmplY3QqIHdyYXBwZXIgPSAg
cHJpdi0+Y29yZUZyYW1lLT5kb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnJvb3RPYmplY3Qo
KS0+d3JhcHBlcigpOwotICAgIGlmICghd3JhcHBlcikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg
ICByZXR1cm4gd3JhcHBlcjsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKLX0KLQotQXRr
T2JqZWN0KiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmdldEZvY3VzZWRBY2Nlc3NpYmxlRWxl
bWVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCi17Ci0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQot
ICAgIEF0a09iamVjdCogd3JhcHBlciA9IGdldFJvb3RBY2Nlc3NpYmxlRWxlbWVudChmcmFtZSk7
Ci0gICAgaWYgKCF3cmFwcGVyKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiB3ZWJr
aXRBY2Nlc3NpYmxlR2V0Rm9jdXNlZEVsZW1lbnQoV0VCS0lUX0FDQ0VTU0lCTEUod3JhcHBlcikp
OwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQotCi12b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIGNvbnN0IGdjaGFyKiBuYW1lLCBjb25zdCBnY2hhciogdmFsdWUpCi17Ci0gICAgZ19yZXR1
cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdfcmV0dXJuX2lm
X2ZhaWwobmFtZSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7Ci0KLSAgICBjb3JlKHdl
YlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5lZGl0b3IoKS5j
b21tYW5kKG5hbWUpLmV4ZWN1dGUodmFsdWUpOwotfQotCi1ib29sIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6aXNDb21tYW5kRW5hYmxlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBn
Y2hhciogbmFtZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJ
RVcod2ViVmlldyksIEZBTFNFKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChuYW1lLCBGQUxT
RSk7Ci0KLSAgICByZXR1cm4gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNl
ZE9yTWFpbkZyYW1lKCkuZWRpdG9yKCkuY29tbWFuZChuYW1lKS5pc0VuYWJsZWQoKTsKLX0KLQot
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldENvbXBvc2l0aW9uKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIGNvbnN0IGNoYXIqIHRleHQsIGludCBzdGFydCwgaW50IGxlbmd0aCkKLXsK
LSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Ci0gICAg
Z19yZXR1cm5faWZfZmFpbCh0ZXh0KTsKLQotICAgIEZyYW1lJiBmcmFtZSA9IGNvcmUod2ViVmll
dyktPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIEVkaXRvciYg
ZWRpdG9yID0gZnJhbWUuZWRpdG9yKCk7Ci0gICAgaWYgKCFlZGl0b3IuY2FuRWRpdCgpICYmICFl
ZGl0b3IuaGFzQ29tcG9zaXRpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgU3RyaW5nIGNv
bXBvc2l0aW9uU3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOCh0ZXh0KTsKLSAgICBWZWN0b3I8Q29t
cG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXM7Ci0gICAgdW5kZXJsaW5lcy5hcHBlbmQoQ29t
cG9zaXRpb25VbmRlcmxpbmUoMCwgY29tcG9zaXRpb25TdHJpbmcubGVuZ3RoKCksIENvbG9yKDAs
IDAsIDApLCBmYWxzZSkpOwotICAgIGVkaXRvci5zZXRDb21wb3NpdGlvbihjb21wb3NpdGlvblN0
cmluZywgdW5kZXJsaW5lcywgc3RhcnQsIHN0YXJ0ICsgbGVuZ3RoKTsKLX0KLQotYm9vbCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6Omhhc0NvbXBvc2l0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZp
ZXcpLCBmYWxzZSk7Ci0gICAgRnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250
cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgcmV0dXJuIGZyYW1lLmVkaXRvcigp
Lmhhc0NvbXBvc2l0aW9uKCk7Ci19Ci0KLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpj
b21wb3NpdGlvblJhbmdlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGludCogc3RhcnQsIGludCog
bGVuZ3RoKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0YXJ0ICYmIGxlbmd0aCwgZmFs
c2UpOwotICAgICpzdGFydCA9ICpsZW5ndGggPSAwOwotCi0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBmYWxzZSk7Ci0gICAgRnJhbWUmIGZyYW1l
ID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7
Ci0gICAgRWRpdG9yJiBlZGl0b3IgPSBmcmFtZS5lZGl0b3IoKTsKLSAgICBpZiAoIWVkaXRvci5o
YXNDb21wb3NpdGlvbigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAqc3RhcnQgPSBl
ZGl0b3IuY29tcG9zaXRpb25TdGFydCgpOwotICAgICpsZW5ndGggPSBlZGl0b3IuY29tcG9zaXRp
b25FbmQoKSAtICpzdGFydDsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OmNvbmZpcm1Db21wb3NpdGlvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBjb25zdCBjaGFyKiB0ZXh0KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9WSUVXKHdlYlZpZXcpKTsKLQotICAgIEZyYW1lJiBmcmFtZSA9IGNvcmUod2ViVmlldyktPmZv
Y3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIEVkaXRvciYgZWRpdG9y
ID0gZnJhbWUuZWRpdG9yKCk7Ci0KLSAgICBpZiAoIWVkaXRvci5oYXNDb21wb3NpdGlvbigpKSB7
Ci0gICAgICAgIGVkaXRvci5pbnNlcnRUZXh0KFN0cmluZzo6ZnJvbVVURjgodGV4dCksIDApOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmICh0ZXh0KSB7Ci0gICAgICAgIGVkaXRvci5j
b25maXJtQ29tcG9zaXRpb24oU3RyaW5nOjpmcm9tVVRGOCh0ZXh0KSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgZWRpdG9yLmNvbmZpcm1Db21wb3NpdGlvbigpOwotfQotCi12b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZG9Db21tYW5kKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IGNvbnN0IGNoYXIqIGNvbW1hbmQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNf
V0VCX1ZJRVcod2ViVmlldykpOwotICAgIEZyYW1lJiBmcmFtZSA9IGNvcmUod2ViVmlldyktPmZv
Y3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIEVkaXRvciYgZWRpdG9y
ID0gZnJhbWUuZWRpdG9yKCk7Ci0KLSAgICBTdHJpbmcgY29tbWFuZFN0cmluZyhjb21tYW5kKTsK
LSAgICAvLyBSZW1vdmUgZW5kaW5nIDogaGVyZS4KLSAgICBpZiAoY29tbWFuZFN0cmluZy5lbmRz
V2l0aCgiOiIsIHRydWUpKQotICAgICAgICBjb21tYW5kU3RyaW5nID0gY29tbWFuZFN0cmluZy5s
ZWZ0KGNvbW1hbmRTdHJpbmcubGVuZ3RoKCkgLSAxKTsKLQotICAgIC8vIE1ha2UgdGhlIGZpcnN0
IGNoYXIgaW4gdXBwZXIgY2FzZS4KLSAgICBTdHJpbmcgZmlyc3RDaGFyID0gY29tbWFuZFN0cmlu
Zy5sZWZ0KDEpOwotICAgIGNvbW1hbmRTdHJpbmcgPSBjb21tYW5kU3RyaW5nLnJpZ2h0KGNvbW1h
bmRTdHJpbmcubGVuZ3RoKCkgLSAxKTsKLSAgICBjb21tYW5kU3RyaW5nLmluc2VydChmaXJzdENo
YXIudXBwZXIoKSwgMCk7Ci0KLSAgICBlZGl0b3IuY29tbWFuZChjb21tYW5kU3RyaW5nKS5leGVj
dXRlKCk7Ci19Ci0KLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJzdFJlY3RGb3JD
aGFyYWN0ZXJSYW5nZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgbG9jYXRpb24sIGludCBs
ZW5ndGgsIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCogcmVjdCkKLXsKLSAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIGZhbHNlKTsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChyZWN0LCBmYWxzZSk7Ci0KLSAgICBpZiAoKGxvY2F0aW9uICsgbGVuZ3Ro
IDwgbG9jYXRpb24pICYmIChsb2NhdGlvbiArIGxlbmd0aCkpCi0gICAgICAgIGxlbmd0aCA9IDA7
Ci0KLSAgICBGcmFtZSYgZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS5m
b2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBFZGl0b3ImIGVkaXRvciA9IGZyYW1lLmVkaXRvcigp
OwotCi0gICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFRleHRJdGVyYXRvcjo6cmFuZ2VGcm9tTG9j
YXRpb25BbmRMZW5ndGgoZnJhbWUuc2VsZWN0aW9uKCkucm9vdEVkaXRhYmxlRWxlbWVudE9yRG9j
dW1lbnRFbGVtZW50KCksIGxvY2F0aW9uLCBsZW5ndGgpOwotICAgIGlmICghcmFuZ2UpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgICpyZWN0ID0gZWRpdG9yLmZpcnN0UmVjdEZvclJhbmdl
KHJhbmdlLmdldCgpKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OnNlbGVjdGVkUmFuZ2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgaW50KiBz
dGFydCwgaW50KiBsZW5ndGgpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lT
X1dFQl9WSUVXKHdlYlZpZXcpLCBmYWxzZSk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc3Rh
cnQgJiYgbGVuZ3RoLCBmYWxzZSk7Ci0KLSAgICBGcmFtZSYgZnJhbWUgPSBjb3JlKHdlYlZpZXcp
LT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLQotICAgIGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiA9IGZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigp
OwotICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2Uo
KS5nZXQoKTsKLSAgICBpZiAoIXJhbmdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBF
bGVtZW50KiBzZWxlY3Rpb25Sb290ID0gc2VsZWN0aW9uLnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsK
LSAgICBFbGVtZW50KiBzY29wZSA9IHNlbGVjdGlvblJvb3QgPyBzZWxlY3Rpb25Sb290IDogZnJh
bWUuZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7Ci0KLSAgICBSZWZQdHI8UmFuZ2U+IHRl
c3RSYW5nZSA9IFJhbmdlOjpjcmVhdGUoc2NvcGUtPmRvY3VtZW50KCksIHNjb3BlLCAwLCByYW5n
ZS0+c3RhcnRDb250YWluZXIoKSwgcmFuZ2UtPnN0YXJ0T2Zmc2V0KCkpOwotICAgIEFTU0VSVCh0
ZXN0UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCkgPT0gc2NvcGUpOwotICAgICpzdGFydCA9IFRleHRJ
dGVyYXRvcjo6cmFuZ2VMZW5ndGgodGVzdFJhbmdlLmdldCgpKTsKLQotICAgIEV4Y2VwdGlvbkNv
ZGUgZWM7Ci0gICAgdGVzdFJhbmdlLT5zZXRFbmQocmFuZ2UtPmVuZENvbnRhaW5lcigpLCByYW5n
ZS0+ZW5kT2Zmc2V0KCksIGVjKTsKLSAgICBBU1NFUlQodGVzdFJhbmdlLT5zdGFydENvbnRhaW5l
cigpID09IHNjb3BlKTsKLSAgICAqbGVuZ3RoID0gVGV4dEl0ZXJhdG9yOjpyYW5nZUxlbmd0aCh0
ZXN0UmFuZ2UuZ2V0KCkpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpzZXREZWZlcnNMb2FkaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IGJvb2wgZGVmZXJzKQotewotICAgIGNvcmUod2ViVmlldyktPnNldERlZmVyc0xvYWRpbmcoZGVm
ZXJzKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZvcmNlV2ViVmlld1Bh
aW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotCi0gICAgc3RhdGljX2Nhc3Q8V2ViS2l0OjpDaHJv
bWVDbGllbnQmPihjb3JlKHdlYlZpZXcpLT5jaHJvbWUoKS5jbGllbnQoKSkuZm9yY2VQYWludCgp
OwotfQotCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6d2hpdGVMaXN0QWNjZXNzRnJv
bU9yaWdpbihjb25zdCBnY2hhciogc291cmNlT3JpZ2luLCBjb25zdCBnY2hhciogZGVzdGluYXRp
b25Qcm90b2NvbCwgY29uc3QgZ2NoYXIqIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3Rp
bmF0aW9uU3ViZG9tYWlucykKLXsKLSAgICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkoKlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9y
aWdpbiksIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOwotfQotCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVt
b3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihjb25zdCBjaGFyKiBzb3VyY2VPcmlnaW4sIGNv
bnN0IGNoYXIqIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uSG9z
dCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKLXsKLSAgICBTZWN1cml0eVBvbGlj
eTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKlNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiksIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0
aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwotfQotCi12b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzKCkKLXsKLSAgICBT
ZWN1cml0eVBvbGljeTo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7Ci19Ci0KLXZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnY0NvbGxlY3RKYXZhc2NyaXB0T2JqZWN0cygpCi17
Ci0gICAgZ2NDb250cm9sbGVyKCkuZ2FyYmFnZUNvbGxlY3ROb3coKTsKLX0KLQotdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OmdjQ29sbGVjdEphdmFzY3JpcHRPYmplY3RzT25BbHRlcm5h
dGVUaHJlYWQoYm9vbCB3YWl0VW50aWxEb25lKQotewotICAgIGdjQ29udHJvbGxlcigpLmdhcmJh
Z2VDb2xsZWN0T25BbHRlcm5hdGVUaHJlYWRGb3JEZWJ1Z2dpbmcod2FpdFVudGlsRG9uZSk7Ci19
Ci0KLXVuc2lnbmVkIGxvbmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpnY0NvdW50SmF2YXNj
cmlwdE9iamVjdHMoKQotewotICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6
OmNvbW1vblZNKCkpOwotICAgIHJldHVybiBKU0RPTVdpbmRvdzo6Y29tbW9uVk0oKS5oZWFwLm9i
amVjdENvdW50KCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpsYXlvdXRG
cmFtZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCi17Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNv
cmUoZnJhbWUpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBG
cmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKLSAgICBpZiAoIXZpZXcpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIHZpZXctPmxheW91dCgpOwotfQotCi12b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6Y2xlYXJPcGVuZXIoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKLSAgICBpZiAoY29yZUZyYW1lKQotICAg
ICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLnNldE9wZW5lcigwKTsKLX0KLQotYm9vbCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRTdHJpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29u
c3QgZ2NoYXIqIHRhcmdldFN0cmluZywgV2ViS2l0RmluZE9wdGlvbnMgZmluZE9wdGlvbnMpCi17
Ci0gICAgcmV0dXJuIGNvcmUod2ViVmlldyktPmZpbmRTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOCh0
YXJnZXRTdHJpbmcpLCB0b1dlYkNvcmVGaW5kT3B0aW9ucyhmaW5kT3B0aW9ucykpOwotfQotCi12
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0VmFsdWVGb3JVc2VyKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU1ZhbHVlUmVmIG5vZGVPYmplY3QsIEpTU3RyaW5nUmVmIHZhbHVlKQotewot
ICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsKLSAgICBFbGVtZW50KiBl
bGVtZW50ID0gdG9FbGVtZW50KHRvSlMoZXhlYywgbm9kZU9iamVjdCkpOwotICAgIGlmICghZWxl
bWVudCkKLSAgICAgICAgcmV0dXJuOwotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVu
dCA9IGVsZW1lbnQtPnRvSW5wdXRFbGVtZW50KCk7Ci0gICAgaWYgKCFpbnB1dEVsZW1lbnQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIHNpemVfdCBidWZmZXJTaXplID0gSlNTdHJpbmdHZXRNYXhp
bXVtVVRGOENTdHJpbmdTaXplKHZhbHVlKTsKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiB2YWx1ZUJ1
ZmZlcihzdGF0aWNfY2FzdDxnY2hhcio+KGdfbWFsbG9jKGJ1ZmZlclNpemUpKSk7Ci0gICAgSlNT
dHJpbmdHZXRVVEY4Q1N0cmluZyh2YWx1ZSwgdmFsdWVCdWZmZXIuZ2V0KCksIGJ1ZmZlclNpemUp
OwotICAgIGlucHV0RWxlbWVudC0+c2V0VmFsdWVGb3JVc2VyKFN0cmluZzo6ZnJvbVVURjgodmFs
dWVCdWZmZXIuZ2V0KCkpKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJl
Y3RhbmdsZUZvclNlbGVjdGlvbihXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNhaXJvX3JlY3Rhbmds
ZV9pbnRfdCogcmVjdGFuZ2xlKQotewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1l
KTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSW50UmVjdCBi
b3VuZHMgPSBlbmNsb3NpbmdJbnRSZWN0KGNvcmVGcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9u
Qm91bmRzKCkpOwotICAgIHJlY3RhbmdsZS0+eCA9IGJvdW5kcy54KCk7Ci0gICAgcmVjdGFuZ2xl
LT55ID0gYm91bmRzLnkoKTsKLSAgICByZWN0YW5nbGUtPndpZHRoID0gYm91bmRzLndpZHRoKCk7
Ci0gICAgcmVjdGFuZ2xlLT5oZWlnaHQgPSBib3VuZHMuaGVpZ2h0KCk7Ci19Ci0KLWJvb2wgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzaG91bGRDbG9zZShXZWJLaXRXZWJGcmFtZSogZnJhbWUp
Ci17Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOwotICAgIGlmICghY29yZUZy
YW1lKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gY29yZUZyYW1lLT5sb2FkZXIo
KS5zaG91bGRDbG9zZSgpOwotfQotCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2Nh
bGVQYWdlQnkoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZmxvYXQgc2NhbGVGYWN0b3IsIGZsb2F0
IHgsIGZsb2F0IHkpCi17Ci0gICAgY29yZSh3ZWJWaWV3KS0+c2V0UGFnZVNjYWxlRmFjdG9yKHNj
YWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KQotewotI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLSAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sq
IG1vY2sgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihHZW9sb2NhdGlvbkNv
bnRyb2xsZXI6OmZyb20oY29yZSh3ZWJWaWV3KSktPmNsaWVudCgpKTsKLSAgICBtb2NrLT5yZXNl
dCgpOwotI2VuZGlmCi19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2Nr
R2VvbG9jYXRpb25QZXJtaXNzaW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wgYWxsb3dl
ZCkKLXsKLSNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCi0gICAgR2VvbG9jYXRpb25DbGllbnRNb2Nr
KiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oR2VvbG9jYXRpb25D
b250cm9sbGVyOjpmcm9tKGNvcmUod2ViVmlldykpLT5jbGllbnQoKSk7Ci0gICAgbW9jay0+c2V0
UGVybWlzc2lvbihhbGxvd2VkKTsKLSNlbmRpZgotfQotCi12b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oV2ViS2l0V2ViVmlldyogd2ViVmll
dywgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCi17
Ci0jaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9j
ayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KEdlb2xvY2F0aW9uQ29udHJv
bGxlcjo6ZnJvbShjb3JlKHdlYlZpZXcpKS0+Y2xpZW50KCkpOwotCi0gICAgZG91YmxlIHRpbWVz
dGFtcCA9IGdfZ2V0X3JlYWxfdGltZSgpIC8gMTAwMDAwMC4wOwotICAgIG1vY2stPnNldFBvc2l0
aW9uKEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZSh0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25n
aXR1ZGUsIGFjY3VyYWN5KSk7Ci0jZW5kaWYKLX0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogZXJyb3JNZXNzYWdlKQotewotI2lmIEVOQUJM
RShHRU9MT0NBVElPTikKLSAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNf
Y2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20o
Y29yZSh3ZWJWaWV3KSktPmNsaWVudCgpKTsKLSAgICBtb2NrLT5zZXRQb3NpdGlvblVuYXZhaWxh
YmxlRXJyb3IoZXJyb3JNZXNzYWdlKTsKLSNlbmRpZgotfQotCi1pbnQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLSAgICBH
ZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVu
dE1vY2sqPihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20oY29yZSh3ZWJWaWV3KSktPmNsaWVu
dCgpKTsKLSAgICByZXR1cm4gbW9jay0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJlcXVlc3Rz
KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0KLXZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgYm9vbCBlbmFibGVkKQotewotICAgIGNvcmUod2ViVmlldyktPnNldHRpbmdzKCku
c2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKGVuYWJsZWQpOwotfQotCi12b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgYm9vbCBlbmFibGVkKQotewotICAgIGNvcmUod2ViVmlldyktPnNldHRpbmdzKCku
c2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRDU1NSZWdpb25zRW5hYmxlZChXZWJLaXRXZWJWaWV3KiwgYm9vbCBl
bmFibGVkKQotewotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c2V0Q1NTUmVnaW9uc0VuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpzZXRFeHBlcmltZW50YWxDb250ZW50U2VjdXJpdHlQb2xpY3lGZWF0dXJlc0Vu
YWJsZWQoYm9vbCBlbmFibGVkKQotewotI2lmIEVOQUJMRShDU1BfTkVYVCkKLSAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEV4cGVyaW1lbnRhbENvbnRlbnRT
ZWN1cml0eVBvbGljeUZlYXR1cmVzRW5hYmxlZChlbmFibGVkKTsKLSNlbmRpZgotfQotCi12b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5
KCkKLXsKLSAgICBNdXRhdGlvbk9ic2VydmVyOjpkZWxpdmVyQWxsTXV0YXRpb25zKCk7Ci19Ci0K
LXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlk
ZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25zdCBjaGFyKiB1cmxTY2hlbWUpCi17
Ci0gICAgU2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxT
Y2hlbWUoZm9yYmlkZGVuLCBTdHJpbmc6OmZyb21VVEY4KHVybFNjaGVtZSkpOwotfQotCi12b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGJvb2wgZW5h
YmxlZCkKLXsKLSAgICByZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS0+c2V0U2VyaWFsTG9hZGluZ0Vu
YWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRU
cmFja3NSZXBhaW50cyhXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGJvb2wgdHJhY2tzKQotewotICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSkpOwotCi0gICAgRnJh
bWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOwotICAgIGlmIChjb3JlRnJhbWUgJiYgY29yZUZy
YW1lLT52aWV3KCkpCi0gICAgICAgIGNvcmVGcmFtZS0+dmlldygpLT5zZXRUcmFja3NSZXBhaW50
cyh0cmFja3MpOwotfQotCi1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6aXNUcmFja2lu
Z1JlcGFpbnRzKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgZmFsc2UpOwotCi0gICAgRnJhbWUqIGNv
cmVGcmFtZSA9IGNvcmUoZnJhbWUpOwotICAgIGlmIChjb3JlRnJhbWUgJiYgY29yZUZyYW1lLT52
aWV3KCkpCi0gICAgICAgIHJldHVybiBjb3JlRnJhbWUtPnZpZXcoKS0+aXNUcmFja2luZ1JlcGFp
bnRzKCk7Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLUdTTGlzdCogRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjp0cmFja2VkUmVwYWludFJlY3RzKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKLXsK
LSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgMCk7
Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgaWYgKCFjb3JlRnJh
bWUgfHwgIWNvcmVGcmFtZS0+dmlldygpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEdTTGlz
dCogcmVjdHMgPSAwOwotICAgIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZXBhaW50UmVjdHMg
PSBjb3JlRnJhbWUtPnZpZXcoKS0+dHJhY2tlZFJlcGFpbnRSZWN0cygpOwotICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCByZXBhaW50UmVjdHMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgR2Rr
UmVjdGFuZ2xlKiByZWN0ID0gZ19uZXcwKEdka1JlY3RhbmdsZSwgMSk7Ci0gICAgICAgIHJlY3Qt
PnggPSByZXBhaW50UmVjdHNbaV0ueCgpOwotICAgICAgICByZWN0LT55ID0gcmVwYWludFJlY3Rz
W2ldLnkoKTsKLSAgICAgICAgcmVjdC0+d2lkdGggPSByZXBhaW50UmVjdHNbaV0ud2lkdGgoKTsK
LSAgICAgICAgcmVjdC0+aGVpZ2h0ID0gcmVwYWludFJlY3RzW2ldLmhlaWdodCgpOwotICAgICAg
ICByZWN0cyA9IGdfc2xpc3RfYXBwZW5kKHJlY3RzLCByZWN0KTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gcmVjdHM7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZXNldFRyYWNr
ZWRSZXBhaW50cyhXZWJLaXRXZWJGcmFtZSogZnJhbWUpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSk7Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0g
Y29yZShmcmFtZSk7Ci0gICAgaWYgKGNvcmVGcmFtZSAmJiBjb3JlRnJhbWUtPnZpZXcoKSkKLSAg
ICAgICAgY29yZUZyYW1lLT52aWV3KCktPnJlc2V0VHJhY2tlZFJlcGFpbnRzKCk7Ci19Ci0KLXZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjbGVhck1lbW9yeUNhY2hlKCkKLXsKLSAgICBt
ZW1vcnlDYWNoZSgpLT5ldmljdFJlc291cmNlcygpOwotfQotCi12b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlKCkKLXsKLSAgICBjYWNoZVN0b3JhZ2Uo
KS5lbXB0eSgpOwotICAgIGNhY2hlU3RvcmFnZSgpLnZhY3V1bURhdGFiYXNlRmlsZSgpOwotfQot
Ci12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RnJhbWVMb2FkRXZlbnRDYWxsYmFj
ayhGcmFtZUxvYWRFdmVudENhbGxiYWNrIGZyYW1lTG9hZEV2ZW50Q2FsbGJhY2spCi17Ci0gICAg
c19mcmFtZUxvYWRFdmVudENhbGxiYWNrID0gZnJhbWVMb2FkRXZlbnRDYWxsYmFjazsKLX0KLQot
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldEF1dGhlbnRpY2F0aW9uQ2FsbGJhY2so
QXV0aGVudGljYXRpb25DYWxsYmFjayBhdXRoZW50aWNhdGlvbkNhbGxiYWNrKQotewotICAgIHNf
YXV0aGVudGljYXRpb25DYWxsYmFjayA9IGF1dGhlbnRpY2F0aW9uQ2FsbGJhY2s7Ci19Ci0KLXZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRQYWdlVmlzaWJpbGl0eShXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBXZWJDb3JlOjpQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0
ZSwgYm9vbCkKLXsKLSNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKLSAgICBQYWdlKiBw
YWdlID0gY29yZSh3ZWJWaWV3KTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHBhZ2UtPnNldElzVmlzaWJsZSh2aXNpYmlsaXR5U3RhdGUgPT0gUGFnZVZpc2liaWxpdHlT
dGF0ZVZpc2libGUpOwotICAgIGlmICh2aXNpYmlsaXR5U3RhdGUgPT0gUGFnZVZpc2liaWxpdHlT
dGF0ZVByZXJlbmRlcikKLSAgICAgICAgcGFnZS0+c2V0SXNQcmVyZW5kZXIoKTsKLSNlbmRpZgot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzUx
ZTEzZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgL2Rldi9udWxsCkBAIC0xLDE0MiArMCwwIEBACi0v
KgotICogIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
LSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lmbmRl
ZiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGtfaAotI2RlZmluZSBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGtfaAotCi0jaW5jbHVkZSAiSlNTdHJpbmdSZWYuaCIKLSNpbmNsdWRlICJQYWdlVmlzaWJp
bGl0eVN0YXRlLmgiCi0jaW5jbHVkZSA8YXRrL2F0ay5oPgotI2luY2x1ZGUgPGdsaWIuaD4KLSNp
bmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWVudW0gewotICAgIFdlYkZpbmRPcHRpb25z
Q2FzZUluc2Vuc2l0aXZlID0gMSA8PCAwLAotICAgIFdlYkZpbmRPcHRpb25zQXRXb3JkU3RhcnRz
ID0gMSA8PCAxLAotICAgIFdlYkZpbmRPcHRpb25zVHJlYXRNZWRpYWxDYXBpdGFsQXNXb3JkU3Rh
cnQgPSAxIDw8IDIsCi0gICAgV2ViRmluZE9wdGlvbnNCYWNrd2FyZHMgPSAxIDw8IDMsCi0gICAg
V2ViRmluZE9wdGlvbnNXcmFwQXJvdW5kID0gMSA8PCA0LAotICAgIFdlYkZpbmRPcHRpb25zU3Rh
cnRJblNlbGVjdGlvbiA9IDEgPDwgNQotfTsKLQotfQotdHlwZWRlZiB1bnNpZ25lZCBXZWJLaXRG
aW5kT3B0aW9uczsKLQotY2xhc3MgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrIHsKLQotcHVibGlj
OgotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0aygpOwotICAgIH5EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsoKTsKLQotICAgIHN0YXRpYyB2b2lkIHNldER1bXBSZW5kZXJUcmVlTW9kZUVuYWJs
ZWQoYm9vbCk7Ci0gICAgc3RhdGljIGJvb2wgZHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZCgpOwot
Ci0gICAgc3RhdGljIHZvaWQgc2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKLSAg
ICBzdGF0aWMgYm9vbCBsaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0KLSAgICBzdGF0aWMg
dm9pZCBjbGVhck9wZW5lcihXZWJLaXRXZWJGcmFtZSopOwotCi0gICAgLy8gRklYTUU6IE1vdmUg
dGhlc2UgdG8gd2Via2l0d2ViZnJhbWUuaCBvbmNlIHRoZWlyIEFQSSBoYXMgYmVlbiBkaXNjdXNz
ZWQuCi0gICAgc3RhdGljIEdTTGlzdCogZ2V0RnJhbWVDaGlsZHJlbihXZWJLaXRXZWJGcmFtZSop
OwotICAgIHN0YXRpYyBXVEY6OkNTdHJpbmcgZ2V0SW5uZXJUZXh0KFdlYktpdFdlYkZyYW1lKik7
Ci0gICAgc3RhdGljIFdURjo6Q1N0cmluZyBkdW1wUmVuZGVyVHJlZShXZWJLaXRXZWJGcmFtZSop
OwotICAgIHN0YXRpYyB2b2lkIGFkZFVzZXJTY3JpcHQoV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBj
aGFyKiwgYm9vbCwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoV2Vi
S2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBzb3VyY2VDb2RlLCBib29sIGFsbEZyYW1lcyk7Ci0g
ICAgc3RhdGljIGd1aW50IGdldFBlbmRpbmdVbmxvYWRFdmVudENvdW50KFdlYktpdFdlYkZyYW1l
Kik7Ci0gICAgc3RhdGljIHZvaWQgY2xlYXJNYWluRnJhbWVOYW1lKFdlYktpdFdlYkZyYW1lKik7
Ci0gICAgc3RhdGljIEF0a09iamVjdCogZ2V0Rm9jdXNlZEFjY2Vzc2libGVFbGVtZW50KFdlYktp
dFdlYkZyYW1lKik7Ci0gICAgc3RhdGljIEF0a09iamVjdCogZ2V0Um9vdEFjY2Vzc2libGVFbGVt
ZW50KFdlYktpdFdlYkZyYW1lKik7Ci0gICAgc3RhdGljIHZvaWQgbGF5b3V0RnJhbWUoV2ViS2l0
V2ViRnJhbWUqKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRWYWx1ZUZvclVzZXIoSlNDb250ZXh0UmVm
LCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZik7Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkQ2xvc2Uo
V2ViS2l0V2ViRnJhbWUqKTsKLQotICAgIC8vIFdlYktpdFdlYlZpZXcKLSAgICBzdGF0aWMgdm9p
ZCBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBu
YW1lLCBjb25zdCBnY2hhciogdmFsdWUpOwotICAgIHN0YXRpYyBib29sIGlzQ29tbWFuZEVuYWJs
ZWQoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBuYW1lKTsKLSAgICBzdGF0aWMgYm9vbCBm
aW5kU3RyaW5nKFdlYktpdFdlYlZpZXcqLCBjb25zdCBnY2hhciosIFdlYktpdEZpbmRPcHRpb25z
KTsKLSAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUq
LCBjYWlyb19yZWN0YW5nbGVfaW50X3QqKTsKLSAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShX
ZWJLaXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0
RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgZm9y
Y2VXZWJWaWV3UGFpbnQoV2ViS2l0V2ViVmlldyopOwotCi0gICAgLy8gVGV4dElucHV0Q29udHJv
bGxlcgotICAgIHN0YXRpYyB2b2lkIHNldENvbXBvc2l0aW9uKFdlYktpdFdlYlZpZXcqLCBjb25z
dCBjaGFyKiwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgYm9vbCBoYXNDb21w
b3NpdGlvbihXZWJLaXRXZWJWaWV3Kik7Ci0gICAgc3RhdGljIGJvb2wgY29tcG9zaXRpb25SYW5n
ZShXZWJLaXRXZWJWaWV3KiwgaW50KiBzdGFydCwgaW50KiBsZW5ndGgpOwotICAgIHN0YXRpYyB2
b2lkIGNvbmZpcm1Db21wb3NpdGlvbihXZWJLaXRXZWJWaWV3KiwgY29uc3QgY2hhciopOwotICAg
IHN0YXRpYyBib29sIGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKFdlYktpdFdlYlZpZXcqLCBp
bnQgbG9jYXRpb24sIGludCBsZW5ndGgsIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCopOwotICAgIHN0
YXRpYyBib29sIHNlbGVjdGVkUmFuZ2UoV2ViS2l0V2ViVmlldyosIGludCogc3RhcnQsIGludCog
bGVuZ3RoKTsKLSAgICBzdGF0aWMgdm9pZCBkb0NvbW1hbmQoV2ViS2l0V2ViVmlldyosIGNvbnN0
IGNoYXIqKTsKLSAgICAvLyBHQwotICAgIHN0YXRpYyB2b2lkIGdjQ29sbGVjdEphdmFzY3JpcHRP
YmplY3RzKCk7Ci0gICAgc3RhdGljIHZvaWQgZ2NDb2xsZWN0SmF2YXNjcmlwdE9iamVjdHNPbkFs
dGVybmF0ZVRocmVhZChib29sIHdhaXRVbnRpbERvbmUpOwotICAgIHN0YXRpYyB1bnNpZ25lZCBs
b25nIGdjQ291bnRKYXZhc2NyaXB0T2JqZWN0cygpOwotCi0gICAgc3RhdGljIHZvaWQgd2hpdGVM
aXN0QWNjZXNzRnJvbU9yaWdpbihjb25zdCBnY2hhciogc291cmNlT3JpZ2luLCBjb25zdCBnY2hh
ciogZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgZ2NoYXIqIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Ci0gICAgc3RhdGljIHZvaWQgcmVtb3ZlV2hp
dGVMaXN0QWNjZXNzRnJvbU9yaWdpbihjb25zdCBjaGFyKiBzb3VyY2VPcmlnaW4sIGNvbnN0IGNo
YXIqIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IGNoYXIqIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Ci0gICAgc3RhdGljIHZvaWQgcmVzZXRPcmln
aW5BY2Nlc3NXaGl0ZUxpc3RzKCk7Ci0KLSAgICBzdGF0aWMgdm9pZCByZXNldEdlb2xvY2F0aW9u
Q2xpZW50TW9jayhXZWJLaXRXZWJWaWV3Kik7Ci0gICAgc3RhdGljIHZvaWQgc2V0TW9ja0dlb2xv
Y2F0aW9uUGVybWlzc2lvbihXZWJLaXRXZWJWaWV3KiwgYm9vbCBhbGxvd2VkKTsKLSAgICBzdGF0
aWMgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihXZWJLaXRXZWJWaWV3KiwgZG91Ymxl
IGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOwotICAgIHN0YXRp
YyB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihXZWJLaXRX
ZWJWaWV3KiwgY29uc3QgZ2NoYXIqIGVycm9yTWVzc2FnZSk7Ci0gICAgc3RhdGljIGludCBudW1i
ZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhXZWJLaXRXZWJWaWV3Kik7
Ci0KLSAgICBzdGF0aWMgdm9pZCBzZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV2ViS2l0V2Vi
VmlldyosIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExheW91dEVu
YWJsZWQoV2ViS2l0V2ViVmlldyosIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0
Q1NTUmVnaW9uc0VuYWJsZWQoV2ViS2l0V2ViVmlldyosIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3Rh
dGljIHZvaWQgc2V0RXhwZXJpbWVudGFsQ29udGVudFNlY3VyaXR5UG9saWN5RmVhdHVyZXNFbmFi
bGVkKGJvb2wpOwotCi0gICAgc3RhdGljIHZvaWQgZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNz
YXJ5KCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVS
TFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgY2hhciogdXJsU2NoZW1lKTsKLSAgICBzdGF0
aWMgdm9pZCBzZXRTZXJpYWxpemVIVFRQTG9hZHMoYm9vbCBlbmFibGVkKTsKLQotICAgIHN0YXRp
YyB2b2lkIHNldFRyYWNrc1JlcGFpbnRzKFdlYktpdFdlYkZyYW1lKiwgYm9vbCB0cmFja3MpOwot
ICAgIHN0YXRpYyBib29sIGlzVHJhY2tpbmdSZXBhaW50cyhXZWJLaXRXZWJGcmFtZSopOwotICAg
IHN0YXRpYyBHU0xpc3QqIHRyYWNrZWRSZXBhaW50UmVjdHMoV2ViS2l0V2ViRnJhbWUqKTsKLSAg
ICBzdGF0aWMgdm9pZCByZXNldFRyYWNrZWRSZXBhaW50cyhXZWJLaXRXZWJGcmFtZSopOwotCi0g
ICAgc3RhdGljIHZvaWQgY2xlYXJNZW1vcnlDYWNoZSgpOwotICAgIHN0YXRpYyB2b2lkIGNsZWFy
QXBwbGljYXRpb25DYWNoZSgpOwotCi0gICAgZW51bSBGcmFtZUxvYWRFdmVudCB7Ci0gICAgICAg
IFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTCwKLSAgICAgICAgRGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3QsCi0gICAgICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZCwKLSAgICAgICAgRGlkRGlzcGxheUluc2VjdXJlQ29udGVudCwKLSAgICAgICAgRGlkRGV0
ZWN0WFNTLAotICAgIH07Ci0gICAgdHlwZWRlZiB2b2lkICgqRnJhbWVMb2FkRXZlbnRDYWxsYmFj
aykoV2ViS2l0V2ViRnJhbWUqLCBGcmFtZUxvYWRFdmVudCwgY29uc3QgY2hhciogdXJsKTsKLSAg
ICBzdGF0aWMgdm9pZCBzZXRGcmFtZUxvYWRFdmVudENhbGxiYWNrKEZyYW1lTG9hZEV2ZW50Q2Fs
bGJhY2spOwotICAgIHN0YXRpYyBGcmFtZUxvYWRFdmVudENhbGxiYWNrIHNfZnJhbWVMb2FkRXZl
bnRDYWxsYmFjazsKLQotICAgIHR5cGVkZWYgYm9vbCAoKkF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sp
IChDU3RyaW5nJiB1c2VybmFtZSwgQ1N0cmluZyYgcGFzc3dvcmQsIFdlYktpdFdlYlJlc291cmNl
KiB3ZWJSZXNvdXJjZSk7Ci0gICAgc3RhdGljIHZvaWQgc2V0QXV0aGVudGljYXRpb25DYWxsYmFj
ayhBdXRoZW50aWNhdGlvbkNhbGxiYWNrKTsKLSAgICBzdGF0aWMgQXV0aGVudGljYXRpb25DYWxs
YmFjayBzX2F1dGhlbnRpY2F0aW9uQ2FsbGJhY2s7Ci0gICAgc3RhdGljIHZvaWQgc2V0UGFnZVZp
c2liaWxpdHkoV2ViS2l0V2ViVmlldyosIFdlYkNvcmU6OlBhZ2VWaXNpYmlsaXR5U3RhdGUsIGJv
b2wpOwotCi1wcml2YXRlOgotICAgIHN0YXRpYyBib29sIHNfZHJ0UnVuOwotICAgIHN0YXRpYyBi
b29sIHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW47Ci19OwotCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWMzMjM3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw1NjMgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2Vy
IDxhbHBAYXRva2VyLmNvbT4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMDkgRGllZ28gRXNjYWxhbnRlIFVycmVsbyA8ZGllZ29lQGdub21l
Lm9yZz4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgSWdhbGlhIFMuTC4KLSAq
ICBDb3B5cmlnaHQgKEMpIDIwMTAsIE1hcnRpbiBSb2JpbnNvbiA8bXJvYmluc29uQHdlYmtpdC5v
cmc+Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiRWRpdG9yQ2xpZW50R3RrLmgiCi0KLSNpbmNsdWRlICJEYXRhT2JqZWN0R3Rr
LmgiCi0jaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgiCi0jaW5jbHVkZSAiRWRp
dG9yLmgiCi0jaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSA8Z2xpYi5oPgotI2luY2x1ZGUgIktl
eWJvYXJkRXZlbnQuaCIKLSNpbmNsdWRlICJtYXJrdXAuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyLmgi
Ci0jaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCi0jaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKLSNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKLSNpbmNsdWRlICJVbmRvU3RlcC5oIgot
I2luY2x1ZGUgIldlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb25Qcml2YXRlLmgiCi0jaW5jbHVk
ZSAiV2ViS2l0RE9NSFRNTEVsZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NTm9k
ZVByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01SYW5nZVByaXZhdGUuaCIKLSNpbmNsdWRl
ICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgotI2luY2x1ZGUgIndlYmtpdGdsb2JhbHMuaCIKLSNp
bmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdG1hcnNoYWwu
aCIKLSNpbmNsdWRlICJ3ZWJraXRzcGVsbGNoZWNrZXIuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJz
ZXR0aW5nc3ByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQotLy8gQXJiaXRyYXJ5IGRlcHRoIGxpbWl0IGZv
ciB0aGUgdW5kbyBzdGFjaywgdG8ga2VlcCBpdCBmcm9tIHVzaW5nCi0vLyB1bmJvdW5kZWQgbWVt
b3J5LiAgVGhpcyBpcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlzdGluY3QgdW5kb2FibGUKLS8v
IGFjdGlvbnMgLS0gdW5icm9rZW4gc3RyZXRjaGVzIG9mIHR5cGVkIGNoYXJhY3RlcnMgYXJlIGNv
YWxlc2NlZAotLy8gaW50byBhIHNpbmdsZSBhY3Rpb24uCi0jZGVmaW5lIG1heGltdW1VbmRvU3Rh
Y2tEZXB0aCAxMDAwCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotdm9pZCBFZGl0b3JDbGllbnQ6OndpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkKLXsK
LX0KLQotdm9pZCBFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBhY3RpdmUp
Ci17Ci0gICAgbV93ZWJWaWV3LT5wcml2LT5pbUZpbHRlci5zZXRFbmFibGVkKGFjdGl2ZSk7Ci19
Ci0KLWJvb2wgRWRpdG9yQ2xpZW50OjpzaG91bGRTaG93VW5pY29kZU1lbnUoKQotewotICAgIGlm
IChndGtfbWFqb3JfdmVyc2lvbiA+IDIgfHwgKGd0a19tYWpvcl92ZXJzaW9uID09IDIgJiYgZ3Rr
X21pbm9yX3ZlcnNpb24gPj0gMTApKSB7Ci0gICAgICAgIEd0a1NldHRpbmdzKiBzZXR0aW5ncyA9
IGd0a193aWRnZXRfZ2V0X3NldHRpbmdzKEdUS19XSURHRVQobV93ZWJWaWV3KSk7Ci0gICAgICAg
IGlmICghc2V0dGluZ3MpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICBnYm9v
bGVhbiBlbmFibGVkOwotICAgICAgICBnX29iamVjdF9nZXQoc2V0dGluZ3MsICJndGstc2hvdy11
bmljb2RlLW1lbnUiLCAmZW5hYmxlZCwgTlVMTCk7Ci0gICAgICAgIHJldHVybiBlbmFibGVkOwot
ICAgIH0KLQotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIEVkaXRvckNsaWVudDo6c2hvdWxk
RGVsZXRlUmFuZ2UoUmFuZ2UqIHJhbmdlKQotewotICAgIGdib29sZWFuIGFjY2VwdCA9IFRSVUU7
Ci0gICAgR1JlZlB0cjxXZWJLaXRET01SYW5nZT4ga2l0UmFuZ2UoYWRvcHRHUmVmKGtpdChyYW5n
ZSkpKTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZWJWaWV3LCAic2hvdWxkLWRlbGV0
ZS1yYW5nZSIsIGtpdFJhbmdlLmdldCgpLCAmYWNjZXB0KTsKLSAgICByZXR1cm4gYWNjZXB0Owot
fQotCi1ib29sIEVkaXRvckNsaWVudDo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KQotewotICAgIFdlYktpdFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19n
ZXRfc2V0dGluZ3MobV93ZWJWaWV3KTsKLQotICAgIGdib29sZWFuIGVuYWJsZWQ7Ci0gICAgZ19v
YmplY3RfZ2V0KHNldHRpbmdzLCAiZW5hYmxlLXNwZWxsLWNoZWNraW5nIiwgJmVuYWJsZWQsIE5V
TEwpOwotCi0gICAgcmV0dXJuIGVuYWJsZWQ7Ci19Ci0KLWJvb2wgRWRpdG9yQ2xpZW50Ojppc0dy
YW1tYXJDaGVja2luZ0VuYWJsZWQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotCi1pbnQgRWRpdG9yQ2xpZW50OjpzcGVsbENoZWNrZXJEb2N1bWVudFRh
ZygpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotYm9vbCBF
ZGl0b3JDbGllbnQ6OnNob3VsZEJlZ2luRWRpdGluZyhXZWJDb3JlOjpSYW5nZSogcmFuZ2UpCi17
Ci0gICAgZ2Jvb2xlYW4gYWNjZXB0ID0gVFJVRTsKLSAgICBHUmVmUHRyPFdlYktpdERPTVJhbmdl
PiBraXRSYW5nZShhZG9wdEdSZWYoa2l0KHJhbmdlKSkpOwotICAgIGdfc2lnbmFsX2VtaXRfYnlf
bmFtZShtX3dlYlZpZXcsICJzaG91bGQtYmVnaW4tZWRpdGluZyIsIGtpdFJhbmdlLmdldCgpLCAm
YWNjZXB0KTsKLSAgICByZXR1cm4gYWNjZXB0OwotfQotCi1ib29sIEVkaXRvckNsaWVudDo6c2hv
dWxkRW5kRWRpdGluZyhXZWJDb3JlOjpSYW5nZSogcmFuZ2UpCi17Ci0gICAgZ2Jvb2xlYW4gYWNj
ZXB0ID0gVFJVRTsKLSAgICBHUmVmUHRyPFdlYktpdERPTVJhbmdlPiBraXRSYW5nZShhZG9wdEdS
ZWYoa2l0KHJhbmdlKSkpOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJz
aG91bGQtZW5kLWVkaXRpbmciLCBraXRSYW5nZS5nZXQoKSwgJmFjY2VwdCk7Ci0gICAgcmV0dXJu
IGFjY2VwdDsKLX0KLQotc3RhdGljIFdlYktpdEluc2VydEFjdGlvbiBraXQoRWRpdG9ySW5zZXJ0
QWN0aW9uIGFjdGlvbikKLXsKLSAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgIGNhc2UgRWRpdG9y
SW5zZXJ0QWN0aW9uVHlwZWQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfSU5TRVJUX0FDVElPTl9U
WVBFRDsKLSAgICBjYXNlIEVkaXRvckluc2VydEFjdGlvblBhc3RlZDoKLSAgICAgICAgcmV0dXJu
IFdFQktJVF9JTlNFUlRfQUNUSU9OX1BBU1RFRDsKLSAgICBjYXNlIEVkaXRvckluc2VydEFjdGlv
bkRyb3BwZWQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfSU5TRVJUX0FDVElPTl9EUk9QUEVEOwot
ICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gV0VCS0lUX0lOU0VS
VF9BQ1RJT05fVFlQRUQ7Ci19Ci0KLWJvb2wgRWRpdG9yQ2xpZW50OjpzaG91bGRJbnNlcnRUZXh0
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBSYW5nZSogcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbiBh
Y3Rpb24pCi17Ci0gICAgZ2Jvb2xlYW4gYWNjZXB0ID0gVFJVRTsKLSAgICBHUmVmUHRyPFdlYktp
dERPTVJhbmdlPiBraXRSYW5nZShhZG9wdEdSZWYoa2l0KHJhbmdlKSkpOwotICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJzaG91bGQtaW5zZXJ0LXRleHQiLCBzdHJpbmcudXRm
OCgpLmRhdGEoKSwga2l0UmFuZ2UuZ2V0KCksIGtpdChhY3Rpb24pLCAmYWNjZXB0KTsKLSAgICBy
ZXR1cm4gYWNjZXB0OwotfQotCi1zdGF0aWMgV2ViS2l0U2VsZWN0aW9uQWZmaW5pdHkga2l0KEVB
ZmZpbml0eSBhZmZpbml0eSkKLXsKLSAgICBzd2l0Y2ggKGFmZmluaXR5KSB7Ci0gICAgY2FzZSBV
UFNUUkVBTToKLSAgICAgICAgcmV0dXJuIFdFQktJVF9TRUxFQ1RJT05fQUZGSU5JVFlfVVBTVFJF
QU07Ci0gICAgY2FzZSBET1dOU1RSRUFNOgotICAgICAgICByZXR1cm4gV0VCS0lUX1NFTEVDVElP
Tl9BRkZJTklUWV9ET1dOU1RSRUFNOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gV0VCS0lUX1NFTEVDVElPTl9BRkZJTklUWV9VUFNUUkVBTTsKLX0KLQotYm9v
bCBFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoUmFuZ2UqIGZyb21SYW5n
ZSwgUmFuZ2UqIHRvUmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGlu
ZykKLXsKLSAgICBnYm9vbGVhbiBhY2NlcHQgPSBUUlVFOwotICAgIEdSZWZQdHI8V2ViS2l0RE9N
UmFuZ2U+IGtpdEZyb21SYW5nZShmcm9tUmFuZ2UgPyBhZG9wdEdSZWYoa2l0KGZyb21SYW5nZSkp
IDogMCk7Ci0gICAgR1JlZlB0cjxXZWJLaXRET01SYW5nZT4ga2l0VG9SYW5nZSh0b1JhbmdlID8g
YWRvcHRHUmVmKGtpdCh0b1JhbmdlKSkgOiAwKTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUo
bV93ZWJWaWV3LCAic2hvdWxkLWNoYW5nZS1zZWxlY3RlZC1yYW5nZSIsIGtpdEZyb21SYW5nZS5n
ZXQoKSwga2l0VG9SYW5nZS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAga2l0KGFm
ZmluaXR5KSwgc3RpbGxTZWxlY3RpbmcsICZhY2NlcHQpOwotICAgIHJldHVybiBhY2NlcHQ7Ci19
Ci0KLWJvb2wgRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKFdlYkNvcmU6OlN0eWxlUHJv
cGVydGllcyogc2V0LCBXZWJDb3JlOjpSYW5nZSogcmFuZ2UpCi17Ci0gICAgZ2Jvb2xlYW4gYWNj
ZXB0ID0gVFJVRTsKLSAgICBSZWY8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gbXV0YWJsZVN0eWxl
KHNldC0+bXV0YWJsZUNvcHkoKSk7Ci0gICAgR1JlZlB0cjxXZWJLaXRET01DU1NTdHlsZURlY2xh
cmF0aW9uPiBraXREZWNsYXJhdGlvbihraXQobXV0YWJsZVN0eWxlLT5lbnN1cmVDU1NTdHlsZURl
Y2xhcmF0aW9uKCkpKTsKLSAgICBHUmVmUHRyPFdlYktpdERPTVJhbmdlPiBraXRSYW5nZShhZG9w
dEdSZWYoa2l0KHJhbmdlKSkpOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcs
ICJzaG91bGQtYXBwbHktc3R5bGUiLCBraXREZWNsYXJhdGlvbi5nZXQoKSwga2l0UmFuZ2UuZ2V0
KCksICZhY2NlcHQpOwotICAgIHJldHVybiBhY2NlcHQ7Ci19Ci0KLWJvb2wgRWRpdG9yQ2xpZW50
OjpzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJh
bmdlKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi12
b2lkIEVkaXRvckNsaWVudDo6ZGlkQmVnaW5FZGl0aW5nKCkKLXsKLSAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUobV93ZWJWaWV3LCAiZWRpdGluZy1iZWdhbiIpOwotfQotCi12b2lkIEVkaXRvckNs
aWVudDo6cmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCkKLXsKLSAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUobV93ZWJWaWV3LCAidXNlci1jaGFuZ2VkLWNvbnRlbnRzIik7Ci19Ci0KLXN0YXRpYyBX
ZWJLaXRXZWJWaWV3KiB2aWV3U2V0dGluZ0NsaXBib2FyZCA9IDA7Ci1zdGF0aWMgdm9pZCBjb2xs
YXBzZVNlbGVjdGlvbihHdGtDbGlwYm9hcmQqLCBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewot
ICAgIGlmICh2aWV3U2V0dGluZ0NsaXBib2FyZCAmJiB2aWV3U2V0dGluZ0NsaXBib2FyZCA9PSB3
ZWJWaWV3KQotICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9
IGNvcmUod2ViVmlldyk7Ci0gICAgaWYgKCFjb3JlUGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgRnJhbWUmIGZyYW1lID0gY29yZVBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1h
aW5GcmFtZSgpOwotCi0gICAgLy8gQ29sbGFwc2UgdGhlIHNlbGVjdGlvbiB3aXRob3V0IGNsZWFy
aW5nIGl0Ci0gICAgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uID0gZnJhbWUuc2Vs
ZWN0aW9uKCkuc2VsZWN0aW9uKCk7Ci0gICAgZnJhbWUuc2VsZWN0aW9uKCkuc2V0QmFzZShzZWxl
Y3Rpb24uZXh0ZW50KCksIHNlbGVjdGlvbi5hZmZpbml0eSgpKTsKLX0KLQotI2lmIFBMQVRGT1JN
KFgxMSkKLXN0YXRpYyB2b2lkIHNldFNlbGVjdGlvblByaW1hcnlDbGlwYm9hcmRJZk5lZWRlZChX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGlmICghZ3RrX3dpZGdldF9oYXNfc2NyZWVu
KEdUS19XSURHRVQod2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBHdGtDbGlwYm9h
cmQqIGNsaXBib2FyZCA9IGd0a193aWRnZXRfZ2V0X2NsaXBib2FyZChHVEtfV0lER0VUKHdlYlZp
ZXcpLCBHREtfU0VMRUNUSU9OX1BSSU1BUlkpOwotICAgIERhdGFPYmplY3RHdGsqIGRhdGFPYmpl
Y3QgPSBEYXRhT2JqZWN0R3RrOjpmb3JDbGlwYm9hcmQoY2xpcGJvYXJkKTsKLSAgICBXZWJDb3Jl
OjpQYWdlKiBjb3JlUGFnZSA9IGNvcmUod2ViVmlldyk7Ci0gICAgRnJhbWUmIHRhcmdldEZyYW1l
ID0gY29yZVBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotCi0g
ICAgaWYgKCF0YXJnZXRGcmFtZS5zZWxlY3Rpb24oKS5pc1JhbmdlKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGRhdGFPYmplY3QtPmNsZWFyQWxsKCk7Ci0gICAgZGF0YU9iamVjdC0+c2V0UmFu
Z2UodGFyZ2V0RnJhbWUuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKSk7Ci0KLSAgICB2
aWV3U2V0dGluZ0NsaXBib2FyZCA9IHdlYlZpZXc7Ci0gICAgR0Nsb3N1cmUqIGNhbGxiYWNrID0g
Z19jY2xvc3VyZV9uZXdfb2JqZWN0KEdfQ0FMTEJBQ0soY29sbGFwc2VTZWxlY3Rpb24pLCBHX09C
SkVDVCh3ZWJWaWV3KSk7Ci0gICAgZ19jbG9zdXJlX3NldF9tYXJzaGFsKGNhbGxiYWNrLCBnX2Nj
bG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCk7Ci0gICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVs
dFBhc3RlYm9hcmRIZWxwZXIoKS0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhjbGlwYm9hcmQsIFBh
c3RlYm9hcmRIZWxwZXI6OkRvTm90SW5jbHVkZVNtYXJ0UGFzdGUsIGNhbGxiYWNrKTsKLSAgICB2
aWV3U2V0dGluZ0NsaXBib2FyZCA9IDA7Ci19Ci0jZW5kaWYKLQotdm9pZCBFZGl0b3JDbGllbnQ6
OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oRnJhbWUqIGZyYW1lKQotewotICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJzZWxlY3Rpb24tY2hhbmdlZCIpOwotCi0gICAgaWYg
KCFmcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0jaWYgUExBVEZPUk0oWDExKQotICAgIHNldFNl
bGVjdGlvblByaW1hcnlDbGlwYm9hcmRJZk5lZWRlZChtX3dlYlZpZXcpOwotI2VuZGlmCi0KLSAg
ICBpZiAoZnJhbWUtPmVkaXRvcigpLmNhbmNlbENvbXBvc2l0aW9uSWZTZWxlY3Rpb25Jc0ludmFs
aWQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5wcml2LT5pbUZpbHRlci5yZXNldENvbnRleHQoKTsK
LX0KLQotdm9pZCBFZGl0b3JDbGllbnQ6OmRpZEVuZEVkaXRpbmcoKQotewotICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJlZGl0aW5nLWVuZGVkIik7Ci19Ci0KLXZvaWQgRWRp
dG9yQ2xpZW50OjpkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLX0KLQotdm9pZCBFZGl0b3JDbGllbnQ6OndpbGxXcml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZChXZWJDb3JlOjpSYW5nZSopCi17Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50Ojpn
ZXRDbGllbnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgVmVjdG9yPFN0
cmluZz4mLCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gPiYpCi17Ci19Ci0K
LXZvaWQgRWRpdG9yQ2xpZW50OjpyZWdpc3RlclVuZG9TdGVwKFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpVbmRvU3RlcD4gc3RlcCkKLXsKLSAgICBpZiAodW5kb1N0YWNrLnNpemUoKSA9PSBtYXhp
bXVtVW5kb1N0YWNrRGVwdGgpCi0gICAgICAgIHVuZG9TdGFjay5yZW1vdmVGaXJzdCgpOwotICAg
IGlmICghbV9pc0luUmVkbykKLSAgICAgICAgcmVkb1N0YWNrLmNsZWFyKCk7Ci0gICAgdW5kb1N0
YWNrLmFwcGVuZChzdGVwKTsKLX0KLQotdm9pZCBFZGl0b3JDbGllbnQ6OnJlZ2lzdGVyUmVkb1N0
ZXAoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9TdGVwPiBzdGVwKQotewotICAgIHJlZG9T
dGFjay5hcHBlbmQoc3RlcCk7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50OjpjbGVhclVuZG9SZWRv
T3BlcmF0aW9ucygpCi17Ci0gICAgdW5kb1N0YWNrLmNsZWFyKCk7Ci0gICAgcmVkb1N0YWNrLmNs
ZWFyKCk7Ci19Ci0KLWJvb2wgRWRpdG9yQ2xpZW50OjpjYW5Db3B5Q3V0KFdlYkNvcmU6OkZyYW1l
KiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
LX0KLQotYm9vbCBFZGl0b3JDbGllbnQ6OmNhblBhc3RlKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBk
ZWZhdWx0VmFsdWUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKLX0KLQotYm9v
bCBFZGl0b3JDbGllbnQ6OmNhblVuZG8oKSBjb25zdAotewotICAgIHJldHVybiAhdW5kb1N0YWNr
LmlzRW1wdHkoKTsKLX0KLQotYm9vbCBFZGl0b3JDbGllbnQ6OmNhblJlZG8oKSBjb25zdAotewot
ICAgIHJldHVybiAhcmVkb1N0YWNrLmlzRW1wdHkoKTsKLX0KLQotdm9pZCBFZGl0b3JDbGllbnQ6
OnVuZG8oKQotewotICAgIGlmIChjYW5VbmRvKCkpIHsKLSAgICAgICAgUmVmUHRyPFdlYkNvcmU6
OlVuZG9TdGVwPiBzdGVwKCooLS11bmRvU3RhY2suZW5kKCkpKTsKLSAgICAgICAgdW5kb1N0YWNr
LnJlbW92ZSgtLXVuZG9TdGFjay5lbmQoKSk7Ci0gICAgICAgIC8vIHVuYXBwbHkgd2lsbCBjYWxs
IHVzIGJhY2sgdG8gcHVzaCB0aGlzIGNvbW1hbmQgb250byB0aGUgcmVkbyBzdGFjay4KLSAgICAg
ICAgc3RlcC0+dW5hcHBseSgpOwotICAgIH0KLX0KLQotdm9pZCBFZGl0b3JDbGllbnQ6OnJlZG8o
KQotewotICAgIGlmIChjYW5SZWRvKCkpIHsKLSAgICAgICAgUmVmUHRyPFdlYkNvcmU6OlVuZG9T
dGVwPiBzdGVwKCooLS1yZWRvU3RhY2suZW5kKCkpKTsKLSAgICAgICAgcmVkb1N0YWNrLnJlbW92
ZSgtLXJlZG9TdGFjay5lbmQoKSk7Ci0KLSAgICAgICAgQVNTRVJUKCFtX2lzSW5SZWRvKTsKLSAg
ICAgICAgbV9pc0luUmVkbyA9IHRydWU7Ci0gICAgICAgIC8vIHJlYXBwbHkgd2lsbCBjYWxsIHVz
IGJhY2sgdG8gcHVzaCB0aGlzIGNvbW1hbmQgb250byB0aGUgdW5kbyBzdGFjay4KLSAgICAgICAg
c3RlcC0+cmVhcHBseSgpOwotICAgICAgICBtX2lzSW5SZWRvID0gZmFsc2U7Ci0gICAgfQotfQot
Ci1ib29sIEVkaXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0Tm9kZShOb2RlKiBub2RlLCBSYW5nZSog
cmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbiBhY3Rpb24pCi17Ci0gICAgZ2Jvb2xlYW4gYWNjZXB0
ID0gVFJVRTsKLSAgICBHUmVmUHRyPFdlYktpdERPTVJhbmdlPiBraXRSYW5nZShhZG9wdEdSZWYo
a2l0KHJhbmdlKSkpOwotICAgIEdSZWZQdHI8V2ViS2l0RE9NTm9kZT4ga2l0Tm9kZShhZG9wdEdS
ZWYoa2l0KG5vZGUpKSk7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgInNo
b3VsZC1pbnNlcnQtbm9kZSIsIGtpdE5vZGUuZ2V0KCksIGtpdFJhbmdlLmdldCgpLCBraXQoYWN0
aW9uKSwgJmFjY2VwdCk7Ci0gICAgcmV0dXJuIGFjY2VwdDsKLX0KLQotdm9pZCBFZGl0b3JDbGll
bnQ6OnBhZ2VEZXN0cm95ZWQoKQotewotICAgIGRlbGV0ZSB0aGlzOwotfQotCi1ib29sIEVkaXRv
ckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLXsKLSAgICBXZWJDb3JlOjpQYWdl
KiBjb3JlUGFnZSA9IGNvcmUobV93ZWJWaWV3KTsKLSAgICBpZiAoIWNvcmVQYWdlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpOwotfQotCi1ib29sIEVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9
IGNvcmUobV93ZWJWaWV3KTsKLSAgICBpZiAoIWNvcmVQYWdlKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLnNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKTsKLX0KLQotdm9pZCBFZGl0b3JDbGllbnQ6OnRvZ2dsZUNvbnRpbnVvdXNT
cGVsbENoZWNraW5nKCkKLXsKLSAgICBXZWJLaXRXZWJTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKG1fd2ViVmlldyk7Ci0KLSAgICBnYm9vbGVhbiBlbmFi
bGVkOwotICAgIGdfb2JqZWN0X2dldChzZXR0aW5ncywgImVuYWJsZS1zcGVsbC1jaGVja2luZyIs
ICZlbmFibGVkLCBOVUxMKTsKLQotICAgIGdfb2JqZWN0X3NldChzZXR0aW5ncywgImVuYWJsZS1z
cGVsbC1jaGVja2luZyIsICFlbmFibGVkLCBOVUxMKTsKLX0KLQotdm9pZCBFZGl0b3JDbGllbnQ6
OnRvZ2dsZUdyYW1tYXJDaGVja2luZygpCi17Ci19Ci0KLWJvb2wgRWRpdG9yQ2xpZW50OjpleGVj
dXRlUGVuZGluZ0VkaXRvckNvbW1hbmRzKEZyYW1lKiBmcmFtZSwgYm9vbCBhbGxvd1RleHRJbnNl
cnRpb24pCi17Ci0gICAgVmVjdG9yPEVkaXRvcjo6Q29tbWFuZD4gY29tbWFuZHM7Ci0gICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX3BlbmRpbmdFZGl0b3JDb21tYW5kcy5zaXplKCk7IGkrKykg
ewotICAgICAgICBFZGl0b3I6OkNvbW1hbmQgY29tbWFuZCA9IGZyYW1lLT5lZGl0b3IoKS5jb21t
YW5kKG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzLmF0KGkpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICBpZiAoY29tbWFuZC5pc1RleHRJbnNlcnRpb24oKSAmJiAhYWxsb3dUZXh0SW5zZXJ0aW9uKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGNvbW1hbmRzLmFwcGVuZChjb21t
YW5kKTsKLSAgICB9Ci0KLSAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOwotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgY29tbWFuZHMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgaWYgKCFjb21tYW5k
cy5hdChpKS5leGVjdXRlKCkpIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbV9wZW5kaW5nRWRpdG9yQ29t
bWFuZHMuY2xlYXIoKTsKLSAgICByZXR1cm4gc3VjY2VzczsKLX0KLQotc3RhdGljIGJvb2wga2V5
Ym9hcmRFdmVudEhhZENvbXBvc2l0aW9uUmVzdWx0cyhLZXlib2FyZEV2ZW50KiBldmVudCkKLXsK
LSAgICBpZiAoZXZlbnQtPnR5cGUoKSAhPSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQqIHBs
YXRmb3JtRXZlbnQgPSBldmVudC0+a2V5RXZlbnQoKTsKLSAgICBpZiAoIXBsYXRmb3JtRXZlbnQp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBwbGF0Zm9ybUV2ZW50LT5jb21w
b3NpdGlvblJlc3VsdHMoKS5jb21wb3NpdGlvblVwZGF0ZWQoKTsKLX0KLQotdm9pZCBFZGl0b3JD
bGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCi17Ci0gICAg
Tm9kZSogbm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgQVNTRVJUKG5vZGUp
OwotICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKTsKLSAgICBBU1NF
UlQoZnJhbWUpOwotCi0gICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50KiBwbGF0Zm9ybUV2
ZW50ID0gZXZlbnQtPmtleUV2ZW50KCk7Ci0gICAgaWYgKCFwbGF0Zm9ybUV2ZW50KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoa2V5Ym9hcmRFdmVudEhhZENvbXBvc2l0aW9uUmVzdWx0cyhl
dmVudCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIEtleUJpbmRpbmdUcmFuc2xhdG9yOjpFdmVu
dFR5cGUgdHlwZSA9IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCA/
Ci0gICAgICAgIEtleUJpbmRpbmdUcmFuc2xhdG9yOjpLZXlEb3duIDogS2V5QmluZGluZ1RyYW5z
bGF0b3I6OktleVByZXNzOwotICAgIG1fa2V5QmluZGluZ1RyYW5zbGF0b3IuZ2V0RWRpdG9yQ29t
bWFuZHNGb3JLZXlFdmVudChwbGF0Zm9ybUV2ZW50LT5nZGtFdmVudEtleSgpLCB0eXBlLCBtX3Bl
bmRpbmdFZGl0b3JDb21tYW5kcyk7Ci0gICAgaWYgKG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzLnNp
emUoKSA+IDApIHsKLQotICAgICAgICAvLyBEdXJpbmcgUmF3S2V5RG93biBldmVudHMgaWYgYW4g
ZWRpdG9yIGNvbW1hbmQgd2lsbCBpbnNlcnQgdGV4dCwgZGVmZXIKLSAgICAgICAgLy8gdGhlIGlu
c2VydGlvbiB1bnRpbCB0aGUga2V5cHJlc3MgZXZlbnQuIFdlIHdhbnQga2V5ZG93biB0byBidWJi
bGUgdXAKLSAgICAgICAgLy8gdGhyb3VnaCB0aGUgRE9NIGZpcnN0LgotICAgICAgICBpZiAocGxh
dGZvcm1FdmVudC0+dHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6OlJhd0tleURvd24pIHsKLSAgICAg
ICAgICAgIGlmIChleGVjdXRlUGVuZGluZ0VkaXRvckNvbW1hbmRzKGZyYW1lLCBmYWxzZSkpCi0g
ICAgICAgICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0KLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIE9ubHkgYWxsb3cgdGV4dCBpbnNlcnRp
b24gY29tbWFuZHMgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBlZGl0YWJsZS4KLSAgICAgICAgaWYg
KGV4ZWN1dGVQZW5kaW5nRWRpdG9yQ29tbWFuZHMoZnJhbWUsIGZyYW1lLT5lZGl0b3IoKS5jYW5F
ZGl0KCkpKSB7Ci0gICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBtX3BlbmRpbmdFZGl0b3JDb21tYW5k
cy5jbGVhcigpOwotICAgIH0KLQotICAgIC8vIERvbid0IGFsbG93IHRleHQgaW5zZXJ0aW9uIGZv
ciBub2RlcyB0aGF0IGNhbm5vdCBlZGl0LgotICAgIGlmICghZnJhbWUtPmVkaXRvcigpLmNhbkVk
aXQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gVGhpcyBpcyBqdXN0IGEgbm9ybWFsIHRl
eHQgaW5zZXJ0aW9uLCBzbyB3YWl0IHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbgotICAgIC8vIHVu
dGlsIGEga2V5cHJlc3MgZXZlbnQgaGFwcGVucy4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBp
bnNlcnRpb24gd2lsbCBub3QKLSAgICAvLyBiZSByZWZsZWN0ZWQgaW4gdGhlIGNvbnRlbnRzIG9m
IHRoZSBmaWVsZCB1bnRpbCB0aGUga2V5dXAgRE9NIGV2ZW50LgotICAgIGlmIChldmVudC0+dHlw
ZSgpICE9IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAg
ICAvLyBEb24ndCBpbnNlcnQgbnVsbCBvciBjb250cm9sIGNoYXJhY3RlcnMgYXMgdGhleSBjYW4g
cmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3VyCi0gICAgaWYgKGV2ZW50LT5jaGFyQ29kZSgp
IDwgJyAnKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBEb24ndCBpbnNlcnQgYW55dGhpbmcg
aWYgYSBtb2RpZmllciBpcyBwcmVzc2VkCi0gICAgaWYgKHBsYXRmb3JtRXZlbnQtPmN0cmxLZXko
KSB8fCBwbGF0Zm9ybUV2ZW50LT5hbHRLZXkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KGZyYW1lLT5lZGl0b3IoKS5pbnNlcnRUZXh0KHBsYXRmb3JtRXZlbnQtPnRleHQoKSwgZXZlbnQp
KQotICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLX0KLQotdm9pZCBFZGl0b3JD
bGllbnQ6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50KiBldmVudCkKLXsK
LSAgICAvLyBJbnB1dCBtZXRob2QgcmVzdWx0cyBhcmUgaGFuZGxlZCBpbiBoYW5kbGVLZXlib2Fy
ZEV2ZW50LCBzbyB0aGF0IHdlIGNhbiB3YWl0Ci0gICAgLy8gdG8gdHJpZ2dlciBjb21wb3NpdGlv
biB1cGRhdGVzIHVudGlsIGFmdGVyIHRoZSBrZXlkb3duIGV2ZW50IGhhbmRsZXIuIFRoaXMgYmV0
dGVyCi0gICAgLy8gbWF0Y2hlcyBvdGhlciBicm93c2Vycy4KLSAgICBjb25zdCBQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQqIHBsYXRmb3JtRXZlbnQgPSBldmVudC0+a2V5RXZlbnQoKTsKLSAgICBpZiAo
cGxhdGZvcm1FdmVudCAmJiBwbGF0Zm9ybUV2ZW50LT5jb21wb3NpdGlvblJlc3VsdHMoKS5jb21w
b3NpdGlvblVwZGF0ZWQoKSkKLSAgICAgICAgZXZlbnQtPnByZXZlbnREZWZhdWx0KCk7Ci19Ci0K
LUVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi0gICAg
OiBtX2lzSW5SZWRvKGZhbHNlKQotI2lmIEVOQUJMRShTUEVMTENIRUNLKQotICAgICwgbV90ZXh0
Q2hlY2tlckNsaWVudChXRUJLSVRfU1BFTExfQ0hFQ0tFUih3ZWJraXRfZ2V0X3RleHRfY2hlY2tl
cigpKSkKLSNlbmRpZgotICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCi17Ci19Ci0KLUVkaXRvckNs
aWVudDo6fkVkaXRvckNsaWVudCgpCi17Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50Ojp0ZXh0Rmll
bGREaWRCZWdpbkVkaXRpbmcoRWxlbWVudCopCi17Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50Ojp0
ZXh0RmllbGREaWRFbmRFZGl0aW5nKEVsZW1lbnQqKQotewotfQotCi12b2lkIEVkaXRvckNsaWVu
dDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKEVsZW1lbnQqKQotewotfQotCi1ib29sIEVkaXRv
ckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KEVsZW1lbnQqLCBLZXlib2FyZEV2
ZW50KikKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50Ojp0ZXh0
V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKEVsZW1lbnQqKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYShFbGVt
ZW50KikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIEVkaXRvckNsaWVudDo6
dXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFN0cmluZyYsIGNvbnN0IEdy
YW1tYXJEZXRhaWwmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgRWRpdG9y
Q2xpZW50Ojp1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFN0cmluZyYp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBFZGl0b3JDbGllbnQ6OnNob3dT
cGVsbGluZ1VJKGJvb2wpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotYm9vbCBFZGl0
b3JDbGllbnQ6OnNwZWxsaW5nVUlJc1Nob3dpbmcoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEVkaXRvckNsaWVudDo6c3VwcG9ydHNHbG9i
YWxTZWxlY3Rpb24oKQotewotI2lmIFBMQVRGT1JNKFgxMSkKLSAgICByZXR1cm4gdHJ1ZTsKLSNl
bHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZkODQ1YzguLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHpp
bW1lcm1hbm5Aa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNr
QGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLgotICogQ29weXJpZ2h0
IChDKSAyMDEwIE1hcnRpbiBSb2JpbnNvbiA8bXJvYmluc29uQHdlYmtpdC5vcmc+Ci0gKgotICog
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBFZGl0b3JDbGllbnRHdGtfaAotI2RlZmluZSBFZGl0b3JDbGllbnRH
dGtfaAotCi0jaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCi0jaW5jbHVkZSAiS2V5QmluZGluZ1Ry
YW5zbGF0b3IuaCIKLSNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgotI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmpl
Y3QvR1JlZlB0ci5oPgotCi0jaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCi0jaW5jbHVkZSAiVGV4dENo
ZWNrZXJDbGllbnRHdGsuaCIKLSNlbHNlCi0jaW5jbHVkZSAiRW1wdHlDbGllbnRzLmgiCi0jZW5k
aWYKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgV2ViS2l0V2ViVmlldzsKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgRnJhbWU7Ci1jbGFzcyBLZXlib2FyZEV2ZW50OwotfQot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNv
cmU6OkVkaXRvckNsaWVudCB7Ci0gICAgcHJvdGVjdGVkOgotICAgICAgICBib29sIG1faXNJblJl
ZG87Ci0KLSAgICAgICAgV1RGOjpEZXF1ZTxXVEY6OlJlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4g
PiB1bmRvU3RhY2s7Ci0gICAgICAgIFdURjo6RGVxdWU8V1RGOjpSZWZQdHI8V2ViQ29yZTo6VW5k
b1N0ZXA+ID4gcmVkb1N0YWNrOwotCi0gICAgcHVibGljOgotICAgICAgICBFZGl0b3JDbGllbnQo
V2ViS2l0V2ViVmlldyopOwotICAgICAgICB+RWRpdG9yQ2xpZW50KCk7Ci0gICAgICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KLSAgICAgICAgdm9pZCBh
ZGRQZW5kaW5nRWRpdG9yQ29tbWFuZChjb25zdCBjaGFyKiBjb21tYW5kKSB7IG1fcGVuZGluZ0Vk
aXRvckNvbW1hbmRzLmFwcGVuZChjb21tYW5kKTsgfQotICAgICAgICB2b2lkIGdlbmVyYXRlRWRp
dG9yQ29tbWFuZHMoY29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwotICAgICAgICBib29s
IGV4ZWN1dGVQZW5kaW5nRWRpdG9yQ29tbWFuZHMoV2ViQ29yZTo6RnJhbWUqLCBib29sKTsKLQot
ICAgICAgICAvLyBmcm9tIEVkaXRvckNsaWVudAotICAgICAgICB2aXJ0dWFsIHZvaWQgcGFnZURl
c3Ryb3llZCgpOwotCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJD
b3JlOjpSYW5nZSopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCk7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKTsKLSAgICAgICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVj
a2luZygpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoKTsKLSAgICAgICAg
dmlydHVhbCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKTsKLQotICAgICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkQmVnaW5FZGl0aW5nKFdlYkNvcmU6OlJhbmdlKik7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRFbmRFZGl0aW5nKFdlYkNvcmU6OlJhbmdlKik7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSos
IFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRJbnNlcnRUZXh0KGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3Jl
OjpFZGl0b3JJbnNlcnRBY3Rpb24pOwotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSogZnJvbVJhbmdlLCBXZWJDb3JlOjpSYW5nZSog
dG9SYW5nZSwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKTsKLQotICAg
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpTdHlsZVByb3BlcnRp
ZXMqLCBXZWJDb3JlOjpSYW5nZSopOwotCi0gICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3Zl
UmFuZ2VBZnRlckRlbGV0ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJhbmdlKik7Ci0KLSAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXNw
b25kVG9DaGFuZ2VkU2VsZWN0aW9uKFdlYkNvcmU6OkZyYW1lKik7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRFbmRFZGl0aW5nKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsV3JpdGVTZWxl
Y3Rpb25Ub1Bhc3RlYm9hcmQoV2ViQ29yZTo6UmFuZ2UqKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBn
ZXRDbGllbnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgVmVjdG9yPFN0
cmluZz4mIHBhc3RlYm9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+ID4mIHBhc3RlYm9hcmREYXRhKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJV
bmRvU3RlcChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VW5kb1N0ZXA+KTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlVuZG9T
dGVwPik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygpOwot
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5Db3B5Q3V0KFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBk
ZWZhdWx0VmFsdWUpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIGJvb2wgY2FuUGFzdGUoV2ViQ29y
ZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgYm9v
bCBjYW5VbmRvKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5SZWRvKCkgY29uc3Q7
Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHVuZG8oKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJl
ZG8oKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9hcmRFdmVudChXZWJDb3Jl
OjpLZXlib2FyZEV2ZW50Kik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnB1dE1ldGhv
ZEtleWRvd24oV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwotCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCB0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoV2ViQ29yZTo6RWxlbWVudCopOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJDb3JlOjpFbGVtZW50Kik7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQoV2ViQ29yZTo6RWxl
bWVudCopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50
KFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCB0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKFdlYkNvcmU6OkVsZW1lbnQq
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRBcmVhKFdlYkNvcmU6
OkVsZW1lbnQqKTsKLQotICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50
KiB0ZXh0Q2hlY2tlcigpIHsgcmV0dXJuICZtX3RleHRDaGVja2VyQ2xpZW50OyB9Ci0KLSAgICAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBX
VEY6OlN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpT
dHJpbmcmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJvb2wgc2hvdyk7
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwotCi0gICAgICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRTaG93VW5pY29kZU1lbnUoKTsKLQotICAgICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNHbG9iYWxTZWxlY3Rpb24oKSBvdmVycmlkZTsKLQotICAgIHByaXZhdGU6Ci0jaWYgRU5B
QkxFKFNQRUxMQ0hFQ0spCi0gICAgICAgIFRleHRDaGVja2VyQ2xpZW50R3RrIG1fdGV4dENoZWNr
ZXJDbGllbnQ7Ci0jZWxzZQotICAgICAgICBXZWJDb3JlOjpFbXB0eVRleHRDaGVja2VyQ2xpZW50
IG1fdGV4dENoZWNrZXJDbGllbnQ7Ci0jZW5kaWYKLSAgICAgICAgV2ViS2l0V2ViVmlldyogbV93
ZWJWaWV3OwotICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5nVHJhbnNsYXRvciBtX2tleUJpbmRp
bmdUcmFuc2xhdG9yOwotICAgICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fcGVuZGluZ0VkaXRv
ckNvbW1hbmRzOwotICAgIH07Ci19Ci0KLSNlbmRpZgotCi0vLyB2aW06IHRzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYjk4MjJmLi4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEyNjUgKzAsMCBAQAotLyoKLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIK
LSAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AdHdvdG9h
c3RzLmRlPgotICogIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBDb2xsYWJvcmEgTHRkLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgR3VzdGF2byBO
b3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgotICogIENvcHlyaWdodCAoQykgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQgMjAwOS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqICBDb3B5cmln
aHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50R3RrLmgiCi0K
LSNpbmNsdWRlICJBcmNoaXZlUmVzb3VyY2UuaCIKLSNpbmNsdWRlICJDYWNoZWRGcmFtZS5oIgot
I2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSAiRE9NT2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRl
ICJEb2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyR3RrLmgiCi0jaW5j
bHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgiCi0jaW5jbHVkZSAiRXJyb3JzR3RrLmgi
Ci0jaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIkZvcm1TdGF0ZS5oIgotI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCi0jaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ay5o
IgotI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1
ZGUgIkd0a1BsdWdpbldpZGdldC5oIgotI2luY2x1ZGUgIkd0a1V0aWxpdGllcy5oIgotI2luY2x1
ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCi0j
aW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxl
bWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVt
ZW50LmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3cu
aCIKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgotI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIK
LSNpbmNsdWRlICJNYWluRnJhbWUuaCIKLSNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCi0jaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGx1Z2lu
RGF0YWJhc2UuaCIKLSNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCi0jaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgotI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
LmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKLSNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKLSNpbmNsdWRlICJ3ZWJraXRhdXRoZW50aWNhdGlvbmRpYWxvZy5oIgotI2luY2x1ZGUgIndl
YmtpdGVycm9yLmgiCi0jaW5jbHVkZSAid2Via2l0ZmF2aWNvbmRhdGFiYXNlLmgiCi0jaW5jbHVk
ZSAid2Via2l0ZmF2aWNvbmRhdGFiYXNlcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdGdsb2Jh
bHMuaCIKLSNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtp
dG5ldHdvcmtyZXF1ZXN0LmgiCi0jaW5jbHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3Rwcml2YXRl
LmgiCi0jaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlLmgiCi0jaW5jbHVkZSAid2Via2l0
bmV0d29ya3Jlc3BvbnNlcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHNlY3VyaXR5b3JpZ2lu
cHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5oIgotI2luY2x1
ZGUgIndlYmtpdHZpZXdwb3J0YXR0cmlidXRlc3ByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR3
ZWJkYXRhc291cmNlcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lLmgiCi0jaW5j
bHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0d2VibmF2aWdh
dGlvbmFjdGlvbi5oIgotI2luY2x1ZGUgIndlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb25wcml2YXRl
LmgiCi0jaW5jbHVkZSAid2Via2l0d2VicG9saWN5ZGVjaXNpb24uaCIKLSNpbmNsdWRlICJ3ZWJr
aXR3ZWJwb2xpY3lkZWNpc2lvbnByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJj
ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndl
YmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKLSNp
bmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0FQSUNhc3QuaD4KLSNpbmNsdWRlIDxnaW8vZ2lvLmg+Ci0jaW5jbHVkZSA8Z2xpYi5oPgotI2lu
Y2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdDb25jYXRlbmF0ZS5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLWlubGluZSBpbnQgdG9XZWJLaXROZXR3b3JrRXJyb3IoaW50IGVycm9yQ29k
ZSkKLXsKLSAgICBzd2l0Y2ggKGVycm9yQ29kZSkgewotICAgIGNhc2UgTmV0d29ya0Vycm9yRmFp
bGVkOgotICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfRkFJTEVEOwotICAgIGNh
c2UgTmV0d29ya0Vycm9yVHJhbnNwb3J0OgotICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktf
RVJST1JfVFJBTlNQT1JUOwotICAgIGNhc2UgTmV0d29ya0Vycm9yVW5rbm93blByb3RvY29sOgot
ICAgICAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfRVJST1JfVU5LTk9XTl9QUk9UT0NPTDsKLSAg
ICBjYXNlIE5ldHdvcmtFcnJvckNhbmNlbGxlZDoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ORVRX
T1JLX0VSUk9SX0NBTkNFTExFRDsKLSAgICBjYXNlIE5ldHdvcmtFcnJvckZpbGVEb2VzTm90RXhp
c3Q6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19FUlJPUl9GSUxFX0RPRVNfTk9UX0VY
SVNUOwotICAgIGNhc2UgUG9saWN5RXJyb3JGYWlsZWQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRf
UE9MSUNZX0VSUk9SX0ZBSUxFRDsKLSAgICBjYXNlIFBvbGljeUVycm9yQ2Fubm90U2hvd01pbWVU
eXBlOgotICAgICAgICByZXR1cm4gV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19NSU1F
X1RZUEU7Ci0gICAgY2FzZSBQb2xpY3lFcnJvckNhbm5vdFNob3dVUkw6Ci0gICAgICAgIHJldHVy
biBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSTDsKLSAgICBjYXNlIFBvbGljeUVy
cm9yRnJhbWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZToKLSAgICAgICAgcmV0dXJuIFdF
QktJVF9QT0xJQ1lfRVJST1JfRlJBTUVfTE9BRF9JTlRFUlJVUFRFRF9CWV9QT0xJQ1lfQ0hBTkdF
OwotICAgIGNhc2UgUG9saWN5RXJyb3JDYW5ub3RVc2VSZXN0cmljdGVkUG9ydDoKLSAgICAgICAg
cmV0dXJuIFdFQktJVF9QT0xJQ1lfRVJST1JfQ0FOTk9UX1VTRV9SRVNUUklDVEVEX1BPUlQ7Ci0g
ICAgY2FzZSBQbHVnaW5FcnJvckZhaWxlZDoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9QTFVHSU5f
RVJST1JfRkFJTEVEOwotICAgIGNhc2UgUGx1Z2luRXJyb3JDYW5ub3RGaW5kUGx1Z2luOgotICAg
ICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfRklORF9QTFVHSU47Ci0gICAg
Y2FzZSBQbHVnaW5FcnJvckNhbm5vdExvYWRQbHVnaW46Ci0gICAgICAgIHJldHVybiBXRUJLSVRf
UExVR0lOX0VSUk9SX0NBTk5PVF9MT0FEX1BMVUdJTjsKLSAgICBjYXNlIFBsdWdpbkVycm9ySmF2
YVVuYXZhaWxhYmxlOgotICAgICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9KQVZBX1VO
QVZBSUxBQkxFOwotICAgIGNhc2UgUGx1Z2luRXJyb3JDb25uZWN0aW9uQ2FuY2VsbGVkOgotICAg
ICAgICByZXR1cm4gV0VCS0lUX1BMVUdJTl9FUlJPUl9DT05ORUNUSU9OX0NBTkNFTExFRDsKLSAg
ICBjYXNlIFBsdWdpbkVycm9yV2lsbEhhbmRsZUxvYWQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRf
UExVR0lOX0VSUk9SX1dJTExfSEFORExFX0xPQUQ7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgLy8g
VGhpcyBtYXkgYmUgb3RoZXIgdHlwZSBvZiBlcnJvciwgd2hpY2ggbmVlZHMgdG8gYmUgcGFzc2Vk
IGFzLWlzLgotICAgICAgICByZXR1cm4gZXJyb3JDb2RlOwotICAgIH0KLX0KLQotRnJhbWVMb2Fk
ZXJDbGllbnQ6OkZyYW1lTG9hZGVyQ2xpZW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKLSAgICA6
IG1fZnJhbWUoZnJhbWUpCi0gICAgLCBtX3BvbGljeURlY2lzaW9uKDApCi0gICAgLCBtX2xvYWRp
bmdFcnJvclBhZ2UoZmFsc2UpCi0gICAgLCBtX3BsdWdpblZpZXcoMCkKLSAgICAsIG1faGFzU2Vu
dFJlc3BvbnNlVG9QbHVnaW4oZmFsc2UpCi17Ci19Ci0KLUZyYW1lTG9hZGVyQ2xpZW50Ojp+RnJh
bWVMb2FkZXJDbGllbnQoKQotewotICAgIGlmIChtX3BvbGljeURlY2lzaW9uKQotICAgICAgICBn
X29iamVjdF91bnJlZihtX3BvbGljeURlY2lzaW9uKTsKLX0KLQotCi1TdHJpbmcgRnJhbWVMb2Fk
ZXJDbGllbnQ6OnVzZXJBZ2VudChjb25zdCBVUkwmIHVybCkKLXsKLSAgICBXZWJLaXRXZWJTZXR0
aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKGdldFZpZXdGcm9t
RnJhbWUobV9mcmFtZSkpOwotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHVzZXJBZ2VudFN0cmluZyh3
ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShzZXR0aW5ncywgdXJsLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpKTsKLSAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCh1c2VyQWdlbnRTdHJp
bmcuZ2V0KCkpOwotfQotCi1zdGF0aWMgdm9pZCBub3RpZnlTdGF0dXMoV2ViS2l0V2ViRnJhbWUq
IGZyYW1lLCBXZWJLaXRMb2FkU3RhdHVzIGxvYWRTdGF0dXMpCi17Ci0gICAgZnJhbWUtPnByaXYt
PmxvYWRTdGF0dXMgPSBsb2FkU3RhdHVzOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChm
cmFtZSksICJsb2FkLXN0YXR1cyIpOwotCi0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdl
dFZpZXdGcm9tRnJhbWUoZnJhbWUpOwotICAgIGlmIChmcmFtZSA9PSB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X21haW5fZnJhbWUod2ViVmlldykpIHsKLSAgICAgICAgd2ViVmlldy0+cHJpdi0+bG9hZFN0
YXR1cyA9IGxvYWRTdGF0dXM7Ci0gICAgICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJW
aWV3KSwgImxvYWQtc3RhdHVzIik7Ci0gICAgfQotfQotCi1XVEY6OlBhc3NSZWZQdHI8V2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXI+IEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVEb2N1bWVudExvYWRl
cihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN1YnN0aXR1
dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkKLXsKLSAgICBSZWZQdHI8V2ViS2l0OjpEb2N1bWVudExv
YWRlcj4gbG9hZGVyID0gV2ViS2l0OjpEb2N1bWVudExvYWRlcjo6Y3JlYXRlKHJlcXVlc3QsIHN1
YnN0aXR1dGVEYXRhKTsKLQotICAgIEdSZWZQdHI8V2ViS2l0V2ViRGF0YVNvdXJjZT4gd2ViRGF0
YVNvdXJjZShhZG9wdEdSZWYoa2l0TmV3KGxvYWRlci5nZXQoKSkpKTsKLSAgICBsb2FkZXItPnNl
dERhdGFTb3VyY2Uod2ViRGF0YVNvdXJjZS5nZXQoKSk7Ci0KLSAgICByZXR1cm4gbG9hZGVyLnJl
bGVhc2UoKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0
Rm9ybShQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIEZyYW1lUG9saWN5RnVuY3Rpb24gcG9saWN5RnVu
Y3Rpb24pCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgc3VyZWx5IHRvbyBzaW1wbGUKLSAgICBB
U1NFUlQocG9saWN5RnVuY3Rpb24pOwotICAgIGlmICghcG9saWN5RnVuY3Rpb24pCi0gICAgICAg
IHJldHVybjsKLSAgICBwb2xpY3lGdW5jdGlvbihQb2xpY3lVc2UpOwotfQotCi12b2lkIEZyYW1l
TG9hZGVyQ2xpZW50Ojpjb21taXR0ZWRMb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2Fk
ZXIsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCi17Ci0gICAgaWYgKCFtX3BsdWdpblZp
ZXcpIHsKLSAgICAgICAgQVNTRVJUKGxvYWRlci0+ZnJhbWUoKSk7Ci0gICAgICAgIGxvYWRlci0+
Y29tbWl0RGF0YShkYXRhLCBsZW5ndGgpOwotCi0gICAgICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBs
b2FkZXItPmZyYW1lKCk7Ci0gICAgICAgIGlmIChjb3JlRnJhbWUgJiYgY29yZUZyYW1lLT5kb2N1
bWVudCgpLT5pc01lZGlhRG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGxvYWRlci0+Y2FuY2VsTWFp
blJlc291cmNlTG9hZChjb3JlRnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnBsdWdpbldpbGxIYW5k
bGVMb2FkRXJyb3IobG9hZGVyLT5yZXNwb25zZSgpKSk7Ci0gICAgfQotCi0gICAgaWYgKG1fcGx1
Z2luVmlldykgewotICAgICAgICBpZiAoIW1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW4pIHsKLSAg
ICAgICAgICAgIG1fcGx1Z2luVmlldy0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGxvYWRlci0+cmVzcG9u
c2UoKSk7Ci0gICAgICAgICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gdHJ1ZTsKLSAg
ICAgICAgfQotCi0gICAgICAgIC8vIEZJWE1FOiBXZSBtYXkgd2FudCB0byBpbnZlc3RpZ2F0ZSBy
ZWZhY3RvcmluZyBvdXIgcGx1Z2luIGxvYWRpbmcKLSAgICAgICAgLy8gY29kZSB0byBiZSBzaW1p
bGFyIHRvIG1hYydzLgotICAgICAgICAvLyBBbHNvLCBzZWUgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMjQxMTguCi0gICAgICAgIGlmICghbV9wbHVnaW5WaWV3KQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIG1fcGx1Z2luVmlldy0+ZGlkUmVjZWl2ZURhdGEoZGF0YSwg
bGVuZ3RoKTsKLSAgICB9Ci19Ci0KLWJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAg
LyogaWRlbnRpZmllciAqLykKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotLy8gV2UgY29udmVy
dCB0aGlzIHRvIHN0cmluZyBiZWNhdXNlIGl0J3MgZWFzaWVyIHRvIHVzZSBzdHJpbmdzIGFzCi0v
LyBrZXlzIGluIGEgR0hhc2hUYWJsZS4KLXN0YXRpYyBjaGFyKiB0b1N0cmluZyh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIpCi17Ci0gICAgcmV0dXJuIGdfc3RyZHVwX3ByaW50ZigiJWxkIiwgaWRl
bnRpZmllcik7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxs
ZW5nZSkKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRf
d2ViX3ZpZXcobV9mcmFtZSk7Ci0KLSAgICBpZiAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpk
dW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpIHsKLSAgICAgICAgQ1N0cmluZyB1c2VybmFtZTsK
LSAgICAgICAgQ1N0cmluZyBwYXNzd29yZDsKLSAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gaWRl
bnRpZmllclN0cmluZyh0b1N0cmluZyhpZGVudGlmaWVyKSk7Ci0gICAgICAgIFdlYktpdFdlYlJl
c291cmNlKiB3ZWJSZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3VyY2Uodmlldywg
aWRlbnRpZmllclN0cmluZy5nZXQoKSk7Ci0gICAgICAgIGlmICghRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzX2F1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgfHwgIUR1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c19hdXRoZW50aWNhdGlvbkNhbGxiYWNrKHVzZXJuYW1lLCBwYXNzd29yZCwgd2ViUmVz
b3VyY2UpKSB7Ci0gICAgICAgICAgICBjaGFsbGVuZ2UuYXV0aGVudGljYXRpb25DbGllbnQoKS0+
cmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNoYWxsZW5nZSk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBjaGFsbGVuZ2UuYXV0aGVu
dGljYXRpb25DbGllbnQoKS0+cmVjZWl2ZWRDcmVkZW50aWFsKGNoYWxsZW5nZSwgQ3JlZGVudGlh
bChTdHJpbmc6OmZyb21VVEY4KHVzZXJuYW1lLmRhdGEoKSksIFN0cmluZzo6ZnJvbVVURjgocGFz
c3dvcmQuZGF0YSgpKSwgQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbikpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0KLSAgICBDcmVkZW50aWFsU3RvcmFnZU1vZGUgY3JlZGVudGlh
bFN0b3JhZ2VNb2RlOwotICAgIGlmIChjb3JlKHZpZXcpLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigp
KQotICAgICAgICBjcmVkZW50aWFsU3RvcmFnZU1vZGUgPSBEaXNhbGxvd1BlcnNpc3RlbnRTdG9y
YWdlOwotICAgIGVsc2UKLSAgICAgICAgY3JlZGVudGlhbFN0b3JhZ2VNb2RlID0gQWxsb3dQZXJz
aXN0ZW50U3RvcmFnZTsKLQotICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSBndGtfd2lkZ2V0X2dl
dF90b3BsZXZlbChHVEtfV0lER0VUKHZpZXcpKTsKLSAgICBHdGtXaWRnZXQqIGF1dGhEaWFsb2cg
PSBjcmVhdGVBdXRoZW50aWNhdGlvbkRpYWxvZyh3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5k
b3codG9wbGV2ZWwpID8gR1RLX1dJTkRPVyh0b3BsZXZlbCkgOiAwLCBjaGFsbGVuZ2UsIGNyZWRl
bnRpYWxTdG9yYWdlTW9kZSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGF1dGhEaWFsb2cpOwotfQot
Ci12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAvKiBpZGVu
dGlmaWVyICovLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2Vu
ZFJlcXVlc3QoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpCi17Ci0gICAgR1JlZlB0cjxXZWJLaXROZXR3b3JrUmVzcG9u
c2U+IG5ldHdvcmtSZXNwb25zZSgwKTsKLQotICAgIC8vIFdlIGFyZSBhZGRpbmcgb25lIG1vcmUg
cmVzb3VyY2UgdG8gdGhlIGxvYWQsIG9yIG1heWJlIHdlIGFyZQotICAgIC8vIGp1c3QgcmVkaXJl
Y3RpbmcgYSBsb2FkLgotICAgIGlmIChyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKQotICAgICAg
ICBzdGF0aWNfY2FzdDxXZWJLaXQ6OkRvY3VtZW50TG9hZGVyKj4obG9hZGVyKS0+aW5jcmVhc2VM
b2FkQ291bnQoaWRlbnRpZmllcik7Ci0gICAgZWxzZQotICAgICAgICBuZXR3b3JrUmVzcG9uc2Ug
PSBhZG9wdEdSZWYoa2l0TmV3KHJlZGlyZWN0UmVzcG9uc2UpKTsKLQotICAgIFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwotICAgIEdVbmlxdWVQdHI8
Z2NoYXI+IGlkZW50aWZpZXJTdHJpbmcodG9TdHJpbmcoaWRlbnRpZmllcikpOwotICAgIFdlYktp
dFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3VyY2Uo
d2ViVmlldywgaWRlbnRpZmllclN0cmluZy5nZXQoKSk7Ci0gICAgR1JlZlB0cjxXZWJLaXROZXR3
b3JrUmVxdWVzdD4gbmV0d29ya1JlcXVlc3QoYWRvcHRHUmVmKGtpdE5ldyhyZXF1ZXN0KSkpOwot
Ci0gICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7Ci0gICAgICAgIC8vIFRoaXMg
aXMgYSByZWRpcmVjdCwgc28gd2UgbmVlZCB0byB1cGRhdGUgdGhlIFdlYlJlc291cmNlJ3Mga25v
d2xlZGdlCi0gICAgICAgIC8vIG9mIHRoZSBVUkkuCi0gICAgICAgIGdfZnJlZSh3ZWJSZXNvdXJj
ZS0+cHJpdi0+dXJpKTsKLSAgICAgICAgd2ViUmVzb3VyY2UtPnByaXYtPnVyaSA9IGdfc3RyZHVw
KHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotCi0gICAgZ19z
aWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nIiwg
bV9mcmFtZSwgd2ViUmVzb3VyY2UsIG5ldHdvcmtSZXF1ZXN0LmdldCgpLCBuZXR3b3JrUmVzcG9u
c2UuZ2V0KCkpOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX2ZyYW1lLCAicmVzb3VyY2Ut
cmVxdWVzdC1zdGFydGluZyIsIHdlYlJlc291cmNlLCBuZXR3b3JrUmVxdWVzdC5nZXQoKSwgbmV0
d29ya1Jlc3BvbnNlLmdldCgpKTsKLQotICAgIC8vIEZlZWQgYW55IGNoYW5nZXMgYmFjayBpbnRv
IHRoZSBSZXNvdXJjZVJlcXVlc3Qgb2JqZWN0LgotICAgIFNvdXBNZXNzYWdlKiBtZXNzYWdlID0g
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZShuZXR3b3JrUmVxdWVzdC5nZXQoKSk7
Ci0gICAgaWYgKCFtZXNzYWdlKSB7Ci0gICAgICAgIHJlcXVlc3Quc2V0VVJMKFVSTChVUkwoKSwg
U3RyaW5nOjpmcm9tVVRGOCh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkobmV0d29ya1Jl
cXVlc3QuZ2V0KCkpKSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcmVxdWVzdC51
cGRhdGVGcm9tU291cE1lc3NhZ2UobWVzc2FnZSk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OmFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQotewotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGlkZW50aWZpZXJTdHJpbmco
dG9TdHJpbmcoaWRlbnRpZmllcikpOwotCi0gICAgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291
cmNlID0gV0VCS0lUX1dFQl9SRVNPVVJDRShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX1JF
U09VUkNFLCAidXJpIiwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCAwKSk7
Ci0KLSAgICBpZiAobG9hZGVyID09IGxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+cHJvdmlzaW9uYWxE
b2N1bWVudExvYWRlcigpCi0gICAgICAgICYmIGxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+ZnJhbWUo
KS5pc01haW5GcmFtZSgpKSB7Ci0gICAgICAgIHdlYmtpdF93ZWJfdmlld19hZGRfbWFpbl9yZXNv
dXJjZShnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpLCBpZGVudGlmaWVyU3RyaW5nLmdldCgpLCB3
ZWJSZXNvdXJjZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB3ZWJraXRfd2ViX3Zp
ZXdfYWRkX3Jlc291cmNlKGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSksIGlkZW50aWZpZXJTdHJp
bmcuZ2V0KCksIHdlYlJlc291cmNlKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZnJh
bWVMb2FkZXJEZXN0cm95ZWQoKQotewotICAgIHdlYmtpdF93ZWJfZnJhbWVfY29yZV9mcmFtZV9n
b25lKG1fZnJhbWUpOwotICAgIGdfb2JqZWN0X3VucmVmKG1fZnJhbWUpOwotICAgIG1fZnJhbWUg
PSAwOwotICAgIGRlbGV0ZSB0aGlzOwotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVyLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
KQotewotICAgIC8vIFVwZGF0ZSBvdXIga25vd2xlZGdlIG9mIHJlcXVlc3Qgc291cCBmbGFncyAt
IHNvbWUgYXJlIG9ubHkgc2V0Ci0gICAgLy8gYWZ0ZXIgdGhlIHJlcXVlc3QgaXMgZG9uZS4KLSAg
ICBsb2FkZXItPnJlcXVlc3QoKS5zZXRTb3VwTWVzc2FnZUZsYWdzKHJlc3BvbnNlLnNvdXBNZXNz
YWdlRmxhZ3MoKSk7Ci0KLSAgICBtX3Jlc3BvbnNlID0gcmVzcG9uc2U7Ci0KLSAgICBXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKLSAgICBHVW5pcXVl
UHRyPGdjaGFyPiBpZGVudGlmaWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKLSAgICBX
ZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291
cmNlKHdlYlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOwotICAgIEdSZWZQdHI8V2ViS2l0
TmV0d29ya1Jlc3BvbnNlPiBuZXR3b3JrUmVzcG9uc2UoYWRvcHRHUmVmKGtpdE5ldyhyZXNwb25z
ZSkpKTsKLQotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJSZXNvdXJjZSwgInJlc3BvbnNl
LXJlY2VpdmVkIiwgbmV0d29ya1Jlc3BvbnNlLmdldCgpKTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUobV9mcmFtZSwgInJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkIiwgd2ViUmVzb3VyY2Us
IG5ldHdvcmtSZXNwb25zZS5nZXQoKSk7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZp
ZXcsICJyZXNvdXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsIG1fZnJhbWUsIHdlYlJlc291cmNlLCBu
ZXR3b3JrUmVzcG9uc2UuZ2V0KCkpOwotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgRnJhbWVQb2xpY3lG
dW5jdGlvbiBwb2xpY3lGdW5jdGlvbikKLXsKLSAgICBBU1NFUlQocG9saWN5RnVuY3Rpb24pOwot
ICAgIGlmICghcG9saWN5RnVuY3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChyZXNv
dXJjZVJlcXVlc3QuaXNOdWxsKCkpIHsKLSAgICAgICAgcG9saWN5RnVuY3Rpb24oUG9saWN5SWdu
b3JlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFdlYktpdFdlYlZpZXcqIHBhZ2Ug
PSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwotICAgIEdSZWZQdHI8V2ViS2l0TmV0d29ya1Jl
cXVlc3Q+IHJlcXVlc3QoYWRvcHRHUmVmKGtpdE5ldyhyZXNvdXJjZVJlcXVlc3QpKSk7Ci0KLSAg
ICBXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbiogcG9saWN5RGVjaXNpb24gPSB3ZWJraXRfd2ViX3Bv
bGljeV9kZWNpc2lvbl9uZXcobV9mcmFtZSwgcG9saWN5RnVuY3Rpb24pOwotICAgIGlmIChtX3Bv
bGljeURlY2lzaW9uKQotICAgICAgICBnX29iamVjdF91bnJlZihtX3BvbGljeURlY2lzaW9uKTsK
LSAgICBtX3BvbGljeURlY2lzaW9uID0gcG9saWN5RGVjaXNpb247Ci0KLSAgICBTdHJpbmcgbWlt
ZVR5cGUgPSByZXNwb25zZS5taW1lVHlwZSgpOwotCi0gICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0g
ZmFsc2U7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHBhZ2UsICJtaW1lLXR5cGUtcG9saWN5
LWRlY2lzaW9uLXJlcXVlc3RlZCIsIG1fZnJhbWUsIHJlcXVlc3QuZ2V0KCksIG1pbWVUeXBlLnV0
ZjgoKS5kYXRhKCksIHBvbGljeURlY2lzaW9uLCAmaXNIYW5kbGVkKTsKLQotICAgIGlmIChpc0hh
bmRsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEdSZWZQdHI8V2ViS2l0TmV0d29ya1Jlc3Bv
bnNlPiBuZXR3b3JrUmVzcG9uc2UoYWRvcHRHUmVmKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25ldHdv
cmtfcmVzcG9uc2UobV9mcmFtZSkpKTsKLSAgICBpZiAobmV0d29ya1Jlc3BvbnNlKSB7Ci0gICAg
ICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UgPSBjb3JlKG5ldHdvcmtSZXNwb25zZS5nZXQo
KSk7Ci0gICAgICAgIGlmIChyZXNwb25zZS5pc0F0dGFjaG1lbnQoKSkgewotICAgICAgICAgICAg
d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fZG93bmxvYWQocG9saWN5RGVjaXNpb24pOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGNhblNob3dNSU1F
VHlwZShtaW1lVHlwZSkpCi0gICAgICAgIHdlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX3VzZShw
b2xpY3lEZWNpc2lvbik7Ci0gICAgZWxzZQotICAgICAgICB3ZWJraXRfd2ViX3BvbGljeV9kZWNp
c2lvbl9pZ25vcmUocG9saWN5RGVjaXNpb24pOwotfQotCi1zdGF0aWMgV2ViS2l0V2ViTmF2aWdh
dGlvbkFjdGlvbiogZ2V0TmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3Rpb24sIGNvbnN0IGNoYXIqIHRhcmdldEZyYW1lKQotewotICAgIGdpbnQgYnV0dG9uID0gLTE7
Ci0KLSAgICBjb25zdCBFdmVudCogZXZlbnQgPSBhY3Rpb24uZXZlbnQoKTsKLSAgICBpZiAoZXZl
bnQgJiYgZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7Ci0gICAgICAgIGNvbnN0IE1vdXNlRXZlbnQq
IG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBNb3VzZUV2ZW50Kj4oZXZlbnQpOwotICAg
ICAgICAvLyBET00gYnV0dG9uIHZhbHVlcyBhcmUgMCwgMSBhbmQgMiBmb3IgbGVmdCwgbWlkZGxl
IGFuZCByaWdodCBidXR0b25zLgotICAgICAgICAvLyBHVEsrIHVzZXMgMSwgMiBhbmQgMywgc28g
bGV0J3MgYWRkIDEgdG8gcmVtYWluIGNvbnNpc3RlbnQuCi0gICAgICAgIGJ1dHRvbiA9IG1vdXNl
RXZlbnQtPmJ1dHRvbigpICsgMTsKLSAgICB9Ci0KLSAgICBnaW50IG1vZGlmaWVyRmxhZ3MgPSAw
OwotICAgIFVJRXZlbnRXaXRoS2V5U3RhdGUqIGtleVN0YXRlRXZlbnQgPSBmaW5kRXZlbnRXaXRo
S2V5U3RhdGUoY29uc3RfY2FzdDxFdmVudCo+KGV2ZW50KSk7Ci0gICAgaWYgKGtleVN0YXRlRXZl
bnQpIHsKLSAgICAgICAgaWYgKGtleVN0YXRlRXZlbnQtPnNoaWZ0S2V5KCkpCi0gICAgICAgICAg
ICBtb2RpZmllckZsYWdzIHw9IEdES19TSElGVF9NQVNLOwotICAgICAgICBpZiAoa2V5U3RhdGVF
dmVudC0+Y3RybEtleSgpKQotICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBHREtfQ09OVFJP
TF9NQVNLOwotICAgICAgICBpZiAoa2V5U3RhdGVFdmVudC0+YWx0S2V5KCkpCi0gICAgICAgICAg
ICBtb2RpZmllckZsYWdzIHw9IEdES19NT0QxX01BU0s7Ci0gICAgICAgIGlmIChrZXlTdGF0ZUV2
ZW50LT5tZXRhS2V5KCkpCi0gICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IEdES19NT0QyX01B
U0s7Ci0gICAgfQotCi0gICAgcmV0dXJuIFdFQktJVF9XRUJfTkFWSUdBVElPTl9BQ1RJT04oZ19v
YmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9OQVZJR0FUSU9OX0FDVElPTiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYXNvbiIsIGtpdChh
Y3Rpb24udHlwZSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIm9yaWdpbmFsLXVyaSIsIGFjdGlvbi51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiYnV0dG9uIiwgYnV0dG9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibW9kaWZpZXItc3RhdGUiLCBtb2RpZmllckZsYWdzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGFyZ2V0
LWZyYW1lIiwgdGFyZ2V0RnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwpKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgRnJhbWVQb2xpY3lG
dW5jdGlvbiBwb2xpY3lGdW5jdGlvbikKLXsKLSAgICBBU1NFUlQocG9saWN5RnVuY3Rpb24pOwot
ICAgIGlmICghcG9saWN5RnVuY3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChyZXNv
dXJjZVJlcXVlc3QuaXNOdWxsKCkpIHsKLSAgICAgICAgcG9saWN5RnVuY3Rpb24oUG9saWN5SWdu
b3JlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFdlYktpdFdlYlBvbGljeURlY2lz
aW9uKiBwb2xpY3lEZWNpc2lvbiA9IHdlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX25ldyhtX2Zy
YW1lLCBwb2xpY3lGdW5jdGlvbik7Ci0KLSAgICBpZiAobV9wb2xpY3lEZWNpc2lvbikKLSAgICAg
ICAgZ19vYmplY3RfdW5yZWYobV9wb2xpY3lEZWNpc2lvbik7Ci0gICAgbV9wb2xpY3lEZWNpc2lv
biA9IHBvbGljeURlY2lzaW9uOwotCi0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZp
ZXdGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgR1JlZlB0cjxXZWJLaXROZXR3b3JrUmVxdWVzdD4g
cmVxdWVzdChhZG9wdEdSZWYod2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcocmVzb3VyY2VSZXF1
ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKSk7Ci0gICAgR1JlZlB0cjxXZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uPiBuYXZpZ2F0aW9uQWN0aW9uKGFkb3B0R1JlZihnZXROYXZpZ2F0
aW9uQWN0aW9uKGFjdGlvbiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkpKSk7Ci0gICAgZ2Jvb2xl
YW4gaXNIYW5kbGVkID0gZmFsc2U7Ci0KLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmll
dywgIm5ldy13aW5kb3ctcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCIsIG1fZnJhbWUsIHJlcXVl
c3QuZ2V0KCksIG5hdmlnYXRpb25BY3Rpb24uZ2V0KCksIHBvbGljeURlY2lzaW9uLCAmaXNIYW5k
bGVkKTsKLQotICAgIC8vIEZJWE1FOiBJIHRoaW5rIFF0IHZlcnNpb24gbWFyc2hhbHMgdGhpcyB0
byBhbm90aGVyIHRocmVhZCBzbyB3aGVuIHdlCi0gICAgLy8gaGF2ZSBtdWx0aS10aHJlYWRlZCBk
b3dubG9hZCwgd2UgbWlnaHQgbmVlZCB0byBkbyB0aGUgc2FtZQotICAgIGlmICghaXNIYW5kbGVk
KQotICAgICAgICBwb2xpY3lGdW5jdGlvbihQb2xpY3lVc2UpOwotfQotCi12b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNl
UmVxdWVzdCwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+LCBGcmFtZVBvbGljeUZ1bmN0aW9uIHBvbGlj
eUZ1bmN0aW9uKQotewotICAgIEFTU0VSVChwb2xpY3lGdW5jdGlvbik7Ci0gICAgaWYgKCFwb2xp
Y3lGdW5jdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKHJlc291cmNlUmVxdWVzdC5p
c051bGwoKSkgewotICAgICAgICBwb2xpY3lGdW5jdGlvbihQb2xpY3lJZ25vcmUpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdG
cm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgR1JlZlB0cjxXZWJLaXROZXR3b3JrUmVxdWVzdD4gcmVx
dWVzdChhZG9wdEdSZWYoa2l0TmV3KHJlc291cmNlUmVxdWVzdCkpKTsKLSAgICBXZWJLaXROYXZp
Z2F0aW9uUmVzcG9uc2UgcmVzcG9uc2U7Ci0gICAgLyoKLSAgICAgKiBXZSBzdGlsbCBzdXBwb3J0
IHRoZSBkZXByZWNhdGVkIG5hdmlnYXRpb24tcmVxdWVzdGVkIHNpZ25hbCwgaWYgdGhlCi0gICAg
ICogYXBwbGljYXRpb24gZG9lc24ndCBpZ25vcmUgdGhlIG5hdmlnYXRpb24gdGhlbiB0aGUgbmV3
IHNpZ25hbCBpcwotICAgICAqIGVtaXR0ZWQuCi0gICAgICogbmF2aWdhdGlvbi1wb2xpY3ktZGVj
aXNpb24tcmVxdWVzdGVkIG11c3QgYmUgZW1pdHRlZCBhZnRlcgotICAgICAqIG5hdmlnYXRpb24t
cmVxdWVzdGVkIGFzIHRoZSBwb2xpY3kgZGVjaXNpb24gY2FuIGJlIGFzeW5jLgotICAgICAqLwot
ICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAibmF2aWdhdGlvbi1yZXF1ZXN0ZWQi
LCBtX2ZyYW1lLCByZXF1ZXN0LmdldCgpLCAmcmVzcG9uc2UpOwotCi0gICAgaWYgKHJlc3BvbnNl
ID09IFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0lHTk9SRSkgewotICAgICAgICBwb2xpY3lG
dW5jdGlvbihQb2xpY3lJZ25vcmUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgV2Vi
S2l0V2ViUG9saWN5RGVjaXNpb24qIHBvbGljeURlY2lzaW9uID0gd2Via2l0X3dlYl9wb2xpY3lf
ZGVjaXNpb25fbmV3KG1fZnJhbWUsIHBvbGljeUZ1bmN0aW9uKTsKLSAgICBpZiAobV9wb2xpY3lE
ZWNpc2lvbikKLSAgICAgICAgZ19vYmplY3RfdW5yZWYobV9wb2xpY3lEZWNpc2lvbik7Ci0gICAg
bV9wb2xpY3lEZWNpc2lvbiA9IHBvbGljeURlY2lzaW9uOwotCi0gICAgR1JlZlB0cjxXZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uPiBuYXZpZ2F0aW9uQWN0aW9uKGFkb3B0R1JlZihnZXROYXZpZ2F0
aW9uQWN0aW9uKGFjdGlvbiwgMCkpKTsKLSAgICBnYm9vbGVhbiBpc0hhbmRsZWQgPSBmYWxzZTsK
LSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgIm5hdmlnYXRpb24tcG9saWN5LWRl
Y2lzaW9uLXJlcXVlc3RlZCIsIG1fZnJhbWUsIHJlcXVlc3QuZ2V0KCksIG5hdmlnYXRpb25BY3Rp
b24uZ2V0KCksIHBvbGljeURlY2lzaW9uLCAmaXNIYW5kbGVkKTsKLQotICAgIC8vIEZJWE1FIElt
cGxlbWVudCBkZWZhdWx0IGJlaGF2aW9yIHdoZW4gd2UgY2FuIHF1ZXJ5IHRoZSBiYWNrZW5kIHdo
YXQgcHJvdG9jb2xzIGl0IHN1cHBvcnRzCi0gICAgaWYgKCFpc0hhbmRsZWQpCi0gICAgICAgIHdl
YmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX3VzZShtX3BvbGljeURlY2lzaW9uKTsKLX0KLQotUGFz
c1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50
U2l6ZSYgcGx1Z2luU2l6ZSwgSFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhcmFtVmFsdWVzLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGxvYWRNYW51YWxs
eSkKLXsKLSAgICAvKiBDaGVjayBpZiB3ZSB3YW50IHRvIGVtYmVkIGEgR3RrV2lkZ2V0LCBmYWxs
YmFjayB0byBwbHVnaW5zIGxhdGVyICovCi0gICAgQ1N0cmluZyB1cmxTdHJpbmcgPSB1cmwuc3Ry
aW5nKCkudXRmOCgpOwotICAgIENTdHJpbmcgbWltZVR5cGVTdHJpbmcgPSBtaW1lVHlwZS51dGY4
KCk7Ci0KLSAgICBBU1NFUlQocGFyYW1OYW1lcy5zaXplKCkgPT0gcGFyYW1WYWx1ZXMuc2l6ZSgp
KTsKLSAgICBHUmVmUHRyPEdIYXNoVGFibGU+IGhhc2ggPSBhZG9wdEdSZWYoZ19oYXNoX3RhYmxl
X25ld19mdWxsKGdfc3RyX2hhc2gsIGdfc3RyX2VxdWFsLCBnX2ZyZWUsIGdfZnJlZSkpOwotICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXJhbU5hbWVzLnNpemUoKTsgKytpKSB7Ci0gICAg
ICAgIGdfaGFzaF90YWJsZV9pbnNlcnQoaGFzaC5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3N0cmR1cChwYXJhbU5hbWVzW2ldLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfc3RyZHVwKHBhcmFtVmFsdWVzW2ldLnV0ZjgoKS5kYXRhKCkp
KTsKLSAgICB9Ci0KLSAgICBHdGtXaWRnZXQqIGd0a1dpZGdldCA9IDA7Ci0gICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSksICJjcmVhdGUtcGx1Z2luLXdp
ZGdldCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1pbWVUeXBlU3RyaW5nLmRhdGEoKSwg
dXJsU3RyaW5nLmRhdGEoKSwgaGFzaC5nZXQoKSwgJmd0a1dpZGdldCk7Ci0gICAgaWYgKGd0a1dp
ZGdldCkgewotICAgICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGdldFZpZXdG
cm9tRnJhbWUobV9mcmFtZSkpLCBndGtXaWRnZXQpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IEd0a1BsdWdpbldpZGdldChndGtXaWRnZXQpKTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8UGx1
Z2luVmlldz4gcGx1Z2luVmlldyA9IFBsdWdpblZpZXc6OmNyZWF0ZShjb3JlKG1fZnJhbWUpLCBw
bHVnaW5TaXplLCBlbGVtZW50LCB1cmwsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzLCBtaW1lVHlw
ZSwgbG9hZE1hbnVhbGx5KTsKLQotICAgIGlmIChwbHVnaW5WaWV3LT5zdGF0dXMoKSA9PSBQbHVn
aW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpCi0gICAgICAgIHJldHVybiBwbHVnaW5WaWV3Owot
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLVBhc3NSZWZQdHI8RnJhbWU+IEZyYW1lTG9hZGVyQ2xpZW50
OjpjcmVhdGVGcmFtZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBIVE1MRnJh
bWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9v
bCAvKiBhbGxvd3NTY3JvbGxpbmcgKi8sIGludCAvKiBtYXJnaW5XaWR0aCAqLywgaW50IC8qIG1h
cmdpbkhlaWdodCAqLykKLXsKLSAgICBBU1NFUlQobV9mcmFtZSk7Ci0gICAgRnJhbWUqIHBhcmVu
dEZyYW1lID0gY29yZShtX2ZyYW1lKTsKLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0
Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKLSAgICBXZWJDb3JlOjpQYWdlKiBwYWdlID0gY29yZSh3
ZWJWaWV3KTsKLSAgICBBU1NFUlQocGFnZSA9PSBwYXJlbnRGcmFtZS0+cGFnZSgpKTsKLQotICAg
IFdlYktpdFdlYkZyYW1lKiBraXRGcmFtZSA9IFdFQktJVF9XRUJfRlJBTUUoZ19vYmplY3RfbmV3
KFdFQktJVF9UWVBFX1dFQl9GUkFNRSwgTlVMTCkpOwotICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0
ZSogZnJhbWVQcml2YXRlID0ga2l0RnJhbWUtPnByaXY7Ci0gICAgZnJhbWVQcml2YXRlLT53ZWJW
aWV3ID0gd2ViVmlldzsKLQotICAgIFJlZlB0cjxGcmFtZT4gY2hpbGRGcmFtZSA9IEZyYW1lOjpj
cmVhdGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgRnJhbWVMb2FkZXJDbGllbnQoa2l0RnJhbWUp
KTsKLSAgICBmcmFtZVByaXZhdGUtPmNvcmVGcmFtZSA9IGNoaWxkRnJhbWUuZ2V0KCk7Ci0KLSAg
ICBjaGlsZEZyYW1lLT50cmVlKCkuc2V0TmFtZShuYW1lKTsKLSAgICBwYXJlbnRGcmFtZS0+dHJl
ZSgpLmFwcGVuZENoaWxkKGNoaWxkRnJhbWUpOwotICAgIGNoaWxkRnJhbWUtPmluaXQoKTsKLQot
ICAgIC8vIFRoZSBjcmVhdGlvbiBvZiB0aGUgZnJhbWUgbWF5IGhhdmUgcnVuIGFyYml0cmFyeSBK
YXZhU2NyaXB0IHRoYXQgcmVtb3ZlZCBpdCBmcm9tIHRoZSBwYWdlIGFscmVhZHkuCi0gICAgaWYg
KCFjaGlsZEZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJmcmFtZS1jcmVhdGVkIiwga2l0RnJhbWUpOwotCi0gICAg
cGFyZW50RnJhbWUtPmxvYWRlcigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJlZmVycmVy
LCBjaGlsZEZyYW1lLmdldCgpKTsKLQotICAgIC8vIFRoZSBmcmFtZSdzIG9ubG9hZCBoYW5kbGVy
IG1heSBoYXZlIHJlbW92ZWQgaXQgZnJvbSB0aGUgZG9jdW1lbnQuCi0gICAgaWYgKCFjaGlsZEZy
YW1lLT50cmVlKCkucGFyZW50KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGNo
aWxkRnJhbWUucmVsZWFzZSgpOwotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVj
dERhdGFUb1BsdWdpbihXaWRnZXQqIHBsdWdpbldpZGdldCkKLXsKLSAgICBtX3BsdWdpblZpZXcg
PSB0b1BsdWdpblZpZXcocGx1Z2luV2lkZ2V0KTsKLSAgICBpZiAocGx1Z2luV2lkZ2V0KQotICAg
ICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7Ci19Ci0KLVBhc3NSZWZQdHI8
V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJ
bnRTaXplJiBwbHVnaW5TaXplLCBIVE1MQXBwbGV0RWxlbWVudCogZWxlbWVudCwgY29uc3QgVVJM
JiBiYXNlVVJMLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhcmFtVmFsdWVzKQotewotICAgIHJldHVybiBGcmFtZUxvYWRlckNsaWVudDo6
Y3JlYXRlUGx1Z2luKHBsdWdpblNpemUsIGVsZW1lbnQsIGJhc2VVUkwsIHBhcmFtTmFtZXMsIHBh
cmFtVmFsdWVzLCAiYXBwbGljYXRpb24veC1qYXZhLWFwcGxldCIsIGZhbHNlKTsKLX0KLQotT2Jq
ZWN0Q29udGVudFR5cGUgRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJ
bnNGb3JJbWFnZXMpCi17Ci0gICAgcmV0dXJuIEZyYW1lTG9hZGVyOjpkZWZhdWx0T2JqZWN0Q29u
dGVudFR5cGUodXJsLCBtaW1lVHlwZSwgc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdlcyk7Ci19
Ci0KLVN0cmluZyBGcmFtZUxvYWRlckNsaWVudDo6b3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdAot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi12b2lk
IEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChE
T01XcmFwcGVyV29ybGQmIHdvcmxkKQotewotICAgIGlmICgmd29ybGQgIT0gJm1haW5UaHJlYWRO
b3JtYWxXb3JsZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBJcyB0aGlzIG9ic29sZXRl
IG5vdz8KLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV9mcmFtZSwgImNsZWFyZWQiKTsKLQot
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fZnJhbWUpOwotICAgIEFTU0VSVChjb3JlRnJh
bWUpOwotCi0gICAgaWYgKCFjb3JlRnJhbWUtPnNldHRpbmdzKCkuaXNTY3JpcHRFbmFibGVkKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFRPRE86IENvbnNpZGVyIHVzaW5nIGdfc2lnbmFs
X2hhc19oYW5kbGVyX3BlbmRpbmcoKSB0byBhdm9pZCB0aGUgb3ZlcmhlYWQKLSAgICAvLyB3aGVu
IHRoZXJlIGFyZSBubyBoYW5kbGVycy4KLSAgICBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCA9
IHRvR2xvYmFsUmVmKGNvcmVGcmFtZS0+c2NyaXB0KCkuZ2xvYmFsT2JqZWN0KG1haW5UaHJlYWRO
b3JtYWxXb3JsZCgpKS0+Z2xvYmFsRXhlYygpKTsKLSAgICBKU09iamVjdFJlZiB3aW5kb3dPYmpl
Y3QgPSB0b1JlZihjb3JlRnJhbWUtPnNjcmlwdCgpLmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9y
bWFsV29ybGQoKSkpOwotICAgIEFTU0VSVCh3aW5kb3dPYmplY3QpOwotCi0gICAgV2ViS2l0V2Vi
Vmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJ3aW5kb3ctb2JqZWN0LWNsZWFyZWQiLCBtX2ZyYW1lLCBj
b250ZXh0LCB3aW5kb3dPYmplY3QpOwotCi0gICAgLy8gVE9ETzogUmUtYXR0YWNoIGRlYnVnIGNs
aWVudHMgaWYgcHJlc2VudC4KLSAgICAvLyBUaGUgV2luIHBvcnQgaGFzIGFuIGV4YW1wbGUgb2Yg
aG93IHdlIG1pZ2h0IGRvIHRoaXMuCi19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnJlZ2lz
dGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIHNob3VsZFJlZ2lzdGVyKQotewotICAgIHdlYmtp
dFdlYlZpZXdSZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24oZ2V0Vmlld0Zyb21GcmFtZShtX2Zy
YW1lKSwgc2hvdWxkUmVnaXN0ZXIpOwotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpzZXRN
YWluRnJhbWVEb2N1bWVudFJlYWR5KGJvb2wgcmVhZHkpCi17Ci0gICAgaWYgKCFyZWFkeSkKLSAg
ICAgICAgRE9NT2JqZWN0Q2FjaGU6OmNsZWFyQnlGcmFtZShjb3JlKG1fZnJhbWUpKTsKLX0KLQot
Ym9vbCBGcmFtZUxvYWRlckNsaWVudDo6aGFzV2ViVmlldygpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmluaXNoTG9hZCgpCi17Ci0gICAgaWYgKG1fbG9hZGluZ0Vycm9yUGFnZSkg
ewotICAgICAgICBtX2xvYWRpbmdFcnJvclBhZ2UgPSBmYWxzZTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICBub3RpZnlTdGF0dXMobV9mcmFtZSwgV0VCS0lUX0xPQURfRklOSVNIRUQpOwot
fQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRDb21wbGV0ZWQoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVWaWV3
U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0qKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
LXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnJlc3RvcmVWaWV3U3RhdGUoKQotewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci19Ci0KLWJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEdvVG9IaXN0
b3J5SXRlbShIaXN0b3J5SXRlbSogaXRlbSkgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogVGhpcyBp
cyBhIHZlcnkgc2ltcGxlIGltcGxlbWVudGF0aW9uLiBNb3JlIHNvcGhpc3RpY2F0ZWQKLSAgICAv
LyBpbXBsZW1lbnRhdGlvbiB3b3VsZCBkZWxlZ2F0ZSB0aGUgZGVjaXNpb24gdG8gYSBQb2xpY3lE
ZWxlZ2F0ZS4KLSAgICAvLyBTZWUgbWFjIGltcGxlbWVudGF0aW9uIGZvciBleGFtcGxlLgotICAg
IHJldHVybiBpdGVtICE9IDA7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnQoKQotewotICAgIGlmICghRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkgfHwgIUR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c19mcmFtZUxvYWRFdmVudENhbGxiYWNrKQotICAgICAgICByZXR1cm47Ci0gICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzX2ZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sobV9mcmFtZSwgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50LCAwKTsKLX0K
LQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5
T3JpZ2luKiBjb3JlT3JpZ2luLCBjb25zdCBVUkwmIHVybCkKLXsKLSAgICBnX3NpZ25hbF9lbWl0
X2J5X25hbWUobV9mcmFtZSwgImluc2VjdXJlLWNvbnRlbnQtcnVuIiwga2l0KGNvcmVPcmlnaW4p
LCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OmRpZERldGVjdFhTUyhjb25zdCBVUkwmLCBib29sKQotewotICAgIGlmICghRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkgfHwgIUR1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENhbGxiYWNrKQotICAgICAgICByZXR1
cm47Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2ZyYW1lTG9hZEV2ZW50Q2FsbGJh
Y2sobV9mcmFtZSwgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpEaWREZXRlY3RYU1MsIDApOwot
fQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojpmb3JjZUxheW91dCgpCi17Ci0gICAgRnJhbWVW
aWV3KiB2aWV3ID0gY29yZShtX2ZyYW1lKS0+dmlldygpOwotICAgIGlmICh2aWV3KQotICAgICAg
ICB2aWV3LT5mb3JjZUxheW91dCh0cnVlKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6
Zm9yY2VMYXlvdXRGb3JOb25IVE1MKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12
b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpzZXRDb3BpZXNPblNjcm9sbCgpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGV0YWNoZWRGcm9tUGFy
ZW50MigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6ZGV0YWNoZWRGcm9tUGFyZW50MygpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVudHMo
KQotewotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUp
LCAib25sb2FkLWV2ZW50IiwgbV9mcmFtZSk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkKLXsK
LSAgICBpZiAoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcFJlbmRlclRyZWVNb2RlRW5h
YmxlZCgpIHx8ICFEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZnJhbWVMb2FkRXZlbnRDYWxs
YmFjaykKLSAgICAgICAgcmV0dXJuOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19m
cmFtZUxvYWRFdmVudENhbGxiYWNrKG1fZnJhbWUsIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
RGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkLCAwKTsKLX0KLQotdm9p
ZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpCi17
Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVu
YWJsZWQoKSB8fCAhRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2ZyYW1lTG9hZEV2ZW50Q2Fs
bGJhY2spCi0gICAgICAgIHJldHVybjsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNf
ZnJhbWVMb2FkRXZlbnRDYWxsYmFjayhtX2ZyYW1lLCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OkRpZENhbmNlbENsaWVudFJlZGlyZWN0LCAwKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYgdXJsLCBkb3Vi
bGUsIGRvdWJsZSkKLXsKLSAgICBpZiAoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcFJl
bmRlclRyZWVNb2RlRW5hYmxlZCgpIHx8ICFEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZnJh
bWVMb2FkRXZlbnRDYWxsYmFjaykKLSAgICAgICAgcmV0dXJuOwotICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c19mcmFtZUxvYWRFdmVudENhbGxiYWNrKG1fZnJhbWUsIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMLCB1cmwuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKCkKLXsKLSAgICBXZWJLaXRXZWJGcmFtZVByaXZh
dGUqIHByaXYgPSBtX2ZyYW1lLT5wcml2OwotICAgIGdfZnJlZShwcml2LT51cmkpOwotICAgIHBy
aXYtPnVyaSA9IGdfc3RyZHVwKGNvcmUobV9mcmFtZSktPmRvY3VtZW50KCktPnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChtX2ZyYW1l
KSwgInVyaSIpOwotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1l
KG1fZnJhbWUpOwotICAgIGlmIChtX2ZyYW1lID09IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9m
cmFtZSh3ZWJWaWV3KSkKLSAgICAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcp
LCAidXJpIik7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTmF2aWdh
dGVXaXRoaW5QYWdlKCkKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zy
b21GcmFtZShtX2ZyYW1lKTsKLSAgICBXZWJLaXRXZWJGcmFtZSogbWFpbkZyYW1lID0gd2ViVmll
dy0+cHJpdi0+bWFpbkZyYW1lOwotICAgIFdlYktpdFdlYkRhdGFTb3VyY2UqIGRhdGFTb3VyY2Ug
PSB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kYXRhX3NvdXJjZShtYWluRnJhbWUpOwotICAgIGJvb2wg
bG9hZGVyQ29tcGxldGVkID0gIXdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfaXNfbG9hZGluZyhkYXRh
U291cmNlKTsKLQotICAgIGlmICghbG9hZGVyQ29tcGxldGVkKQotICAgICAgICByZXR1cm47Ci0K
LSAgICAvLyBObyBwcm92aXNpb25hbCBsb2FkIHN0YXJ0ZWQsIGJlY2F1c2U6Ci0gICAgLy8gLSBJ
dCB3aWxsIGJyZWFrIChubyBwcm92aXNpb25hbCBkYXRhIHNvdXJjZSBhdCB0aGlzIHBvaW50KS4K
LSAgICAvLyAtIFRoZXJlJ3Mgbm8gcHJvdmlzaW9uYWwgbG9hZCBnb2luZyBvbiBhbnl3YXksIHRo
ZSBVUkkgaXMgYmVpbmcKLSAgICAvLyAgIHByb2dyYW1hdGljYWxseSBjaGFuZ2VkLgotICAgIC8v
IEZJWE1FOiB0aGlzIGlzIG5vdCBpZGVhbCwgYnV0IGl0IHNlZW1zIHNhZmVyIHRoYW4gY2hhbmdp
bmcgb3VyCi0gICAgLy8gY3VycmVudCBjb250cmFjdCB3aXRoIHRoZSBjbGllbnRzIGFib3V0IHBy
b3Zpc2lvbmFsIGRhdGEKLSAgICAvLyBzb3VyY2VzIG5vdCBiZWluZyAnMCcgZHVyaW5nIHRoZSBw
cm92aXNpb25hbCBsb2FkIHN0YWdlLgotICAgIGRpc3BhdGNoRGlkQ29tbWl0TG9hZCh0cnVlKTsK
LSAgICBkaXNwYXRjaERpZEZpbmlzaExvYWQoKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKCkKLXsKLSAgICBkaXNwYXRjaERpZE5h
dmlnYXRlV2l0aGluUGFnZSgpOwotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZFJlcGxhY2VTdGF0ZVdpdGhpblBhZ2UoKQotewotICAgIGRpc3BhdGNoRGlkTmF2aWdhdGVX
aXRoaW5QYWdlKCk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUG9w
U3RhdGVXaXRoaW5QYWdlKCkKLXsKLSAgICAvLyBObyBuZWVkIHRvIGRvIGFueXRoaW5nLCB3ZSBh
bHJlYWR5IGNhbGxlZAotICAgIC8vIGRpc3BhdGNoRGlkTmF2aWdhdGVXaXRoaW5QYWdlKCkgaW4g
UHVzaFN0YXRlV2l0aGluUGFnZSgpLgotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaFdpbGxDbG9zZSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpCi17Ci0gICAgaWYgKG1fbG9h
ZGluZ0Vycm9yUGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gSWNvbkNvbnRyb2xsZXIg
bG9hZHMgaWNvbnMgb25seSBmb3IgdGhlIG1haW4gZnJhbWUuCi0gICAgV2ViS2l0V2ViVmlldyog
d2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgQVNTRVJUKG1fZnJhbWUg
PT0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKHdlYlZpZXcpKTsKLQotICAgIGNvbnN0
IGNoYXIqIGZyYW1lVVJJID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfdXJpKG1fZnJhbWUpOwotICAg
IFdlYktpdEZhdmljb25EYXRhYmFzZSogZGF0YWJhc2UgPSB3ZWJraXRfZ2V0X2Zhdmljb25fZGF0
YWJhc2UoKTsKLSAgICB3ZWJraXRGYXZpY29uRGF0YWJhc2VEaXNwYXRjaERpZFJlY2VpdmVJY29u
KGRhdGFiYXNlLCBmcmFtZVVSSSk7Ci0gICAgd2Via2l0V2ViVmlld0ljb25Mb2FkZWQoZGF0YWJh
c2UsIGZyYW1lVVJJLCB3ZWJWaWV3KTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpCi17Ci0gICAgaWYgKG1fbG9hZGluZ0Vycm9y
UGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbm90aWZ5U3RhdHVzKG1fZnJhbWUsIFdFQktJ
VF9MT0FEX1BST1ZJU0lPTkFMKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGl0bGUpCi17Ci0g
ICAgaWYgKG1fbG9hZGluZ0Vycm9yUGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgV2ViS2l0
V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gbV9mcmFtZS0+cHJpdjsKLSAgICBnX2ZyZWUocHJpdi0+
dGl0bGUpOwotICAgIC8vIEZJWE1FOiB1c2UgZGlyZWN0aW9uIG9mIHRpdGxlLgotICAgIHByaXYt
PnRpdGxlID0gZ19zdHJkdXAodGl0bGUuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBn
X3NpZ25hbF9lbWl0X2J5X25hbWUobV9mcmFtZSwgInRpdGxlLWNoYW5nZWQiLCBwcml2LT50aXRs
ZSk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKG1fZnJhbWUpLCAidGl0bGUiKTsKLQot
ICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwot
ICAgIGlmIChtX2ZyYW1lID09IHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSh3ZWJWaWV3
KSkgewotICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInRpdGxlLWNoYW5n
ZWQiLCBtX2ZyYW1lLCB0aXRsZS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgZ19v
YmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAidGl0bGUiKTsKLSAgICB9Ci19Ci0KLXZv
aWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNv
blR5cGUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkKLXsKLSAgICBGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRDb21taXRMb2FkKGZhbHNlKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKGJvb2wgaXNOYXZpZ2F0aW5nV2l0aGluUGFnZSkKLXsK
LSAgICBpZiAobV9sb2FkaW5nRXJyb3JQYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvKiBV
cGRhdGUgdGhlIFVSSSBvbmNlIGZpcnN0IGRhdGEgaGFzIGJlZW4gcmVjZWl2ZWQuCi0gICAgICog
VGhpcyBtZWFucyB0aGUgVVJJIGlzIHZhbGlkIGFuZCBzdWNjZXNzZnVsbHkgaWRlbnRpZnkgdGhl
IHBhZ2UgdGhhdCdzIGdvaW5nIHRvIGJlIGxvYWRlZC4KLSAgICAgKi8KLSAgICBnX29iamVjdF9m
cmVlemVfbm90aWZ5KEdfT0JKRUNUKG1fZnJhbWUpKTsKLQotICAgIFdlYktpdFdlYkZyYW1lUHJp
dmF0ZSogcHJpdiA9IG1fZnJhbWUtPnByaXY7Ci0gICAgZ19mcmVlKHByaXYtPnVyaSk7Ci0gICAg
cHJpdi0+dXJpID0gZ19zdHJkdXAoY29yZShtX2ZyYW1lKS0+bG9hZGVyKCkuYWN0aXZlRG9jdW1l
bnRMb2FkZXIoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgZ19vYmplY3Rf
bm90aWZ5KEdfT0JKRUNUKG1fZnJhbWUpLCAidXJpIik7Ci0gICAgaWYgKCFpc05hdmlnYXRpbmdX
aXRoaW5QYWdlKSB7Ci0gICAgICAgIGdfZnJlZShwcml2LT50aXRsZSk7Ci0gICAgICAgIHByaXYt
PnRpdGxlID0gMDsKLSAgICAgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKG1fZnJhbWUpLCAi
dGl0bGUiKTsKLSAgICB9Ci0KLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV9mcmFtZSwgImxv
YWQtY29tbWl0dGVkIik7Ci0gICAgbm90aWZ5U3RhdHVzKG1fZnJhbWUsIFdFQktJVF9MT0FEX0NP
TU1JVFRFRCk7Ci0KLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFt
ZShtX2ZyYW1lKTsKLSAgICBpZiAobV9mcmFtZSA9PSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5f
ZnJhbWUod2ViVmlldykpIHsKLSAgICAgICAgZ19vYmplY3RfZnJlZXplX25vdGlmeShHX09CSkVD
VCh3ZWJWaWV3KSk7Ci0gICAgICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwg
InVyaSIpOwotICAgICAgICBnX29iamVjdF90aGF3X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSk7
Ci0gICAgICAgIGlmICghaXNOYXZpZ2F0aW5nV2l0aGluUGFnZSkKLSAgICAgICAgICAgIGdfb2Jq
ZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwgInRpdGxlIik7Ci0gICAgICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAibG9hZC1jb21taXR0ZWQiLCBtX2ZyYW1lKTsKLSAgICB9
Ci0KLSAgICBnX29iamVjdF90aGF3X25vdGlmeShHX09CSkVDVChtX2ZyYW1lKSk7Ci19Ci0KLXZv
aWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkKLXsK
LSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsK
LSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgImRvY3VtZW50LWxvYWQtZmluaXNo
ZWQiLCBtX2ZyYW1lKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRM
YXlvdXQoTGF5b3V0TWlsZXN0b25lcyBtaWxlc3RvbmVzKQotewotICAgIGlmIChtX2xvYWRpbmdF
cnJvclBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtaWxlc3RvbmVzICYgRGlkRmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KQotICAgICAgICBub3RpZnlTdGF0dXMobV9mcmFtZSwg
V0VCS0lUX0xPQURfRklSU1RfVklTVUFMTFlfTk9OX0VNUFRZX0xBWU9VVCk7Ci19Ci0KLXZvaWQg
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoU2hvdygpCi17Ci0gICAgV2ViS2l0V2ViVmlldyog
d2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9mcmFtZSk7Ci0gICAgd2Via2l0X3dlYl92aWV3
X25vdGlmeV9yZWFkeSh3ZWJWaWV3KTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6Y2Fu
Y2VsUG9saWN5Q2hlY2soKQotewotICAgIC8vRklYTUUgQWRkIHN1cHBvcnQgZm9yIG1vcmUgdGhh
biBvbmUgcG9saWN5IGRlY2lzaW9uIGF0IG9uY2UKLSAgICBpZiAobV9wb2xpY3lEZWNpc2lvbikK
LSAgICAgICAgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fY2FuY2VsKG1fcG9saWN5RGVjaXNp
b24pOwotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsQ2hhbmdlVGl0bGUoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQg
RnJhbWVMb2FkZXJDbGllbnQ6OmRpZENoYW5nZVRpdGxlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
ICpsKQotewotICAgIHNldFRpdGxlKGwtPnRpdGxlKCksIGwtPnVybCgpKTsKLX0KLQotYm9vbCBG
cmFtZUxvYWRlckNsaWVudDo6Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0K
LWJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJp
bmcmIC8qIE1JTUVUeXBlICovKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5TaG93TUlNRVR5
cGUoY29uc3QgU3RyaW5nJiB0eXBlKSBjb25zdAotewotICAgIHJldHVybiAoTUlNRVR5cGVSZWdp
c3RyeTo6Y2FuU2hvd01JTUVUeXBlKHR5cGUpCi0gICAgICAgICAgICB8fCBQbHVnaW5EYXRhYmFz
ZTo6aW5zdGFsbGVkUGx1Z2lucygpLT5pc01JTUVUeXBlUmVnaXN0ZXJlZCh0eXBlKSk7Ci19Ci0K
LWJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1l
KGNvbnN0IFN0cmluZyYpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLVN0cmluZyBGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5
cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJikgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6
ZmluaXNoZWRMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikKLXsKLSAgICBpZiAobV9w
bHVnaW5WaWV3KSB7Ci0gICAgICAgIG1fcGx1Z2luVmlldy0+ZGlkRmluaXNoTG9hZGluZygpOwot
ICAgICAgICBtX3BsdWdpblZpZXcgPSAwOwotICAgICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1
Z2luID0gZmFsc2U7Ci0gICAgfQotfQotCi0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OnByb3Zp
c2lvbmFsTG9hZFN0YXJ0ZWQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQg
RnJhbWVMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaExvYWQoKSB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6cHJlcGFyZUZvckRhdGFTb3VyY2VSZXBs
YWNlbWVudCgpIAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnQ6OnNldFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpdGxlLCBjb25z
dCBVUkwmKQotewotICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSogZnJhbWVEYXRhID0gbV9mcmFt
ZS0+cHJpdjsKLSAgICBnX2ZyZWUoZnJhbWVEYXRhLT50aXRsZSk7Ci0gICAgLy8gRklYTUU6IHVz
ZSBkaXJlY3Rpb24gb2YgdGl0bGUuCi0gICAgZnJhbWVEYXRhLT50aXRsZSA9IGdfc3RyZHVwKHRp
dGxlLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCkKLXsKLSAgICBXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKLSAgICBHVW5p
cXVlUHRyPGdjaGFyPiBpZGVudGlmaWVyU3RyaW5nKHRvU3RyaW5nKGlkZW50aWZpZXIpKTsKLSAg
ICBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jl
c291cmNlKHdlYlZpZXcsIGlkZW50aWZpZXJTdHJpbmcuZ2V0KCkpOwotCi0gICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKHdlYlJlc291cmNlLCAiY29udGVudC1sZW5ndGgtcmVjZWl2ZWQiLCBkYXRh
TGVuZ3RoKTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV9mcmFtZSwgInJlc291cmNlLWNv
bnRlbnQtbGVuZ3RoLXJlY2VpdmVkIiwgd2ViUmVzb3VyY2UsIGRhdGFMZW5ndGgpOwotICAgIGdf
c2lnbmFsX2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtY29udGVudC1sZW5ndGgtcmVj
ZWl2ZWQiLCBtX2ZyYW1lLCB3ZWJSZXNvdXJjZSwgZGF0YUxlbmd0aCk7Ci19Ci0KLXZvaWQgRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCi17Ci0gICAgc3RhdGlj
X2Nhc3Q8V2ViS2l0OjpEb2N1bWVudExvYWRlcio+KGxvYWRlciktPmRlY3JlYXNlTG9hZENvdW50
KGlkZW50aWZpZXIpOwotCi0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9t
RnJhbWUobV9mcmFtZSk7Ci0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gaWRlbnRpZmllclN0cmluZyh0
b1N0cmluZyhpZGVudGlmaWVyKSk7Ci0gICAgV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNl
ID0gd2Via2l0X3dlYl92aWV3X2dldF9yZXNvdXJjZSh3ZWJWaWV3LCBpZGVudGlmaWVyU3RyaW5n
LmdldCgpKTsKLQotICAgIC8vIEEgTlVMTCBXZWJSZXNvdXJjZSBtZWFucyB0aGUgbG9hZCBoYXMg
YmVlbiBpbnRlcnJ1cHRlZCwgYW5kCi0gICAgLy8gcmVwbGFjZWQgYnkgYW5vdGhlciBvbmUgd2hp
bGUgdGhpcyByZXNvdXJjZSB3YXMgYmVpbmcgbG9hZGVkLgotICAgIGlmICghd2ViUmVzb3VyY2Up
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IGNoYXIqIHVyaSA9IHdlYmtpdF93ZWJfcmVz
b3VyY2VfZ2V0X3VyaSh3ZWJSZXNvdXJjZSk7Ci0gICAgUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4g
Y29yZVJlc291cmNlKGxvYWRlci0+c3VicmVzb3VyY2UoVVJMKFVSTCgpLCB1cmkpKSk7Ci0KLSAg
ICAvLyBJZiBjb3JlUmVzb3VyY2UgaXMgTlVMTCBoZXJlLCB0aGUgcmVzb3VyY2UgZmFpbGVkIHRv
IGxvYWQsCi0gICAgLy8gdW5sZXNzIGl0J3MgdGhlIG1haW4gcmVzb3VyY2UuCi0gICAgaWYgKCFj
b3JlUmVzb3VyY2UgJiYgd2ViUmVzb3VyY2UgIT0gd2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jl
c291cmNlKHdlYlZpZXcpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWNvcmVSZXNvdXJj
ZSkKLSAgICAgICAgY29yZVJlc291cmNlID0gbG9hZGVyLT5tYWluUmVzb3VyY2UoKTsKLQotICAg
IHdlYmtpdF93ZWJfcmVzb3VyY2VfaW5pdF93aXRoX2NvcmVfcmVzb3VyY2Uod2ViUmVzb3VyY2Us
IGNvcmVSZXNvdXJjZS5nZXQoKSk7Ci0KLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViUmVz
b3VyY2UsICJsb2FkLWZpbmlzaGVkIik7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJh
bWUsICJyZXNvdXJjZS1sb2FkLWZpbmlzaGVkIiwgd2ViUmVzb3VyY2UpOwotICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZSh3ZWJWaWV3LCAicmVzb3VyY2UtbG9hZC1maW5pc2hlZCIsIG1fZnJhbWUs
IHdlYlJlc291cmNlKTsKLQotICAgIHdlYmtpdFdlYlZpZXdSZW1vdmVTdWJyZXNvdXJjZSh3ZWJW
aWV3LCBpZGVudGlmaWVyU3RyaW5nLmdldCgpKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciogbG9hZGVy
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQot
ewotICAgIHN0YXRpY19jYXN0PFdlYktpdDo6RG9jdW1lbnRMb2FkZXIqPihsb2FkZXIpLT5kZWNy
ZWFzZUxvYWRDb3VudChpZGVudGlmaWVyKTsKLQotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcg
PSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwotICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGlkZW50
aWZpZXJTdHJpbmcodG9TdHJpbmcoaWRlbnRpZmllcikpOwotICAgIFdlYktpdFdlYlJlc291cmNl
KiB3ZWJSZXNvdXJjZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3VyY2Uod2ViVmlldywgaWRl
bnRpZmllclN0cmluZy5nZXQoKSk7Ci0KLSAgICAvLyBBIE5VTEwgV2ViUmVzb3VyY2UgbWVhbnMg
dGhlIGxvYWQgaGFzIGJlZW4gaW50ZXJydXB0ZWQsIGFuZAotICAgIC8vIHJlcGxhY2VkIGJ5IGFu
b3RoZXIgb25lIHdoaWxlIHRoaXMgcmVzb3VyY2Ugd2FzIGJlaW5nIGxvYWRlZC4KLSAgICBpZiAo
IXdlYlJlc291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBHVW5pcXVlUHRyPEdFcnJvcj4g
d2ViRXJyb3IoZ19lcnJvcl9uZXdfbGl0ZXJhbChnX3F1YXJrX2Zyb21fc3RyaW5nKGVycm9yLmRv
bWFpbigpLnV0ZjgoKS5kYXRhKCkpLAotICAgICAgICB0b1dlYktpdE5ldHdvcmtFcnJvcihlcnJv
ci5lcnJvckNvZGUoKSksIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEo
KSkpOwotCi0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlJlc291cmNlLCAibG9hZC1mYWls
ZWQiLCB3ZWJFcnJvci5nZXQoKSk7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fZnJhbWUs
ICJyZXNvdXJjZS1sb2FkLWZhaWxlZCIsIHdlYlJlc291cmNlLCB3ZWJFcnJvci5nZXQoKSk7Ci0g
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcsICJyZXNvdXJjZS1sb2FkLWZhaWxlZCIs
IG1fZnJhbWUsIHdlYlJlc291cmNlLCB3ZWJFcnJvci5nZXQoKSk7Ci0KLSAgICB3ZWJraXRXZWJW
aWV3UmVtb3ZlU3VicmVzb3VyY2Uod2ViVmlldywgaWRlbnRpZmllclN0cmluZy5nZXQoKSk7Ci19
Ci0KLWJvb2wgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1l
bW9yeUNhY2hlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGludCAvKiBsZW5ndGggKi8pCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKLXsKLSAgICBkaXNwYXRjaERpZEZhaWxMb2FkKGVycm9yKTsKLX0KLQotdm9pZCBG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKLXsKLSAgICBpZiAobV9sb2FkaW5nRXJyb3JQYWdlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBub3RpZnlTdGF0dXMobV9mcmFtZSwgV0VCS0lUX0xPQURfRkFJTEVEKTsKLQotICAg
IFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwotCi0g
ICAgR1VuaXF1ZVB0cjxHRXJyb3I+IHdlYkVycm9yKGdfZXJyb3JfbmV3X2xpdGVyYWwoCi0gICAg
ICAgIGdfcXVhcmtfZnJvbV9zdHJpbmcoZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSksCi0g
ICAgICAgIHRvV2ViS2l0TmV0d29ya0Vycm9yKGVycm9yLmVycm9yQ29kZSgpKSwKLSAgICAgICAg
ZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKSk7Ci0gICAgZ2Jvb2xl
YW4gaXNIYW5kbGVkID0gZmFsc2U7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKHdlYlZpZXcs
ICJsb2FkLWVycm9yIiwgbV9mcmFtZSwgZXJyb3IuZmFpbGluZ1VSTCgpLnV0ZjgoKS5kYXRhKCks
IHdlYkVycm9yLmdldCgpLCAmaXNIYW5kbGVkKTsKLQotICAgIGlmIChpc0hhbmRsZWQgfHwgIXNo
b3VsZEZhbGxCYWNrKGVycm9yKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9sb2FkaW5nRXJy
b3JQYWdlID0gdHJ1ZTsKLQotICAgIFN0cmluZyBjb250ZW50OwotICAgIEdVbmlxdWVQdHI8Z2No
YXI+IGVycm9yUGF0aChnX2J1aWxkX2ZpbGVuYW1lKHNoYXJlZFJlc291cmNlc1BhdGgoKS5kYXRh
KCksICJyZXNvdXJjZXMiLCAiZXJyb3IuaHRtbCIsIE5VTEwpKTsKLSAgICBHUmVmUHRyPEdGaWxl
PiBlcnJvckZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChlcnJvclBhdGguZ2V0
KCkpKTsKLQotICAgIGlmICghZXJyb3JGaWxlKQotICAgICAgICBjb250ZW50ID0gbWFrZVN0cmlu
ZygiPGh0bWw+PGJvZHk+Iiwgd2ViRXJyb3ItPm1lc3NhZ2UsICI8L2JvZHk+PC9odG1sPiIpOwot
ICAgIGVsc2UgewotICAgICAgICBHVW5pcXVlT3V0UHRyPGdjaGFyPiBmaWxlQ29udGVudDsKLSAg
ICAgICAgaWYgKCFnX2ZpbGVfbG9hZF9jb250ZW50cyhlcnJvckZpbGUuZ2V0KCksIDAsICZmaWxl
Q29udGVudC5vdXRQdHIoKSwgMCwgMCwgMCkpCi0gICAgICAgICAgICBjb250ZW50ID0gbWFrZVN0
cmluZygiPGh0bWw+PGJvZHk+Iiwgd2ViRXJyb3ItPm1lc3NhZ2UsICI8L2JvZHk+PC9odG1sPiIp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb250ZW50ID0gU3RyaW5nOjpmb3JtYXQoZmls
ZUNvbnRlbnQuZ2V0KCksIGVycm9yLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgpLCB3ZWJFcnJv
ci0+bWVzc2FnZSk7Ci0gICAgfQotCi0gICAgd2Via2l0X3dlYl9mcmFtZV9sb2FkX2FsdGVybmF0
ZV9zdHJpbmcobV9mcmFtZSwgY29udGVudC51dGY4KCkuZGF0YSgpLCAwLCBlcnJvci5mYWlsaW5n
VVJMKCkudXRmOCgpLmRhdGEoKSk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGllbnQ6OmNvbnZl
cnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciogZG9j
dW1lbnRMb2FkZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgR1JlZlB0cjxXZWJLaXROZXR3b3JrUmVxdWVz
dD4gbmV0d29ya1JlcXVlc3QoYWRvcHRHUmVmKGtpdE5ldyhyZXF1ZXN0KSkpOwotICAgIFdlYktp
dFdlYlZpZXcqIHZpZXcgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwotCi0gICAgd2Via2l0
X3dlYl92aWV3X3JlcXVlc3RfZG93bmxvYWQodmlldywgbmV0d29ya1JlcXVlc3QuZ2V0KCksIHJl
c3BvbnNlLCBkb2N1bWVudExvYWRlci0+bWFpblJlc291cmNlTG9hZGVyKCktPmhhbmRsZSgpKTsK
LX0KLQotUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5j
ZWxsZWRFcnJvcihyZXF1ZXN0KTsKLX0KLQotUmVzb3VyY2VFcnJvciBGcmFtZUxvYWRlckNsaWVu
dDo6YmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBy
ZXR1cm4gV2ViQ29yZTo6YmxvY2tlZEVycm9yKHJlcXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9y
IEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93VVJMRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQotewotICAgIHJldHVybiBXZWJDb3JlOjpjYW5ub3RTaG93VVJMRXJyb3Io
cmVxdWVzdCk7Ci19Ci0KLVJlc291cmNlRXJyb3IgRnJhbWVMb2FkZXJDbGllbnQ6OmludGVycnVw
dGVkRm9yUG9saWN5Q2hhbmdlRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQot
ewotICAgIHJldHVybiBXZWJDb3JlOjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKHJl
cXVlc3QpOwotfQotCi1SZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyQ2xpZW50OjpjYW5ub3RTaG93
TUlNRVR5cGVFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKLXsKLSAgICBy
ZXR1cm4gV2ViQ29yZTo6Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IocmVzcG9uc2UpOwotfQotCi1S
ZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyQ2xpZW50OjpmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmZp
bGVEb2VzTm90RXhpc3RFcnJvcihyZXNwb25zZSk7Ci19Ci0KLVJlc291cmNlRXJyb3IgRnJhbWVM
b2FkZXJDbGllbnQ6OnBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVM
b2FkRXJyb3IocmVzcG9uc2UpOwotfQotCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRG
YWxsQmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKLXsKLSAgICByZXR1cm4gIShlcnJv
ci5pc0NhbmNlbGxhdGlvbigpIHx8IGVycm9yLmVycm9yQ29kZSgpID09IFBvbGljeUVycm9yRnJh
bWVMb2FkSW50ZXJydXB0ZWRCeVBvbGljeUNoYW5nZSB8fCBlcnJvci5lcnJvckNvZGUoKSA9PSBQ
bHVnaW5FcnJvcldpbGxIYW5kbGVMb2FkKTsKLX0KLQotYm9vbCBGcmFtZUxvYWRlckNsaWVudDo6
Y2FuQ2FjaGVQYWdlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotRnJhbWUqIEZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYpCi17Ci0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IGdldFZpZXdGcm9tRnJhbWUobV9m
cmFtZSk7Ci0gICAgV2ViS2l0V2ViVmlldyogbmV3V2ViVmlldyA9IDA7Ci0KLSAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUod2ViVmlldywgImNyZWF0ZS13ZWItdmlldyIsIG1fZnJhbWUsICZuZXdX
ZWJWaWV3KTsKLQotICAgIGlmICghbmV3V2ViVmlldykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg
ICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdmF0ZURhdGEgPSBuZXdXZWJWaWV3LT5wcml2Owot
ICAgIHJldHVybiBjb3JlKHByaXZhdGVEYXRhLT5tYWluRnJhbWUpOwotfQotCi12b2lkIEZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFJlc291
cmNlRXJyb3ImKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnQ6OnNldE1haW5Eb2N1bWVudEVycm9yKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgaWYgKG1fcGx1Z2luVmlldykgewot
ICAgICAgICBtX3BsdWdpblZpZXctPmRpZEZhaWwoZXJyb3IpOwotICAgICAgICBtX3BsdWdpblZp
ZXcgPSAwOwotICAgICAgICBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luID0gZmFsc2U7Ci0gICAg
fQotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpzdGFydERvd25sb2FkKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiAvKiBzdWdnZXN0ZWROYW1lICovKQot
ewotICAgIEdSZWZQdHI8V2ViS2l0TmV0d29ya1JlcXVlc3Q+IG5ldHdvcmtSZXF1ZXN0KGFkb3B0
R1JlZihraXROZXcocmVxdWVzdCkpKTsKLSAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gZ2V0Vmll
d0Zyb21GcmFtZShtX2ZyYW1lKTsKLQotICAgIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25s
b2FkKHZpZXcsIG5ldHdvcmtSZXF1ZXN0LmdldCgpKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNs
aWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeVJlZGlyZWN0TGlu
a3MoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OnNhdmVQbGF0Zm9ybURhdGFUb0NhY2hlZEZyYW1lKENhY2hlZEZyYW1lKikKLXsKLX0KLQot
c3RhdGljIHZvaWQgcG9zdENvbW1pdEZyYW1lVmlld1NldHVwKFdlYktpdFdlYkZyYW1lICpmcmFt
ZSkKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiBjb250YWluaW5nV2luZG93ID0gZ2V0Vmlld0Zyb21G
cmFtZShmcmFtZSk7Ci0gICAgd2Via2l0X3dlYl92aWV3X2NsZWFyX3Jlc291cmNlcyhjb250YWlu
aW5nV2luZG93KTsKLQotICAgIC8vIEludmFsaWRhdGUgdGhlIHZpZXdwb3J0IGF0dHJpYnV0ZXMg
LSB0aGV5IHdpbGwgb25seSBiZSB2YWxpZAotICAgIC8vIGFnYWluIGlmIHRoZSBwYWdlIHdlJ3Jl
IGJlZ2lubmluZyB0byBsb2FkIG5vdyBoYXMgYW4KLSAgICAvLyBhcHByb3ByaWF0ZSB2aWV3cG9y
dCBtZXRhIHRhZy4KLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IGNvbnRhaW5pbmdX
aW5kb3ctPnByaXY7Ci0gICAgcHJpdi0+dmlld3BvcnRBdHRyaWJ1dGVzLT5wcml2LT5pc1ZhbGlk
ID0gRkFMU0U7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHByaXYtPnZpZXdwb3J0QXR0
cmlidXRlcy5nZXQoKSksICJ2YWxpZCIpOwotCi0gICAgaWYgKHByaXYtPmN1cnJlbnRNZW51KSB7
Ci0gICAgICAgIGd0a193aWRnZXRfZGVzdHJveShHVEtfV0lER0VUKHByaXYtPmN1cnJlbnRNZW51
KSk7Ci0gICAgICAgIHByaXYtPmN1cnJlbnRNZW51ID0gMDsKLSAgICB9Ci0KLSAgICAvLyBEbyBu
b3QgYWxsb3cgY2xpY2sgY291bnRpbmcgYmV0d2VlbiBtYWluIGZyYW1lIGxvYWRzLgotICAgIHBy
aXYtPmNsaWNrQ291bnRlci5yZXNldCgpOwotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojp0
cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoQ2FjaGVkRnJhbWUqIGNhY2hlZEZy
YW1lKQotewotICAgIEFTU0VSVF9VTlVTRUQoY2FjaGVkRnJhbWUsIGNhY2hlZEZyYW1lLT52aWV3
KCkpOwotCi0gICAgRnJhbWUqIGZyYW1lID0gY29yZShtX2ZyYW1lKTsKLSAgICBpZiAoZnJhbWUg
IT0gJmZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBw
b3N0Q29tbWl0RnJhbWVWaWV3U2V0dXAobV9mcmFtZSk7Ci19Ci0KLXZvaWQgRnJhbWVMb2FkZXJD
bGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQotewotICAgIFdlYktpdFdl
YlZpZXcqIGNvbnRhaW5pbmdXaW5kb3cgPSBnZXRWaWV3RnJvbUZyYW1lKG1fZnJhbWUpOwotICAg
IEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKLSAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9u
KEdUS19XSURHRVQoY29udGFpbmluZ1dpbmRvdyksICZhbGxvY2F0aW9uKTsKLSAgICBJbnRTaXpl
IHNpemUgPSBJbnRTaXplKGFsbG9jYXRpb24ud2lkdGgsIGFsbG9jYXRpb24uaGVpZ2h0KTsKLSAg
ICBib29sIHRyYW5zcGFyZW50ID0gd2Via2l0X3dlYl92aWV3X2dldF90cmFuc3BhcmVudChjb250
YWluaW5nV2luZG93KTsKLSAgICBDb2xvciBiYWNrZ3JvdW5kQ29sb3IgPSB0cmFuc3BhcmVudCA/
IFdlYkNvcmU6OkNvbG9yOjp0cmFuc3BhcmVudCA6IFdlYkNvcmU6OkNvbG9yOjp3aGl0ZTsKLSAg
ICBGcmFtZSogZnJhbWUgPSBjb3JlKG1fZnJhbWUpOwotICAgIEFTU0VSVChmcmFtZSk7Ci0KLSAg
ICBmcmFtZS0+Y3JlYXRlVmlldyhzaXplLCBiYWNrZ3JvdW5kQ29sb3IsIHRyYW5zcGFyZW50KTsK
LQotICAgIC8vIFdlIG5lZWQgdG8gZG8gZnVydGhlciBtYW5pcHVsYXRpb24gb24gdGhlIEZyYW1l
VmlldyBpZiBpdCB3YXMgdGhlIG1haW5GcmFtZQotICAgIGlmIChmcmFtZSAhPSAmZnJhbWUtPnBh
Z2UoKS0+bWFpbkZyYW1lKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBvc3RDb21taXRGcmFt
ZVZpZXdTZXR1cChtX2ZyYW1lKTsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkU2F2
ZVRvUGFnZUNhY2hlKCkKLXsKLX0KLQotdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkUmVzdG9y
ZUZyb21QYWdlQ2FjaGUoKQotewotfQotCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCi17Ci19Ci0KLVBhc3NSZWZQdHI8RnJhbWVOZXR3b3Jr
aW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkK
LXsKLSAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0azo6Y3JlYXRlKGNvcmUobV9m
cmFtZSkpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWU0ZDUxMi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCisrKyAvZGV2L251bGwKQEAgLTEsMjA0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgWmFjayBSdXNpbiA8emFja0BrZGUub3JnPgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRnJhbWVMb2FkZXJDbGllbnRHdGtfaAotI2RlZmlu
ZSBGcmFtZUxvYWRlckNsaWVudEd0a19oCi0KLSNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgotI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJwb2xp
Y3lkZWNpc2lvbi5oIgotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViRnJhbWUgV2ViS2l0V2Vi
RnJhbWU7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFBsdWdpblZpZXc7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi0gICAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMg
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQgewotICAgIHB1YmxpYzoKLSAgICAgICAgRnJhbWVM
b2FkZXJDbGllbnQoV2ViS2l0V2ViRnJhbWUqID0gMCk7Ci0gICAgICAgIHZpcnR1YWwgfkZyYW1l
TG9hZGVyQ2xpZW50KCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3ll
ZCgpOwotCi0gICAgICAgIHZvaWQgc2V0V2ViRnJhbWUoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKSB7
IG1fZnJhbWUgPSBmcmFtZTsgfQotICAgICAgICBXZWJLaXRXZWJGcmFtZSogIHdlYkZyYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQotCi0gICAgICAgIHZpcnR1YWwgYm9vbCBoYXNXZWJW
aWV3KCkgY29uc3Q7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlvbihX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciopIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9yY2VM
YXlvdXQoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9yTm9uSFRNTCgpOwot
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRDb3BpZXNPblNjcm9sbCgpOwotCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQyKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2hlZEZyb21QYXJlbnQzKCk7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGFzc2lnbklkZW50
aWZpZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLQotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nICBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
KTsKLSAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciosIHVuc2lnbmVkIGxvbmcgIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJl
Y2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgIGlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgIGlkZW50aWZpZXIpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsK
LSAgICAgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNh
Y2hlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpOwotCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cygpOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWQoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQ2xp
ZW50UmVkaXJlY3QoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUsIGRvdWJsZSk7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWROYXZpZ2F0ZVdpdGhpblBhZ2UoKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUHVzaFN0YXRlV2l0aGluUGFnZSgpOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZXBsYWNlU3RhdGVXaXRoaW5QYWdlKCk7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFBvcFN0YXRlV2l0aGluUGFnZSgpOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsQ2xvc2UoKTsKLSAgICAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUljb24oKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mKTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNv
blR5cGUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKCk7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRGYWlsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZExheW91dChXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmVzKTsKLQotICAgICAgICB2aXJ0
dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbiYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCk7Ci0K
LSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pOwotICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdURjo6
UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVO
YW1lLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBXZWJDb3JlOjpO
YXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24pOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKTsKLQotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJik7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2ls
bFNlbmRTdWJtaXRFdmVudChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPikgeyB9
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uKTsK
LQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKFdlYkNvcmU6
OkRvY3VtZW50TG9hZGVyKikgeyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRNYWluRG9jdW1l
bnRFcnJvcihXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImKTsKLQotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNy
ZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgbmFt
ZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiByZWZlcnJlciwg
Ym9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCk7
Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdp
bihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBj
b25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25z
dCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVjcmVhdGVQbHVnaW4oV2ViQ29yZTo6V2lkZ2V0KikgeyB9
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRn
ZXQqIHBsdWdpbldpZGdldCk7Ci0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpX
aWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdl
YkNvcmU6OkhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6VVJMJiBiYXNlVVJMLCBj
b25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwotICAgICAgICB2aXJ0dWFsIFdURjo6U3Ry
aW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQm
KTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJv
b2wpOwotCi0gICAgICAgIHZpcnR1YWwgV2ViQ29yZTo6T2JqZWN0Q29udGVudFR5cGUgb2JqZWN0
Q29udGVudFR5cGUoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV1RGOjpTdHJpbmcmIG1pbWVU
eXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJbnNGb3JJbWFnZXMpOwotCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBzZXRNYWluRnJhbWVEb2N1bWVudFJlYWR5KGJvb2wpOwotCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBzdGFydERvd25sb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IFN0cmluZygpKTsKLQotICAgICAgICB2aXJ0dWFs
IHZvaWQgd2lsbENoYW5nZVRpdGxlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKik7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VUaXRsZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOwot
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjb21taXR0ZWRMb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKiwgY29uc3QgY2hhciosIGludCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hlZExv
YWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlR2xvYmFsSGlzdG9yeSgpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFs
SGlzdG9yeVJlZGlyZWN0TGlua3MoKTsKLSAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEdvVG9I
aXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNvbnN0OwotCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCk7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBX
ZWJDb3JlOjpVUkwmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZERldGVjdFhTUyhjb25zdCBX
ZWJDb3JlOjpVUkwmLCBib29sIGRpZEJsb2NrRW50aXJlUGFnZSk7Ci0KLSAgICAgICAgdmlydHVh
bCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwotICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
YmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwotICAgICAgICB2
aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwotICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKLQotICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOwotICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RF
eGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICAgICAgdmly
dHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotCi0gICAgICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0KLSAgICAgICAg
dmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JikgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3Qg
V1RGOjpTdHJpbmcmKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBib29sIGNhblNob3dNSU1FVHlw
ZUFzSFRNTChjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCBi
b29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFdURjo6U3RyaW5nJikg
Y29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JV
UkxTY2hlbWUoY29uc3QgV1RGOjpTdHJpbmcmKSBjb25zdDsKLQotICAgICAgICB2aXJ0dWFsIHZv
aWQgZnJhbWVMb2FkQ29tcGxldGVkKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzYXZlVmlld1N0
YXRlVG9JdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBy
ZXN0b3JlVmlld1N0YXRlKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwcm92aXNpb25hbExvYWRT
dGFydGVkKCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKCk7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9yRGF0YVNvdXJjZVJlcGxhY2VtZW50KCk7Ci0KLSAgICAg
ICAgdmlydHVhbCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+IGNyZWF0
ZURvY3VtZW50TG9hZGVyKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlN1YnN0aXR1dGVEYXRhJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUaXRsZShj
b25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJiB0aXRsZSwgY29uc3QgV2ViQ29yZTo6
VVJMJik7Ci0KLSAgICAgICAgdmlydHVhbCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoY29uc3QgV2Vi
Q29yZTo6VVJMJik7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHNhdmVQbGF0Zm9ybURhdGFUb0Nh
Y2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZyYW1lKik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB0
cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUq
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2Uo
KTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCk7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOwotCi0gICAgICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpOwotCi0gICAgICAgIHZpcnR1
YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNvbnZl
cnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKTsKLQotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKLQotICAgIHByaXZhdGU6
Ci0gICAgICAgIFdlYktpdFdlYkZyYW1lKiBtX2ZyYW1lOwotICAgICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7Ci0gICAgICAgIFdlYktpdFdlYlBvbGljeURlY2lzaW9u
KiBtX3BvbGljeURlY2lzaW9uOwotCi0gICAgICAgIGJvb2wgbV9sb2FkaW5nRXJyb3JQYWdlOwot
Ci0gICAgICAgIC8vIFBsdWdpbiB2aWV3IHRvIHJlZGlyZWN0IGRhdGEgdG8KLSAgICAgICAgV2Vi
Q29yZTo6UGx1Z2luVmlldyogbV9wbHVnaW5WaWV3OwotICAgICAgICBib29sIG1faGFzU2VudFJl
c3BvbnNlVG9QbHVnaW47Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ29tbWl0
TG9hZChib29sIGlzTmF2aWdhdGluZ1dpdGhpblBhZ2UpOwotICAgIH07Ci0KLX0KLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdv
cmtpbmdDb250ZXh0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkMjA1ZGIyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAs
MCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gICAgQ29weXJpZ2h0IChDKSAyMDEyIFByb0ZVU0lPTiBl
bWJlZGRlZCBzeXN0ZW1zCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZyYW1l
TmV0d29ya2luZ0NvbnRleHRHdGsuaCIKLQotI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0R3RrOjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7Ci19Ci0K
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0
d29ya2luZ0NvbnRleHRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTmV0d29ya2luZ0NvbnRleHRHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWZkNmE5OS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9G
cmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBA
Ci0vKgotICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRz
IHN1YnNpZGlhcnkoLWllcykKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRHdGtf
aAotI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0R3RrX2gKLQotI2luY2x1ZGUgIkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIEZyYW1l
TmV0d29ya2luZ0NvbnRleHRHdGsgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29u
dGV4dCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29u
dGV4dEd0az4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dEd0ayhmcmFtZSkpOwotICAg
IH0KLQotICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUoKSBjb25zdCB7IHJldHVybiBmcmFt
ZSgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3Q7Ci0KLSAgICBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0R3RrKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKLSAgICAgICAgOiBXZWJDb3JlOjpGcmFtZU5l
dHdvcmtpbmdDb250ZXh0KGZyYW1lKQotICAgIHsKLSAgICB9Ci19OwotCi19Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25D
bGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRp
b25DbGllbnRHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYWY0ZWE5Li4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9u
Q2xpZW50R3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwMiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyIDx6ZWNrZUBzZWxmaXNo
Lm9yZz4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
KgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVu
dEd0ay5oIgotCi0jaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotCi0jaW5jbHVkZSAiQ2hyb21lLmgi
Ci0jaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKLSNp
bmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvbkVy
cm9yLmgiCi0jaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgotI2luY2x1ZGUgIndlYmtp
dGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb25wcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vi
ZnJhbWVwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKLSNpbmNs
dWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4K
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLUdlb2xvY2F0aW9uQ2xpZW50OjpHZW9sb2NhdGlvbkNs
aWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCi0g
ICAgLCBtX3Byb3ZpZGVyKHRoaXMpCi17Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25DbGllbnQ6Omdl
b2xvY2F0aW9uRGVzdHJveWVkKCkKLXsKLSAgICBkZWxldGUgdGhpczsKLX0KLQotdm9pZCBHZW9s
b2NhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZygpCi17Ci0gICAgbV9wcm92aWRlci5zdGFydFVw
ZGF0aW5nKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygpCi17
Ci0gICAgbV9wcm92aWRlci5zdG9wVXBkYXRpbmcoKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvbkNs
aWVudDo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wgZW5hYmxlKQotewotICAgIG1fcHJvdmlk
ZXIuc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGVuYWJsZSk7Ci19Ci0KLVdlYkNvcmU6Okdlb2xvY2F0
aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQotewotICAgIHJl
dHVybiBtX2xhc3RQb3NpdGlvbi5nZXQoKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvbkNsaWVudDo6
cmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewot
ICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdChnZW9sb2NhdGlvbi0+ZnJhbWUoKSk7
Ci0gICAgR1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9uPiBwb2xpY3lEZWNp
c2lvbihhZG9wdEdSZWYod2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcod2Vi
RnJhbWUsIGdlb2xvY2F0aW9uKSkpOwotCi0gICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0gRkFMU0U7
Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGlj
eS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCB3ZWJGcmFtZSwgcG9saWN5RGVjaXNpb24uZ2V0KCksICZp
c0hhbmRsZWQpOwotICAgIGlmICghaXNIYW5kbGVkKQotICAgICAgICB3ZWJraXRfZ2VvbG9jYXRp
b25fcG9saWN5X2RlbnkocG9saWN5RGVjaXNpb24uZ2V0KCkpOwotfQotCi12b2lkIEdlb2xvY2F0
aW9uQ2xpZW50OjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChXZWJDb3JlOjpHZW9sb2NhdGlvbiog
Z2VvbG9jYXRpb24pCi17Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdl
b2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1jYW5jZWxsZWQiLCBraXQoZ2VvbG9jYXRpb24tPmZy
YW1lKCkpKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvbkNsaWVudDo6bm90aWZ5UG9zaXRpb25DaGFu
Z2VkKGludCB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91
YmxlIGFsdGl0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5KQot
ewotICAgIG1fbGFzdFBvc2l0aW9uID0gV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3Jl
YXRlKHN0YXRpY19jYXN0PGRvdWJsZT4odGltZXN0YW1wKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwg
YWNjdXJhY3ksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHJ1ZSwgYWx0aXR1ZGUsIHRydWUsIGFsdGl0dWRlQWNjdXJhY3ksIGZhbHNl
LCAwLCBmYWxzZSwgMCk7Ci0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9t
KGNvcmUobV93ZWJWaWV3KSktPnBvc2l0aW9uQ2hhbmdlZChtX2xhc3RQb3NpdGlvbi5nZXQoKSk7
Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25DbGllbnQ6Om5vdGlmeUVycm9yT2NjdXJyZWQoY29uc3Qg
Y2hhciogbWVzc2FnZSkKLXsKLSAgICBSZWZQdHI8V2ViQ29yZTo6R2VvbG9jYXRpb25FcnJvcj4g
ZXJyb3IgPSBXZWJDb3JlOjpHZW9sb2NhdGlvbkVycm9yOjpjcmVhdGUoV2ViQ29yZTo6R2VvbG9j
YXRpb25FcnJvcjo6UG9zaXRpb25VbmF2YWlsYWJsZSwgbWVzc2FnZSk7Ci0gICAgV2ViQ29yZTo6
R2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKGNvcmUobV93ZWJWaWV3KSktPmVycm9yT2NjdXJy
ZWQoZXJyb3IuZ2V0KCkpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlv
bkNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRp
b25DbGllbnRHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTM3ZTY5Ny4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNs
aWVudEd0ay5oCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciA8emVja2VAc2VsZmlzaC5vcmc+
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAq
LwotCi0jaWZuZGVmIEdlb2xvY2F0aW9uQ2xpZW50R3RrX2gKLSNkZWZpbmUgR2VvbG9jYXRpb25D
bGllbnRHdGtfaAotCi0jaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotCi0jaW5jbHVkZSAiR2VvbG9j
YXRpb25DbGllbnQuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCi0jaW5jbHVk
ZSAiR2VvbG9jYXRpb25Qcm92aWRlckdlb2NsdWUuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvblBy
b3ZpZGVyR2VvY2x1ZUNsaWVudC5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotdHlwZWRl
ZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgV2ViS2l0V2ViVmlldzsKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotY2xhc3MgR2VvbG9jYXRpb247Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFz
cyBHZW9sb2NhdGlvbkNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpHZW9sb2NhdGlvbkNsaWVudCwg
cHVibGljIFdlYkNvcmU6Okdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlQ2xpZW50IHsKLXB1Ymxp
YzoKLSAgICBHZW9sb2NhdGlvbkNsaWVudChXZWJLaXRXZWJWaWV3Kik7Ci0KLSAgICB2b2lkIGdl
b2xvY2F0aW9uRGVzdHJveWVkKCk7Ci0KLSAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKLSAgICB2
b2lkIHN0b3BVcGRhdGluZygpOwotCi0gICAgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koYm9v
bCk7Ci0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7Ci0K
LSAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0gICAg
dm9pZCBjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwotCi1w
cml2YXRlOgotICAgIC8vIEdlb2xvY2F0aW9uUHJvdmlkZXJHZW9jbHVlQ2xpZW50IGludGVyZmFj
ZS4KLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGludCB0aW1lc3RhbXAs
IGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBkb3Vi
bGUgYWNjdXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5KTsKLSAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5RXJyb3JPY2N1cnJlZChjb25zdCBjaGFyKiBtZXNzYWdlKTsKLQotICAgIFdlYktpdFdl
YlZpZXcqIG1fd2ViVmlldzsKLQotICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUHJvdmlkZXJHZW9j
bHVlIG1fcHJvdmlkZXI7Ci0gICAgUmVmUHRyPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24+
IG1fbGFzdFBvc2l0aW9uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAv
LyBFTkFCTEUoR0VPTE9DQVRJT04pCi0KLSNlbmRpZiAvLyBHZW9sb2NhdGlvbkNsaWVudEd0a19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HdGtBZGp1c3Rt
ZW50V2F0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HdGtBZGp1
c3RtZW50V2F0Y2hlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyNTg1MDYu
LjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR3RrQWRqdXN0
bWVudFdhdGNoZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTU0ICswLDAgQEAKLS8qCi0gKiAg
Q29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR3RrQWRqdXN0bWVudFdhdGNo
ZXIuaCIKLQotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIk1haW5GcmFtZS5oIgot
I2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTY3JvbGxiYXIuaCIKLSNpbmNsdWRlICJ3ZWJr
aXR3ZWJ2aWV3cHJpdmF0ZS5oIgotI2luY2x1ZGUgPGd0ay9ndGsuaD4KLQotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1HdGtBZGp1c3RtZW50V2F0Y2hl
cjo6R3RrQWRqdXN0bWVudFdhdGNoZXIoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLSAgICA6IG1f
d2ViVmlldyh3ZWJWaWV3KQotICAgICwgbV9zY3JvbGxiYXJzRGlzYWJsZWQoZmFsc2UpCi0gICAg
LCBtX2hhbmRsaW5nR3RrQWRqdXN0bWVudENoYW5nZShmYWxzZSkKLSAgICAsIG1fdXBkYXRlQWRq
dXN0bWVudENhbGxiYWNrSWQoMCkKLXsKLX0KLQotR3RrQWRqdXN0bWVudFdhdGNoZXI6On5HdGtB
ZGp1c3RtZW50V2F0Y2hlcigpCi17Ci0gICAgaWYgKG1fdXBkYXRlQWRqdXN0bWVudENhbGxiYWNr
SWQpCi0gICAgICAgIGdfc291cmNlX3JlbW92ZShtX3VwZGF0ZUFkanVzdG1lbnRDYWxsYmFja0lk
KTsKLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlQWRqdXN0bWVudEZyb21TY3JvbGxiYXIoR3RrQWRq
dXN0bWVudCogYWRqdXN0bWVudCwgU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCi17Ci0gICAgaWYgKCFh
ZGp1c3RtZW50KQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFzY3JvbGxiYXIpIHsKLSAgICAg
ICAgZ3RrX2FkanVzdG1lbnRfY29uZmlndXJlKGFkanVzdG1lbnQsIDAsIDAsIDAsIDAsIDAsIDAp
OyAvLyBUaGVzZSBhcmUgdGhlIHNldHRpbmdzIHdoaWNoIHJlbW92ZSB0aGUgc2Nyb2xsYmFyLgot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGd0a19hZGp1c3RtZW50X2NvbmZpZ3VyZShhZGp1
c3RtZW50LCBzY3JvbGxiYXItPnZhbHVlKCksIDAsIHNjcm9sbGJhci0+dG90YWxTaXplKCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGJhci0+bGluZVN0ZXAoKSwgc2Nyb2xs
YmFyLT5wYWdlU3RlcCgpLCBzY3JvbGxiYXItPnZpc2libGVTaXplKCkpOwotfQotCi12b2lkIEd0
a0FkanVzdG1lbnRXYXRjaGVyOjp1cGRhdGVBZGp1c3RtZW50c0Zyb21TY3JvbGxiYXJzKCkKLXsK
LSAgICBpZiAobV9zY3JvbGxiYXJzRGlzYWJsZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAo
bV9oYW5kbGluZ0d0a0FkanVzdG1lbnRDaGFuZ2UpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAo
IWNvcmUobV93ZWJWaWV3KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRnJhbWVWaWV3KiBmcmFt
ZVZpZXcgPSBjb3JlKG1fd2ViVmlldyktPm1haW5GcmFtZSgpLnZpZXcoKTsKLSAgICB1cGRhdGVB
ZGp1c3RtZW50RnJvbVNjcm9sbGJhcihtX2hvcml6b250YWxBZGp1c3RtZW50LmdldCgpLCBmcmFt
ZVZpZXctPmhvcml6b250YWxTY3JvbGxiYXIoKSk7Ci0gICAgdXBkYXRlQWRqdXN0bWVudEZyb21T
Y3JvbGxiYXIobV92ZXJ0aWNhbEFkanVzdG1lbnQuZ2V0KCksIGZyYW1lVmlldy0+dmVydGljYWxT
Y3JvbGxiYXIoKSk7Ci0gICAgaWYgKG1fdXBkYXRlQWRqdXN0bWVudENhbGxiYWNrSWQpIHsKLSAg
ICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fdXBkYXRlQWRqdXN0bWVudENhbGxiYWNrSWQpOwotICAg
ICAgICBtX3VwZGF0ZUFkanVzdG1lbnRDYWxsYmFja0lkID0gMDsKLSAgICB9Ci19Ci0KLWdib29s
ZWFuIEd0a0FkanVzdG1lbnRXYXRjaGVyOjp1cGRhdGVBZGp1c3RtZW50Q2FsbGJhY2soR3RrQWRq
dXN0bWVudFdhdGNoZXIqIHdhdGNoZXIpCi17Ci0gICAgd2F0Y2hlci0+bV91cGRhdGVBZGp1c3Rt
ZW50Q2FsbGJhY2tJZCA9IDA7Ci0gICAgd2F0Y2hlci0+dXBkYXRlQWRqdXN0bWVudHNGcm9tU2Ny
b2xsYmFycygpOwotICAgIHJldHVybiBGQUxTRTsKLX0KLQotdm9pZCBHdGtBZGp1c3RtZW50V2F0
Y2hlcjo6dXBkYXRlQWRqdXN0bWVudHNGcm9tU2Nyb2xsYmFyc0xhdGVyKCkgY29uc3QKLXsKLSAg
ICAvLyBXZSd2ZSBhbHJlYWR5IHNjaGVkdWxlZCBhbiB1cGRhdGUuIE5vIG5lZWQgdG8gc2NoZWR1
bGUgYW5vdGhlci4KLSAgICBpZiAobV91cGRhdGVBZGp1c3RtZW50Q2FsbGJhY2tJZCB8fCBtX3Nj
cm9sbGJhcnNEaXNhYmxlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gVGhlIGZhY3QgdGhh
dCB0aGlzIG1ldGhvZCB3YXMgY2FsbGVkIG1lYW5zIHRoYXQgd2UgbmVlZCB0byB1cGRhdGUgdGhl
IHNjcm9sbGJhcnMsIGJ1dCBhdCB0aGUKLSAgICAvLyB0aW1lIG9mIGludm9jYXRpb24gdGhleSBh
cmUgbm90IHVwZGF0ZWQgdG8gcmVmbGVjdCB0aGUgc2Nyb2xsIHlldC4gV2Ugc2V0IGEgc2hvcnQg
dGltZW91dAotICAgIC8vIGhlcmUsIHdoaWNoIG1lYW5zIHRoYXQgdGhleSB3aWxsIGJlIHVwZGF0
ZWQgYXMgc29vbiBhcyBXZWJLaXQgcmV0dXJucyB0byB0aGUgbWFpbiBsb29wLgotICAgIG1fdXBk
YXRlQWRqdXN0bWVudENhbGxiYWNrSWQgPSBnX2lkbGVfYWRkX2Z1bGwoR19QUklPUklUWV9ERUZB
VUxULCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih1cGRhdGVBZGp1c3RtZW50Q2FsbGJh
Y2spLAotICAgICAgICBjb25zdF9jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxjb25zdCB2b2lkKj4o
dGhpcykpLCAwKTsKLX0KLQotc3RhdGljIHZvaWQgYWRqdXN0bWVudFZhbHVlQ2hhbmdlZENhbGxi
YWNrKEd0a0FkanVzdG1lbnQqIGFkanVzdG1lbnQsIEd0a0FkanVzdG1lbnRXYXRjaGVyKiB3YXRj
aGVyKQotewotICAgIHdhdGNoZXItPmFkanVzdG1lbnRWYWx1ZUNoYW5nZWQoYWRqdXN0bWVudCk7
Ci19Ci0KLXN0YXRpYyB2b2lkIHNldEFkanVzdG1lbnQoR3RrQWRqdXN0bWVudFdhdGNoZXIqIHdh
dGNoZXIsIEdSZWZQdHI8R3RrQWRqdXN0bWVudD4mIGFkanVzdG1lbnRNZW1iZXIsIEd0a0FkanVz
dG1lbnQqIG5ld0FkanVzdG1lbnQpCi17Ci0gICAgaWYgKGFkanVzdG1lbnRNZW1iZXIpIHsKLSAg
ICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKGFkanVzdG1lbnRNZW1i
ZXIuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWludGVycHJldF9jYXN0PHZvaWQqPihhZGp1c3RtZW50VmFsdWVDaGFuZ2VkQ2FsbGJhY2spLCB3
YXRjaGVyKTsKLSAgICB9Ci0KLSAgICBhZGp1c3RtZW50TWVtYmVyID0gbmV3QWRqdXN0bWVudDsK
LSAgICBpZiAobmV3QWRqdXN0bWVudCkKLSAgICAgICAgZ19zaWduYWxfY29ubmVjdChuZXdBZGp1
c3RtZW50LCAidmFsdWUtY2hhbmdlZCIsIEdfQ0FMTEJBQ0soYWRqdXN0bWVudFZhbHVlQ2hhbmdl
ZENhbGxiYWNrKSwgd2F0Y2hlcik7Ci19Ci0KLXZvaWQgR3RrQWRqdXN0bWVudFdhdGNoZXI6OnNl
dEhvcml6b250YWxBZGp1c3RtZW50KEd0a0FkanVzdG1lbnQqIG5ld0FkanVzdG1lbnQpCi17Ci0g
ICAgc2V0QWRqdXN0bWVudCh0aGlzLCBtX2hvcml6b250YWxBZGp1c3RtZW50LCBuZXdBZGp1c3Rt
ZW50KTsKLX0KLQotdm9pZCBHdGtBZGp1c3RtZW50V2F0Y2hlcjo6c2V0VmVydGljYWxBZGp1c3Rt
ZW50KEd0a0FkanVzdG1lbnQqIG5ld0FkanVzdG1lbnQpCi17Ci0gICAgc2V0QWRqdXN0bWVudCh0
aGlzLCBtX3ZlcnRpY2FsQWRqdXN0bWVudCwgbmV3QWRqdXN0bWVudCk7Ci19Ci0KLXZvaWQgR3Rr
QWRqdXN0bWVudFdhdGNoZXI6OmFkanVzdG1lbnRWYWx1ZUNoYW5nZWQoR3RrQWRqdXN0bWVudCog
YWRqdXN0bWVudCkKLXsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGNvcmUobV93ZWJWaWV3
KS0+bWFpbkZyYW1lKCkudmlldygpOwotICAgIFNjcm9sbGJhciogc2Nyb2xsYmFyID0gKGFkanVz
dG1lbnQgPT0gbV9ob3Jpem9udGFsQWRqdXN0bWVudC5nZXQoKSkgPyAKLSAgICAgICAgZnJhbWVW
aWV3LT5ob3Jpem9udGFsU2Nyb2xsYmFyKCkgOiBmcmFtZVZpZXctPnZlcnRpY2FsU2Nyb2xsYmFy
KCk7Ci0gICAgaWYgKCFzY3JvbGxiYXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGludCBuZXdW
YWx1ZSA9IHN0YXRpY19jYXN0PGludD4oZ3RrX2FkanVzdG1lbnRfZ2V0X3ZhbHVlKGFkanVzdG1l
bnQpKTsKLSAgICBpZiAobmV3VmFsdWUgIT0gc2Nyb2xsYmFyLT52YWx1ZSgpKSB7Ci0gICAgICAg
IG1faGFuZGxpbmdHdGtBZGp1c3RtZW50Q2hhbmdlID0gdHJ1ZTsKLSAgICAgICAgZnJhbWVWaWV3
LT5zY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigp
LCBuZXdWYWx1ZSk7Ci0gICAgICAgIG1faGFuZGxpbmdHdGtBZGp1c3RtZW50Q2hhbmdlID0gZmFs
c2U7Ci0gICAgfQotfQotCi12b2lkIEd0a0FkanVzdG1lbnRXYXRjaGVyOjpkaXNhYmxlQWxsU2Ny
b2xsYmFycygpCi17Ci0gICAgdXBkYXRlQWRqdXN0bWVudEZyb21TY3JvbGxiYXIobV9ob3Jpem9u
dGFsQWRqdXN0bWVudC5nZXQoKSwgMCk7Ci0gICAgdXBkYXRlQWRqdXN0bWVudEZyb21TY3JvbGxi
YXIobV92ZXJ0aWNhbEFkanVzdG1lbnQuZ2V0KCksIDApOwotICAgIG1fc2Nyb2xsYmFyc0Rpc2Fi
bGVkID0gdHJ1ZTsKLX0KLQotdm9pZCBHdGtBZGp1c3RtZW50V2F0Y2hlcjo6ZW5hYmxlQWxsU2Ny
b2xsYmFycygpCi17Ci0gICAgbV9zY3JvbGxiYXJzRGlzYWJsZWQgPSBmYWxzZTsKLSAgICB1cGRh
dGVBZGp1c3RtZW50c0Zyb21TY3JvbGxiYXJzKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HdGtBZGp1
c3RtZW50V2F0Y2hlci5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR3RrQWRq
dXN0bWVudFdhdGNoZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU2OWNkYy4u
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HdGtBZGp1c3Rt
ZW50V2F0Y2hlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIEd0a0FkanVzdG1lbnRXYXRjaGVyX2gK
LSNkZWZpbmUgR3RrQWRqdXN0bWVudFdhdGNoZXJfaAotCi0jaW5jbHVkZSAiR1JlZlB0ckd0ay5o
IgotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlldyBXZWJLaXRXZWJWaWV3OwotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgR3RrQWRqdXN0bWVudFdhdGNoZXIgewotcHVibGljOgot
ICAgIEd0a0FkanVzdG1lbnRXYXRjaGVyKFdlYktpdFdlYlZpZXcqKTsKLSAgICB+R3RrQWRqdXN0
bWVudFdhdGNoZXIoKTsKLQotICAgIHZvaWQgc2V0SG9yaXpvbnRhbEFkanVzdG1lbnQoR3RrQWRq
dXN0bWVudCopOwotICAgIHZvaWQgc2V0VmVydGljYWxBZGp1c3RtZW50KEd0a0FkanVzdG1lbnQq
KTsKLSAgICBHdGtBZGp1c3RtZW50KiBob3Jpem9udGFsQWRqdXN0bWVudCgpIHsgcmV0dXJuIG1f
aG9yaXpvbnRhbEFkanVzdG1lbnQuZ2V0KCk7IH07Ci0gICAgR3RrQWRqdXN0bWVudCogdmVydGlj
YWxBZGp1c3RtZW50KCkgeyByZXR1cm4gbV92ZXJ0aWNhbEFkanVzdG1lbnQuZ2V0KCk7IH07Ci0g
ICAgdm9pZCBhZGp1c3RtZW50VmFsdWVDaGFuZ2VkKEd0a0FkanVzdG1lbnQqKTsKLSAgICB2b2lk
IHVwZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9sbGJhcnMoKTsKLSAgICB2b2lkIHVwZGF0ZUFkanVz
dG1lbnRzRnJvbVNjcm9sbGJhcnNMYXRlcigpIGNvbnN0OwotICAgIHZvaWQgZGlzYWJsZUFsbFNj
cm9sbGJhcnMoKTsKLSAgICB2b2lkIGVuYWJsZUFsbFNjcm9sbGJhcnMoKTsKLSAgICBib29sIHNj
cm9sbGJhcnNEaXNhYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYmFyc0Rpc2FibGVkOyB9
OwotCi1wcml2YXRlOgotICAgIHN0YXRpYyBnYm9vbGVhbiB1cGRhdGVBZGp1c3RtZW50Q2FsbGJh
Y2soR3RrQWRqdXN0bWVudFdhdGNoZXIqKTsKLQotICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmll
dzsKLSAgICBHUmVmUHRyPEd0a0FkanVzdG1lbnQ+IG1faG9yaXpvbnRhbEFkanVzdG1lbnQ7Ci0g
ICAgR1JlZlB0cjxHdGtBZGp1c3RtZW50PiBtX3ZlcnRpY2FsQWRqdXN0bWVudDsKLSAgICBib29s
IG1fc2Nyb2xsYmFyc0Rpc2FibGVkOwotICAgIGJvb2wgbV9oYW5kbGluZ0d0a0FkanVzdG1lbnRD
aGFuZ2U7Ci0gICAgbXV0YWJsZSB1bnNpZ25lZCBtX3VwZGF0ZUFkanVzdG1lbnRDYWxsYmFja0lk
OwotfTsKLQotfQotCi0jZW5kaWYgLy8gR3RrQWRqdXN0bWVudFdhdGNoZXJfaAotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsu
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3Rr
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDMzNWMyZC4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMjY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDgsIDIwMTIgR3VzdGF2byBOb3JvbmhhIFNpbHZhCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29s
bGFib3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRHdGsuaCIKLQotI2luY2x1ZGUgIkZp
bGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkluc3BlY3RvckNvbnRy
b2xsZXIuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBhZ2UuaCIK
LSNpbmNsdWRlICJ3ZWJraXR2ZXJzaW9uLmgiCi0jaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9y
LmgiCi0jaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9ycHJpdmF0ZS5oIgotI2luY2x1ZGUgIndl
YmtpdHdlYnZpZXcuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgotI2luY2x1
ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudEJhc2UuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotc3RhdGljIHZvaWQgbm90aWZ5
V2ViVmlld0Rlc3Ryb3llZChXZWJLaXRXZWJWaWV3KiwgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQq
IGluc3BlY3RvckZyb250ZW5kQ2xpZW50KQotewotICAgIGluc3BlY3RvckZyb250ZW5kQ2xpZW50
LT5kZXN0cm95SW5zcGVjdG9yV2luZG93KHRydWUpOwotfQotCi1uYW1lc3BhY2UgewotCi1jbGFz
cyBJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzR3RrIDogcHVibGljIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWw6OlNldHRpbmdzIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JbnNwZWN0b3JG
cm9udGVuZFNldHRpbmdzR3RrKCkgeyB9Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBTdHJpbmcg
Z2V0UHJvcGVydHkoY29uc3QgU3RyaW5nJiAvKiBuYW1lICovKQotICAgIHsKLSAgICAgICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIH0KLQotICAgIHZp
cnR1YWwgdm9pZCBzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIC8qIG5hbWUgKi8sIGNvbnN0IFN0
cmluZyYgLyogdmFsdWUgKi8pCi0gICAgewotICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlCi0KLUluc3BlY3RvckNsaWVudDo6SW5zcGVjdG9yQ2xp
ZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi0gICAgOiBtX2luc3BlY3RlZFdlYlZpZXcod2Vi
VmlldykKLSAgICAsIG1fZnJvbnRlbmRQYWdlKDApCi0gICAgLCBtX2Zyb250ZW5kQ2xpZW50KDAp
Ci17fQotCi1JbnNwZWN0b3JDbGllbnQ6On5JbnNwZWN0b3JDbGllbnQoKQotewotICAgIGlmICht
X2Zyb250ZW5kQ2xpZW50KSB7Ci0gICAgICAgIG1fZnJvbnRlbmRDbGllbnQtPmRpc2Nvbm5lY3RJ
bnNwZWN0b3JDbGllbnQoKTsKLSAgICAgICAgbV9mcm9udGVuZENsaWVudCA9IDA7Ci0gICAgfQot
fQotCi12b2lkIEluc3BlY3RvckNsaWVudDo6aW5zcGVjdG9yRGVzdHJveWVkKCkKLXsKLSAgICBj
bG9zZUluc3BlY3RvckZyb250ZW5kKCk7Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0KLUluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbCogSW5zcGVjdG9yQ2xpZW50OjpvcGVuSW5zcGVjdG9yRnJvbnRlbmQo
SW5zcGVjdG9yQ29udHJvbGxlciopCi17Ci0gICAgLy8gVGhpcyBnX29iamVjdF9nZXQgd2lsbCBy
ZWYgdGhlIGluc3BlY3Rvci4gV2UncmUgbm90IGRvaW5nIGFuCi0gICAgLy8gdW5yZWYgaWYgdGhp
cyBtZXRob2Qgc3VjY2VlZHMgYmVjYXVzZSB0aGUgaW5zcGVjdG9yIG9iamVjdCBtdXN0Ci0gICAg
Ly8gYmUgYWxpdmUgZXZlbiBhZnRlciB0aGUgaW5zcGVjdGVkIFdlYlZpZXcgaXMgZGVzdHJveWVk
IC0gdGhlCi0gICAgLy8gY2xvc2Utd2luZG93IGFuZCBkZXN0cm95IHNpZ25hbHMgc3RpbGwgbmVl
ZCB0byBiZQotICAgIC8vIGVtaXR0ZWQuCi0gICAgV2ViS2l0V2ViSW5zcGVjdG9yKiB3ZWJJbnNw
ZWN0b3IgPSAwOwotICAgIGdfb2JqZWN0X2dldChtX2luc3BlY3RlZFdlYlZpZXcsICJ3ZWItaW5z
cGVjdG9yIiwgJndlYkluc3BlY3RvciwgTlVMTCk7Ci0gICAgQVNTRVJUKHdlYkluc3BlY3Rvcik7
Ci0KLSAgICBXZWJLaXRXZWJWaWV3KiBpbnNwZWN0b3JXZWJWaWV3ID0gMDsKLSAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUod2ViSW5zcGVjdG9yLCAiaW5zcGVjdC13ZWItdmlldyIsIG1faW5zcGVj
dGVkV2ViVmlldywgJmluc3BlY3RvcldlYlZpZXcpOwotCi0gICAgaWYgKCFpbnNwZWN0b3JXZWJW
aWV3KSB7Ci0gICAgICAgIGdfb2JqZWN0X3VucmVmKHdlYkluc3BlY3Rvcik7Ci0gICAgICAgIHJl
dHVybiAwOwotICAgIH0KLQotICAgIHdlYmtpdF93ZWJfaW5zcGVjdG9yX3NldF93ZWJfdmlldyh3
ZWJJbnNwZWN0b3IsIGluc3BlY3RvcldlYlZpZXcpOwotIAotICAgIHdlYmtpdF93ZWJfdmlld19s
b2FkX3VyaShpbnNwZWN0b3JXZWJWaWV3LCAicmVzb3VyY2U6Ly8vb3JnL3dlYmtpdGd0ay9pbnNw
ZWN0b3IvVXNlckludGVyZmFjZS9NYWluLmh0bWwiKTsKLQotICAgIGd0a193aWRnZXRfc2hvdyhH
VEtfV0lER0VUKGluc3BlY3RvcldlYlZpZXcpKTsKLQotICAgIG1fZnJvbnRlbmRQYWdlID0gY29y
ZShpbnNwZWN0b3JXZWJWaWV3KTsKLSAgICBhdXRvIGZyb250ZW5kQ2xpZW50ID0gc3RkOjptYWtl
X3VuaXF1ZTxJbnNwZWN0b3JGcm9udGVuZENsaWVudD4obV9pbnNwZWN0ZWRXZWJWaWV3LCBpbnNw
ZWN0b3JXZWJWaWV3LCB3ZWJJbnNwZWN0b3IsIG1fZnJvbnRlbmRQYWdlLCB0aGlzKTsKLSAgICBt
X2Zyb250ZW5kQ2xpZW50ID0gZnJvbnRlbmRDbGllbnQuZ2V0KCk7Ci0gICAgbV9mcm9udGVuZFBh
Z2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChzdGQ6
Om1vdmUoZnJvbnRlbmRDbGllbnQpKTsKLQotICAgIC8vIFRoZSBpbnNwZWN0b3IgbXVzdCBiZSBp
biBpdCdzIG93biBQYWdlR3JvdXAgdG8gYXZvaWQgZGVhZGxvY2sgd2hpbGUgZGVidWdnaW5nLgot
ICAgIG1fZnJvbnRlbmRQYWdlLT5zZXRHcm91cE5hbWUoIiIpOwotICAgIAotICAgIHJldHVybiB0
aGlzOwotfQotCi12b2lkIEluc3BlY3RvckNsaWVudDo6Y2xvc2VJbnNwZWN0b3JGcm9udGVuZCgp
Ci17Ci0gICAgaWYgKG1fZnJvbnRlbmRDbGllbnQpCi0gICAgICAgIG1fZnJvbnRlbmRDbGllbnQt
PmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3coZmFsc2UpOwotfQotCi12b2lkIEluc3BlY3RvckNsaWVu
dDo6YnJpbmdGcm9udGVuZFRvRnJvbnQoKQotewotICAgIG1fZnJvbnRlbmRDbGllbnQtPmJyaW5n
VG9Gcm9udCgpOwotfQotCi12b2lkIEluc3BlY3RvckNsaWVudDo6cmVsZWFzZUZyb250ZW5kUGFn
ZSgpCi17Ci0gICAgbV9mcm9udGVuZFBhZ2UgPSAwOwotICAgIG1fZnJvbnRlbmRDbGllbnQgPSAw
OwotfQotCi12b2lkIEluc3BlY3RvckNsaWVudDo6aGlnaGxpZ2h0KCkKLXsKLSAgICBoaWRlSGln
aGxpZ2h0KCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0KCkKLXsK
LSAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGJlIGFibGUgdG8gb25seSBpbnZhbGlkYXRlIHRoZSBh
Y3R1YWwgcmVjdHMgb2YKLSAgICAvLyB0aGUgbmV3IGFuZCBvbGQgbm9kZXMuIFdlIG5lZWQgdG8g
dHJhY2sgdGhlIG5vZGVzLCBhbmQgdGFrZSB0aGUKLSAgICAvLyBhY3R1YWwgaGlnaGxpZ2h0IHNp
emUgaW50byBhY2NvdW50IHdoZW4gY2FsY3VsYXRpbmcgdGhlIGRhbWFnZQotICAgIC8vIHJlY3Qu
Ci0gICAgZ3RrX3dpZGdldF9xdWV1ZV9kcmF3KEdUS19XSURHRVQobV9pbnNwZWN0ZWRXZWJWaWV3
KSk7Ci19Ci0KLWJvb2wgSW5zcGVjdG9yQ2xpZW50OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIHJldHVybiBkb0Rpc3BhdGNoTWVzc2FnZU9uRnJv
bnRlbmRQYWdlKG1fZnJvbnRlbmRQYWdlLCBtZXNzYWdlKTsKLX0KLQotSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50KFdlYktpdFdlYlZpZXcqIGluc3BlY3Rl
ZFdlYlZpZXcsIFdlYktpdFdlYlZpZXcqIGluc3BlY3RvcldlYlZpZXcsIFdlYktpdFdlYkluc3Bl
Y3Rvciogd2ViSW5zcGVjdG9yLCBQYWdlKiBpbnNwZWN0b3JQYWdlLCBJbnNwZWN0b3JDbGllbnQq
IGluc3BlY3RvckNsaWVudCkKLSAgICA6IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwoJmNv
cmUoaW5zcGVjdGVkV2ViVmlldyktPmluc3BlY3RvckNvbnRyb2xsZXIoKSwgaW5zcGVjdG9yUGFn
ZSwgc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JGcm9udGVuZFNldHRpbmdzR3RrPigpKQotICAg
ICwgbV9pbnNwZWN0b3JXZWJWaWV3KGluc3BlY3RvcldlYlZpZXcpCi0gICAgLCBtX2luc3BlY3Rl
ZFdlYlZpZXcoaW5zcGVjdGVkV2ViVmlldykKLSAgICAsIG1fd2ViSW5zcGVjdG9yKHdlYkluc3Bl
Y3RvcikKLSAgICAsIG1faW5zcGVjdG9yQ2xpZW50KGluc3BlY3RvckNsaWVudCkKLXsKLSAgICBn
X3NpZ25hbF9jb25uZWN0KG1faW5zcGVjdG9yV2ViVmlldywgImRlc3Ryb3kiLAotICAgICAgICAg
ICAgICAgICAgICAgR19DQUxMQkFDSyhub3RpZnlXZWJWaWV3RGVzdHJveWVkKSwgKGdwb2ludGVy
KXRoaXMpOwotfQotCi1JbnNwZWN0b3JGcm9udGVuZENsaWVudDo6fkluc3BlY3RvckZyb250ZW5k
Q2xpZW50KCkKLXsKLSAgICBpZiAobV9pbnNwZWN0b3JDbGllbnQpIHsKLSAgICAgICAgbV9pbnNw
ZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVuZFBhZ2UoKTsKLSAgICAgICAgbV9pbnNwZWN0b3JD
bGllbnQgPSAwOwotICAgIH0KLQotICAgIEFTU0VSVCghbV93ZWJJbnNwZWN0b3IpOwotfQotCi12
b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wg
bm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikKLXsKLSAgICBpZiAoIW1fd2ViSW5zcGVjdG9yKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBHUmVmUHRyPFdlYktpdFdlYkluc3BlY3Rvcj4gd2ViSW5z
cGVjdG9yID0gYWRvcHRHUmVmKG1fd2ViSW5zcGVjdG9yLmxlYWtSZWYoKSk7Ci0KLSAgICBpZiAo
bV9pbnNwZWN0b3JXZWJWaWV3KSB7Ci0gICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5l
Y3RfYnlfZnVuYyhtX2luc3BlY3RvcldlYlZpZXcsIHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50ZXI+
KG5vdGlmeVdlYlZpZXdEZXN0cm95ZWQpLCB0aGlzKTsKLSAgICAgICAgbV9pbnNwZWN0b3JXZWJW
aWV3ID0gMDsKLSAgICB9Ci0KLSAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikKLSAg
ICAgICAgY29yZShtX2luc3BlY3RlZFdlYlZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZGlz
Y29ubmVjdEZyb250ZW5kKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGlzY29ubmVjdFJlYXNvbjo6SW5z
cGVjdG9yRGVzdHJveWVkKTsKLQotICAgIGlmIChtX2luc3BlY3RvckNsaWVudCkKLSAgICAgICAg
bV9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVuZFBhZ2UoKTsKLQotICAgIGdib29sZWFu
IGhhbmRsZWQgPSBGQUxTRTsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUod2ViSW5zcGVjdG9y
LmdldCgpLCAiY2xvc2Utd2luZG93IiwgJmhhbmRsZWQpOwotICAgIEFTU0VSVChoYW5kbGVkKTsK
LQotICAgIC8vIFBsZWFzZSBkbyBub3QgdXNlIG1lbWJlciB2YXJpYWJsZXMgaGVyZSBiZWNhdXNl
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50IG9iamVjdCBwb2ludGVkIGJ5ICd0aGlzJwotICAgIC8v
IGhhcyBiZWVuIGltcGxpY2l0bHkgZGVsZXRlZCBieSAiY2xvc2Utd2luZG93IiBmdW5jdGlvbi4K
LX0KLQotU3RyaW5nIEluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpsb2NhbGl6ZWRTdHJpbmdzVVJM
KCkKLXsKLSAgICAvLyBGSVhNRTogc3VwcG9ydCBsMTBuIG9mIGxvY2FsaXplZFN0cmluZ3MuanMK
LSAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd2Via2l0Z3RrL2luc3BlY3Rvci9M
b2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMiKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDo6YnJpbmdUb0Zyb250KCkKLXsKLSAgICBpZiAoIW1faW5z
cGVjdG9yV2ViVmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ2Jvb2xlYW4gaGFuZGxlZCA9
IEZBTFNFOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYkluc3BlY3Rvci5nZXQoKSwg
InNob3ctd2luZG93IiwgJmhhbmRsZWQpOwotfQotCi12b2lkIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpjbG9zZVdpbmRvdygpCi17Ci0gICAgZGVzdHJveUluc3BlY3RvcldpbmRvdyh0cnVlKTsK
LX0KLQotdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6YXR0YWNoV2luZG93KERvY2tTaWRl
KQotewotICAgIGlmICghbV9pbnNwZWN0b3JXZWJWaWV3KQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBnYm9vbGVhbiBoYW5kbGVkID0gRkFMU0U7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1f
d2ViSW5zcGVjdG9yLmdldCgpLCAiYXR0YWNoLXdpbmRvdyIsICZoYW5kbGVkKTsKLX0KLQotdm9p
ZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGV0YWNoV2luZG93KCkKLXsKLSAgICBpZiAoIW1f
aW5zcGVjdG9yV2ViVmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ2Jvb2xlYW4gaGFuZGxl
ZCA9IEZBTFNFOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYkluc3BlY3Rvci5nZXQo
KSwgImRldGFjaC13aW5kb3ciLCAmaGFuZGxlZCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIC8qIGhlaWdodCAqLykK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkIC8qIHdpZHRoICovKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNl
dFRvb2xiYXJIZWlnaHQodW5zaWduZWQgLyogaGVpZ2h0ICovKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6Omluc3BlY3RlZFVSTENo
YW5nZWQoY29uc3QgU3RyaW5nJiBuZXdVUkwpCi17Ci0gICAgaWYgKCFtX2luc3BlY3RvcldlYlZp
ZXcpCi0gICAgICAgIHJldHVybjsKLQotICAgIHdlYmtpdF93ZWJfaW5zcGVjdG9yX3NldF9pbnNw
ZWN0ZWRfdXJpKG1fd2ViSW5zcGVjdG9yLmdldCgpLCBuZXdVUkwudXRmOCgpLmRhdGEoKSk7Ci19
Ci0KLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5z
cGVjdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JDbGllbnRHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODM3N2I5NS4u
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRHdGsuaAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBu
b3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvckNsaWVu
dEd0a19oCi0jZGVmaW5lIEluc3BlY3RvckNsaWVudEd0a19oCi0KLSNpbmNsdWRlICJJbnNwZWN0
b3JDbGllbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JGb3J3YXJkaW5nLmgiCi0jaW5jbHVkZSAi
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmluc3Bl
Y3Rvci5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnZpZXcuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HVW5pcXVlUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFBhZ2U7Ci19
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsK
LQotY2xhc3MgSW5zcGVjdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Okluc3BlY3RvckNsaWVu
dCwgcHVibGljIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCB7Ci1wdWJsaWM6Ci0g
ICAgZXhwbGljaXQgSW5zcGVjdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqKTsKLSAgICB+SW5zcGVj
dG9yQ2xpZW50KCk7Ci0KLSAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZENsaWVudCgpIHsgbV9m
cm9udGVuZENsaWVudCA9IDA7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JEZXN0cm95
ZWQoKTsKLQotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBv
cGVuSW5zcGVjdG9yRnJvbnRlbmQoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopOwotICAg
IHZpcnR1YWwgdm9pZCBjbG9zZUluc3BlY3RvckZyb250ZW5kKCk7Ci0gICAgdmlydHVhbCB2b2lk
IGJyaW5nRnJvbnRlbmRUb0Zyb250KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0KCk7
Ci0gICAgdmlydHVhbCB2b2lkIGhpZGVIaWdobGlnaHQoKTsKLQotICAgIHZpcnR1YWwgYm9vbCBz
ZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKLQotICAgIHZvaWQgcmVs
ZWFzZUZyb250ZW5kUGFnZSgpOwotICAgIGNvbnN0IGNoYXIqIGluc3BlY3RvckZpbGVzUGF0aCgp
OwotCi1wcml2YXRlOgotICAgIFdlYktpdFdlYlZpZXcqIG1faW5zcGVjdGVkV2ViVmlldzsKLSAg
ICBXZWJDb3JlOjpQYWdlKiBtX2Zyb250ZW5kUGFnZTsKLSAgICBJbnNwZWN0b3JGcm9udGVuZENs
aWVudCogbV9mcm9udGVuZENsaWVudDsKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBtX2luc3BlY3Rv
ckZpbGVzUGF0aDsKLX07Ci0KLWNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50IDogcHVibGlj
IFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwgewotcHVibGljOgotICAgIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50KFdlYktpdFdlYlZpZXcqIGluc3BlY3RlZFdlYlZpZXcsIFdl
YktpdFdlYlZpZXcqIGluc3BlY3RvcldlYlZpZXcsIFdlYktpdFdlYkluc3BlY3RvciosIFdlYkNv
cmU6OlBhZ2UqIGluc3BlY3RvclBhZ2UsIEluc3BlY3RvckNsaWVudCopOwotICAgIHZpcnR1YWwg
fkluc3BlY3RvckZyb250ZW5kQ2xpZW50KCk7Ci0KLSAgICB2b2lkIGRpc2Nvbm5lY3RJbnNwZWN0
b3JDbGllbnQoKSB7IG1faW5zcGVjdG9yQ2xpZW50ID0gMDsgfQotCi0gICAgdm9pZCBkZXN0cm95
SW5zcGVjdG9yV2luZG93KGJvb2wgbm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcik7Ci0KLSAgICB2
aXJ0dWFsIFdURjo6U3RyaW5nIGxvY2FsaXplZFN0cmluZ3NVUkwoKTsKLQotICAgIHZpcnR1YWwg
dm9pZCBicmluZ1RvRnJvbnQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3coKTsKLQot
ICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hXaW5kb3coRG9ja1NpZGUpOwotICAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2hXaW5kb3coKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hl
aWdodCh1bnNpZ25lZCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93V2lkdGgo
dW5zaWduZWQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFySGVpZ2h0KHVuc2lnbmVkKSBv
dmVycmlkZTsKLQotICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFdU
Rjo6U3RyaW5nJiBuZXdVUkwpOwotCi1wcml2YXRlOgotICAgIFdlYktpdFdlYlZpZXcqIG1faW5z
cGVjdG9yV2ViVmlldzsKLSAgICBXZWJLaXRXZWJWaWV3KiBtX2luc3BlY3RlZFdlYlZpZXc7Ci0g
ICAgR1JlZlB0cjxXZWJLaXRXZWJJbnNwZWN0b3I+IG1fd2ViSW5zcGVjdG9yOwotICAgIEluc3Bl
Y3RvckNsaWVudCogbV9pbnNwZWN0b3JDbGllbnQ7Ci19OwotfQotCi0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGls
c0NsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9OYXZpZ2F0
b3JDb250ZW50VXRpbHNDbGllbnRHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4YmUyOWFiLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwz
NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MK
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTmF2
aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50R3RrLmgiCi0KLSNpZiBFTkFCTEUoTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXZvaWQgTmF2aWdhdG9y
Q29udGVudFV0aWxzQ2xpZW50OjpyZWdpc3RlclByb3RvY29sSGFuZGxlcihjb25zdCBTdHJpbmcm
IHNjaGVtZSwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiB0aXRsZSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfSAKLQotfQotI2VuZGlmIC8vIEVO
QUJMRShOQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudEd0ay5oIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50
R3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4MGIwMjViLi4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L05hdmlnYXRvckNvbnRlbnRVdGls
c0NsaWVudEd0ay5oCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQot
I2lmbmRlZiBOYXZpZ2F0b3JDb250ZW50VXRpbHNDbGllbnRHdGtfaAotI2RlZmluZSBOYXZpZ2F0
b3JDb250ZW50VXRpbHNDbGllbnRHdGtfaAotCi0jaWYgRU5BQkxFKE5BVklHQVRPUl9DT05URU5U
X1VUSUxTKQotI2luY2x1ZGUgIk5hdmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudC5oIgotCi0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIE5h
dmlnYXRvckNvbnRlbnRVdGlsc0NsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpOYXZpZ2F0b3JDb250
ZW50VXRpbHNDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclByb3Rv
Y29sSGFuZGxlcihjb25zdCBTdHJpbmcmIHNjaGVtZSwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKLX07Ci0KLX0KLQotI2VuZGlmCi0jZW5kaWYg
Ly8gTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xpZW50R3RrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuaCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Bhc3RlYm9hcmRIZWxwZXJHdGsuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDAwMzMzYy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9QYXN0ZWJvYXJkSGVscGVyR3RrLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEx1Y2EgQnJ1bm8gPGxl
dGhhbG1hbjg4QGdtYWlsLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBIb2xnZXIgSGFucyBQ
ZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDEwIE1hcnRpbiBSb2JpbnNvbiA8bXJv
Ymluc29uQHdlYmtpdC5vcmc+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBQ
YXN0ZWJvYXJkSGVscGVyR3RrX2gKLSNkZWZpbmUgUGFzdGVib2FyZEhlbHBlckd0a19oCi0KLS8q
Ci0gKiBGSVhNRTogdGhpcyBpcyBmb3IgV2ViQ29yZSBzdXBwb3J0IGFuZCBtdXN0IGJlIHJlbW92
ZWQgb25jZQotICogYSBiZXR0ZXIgc29sdXRpb24gaXMgZm91bmQKLSAqLwotCi0jaW5jbHVkZSAi
RnJhbWUuaCIKLSNpbmNsdWRlICJQYXN0ZWJvYXJkSGVscGVyLmgiCi0KLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgUGFzdGVib2FyZEhlbHBl
ckd0ayA6IHB1YmxpYyBQYXN0ZWJvYXJkSGVscGVyIHsKLXB1YmxpYzoKLSAgICBQYXN0ZWJvYXJk
SGVscGVyR3RrKCk7Ci0gICAgflBhc3RlYm9hcmRIZWxwZXJHdGsoKTsKLSAgICB2aXJ0dWFsIGd1
aW50IGdldElkRm9yVGFyZ2V0VHlwZShQYXN0ZWJvYXJkVGFyZ2V0VHlwZSk7Ci0KLXByb3RlY3Rl
ZDoKLSAgICB2aXJ0dWFsIGJvb2wgdXNlUHJpbWFyeVNlbGVjdGlvbkNsaXBib2FyZChHdGtXaWRn
ZXQqKTsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFBhc3RlYm9hcmRIZWxwZXJHdGtfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVz
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRl
Z2llc0d0ay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4Mjc1NWQuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVn
aWVzR3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQotICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llc0d0ay5oIgotCi0jaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUGFnZUdy
b3VwLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1Db29raWVKYXIuaCIKLSNpbmNsdWRlICJQbHVnaW5E
YXRhYmFzZS5oIgotI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKLQotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KLXZvaWQgUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjppbml0aWFsaXplKCkKLXsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UGxhdGZvcm1TdHJhdGVnaWVzR3RrPiBwbGF0Zm9y
bVN0cmF0ZWdpZXM7Ci0gICAgc2V0UGxhdGZvcm1TdHJhdGVnaWVzKCZwbGF0Zm9ybVN0cmF0ZWdp
ZXMuZ2V0KCkpOwotfQotCi1QbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OlBsYXRmb3JtU3RyYXRlZ2ll
c0d0aygpCi17Ci19Ci0KLUNvb2tpZXNTdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpj
cmVhdGVDb29raWVzU3RyYXRlZ3koKQotewotICAgIHJldHVybiB0aGlzOwotfQotCi1EYXRhYmFz
ZVN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmNyZWF0ZURhdGFiYXNlU3RyYXRlZ3ko
KQotewotICAgIHJldHVybiB0aGlzOwotfQotCi1Mb2FkZXJTdHJhdGVneSogUGxhdGZvcm1TdHJh
dGVnaWVzR3RrOjpjcmVhdGVMb2FkZXJTdHJhdGVneSgpCi17Ci0gICAgcmV0dXJuIHRoaXM7Ci19
Ci0KLVBhc3RlYm9hcmRTdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpjcmVhdGVQYXN0
ZWJvYXJkU3RyYXRlZ3koKQotewotICAgIC8vIFRoaXMgaXMgY3VycmVudGx5IHVzZWQgb25seSBi
eSBNYWMgY29kZS4KLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi1Q
bHVnaW5TdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpjcmVhdGVQbHVnaW5TdHJhdGVn
eSgpCi17Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLVNoYXJlZFdvcmtlclN0cmF0ZWd5KiBQbGF0
Zm9ybVN0cmF0ZWdpZXNHdGs6OmNyZWF0ZVNoYXJlZFdvcmtlclN0cmF0ZWd5KCkKLXsKLSAgICBy
ZXR1cm4gdGhpczsKLX0KLQotU3RvcmFnZVN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6
OmNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpCi17Ci0gICAgcmV0dXJuIHRoaXM7Ci19Ci0KLS8vIENv
b2tpZXNTdHJhdGVneQotU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6Y29va2llc0ZvckRP
TShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgVVJMJiB1cmwpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tpZXNGb3JE
T00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKLX0KLQotdm9pZCBQbGF0Zm9ybVN0cmF0ZWdp
ZXNHdGs6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHJpbmcpCi17Ci0gICAgV2ViQ29yZTo6c2V0Q29va2llc0Zyb21ET00oc2Vzc2lv
biwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVTdHJpbmcpOwotfQotCi1ib29sIFBsYXRmb3JtU3Ry
YXRlZ2llc0d0azo6Y29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQotewotICAgIHJl
dHVybiBXZWJDb3JlOjpjb29raWVzRW5hYmxlZChzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwpOwot
fQotCi1TdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6OmNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKHNlc3Npb24sIGZpcnN0UGFydHksIHVybCk7Ci19Ci0K
LWJvb2wgUGxhdGZvcm1TdHJhdGVnaWVzR3RrOjpnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwm
IHVybCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpCi17Ci0gICAgcmV0dXJuIFdlYkNvcmU6
OmdldFJhd0Nvb2tpZXMoc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCByYXdDb29raWVzKTsKLX0K
LQotdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6OmRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNv
b2tpZU5hbWUpCi17Ci0gICAgV2ViQ29yZTo6ZGVsZXRlQ29va2llKHNlc3Npb24sIHVybCwgY29v
a2llTmFtZSk7Ci19Ci0KLS8vIFBsdWdpblN0cmF0ZWd5Ci12b2lkIFBsYXRmb3JtU3RyYXRlZ2ll
c0d0azo6cmVmcmVzaFBsdWdpbnMoKQotewotICAgIFBsdWdpbkRhdGFiYXNlOjppbnN0YWxsZWRQ
bHVnaW5zKCktPnJlZnJlc2goKTsKLX0KLQotdm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNHdGs6Omdl
dFBsdWdpbkluZm8oY29uc3QgUGFnZSosIFZlY3RvcjxQbHVnaW5JbmZvPiYgb3V0UGx1Z2lucykK
LXsKLSAgICBQbHVnaW5EYXRhYmFzZSogZGF0YWJhc2UgPSBQbHVnaW5EYXRhYmFzZTo6aW5zdGFs
bGVkUGx1Z2lucygpOwotICAgIGNvbnN0IFZlY3RvcjxQbHVnaW5QYWNrYWdlKj4gJnBsdWdpbnMg
PSBkYXRhYmFzZS0+cGx1Z2lucygpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwbHVn
aW5zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFBsdWdpblBhY2thZ2UqIHBhY2thZ2UgPSBwbHVn
aW5zW2ldOwotCi0gICAgICAgIFBsdWdpbkluZm8gcGx1Z2luSW5mbzsKLSAgICAgICAgcGx1Z2lu
SW5mby5uYW1lID0gcGFja2FnZS0+bmFtZSgpOwotICAgICAgICBwbHVnaW5JbmZvLmZpbGUgPSBw
YWNrYWdlLT5maWxlTmFtZSgpOwotICAgICAgICBwbHVnaW5JbmZvLmRlc2MgPSBwYWNrYWdlLT5k
ZXNjcmlwdGlvbigpOwotCi0gICAgICAgIGNvbnN0IE1JTUVUb0Rlc2NyaXB0aW9uc01hcCYgbWlt
ZVRvRGVzY3JpcHRpb25zID0gcGFja2FnZS0+bWltZVRvRGVzY3JpcHRpb25zKCk7Ci0gICAgICAg
IE1JTUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWltZVRvRGVzY3Jp
cHRpb25zLmVuZCgpOwotICAgICAgICBmb3IgKE1JTUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBtaW1lVG9EZXNjcmlwdGlvbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7Ci0gICAgICAgICAgICBNaW1lQ2xhc3NJbmZvIG1pbWU7Ci0gICAgICAgICAgICBtaW1lLnR5
cGUgPSBpdC0+a2V5OwotICAgICAgICAgICAgbWltZS5kZXNjID0gaXQtPnZhbHVlOwotICAgICAg
ICAgICAgbWltZS5leHRlbnNpb25zID0gcGFja2FnZS0+bWltZVRvRXh0ZW5zaW9ucygpLmdldCht
aW1lLnR5cGUpOwotICAgICAgICAgICAgcGx1Z2luSW5mby5taW1lcy5hcHBlbmQobWltZSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBvdXRQbHVnaW5zLmFwcGVuZChwbHVnaW5JbmZvKTsKLSAgICB9
Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9y
bVN0cmF0ZWdpZXNHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1BsYXRm
b3JtU3RyYXRlZ2llc0d0ay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMjM0NGI5
Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc0d0ay5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5k
ZWYgUGxhdGZvcm1TdHJhdGVnaWVzR3RrX2gKLSNkZWZpbmUgUGxhdGZvcm1TdHJhdGVnaWVzR3Rr
X2gKLQotI2luY2x1ZGUgIkNvb2tpZXNTdHJhdGVneS5oIgotI2luY2x1ZGUgIkRhdGFiYXNlU3Ry
YXRlZ3kuaCIKLSNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgotI2luY2x1ZGUgIlBhc3RlYm9h
cmRTdHJhdGVneS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgotI2luY2x1ZGUg
IlBsdWdpblN0cmF0ZWd5LmgiCi0jaW5jbHVkZSAiU2hhcmVkV29ya2VyU3RyYXRlZ3kuaCIKLSNp
bmNsdWRlICJTdG9yYWdlU3RyYXRlZ3kuaCIKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KLQotY2xhc3MgUGxhdGZvcm1TdHJhdGVnaWVzR3RrIDogcHVibGljIFdlYkNvcmU6OlBsYXRm
b3JtU3RyYXRlZ2llcywgcHJpdmF0ZSBXZWJDb3JlOjpDb29raWVzU3RyYXRlZ3ksIHByaXZhdGUg
V2ViQ29yZTo6RGF0YWJhc2VTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpMb2FkZXJTdHJhdGVn
eSwgcHJpdmF0ZSBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJTdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpTdG9yYWdlU3RyYXRlZ3kgewotcHVi
bGljOgotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKTsKLQotcHJpdmF0ZToKLSAgICBQbGF0
Zm9ybVN0cmF0ZWdpZXNHdGsoKTsKLQotICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2ll
cwotICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5KiBjcmVhdGVDb29raWVzU3Ry
YXRlZ3koKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3kqIGNyZWF0ZURh
dGFiYXNlU3RyYXRlZ3koKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBj
cmVhdGVMb2FkZXJTdHJhdGVneSgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFzdGVib2FyZFN0
cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRlZ3koKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6
OlBsdWdpblN0cmF0ZWd5KiBjcmVhdGVQbHVnaW5TdHJhdGVneSgpOwotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6U2hhcmVkV29ya2VyU3RyYXRlZ3kqIGNyZWF0ZVNoYXJlZFdvcmtlclN0cmF0ZWd5KCk7
Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpTdG9yYWdlU3RyYXRlZ3kqIGNyZWF0ZVN0b3JhZ2VTdHJh
dGVneSgpOwotCi0gICAgLy8gV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5Ci0gICAgdmlydHVhbCBT
dHJpbmcgY29va2llc0ZvckRPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5h
YmxlZChjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3Jl
OjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpOwotICAgIHZpcnR1YWwgU3Ry
aW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2Vi
Q29yZTo6VVJMJik7Ci0gICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpOwotICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5nJik7Ci0KLSAgICAvLyBXZWJD
b3JlOjpEYXRhYmFzZVN0cmF0ZWd5Ci0gICAgLy8gLSBVc2luZyBkZWZhdWx0IGltcGxlbWVudGF0
aW9uLgotCi0gICAgLy8gV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3kKLSAgICB2aXJ0dWFsIHZvaWQg
cmVmcmVzaFBsdWdpbnMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2luSW5mbyhjb25zdCBX
ZWJDb3JlOjpQYWdlKiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+Jik7Ci0KLSAgICBmcmll
bmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8UGxhdGZvcm1TdHJhdGVnaWVzR3RrPjsKLX07Ci0KLSNl
bmRpZiAvLyBQbGF0Zm9ybVN0cmF0ZWdpZXNHdGtfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Byb2dyZXNzVHJhY2tlckNsaWVudEd0ay5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhMTVmNGQuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50R3RrLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwot
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyQ2xpZW50R3RrLmgiCi0KLSNp
bmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCi0jaW5jbHVkZSAi
d2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUu
aCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVByb2dyZXNzVHJhY2tlckNsaWVudDo6UHJvZ3Jl
c3NUcmFja2VyQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi0gICAgOiBtX3dlYlZpZXco
d2ViVmlldykKLXsKLSAgICBBU1NFUlQobV93ZWJWaWV3KTsKLX0KLQotdm9pZCBQcm9ncmVzc1Ry
YWNrZXJDbGllbnQ6OnByb2dyZXNzVHJhY2tlckRlc3Ryb3llZCgpCi17Ci0gICAgZGVsZXRlIHRo
aXM7Ci19Ci0KLXZvaWQgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50Ojpwcm9ncmVzc1N0YXJ0ZWQoV2Vi
Q29yZTo6RnJhbWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSkKLXsKLSAgICBXZWJLaXRXZWJG
cmFtZSogZnJhbWUgPSBraXQoJm9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSk7Ci0gICAgQVNTRVJU
KG1fd2ViVmlldyA9PSBnZXRWaWV3RnJvbUZyYW1lKGZyYW1lKSk7Ci0KLSAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUobV93ZWJWaWV3LCAibG9hZC1zdGFydGVkIiwgZnJhbWUpOwotCi0gICAgZ19v
YmplY3Rfbm90aWZ5KEdfT0JKRUNUKG1fd2ViVmlldyksICJwcm9ncmVzcyIpOwotfQotCi12b2lk
IFByb2dyZXNzVHJhY2tlckNsaWVudDo6cHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6
RnJhbWUmIG9yaWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSkKLXsKLSAgICBBU1NFUlRfVU5VU0VEKG9y
aWdpbmF0aW5nUHJvZ3Jlc3NGcmFtZSwgKG1fd2ViVmlldyA9PSBnZXRWaWV3RnJvbUZyYW1lKGtp
dCgmb3JpZ2luYXRpbmdQcm9ncmVzc0ZyYW1lKSkpKTsKLQotICAgIFdlYkNvcmU6OlBhZ2UqIGNv
cmVQYWdlID0gY29yZShtX3dlYlZpZXcpOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dl
YlZpZXcsICJsb2FkLXByb2dyZXNzLWNoYW5nZWQiLCBscm91bmQoY29yZVBhZ2UtPnByb2dyZXNz
KCkuZXN0aW1hdGVkUHJvZ3Jlc3MoKSoxMDApKTsKLQotICAgIGdfb2JqZWN0X25vdGlmeShHX09C
SkVDVChtX3dlYlZpZXcpLCAicHJvZ3Jlc3MiKTsKLX0KLQotdm9pZCBQcm9ncmVzc1RyYWNrZXJD
bGllbnQ6OnByb2dyZXNzRmluaXNoZWQoV2ViQ29yZTo6RnJhbWUmIG9yaWdpbmF0aW5nUHJvZ3Jl
c3NGcmFtZSkKLXsKLSAgICBXZWJLaXRXZWJGcmFtZSogZnJhbWUgPSBraXQoJm9yaWdpbmF0aW5n
UHJvZ3Jlc3NGcmFtZSk7Ci0gICAgQVNTRVJUKG1fd2ViVmlldyA9PSBnZXRWaWV3RnJvbUZyYW1l
KGZyYW1lKSk7Ci0KLSAgICAvLyBXZSBjYW4gZ2V0IGEgc3RvcExvYWQoKSBmcm9tIGRpc3Bvc2Ug
d2hlbiB0aGUgb2JqZWN0IGlzIGJlaW5nCi0gICAgLy8gZGVzdHJveWVkLCBkb24ndCBlbWl0IHRo
ZSBzaWduYWwgaW4gdGhhdCBjYXNlLgotICAgIGlmICghbV93ZWJWaWV3LT5wcml2LT5kaXNwb3Np
bmcpCi0gICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJsb2FkLWZpbmlz
aGVkIiwgZnJhbWUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1Byb2dyZXNzVHJhY2tlckNsaWVudEd0ay5o
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
R3RrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4YWFmYjcuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvUHJvZ3Jlc3NUcmFja2VyQ2xpZW50
R3RrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lm
bmRlZiBQcm9ncmVzc1RyYWNrZXJDbGllbnRHdGtfaAotI2RlZmluZSBQcm9ncmVzc1RyYWNrZXJD
bGllbnRHdGtfaAotCi0jaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCi0KLXR5cGVk
ZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3IFdlYktpdFdlYlZpZXc7Ci0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6UHJvZ3Jlc3NUcmFja2VyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBQcm9ncmVz
c1RyYWNrZXJDbGllbnQoV2ViS2l0V2ViVmlldyopOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwg
dm9pZCBwcm9ncmVzc1RyYWNrZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKLQotICAgIHZpcnR1YWwg
dm9pZCBwcm9ncmVzc1N0YXJ0ZWQoV2ViQ29yZTo6RnJhbWUmKSBvdmVycmlkZTsKLSAgICB2aXJ0
dWFsIHZvaWQgcHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgcHJvZ3Jlc3NGaW5pc2hlZChXZWJDb3JlOjpGcmFtZSYpIG92
ZXJyaWRlOwotCi0gICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBQcm9ncmVzc1RyYWNrZXJDbGllbnRHdGtfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGll
bnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJD
bGllbnRHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTZkMzVkLi4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xp
ZW50R3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiAgQ29weXJp
Z2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Ci0gKiAgQ29weXJpZ2h0IChD
KSAyMDA4IE51YW50aSBMdGQuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA5IERpZWdvIEVzY2FsYW50
ZSBVcnJlbG8gPGRpZWdvZUBnbm9tZS5vcmc+Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA5
LCAyMDEwLCAyMDExIElnYWxpYSBTLkwuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDEwLCBNYXJ0aW4g
Um9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3JnPgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50
R3RrLmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIndlYmtpdHNw
ZWxsY2hlY2tlci5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIgotI2lu
Y2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nVmlldy5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLVRleHRDaGVja2VyQ2xpZW50R3RrOjpUZXh0Q2hlY2tlckNsaWVu
dEd0ayhXZWJLaXRTcGVsbENoZWNrZXIqIHNwZWxsQ2hlY2tlcikKLSAgICA6IG1fc3BlbGxDaGVj
a2VyKHNwZWxsQ2hlY2tlcikKLXsKLX0KLQotVGV4dENoZWNrZXJDbGllbnRHdGs6On5UZXh0Q2hl
Y2tlckNsaWVudEd0aygpCi17Ci19Ci0KLWJvb2wgVGV4dENoZWNrZXJDbGllbnRHdGs6OnNob3Vs
ZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9uKFRleHRDaGVja2luZ1R5cGUpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgVGV4dENoZWNrZXJDbGllbnRHdGs6Omln
bm9yZVdvcmRJblNwZWxsRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0ZXh0KQotewotICAgIHdlYmtp
dF9zcGVsbF9jaGVja2VyX2lnbm9yZV93b3JkKG1fc3BlbGxDaGVja2VyLmdldCgpLCB0ZXh0LnV0
ZjgoKS5kYXRhKCkpOwotfQotCi12b2lkIFRleHRDaGVja2VyQ2xpZW50R3RrOjpsZWFybldvcmQo
Y29uc3QgU3RyaW5nJiB0ZXh0KQotewotICAgIHdlYmtpdF9zcGVsbF9jaGVja2VyX2xlYXJuX3dv
cmQobV9zcGVsbENoZWNrZXIuZ2V0KCksIHRleHQudXRmOCgpLmRhdGEoKSk7Ci19Ci0KLXZvaWQg
VGV4dENoZWNrZXJDbGllbnRHdGs6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhTdHJpbmdWaWV3IHRl
eHQsIGludCogbWlzc3BlbGxpbmdMb2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkKLXsK
LSAgICB3ZWJraXRfc3BlbGxfY2hlY2tlcl9jaGVja19zcGVsbGluZ19vZl9zdHJpbmcobV9zcGVs
bENoZWNrZXIuZ2V0KCksIHRleHQudG9TdHJpbmdXaXRob3V0Q29weWluZygpLnV0ZjgoKS5kYXRh
KCksIG1pc3NwZWxsaW5nTG9jYXRpb24sIG1pc3NwZWxsaW5nTGVuZ3RoKTsKLX0KLQotU3RyaW5n
IFRleHRDaGVja2VyQ2xpZW50R3RrOjpnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVs
bGVkV29yZChjb25zdCBTdHJpbmcmIGlucHV0V29yZCkKLXsKLSAgICByZXR1cm4gd2Via2l0X3Nw
ZWxsX2NoZWNrZXJfZ2V0X2F1dG9jb3JyZWN0X3N1Z2dlc3Rpb25zX2Zvcl9taXNzcGVsbGVkX3dv
cmQobV9zcGVsbENoZWNrZXIuZ2V0KCksIGlucHV0V29yZC51dGY4KCkuZGF0YSgpKTsKLX0KLQot
dm9pZCBUZXh0Q2hlY2tlckNsaWVudEd0azo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoU3RyaW5nVmll
dywgVmVjdG9yPEdyYW1tYXJEZXRhaWw+JiwgaW50KiwgaW50KikKLXsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotfQotCi12b2lkIFRleHRDaGVja2VyQ2xpZW50R3RrOjpnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8
U3RyaW5nPiYgZ3Vlc3NlcykKLXsKLSAgICBjaGFyKiogc3VnZ2VzdGlvbnMgPSB3ZWJraXRfc3Bl
bGxfY2hlY2tlcl9nZXRfZ3Vlc3Nlc19mb3Jfd29yZChtX3NwZWxsQ2hlY2tlci5nZXQoKSwgd29y
ZC51dGY4KCkuZGF0YSgpLCBjb250ZXh0LnV0ZjgoKS5kYXRhKCkpOwotICAgIGlmICghc3VnZ2Vz
dGlvbnMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGd1ZXNzZXMuY2xlYXIoKTsKLQotICAgIGZv
ciAoaW50IGkgPSAwOyBzdWdnZXN0aW9uc1tpXTsgaSsrKQotICAgICAgICBndWVzc2VzLmFwcGVu
ZChTdHJpbmc6OmZyb21VVEY4KHN1Z2dlc3Rpb25zW2ldKSk7Ci0KLSAgICBnX3N0cmZyZWV2KHN1
Z2dlc3Rpb25zKTsKLX0KLQotdm9pZCBUZXh0Q2hlY2tlckNsaWVudEd0azo6dXBkYXRlU3BlbGxD
aGVja2luZ0xhbmd1YWdlKGNvbnN0IGNoYXIqIHNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMpCi17Ci0g
ICAgd2Via2l0X3NwZWxsX2NoZWNrZXJfdXBkYXRlX3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyht
X3NwZWxsQ2hlY2tlci5nZXQoKSwgc3BlbGxDaGVja2luZ0xhbmd1YWdlcyk7Ci19Ci19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVu
dEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGll
bnRHdGsuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTMyNmE4MS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0
ay5oCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KLSAqIENvcHlyaWdo
dCAoQykgMjAwNiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDEwIE1hcnRpbiBSb2JpbnNvbiA8bXJv
Ymluc29uQHdlYmtpdC5vcmc+Ci0gKgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUZXh0Q2hlY2tlckNs
aWVudEd0a19oCi0jZGVmaW5lIFRleHRDaGVja2VyQ2xpZW50R3RrX2gKLQotI2luY2x1ZGUgIlRl
eHRDaGVja2VyQ2xpZW50LmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotCi10
eXBlZGVmIHN0cnVjdCBfV2ViS2l0U3BlbGxDaGVja2VyIFdlYktpdFNwZWxsQ2hlY2tlcjsKLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFRleHRDaGVja2VyQ2xpZW50R3RrIDogcHVibGlj
IFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFRleHRD
aGVja2VyQ2xpZW50R3RrKFdlYktpdFNwZWxsQ2hlY2tlciopOwotICAgICAgICB+VGV4dENoZWNr
ZXJDbGllbnRHdGsoKTsKLSAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEVyYXNlTWFya2Vyc0Fm
dGVyQ2hhbmdlU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRDaGVja2luZ1R5cGUpIGNvbnN0IG92ZXJy
aWRlOwotICAgICAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25z
dCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOwotICAgICAgICB2aXJ0dWFsIHZvaWQgbGVhcm5Xb3Jk
KGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjaGVj
a1NwZWxsaW5nT2ZTdHJpbmcoU3RyaW5nVmlldywgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBp
bnQqIG1pc3NwZWxsaW5nTGVuZ3RoKSBvdmVycmlkZTsKLSAgICAgICAgdmlydHVhbCBXVEY6OlN0
cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6
OlN0cmluZyYpIG92ZXJyaWRlOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZT
dHJpbmcoU3RyaW5nVmlldywgV1RGOjpWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBp
bnQqIGJhZEdyYW1tYXJMb2NhdGlvbiwgaW50KiBiYWRHcmFtbWFyTGVuZ3RoKSBvdmVycmlkZTsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5n
JiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJp
bmc+JiBndWVzc2VzKSBvdmVycmlkZTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0
Pikgb3ZlcnJpZGUgeyB9Ci0KLSAgICAgICAgdm9pZCB1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3Vh
Z2UoY29uc3QgY2hhciopOwotICAgIHByaXZhdGU6Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0U3Bl
bGxDaGVja2VyPiBtX3NwZWxsQ2hlY2tlcjsKLSAgICB9OwotfQotI2VuZGlmCi0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1VzZXJNZWRpYUNsaWVudEd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Vc2VyTWVkaWFDbGllbnRHdGsu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2M0MGY1Li4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1VzZXJNZWRpYUNsaWVudEd0ay5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJVc2VyTWVkaWFDbGllbnRHdGsuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJVc2VyTWVkaWFSZXF1
ZXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotVXNlck1lZGlhQ2xpZW50R3RrOjpVc2VyTWVkaWFDbGllbnRHdGsoKQotewotfQotCi1Vc2Vy
TWVkaWFDbGllbnRHdGs6On5Vc2VyTWVkaWFDbGllbnRHdGsoKQotewotfQotCi12b2lkIFVzZXJN
ZWRpYUNsaWVudEd0azo6cGFnZURlc3Ryb3llZCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LX0KLQotdm9pZCBVc2VyTWVkaWFDbGllbnRHdGs6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQ
dHI8VXNlck1lZGlhUmVxdWVzdD4pCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9p
ZCBVc2VyTWVkaWFDbGllbnRHdGs6OmNhbmNlbFJlcXVlc3QoVXNlck1lZGlhUmVxdWVzdCopCi17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0OwotCi0j
ZW5kaWYgLy8gTUVESUFfU1RSRUFNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9Vc2VyTWVkaWFDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L1VzZXJNZWRpYUNsaWVudEd0ay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4NTRmZDhlLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L1VzZXJNZWRpYUNsaWVudEd0ay5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICoKLSAq
LwotI2lmbmRlZiBVc2VyTWVkaWFDbGllbnRHdGtfaAotI2RlZmluZSBVc2VyTWVkaWFDbGllbnRH
dGtfaAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIlVzZXJNZWRpYUNs
aWVudC5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgVXNlck1lZGlhQ2xpZW50R3Rr
IDogcHVibGljIFdlYkNvcmU6OlVzZXJNZWRpYUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgVXNlck1l
ZGlhQ2xpZW50R3RrKCk7Ci0gICAgdmlydHVhbCB+VXNlck1lZGlhQ2xpZW50R3RrKCk7Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
UGVybWlzc2lvbihXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdD4pOwot
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Qq
KTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKLQotI2VuZGlmIC8vIFVzZXJNZWRpYUNsaWVudEd0a19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0lucHV0TWV0aG9k
RmlsdGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjMyZmIyNC4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3SW5wdXRNZXRo
b2RGaWx0ZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IldlYlZpZXdJbnB1dE1ldGhvZEZpbHRlci5oIgotCi0jaW5jbHVkZSAiRWRpdG9yLmgiCi0jaW5j
bHVkZSAiRXZlbnRIYW5kbGVyLmgiCi0jaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKLSNpbmNs
dWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1G
cmFtZSogV2ViVmlld0lucHV0TWV0aG9kRmlsdGVyOjpmb2N1c2VkT3JNYWluRnJhbWUoKQotewot
ICAgIEFTU0VSVChtX3dlYlZpZXcpOwotICAgIFBhZ2UqIHBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7
Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiAmcGFnZS0+
Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci19Ci0KLXZvaWQgV2ViVmll
d0lucHV0TWV0aG9kRmlsdGVyOjpzZXRXZWJWaWV3KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17
Ci0gICAgbV93ZWJWaWV3ID0gd2ViVmlldzsKLSAgICBHdGtJbnB1dE1ldGhvZEZpbHRlcjo6c2V0
V2lkZ2V0KEdUS19XSURHRVQod2ViVmlldykpOwotfQotCi1ib29sIFdlYlZpZXdJbnB1dE1ldGhv
ZEZpbHRlcjo6Y2FuRWRpdCgpCi17Ci0gICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZy
YW1lKCk7Ci0gICAgcmV0dXJuIGZyYW1lICYmIGZyYW1lLT5lZGl0b3IoKS5jYW5FZGl0KCk7Ci19
Ci0KLWJvb2wgV2ViVmlld0lucHV0TWV0aG9kRmlsdGVyOjpzZW5kU2ltcGxlS2V5RXZlbnQoR2Rr
RXZlbnRLZXkqIGV2ZW50LCBXVEY6OlN0cmluZyBzaW1wbGVTdHJpbmcsIEV2ZW50RmFrZWRGb3JD
b21wb3NpdGlvbikKLXsKLSAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQgcGxhdGZvcm1FdmVudChl
dmVudCwgQ29tcG9zaXRpb25SZXN1bHRzKHNpbXBsZVN0cmluZykpOwotICAgIHJldHVybiBmb2N1
c2VkT3JNYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkua2V5RXZlbnQocGxhdGZvcm1FdmVudCk7
Ci19Ci0KLWJvb2wgV2ViVmlld0lucHV0TWV0aG9kRmlsdGVyOjpzZW5kS2V5RXZlbnRXaXRoQ29t
cG9zaXRpb25SZXN1bHRzKEdka0V2ZW50S2V5KiBldmVudCwgUmVzdWx0c1RvU2VuZCByZXN1bHRz
VG9TZW5kLCBFdmVudEZha2VkRm9yQ29tcG9zaXRpb24pCi17Ci0gICAgUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50IHBsYXRmb3JtRXZlbnQoZXZlbnQsIENvbXBvc2l0aW9uUmVzdWx0cyhDb21wb3NpdGlv
blJlc3VsdHM6OldpbGxTZW5kQ29tcG9zaXRpb25SZXN1bHRzU29vbikpOwotICAgIGlmICghZm9j
dXNlZE9yTWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLmtleUV2ZW50KHBsYXRmb3JtRXZlbnQp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAocmVzdWx0c1RvU2VuZCAmIENvbXBv
c2l0aW9uICYmICFtX2NvbmZpcm1lZENvbXBvc2l0aW9uLmlzTnVsbCgpKQotICAgICAgICBjb25m
aXJtQ29tcG9zaXRpb25UZXh0KG1fY29uZmlybWVkQ29tcG9zaXRpb24pOwotICAgIGlmIChyZXN1
bHRzVG9TZW5kICYgUHJlZWRpdCAmJiAhbV9wcmVlZGl0LmlzTnVsbCgpKQotICAgICAgICBzZXRQ
cmVlZGl0KG1fcHJlZWRpdCwgbV9jdXJzb3JPZmZzZXQpOwotICAgIHJldHVybiB0cnVlOwotfQot
Ci12b2lkIFdlYlZpZXdJbnB1dE1ldGhvZEZpbHRlcjo6Y29uZmlybUNvbXBvc2l0aW9uVGV4dChT
dHJpbmcgdGV4dCkKLXsKLSAgICBGcmFtZSogZnJhbWUgPSBmb2N1c2VkT3JNYWluRnJhbWUoKTsK
LSAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+ZWRpdG9yKCkuY2FuRWRpdCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpZiAodGV4dC5pc051bGwoKSkgewotICAgICAgICBjb25maXJtQ3VycmVu
dENvbXBvc2l0aW9uKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgZnJhbWUtPmVkaXRv
cigpLmNvbmZpcm1Db21wb3NpdGlvbihtX2NvbmZpcm1lZENvbXBvc2l0aW9uKTsKLX0KLQotdm9p
ZCBXZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXI6OmNvbmZpcm1DdXJyZW50Q29tcG9zaXRpb24oKQot
ewotICAgIEZyYW1lKiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIGlmICghZnJh
bWUgfHwgIWZyYW1lLT5lZGl0b3IoKS5jYW5FZGl0KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBm
cmFtZS0+ZWRpdG9yKCkuY29uZmlybUNvbXBvc2l0aW9uKCk7Ci19Ci0KLXZvaWQgV2ViVmlld0lu
cHV0TWV0aG9kRmlsdGVyOjpjYW5jZWxDdXJyZW50Q29tcG9zaXRpb24oKQotewotICAgIEZyYW1l
KiBmcmFtZSA9IGZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUgfHwgIWZyYW1l
LT5lZGl0b3IoKS5jYW5FZGl0KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBmcmFtZS0+ZWRpdG9y
KCkuY2FuY2VsQ29tcG9zaXRpb24oKTsKLX0KLQotdm9pZCBXZWJWaWV3SW5wdXRNZXRob2RGaWx0
ZXI6OnNldFByZWVkaXQoU3RyaW5nIG5ld1ByZWVkaXQsIGludCAvKiBjdXJzb3JPZmZzZXQgKi8p
Ci17Ci0gICAgRnJhbWUqIGZyYW1lID0gZm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFm
cmFtZSB8fCAhZnJhbWUtPmVkaXRvcigpLmNhbkVkaXQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgLy8gVE9ETzogV2Ugc2hvdWxkIHBhcnNlIHRoZSBQYW5nb0F0dHJMaXN0IHRoYXQgd2UgZ2V0
IGZyb20gdGhlIElNIGNvbnRleHQgaGVyZS4KLSAgICBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxp
bmU+IHVuZGVybGluZXM7Ci0gICAgdW5kZXJsaW5lcy5hcHBlbmQoQ29tcG9zaXRpb25VbmRlcmxp
bmUoMCwgbmV3UHJlZWRpdC5sZW5ndGgoKSwgQ29sb3IoMSwgMSwgMSksIGZhbHNlKSk7Ci0gICAg
ZnJhbWUtPmVkaXRvcigpLnNldENvbXBvc2l0aW9uKG5ld1ByZWVkaXQsIHVuZGVybGluZXMsIG1f
Y3Vyc29yT2Zmc2V0LCBtX2N1cnNvck9mZnNldCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0lu
cHV0TWV0aG9kRmlsdGVyLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9XZWJW
aWV3SW5wdXRNZXRob2RGaWx0ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjA3
N2FlMC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9XZWJW
aWV3SW5wdXRNZXRob2RGaWx0ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBXZWJWaWV3SW5wdXRN
ZXRob2RGaWx0ZXJfaAotI2RlZmluZSBXZWJWaWV3SW5wdXRNZXRob2RGaWx0ZXJfaAotCi0jaW5j
bHVkZSAiR3RrSW5wdXRNZXRob2RGaWx0ZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xh
c3MgRnJhbWU7Ci19Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3IFdlYktpdFdlYlZp
ZXc7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJWaWV3SW5wdXRNZXRob2RGaWx0
ZXIgOiBwdWJsaWMgV2ViQ29yZTo6R3RrSW5wdXRNZXRob2RGaWx0ZXIgewotcHVibGljOgotICAg
IHZvaWQgc2V0V2ViVmlldyhXZWJLaXRXZWJWaWV3Kik7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0
dWFsIGJvb2wgc2VuZFNpbXBsZUtleUV2ZW50KEdka0V2ZW50S2V5KiwgV1RGOjpTdHJpbmcgZXZl
bnRTdHJpbmcsIEV2ZW50RmFrZWRGb3JDb21wb3NpdGlvbik7Ci0gICAgdmlydHVhbCBib29sIHNl
bmRLZXlFdmVudFdpdGhDb21wb3NpdGlvblJlc3VsdHMoR2RrRXZlbnRLZXkqLCBSZXN1bHRzVG9T
ZW5kLCBFdmVudEZha2VkRm9yQ29tcG9zaXRpb24pOwotICAgIHZpcnR1YWwgYm9vbCBjYW5FZGl0
KCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbmZpcm1Db21wb3NpdGlvblRleHQoU3RyaW5nKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29uZmlybUN1cnJlbnRDb21wb3NpdGlvbigpOwotICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxDdXJyZW50Q29tcG9zaXRpb24oKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJl
ZWRpdChTdHJpbmcsIGludCBjdXJzb3JPZmZzZXQpOwotCi1wcml2YXRlOgotICAgIFdlYkNvcmU6
OkZyYW1lKiBmb2N1c2VkT3JNYWluRnJhbWUoKTsKLQotICAgIFdlYktpdFdlYlZpZXcqIG1fd2Vi
VmlldzsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViVmlld0lu
cHV0TWV0aG9kRmlsdGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL2RvY3Mvd2Vi
a2l0ZW52aXJvbm1lbnQueG1sIGIvU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRlbnZpcm9u
bWVudC54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4ZTJhOGMuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRlbnZpcm9ubWVudC54bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTwhRE9DVFlQ
RSByZWZlbnRyeSBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuMS4yLy9FTiIg
Ci0gICAgICAgICAgICAgICAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80
LjEuMi9kb2Nib29reC5kdGQiPgotPHJlZmVudHJ5IGlkPSJ3ZWJraXQtZW52aXJvbm1lbnQiPgot
PHJlZm1ldGE+Ci08cmVmZW50cnl0aXRsZT5FbnZpcm9ubWVudDwvcmVmZW50cnl0aXRsZT4KLTxt
YW52b2xudW0+NzwvbWFudm9sbnVtPgotPHJlZm1pc2NpbmZvPldFQktJVEdUSyBMaWJyYXJ5PC9y
ZWZtaXNjaW5mbz4KLTwvcmVmbWV0YT4KLQotPHJlZm5hbWVkaXY+Ci08cmVmbmFtZT5FbnZpcm9u
bWVudDwvcmVmbmFtZT4KLTxyZWZwdXJwb3NlPkhvdyBkb2VzIHRoZSBlbnZpcm9ubWVudCBhZmZl
Y3QgYXBwbGljYXRpb25zIHRoYXQgdXNlIFdlYktpdEdUSys8L3JlZnB1cnBvc2U+Ci08L3JlZm5h
bWVkaXY+Ci0KLTxyZWZzZWN0Mj4KLTx0aXRsZT5Mb2dnaW5nPC90aXRsZT4KLQotPHBhcmE+Ci1Z
b3UgY2FuIG1ha2UgV2ViS2l0R1RLKyBsb2cgc29tZSBvZiB3aGF0IGl0IGlzIGRvaW5nIGludGVy
bmFsbHkgYnkKLXVzaW5nIHRoZSA8bGl0ZXJhbD5XRUJLSVRfREVCVUc8L2xpdGVyYWw+IGVudmly
b25tZW50IHZhcmlhYmxlLiBJdAotdGFrZXMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBuYW1l
cywgcmVwcmVzZW50aW5nIHRoZSB2YXJpb3VzCi1hc3BlY3RzIG9mIHRoZSB3b3JrIHRoZSBsaWJy
YXJ5IHBlcmZvcm1zLiBOb3RpY2UgdGhhdCBtb3N0IG9mIHRoZQotbG9nZ2luZyBpcyBvbmx5IGRv
bmUgaW4gZGVidWcgYnVpbGRzICh0aGF0IHlvdSBnZXQgd2hlbiB5b3UgcGFzcwotPGxpdGVyYWw+
LS1lbmFibGUtZGVidWc8L2xpdGVyYWw+IHRvIHRoZSA8bGl0ZXJhbD5jb25maWd1cmU8L2xpdGVy
YWw+Ci1zY3JpcHQpLgotPC9wYXJhPgotCi08cGFyYT4KLUEgbGlzdCBvZiBwb3NzaWJsZSB2YWx1
ZXMgZm9yIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBmb2xsb3dzOgotPC9wYXJhPgotCi08dmFy
aWFibGVsaXN0PgotICAgIDx2YXJsaXN0ZW50cnk+PHRlcm0+QmFja0ZvcndhcmQ8L3Rlcm0+PC92
YXJsaXN0ZW50cnk+Ci0gICAgPHZhcmxpc3RlbnRyeT48dGVybT5FZGl0aW5nPC90ZXJtPjwvdmFy
bGlzdGVudHJ5PgotICAgIDx2YXJsaXN0ZW50cnk+PHRlcm0+RXZlbnRzPC90ZXJtPjwvdmFybGlz
dGVudHJ5PgotICAgIDx2YXJsaXN0ZW50cnk+PHRlcm0+RnJhbWVzPC90ZXJtPjwvdmFybGlzdGVu
dHJ5PgotICAgIDx2YXJsaXN0ZW50cnk+PHRlcm0+RlRQPC90ZXJtPjwvdmFybGlzdGVudHJ5Pgot
ICAgIDx2YXJsaXN0ZW50cnk+PHRlcm0+SGlzdG9yeTwvdGVybT48L3Zhcmxpc3RlbnRyeT4KLSAg
ICA8dmFybGlzdGVudHJ5Pjx0ZXJtPkljb25EYXRhYmFzZTwvdGVybT48L3Zhcmxpc3RlbnRyeT4K
LSAgICA8dmFybGlzdGVudHJ5Pjx0ZXJtPkxvYWRpbmc8L3Rlcm0+PC92YXJsaXN0ZW50cnk+Ci0g
ICAgPHZhcmxpc3RlbnRyeT48dGVybT5NZWRpYTwvdGVybT48L3Zhcmxpc3RlbnRyeT4KLSAgICA8
dmFybGlzdGVudHJ5Pjx0ZXJtPk5ldHdvcms8L3Rlcm0+PC92YXJsaXN0ZW50cnk+Ci0gICAgPHZh
cmxpc3RlbnRyeT48dGVybT5Ob3RZZXRJbXBsZW1lbnRlZDwvdGVybT48L3Zhcmxpc3RlbnRyeT4K
LSAgICA8dmFybGlzdGVudHJ5Pjx0ZXJtPlBhZ2VDYWNoZTwvdGVybT48L3Zhcmxpc3RlbnRyeT4K
LSAgICA8dmFybGlzdGVudHJ5Pjx0ZXJtPlBsYXRmb3JtTGVha3M8L3Rlcm0+PC92YXJsaXN0ZW50
cnk+Ci0gICAgPHZhcmxpc3RlbnRyeT48dGVybT5SZXNvdXJjZUxvYWRpbmc8L3Rlcm0+PC92YXJs
aXN0ZW50cnk+Ci0gICAgPHZhcmxpc3RlbnRyeT48dGVybT5BbmltYXRpb25zPC90ZXJtPjwvdmFy
bGlzdGVudHJ5PgotICAgIDx2YXJsaXN0ZW50cnk+PHRlcm0+UGx1Z2luczwvdGVybT48L3Zhcmxp
c3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5Pjx0ZXJtPlBvcHVwQmxvY2tpbmc8L3Rlcm0+PC92
YXJsaXN0ZW50cnk+Ci0gICAgPHZhcmxpc3RlbnRyeT48dGVybT5Qcm9ncmVzczwvdGVybT48L3Zh
cmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5Pjx0ZXJtPlNwZWxsaW5nQW5kR3JhbW1hcjwv
dGVybT48L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5Pjx0ZXJtPlNRTERhdGFiYXNl
PC90ZXJtPjwvdmFybGlzdGVudHJ5PgotICAgIDx2YXJsaXN0ZW50cnk+PHRlcm0+U3RvcmFnZUFQ
STwvdGVybT48L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5Pjx0ZXJtPlRocmVhZGlu
ZzwvdGVybT48L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5Pjx0ZXJtPkZpbGVBUEk8
L3Rlcm0+PC92YXJsaXN0ZW50cnk+Ci0gICAgPHZhcmxpc3RlbnRyeT48dGVybT5XZWJBdWRpbzwv
dGVybT48L3Zhcmxpc3RlbnRyeT4KLSAgICA8dmFybGlzdGVudHJ5Pjx0ZXJtPkNvbXBvc2l0aW5n
PC90ZXJtPjwvdmFybGlzdGVudHJ5PgotICAgIDx2YXJsaXN0ZW50cnk+PHRlcm0+R2FtZXBhZDwv
dGVybT48L3Zhcmxpc3RlbnRyeT4KLTwvdmFyaWFibGVsaXN0PgotCi08L3JlZnNlY3QyPgotCi08
L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGst
ZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGstZG9jcy5zZ21sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjEwNjUyLi4wMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL2RvY3Mvd2Via2l0Z3RrLWRvY3Muc2dtbAorKysgL2Rldi9udWxsCkBAIC0x
LDEzNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTwhRE9DVFlQRSBib29rIFBVQkxJ
QyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC4xLjIvL0VOIgotICAgICAgICAgICAgICAg
Imh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC4xLjIvZG9jYm9va3guZHRk
IiBbCi08IUVOVElUWSB2ZXJzaW9uIFNZU1RFTSAidmVyc2lvbi54bWwiPgotXT4KLTxib29rIGlk
PSJpbmRleCIgeG1sbnM6eGk9Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvWEluY2x1ZGUiPgotICA8
Ym9va2luZm8+Ci0gICAgPHRpdGxlPldlYktpdEdUSysgUmVmZXJlbmNlIE1hbnVhbDwvdGl0bGU+
Ci0gICAgPHJlbGVhc2VpbmZvPmZvciBXZWJLaXRHVEsrICZ2ZXJzaW9uOzwvcmVsZWFzZWluZm8+
Ci0gIDwvYm9va2luZm8+Ci0KLSAgPGNoYXB0ZXI+Ci0gICAgPHRpdGxlPkdsb2JhbCBmdW5jdGlv
bnM8L3RpdGxlPgotICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC93ZWJraXQueG1sIi8+Ci0gIDwv
Y2hhcHRlcj4KLQotICA8Y2hhcHRlcj4KLSAgICA8dGl0bGU+Q2xhc3MgT3ZlcnZpZXc8L3RpdGxl
PgotICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC93ZWJraXR3ZWJ2aWV3LnhtbCIvPgotICAgIDx4
aTppbmNsdWRlIGhyZWY9InhtbC93ZWJraXR3ZWJmcmFtZS54bWwiLz4KLSAgICA8eGk6aW5jbHVk
ZSBocmVmPSJ4bWwvd2Via2l0d2Vic2V0dGluZ3MueG1sIi8+Ci0gICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL3dlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC54bWwiLz4KLSAgICA8eGk6aW5jbHVkZSBo
cmVmPSJ4bWwvd2Via2l0d2ViaGlzdG9yeWl0ZW0ueG1sIi8+Ci0gICAgPHhpOmluY2x1ZGUgaHJl
Zj0ieG1sL3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb24ueG1sIi8+Ci0gICAgPHhpOmluY2x1ZGUg
aHJlZj0ieG1sL3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLnhtbCIvPgotICAgIDx4aTppbmNsdWRl
IGhyZWY9InhtbC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLnhtbCIvPgotICAgIDx4
aTppbmNsdWRlIGhyZWY9InhtbC93ZWJraXRuZXR3b3JrcmVxdWVzdC54bWwiLz4KLSAgICA8eGk6
aW5jbHVkZSBocmVmPSJ4bWwvd2Via2l0bmV0d29ya3Jlc3BvbnNlLnhtbCIvPgotICAgIDx4aTpp
bmNsdWRlIGhyZWY9InhtbC93ZWJraXR3ZWJpbnNwZWN0b3IueG1sIi8+Ci0gICAgPHhpOmluY2x1
ZGUgaHJlZj0ieG1sL3dlYmtpdHdlYmRhdGFiYXNlLnhtbCIvPgotICAgIDx4aTppbmNsdWRlIGhy
ZWY9InhtbC93ZWJraXR3ZWJkYXRhc291cmNlLnhtbCIvPgotICAgIDx4aTppbmNsdWRlIGhyZWY9
InhtbC93ZWJraXR3ZWJyZXNvdXJjZS54bWwiLz4KLSAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwv
d2Via2l0ZG93bmxvYWQueG1sIi8+Ci0gICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL3dlYmtpdHZp
ZXdwb3J0YXR0cmlidXRlcy54bWwiLz4KLSAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvd2Via2l0
aGl0dGVzdHJlc3VsdC54bWwiLz4KLSAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvd2Via2l0d2Vi
cGx1Z2luLnhtbCIvPgotICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC93ZWJraXR3ZWJwbHVnaW5k
YXRhYmFzZS54bWwiLz4KLSAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvd2Via2l0c291cGF1dGhk
aWFsb2cueG1sIi8+Ci0gICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL3dlYmtpdHNlY3VyaXR5b3Jp
Z2luLnhtbCIvPgotICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC93ZWJraXR3ZWJ3aW5kb3dmZWF0
dXJlcy54bWwiLz4KLSAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvd2Via2l0aWNvbmRhdGFiYXNl
LnhtbCIvPgotICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC93ZWJraXRzcGVsbGNoZWNrZXIueG1s
Ii8+Ci0gICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL3dlYmtpdGZhdmljb25kYXRhYmFzZS54bWwi
Lz4KLSAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvd2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0Lnht
bCIvPgotICA8L2NoYXB0ZXI+Ci0KLSAgPGNoYXB0ZXI+Ci0gICAgPHRpdGxlPlJ1bm5pbmcgV2Vi
S2l0R1RLKy1iYXNlZCBwcm9ncmFtczwvdGl0bGU+Ci0gICAgPHhpOmluY2x1ZGUgaHJlZj0id2Vi
a2l0ZW52aXJvbm1lbnQueG1sIi8+Ci0gIDwvY2hhcHRlcj4KLQotICA8aW5kZXggaWQ9ImluZGV4
LWFsbCI+Ci0gICAgPHRpdGxlPkluZGV4PC90aXRsZT4KLSAgPC9pbmRleD4KLSAgPGluZGV4IGlk
PSJpbmRleC1kZXByZWNhdGVkIiByb2xlPSJkZXByZWNhdGVkIj4KLSAgICA8dGl0bGU+SW5kZXgg
b2YgZGVwcmVjYXRlZCBzeW1ib2xzPC90aXRsZT4KLSAgPC9pbmRleD4KLSAgPGluZGV4IGlkPSJp
bmRleC0xLjAuMSIgcm9sZT0iMS4wLjEiPgotICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9s
cyBpbiAxLjAuMTwvdGl0bGU+Ci0gIDwvaW5kZXg+Ci0gIDxpbmRleCBpZD0iaW5kZXgtMS4wLjIi
IHJvbGU9IjEuMC4yIj4KLSAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMS4wLjI8
L3RpdGxlPgotICA8L2luZGV4PgotICA8aW5kZXggaWQ9ImluZGV4LTEuMC4zIiByb2xlPSIxLjAu
MyI+Ci0gICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDEuMC4zPC90aXRsZT4KLSAg
PC9pbmRleD4KLSAgPGluZGV4IGlkPSJpbmRleC0xLjEuMSIgcm9sZT0iMS4xLjEiPgotICAgIDx0
aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAxLjEuMTwvdGl0bGU+Ci0gIDwvaW5kZXg+Ci0g
IDxpbmRleCBpZD0iaW5kZXgtMS4xLjIiIHJvbGU9IjEuMS4yIj4KLSAgICA8dGl0bGU+SW5kZXgg
b2YgbmV3IHN5bWJvbHMgaW4gMS4xLjI8L3RpdGxlPgotICA8L2luZGV4PgotICA8aW5kZXggaWQ9
ImluZGV4LTEuMS4zIiByb2xlPSIxLjEuMyI+Ci0gICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1i
b2xzIGluIDEuMS4zPC90aXRsZT4KLSAgPC9pbmRleD4KLSAgPGluZGV4IGlkPSJpbmRleC0xLjEu
NCIgcm9sZT0iMS4xLjQiPgotICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAxLjEu
NDwvdGl0bGU+Ci0gIDwvaW5kZXg+Ci0gIDxpbmRleCBpZD0iaW5kZXgtMS4xLjUiIHJvbGU9IjEu
MS41Ij4KLSAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMS4xLjU8L3RpdGxlPgot
ICA8L2luZGV4PgotICA8aW5kZXggaWQ9ImluZGV4LTEuMS42IiByb2xlPSIxLjEuNiI+Ci0gICAg
PHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDEuMS42PC90aXRsZT4KLSAgPC9pbmRleD4K
LSAgPGluZGV4IGlkPSJpbmRleC0xLjEuNyIgcm9sZT0iMS4xLjciPgotICAgIDx0aXRsZT5JbmRl
eCBvZiBuZXcgc3ltYm9scyBpbiAxLjEuNzwvdGl0bGU+Ci0gIDwvaW5kZXg+Ci0gIDxpbmRleCBp
ZD0iaW5kZXgtMS4xLjgiIHJvbGU9IjEuMS44Ij4KLSAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5
bWJvbHMgaW4gMS4xLjg8L3RpdGxlPgotICA8L2luZGV4PgotICA8aW5kZXggaWQ9ImluZGV4LTEu
MS4xMCIgcm9sZT0iMS4xLjEwIj4KLSAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4g
MS4xLjEwPC90aXRsZT4KLSAgPC9pbmRleD4KLSAgPGluZGV4IGlkPSJpbmRleC0xLjEuMTEiIHJv
bGU9IjEuMS4xMSI+Ci0gICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDEuMS4xMTwv
dGl0bGU+Ci0gIDwvaW5kZXg+Ci0gIDxpbmRleCBpZD0iaW5kZXgtMS4xLjEzIiByb2xlPSIxLjEu
MTMiPgotICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAxLjEuMTM8L3RpdGxlPgot
ICA8L2luZGV4PgotICA8aW5kZXggaWQ9ImluZGV4LTEuMS4xNCIgcm9sZT0iMS4xLjE0Ij4KLSAg
ICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMS4xLjE0PC90aXRsZT4KLSAgPC9pbmRl
eD4KLSAgPGluZGV4IGlkPSJpbmRleC0xLjEuMTUiIHJvbGU9IjEuMS4xNSI+Ci0gICAgPHRpdGxl
PkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDEuMS4xNTwvdGl0bGU+Ci0gIDwvaW5kZXg+Ci0gIDxp
bmRleCBpZD0iaW5kZXgtMS4xLjE2IiByb2xlPSIxLjEuMTYiPgotICAgIDx0aXRsZT5JbmRleCBv
ZiBuZXcgc3ltYm9scyBpbiAxLjEuMTY8L3RpdGxlPgotICA8L2luZGV4PgotICA8aW5kZXggaWQ9
ImluZGV4LTEuMS4xNyIgcm9sZT0iMS4xLjE3Ij4KLSAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5
bWJvbHMgaW4gMS4xLjE3PC90aXRsZT4KLSAgPC9pbmRleD4KLSAgPGluZGV4IGlkPSJpbmRleC0x
LjEuMTgiIHJvbGU9IjEuMS4xOCI+Ci0gICAgPHRpdGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGlu
IDEuMS4xODwvdGl0bGU+Ci0gIDwvaW5kZXg+Ci0gIDxpbmRleCBpZD0iaW5kZXgtMS4xLjIwIiBy
b2xlPSIxLjEuMjAiPgotICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAxLjEuMjA8
L3RpdGxlPgotICA8L2luZGV4PgotICA8aW5kZXggaWQ9ImluZGV4LTEuMS4yMyIgcm9sZT0iMS4x
LjIzIj4KLSAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMS4xLjIzPC90aXRsZT4K
LSAgPC9pbmRleD4KLSAgPGluZGV4IGlkPSJpbmRleC0xLjMuMSIgcm9sZT0iMS4zLjEiPgotICAg
IDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAxLjMuMTwvdGl0bGU+Ci0gIDwvaW5kZXg+
Ci0gIDxpbmRleCBpZD0iaW5kZXgtMS4zLjIiIHJvbGU9IjEuMy4yIj4KLSAgICA8dGl0bGU+SW5k
ZXggb2YgbmV3IHN5bWJvbHMgaW4gMS4zLjI8L3RpdGxlPgotICA8L2luZGV4PgotICA8aW5kZXgg
aWQ9ImluZGV4LTEuMy4zIiByb2xlPSIxLjMuMyI+Ci0gICAgPHRpdGxlPkluZGV4IG9mIG5ldyBz
eW1ib2xzIGluIDEuMy4zPC90aXRsZT4KLSAgPC9pbmRleD4KLSAgPGluZGV4IGlkPSJpbmRleC0x
LjMuNCIgcm9sZT0iMS4zLjQiPgotICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAx
LjMuNDwvdGl0bGU+Ci0gIDwvaW5kZXg+Ci0gIDxpbmRleCBpZD0iaW5kZXgtMS4zLjgiIHJvbGU9
IjEuMy44Ij4KLSAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMS4zLjg8L3RpdGxl
PgotICA8L2luZGV4PgotICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYW5ub3RhdGlvbi1nbG9zc2Fy
eS54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KLTwvYm9vaz4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL2RvY3Mvd2Via2l0Z3RrLW92ZXJyaWRlcy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9kb2NzL3dlYmtpdGd0ay1vdmVycmlkZXMudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlNjlkZTI5Li4wMDAwMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9kb2NzL3dlYmtpdGd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L2d0ay9kb2Nz
L3dlYmtpdGd0ay1zZWN0aW9ucy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQy
NmVmNzUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvZG9jcy93ZWJraXRndGstc2Vj
dGlvbnMudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNzUzICswLDAgQEAKLTxTRUNUSU9OPgotPEZJ
TEU+d2Via2l0d2Vic2V0dGluZ3M8L0ZJTEU+Ci08VElUTEU+V2ViS2l0V2ViU2V0dGluZ3M8L1RJ
VExFPgotV2ViS2l0V2ViU2V0dGluZ3MKLVdlYktpdEVkaXRpbmdCZWhhdmlvcgotd2Via2l0X3dl
Yl9zZXR0aW5nc19jb3B5Ci13ZWJraXRfd2ViX3NldHRpbmdzX25ldwotd2Via2l0X3dlYl9zZXR0
aW5nc19nZXRfdXNlcl9hZ2VudAotPFNVQlNFQ1RJT04gU3RhbmRhcmQ+Ci1XRUJLSVRfV0VCX1NF
VFRJTkdTCi1XRUJLSVRfSVNfV0VCX1NFVFRJTkdTCi1XRUJLSVRfVFlQRV9XRUJfU0VUVElOR1MK
LVdFQktJVF9XRUJfU0VUVElOR1NfQ0xBU1MKLVdFQktJVF9JU19XRUJfU0VUVElOR1NfQ0xBU1MK
LVdFQktJVF9XRUJfU0VUVElOR1NfR0VUX0NMQVNTCi08U1VCU0VDVElPTiBQcml2YXRlPgotV2Vi
S2l0V2ViU2V0dGluZ3NDbGFzcwotV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlCi13ZWJraXRfd2Vi
X3NldHRpbmdzX2dldF90eXBlCi08L1NFQ1RJT04+Ci0KLTxTRUNUSU9OPgotPEZJTEU+d2Via2l0
d2ViYmFja2ZvcndhcmRsaXN0PC9GSUxFPgotPFRJVExFPldlYktpdFdlYkJhY2tGb3J3YXJkTGlz
dDwvVElUTEU+Ci1XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QKLXdlYmtpdF93ZWJfYmFja19mb3J3
YXJkX2xpc3RfYWRkX2l0ZW0KLXdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY2xlYXIKLXdl
YmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY29udGFpbnNfaXRlbQotd2Via2l0X3dlYl9iYWNr
X2ZvcndhcmRfbGlzdF9nZXRfYmFja19pdGVtCi13ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0
X2dldF9iYWNrX2xlbmd0aAotd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19s
aXN0X3dpdGhfbGltaXQKLXdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2N1cnJlbnRf
aXRlbQotd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9pdGVtCi13ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xlbmd0aAotd2Via2l0X3dlYl9i
YWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9saXN0X3dpdGhfbGltaXQKLXdlYmtpdF93ZWJf
YmFja19mb3J3YXJkX2xpc3RfZ2V0X2xpbWl0Ci13ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0
X2dldF9udGhfaXRlbQotd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nb19iYWNrCi13ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dvX2ZvcndhcmQKLXdlYmtpdF93ZWJfYmFja19mb3J3
YXJkX2xpc3RfZ29fdG9faXRlbQotd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9uZXdfd2l0
aF93ZWJfdmlldwotd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9zZXRfbGltaXQKLTxTVUJT
RUNUSU9OIFN0YW5kYXJkPgotV0VCS0lUX1dFQl9CQUNLX0ZPUldBUkRfTElTVAotV0VCS0lUX0lT
X1dFQl9CQUNLX0ZPUldBUkRfTElTVAotV0VCS0lUX1RZUEVfV0VCX0JBQ0tfRk9SV0FSRF9MSVNU
Ci1XRUJLSVRfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUX0NMQVNTCi1XRUJLSVRfSVNfV0VCX0JBQ0tf
Rk9SV0FSRF9MSVNUX0NMQVNTCi1XRUJLSVRfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUX0dFVF9DTEFT
UwotPFNVQlNFQ1RJT04gUHJpdmF0ZT4KLVdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUK
LXdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X3R5cGUKLVdlYktpdFdlYkJhY2tGb3J3
YXJkTGlzdENsYXNzCi08L1NFQ1RJT04+Ci0KLTxTRUNUSU9OPgotPEZJTEU+d2Via2l0d2ViaGlz
dG9yeWl0ZW08L0ZJTEU+Ci08VElUTEU+V2ViS2l0V2ViSGlzdG9yeUl0ZW08L1RJVExFPgotV2Vi
S2l0V2ViSGlzdG9yeUl0ZW0KLXdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2NvcHkKLXdlYmtpdF93
ZWJfaGlzdG9yeV9pdGVtX2dldF9hbHRlcm5hdGVfdGl0bGUKLXdlYmtpdF93ZWJfaGlzdG9yeV9p
dGVtX2dldF9sYXN0X3Zpc2l0ZWRfdGltZQotd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X29y
aWdpbmFsX3VyaQotd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3RpdGxlCi13ZWJraXRfd2Vi
X2hpc3RvcnlfaXRlbV9nZXRfdXJpCi13ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXcKLXdlYmtp
dF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2RhdGEKLXdlYmtpdF93ZWJfaGlzdG9yeV9pdGVt
X3NldF9hbHRlcm5hdGVfdGl0bGUKLTxTVUJTRUNUSU9OIFN0YW5kYXJkPgotV0VCS0lUX1dFQl9I
SVNUT1JZX0lURU0KLVdFQktJVF9JU19XRUJfSElTVE9SWV9JVEVNCi1XRUJLSVRfVFlQRV9XRUJf
SElTVE9SWV9JVEVNCi1XRUJLSVRfV0VCX0hJU1RPUllfSVRFTV9DTEFTUwotV0VCS0lUX0lTX1dF
Ql9ISVNUT1JZX0lURU1fQ0xBU1MKLVdFQktJVF9XRUJfSElTVE9SWV9JVEVNX0dFVF9DTEFTUwot
PFNVQlNFQ1RJT04gUHJpdmF0ZT4KLXdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90eXBlCi1X
ZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGUKLVdlYktpdFdlYkhpc3RvcnlJdGVtQ2xhc3MKLTwv
U0VDVElPTj4KLQotPFNFQ1RJT04+Ci08RklMRT53ZWJraXR3ZWJmcmFtZTwvRklMRT4KLTxUSVRM
RT5XZWJLaXRXZWJGcmFtZTwvVElUTEU+Ci1XZWJLaXRMb2FkU3RhdHVzCi1XZWJLaXRXZWJGcmFt
ZQotd2Via2l0X3dlYl9mcmFtZV9maW5kX2ZyYW1lCi13ZWJraXRfd2ViX2ZyYW1lX2dldF9kYXRh
X3NvdXJjZQotd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50Ci13ZWJraXRfd2ViX2Zy
YW1lX2dldF9nbG9iYWxfY29udGV4dAotd2Via2l0X3dlYl9mcmFtZV9nZXRfaG9yaXpvbnRhbF9z
Y3JvbGxiYXJfcG9saWN5Ci13ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1cwotd2Via2l0
X3dlYl9mcmFtZV9nZXRfbmFtZQotd2Via2l0X3dlYl9mcmFtZV9nZXRfbmV0d29ya19yZXNwb25z
ZQotd2Via2l0X3dlYl9mcmFtZV9nZXRfcGFyZW50Ci13ZWJraXRfd2ViX2ZyYW1lX2dldF9wcm92
aXNpb25hbF9kYXRhX3NvdXJjZQotd2Via2l0X3dlYl9mcmFtZV9nZXRfc2VjdXJpdHlfb3JpZ2lu
Ci13ZWJraXRfd2ViX2ZyYW1lX2dldF90aXRsZQotd2Via2l0X3dlYl9mcmFtZV9nZXRfdXJpCi13
ZWJraXRfd2ViX2ZyYW1lX2dldF92ZXJ0aWNhbF9zY3JvbGxiYXJfcG9saWN5Ci13ZWJraXRfd2Vi
X2ZyYW1lX2dldF93ZWJfdmlldwotd2Via2l0X3dlYl9mcmFtZV9sb2FkX2FsdGVybmF0ZV9zdHJp
bmcKLXdlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0Ci13ZWJraXRfd2ViX2ZyYW1lX2xvYWRf
c3RyaW5nCi13ZWJraXRfd2ViX2ZyYW1lX2xvYWRfdXJpCi13ZWJraXRfd2ViX2ZyYW1lX25ldwot
d2Via2l0X3dlYl9mcmFtZV9wcmludAotd2Via2l0X3dlYl9mcmFtZV9wcmludF9mdWxsCi13ZWJr
aXRfd2ViX2ZyYW1lX3JlbG9hZAotd2Via2l0X3dlYl9mcmFtZV9zdG9wX2xvYWRpbmcKLTxTVUJT
RUNUSU9OIFN0YW5kYXJkPgotV0VCS0lUX1dFQl9GUkFNRQotV0VCS0lUX0lTX1dFQl9GUkFNRQot
V0VCS0lUX1RZUEVfV0VCX0ZSQU1FCi1XRUJLSVRfV0VCX0ZSQU1FX0NMQVNTCi1XRUJLSVRfSVNf
V0VCX0ZSQU1FX0NMQVNTCi1XRUJLSVRfV0VCX0ZSQU1FX0dFVF9DTEFTUwotPFNVQlNFQ1RJT04g
UHJpdmF0ZT4KLVdlYktpdFdlYkZyYW1lUHJpdmF0ZQotV2ViS2l0V2ViRnJhbWVDbGFzcwotd2Vi
a2l0X3dlYl9mcmFtZV9nZXRfdHlwZQotd2Via2l0X3dlYl9mcmFtZV9nZXRfcmFuZ2VfZm9yX3dv
cmRfYXJvdW5kX2NhcmV0Ci13ZWJraXRfd2ViX2ZyYW1lX3JlcGxhY2Vfc2VsZWN0aW9uCi08L1NF
Q1RJT04+Ci0KLTxTRUNUSU9OPgotPEZJTEU+d2Via2l0ZG93bmxvYWQ8L0ZJTEU+Ci1XZWJLaXRE
b3dubG9hZEVycm9yCi1XZWJLaXREb3dubG9hZFN0YXR1cwotPFRJVExFPldlYktpdERvd25sb2Fk
PC9USVRMRT4KLVdlYktpdERvd25sb2FkCi13ZWJraXRfZG93bmxvYWRfY2FuY2VsCi13ZWJraXRf
ZG93bmxvYWRfZ2V0X2N1cnJlbnRfc2l6ZQotd2Via2l0X2Rvd25sb2FkX2dldF9kZXN0aW5hdGlv
bl91cmkKLXdlYmtpdF9kb3dubG9hZF9nZXRfZWxhcHNlZF90aW1lCi13ZWJraXRfZG93bmxvYWRf
Z2V0X25ldHdvcmtfcmVxdWVzdAotd2Via2l0X2Rvd25sb2FkX2dldF9uZXR3b3JrX3Jlc3BvbnNl
Ci13ZWJraXRfZG93bmxvYWRfZ2V0X3Byb2dyZXNzCi13ZWJraXRfZG93bmxvYWRfZ2V0X3N0YXR1
cwotd2Via2l0X2Rvd25sb2FkX2dldF9zdWdnZXN0ZWRfZmlsZW5hbWUKLXdlYmtpdF9kb3dubG9h
ZF9nZXRfdG90YWxfc2l6ZQotd2Via2l0X2Rvd25sb2FkX2dldF91cmkKLXdlYmtpdF9kb3dubG9h
ZF9uZXcKLXdlYmtpdF9kb3dubG9hZF9zZXRfZGVzdGluYXRpb25fdXJpCi13ZWJraXRfZG93bmxv
YWRfc3RhcnQKLTxTVUJTRUNUSU9OIFN0YW5kYXJkPgotV0VCS0lUX0RPV05MT0FECi1XRUJLSVRf
RE9XTkxPQURfQ0xBU1MKLVdFQktJVF9ET1dOTE9BRF9HRVRfQ0xBU1MKLVdFQktJVF9JU19ET1dO
TE9BRAotV0VCS0lUX0lTX0RPV05MT0FEX0NMQVNTCi1XRUJLSVRfVFlQRV9ET1dOTE9BRAotPFNV
QlNFQ1RJT04gUHJpdmF0ZT4KLXdlYmtpdF9kb3dubG9hZF9nZXRfdHlwZQotV2ViS2l0RG93bmxv
YWRDbGFzcwotV2ViS2l0RG93bmxvYWRQcml2YXRlCi08L1NFQ1RJT04+Ci0KLTxTRUNUSU9OPgot
PEZJTEU+d2Via2l0c2VjdXJpdHlvcmlnaW48L0ZJTEU+Ci08VElUTEU+V2ViS2l0U2VjdXJpdHlP
cmlnaW48L1RJVExFPgotV2ViS2l0U2VjdXJpdHlPcmlnaW4KLXdlYmtpdF9zZWN1cml0eV9vcmln
aW5fZ2V0X2FsbF93ZWJfZGF0YWJhc2VzCi13ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9ob3N0
Ci13ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9wb3J0Ci13ZWJraXRfc2VjdXJpdHlfb3JpZ2lu
X2dldF9wcm90b2NvbAotd2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfdHlwZQotd2Via2l0X3Nl
Y3VyaXR5X29yaWdpbl9nZXRfd2ViX2RhdGFiYXNlX3F1b3RhCi13ZWJraXRfc2VjdXJpdHlfb3Jp
Z2luX2dldF93ZWJfZGF0YWJhc2VfdXNhZ2UKLXdlYmtpdF9zZWN1cml0eV9vcmlnaW5fc2V0X3dl
Yl9kYXRhYmFzZV9xdW90YQotPFNVQlNFQ1RJT04gU3RhbmRhcmQ+Ci1XRUJLSVRfU0VDVVJJVFlf
T1JJR0lOCi1XRUJLSVRfU0VDVVJJVFlfT1JJR0lOX0NMQVNTCi1XRUJLSVRfU0VDVVJJVFlfT1JJ
R0lOX0dFVF9DTEFTUwotV0VCS0lUX0lTX1NFQ1VSSVRZX09SSUdJTgotV0VCS0lUX0lTX1NFQ1VS
SVRZX09SSUdJTl9DTEFTUwotV0VCS0lUX1RZUEVfU0VDVVJJVFlfT1JJR0lOCi08U1VCU0VDVElP
TiBQcml2YXRlPgotV2ViS2l0U2VjdXJpdHlPcmlnaW5DbGFzcwotV2ViS2l0U2VjdXJpdHlPcmln
aW5Qcml2YXRlCi08L1NFQ1RJT04+Ci0KLTxTRUNUSU9OPgotPEZJTEU+d2Via2l0aGl0dGVzdHJl
c3VsdDwvRklMRT4KLTxUSVRMRT5XZWJLaXRIaXRUZXN0UmVzdWx0PC9USVRMRT4KLVdlYktpdEhp
dFRlc3RSZXN1bHQKLVdlYktpdEhpdFRlc3RSZXN1bHRDb250ZXh0Ci08U1VCU0VDVElPTiBTdGFu
ZGFyZD4KLVdFQktJVF9ISVRfVEVTVF9SRVNVTFQKLVdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ0xB
U1MKLVdFQktJVF9ISVRfVEVTVF9SRVNVTFRfR0VUX0NMQVNTCi1XRUJLSVRfSVNfSElUX1RFU1Rf
UkVTVUxUCi1XRUJLSVRfSVNfSElUX1RFU1RfUkVTVUxUX0NMQVNTCi1XRUJLSVRfVFlQRV9ISVRf
VEVTVF9SRVNVTFQKLTxTVUJTRUNUSU9OIFByaXZhdGU+Ci1XZWJLaXRIaXRUZXN0UmVzdWx0Q2xh
c3MKLVdlYktpdEhpdFRlc3RSZXN1bHRQcml2YXRlCi13ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2dl
dF90eXBlCi08L1NFQ1RJT04+Ci0KLTxTRUNUSU9OPgotPEZJTEU+d2Via2l0d2ViZGF0YXNvdXJj
ZTwvRklMRT4KLTxUSVRMRT5XZWJLaXRXZWJEYXRhU291cmNlPC9USVRMRT4KLVdlYktpdFdlYkRh
dGFTb3VyY2UKLXdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X2RhdGEKLXdlYmtpdF93ZWJfZGF0
YV9zb3VyY2VfZ2V0X2VuY29kaW5nCi13ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF9pbml0aWFs
X3JlcXVlc3QKLXdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X21haW5fcmVzb3VyY2UKLXdlYmtp
dF93ZWJfZGF0YV9zb3VyY2VfZ2V0X3JlcXVlc3QKLXdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0
X3N1YnJlc291cmNlcwotd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9nZXRfdW5yZWFjaGFibGVfdXJp
Ci13ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF93ZWJfZnJhbWUKLXdlYmtpdF93ZWJfZGF0YV9z
b3VyY2VfaXNfbG9hZGluZwotd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9uZXcKLTxTVUJTRUNUSU9O
IFN0YW5kYXJkPgotV0VCS0lUX0lTX1dFQl9EQVRBX1NPVVJDRQotV0VCS0lUX0lTX1dFQl9EQVRB
X1NPVVJDRV9DTEFTUwotV0VCS0lUX1RZUEVfV0VCX0RBVEFfU09VUkNFCi1XRUJLSVRfV0VCX0RB
VEFfU09VUkNFCi1XRUJLSVRfV0VCX0RBVEFfU09VUkNFX0NMQVNTCi1XRUJLSVRfV0VCX0RBVEFf
U09VUkNFX0dFVF9DTEFTUwotPFNVQlNFQ1RJT04gUHJpdmF0ZT4KLVdlYktpdFdlYkRhdGFTb3Vy
Y2VDbGFzcwotV2ViS2l0V2ViRGF0YVNvdXJjZVByaXZhdGUKLXdlYmtpdF93ZWJfZGF0YV9zb3Vy
Y2VfbmV3X3dpdGhfcmVxdWVzdAotd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9nZXRfdHlwZQotPC9T
RUNUSU9OPgotCi08U0VDVElPTj4KLTxGSUxFPndlYmtpdHdlYmRhdGFiYXNlPC9GSUxFPgotPFRJ
VExFPldlYktpdFdlYkRhdGFiYXNlPC9USVRMRT4KLVdlYktpdFdlYkRhdGFiYXNlCi13ZWJraXRf
d2ViX2RhdGFiYXNlX2dldF9kaXNwbGF5X25hbWUKLXdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X2V4
cGVjdGVkX3NpemUKLXdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X2ZpbGVuYW1lCi13ZWJraXRfd2Vi
X2RhdGFiYXNlX2dldF9uYW1lCi13ZWJraXRfd2ViX2RhdGFiYXNlX2dldF9zZWN1cml0eV9vcmln
aW4KLXdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X3NpemUKLXdlYmtpdF93ZWJfZGF0YWJhc2VfcmVt
b3ZlCi08U1VCU0VDVElPTiBTdGFuZGFyZD4KLVdFQktJVF9JU19XRUJfREFUQUJBU0UKLVdFQktJ
VF9JU19XRUJfREFUQUJBU0VfQ0xBU1MKLVdFQktJVF9UWVBFX1dFQl9EQVRBQkFTRQotV0VCS0lU
X1dFQl9EQVRBQkFTRQotV0VCS0lUX1dFQl9EQVRBQkFTRV9DTEFTUwotV0VCS0lUX1dFQl9EQVRB
QkFTRV9HRVRfQ0xBU1MKLTxTVUJTRUNUSU9OIFByaXZhdGU+Ci1XZWJLaXRXZWJEYXRhYmFzZUNs
YXNzCi1XZWJLaXRXZWJEYXRhYmFzZVByaXZhdGUKLXdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X3R5
cGUKLTwvU0VDVElPTj4KLQotPFNFQ1RJT04+Ci08RklMRT53ZWJraXRzb3VwYXV0aGRpYWxvZzwv
RklMRT4KLTxUSVRMRT5XZWJLaXRTb3VwQXV0aERpYWxvZzwvVElUTEU+Ci1XZWJLaXRTb3VwQXV0
aERpYWxvZwotPFNVQlNFQ1RJT04gU3RhbmRhcmQ+Ci1XRUJLSVRfSVNfU09VUF9BVVRIX0RJQUxP
RwotV0VCS0lUX0lTX1NPVVBfQVVUSF9ESUFMT0dfQ0xBU1MKLVdFQktJVF9TT1VQX0FVVEhfRElB
TE9HCi1XRUJLSVRfU09VUF9BVVRIX0RJQUxPR19DTEFTUwotV0VCS0lUX1NPVVBfQVVUSF9ESUFM
T0dfR0VUX0NMQVNTCi1XRUJLSVRfVFlQRV9TT1VQX0FVVEhfRElBTE9HCi08U1VCU0VDVElPTiBQ
cml2YXRlPgotd2Via2l0X3NvdXBfYXV0aF9kaWFsb2dfZ2V0X3R5cGUKLVdlYktpdFNvdXBBdXRo
RGlhbG9nQ2xhc3MKLTwvU0VDVElPTj4KLQotPFNFQ1RJT04+Ci08RklMRT53ZWJraXR3ZWJpbnNw
ZWN0b3I8L0ZJTEU+Ci08VElUTEU+V2ViS2l0V2ViSW5zcGVjdG9yPC9USVRMRT4KLVdlYktpdFdl
Ykluc3BlY3Rvcgotd2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X2luc3BlY3RlZF91cmkKLXdlYmtp
dF93ZWJfaW5zcGVjdG9yX2dldF93ZWJfdmlldwotd2Via2l0X3dlYl9pbnNwZWN0b3JfaW5zcGVj
dF9jb29yZGluYXRlcwotd2Via2l0X3dlYl9pbnNwZWN0b3Jfc2hvdwotd2Via2l0X3dlYl9pbnNw
ZWN0b3JfY2xvc2UKLXdlYmtpdF93ZWJfaW5zcGVjdG9yX2luc3BlY3Rfbm9kZQotPFNVQlNFQ1RJ
T04gU3RhbmRhcmQ+Ci1XRUJLSVRfV0VCX0lOU1BFQ1RPUgotV0VCS0lUX0lTX1dFQl9JTlNQRUNU
T1IKLVdFQktJVF9UWVBFX1dFQl9JTlNQRUNUT1IKLVdFQktJVF9XRUJfSU5TUEVDVE9SX0NMQVNT
Ci1XRUJLSVRfSVNfV0VCX0lOU1BFQ1RPUl9DTEFTUwotV0VCS0lUX1dFQl9JTlNQRUNUT1JfR0VU
X0NMQVNTCi08U1VCU0VDVElPTiBQcml2YXRlPgotd2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X3R5
cGUKLVdlYktpdFdlYkluc3BlY3RvclByaXZhdGUKLVdlYktpdFdlYkluc3BlY3RvckNsYXNzCi08
L1NFQ1RJT04+Ci0KLTxTRUNUSU9OPgotPEZJTEU+d2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbjwv
RklMRT4KLTxUSVRMRT5XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uPC9USVRMRT4KLVdlYktpdFdl
Yk5hdmlnYXRpb25BY3Rpb24KLVdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24KLXdlYmtpdF93ZWJf
bmF2aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbgotd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlv
bl9nZXRfbW9kaWZpZXJfc3RhdGUKLXdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X29y
aWdpbmFsX3VyaQotd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfcmVhc29uCi13ZWJr
aXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF90YXJnZXRfZnJhbWUKLXdlYmtpdF93ZWJfbmF2
aWdhdGlvbl9hY3Rpb25fc2V0X29yaWdpbmFsX3VyaQotd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2Fj
dGlvbl9zZXRfcmVhc29uCi08U1VCU0VDVElPTiBTdGFuZGFyZD4KLVdFQktJVF9JU19XRUJfTkFW
SUdBVElPTl9BQ1RJT04KLVdFQktJVF9JU19XRUJfTkFWSUdBVElPTl9BQ1RJT05fQ0xBU1MKLVdF
QktJVF9UWVBFX1dFQl9OQVZJR0FUSU9OX0FDVElPTgotV0VCS0lUX1dFQl9OQVZJR0FUSU9OX0FD
VElPTgotV0VCS0lUX1dFQl9OQVZJR0FUSU9OX0FDVElPTl9DTEFTUwotV0VCS0lUX1dFQl9OQVZJ
R0FUSU9OX0FDVElPTl9HRVRfQ0xBU1MKLTxTVUJTRUNUSU9OIFByaXZhdGU+Ci1XZWJLaXRXZWJO
YXZpZ2F0aW9uQWN0aW9uQ2xhc3MKLVdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlCi13
ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF90eXBlCi08L1NFQ1RJT04+Ci0KLTxTRUNU
SU9OPgotPEZJTEU+d2Via2l0d2VicG9saWN5ZGVjaXNpb248L0ZJTEU+Ci08VElUTEU+V2ViS2l0
V2ViUG9saWN5RGVjaXNpb248L1RJVExFPgotV2ViS2l0V2ViUG9saWN5RGVjaXNpb24KLXdlYmtp
dF93ZWJfcG9saWN5X2RlY2lzaW9uX2Rvd25sb2FkCi13ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lv
bl9pZ25vcmUKLXdlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX3VzZQotPFNVQlNFQ1RJT04gU3Rh
bmRhcmQ+Ci1XRUJLSVRfSVNfV0VCX1BPTElDWV9ERUNJU0lPTgotV0VCS0lUX0lTX1dFQl9QT0xJ
Q1lfREVDSVNJT05fQ0xBU1MKLVdFQktJVF9UWVBFX1dFQl9QT0xJQ1lfREVDSVNJT04KLVdFQktJ
VF9XRUJfUE9MSUNZX0RFQ0lTSU9OCi1XRUJLSVRfV0VCX1BPTElDWV9ERUNJU0lPTl9DTEFTUwot
V0VCS0lUX1dFQl9QT0xJQ1lfREVDSVNJT05fR0VUX0NMQVNTCi08U1VCU0VDVElPTiBQcml2YXRl
PgotV2ViS2l0V2ViUG9saWN5RGVjaXNpb25DbGFzcwotV2ViS2l0V2ViUG9saWN5RGVjaXNpb25Q
cml2YXRlCi13ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9nZXRfdHlwZQotPC9TRUNUSU9OPgot
Ci08U0VDVElPTj4KLTxGSUxFPndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb248L0ZJTEU+
Ci08VElUTEU+V2ViS2l0R2VvbG9jYXRpb25Qb2xpY3lEZWNpc2lvbjwvVElUTEU+Ci1XZWJLaXRH
ZW9sb2NhdGlvblBvbGljeURlY2lzaW9uCi13ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2FsbG93
Ci13ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlbnkKLTxTVUJTRUNUSU9OIFN0YW5kYXJkPgot
V0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BPTElDWV9ERUNJU0lPTgotV0VCS0lUX0lTX0dFT0xPQ0FU
SU9OX1BPTElDWV9ERUNJU0lPTl9DTEFTUwotV0VCS0lUX1RZUEVfR0VPTE9DQVRJT05fUE9MSUNZ
X0RFQ0lTSU9OCi1XRUJLSVRfR0VPTE9DQVRJT05fUE9MSUNZX0RFQ0lTSU9OCi1XRUJLSVRfR0VP
TE9DQVRJT05fUE9MSUNZX0RFQ0lTSU9OX0NMQVNTCi1XRUJLSVRfR0VPTE9DQVRJT05fUE9MSUNZ
X0RFQ0lTSU9OX0dFVF9DTEFTUwotPFNVQlNFQ1RJT04gUHJpdmF0ZT4KLVdlYktpdEdlb2xvY2F0
aW9uUG9saWN5RGVjaXNpb25DbGFzcwotV2ViS2l0R2VvbG9jYXRpb25Qb2xpY3lEZWNpc2lvblBy
aXZhdGUKLXdlYmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfZGVjaXNpb25fZ2V0X3R5cGUKLTwvU0VD
VElPTj4KLQotPFNFQ1RJT04+Ci08RklMRT53ZWJraXRuZXR3b3JrcmVxdWVzdDwvRklMRT4KLTxU
SVRMRT5XZWJLaXROZXR3b3JrUmVxdWVzdDwvVElUTEU+Ci1XZWJLaXROZXR3b3JrUmVxdWVzdAot
d2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcKLXdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Vy
aQotd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZQotd2Via2l0X25ldHdvcmtfcmVx
dWVzdF9zZXRfdXJpCi08U1VCU0VDVElPTiBTdGFuZGFyZD4KLVdFQktJVF9ORVRXT1JLX1JFUVVF
U1QKLVdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1QKLVdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVT
VAotV0VCS0lUX05FVFdPUktfUkVRVUVTVF9DTEFTUwotV0VCS0lUX0lTX05FVFdPUktfUkVRVUVT
VF9DTEFTUwotV0VCS0lUX05FVFdPUktfUkVRVUVTVF9HRVRfQ0xBU1MKLTxTVUJTRUNUSU9OIFBy
aXZhdGU+Ci1XZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUKLVdlYktpdE5ldHdvcmtSZXF1ZXN0
Q2xhc3MKLXdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3R5cGUKLTwvU0VDVElPTj4KLQotPFNF
Q1RJT04+Ci08RklMRT53ZWJraXRuZXR3b3JrcmVzcG9uc2U8L0ZJTEU+Ci08VElUTEU+V2ViS2l0
TmV0d29ya1Jlc3BvbnNlPC9USVRMRT4KLVdlYktpdE5ldHdvcmtSZXNwb25zZQotd2Via2l0X25l
dHdvcmtfcmVzcG9uc2VfZ2V0X3VyaQotd2Via2l0X25ldHdvcmtfcmVzcG9uc2VfZ2V0X21lc3Nh
Z2UKLXdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dldF9zdWdnZXN0ZWRfZmlsZW5hbWUKLXdlYmtp
dF9uZXR3b3JrX3Jlc3BvbnNlX3NldF91cmkKLTxTVUJTRUNUSU9OIFN0YW5kYXJkPgotV0VCS0lU
X05FVFdPUktfUkVTUE9OU0UKLVdFQktJVF9JU19ORVRXT1JLX1JFU1BPTlNFCi1XRUJLSVRfVFlQ
RV9ORVRXT1JLX1JFU1BPTlNFCi1XRUJLSVRfTkVUV09SS19SRVNQT05TRV9DTEFTUwotV0VCS0lU
X0lTX05FVFdPUktfUkVTUE9OU0VfQ0xBU1MKLVdFQktJVF9ORVRXT1JLX1JFU1BPTlNFX0dFVF9D
TEFTUwotPFNVQlNFQ1RJT04gUHJpdmF0ZT4KLVdlYktpdE5ldHdvcmtSZXNwb25zZVByaXZhdGUK
LVdlYktpdE5ldHdvcmtSZXNwb25zZUNsYXNzCi13ZWJraXRfbmV0d29ya19yZXNwb25zZV9uZXcK
LXdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dldF90eXBlCi08L1NFQ1RJT04+Ci0KLTxTRUNUSU9O
PgotPEZJTEU+d2Via2l0d2VidmlldzwvRklMRT4KLVdlYktpdE5hdmlnYXRpb25SZXNwb25zZQot
V2ViS2l0V2ViVmlld1RhcmdldEluZm8KLVdlYktpdFdlYlZpZXdWaWV3TW9kZQotV2ViS2l0SW5z
ZXJ0QWN0aW9uCi1XZWJLaXRTZWxlY3Rpb25BZmZpbml0eQotPFRJVExFPldlYktpdFdlYlZpZXc8
L1RJVExFPgotV2ViS2l0V2ViVmlldwotd2Via2l0X3dlYl92aWV3X2Nhbl9jb3B5X2NsaXBib2Fy
ZAotd2Via2l0X3dlYl92aWV3X2Nhbl9jdXRfY2xpcGJvYXJkCi13ZWJraXRfd2ViX3ZpZXdfY2Fu
X2dvX2JhY2sKLXdlYmtpdF93ZWJfdmlld19jYW5fZ29fYmFja19vcl9mb3J3YXJkCi13ZWJraXRf
d2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQKLXdlYmtpdF93ZWJfdmlld19jYW5fcGFzdGVfY2xpcGJv
YXJkCi13ZWJraXRfd2ViX3ZpZXdfY2FuX3JlZG8KLXdlYmtpdF93ZWJfdmlld19jYW5fc2hvd19t
aW1lX3R5cGUKLXdlYmtpdF93ZWJfdmlld19jYW5fdW5kbwotd2Via2l0X3dlYl92aWV3X2NvcHlf
Y2xpcGJvYXJkCi13ZWJraXRfd2ViX3ZpZXdfY3V0X2NsaXBib2FyZAotd2Via2l0X3dlYl92aWV3
X2RlbGV0ZV9zZWxlY3Rpb24KLXdlYmtpdF93ZWJfdmlld19leGVjdXRlX3NjcmlwdAotd2Via2l0
X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlzdAotd2Via2l0X3dlYl92aWV3X2dldF9jb3B5
X3RhcmdldF9saXN0Ci13ZWJraXRfd2ViX3ZpZXdfZ2V0X2N1c3RvbV9lbmNvZGluZwotd2Via2l0
X3dlYl92aWV3X2dldF9kb21fZG9jdW1lbnQKLXdlYmtpdF93ZWJfdmlld19nZXRfZWRpdGFibGUK
LXdlYmtpdF93ZWJfdmlld19nZXRfZW5jb2RpbmcKLXdlYmtpdF93ZWJfdmlld19nZXRfZm9jdXNl
ZF9mcmFtZQotd2Via2l0X3dlYl92aWV3X2dldF9mdWxsX2NvbnRlbnRfem9vbQotd2Via2l0X3dl
Yl92aWV3X2dldF9oaXRfdGVzdF9yZXN1bHQKLXdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl9waXhi
dWYKLXdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl91cmkKLXdlYmtpdF93ZWJfdmlld19nZXRfaW5z
cGVjdG9yCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X2xvYWRfc3RhdHVzCi13ZWJraXRfd2ViX3ZpZXdf
Z2V0X21haW5fZnJhbWUKLXdlYmtpdF93ZWJfdmlld19nZXRfcGFzdGVfdGFyZ2V0X2xpc3QKLXdl
YmtpdF93ZWJfdmlld19nZXRfcHJvZ3Jlc3MKLXdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3MK
LXdlYmtpdF93ZWJfdmlld19nZXRfdGl0bGUKLXdlYmtpdF93ZWJfdmlld19nZXRfdHJhbnNwYXJl
bnQKLXdlYmtpdF93ZWJfdmlld19nZXRfdXJpCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdfbW9k
ZQotd2Via2l0X3dlYl92aWV3X2dldF92aWV3X3NvdXJjZV9tb2RlCi13ZWJraXRfd2ViX3ZpZXdf
Z2V0X3ZpZXdwb3J0X2F0dHJpYnV0ZXMKLXdlYmtpdF93ZWJfdmlld19nZXRfem9vbV9sZXZlbAot
d2Via2l0X3dlYl92aWV3X2dvX2JhY2sKLXdlYmtpdF93ZWJfdmlld19nb19iYWNrX29yX2Zvcndh
cmQKLXdlYmtpdF93ZWJfdmlld19nb19mb3J3YXJkCi13ZWJraXRfd2ViX3ZpZXdfZ29fdG9fYmFj
a19mb3J3YXJkX2l0ZW0KLXdlYmtpdF93ZWJfdmlld19oYXNfc2VsZWN0aW9uCi13ZWJraXRfd2Vi
X3ZpZXdfbG9hZF9odG1sX3N0cmluZwotd2Via2l0X3dlYl92aWV3X2xvYWRfcmVxdWVzdAotd2Vi
a2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nCi13ZWJraXRfd2ViX3ZpZXdfbG9hZF91cmkKLXdlYmtp
dF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcwotd2Via2l0X3dlYl92aWV3X21vdmVfY3Vyc29y
Ci13ZWJraXRfd2ViX3ZpZXdfbmV3Ci13ZWJraXRfd2ViX3ZpZXdfb3Blbgotd2Via2l0X3dlYl92
aWV3X3Bhc3RlX2NsaXBib2FyZAotd2Via2l0X3dlYl92aWV3X3JlZG8KLXdlYmtpdF93ZWJfdmll
d19yZWxvYWQKLXdlYmtpdF93ZWJfdmlld19yZWxvYWRfYnlwYXNzX2NhY2hlCi13ZWJraXRfd2Vi
X3ZpZXdfc2VhcmNoX3RleHQKLXdlYmtpdF93ZWJfdmlld19zZWxlY3RfYWxsCi13ZWJraXRfd2Vi
X3ZpZXdfc2V0X2N1c3RvbV9lbmNvZGluZwotd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZQot
d2Via2l0X3dlYl92aWV3X3NldF9mdWxsX2NvbnRlbnRfem9vbQotd2Via2l0X3dlYl92aWV3X3Nl
dF9oaWdobGlnaHRfdGV4dF9tYXRjaGVzCi13ZWJraXRfd2ViX3ZpZXdfc2V0X21haW50YWluc19i
YWNrX2ZvcndhcmRfbGlzdAotd2Via2l0X3dlYl92aWV3X3NldF9zZXR0aW5ncwotd2Via2l0X3dl
Yl92aWV3X3NldF90cmFuc3BhcmVudAotd2Via2l0X3dlYl92aWV3X3NldF92aWV3X21vZGUKLXdl
YmtpdF93ZWJfdmlld19zZXRfdmlld19zb3VyY2VfbW9kZQotd2Via2l0X3dlYl92aWV3X3NldF96
b29tX2xldmVsCi13ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nCi13ZWJraXRfd2ViX3ZpZXdf
dHJ5X2dldF9mYXZpY29uX3BpeGJ1Zgotd2Via2l0X3dlYl92aWV3X3VuZG8KLXdlYmtpdF93ZWJf
dmlld191bm1hcmtfdGV4dF9tYXRjaGVzCi13ZWJraXRfd2ViX3ZpZXdfem9vbV9pbgotd2Via2l0
X3dlYl92aWV3X3pvb21fb3V0Ci13ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19mZWF0dXJlcwot
d2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdAotPFNVQlNFQ1RJT04gU3RhbmRhcmQ+Ci1XRUJL
SVRfV0VCX1ZJRVcKLVdFQktJVF9JU19XRUJfVklFVwotV0VCS0lUX1RZUEVfV0VCX1ZJRVcKLVdF
QktJVF9XRUJfVklFV19DTEFTUwotV0VCS0lUX0lTX1dFQl9WSUVXX0NMQVNTCi1XRUJLSVRfV0VC
X1ZJRVdfR0VUX0NMQVNTCi08U1VCU0VDVElPTiBQcml2YXRlPgotd2Via2l0X3dlYl92aWV3X2dl
dF90eXBlCi1XZWJLaXRXZWJWaWV3UHJpdmF0ZQotV2ViS2l0V2ViVmlld0NsYXNzCi08L1NFQ1RJ
T04+Ci0KLTxTRUNUSU9OPgotPEZJTEU+d2Via2l0d2Vid2luZG93ZmVhdHVyZXM8L0ZJTEU+Ci08
VElUTEU+V2ViS2l0V2ViV2luZG93RmVhdHVyZXM8L1RJVExFPgotV2ViS2l0V2ViV2luZG93RmVh
dHVyZXMKLXdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX2VxdWFsCi13ZWJraXRfd2ViX3dpbmRv
d19mZWF0dXJlc19uZXcKLTxTVUJTRUNUSU9OIFN0YW5kYXJkPgotV0VCS0lUX0lTX1dFQl9XSU5E
T1dfRkVBVFVSRVMKLVdFQktJVF9JU19XRUJfV0lORE9XX0ZFQVRVUkVTX0NMQVNTCi1XRUJLSVRf
VFlQRV9XRUJfV0lORE9XX0ZFQVRVUkVTCi1XRUJLSVRfV0VCX1dJTkRPV19GRUFUVVJFUwotV0VC
S0lUX1dFQl9XSU5ET1dfRkVBVFVSRVNfQ0xBU1MKLVdFQktJVF9XRUJfV0lORE9XX0ZFQVRVUkVT
X0dFVF9DTEFTUwotPFNVQlNFQ1RJT04gUHJpdmF0ZT4KLXdlYmtpdF93ZWJfd2luZG93X2ZlYXR1
cmVzX2dldF90eXBlCi1XZWJLaXRXZWJXaW5kb3dGZWF0dXJlc0NsYXNzCi1XZWJLaXRXZWJXaW5k
b3dGZWF0dXJlc1ByaXZhdGUKLTwvU0VDVElPTj4KLQotPFNFQ1RJT04+Ci08RklMRT53ZWJraXQ8
L0ZJTEU+Ci08VElUTEU+R2xvYmFsIGZ1bmN0aW9uczwvVElUTEU+Ci13ZWJraXRfZ2V0X2RlZmF1
bHRfc2Vzc2lvbgotd2Via2l0X2dldF9kZWZhdWx0X3dlYl9kYXRhYmFzZV9xdW90YQotd2Via2l0
X2dldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgKLXdlYmtpdF9nZXRfd2ViX3BsdWdpbl9k
YXRhYmFzZQotd2Via2l0X3JlbW92ZV9hbGxfd2ViX2RhdGFiYXNlcwotd2Via2l0X3NldF9kZWZh
dWx0X3dlYl9kYXRhYmFzZV9xdW90YQotd2Via2l0X3NldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5
X3BhdGgKLXdlYmtpdF9nZXRfZmF2aWNvbl9kYXRhYmFzZQotd2Via2l0X2dldF9pY29uX2RhdGFi
YXNlCi13ZWJraXRfZ2V0X3RleHRfY2hlY2tlcgotd2Via2l0X3NldF90ZXh0X2NoZWNrZXIKLTxT
VUJTRUNUSU9OIEFwcGxpY2F0aW9uQ2FjaGU+Ci13ZWJraXRfYXBwbGljYXRpb25fY2FjaGVfZ2V0
X2RhdGFiYXNlX2RpcmVjdG9yeV9wYXRoCi13ZWJraXRfYXBwbGljYXRpb25fY2FjaGVfZ2V0X21h
eGltdW1fc2l6ZQotd2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX3NldF9tYXhpbXVtX3NpemUKLTxT
VUJTRUNUSU9OIENhY2hlTW9kZWw+Ci1XZWJLaXRDYWNoZU1vZGVsCi13ZWJraXRfZ2V0X2NhY2hl
X21vZGVsCi13ZWJraXRfc2V0X2NhY2hlX21vZGVsCi08U1VCU0VDVElPTiBDb250ZXh0TWVudUl0
ZW0+Ci1XZWJLaXRDb250ZXh0TWVudUFjdGlvbgotd2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dl
dF9hY3Rpb24KLTxTVUJTRUNUSU9OIFNlY3VyaXR5UG9saWN5PgotV2ViS2l0U2VjdXJpdHlQb2xp
Y3kKLXdlYmtpdF9zZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lCi13ZWJraXRfZ2V0
X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZQotPFNVQlNFQ1RJT04gUHJpdmF0ZT4KLVdF
QktJVEdUS19BUElfVkVSU0lPTgotPC9TRUNUSU9OPgotCi08U0VDVElPTj4KLTxGSUxFPndlYmtp
dHdlYnJlc291cmNlPC9GSUxFPgotPFRJVExFPldlYktpdFdlYlJlc291cmNlPC9USVRMRT4KLVdl
YktpdFdlYlJlc291cmNlCi13ZWJraXRfd2ViX3Jlc291cmNlX2dldF9kYXRhCi13ZWJraXRfd2Vi
X3Jlc291cmNlX2dldF9lbmNvZGluZwotd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfZnJhbWVfbmFt
ZQotd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfbWltZV90eXBlCi13ZWJraXRfd2ViX3Jlc291cmNl
X2dldF91cmkKLXdlYmtpdF93ZWJfcmVzb3VyY2VfbmV3Ci08U1VCU0VDVElPTiBTdGFuZGFyZD4K
LVdFQktJVF9XRUJfUkVTT1VSQ0UKLVdFQktJVF9JU19XRUJfUkVTT1VSQ0UKLVdFQktJVF9UWVBF
X1dFQl9SRVNPVVJDRQotV0VCS0lUX1dFQl9SRVNPVVJDRV9DTEFTUwotV0VCS0lUX0lTX1dFQl9S
RVNPVVJDRV9DTEFTUwotV0VCS0lUX1dFQl9SRVNPVVJDRV9HRVRfQ0xBU1MKLTxTVUJTRUNUSU9O
IFByaXZhdGU+Ci13ZWJraXRfd2ViX3Jlc291cmNlX2dldF90eXBlCi1XZWJLaXRXZWJSZXNvdXJj
ZVByaXZhdGUKLVdlYktpdFdlYlJlc291cmNlQ2xhc3MKLTwvU0VDVElPTj4KLQotPFNFQ1RJT04+
Ci08RklMRT53ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXM8L0ZJTEU+Ci08VElUTEU+V2ViS2l0Vmll
d3BvcnRBdHRyaWJ1dGVzPC9USVRMRT4KLVdlYktpdFZpZXdwb3J0QXR0cmlidXRlcwotd2Via2l0
X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfcmVjb21wdXRlCi08U1VCU0VDVElPTiBTdGFuZGFyZD4KLVdF
QktJVF9JU19WSUVXUE9SVF9BVFRSSUJVVEVTCi1XRUJLSVRfSVNfVklFV1BPUlRfQVRUUklCVVRF
U19DTEFTUwotV0VCS0lUX1RZUEVfVklFV1BPUlRfQVRUUklCVVRFUwotV0VCS0lUX1ZJRVdQT1JU
X0FUVFJJQlVURVMKLVdFQktJVF9WSUVXUE9SVF9BVFRSSUJVVEVTX0NMQVNTCi1XRUJLSVRfVklF
V1BPUlRfQVRUUklCVVRFU19HRVRfQ0xBU1MKLTxTVUJTRUNUSU9OIFByaXZhdGU+Ci13ZWJraXRf
dmlld3BvcnRfYXR0cmlidXRlc19nZXRfdHlwZQotV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzQ2xh
c3MKLVdlYktpdFZpZXdwb3J0QXR0cmlidXRlc1ByaXZhdGUKLTwvU0VDVElPTj4KLQotPFNFQ1RJ
T04+Ci08RklMRT53ZWJraXR3ZWJwbHVnaW48L0ZJTEU+Ci08VElUTEU+V2ViS2l0V2ViUGx1Z2lu
PC9USVRMRT4KLVdlYktpdFdlYlBsdWdpbgotV2ViS2l0V2ViUGx1Z2luTUlNRVR5cGUKLXdlYmtp
dF93ZWJfcGx1Z2luX2dldF9kZXNjcmlwdGlvbgotd2Via2l0X3dlYl9wbHVnaW5fZ2V0X2VuYWJs
ZWQKLXdlYmtpdF93ZWJfcGx1Z2luX2dldF9taW1ldHlwZXMKLXdlYmtpdF93ZWJfcGx1Z2luX2dl
dF9uYW1lCi13ZWJraXRfd2ViX3BsdWdpbl9zZXRfZW5hYmxlZAotd2Via2l0X3dlYl9wbHVnaW5f
Z2V0X3BhdGgKLTxTVUJTRUNUSU9OIFN0YW5kYXJkPgotV0VCS0lUX0lTX1dFQl9QTFVHSU4KLVdF
QktJVF9JU19XRUJfUExVR0lOX0NMQVNTCi1XRUJLSVRfVFlQRV9XRUJfUExVR0lOCi1XRUJLSVRf
V0VCX1BMVUdJTgotV0VCS0lUX1dFQl9QTFVHSU5fQ0xBU1MKLVdFQktJVF9XRUJfUExVR0lOX0dF
VF9DTEFTUwotPFNVQlNFQ1RJT04gUHJpdmF0ZT4KLVdlYktpdFdlYlBsdWdpbkNsYXNzCi1XZWJL
aXRXZWJQbHVnaW5Qcml2YXRlCi13ZWJraXRfd2ViX3BsdWdpbl9nZXRfdHlwZQotPC9TRUNUSU9O
PgotCi08U0VDVElPTj4KLTxGSUxFPndlYmtpdHdlYnBsdWdpbmRhdGFiYXNlPC9GSUxFPgotPFRJ
VExFPldlYktpdFdlYlBsdWdpbkRhdGFiYXNlPC9USVRMRT4KLVdlYktpdFdlYlBsdWdpbkRhdGFi
YXNlCi13ZWJraXRfd2ViX3BsdWdpbl9kYXRhYmFzZV9nZXRfcGx1Z2luX2Zvcl9taW1ldHlwZQot
d2Via2l0X3dlYl9wbHVnaW5fZGF0YWJhc2VfZ2V0X3BsdWdpbnMKLXdlYmtpdF93ZWJfcGx1Z2lu
X2RhdGFiYXNlX3BsdWdpbnNfbGlzdF9mcmVlCi13ZWJraXRfd2ViX3BsdWdpbl9kYXRhYmFzZV9y
ZWZyZXNoCi08U1VCU0VDVElPTiBTdGFuZGFyZD4KLVdFQktJVF9JU19XRUJfUExVR0lOX0RBVEFC
QVNFCi1XRUJLSVRfSVNfV0VCX1BMVUdJTl9EQVRBQkFTRV9DTEFTUwotV0VCS0lUX1RZUEVfV0VC
X1BMVUdJTl9EQVRBQkFTRQotV0VCS0lUX1dFQl9QTFVHSU5fREFUQUJBU0UKLVdFQktJVF9XRUJf
UExVR0lOX0RBVEFCQVNFX0NMQVNTCi1XRUJLSVRfV0VCX1BMVUdJTl9EQVRBQkFTRV9HRVRfQ0xB
U1MKLTxTVUJTRUNUSU9OIFByaXZhdGU+Ci1XZWJLaXRXZWJQbHVnaW5EYXRhYmFzZUNsYXNzCi1X
ZWJLaXRXZWJQbHVnaW5EYXRhYmFzZVByaXZhdGUKLXdlYmtpdF93ZWJfcGx1Z2luX2RhdGFiYXNl
X2dldF90eXBlCi08L1NFQ1RJT04+Ci0KLTxTRUNUSU9OPgotPEZJTEU+d2Via2l0c3BlbGxjaGVj
a2VyPC9GSUxFPgotPFRJVExFPldlYktpdFNwZWxsQ2hlY2tlcjwvVElUTEU+Ci1XZWJLaXRTcGVs
bENoZWNrZXIKLXdlYmtpdF9zcGVsbF9jaGVja2VyX2NoZWNrX3NwZWxsaW5nX29mX3N0cmluZwot
d2Via2l0X3NwZWxsX2NoZWNrZXJfZ2V0X2d1ZXNzZXNfZm9yX3dvcmQKLXdlYmtpdF9zcGVsbF9j
aGVja2VyX3VwZGF0ZV9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMKLXdlYmtpdF9zcGVsbF9jaGVj
a2VyX2dldF9hdXRvY29ycmVjdF9zdWdnZXN0aW9uc19mb3JfbWlzc3BlbGxlZF93b3JkCi13ZWJr
aXRfc3BlbGxfY2hlY2tlcl9sZWFybl93b3JkCi13ZWJraXRfc3BlbGxfY2hlY2tlcl9pZ25vcmVf
d29yZAotPFNVQlNFQ1RJT04gU3RhbmRhcmQ+Ci1XRUJLSVRfVFlQRV9TUEVMTF9DSEVDS0VSCi1X
RUJLSVRfU1BFTExfQ0hFQ0tFUgotV0VCS0lUX0lTX1NQRUxMX0NIRUNLRVIKLVdFQktJVF9TUEVM
TF9DSEVDS0VSX0dFVF9JRkFDRQotPFNVQlNFQ1RJT04gUHJpdmF0ZT4KLVdlYktpdFNwZWxsQ2hl
Y2tlckludGVyZmFjZQotd2Via2l0X3NwZWxsX2NoZWNrZXJfZ2V0X3R5cGUKLTwvU0VDVElPTj4K
LQotPFNFQ1RJT04+Ci08RklMRT53ZWJraXRlcnJvcjwvRklMRT4KLVdFQktJVF9ORVRXT1JLX0VS
Uk9SCi1XRUJLSVRfUExVR0lOX0VSUk9SCi1XRUJLSVRfUE9MSUNZX0VSUk9SCi1XZWJLaXROZXR3
b3JrRXJyb3IKLVdlYktpdFBsdWdpbkVycm9yCi1XZWJLaXRQb2xpY3lFcnJvcgotd2Via2l0X25l
dHdvcmtfZXJyb3JfcXVhcmsKLXdlYmtpdF9wbHVnaW5fZXJyb3JfcXVhcmsKLXdlYmtpdF9wb2xp
Y3lfZXJyb3JfcXVhcmsKLTwvU0VDVElPTj4KLQotPFNFQ1RJT04+Ci08RklMRT53ZWJraXRpY29u
ZGF0YWJhc2U8L0ZJTEU+Ci08VElUTEU+V2ViS2l0SWNvbkRhdGFiYXNlPC9USVRMRT4KLVdlYktp
dEljb25EYXRhYmFzZQotd2Via2l0X2ljb25fZGF0YWJhc2VfY2xlYXIKLXdlYmtpdF9pY29uX2Rh
dGFiYXNlX2dldF9pY29uX3BpeGJ1Zgotd2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0X2ljb25fdXJp
Ci13ZWJraXRfaWNvbl9kYXRhYmFzZV9nZXRfcGF0aAotd2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0
X3R5cGUKLXdlYmtpdF9pY29uX2RhdGFiYXNlX3NldF9wYXRoCi08U1VCU0VDVElPTiBTdGFuZGFy
ZD4KLVdFQktJVF9UWVBFX0lDT05fREFUQUJBU0UKLVdFQktJVF9JQ09OX0RBVEFCQVNFCi1XRUJL
SVRfSUNPTl9EQVRBQkFTRV9DTEFTUwotV0VCS0lUX0lDT05fREFUQUJBU0VfR0VUX0NMQVNTCi1X
RUJLSVRfSVNfSUNPTl9EQVRBQkFTRQotV0VCS0lUX0lTX0lDT05fREFUQUJBU0VfQ0xBU1MKLTxT
VUJTRUNUSU9OIFByaXZhdGU+Ci1XZWJLaXRJY29uRGF0YWJhc2VDbGFzcwotV2ViS2l0SWNvbkRh
dGFiYXNlUHJpdmF0ZQotPC9TRUNUSU9OPgotCi08U0VDVElPTj4KLTxGSUxFPndlYmtpdGZhdmlj
b25kYXRhYmFzZTwvRklMRT4KLTxUSVRMRT5XZWJLaXRGYXZpY29uRGF0YWJhc2U8L1RJVExFPgot
V2ViS2l0RmF2aWNvbkRhdGFiYXNlCi13ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9jbGVhcgotd2Vi
a2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X2Zhdmljb25fcGl4YnVmCi13ZWJraXRfZmF2aWNvbl9k
YXRhYmFzZV9nZXRfZmF2aWNvbl9waXhidWZfZmluaXNoCi13ZWJraXRfZmF2aWNvbl9kYXRhYmFz
ZV9nZXRfZmF2aWNvbl91cmkKLXdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9wYXRoCi13ZWJr
aXRfZmF2aWNvbl9kYXRhYmFzZV9nZXRfdHlwZQotd2Via2l0X2Zhdmljb25fZGF0YWJhc2Vfc2V0
X3BhdGgKLXdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX3RyeV9nZXRfZmF2aWNvbl9waXhidWYKLTxT
VUJTRUNUSU9OIFN0YW5kYXJkPgotV0VCS0lUX1RZUEVfRkFWSUNPTl9EQVRBQkFTRQotV0VCS0lU
X0ZBVklDT05fREFUQUJBU0UKLVdFQktJVF9GQVZJQ09OX0RBVEFCQVNFX0NMQVNTCi1XRUJLSVRf
RkFWSUNPTl9EQVRBQkFTRV9HRVRfQ0xBU1MKLVdFQktJVF9JU19GQVZJQ09OX0RBVEFCQVNFCi1X
RUJLSVRfSVNfRkFWSUNPTl9EQVRBQkFTRV9DTEFTUwotPFNVQlNFQ1RJT04gUHJpdmF0ZT4KLVdl
YktpdEZhdmljb25EYXRhYmFzZUNsYXNzCi1XZWJLaXRGYXZpY29uRGF0YWJhc2VQcml2YXRlCi08
L1NFQ1RJT04+Ci0KLTxTRUNUSU9OPgotPEZJTEU+d2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0PC9G
SUxFPgotPFRJVExFPldlYktpdEZpbGVDaG9vc2VyUmVxdWVzdDwvVElUTEU+Ci1XZWJLaXRGaWxl
Q2hvb3NlclJlcXVlc3QKLXdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfc2VsZWN0X211
bHRpcGxlCi13ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X21pbWVfdHlwZXMKLXdlYmtp
dF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfbWltZV90eXBlc19maWx0ZXIKLXdlYmtpdF9maWxl
X2Nob29zZXJfcmVxdWVzdF9nZXRfc2VsZWN0ZWRfZmlsZXMKLXdlYmtpdF9maWxlX2Nob29zZXJf
cmVxdWVzdF9zZWxlY3RfZmlsZXMKLQotPFNVQlNFQ1RJT04gU3RhbmRhcmQ+Ci1XRUJLSVRfVFlQ
RV9GSUxFX0NIT09TRVJfUkVRVUVTVAotV0VCS0lUX0ZJTEVfQ0hPT1NFUl9SRVFVRVNUCi1XRUJL
SVRfSVNfRklMRV9DSE9PU0VSX1JFUVVFU1QKLVdFQktJVF9GSUxFX0NIT09TRVJfUkVRVUVTVF9D
TEFTUwotV0VCS0lUX0lTX0ZJTEVfQ0hPT1NFUl9SRVFVRVNUX0NMQVNTCi1XRUJLSVRfRklMRV9D
SE9PU0VSX1JFUVVFU1RfR0VUX0NMQVNTCi0KLTxTVUJTRUNUSU9OIFByaXZhdGU+Ci1XZWJLaXRG
aWxlQ2hvb3NlclJlcXVlc3RDbGFzcwotV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0UHJpdmF0ZQot
d2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2dldF90eXBlCi08L1NFQ1RJT04+Ci0KLTxTRUNU
SU9OPgotPEZJTEU+d2Via2l0ZGVmaW5lczwvRklMRT4KLVdFQktJVF9BUEkKLVdFQktJVEdUS19B
UElfVkVSU0lPTgotV0VCS0lUX09CU09MRVRFX0FQSQotV0VCS0lUX0NIRUNLX1ZFUlNJT04KLVdF
QktJVF9NQUpPUl9WRVJTSU9OCi1XRUJLSVRfTUlDUk9fVkVSU0lPTgotV0VCS0lUX01JTk9SX1ZF
UlNJT04KLXdlYmtpdF9jaGVja192ZXJzaW9uCi13ZWJraXRfbWFqb3JfdmVyc2lvbgotd2Via2l0
X21pY3JvX3ZlcnNpb24KLXdlYmtpdF9taW5vcl92ZXJzaW9uCi08U1VCU0VDVElPTiBQcml2YXRl
PgotTElCU09VUF9JX0hBVkVfUkVBRF9CVUdfNTk0Mzc3X0FORF9LTk9XX1NPVVBfUEFTU1dPUkRf
TUFOQUdFUl9NSUdIVF9HT19BV0FZCi1XRUJLSVRfVVNFUl9BR0VOVF9NQUpPUl9WRVJTSU9OCi1X
RUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9OCi08L1NFQ1RJT04+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9kb2NzL3dlYmtpdGd0ay50eXBlcyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L2RvY3Mvd2Via2l0Z3RrLnR5cGVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDQ5
YjVjLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL2RvY3Mvd2Via2l0Z3RrLnR5cGVz
CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXQu
aD4KLXdlYmtpdF9kb3dubG9hZF9nZXRfdHlwZQotd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0
X3R5cGUKLXdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfdHlwZQotd2Via2l0X2dlb2xv
Y2F0aW9uX3BvbGljeV9kZWNpc2lvbl9nZXRfdHlwZQotd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9n
ZXRfdHlwZQotd2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0X3R5cGUKLXdlYmtpdF9uZXR3b3JrX3Jl
cXVlc3RfZ2V0X3R5cGUKLXdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dldF90eXBlCi13ZWJraXRf
c2VjdXJpdHlfb3JpZ2luX2dldF90eXBlCi13ZWJraXRfc291cF9hdXRoX2RpYWxvZ19nZXRfdHlw
ZQotd2Via2l0X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfZ2V0X3R5cGUKLXdlYmtpdF93ZWJfYmFja19m
b3J3YXJkX2xpc3RfZ2V0X3R5cGUKLXdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X3R5cGUKLXdlYmtp
dF93ZWJfZGF0YV9zb3VyY2VfZ2V0X3R5cGUKLXdlYmtpdF93ZWJfZnJhbWVfZ2V0X3R5cGUKLXdl
YmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90eXBlCi13ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRf
dHlwZQotd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfdHlwZQotd2Via2l0X3dlYl9w
bHVnaW5fZGF0YWJhc2VfZ2V0X3R5cGUKLXdlYmtpdF93ZWJfcGx1Z2luX2dldF90eXBlCi13ZWJr
aXRfd2ViX3BvbGljeV9kZWNpc2lvbl9nZXRfdHlwZQotd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRf
dHlwZQotd2Via2l0X3dlYl9zZXR0aW5nc19nZXRfdHlwZQotd2Via2l0X3dlYl92aWV3X2dldF90
eXBlCi13ZWJraXRfd2ViX3dpbmRvd19mZWF0dXJlc19nZXRfdHlwZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvZ2RvbS9Db252ZXJ0VG9HQ2hhclByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL2dkb20vQ29udmVydFRvR0NoYXJQcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM3Yjk3NmYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvZ2RvbS9D
b252ZXJ0VG9HQ2hhclByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRv
biA8bGtjbEBsa2NsLm5ldD4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBDb252ZXJ0VG9HQ2hhclByaXZhdGVfaAotI2RlZmlu
ZSBDb252ZXJ0VG9HQ2hhclByaXZhdGVfaAotCi0jaW5jbHVkZSAiVVJMLmgiCi0jaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1pbmxpbmUgZ2NoYXIqIGNvcHlBc0dj
aGFyKFdURjo6U3RyaW5nIGNvbnN0JiBzKQotewotICAgIHJldHVybiBnX3N0cmR1cChzLnV0Zjgo
KS5kYXRhKCkpOwotfQotCi1pbmxpbmUgZ2NoYXIqIGNvcHlBc0djaGFyKFdlYkNvcmU6OlVSTCBj
b25zdCYgcykKLXsKLSAgICByZXR1cm4gY29weUFzR2NoYXIocy5zdHJpbmcoKSk7Ci19Ci0KLWlu
bGluZSBnY2hhciogY29weUFzR2NoYXIoY29uc3QgU3RyaW5nJiBzKQotewotICAgIHJldHVybiBn
X3N0cmR1cChzLlVURjhTdHJpbmcoKS5jX3N0cigpKTsKLX0KLQotaW5saW5lIGdjaGFyKiBjb3B5
QXNHY2hhcihXVEY6OkF0b21pY1N0cmluZyBjb25zdCYgcykKLXsKLSAgICByZXR1cm4gZ19zdHJk
dXAocy5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLX0KLQotI2VuZGlmIC8qIENvbnZlcnRUb0dD
aGFyUHJpdmF0ZV9oKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Jlc291cmNlcy9l
cnJvci5odG1sIGIvU291cmNlL1dlYktpdC9ndGsvcmVzb3VyY2VzL2Vycm9yLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyOWJlMmMuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvcmVzb3VyY2VzL2Vycm9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkVycm9yPC90aXRsZT4KLTxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+Ci1ib2R5IHsKLSBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwotIG1hcmdpbjogMDsK
LSBwYWRkaW5nOiAwOwotfQotCi0jZXJyb3JDb250YWluZXIgewotIGJhY2tncm91bmQ6ICNmZmY7
Ci0gbWluLXdpZHRoOiAzNWVtOwotIG1heC13aWR0aDogMzVlbTsKLSBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0gdG9wOiAyZW07Ci0gbGVmdDogMWVtOwotIHBhZGRpbmc6IDEwcHg7Ci0gYm9yZGVyOiAy
cHggc29saWQgI2VlZTsKLSAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDsKLX0KLQotI2Vycm9y
VGl0bGVUZXh0IHsKLSBmb250LXNpemU6IDEyMCUlOwotIGZvbnQtd2VpZ2h0OiBib2xkOwotfQot
Ci0jZXJyb3JNZXNzYWdlVGV4dCB7Ci0gZm9udC1zaXplOiA4MCUlOwotfQotCi08L3N0eWxlPgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi1mdW5jdGlvbiB0cnlhZ2FpbigpCi17
Ci0gbG9jYXRpb24ucmVsb2FkKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRp
diBpZD0iZXJyb3JDb250YWluZXIiPgotCi08ZGl2IGlkPSJlcnJvclRpdGxlIj4KLSA8cCBpZD0i
ZXJyb3JUaXRsZVRleHQiPlVuYWJsZSB0byBsb2FkIHBhZ2U8L3A+Ci08L2Rpdj4KLTxkaXYgaWQ9
ImVycm9yTWVzc2FnZSI+Ci0gPHA+UHJvYmxlbSBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nIHRoZSBV
UkwgJXM8L3A+Ci0gPHAgaWQ9ImVycm9yTWVzc2FnZVRleHQiPiVzPC9hPgotPC9wPgotPC9kaXY+
Ci0KLTxmb3JtIG5hbWU9ImJsIj4KLTxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJUcnkgYWdh
aW4iIG9uY2xpY2s9ImphdmFzY3JpcHQ6dHJ5YWdhaW4oKSIgLz4KLTwvZm9ybT4KLQotPC9kaXY+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC5wYy5pbiBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC5wYy5pbgpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMWQwYzRlOS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQucGMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1wcmVmaXg9QHByZWZp
eEAKLWV4ZWNfcHJlZml4PUBleGVjX3ByZWZpeEAKLWxpYmRpcj1AbGliZGlyQAotaW5jbHVkZWRp
cj1AaW5jbHVkZWRpckAKLQotTmFtZTogV2ViS2l0Ci1EZXNjcmlwdGlvbjogV2ViIGNvbnRlbnQg
ZW5naW5lIGZvciBHVEsrCi1WZXJzaW9uOiBAVkVSU0lPTkAKLVJlcXVpcmVzOiBnbGliLTIuMCBn
dGsrLUBHVEtfQVBJX1ZFUlNJT05AIGxpYnNvdXAtMi40IGphdmFzY3JpcHRjb3JlZ3RrLUBXRUJL
SVRHVEtfQVBJX1ZFUlNJT05ACi1MaWJzOiAtTCR7bGliZGlyfSAtbHdlYmtpdGd0ay1AV0VCS0lU
R1RLX0FQSV9WRVJTSU9OQAotQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vd2Via2l0Z3RrLUBXRUJL
SVRHVEtfQVBJX1ZFUlNJT05ACmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0LmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFhN2I5M2QuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgotICogQ29weXJp
Z2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgX19XRUJLSVRfSF9fCi0jZGVmaW5l
IF9fV0VCS0lUX0hfXwotCi0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHZlcnNpb24uaD4KLSNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZS5oPgotI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRkZWZpbmVzLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRvbS5oPgotI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRkb3dubG9hZC5oPgotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRlbnVtdHlw
ZXMuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmg+Ci0jaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdGZpbGVjaG9vc2VycmVxdWVzdC5oPgotI2luY2x1ZGUgPHdlYmtpdC93
ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtp
dGdsb2JhbHMuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5oPgotI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXRpY29uZGF0YWJhc2UuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Vi
a2l0bmV0d29ya3JlcXVlc3QuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29ya3Jlc3Bv
bnNlLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmg+Ci0jaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtp
dHNwZWxsY2hlY2tlci5oPgotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0
ZXMuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0Lmg+Ci0jaW5j
bHVkZSA8d2Via2l0L3dlYmtpdHdlYmRhdGFiYXNlLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtp
dHdlYmRhdGFzb3VyY2UuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2ViZnJhbWUuaD4KLSNp
bmNsdWRlIDx3ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaD4KLSNpbmNsdWRlIDx3ZWJraXQv
d2Via2l0d2ViaW5zcGVjdG9yLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYm5hdmlnYXRp
b25hY3Rpb24uaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2VicGx1Z2luLmg+Ci0jaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdHdlYnBsdWdpbmRhdGFiYXNlLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dl
YmtpdHdlYnBvbGljeWRlY2lzaW9uLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYnJlc291
cmNlLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmg+Ci0jaW5jbHVkZSA8
d2Via2l0L3dlYmtpdHdlYnZpZXcuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vid2luZG93
ZmVhdHVyZXMuaD4KLQotI2VuZGlmIC8qIF9fV0VCS0lUX0hfXyAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwIGIvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkZjM2MzViLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgSmFuIE1pY2hhZWwgQWxvbnpv
IDxqbWFsb256b0BnbWFpbC5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgTHVrYXN6IFNsYWNo
Y2lhawotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAid2Via2l0YXBwbGljYXRpb25jYWNo
ZS5oIgotCi0jaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKLSNpbmNsdWRlICJG
aWxlU3lzdGVtLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi0vLyB3ZWIgYXBw
bGljYXRpb24gY2FjaGUgbWF4aW11bSBzdG9yYWdlIHNpemUKLXN0YXRpYyB1bnNpZ25lZCBsb25n
IGxvbmcgY2FjaGVNYXhTaXplID0gVUlOVF9NQVg7Ci0KLS8qKgotICogd2Via2l0X2FwcGxpY2F0
aW9uX2NhY2hlX2dldF9tYXhpbXVtX3NpemU6Ci0gKgotICogUmV0dXJucyB0aGUgbWF4aW11bSBz
aXplIG9mIHRoZSBjYWNoZSBzdG9yYWdlLgotICogQnkgZGVmYXVsdCBpdCBpcyBzZXQgdG8gVUlO
VF9NQVggaS5lLiBubyBxdW90YS4KLSAqCi0gKiBSZXR1cm5zOiB0aGUgY3VycmVudCBhcHBsaWNh
dGlvbiBjYWNoZSBtYXhpbXVtIHN0b3JhZ2Ugc2l6ZQotICoKLSAqIFNpbmNlOiAxLjMuMTMKLSAq
Ki8KLXVuc2lnbmVkIGxvbmcgbG9uZyB3ZWJraXRfYXBwbGljYXRpb25fY2FjaGVfZ2V0X21heGlt
dW1fc2l6ZSgpCi17Ci0gICAgcmV0dXJuIChjYWNoZU1heFNpemUgPSBXZWJDb3JlOjpjYWNoZVN0
b3JhZ2UoKS5tYXhpbXVtU2l6ZSgpKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfYXBwbGljYXRpb25f
Y2FjaGVfc2V0X21heGltdW1fc2l6ZToKLSAqIEBzaXplOiB0aGUgbmV3IHdlYiBhcHBsaWNhdGlv
biBjYWNoZSBtYXhpbXVtIHN0b3JhZ2Ugc2l6ZQotICoKLSAqIFNldHMgbmV3IGFwcGxpY2F0aW9u
IGNhY2hlIG1heGltdW0gc3RvcmFnZSBzaXplLgotICogQ2hhbmdpbmcgdGhlIGFwcGxpY2F0aW9u
IGNhY2hlIHN0b3JhZ2Ugc2l6ZSB3aWxsIGNsZWFyIHRoZSBjYWNoZQotICogYW5kIHJlYnVpbGQg
Y2FjaGUgc3RvcmFnZS4KLSAqCi0gKiBTaW5jZTogMS4zLjEzCi0gKiovCi12b2lkIHdlYmtpdF9h
cHBsaWNhdGlvbl9jYWNoZV9zZXRfbWF4aW11bV9zaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXpl
KQotewotICAgIGlmIChzaXplICE9IGNhY2hlTWF4U2l6ZSkgewotICAgICAgICBXZWJDb3JlOjpj
YWNoZVN0b3JhZ2UoKS5lbXB0eSgpOwotICAgICAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS52
YWN1dW1EYXRhYmFzZUZpbGUoKTsKLSAgICAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuc2V0
TWF4aW11bVNpemUoc2l6ZSk7Ci0gICAgICAgIGNhY2hlTWF4U2l6ZSA9IHNpemU7Ci0gICAgfQot
fQotCi0vKioKLSAqIHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9nZXRfZGF0YWJhc2VfZGlyZWN0
b3J5X3BhdGg6Ci0gKgotICogUmV0dXJucyB0aGUgcGF0aCB0byB0aGUgZGlyZWN0b3J5IFdlYktp
dCB3aWxsIHdyaXRlIHdlYiBhcHBsaWNhdGlvbgotICogY2FjaGUgZGF0YWJhc2VzIHRvLiBCeSBk
ZWZhdWx0IHRoaXMgcGF0aCBpcyBzZXQgdG8KLSAqICRYREdfQ0FDSEVfSE9NRS93ZWJraXRndGsv
YXBwbGljYXRpb25zIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQuCi0gKgotICogUmV0dXJuczogdGhl
IGFwcGxpY2F0aW9uIGNhY2hlIGRhdGFiYXNlIGRpcmVjdG9yeSBwYXRoCi0gKgotICogU2luY2U6
IDEuMy4xMwotICoqLwotY29uc3QgZ2NoYXIqIHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9nZXRf
ZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgoKQotewotICAgIENTdHJpbmcgcGF0aCA9IFdlYkNvcmU6
OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5jYWNoZURp
cmVjdG9yeSgpKTsKLSAgICByZXR1cm4gcGF0aC5kYXRhKCk7Ci19Ci0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZS5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0ZmVjMTY5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEx1a2FzeiBTbGFjaGNpYWsKLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiwxIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5k
ZWYgd2Via2l0YXBwbGljYXRpb25jYWNoZV9oCi0jZGVmaW5lIHdlYmtpdGFwcGxpY2F0aW9uY2Fj
aGVfaAotCi0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KLQotR19CRUdJTl9ERUNM
UwotCi1XRUJLSVRfQVBJIHVuc2lnbmVkIGxvbmcgbG9uZwotd2Via2l0X2FwcGxpY2F0aW9uX2Nh
Y2hlX2dldF9tYXhpbXVtX3NpemUodm9pZCk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2Fw
cGxpY2F0aW9uX2NhY2hlX3NldF9tYXhpbXVtX3NpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUp
OwotCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgotd2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dl
dF9kYXRhYmFzZV9kaXJlY3RvcnlfcGF0aCh2b2lkKTsKLQotR19FTkRfREVDTFMKLQotI2VuZGlm
IC8qIHdlYmtpdGFwcGxpY2F0aW9uY2FjaGVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGF1dGhlbnRpY2F0aW9uZGlhbG9nLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRhdXRoZW50aWNhdGlvbmRpYWxvZy5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGUyNmRlZmEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGF1dGhlbnRpY2F0aW9uZGlhbG9nLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDYzICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCi0g
KgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAq
ICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAid2Via2l0YXV0aGVudGljYXRpb25kaWFsb2cuaCIKLQotc3RhdGljIHZvaWQgYXV0aGVu
dGljYXRpb25EaWFsb2dSZXNwb25zZUNhbGxiYWNrKEd0a1dpZGdldCogYXV0aERpYWxvZywgZ2lu
dCByZXNwb25zZUlELCBXZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldCogYXV0aFdpZGdldCkKLXsK
LSAgICBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UgPSB3ZWJraXRB
dXRoZW50aWNhdGlvbldpZGdldEdldENoYWxsZW5nZShhdXRoV2lkZ2V0KTsKLSAgICBpZiAocmVz
cG9uc2VJRCA9PSBHVEtfUkVTUE9OU0VfT0spIHsKLSAgICAgICAgV2ViQ29yZTo6Q3JlZGVudGlh
bCBjcmVkZW50aWFsID0gd2Via2l0QXV0aGVudGljYXRpb25XaWRnZXRDcmVhdGVDcmVkZW50aWFs
KGF1dGhXaWRnZXQpOwotICAgICAgICBjaGFsbGVuZ2UuYXV0aGVudGljYXRpb25DbGllbnQoKS0+
cmVjZWl2ZWRDcmVkZW50aWFsKGNoYWxsZW5nZSwgY3JlZGVudGlhbCk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIGNoYWxsZW5nZS5hdXRoZW50aWNhdGlvbkNsaWVudCgpLT5yZWNlaXZlZFJlcXVlc3RU
b0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY2hhbGxlbmdlKTsKLQotICAgIGd0a193aWRnZXRf
ZGVzdHJveShhdXRoRGlhbG9nKTsKLX0KLQotR3RrV2lkZ2V0KiBjcmVhdGVBdXRoZW50aWNhdGlv
bkRpYWxvZyhHdGtXaW5kb3cqIHBhcmVudFdpbmRvdywgY29uc3QgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSwgQ3JlZGVudGlhbFN0b3JhZ2VNb2RlIG1vZGUpCi17
Ci0gICAgR3RrRGlhbG9nKiBkaWFsb2cgPSBHVEtfRElBTE9HKGd0a19kaWFsb2dfbmV3KCkpOwot
ICAgIGd0a19kaWFsb2dfYWRkX2J1dHRvbnMoZGlhbG9nLCBHVEtfU1RPQ0tfQ0FOQ0VMLCBHVEtf
UkVTUE9OU0VfQ0FOQ0VMLCBHVEtfU1RPQ0tfT0ssIEdUS19SRVNQT05TRV9PSywgTlVMTCk7Ci0g
ICAgZ3RrX2RpYWxvZ19zZXRfZGVmYXVsdF9yZXNwb25zZShkaWFsb2csIEdUS19SRVNQT05TRV9P
Syk7Ci0KLSAgICBHdGtXaWRnZXQqIGNvbnRlbnRBcmVhID0gZ3RrX2RpYWxvZ19nZXRfY29udGVu
dF9hcmVhKGRpYWxvZyk7Ci0gICAgZ3RrX2NvbnRhaW5lcl9zZXRfYm9yZGVyX3dpZHRoKEdUS19D
T05UQUlORVIoZGlhbG9nKSwgNSk7Ci0gICAgZ3RrX2JveF9zZXRfc3BhY2luZyhHVEtfQk9YKGNv
bnRlbnRBcmVhKSwgMik7IC8qIDIgKiA1ICsgMiA9IDEyICovCi0KLSAgICBHdGtXaWRnZXQqIGF1
dGhXaWRnZXQgPSB3ZWJraXRBdXRoZW50aWNhdGlvbldpZGdldE5ldyhjaGFsbGVuZ2UsIG1vZGUp
OwotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGNvbnRlbnRBcmVhKSwgYXV0aFdpZGdl
dCwgVFJVRSwgVFJVRSwgMCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGF1dGhXaWRnZXQpOwotCi0g
ICAgR3RrV2lkZ2V0KiBhY3Rpb25BcmVhID0gZ3RrX2RpYWxvZ19nZXRfYWN0aW9uX2FyZWEoZGlh
bG9nKTsKLSAgICBndGtfY29udGFpbmVyX3NldF9ib3JkZXJfd2lkdGgoR1RLX0NPTlRBSU5FUihh
Y3Rpb25BcmVhKSwgNSk7Ci0gICAgZ3RrX2JveF9zZXRfc3BhY2luZyhHVEtfQk9YKGFjdGlvbkFy
ZWEpLCA2KTsKLQotICAgIEd0a1dpbmRvdyogd2luZG93ID0gR1RLX1dJTkRPVyhkaWFsb2cpOwot
ICAgIGd0a193aW5kb3dfc2V0X3Jlc2l6YWJsZSh3aW5kb3csIEZBTFNFKTsKLSAgICBndGtfd2lu
ZG93X3NldF90aXRsZSh3aW5kb3csICIiKTsKLSAgICBndGtfd2luZG93X3NldF9pY29uX25hbWUo
d2luZG93LCBHVEtfU1RPQ0tfRElBTE9HX0FVVEhFTlRJQ0FUSU9OKTsKLSAgICBndGtfd2luZG93
X3NldF9kZXN0cm95X3dpdGhfcGFyZW50ICh3aW5kb3csIFRSVUUpOwotICAgIGlmIChwYXJlbnRX
aW5kb3cpCi0gICAgICAgIGd0a193aW5kb3dfc2V0X3RyYW5zaWVudF9mb3Iod2luZG93LCBwYXJl
bnRXaW5kb3cpOwotCi0gICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdf
Q0FMTEJBQ0soYXV0aGVudGljYXRpb25EaWFsb2dSZXNwb25zZUNhbGxiYWNrKSwgYXV0aFdpZGdl
dCk7Ci0KLSAgICByZXR1cm4gR1RLX1dJREdFVChkaWFsb2cpOwotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGF1dGhlbnRpY2F0aW9uZGlhbG9nLmggYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0YXV0aGVudGljYXRpb25kaWFsb2cuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkzYWM4NC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0YXV0aGVudGljYXRpb25kaWFsb2cuaAorKysgL2Rldi9udWxs
CkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwu
Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
LSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIHdlYmtpdGF1dGhlbnRp
Y2F0aW9uZGlhbG9nX2gKLSNkZWZpbmUgd2Via2l0YXV0aGVudGljYXRpb25kaWFsb2dfaAotCi0j
aW5jbHVkZSAiV2ViS2l0QXV0aGVudGljYXRpb25XaWRnZXQuaCIKLQotR3RrV2lkZ2V0KiBjcmVh
dGVBdXRoZW50aWNhdGlvbkRpYWxvZyhHdGtXaW5kb3cqIHBhcmVudFdpbmRvdywgY29uc3QgV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDcmVkZW50aWFsU3RvcmFnZU1vZGUpOwot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZp
bmVzLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZGVmaW5lcy5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTA5OWI5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRkZWZpbmVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMTUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhl
cgotICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKgotICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
LSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0ZGVm
aW5lc19oCi0jZGVmaW5lIHdlYmtpdGRlZmluZXNfaAotCi0jaW5jbHVkZSA8Z2xpYi5oPgotCi0j
aWZkZWYgR19PU19XSU4zMgotICAgICNpZmRlZiBCVUlMRElOR19XRUJLSVQKLSAgICAgICAgI2Rl
ZmluZSBXRUJLSVRfQVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQotICAgICNlbHNlCi0gICAgICAg
ICNkZWZpbmUgV0VCS0lUX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKLSAgICAjZW5kaWYKLSAg
ICAjZGVmaW5lIFdFQktJVF9PQlNPTEVURV9BUEkgV0VCS0lUX0FQSQotI2Vsc2UKLSAgICAjZGVm
aW5lIFdFQktJVF9BUEkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKLSAg
ICAjZGVmaW5lIFdFQktJVF9PQlNPTEVURV9BUEkgV0VCS0lUX0FQSSBfX2F0dHJpYnV0ZV9fKChk
ZXByZWNhdGVkKSkKLSNlbmRpZgotCi0jaWZuZGVmIFdFQktJVF9BUEkKLSAgICAjZGVmaW5lIFdF
QktJVF9BUEkKLSNlbmRpZgotCi1HX0JFR0lOX0RFQ0xTCi0KLXR5cGVkZWYgc3RydWN0IF9XZWJL
aXRJY29uRGF0YWJhc2UgV2ViS2l0SWNvbkRhdGFiYXNlOwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktp
dEljb25EYXRhYmFzZUNsYXNzIFdlYktpdEljb25EYXRhYmFzZUNsYXNzOwotCi10eXBlZGVmIHN0
cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3QgV2ViS2l0TmV0d29ya1JlcXVlc3Q7Ci10eXBlZGVm
IHN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RDbGFzcyBXZWJLaXROZXR3b3JrUmVxdWVzdENs
YXNzOwotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0TmV0d29ya1Jlc3BvbnNlIFdlYktpdE5ldHdv
cmtSZXNwb25zZTsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXROZXR3b3JrUmVzcG9uc2VDbGFzcyBX
ZWJLaXROZXR3b3JrUmVzcG9uc2VDbGFzczsKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkJh
Y2tGb3J3YXJkTGlzdCBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3Q7Ci10eXBlZGVmIHN0cnVjdCBf
V2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0Q2xhc3MgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0Q2xh
c3M7Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJIaXN0b3J5SXRlbSBXZWJLaXRXZWJIaXN0
b3J5SXRlbTsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJIaXN0b3J5SXRlbUNsYXNzIFdlYktp
dFdlYkhpc3RvcnlJdGVtQ2xhc3M7Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJGcmFtZSBX
ZWJLaXRXZWJGcmFtZTsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJGcmFtZUNsYXNzIFdlYktp
dFdlYkZyYW1lQ2xhc3M7Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJQb2xpY3lEZWNpc2lv
biBXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbjsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJQb2xp
Y3lEZWNpc2lvbkNsYXNzIFdlYktpdFdlYlBvbGljeURlY2lzaW9uQ2xhc3M7Ci0KLXR5cGVkZWYg
c3RydWN0IF9XZWJLaXRXZWJTZXR0aW5ncyBXZWJLaXRXZWJTZXR0aW5nczsKLXR5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRXZWJTZXR0aW5nc0NsYXNzIFdlYktpdFdlYlNldHRpbmdzQ2xhc3M7Ci0KLXR5
cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJJbnNwZWN0b3IgV2ViS2l0V2ViSW5zcGVjdG9yOwotdHlw
ZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkluc3BlY3RvckNsYXNzIFdlYktpdFdlYkluc3BlY3RvckNs
YXNzOwotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViV2luZG93RmVhdHVyZXMgV2ViS2l0V2Vi
V2luZG93RmVhdHVyZXM7Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViV2luZG93RmVhdHVyZXND
bGFzcyBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlc0NsYXNzOwotCi10eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0V2ViVmlldyBXZWJLaXRXZWJWaWV3OwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdD
bGFzcyBXZWJLaXRXZWJWaWV3Q2xhc3M7Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXREb3dubG9h
ZCBXZWJLaXREb3dubG9hZDsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXREb3dubG9hZENsYXNzIFdl
YktpdERvd25sb2FkQ2xhc3M7Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJSZXNvdXJjZSBX
ZWJLaXRXZWJSZXNvdXJjZTsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJSZXNvdXJjZUNsYXNz
IFdlYktpdFdlYlJlc291cmNlQ2xhc3M7Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJEYXRh
U291cmNlIFdlYktpdFdlYkRhdGFTb3VyY2U7Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViRGF0
YVNvdXJjZUNsYXNzIFdlYktpdFdlYkRhdGFTb3VyY2VDbGFzczsKLQotdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFdlYkRhdGFiYXNlIFdlYktpdFdlYkRhdGFiYXNlOwotdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdFdlYkRhdGFiYXNlQ2xhc3MgV2ViS2l0V2ViRGF0YWJhc2VDbGFzczsKLQotdHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFNlY3VyaXR5T3JpZ2luIFdlYktpdFNlY3VyaXR5T3JpZ2luOwotdHlwZWRl
ZiBzdHJ1Y3QgX1dlYktpdFNlY3VyaXR5T3JpZ2luQ2xhc3MgV2ViS2l0U2VjdXJpdHlPcmlnaW5D
bGFzczsKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEhpdFRlc3RSZXN1bHQgV2ViS2l0SGl0VGVz
dFJlc3VsdDsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRIaXRUZXN0UmVzdWx0Q2xhc3MgV2ViS2l0
SGl0VGVzdFJlc3VsdENsYXNzOwotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0R2VvbG9jYXRpb25Q
b2xpY3lEZWNpc2lvbiBXZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9uOwotdHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNpb25DbGFzcyBXZWJLaXRHZW9sb2Nh
dGlvblBvbGljeURlY2lzaW9uQ2xhc3M7Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRWaWV3cG9y
dEF0dHJpYnV0ZXMgV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzOwotdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdFZpZXdwb3J0QXR0cmlidXRlc0NsYXNzIFdlYktpdFZpZXdwb3J0QXR0cmlidXRlc0NsYXNz
OwotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViUGx1Z2luRGF0YWJhc2UgICAgICAgIFdlYktp
dFdlYlBsdWdpbkRhdGFiYXNlOwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlBsdWdpbkRhdGFi
YXNlQ2xhc3MgICBXZWJLaXRXZWJQbHVnaW5EYXRhYmFzZUNsYXNzOwotCi10eXBlZGVmIHN0cnVj
dCBfV2ViS2l0V2ViUGx1Z2luICAgICAgV2ViS2l0V2ViUGx1Z2luOwotdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdFdlYlBsdWdpbkNsYXNzIFdlYktpdFdlYlBsdWdpbkNsYXNzOwotCi10eXBlZGVmIHN0
cnVjdCBfV2ViS2l0U3BlbGxDaGVja2VyIFdlYktpdFNwZWxsQ2hlY2tlcjsgLyogZHVtbXkgdHlw
ZWRlZiAqLwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFNwZWxsQ2hlY2tlckludGVyZmFjZSBXZWJL
aXRTcGVsbENoZWNrZXJJbnRlcmZhY2U7Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRGYXZpY29u
RGF0YWJhc2UgV2ViS2l0RmF2aWNvbkRhdGFiYXNlOwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEZh
dmljb25EYXRhYmFzZUNsYXNzIFdlYktpdEZhdmljb25EYXRhYmFzZUNsYXNzOwotCi1HX0VORF9E
RUNMUwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRkb20uaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb20uaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggODRiOWNjZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZG9tLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgX193ZWJraXRkb21f
aF9fCi0jZGVmaW5lIF9fd2Via2l0ZG9tX2hfXwotCi0jaW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtp
dGRvbS5oPgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRkb3dubG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxv
YWQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTc1ZjdiLi4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw5ODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJv
cmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSA8Z25z
QGdub21lLm9yZz4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIndlYmtpdGRvd25sb2Fk
LmgiCi0KLSNpbmNsdWRlICJFcnJvcnNHdGsuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgotI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUg
IlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKLSNpbmNsdWRl
ICJ3ZWJraXRkb3dubG9hZHByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXRlbnVtdHlwZXMuaCIK
LSNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzLmgiCi0jaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZh
dGUuaCIKLSNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCi0jaW5jbHVkZSAid2Via2l0bmV0d29y
a3JlcXVlc3Rwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlLmgiCi0j
aW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlcHJpdmF0ZS5oIgotI2luY2x1ZGUgPGdsaWIv
Z2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KLSNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
LQotI2lmZGVmIEVSUk9SCi0jdW5kZWYgRVJST1IKLSNlbmRpZgotCi11c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLS8qKgotICogU0VDVElPTjp3ZWJr
aXRkb3dubG9hZAotICogQHNob3J0X2Rlc2NyaXB0aW9uOiBPYmplY3QgdXNlZCB0byBjb21tdW5p
Y2F0ZSB3aXRoIHRoZSBhcHBsaWNhdGlvbiB3aGVuIGRvd25sb2FkaW5nLgotICoKLSAqICNXZWJL
aXREb3dubG9hZCBjYXJyaWVzIGluZm9ybWF0aW9uIGFib3V0IGEgZG93bmxvYWQgcmVxdWVzdCwK
LSAqIGluY2x1ZGluZyBhICNXZWJLaXROZXR3b3JrUmVxdWVzdCBvYmplY3QuIFRoZSBhcHBsaWNh
dGlvbiBtYXkgdXNlCi0gKiB0aGlzIG9iamVjdCB0byBjb250cm9sIHRoZSBkb3dubG9hZCBwcm9j
ZXNzLCBvciB0byBzaW1wbHkgZmlndXJlCi0gKiBvdXQgd2hhdCBpcyB0byBiZSBkb3dubG9hZGVk
LCBhbmQgZG8gaXQgaXRzZWxmLgotICovCi0KLWNsYXNzIERvd25sb2FkQ2xpZW50IDogcHVibGlj
IFJlc291cmNlSGFuZGxlQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEb3dubG9h
ZENsaWVudCk7Ci0KLXB1YmxpYzoKLSAgICBEb3dubG9hZENsaWVudChXZWJLaXREb3dubG9hZCop
OwotCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgdW5zaWduZWQsIGludCk7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3VyY2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gYnVmZmVyLCBpbnQgZW5jb2RlZExlbmd0aCk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwotICAg
IHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKik7Ci0gICAgdmlydHVhbCB2
b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKTsKLQotcHJpdmF0ZToKLSAgICBXZWJL
aXREb3dubG9hZCogbV9kb3dubG9hZDsKLX07Ci0KLXN0cnVjdCBfV2ViS2l0RG93bmxvYWRQcml2
YXRlIHsKLSAgICBnY2hhciogZGVzdGluYXRpb25VUkk7Ci0gICAgZ2NoYXIqIHN1Z2dlc3RlZEZp
bGVuYW1lOwotICAgIGd1aW50NjQgY3VycmVudFNpemU7Ci0gICAgR1RpbWVyKiB0aW1lcjsKLSAg
ICBXZWJLaXREb3dubG9hZFN0YXR1cyBzdGF0dXM7Ci0gICAgR0ZpbGVPdXRwdXRTdHJlYW0qIG91
dHB1dFN0cmVhbTsKLSAgICBEb3dubG9hZENsaWVudCogZG93bmxvYWRDbGllbnQ7Ci0gICAgV2Vi
S2l0TmV0d29ya1JlcXVlc3QqIG5ldHdvcmtSZXF1ZXN0OwotICAgIFdlYktpdE5ldHdvcmtSZXNw
b25zZSogbmV0d29ya1Jlc3BvbnNlOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gcmVzb3Vy
Y2VIYW5kbGU7Ci19OwotCi1lbnVtIHsKLSAgICAvLyBOb3JtYWwgc2lnbmFscy4KLSAgICBFUlJP
UiwKLSAgICBMQVNUX1NJR05BTAotfTsKLQotc3RhdGljIGd1aW50IHdlYmtpdF9kb3dubG9hZF9z
aWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9OwotCi1lbnVtIHsKLSAgICBQUk9QXzAsCi0KLSAg
ICBQUk9QX05FVFdPUktfUkVRVUVTVCwKLSAgICBQUk9QX0RFU1RJTkFUSU9OX1VSSSwKLSAgICBQ
Uk9QX1NVR0dFU1RFRF9GSUxFTkFNRSwKLSAgICBQUk9QX1BST0dSRVNTLAotICAgIFBST1BfU1RB
VFVTLAotICAgIFBST1BfQ1VSUkVOVF9TSVpFLAotICAgIFBST1BfVE9UQUxfU0laRSwKLSAgICBQ
Uk9QX05FVFdPUktfUkVTUE9OU0UKLX07Ci0KLUdfREVGSU5FX1RZUEUoV2ViS2l0RG93bmxvYWQs
IHdlYmtpdF9kb3dubG9hZCwgR19UWVBFX09CSkVDVCk7Ci0KLQotc3RhdGljIHZvaWQgd2Via2l0
X2Rvd25sb2FkX3NldF9yZXNwb25zZShXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKTsKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb3dubG9hZF9z
ZXRfc3RhdHVzKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCwgV2ViS2l0RG93bmxvYWRTdGF0dXMg
c3RhdHVzKTsKLQotc3RhdGljIHZvaWQgd2Via2l0X2Rvd25sb2FkX2Rpc3Bvc2UoR09iamVjdCog
b2JqZWN0KQotewotICAgIFdlYktpdERvd25sb2FkKiBkb3dubG9hZCA9IFdFQktJVF9ET1dOTE9B
RChvYmplY3QpOwotICAgIFdlYktpdERvd25sb2FkUHJpdmF0ZSogcHJpdiA9IGRvd25sb2FkLT5w
cml2OwotCi0gICAgaWYgKHByaXYtPm91dHB1dFN0cmVhbSkgewotICAgICAgICBnX29iamVjdF91
bnJlZihwcml2LT5vdXRwdXRTdHJlYW0pOwotICAgICAgICBwcml2LT5vdXRwdXRTdHJlYW0gPSBO
VUxMOwotICAgIH0KLQotICAgIGlmIChwcml2LT5uZXR3b3JrUmVxdWVzdCkgewotICAgICAgICBn
X29iamVjdF91bnJlZihwcml2LT5uZXR3b3JrUmVxdWVzdCk7Ci0gICAgICAgIHByaXYtPm5ldHdv
cmtSZXF1ZXN0ID0gTlVMTDsKLSAgICB9Ci0KLSAgICBpZiAocHJpdi0+bmV0d29ya1Jlc3BvbnNl
KSB7Ci0gICAgICAgIGdfb2JqZWN0X3VucmVmKHByaXYtPm5ldHdvcmtSZXNwb25zZSk7Ci0gICAg
ICAgIHByaXYtPm5ldHdvcmtSZXNwb25zZSA9IE5VTEw7Ci0gICAgfQotCi0gICAgR19PQkpFQ1Rf
Q0xBU1Mod2Via2l0X2Rvd25sb2FkX3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKLX0K
LQotc3RhdGljIHZvaWQgd2Via2l0X2Rvd25sb2FkX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkK
LXsKLSAgICBXZWJLaXREb3dubG9hZCogZG93bmxvYWQgPSBXRUJLSVRfRE9XTkxPQUQob2JqZWN0
KTsKLSAgICBXZWJLaXREb3dubG9hZFByaXZhdGUqIHByaXYgPSBkb3dubG9hZC0+cHJpdjsKLQot
ICAgIC8vIFdlIGRvbid0IGNhbGwgd2Via2l0X2Rvd25sb2FkX2NhbmNlbCgpIGJlY2F1c2Ugd2Ug
ZG9uJ3Qgd2FudCB0byBlbWl0Ci0gICAgLy8gc2lnbmFscyB3aGVuIGZpbmFsaXppbmcgYW4gb2Jq
ZWN0LgotICAgIGlmIChwcml2LT5yZXNvdXJjZUhhbmRsZSkgewotICAgICAgICBpZiAocHJpdi0+
c3RhdHVzID09IFdFQktJVF9ET1dOTE9BRF9TVEFUVVNfU1RBUlRFRCkgewotICAgICAgICAgICAg
cHJpdi0+cmVzb3VyY2VIYW5kbGUtPnNldENsaWVudCgwKTsKLSAgICAgICAgICAgIHByaXYtPnJl
c291cmNlSGFuZGxlLT5jYW5jZWwoKTsKLSAgICAgICAgfQotICAgICAgICBwcml2LT5yZXNvdXJj
ZUhhbmRsZS5yZWxlYXNlKCk7Ci0gICAgfQotCi0gICAgZGVsZXRlIHByaXYtPmRvd25sb2FkQ2xp
ZW50OwotCi0gICAgLy8gVGhlIGRvd25sb2FkIG9iamVjdCBtYXkgbmV2ZXIgaGF2ZSBfc3RhcnQg
Y2FsbGVkIG9uIGl0LCBzbyB3ZQotICAgIC8vIG5lZWQgdG8gbWFrZSBzdXJlIHRpbWVyIGlzIG5v
bi1OVUxMLgotICAgIGlmIChwcml2LT50aW1lcikgewotICAgICAgICBnX3RpbWVyX2Rlc3Ryb3ko
cHJpdi0+dGltZXIpOwotICAgICAgICBwcml2LT50aW1lciA9IE5VTEw7Ci0gICAgfQotCi0gICAg
Z19mcmVlKHByaXYtPmRlc3RpbmF0aW9uVVJJKTsKLSAgICBnX2ZyZWUocHJpdi0+c3VnZ2VzdGVk
RmlsZW5hbWUpOwotCi0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2Rvd25sb2FkX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9kb3dubG9h
ZF9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqIHZh
bHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXREb3dubG9hZCogZG93bmxvYWQg
PSBXRUJLSVRfRE9XTkxPQUQob2JqZWN0KTsKLQotICAgIHN3aXRjaChwcm9wX2lkKSB7Ci0gICAg
Y2FzZSBQUk9QX05FVFdPUktfUkVRVUVTVDoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZh
bHVlLCB3ZWJraXRfZG93bmxvYWRfZ2V0X25ldHdvcmtfcmVxdWVzdChkb3dubG9hZCkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTkVUV09SS19SRVNQT05TRToKLSAgICAgICAgZ192
YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG93bmxvYWRfZ2V0X25ldHdvcmtfcmVzcG9u
c2UoZG93bmxvYWQpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0RFU1RJTkFUSU9O
X1VSSToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG93bmxvYWRf
Z2V0X2Rlc3RpbmF0aW9uX3VyaShkb3dubG9hZCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFBST1BfU1VHR0VTVEVEX0ZJTEVOQU1FOgotICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFs
dWUsIHdlYmtpdF9kb3dubG9hZF9nZXRfc3VnZ2VzdGVkX2ZpbGVuYW1lKGRvd25sb2FkKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9QUk9HUkVTUzoKLSAgICAgICAgZ192YWx1ZV9z
ZXRfZG91YmxlKHZhbHVlLCB3ZWJraXRfZG93bmxvYWRfZ2V0X3Byb2dyZXNzKGRvd25sb2FkKSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9TVEFUVVM6Ci0gICAgICAgIGdfdmFsdWVf
c2V0X2VudW0odmFsdWUsIHdlYmtpdF9kb3dubG9hZF9nZXRfc3RhdHVzKGRvd25sb2FkKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9DVVJSRU5UX1NJWkU6Ci0gICAgICAgIGdfdmFs
dWVfc2V0X3VpbnQ2NCh2YWx1ZSwgd2Via2l0X2Rvd25sb2FkX2dldF9jdXJyZW50X3NpemUoZG93
bmxvYWQpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1RPVEFMX1NJWkU6Ci0gICAg
ICAgIGdfdmFsdWVfc2V0X3VpbnQ2NCh2YWx1ZSwgd2Via2l0X2Rvd25sb2FkX2dldF90b3RhbF9z
aXplKGRvd25sb2FkKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEdf
T0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsK
LSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9kb3dubG9hZF9zZXRfcHJvcGVydHkoR09i
amVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1T
cGVjICpwc3BlYykKLXsKLSAgICBXZWJLaXREb3dubG9hZCogZG93bmxvYWQgPSBXRUJLSVRfRE9X
TkxPQUQob2JqZWN0KTsKLSAgICBXZWJLaXREb3dubG9hZFByaXZhdGUqIHByaXYgPSBkb3dubG9h
ZC0+cHJpdjsKLQotICAgIHN3aXRjaChwcm9wX2lkKSB7Ci0gICAgY2FzZSBQUk9QX05FVFdPUktf
UkVRVUVTVDoKLSAgICAgICAgcHJpdi0+bmV0d29ya1JlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19S
RVFVRVNUKGdfdmFsdWVfZHVwX29iamVjdCh2YWx1ZSkpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFBST1BfTkVUV09SS19SRVNQT05TRToKLSAgICAgICAgcHJpdi0+bmV0d29ya1Jlc3BvbnNl
ID0gV0VCS0lUX05FVFdPUktfUkVTUE9OU0UoZ192YWx1ZV9kdXBfb2JqZWN0KHZhbHVlKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9ERVNUSU5BVElPTl9VUkk6Ci0gICAgICAgIHdl
YmtpdF9kb3dubG9hZF9zZXRfZGVzdGluYXRpb25fdXJpKGRvd25sb2FkLCBnX3ZhbHVlX2dldF9z
dHJpbmcodmFsdWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1NUQVRVUzoKLSAg
ICAgICAgd2Via2l0X2Rvd25sb2FkX3NldF9zdGF0dXMoZG93bmxvYWQsIHN0YXRpY19jYXN0PFdl
YktpdERvd25sb2FkU3RhdHVzPihnX3ZhbHVlX2dldF9lbnVtKHZhbHVlKSkpOwotICAgICAgICBi
cmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVS
VFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCB3
ZWJraXRfZG93bmxvYWRfY2xhc3NfaW5pdChXZWJLaXREb3dubG9hZENsYXNzKiBkb3dubG9hZENs
YXNzKQotewotICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhk
b3dubG9hZENsYXNzKTsKLSAgICBvYmplY3RDbGFzcy0+ZGlzcG9zZSA9IHdlYmtpdF9kb3dubG9h
ZF9kaXNwb3NlOwotICAgIG9iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF9kb3dubG9hZF9m
aW5hbGl6ZTsKLSAgICBvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0X2Rvd25sb2Fk
X2dldF9wcm9wZXJ0eTsKLSAgICBvYmplY3RDbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X2Rv
d25sb2FkX3NldF9wcm9wZXJ0eTsKLQotICAgIHdlYmtpdEluaXQoKTsKLQotICAgIC8qKgotICAg
ICAqIFdlYktpdERvd25sb2FkOjplcnJvcjoKLSAgICAgKiBAZG93bmxvYWQ6IHRoZSBvYmplY3Qg
b24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQGVycm9yX2NvZGU6IHRoZSBj
b3JyZXNwb25kaW5nIGVycm9yIGNvZGUKLSAgICAgKiBAZXJyb3JfZGV0YWlsOiBkZXRhaWxlZCBl
cnJvciBjb2RlIGZvciB0aGUgZXJyb3IsIHNlZQotICAgICAqICNXZWJLaXREb3dubG9hZEVycm9y
Ci0gICAgICogQHJlYXNvbjogYSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgZXJyb3IKLSAgICAgKgot
ICAgICAqIEVtaXR0ZWQgd2hlbiBAZG93bmxvYWQgaXMgaW50ZXJydXB0ZWQgZWl0aGVyIGJ5IHVz
ZXIgYWN0aW9uIG9yIGJ5Ci0gICAgICogbmV0d29yayBlcnJvcnMsIEBlcnJvcl9kZXRhaWwgd2ls
bCB0YWtlIGFueSB2YWx1ZSBvZgotICAgICAqICNXZWJLaXREb3dubG9hZEVycm9yLgotICAgICAq
Ci0gICAgICogU2luY2U6IDEuMS4yCi0gICAgICovCi0gICAgd2Via2l0X2Rvd25sb2FkX3NpZ25h
bHNbRVJST1JdID0gZ19zaWduYWxfbmV3KCJlcnJvciIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NM
QVNTKGRvd25sb2FkQ2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9M
QVNULAotICAgICAgICAwLAotICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRs
ZWQsCi0gICAgICAgIE5VTEwsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX0lOVF9J
TlRfU1RSSU5HLAotICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMywKLSAgICAgICAgR19UWVBFX0lO
VCwKLSAgICAgICAgR19UWVBFX0lOVCwKLSAgICAgICAgR19UWVBFX1NUUklORyk7Ci0KLSAgICAv
LyBQcm9wZXJ0aWVzLgotCi0gICAgLyoqCi0gICAgICogV2ViS2l0RG93bmxvYWQ6bmV0d29yay1y
ZXF1ZXN0OgotICAgICAqCi0gICAgICogVGhlICNXZWJLaXROZXR3b3JrUmVxdWVzdCBpbnN0YW5j
ZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRvd25sb2FkLgotICAgICAqCi0gICAgICogU2luY2U6IDEu
MS4yCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RD
bGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfTkVUV09SS19S
RVFVRVNULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVj
X29iamVjdCgibmV0d29yay1yZXF1ZXN0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTmV0d29yayBSZXF1ZXN0IiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBu
ZXR3b3JrIHJlcXVlc3QgZm9yIHRoZSBVUkkgdGhhdCBzaG91bGQgYmUgZG93bmxvYWRlZCIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
RUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JF
QURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7Ci0KLSAgICAvKioKLSAgICAgKiBX
ZWJLaXREb3dubG9hZDpuZXR3b3JrLXJlc3BvbnNlOgotICAgICAqCi0gICAgICogVGhlICNXZWJL
aXROZXR3b3JrUmVzcG9uc2UgaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkb3dubG9hZC4K
LSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEuMTYKLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9ORVRXT1JLX1JFU1BPTlNFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgibmV0d29yay1yZXNwb25zZSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
Ik5ldHdvcmsgUmVzcG9uc2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiVGhlIG5ldHdvcmsgcmVzcG9uc2UgZm9yIHRoZSBVUkkg
dGhhdCBzaG91bGQgYmUgZG93bmxvYWRlZCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNF
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoR1BhcmFtRmxhZ3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVD
VF9PTkxZKSkpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0RG93bmxvYWQ6ZGVzdGluYXRpb24t
dXJpOgotICAgICAqCi0gICAgICogVGhlIFVSSSBvZiB0aGUgc2F2ZSBsb2NhdGlvbiBmb3IgdGhp
cyBkb3dubG9hZC4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEuMgotICAgICAqLwotICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0RFU1RJTkFUSU9OX1VSSSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoImRlc3RpbmF0aW9u
LXVyaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF8oIkRlc3RpbmF0aW9uIFVSSSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgZGVzdGluYXRpb24gVVJJIHdoZXJl
IHRvIHNhdmUgdGhlIGZpbGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKLQotICAg
IC8qKgotICAgICAqIFdlYktpdERvd25sb2FkOnN1Z2dlc3RlZC1maWxlbmFtZToKLSAgICAgKgot
ICAgICAqIFRoZSBmaWxlIG5hbWUgc3VnZ2VzdGVkIGFzIGRlZmF1bHQgd2hlbiBzYXZpbmcKLSAg
ICAgKgotICAgICAqIFNpbmNlOiAxLjEuMgotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQUk9QX1NVR0dFU1RFRF9GSUxFTkFNRSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInN1Z2dlc3RlZC1maWxlbmFtZSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IlN1Z2dlc3RlZCBGaWxlbmFtZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgZmlsZW5hbWUgc3VnZ2VzdGVkIGFzIGRlZmF1
bHQgd2hlbiBzYXZpbmciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgLyoq
Ci0gICAgICogV2ViS2l0RG93bmxvYWQ6cHJvZ3Jlc3M6Ci0gICAgICoKLSAgICAgKiBEZXRlcm1p
bmVzIHRoZSBjdXJyZW50IHByb2dyZXNzIG9mIHRoZSBkb3dubG9hZC4gTm90aWNlIHRoYXQsCi0g
ICAgICogYWx0aG91Z2ggdGhlIHByb2dyZXNzIGNoYW5nZXMgYXJlIHJlcG9ydGVkIGFzIHNvb24g
YXMgcG9zc2libGUsCi0gICAgICogdGhlIGVtaXNzaW9uIG9mIHRoZSBub3RpZnkgc2lnbmFsIGZv
ciB0aGlzIHByb3BlcnR5IGlzCi0gICAgICogdGhyb3R0bGVkLCBmb3IgdGhlIGJlbmVmaXQgb2Yg
ZG93bmxvYWQgbWFuYWdlcnMuIElmIHlvdSBjYXJlCi0gICAgICogYWJvdXQgZXZlcnkgdXBkYXRl
LCB1c2UgV2ViS2l0RG93bmxvYWQ6Y3VycmVudC1zaXplLgotICAgICAqCi0gICAgICogU2luY2U6
IDEuMS4yCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmpl
Y3RDbGFzcywgUFJPUF9QUk9HUkVTUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19kb3VibGUoInByb2dyZXNzIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiUHJvZ3Jlc3MiKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRGV0
ZXJtaW5lcyB0aGUgY3VycmVudCBwcm9ncmVzcyBvZiB0aGUgZG93bmxvYWQiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wLCAxLjAs
IDEuMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRE
b3dubG9hZDpzdGF0dXM6Ci0gICAgICoKLSAgICAgKiBEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHN0
YXR1cyBvZiB0aGUgZG93bmxvYWQuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4xLjIKLSAgICAg
Ki8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9Q
X1NUQVRVUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl
Y19lbnVtKCJzdGF0dXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiU3RhdHVzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHN0YXR1
cyBvZiB0aGUgZG93bmxvYWQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX0RPV05MT0FEX1NUQVRVUywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9ET1dO
TE9BRF9TVEFUVVNfQ1JFQVRFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgLyoqCi0g
ICAgICogV2ViS2l0RG93bmxvYWQ6Y3VycmVudC1zaXplOgotICAgICAqCi0gICAgICogVGhlIGxl
bmd0aCBvZiB0aGUgZGF0YSBhbHJlYWR5IGRvd25sb2FkZWQKLSAgICAgKgotICAgICAqIFNpbmNl
OiAxLjEuMgotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2Jq
ZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0NVUlJF
TlRfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl
Y191aW50NjQoImN1cnJlbnQtc2l6ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkN1cnJlbnQgU2l6ZSIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgbGVuZ3Ro
IG9mIHRoZSBkYXRhIGFscmVhZHkgZG93bmxvYWRlZCIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBHX01BWFVJTlQ2NCwgMCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VC
S0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXREb3dubG9hZDp0
b3RhbC1zaXplOgotICAgICAqCi0gICAgICogVGhlIHRvdGFsIHNpemUgb2YgdGhlIGZpbGUKLSAg
ICAgKgotICAgICAqIFNpbmNlOiAxLjEuMgotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQUk9QX0NVUlJFTlRfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY191aW50NjQoInRvdGFsLXNpemUiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUb3RhbCBTaXplIiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIlRoZSB0b3RhbCBzaXplIG9mIHRoZSBmaWxlIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIEdfTUFYVUlOVDY0LCAwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShkb3du
bG9hZENsYXNzLCBzaXplb2YoV2ViS2l0RG93bmxvYWRQcml2YXRlKSk7Ci19Ci0KLXN0YXRpYyB2
b2lkIHdlYmtpdF9kb3dubG9hZF9pbml0KFdlYktpdERvd25sb2FkKiBkb3dubG9hZCkKLXsKLSAg
ICBXZWJLaXREb3dubG9hZFByaXZhdGUqIHByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZB
VEUoZG93bmxvYWQsIFdFQktJVF9UWVBFX0RPV05MT0FELCBXZWJLaXREb3dubG9hZFByaXZhdGUp
OwotICAgIGRvd25sb2FkLT5wcml2ID0gcHJpdjsKLQotICAgIHByaXYtPmRvd25sb2FkQ2xpZW50
ID0gbmV3IERvd25sb2FkQ2xpZW50KGRvd25sb2FkKTsKLSAgICBwcml2LT5jdXJyZW50U2l6ZSA9
IDA7Ci0gICAgcHJpdi0+c3RhdHVzID0gV0VCS0lUX0RPV05MT0FEX1NUQVRVU19DUkVBVEVEOwot
fQotCi0vKioKLSAqIHdlYmtpdF9kb3dubG9hZF9uZXc6Ci0gKiBAcmVxdWVzdDogYSAjV2ViS2l0
TmV0d29ya1JlcXVlc3QKLSAqCi0gKiBDcmVhdGVzIGEgbmV3ICNXZWJLaXREb3dubG9hZCBvYmpl
Y3QgZm9yIHRoZSBnaXZlbgotICogI1dlYktpdE5ldHdvcmtSZXF1ZXN0IG9iamVjdC4KLSAqCi0g
KiBSZXR1cm5zOiB0aGUgbmV3ICNXZWJLaXREb3dubG9hZAotICoKLSAqIFNpbmNlOiAxLjEuMgot
ICovCi1XZWJLaXREb3dubG9hZCogd2Via2l0X2Rvd25sb2FkX25ldyhXZWJLaXROZXR3b3JrUmVx
dWVzdCogcmVxdWVzdCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChyZXF1ZXN0LCBOVUxM
KTsKLQotICAgIHJldHVybiBXRUJLSVRfRE9XTkxPQUQoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBF
X0RPV05MT0FELCAibmV0d29yay1yZXF1ZXN0IiwgcmVxdWVzdCwgTlVMTCkpOwotfQotCi0vLyBJ
bnRlcm5hbCB1c2FnZSBvbmx5Ci1XZWJLaXREb3dubG9hZCogd2Via2l0X2Rvd25sb2FkX25ld193
aXRoX2hhbmRsZShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwocmVxdWVzdCwgTlVMTCk7Ci0KLSAgICBX
ZWJLaXREb3dubG9hZCogZG93bmxvYWQgPSBXRUJLSVRfRE9XTkxPQUQoZ19vYmplY3RfbmV3KFdF
QktJVF9UWVBFX0RPV05MT0FELCAibmV0d29yay1yZXF1ZXN0IiwgcmVxdWVzdCwgTlVMTCkpOwot
ICAgIFdlYktpdERvd25sb2FkUHJpdmF0ZSogcHJpdiA9IGRvd25sb2FkLT5wcml2OwotCi0gICAg
aGFuZGxlLT5yZWYoKTsKLSAgICBoYW5kbGUtPnNldERlZmVyc0xvYWRpbmcodHJ1ZSk7Ci0gICAg
cHJpdi0+cmVzb3VyY2VIYW5kbGUgPSBoYW5kbGU7Ci0KLSAgICB3ZWJraXRfZG93bmxvYWRfc2V0
X3Jlc3BvbnNlKGRvd25sb2FkLCByZXNwb25zZSk7Ci0KLSAgICByZXR1cm4gZG93bmxvYWQ7Ci19
Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdERvd25sb2FkRW1pdEVycm9yKFdlYktpdERvd25sb2FkKiBk
b3dubG9hZCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCi17Ci0gICAgV2ViS2l0RG93bmxv
YWRFcnJvciBlcnJvckNvZGU7Ci0gICAgc3dpdGNoIChlcnJvci5lcnJvckNvZGUoKSkgewotICAg
IGNhc2UgRG93bmxvYWRFcnJvck5ldHdvcms6Ci0gICAgICAgIGVycm9yQ29kZSA9IFdFQktJVF9E
T1dOTE9BRF9FUlJPUl9ORVRXT1JLOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERvd25sb2Fk
RXJyb3JDYW5jZWxsZWRCeVVzZXI6Ci0gICAgICAgIGVycm9yQ29kZSA9IFdFQktJVF9ET1dOTE9B
RF9FUlJPUl9DQU5DRUxMRURfQllfVVNFUjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBEb3du
bG9hZEVycm9yRGVzdGluYXRpb246Ci0gICAgICAgIGVycm9yQ29kZSA9IFdFQktJVF9ET1dOTE9B
RF9FUlJPUl9ERVNUSU5BVElPTjsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKLSAgICB9Ci0KLSAgICBnYm9vbGVhbiBoYW5kbGVk
OwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShkb3dubG9hZCwgImVycm9yIiwgMCwgZXJyb3JD
b2RlLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCksICZoYW5kbGVk
KTsKLX0KLQotc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb3dubG9hZF9vcGVuX3N0cmVhbV9mb3Jf
dXJpKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCwgY29uc3QgZ2NoYXIqIHVyaSwgZ2Jvb2xlYW4g
YXBwZW5kPUZBTFNFKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHVyaSwgRkFMU0UpOwot
Ci0gICAgV2ViS2l0RG93bmxvYWRQcml2YXRlKiBwcml2ID0gZG93bmxvYWQtPnByaXY7Ci0gICAg
R1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl91cmkodXJpKSk7
Ci0gICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwotCi0gICAgaWYgKGFwcGVuZCkKLSAg
ICAgICAgcHJpdi0+b3V0cHV0U3RyZWFtID0gZ19maWxlX2FwcGVuZF90byhmaWxlLmdldCgpLCBH
X0ZJTEVfQ1JFQVRFX05PTkUsIE5VTEwsICZlcnJvci5vdXRQdHIoKSk7Ci0gICAgZWxzZQotICAg
ICAgICBwcml2LT5vdXRwdXRTdHJlYW0gPSBnX2ZpbGVfcmVwbGFjZShmaWxlLmdldCgpLCBOVUxM
LCBUUlVFLCBHX0ZJTEVfQ1JFQVRFX05PTkUsIE5VTEwsICZlcnJvci5vdXRQdHIoKSk7Ci0KLSAg
ICBpZiAoZXJyb3IpIHsKLSAgICAgICAgd2Via2l0RG93bmxvYWRFbWl0RXJyb3IoZG93bmxvYWQs
IGRvd25sb2FkRGVzdGluYXRpb25FcnJvcihjb3JlKHByaXYtPm5ldHdvcmtSZXNwb25zZSksIGVy
cm9yLT5tZXNzYWdlKSk7Ci0gICAgICAgIHJldHVybiBGQUxTRTsKLSAgICB9Ci0KLSAgICBHUmVm
UHRyPEdGaWxlSW5mbz4gaW5mbyA9IGFkb3B0R1JlZihnX2ZpbGVfaW5mb19uZXcoKSk7Ci0gICAg
Y29uc3QgY2hhciogdXJpX3N0cmluZyA9IHdlYmtpdF9kb3dubG9hZF9nZXRfdXJpKGRvd25sb2Fk
KTsKLSAgICBnX2ZpbGVfaW5mb19zZXRfYXR0cmlidXRlX3N0cmluZyhpbmZvLmdldCgpLCAibWV0
YWRhdGE6OmRvd25sb2FkLXVyaSIsIHVyaV9zdHJpbmcpOwotICAgIGdfZmlsZV9pbmZvX3NldF9h
dHRyaWJ1dGVfc3RyaW5nKGluZm8uZ2V0KCksICJ4YXR0cjo6eGRnLm9yaWdpbi51cmwiLCB1cmlf
c3RyaW5nKTsKLSAgICBnX2ZpbGVfc2V0X2F0dHJpYnV0ZXNfYXN5bmMoZmlsZS5nZXQoKSwgaW5m
by5nZXQoKSwgR19GSUxFX1FVRVJZX0lORk9fTk9ORSwgR19QUklPUklUWV9ERUZBVUxULCAwLCAw
LCAwKTsKLQotICAgIHJldHVybiBUUlVFOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfZG93bmxv
YWRfY2xvc2Vfc3RyZWFtKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCkKLXsKLSAgICBXZWJLaXRE
b3dubG9hZFByaXZhdGUqIHByaXYgPSBkb3dubG9hZC0+cHJpdjsKLSAgICBpZiAocHJpdi0+b3V0
cHV0U3RyZWFtKSB7Ci0gICAgICAgIGdfb2JqZWN0X3VucmVmKHByaXYtPm91dHB1dFN0cmVhbSk7
Ci0gICAgICAgIHByaXYtPm91dHB1dFN0cmVhbSA9IE5VTEw7Ci0gICAgfQotfQotCi0vKioKLSAq
IHdlYmtpdF9kb3dubG9hZF9zdGFydDoKLSAqIEBkb3dubG9hZDogdGhlICNXZWJLaXREb3dubG9h
ZAotICoKLSAqIEluaXRpYXRlcyB0aGUgZG93bmxvYWQuIE5vdGljZSB0aGF0IHlvdSBtdXN0IGhh
dmUgc2V0IHRoZQotICogZGVzdGluYXRpb24tdXJpIHByb3BlcnR5IGJlZm9yZSBjYWxsaW5nIHRo
aXMgbWV0aG9kLgotICoKLSAqIFNpbmNlOiAxLjEuMgotICovCi12b2lkIHdlYmtpdF9kb3dubG9h
ZF9zdGFydChXZWJLaXREb3dubG9hZCogZG93bmxvYWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfRE9XTkxPQUQoZG93bmxvYWQpKTsKLQotICAgIFdlYktpdERvd25sb2FkUHJp
dmF0ZSogcHJpdiA9IGRvd25sb2FkLT5wcml2OwotICAgIGdfcmV0dXJuX2lmX2ZhaWwocHJpdi0+
ZGVzdGluYXRpb25VUkkpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwocHJpdi0+c3RhdHVzID09IFdF
QktJVF9ET1dOTE9BRF9TVEFUVVNfQ1JFQVRFRCk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChwcml2
LT50aW1lciA9PSBOVUxMKTsKLQotICAgIC8vIEZvciBHVEssIHdoZW4gZG93bmxvYWRpbmcgYSBm
aWxlIE5ldHdvcmtpbmdDb250ZXh0IGlzIG51bGwKLSAgICBpZiAoIXByaXYtPnJlc291cmNlSGFu
ZGxlKQotICAgICAgICBwcml2LT5yZXNvdXJjZUhhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVh
dGUoLyogTnVsbCBOZXR3b3JraW5nQ29udGV4dCAqLyBOVUxMLCBjb3JlKHByaXYtPm5ldHdvcmtS
ZXF1ZXN0KSwgcHJpdi0+ZG93bmxvYWRDbGllbnQsIGZhbHNlLCBmYWxzZSk7Ci0gICAgZWxzZSB7
Ci0gICAgICAgIHByaXYtPnJlc291cmNlSGFuZGxlLT5zZXRDbGllbnQocHJpdi0+ZG93bmxvYWRD
bGllbnQpOwotICAgICAgICBwcml2LT5yZXNvdXJjZUhhbmRsZS0+c2V0RGVmZXJzTG9hZGluZyhm
YWxzZSk7Ci0gICAgfQotCi0gICAgcHJpdi0+dGltZXIgPSBnX3RpbWVyX25ldygpOwotICAgIHdl
YmtpdF9kb3dubG9hZF9vcGVuX3N0cmVhbV9mb3JfdXJpKGRvd25sb2FkLCBwcml2LT5kZXN0aW5h
dGlvblVSSSk7Ci19Ci0KLS8qKgotICogd2Via2l0X2Rvd25sb2FkX2NhbmNlbDoKLSAqIEBkb3du
bG9hZDogdGhlICNXZWJLaXREb3dubG9hZAotICoKLSAqIENhbmNlbHMgdGhlIGRvd25sb2FkLiBD
YWxsaW5nIHRoaXMgd2lsbCBub3QgZnJlZSB0aGUKLSAqICNXZWJLaXREb3dubG9hZCBvYmplY3Qs
IHNvIHlvdSBzdGlsbCBuZWVkIHRvIGNhbGwKLSAqIGdfb2JqZWN0X3VucmVmKCkgb24gaXQsIGlm
IHlvdSBhcmUgdGhlIG93bmVyIG9mIGEgcmVmZXJlbmNlLiBOb3RpY2UKLSAqIHRoYXQgY2FuY2Vs
bGluZyB0aGUgZG93bmxvYWQgcHJvdm9rZXMgdGhlIGVtaXNzaW9uIG9mIHRoZQotICogV2ViS2l0
RG93bmxvYWQ6OmVycm9yIHNpZ25hbCwgcmVwb3J0aW5nIHRoYXQgdGhlIGRvd25sb2FkIHdhcwot
ICogY2FuY2VsbGVkLgotICoKLSAqIFNpbmNlOiAxLjEuMgotICovCi12b2lkIHdlYmtpdF9kb3du
bG9hZF9jYW5jZWwoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkKQotewotICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0lTX0RPV05MT0FEKGRvd25sb2FkKSk7Ci0KLSAgICBXZWJLaXREb3dubG9h
ZFByaXZhdGUqIHByaXYgPSBkb3dubG9hZC0+cHJpdjsKLQotICAgIC8vIENhbmNlbCBtYXkgYmUg
Y2FsbGVkIGV2ZW4gaWYgc3RhcnQgd2FzIG5vdCBjYWxsZWQsIHNvIHdlIG5lZWQKLSAgICAvLyB0
byBtYWtlIHN1cmUgdGltZXIgaXMgbm9uLU5VTEwuCi0gICAgaWYgKHByaXYtPnRpbWVyKQotICAg
ICAgICBnX3RpbWVyX3N0b3AocHJpdi0+dGltZXIpOwotCi0gICAgaWYgKHByaXYtPnJlc291cmNl
SGFuZGxlKQotICAgICAgICBwcml2LT5yZXNvdXJjZUhhbmRsZS0+Y2FuY2VsKCk7Ci0KLSAgICB3
ZWJraXRfZG93bmxvYWRfc2V0X3N0YXR1cyhkb3dubG9hZCwgV0VCS0lUX0RPV05MT0FEX1NUQVRV
U19DQU5DRUxMRUQpOwotICAgIHdlYmtpdERvd25sb2FkRW1pdEVycm9yKGRvd25sb2FkLCBkb3du
bG9hZENhbmNlbGxlZEJ5VXNlckVycm9yKGNvcmUocHJpdi0+bmV0d29ya1Jlc3BvbnNlKSkpOwot
fQotCi0vKioKLSAqIHdlYmtpdF9kb3dubG9hZF9nZXRfdXJpOgotICogQGRvd25sb2FkOiB0aGUg
I1dlYktpdERvd25sb2FkCi0gKgotICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIHJldHJpZXZlIHRo
ZSBVUkkgZnJvbSB0aGUKLSAqICNXZWJLaXROZXR3b3JrUmVxdWVzdCB3aGljaCBpcyBiZWluZyBk
b3dubG9hZGVkLgotICoKLSAqIFJldHVybnM6IHRoZSBVUkkKLSAqCi0gKiBTaW5jZTogMS4xLjIK
LSAqLwotY29uc3QgZ2NoYXIqIHdlYmtpdF9kb3dubG9hZF9nZXRfdXJpKFdlYktpdERvd25sb2Fk
KiBkb3dubG9hZCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfRE9XTkxP
QUQoZG93bmxvYWQpLCBOVUxMKTsKLQotICAgIFdlYktpdERvd25sb2FkUHJpdmF0ZSogcHJpdiA9
IGRvd25sb2FkLT5wcml2OwotICAgIHJldHVybiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91
cmkocHJpdi0+bmV0d29ya1JlcXVlc3QpOwotfQotCi0vKioKLSAqIHdlYmtpdF9kb3dubG9hZF9n
ZXRfbmV0d29ya19yZXF1ZXN0OgotICogQGRvd25sb2FkOiB0aGUgI1dlYktpdERvd25sb2FkCi0g
KgotICogUmV0cmlldmVzIHRoZSAjV2ViS2l0TmV0d29ya1JlcXVlc3Qgb2JqZWN0IHRoYXQgYmFj
a3MgdGhlIGRvd25sb2FkCi0gKiBwcm9jZXNzLgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogdGhlICNXZWJLaXROZXR3b3JrUmVxdWVzdCBpbnN0YW5jZQotICoKLSAqIFNpbmNlOiAx
LjEuMgotICovCi1XZWJLaXROZXR3b3JrUmVxdWVzdCogd2Via2l0X2Rvd25sb2FkX2dldF9uZXR3
b3JrX3JlcXVlc3QoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkKQotewotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19ET1dOTE9BRChkb3dubG9hZCksIE5VTEwpOwotCi0gICAgV2Vi
S2l0RG93bmxvYWRQcml2YXRlKiBwcml2ID0gZG93bmxvYWQtPnByaXY7Ci0gICAgcmV0dXJuIHBy
aXYtPm5ldHdvcmtSZXF1ZXN0OwotfQotCi0vKioKLSAqIHdlYmtpdF9kb3dubG9hZF9nZXRfbmV0
d29ya19yZXNwb25zZToKLSAqIEBkb3dubG9hZDogdGhlICNXZWJLaXREb3dubG9hZAotICoKLSAq
IFJldHJpZXZlcyB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSBvYmplY3QgdGhhdCBiYWNrcyB0
aGUgZG93bmxvYWQKLSAqIHByb2Nlc3MuCi0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSBpbnN0YW5jZQotICoKLSAqIFNpbmNlOiAxLjEu
MTYKLSAqLwotV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiB3ZWJraXRfZG93bmxvYWRfZ2V0X25ldHdv
cmtfcmVzcG9uc2UoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkKQotewotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19ET1dOTE9BRChkb3dubG9hZCksIE5VTEwpOwotCi0gICAgV2Vi
S2l0RG93bmxvYWRQcml2YXRlKiBwcml2ID0gZG93bmxvYWQtPnByaXY7Ci0gICAgcmV0dXJuIHBy
aXYtPm5ldHdvcmtSZXNwb25zZTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2Rvd25sb2FkX3Nl
dF9yZXNwb25zZShXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQotewotICAgIFdlYktpdERvd25sb2FkUHJpdmF0ZSogcHJpdiA9IGRvd25s
b2FkLT5wcml2OwotICAgIHByaXYtPm5ldHdvcmtSZXNwb25zZSA9IGtpdE5ldyhyZXNwb25zZSk7
Ci0KLSAgICBpZiAoIXJlc3BvbnNlLmlzTnVsbCgpICYmICFyZXNwb25zZS5zdWdnZXN0ZWRGaWxl
bmFtZSgpLmlzRW1wdHkoKSkKLSAgICAgICAgd2Via2l0X2Rvd25sb2FkX3NldF9zdWdnZXN0ZWRf
ZmlsZW5hbWUoZG93bmxvYWQsIHJlc3BvbnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCkudXRmOCgpLmRh
dGEoKSk7Ci19Ci0KLS8qKgotICogd2Via2l0X2Rvd25sb2FkX2dldF9zdWdnZXN0ZWRfZmlsZW5h
bWU6Ci0gKiBAZG93bmxvYWQ6IHRoZSAjV2ViS2l0RG93bmxvYWQKLSAqCi0gKiBSZXRyaWV2ZXMg
dGhlIGZpbGVuYW1lIHRoYXQgd2FzIHN1Z2dlc3RlZCBieSB0aGUgc2VydmVyLCBvciB0aGUgb25l
Ci0gKiBkZXJpdmVkIGJ5IFdlYktpdCBmcm9tIHRoZSBVUkkuCi0gKgotICogUmV0dXJuczogdGhl
IHN1Z2dlc3RlZCBmaWxlbmFtZQotICoKLSAqIFNpbmNlOiAxLjEuMgotICovCi1jb25zdCBnY2hh
ciogd2Via2l0X2Rvd25sb2FkX2dldF9zdWdnZXN0ZWRfZmlsZW5hbWUoV2ViS2l0RG93bmxvYWQq
IGRvd25sb2FkKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19ET1dOTE9B
RChkb3dubG9hZCksIE5VTEwpOwotCi0gICAgV2ViS2l0RG93bmxvYWRQcml2YXRlKiBwcml2ID0g
ZG93bmxvYWQtPnByaXY7Ci0gICAgaWYgKHByaXYtPnN1Z2dlc3RlZEZpbGVuYW1lKQotICAgICAg
ICByZXR1cm4gcHJpdi0+c3VnZ2VzdGVkRmlsZW5hbWU7Ci0KLSAgICBVUkwgdXJsID0gVVJMKFVS
TCgpLCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkocHJpdi0+bmV0d29ya1JlcXVlc3Qp
KTsKLSAgICB1cmwuc2V0UXVlcnkoU3RyaW5nKCkpOwotICAgIHVybC5yZW1vdmVGcmFnbWVudElk
ZW50aWZpZXIoKTsKLSAgICBwcml2LT5zdWdnZXN0ZWRGaWxlbmFtZSA9IGdfc3RyZHVwKGRlY29k
ZVVSTEVzY2FwZVNlcXVlbmNlcyh1cmwubGFzdFBhdGhDb21wb25lbnQoKSkudXRmOCgpLmRhdGEo
KSk7Ci0gICAgcmV0dXJuIHByaXYtPnN1Z2dlc3RlZEZpbGVuYW1lOwotfQotCi0vLyBmb3IgaW50
ZXJuYWwgdXNlIG9ubHkKLXZvaWQgd2Via2l0X2Rvd25sb2FkX3NldF9zdWdnZXN0ZWRfZmlsZW5h
bWUoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkLCBjb25zdCBnY2hhciogc3VnZ2VzdGVkRmlsZW5h
bWUpCi17Ci0gICAgV2ViS2l0RG93bmxvYWRQcml2YXRlKiBwcml2ID0gZG93bmxvYWQtPnByaXY7
Ci0gICAgZ19mcmVlKHByaXYtPnN1Z2dlc3RlZEZpbGVuYW1lKTsKLSAgICBwcml2LT5zdWdnZXN0
ZWRGaWxlbmFtZSA9IGdfc3RyZHVwKHN1Z2dlc3RlZEZpbGVuYW1lKTsKLQotICAgIGdfb2JqZWN0
X25vdGlmeShHX09CSkVDVChkb3dubG9hZCksICJzdWdnZXN0ZWQtZmlsZW5hbWUiKTsKLX0KLQot
Ci0vKioKLSAqIHdlYmtpdF9kb3dubG9hZF9nZXRfZGVzdGluYXRpb25fdXJpOgotICogQGRvd25s
b2FkOiB0aGUgI1dlYktpdERvd25sb2FkCi0gKgotICogT2J0YWlucyB0aGUgVVJJIHRvIHdoaWNo
IHRoZSBkb3dubG9hZGVkIGZpbGUgd2lsbCBiZSB3cml0dGVuLiBUaGlzCi0gKiBtdXN0IGhhdmUg
YmVlbiBzZXQgYnkgdGhlIGFwcGxpY2F0aW9uIGJlZm9yZSBjYWxsaW5nCi0gKiB3ZWJraXRfZG93
bmxvYWRfc3RhcnQoKSwgYW5kIG1heSBiZSAlTlVMTC4KLSAqCi0gKiBSZXR1cm5zOiB0aGUgZGVz
dGluYXRpb24gVVJJIG9yICVOVUxMCi0gKgotICogU2luY2U6IDEuMS4yCi0gKi8KLWNvbnN0IGdj
aGFyKiB3ZWJraXRfZG93bmxvYWRfZ2V0X2Rlc3RpbmF0aW9uX3VyaShXZWJLaXREb3dubG9hZCog
ZG93bmxvYWQpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0RPV05MT0FE
KGRvd25sb2FkKSwgTlVMTCk7Ci0KLSAgICBXZWJLaXREb3dubG9hZFByaXZhdGUqIHByaXYgPSBk
b3dubG9hZC0+cHJpdjsKLSAgICByZXR1cm4gcHJpdi0+ZGVzdGluYXRpb25VUkk7Ci19Ci0KLS8q
KgotICogd2Via2l0X2Rvd25sb2FkX3NldF9kZXN0aW5hdGlvbl91cmk6Ci0gKiBAZG93bmxvYWQ6
IHRoZSAjV2ViS2l0RG93bmxvYWQKLSAqIEBkZXN0aW5hdGlvbl91cmk6IHRoZSBkZXN0aW5hdGlv
biBVUkkKLSAqCi0gKiBEZWZpbmVzIHRoZSBVUkkgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBzYXZl
IHRoZSBkb3dubG9hZGVkIGZpbGUgdG8uCi0gKgotICogU2luY2U6IDEuMS4yCi0gKi8KLXZvaWQg
d2Via2l0X2Rvd25sb2FkX3NldF9kZXN0aW5hdGlvbl91cmkoV2ViS2l0RG93bmxvYWQqIGRvd25s
b2FkLCBjb25zdCBnY2hhciogZGVzdGluYXRpb25fdXJpKQotewotICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0lTX0RPV05MT0FEKGRvd25sb2FkKSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChk
ZXN0aW5hdGlvbl91cmkpOwotCi0gICAgV2ViS2l0RG93bmxvYWRQcml2YXRlKiBwcml2ID0gZG93
bmxvYWQtPnByaXY7Ci0gICAgaWYgKHByaXYtPmRlc3RpbmF0aW9uVVJJICYmICFzdHJjbXAocHJp
di0+ZGVzdGluYXRpb25VUkksIGRlc3RpbmF0aW9uX3VyaSkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGlmIChwcml2LT5zdGF0dXMgIT0gV0VCS0lUX0RPV05MT0FEX1NUQVRVU19DUkVBVEVEICYm
IHByaXYtPnN0YXR1cyAhPSBXRUJLSVRfRE9XTkxPQURfU1RBVFVTX0NBTkNFTExFRCkgewotICAg
ICAgICBBU1NFUlQocHJpdi0+ZGVzdGluYXRpb25VUkkpOwotCi0gICAgICAgIGdib29sZWFuIGRv
d25sb2FkaW5nID0gcHJpdi0+b3V0cHV0U3RyZWFtICE9IE5VTEw7Ci0gICAgICAgIGlmIChkb3du
bG9hZGluZykKLSAgICAgICAgICAgIHdlYmtpdF9kb3dubG9hZF9jbG9zZV9zdHJlYW0oZG93bmxv
YWQpOwotCi0gICAgICAgIEdSZWZQdHI8R0ZpbGU+IHNyYyA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3
X2Zvcl91cmkocHJpdi0+ZGVzdGluYXRpb25VUkkpKTsKLSAgICAgICAgR1JlZlB0cjxHRmlsZT4g
ZGVzdCA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl91cmkoZGVzdGluYXRpb25fdXJpKSk7Ci0g
ICAgICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKLQotICAgICAgICBnX2ZpbGVfbW92
ZShzcmMuZ2V0KCksIGRlc3QuZ2V0KCksIEdfRklMRV9DT1BZX0JBQ0tVUCwgMCwgMCwgMCwgJmVy
cm9yLm91dFB0cigpKTsKLQotICAgICAgICBnX2ZyZWUocHJpdi0+ZGVzdGluYXRpb25VUkkpOwot
ICAgICAgICBwcml2LT5kZXN0aW5hdGlvblVSSSA9IGdfc3RyZHVwKGRlc3RpbmF0aW9uX3VyaSk7
Ci0KLSAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICB3ZWJraXREb3dubG9hZEVtaXRF
cnJvcihkb3dubG9hZCwgZG93bmxvYWREZXN0aW5hdGlvbkVycm9yKGNvcmUocHJpdi0+bmV0d29y
a1Jlc3BvbnNlKSwgZXJyb3ItPm1lc3NhZ2UpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmIChkb3dubG9hZGluZykgewotICAgICAgICAgICAgaWYgKCF3ZWJr
aXRfZG93bmxvYWRfb3Blbl9zdHJlYW1fZm9yX3VyaShkb3dubG9hZCwgZGVzdGluYXRpb25fdXJp
LCBUUlVFKSkgewotICAgICAgICAgICAgICAgIHdlYmtpdF9kb3dubG9hZF9jYW5jZWwoZG93bmxv
YWQpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGdfZnJlZShwcml2LT5kZXN0aW5hdGlvblVSSSk7Ci0gICAg
ICAgIHByaXYtPmRlc3RpbmF0aW9uVVJJID0gZ19zdHJkdXAoZGVzdGluYXRpb25fdXJpKTsKLSAg
ICB9Ci0KLSAgICAvLyBPbmx5IG5vdGlmeSBjaGFuZ2UgaWYgZXZlcnl0aGluZyB3ZW50IGZpbmUu
Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKGRvd25sb2FkKSwgImRlc3RpbmF0aW9uLXVy
aSIpOwotfQotCi0vKioKLSAqIHdlYmtpdF9kb3dubG9hZF9nZXRfc3RhdHVzOgotICogQGRvd25s
b2FkOiB0aGUgI1dlYktpdERvd25sb2FkCi0gKgotICogT2J0YWlucyB0aGUgY3VycmVudCBzdGF0
dXMgb2YgdGhlIGRvd25sb2FkLCBhcyBhCi0gKiAjV2ViS2l0RG93bmxvYWRTdGF0dXMuCi0gKgot
ICogUmV0dXJuczogdGhlIGN1cnJlbnQgI1dlYktpdERvd25sb2FkU3RhdHVzCi0gKgotICogU2lu
Y2U6IDEuMS4yCi0gKi8KLVdlYktpdERvd25sb2FkU3RhdHVzIHdlYmtpdF9kb3dubG9hZF9nZXRf
c3RhdHVzKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfRE9XTkxPQUQoZG93bmxvYWQpLCBXRUJLSVRfRE9XTkxPQURfU1RBVFVT
X0VSUk9SKTsKLQotICAgIFdlYktpdERvd25sb2FkUHJpdmF0ZSogcHJpdiA9IGRvd25sb2FkLT5w
cml2OwotICAgIHJldHVybiBwcml2LT5zdGF0dXM7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9k
b3dubG9hZF9zZXRfc3RhdHVzKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCwgV2ViS2l0RG93bmxv
YWRTdGF0dXMgc3RhdHVzKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0RPV05M
T0FEKGRvd25sb2FkKSk7Ci0KLSAgICBXZWJLaXREb3dubG9hZFByaXZhdGUqIHByaXYgPSBkb3du
bG9hZC0+cHJpdjsKLSAgICBwcml2LT5zdGF0dXMgPSBzdGF0dXM7Ci0KLSAgICBnX29iamVjdF9u
b3RpZnkoR19PQkpFQ1QoZG93bmxvYWQpLCAic3RhdHVzIik7Ci19Ci0KLS8qKgotICogd2Via2l0
X2Rvd25sb2FkX2dldF90b3RhbF9zaXplOgotICogQGRvd25sb2FkOiB0aGUgI1dlYktpdERvd25s
b2FkCi0gKgotICogUmV0dXJucyB0aGUgZXhwZWN0ZWQgdG90YWwgc2l6ZSBvZiB0aGUgZG93bmxv
YWQuIFRoaXMgaXMgZXhwZWN0ZWQKLSAqIGJlY2F1c2UgdGhlIHNlcnZlciBtYXkgcHJvdmlkZSBp
bmNvcnJlY3Qgb3IgbWlzc2luZwotICogQ29udGVudC1MZW5ndGguIE5vdGljZSB0aGF0IHRoaXMg
bWF5IGdyb3cgb3ZlciB0aW1lLCBhcyBpdCB3aWxsIGJlCi0gKiBhbHdheXMgdGhlIHNhbWUgYXMg
Y3VycmVudF9zaXplIGluIHRoZSBjYXNlcyB3aGVyZSBjdXJyZW50IHNpemUKLSAqIHN1cnBhc3Nl
cyBpdC4KLSAqCi0gKiBSZXR1cm5zOiB0aGUgZXhwZWN0ZWQgdG90YWwgc2l6ZSBvZiB0aGUgZG93
bmxvYWRlZCBmaWxlCi0gKgotICogU2luY2U6IDEuMS4yCi0gKi8KLWd1aW50NjQgd2Via2l0X2Rv
d25sb2FkX2dldF90b3RhbF9zaXplKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCkKLXsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfRE9XTkxPQUQoZG93bmxvYWQpLCAwKTsKLQot
ICAgIFdlYktpdERvd25sb2FkUHJpdmF0ZSogcHJpdiA9IGRvd25sb2FkLT5wcml2OwotICAgIFNv
dXBNZXNzYWdlKiBtZXNzYWdlID0gcHJpdi0+bmV0d29ya1Jlc3BvbnNlID8gd2Via2l0X25ldHdv
cmtfcmVzcG9uc2VfZ2V0X21lc3NhZ2UocHJpdi0+bmV0d29ya1Jlc3BvbnNlKSA6IE5VTEw7Ci0K
LSAgICBpZiAoIW1lc3NhZ2UpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIE1BWChw
cml2LT5jdXJyZW50U2l6ZSwgc3RhdGljX2Nhc3Q8Z3VpbnQ2ND4oc291cF9tZXNzYWdlX2hlYWRl
cnNfZ2V0X2NvbnRlbnRfbGVuZ3RoKG1lc3NhZ2UtPnJlc3BvbnNlX2hlYWRlcnMpKSk7Ci19Ci0K
LS8qKgotICogd2Via2l0X2Rvd25sb2FkX2dldF9jdXJyZW50X3NpemU6Ci0gKiBAZG93bmxvYWQ6
IHRoZSAjV2ViS2l0RG93bmxvYWQKLSAqCi0gKiBDdXJyZW50IGFscmVhZHkgZG93bmxvYWRlZCBz
aXplLgotICoKLSAqIFJldHVybnM6IHRoZSBhbHJlYWR5IGRvd25sb2FkZWQgc2l6ZQotICoKLSAq
IFNpbmNlOiAxLjEuMgotICovCi1ndWludDY0IHdlYmtpdF9kb3dubG9hZF9nZXRfY3VycmVudF9z
aXplKFdlYktpdERvd25sb2FkKiBkb3dubG9hZCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfRE9XTkxPQUQoZG93bmxvYWQpLCAwKTsKLQotICAgIFdlYktpdERvd25sb2Fk
UHJpdmF0ZSogcHJpdiA9IGRvd25sb2FkLT5wcml2OwotICAgIHJldHVybiBwcml2LT5jdXJyZW50
U2l6ZTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfZG93bmxvYWRfZ2V0X3Byb2dyZXNzOgotICogQGRv
d25sb2FkOiBhICNXZWJLaXREb3dubG9hZAotICoKLSAqIERldGVybWluZXMgdGhlIGN1cnJlbnQg
cHJvZ3Jlc3Mgb2YgdGhlIGRvd25sb2FkLgotICoKLSAqIFJldHVybnM6IGEgI2dkb3VibGUgcmFu
Z2luZyBmcm9tIDAuMCB0byAxLjAuCi0gKgotICogU2luY2U6IDEuMS4yCi0gKi8KLWdkb3VibGUg
d2Via2l0X2Rvd25sb2FkX2dldF9wcm9ncmVzcyhXZWJLaXREb3dubG9hZCogZG93bmxvYWQpCi17
Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0RPV05MT0FEKGRvd25sb2FkKSwg
MS4wKTsKLQotICAgIFdlYktpdERvd25sb2FkUHJpdmF0ZSogcHJpdiA9IGRvd25sb2FkLT5wcml2
OwotICAgIGlmICghcHJpdi0+bmV0d29ya1Jlc3BvbnNlKQotICAgICAgICByZXR1cm4gMC4wOwot
Ci0gICAgZ2RvdWJsZSB0b3RhbF9zaXplID0gc3RhdGljX2Nhc3Q8Z2RvdWJsZT4od2Via2l0X2Rv
d25sb2FkX2dldF90b3RhbF9zaXplKGRvd25sb2FkKSk7Ci0KLSAgICBpZiAodG90YWxfc2l6ZSA9
PSAwKQotICAgICAgICByZXR1cm4gMS4wOwotCi0gICAgcmV0dXJuICgoZ2RvdWJsZSlwcml2LT5j
dXJyZW50U2l6ZSkgLyB0b3RhbF9zaXplOwotfQotCi0vKioKLSAqIHdlYmtpdF9kb3dubG9hZF9n
ZXRfZWxhcHNlZF90aW1lOgotICogQGRvd25sb2FkOiBhICNXZWJLaXREb3dubG9hZAotICoKLSAq
IEVsYXBzZWQgdGltZSBmb3IgdGhlIGRvd25sb2FkIGluIHNlY29uZHMsIGluY2x1ZGluZyBhbnkg
ZnJhY3Rpb25hbAotICogcGFydC4gSWYgdGhlIGRvd25sb2FkIGlzIGZpbmlzaGVkLCBoYWQgYW4g
ZXJyb3Igb3Igd2FzIGNhbmNlbGxlZAotICogdGhpcyBpcyB0aGUgdGltZSBiZXR3ZWVuIGl0cyBz
dGFydCBhbmQgdGhlIGV2ZW50LgotICoKLSAqIFJldHVybnM6IHNlY29uZHMgc2luY2UgdGhlIGRv
d25sb2FkIHdhcyBzdGFydGVkLCBhcyBhICNnZG91YmxlCi0gKgotICogU2luY2U6IDEuMS4yCi0g
Ki8KLWdkb3VibGUgd2Via2l0X2Rvd25sb2FkX2dldF9lbGFwc2VkX3RpbWUoV2ViS2l0RG93bmxv
YWQqIGRvd25sb2FkKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19ET1dO
TE9BRChkb3dubG9hZCksIDAuMCk7Ci0KLSAgICBXZWJLaXREb3dubG9hZFByaXZhdGUqIHByaXYg
PSBkb3dubG9hZC0+cHJpdjsKLSAgICBpZiAoIXByaXYtPnRpbWVyKQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIHJldHVybiBnX3RpbWVyX2VsYXBzZWQocHJpdi0+dGltZXIsIE5VTEwpOwotfQot
Ci1zdGF0aWMgdm9pZCB3ZWJraXRfZG93bmxvYWRfcmVjZWl2ZWRfZGF0YShXZWJLaXREb3dubG9h
ZCogZG93bmxvYWQsIGNvbnN0IGdjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQotewotICAgIFdlYktp
dERvd25sb2FkUHJpdmF0ZSogcHJpdiA9IGRvd25sb2FkLT5wcml2OwotCi0gICAgaWYgKHByaXYt
PmN1cnJlbnRTaXplID09IDApCi0gICAgICAgIHdlYmtpdF9kb3dubG9hZF9zZXRfc3RhdHVzKGRv
d25sb2FkLCBXRUJLSVRfRE9XTkxPQURfU1RBVFVTX1NUQVJURUQpOwotCi0gICAgQVNTRVJUKHBy
aXYtPm91dHB1dFN0cmVhbSk7Ci0KLSAgICBnc2l6ZSBieXRlc193cml0dGVuOwotICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKLQotICAgIGdfb3V0cHV0X3N0cmVhbV93cml0ZV9hbGwo
R19PVVRQVVRfU1RSRUFNKHByaXYtPm91dHB1dFN0cmVhbSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkYXRhLCBsZW5ndGgsICZieXRlc193cml0dGVuLCBOVUxMLCAmZXJyb3Iub3V0
UHRyKCkpOwotCi0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIHdlYmtpdERvd25sb2FkRW1pdEVy
cm9yKGRvd25sb2FkLCBkb3dubG9hZERlc3RpbmF0aW9uRXJyb3IoY29yZShwcml2LT5uZXR3b3Jr
UmVzcG9uc2UpLCBlcnJvci0+bWVzc2FnZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgcHJpdi0+Y3VycmVudFNpemUgKz0gbGVuZ3RoOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09C
SkVDVChkb3dubG9hZCksICJjdXJyZW50LXNpemUiKTsKLQotICAgIEFTU0VSVChwcml2LT5uZXR3
b3JrUmVzcG9uc2UpOwotICAgIGlmIChwcml2LT5jdXJyZW50U2l6ZSA+IHdlYmtpdF9kb3dubG9h
ZF9nZXRfdG90YWxfc2l6ZShkb3dubG9hZCkpCi0gICAgICAgIGdfb2JqZWN0X25vdGlmeShHX09C
SkVDVChkb3dubG9hZCksICJ0b3RhbC1zaXplIik7Ci0KLSAgICAvLyBUaHJvdHRsZSBwcm9ncmVz
cyBub3RpZmljYXRpb24gdG8gbm90IGNvbnN1bWUgaGlnaCBhbW91bnRzIG9mCi0gICAgLy8gQ1BV
IG9uIGZhc3QgbGlua3MsIGV4Y2VwdCB3aGVuIHRoZSBsYXN0IG5vdGlmaWNhdGlvbiBvY2N1cmVk
Ci0gICAgLy8gaW4gbW9yZSB0aGVuIDAuNyBzZWNzIGZyb20gbm93LCBvciB0aGUgbGFzdCBub3Rp
ZmllZCBwcm9ncmVzcwotICAgIC8vIGlzIHBhc3NlZCBpbiAxJSBvciB3ZSByZWFjaGVkIHRoZSBl
bmQuCi0gICAgc3RhdGljIGdkb3VibGUgbGFzdFByb2dyZXNzID0gMDsKLSAgICBzdGF0aWMgZ2Rv
dWJsZSBsYXN0RWxhcHNlZCA9IDA7Ci0gICAgZ2RvdWJsZSBjdXJyZW50RWxhcHNlZCA9IGdfdGlt
ZXJfZWxhcHNlZChwcml2LT50aW1lciwgTlVMTCk7Ci0gICAgZ2RvdWJsZSBjdXJyZW50UHJvZ3Jl
c3MgPSB3ZWJraXRfZG93bmxvYWRfZ2V0X3Byb2dyZXNzKGRvd25sb2FkKTsKLQotICAgIGlmIChs
YXN0RWxhcHNlZAotICAgICAgICAmJiBsYXN0UHJvZ3Jlc3MKLSAgICAgICAgJiYgKGN1cnJlbnRF
bGFwc2VkIC0gbGFzdEVsYXBzZWQpIDwgMC43Ci0gICAgICAgICYmIChjdXJyZW50UHJvZ3Jlc3Mg
LSBsYXN0UHJvZ3Jlc3MpIDwgMC4wMQotICAgICAgICAmJiBjdXJyZW50UHJvZ3Jlc3MgPCAxLjAp
IHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBsYXN0RWxhcHNlZCA9IGN1cnJlbnRFbGFw
c2VkOwotICAgIGxhc3RQcm9ncmVzcyA9IGN1cnJlbnRQcm9ncmVzczsKLQotICAgIGdfb2JqZWN0
X25vdGlmeShHX09CSkVDVChkb3dubG9hZCksICJwcm9ncmVzcyIpOwotfQotCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfZG93bmxvYWRfZmluaXNoZWRfbG9hZGluZyhXZWJLaXREb3dubG9hZCogZG93bmxv
YWQpCi17Ci0gICAgd2Via2l0X2Rvd25sb2FkX2Nsb3NlX3N0cmVhbShkb3dubG9hZCk7Ci0KLSAg
ICBXZWJLaXREb3dubG9hZFByaXZhdGUqIHByaXYgPSBkb3dubG9hZC0+cHJpdjsKLQotICAgIGdf
dGltZXJfc3RvcChwcml2LT50aW1lcik7Ci0KLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qo
ZG93bmxvYWQpLCAicHJvZ3Jlc3MiKTsKLSAgICB3ZWJraXRfZG93bmxvYWRfc2V0X3N0YXR1cyhk
b3dubG9hZCwgV0VCS0lUX0RPV05MT0FEX1NUQVRVU19GSU5JU0hFRCk7Ci19Ci0KLXN0YXRpYyB2
b2lkIHdlYmtpdF9kb3dubG9hZF9lcnJvcihXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIHdlYmtpdF9kb3dubG9hZF9jbG9zZV9zdHJl
YW0oZG93bmxvYWQpOwotCi0gICAgV2ViS2l0RG93bmxvYWRQcml2YXRlKiBwcml2ID0gZG93bmxv
YWQtPnByaXY7Ci0gICAgR1JlZlB0cjxXZWJLaXREb3dubG9hZD4gcHJvdGVjdChkb3dubG9hZCk7
Ci0KLSAgICBnX3RpbWVyX3N0b3AocHJpdi0+dGltZXIpOwotICAgIHdlYmtpdF9kb3dubG9hZF9z
ZXRfc3RhdHVzKGRvd25sb2FkLCBXRUJLSVRfRE9XTkxPQURfU1RBVFVTX0VSUk9SKTsKLSAgICB3
ZWJraXREb3dubG9hZEVtaXRFcnJvcihkb3dubG9hZCwgZG93bmxvYWROZXR3b3JrRXJyb3IoZXJy
b3IpKTsKLX0KLQotRG93bmxvYWRDbGllbnQ6OkRvd25sb2FkQ2xpZW50KFdlYktpdERvd25sb2Fk
KiBkb3dubG9hZCkKLSAgICA6IG1fZG93bmxvYWQoZG93bmxvYWQpCi17Ci19Ci0KLXZvaWQgRG93
bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotewotICAgIHdlYmtpdF9kb3dubG9hZF9zZXRfcmVz
cG9uc2UobV9kb3dubG9hZCwgcmVzcG9uc2UpOwotICAgIGlmIChyZXNwb25zZS5odHRwU3RhdHVz
Q29kZSgpID49IDQwMCkgewotICAgICAgICBtX2Rvd25sb2FkLT5wcml2LT5yZXNvdXJjZUhhbmRs
ZS0+Y2FuY2VsKCk7Ci0gICAgICAgIHdlYmtpdF9kb3dubG9hZF9lcnJvcihtX2Rvd25sb2FkLCBS
ZXNvdXJjZUVycm9yKGVycm9yRG9tYWluRG93bmxvYWQsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2Rl
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCByZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpKSk7
Ci0gICAgfQotfQotCi12b2lkIERvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqIC8qIGRhdGEgKi8sIHVuc2lnbmVkIC8qIGxlbmd0aCAqLywg
aW50IC8qIGVuY29kZWREYXRhTGVuZ3RoICovKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotfQotCi12b2lkIERvd25sb2FkQ2xpZW50OjpkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFu
ZGxlKiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciwgaW50IC8qIGVuY29kZWRMZW5n
dGggKi8pCi17Ci0gICAgLy8gVGhpcyBwYXR0ZXJuIGlzIHN1Z2dlc3RlZCBieSBTaGFyZWRCdWZm
ZXIuaC4KLSAgICBjb25zdCBjaGFyKiBzZWdtZW50OwotICAgIHVuc2lnbmVkIHBvc2l0aW9uID0g
MDsKLSAgICB3aGlsZSAodW5zaWduZWQgbGVuZ3RoID0gYnVmZmVyLT5nZXRTb21lRGF0YShzZWdt
ZW50LCBwb3NpdGlvbikpIHsKLSAgICAgICAgd2Via2l0X2Rvd25sb2FkX3JlY2VpdmVkX2RhdGEo
bV9kb3dubG9hZCwgc2VnbWVudCwgbGVuZ3RoKTsKLSAgICAgICAgcG9zaXRpb24gKz0gbGVuZ3Ro
OwotICAgIH0KLX0KLQotdm9pZCBEb3dubG9hZENsaWVudDo6ZGlkRmluaXNoTG9hZGluZyhSZXNv
dXJjZUhhbmRsZSosIGRvdWJsZSkKLXsKLSAgICB3ZWJraXRfZG93bmxvYWRfZmluaXNoZWRfbG9h
ZGluZyhtX2Rvd25sb2FkKTsKLX0KLQotdm9pZCBEb3dubG9hZENsaWVudDo6ZGlkRmFpbChSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQotewotICAgIHdlYmtpdF9k
b3dubG9hZF9lcnJvcihtX2Rvd25sb2FkLCBlcnJvcik7Ci19Ci0KLXZvaWQgRG93bmxvYWRDbGll
bnQ6Ondhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKQotewotICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdGhpcyB3aGVuIHdlIGhhdmUgdGhlIG5ldyBmcmFtZSBsb2FkZXIgc2lnbmFscwotICAgIC8v
IGFuZCBlcnJvciBoYW5kbGluZy4KLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIERv
d25sb2FkQ2xpZW50OjpjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxlKikKLXsKLSAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRoaXMgd2hlbiB3ZSBoYXZlIHRoZSBuZXcgZnJhbWUgbG9hZGVyIHNp
Z25hbHMKLSAgICAvLyBhbmQgZXJyb3IgaGFuZGxpbmcuCi0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5o
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDgyMGUwODMuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSA8Z25zQGdub21lLm9yZz4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3
ZWJraXRkb3dubG9hZF9oCi0jZGVmaW5lIHdlYmtpdGRvd25sb2FkX2gKLQotI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXRkZWZpbmVzLmg+Ci0KLSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotCi1HX0JF
R0lOX0RFQ0xTCi0KLSNkZWZpbmUgV0VCS0lUX1RZUEVfRE9XTkxPQUQgICAgICAgICAgICAod2Vi
a2l0X2Rvd25sb2FkX2dldF90eXBlKCkpCi0jZGVmaW5lIFdFQktJVF9ET1dOTE9BRChvYmopICAg
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9E
T1dOTE9BRCwgV2ViS2l0RG93bmxvYWQpKQotI2RlZmluZSBXRUJLSVRfRE9XTkxPQURfQ0xBU1Mo
a2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVf
RE9XTkxPQUQsIFdlYktpdERvd25sb2FkQ2xhc3MpKQotI2RlZmluZSBXRUJLSVRfSVNfRE9XTkxP
QUQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lU
X1RZUEVfRE9XTkxPQUQpKQotI2RlZmluZSBXRUJLSVRfSVNfRE9XTkxPQURfQ0xBU1Moa2xhc3Mp
IChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRE9XTkxPQUQp
KQotI2RlZmluZSBXRUJLSVRfRE9XTkxPQURfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFO
Q0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRE9XTkxPQUQsIFdlYktpdERvd25sb2Fk
Q2xhc3MpKQotCi0vKioKLSAqIFdlYktpdERvd25sb2FkU3RhdHVzOgotICogQFdFQktJVF9ET1dO
TE9BRF9TVEFUVVNfRVJST1I6IFRoZSBkb3dubG9hZCBmYWlsZWQgYmVjYXVzZSBvZiBhbiBlcnJv
ciBvdGhlciB0aGFuIHVzZXIgY2FuY2VsbGF0aW9uLgotICogQFdFQktJVF9ET1dOTE9BRF9TVEFU
VVNfQ1JFQVRFRDogVGhlIGRvd25sb2FkIGhhcyBub3Qgc3RhcnRlZCB5ZXQuCi0gKiBAV0VCS0lU
X0RPV05MT0FEX1NUQVRVU19TVEFSVEVEOiBUaGUgZG93bmxvYWQgaGFzIHN0YXJ0ZWQsIGJ1dCBo
YXMgbm90IGNvbXBsZXRlZCB5ZXQuCi0gKiBAV0VCS0lUX0RPV05MT0FEX1NUQVRVU19DQU5DRUxM
RUQ6IFRoZSB1c2VyIGNhbmNlbGVkIHRoZSBkb3dubG9hZC4KLSAqIEBXRUJLSVRfRE9XTkxPQURf
U1RBVFVTX0ZJTklTSEVEOiBUaGUgZG93bmxvYWQgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4KLSAq
Ci0gKiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlbm90ZSB0aGUgdmFyaW91cyBzdGF0ZXMgb2YgYSBk
b3dubG9hZC4KLSAqKi8KLXR5cGVkZWYgZW51bSB7Ci0gICAgV0VCS0lUX0RPV05MT0FEX1NUQVRV
U19FUlJPUiA9IC0xLAotICAgIFdFQktJVF9ET1dOTE9BRF9TVEFUVVNfQ1JFQVRFRCA9IDAsCi0g
ICAgV0VCS0lUX0RPV05MT0FEX1NUQVRVU19TVEFSVEVELAotICAgIFdFQktJVF9ET1dOTE9BRF9T
VEFUVVNfQ0FOQ0VMTEVELAotICAgIFdFQktJVF9ET1dOTE9BRF9TVEFUVVNfRklOSVNIRUQKLX0g
V2ViS2l0RG93bmxvYWRTdGF0dXM7Ci0KLS8qKgotICogV2ViS2l0RG93bmxvYWRFcnJvcjoKLSAq
IEBXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FOQ0VMTEVEX0JZX1VTRVI6IFRoZSBkb3dubG9hZCBm
YWlsZWQgZHVlIHRvIHVzZXIgY2FuY2VsbGF0aW9uLgotICogQFdFQktJVF9ET1dOTE9BRF9FUlJP
Ul9ERVNUSU5BVElPTjogVGhlIGRvd25sb2FkIGZhaWxlZCBkdWUgdG8gZGlzayB3cml0ZSBmYWls
dXJlLgotICogQFdFQktJVF9ET1dOTE9BRF9FUlJPUl9ORVRXT1JLOiBUaGUgZG93bmxvYWQgZmFp
bGVkIGR1ZSB0byBhIG5ldHdvcmsgZXJyb3IuCi0gKgotICogRW51bSB2YWx1ZXMgdXNlZCB0byBk
ZW5vdGUgdGhlIHZhcmlvdXMgZG93bmxvYWQgZXJyb3JzLgotICoqLwotdHlwZWRlZiBlbnVtIHsK
LSAgICBXRUJLSVRfRE9XTkxPQURfRVJST1JfQ0FOQ0VMTEVEX0JZX1VTRVIsCi0gICAgV0VCS0lU
X0RPV05MT0FEX0VSUk9SX0RFU1RJTkFUSU9OLAotICAgIFdFQktJVF9ET1dOTE9BRF9FUlJPUl9O
RVRXT1JLCi19IFdlYktpdERvd25sb2FkRXJyb3I7Ci0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRE
b3dubG9hZFByaXZhdGUgV2ViS2l0RG93bmxvYWRQcml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdERv
d25sb2FkIHsKLSAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKLQotICAgIFdlYktpdERvd25s
b2FkUHJpdmF0ZSAqcHJpdjsKLX07Ci0KLXN0cnVjdCBfV2ViS2l0RG93bmxvYWRDbGFzcyB7Ci0g
ICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIC8qIFBhZGRpbmcgZm9yIGZ1dHVy
ZSBleHBhbnNpb24gKi8KLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKLSAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsK
LX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF9kb3dubG9hZF9nZXRfdHlwZSAgICAgICAg
ICAgICAgICAgICAgKHZvaWQpOwotCi1XRUJLSVRfQVBJIFdlYktpdERvd25sb2FkKgotd2Via2l0
X2Rvd25sb2FkX25ldyAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0TmV0d29ya1JlcXVl
c3QgKnJlcXVlc3QpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9kb3dubG9hZF9zdGFydCAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdERvd25sb2FkICAgICAgICpkb3dubG9hZCk7Ci0K
LVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2Rvd25sb2FkX2NhbmNlbCAgICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0RG93bmxvYWQgICAgICAgKmRvd25sb2FkKTsKLQotV0VCS0lUX0FQSSBjb25z
dCBnY2hhcioKLXdlYmtpdF9kb3dubG9hZF9nZXRfdXJpICAgICAgICAgICAgICAgICAgICAgKFdl
YktpdERvd25sb2FkICAgICAgICpkb3dubG9hZCk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0TmV0d29y
a1JlcXVlc3QqCi13ZWJraXRfZG93bmxvYWRfZ2V0X25ldHdvcmtfcmVxdWVzdCAgICAgICAgIChX
ZWJLaXREb3dubG9hZCAgICAgICAqZG93bmxvYWQpOwotCi1XRUJLSVRfQVBJIFdlYktpdE5ldHdv
cmtSZXNwb25zZSoKLXdlYmtpdF9kb3dubG9hZF9nZXRfbmV0d29ya19yZXNwb25zZSAgICAgICAg
IChXZWJLaXREb3dubG9hZCAgICAgICAqZG93bmxvYWQpOwotCi1XRUJLSVRfQVBJIGNvbnN0IGdj
aGFyKgotd2Via2l0X2Rvd25sb2FkX2dldF9zdWdnZXN0ZWRfZmlsZW5hbWUgICAgICAoV2ViS2l0
RG93bmxvYWQgICAgICAgKmRvd25sb2FkKTsKLQotV0VCS0lUX0FQSSBjb25zdCBnY2hhcioKLXdl
YmtpdF9kb3dubG9hZF9nZXRfZGVzdGluYXRpb25fdXJpICAgICAgICAgKFdlYktpdERvd25sb2Fk
ICAgICAgICpkb3dubG9hZCk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2Rvd25sb2FkX3Nl
dF9kZXN0aW5hdGlvbl91cmkgICAgICAgICAoV2ViS2l0RG93bmxvYWQgICAgICAgKmRvd25sb2Fk
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIgICAgICAgICAgKmRlc3RpbmF0aW9uX3VyaSk7Ci0KLVdFQktJVF9BUEkgZ2RvdWJsZQotd2Vi
a2l0X2Rvd25sb2FkX2dldF9wcm9ncmVzcyAgICAgICAgICAgICAgICAoV2ViS2l0RG93bmxvYWQg
ICAgICAgKmRvd25sb2FkKTsKLQotV0VCS0lUX0FQSSBnZG91YmxlCi13ZWJraXRfZG93bmxvYWRf
Z2V0X2VsYXBzZWRfdGltZSAgICAgICAgICAgIChXZWJLaXREb3dubG9hZCAgICAgICAqZG93bmxv
YWQpOwotCi1XRUJLSVRfQVBJIGd1aW50NjQKLXdlYmtpdF9kb3dubG9hZF9nZXRfdG90YWxfc2l6
ZSAgICAgICAgICAgICAgKFdlYktpdERvd25sb2FkICAgICAgICpkb3dubG9hZCk7Ci0KLVdFQktJ
VF9BUEkgZ3VpbnQ2NAotd2Via2l0X2Rvd25sb2FkX2dldF9jdXJyZW50X3NpemUgICAgICAgICAg
ICAoV2ViS2l0RG93bmxvYWQgICAgICAgKmRvd25sb2FkKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRE
b3dubG9hZFN0YXR1cwotd2Via2l0X2Rvd25sb2FkX2dldF9zdGF0dXMgICAgICAgICAgICAgICAg
ICAoV2ViS2l0RG93bmxvYWQgICAgICAgKmRvd25sb2FkKTsKLQotR19FTkRfREVDTFMKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWRw
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWRwcml2YXRl
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzY2MyYTQuLjAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkcHJpdmF0ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwg
MjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDA4IEph
biBNaWNoYWVsIEMuIEFsb256bwotICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJraXRkb3dubG9h
ZHByaXZhdGVfaAotI2RlZmluZSB3ZWJraXRkb3dubG9hZHByaXZhdGVfaAotCi0jaW5jbHVkZSAi
d2Via2l0ZG93bmxvYWQuaCIKLQotZXh0ZXJuICJDIiB7Ci0KLVdlYktpdERvd25sb2FkKiB3ZWJr
aXRfZG93bmxvYWRfbmV3X3dpdGhfaGFuZGxlKFdlYktpdE5ldHdvcmtSZXF1ZXN0KiwgV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0K
LXZvaWQgd2Via2l0X2Rvd25sb2FkX3NldF9zdWdnZXN0ZWRfZmlsZW5hbWUoV2ViS2l0RG93bmxv
YWQqLCBjb25zdCBnY2hhciogc3VnZ2VzdGVkRmlsZW5hbWUpOwotCi19Ci0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5jcHAudGVt
cGxhdGUgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmNwcC50ZW1w
bGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzU0Nzk3Zi4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZW51bXR5cGVzLmNwcC50ZW1wbGF0ZQor
KysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qKiogQkVHSU4gZmlsZS1oZWFkZXIgKioq
LwotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSA8Y29uZmln
Lmg+Ci0jaW5jbHVkZSAid2Via2l0ZW51bXR5cGVzLmgiCi0KLWV4dGVybiAiQyIgewotLyoqKiBF
TkQgZmlsZS1oZWFkZXIgKioqLwotCi0KLS8qKiogQkVHSU4gZmlsZS1wcm9kdWN0aW9uICoqKi8K
LS8vIEVudW1lcmF0aW9ucyBmcm9tIEBmaWxlbmFtZUAuCi0vKioqIEVORCBmaWxlLXByb2R1Y3Rp
b24gKioqLwotCi0KLS8qKiogQkVHSU4gdmFsdWUtaGVhZGVyICoqKi8KLUdUeXBlIEBlbnVtX25h
bWVAX2dldF90eXBlKCkKLXsKLSAgICBzdGF0aWMgY29uc3QgR0BUeXBlQFZhbHVlIHZhbHVlc1td
ID0gewotLyoqKiBFTkQgdmFsdWUtaGVhZGVyICoqKi8KLQotCi0vKioqIEJFR0lOIHZhbHVlLXBy
b2R1Y3Rpb24gKioqLwotICAgICAgICB7IEBWQUxVRU5BTUVALCAiQFZBTFVFTkFNRUAiLCAiQHZh
bHVlbmlja0AiIH0sCi0vKioqIEVORCB2YWx1ZS1wcm9kdWN0aW9uICoqKi8KLQotCi0vKioqIEJF
R0lOIHZhbHVlLXRhaWwgKioqLwotICAgICAgICB7IDAsIE5VTEwsIE5VTEwgfQotICAgIH07Ci0K
LSAgICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7Ci0gICAgaWYgKEdfVU5MSUtFTFkoIXR5cGUpKQot
ICAgICAgICB0eXBlID0gZ19AdHlwZUBfcmVnaXN0ZXJfc3RhdGljKCJARW51bU5hbWVAIiwgdmFs
dWVzKTsKLQotICAgIHJldHVybiB0eXBlOwotfQotCi0vKioqIEVORCB2YWx1ZS10YWlsICoqKi8K
LQotCi0vKioqIEJFR0lOIGZpbGUtdGFpbCAqKiovCi19Ci0vKioqIEVORCBmaWxlLXRhaWwgKioq
LwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5o
LnRlbXBsYXRlIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVudW10eXBlcy5oLnRl
bXBsYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNGZhODY0Li4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRlbnVtdHlwZXMuaC50ZW1wbGF0ZQor
KysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLS8qKiogQkVHSU4gZmlsZS1oZWFkZXIgKioq
LwotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIFdFQktJVF9F
TlVNX1RZUEVTX0gKLSNkZWZpbmUgV0VCS0lUX0VOVU1fVFlQRVNfSAotCi0jaW5jbHVkZSA8Z2xp
Yi1vYmplY3QuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotCi1HX0JFR0lO
X0RFQ0xTCi0vKioqIEVORCBmaWxlLWhlYWRlciAqKiovCi0KLQotLyoqKiBCRUdJTiBmaWxlLXBy
b2R1Y3Rpb24gKioqLwotI2luY2x1ZGUgPHdlYmtpdC9AYmFzZW5hbWVAPgotCi0KLS8qIEVudW1l
cmF0aW9ucyBmcm9tIEBmaWxlbmFtZUAuICovCi0vKioqIEVORCBmaWxlLXByb2R1Y3Rpb24gKioq
LwotCi0KLS8qKiogQkVHSU4gZW51bWVyYXRpb24tcHJvZHVjdGlvbiAqKiovCi0jZGVmaW5lIFdF
QktJVF9UWVBFX0BFTlVNU0hPUlRAIEBlbnVtX25hbWVAX2dldF90eXBlICgpCi0KLVdFQktJVF9B
UEkgR1R5cGUKLUBlbnVtX25hbWVAX2dldF90eXBlICh2b2lkKTsKLQotLyoqKiBFTkQgZW51bWVy
YXRpb24tcHJvZHVjdGlvbiAqKiovCi0KLQotLyoqKiBCRUdJTiBmaWxlLXRhaWwgKioqLwotR19F
TkRfREVDTFMKLQotI2VuZGlmCi0vKioqIEVORCBmaWxlLXRhaWwgKioqLwotCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZXJyb3IuY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGVycm9yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWUyYWZkMy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
ZXJyb3IuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCBMdWNhIEJydW5vIDxsZXRoYWxtYW44OEBnbWFpbC5jb20+Ci0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJ3ZWJraXRlcnJvci5oIgotCi0jaW5jbHVkZSAiRXJyb3JzR3Rr
LmgiCi0KLUdRdWFyayB3ZWJraXRfbmV0d29ya19lcnJvcl9xdWFyayh2b2lkKQotewotICAgIHJl
dHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3JlOjplcnJvckRvbWFpbk5ldHdv
cmspOwotfQotCi1HUXVhcmsgd2Via2l0X3BvbGljeV9lcnJvcl9xdWFyayh2b2lkKQotewotICAg
IHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyhXZWJDb3JlOjplcnJvckRvbWFpblBv
bGljeSk7Ci19Ci0KLUdRdWFyayB3ZWJraXRfcGx1Z2luX2Vycm9yX3F1YXJrKHZvaWQpCi17Ci0g
ICAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nKFdlYkNvcmU6OmVycm9yRG9tYWlu
UGx1Z2luKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRl
cnJvci5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGVycm9yLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4ZmMyYzMuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGVycm9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBMdWNhIEJydW5vIDxsZXRoYWxtYW44OEBnbWFp
bC5jb20+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICovCi0KLSNpZm5kZWYgd2Via2l0ZXJyb3JfaAotI2RlZmluZSB3ZWJraXRlcnJvcl9oCi0KLSNp
bmNsdWRlIDxnbGliLmg+Ci0KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotCi1H
X0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUgV0VCS0lUX05FVFdPUktfRVJST1IgICAgICAgIHdlYmtp
dF9uZXR3b3JrX2Vycm9yX3F1YXJrICgpCi0jZGVmaW5lIFdFQktJVF9QT0xJQ1lfRVJST1IgICAg
ICAgICB3ZWJraXRfcG9saWN5X2Vycm9yX3F1YXJrICAoKQotI2RlZmluZSBXRUJLSVRfUExVR0lO
X0VSUk9SICAgICAgICAgd2Via2l0X3BsdWdpbl9lcnJvcl9xdWFyayAgKCkKLQotLyogVGhlIGVu
dW0gdmFsdWVzIGFyZSBzeW5jaHJvbml6ZWQgd2l0aCBNYWMncyBXZWJLaXQgZXJyb3IgdmFsdWVz
LiAqLwotCi0vKioKLSAqIFdlYktpdE5ldHdvcmtFcnJvcjoKLSAqIEBXRUJLSVRfTkVUV09SS19F
UlJPUl9GQUlMRUQ6IEdlbmVyaWMgbG9hZCBmYWlsdXJlCi0gKiBAV0VCS0lUX05FVFdPUktfRVJS
T1JfVFJBTlNQT1JUOiBMb2FkIGZhaWx1cmUgZHVlIHRvIHRyYW5zcG9ydCBlcnJvcgotICogQFdF
QktJVF9ORVRXT1JLX0VSUk9SX1VOS05PV05fUFJPVE9DT0w6IExvYWQgZmFpbHVyZSBkdWUgdG8g
dW5rbm93biBwcm90b2NvbAotICogQFdFQktJVF9ORVRXT1JLX0VSUk9SX0NBTkNFTExFRDogTG9h
ZCBmYWlsdXJlIGR1ZSB0byBjYW5jZWxsYXRpb24KLSAqIEBXRUJLSVRfTkVUV09SS19FUlJPUl9G
SUxFX0RPRVNfTk9UX0VYSVNUOiBMb2FkIGZhaWx1cmUgZHVlIHRvIG1pc3NpbmcgZmlsZQotICoK
LSAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVub3RlIHRoZSB2YXJpb3VzIG5ldHdvcmsgZXJyb3Jz
LgotICoqLwotdHlwZWRlZiBlbnVtIHsKLSAgICBXRUJLSVRfTkVUV09SS19FUlJPUl9GQUlMRUQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDM5OSwKLSAgICBXRUJLSVRfTkVUV09S
S19FUlJPUl9UUkFOU1BPUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDMwMCwKLSAg
ICBXRUJLSVRfTkVUV09SS19FUlJPUl9VTktOT1dOX1BST1RPQ09MICAgICAgICAgICAgICAgICAg
ICAgICA9IDMwMSwKLSAgICBXRUJLSVRfTkVUV09SS19FUlJPUl9DQU5DRUxMRUQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9IDMwMiwKLSAgICBXRUJLSVRfTkVUV09SS19FUlJPUl9GSUxF
X0RPRVNfTk9UX0VYSVNUICAgICAgICAgICAgICAgICAgICA9IDMwMywKLX0gV2ViS2l0TmV0d29y
a0Vycm9yOwotCi0vKioKLSAqIFdlYktpdFBvbGljeUVycm9yOgotICogQFdFQktJVF9QT0xJQ1lf
RVJST1JfRkFJTEVEOiBHZW5lcmljIGxvYWQgZmFpbHVyZSBkdWUgdG8gcG9saWN5IGVycm9yCi0g
KiBAV0VCS0lUX1BPTElDWV9FUlJPUl9DQU5OT1RfU0hPV19NSU1FX1RZUEU6IExvYWQgZmFpbHVy
ZSBkdWUgdG8gdW5zdXBwb3J0ZWQgbWltZSB0eXBlCi0gKiBAV0VCS0lUX1BPTElDWV9FUlJPUl9D
QU5OT1RfU0hPV19VUkw6IExvYWQgZmFpbHVyZSBkdWUgdG8gVVJJIHRoYXQgY2FuIG5vdCBiZSBz
aG93bgotICogQFdFQktJVF9QT0xJQ1lfRVJST1JfRlJBTUVfTE9BRF9JTlRFUlJVUFRFRF9CWV9Q
T0xJQ1lfQ0hBTkdFOiBMb2FkIGZhaWx1cmUgZHVlIHRvIGZyYW1lIGxvYWQgaW50ZXJydXB0aW9u
IGJ5IHBvbGljeSBjaGFuZ2UKLSAqIEBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9VU0VfUkVT
VFJJQ1RFRF9QT1JUOiBMb2FkIGZhaWx1cmUgZHVlIHRvIHBvcnQgcmVzdHJpY3Rpb24KLSAqCi0g
KiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlbm90ZSB0aGUgdmFyaW91cyBwb2xpY3kgZXJyb3JzLgot
ICoqLwotdHlwZWRlZiBlbnVtIHsKLSAgICBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZBSUxFRCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDE5OSwKLSAgICBXRUJLSVRfUE9MSUNZX0VS
Uk9SX0NBTk5PVF9TSE9XX01JTUVfVFlQRSAgICAgICAgICAgICAgICAgICA9IDEwMCwKLSAgICBX
RUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSTCAgICAgICAgICAgICAgICAgICAgICAg
ICA9IDEwMSwKLSAgICBXRUJLSVRfUE9MSUNZX0VSUk9SX0ZSQU1FX0xPQURfSU5URVJSVVBURURf
QllfUE9MSUNZX0NIQU5HRSA9IDEwMiwKLSAgICBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9V
U0VfUkVTVFJJQ1RFRF9QT1JUICAgICAgICAgICAgICA9IDEwMywKLX0gV2ViS2l0UG9saWN5RXJy
b3I7Ci0KLS8qKgotICogV2ViS2l0UGx1Z2luRXJyb3I6Ci0gKiBAV0VCS0lUX1BMVUdJTl9FUlJP
Ul9GQUlMRUQ6IEdlbmVyaWMgcGx1Z2luIGxvYWQgZmFpbHVyZQotICogQFdFQktJVF9QTFVHSU5f
RVJST1JfQ0FOTk9UX0ZJTkRfUExVR0lOOiBMb2FkIGZhaWx1cmUgZHVlIHRvIG1pc3NpbmcgcGx1
Z2luCi0gKiBAV0VCS0lUX1BMVUdJTl9FUlJPUl9DQU5OT1RfTE9BRF9QTFVHSU46IExvYWQgZmFp
bHVyZSBkdWUgdG8gaW5hYmlsaXR5IHRvIGxvYWQgcGx1Z2luCi0gKiBAV0VCS0lUX1BMVUdJTl9F
UlJPUl9KQVZBX1VOQVZBSUxBQkxFOiBMb2FkIGZhaWx1ZSBkdWUgdG8gbWlzc2luZyBKYXZhIHN1
cHBvcnQgdGhhdCBpcyByZXF1aXJlZCB0byBsb2FkIHBsdWdpbgotICogQFdFQktJVF9QTFVHSU5f
RVJST1JfQ09OTkVDVElPTl9DQU5DRUxMRUQ6IExvYWQgZmFpbHVyZSBkdWUgdG8gY29ubmVjdGlv
biBjYW5jZWxsYXRpb24KLSAqIEBXRUJLSVRfUExVR0lOX0VSUk9SX1dJTExfSEFORExFX0xPQUQ6
IExvYWQgZmFpbHVyZSBzaW5jZSBwbHVnaW4gaGFuZGxlcyB0aGUgbG9hZAotICoKLSAqIEVudW0g
dmFsdWVzIHVzZWQgdG8gZGVub3RlIHRoZSB2YXJpb3VzIHBsdWdpbiBlcnJvcnMuCi0gKiovCi10
eXBlZGVmIGVudW0gewotICAgIFdFQktJVF9QTFVHSU5fRVJST1JfRkFJTEVEICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgID0gMjk5LAotICAgIFdFQktJVF9QTFVHSU5fRVJST1JfQ0FO
Tk9UX0ZJTkRfUExVR0lOICAgICAgICAgICAgICAgICAgICAgID0gMjAwLAotICAgIFdFQktJVF9Q
TFVHSU5fRVJST1JfQ0FOTk9UX0xPQURfUExVR0lOICAgICAgICAgICAgICAgICAgICAgID0gMjAx
LAotICAgIFdFQktJVF9QTFVHSU5fRVJST1JfSkFWQV9VTkFWQUlMQUJMRSAgICAgICAgICAgICAg
ICAgICAgICAgID0gMjAyLAotICAgIFdFQktJVF9QTFVHSU5fRVJST1JfQ09OTkVDVElPTl9DQU5D
RUxMRUQgICAgICAgICAgICAgICAgICAgID0gMjAzLAotICAgIFdFQktJVF9QTFVHSU5fRVJST1Jf
V0lMTF9IQU5ETEVfTE9BRCAgICAgICAgICAgICAgICAgICAgICAgID0gMjA0LAotfSBXZWJLaXRQ
bHVnaW5FcnJvcjsKLQotCi1XRUJLSVRfQVBJIEdRdWFyawotd2Via2l0X25ldHdvcmtfZXJyb3Jf
cXVhcmsgKHZvaWQpOwotCi1XRUJLSVRfQVBJIEdRdWFyawotd2Via2l0X3BvbGljeV9lcnJvcl9x
dWFyayAgKHZvaWQpOwotCi1XRUJLSVRfQVBJIEdRdWFyawotd2Via2l0X3BsdWdpbl9lcnJvcl9x
dWFyayAgKHZvaWQpOwotCi1HX0VORF9ERUNMUwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2UuY3BwIGIvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDFlOWFkMTMuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NTIg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBDaHJpc3RpYW4gRHl3YW4gPGNocmlz
dGlhbkBsYW5lZG8uY29tPgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJ3ZWJraXRmYXZpY29uZGF0YWJhc2UuaCIKLQotI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJHZGtDYWlyb1V0aWxpdGllcy5oIgotI2lu
Y2x1ZGUgIkljb25EYXRhYmFzZS5oIgotI2luY2x1ZGUgIkljb25EYXRhYmFzZUNsaWVudC5oIgot
I2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIndlYmtp
dGZhdmljb25kYXRhYmFzZXByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzLmgiCi0j
aW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXRtYXJzaGFs
LmgiCi0jaW5jbHVkZSAid2Via2l0c2VjdXJpdHlvcmlnaW5wcml2YXRlLmgiCi0jaW5jbHVkZSAi
d2Via2l0d2ViZnJhbWUuaCIKLSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+Ci0KLS8qKgotICogU0VDVElPTjp3ZWJraXRmYXZpY29uZGF0YWJhc2UKLSAqIEBzaG9y
dF9kZXNjcmlwdGlvbjogQSBXZWJLaXQgZmF2aWNvbiBkYXRhYmFzZQotICogQFRpdGxlOiBXZWJL
aXRGYXZpY29uRGF0YWJhc2UKLSAqCi0gKiAjV2ViS2l0RmF2aWNvbkRhdGFiYXNlIHByb3ZpZGVz
IGFjY2VzcyB0byB0aGUgaWNvbnMgYXNzb2NpYXRlZCB3aXRoCi0gKiB3ZWIgc2l0ZXMuCi0gKgot
ICogV2ViS2l0IHdpbGwgYXV0b21hdGljYWxseSBsb29rIGZvciBhdmFpbGFibGUgaWNvbnMgaW4g
bGluayBlbGVtZW50cwotICogb24gb3BlbmVkIHBhZ2VzIGFzIHdlbGwgYXMgYW4gZXhpc3Rpbmcg
ZmF2aWNvbi5pY28gYW5kIGxvYWQgdGhlCi0gKiBpbWFnZXMgZm91bmQgaW50byBhIG1lbW9yeSBj
YWNoZSBpZiBwb3NzaWJsZS4gVGhhdCBjYWNoZSBpcyBmcm96ZW4KLSAqIHRvIGFuIG9uLWRpc2sg
ZGF0YWJhc2UgZm9yIHBlcnNpc3RlbmNlLgotICoKLSAqIFRoZSBkYXRhYmFzZSBpcyBkaXNhYmxl
ZCBieSBkZWZhdWx0LiBJbiBvcmRlciBmb3IgaWNvbnMgdG8gYmUKLSAqIHN0b3JlZCBhbmQgYWNj
ZXNzZWQsIHlvdSB3aWxsIG5lZWQgdG8gc2V0IGFuIGljb24gZGF0YWJhc2UgcGF0aAotICogdXNp
bmcgd2Via2l0X2Zhdmljb25fZGF0YWJhc2Vfc2V0X3BhdGgoKS4gRGlzYWJsZSB0aGUgZGF0YWJh
c2UKLSAqIGFnYWluIHBhc3NpbmcgJU5VTEwgdG8gdGhlIHByZXZpb3VzIGNhbGwuCi0gKgotICog
SWYgV2ViS2l0V2ViU2V0dGluZ3M6OmVuYWJsZS1wcml2YXRlLWJyb3dzaW5nIGlzICVUUlVFIG5l
dyBpY29ucwotICogd29uJ3QgYmUgYWRkZWQgdG8gdGhlIG9uLWRpc2sgZGF0YWJhc2UgYW5kIG5v
IGV4aXN0aW5nIGljb25zIHdpbGwKLSAqIGJlIGRlbGV0ZWQgZnJvbSBpdC4gTmV2ZXJ0aGVsZXNz
LCBXZWJLaXQgd2lsbCBzdGlsbCBzdG9yZSB0aGVtIGluCi0gKiB0aGUgaW4tbWVtb3J5IGNhY2hl
IGR1cmluZyB0aGUgY3VycmVudCBleGVjdXRpb24uCi0gKgotICogU2luY2U6IDEuOAotICovCi0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotY2xh
c3MgUGVuZGluZ0ljb25SZXF1ZXN0OwotCi1zdGF0aWMgdm9pZCB3ZWJraXRGYXZpY29uRGF0YWJh
c2VQcm9jZXNzUGVuZGluZ0ljb25zRm9yVVJJKFdlYktpdEZhdmljb25EYXRhYmFzZSosIGNvbnN0
IFN0cmluZyYgcGFnZVVSSSk7Ci1zdGF0aWMgdm9pZCB3ZWJraXRGYXZpY29uRGF0YWJhc2VJbXBv
cnRGaW5pc2hlZChXZWJLaXRGYXZpY29uRGF0YWJhc2UqKTsKLXN0YXRpYyB2b2lkIHdlYmtpdEZh
dmljb25EYXRhYmFzZUdldEljb25QaXhidWZDYW5jZWxsZWQoR0NhbmNlbGxhYmxlKiwgUGVuZGlu
Z0ljb25SZXF1ZXN0Kik7Ci1zdGF0aWMgdm9pZCB3ZWJraXRGYXZpY29uRGF0YWJhc2VDbG9zZShX
ZWJLaXRGYXZpY29uRGF0YWJhc2UqIGRhdGFiYXNlKTsKLQotY2xhc3MgSWNvbkRhdGFiYXNlQ2xp
ZW50R3RrIDogcHVibGljIEljb25EYXRhYmFzZUNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgLy8gSWNv
bkRhdGFiYXNlQ2xpZW50IGludGVyZmFjZQotICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVBbGxJ
Y29ucygpIHsgfTsKLQotICAgIC8vIENhbGxlZCB3aGVuIGFuIGljb24gaXMgcmVxdWVzdGVkIHdo
aWxlIHRoZSBpbml0aWFsIGltcG9ydCBpcwotICAgIC8vIGdvaW5nIG9uLgotICAgIHZpcnR1YWwg
dm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIC8qIFVSTCAqLykg
eyB9OwotCi0gICAgLy8gQ2FsbGVkIHdoZW5ldmVyIGEgcmV0YWluZWQgaWNvbiBpcyByZWFkIGZy
b20gZGF0YWJhc2UuCi0gICAgdmlydHVhbCB2b2lkIGRpZEltcG9ydEljb25EYXRhRm9yUGFnZVVS
TChjb25zdCBTdHJpbmcmIFVSTCkKLSAgICB7Ci0gICAgICAgIFdlYktpdEZhdmljb25EYXRhYmFz
ZSogZGF0YWJhc2UgPSB3ZWJraXRfZ2V0X2Zhdmljb25fZGF0YWJhc2UoKTsKLSAgICAgICAgLy8g
V2UgbmVlZCB0byBlbWl0IHRoaXMgaGVyZSBiZWNhdXNlIHdlYmtpdEZhdmljb25EYXRhYmFzZURp
c3BhdGNoRGlkUmVjZWl2ZUljb24oKQotICAgICAgICAvLyBpcyBvbmx5IGNhbGxlZCBmb3IgaWNv
bnMgdGhhdCBoYXZlIGp1c3QgYmVpbmcgZG93bmxvYWRlZCwgYW5kIHRoaXMgaXMgY2FsbGVkCi0g
ICAgICAgIC8vIHdoZW4gaWNvbiBkYXRhIGlzIGltcG9ydGVkIGZyb20gdGhlIGRhdGFiYXNlLgot
ICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoZGF0YWJhc2UsICJpY29uLWxvYWRlZCIsIFVS
TC51dGY4KCkuZGF0YSgpKTsKLQotICAgICAgICB3ZWJraXRGYXZpY29uRGF0YWJhc2VQcm9jZXNz
UGVuZGluZ0ljb25zRm9yVVJJKGRhdGFiYXNlLCBVUkwpOwotICAgIH0KLQotICAgIHZpcnR1YWwg
dm9pZCBkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIC8qIFVSTCAqLykKLSAg
ICB7Ci0gICAgICAgIC8vIENhbGxlZCB3aGVuIHRoZSB0aGUgZmF2aWNvbiBmb3IgYSBwYXJ0aWN1
bGFyIFVSTCBjaGFuZ2VzLgotICAgICAgICAvLyBJdCBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIG5l
dyBpY29uIGRhdGEgaXMgYXZhaWxhYmxlIHlldC4KLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoVVJMSW1wb3J0KCkKLSAgICB7Ci0gICAgICAgIHdlYmtpdEZhdmljb25EYXRhYmFz
ZUltcG9ydEZpbmlzaGVkKHdlYmtpdF9nZXRfZmF2aWNvbl9kYXRhYmFzZSgpKTsKLQotICAgICAg
ICAvLyBOb3cgdGhhdCBldmVyeXRoaW5nIGlzIGltcG9ydGVkIGVuYWJsZSBwcnVuaW5nIG9mIG9s
ZAotICAgICAgICAvLyBpY29ucy4gTm8gaWNvbiB3aWxsIGJlIHJlbW92ZWQgZHVyaW5nIHRoZSBp
bXBvcnQgcHJvY2VzcwotICAgICAgICAvLyBiZWNhdXNlIHdlIGRpc2FibGUgY2xlYW51cHMgYmVm
b3JlIG9wZW5pbmcgdGhlIGRhdGFiYXNlLgotICAgICAgICBJY29uRGF0YWJhc2U6OmFsbG93RGF0
YWJhc2VDbGVhbnVwKCk7Ci0gICAgfQotfTsKLQotY2xhc3MgUGVuZGluZ0ljb25SZXF1ZXN0IHsK
LXB1YmxpYzoKLSAgICBQZW5kaW5nSWNvblJlcXVlc3QoY29uc3QgU3RyaW5nJiBwYWdlVVJMLCBH
U2ltcGxlQXN5bmNSZXN1bHQqIHJlc3VsdCwgR0NhbmNlbGxhYmxlKiBjYW5jZWxsYWJsZSwgSW50
U2l6ZSBpY29uU2l6ZSkKLSAgICAgICAgOiBtX3BhZ2VVUkwocGFnZVVSTCkKLSAgICAgICAgLCBt
X2FzeW5jUmVzdWx0KHJlc3VsdCkKLSAgICAgICAgLCBtX2NhbmNlbGxhYmxlKGNhbmNlbGxhYmxl
KQotICAgICAgICAsIG1fY2FuY2VsbGVkSWQoMCkKLSAgICAgICAgLCBtX2ljb25TaXplKGljb25T
aXplKQotICAgIHsKLSAgICAgICAgaWYgKGNhbmNlbGxhYmxlKSB7Ci0gICAgICAgICAgICBtX2Nh
bmNlbGxlZElkID0gZ19jYW5jZWxsYWJsZV9jb25uZWN0KGNhbmNlbGxhYmxlLCBHX0NBTExCQUNL
KHdlYmtpdEZhdmljb25EYXRhYmFzZUdldEljb25QaXhidWZDYW5jZWxsZWQpLCB0aGlzLCAwKTsK
LSAgICAgICAgICAgIGdfb2JqZWN0X3NldF9kYXRhX2Z1bGwoR19PQkpFQ1QocmVzdWx0KSwgImNh
bmNlbGxhYmxlIiwgZ19vYmplY3RfcmVmKGNhbmNlbGxhYmxlKSwgc3RhdGljX2Nhc3Q8R0Rlc3Ry
b3lOb3RpZnk+KGdfb2JqZWN0X3VucmVmKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB+UGVu
ZGluZ0ljb25SZXF1ZXN0KCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2NhbmNlbGxlZElkID4gMCkK
LSAgICAgICAgICAgIGdfY2FuY2VsbGFibGVfZGlzY29ubmVjdChtX2NhbmNlbGxhYmxlLmdldCgp
LCBtX2NhbmNlbGxlZElkKTsKLSAgICB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIHBhZ2VVUkwoKSB7
IHJldHVybiBtX3BhZ2VVUkw7IH0KLSAgICBHU2ltcGxlQXN5bmNSZXN1bHQqIGFzeW5jUmVzdWx0
KCkgeyByZXR1cm4gbV9hc3luY1Jlc3VsdC5nZXQoKTsgfQotICAgIGNvbnN0IEludFNpemUmIGlj
b25TaXplKCkgeyByZXR1cm4gbV9pY29uU2l6ZTsgfQotCi0gICAgdm9pZCBhc3luY1Jlc3VsdENh
bmNlbCgpCi0gICAgewotICAgICAgICBBU1NFUlQobV9hc3luY1Jlc3VsdCk7Ci0gICAgICAgIGdf
c2ltcGxlX2FzeW5jX3Jlc3VsdF9zZXRfZXJyb3IobV9hc3luY1Jlc3VsdC5nZXQoKSwgR19JT19F
UlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQsICIlcyIsIF8oIk9wZXJhdGlvbiB3YXMgY2FuY2Vs
bGVkIikpOwotICAgICAgICBnX3NpbXBsZV9hc3luY19yZXN1bHRfY29tcGxldGUobV9hc3luY1Jl
c3VsdC5nZXQoKSk7Ci0gICAgfQotCi0gICAgdm9pZCBhc3luY1Jlc3VsdENvbXBsZXRlSW5JZGxl
KEdka1BpeGJ1ZiogaWNvbikKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX2FzeW5jUmVzdWx0KTsK
LSAgICAgICAgZ19zaW1wbGVfYXN5bmNfcmVzdWx0X3NldF9vcF9yZXNfZ3BvaW50ZXIobV9hc3lu
Y1Jlc3VsdC5nZXQoKSwgaWNvbiwgMCk7Ci0gICAgICAgIGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9j
b21wbGV0ZV9pbl9pZGxlKG1fYXN5bmNSZXN1bHQuZ2V0KCkpOwotICAgIH0KLQotICAgIHZvaWQg
YXN5bmNSZXN1bHRDb21wbGV0ZShHZGtQaXhidWYqIGljb24pCi0gICAgewotICAgICAgICBBU1NF
UlQobV9hc3luY1Jlc3VsdCk7Ci0gICAgICAgIGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9zZXRfb3Bf
cmVzX2dwb2ludGVyKG1fYXN5bmNSZXN1bHQuZ2V0KCksIGljb24sIDApOwotICAgICAgICBnX3Np
bXBsZV9hc3luY19yZXN1bHRfY29tcGxldGUobV9hc3luY1Jlc3VsdC5nZXQoKSk7Ci0gICAgfQot
Ci1wcml2YXRlOgotICAgIFN0cmluZyBtX3BhZ2VVUkw7Ci0gICAgR1JlZlB0cjxHU2ltcGxlQXN5
bmNSZXN1bHQ+IG1fYXN5bmNSZXN1bHQ7Ci0gICAgR1JlZlB0cjxHQ2FuY2VsbGFibGU+IG1fY2Fu
Y2VsbGFibGU7Ci0gICAgZ3Vsb25nIG1fY2FuY2VsbGVkSWQ7Ci0gICAgSW50U2l6ZSBtX2ljb25T
aXplOwotfTsKLQotCi1lbnVtIHsKLSAgICBQUk9QXzAsCi0KLSAgICBQUk9QX1BBVEgsCi19Owot
Ci1lbnVtIHsKLSAgICBJQ09OX0xPQURFRCwKLQotICAgIExBU1RfU0lHTkFMCi19OwotCi1zdGF0
aWMgZ3VpbnQgd2Via2l0X2Zhdmljb25fZGF0YWJhc2Vfc2lnbmFsc1tMQVNUX1NJR05BTF0gPSB7
IDAsIH07Ci0KLUdfREVGSU5FX1RZUEUoV2ViS2l0RmF2aWNvbkRhdGFiYXNlLCB3ZWJraXRfZmF2
aWNvbl9kYXRhYmFzZSwgR19UWVBFX09CSkVDVCkKLQotdHlwZWRlZiBWZWN0b3I8c3RkOjp1bmlx
dWVfcHRyPFBlbmRpbmdJY29uUmVxdWVzdD4+IFBlbmRpbmdJY29uUmVxdWVzdFZlY3RvcjsKLXR5
cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFBlbmRpbmdJY29uUmVxdWVzdFZlY3Rvcio+IFBlbmRpbmdJ
Y29uUmVxdWVzdE1hcDsKLQotc3RydWN0IF9XZWJLaXRGYXZpY29uRGF0YWJhc2VQcml2YXRlIHsK
LSAgICBHVW5pcXVlUHRyPGdjaGFyPiBwYXRoOwotICAgIEljb25EYXRhYmFzZUNsaWVudEd0ayBp
Y29uRGF0YWJhc2VDbGllbnQ7Ci0gICAgUGVuZGluZ0ljb25SZXF1ZXN0TWFwIHBlbmRpbmdJY29u
UmVxdWVzdHM7Ci0gICAgYm9vbCBpbXBvcnRGaW5pc2hlZDsKLX07Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdF9mYXZpY29uX2RhdGFiYXNlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKLXsKLSAgICBX
ZWJLaXRGYXZpY29uRGF0YWJhc2UqIGRhdGFiYXNlID0gV0VCS0lUX0ZBVklDT05fREFUQUJBU0Uo
b2JqZWN0KTsKLQotICAgIHdlYmtpdEZhdmljb25EYXRhYmFzZUNsb3NlKGRhdGFiYXNlKTsKLSAg
ICBkYXRhYmFzZS0+cHJpdi0+fldlYktpdEZhdmljb25EYXRhYmFzZVByaXZhdGUoKTsKLQotICAg
IEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX3BhcmVudF9jbGFzcyktPmZp
bmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNl
X3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVl
KiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0RmF2aWNvbkRhdGFiYXNl
KiBkYXRhYmFzZSA9IFdFQktJVF9GQVZJQ09OX0RBVEFCQVNFKG9iamVjdCk7Ci0KLSAgICBzd2l0
Y2ggKHByb3BJZCkgewotICAgIGNhc2UgUFJPUF9QQVRIOgotICAgICAgICB3ZWJraXRfZmF2aWNv
bl9kYXRhYmFzZV9zZXRfcGF0aChkYXRhYmFzZSwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcHNwZWMpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9wcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFt
U3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSA9IFdF
QktJVF9GQVZJQ09OX0RBVEFCQVNFKG9iamVjdCk7Ci0KLSAgICBzd2l0Y2ggKHByb3BJZCkgewot
ICAgIGNhc2UgUFJPUF9QQVRIOgotICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHdl
YmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9wYXRoKGRhdGFiYXNlKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9J
RChvYmplY3QsIHByb3BJZCwgcHNwZWMpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0
YXRpYyB2b2lkIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2NsYXNzX2luaXQoV2ViS2l0RmF2aWNv
bkRhdGFiYXNlQ2xhc3MqIGtsYXNzKQotewotICAgIHdlYmtpdEluaXQoKTsKLQotICAgIEdPYmpl
Y3RDbGFzcyogZ29iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3MpOwotICAgIGdvYmpl
Y3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9maW5hbGl6ZTsKLSAg
ICBnb2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX3Nl
dF9wcm9wZXJ0eTsKLSAgICBnb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9mYXZp
Y29uX2RhdGFiYXNlX2dldF9wcm9wZXJ0eTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdEZhdmlj
b25EYXRhYmFzZTpwYXRoOgotICAgICAqCi0gICAgICogVGhlIGFic29sdXRlIHBhdGggb2YgdGhl
IGljb24gZGF0YWJhc2UgZm9sZGVyLgotICAgICAqCi0gICAgICogU2luY2U6IDEuOAotICAgICAq
LwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLCBQUk9Q
X1BBVEgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVj
X3N0cmluZygicGF0aCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfKCJQYXRoIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUg
aWNvbiBkYXRhYmFzZSBmb2xkZXIiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7
Ci0KLQotICAgIC8qKgotICAgICAqIFdlYktpdEZhdmljb25EYXRhYmFzZTo6aWNvbi1sb2FkZWQ6
Ci0gICAgICogQGRhdGFiYXNlOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1p
dHRlZAotICAgICAqIEBmcmFtZV91cmk6IHRoZSBVUkkgb2YgdGhlIG1haW4gZnJhbWUgb2YgYSBX
ZWIgcGFnZSBjb250YWluaW5nCi0gICAgICogdGhlIGljb24KLSAgICAgKgotICAgICAqIFRoaXMg
c2lnbmFsIGlzIGZpcmVkIGlmIGFuIGljb24gaXMgbG9hZGVkIG9uIGFueQotICAgICAqICNXZWJL
aXRXZWJWaWV3LiBJZiB5b3UgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBhIHBhcnRpY3VsYXIKLSAg
ICAgKiAjV2ViS2l0V2ViVmlldyBzZWUgI1dlYktpdFdlYlZpZXc6Omljb24tbG9hZGVkLgotICAg
ICAqCi0gICAgICogTm90ZSB0aGF0IHRoaXMgc2lnbmFsIGNhcnJpZXMgdGhlIFVSSSBvZiB0aGUg
ZnJhbWUgdGhhdCBsb2FkcwotICAgICAqIHRoZSBpY29uLCB3aGlsZSAjV2ViS2l0V2ViVmlldzo6
aWNvbi1sb2FkZWQgcHJvdmlkZXMgdGhlIFVSSQotICAgICAqIG9mIHRoZSBmYXZpY29uLgotICAg
ICAqCi0gICAgICogU2luY2U6IDEuOAotICAgICAqLwotICAgIHdlYmtpdF9mYXZpY29uX2RhdGFi
YXNlX3NpZ25hbHNbSUNPTl9MT0FERURdID0gZ19zaWduYWxfbmV3KCJpY29uLWxvYWRlZCIsCi0g
ICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGtsYXNzKSwKLSAgICAgICAgKEdTaWduYWxGbGFncylH
X1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwgMCwgMCwKLSAgICAgICAgd2Via2l0X21hcnNo
YWxfVk9JRF9fU1RSSU5HLAotICAgICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAgICAgR19UWVBF
X1NUUklORyk7Ci0KLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUoa2xhc3MsIHNpemVvZihX
ZWJLaXRGYXZpY29uRGF0YWJhc2VQcml2YXRlKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9m
YXZpY29uX2RhdGFiYXNlX2luaXQoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSkKLXsK
LSAgICBkYXRhYmFzZS0+cHJpdiA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShkYXRhYmFz
ZSwgV0VCS0lUX1RZUEVfRkFWSUNPTl9EQVRBQkFTRSwgV2ViS2l0RmF2aWNvbkRhdGFiYXNlUHJp
dmF0ZSk7Ci0gICAgbmV3IChkYXRhYmFzZS0+cHJpdikgV2ViS2l0RmF2aWNvbkRhdGFiYXNlUHJp
dmF0ZSgpOwotfQotCi0vLyBDYWxsZWQgZnJvbSBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRSZWNlaXZlSWNvbigpCi12b2lkIHdlYmtpdEZhdmljb25EYXRhYmFzZURpc3BhdGNoRGlkUmVj
ZWl2ZUljb24oV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSwgY29uc3QgY2hhciogZnJh
bWVVUkkpCi17Ci0gICAgZ19zaWduYWxfZW1pdChkYXRhYmFzZSwgd2Via2l0X2Zhdmljb25fZGF0
YWJhc2Vfc2lnbmFsc1tJQ09OX0xPQURFRF0sIDAsIGZyYW1lVVJJKTsKLQotICAgIC8vIFJldGFp
biB0aGUgbmV3IGljb24uCi0gICAgaWNvbkRhdGFiYXNlKCkucmV0YWluSWNvbkZvclBhZ2VVUkwo
U3RyaW5nOjpmcm9tVVRGOChmcmFtZVVSSSkpOwotfQotCi0vKioKLSAqIHdlYmtpdF9mYXZpY29u
X2RhdGFiYXNlX2dldF9wYXRoOgotICogQGRhdGFiYXNlOiBhICNXZWJLaXRGYXZpY29uRGF0YWJh
c2UKLSAqCi0gKiBEZXRlcm1pbmVzIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBkYXRhYmFzZSBm
b2xkZXIgb24gZGlzay4KLSAqCi0gKiBSZXR1cm5zOiB0aGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUg
ZGF0YWJhc2UgZm9sZGVyLCBvciAlTlVMTAotICoKLSAqIFNpbmNlOiAxLjgKLSAqLwotY29uc3Qg
Z2NoYXIqIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9wYXRoKFdlYktpdEZhdmljb25EYXRh
YmFzZSogZGF0YWJhc2UpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0ZB
VklDT05fREFUQUJBU0UoZGF0YWJhc2UpLCAwKTsKLQotICAgIHJldHVybiBkYXRhYmFzZS0+cHJp
di0+cGF0aC5nZXQoKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0RmF2aWNvbkRhdGFiYXNlQ2xv
c2UoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKikKLXsKLSAgICBpZiAoaWNvbkRhdGFiYXNlKCkuaXNF
bmFibGVkKCkpIHsKLSAgICAgICAgaWNvbkRhdGFiYXNlKCkuc2V0RW5hYmxlZChmYWxzZSk7Ci0g
ICAgICAgIGljb25EYXRhYmFzZSgpLmNsb3NlKCk7Ci0gICAgfQotfQotCi0vKioKLSAqIHdlYmtp
dF9mYXZpY29uX2RhdGFiYXNlX3NldF9wYXRoOgotICogQGRhdGFiYXNlOiBhICNXZWJLaXRGYXZp
Y29uRGF0YWJhc2UKLSAqIEBwYXRoOiAoYWxsb3ctbm9uZSk6IGFuIGFic29sdXRlIHBhdGggdG8g
dGhlIGljb24gZGF0YWJhc2UgZm9sZGVyCi0gKiBvciAlTlVMTCB0byBkaXNhYmxlIHRoZSBkYXRh
YmFzZQotICoKLSAqIFNwZWNpZmllcyB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgZGF0YWJhc2Ug
Zm9sZGVyIG9uIGRpc2suIFRoZQotICogaWNvbiBkYXRhYmFzZSB3aWxsIG9ubHkgYmUgZW5hYmxl
ZCBhZnRlciBhIGNhbGwgdG8gdGhpcyBtZXRob2QuCi0gKgotICogUGFzc2luZyAlTlVMTCBvciAi
IiBhcyBwYXRoIGRpc2FibGVzIHRoZSBpY29uIGRhdGFiYXNlLgotICoKLSAqIFNpbmNlOiAxLjgK
LSAqLwotdm9pZCB3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9zZXRfcGF0aChXZWJLaXRGYXZpY29u
RGF0YWJhc2UqIGRhdGFiYXNlLCBjb25zdCBnY2hhciogcGF0aCkKLXsKLSAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19GQVZJQ09OX0RBVEFCQVNFKGRhdGFiYXNlKSk7Ci0KLSAgICAvLyBB
bHdheXMgdHJ5IHRvIGNsb3NlIGJlY2F1c2UgdGhlIGRlcHJlY2F0ZWQgaWNvbmRhdGFiYXNlIGlz
IG9wZW5lZCBieSBkZWZhdWx0LgotICAgIHdlYmtpdEZhdmljb25EYXRhYmFzZUNsb3NlKGRhdGFi
YXNlKTsKLQotICAgIGRhdGFiYXNlLT5wcml2LT5pbXBvcnRGaW5pc2hlZCA9IGZhbHNlOwotICAg
IGlmICghcGF0aCB8fCAhcGF0aFswXSkgewotICAgICAgICBkYXRhYmFzZS0+cHJpdi0+cGF0aC5y
ZXNldCgpOwotICAgICAgICBpY29uRGF0YWJhc2UoKS5zZXRFbmFibGVkKGZhbHNlKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGljb25EYXRhYmFzZSgpLnNldENsaWVudCgmZGF0YWJh
c2UtPnByaXYtPmljb25EYXRhYmFzZUNsaWVudCk7Ci0gICAgSWNvbkRhdGFiYXNlOjpkZWxheURh
dGFiYXNlQ2xlYW51cCgpOwotICAgIGljb25EYXRhYmFzZSgpLnNldEVuYWJsZWQodHJ1ZSk7Ci0g
ICAgaWYgKCFpY29uRGF0YWJhc2UoKS5vcGVuKGZpbGVuYW1lVG9TdHJpbmcocGF0aCksIEljb25E
YXRhYmFzZTo6ZGVmYXVsdERhdGFiYXNlRmlsZW5hbWUoKSkpIHsKLSAgICAgICAgSWNvbkRhdGFi
YXNlOjphbGxvd0RhdGFiYXNlQ2xlYW51cCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgZGF0YWJhc2UtPnByaXYtPnBhdGgucmVzZXQoZ19zdHJkdXAocGF0aCkpOwotfQotCi0vKioK
LSAqIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9mYXZpY29uX3VyaToKLSAqIEBkYXRhYmFz
ZTogYSAjV2ViS2l0RmF2aWNvbkRhdGFiYXNlCi0gKiBAcGFnZV91cmk6IFVSSSBvZiB0aGUgcGFn
ZSBjb250YWluaW5nIHRoZSBpY29uCi0gKgotICogT2J0YWlucyB0aGUgVVJJIGZvciB0aGUgZmF2
aWNvbiBmb3IgdGhlIGdpdmVuIHBhZ2UgVVJJLgotICogU2VlIGFsc28gd2Via2l0X3dlYl92aWV3
X2dldF9pY29uX3VyaSgpLgotICoKLSAqIFJldHVybnM6IGEgbmV3bHkgYWxsb2NhdGVkIFVSSSBm
b3IgdGhlIGZhdmljb24sIG9yICVOVUxMCi0gKgotICogU2luY2U6IDEuOAotICovCi1nY2hhciog
d2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X2Zhdmljb25fdXJpKFdlYktpdEZhdmljb25EYXRh
YmFzZSogZGF0YWJhc2UsIGNvbnN0IGdjaGFyKiBwYWdlVVJJKQotewotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19GQVZJQ09OX0RBVEFCQVNFKGRhdGFiYXNlKSwgMCk7Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwocGFnZVVSSSwgMCk7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKLQotICAgIFN0cmluZyBpY29uVVJJID0gaWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNJ
Y29uVVJMRm9yUGFnZVVSTChTdHJpbmc6OmZyb21VVEY4KHBhZ2VVUkkpKTsKLSAgICBpZiAoaWNv
blVSSS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGdfc3RyZHVw
KGljb25VUkkudXRmOCgpLmRhdGEoKSk7Ci19Ci0KLXN0YXRpYyBHZGtQaXhidWYqIGdldEljb25Q
aXhidWZTeW5jaHJvbm91c2x5KFdlYktpdEZhdmljb25EYXRhYmFzZSosIGNvbnN0IFN0cmluZyYg
cGFnZVVSTCwgY29uc3QgSW50U2l6ZSYgaWNvblNpemUpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKLQotICAgIC8vIFRoZSBleGFjdCBzaXplIHdlIHBhc3MgaXMgaXJyZWxldmFudCB0
byB0aGUgaWNvbkRhdGFiYXNlIGNvZGUuCi0gICAgLy8gV2UgbXVzdCBwYXNzIHNvbWV0aGluZyBn
cmVhdGVyIHRoYW4gMHgwIHRvIGdldCBhIHBpeGJ1Zi4KLSAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFj
ZV90PiBzdXJmYWNlID0gaWNvbkRhdGFiYXNlKCkuc3luY2hyb25vdXNOYXRpdmVJY29uRm9yUGFn
ZVVSTChwYWdlVVJMLCAhaWNvblNpemUuaXNaZXJvKCkgPyBpY29uU2l6ZSA6IEludFNpemUoMSwg
MSkpOwotICAgIGlmICghc3VyZmFjZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBHUmVmUHRy
PEdka1BpeGJ1Zj4gcGl4YnVmID0gYWRvcHRHUmVmKGNhaXJvU3VyZmFjZVRvR2RrUGl4YnVmKHN1
cmZhY2UuZ2V0KCkpKTsKLSAgICBpZiAoIXBpeGJ1ZikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg
ICAvLyBBIHNpemUgb2YgKDAsIDApIG1lYW5zIHRoZSBtYXhpbXVtIGF2YWlsYWJsZSBzaXplLgot
ICAgIGludCBwaXhidWZXaWR0aCA9IGdka19waXhidWZfZ2V0X3dpZHRoKHBpeGJ1Zi5nZXQoKSk7
Ci0gICAgaW50IHBpeGJ1ZkhlaWdodCA9IGdka19waXhidWZfZ2V0X2hlaWdodChwaXhidWYuZ2V0
KCkpOwotICAgIGlmICghaWNvblNpemUuaXNaZXJvKCkgJiYgKHBpeGJ1ZldpZHRoICE9IGljb25T
aXplLndpZHRoKCkgfHwgcGl4YnVmSGVpZ2h0ICE9IGljb25TaXplLmhlaWdodCgpKSkKLSAgICAg
ICAgcGl4YnVmID0gYWRvcHRHUmVmKGdka19waXhidWZfc2NhbGVfc2ltcGxlKHBpeGJ1Zi5nZXQo
KSwgaWNvblNpemUud2lkdGgoKSwgaWNvblNpemUuaGVpZ2h0KCksIEdES19JTlRFUlBfQklMSU5F
QVIpKTsKLSAgICByZXR1cm4gcGl4YnVmLmxlYWtSZWYoKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRf
ZmF2aWNvbl9kYXRhYmFzZV90cnlfZ2V0X2Zhdmljb25fcGl4YnVmOgotICogQGRhdGFiYXNlOiBh
ICNXZWJLaXRGYXZpY29uRGF0YWJhc2UKLSAqIEBwYWdlX3VyaTogVVJJIG9mIHRoZSBwYWdlIGNv
bnRhaW5pbmcgdGhlIGljb24KLSAqIEB3aWR0aDogdGhlIGRlc2lyZWQgd2lkdGggZm9yIHRoZSBp
Y29uCi0gKiBAaGVpZ2h0OiB0aGUgZGVzaXJlZCBoZWlnaHQgZm9yIHRoZSBpY29uCi0gKgotICog
T2J0YWlucyBhICNHZGtQaXhidWYgb2YgdGhlIGZhdmljb24gZm9yIHRoZSBnaXZlbiBwYWdlIFVS
SSwgb3IKLSAqICVOVUxMIGlmIHRoZXJlIGlzIG5vIGljb24gZm9yIHRoZSBnaXZlbiBwYWdlIG9y
IGl0IGhhc24ndCBiZWVuCi0gKiBsb2FkZWQgZnJvbSBkaXNrIHlldC4gVXNlIHdlYmtpdF9mYXZp
Y29uX2RhdGFiYXNlX2dldF9mYXZpY29uX3VyaSgpCi0gKiBpZiB5b3UgbmVlZCB0byBkaXN0aW5n
dWlzaCB0aGVzZSBjYXNlcy4gIFRvIG1ha2Ugc3VyZSB0aGlzIG1ldGhvZAotICogd2lsbCByZXR1
cm4gYSB2YWxpZCBpY29uIHdoZW4gdGhlIGdpdmVuIFVSSSBoYXMgb25lLCB5b3Ugc2hvdWxkCi0g
KiBjb25uZWN0IHRvICNXZWJLaXRGYXZpY29uRGF0YWJhc2U6Omljb24tbG9hZGVkIGFuZCB1c2Ug
dGhpcyBmdW5jdGlvbgotICogaW4gdGhlIGNhbGxiYWNrLgotICoKLSAqIElmIEB3aWR0aCBhbmQg
QGhlaWdodCBhciBib3RoIDAgdGhlbiB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiB0aGUKLSAqIG1h
eGltdW0gYXZhaWxhYmxlIHNpemUgZm9yIHRoZSBpY29uLiBOb3RlIHRoYXQgaWYgeW91IHNwZWNp
ZnkgYQotICogZGlmZmVyZW50IHNpemUgdGhlIGljb24gd2lsbCBiZSBzY2FsZWQgZWFjaCB0aW1l
IHlvdSBjYWxsIHRoaXMKLSAqIGZ1bmN0aW9uLgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogYSBuZXcgcmVmZXJlbmNlIHRvIGEgI0dka1BpeGJ1Ziwgb3IgJU5VTEwKLSAqIGlmIHRo
ZSBnaXZlbiBVUkkgZG9lc24ndCBoYXZlIGFuIGljb24gb3IgaXQgaGFzbid0IGJlZW4gbG9hZGVk
IHlldC4KLSAqCi0gKiBTaW5jZTogMS44Ci0gKi8KLUdka1BpeGJ1Ziogd2Via2l0X2Zhdmljb25f
ZGF0YWJhc2VfdHJ5X2dldF9mYXZpY29uX3BpeGJ1ZihXZWJLaXRGYXZpY29uRGF0YWJhc2UqIGRh
dGFiYXNlLCBjb25zdCBnY2hhciogcGFnZVVSSSwgZ3VpbnQgd2lkdGgsIGd1aW50IGhlaWdodCkK
LXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfRkFWSUNPTl9EQVRBQkFTRShk
YXRhYmFzZSksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHBhZ2VVUkksIDApOwotICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCh3aWR0aCAmJiBoZWlnaHQpIHx8ICghd2lkdGggJiYgIWhl
aWdodCksIDApOwotCi0gICAgcmV0dXJuIGdldEljb25QaXhidWZTeW5jaHJvbm91c2x5KGRhdGFi
YXNlLCBTdHJpbmc6OmZyb21VVEY4KHBhZ2VVUkkpLCBJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsK
LX0KLQotc3RhdGljIFBlbmRpbmdJY29uUmVxdWVzdFZlY3Rvciogd2Via2l0RmF2aWNvbkRhdGFi
YXNlR2V0T3JDcmVhdGVSZXF1ZXN0cyhXZWJLaXRGYXZpY29uRGF0YWJhc2UqIGRhdGFiYXNlLCBj
b25zdCBTdHJpbmcmIHBhZ2VVUkwpCi17Ci0gICAgUGVuZGluZ0ljb25SZXF1ZXN0VmVjdG9yKiBp
Y29ucyA9IGRhdGFiYXNlLT5wcml2LT5wZW5kaW5nSWNvblJlcXVlc3RzLmdldChwYWdlVVJMKTsK
LSAgICBpZiAoIWljb25zKSB7Ci0gICAgICAgIGljb25zID0gbmV3IFBlbmRpbmdJY29uUmVxdWVz
dFZlY3RvcjsKLSAgICAgICAgZGF0YWJhc2UtPnByaXYtPnBlbmRpbmdJY29uUmVxdWVzdHMuc2V0
KHBhZ2VVUkwsIGljb25zKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gaWNvbnM7Ci19Ci0KLXN0YXRp
YyB2b2lkIHdlYmtpdGZhdmljb25kYXRhYmFzZURlbGV0ZVJlcXVlc3RzKFdlYktpdEZhdmljb25E
YXRhYmFzZSogZGF0YWJhc2UsIFBlbmRpbmdJY29uUmVxdWVzdFZlY3RvciogcmVxdWVzdHMsIGNv
bnN0IFN0cmluZyYgcGFnZVVSTCkKLXsKLSAgICBkYXRhYmFzZS0+cHJpdi0+cGVuZGluZ0ljb25S
ZXF1ZXN0cy5yZW1vdmUocGFnZVVSTCk7Ci0gICAgZGVsZXRlIHJlcXVlc3RzOwotfQotCi1zdGF0
aWMgdm9pZCBnZXRJY29uUGl4YnVmQ2FuY2VsbGVkKHZvaWQqIHVzZXJEYXRhKQotewotICAgIFBl
bmRpbmdJY29uUmVxdWVzdCogcmVxdWVzdCA9IHN0YXRpY19jYXN0PFBlbmRpbmdJY29uUmVxdWVz
dCo+KHVzZXJEYXRhKTsKLSAgICByZXF1ZXN0LT5hc3luY1Jlc3VsdENhbmNlbCgpOwotCi0gICAg
Y29uc3QgU3RyaW5nJiBwYWdlVVJMID0gcmVxdWVzdC0+cGFnZVVSTCgpOwotICAgIFdlYktpdEZh
dmljb25EYXRhYmFzZSogZGF0YWJhc2UgPSB3ZWJraXRfZ2V0X2Zhdmljb25fZGF0YWJhc2UoKTsK
LSAgICBQZW5kaW5nSWNvblJlcXVlc3RWZWN0b3IqIGljb25zID0gZGF0YWJhc2UtPnByaXYtPnBl
bmRpbmdJY29uUmVxdWVzdHMuZ2V0KHBhZ2VVUkwpOwotICAgIGlmICghaWNvbnMpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHNpemVfdCBpdGVtSW5kZXggPSAwOwotICAgIGZvciAoYXV0byYgaXRl
bSA6ICppY29ucykgewotICAgICAgICBpZiAoaXRlbS5nZXQoKSA9PSByZXF1ZXN0KSB7Ci0gICAg
ICAgICAgICBpY29ucy0+cmVtb3ZlKGl0ZW1JbmRleCk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotCi0gICAgICAgIGl0ZW1JbmRleCsrOwotICAgIH0KLQotICAgIGlmIChpY29ucy0+
aXNFbXB0eSgpKQotICAgICAgICB3ZWJraXRmYXZpY29uZGF0YWJhc2VEZWxldGVSZXF1ZXN0cyhk
YXRhYmFzZSwgaWNvbnMsIHBhZ2VVUkwpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRGYXZpY29u
RGF0YWJhc2VHZXRJY29uUGl4YnVmQ2FuY2VsbGVkKEdDYW5jZWxsYWJsZSosIFBlbmRpbmdJY29u
UmVxdWVzdCogcmVxdWVzdCkKLXsKLSAgICAvLyBIYW5kbGUgY2FuY2VsbGVkIGluIGEgaW4gaWRs
ZSBzaW5jZSBpdCBtaWdodCBiZSBjYWxsZWQgZnJvbSBhbnkgdGhyZWFkLgotICAgIGNhbGxPbk1h
aW5UaHJlYWQoZ2V0SWNvblBpeGJ1ZkNhbmNlbGxlZCwgcmVxdWVzdCk7Ci19Ci0KLS8qKgotICog
d2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X2Zhdmljb25fcGl4YnVmOgotICogQGRhdGFiYXNl
OiBhICNXZWJLaXRGYXZpY29uRGF0YWJhc2UKLSAqIEBwYWdlX3VyaTogVVJJIG9mIHRoZSBwYWdl
IGNvbnRhaW5pbmcgdGhlIGljb24KLSAqIEB3aWR0aDogdGhlIGRlc2lyZWQgd2lkdGggZm9yIHRo
ZSBpY29uCi0gKiBAaGVpZ2h0OiB0aGUgZGVzaXJlZCBoZWlnaHQgZm9yIHRoZSBpY29uCi0gKiBA
Y2FuY2VsbGFibGU6IChhbGxvdy1ub25lKTogQSAjR0NhbmNlbGxhYmxlIG9yICVOVUxMLgotICog
QGNhbGxiYWNrOiAoYWxsb3ctbm9uZSk6IEEgI0dBc3luY1JlYWR5Q2FsbGJhY2sgdG8gY2FsbCB3
aGVuIHRoZSByZXF1ZXN0IGlzCi0gKiAgICAgICAgICAgIHNhdGlzZmllZCBvciAlTlVMTCBpZiB5
b3UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgcmVzdWx0LgotICogQHVzZXJfZGF0YTogVGhlIGRhdGEg
dG8gcGFzcyB0byBAY2FsbGJhY2suCi0gKgotICogQXN5bmNocm9ub3VzbHkgb2J0YWlucyBhICNH
ZGtQaXhidWYgb2YgdGhlIGZhdmljb24gZm9yIHRoZSBnaXZlbgotICogcGFnZSBVUkkuIFRoZSBh
ZHZhbnRhZ2Ugb2YgdGhpcyBtZXRob2Qgb3ZlcgotICogd2Via2l0X2Zhdmljb25fZGF0YWJhc2Vf
dHJ5X2dldF9mYXZpY29uX3BpeGJ1ZigpIGlzIHRoYXQgaXQgYWx3YXlzIHJldHVybnMgdGhlCi0g
KiBjYWNoZWQgaWNvbiBpZiBpdCdzIGluIHRoZSBkYXRhYmFzZSBhc3luY2hyb25vdXNseSB3YWl0
aW5nIGZvciB0aGUKLSAqIGljb24gdG8gYmUgcmVhZCBmcm9tIHRoZSBkYXRhYmFzZS4KLSAqCi0g
KiBUaGlzIGlzIGFuIGFzeW5jaHJvbm91cyBtZXRob2QuIFdoZW4gdGhlIG9wZXJhdGlvbiBpcyBm
aW5pc2hlZCwgY2FsbGJhY2sgd2lsbAotICogYmUgaW52b2tlZC4gWW91IGNhbiB0aGVuIGNhbGwg
d2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X2Zhdmljb25fcGl4YnVmX2ZpbmlzaCgpCi0gKiB0
byBnZXQgdGhlIHJlc3VsdCBvZiB0aGUgb3BlcmF0aW9uLgotICogU2VlIGFsc28gd2Via2l0X2Zh
dmljb25fZGF0YWJhc2VfdHJ5X2dldF9mYXZpY29uX3BpeGJ1ZigpLgotICoKLSAqIElmIEB3aWR0
aCBhbmQgQGhlaWdodCBhcmUgYm90aCAwIHRoZW4gdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gdGhl
Ci0gKiBtYXhpbXVtIGF2YWlsYWJsZSBzaXplIGZvciB0aGUgaWNvbi4gTm90ZSB0aGF0IGlmIHlv
dSBzcGVjaWZ5IGEKLSAqIGRpZmZlcmVudCBzaXplIHRoZSBpY29uIHdpbGwgYmUgc2NhbGVkIGVh
Y2ggdGltZSB5b3UgY2FsbCB0aGlzCi0gKiBmdW5jdGlvbi4KLSAqCi0gKiBTaW5jZTogMS44Ci0g
Ki8KLXZvaWQgd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X2Zhdmljb25fcGl4YnVmKFdlYktp
dEZhdmljb25EYXRhYmFzZSogZGF0YWJhc2UsIGNvbnN0IGdjaGFyKiBwYWdlVVJJLCBndWludCB3
aWR0aCwgZ3VpbnQgaGVpZ2h0LCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBHQXN5bmNSZWFk
eUNhbGxiYWNrIGNhbGxiYWNrLCBncG9pbnRlciB1c2VyRGF0YSkKLXsKLSAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19GQVZJQ09OX0RBVEFCQVNFKGRhdGFiYXNlKSk7Ci0gICAgZ19yZXR1
cm5faWZfZmFpbChwYWdlVVJJKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCh3aWR0aCAmJiBoZWln
aHQpIHx8ICghd2lkdGggJiYgIWhlaWdodCkpOwotCi0gICAgR1JlZlB0cjxHU2ltcGxlQXN5bmNS
ZXN1bHQ+IHJlc3VsdCA9IGFkb3B0R1JlZihnX3NpbXBsZV9hc3luY19yZXN1bHRfbmV3KEdfT0JK
RUNUKGRhdGFiYXNlKSwgY2FsbGJhY2ssIHVzZXJEYXRhLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWludGVycHJldF9jYXN0PGdwb2ludGVyPih3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9nZXRfZmF2
aWNvbl9waXhidWYpKSk7Ci0KLSAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGFuIGljb24gZm9yIHRo
ZSBnaXZlbiBVUkkgb3IgdGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVuZWQgdGhlbiByZXR1cm4gQVNB
UC4gV2UgaGF2ZSB0byBjaGVjayB0aGF0Ci0gICAgLy8gYmVjYXVzZSBpZiB0aGUgZGF0YWJhc2Ug
aXMgbm90IG9wZW5lZCBpdCB3aWxsIHNraXAgKGFuZCBub3Qgbm90aWZ5IGFib3V0KSBldmVyeSBz
aW5nbGUgaWNvbiBsb2FkIHJlcXVlc3QKLSAgICBpZiAoKGRhdGFiYXNlLT5wcml2LT5pbXBvcnRG
aW5pc2hlZCAmJiBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25VUkxGb3JQYWdlVVJMKFN0
cmluZzo6ZnJvbVVURjgocGFnZVVSSSkpLmlzRW1wdHkoKSkKLSAgICAgICAgfHwgIWljb25EYXRh
YmFzZSgpLmlzT3BlbigpKSB7Ci0gICAgICAgIGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9zZXRfb3Bf
cmVzX2dwb2ludGVyKHJlc3VsdC5nZXQoKSwgMCwgMCk7Ci0gICAgICAgIGdfc2ltcGxlX2FzeW5j
X3Jlc3VsdF9jb21wbGV0ZV9pbl9pZGxlKHJlc3VsdC5nZXQoKSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBTdHJpbmcgcGFnZVVSTCA9IFN0cmluZzo6ZnJvbVVURjgocGFnZVVSSSk7
Ci0gICAgUGVuZGluZ0ljb25SZXF1ZXN0KiByZXF1ZXN0ID0gbmV3IFBlbmRpbmdJY29uUmVxdWVz
dChwYWdlVVJMLCByZXN1bHQuZ2V0KCksIGNhbmNlbGxhYmxlLCBJbnRTaXplKHdpZHRoLCBoZWln
aHQpKTsKLQotICAgIC8vIFJlZ2lzdGVyIGljb24gcmVxdWVzdCBiZWZvcmUgYXNraW5nIGZvciB0
aGUgaWNvbiB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnMuCi0gICAgUGVuZGluZ0ljb25SZXF1ZXN0
VmVjdG9yKiBpY29ucyA9IHdlYmtpdEZhdmljb25EYXRhYmFzZUdldE9yQ3JlYXRlUmVxdWVzdHMo
ZGF0YWJhc2UsIHBhZ2VVUkwpOwotICAgIEFTU0VSVChpY29ucyk7Ci0gICAgaWNvbnMtPmFwcGVu
ZChzdGQ6OnVuaXF1ZV9wdHI8UGVuZGluZ0ljb25SZXF1ZXN0PihyZXF1ZXN0KSk7Ci0KLSAgICAv
LyBXZSBhc2sgZm9yIHRoZSBpY29uIGRpcmVjdGx5LiBJZiB3ZSBkb24ndCBnZXQgdGhlIGljb24g
ZGF0YSBub3csCi0gICAgLy8gd2UnbGwgYmUgbm90aWZpZWQgbGF0ZXIgKGV2ZW4gaWYgdGhlIGRh
dGFiYXNlIGlzIHN0aWxsIGltcG9ydGluZyBpY29ucykuCi0gICAgR2RrUGl4YnVmKiBwaXhidWYg
PSBnZXRJY29uUGl4YnVmU3luY2hyb25vdXNseShkYXRhYmFzZSwgcGFnZVVSTCwgSW50U2l6ZSh3
aWR0aCwgaGVpZ2h0KSk7Ci0gICAgaWYgKCFwaXhidWYpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHJlcXVlc3QtPmFzeW5jUmVzdWx0Q29tcGxldGVJbklkbGUocGl4YnVmKTsKLQotICAgIC8vIFJl
bW92ZSB0aGUgcmVxdWVzdCB3ZSBoYXZlIGp1c3QgY3JlYXRlZCBhcyBpdCBpc24ndCBwZW5kaW5n
Ci0gICAgLy8gYW55bW9yZSBiZWNhdXNlIHdlIGFscmVhZHkgaGF2ZSB0aGUgcGl4YnVmLgotICAg
IEFTU0VSVChpY29ucy0+bGFzdCgpLmdldCgpID09IHJlcXVlc3QpOwotICAgIGljb25zLT5yZW1v
dmVMYXN0KCk7Ci0gICAgaWYgKGljb25zLT5pc0VtcHR5KCkpCi0gICAgICAgIHdlYmtpdGZhdmlj
b25kYXRhYmFzZURlbGV0ZVJlcXVlc3RzKGRhdGFiYXNlLCBpY29ucywgcGFnZVVSTCk7Ci19Ci0K
LS8qKgotICogd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X2Zhdmljb25fcGl4YnVmX2Zpbmlz
aDoKLSAqIEBkYXRhYmFzZTogYSAjV2ViS2l0RmF2aWNvbkRhdGFiYXNlCi0gKiBAcmVzdWx0OiBB
ICNHQXN5bmNSZXN1bHQgb2J0YWluZWQgZnJvbSB0aGUgI0dBc3luY1JlYWR5Q2FsbGJhY2sgcGFz
c2VkIHRvIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9mYXZpY29uX3BpeGJ1ZigpCi0gKiBA
ZXJyb3I6IChhbGxvdy1ub25lKTogUmV0dXJuIGxvY2F0aW9uIGZvciBlcnJvciBvciAlTlVMTC4K
LSAqCi0gKiBGaW5pc2hlcyBhbiBvcGVyYXRpb24gc3RhcnRlZCB3aXRoIHdlYmtpdF9mYXZpY29u
X2RhdGFiYXNlX2dldF9mYXZpY29uX3BpeGJ1ZigpLgotICoKLSAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogYSBuZXcgcmVmZXJlbmNlIHRvIGEgI0dka1BpeGJ1Ziwgb3IgJU5VTEwuCi0gKgot
ICogU2luY2U6IDEuOAotICovCi1HZGtQaXhidWYqIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dl
dF9mYXZpY29uX3BpeGJ1Zl9maW5pc2goV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiwgR0FzeW5jUmVz
dWx0KiByZXN1bHQsIEdFcnJvcioqIGVycm9yKQotewotICAgIEdTaW1wbGVBc3luY1Jlc3VsdCog
c2ltcGxlUmVzdWx0ID0gR19TSU1QTEVfQVNZTkNfUkVTVUxUKHJlc3VsdCk7Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoZ19zaW1wbGVfYXN5bmNfcmVzdWx0X2dldF9zb3VyY2VfdGFnKHNpbXBs
ZVJlc3VsdCkgPT0gd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X2Zhdmljb25fcGl4YnVmLCAw
KTsKLQotICAgIGlmIChnX3NpbXBsZV9hc3luY19yZXN1bHRfcHJvcGFnYXRlX2Vycm9yKHNpbXBs
ZVJlc3VsdCwgZXJyb3IpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEdDYW5jZWxsYWJsZSog
Y2FuY2VsbGFibGUgPSBzdGF0aWNfY2FzdDxHQ2FuY2VsbGFibGUqPihnX29iamVjdF9nZXRfZGF0
YShHX09CSkVDVChzaW1wbGVSZXN1bHQpLCAiY2FuY2VsbGFibGUiKSk7Ci0gICAgaWYgKGNhbmNl
bGxhYmxlICYmIGdfY2FuY2VsbGFibGVfaXNfY2FuY2VsbGVkKGNhbmNlbGxhYmxlKSkgewotICAg
ICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NB
TkNFTExFRCwgXygiT3BlcmF0aW9uIHdhcyBjYW5jZWxsZWQiKSk7Ci0gICAgICAgIHJldHVybiAw
OwotICAgIH0KLQotICAgIEdka1BpeGJ1ZiogaWNvbiA9IHN0YXRpY19jYXN0PEdka1BpeGJ1Zio+
KGdfc2ltcGxlX2FzeW5jX3Jlc3VsdF9nZXRfb3BfcmVzX2dwb2ludGVyKHNpbXBsZVJlc3VsdCkp
OwotICAgIGlmICghaWNvbikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8R2RrUGl4YnVmKj4oaWNvbik7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEZhdmljb25E
YXRhYmFzZVByb2Nlc3NQZW5kaW5nSWNvbnNGb3JVUkkoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBk
YXRhYmFzZSwgY29uc3QgU3RyaW5nJiBwYWdlVVJMKQotewotICAgIFBlbmRpbmdJY29uUmVxdWVz
dFZlY3RvciogaWNvbnMgPSBkYXRhYmFzZS0+cHJpdi0+cGVuZGluZ0ljb25SZXF1ZXN0cy5nZXQo
cGFnZVVSTCk7Ci0gICAgaWYgKCFpY29ucykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBpY29ucy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgUGVuZGluZ0lj
b25SZXF1ZXN0KiByZXF1ZXN0ID0gaWNvbnMtPmF0KGkpLmdldCgpOwotICAgICAgICBpZiAocmVx
dWVzdC0+YXN5bmNSZXN1bHQoKSkKLSAgICAgICAgICAgIHJlcXVlc3QtPmFzeW5jUmVzdWx0Q29t
cGxldGUoZ2V0SWNvblBpeGJ1ZlN5bmNocm9ub3VzbHkoZGF0YWJhc2UsIHBhZ2VVUkwsIHJlcXVl
c3QtPmljb25TaXplKCkpKTsKLSAgICB9Ci0gICAgd2Via2l0ZmF2aWNvbmRhdGFiYXNlRGVsZXRl
UmVxdWVzdHMoZGF0YWJhc2UsIGljb25zLCBwYWdlVVJMKTsKLX0KLQotc3RhdGljIHZvaWQgd2Vi
a2l0RmF2aWNvbkRhdGFiYXNlSW1wb3J0RmluaXNoZWQoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBk
YXRhYmFzZSkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIGRhdGFiYXNlLT5w
cml2LT5pbXBvcnRGaW5pc2hlZCA9IHRydWU7Ci0KLSAgICAvLyBJbXBvcnQgaXMgY29tcGxldGUs
IHByb2Nlc3MgcGVuZGluZyByZXF1ZXN0cyBmb3IgcGFnZXMgdGhhdCBhcmUgbm90IGluIHRoZSBk
YXRhYmFzZSwKLSAgICAvLyBzaW5jZSBkaWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwoKSB3aWxs
IG5ldmVyIGJlIGNhbGxlZCBmb3IgdGhlbS4KLSAgICBWZWN0b3I8U3RyaW5nPiB0b0RlbGV0ZVVS
THM7Ci0gICAgUGVuZGluZ0ljb25SZXF1ZXN0TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBkYXRh
YmFzZS0+cHJpdi0+cGVuZGluZ0ljb25SZXF1ZXN0cy5lbmQoKTsKLSAgICBmb3IgKFBlbmRpbmdJ
Y29uUmVxdWVzdE1hcDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGRhdGFiYXNlLT5wcml2LT5wZW5k
aW5nSWNvblJlcXVlc3RzLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKLSAgICAgICAg
U3RyaW5nIGljb25VUkwgPSBpY29uRGF0YWJhc2UoKS5zeW5jaHJvbm91c0ljb25VUkxGb3JQYWdl
VVJMKGl0ZXItPmtleSk7Ci0gICAgICAgIGlmICghaWNvblVSTC5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLQotICAgICAgICBQZW5kaW5nSWNvblJlcXVlc3RWZWN0b3IqIGljb25z
ID0gaXRlci0+dmFsdWU7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaWNvbnMtPnNp
emUoKTsgKytpKSB7Ci0gICAgICAgICAgICBQZW5kaW5nSWNvblJlcXVlc3QqIHJlcXVlc3QgPSBp
Y29ucy0+YXQoaSkuZ2V0KCk7Ci0gICAgICAgICAgICBpZiAocmVxdWVzdC0+YXN5bmNSZXN1bHQo
KSkKLSAgICAgICAgICAgICAgICByZXF1ZXN0LT5hc3luY1Jlc3VsdENvbXBsZXRlKDApOwotICAg
ICAgICB9Ci0KLSAgICAgICAgdG9EZWxldGVVUkxzLmFwcGVuZChpdGVyLT5rZXkpOwotICAgIH0K
LQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdG9EZWxldGVVUkxzLnNpemUoKTsgKytpKQot
ICAgICAgICB3ZWJraXRmYXZpY29uZGF0YWJhc2VEZWxldGVSZXF1ZXN0cyhkYXRhYmFzZSwgZGF0
YWJhc2UtPnByaXYtPnBlbmRpbmdJY29uUmVxdWVzdHMuZ2V0KHRvRGVsZXRlVVJMc1tpXSksIHRv
RGVsZXRlVVJMc1tpXSk7Ci19Ci0KLS8qKgotICogd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfY2xl
YXI6Ci0gKiBAZGF0YWJhc2U6IGEgI1dlYktpdEZhdmljb25EYXRhYmFzZQotICoKLSAqIENsZWFy
cyBhbGwgaWNvbnMgZnJvbSB0aGUgZGF0YWJhc2UuCi0gKgotICogU2luY2U6IDEuOAotICovCi12
b2lkIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2NsZWFyKFdlYktpdEZhdmljb25EYXRhYmFzZSog
ZGF0YWJhc2UpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfRkFWSUNPTl9EQVRB
QkFTRShkYXRhYmFzZSkpOwotCi0gICAgaWNvbkRhdGFiYXNlKCkucmVtb3ZlQWxsSWNvbnMoKTsK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0
YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2Uu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTVkNmI4NC4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmF2aWNvbmRhdGFiYXNlLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw5NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIENocmlzdGlh
biBEeXdhbiA8Y2hyaXN0aWFuQGxhbmVkby5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdh
bGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKi8KLQotI2lmbmRlZiB3ZWJraXRmYXZpY29uZGF0YWJhc2VfaAotI2RlZmluZSB3ZWJraXRm
YXZpY29uZGF0YWJhc2VfaAotCi0jaW5jbHVkZSA8Z2RrLXBpeGJ1Zi9nZGstcGl4YnVmLmg+Ci0j
aW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5o
PgotCi1HX0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUgV0VCS0lUX1RZUEVfRkFWSUNPTl9EQVRBQkFT
RSAgICAgICAgICAgICAod2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X3R5cGUoKSkKLSNkZWZp
bmUgV0VCS0lUX0ZBVklDT05fREFUQUJBU0Uob2JqKSAgICAgICAgICAgICAoR19UWVBFX0NIRUNL
X0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0ZBVklDT05fREFUQUJBU0UsIFdlYktp
dEZhdmljb25EYXRhYmFzZSkpCi0jZGVmaW5lIFdFQktJVF9GQVZJQ09OX0RBVEFCQVNFX0NMQVNT
KGtsYXNzKSAgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9GQVZJQ09OX0RBVEFCQVNFLCBXZWJLaXRGYXZpY29uRGF0YWJhc2VDbGFzcykpCi0jZGVmaW5l
IFdFQktJVF9JU19GQVZJQ09OX0RBVEFCQVNFKG9iaikgICAgICAgICAgKEdfVFlQRV9DSEVDS19J
TlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9GQVZJQ09OX0RBVEFCQVNFKSkKLSNkZWZp
bmUgV0VCS0lUX0lTX0ZBVklDT05fREFUQUJBU0VfQ0xBU1Moa2xhc3MpICAoR19UWVBFX0NIRUNL
X0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0ZBVklDT05fREFUQUJBU0UpKQotI2Rl
ZmluZSBXRUJLSVRfRkFWSUNPTl9EQVRBQkFTRV9HRVRfQ0xBU1Mob2JqKSAgIChHX1RZUEVfSU5T
VEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRkFWSUNPTl9EQVRBQkFTRSwgV2Vi
S2l0RmF2aWNvbkRhdGFiYXNlQ2xhc3MpKQotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RmF2aWNv
bkRhdGFiYXNlUHJpdmF0ZSBXZWJLaXRGYXZpY29uRGF0YWJhc2VQcml2YXRlOwotCi1zdHJ1Y3Qg
X1dlYktpdEZhdmljb25EYXRhYmFzZSB7Ci0gICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7Ci0K
LSAgICAvKjwgcHJpdmF0ZSA+Ki8KLSAgICBXZWJLaXRGYXZpY29uRGF0YWJhc2VQcml2YXRlKiBw
cml2OwotfTsKLQotc3RydWN0IF9XZWJLaXRGYXZpY29uRGF0YWJhc2VDbGFzcyB7Ci0gICAgR09i
amVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIC8qIFBhZGRpbmcgZm9yIGZ1dHVyZSBleHBh
bnNpb24gKi8KLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2b2lk
ICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDMpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDQpICh2b2lkKTsKLX07Ci0K
LVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF90eXBlICAgICAg
ICAgICAgICAgICAgKHZvaWQpOwotCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgotd2Via2l0X2Zh
dmljb25fZGF0YWJhc2VfZ2V0X3BhdGggICAgICAgICAgICAgICAgICAoV2ViS2l0RmF2aWNvbkRh
dGFiYXNlKiBkYXRhYmFzZSk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2Zhdmljb25fZGF0
YWJhc2Vfc2V0X3BhdGggICAgICAgICAgICAgICAgICAoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBk
YXRhYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyKiAgICAgICAgICAgcGF0aCk7Ci0KLVdFQktJVF9BUEkgZ2NoYXIqCi13
ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9nZXRfZmF2aWNvbl91cmkgICAgICAgICAgIChXZWJLaXRG
YXZpY29uRGF0YWJhc2UqIGRhdGFiYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqICAgICAgICAgICBwYWdlX3VyaSk7Ci0K
LVdFQktJVF9BUEkgR2RrUGl4YnVmKgotd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfdHJ5X2dldF9m
YXZpY29uX3BpeGJ1ZiAgICAoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy
KiAgICAgICAgICAgcGFnZV91cmksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgICAgIHdpZHRoLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAg
ICAgICAgICBoZWlnaHQpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9mYXZpY29uX2RhdGFi
YXNlX2dldF9mYXZpY29uX3BpeGJ1ZiAgICAgICAgKFdlYktpdEZhdmljb25EYXRhYmFzZSogZGF0
YWJhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBnY2hhciogICAgICAgICAgIHBhZ2VfdXJpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAgICB3aWR0
aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1
aW50ICAgICAgICAgICAgICAgICAgaGVpZ2h0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0NhbmNlbGxhYmxlKiAgICAgICAgICBjYW5jZWxsYWJs
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdB
c3luY1JlYWR5Q2FsbGJhY2sgICAgY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgICAgIHVzZXJfZGF0
YSk7Ci0KLVdFQktJVF9BUEkgR2RrUGl4YnVmKgotd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0
X2Zhdmljb25fcGl4YnVmX2ZpbmlzaCAoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3lu
Y1Jlc3VsdCogICAgICAgICAgcmVzdWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0Vycm9yKiogICAgICAgICAgICAgICBlcnJvcik7Ci0KLVdF
QktJVF9BUEkgdm9pZAotd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfY2xlYXIgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSk7Ci0KLUdfRU5EX0RFQ0xT
Ci0KLSNlbmRpZiAvKiB3ZWJraXRmYXZpY29uZGF0YWJhc2VfaCAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZXByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmYXZpY29uZGF0YWJhc2Vwcml2YXRlLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3Njc5YTAuLjAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZhdmljb25kYXRhYmFzZXByaXZhdGUuaAorKysgL2Rl
di9udWxsCkBAIC0xLDI1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlh
IFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
Ki8KLQotI2lmbmRlZiB3ZWJraXRmYXZpY29uZGF0YWJhc2Vwcml2YXRlX2gKLSNkZWZpbmUgd2Vi
a2l0ZmF2aWNvbmRhdGFiYXNlcHJpdmF0ZV9oCi0KLXZvaWQgd2Via2l0RmF2aWNvbkRhdGFiYXNl
RGlzcGF0Y2hEaWRSZWNlaXZlSWNvbihXZWJLaXRGYXZpY29uRGF0YWJhc2UqLCBjb25zdCBjaGFy
KiBmcmFtZVVSSSk7Ci0KLSNlbmRpZiAvLyB3ZWJraXRmYXZpY29uZGF0YWJhc2Vwcml2YXRlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRmaWxlY2hvb3NlcnJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZpbGVjaG9vc2VycmVx
dWVzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhMjI4NTEuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZpbGVjaG9vc2VycmVxdWVzdC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwzNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAid2Via2l0Zmls
ZWNob29zZXJyZXF1ZXN0LmgiCi0KLSNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgotI2luY2x1ZGUg
IkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJ3ZWJraXRmaWxlY2hvb3NlcnJlcXVlc3Rwcml2YXRl
LmgiCi0jaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKLSNpbmNsdWRlIDxnbGliL2dp
MThuLWxpYi5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi0vKioKLSAq
IFNFQ1RJT046d2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0Ci0gKiBAU2hvcnRfZGVzY3JpcHRpb246
IEEgcmVxdWVzdCB0byBvcGVuIGEgZmlsZSBjaG9vc2VyCi0gKiBAVGl0bGU6IFdlYktpdEZpbGVD
aG9vc2VyUmVxdWVzdAotICogQFNlZV9hbHNvOiAjV2ViS2l0V2ViVmlldwotICoKLSAqIFdoZW5l
dmVyIHRoZSB1c2VyIGludGVyYWN0cyB3aXRoIGFuICZsdDtpbnB1dCB0eXBlPSdmaWxlJyAvJmd0
OwotICogSFRNTCBlbGVtZW50LCBXZWJLaXQgd2lsbCBuZWVkIHRvIHNob3cgYSBkaWFsb2cgdG8g
Y2hvb3NlIG9uZSBvcgotICogbW9yZSBmaWxlcyB0byBiZSB1cGxvYWRlZCB0byB0aGUgc2VydmVy
IGFsb25nIHdpdGggdGhlIHJlc3Qgb2YgdGhlCi0gKiBmb3JtIGRhdGEuIEZvciB0aGF0IHRvIGhh
cHBlbiBpbiBhIGdlbmVyYWwgd2F5LCBpbnN0ZWFkIG9mIGp1c3QKLSAqIG9wZW5pbmcgYSAjR3Rr
RmlsZUNob29zZXJEaWFsb2cgKHdoaWNoIG1pZ2h0IGJlIG5vdCBkZXNpcmFibGUgaW4KLSAqIHNv
bWUgY2FzZXMsIHN1Y2ggYXMgd2hlbiBhbiBlbWJlZGRpbmcgYXBwbGljYXRpb25zIHByZWZlcnMg
dG8gdXNlCi0gKiBpdHMgb3duIGZpbGUgY2hvb3NlciBkaWFsb2cpLCBXZWJLaXQgd2lsbCBmaXJl
IHRoZQotICogI1dlYktpdFdlYlZpZXc6OnJ1bi1maWxlLWNob29zZXIgc2lnbmFsIHdpdGggYQot
ICogI1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCBvYmplY3QsIHdoaWNoIHdpbGwgYWxsb3cgdGhl
IGNsaWVudAotICogYXBwbGljYXRpb24gdG8gc3BlY2lmeSB0aGUgZmlsZXMgdG8gYmUgc2VsZWN0
ZWQsIHRvIGluc3BlY3QgdGhlCi0gKiBkZXRhaWxzIG9mIHRoZSByZXF1ZXN0IChlLmcuIGlmIG11
bHRpcGxlIHNlbGVjdGlvbiBzaG91bGQgYmUKLSAqIGFsbG93ZWQpIGFuZCB0byBjYW5jZWwgdGhl
IHJlcXVlc3QsIGluIGNhc2Ugbm90aGluZyB3YXMgc2VsZWN0ZWQuCi0gKgotICogSW4gY2FzZSB0
aGUgY2xpZW50IGFwcGxpY2F0aW9uIGRvZXMgbm90IHdpc2ggdG8gaGFuZGxlIHRoaXMgc2lnbmFs
LAotICogV2ViS2l0IHdpbGwgcHJvdmlkZSBhIGRlZmF1bHQgaGFuZGxlciB3aGljaCB3aWxsIGFz
eW5jaHJvbm91c2x5IHJ1bgotICogYSByZWd1bGFyICNHdGtGaWxlQ2hvb3NlckRpYWxvZyBmb3Ig
dGhlIHVzZXIgdG8gaW50ZXJhY3Qgd2l0aC4KLSAqLwotR19ERUZJTkVfVFlQRShXZWJLaXRGaWxl
Q2hvb3NlclJlcXVlc3QsIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdCwgR19UWVBFX09CSkVD
VCkKLQotc3RydWN0IF9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RQcml2YXRlIHsKLSAgICBSZWZQ
dHI8RmlsZUNob29zZXI+IGNob29zZXI7Ci0gICAgR1JlZlB0cjxHdGtGaWxlRmlsdGVyPiBmaWx0
ZXI7Ci0gICAgR1JlZlB0cjxHUHRyQXJyYXk+IG1pbWVUeXBlczsKLSAgICBHUmVmUHRyPEdQdHJB
cnJheT4gc2VsZWN0ZWRGaWxlczsKLX07Ci0KLWVudW0gewotICAgIFBST1BfMCwKLSAgICBQUk9Q
X0ZJTFRFUiwKLSAgICBQUk9QX01JTUVfVFlQRVMsCi0gICAgUFJPUF9TRUxFQ1RfTVVMVElQTEUs
Ci0gICAgUFJPUF9TRUxFQ1RFRF9GSUxFUywKLX07Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9maWxl
X2Nob29zZXJfcmVxdWVzdF9pbml0KFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCogcmVxdWVzdCkK
LXsKLSAgICByZXF1ZXN0LT5wcml2ID0gR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKHJlcXVl
c3QsIFdFQktJVF9UWVBFX0ZJTEVfQ0hPT1NFUl9SRVFVRVNULCBXZWJLaXRGaWxlQ2hvb3NlclJl
cXVlc3RQcml2YXRlKTsKLSAgICBuZXcgKHJlcXVlc3QtPnByaXYpIFdlYktpdEZpbGVDaG9vc2Vy
UmVxdWVzdFByaXZhdGUoKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2ZpbGVfY2hvb3Nlcl9y
ZXF1ZXN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKLXsKLSAgICBXZWJLaXRGaWxlQ2hvb3Nl
clJlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfRklMRV9DSE9PU0VSX1JFUVVFU1Qob2JqZWN0KTsK
LQotICAgIHJlcXVlc3QtPnByaXYtPn5XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RQcml2YXRlKCk7
Ci0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9maWxlX2No
b29zZXJfcmVxdWVzdF9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQs
IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBhcmFtU3BlYykKLXsKLSAgICBXZWJLaXRGaWxl
Q2hvb3NlclJlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfRklMRV9DSE9PU0VSX1JFUVVFU1Qob2Jq
ZWN0KTsKLSAgICBzd2l0Y2ggKHByb3BJZCkgewotICAgIGNhc2UgUFJPUF9GSUxURVI6Ci0gICAg
ICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0
X2dldF9taW1lX3R5cGVzX2ZpbHRlcihyZXF1ZXN0KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgUFJPUF9NSU1FX1RZUEVTOgotICAgICAgICBnX3ZhbHVlX3NldF9ib3hlZCh2YWx1ZSwgd2Vi
a2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2dldF9taW1lX3R5cGVzKHJlcXVlc3QpKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1NFTEVDVF9NVUxUSVBMRToKLSAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2dldF9zZWxl
Y3RfbXVsdGlwbGUocmVxdWVzdCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfU0VM
RUNURURfRklMRVM6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2JveGVkKHZhbHVlLCB3ZWJraXRfZmls
ZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X3NlbGVjdGVkX2ZpbGVzKHJlcXVlc3QpKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BF
UlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMpOwotICAgICAgICBicmVhazsKLSAgICB9
Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9jbGFzc19pbml0
KFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdENsYXNzKiByZXF1ZXN0Q2xhc3MpCi17Ci0gICAgR09i
amVjdENsYXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyk7Ci0g
ICAgb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2Zp
bmFsaXplOwotICAgIG9iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfZmlsZV9jaG9v
c2VyX3JlcXVlc3RfZ2V0X3Byb3BlcnR5OwotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShy
ZXF1ZXN0Q2xhc3MsIHNpemVvZihXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RQcml2YXRlKSk7Ci0K
LSAgICAvKioKLSAgICAgKiBXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3Q6ZmlsdGVyOgotICAgICAq
Ci0gICAgICogVGhlIGZpbHRlciBjdXJyZW50bHkgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXF1ZXN0
LiBTZWUKLSAgICAgKiB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X21pbWVfdHlwZXNf
ZmlsdGVyKCkgZm9yIG1vcmUKLSAgICAgKiBkZXRhaWxzLgotICAgICAqCi0gICAgICogU2luY2U6
IDEuMTAKLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVj
dENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9GSUxURVIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0
KCJmaWx0ZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiTUlNRSB0eXBlcyBmaWx0ZXIiKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBmaWx0ZXIgY3VycmVudGx5IGFz
c29jaWF0ZWQgd2l0aCB0aGUgcmVxdWVzdCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1RZUEVfRklMRV9GSUxURVIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKLSAgICAvKioKLSAgICAgKiBXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3Q6
bWltZS10eXBlczoKLSAgICAgKgotICAgICAqIEEgJU5VTEwtdGVybWluYXRlZCBhcnJheSBvZiBz
dHJpbmdzIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2YgTUlNRQotICAgICAqIHR5cGVzIHRoZSBmaWxl
IGNob29zZXIgZGlhbG9nIHNob3VsZCBoYW5kbGUuIFNlZQotICAgICAqIHdlYmtpdF9maWxlX2No
b29zZXJfcmVxdWVzdF9nZXRfbWltZV90eXBlcygpIGZvciBtb3JlIGRldGFpbHMuCi0gICAgICoK
LSAgICAgKiBTaW5jZTogMS4xMAotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxf
cHJvcGVydHkob2JqZWN0Q2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQUk9QX01JTUVfVFlQRVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfYm94ZWQoIm1pbWUtdHlwZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTUlNRSB0eXBlcyIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGxpc3Qg
b2YgTUlNRSB0eXBlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHJlcXVlc3QiKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9TVFJWLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VC
S0lUX1BBUkFNX1JFQURBQkxFKSk7ICAgIC8qKgotICAgICAqIFdlYktpdEZpbGVDaG9vc2VyUmVx
dWVzdDpzZWxlY3QtbXVsdGlwbGU6Ci0gICAgICoKLSAgICAgKiBXaGV0aGVyIHRoZSBmaWxlIGNo
b29zZXIgc2hvdWxkIGFsbG93IHNlbGVjdGluZyBtdWx0aXBsZQotICAgICAqIGZpbGVzLiBTZWUK
LSAgICAgKiB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X3NlbGVjdF9tdWx0aXBsZSgp
IGZvcgotICAgICAqIG1vcmUgZGV0YWlscy4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEwCi0g
ICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfU0VMRUNUX01VTFRJUExF
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xl
YW4oInNlbGVjdC1tdWx0aXBsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiU2VsZWN0IG11bHRpcGxlIGZpbGVzIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhl
ciB0aGUgZmlsZSBjaG9vc2VyIHNob3VsZCBhbGxvdyBzZWxlY3RpbmcgbXVsdGlwbGUgZmlsZXMi
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLSAgICAvKioKLSAgICAgKiBXZWJLaXRG
aWxlQ2hvb3NlclJlcXVlc3Q6c2VsZWN0ZWQtZmlsZXM6Ci0gICAgICoKLSAgICAgKiBBICVOVUxM
LXRlcm1pbmF0ZWQgYXJyYXkgb2Ygc3RyaW5ncyBjb250YWluaW5nIHRoZSBsaXN0IG9mCi0gICAg
ICogc2VsZWN0ZWQgZmlsZXMgYXNzb2NpYXRlZCB0byB0aGUgY3VycmVudCByZXF1ZXN0LiBTZWUK
LSAgICAgKiB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X3NlbGVjdGVkX2ZpbGVzKCkg
Zm9yIG1vcmUgZGV0YWlscy4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEwCi0gICAgICovCi0g
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfU0VMRUNURURfRklMRVMsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQoInNlbGVjdGVk
LWZpbGVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF8oIlNlbGVjdGVkIGZpbGVzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgbGlzdCBvZiBzZWxlY3RlZCBmaWxlcyBh
c3NvY2lhdGVkIHdpdGggdGhlIHJlcXVlc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9TVFJWLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURB
QkxFKSk7Ci19Ci0KLVdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCogd2Via2l0X2ZpbGVfY2hvb3Nl
cl9yZXF1ZXN0X2NyZWF0ZShQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBjaG9vc2VyKQotewotICAg
IFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9GSUxFX0NIT09TRVJf
UkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfRklMRV9DSE9PU0VSX1JFUVVFU1QsIE5V
TEwpKTsKLSAgICByZXF1ZXN0LT5wcml2LT5jaG9vc2VyID0gY2hvb3NlcjsKLSAgICByZXR1cm4g
cmVxdWVzdDsKLX0KLQotLyoqCi0gKiB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X21p
bWVfdHlwZXM6Ci0gKiBAcmVxdWVzdDogYSAjV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0Ci0gKgot
ICogR2V0IHRoZSBsaXN0IG9mIE1JTUUgdHlwZXMgdGhlIGZpbGUgY2hvb3NlciBkaWFsb2cgc2hv
dWxkIGhhbmRsZSwKLSAqIGluIHRoZSBmb3JtYXQgc3BlY2lmaWVkIGluIFJGQyAyMDQ2IGZvciAi
bWVkaWEgdHlwZXMiLiBJdHMgY29udGVudHMKLSAqIGRlcGVuZCBvbiB0aGUgdmFsdWUgb2YgdGhl
ICdhY2NlcHQnIGF0dHJpYnV0ZSBmb3IgSFRNTCBpbnB1dAotICogZWxlbWVudHMuIFRoaXMgZnVu
Y3Rpb24gc2hvdWxkIG5vcm1hbGx5IGJlIGNhbGxlZCBiZWZvcmUgcHJlc2VudGluZwotICogdGhl
IGZpbGUgY2hvb3NlciBkaWFsb2cgdG8gdGhlIHVzZXIsIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGFs
bG93IHRoZQotICogdXNlciB0byBzZWxlY3QgbXVsdGlwbGUgZmlsZXMgYXQgb25jZSBvciBvbmx5
IG9uZS4KLSAqCi0gKiBSZXR1cm5zOiAoYXJyYXkgemVyby10ZXJtaW5hdGVkPTEpICh0cmFuc2Zl
ciBub25lKTogYQotICogJU5VTEwtdGVybWluYXRlZCBhcnJheSBvZiBzdHJpbmdzIGlmIGEgbGlz
dCBvZiBhY2NlcHRlZCBNSU1FIHR5cGVzCi0gKiBpcyBkZWZpbmVkIG9yICVOVUxMIG90aGVyd2lz
ZSwgbWVhbmluZyB0aGF0IGFueSBNSU1FIHR5cGUgc2hvdWxkIGJlCi0gKiBhY2NlcHRlZC4gVGhp
cyBhcnJheSBhbmQgaXRzIGNvbnRlbnRzIGFyZSBvd25lZCBieSBXZWJLaXRHVEsrIGFuZAotICog
c2hvdWxkIG5vdCBiZSBtb2RpZmllZCBvciBmcmVlZC4KLSAqCi0gKiBTaW5jZTogMS4xMAotICov
Ci1jb25zdCBnY2hhciogY29uc3QqIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfbWlt
ZV90eXBlcyhXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTEVfQ0hPT1NFUl9SRVFVRVNUKHJlcXVlc3QpLCAw
KTsKLSAgICBpZiAocmVxdWVzdC0+cHJpdi0+bWltZVR5cGVzKQotICAgICAgICByZXR1cm4gcmVp
bnRlcnByZXRfY2FzdDxnY2hhcioqPihyZXF1ZXN0LT5wcml2LT5taW1lVHlwZXMtPnBkYXRhKTsK
LQotICAgIEZpbGVDaG9vc2VyU2V0dGluZ3Mgc2V0dGluZ3MgPSByZXF1ZXN0LT5wcml2LT5jaG9v
c2VyLT5zZXR0aW5ncygpOwotICAgIHNpemVfdCBudW1PZk1pbWVUeXBlcyA9IHNldHRpbmdzLmFj
Y2VwdE1JTUVUeXBlcy5zaXplKCk7Ci0gICAgaWYgKCFudW1PZk1pbWVUeXBlcykKLSAgICAgICAg
cmV0dXJuIDA7Ci0KLSAgICByZXF1ZXN0LT5wcml2LT5taW1lVHlwZXMgPSBhZG9wdEdSZWYoZ19w
dHJfYXJyYXlfbmV3X3dpdGhfZnJlZV9mdW5jKGdfZnJlZSkpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbnVtT2ZNaW1lVHlwZXM7ICsraSkgewotICAgICAgICBTdHJpbmcgbWltZVR5cGVT
dHJpbmcgPSBzZXR0aW5ncy5hY2NlcHRNSU1FVHlwZXNbaV07Ci0gICAgICAgIGlmIChtaW1lVHlw
ZVN0cmluZy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZ19wdHJf
YXJyYXlfYWRkKHJlcXVlc3QtPnByaXYtPm1pbWVUeXBlcy5nZXQoKSwgZ19zdHJkdXAobWltZVR5
cGVTdHJpbmcudXRmOCgpLmRhdGEoKSkpOwotICAgIH0KLSAgICBnX3B0cl9hcnJheV9hZGQocmVx
dWVzdC0+cHJpdi0+bWltZVR5cGVzLmdldCgpLCAwKTsKLQotICAgIHJldHVybiByZWludGVycHJl
dF9jYXN0PGdjaGFyKio+KHJlcXVlc3QtPnByaXYtPm1pbWVUeXBlcy0+cGRhdGEpOwotfQotCi0v
KioKLSAqIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfbWltZV90eXBlc19maWx0ZXI6
Ci0gKiBAcmVxdWVzdDogYSAjV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0Ci0gKgotICogR2V0IHRo
ZSBmaWx0ZXIgY3VycmVudGx5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVxdWVzdCwgcmVhZHkgdG8g
YmUKLSAqIHVzZWQgYnkgI0d0a0ZpbGVDaG9vc2VyLiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3Jt
YWxseSBiZSBjYWxsZWQKLSAqIGJlZm9yZSBwcmVzZW50aW5nIHRoZSBmaWxlIGNob29zZXIgZGlh
bG9nIHRvIHRoZSB1c2VyLCB0byBkZWNpZGUKLSAqIHdoZXRoZXIgdG8gYXBwbHkgYSBmaWx0ZXIg
c28gdGhlIHVzZXIgd291bGQgbm90IGJlIGFsbG93ZWQgdG8KLSAqIHNlbGVjdCBmaWxlcyB3aXRo
IG90aGVyIE1JTUUgdHlwZXMuCi0gKgotICogU2VlIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVz
dF9nZXRfbWltZV90eXBlcygpIGlmIHlvdSBhcmUKLSAqIGludGVyZXN0ZWQgaW4gZ2V0dGluZyB0
aGUgbGlzdCBvZiBhY2NlcHRlZCBNSU1FIHR5cGVzLgotICoKLSAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogYSAjR3RrRmlsZUZpbHRlciBpZiBhIGxpc3Qgb2YgYWNjZXB0ZWQKLSAqIE1JTUUg
dHlwZXMgaXMgZGVmaW5lZCBvciAlTlVMTCBvdGhlcndpc2UuIFRoZSByZXR1cm5lZCBvYmplY3Qg
aXMKLSAqIG93bmVkIGJ5IFdlYktpdEdUSysgc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBvciBmcmVl
ZC4KLSAqCi0gKiBTaW5jZTogMS4xMAotICovCi1HdGtGaWxlRmlsdGVyKiB3ZWJraXRfZmlsZV9j
aG9vc2VyX3JlcXVlc3RfZ2V0X21pbWVfdHlwZXNfZmlsdGVyKFdlYktpdEZpbGVDaG9vc2VyUmVx
dWVzdCogcmVxdWVzdCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfRklM
RV9DSE9PU0VSX1JFUVVFU1QocmVxdWVzdCksIDApOwotICAgIGlmIChyZXF1ZXN0LT5wcml2LT5m
aWx0ZXIpCi0gICAgICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT5maWx0ZXIuZ2V0KCk7Ci0KLSAg
ICBGaWxlQ2hvb3NlclNldHRpbmdzIHNldHRpbmdzID0gcmVxdWVzdC0+cHJpdi0+Y2hvb3Nlci0+
c2V0dGluZ3MoKTsKLSAgICBzaXplX3QgbnVtT2ZNaW1lVHlwZXMgPSBzZXR0aW5ncy5hY2NlcHRN
SU1FVHlwZXMuc2l6ZSgpOwotICAgIGlmICghbnVtT2ZNaW1lVHlwZXMpCi0gICAgICAgIHJldHVy
biAwOwotCi0gICAgLy8gRG8gbm90IHVzZSBhZG9wdEdSZWYgaGVyZSwgc2luY2Ugd2Ugd2FudCB0
byBzaW5rIHRoZSBmbG9hdGluZwotICAgIC8vIHJlZmVyZW5jZSBmb3IgdGhlIG5ldyBpbnN0YW5j
ZSBvZiBHdGtGaWxlRmlsdGVyLCBzbyB3ZSBtYWtlCi0gICAgLy8gc3VyZSB3ZSBrZWVwIHRoZSBv
d25lcnNoaXAgZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGUgcmVxdWVzdC4KLSAgICByZXF1ZXN0
LT5wcml2LT5maWx0ZXIgPSBndGtfZmlsZV9maWx0ZXJfbmV3KCk7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBudW1PZk1pbWVUeXBlczsgKytpKSB7Ci0gICAgICAgIFN0cmluZyBtaW1lVHlw
ZVN0cmluZyA9IHNldHRpbmdzLmFjY2VwdE1JTUVUeXBlc1tpXTsKLSAgICAgICAgaWYgKG1pbWVU
eXBlU3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBndGtf
ZmlsZV9maWx0ZXJfYWRkX21pbWVfdHlwZShyZXF1ZXN0LT5wcml2LT5maWx0ZXIuZ2V0KCksIG1p
bWVUeXBlU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLQotICAgIHJldHVybiByZXF1ZXN0
LT5wcml2LT5maWx0ZXIuZ2V0KCk7Ci19Ci0KLS8qKgotICogd2Via2l0X2ZpbGVfY2hvb3Nlcl9y
ZXF1ZXN0X2dldF9zZWxlY3RfbXVsdGlwbGU6Ci0gKiBAcmVxdWVzdDogYSAjV2ViS2l0RmlsZUNo
b29zZXJSZXF1ZXN0Ci0gKgotICogRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGZpbGUgY2hvb3NlciBh
c3NvY2lhdGVkIHRvIHRoaXMKLSAqICNXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3Qgc2hvdWxkIGFs
bG93IHNlbGVjdGluZyBtdWx0aXBsZSBmaWxlcywKLSAqIHdoaWNoIGRlcGVuZHMgb24gdGhlIEhU
TUwgaW5wdXQgZWxlbWVudCBoYXZpbmcgYSAnbXVsdGlwbGUnCi0gKiBhdHRyaWJ1dGUgZGVmaW5l
ZC4KLSAqCi0gKiBSZXR1cm5zOiAlVFJVRSBpZiB0aGUgZmlsZSBjaG9vc2VyIHNob3VsZCBhbGxv
dyBzZWxlY3RpbmcgbXVsdGlwbGUgZmlsZXMgb3IgJUZBTFNFIG90aGVyd2lzZS4KLSAqCi0gKiBT
aW5jZTogMS4xMAotICovCi1nYm9vbGVhbiB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0
X3NlbGVjdF9tdWx0aXBsZShXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QqIHJlcXVlc3QpCi17Ci0g
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTEVfQ0hPT1NFUl9SRVFVRVNUKHJl
cXVlc3QpLCBGQUxTRSk7Ci0gICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPmNob29zZXItPnNldHRp
bmdzKCkuYWxsb3dzTXVsdGlwbGVGaWxlczsKLX0KLQotLyoqCi0gKiB3ZWJraXRfZmlsZV9jaG9v
c2VyX3JlcXVlc3Rfc2VsZWN0X2ZpbGVzOgotICogQHJlcXVlc3Q6IGEgI1dlYktpdEZpbGVDaG9v
c2VyUmVxdWVzdAotICogQGZpbGVzOiAoYXJyYXkgemVyby10ZXJtaW5hdGVkPTEpICh0cmFuc2Zl
ciBub25lKTogYQotICogJU5VTEwtdGVybWluYXRlZCBhcnJheSBvZiBzdHJpbmdzLCBjb250YWlu
aW5nIHBhdGhzIHRvIGxvY2FsIGZpbGVzLgotICoKLSAqIEFzayBXZWJLaXQgdG8gc2VsZWN0IGxv
Y2FsIGZpbGVzIGZvciB1cGxvYWQgYW5kIGNvbXBsZXRlIHRoZQotICogcmVxdWVzdC4KLSAqCi0g
KiBTaW5jZTogMS4xMAotICovCi12b2lkIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9zZWxl
Y3RfZmlsZXMoV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBnY2hhciog
Y29uc3QqIGZpbGVzKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX0ZJTEVfQ0hP
T1NFUl9SRVFVRVNUKHJlcXVlc3QpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKGZpbGVzKTsKLQot
ICAgIFZlY3RvcjxTdHJpbmc+IG5hbWVzOwotICAgIEdSZWZQdHI8R1B0ckFycmF5PiBzZWxlY3Rl
ZEZpbGVzID0gYWRvcHRHUmVmKGdfcHRyX2FycmF5X25ld193aXRoX2ZyZWVfZnVuYyhnX2ZyZWUp
KTsKLQotICAgIGZvciAoaW50IGkgPSAwOyBmaWxlc1tpXTsgaSsrKSB7Ci0gICAgICAgIG5hbWVz
LmFwcGVuZChmaWxlbmFtZVRvU3RyaW5nKGZpbGVzW2ldKSk7Ci0gICAgICAgIGdfcHRyX2FycmF5
X2FkZChzZWxlY3RlZEZpbGVzLmdldCgpLCBnX3N0cmR1cChmaWxlc1tpXSkpOwotICAgIH0KLQot
ICAgIGdfcHRyX2FycmF5X2FkZChzZWxlY3RlZEZpbGVzLmdldCgpLCAwKTsKLSAgICByZXF1ZXN0
LT5wcml2LT5jaG9vc2VyLT5jaG9vc2VGaWxlcyhuYW1lcyk7Ci0gICAgcmVxdWVzdC0+cHJpdi0+
c2VsZWN0ZWRGaWxlcyA9IHNlbGVjdGVkRmlsZXM7Ci19Ci0KLS8qKgotICogd2Via2l0X2ZpbGVf
Y2hvb3Nlcl9yZXF1ZXN0X2dldF9zZWxlY3RlZF9maWxlczoKLSAqIEByZXF1ZXN0OiBhICNXZWJL
aXRGaWxlQ2hvb3NlclJlcXVlc3QKLSAqCi0gKiBHZXQgdGhlIGxpc3Qgb2Ygc2VsZWN0ZWQgZmls
ZXMgY3VycmVudGx5IGFzc29jaWF0ZWQgdG8gdGhlCi0gKiByZXF1ZXN0LiBJbml0aWFsbHksIHRo
ZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgY29udGFpbnMgYW55Ci0gKiBmaWxlcyBzZWxl
Y3RlZCBpbiBwcmV2aW91cyBmaWxlIGNob29zZXIgcmVxdWVzdHMgZm9yIHRoaXMgSFRNTAotICog
aW5wdXQgZWxlbWVudC4gT25jZSB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3Rfc2VsZWN0X2Zp
bGVzLCB0aGUKLSAqIHZhbHVlIHdpbGwgcmVmbGVjdCB3aGF0ZXZlciBmaWxlcyBhcmUgZ2l2ZW4u
Ci0gKgotICogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm9ybWFsbHkgYmUgY2FsbGVkIG9ubHkgYmVm
b3JlIHByZXNlbnRpbmcgdGhlCi0gKiBmaWxlIGNob29zZXIgZGlhbG9nIHRvIHRoZSB1c2VyLCB0
byBkZWNpZGUgd2hldGhlciB0byBwZXJmb3JtIHNvbWUKLSAqIGV4dHJhIGFjdGlvbiwgbGlrZSBw
cmUtc2VsZWN0aW5nIHRoZSBmaWxlcyBmcm9tIGEgcHJldmlvdXMgcmVxdWVzdC4KLSAqCi0gKiBS
ZXR1cm5zOiAoYXJyYXkgemVyby10ZXJtaW5hdGVkPTEpICh0cmFuc2ZlciBub25lKTogYQotICog
JU5VTEwtdGVybWluYXRlZCBhcnJheSBvZiBzdHJpbmdzIGlmIHRoZXJlIGFyZSBzZWxlY3RlZCBm
aWxlcwotICogYXNzb2NpYXRlZCB3aXRoIHRoZSByZXF1ZXN0IG9yICVOVUxMIG90aGVyd2lzZS4g
VGhpcyBhcnJheSBhbmQgaXRzCi0gKiBjb250ZW50cyBhcmUgb3duZWQgYnkgV2ViS2l0R1RLKyBh
bmQgc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBvcgotICogZnJlZWQuCi0gKgotICogU2luY2U6IDEu
MTAKLSAqLwotY29uc3QgZ2NoYXIqIGNvbnN0KiB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3Rf
Z2V0X3NlbGVjdGVkX2ZpbGVzKFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCogcmVxdWVzdCkKLXsK
LSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfRklMRV9DSE9PU0VSX1JFUVVFU1Qo
cmVxdWVzdCksIDApOwotICAgIGlmIChyZXF1ZXN0LT5wcml2LT5zZWxlY3RlZEZpbGVzKQotICAg
ICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxnY2hhcioqPihyZXF1ZXN0LT5wcml2LT5zZWxl
Y3RlZEZpbGVzLT5wZGF0YSk7Ci0KLSAgICBGaWxlQ2hvb3NlclNldHRpbmdzIHNldHRpbmdzID0g
cmVxdWVzdC0+cHJpdi0+Y2hvb3Nlci0+c2V0dGluZ3MoKTsKLSAgICBzaXplX3QgbnVtT2ZGaWxl
cyA9IHNldHRpbmdzLnNlbGVjdGVkRmlsZXMuc2l6ZSgpOwotICAgIGlmICghbnVtT2ZGaWxlcykK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXF1ZXN0LT5wcml2LT5zZWxlY3RlZEZpbGVzID0g
YWRvcHRHUmVmKGdfcHRyX2FycmF5X25ld193aXRoX2ZyZWVfZnVuYyhnX2ZyZWUpKTsKLSAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG51bU9mRmlsZXM7ICsraSkgewotICAgICAgICBpZiAoc2V0
dGluZ3Muc2VsZWN0ZWRGaWxlc1tpXS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzZXR0
aW5ncy5zZWxlY3RlZEZpbGVzW2ldKTsKLSAgICAgICAgZ19wdHJfYXJyYXlfYWRkKHJlcXVlc3Qt
PnByaXYtPnNlbGVjdGVkRmlsZXMuZ2V0KCksIGdfc3RyZHVwKGZpbGVuYW1lLmRhdGEoKSkpOwot
ICAgIH0KLSAgICBnX3B0cl9hcnJheV9hZGQocmVxdWVzdC0+cHJpdi0+c2VsZWN0ZWRGaWxlcy5n
ZXQoKSwgMCk7Ci0KLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxnY2hhcioqPihyZXF1ZXN0
LT5wcml2LT5zZWxlY3RlZEZpbGVzLT5wZGF0YSk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0LmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGRlYTk0YzguLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGZpbGVjaG9vc2VycmVxdWVzdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIHdlYmtp
dGZpbGVjaG9vc2VycmVxdWVzdF9oCi0jZGVmaW5lIHdlYmtpdGZpbGVjaG9vc2VycmVxdWVzdF9o
Ci0KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMu
aD4KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9UWVBFX0ZJTEVfQ0hPT1NFUl9S
RVFVRVNUICAgICAgICAgICAgKHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfdHlwZSgp
KQotI2RlZmluZSBXRUJLSVRfRklMRV9DSE9PU0VSX1JFUVVFU1Qob2JqKSAgICAgICAgICAgIChH
X1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfRklMRV9DSE9PU0VS
X1JFUVVFU1QsIFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCkpCi0jZGVmaW5lIFdFQktJVF9GSUxF
X0NIT09TRVJfUkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNU
KChrbGFzcyksICBXRUJLSVRfVFlQRV9GSUxFX0NIT09TRVJfUkVRVUVTVCwgV2ViS2l0RmlsZUNo
b29zZXJSZXF1ZXN0Q2xhc3MpKQotI2RlZmluZSBXRUJLSVRfSVNfRklMRV9DSE9PU0VSX1JFUVVF
U1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lU
X1RZUEVfRklMRV9DSE9PU0VSX1JFUVVFU1QpKQotI2RlZmluZSBXRUJLSVRfSVNfRklMRV9DSE9P
U0VSX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3Mp
LCAgV0VCS0lUX1RZUEVfRklMRV9DSE9PU0VSX1JFUVVFU1QpKQotI2RlZmluZSBXRUJLSVRfRklM
RV9DSE9PU0VSX1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRklMRV9DSE9PU0VSX1JFUVVFU1QsIFdlYktpdEZpbGVD
aG9vc2VyUmVxdWVzdENsYXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEZpbGVDaG9vc2Vy
UmVxdWVzdCAgICAgICAgV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0OwotdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdENsYXNzICAgV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0
Q2xhc3M7Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0UHJpdmF0ZSBX
ZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RQcml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdEZpbGVDaG9v
c2VyUmVxdWVzdCB7Ci0gICAgR09iamVjdCBwYXJlbnQ7Ci0KLSAgICAvKjwgcHJpdmF0ZSA+Ki8K
LSAgICBXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RQcml2YXRlICpwcml2OwotfTsKLQotc3RydWN0
IF9XZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3RDbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVu
dF9jbGFzczsKLX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF9maWxlX2Nob29zZXJfcmVx
dWVzdF9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICh2b2lkKTsKLQotV0VCS0lUX0FQSSBjb25z
dCBnY2hhciAqIGNvbnN0ICoKLXdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9nZXRfbWltZV90
eXBlcyAgICAgICAgKFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCAqcmVxdWVzdCk7Ci0KLVdFQktJ
VF9BUEkgR3RrRmlsZUZpbHRlciAqCi13ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X21p
bWVfdHlwZXNfZmlsdGVyIChXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QgKnJlcXVlc3QpOwotCi1X
RUJLSVRfQVBJIGdib29sZWFuCi13ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X3NlbGVj
dF9tdWx0aXBsZSAgIChXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QgKnJlcXVlc3QpOwotCi1XRUJL
SVRfQVBJIHZvaWQKLXdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9zZWxlY3RfZmlsZXMgICAg
ICAgICAgKFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCAqcmVxdWVzdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICogY29uc3Qg
ICAgICAqZmlsZXMpOwotCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyICogY29uc3QgKgotd2Via2l0
X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2dldF9zZWxlY3RlZF9maWxlcyAgICAoV2ViS2l0RmlsZUNo
b29zZXJSZXF1ZXN0ICpyZXF1ZXN0KTsKLQotR19FTkRfREVDTFMKLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0cHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGZpbGVjaG9vc2VycmVxdWVz
dHByaXZhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQxY2M3OS4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0
cHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIHdlYmtpdGZpbGVjaG9vc2VycmVxdWVzdHBy
aXZhdGVfaAotI2RlZmluZSB3ZWJraXRmaWxlY2hvb3NlcnJlcXVlc3Rwcml2YXRlX2gKLQotI2lu
Y2x1ZGUgIkZpbGVDaG9vc2VyLmgiCi0jaW5jbHVkZSAid2Via2l0ZmlsZWNob29zZXJyZXF1ZXN0
LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1XZWJLaXRGaWxlQ2hvb3NlclJlcXVl
c3QqIHdlYmtpdF9maWxlX2Nob29zZXJfcmVxdWVzdF9jcmVhdGUoUGFzc1JlZlB0cjxGaWxlQ2hv
b3Nlcj4gY2hvb3Nlcik7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTQ2NTg1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9uLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFybm8g
UmVuZXZpZXIKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9u
cG9saWN5ZGVjaXNpb24uaCIKLQotI2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgiCi0jaW5jbHVkZSAi
d2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbnByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJr
aXRnbG9iYWxzcHJpdmF0ZS5oIgotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0Z2VvbG9jYXRpb25w
b2xpY3lkZWNpc2lvbgotICogQHNob3J0X2Rlc2NyaXB0aW9uOiBMaWFpc29uIGJldHdlZW4gV2Vi
S2l0IGFuZCB0aGUgYXBwbGljYXRpb24gcmVnYXJkaW5nIGFzeW5jaHJvbm91cyBnZW9sb2NhdGlv
biBwb2xpY3kgZGVjaXNpb25zCi0gKgotICogI1dlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNp
b24gb2JqZWN0cyBhcmUgZ2l2ZW4gdG8gdGhlIGFwcGxpY2F0aW9uIHdoZW4KLSAqIGdlb2xvY2F0
aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQgc2lnbmFsIGlzIGVtaXR0ZWQuIFRoZSBhcHBs
aWNhdGlvbgotICogdXNlcyBpdCB0byB0ZWxsIHRoZSBlbmdpbmUgd2hldGhlciBpdCB3YW50cyB0
byBhbGxvdyBvciBkZW55IGdlb2xvY2F0aW9uIGZvcgotICogYSBnaXZlbiBmcmFtZS4KLSAqLwot
Ci1HX0RFRklORV9UWVBFKFdlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNpb24sIHdlYmtpdF9n
ZW9sb2NhdGlvbl9wb2xpY3lfZGVjaXNpb24sIEdfVFlQRV9PQkpFQ1QpOwotCi1zdHJ1Y3QgX1dl
YktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNpb25Qcml2YXRlIHsKLSAgICBXZWJLaXRXZWJGcmFt
ZSogZnJhbWU7Ci0jaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotICAgIFdlYkNvcmU6Okdlb2xvY2F0
aW9uKiBnZW9sb2NhdGlvbjsKLSNlbmRpZgotfTsKLQotc3RhdGljIHZvaWQgd2Via2l0X2dlb2xv
Y2F0aW9uX3BvbGljeV9kZWNpc2lvbl9jbGFzc19pbml0KFdlYktpdEdlb2xvY2F0aW9uUG9saWN5
RGVjaXNpb25DbGFzcyogZGVjaXNpb25DbGFzcykKLXsKLSAgICBnX3R5cGVfY2xhc3NfYWRkX3By
aXZhdGUoZGVjaXNpb25DbGFzcywgc2l6ZW9mKFdlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNp
b25Qcml2YXRlKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lf
ZGVjaXNpb25faW5pdChXZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9uKiBkZWNpc2lvbikK
LXsKLSAgICBkZWNpc2lvbi0+cHJpdiA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShkZWNp
c2lvbiwgV0VCS0lUX1RZUEVfR0VPTE9DQVRJT05fUE9MSUNZX0RFQ0lTSU9OLCBXZWJLaXRHZW9s
b2NhdGlvblBvbGljeURlY2lzaW9uUHJpdmF0ZSk7Ci19Ci0KLSNpZiBFTkFCTEUoR0VPTE9DQVRJ
T04pCi1XZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9uKiB3ZWJraXRfZ2VvbG9jYXRpb25f
cG9saWN5X2RlY2lzaW9uX25ldyhXZWJLaXRXZWJGcmFtZSogZnJhbWUsIFdlYkNvcmU6Okdlb2xv
Y2F0aW9uKiBnZW9sb2NhdGlvbikKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChmcmFtZSwg
TlVMTCk7Ci0gICAgV2ViS2l0R2VvbG9jYXRpb25Qb2xpY3lEZWNpc2lvbiogZGVjaXNpb24gPSBX
RUJLSVRfR0VPTE9DQVRJT05fUE9MSUNZX0RFQ0lTSU9OKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQ
RV9HRU9MT0NBVElPTl9QT0xJQ1lfREVDSVNJT04sIE5VTEwpKTsKLSAgICBXZWJLaXRHZW9sb2Nh
dGlvblBvbGljeURlY2lzaW9uUHJpdmF0ZSogcHJpdiA9IGRlY2lzaW9uLT5wcml2OwotCi0gICAg
cHJpdi0+ZnJhbWUgPSBmcmFtZTsKLSAgICBwcml2LT5nZW9sb2NhdGlvbiA9IGdlb2xvY2F0aW9u
OwotICAgIHJldHVybiBkZWNpc2lvbjsKLX0KLSNlbmRpZgotCi0vKioKLSAqIHdlYmtpdF9nZW9s
b2NhdGlvbl9wb2xpY3lfYWxsb3c6Ci0gKiBAZGVjaXNpb246IGEgI1dlYktpdEdlb2xvY2F0aW9u
UG9saWN5RGVjaXNpb24KLSAqCi0gKiBXaWxsIHNlbmQgdGhlIGFsbG93IGRlY2lzaW9uIHRvIHRo
ZSBwb2xpY3kgaW1wbGVtZW50ZXIuCi0gKgotICogU2luY2U6IDEuMS4yMwotICovCi12b2lkIHdl
YmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfYWxsb3coV2ViS2l0R2VvbG9jYXRpb25Qb2xpY3lEZWNp
c2lvbiogZGVjaXNpb24pCi17Ci0jaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotICAgIGdfcmV0dXJu
X2lmX2ZhaWwoV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BPTElDWV9ERUNJU0lPTihkZWNpc2lvbikp
OwotCi0gICAgV2ViS2l0R2VvbG9jYXRpb25Qb2xpY3lEZWNpc2lvblByaXZhdGUqIHByaXYgPSBk
ZWNpc2lvbi0+cHJpdjsKLSAgICBwcml2LT5nZW9sb2NhdGlvbi0+c2V0SXNBbGxvd2VkKFRSVUUp
OwotI2Vsc2UKLSAgICBXRUJLSVRfV0FSTl9GRUFUVVJFX05PVF9QUkVTRU5UKCJHZW9sb2NhdGlv
biIpCi0jZW5kaWYKLX0KLQotLyoqCi0gKiB3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2Rlbnk6
Ci0gKiBAZGVjaXNpb246IGEgI1dlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNpb24KLSAqCi0g
KiBXaWxsIHNlbmQgdGhlIGRlbnkgZGVjaXNpb24gdG8gdGhlIHBvbGljeSBpbXBsZW1lbnRlci4K
LSAqCi0gKiBTaW5jZTogMS4xLjIzCi0gKi8KLXZvaWQgd2Via2l0X2dlb2xvY2F0aW9uX3BvbGlj
eV9kZW55KFdlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNpb24qIGRlY2lzaW9uKQotewotI2lm
IEVOQUJMRShHRU9MT0NBVElPTikKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19HRU9M
T0NBVElPTl9QT0xJQ1lfREVDSVNJT04oZGVjaXNpb24pKTsKLQotICAgIFdlYktpdEdlb2xvY2F0
aW9uUG9saWN5RGVjaXNpb25Qcml2YXRlKiBwcml2ID0gZGVjaXNpb24tPnByaXY7Ci0gICAgcHJp
di0+Z2VvbG9jYXRpb24tPnNldElzQWxsb3dlZChGQUxTRSk7Ci0jZWxzZQotICAgIFdFQktJVF9X
QVJOX0ZFQVRVUkVfTk9UX1BSRVNFTlQoIkdlb2xvY2F0aW9uIikKLSNlbmRpZgotfQotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2VvbG9jYXRpb25wb2xpY3lk
ZWNpc2lvbi5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdlb2xvY2F0aW9ucG9s
aWN5ZGVjaXNpb24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdlMGVmMi4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2VvbG9jYXRpb25wb2xp
Y3lkZWNpc2lvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBBcm5vIFJlbmV2aWVyCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0Z2VvbG9jYXRpb25wb2xp
Y3lkZWNpc2lvbl9oCi0jZGVmaW5lIHdlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb25faAot
Ci0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5l
cy5oPgotCi1HX0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUgV0VCS0lUX1RZUEVfR0VPTE9DQVRJT05f
UE9MSUNZX0RFQ0lTSU9OICAgICAgICAgICAgKHdlYmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfZGVj
aXNpb25fZ2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCS0lUX0dFT0xPQ0FUSU9OX1BPTElDWV9ERUNJ
U0lPTihvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBX
RUJLSVRfVFlQRV9HRU9MT0NBVElPTl9QT0xJQ1lfREVDSVNJT04sIFdlYktpdEdlb2xvY2F0aW9u
UG9saWN5RGVjaXNpb24pKQotI2RlZmluZSBXRUJLSVRfR0VPTE9DQVRJT05fUE9MSUNZX0RFQ0lT
SU9OX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdF
QktJVF9UWVBFX0dFT0xPQ0FUSU9OX1BPTElDWV9ERUNJU0lPTiwgV2ViS2l0R2VvbG9jYXRpb25Q
b2xpY3lEZWNpc2lvbkNsYXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX0dFT0xPQ0FUSU9OX1BPTElD
WV9ERUNJU0lPTihvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmop
LCBXRUJLSVRfVFlQRV9HRU9MT0NBVElPTl9QT0xJQ1lfREVDSVNJT04pKQotI2RlZmluZSBXRUJL
SVRfSVNfR0VPTE9DQVRJT05fUE9MSUNZX0RFQ0lTSU9OX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NI
RUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0dFT0xPQ0FUSU9OX1BPTElDWV9E
RUNJU0lPTikpCi0jZGVmaW5lIFdFQktJVF9HRU9MT0NBVElPTl9QT0xJQ1lfREVDSVNJT05fR0VU
X0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZ
UEVfR0VPTE9DQVRJT05fUE9MSUNZX0RFQ0lTSU9OLCBXZWJLaXRHZW9sb2NhdGlvblBvbGljeURl
Y2lzaW9uQ2xhc3MpKQotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0R2VvbG9jYXRpb25Qb2xpY3lE
ZWNpc2lvblByaXZhdGUgV2ViS2l0R2VvbG9jYXRpb25Qb2xpY3lEZWNpc2lvblByaXZhdGU7Ci1z
dHJ1Y3QgX1dlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNpb24gewotICAgIEdPYmplY3QgcGFy
ZW50X2luc3RhbmNlOwotCi0gICAgLyo8IHByaXZhdGUgPiovCi0gICAgV2ViS2l0R2VvbG9jYXRp
b25Qb2xpY3lEZWNpc2lvblByaXZhdGUqIHByaXY7Ci19OwotCi1zdHJ1Y3QgX1dlYktpdEdlb2xv
Y2F0aW9uUG9saWN5RGVjaXNpb25DbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFz
czsKLQotICAgIC8qIFBhZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KLSAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEp
ICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lk
ICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKLX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdl
YmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfZGVjaXNpb25fZ2V0X3R5cGUgKHZvaWQpOwotCi1XRUJL
SVRfQVBJIHZvaWQKLXdlYmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfYWxsb3cgKFdlYktpdEdlb2xv
Y2F0aW9uUG9saWN5RGVjaXNpb24qIGRlY2lzaW9uKTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJr
aXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlbnkgKFdlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNp
b24qIGRlY2lzaW9uKTsKLQotR19FTkRfREVDTFMKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbnByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRl
Y2lzaW9ucHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzcxNTRjLi4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnZW9sb2NhdGlvbnBv
bGljeWRlY2lzaW9ucHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5
dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDA4IEphbiBNaWNoYWVsIEMuIEFsb256bwotICogQ29w
eXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdh
bGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKi8KLQotI2lmbmRlZiB3ZWJraXRnZW9sb2NhdGlvbnBvbGljeWRlY2lzaW9ucHJpdmF0ZV9o
Ci0jZGVmaW5lIHdlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb25wcml2YXRlX2gKLQotI2lu
Y2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24uaCIKLQotI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKLQotZXh0ZXJuICJDIiB7Ci0KLVdlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVj
aXNpb24qIHdlYmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3KFdlYktpdFdlYkZy
YW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKEdF
T0xPQ0FUSU9OKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRnbG9iYWxzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9i
YWxzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQwMzhiYS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw1NzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBIb2xnZXIg
SGFucyBQZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIENvbGxhYm9y
YSBMdGQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzLmgiCi0K
LSNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgotI2luY2x1ZGUgIkNocm9tZS5o
IgotI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgotI2luY2x1ZGUgIkZyYW1lTmV0d29ya2lu
Z0NvbnRleHRHdGsuaCIKLSNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJMb2dn
aW5nLmgiCi0jaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5j
bHVkZSAiUGFnZUNhY2hlLmgiCi0jaW5jbHVkZSAiUGFnZUdyb3VwLmgiCi0jaW5jbHVkZSAiUGFz
dGVib2FyZC5oIgotI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXJHdGsuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmF0ZWdpZXNHdGsuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgotI2lu
Y2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKLSNpbmNsdWRlICJTY2hl
bWVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIlNvdXBOZXR3b3JrU2Vzc2lvbi5oIgotI2luY2x1ZGUg
IlRleHRFbmNvZGluZ1JlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAid2Via2l0YXBwbGljYXRpb25jYWNo
ZS5oIgotI2luY2x1ZGUgIndlYmtpdGZhdmljb25kYXRhYmFzZS5oIgotI2luY2x1ZGUgIndlYmtp
dGdsb2JhbHNwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0aWNvbmRhdGFiYXNlLmgiCi0jaW5j
bHVkZSAid2Via2l0c3BlbGxjaGVja2VyLmgiCi0jaW5jbHVkZSAid2Via2l0c3BlbGxjaGVja2Vy
ZW5jaGFudC5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmRhdGFiYXNlLmgiCi0jaW5jbHVkZSAid2Vi
a2l0d2VicGx1Z2luZGF0YWJhc2Vwcml2YXRlLmgiCi0jaW5jbHVkZSA8bGliaW50bC5oPgotI2lu
Y2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgotI2luY2x1ZGUgPHN0ZGxpYi5o
PgotI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4KLQotc3RhdGljIFdl
YktpdENhY2hlTW9kZWwgY2FjaGVNb2RlbCA9IFdFQktJVF9DQUNIRV9NT0RFTF9ERUZBVUxUOwot
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotLyoqCi0gKiBTRUNUSU9OOndlYmtpdAotICog
QHNob3J0X2Rlc2NyaXB0aW9uOiBHbG9iYWwgZnVuY3Rpb25zIGNvbnRyb2xsaW5nIFdlYktpdAot
ICoKLSAqIFdlYktpdCBtYW5hZ2VzIG1hbnkgcmVzb3VyY2VzIHdoaWNoIGFyZSBub3QgcmVsYXRl
ZCB0byBzcGVjaWZpYwotICogdmlld3MuIFRoZXNlIGZ1bmN0aW9ucyByZWxhdGUgdG8gY3Jvc3Mt
dmlldyBsaW1pdHMsIHN1Y2ggYXMgY2FjaGUKLSAqIHNpemVzLCBkYXRhYmFzZSBxdW90YXMsIGFu
ZCB0aGUgSFRUUCBzZXNzaW9uIG1hbmFnZW1lbnQuCi0gKi8KLQotLyoqCi0gKiB3ZWJraXRfZ2V0
X2RlZmF1bHRfc2Vzc2lvbjoKLSAqCi0gKiBSZXRyaWV2ZXMgdGhlIGRlZmF1bHQgI1NvdXBTZXNz
aW9uIHVzZWQgYnkgYWxsIHdlYiB2aWV3cy4KLSAqIE5vdGUgdGhhdCB0aGUgc2Vzc2lvbiBmZWF0
dXJlcyBhcmUgYWRkZWQgYnkgV2ViS2l0IG9uIGRlbWFuZCwKLSAqIHNvIGlmIHlvdSBpbnNlcnQg
eW91ciBvd24gI1NvdXBDb29raWVKYXIgYmVmb3JlIGFueSBuZXR3b3JrCi0gKiB0cmFmZmljIG9j
Y3VycywgV2ViS2l0IHdpbGwgdXNlIGl0IGluc3RlYWQgb2YgdGhlIGRlZmF1bHQuCi0gKgotICog
UmV0dXJuIHZhbHVlOiAodHJhbnNmZXIgbm9uZSk6IHRoZSBkZWZhdWx0ICNTb3VwU2Vzc2lvbgot
ICoKLSAqIFNpbmNlOiAxLjEuMQotICovCi1Tb3VwU2Vzc2lvbiogd2Via2l0X2dldF9kZWZhdWx0
X3Nlc3Npb24gKCkKLXsKLSAgICB3ZWJraXRJbml0KCk7Ci0gICAgcmV0dXJuIFNvdXBOZXR3b3Jr
U2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKS5zb3VwU2Vzc2lvbigpOwotfQotCi0vKioKLSAqIHdl
YmtpdF9zZXRfY2FjaGVfbW9kZWw6Ci0gKiBAY2FjaGVfbW9kZWw6IGEgI1dlYktpdENhY2hlTW9k
ZWwKLSAqCi0gKiBTcGVjaWZpZXMgYSB1c2FnZSBtb2RlbCBmb3IgV2ViVmlld3MsIHdoaWNoIFdl
YktpdCB3aWxsIHVzZSB0bwotICogZGV0ZXJtaW5lIGl0cyBjYWNoaW5nIGJlaGF2aW9yLiBBbGwg
d2ViIHZpZXdzIGZvbGxvdyB0aGUgY2FjaGUKLSAqIG1vZGVsLiBUaGlzIGNhY2hlIG1vZGVsIGRl
dGVybWluZXMgdGhlIFJBTSBhbmQgZGlzayBzcGFjZSB0byB1c2UKLSAqIGZvciBjYWNoaW5nIHBy
ZXZpb3VzbHkgdmlld2VkIGNvbnRlbnQgLgotICoKLSAqIFJlc2VhcmNoIGluZGljYXRlcyB0aGF0
IHVzZXJzIHRlbmQgdG8gYnJvd3NlIHdpdGhpbiBjbHVzdGVycyBvZgotICogZG9jdW1lbnRzIHRo
YXQgaG9sZCByZXNvdXJjZXMgaW4gY29tbW9uLCBhbmQgdG8gcmV2aXNpdCBwcmV2aW91c2x5Ci0g
KiB2aXNpdGVkIGRvY3VtZW50cy4gV2ViS2l0IGFuZCB0aGUgZnJhbWV3b3JrcyBiZWxvdyBpdCBp
bmNsdWRlCi0gKiBidWlsdC1pbiBjYWNoZXMgdGhhdCB0YWtlIGFkdmFudGFnZSBvZiB0aGVzZSBw
YXR0ZXJucywKLSAqIHN1YnN0YW50aWFsbHkgaW1wcm92aW5nIGRvY3VtZW50IGxvYWQgc3BlZWQg
aW4gYnJvd3NpbmcKLSAqIHNpdHVhdGlvbnMuIFRoZSBXZWJLaXQgY2FjaGUgbW9kZWwgY29udHJv
bHMgdGhlIGJlaGF2aW9ycyBvZiBhbGwgb2YKLSAqIHRoZXNlIGNhY2hlcywgaW5jbHVkaW5nIHZh
cmlvdXMgV2ViQ29yZSBjYWNoZXMuCi0gKgotICogQnJvd3NlcnMgY2FuIGltcHJvdmUgZG9jdW1l
bnQgbG9hZCBzcGVlZCBzdWJzdGFudGlhbGx5IGJ5Ci0gKiBzcGVjaWZ5aW5nIFdFQktJVF9DQUNI
RV9NT0RFTF9XRUJfQlJPV1NFUi4gQXBwbGljYXRpb25zIHdpdGhvdXQgYQotICogYnJvd3Npbmcg
aW50ZXJmYWNlIGNhbiByZWR1Y2UgbWVtb3J5IHVzYWdlIHN1YnN0YW50aWFsbHkgYnkKLSAqIHNw
ZWNpZnlpbmcgV0VCS0lUX0NBQ0hFX01PREVMX0RPQ1VNRU5UX1ZJRVdFUi4gRGVmYXVsdCB2YWx1
ZSBpcwotICogV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSLgotICoKLSAqIFNpbmNlOiAx
LjEuMTgKLSAqLwotdm9pZCB3ZWJraXRfc2V0X2NhY2hlX21vZGVsKFdlYktpdENhY2hlTW9kZWwg
bW9kZWwpCi17Ci0gICAgd2Via2l0SW5pdCgpOwotCi0gICAgaWYgKGNhY2hlTW9kZWwgPT0gbW9k
ZWwpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEZJWE1FOiBBZGQgZGlzayBjYWNoZSBoYW5k
bGluZyB3aGVuIHNvdXAgaGFzIHRoZSBBUEkKLSAgICBndWludCBjYWNoZVRvdGFsQ2FwYWNpdHk7
Ci0gICAgZ3VpbnQgY2FjaGVNaW5EZWFkQ2FwYWNpdHk7Ci0gICAgZ3VpbnQgY2FjaGVNYXhEZWFk
Q2FwYWNpdHk7Ci0gICAgZ2RvdWJsZSBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsOwot
ICAgIGd1aW50IHBhZ2VDYWNoZUNhcGFjaXR5OwotCi0gICAgLy8gRklYTUU6IFRoZSBNYWMgcG9y
dCBjYWxjdWxhdGVzIHRoZXNlIHZhbHVlcyBiYXNlZCBvbiB0aGUgYW1vdW50IG9mIHBoeXNpY2Fs
IG1lbW9yeSB0aGF0J3MKLSAgICAvLyBpbnN0YWxsZWQgb24gdGhlIHN5c3RlbS4gQ3VycmVudGx5
IHRoZXNlIHZhbHVlcyBtYXRjaCB0aGUgTWFjIHBvcnQgZm9yIHVzZXJzIHdpdGggbW9yZSB0aGFu
Ci0gICAgLy8gNTEyIE1CIGFuZCBsZXNzIHRoYW4gMTAyNCBNQiBvZiBwaHlzaWNhbCBtZW1vcnku
Ci0gICAgc3dpdGNoIChtb2RlbCkgewotICAgIGNhc2UgV0VCS0lUX0NBQ0hFX01PREVMX0RPQ1VN
RU5UX1ZJRVdFUjoKLSAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAwOwotICAgICAgICBjYWNo
ZVRvdGFsQ2FwYWNpdHkgPSAwOyAvLyBGSVhNRTogVGhlIE1hYyBwb3J0IGFjdHVhbGx5IHNldHMg
dGhpcyB0byBsYXJnZXIgdGhhbiAwLgotICAgICAgICBjYWNoZU1pbkRlYWRDYXBhY2l0eSA9IDA7
Ci0gICAgICAgIGNhY2hlTWF4RGVhZENhcGFjaXR5ID0gMDsKLSAgICAgICAgZGVhZERlY29kZWRE
YXRhRGVsZXRpb25JbnRlcnZhbCA9IDA7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV0VCS0lU
X0NBQ0hFX01PREVMX0RPQ1VNRU5UX0JST1dTRVI6Ci0gICAgICAgIHBhZ2VDYWNoZUNhcGFjaXR5
ID0gMjsKLSAgICAgICAgY2FjaGVUb3RhbENhcGFjaXR5ID0gMTYgKiAxMDI0ICogMTAyNDsKLSAg
ICAgICAgY2FjaGVNaW5EZWFkQ2FwYWNpdHkgPSBjYWNoZVRvdGFsQ2FwYWNpdHkgLyA4OwotICAg
ICAgICBjYWNoZU1heERlYWRDYXBhY2l0eSA9IGNhY2hlVG90YWxDYXBhY2l0eSAvIDQ7Ci0gICAg
ICAgIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwgPSAwOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUjoKLSAgICAgICAgLy8gUGFn
ZSBjYWNoZSBjYXBhY2l0eSAoaW4gcGFnZXMpLiBDb21tZW50IGZyb20gTWFjIHBvcnQ6Ci0gICAg
ICAgIC8vIChSZXNlYXJjaCBpbmRpY2F0ZXMgdGhhdCB2YWx1ZSAvIHBhZ2UgZHJvcHMgc3Vic3Rh
bnRpYWxseSBhZnRlciAzIHBhZ2VzLikKLSAgICAgICAgcGFnZUNhY2hlQ2FwYWNpdHkgPSAzOwot
ICAgICAgICBjYWNoZVRvdGFsQ2FwYWNpdHkgPSAzMiAqIDEwMjQgKiAxMDI0OwotICAgICAgICBj
YWNoZU1pbkRlYWRDYXBhY2l0eSA9IGNhY2hlVG90YWxDYXBhY2l0eSAvIDQ7Ci0gICAgICAgIGNh
Y2hlTWF4RGVhZENhcGFjaXR5ID0gY2FjaGVUb3RhbENhcGFjaXR5IC8gMjsKLSAgICAgICAgZGVh
ZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCA9IDYwOwotICAgICAgICBicmVhazsKLSAgICBk
ZWZhdWx0OgotICAgICAgICBnX3JldHVybl9pZl9yZWFjaGVkKCk7Ci0gICAgfQotCi0gICAgYm9v
bCBkaXNhYmxlQ2FjaGUgPSAhY2FjaGVNaW5EZWFkQ2FwYWNpdHkgJiYgIWNhY2hlTWF4RGVhZENh
cGFjaXR5ICYmICFjYWNoZVRvdGFsQ2FwYWNpdHk7Ci0gICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGlz
YWJsZWQoZGlzYWJsZUNhY2hlKTsKLSAgICBtZW1vcnlDYWNoZSgpLT5zZXRDYXBhY2l0aWVzKGNh
Y2hlTWluRGVhZENhcGFjaXR5LCBjYWNoZU1heERlYWRDYXBhY2l0eSwgY2FjaGVUb3RhbENhcGFj
aXR5KTsKLSAgICBtZW1vcnlDYWNoZSgpLT5zZXREZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVy
dmFsKGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwpOwotICAgIHBhZ2VDYWNoZSgpLT5z
ZXRDYXBhY2l0eShwYWdlQ2FjaGVDYXBhY2l0eSk7Ci0gICAgY2FjaGVNb2RlbCA9IG1vZGVsOwot
fQotCi0vKioKLSAqIHdlYmtpdF9nZXRfY2FjaGVfbW9kZWw6Ci0gKgotICogUmV0dXJucyB0aGUg
Y3VycmVudCBjYWNoZSBtb2RlbC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcwotICog
dmFsdWUgY2hlY2sgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGZ1bmN0aW9uCi0gKiB3ZWJraXRf
c2V0X2NhY2hlX21vZGVsKCkuCi0gKgotICogUmV0dXJuIHZhbHVlOiB0aGUgY3VycmVudCAjV2Vi
S2l0Q2FjaGVNb2RlbAotICoKLSAqIFNpbmNlOiAxLjEuMTgKLSAqLwotV2ViS2l0Q2FjaGVNb2Rl
bCB3ZWJraXRfZ2V0X2NhY2hlX21vZGVsKCkKLXsKLSAgICB3ZWJraXRJbml0KCk7Ci0gICAgcmV0
dXJuIGNhY2hlTW9kZWw7Ci19Ci0KLS8qKgotICogd2Via2l0X2dldF93ZWJfcGx1Z2luX2RhdGFi
YXNlOgotICoKLSAqIFJldHVybnMgdGhlIGN1cnJlbnQgI1dlYktpdFdlYlBsdWdpbkRhdGFiYXNl
IHdpdGggaW5mb3JtYXRpb24gYWJvdXQKLSAqIGFsbCB0aGUgcGx1Z2lucyBXZWJLaXQga25vd3Mg
YWJvdXQgaW4gdGhpcyBpbnN0YW5jZS4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6ICh0cmFuc2ZlciBu
b25lKTogdGhlIGN1cnJlbnQgI1dlYktpdFdlYlBsdWdpbkRhdGFiYXNlCi0gKgotICogU2luY2U6
IDEuMy44Ci0gKi8KLVdlYktpdFdlYlBsdWdpbkRhdGFiYXNlKiB3ZWJraXRfZ2V0X3dlYl9wbHVn
aW5fZGF0YWJhc2UoKQotewotICAgIHN0YXRpYyBXZWJLaXRXZWJQbHVnaW5EYXRhYmFzZSogZGF0
YWJhc2UgPSAwOwotCi0gICAgd2Via2l0SW5pdCgpOwotCi0gICAgaWYgKCFkYXRhYmFzZSkKLSAg
ICAgICAgZGF0YWJhc2UgPSB3ZWJraXRfd2ViX3BsdWdpbl9kYXRhYmFzZV9uZXcoKTsKLQotICAg
IHJldHVybiBkYXRhYmFzZTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfZ2V0X2ljb25fZGF0YWJhc2U6
Ci0gKgotICogUmV0dXJucyB0aGUgI1dlYktpdEljb25EYXRhYmFzZSBwcm92aWRpbmcgYWNjZXNz
IHRvIHdlYnNpdGUgaWNvbnMuCi0gKgotICogUmV0dXJuIHZhbHVlOiAodHJhbnNmZXIgbm9uZSk6
IHRoZSBjdXJyZW50ICNXZWJLaXRJY29uRGF0YWJhc2UKLSAqCi0gKiBTaW5jZTogMS4zLjEzCi0g
KgotICogRGVwcmVjYXRlZDogMS44OiBVc2Ugd2Via2l0X2dldF9mYXZpY29uX2RhdGFiYXNlKCkg
aW5zdGVhZAotICovCi1XZWJLaXRJY29uRGF0YWJhc2UqIHdlYmtpdF9nZXRfaWNvbl9kYXRhYmFz
ZSgpCi17Ci0gICAgd2Via2l0SW5pdCgpOwotCi0gICAgc3RhdGljIFdlYktpdEljb25EYXRhYmFz
ZSogZGF0YWJhc2UgPSAwOwotICAgIGlmICghZGF0YWJhc2UpCi0gICAgICAgIGRhdGFiYXNlID0g
V0VCS0lUX0lDT05fREFUQUJBU0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0lDT05fREFUQUJB
U0UsIE5VTEwpKTsKLQotICAgIHJldHVybiBkYXRhYmFzZTsKLX0KLQotLyoqCi0gKiB3ZWJraXRf
Z2V0X2Zhdmljb25fZGF0YWJhc2U6Ci0gKgotICogUmV0dXJucyB0aGUgI1dlYktpdEZhdmljb25E
YXRhYmFzZSBwcm92aWRpbmcgYWNjZXNzIHRvIHdlYnNpdGUKLSAqIGljb25zLgotICoKLSAqIFJl
dHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiB0aGUgY3VycmVudCAjV2ViS2l0RmF2aWNvbkRh
dGFiYXNlCi0gKgotICogU2luY2U6IDEuOAotICovCi1XZWJLaXRGYXZpY29uRGF0YWJhc2UqIHdl
YmtpdF9nZXRfZmF2aWNvbl9kYXRhYmFzZSgpCi17Ci0gICAgd2Via2l0SW5pdCgpOwotCi0gICAg
c3RhdGljIFdlYktpdEZhdmljb25EYXRhYmFzZSogZGF0YWJhc2UgPSAwOwotICAgIGlmICghZGF0
YWJhc2UpCi0gICAgICAgIGRhdGFiYXNlID0gV0VCS0lUX0ZBVklDT05fREFUQUJBU0UoZ19vYmpl
Y3RfbmV3KFdFQktJVF9UWVBFX0ZBVklDT05fREFUQUJBU0UsIE5VTEwpKTsKLQotICAgIHJldHVy
biBkYXRhYmFzZTsKLX0KLQotc3RhdGljIEdSZWZQdHI8V2ViS2l0U3BlbGxDaGVja2VyPiB0ZXh0
Q2hlY2tlciA9IDA7Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdEV4aXQoKQotewotI2lmIEVOQUJMRShJ
Q09OREFUQUJBU0UpCi0gICAgZ19vYmplY3RfdW5yZWYod2Via2l0X2dldF9mYXZpY29uX2RhdGFi
YXNlKCkpOwotI2VuZGlmCi0gICAgdGV4dENoZWNrZXIgPSAwOwotfQotCi0vKioKLSAqIHdlYmtp
dF9nZXRfdGV4dF9jaGVja2VyOgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogdGhl
ICNXZWJLaXRTcGVsbENoZWNrZXIgdXNlZCBieSBXZWJLaXQsIG9yICVOVUxMIGlmIHNwZWxsCi0g
KiBjaGVja2luZyBpcyBub3QgZW5hYmxlZAotICoKLSAqIFNpbmNlOiAxLjUuMQotICoqLwotR09i
amVjdCogd2Via2l0X2dldF90ZXh0X2NoZWNrZXIoKQotewotICAgIHdlYmtpdEluaXQoKTsKLQot
I2lmIEVOQUJMRShTUEVMTENIRUNLKQotICAgIGlmICghdGV4dENoZWNrZXIpCi0gICAgICAgIHRl
eHRDaGVja2VyID0gYWRvcHRHUmVmKFdFQktJVF9TUEVMTF9DSEVDS0VSKGdfb2JqZWN0X25ldyhX
RUJLSVRfVFlQRV9TUEVMTF9DSEVDS0VSX0VOQ0hBTlQsIE5VTEwpKSk7Ci0jZW5kaWYKLQotICAg
IHJldHVybiBHX09CSkVDVCh0ZXh0Q2hlY2tlci5nZXQoKSk7Ci19Ci0KLS8qKgotICogd2Via2l0
X3NldF90ZXh0X2NoZWNrZXI6Ci0gKiBAY2hlY2tlcjogYSAjV2ViS2l0U3BlbGxDaGVja2VyIG9y
ICVOVUxMCi0gKgotICogU2V0cyBAY2hlY2tlciBhcyB0aGUgc3BlbGwgY2hlY2tlciB0byBiZSB1
c2VkIGJ5IFdlYktpdC4gVGhlIEFQSQotICogYWNjZXB0cyBHT2JqZWN0IHNpbmNlIGluIHRoZSBm
dXR1cmUgd2UgbWlnaHQgYWNjZXB0IG9iamVjdHMKLSAqIGltcGxlbWVudGluZyBtdWx0aXBsZSBp
bnRlcmZhY2VzIChmb3IgZXhhbXBsZSwgc3BlbGwgY2hlY2tpbmcgYW5kCi0gKiBncmFtbWFyIGNo
ZWNraW5nKS4KLSAqCi0gKiBTaW5jZTogMS41LjEKLSAqKi8KLXZvaWQgd2Via2l0X3NldF90ZXh0
X2NoZWNrZXIoR09iamVjdCogY2hlY2tlcikKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKCFjaGVj
a2VyIHx8IFdFQktJVF9JU19TUEVMTF9DSEVDS0VSKGNoZWNrZXIpKTsKLQotICAgIHdlYmtpdElu
aXQoKTsKLQotICAgIC8vIFdlIG5lZWQgdG8gZG8gdGhpcyBiZWNhdXNlIHdlIG5lZWQgdGhlIGNh
c3QsIGFuZCBjYXN0aW5nIE5VTEwKLSAgICAvLyBpcyBub3Qga29zaGVyLgotICAgIHRleHRDaGVj
a2VyID0gY2hlY2tlciA/IFdFQktJVF9TUEVMTF9DSEVDS0VSKGNoZWNrZXIpIDogMDsKLX0KLQot
LyoqCi0gKiB3ZWJraXRfY29udGV4dF9tZW51X2l0ZW1fZ2V0X2FjdGlvbjoKLSAqIEBpdGVtOiBh
ICNHdGtNZW51SXRlbSBvZiB0aGUgZGVmYXVsdCBjb250ZXh0IG1lbnUKLSAqCi0gKiBSZXR1cm5z
IHRoZSAjV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24gb2YgdGhlIGdpdmVuIEBpdGVtLiBUaGlzIGZ1
bmN0aW9uCi0gKiBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGl0ZW1zIHByZXNlbnQgaW4g
dGhlIGRlZmF1bHQgY29udGV4dCBtZW51LgotICogSW4gb3JkZXIgdG8gaW5zcGVjdCB0aGUgZGVm
YXVsdCBjb250ZXh0IG1lbnUsIHlvdSBzaG91bGQgY29ubmVjdCB0bwotICogI1dlYktpdFdlYlZp
ZXc6OmNvbnRleHQtbWVudSBzaWduYWwuCi0gKgotICogPGV4YW1wbGU+Ci0gKiA8dGl0bGU+SW5z
cGVjdGluZyB0aGUgZGVmYXVsdCBjb250ZXh0IG1lbnU8L3RpdGxlPgotICogPHByb2dyYW1saXN0
aW5nPgotICogc3RhdGljIGdib29sZWFuIGNvbnRleHRfbWVudV9jYiAoV2ViS2l0V2ViVmlldyAg
ICAgICAqd2ViVmlldywKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0a1dp
ZGdldCAgICAgICAgICAgKmRlZmF1bHRfbWVudSwKLSAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYktpdEhpdFRlc3RSZXN1bHQgKmhpdF90ZXN0X3Jlc3VsdCwKLSAqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgIHRyaWdnZXJl
ZF93aXRoX2tleWJvYXJkLAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Bv
aW50ZXIgICAgICAgICAgICAgdXNlcl9kYXRhKQotICogewotICogICAgIEdMaXN0ICppdGVtcyA9
IGd0a19jb250YWluZXJfZ2V0X2NoaWxkcmVuIChHVEtfQ09OVEFJTkVSIChkZWZhdWx0X21lbnUp
KTsKLSAqICAgICBHTGlzdCAqbDsKLSAqICAgICBHdGtBY3Rpb24gKmFjdGlvbjsKLSAqICAgICBH
dGtXaWRnZXQgKnN1Yl9tZW51OwotICoKLSAqICAgICBmb3IgKGwgPSBpdGVtczsgbDsgbCA9IGdf
bGlzdF9uZXh0IChsKSkgewotICogICAgICAgICBHdGtNZW51SXRlbSAqaXRlbSA9IChHdGtNZW51
SXRlbSAqKWwtPmRhdGE7Ci0gKgotICogICAgICAgICBpZiAoR1RLX0lTX1NFUEFSQVRPUl9NRU5V
X0lURU0gKGl0ZW0pKSB7Ci0gKiAgICAgICAgICAgICAvJmFzdDsgSXQncyAgc2VwYXJhdG9yLCBk
byBub3RoaW5nICZhc3Q7LwotICogICAgICAgICAgICAgY29udGludWU7Ci0gKiAgICAgICAgIH0K
LSAqCi0gKiAgICAgICAgIHN3aXRjaCAod2Via2l0X2NvbnRleHRfbWVudV9pdGVtX2dldF9hY3Rp
b24gKGl0ZW0pKSB7Ci0gKiAgICAgICAgIGNhc2UgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05f
Tk9fQUNUSU9OOgotICogICAgICAgICAgICAgLyZhc3Q7IE5vIGFjdGlvbiBmb3IgdGhpcyBpdGVt
ICZhc3Q7LwotICogICAgICAgICAgICAgYnJlYWs7Ci0gKiAgICAgICAgIC8mYXN0OyBEb24ndCBh
bGxvdyB0byBvcGUgbGlua3MgZnJvbSBjb250ZXh0IG1lbnUgJmFzdDsvCi0gKiAgICAgICAgIGNh
c2UgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fT1BFTl9MSU5LOgotICogICAgICAgICBjYXNl
IFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5fTElOS19JTl9ORVdfV0lORE9XOgotICog
ICAgICAgICAgICAgYWN0aW9uID0gZ3RrX2FjdGl2YXRhYmxlX2dldF9yZWxhdGVkX2FjdGlvbiAo
R1RLX0FDVElWQVRBQkxFIChpdGVtKSk7Ci0gKiAgICAgICAgICAgICBndGtfYWN0aW9uX3NldF9z
ZW5zaXRpdmUgKGFjdGlvbiwgRkFMU0UpOwotICogICAgICAgICAgICAgYnJlYWs7Ci0gKiAgICAg
ICAgIGRlZmF1bHQ6Ci0gKiAgICAgICAgICAgICBicmVhazsKLSAqICAgICAgICAgfQotICoKLSAq
ICAgICAgICAgc3ViX21lbnUgPSBndGtfbWVudV9pdGVtX2dldF9zdWJtZW51IChpdGVtKTsKLSAq
ICAgICAgICAgaWYgKHN1Yl9tZW51KSB7Ci0gKiAgICAgICAgICAgICBHdGtXaWRnZXQgKm1lbnVf
aXRlbTsKLSAqCi0gKiAgICAgICAgICAgICAvJmFzdDsgQWRkIGN1c3RvbSBhY3Rpb24gdG8gc3Vi
bWVudSAmYXN0Oy8KLSAqICAgICAgICAgICAgIGFjdGlvbiA9IGd0a19hY3Rpb25fbmV3ICgiQ3Vz
dG9tSXRlbU5hbWUiLCAiQ3VzdG9tIEFjdGlvbiIsIE5VTEwsIE5VTEwpOwotICogICAgICAgICAg
ICAgZ19zaWduYWxfY29ubmVjdCAoYWN0aW9uLCAiYWN0aXZhdGUiLCBHX0NBTExCQUNLIChjdXN0
b21fbWVudV9pdGVtX2FjdGl2YXRlZCksIE5VTEwpOwotICoKLSAqICAgICAgICAgICAgIG1lbnVf
aXRlbSA9IGd0a19hY3Rpb25fY3JlYXRlX21lbnVfaXRlbSAoYWN0aW9uKTsKLSAqICAgICAgICAg
ICAgIGdfb2JqZWN0X3VucmVmIChhY3Rpb24pOwotICogICAgICAgICAgICAgZ3RrX21lbnVfc2hl
bGxfYXBwZW5kIChHVEtfTUVOVV9TSEVMTCAoc3ViX21lbnUpLCBtZW51X2l0ZW0pOwotICogICAg
ICAgICAgICAgZ3RrX3dpZGdldF9zaG93IChtZW51X2l0ZW0pOwotICogICAgICAgICB9Ci0gKiAg
ICAgfQotICoKLSAqICAgICBnX2xpc3RfZnJlZShpdGVtcyk7Ci0gKiB9Ci0gKiA8L3Byb2dyYW1s
aXN0aW5nPgotICogPC9leGFtcGxlPgotICoKLSAqIE5vdGUgdGhhdCB5b3UgY2FuIGdldCB0aGUg
I0d0a0FjdGlvbiBvZiBhbnkgaXRlbSBpbiB0aGUgZGVmYXVsdCBjb250ZXh0IG1lbnUgd2l0aAot
ICogZ3RrX2FjdGl2YXRhYmxlX2dldF9yZWxhdGVkX2FjdGlvbigpLgotICoKLSAqIFJldHVybnM6
IHRoZSAjV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24gb2YgdGhlIGdpdmVuIEBpdGVtCi0gKgotICog
U2luY2U6IDEuMTAKLSAqLwotV2ViS2l0Q29udGV4dE1lbnVBY3Rpb24gd2Via2l0X2NvbnRleHRf
bWVudV9pdGVtX2dldF9hY3Rpb24oR3RrTWVudUl0ZW0qIGl0ZW0pCi17Ci0jaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCi0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoR1RLX0lTX01FTlVfSVRFTShp
dGVtKSwgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTk9fQUNUSU9OKTsKLQotICAgIENvbnRl
eHRNZW51SXRlbSBtZW51SXRlbShpdGVtKTsKLSAgICBzd2l0Y2ggKG1lbnVJdGVtLmFjdGlvbigp
KSB7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbjoKLSAgICAgICAgcmV0dXJu
IFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX05PX0FDVElPTjsKLSAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ09wZW5MaW5rOgotICAgICAgICByZXR1cm4gV0VCS0lUX0NPTlRFWFRfTUVOVV9B
Q1RJT05fT1BFTl9MSU5LOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5l
d1dpbmRvdzoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5f
TElOS19JTl9ORVdfV0lORE9XOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRM
aW5rVG9EaXNrOgotICAgICAgICByZXR1cm4gV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fRE9X
TkxPQURfTElOS19UT19ESVNLOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtU
b0NsaXBib2FyZDoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0NP
UFlfTElOS19UT19DTElQQk9BUkQ7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1h
Z2VJbk5ld1dpbmRvdzoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9O
X09QRU5fSU1BR0VfSU5fTkVXX1dJTkRPVzsKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rv
d25sb2FkSW1hZ2VUb0Rpc2s6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfQ09OVEVYVF9NRU5VX0FD
VElPTl9ET1dOTE9BRF9JTUFHRV9UT19ESVNLOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
Q29weUltYWdlVG9DbGlwYm9hcmQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfQ09OVEVYVF9NRU5V
X0FDVElPTl9DT1BZX0lNQUdFX1RPX0NMSVBCT0FSRDsKLSAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkOgotICAgICAgICByZXR1cm4gV0VCS0lUX0NPTlRF
WFRfTUVOVV9BQ1RJT05fQ09QWV9JTUFHRV9VUkxfVE9fQ0xJUEJPQVJEOwotICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3c6Ci0gICAgICAgIHJldHVybiBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9PUEVOX0ZSQU1FX0lOX05FV19XSU5ET1c7Ci0gICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdHb0JhY2s6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfQ09OVEVY
VF9NRU5VX0FDVElPTl9HT19CQUNLOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnR29Gb3J3
YXJkOgotICAgICAgICByZXR1cm4gV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fR09fRk9SV0FS
RDsKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1N0b3A6Ci0gICAgICAgIHJldHVybiBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9TVE9QOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
UmVsb2FkOgotICAgICAgICByZXR1cm4gV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fUkVMT0FE
OwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weToKLSAgICAgICAgcmV0dXJuIFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OX0NPUFk7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdD
dXQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9DVVQ7Ci0gICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdQYXN0ZToKLSAgICAgICAgcmV0dXJuIFdFQktJVF9DT05U
RVhUX01FTlVfQUNUSU9OX1BBU1RFOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRGVsZXRl
OgotICAgICAgICByZXR1cm4gV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fREVMRVRFOwotICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU2VsZWN0QWxsOgotICAgICAgICByZXR1cm4gV0VCS0lU
X0NPTlRFWFRfTUVOVV9BQ1RJT05fU0VMRUNUX0FMTDsKLSAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0lucHV0TWV0aG9kczoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNU
SU9OX0lOUFVUX01FVEhPRFM7Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlOgot
ICAgICAgICByZXR1cm4gV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fVU5JQ09ERTsKLSAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nR3Vlc3M6Ci0gICAgICAgIHJldHVybiBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9TUEVMTElOR19HVUVTUzsKLSAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ0lnbm9yZVNwZWxsaW5nOgotICAgICAgICByZXR1cm4gV0VCS0lUX0NPTlRFWFRf
TUVOVV9BQ1RJT05fSUdOT1JFX1NQRUxMSU5HOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
TGVhcm5TcGVsbGluZzoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9O
X0xFQVJOX1NQRUxMSU5HOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1h
cjoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lHTk9SRV9HUkFN
TUFSOwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnU6Ci0gICAgICAgIHJldHVy
biBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9GT05UX01FTlU7Ci0gICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdCb2xkOgotICAgICAgICByZXR1cm4gV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJ
T05fQk9MRDsKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0l0YWxpYzoKLSAgICAgICAgcmV0
dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lUQUxJQzsKLSAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ1VuZGVybGluZToKLSAgICAgICAgcmV0dXJuIFdFQktJVF9DT05URVhUX01FTlVf
QUNUSU9OX1VOREVSTElORTsKLSAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ091dGxpbmU6Ci0g
ICAgICAgIHJldHVybiBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9PVVRMSU5FOwotICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQ6Ci0gICAgICAgIHJldHVybiBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9JTlNQRUNUX0VMRU1FTlQ7Ci0gICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdzoKLSAgICAgICAgcmV0dXJuIFdFQktJVF9D
T05URVhUX01FTlVfQUNUSU9OX09QRU5fTUVESUFfSU5fTkVXX1dJTkRPVzsKLSAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZDoKLSAgICAgICAgcmV0dXJu
IFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0NPUFlfTUVESUFfTElOS19UT19DTElQQk9BUkQ7
Ci0gICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdUb2dnbGVNZWRpYUNvbnRyb2xzOgotICAgICAg
ICByZXR1cm4gV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fVE9HR0xFX01FRElBX0NPTlRST0xT
OwotICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVG9nZ2xlTWVkaWFMb29wOgotICAgICAgICBy
ZXR1cm4gV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fVE9HR0xFX01FRElBX0xPT1A7Ci0gICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdFbnRlclZpZGVvRnVsbHNjcmVlbjoKLSAgICAgICAgcmV0
dXJuIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0VOVEVSX1ZJREVPX0ZVTExTQ1JFRU47Ci0g
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXlQYXVzZToKLSAgICAgICAgcmV0dXJu
IFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX01FRElBX1BMQVlfUEFVU0U7Ci0gICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdNZWRpYU11dGU6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfQ09OVEVY
VF9NRU5VX0FDVElPTl9NRURJQV9NVVRFOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdfYXNzZXJ0
X25vdF9yZWFjaGVkKCk7Ci0gICAgfQotI2Vsc2UKLSAgICByZXR1cm4gV0VCS0lUX0NPTlRFWFRf
TUVOVV9BQ1RJT05fTk9fQUNUSU9OOwotI2VuZGlmCi19Ci0KLS8qKgotICogd2Via2l0X3NldF9z
ZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWU6Ci0gKiBAc2NoZW1lOiBhIFVSSSBzY2hlbWUK
LSAqIEBwb2xpY3k6IGEgI1dlYktpdFNlY3VyaXR5UG9saWN5Ci0gKgotICogU2V0IHRoZSBzZWN1
cml0eSBwb2xpY3kgZm9yIHRoZSBnaXZlbiBVUkkgc2NoZW1lLgotICoKLSAqIFNpbmNlOiAyLjAK
LSAqLwotdm9pZCB3ZWJraXRfc2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZShjb25z
dCBjaGFyICpzY2hlbWUsIFdlYktpdFNlY3VyaXR5UG9saWN5IHBvbGljeSkKLXsKLSAgICBnX3Jl
dHVybl9pZl9mYWlsKHNjaGVtZSk7Ci0KLSAgICBpZiAoIXBvbGljeSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgU3RyaW5nIHVybFNjaGVtZSA9IFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKTsKLQot
ICAgIGlmIChwb2xpY3kgJiBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0xPQ0FMKQotICAgICAgICBT
Y2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKHVybFNjaGVtZSk7Ci0gICAg
aWYgKHBvbGljeSAmIFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfTk9fQUNDRVNTX1RPX09USEVSX1ND
SEVNRSkKLSAgICAgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vz
cyh1cmxTY2hlbWUpOwotICAgIGlmIChwb2xpY3kgJiBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0RJ
U1BMQVlfSVNPTEFURUQpCi0gICAgICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVt
ZUFzRGlzcGxheUlzb2xhdGVkKHVybFNjaGVtZSk7Ci0gICAgaWYgKHBvbGljeSAmIFdFQktJVF9T
RUNVUklUWV9QT0xJQ1lfU0VDVVJFKQotICAgICAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJV
UkxTY2hlbWVBc1NlY3VyZSh1cmxTY2hlbWUpOwotICAgIGlmIChwb2xpY3kgJiBXRUJLSVRfU0VD
VVJJVFlfUE9MSUNZX0NPUlNfRU5BQkxFRCkKLSAgICAgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lz
dGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZCh1cmxTY2hlbWUpOwotICAgIGlmIChwb2xpY3kgJiBX
RUJLSVRfU0VDVVJJVFlfUE9MSUNZX0VNUFRZX0RPQ1VNRU5UKQotICAgICAgICBTY2hlbWVSZWdp
c3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQodXJsU2NoZW1lKTsKLX0KLQot
LyoqCi0gKiB3ZWJraXRfZ2V0X3NlY3VyaXR5X3BvbGljeV9mb3JfdXJpX3NjaGVtZToKLSAqIEBz
Y2hlbWU6IGEgVVJJIHNjaGVtZQotICoKLSAqIEdldCB0aGUgc2VjdXJpdHkgcG9saWN5IGZvciB0
aGUgZ2l2ZW4gVVJJIHNjaGVtZS4KLSAqCi0gKiBSZXR1cm5zOiBhICNXZWJLaXRTZWN1cml0eVBv
bGljeQotICoKLSAqIFNpbmNlOiAyLjAKLSAqLwotV2ViS2l0U2VjdXJpdHlQb2xpY3kgd2Via2l0
X2dldF9zZWN1cml0eV9wb2xpY3lfZm9yX3VyaV9zY2hlbWUoY29uc3QgY2hhciAqc2NoZW1lKQot
ewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNjaGVtZSwgc3RhdGljX2Nhc3Q8V2ViS2l0U2Vj
dXJpdHlQb2xpY3k+KDApKTsKLQotICAgIGd1aW50IHBvbGljeSA9IDA7Ci0gICAgU3RyaW5nIHVy
bFNjaGVtZSA9IFN0cmluZzo6ZnJvbVVURjgoc2NoZW1lKTsKLQotICAgIGlmIChTY2hlbWVSZWdp
c3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKHVybFNjaGVtZSkpCi0gICAgICAgIHBv
bGljeSB8PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0xPQ0FMOwotICAgIGlmIChTY2hlbWVSZWdp
c3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vQWNjZXNzKHVybFNjaGVtZSkpCi0gICAgICAg
IHBvbGljeSB8PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX05PX0FDQ0VTU19UT19PVEhFUl9TQ0hF
TUU7Ci0gICAgaWYgKFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzRGlzcGxh
eUlzb2xhdGVkKHVybFNjaGVtZSkpCi0gICAgICAgIHBvbGljeSB8PSBXRUJLSVRfU0VDVVJJVFlf
UE9MSUNZX0RJU1BMQVlfSVNPTEFURUQ7Ci0gICAgaWYgKFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRU
cmVhdFVSTFNjaGVtZUFzU2VjdXJlKHVybFNjaGVtZSkpCi0gICAgICAgIHBvbGljeSB8PSBXRUJL
SVRfU0VDVVJJVFlfUE9MSUNZX1NFQ1VSRTsKLSAgICBpZiAoU2NoZW1lUmVnaXN0cnk6OnNob3Vs
ZFRyZWF0VVJMU2NoZW1lQXNDT1JTRW5hYmxlZCh1cmxTY2hlbWUpKQotICAgICAgICBwb2xpY3kg
fD0gV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9DT1JTX0VOQUJMRUQ7Ci0gICAgaWYgKFNjaGVtZVJl
Z2lzdHJ5OjpzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KHVybFNjaGVtZSkpCi0g
ICAgICAgIHBvbGljeSB8PSBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0VNUFRZX0RPQ1VNRU5UOwot
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdFNlY3VyaXR5UG9saWN5Pihwb2xpY3kpOwot
fQotCi12b2lkIHdlYmtpdEluaXQoKQotewotICAgIHN0YXRpYyBib29sIGlzSW5pdGlhbGl6ZWQg
PSBmYWxzZTsKLSAgICBpZiAoaXNJbml0aWFsaXplZCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlz
SW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0gICAgYmluZHRleHRkb21haW4oR0VUVEVYVF9QQUNLQUdF
LCBQQUNLQUdFX0xPQ0FMRV9ESVIpOwotICAgIGJpbmRfdGV4dGRvbWFpbl9jb2Rlc2V0KEdFVFRF
WFRfUEFDS0FHRSwgIlVURi04Iik7Ci0KLSAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsK
LSAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7Ci0KLSNpZiAhTE9HX0RJU0FCTEVECi0g
ICAgV2ViQ29yZTo6aW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7Ci0jZW5k
aWYgLy8gIUxPR19ESVNBQkxFRAotICAgIFBsYXRmb3JtU3RyYXRlZ2llc0d0azo6aW5pdGlhbGl6
ZSgpOwotCi0gICAgLy8gV2UgbWFrZSBzdXJlIHRoZSB0ZXh0IGNvZGVjcyBoYXZlIGJlZW4gaW5p
dGlhbGl6ZWQsIGJlY2F1c2UKLSAgICAvLyB0aGF0IG1heSBvbmx5IGJlIGRvbmUgYnkgdGhlIG1h
aW4gdGhyZWFkLgotICAgIGF0b21pY0Nhbm9uaWNhbFRleHRFbmNvZGluZ05hbWUoIlVURi04Iik7
Ci0KLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBkYXRhYmFzZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVu
YW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndlYmtpdCIsICJkYXRhYmFzZXMiLCBOVUxMKSk7
Ci0gICAgd2Via2l0X3NldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgoZGF0YWJhc2VEaXJl
Y3RvcnkuZ2V0KCkpOwotCi0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gY2FjaGVEaXJlY3RvcnkoZ19i
dWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid2Via2l0Z3RrIiwgImFwcGxp
Y2F0aW9ucyIsIE5VTEwpKTsKLSAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5zZXRDYWNoZURp
cmVjdG9yeShjYWNoZURpcmVjdG9yeS5nZXQoKSk7Ci0KLSAgICBQYWdlR3JvdXA6OnNldFNob3Vs
ZFRyYWNrVmlzaXRlZExpbmtzKHRydWUpOwotCi0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gaWNvbkRh
dGFiYXNlUGF0aChnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3ZWJr
aXQiLCAiaWNvbmRhdGFiYXNlIiwgTlVMTCkpOwotICAgIHdlYmtpdF9pY29uX2RhdGFiYXNlX3Nl
dF9wYXRoKHdlYmtpdF9nZXRfaWNvbl9kYXRhYmFzZSgpLCBpY29uRGF0YWJhc2VQYXRoLmdldCgp
KTsKLQotICAgIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzZXRJZ25vcmVTU0xFcnJvcnModHJ1
ZSk7Ci0KLSAgICBXZWJDb3JlOjpTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xv
Y2FsKCJyZXNvdXJjZSIpOwotCi0gICAgYXRleGl0KHdlYmtpdEV4aXQpOwotfQotCi1jb25zdCBj
aGFyKiB3ZWJraXRQYWdlR3JvdXBOYW1lKCkKLXsKLSAgICByZXR1cm4gIm9yZy53ZWJraXQuZ3Rr
LldlYktpdEdUSyI7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0Z2xvYmFscy5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAwMmQ2ZC4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5oCisrKyAvZGV2L251bGwKQEAgLTEs
MjEyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2Vy
IEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBD
LiBBbG9uem8KLSAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJp
Z2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0Z2xvYmFsc19oCi0jZGVmaW5l
IHdlYmtpdGdsb2JhbHNfaAotCi0jaW5jbHVkZSAid2Via2l0ZGVmaW5lcy5oIgotI2luY2x1ZGUg
PGdsaWIuaD4KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8bGlic291cC9zb3VwLmg+
Ci0KLUdfQkVHSU5fREVDTFMKLQotLyoqCi0gKiBXZWJLaXRDYWNoZU1vZGVsOgotICogQFdFQktJ
VF9DQUNIRV9NT0RFTF9ERUZBVUxUOiBUaGUgZGVmYXVsdCBjYWNoZSBtb2RlbC4gVGhpcyBpcwot
ICogICBXRUJLSVRfQ0FDSEVfTU9ERUxfV0VCX0JST1dTRVIuCi0gKiBAV0VCS0lUX0NBQ0hFX01P
REVMX0RPQ1VNRU5UX1ZJRVdFUjogRGlzYWJsZSB0aGUgY2FjaGUgY29tcGxldGVseSwgd2hpY2gK
LSAqICAgc3Vic3RhbnRpYWxseSByZWR1Y2VzIG1lbW9yeSB1c2FnZS4gVXNlZnVsIGZvciBhcHBs
aWNhdGlvbnMgdGhhdCBvbmx5Ci0gKiAgIGFjY2VzcyBhIHNpbmdsZSBsb2NhbCBmaWxlLCB3aXRo
IG5vIG5hdmlnYXRpb24gdG8gb3RoZXIgcGFnZXMuIE5vIHJlbW90ZQotICogICByZXNvdXJjZXMg
d2lsbCBiZSBjYWNoZWQuCi0gKiBAV0VCS0lUX0NBQ0hFX01PREVMX0RPQ1VNRU5UX0JST1dTRVI6
IEEgY2FjaGUgbW9kZWwgb3B0aW1pemVkIGZvciB2aWV3aW5nCi0gKiAgIGEgc2VyaWVzIG9mIGxv
Y2FsIGZpbGVzIC0tIGZvciBleGFtcGxlLCBhIGRvY3VtZW50YXRpb24gdmlld2VyIG9yIGEgd2Vi
c2l0ZQotICogICBkZXNpZ25lci4gV2ViS2l0IHdpbGwgY2FjaGUgYSBtb2RlcmF0ZSBudW1iZXIg
b2YgcmVzb3VyY2VzLgotICogQFdFQktJVF9DQUNIRV9NT0RFTF9XRUJfQlJPV1NFUjogSW1wcm92
ZSBkb2N1bWVudCBsb2FkIHNwZWVkIHN1YnN0YW50aWFsbHkKLSAqICAgYnkgY2FjaGluZyBhIHZl
cnkgbGFyZ2UgbnVtYmVyIG9mIHJlc291cmNlcyBhbmQgcHJldmlvdXNseSB2aWV3ZWQgY29udGVu
dC4KLSAqCi0gKiBFbnVtIHZhbHVlcyB1c2VkIGZvciBkZXRlcm1pbmluZyB0aGUgd2VidmlldyBj
YWNoZSBtb2RlbC4KLSAqCi0gKiovCi10eXBlZGVmIGVudW0gewotICAgIFdFQktJVF9DQUNIRV9N
T0RFTF9ERUZBVUxULAotICAgIFdFQktJVF9DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVXRVIsCi0g
ICAgV0VCS0lUX0NBQ0hFX01PREVMX1dFQl9CUk9XU0VSLAotICAgIFdFQktJVF9DQUNIRV9NT0RF
TF9ET0NVTUVOVF9CUk9XU0VSLAotfSBXZWJLaXRDYWNoZU1vZGVsOwotCi0vKioKLSAqIFdlYktp
dENvbnRleHRNZW51QWN0aW9uOgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX05PX0FD
VElPTjogTm8gYWN0aW9uLCB1c2VkIGJ5IHNlcGFyYXRvciBtZW51IGl0ZW1zLgotICogQFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5fTElOSzogT3BlbiBjdXJyZW50IGxpbmsuCi0gKiBA
V0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fT1BFTl9MSU5LX0lOX05FV19XSU5ET1c6IE9wZW4g
Y3VycmVudCBsaW5rIGluIGEgbmV3IHdpbmRvdy4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FD
VElPTl9ET1dOTE9BRF9MSU5LX1RPX0RJU0s6IERvd25sb2FkIGxpbmsgZGVzdGluYXRpb24uCi0g
KiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fQ09QWV9MSU5LX1RPX0NMSVBCT0FSRDogQ29w
eSBsaW5rIGxvY2F0aW9uIHRvIHRoZSBjbGlwYm9hcmQuCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVO
VV9BQ1RJT05fT1BFTl9JTUFHRV9JTl9ORVdfV0lORE9XOiBPcGVuIGN1cnJlbnQgaW1hZ2UgaW4g
YSBuZXcgd2luZG93LgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0RPV05MT0FEX0lN
QUdFX1RPX0RJU0s6IERvd25sb2FkIGN1cnJlbnQgaW1hZ2UuCi0gKiBAV0VCS0lUX0NPTlRFWFRf
TUVOVV9BQ1RJT05fQ09QWV9JTUFHRV9UT19DTElQQk9BUkQ6IENvcHkgY3VycmVudCBpbWFnZSB0
byB0aGUgY2xpcGJvYXJkLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0NPUFlfSU1B
R0VfVVJMX1RPX0NMSVBCT0FSRDogQ29weSBjdXJlbnQgaW1hZ2UgbG9jYXRpb24gdG8gdGhlIGNs
aXBib2FyZC4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9PUEVOX0ZSQU1FX0lOX05F
V19XSU5ET1c6IE9wZW4gY3VycmVudCBmcmFtZSBpbiBhIG5ldyB3aW5kb3cuCi0gKiBAV0VCS0lU
X0NPTlRFWFRfTUVOVV9BQ1RJT05fR09fQkFDSzogTG9hZCB0aGUgcHJldmlvdXMgaGlzdG9yeSBp
dGVtLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0dPX0ZPUldBUkQ6IExvYWQgdGhl
IG5leHQgaGlzdG9yeSBpdGVtLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX1NUT1A6
IFN0b3AgYW55IG9uZ29pbmcgbG9hZGluZyBvcGVyYXRpb24uCi0gKiBAV0VCS0lUX0NPTlRFWFRf
TUVOVV9BQ1RJT05fUkVMT0FEOiBSZWxvYWQgdGhlIGNvbmVudHMgb2YgY3VycmVudCB2aWV3Lgot
ICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0NPUFk6IENvcHkgY3VycmVudCBzZWxlY3Rp
b24gdGhlIGNsaXBib2FyZC4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9DVVQ6IEN1
dCBjdXJyZW50IHNlbGVjdGlvbiB0byB0aGUgY2xpcGJvYXJkLgotICogQFdFQktJVF9DT05URVhU
X01FTlVfQUNUSU9OX1BBU1RFOiBQYXN0ZSBjbGlwYm9hcmQgY29udGVudHMuCi0gKiBAV0VCS0lU
X0NPTlRFWFRfTUVOVV9BQ1RJT05fREVMRVRFOiBEZWxldGUgY3VycmVudCBzZWxlY3Rpb24uCi0g
KiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fU0VMRUNUX0FMTDogU2VsZWN0IGFsbCB0ZXh0
LgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lOUFVUX01FVEhPRFM6IElucHV0IG1l
dGhvZHMgbWVudS4KLSAqIEBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9VTklDT0RFOiBVbmlj
b2RlIG1lbnUuCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fU1BFTExJTkdfR1VFU1M6
IEd1ZXNzIHNwZWxsaW5nLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX05PX0dVRVNT
RVNfRk9VTkQ6IE5vIGd1ZXNzZXMgZm91bmQuCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJ
T05fSUdOT1JFX1NQRUxMSU5HOiBJZ25vcmUgc3BlbGxpbmcuCi0gKiBAV0VCS0lUX0NPTlRFWFRf
TUVOVV9BQ1RJT05fTEVBUk5fU1BFTExJTkc6IExlYXJuIHNwZWxsaW5nLgotICogQFdFQktJVF9D
T05URVhUX01FTlVfQUNUSU9OX0lHTk9SRV9HUkFNTUFSOiBJZ25vcmUgZ3JhbW1hci4KLSAqIEBX
RUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9GT05UX01FTlU6IEZvbnQgbWVudS4KLSAqIEBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9CT0xEOiBCb2xkLgotICogQFdFQktJVF9DT05URVhUX01F
TlVfQUNUSU9OX0lUQUxJQzogSXRhbGljLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9O
X1VOREVSTElORTogVW5kZXJsaW5lLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX09V
VExJTkU6IE91dGxpbmUuCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fSU5TUEVDVF9F
TEVNRU5UOiBPcGVuIGN1cnJlbnQgZWxlbWVudCBpbiB0aGUgaW5zcGVjdG9yLgotICogQFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5fTUVESUFfSU5fTkVXX1dJTkRPVzogT3BlbiBjdXJy
ZW50IG1lZGlhIGVsZW1lbnQgaW4gYSBuZXcgd2luZG93LgotICogQFdFQktJVF9DT05URVhUX01F
TlVfQUNUSU9OX0NPUFlfTUVESUFfTElOS19UT19DTElQQk9BUkQ6IENvcHkgbWVkaWEgbGluayBs
b2NhdGlvbiBpbiB0byB0aGUgY2xpcGJvYXJkLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNU
SU9OX1RPR0dMRV9NRURJQV9DT05UUk9MUzogRW5hYmxlIG9yIGRpc2FibGUgbWVkaWEgY29udHJv
bHMuCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fVE9HR0xFX01FRElBX0xPT1A6IEVu
YWJsZSBvciBkaXNhYmxlIG1lZGlhIGxvb3AuCi0gKiBAV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJ
T05fRU5URVJfVklERU9fRlVMTFNDUkVFTjogU2hvdyBjdXJyZW50IHZpZGVvIGVsZW1lbnQgaW4g
ZnVsbHNjcmVlbiBtb2RlLgotICogQFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX01FRElBX1BM
QVlfUEFVU0U6IFBsYXkgb3IgcGF1c2UgY3VycmVudCBtZWRpYSBlbGVtZW50LgotICogQFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OX01FRElBX01VVEU6IE11dGUgY3VycmVudCBtZWRpYSBlbGVt
ZW50LgotICoKLSAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVub3RlIGFjdGlvbnMgb2YgaXRlbXMg
aW4gdGhlIGRlZmF1bHQgY29udGV4dCBtZW51LgotICoKLSAqIFNpbmNlOiAxLjEwCi0gKi8KLXR5
cGVkZWYgZW51bSB7Ci0gICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTk9fQUNUSU9OID0g
MCwKLSAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9PUEVOX0xJTkssCi0gICAgV0VCS0lU
X0NPTlRFWFRfTUVOVV9BQ1RJT05fT1BFTl9MSU5LX0lOX05FV19XSU5ET1csCi0gICAgV0VCS0lU
X0NPTlRFWFRfTUVOVV9BQ1RJT05fRE9XTkxPQURfTElOS19UT19ESVNLLAotICAgIFdFQktJVF9D
T05URVhUX01FTlVfQUNUSU9OX0NPUFlfTElOS19UT19DTElQQk9BUkQsCi0gICAgV0VCS0lUX0NP
TlRFWFRfTUVOVV9BQ1RJT05fT1BFTl9JTUFHRV9JTl9ORVdfV0lORE9XLAotICAgIFdFQktJVF9D
T05URVhUX01FTlVfQUNUSU9OX0RPV05MT0FEX0lNQUdFX1RPX0RJU0ssCi0gICAgV0VCS0lUX0NP
TlRFWFRfTUVOVV9BQ1RJT05fQ09QWV9JTUFHRV9UT19DTElQQk9BUkQsCi0gICAgV0VCS0lUX0NP
TlRFWFRfTUVOVV9BQ1RJT05fQ09QWV9JTUFHRV9VUkxfVE9fQ0xJUEJPQVJELAotICAgIFdFQktJ
VF9DT05URVhUX01FTlVfQUNUSU9OX09QRU5fRlJBTUVfSU5fTkVXX1dJTkRPVywKLSAgICBXRUJL
SVRfQ09OVEVYVF9NRU5VX0FDVElPTl9HT19CQUNLLAotICAgIFdFQktJVF9DT05URVhUX01FTlVf
QUNUSU9OX0dPX0ZPUldBUkQsCi0gICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fU1RPUCwK
LSAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9SRUxPQUQsCi0gICAgV0VCS0lUX0NPTlRF
WFRfTUVOVV9BQ1RJT05fQ09QWSwKLSAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9DVVQs
Ci0gICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fUEFTVEUsCi0gICAgV0VCS0lUX0NPTlRF
WFRfTUVOVV9BQ1RJT05fREVMRVRFLAotICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX1NF
TEVDVF9BTEwsCi0gICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fSU5QVVRfTUVUSE9EUywK
LSAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9VTklDT0RFLAotICAgIFdFQktJVF9DT05U
RVhUX01FTlVfQUNUSU9OX1NQRUxMSU5HX0dVRVNTLAotICAgIFdFQktJVF9DT05URVhUX01FTlVf
QUNUSU9OX05PX0dVRVNTRVNfRk9VTkQsCi0gICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05f
SUdOT1JFX1NQRUxMSU5HLAotICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0xFQVJOX1NQ
RUxMSU5HLAotICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lHTk9SRV9HUkFNTUFSLAot
ICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0ZPTlRfTUVOVSwKLSAgICBXRUJLSVRfQ09O
VEVYVF9NRU5VX0FDVElPTl9CT0xELAotICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0lU
QUxJQywKLSAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9VTkRFUkxJTkUsCi0gICAgV0VC
S0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fT1VUTElORSwKLSAgICBXRUJLSVRfQ09OVEVYVF9NRU5V
X0FDVElPTl9JTlNQRUNUX0VMRU1FTlQsCi0gICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05f
T1BFTl9NRURJQV9JTl9ORVdfV0lORE9XLAotICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9O
X0NPUFlfTUVESUFfTElOS19UT19DTElQQk9BUkQsCi0gICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9B
Q1RJT05fVE9HR0xFX01FRElBX0NPTlRST0xTLAotICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNU
SU9OX1RPR0dMRV9NRURJQV9MT09QLAotICAgIFdFQktJVF9DT05URVhUX01FTlVfQUNUSU9OX0VO
VEVSX1ZJREVPX0ZVTExTQ1JFRU4sCi0gICAgV0VCS0lUX0NPTlRFWFRfTUVOVV9BQ1RJT05fTUVE
SUFfUExBWV9QQVVTRSwKLSAgICBXRUJLSVRfQ09OVEVYVF9NRU5VX0FDVElPTl9NRURJQV9NVVRF
Ci19IFdlYktpdENvbnRleHRNZW51QWN0aW9uOwotCi0vKioKLSAqIFdlYktpdFNlY3VyaXR5UG9s
aWN5OgotICogQFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfTE9DQUw6IExvY2FsIFVSSSBzY2hlbWUs
IG90aGVyIG5vbi1sb2NhbCBwYWdlcwotICogICBjYW5ub3QgbGluayB0byBvciBhY2Nlc3MgVVJJ
cyBvZiB0aGlzIHNjaGVtZS4KLSAqIEBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX05PX0FDQ0VTU19U
T19PVEhFUl9TQ0hFTUU6IFBhZ2VzIGxvYWRlZCB3aXRoIHRoaXMgVVJJIHNjaGVtZQotICogICBj
YW5ub3QgYWNjZXNzIHBhZ2VzIGxvYWRlZCB3aXRoIGFueSBvdGhlciBVUkkgc2NoZW1lLgotICog
QFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfRElTUExBWV9JU09MQVRFRDogUGFnZXMgY2Fubm90IGRp
c3BsYXkgdGhlc2UgVVJJcwotICogICB1bmxlc3MgdGhleSBhcmUgZnJvbSB0aGUgc2FtZSBzY2hl
bWUuCi0gKiBAV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9TRUNVUkU6IFNlY3VyZSBVUkkgc2NoZW1l
LCBkb2Vzbid0IGdlbmVyYXRlIG1peGVkCi0gKiAgIGNvbnRlbnQgd2FybmluZ3Mgd2hlbiBpbmNs
dWRlZCBieSBhbiBIVFRQUyBwYWdlLgotICogQFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfQ09SU19F
TkFCTEVEOiBVUkkgc2NoZW1lIHRoYXQgY2FuIGJlIHNlbnQKLSAqICAgQ09SUyAoQ3Jvc3Mtb3Jp
Z2luIHJlc291cmNlIHNoYXJpbmcpIHJlcXVlc3RzLiBTZWUgVzNDIENPUlMgc3BlY2lmaWNhdGlv
bgotICogICBodHRwOi8vd3d3LnczLm9yZy9UUi9jb3JzLy4KLSAqIEBXRUJLSVRfU0VDVVJJVFlf
UE9MSUNZX0VNUFRZX0RPQ1VNRU5UOiBTdHJpY3RseSBlbXB0eSBkb2N1bWVudHMgYWxsb3dlZAot
ICogICB0byBjb21taXQgc3luY2hyb25vdXNseS4KLSAqCi0gKiBGbGFncyB1c2VkIHRvIHJlcHJl
c2VudCB0aGUgc2VjdXJpdHkgcG9saWN5IG9mIGEgVVJJIHNjaGVtZS4KLSAqCi0gKiBTaW5jZTog
Mi4wCi0gKi8KLXR5cGVkZWYgZW51bSB7Ci0gICAgV0VCS0lUX1NFQ1VSSVRZX1BPTElDWV9MT0NB
TCAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxLAotICAgIFdFQktJVF9TRUNVUklUWV9QT0xJ
Q1lfTk9fQUNDRVNTX1RPX09USEVSX1NDSEVNRSA9IDEgPDwgMiwKLSAgICBXRUJLSVRfU0VDVVJJ
VFlfUE9MSUNZX0RJU1BMQVlfSVNPTEFURUQgICAgICAgICAgPSAxIDw8IDMsCi0gICAgV0VCS0lU
X1NFQ1VSSVRZX1BPTElDWV9TRUNVUkUgICAgICAgICAgICAgICAgICAgID0gMSA8PCA0LAotICAg
IFdFQktJVF9TRUNVUklUWV9QT0xJQ1lfQ09SU19FTkFCTEVEICAgICAgICAgICAgICA9IDEgPDwg
NSwKLSAgICBXRUJLSVRfU0VDVVJJVFlfUE9MSUNZX0VNUFRZX0RPQ1VNRU5UICAgICAgICAgICAg
PSAxIDw8IDYKLX0gV2ViS2l0U2VjdXJpdHlQb2xpY3k7Ci0KLVdFQktJVF9BUEkgU291cFNlc3Np
b24qCi13ZWJraXRfZ2V0X2RlZmF1bHRfc2Vzc2lvbiAgICAgICAgICAgICAgICAgICAgICAodm9p
ZCk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0V2ViUGx1Z2luRGF0YWJhc2UgKgotd2Via2l0X2dldF93
ZWJfcGx1Z2luX2RhdGFiYXNlICAgICAgICAgICAgICAgICAgKHZvaWQpOwotCi0jaWYgIWRlZmlu
ZWQoV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCkKLVdFQktJVF9BUEkgV2ViS2l0SWNvbkRhdGFi
YXNlICoKLXdlYmtpdF9nZXRfaWNvbl9kYXRhYmFzZSAgICAgICAgICAgICAgICAgICAgICAgICh2
b2lkKTsKLSNlbmRpZgotCi1XRUJLSVRfQVBJIFdlYktpdEZhdmljb25EYXRhYmFzZSAqCi13ZWJr
aXRfZ2V0X2Zhdmljb25fZGF0YWJhc2UgICAgICAgICAgICAgICAgICAgICAodm9pZCk7Ci0KLVdF
QktJVF9BUEkgdm9pZAotd2Via2l0X3NldF9jYWNoZV9tb2RlbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdENhY2hlTW9kZWwgICAgIGNhY2hlX21vZGVsKTsKLQotV0VCS0lUX0FQSSBX
ZWJLaXRDYWNoZU1vZGVsCi13ZWJraXRfZ2V0X2NhY2hlX21vZGVsICAgICAgICAgICAgICAgICAg
ICAgICAgICAodm9pZCk7Ci0KLVdFQktJVF9BUEkgR09iamVjdCoKLXdlYmtpdF9nZXRfdGV4dF9j
aGVja2VyICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOwotCi1XRUJLSVRfQVBJIHZvaWQK
LXdlYmtpdF9zZXRfdGV4dF9jaGVja2VyICAgICAgICAgICAgICAgICAgICAgICAgKEdPYmplY3Qq
ICBjaGVja2VyKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRDb250ZXh0TWVudUFjdGlvbgotd2Via2l0
X2NvbnRleHRfbWVudV9pdGVtX2dldF9hY3Rpb24gICAgICAgICAgICAoR3RrTWVudUl0ZW0qIGl0
ZW0pOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9zZXRfc2VjdXJpdHlfcG9saWN5X2Zvcl91
cmlfc2NoZW1lICAgICAgKGNvbnN0IGdjaGFyICAgICAgICAgKnNjaGVtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNlY3VyaXR5UG9saWN5
IHBvbGljeSk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0U2VjdXJpdHlQb2xpY3kKLXdlYmtpdF9nZXRf
c2VjdXJpdHlfcG9saWN5X2Zvcl91cmlfc2NoZW1lICAgICAgKGNvbnN0IGdjaGFyICAgICAgICAg
KnNjaGVtZSk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHNwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0Z2xvYmFsc3ByaXZhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDQwYmEzMi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0Z2xvYmFsc3ByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRo
ZXIKLSAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KLSAqIENvcHly
aWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxp
YSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICovCi0KLSNpZm5kZWYgd2Via2l0Z2xvYmFsc3ByaXZhdGVfaAotI2RlZmluZSB3ZWJraXRnbG9i
YWxzcHJpdmF0ZV9oCi0KLSNpbmNsdWRlIDxnbGliLmg+Ci0KLSNkZWZpbmUgV0VCS0lUX1BBUkFN
X1JFQURBQkxFICgoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVBREFCTEV8R19QQVJBTV9TVEFUSUNf
TkFNRXxHX1BBUkFNX1NUQVRJQ19OSUNLfEdfUEFSQU1fU1RBVElDX0JMVVJCKSkKLSNkZWZpbmUg
V0VCS0lUX1BBUkFNX1JFQURXUklURSAoKEdQYXJhbUZsYWdzKShHX1BBUkFNX1JFQURXUklURXxH
X1BBUkFNX1NUQVRJQ19OQU1FfEdfUEFSQU1fU1RBVElDX05JQ0t8R19QQVJBTV9TVEFUSUNfQkxV
UkIpKQotCi0jZGVmaW5lIFdFQktJVF9XQVJOX0ZFQVRVUkVfTk9UX1BSRVNFTlQoRmVhdHVyZSkg
Z193YXJuaW5nKCJXZWJLaXRHVEsrIHdhcyBub3QgY29tcGlsZWQgd2l0aCBzdXBwb3J0IGZvciAi
IEZlYXR1cmUpOwotCi1leHRlcm4gIkMiIHsKLQotdm9pZCB3ZWJraXRJbml0KCk7Ci1jb25zdCBj
aGFyKiB3ZWJraXRQYWdlR3JvdXBOYW1lKCk7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDA5NjM1Y2QuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1bHQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzM4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQ29sbGFib3JhIEx0ZC4KLSAqIENvcHly
aWdodCAoQykgMjAwOSBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
d2Via2l0aGl0dGVzdHJlc3VsdC5oIgotCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKLSNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCi0jaW5jbHVkZSAiVVJMLmgi
Ci0jaW5jbHVkZSAiV2ViS2l0RE9NTm9kZVByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXRlbnVt
dHlwZXMuaCIKLSNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzLmgiCi0jaW5jbHVkZSAid2Via2l0Z2xv
YmFsc3ByaXZhdGUuaCIKLSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPHd0
Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+
Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0
aGl0dGVzdHJlc3VsdAotICogQHNob3J0X2Rlc2NyaXB0aW9uOiBUaGUgdGFyZ2V0IG9mIGEgbW91
c2UgZXZlbnQKLSAqCi0gKiBUaGlzIGNsYXNzIGhvbGRzIGNvbnRleHQgaW5mb3JtYXRpb24gYWJv
dXQgdGhlIGNvb3JkaW5hdGVzCi0gKiBzcGVjaWZpZWQgYnkgYSBHREsgZXZlbnQuCi0gKi8KLQot
R19ERUZJTkVfVFlQRShXZWJLaXRIaXRUZXN0UmVzdWx0LCB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0
LCBHX1RZUEVfT0JKRUNUKQotCi1zdHJ1Y3QgX1dlYktpdEhpdFRlc3RSZXN1bHRQcml2YXRlIHsK
LSAgICBndWludCBjb250ZXh0OwotICAgIGNoYXIqIGxpbmtVUkk7Ci0gICAgY2hhciogaW1hZ2VV
Ukk7Ci0gICAgY2hhciogbWVkaWFVUkk7Ci0gICAgR1JlZlB0cjxXZWJLaXRET01Ob2RlPiBpbm5l
ck5vZGU7Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb247Ci19OwotCi1lbnVtIHsKLSAg
ICBQUk9QXzAsCi0KLSAgICBQUk9QX0NPTlRFWFQsCi0gICAgUFJPUF9MSU5LX1VSSSwKLSAgICBQ
Uk9QX0lNQUdFX1VSSSwKLSAgICBQUk9QX01FRElBX1VSSSwKLSAgICBQUk9QX0lOTkVSX05PREUs
Ci0gICAgUFJPUF9YLAotICAgIFBST1BfWQotfTsKLQotc3RhdGljIHZvaWQgd2Via2l0X2hpdF90
ZXN0X3Jlc3VsdF9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgV2ViS2l0SGl0VGVz
dFJlc3VsdCogd2ViX2hpdF90ZXN0X3Jlc3VsdCA9IFdFQktJVF9ISVRfVEVTVF9SRVNVTFQob2Jq
ZWN0KTsKLSAgICBXZWJLaXRIaXRUZXN0UmVzdWx0UHJpdmF0ZSogcHJpdiA9IHdlYl9oaXRfdGVz
dF9yZXN1bHQtPnByaXY7Ci0KLSAgICBnX2ZyZWUocHJpdi0+bGlua1VSSSk7Ci0gICAgZ19mcmVl
KHByaXYtPmltYWdlVVJJKTsKLSAgICBnX2ZyZWUocHJpdi0+bWVkaWFVUkkpOwotCi0gICAgR19P
QkpFQ1RfQ0xBU1Mod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9wYXJlbnRfY2xhc3MpLT5maW5hbGl6
ZShvYmplY3QpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X2Rpc3Bv
c2UoR09iamVjdCogb2JqZWN0KQotewotICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFQob2JqZWN0
KS0+cHJpdi0+fldlYktpdEhpdFRlc3RSZXN1bHRQcml2YXRlKCk7Ci0KLSAgICBHX09CSkVDVF9D
TEFTUyh3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0
KTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9nZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlELCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1T
cGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRIaXRUZXN0UmVzdWx0KiB3ZWJfaGl0X3Rlc3RfcmVz
dWx0ID0gV0VCS0lUX0hJVF9URVNUX1JFU1VMVChvYmplY3QpOwotICAgIFdlYktpdEhpdFRlc3RS
ZXN1bHRQcml2YXRlKiBwcml2ID0gd2ViX2hpdF90ZXN0X3Jlc3VsdC0+cHJpdjsKLQotICAgIHN3
aXRjaChwcm9wZXJ0eUlEKSB7Ci0gICAgY2FzZSBQUk9QX0NPTlRFWFQ6Ci0gICAgICAgIGdfdmFs
dWVfc2V0X2ZsYWdzKHZhbHVlLCBwcml2LT5jb250ZXh0KTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBQUk9QX0xJTktfVVJJOgotICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHBy
aXYtPmxpbmtVUkkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfSU1BR0VfVVJJOgot
ICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHByaXYtPmltYWdlVVJJKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX01FRElBX1VSSToKLSAgICAgICAgZ192YWx1ZV9zZXRf
c3RyaW5nKHZhbHVlLCBwcml2LT5tZWRpYVVSSSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UFJPUF9JTk5FUl9OT0RFOgotICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHByaXYt
PmlubmVyTm9kZS5nZXQoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9YOgotICAg
ICAgICBnX3ZhbHVlX3NldF9pbnQodmFsdWUsIHByaXYtPnBvc2l0aW9uLngoKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgUFJPUF9ZOgotICAgICAgICBnX3ZhbHVlX3NldF9pbnQodmFsdWUs
IHByaXYtPnBvc2l0aW9uLnkoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SUQs
IHBzcGVjKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRf
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJRCwgY29uc3QgR1Zh
bHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0SGl0VGVzdFJlc3Vs
dCogd2ViX2hpdF90ZXN0X3Jlc3VsdCA9IFdFQktJVF9ISVRfVEVTVF9SRVNVTFQob2JqZWN0KTsK
LSAgICBXZWJLaXRIaXRUZXN0UmVzdWx0UHJpdmF0ZSogcHJpdiA9IHdlYl9oaXRfdGVzdF9yZXN1
bHQtPnByaXY7Ci0KLSAgICBzd2l0Y2gocHJvcGVydHlJRCkgewotICAgIGNhc2UgUFJPUF9DT05U
RVhUOgotICAgICAgICBwcml2LT5jb250ZXh0ID0gZ192YWx1ZV9nZXRfZmxhZ3ModmFsdWUpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTElOS19VUkk6Ci0gICAgICAgIGdfZnJlZSAo
cHJpdi0+bGlua1VSSSk7Ci0gICAgICAgIHByaXYtPmxpbmtVUkkgPSBnX3ZhbHVlX2R1cF9zdHJp
bmcodmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfSU1BR0VfVVJJOgotICAg
ICAgICBnX2ZyZWUgKHByaXYtPmltYWdlVVJJKTsKLSAgICAgICAgcHJpdi0+aW1hZ2VVUkkgPSBn
X3ZhbHVlX2R1cF9zdHJpbmcodmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1Bf
TUVESUFfVVJJOgotICAgICAgICBnX2ZyZWUgKHByaXYtPm1lZGlhVVJJKTsKLSAgICAgICAgcHJp
di0+bWVkaWFVUkkgPSBnX3ZhbHVlX2R1cF9zdHJpbmcodmFsdWUpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFBST1BfSU5ORVJfTk9ERToKLSAgICAgICAgcHJpdi0+aW5uZXJOb2RlID0gc3Rh
dGljX2Nhc3Q8V2ViS2l0RE9NTm9kZSo+KGdfdmFsdWVfZ2V0X29iamVjdCh2YWx1ZSkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfWDoKLSAgICAgICAgcHJpdi0+cG9zaXRpb24uc2V0
WChnX3ZhbHVlX2dldF9pbnQodmFsdWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X1k6Ci0gICAgICAgIHByaXYtPnBvc2l0aW9uLnNldFkoZ192YWx1ZV9nZXRfaW50KHZhbHVlKSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SUQsIHBzcGVjKTsKLSAgICB9Ci19Ci0K
LXN0YXRpYyB2b2lkIHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfY2xhc3NfaW5pdChXZWJLaXRIaXRU
ZXN0UmVzdWx0Q2xhc3MqIHdlYkhpdFRlc3RSZXN1bHRDbGFzcykKLXsKLSAgICBHT2JqZWN0Q2xh
c3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Mod2ViSGl0VGVzdFJlc3VsdENsYXNzKTsK
LQotICAgIG9iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF9oaXRfdGVzdF9yZXN1bHRfZmlu
YWxpemU7Ci0gICAgb2JqZWN0Q2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRfaGl0X3Rlc3RfcmVzdWx0
X2Rpc3Bvc2U7Ci0gICAgb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9oaXRfdGVz
dF9yZXN1bHRfZ2V0X3Byb3BlcnR5OwotICAgIG9iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3
ZWJraXRfaGl0X3Rlc3RfcmVzdWx0X3NldF9wcm9wZXJ0eTsKLQotICAgIHdlYmtpdEluaXQoKTsK
LQotICAgIC8qKgotICAgICAqIFdlYktpdEhpdFRlc3RSZXN1bHQ6Y29udGV4dDoKLSAgICAgKgot
ICAgICAqIEZsYWdzIGluZGljYXRpbmcgdGhlIGtpbmQgb2YgdGFyZ2V0IHRoYXQgcmVjZWl2ZWQg
dGhlIGV2ZW50LgotICAgICAqCi0gICAgICogU2luY2U6IDEuMS4xNQotICAgICAqLwotICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfQ09OVEVYVCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19mbGFncygi
Y29udGV4dCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiQ29udGV4dCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIkZsYWdzIGluZGljYXRpbmcgdGhlIGtpbmQgb2YgdGFy
Z2V0IHRoYXQgcmVjZWl2ZWQgdGhlIGV2ZW50LiIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX0hJVF9URVNUX1JFU1VM
VF9DT05URVhULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9ET0NVTUVOVCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxHUGFyYW1GbGFncz4oKFdFQktJVF9QQVJBTV9SRUFEV1JJVEV8R19QQVJBTV9DT05TVFJV
Q1RfT05MWSkpKSk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRIaXRUZXN0UmVzdWx0Omxpbmst
dXJpOgotICAgICAqCi0gICAgICogVGhlIFVSSSB0byB3aGljaCB0aGUgdGFyZ2V0IHRoYXQgcmVj
ZWl2ZWQgdGhlIGV2ZW50IHBvaW50cywgaWYgYW55LgotICAgICAqCi0gICAgICogU2luY2U6IDEu
MS4xNQotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0
Q2xhc3MsIFBST1BfTElOS19VUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJsaW5rLXVyaSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkxpbmsgVVJJIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBV
UkkgdG8gd2hpY2ggdGhlIHRhcmdldCB0aGF0IHJlY2VpdmVkIHRoZSBldmVudCBwb2ludHMsIGlm
IGFueS4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KFdFQktJVF9QQVJBTV9SRUFE
V1JJVEV8R19QQVJBTV9DT05TVFJVQ1RfT05MWSkpKTsKLQotICAgIC8qKgotICAgICAqIFdlYktp
dEhpdFRlc3RSZXN1bHQ6aW1hZ2UtdXJpOgotICAgICAqCi0gICAgICogVGhlIFVSSSBvZiB0aGUg
aW1hZ2UgdGhhdCBpcyBwYXJ0IG9mIHRoZSB0YXJnZXQgdGhhdCByZWNlaXZlZCB0aGUgZXZlbnQs
IGlmIGFueS4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEuMTUKLSAgICAgKi8KLSAgICBnX29i
amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX0lNQUdFX1VSSSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmco
ImltYWdlLXVyaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIkltYWdlIFVSSSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgVVJJIG9mIHRoZSBpbWFnZSB0aGF0
IGlzIHBhcnQgb2YgdGhlIHRhcmdldCB0aGF0IHJlY2VpdmVkIHRoZSBldmVudCwgaWYgYW55LiIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURXxH
X1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0SGl0VGVz
dFJlc3VsdDptZWRpYS11cmk6Ci0gICAgICoKLSAgICAgKiBUaGUgVVJJIG9mIHRoZSBtZWRpYSB0
aGF0IGlzIHBhcnQgb2YgdGhlIHRhcmdldCB0aGF0IHJlY2VpdmVkIHRoZSBldmVudCwgaWYgYW55
LgotICAgICAqCi0gICAgICogU2luY2U6IDEuMS4xNQotICAgICAqLwotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfTUVESUFfVVJJLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygibWVkaWEt
dXJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXygiTWVkaWEgVVJJIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBVUkkgb2YgdGhlIG1lZGlhIHRoYXQgaXMgcGFy
dCBvZiB0aGUgdGFyZ2V0IHRoYXQgcmVjZWl2ZWQgdGhlIGV2ZW50LCBpZiBhbnkuIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihXRUJLSVRfUEFSQU1fUkVBRFdSSVRFfEdfUEFSQU1f
Q09OU1RSVUNUX09OTFkpKSk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRIaXRUZXN0UmVzdWx0
OmlubmVyLW5vZGU6Ci0gICAgICoKLSAgICAgKiBUaGUgRE9NIG5vZGUgYXQgdGhlIGNvb3JkaW5h
dGVzIHdoZXJlIHRoZSBoaXQgdGVzdAotICAgICAqIGhhcHBlbmVkLiBLZWVwIGluIG1pbmQgdGhh
dCB0aGUgbm9kZSBtaWdodCBub3QgYmUKLSAgICAgKiByZXByZXNlbnRhdGl2ZSBvZiB0aGUgaW5m
b3JtYXRpb24gZ2l2ZW4gaW4gdGhlIGNvbnRleHQKLSAgICAgKiBwcm9wZXJ0eSwgc2luY2UgV2Vi
S2l0IHVzZXMgYSBzZXJpZXMgb2YgaGV1cmlzdGljcyB0byBmaWd1cmUKLSAgICAgKiBvdXQgdGhh
dCBpbmZvcm1hdGlvbi4gT25lIGNvbW1vbiBleGFtcGxlIGlzIGlubmVyLW5vZGUgaGF2aW5nCi0g
ICAgICogdGhlIHRleHQgbm9kZSBpbnNpZGUgdGhlIGFuY2hvciAoJmx0O2EmZ3Q7KSB0YWc7IFdl
YktpdCBrbm93cyB0aGUKLSAgICAgKiB3aG9sZSBjb250ZXh0IGFuZCB3aWxsIHB1dCBXRUJLSVRf
SElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfTElOSwotICAgICAqIGluIHRoZSAnY29udGV4dCcgcHJv
cGVydHksIGJ1dCB0aGUgdXNlciBtaWdodCBiZSBjb25mdXNlZCBieQotICAgICAqIHRoZSBsYWNr
IG9mIGFueSBsaW5rIHRhZyBpbiAnaW5uZXItbm9kZScuCi0gICAgICoKLSAgICAgKiBTaW5jZTog
MS4zLjIKLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVj
dENsYXNzLCBQUk9QX0lOTkVSX05PREUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KCJpbm5lci1ub2RlIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiSW5uZXIgbm9kZSIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJUaGUgaW5uZXIgRE9NIG5vZGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBoaXQgdGVzdCByZXN1bHQu
IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9UWVBFX0RPTV9OT0RFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lU
X1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7Ci0KLSAgICAvKioK
LSAgICAgKiBXZWJLaXRIaXRUZXN0UmVzdWx0Ong6Ci0gICAgICoKLSAgICAgKiBUaGUgeCBjb29y
ZGluYXRlIG9mIHRoZSBldmVudCByZWxhdGl2ZSB0byB0aGUgdmlldydzIHdpbmRvdy4KLSAgICAg
KgotICAgICAqIFNpbmNlOiAxLjEwCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9YLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgieCIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlggY29vcmRpbmF0ZSIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgeCBj
b29yZGluYXRlIG9mIHRoZSBldmVudCByZWxhdGl2ZSB0byB0aGUgdmlldydzIHdpbmRvdy4iKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19N
SU5JTlQsIEdfTUFYSU5ULCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JF
QURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7Ci0KLSAgICAvKioKLSAgICAgKiBX
ZWJLaXRIaXRUZXN0UmVzdWx0Onk6Ci0gICAgICoKLSAgICAgKiBUaGUgeCBjb29yZGluYXRlIG9m
IHRoZSBldmVudCByZWxhdGl2ZSB0byB0aGUgdmlldydzIHdpbmRvdy4KLSAgICAgKgotICAgICAq
IFNpbmNlOiAxLjEwCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eShvYmplY3RDbGFzcywgUFJPUF9ZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX2ludCgieSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIlkgY29vcmRpbmF0ZSIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgeSBjb29yZGluYXRl
IG9mIHRoZSBldmVudCByZWxhdGl2ZSB0byB0aGUgdmlldydzIHdpbmRvdy4iKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NSU5JTlQsIEdf
TUFYSU5ULCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8
IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7Ci0KLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZh
dGUod2ViSGl0VGVzdFJlc3VsdENsYXNzLCBzaXplb2YoV2ViS2l0SGl0VGVzdFJlc3VsdFByaXZh
dGUpKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9pbml0KFdlYktp
dEhpdFRlc3RSZXN1bHQqIHdlYl9oaXRfdGVzdF9yZXN1bHQpCi17Ci0gICAgd2ViX2hpdF90ZXN0
X3Jlc3VsdC0+cHJpdiA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSh3ZWJfaGl0X3Rlc3Rf
cmVzdWx0LCBXRUJLSVRfVFlQRV9ISVRfVEVTVF9SRVNVTFQsIFdlYktpdEhpdFRlc3RSZXN1bHRQ
cml2YXRlKTsKLSAgICBuZXcgKHdlYl9oaXRfdGVzdF9yZXN1bHQtPnByaXYpIFdlYktpdEhpdFRl
c3RSZXN1bHRQcml2YXRlKCk7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJLaXRIaXRU
ZXN0UmVzdWx0KiBraXQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYgcmVzdWx0KQotewot
ICAgIGd1aW50IGNvbnRleHQgPSBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfRE9DVU1F
TlQ7Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBsaW5rVVJJOwotICAgIEdVbmlxdWVQdHI8Y2hhcj4g
aW1hZ2VVUkk7Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBtZWRpYVVSSTsKLSAgICBXZWJLaXRET01O
b2RlKiBub2RlID0gMDsKLSAgICBXZWJDb3JlOjpGcmFtZSogaW5uZXJOb2RlRnJhbWU7Ci0gICAg
V2ViQ29yZTo6SW50UG9pbnQgcG9pbnQ7Ci0KLSAgICBpZiAoIXJlc3VsdC5hYnNvbHV0ZUxpbmtV
UkwoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29udGV4dCB8PSBXRUJLSVRfSElUX1RFU1RfUkVT
VUxUX0NPTlRFWFRfTElOSzsKLSAgICAgICAgbGlua1VSSS5yZXNldChnX3N0cmR1cChyZXN1bHQu
YWJzb2x1dGVMaW5rVVJMKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwotICAgIH0KLQotICAg
IGlmICghcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29u
dGV4dCB8PSBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRFWFRfSU1BR0U7Ci0gICAgICAgIGlt
YWdlVVJJLnJlc2V0KGdfc3RyZHVwKHJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSkpOwotICAgIH0KLQotICAgIGlmICghcmVzdWx0LmFic29sdXRlTWVkaWFV
UkwoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgY29udGV4dCB8PSBXRUJLSVRfSElUX1RFU1RfUkVT
VUxUX0NPTlRFWFRfTUVESUE7Ci0gICAgICAgIG1lZGlhVVJJLnJlc2V0KGdfc3RyZHVwKHJlc3Vs
dC5hYnNvbHV0ZU1lZGlhVVJMKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwotICAgIH0KLQot
ICAgIGlmIChyZXN1bHQuaXNTZWxlY3RlZCgpKQotICAgICAgICBjb250ZXh0IHw9IFdFQktJVF9I
SVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9TRUxFQ1RJT047Ci0KLSAgICBpZiAocmVzdWx0LmlzQ29u
dGVudEVkaXRhYmxlKCkpCi0gICAgICAgIGNvbnRleHQgfD0gV0VCS0lUX0hJVF9URVNUX1JFU1VM
VF9DT05URVhUX0VESVRBQkxFOwotCi0gICAgaWYgKHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUo
KSkKLSAgICAgICAgbm9kZSA9IGtpdChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpOwotCi0g
ICAgaW5uZXJOb2RlRnJhbWUgPSByZXN1bHQuaW5uZXJOb2RlRnJhbWUoKTsKLSAgICBpZiAoaW5u
ZXJOb2RlRnJhbWUgJiYgaW5uZXJOb2RlRnJhbWUtPnZpZXcoKSkgewotICAgICAgICAvLyBDb252
ZXJ0IGRvY3VtZW50IGNvb3JkcyB0byB3aWRnZXQgY29vcmRzLgotICAgICAgICBwb2ludCA9IGlu
bmVyTm9kZUZyYW1lLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocmVzdWx0LnJvdW5kZWRQb2lu
dEluSW5uZXJOb2RlRnJhbWUoKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gRklYTUU6IE1h
aW4gZnJhbWUgY29vcmRzIGlzIG5vdCB0aGUgc2FtZSBhcyB3aW5kb3cgY29vcmRzLAotICAgICAg
ICAvLyBidXQgd2UgZG8gbm90IGhhdmUgcG9pbnRlciB0byAgbWFpbmZyYW1lIHZpZXcgaGVyZS4K
LSAgICAgICAgcG9pbnQgPSByZXN1bHQucm91bmRlZFBvaW50SW5NYWluRnJhbWUoKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gV0VCS0lUX0hJVF9URVNUX1JFU1VMVChnX29iamVjdF9uZXcoV0VCS0lU
X1RZUEVfSElUX1RFU1RfUkVTVUxULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAibGluay11cmkiLCBsaW5rVVJJLmdldCgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1hZ2UtdXJpIiwgaW1hZ2VVUkkuZ2V0
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZWRp
YS11cmkiLCBtZWRpYVVSSS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNvbnRleHQiLCBjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5uZXItbm9kZSIsIG5vZGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ4IiwgcG9pbnQueCgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieSIsIHBvaW50Lnko
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCkp
OwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0
dGVzdHJlc3VsdC5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGhpdHRlc3RyZXN1
bHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE2YTY0ZS4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0dGVzdHJlc3VsdC5oCisrKyAvZGV2
L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBDb2xsYWJv
cmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0
aGl0dGVzdHJlc3VsdF9oCi0jZGVmaW5lIHdlYmtpdGhpdHRlc3RyZXN1bHRfaAotCi0jaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KLQotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+Ci0K
LUdfQkVHSU5fREVDTFMKLQotI2RlZmluZSBXRUJLSVRfVFlQRV9ISVRfVEVTVF9SRVNVTFQgICAg
ICAgICAgICAod2Via2l0X2hpdF90ZXN0X3Jlc3VsdF9nZXRfdHlwZSgpKQotI2RlZmluZSBXRUJL
SVRfSElUX1RFU1RfUkVTVUxUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNF
X0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX0hJVF9URVNUX1JFU1VMVCwgV2ViS2l0SGl0VGVzdFJl
c3VsdCkpCi0jZGVmaW5lIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ0xBU1Moa2xhc3MpICAgIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfSElUX1RFU1RfUkVT
VUxULCBXZWJLaXRIaXRUZXN0UmVzdWx0Q2xhc3MpKQotI2RlZmluZSBXRUJLSVRfSVNfSElUX1RF
U1RfUkVTVUxUKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiks
IFdFQktJVF9UWVBFX0hJVF9URVNUX1JFU1VMVCkpCi0jZGVmaW5lIFdFQktJVF9JU19ISVRfVEVT
VF9SRVNVTFRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAg
V0VCS0lUX1RZUEVfSElUX1RFU1RfUkVTVUxUKSkKLSNkZWZpbmUgV0VCS0lUX0hJVF9URVNUX1JF
U1VMVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBX
RUJLSVRfVFlQRV9ISVRfVEVTVF9SRVNVTFQsIFdlYktpdEhpdFRlc3RSZXN1bHRDbGFzcykpCi0K
LXR5cGVkZWYgc3RydWN0IF9XZWJLaXRIaXRUZXN0UmVzdWx0UHJpdmF0ZSBXZWJLaXRIaXRUZXN0
UmVzdWx0UHJpdmF0ZTsKLQotc3RydWN0IF9XZWJLaXRIaXRUZXN0UmVzdWx0IHsKLSAgICBHT2Jq
ZWN0IHBhcmVudF9pbnN0YW5jZTsKLQotICAgIC8qPCBwcml2YXRlID4qLwotICAgIFdlYktpdEhp
dFRlc3RSZXN1bHRQcml2YXRlICpwcml2OwotfTsKLQotc3RydWN0IF9XZWJLaXRIaXRUZXN0UmVz
dWx0Q2xhc3MgewotICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Ci0KLSAgICAvKiBQYWRk
aW5nIGZvciBmdXR1cmUgZXhwYW5zaW9uICovCi0gICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQw
KSAodm9pZCk7Ci0gICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7Ci0gICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7Ci0gICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2
ZWQzKSAodm9pZCk7Ci19OwotCi0vKioKLSAqIFdlYktpdEhpdFRlc3RSZXN1bHRDb250ZXh0Ogot
ICogQFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9ET0NVTUVOVDogYW55d2hlcmUgaW4g
dGhlIGRvY3VtZW50LgotICogQFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9MSU5LOiBh
IGh5cGVybGluayBlbGVtZW50LgotICogQFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9J
TUFHRTogYW4gaW1hZ2UgZWxlbWVudC4KLSAqIEBXRUJLSVRfSElUX1RFU1RfUkVTVUxUX0NPTlRF
WFRfTUVESUE6IGEgdmlkZW8gb3IgYXVkaW8gZWxlbWVudC4KLSAqIEBXRUJLSVRfSElUX1RFU1Rf
UkVTVUxUX0NPTlRFWFRfU0VMRUNUSU9OOiB0aGUgYXJlYSBpcyBzZWxlY3RlZCBieQotICogdGhl
IHVzZXIuCi0gKiBAV0VCS0lUX0hJVF9URVNUX1JFU1VMVF9DT05URVhUX0VESVRBQkxFOiB0aGUg
YXJlYSBpcwotICogZWRpdGFibGUgYnkgdGhlIHVzZXIuCi0gKi8KLXR5cGVkZWYgZW51bQotewot
ICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9ET0NVTUVOVCAgID0gMSA8PCAxLAot
ICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9MSU5LICAgICAgID0gMSA8PCAyLAot
ICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9JTUFHRSAgICAgID0gMSA8PCAzLAot
ICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9NRURJQSAgICAgID0gMSA8PCA0LAot
ICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9TRUxFQ1RJT04gID0gMSA8PCA1LAot
ICAgIFdFQktJVF9ISVRfVEVTVF9SRVNVTFRfQ09OVEVYVF9FRElUQUJMRSAgID0gMSA8PCA2LAot
fSBXZWJLaXRIaXRUZXN0UmVzdWx0Q29udGV4dDsKLQotV0VCS0lUX0FQSSBHVHlwZQotd2Via2l0
X2hpdF90ZXN0X3Jlc3VsdF9nZXRfdHlwZSAodm9pZCk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRp
ZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aGl0dGVzdHJl
c3VsdHByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRoaXR0ZXN0cmVz
dWx0cHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzdhYzI3Li4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRoaXR0ZXN0cmVzdWx0cHJp
dmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOCwgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgotICogQ29weXJp
Z2h0IChDKSAyMDA4IEphbiBNaWNoYWVsIEMuIEFsb256bwotICogQ29weXJpZ2h0IChDKSAyMDA4
IENvbGxhYm9yYSBMdGQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRl
ZiB3ZWJraXRoaXR0ZXN0cmVzdWx0cHJpdmF0ZV9oCi0jZGVmaW5lIHdlYmtpdGhpdHRlc3RyZXN1
bHRwcml2YXRlX2gKLQotI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKLSNpbmNsdWRlICJ3ZWJr
aXRoaXR0ZXN0cmVzdWx0LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJLaXRIaXRUZXN0
UmVzdWx0KiBraXQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYpOwotCi19Ci0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGljb25kYXRhYmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNlLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTAzNTY4Yi4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNlLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDMzMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIENocmlzdGlhbiBE
eXdhbiA8Y2hyaXN0aWFuQGxhbmVkby5jb20+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJ3ZWJraXRpY29uZGF0YWJhc2UuaCIKLQotI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNs
dWRlICJJY29uRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIkludFNp
emUuaCIKLSNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtp
dG1hcnNoYWwuaCIKLSNpbmNsdWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCIKLSNp
bmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KLQotLyoqCi0gKiBTRUNUSU9OOndlYmtpdGljb25kYXRhYmFzZQotICogQHNob3J0
X2Rlc2NyaXB0aW9uOiBBIFdlYktpdCB3ZWIgYXBwbGljYXRpb24gZGF0YWJhc2UKLSAqCi0gKiAj
V2ViS2l0SWNvbkRhdGFiYXNlIHByb3ZpZGVzIGFjY2VzcyB0byB3ZWJzaXRlIGljb25zLCBhcyBz
aG93bgotICogaW4gdGFiIGxhYmVscywgd2luZG93IGNhcHRpb25zIG9yIGJvb2ttYXJrcy4gQWxs
IHZpZXdzIHNoYXJlCi0gKiB0aGUgc2FtZSBpY29uIGRhdGFiYXNlLgotICoKLSAqIFRoZSBpY29u
IGRhdGFiYXNlIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBhbmQgc3RvcmVkIGluCi0gKiB+Ly5jYWNo
ZS93ZWJraXQvaWNvbmRhdGFiYXNlLCBkZXBlbmRpbmcgb24gWERHX0NBQ0hFX0hPTUUuCi0gKgot
ICogV2ViS2l0IHdpbGwgYXV0b21hdGljYWxseSBsb29rIGZvciBhdmFpbGFibGUgaWNvbnMgaW4g
bGluayBlbGVtZW50cwotICogb24gb3BlbmVkIHBhZ2VzIGFzIHdlbGwgYXMgYW4gZXhpc3Rpbmcg
ZmF2aWNvbi5pY28gYW5kIGxvYWQgdGhlCi0gKiBpbWFnZXMgZm91bmQgaW50byB0aGUgbWVtb3J5
IGNhY2hlIGlmIHBvc3NpYmxlLiBUaGUgc2lnbmFsICJpY29uLWxvYWRlZCIKLSAqIHdpbGwgYmUg
ZW1pdHRlZCB3aGVuIGFueSBpY29uIGlzIGZvdW5kIGFuZCBsb2FkZWQuCi0gKiBPbGQgSWNvbnMg
YXJlIGF1dG9tYXRpY2FsbHkgY2xlYW5lZCB1cCBhZnRlciA0IGRheXMuCi0gKgotICogd2Via2l0
X2ljb25fZGF0YWJhc2Vfc2V0X3BhdGgoKSBjYW4gYmUgdXNlZCB0byBjaGFuZ2UgdGhlIGxvY2F0
aW9uCi0gKiBvZiB0aGUgZGF0YWJhc2UgYW5kIGFsc28gdG8gZGlzYWJsZSBpdCBieSBwYXNzaW5n
ICVOVUxMLgotICoKLSAqIElmIFdlYktpdFdlYlNldHRpbmdzOjplbmFibGUtcHJpdmF0ZS1icm93
c2luZyBpcyAlVFJVRSBuZXcgaWNvbnMKLSAqIHdvbid0IGJlIGFkZGVkIHRvIHRoZSBkYXRhYmFz
ZSBvbiBkaXNrIGFuZCBubyBleGlzdGluZyBpY29ucyB3aWxsCi0gKiBiZSBkZWxldGVkIGZyb20g
aXQuCi0gKgotICogU2luY2U6IDEuMy4xMwotICoKLSAqIERlcHJlY2F0ZWQ6IDEuODogVXNlIFdl
YktpdEZhdmljb25EYXRhYmFzZSBpbnN0ZWFkLgotICovCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7Ci0KLWVudW0gewotICAgIFBST1BfMCwKLQotICAgIFBST1BfUEFUSCwKLX07Ci0KLWVudW0g
ewotICAgIElDT05fTE9BREVELAotCi0gICAgTEFTVF9TSUdOQUwKLX07Ci0KLXN0YXRpYyBndWlu
dCB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKLQot
R19ERUZJTkVfVFlQRShXZWJLaXRJY29uRGF0YWJhc2UsIHdlYmtpdF9pY29uX2RhdGFiYXNlLCBH
X1RZUEVfT0JKRUNUKTsKLQotc3RydWN0IF9XZWJLaXRJY29uRGF0YWJhc2VQcml2YXRlIHsKLSAg
ICBHVW5pcXVlUHRyPGdjaGFyPiBwYXRoOwotfTsKLQotc3RhdGljIHZvaWQgd2Via2l0X2ljb25f
ZGF0YWJhc2VfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQotewotICAgIC8vIENhbGwgQysrIGRl
c3RydWN0b3JzLCB0aGUgcmV2ZXJzZSBvZiAncGxhY2VtZW50IG5ldyBzeW50YXgnCi0gICAgV0VC
S0lUX0lDT05fREFUQUJBU0Uob2JqZWN0KS0+cHJpdi0+fldlYktpdEljb25EYXRhYmFzZVByaXZh
dGUoKTsKLQotICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9pY29uX2RhdGFiYXNlX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9pY29uX2Rh
dGFiYXNlX2Rpc3Bvc2UoR09iamVjdCogb2JqZWN0KQotewotICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF9pY29uX2RhdGFiYXNlX3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKLX0KLQot
c3RhdGljIHZvaWQgd2Via2l0X2ljb25fZGF0YWJhc2Vfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3Bl
YykKLXsKLSAgICBXZWJLaXRJY29uRGF0YWJhc2UqIGRhdGFiYXNlID0gV0VCS0lUX0lDT05fREFU
QUJBU0Uob2JqZWN0KTsKLQotICAgIHN3aXRjaCAocHJvcElkKSB7Ci0gICAgY2FzZSBQUk9QX1BB
VEg6Ci0gICAgICAgIHdlYmtpdF9pY29uX2RhdGFiYXNlX3NldF9wYXRoKGRhdGFiYXNlLCBnX3Zh
bHVlX2dldF9zdHJpbmcodmFsdWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBw
c3BlYyk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2lj
b25fZGF0YWJhc2VfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBH
VmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRJY29uRGF0YWJh
c2UqIGRhdGFiYXNlID0gV0VCS0lUX0lDT05fREFUQUJBU0Uob2JqZWN0KTsKLQotICAgIHN3aXRj
aCAocHJvcElkKSB7Ci0gICAgY2FzZSBQUk9QX1BBVEg6Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0
cmluZyh2YWx1ZSwgd2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0X3BhdGgoZGF0YWJhc2UpKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElE
X1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwc3BlYyk7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2ljb25fZGF0YWJhc2VfY2xhc3NfaW5pdChXZWJL
aXRJY29uRGF0YWJhc2VDbGFzcyoga2xhc3MpCi17Ci0gICAgd2Via2l0SW5pdCgpOwotCi0gICAg
R09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7Ci0gICAg
Z29iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0X2ljb25fZGF0YWJhc2VfZGlzcG9zZTsKLSAg
ICBnb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0X2ljb25fZGF0YWJhc2VfZmluYWxpemU7
Ci0gICAgZ29iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRfaWNvbl9kYXRhYmFzZV9z
ZXRfcHJvcGVydHk7Ci0gICAgZ29iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfaWNv
bl9kYXRhYmFzZV9nZXRfcHJvcGVydHk7Ci0KLSAgICAgLyoqCi0gICAgICAqIFdlYktpdEljb25E
YXRhYmFzZTpwYXRoOgotICAgICAgKgotICAgICAgKiBUaGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUg
aWNvbiBkYXRhYmFzZSBmb2xkZXIuCi0gICAgICAqCi0gICAgICAqIFNpbmNlOiAxLjMuMTMKLSAg
ICAgICoKLSAgICAgICogRGVwcmVjYXRlZDogMS44OiBVc2UgV2ViS2l0RmF2aWNvbkRhdGFiYXNl
OjpwYXRoIGluc3RlYWQuCi0gICAgICAqLwotICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KGdvYmplY3RDbGFzcywgUFJPUF9QQVRILAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInBhdGgiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiUGF0aCIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi
VGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGljb24gZGF0YWJhc2UgZm9sZGVyIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAot
ICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKLQotICAgIC8qKgotICAg
ICAqIFdlYktpdEljb25EYXRhYmFzZTo6aWNvbi1sb2FkZWQ6Ci0gICAgICogQGRhdGFiYXNlOiB0
aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIEBmcmFtZTog
dGhlIGZyYW1lIGNvbnRhaW5pbmcgdGhlIGljb24KLSAgICAgKiBAZnJhbWVfdXJpOiB0aGUgVVJJ
IG9mIHRoZSBmcmFtZSBjb250YWluaW5nIHRoZSBpY29uCi0gICAgICoKLSAgICAgKiBUaGlzIHNp
Z25hbCBpcyBlbWl0dGVkIHdoZW4gYSBmYXZpY29uIGlzIGF2YWlsYWJsZSBmb3IgYSBwYWdlLAot
ICAgICAqIG9yIGEgY2hpbGQgZnJhbWUuCi0gICAgICogU2VlIFdlYktpdFdlYlZpZXc6Omljb24t
bG9hZGVkIGlmIHlvdSBvbmx5IG5lZWQgdGhlIGZhdmljb24gZm9yCi0gICAgICogdGhlIG1haW4g
ZnJhbWUgb2YgYSBwYXJ0aWN1bGFyICNXZWJLaXRXZWJWaWV3LgotICAgICAqCi0gICAgICogU2lu
Y2U6IDEuMy4xMwotICAgICAqCi0gICAgICogRGVwcmVjYXRlZDogMS44OiBVc2UgV2ViS2l0RmF2
aWNvbkRhdGFiYXNlOjppY29uLWxvYWRlZCBpbnN0ZWFkLgotICAgICAqLwotICAgIHdlYmtpdF9p
Y29uX2RhdGFiYXNlX3NpZ25hbHNbSUNPTl9MT0FERURdID0gZ19zaWduYWxfbmV3KCJpY29uLWxv
YWRlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGtsYXNzKSwKLSAgICAgICAgKEdTaWdu
YWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAgTlVMTCwKLSAg
ICAgICAgTlVMTCwKLSAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX1NUUklORywK
LSAgICAgICAgR19UWVBFX05PTkUsIDIsCi0gICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwK
LSAgICAgICAgR19UWVBFX1NUUklORyk7Ci0KLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUo
a2xhc3MsIHNpemVvZihXZWJLaXRJY29uRGF0YWJhc2VQcml2YXRlKSk7Ci19Ci0KLXN0YXRpYyB2
b2lkIHdlYmtpdF9pY29uX2RhdGFiYXNlX2luaXQoV2ViS2l0SWNvbkRhdGFiYXNlKiBkYXRhYmFz
ZSkKLXsKLSAgICBkYXRhYmFzZS0+cHJpdiA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShk
YXRhYmFzZSwgV0VCS0lUX1RZUEVfSUNPTl9EQVRBQkFTRSwgV2ViS2l0SWNvbkRhdGFiYXNlUHJp
dmF0ZSk7Ci0gICAgLy8gJ3BsYWNlbWVudCBuZXcgc3ludGF4Jywgc2VlIHdlYmtpdHdlYnZpZXcu
Y3BwCi0gICAgbmV3IChkYXRhYmFzZS0+cHJpdikgV2ViS2l0SWNvbkRhdGFiYXNlUHJpdmF0ZSgp
OwotfQotCi0vKioKLSAqIHdlYmtpdF9pY29uX2RhdGFiYXNlX2dldF9wYXRoOgotICogQGRhdGFi
YXNlOiBhICNXZWJLaXRJY29uRGF0YWJhc2UKLSAqCi0gKiBEZXRlcm1pbmVzIHRoZSBhYnNvbHV0
ZSBwYXRoIHRvIHRoZSBkYXRhYmFzZSBmb2xkZXIgb24gZGlzay4KLSAqCi0gKiBSZXR1cm5zOiB0
aGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUgZGF0YWJhc2UgZm9sZGVyLCBvciAlTlVMTAotICoKLSAq
IFNpbmNlOiAxLjMuMTMKLSAqCi0gKiBEZXByZWNhdGVkOiAxLjg6IFVzZSB3ZWJraXRfZmF2aWNv
bl9kYXRhYmFzZV9nZXRfcGF0aCgpIGluc3RlYWQuCi0gKiovCi1jb25zdCBnY2hhciogd2Via2l0
X2ljb25fZGF0YWJhc2VfZ2V0X3BhdGgoV2ViS2l0SWNvbkRhdGFiYXNlKiBkYXRhYmFzZSkKLXsK
LSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfSUNPTl9EQVRBQkFTRShkYXRhYmFz
ZSksIDApOwotCi0gICAgcmV0dXJuIGRhdGFiYXNlLT5wcml2LT5wYXRoLmdldCgpOwotfQotCi1z
dGF0aWMgdm9pZCBjbG9zZUljb25EYXRhYmFzZU9uRXhpdCgpCi17Ci0gICAgaWYgKFdlYkNvcmU6
Omljb25EYXRhYmFzZSgpLmlzRW5hYmxlZCgpKSB7Ci0gICAgICAgIFdlYkNvcmU6Omljb25EYXRh
YmFzZSgpLnNldEVuYWJsZWQoZmFsc2UpOwotICAgICAgICBXZWJDb3JlOjppY29uRGF0YWJhc2Uo
KS5jbG9zZSgpOwotICAgIH0KLX0KLQotLyoqCi0gKiB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRf
cGF0aDoKLSAqIEBkYXRhYmFzZTogYSAjV2ViS2l0SWNvbkRhdGFiYXNlCi0gKiBAcGF0aDogYW4g
YWJzb2x1dGUgcGF0aCB0byB0aGUgaWNvbiBkYXRhYmFzZSBmb2xkZXIKLSAqCi0gKiBTcGVjaWZp
ZXMgdGhlIGFic29sdXRlIHBhdGggdG8gdGhlIGRhdGFiYXNlIGZvbGRlciBvbiBkaXNrLgotICoK
LSAqIFBhc3NpbmcgJU5VTEwgb3IgIiIgZGlzYWJsZXMgdGhlIGljb24gZGF0YWJhc2UuCi0gKgot
ICogU2luY2U6IDEuMy4xMwotICoKLSAqIERlcHJlY2F0ZWQ6IDEuODogVXNlIHdlYmtpdF9mYXZp
Y29uX2RhdGFiYXNlX3NldF9wYXRoKCkgaW5zdGVhZC4KLSAqKi8KLXZvaWQgd2Via2l0X2ljb25f
ZGF0YWJhc2Vfc2V0X3BhdGgoV2ViS2l0SWNvbkRhdGFiYXNlKiBkYXRhYmFzZSwgY29uc3QgZ2No
YXIqIHBhdGgpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfSUNPTl9EQVRBQkFT
RShkYXRhYmFzZSkpOwotCi0gICAgaWYgKGRhdGFiYXNlLT5wcml2LT5wYXRoLmdldCgpKQotICAg
ICAgICBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5jbG9zZSgpOwotCi0gICAgaWYgKCEocGF0aCAm
JiBwYXRoWzBdKSkgewotICAgICAgICBkYXRhYmFzZS0+cHJpdi0+cGF0aC5yZXNldCgpOwotICAg
ICAgICBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5zZXRFbmFibGVkKGZhbHNlKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGRhdGFiYXNlLT5wcml2LT5wYXRoLnJlc2V0KGdfc3RyZHVw
KHBhdGgpKTsKLQotICAgIFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnNldEVuYWJsZWQodHJ1ZSk7
Ci0gICAgV2ViQ29yZTo6aWNvbkRhdGFiYXNlKCkub3BlbihXZWJDb3JlOjpmaWxlbmFtZVRvU3Ry
aW5nKGRhdGFiYXNlLT5wcml2LT5wYXRoLmdldCgpKSwgV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpk
ZWZhdWx0RGF0YWJhc2VGaWxlbmFtZSgpKTsKLQotICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVk
ID0gZmFsc2U7Ci0gICAgaWYgKCFpbml0aWFsaXplZCkgewotICAgICAgICBhdGV4aXQoY2xvc2VJ
Y29uRGF0YWJhc2VPbkV4aXQpOwotICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7Ci0gICAgfQot
fQotCi0vKioKLSAqIHdlYmtpdF9pY29uX2RhdGFiYXNlX2dldF9pY29uX3VyaToKLSAqIEBkYXRh
YmFzZTogYSAjV2ViS2l0SWNvbkRhdGFiYXNlCi0gKiBAcGFnZV91cmk6IFVSSSBvZiB0aGUgcGFn
ZSBjb250YWluaW5nIHRoZSBpY29uCi0gKgotICogT2J0YWlucyB0aGUgVVJJIGZvciB0aGUgZmF2
aWNvbiBmb3IgdGhlIGdpdmVuIHBhZ2UgVVJJLgotICogU2VlIGFsc28gd2Via2l0X3dlYl92aWV3
X2dldF9pY29uX3VyaSgpLgotICoKLSAqIFJldHVybnM6IGEgbmV3bHkgYWxsb2NhdGVkIFVSSSBm
b3IgdGhlIGZhdmljb24sIG9yICVOVUxMCi0gKgotICogU2luY2U6IDEuMy4xMwotICoKLSAqIERl
cHJlY2F0ZWQ6IDEuODogVXNlIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9mYXZpY29uX3Vy
aSgpIGluc3RlYWQuCi0gKiovCi1nY2hhciogd2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0X2ljb25f
dXJpKFdlYktpdEljb25EYXRhYmFzZSogZGF0YWJhc2UsIGNvbnN0IGdjaGFyKiBwYWdlVVJJKQot
ewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19JQ09OX0RBVEFCQVNFKGRhdGFi
YXNlKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwocGFnZVVSSSwgMCk7Ci0KLSAgICBT
dHJpbmcgcGFnZVVSTCA9IFN0cmluZzo6ZnJvbVVURjgocGFnZVVSSSk7Ci0gICAgcmV0dXJuIGdf
c3RyZHVwKFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNocm9ub3VzSWNvblVSTEZvclBhZ2VV
UkwocGFnZVVSTCkudXRmOCgpLmRhdGEoKSk7Ci19Ci0KLS8qKgotICogd2Via2l0X2ljb25fZGF0
YWJhc2VfZ2V0X2ljb25fcGl4YnVmOgotICogQGRhdGFiYXNlOiBhICNXZWJLaXRJY29uRGF0YWJh
c2UKLSAqIEBwYWdlX3VyaTogVVJJIG9mIHRoZSBwYWdlIGNvbnRhaW5pbmcgdGhlIGljb24KLSAq
Ci0gKiBPYnRhaW5zIGEgI0dka1BpeGJ1ZiBvZiB0aGUgZmF2aWNvbiBmb3IgdGhlIGdpdmVuIHBh
Z2UgVVJJLCBvcgotICogYSBkZWZhdWx0IGljb24gaWYgdGhlcmUgaXMgbm8gaWNvbiBmb3IgdGhl
IGdpdmVuIHBhZ2UuIFVzZQotICogd2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0X2ljb25fdXJpKCkg
aWYgeW91IG5lZWQgdG8gZGlzdGluZ3Vpc2ggdGhlc2UgY2FzZXMuCi0gKiBVc3VhbGx5IHlvdSB3
YW50IHRvIGNvbm5lY3QgdG8gV2ViS2l0SWNvbkRhdGFiYXNlOjppY29uLWxvYWRlZCBhbmQgY2Fs
bCB0aGlzCi0gKiBtZXRob2QgaW4gdGhlIGNhbGxiYWNrLgotICoKLSAqIFRoZSBwaXhidWYgd2ls
bCBoYXZlIHRoZSBsYXJnZXN0IHNpemUgcHJvdmlkZWQgYnkgdGhlIHNlcnZlciBhbmQgc2hvdWxk
Ci0gKiBiZSByZXNpemVkIGJlZm9yZSBpdCBpcyBkaXNwbGF5ZWQuCi0gKiBTZWUgYWxzbyB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2ljb25fcGl4YnVmKCkuCi0gKgotICogUmV0dXJuczogKHRyYW5zZmVy
IGZ1bGwpOiBhIG5ldyByZWZlcmVuY2UgdG8gYSAjR2RrUGl4YnVmLCBvciAlTlVMTAotICoKLSAq
IFNpbmNlOiAxLjMuMTMKLSAqCi0gKiBEZXByZWNhdGVkOiAxLjg6IFVzZSB3ZWJraXRfZmF2aWNv
bl9kYXRhYmFzZV90cnlfZ2V0X2Zhdmljb25fcGl4YnVmKCkgaW5zdGVhZC4KLSAqKi8KLUdka1Bp
eGJ1Ziogd2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0X2ljb25fcGl4YnVmKFdlYktpdEljb25EYXRh
YmFzZSogZGF0YWJhc2UsIGNvbnN0IGdjaGFyKiBwYWdlVVJJKQotewotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19JQ09OX0RBVEFCQVNFKGRhdGFiYXNlKSwgMCk7Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwocGFnZVVSSSwgMCk7Ci0KLSAgICBTdHJpbmcgcGFnZVVSTCA9IFN0
cmluZzo6ZnJvbVVURjgocGFnZVVSSSk7Ci0gICAgLy8gVGhlIGV4YWN0IHNpemUgd2UgcGFzcyBp
cyBpcnJlbGV2YW50IHRvIHRoZSBXZWJDb3JlOjppY29uRGF0YWJhc2UgY29kZS4KLSAgICAvLyBX
ZSBtdXN0IHBhc3Mgc29tZXRoaW5nIGdyZWF0ZXIgdGhhbiAwLCAwIHRvIGdldCBhIHBpeGJ1Zi4K
LSAgICBXZWJDb3JlOjpJbWFnZSogaWNvbiA9IFdlYkNvcmU6Omljb25EYXRhYmFzZSgpLnN5bmNo
cm9ub3VzSWNvbkZvclBhZ2VVUkwocGFnZVVSTCwgV2ViQ29yZTo6SW50U2l6ZSgxNiwgMTYpKTsK
LSAgICBpZiAoIWljb24pCi0gICAgICAgIHJldHVybiAwOwotICAgIEdka1BpeGJ1ZiogcGl4YnVm
ID0gaWNvbi0+Z2V0R2RrUGl4YnVmKCk7Ci0gICAgaWYgKCFwaXhidWYpCi0gICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxHZGtQaXhidWYqPihnX29iamVjdF9yZWYocGl4
YnVmKSk7Ci19Ci0KLS8qKgotICogd2Via2l0X2ljb25fZGF0YWJhc2VfY2xlYXI6Ci0gKiBAZGF0
YWJhc2U6IGEgI1dlYktpdEljb25EYXRhYmFzZQotICoKLSAqIENsZWFycyBhbGwgaWNvbnMgZnJv
bSB0aGUgZGF0YWJhc2UuCi0gKgotICogU2luY2U6IDEuMy4xMwotICoKLSAqIERlcHJlY2F0ZWQ6
IDEuODogVXNlIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2NsZWFyKCkgaW5zdGVhZC4KLSAqKi8K
LXZvaWQgd2Via2l0X2ljb25fZGF0YWJhc2VfY2xlYXIoV2ViS2l0SWNvbkRhdGFiYXNlKiBkYXRh
YmFzZSkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19JQ09OX0RBVEFCQVNFKGRh
dGFiYXNlKSk7Ci0KLSAgICBXZWJDb3JlOjppY29uRGF0YWJhc2UoKS5yZW1vdmVBbGxJY29ucygp
OwotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aWNvbmRh
dGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0aWNvbmRhdGFiYXNlLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4MTY4ZDUuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGljb25kYXRhYmFzZS5oCisrKyAvZGV2L251bGwK
QEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBDaHJpc3RpYW4gRHl3
YW4gPGNocmlzdGlhbkBsYW5lZG8uY29tPgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIHdlYmtpdGljb25kYXRhYmFzZV9oCi0j
ZGVmaW5lIHdlYmtpdGljb25kYXRhYmFzZV9oCi0KLSNpbmNsdWRlIDxnZGstcGl4YnVmL2dkay1w
aXhidWYuaD4KLSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXRkZWZpbmVzLmg+Ci0KLUdfQkVHSU5fREVDTFMKLQotI2RlZmluZSBXRUJLSVRfVFlQRV9JQ09O
X0RBVEFCQVNFICAgICAgICAgICAgICh3ZWJraXRfaWNvbl9kYXRhYmFzZV9nZXRfdHlwZSgpKQot
I2RlZmluZSBXRUJLSVRfSUNPTl9EQVRBQkFTRShvYmopICAgICAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfSUNPTl9EQVRBQkFTRSwgV2ViS2l0
SWNvbkRhdGFiYXNlKSkKLSNkZWZpbmUgV0VCS0lUX0lDT05fREFUQUJBU0VfQ0xBU1Moa2xhc3Mp
ICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0lDT05f
REFUQUJBU0UsIFdlYktpdEljb25EYXRhYmFzZUNsYXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX0lD
T05fREFUQUJBU0Uob2JqKSAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9i
aiksIFdFQktJVF9UWVBFX0lDT05fREFUQUJBU0UpKQotI2RlZmluZSBXRUJLSVRfSVNfSUNPTl9E
QVRBQkFTRV9DTEFTUyhrbGFzcykgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAg
V0VCS0lUX1RZUEVfSUNPTl9EQVRBQkFTRSkpCi0jZGVmaW5lIFdFQktJVF9JQ09OX0RBVEFCQVNF
X0dFVF9DTEFTUyhvYmopICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJL
SVRfVFlQRV9JQ09OX0RBVEFCQVNFLCBXZWJLaXRJY29uRGF0YWJhc2VDbGFzcykpCi0KLXR5cGVk
ZWYgc3RydWN0IF9XZWJLaXRJY29uRGF0YWJhc2VQcml2YXRlIFdlYktpdEljb25EYXRhYmFzZVBy
aXZhdGU7Ci0KLXN0cnVjdCBfV2ViS2l0SWNvbkRhdGFiYXNlIHsKLSAgICBHT2JqZWN0IHBhcmVu
dF9pbnN0YW5jZTsKLQotICAgIC8qPCBwcml2YXRlID4qLwotICAgIFdlYktpdEljb25EYXRhYmFz
ZVByaXZhdGUqIHByaXY7Ci19OwotCi1zdHJ1Y3QgX1dlYktpdEljb25EYXRhYmFzZUNsYXNzIHsK
LSAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwotCi0gICAgLyogUGFkZGluZyBmb3IgZnV0
dXJlIGV4cGFuc2lvbiAqLwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwot
ICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMykgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkNCkgKHZvaWQp
OwotfTsKLQotV0VCS0lUX0FQSSBHVHlwZQotd2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0X3R5cGUg
ICAgICAgICAgICAodm9pZCk7Ci0KLSNpZiAhZGVmaW5lZChXRUJLSVRfRElTQUJMRV9ERVBSRUNB
VEVEKQotV0VCS0lUX0FQSSBjb25zdCBnY2hhcioKLXdlYmtpdF9pY29uX2RhdGFiYXNlX2dldF9w
YXRoICAgICAgICAgICAgKFdlYktpdEljb25EYXRhYmFzZSogZGF0YWJhc2UpOwotCi1XRUJLSVRf
QVBJIHZvaWQKLXdlYmtpdF9pY29uX2RhdGFiYXNlX3NldF9wYXRoICAgICAgICAgICAgKFdlYktp
dEljb25EYXRhYmFzZSogZGF0YWJhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciogICAgICAgIHBhdGgpOwotCi1XRUJLSVRfQVBJIGdjaGFy
Kgotd2Via2l0X2ljb25fZGF0YWJhc2VfZ2V0X2ljb25fdXJpICAgICAgICAoV2ViS2l0SWNvbkRh
dGFiYXNlKiBkYXRhYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyKiAgICAgICAgcGFnZV91cmkpOwotCi1XRUJLSVRfQVBJIEdka1BpeGJ1
ZioKLXdlYmtpdF9pY29uX2RhdGFiYXNlX2dldF9pY29uX3BpeGJ1ZiAgICAgKFdlYktpdEljb25E
YXRhYmFzZSogZGF0YWJhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBnY2hhciogICAgICAgIHBhZ2VfdXJpKTsKLQotV0VCS0lUX0FQSSB2b2lkCi13
ZWJraXRfaWNvbl9kYXRhYmFzZV9jbGVhciAgICAgICAgICAgICAgIChXZWJLaXRJY29uRGF0YWJh
c2UqIGRhdGFiYXNlKTsKLSNlbmRpZgotCi1HX0VORF9ERUNMUwotCi0jZW5kaWYgLyogd2Via2l0
aWNvbmRhdGFiYXNlX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRuZXR3b3JrcmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
bmV0d29ya3JlcXVlc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNmUyOGEw
Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVx
dWVzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNywgMjAwOCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAid2Via2l0bmV0d29ya3JlcXVlc3QuaCIKLQotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVz
dC5oIgotI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCi0jaW5jbHVkZSA8Z2xpYi9n
aTE4bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0bmV0d29ya3JlcXVl
c3QKLSAqIEBzaG9ydF9kZXNjcmlwdGlvbjogVGhlIHRhcmdldCBvZiBhIG5hdmlnYXRpb24gcmVx
dWVzdAotICogQHNlZV9hbHNvOiAjV2ViS2l0V2ViVmlldzo6bmF2aWdhdGlvbi1wb2xpY3ktZGVj
aXNpb24tcmVxdWVzdGVkCi0gKgotICogVGhpcyBjbGFzcyByZXByZXNlbnRzIHRoZSBuZXR3b3Jr
IHJlbGF0ZWQgYXNwZWN0cyBvZiBhIG5hdmlnYXRpb24KLSAqIHJlcXVlc3QuIEl0IGlzIHVzZWQg
d2hlbmV2ZXIgV2ViS2l0IHdhbnRzIHRvIHByb3ZpZGUgaW5mb3JtYXRpb24KLSAqIGFib3V0IGEg
cmVxdWVzdCB0aGF0IHdpbGwgYmUgc2VudCwgb3IgaGFzIGJlZW4gc2VudC4gSW5zaWRlIGl0IHlv
dQotICogY2FuIGZpbmQgdGhlIFVSSSBvZiB0aGUgcmVxdWVzdCwgYW5kLCBmb3IgdmFsaWQgVVJJ
cywgYQotICogI1NvdXBNZXNzYWdlIG9iamVjdCwgd2hpY2ggcHJvdmlkZXMgYWNjZXNzIHRvIGZ1
cnRoZXIgaW5mb3JtYXRpb24KLSAqIHN1Y2ggYXMgaGVhZGVycy4KLSAqCi0gKi8KLQotR19ERUZJ
TkVfVFlQRShXZWJLaXROZXR3b3JrUmVxdWVzdCwgd2Via2l0X25ldHdvcmtfcmVxdWVzdCwgR19U
WVBFX09CSkVDVCk7Ci0KLXN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlIHsKLSAg
ICBnY2hhciogdXJpOwotICAgIFNvdXBNZXNzYWdlKiBtZXNzYWdlOwotfTsKLQotZW51bSB7Ci0g
ICAgUFJPUF8wLAotCi0gICAgUFJPUF9VUkksCi0gICAgUFJPUF9NRVNTQUdFLAotfTsKLQotc3Rh
dGljIHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9kaXNwb3NlKEdPYmplY3QqIG9iamVjdCkK
LXsKLSAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JF
UVVFU1Qob2JqZWN0KTsKLSAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSBy
ZXF1ZXN0LT5wcml2OwotCi0gICAgaWYgKHByaXYtPm1lc3NhZ2UpIHsKLSAgICAgICAgZ19vYmpl
Y3RfdW5yZWYocHJpdi0+bWVzc2FnZSk7Ci0gICAgICAgIHByaXYtPm1lc3NhZ2UgPSBOVUxMOwot
ICAgIH0KLQotICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfcGFyZW50
X2NsYXNzKS0+ZGlzcG9zZShvYmplY3QpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfbmV0d29y
a19yZXF1ZXN0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKLXsKLSAgICBXZWJLaXROZXR3b3Jr
UmVxdWVzdCogcmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JFUVVFU1Qob2JqZWN0KTsKLSAgICBX
ZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwotCi0gICAg
Z19mcmVlKHByaXYtPnVyaSk7Ci0KLSAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfbmV0d29ya19y
ZXF1ZXN0X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lk
IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3Vp
bnQgcHJvcGVydHlJRCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAg
V2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUKG9i
amVjdCk7Ci0KLSAgICBzd2l0Y2gocHJvcGVydHlJRCkgewotICAgIGNhc2UgUFJPUF9VUkk6Ci0g
ICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9n
ZXRfdXJpKHJlcXVlc3QpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX01FU1NBR0U6
Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X25ldHdvcmtfcmVxdWVz
dF9nZXRfbWVzc2FnZShyZXF1ZXN0KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5
SUQsIHBzcGVjKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVl
c3Rfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJRCwgY29uc3Qg
R1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0TmV0d29ya1Jl
cXVlc3QqIHJlcXVlc3QgPSBXRUJLSVRfTkVUV09SS19SRVFVRVNUKG9iamVjdCk7Ci0gICAgV2Vi
S2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKiBwcml2ID0gcmVxdWVzdC0+cHJpdjsKLQotICAgIHN3
aXRjaChwcm9wZXJ0eUlEKSB7Ci0gICAgY2FzZSBQUk9QX1VSSToKLSAgICAgICAgd2Via2l0X25l
dHdvcmtfcmVxdWVzdF9zZXRfdXJpKHJlcXVlc3QsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTUVTU0FHRToKLSAgICAgICAgcHJpdi0+
bWVzc2FnZSA9IFNPVVBfTUVTU0FHRShnX3ZhbHVlX2R1cF9vYmplY3QodmFsdWUpKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BS
T1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJRCwgcHNwZWMpOwotICAgIH0KLX0KLQotc3RhdGlj
IHZvaWQgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9jbGFzc19pbml0KFdlYktpdE5ldHdvcmtSZXF1
ZXN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKLXsKLSAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNz
ID0gR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKTsKLQotICAgIG9iamVjdENsYXNzLT5kaXNw
b3NlID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9kaXNwb3NlOwotICAgIG9iamVjdENsYXNzLT5m
aW5hbGl6ZSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZmluYWxpemU7Ci0gICAgb2JqZWN0Q2xh
c3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Byb3BlcnR5Owot
ICAgIG9iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X3Nl
dF9wcm9wZXJ0eTsKLQotICAgIHdlYmtpdEluaXQoKTsKLQotICAgIC8qKgotICAgICAqIFdlYktp
dE5ldHdvcmtSZXF1ZXN0OnVyaToKLSAgICAgKgotICAgICAqIFRoZSBVUkkgdG8gd2hpY2ggdGhl
IHJlcXVlc3Qgd2lsbCBiZSBtYWRlLgotICAgICAqCi0gICAgICogU2luY2U6IDEuMS4xMAotICAg
ICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBS
T1BfVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVj
X3N0cmluZygidXJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiVVJJIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBVUkkgdG8gd2hpY2ggdGhlIHJlcXVlc3Qg
d2lsbCBiZSBtYWRlLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoR1BhcmFtRmxhZ3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJ
VEUpKSk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXROZXR3b3JrUmVxdWVzdDptZXNzYWdlOgot
ICAgICAqCi0gICAgICogVGhlICNTb3VwTWVzc2FnZSB0aGF0IGJhY2tzIHRoZSByZXF1ZXN0Lgot
ICAgICAqCi0gICAgICogU2luY2U6IDEuMS4xMAotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfTUVTU0FHRSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoIm1lc3NhZ2UiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJNZXNzYWdlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIlRoZSBTb3VwTWVzc2FnZSB0aGF0IGJhY2tzIHRoZSByZXF1ZXN0LiIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTT1VQX1RZUEVfTUVTU0FHRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRF
fEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7Ci0KLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZh
dGUocmVxdWVzdENsYXNzLCBzaXplb2YoV2ViS2l0TmV0d29ya1JlcXVlc3RQcml2YXRlKSk7Ci19
Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfaW5pdChXZWJLaXROZXR3b3Jr
UmVxdWVzdCogcmVxdWVzdCkKLXsKLSAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHBy
aXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUocmVxdWVzdCwgV0VCS0lUX1RZUEVfTkVU
V09SS19SRVFVRVNULCBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUpOwotICAgIHJlcXVlc3Qt
PnByaXYgPSBwcml2OwotfQotCi0vKioKLSAqIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfbmV3Ogot
ICogQHVyaTogYW4gVVJJCi0gKgotICogQ3JlYXRlcyBhIG5ldyAjV2ViS2l0TmV0d29ya1JlcXVl
c3QgaW5pdGlhbGl6ZWQgd2l0aCBhbiBVUkkuCi0gKgotICogUmV0dXJuczogYSBuZXcgI1dlYktp
dE5ldHdvcmtSZXF1ZXN0LCBvciAlTlVMTCBpZiB0aGUgVVJJIGlzCi0gKiBpbnZhbGlkLgotICov
Ci1XZWJLaXROZXR3b3JrUmVxdWVzdCogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcoY29uc3Qg
Z2NoYXIqIHVyaSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCh1cmksIE5VTEwpOwotCi0g
ICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFUVVFU1QoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBF
X05FVFdPUktfUkVRVUVTVCwgInVyaSIsIHVyaSwgTlVMTCkpOwotfQotCi0vKioKLSAqIHdlYmtp
dF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaToKLSAqIEByZXF1ZXN0OiBhICNXZWJLaXROZXR3b3Jr
UmVxdWVzdAotICogQHVyaTogYW4gVVJJCi0gKgotICogU2V0cyB0aGUgVVJJIGhlbGQgYW5kIHVz
ZWQgYnkgdGhlIGdpdmVuIHJlcXVlc3QuIFdoZW4gdGhlIHJlcXVlc3QKLSAqIGhhcyBhbiBhc3Nv
Y2lhdGVkICNTb3VwTWVzc2FnZSwgaXRzIFVSSSB3aWxsIGFsc28gYmUgc2V0IGJ5IHRoaXMKLSAq
IGNhbGwuCi0gKgotICovCi12b2lkIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3Rfc2V0X3VyaShXZWJL
aXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCwgY29uc3QgZ2NoYXIqIHVyaSkKLXsKLSAgICBnX3Jl
dHVybl9pZl9mYWlsKFdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1QocmVxdWVzdCkpOwotICAgIGdf
cmV0dXJuX2lmX2ZhaWwodXJpKTsKLQotICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSog
cHJpdiA9IHJlcXVlc3QtPnByaXY7Ci0KLSAgICBpZiAocHJpdi0+dXJpKQotICAgICAgICBnX2Zy
ZWUocHJpdi0+dXJpKTsKLSAgICBwcml2LT51cmkgPSBnX3N0cmR1cCh1cmkpOwotCi0gICAgaWYg
KCFwcml2LT5tZXNzYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTb3VwVVJJKiBzb3VwVVJJ
ID0gc291cF91cmlfbmV3KHVyaSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChzb3VwVVJJKTsKLQot
ICAgIHNvdXBfbWVzc2FnZV9zZXRfdXJpKHByaXYtPm1lc3NhZ2UsIHNvdXBVUkkpOwotICAgIHNv
dXBfdXJpX2ZyZWUoc291cFVSSSk7Ci19Ci0KLS8qKgotICogd2Via2l0X25ldHdvcmtfcmVxdWVz
dF9nZXRfdXJpOgotICogQHJlcXVlc3Q6IGEgI1dlYktpdE5ldHdvcmtSZXF1ZXN0Ci0gKgotICog
UmV0dXJuczogdGhlIFVSSSBvZiB0aGUgI1dlYktpdE5ldHdvcmtSZXF1ZXN0Ci0gKgotICogU2lu
Y2U6IDEuMC4wCi0gKi8KLWNvbnN0IGdjaGFyKiB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91
cmkoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVTVChyZXF1ZXN0KSwgTlVMTCk7Ci0KLSAgICBX
ZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHByaXYgPSByZXF1ZXN0LT5wcml2OwotCi0gICAg
aWYgKHByaXYtPnVyaSkKLSAgICAgICAgcmV0dXJuIHByaXYtPnVyaTsKLQotICAgIFNvdXBVUkkq
IHNvdXBVUkkgPSBzb3VwX21lc3NhZ2VfZ2V0X3VyaShwcml2LT5tZXNzYWdlKTsKLSAgICBwcml2
LT51cmkgPSBzb3VwX3VyaV90b19zdHJpbmcoc291cFVSSSwgRkFMU0UpOwotICAgIHJldHVybiBw
cml2LT51cmk7Ci19Ci0KLS8qKgotICogd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2Fn
ZToKLSAqIEByZXF1ZXN0OiBhICNXZWJLaXROZXR3b3JrUmVxdWVzdAotICoKLSAqIE9idGFpbnMg
dGhlICNTb3VwTWVzc2FnZSBoZWxkIGFuZCB1c2VkIGJ5IHRoZSBnaXZlbiByZXF1ZXN0LiBOb3Rp
Y2UKLSAqIHRoYXQgbW9kaWZpY2F0aW9uIG9mIHRoZSBTb3VwTWVzc2FnZSBvZiBhIHJlcXVlc3Qg
Ynkgc2lnbmFsCi0gKiBoYW5kbGVycyBpcyBvbmx5IHN1cHBvcnRlZCAoYXMgaW4sIHdpbGwgb25s
eSBhZmZlY3Qgd2hhdCBpcwotICogYWN0dWFsbHkgc2VudCB0byB0aGUgc2VydmVyKSB3aGVyZSBl
eHBsaWNpdGx5IGRvY3VtZW50ZWQuCi0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiB0
aGUgI1NvdXBNZXNzYWdlCi0gKiBTaW5jZTogMS4xLjkKLSAqLwotU291cE1lc3NhZ2UqIHdlYmtp
dF9uZXR3b3JrX3JlcXVlc3RfZ2V0X21lc3NhZ2UoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVl
c3QpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX05FVFdPUktfUkVRVUVT
VChyZXF1ZXN0KSwgTlVMTCk7Ci0KLSAgICBXZWJLaXROZXR3b3JrUmVxdWVzdFByaXZhdGUqIHBy
aXYgPSByZXF1ZXN0LT5wcml2OwotCi0gICAgcmV0dXJuIHByaXYtPm1lc3NhZ2U7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1XZWJLaXROZXR3b3JrUmVxdWVzdCoga2l0TmV3KGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQotewotICAgIEdSZWZQdHI8
U291cE1lc3NhZ2U+IHNvdXBNZXNzYWdlKGFkb3B0R1JlZihyZXNvdXJjZVJlcXVlc3QudG9Tb3Vw
TWVzc2FnZSgpKSk7Ci0gICAgaWYgKHNvdXBNZXNzYWdlKQotICAgICAgICByZXR1cm4gV0VCS0lU
X05FVFdPUktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNU
LCAibWVzc2FnZSIsIHNvdXBNZXNzYWdlLmdldCgpLCBOVUxMKSk7Ci0KLSAgICByZXR1cm4gV0VC
S0lUX05FVFdPUktfUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTkVUV09SS19SRVFV
RVNULCAidXJpIiwgcmVzb3VyY2VSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IE5VTEwpKTsKLX0KLQotV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvcmUoV2ViS2l0TmV0d29y
a1JlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gd2Vi
a2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZShyZXF1ZXN0KTsKLSAgICBpZiAoc291cE1l
c3NhZ2UpCi0gICAgICAgIHJldHVybiBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qoc291cE1lc3Nh
Z2UpOwotCi0gICAgV2ViQ29yZTo6VVJMIHVybCA9IFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwo
KSwgU3RyaW5nOjpmcm9tVVRGOCh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkocmVxdWVz
dCkpKTsKLSAgICByZXR1cm4gV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0KHVybCk7Ci19Ci0KLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVz
dC5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ZTc5NjYuLjAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0LmgKKysrIC9kZXYvbnVsbApA
QCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBl
dGVyIEZyZXl0aGVyCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0bmV0d29ya3JlcXVlc3RfaAotI2RlZmluZSB3ZWJr
aXRuZXR3b3JrcmVxdWVzdF9oCi0KLSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUg
PGxpYnNvdXAvc291cC5oPgotCi0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KLQot
R19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCAgICAg
ICAgICAgICh3ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF90eXBlKCkpCi0jZGVmaW5lIFdFQktJ
VF9ORVRXT1JLX1JFUVVFU1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCBXZWJLaXROZXR3b3JrUmVx
dWVzdCkpCi0jZGVmaW5lIFdFQktJVF9ORVRXT1JLX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVFV
RVNULCBXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX05FVFdP
UktfUkVRVUVTVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmop
LCBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1QpKQotI2RlZmluZSBXRUJLSVRfSVNfTkVUV09S
S19SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwg
IFdFQktJVF9UWVBFX05FVFdPUktfUkVRVUVTVCkpCi0jZGVmaW5lIFdFQktJVF9ORVRXT1JLX1JF
UVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAg
V0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULCBXZWJLaXROZXR3b3JrUmVxdWVzdENsYXNzKSkK
LQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXF1ZXN0UHJpdmF0ZSBXZWJLaXROZXR3
b3JrUmVxdWVzdFByaXZhdGU7Ci0KLXN0cnVjdCBfV2ViS2l0TmV0d29ya1JlcXVlc3QgewotICAg
IEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwotCi0gICAgLyo8IHByaXZhdGUgPiovCi0gICAgV2Vi
S2l0TmV0d29ya1JlcXVlc3RQcml2YXRlICpwcml2OwotfTsKLQotc3RydWN0IF9XZWJLaXROZXR3
b3JrUmVxdWVzdENsYXNzIHsKLSAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwotCi0gICAg
LyogUGFkZGluZyBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLwotICAgIHZvaWQgKCpfd2Via2l0X3Jl
c2VydmVkMCkgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwot
ICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMykgKHZvaWQpOwotfTsKLQotV0VCS0lUX0FQSSBHVHlwZQotd2Via2l0X25ldHdv
cmtfcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0TmV0d29ya1Jl
cXVlc3QgKgotd2Via2l0X25ldHdvcmtfcmVxdWVzdF9uZXcgICAgICAoY29uc3QgZ2NoYXIgICAg
ICAgICAgKnVyaSk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X25ldHdvcmtfcmVxdWVzdF9z
ZXRfdXJpICAoV2ViS2l0TmV0d29ya1JlcXVlc3QgKnJlcXVlc3QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogICAgICAgICAgdXJpKTsKLQotV0VCS0lUX0FQ
SSBjb25zdCBnY2hhciAqCi13ZWJraXRfbmV0d29ya19yZXF1ZXN0X2dldF91cmkgIChXZWJLaXRO
ZXR3b3JrUmVxdWVzdCAqcmVxdWVzdCk7Ci0KLVdFQktJVF9BUEkgU291cE1lc3NhZ2UgKgotd2Vi
a2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZShXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVx
dWVzdCk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4NGI0NTkzLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdHByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0x
LDMzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2Vy
IEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBD
LiBBbG9uem8KLSAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJp
Z2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0bmV0d29ya3JlcXVlc3Rwcml2
YXRlX2gKLSNkZWZpbmUgd2Via2l0bmV0d29ya3JlcXVlc3Rwcml2YXRlX2gKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLVdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb3JlKFdlYktpdE5ldHdvcmtS
ZXF1ZXN0Kik7Ci1XZWJLaXROZXR3b3JrUmVxdWVzdCoga2l0TmV3KGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNWViODU1Ni4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0bmV0d29ya3Jlc3BvbnNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMyMiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0
aGVyCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR3VzdGF2byBOb3JvbmhhIFNpbHZhCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDkgQ29sbGFib3JhIEx0ZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZS5oIgotCi0jaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25z
ZS5oIgotI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0
bmV0d29ya3Jlc3BvbnNlcHJpdmF0ZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0j
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotLyoqCi0gKiBTRUNUSU9OOndlYmtp
dG5ldHdvcmtyZXNwb25zZQotICogQHNob3J0X2Rlc2NyaXB0aW9uOiB0aGUgcmVzcG9uc2UgZ2l2
ZW4gdG8gYSBuZXR3b3JrIHJlcXVlc3QKLSAqIEBzZWVfYWxzbzogI1dlYktpdE5ldHdvcmtSZXF1
ZXN0Ci0gKgotICogVGhpcyBjbGFzcyByZXByZXNlbnRzIHRoZSBuZXR3b3JrIHJlbGF0ZWQgYXNw
ZWN0cyBvZiBhIG5hdmlnYXRpb24KLSAqIHJlc3BvbnNlLgotICoKLSAqIFNpbmNlOiAxLjEuMTQK
LSAqLwotCi1HX0RFRklORV9UWVBFKFdlYktpdE5ldHdvcmtSZXNwb25zZSwgd2Via2l0X25ldHdv
cmtfcmVzcG9uc2UsIEdfVFlQRV9PQkpFQ1QpOwotCi1zdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXNw
b25zZVByaXZhdGUgewotICAgIGdjaGFyKiB1cmk7Ci0gICAgZ2NoYXIqIHN1Z2dlc3RlZEZpbGVu
YW1lOwotICAgIFNvdXBNZXNzYWdlKiBtZXNzYWdlOwotfTsKLQotI2RlZmluZSBXRUJLSVRfTkVU
V09SS19SRVNQT05TRV9HRVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZB
VEUoKG9iaiksIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UsIFdlYktpdE5ldHdvcmtSZXNw
b25zZVByaXZhdGUpKQotCi1lbnVtIHsKLSAgICBQUk9QXzAsCi0KLSAgICBQUk9QX1VSSSwKLSAg
ICBQUk9QX01FU1NBR0UsCi0gICAgUFJPUF9TVUdHRVNURURfRklMRU5BTUUsCi19OwotCi1zdGF0
aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXNwb25zZV9kaXNwb3NlKEdPYmplY3QqIG9iamVjdCkK
LXsKLSAgICBXZWJLaXROZXR3b3JrUmVzcG9uc2UqIHJlc3BvbnNlID0gV0VCS0lUX05FVFdPUktf
UkVTUE9OU0Uob2JqZWN0KTsKLSAgICBXZWJLaXROZXR3b3JrUmVzcG9uc2VQcml2YXRlKiBwcml2
ID0gcmVzcG9uc2UtPnByaXY7Ci0KLSAgICBpZiAocHJpdi0+bWVzc2FnZSkgewotICAgICAgICBn
X29iamVjdF91bnJlZihwcml2LT5tZXNzYWdlKTsKLSAgICAgICAgcHJpdi0+bWVzc2FnZSA9IE5V
TEw7Ci0gICAgfQotCi0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X25ldHdvcmtfcmVzcG9uc2Vf
cGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3QpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRf
bmV0d29ya19yZXNwb25zZV9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgV2ViS2l0
TmV0d29ya1Jlc3BvbnNlKiByZXNwb25zZSA9IFdFQktJVF9ORVRXT1JLX1JFU1BPTlNFKG9iamVj
dCk7Ci0gICAgV2ViS2l0TmV0d29ya1Jlc3BvbnNlUHJpdmF0ZSogcHJpdiA9IHJlc3BvbnNlLT5w
cml2OwotCi0gICAgZ19mcmVlKHByaXYtPnVyaSk7Ci0gICAgZ19mcmVlKHByaXYtPnN1Z2dlc3Rl
ZEZpbGVuYW1lKTsKLQotICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNl
X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtp
dF9uZXR3b3JrX3Jlc3BvbnNlX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBy
b3BlcnR5SUQsIEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKQotewotICAgIFdlYktp
dE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2UgPSBXRUJLSVRfTkVUV09SS19SRVNQT05TRShvYmpl
Y3QpOwotCi0gICAgc3dpdGNoKHByb3BlcnR5SUQpIHsKLSAgICBjYXNlIFBST1BfVVJJOgotICAg
ICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dl
dF91cmkocmVzcG9uc2UpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX01FU1NBR0U6
Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X25ldHdvcmtfcmVzcG9u
c2VfZ2V0X21lc3NhZ2UocmVzcG9uc2UpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X1NVR0dFU1RFRF9GSUxFTkFNRToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3
ZWJraXRfbmV0d29ya19yZXNwb25zZV9nZXRfc3VnZ2VzdGVkX2ZpbGVuYW1lKHJlc3BvbnNlKSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SUQsIHBzcGVjKTsKLSAgICB9Ci19Ci0K
LXN0YXRpYyB2b2lkIHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX3NldF9wcm9wZXJ0eShHT2JqZWN0
KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SUQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNw
ZWMqIHBzcGVjKQotewotICAgIFdlYktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2UgPSBXRUJL
SVRfTkVUV09SS19SRVNQT05TRShvYmplY3QpOwotICAgIFdlYktpdE5ldHdvcmtSZXNwb25zZVBy
aXZhdGUqIHByaXYgPSByZXNwb25zZS0+cHJpdjsKLQotICAgIHN3aXRjaChwcm9wZXJ0eUlEKSB7
Ci0gICAgY2FzZSBQUk9QX1VSSToKLSAgICAgICAgd2Via2l0X25ldHdvcmtfcmVzcG9uc2Vfc2V0
X3VyaShyZXNwb25zZSwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUFJPUF9NRVNTQUdFOgotICAgICAgICBwcml2LT5tZXNzYWdlID0gU09VUF9N
RVNTQUdFKGdfdmFsdWVfZHVwX29iamVjdCh2YWx1ZSkpOwotICAgICAgICBicmVhazsKLSAgICBk
ZWZhdWx0OgotICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0
LCBwcm9wZXJ0eUlELCBwc3BlYyk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfbmV0
d29ya19yZXNwb25zZV9jbGFzc19pbml0KFdlYktpdE5ldHdvcmtSZXNwb25zZUNsYXNzKiByZXNw
b25zZUNsYXNzKQotewotICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9D
TEFTUyhyZXNwb25zZUNsYXNzKTsKLQotICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0
X25ldHdvcmtfcmVzcG9uc2VfZGlzcG9zZTsKLSAgICBvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3
ZWJraXRfbmV0d29ya19yZXNwb25zZV9maW5hbGl6ZTsKLSAgICBvYmplY3RDbGFzcy0+Z2V0X3By
b3BlcnR5ID0gd2Via2l0X25ldHdvcmtfcmVzcG9uc2VfZ2V0X3Byb3BlcnR5OwotICAgIG9iamVj
dENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRfbmV0d29ya19yZXNwb25zZV9zZXRfcHJvcGVy
dHk7Ci0KLSAgICB3ZWJraXRJbml0KCk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXROZXR3b3Jr
UmVzcG9uc2U6dXJpOgotICAgICAqCi0gICAgICogVGhlIFVSSSB0byB3aGljaCB0aGUgcmVzcG9u
c2Ugd2lsbCBiZSBtYWRlLgotICAgICAqCi0gICAgICogU2luY2U6IDEuMS4xNAotICAgICAqLwot
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfVVJJ
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmlu
ZygidXJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiVVJJIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIlRoZSBVUkkgdG8gd2hpY2ggdGhlIHJlc3BvbnNlIHdpbGwg
YmUgbWFkZS4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKShXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSkp
OwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0TmV0d29ya1Jlc3BvbnNlOm1lc3NhZ2U6Ci0gICAg
ICoKLSAgICAgKiBUaGUgI1NvdXBNZXNzYWdlIHRoYXQgYmFja3MgdGhlIHJlc3BvbnNlLgotICAg
ICAqCi0gICAgICogU2luY2U6IDEuMS4xNAotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfTUVTU0FHRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoIm1lc3NhZ2UiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJN
ZXNzYWdlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF8oIlRoZSBTb3VwTWVzc2FnZSB0aGF0IGJhY2tzIHRoZSByZXNwb25zZS4iKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U09VUF9UWVBFX01FU1NBR0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURXxH
X1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0TmV0d29y
a1Jlc3BvbnNlOnN1Z2dlc3RlZC1maWxlbmFtZToKLSAgICAgKgotICAgICAqIFRoZSBzdWdnZXN0
ZWQgZmlsZW5hbWUgZm9yIHRoZSByZXNwb25zZS4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEw
Ci0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFz
cywgUFJPUF9TVUdHRVNURURfRklMRU5BTUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJzdWdnZXN0ZWQtZmlsZW5hbWUiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJTdWdn
ZXN0ZWQgZmlsZW5hbWUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXygiVGhlIHN1Z2dlc3RlZCBmaWxlbmFtZSBmb3IgdGhlIHJlc3Bv
bnNlLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfdHlwZV9jbGFzc19h
ZGRfcHJpdmF0ZShyZXNwb25zZUNsYXNzLCBzaXplb2YoV2ViS2l0TmV0d29ya1Jlc3BvbnNlUHJp
dmF0ZSkpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfbmV0d29ya19yZXNwb25zZV9pbml0KFdl
YktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2UpCi17Ci0gICAgcmVzcG9uc2UtPnByaXYgPSBX
RUJLSVRfTkVUV09SS19SRVNQT05TRV9HRVRfUFJJVkFURShyZXNwb25zZSk7Ci19Ci0KLS8qKgot
ICogd2Via2l0X25ldHdvcmtfcmVzcG9uc2VfbmV3OgotICogQHVyaTogYW4gVVJJCi0gKgotICog
Q3JlYXRlcyBhIG5ldyAjV2ViS2l0TmV0d29ya1Jlc3BvbnNlIGluaXRpYWxpemVkIHdpdGggYW4g
VVJJLgotICoKLSAqIFJldHVybnM6IGEgbmV3ICNXZWJLaXROZXR3b3JrUmVzcG9uc2UsIG9yICVO
VUxMIGlmIHRoZSBVUkkgaXMKLSAqIGludmFsaWQuCi0gKgotICogU2luY2U6IDEuMS4xNAotICov
Ci1XZWJLaXROZXR3b3JrUmVzcG9uc2UqIHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX25ldyhjb25z
dCBnY2hhciogdXJpKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHVyaSwgTlVMTCk7Ci0K
LSAgICByZXR1cm4gV0VCS0lUX05FVFdPUktfUkVTUE9OU0UoZ19vYmplY3RfbmV3KFdFQktJVF9U
WVBFX05FVFdPUktfUkVTUE9OU0UsICJ1cmkiLCB1cmksIE5VTEwpKTsKLX0KLQotLyoqCi0gKiB3
ZWJraXRfbmV0d29ya19yZXNwb25zZV9zZXRfdXJpOgotICogQHJlc3BvbnNlOiBhICNXZWJLaXRO
ZXR3b3JrUmVzcG9uc2UKLSAqIEB1cmk6IGFuIFVSSQotICoKLSAqIFNldHMgdGhlIFVSSSBoZWxk
IGFuZCB1c2VkIGJ5IHRoZSBnaXZlbiByZXNwb25zZS4gV2hlbiB0aGUgcmVzcG9uc2UKLSAqIGhh
cyBhbiBhc3NvY2lhdGVkICNTb3VwTWVzc2FnZSwgaXRzIFVSSSB3aWxsIGFsc28gYmUgc2V0IGJ5
IHRoaXMKLSAqIGNhbGwuCi0gKgotICogU2luY2U6IDEuMS4xNAotICovCi12b2lkIHdlYmtpdF9u
ZXR3b3JrX3Jlc3BvbnNlX3NldF91cmkoV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiByZXNwb25zZSwg
Y29uc3QgZ2NoYXIqIHVyaSkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19ORVRX
T1JLX1JFU1BPTlNFKHJlc3BvbnNlKSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCh1cmkpOwotCi0g
ICAgV2ViS2l0TmV0d29ya1Jlc3BvbnNlUHJpdmF0ZSogcHJpdiA9IHJlc3BvbnNlLT5wcml2Owot
Ci0gICAgaWYgKHByaXYtPnVyaSkKLSAgICAgICAgZ19mcmVlKHByaXYtPnVyaSk7Ci0gICAgcHJp
di0+dXJpID0gZ19zdHJkdXAodXJpKTsKLQotICAgIGlmICghcHJpdi0+bWVzc2FnZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgU291cFVSSSogc291cFVSSSA9IHNvdXBfdXJpX25ldyh1cmkpOwot
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoc291cFVSSSk7Ci0KLSAgICBzb3VwX21lc3NhZ2Vfc2V0X3Vy
aShwcml2LT5tZXNzYWdlLCBzb3VwVVJJKTsKLSAgICBzb3VwX3VyaV9mcmVlKHNvdXBVUkkpOwot
fQotCi0vKioKLSAqIHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dldF91cmk6Ci0gKiBAcmVzcG9u
c2U6IGEgI1dlYktpdE5ldHdvcmtSZXNwb25zZQotICoKLSAqIFJldHVybnM6IHRoZSBVUkkgb2Yg
dGhlICNXZWJLaXROZXR3b3JrUmVzcG9uc2UKLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLWNv
bnN0IGdjaGFyKiB3ZWJraXRfbmV0d29ya19yZXNwb25zZV9nZXRfdXJpKFdlYktpdE5ldHdvcmtS
ZXNwb25zZSogcmVzcG9uc2UpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lT
X05FVFdPUktfUkVTUE9OU0UocmVzcG9uc2UpLCBOVUxMKTsKLQotICAgIFdlYktpdE5ldHdvcmtS
ZXNwb25zZVByaXZhdGUqIHByaXYgPSByZXNwb25zZS0+cHJpdjsKLQotICAgIGlmIChwcml2LT51
cmkpCi0gICAgICAgIHJldHVybiBwcml2LT51cmk7Ci0KLSAgICBTb3VwVVJJKiBzb3VwVVJJID0g
c291cF9tZXNzYWdlX2dldF91cmkocHJpdi0+bWVzc2FnZSk7Ci0gICAgcHJpdi0+dXJpID0gc291
cF91cmlfdG9fc3RyaW5nKHNvdXBVUkksIEZBTFNFKTsKLSAgICByZXR1cm4gcHJpdi0+dXJpOwot
fQotCi0vKioKLSAqIHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dldF9tZXNzYWdlOgotICogQHJl
c3BvbnNlOiBhICNXZWJLaXROZXR3b3JrUmVzcG9uc2UKLSAqCi0gKiBPYnRhaW5zIHRoZSAjU291
cE1lc3NhZ2UgdGhhdCByZXByZXNlbnRzIHRoZSBnaXZlbiByZXNwb25zZS4gTm90aWNlCi0gKiB0
aGF0IG9ubHkgdGhlIHJlc3BvbnNlIHNpZGUgb2YgdGhlIEhUVFAgY29udmVyc2F0aW9uIGlzCi0g
KiByZXByZXNlbnRlZC4KLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IHRoZSAjU291
cE1lc3NhZ2UKLSAqIFNpbmNlOiAxLjEuMTQKLSAqLwotU291cE1lc3NhZ2UqIHdlYmtpdF9uZXR3
b3JrX3Jlc3BvbnNlX2dldF9tZXNzYWdlKFdlYktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2Up
Ci17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX05FVFdPUktfUkVTUE9OU0Uo
cmVzcG9uc2UpLCBOVUxMKTsKLQotICAgIFdlYktpdE5ldHdvcmtSZXNwb25zZVByaXZhdGUqIHBy
aXYgPSByZXNwb25zZS0+cHJpdjsKLQotICAgIHJldHVybiBwcml2LT5tZXNzYWdlOwotfQotCi0v
KioKLSAqIHdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dldF9zdWdnZXN0ZWRfZmlsZW5hbWU6Ci0g
KiBAcmVzcG9uc2U6IGEgI1dlYktpdE5ldHdvcmtSZXNwb25zZQotICoKLSAqIE9idGFpbnMgdGhl
IHN1Z2dlc3RlZCBmaWxlbmFtZSBmb3IgdGhlIGdpdmVuIG5ldHdvcmsgcmVzcG9uc2UuIFRoZQot
ICogc3VnZ2VzdGVkIGZpbGVuYW1lIGlzIHRha2VuIGZyb20gdGhlICdDb250ZW50LURpc3Bvc2l0
aW9uJyBIVFRQCi0gKiBoZWFkZXIsIGJ1dCB0aGlzIGlzIG5vdCBhbHdheXMgcHJlc2VudCwgYW5k
IHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuCi0gKiAlTlVMTCBpbiBzdWNoIGNhc2UuCi0gKgotICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiB0aGUgc3VnZ2VzdGVkIGZpbGVuYW1lIG9yICVOVUxM
IGlmIG5vdCBwcmVzZW50Ci0gKiBTaW5jZTogMS4xMAotICoqLwotY29uc3QgZ2NoYXIqIHdlYmtp
dF9uZXR3b3JrX3Jlc3BvbnNlX2dldF9zdWdnZXN0ZWRfZmlsZW5hbWUoV2ViS2l0TmV0d29ya1Jl
c3BvbnNlKiByZXNwb25zZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
TkVUV09SS19SRVNQT05TRShyZXNwb25zZSksIDApOwotCi0gICAgV2ViS2l0TmV0d29ya1Jlc3Bv
bnNlUHJpdmF0ZSogcHJpdiA9IHJlc3BvbnNlLT5wcml2OwotCi0gICAgaWYgKHByaXYtPnN1Z2dl
c3RlZEZpbGVuYW1lKQotICAgICAgICByZXR1cm4gcHJpdi0+c3VnZ2VzdGVkRmlsZW5hbWU7Ci0K
LSAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIGNvcmVSZXNwb25zZSA9IGNvcmUocmVzcG9u
c2UpOwotICAgIHByaXYtPnN1Z2dlc3RlZEZpbGVuYW1lID0gZ19zdHJkdXAoY29yZVJlc3BvbnNl
LnN1Z2dlc3RlZEZpbGVuYW1lKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHByaXYtPnN1
Z2dlc3RlZEZpbGVuYW1lOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSBjb3JlKFdlYktpdE5ldHdvcmtSZXNwb25zZSogcmVzcG9uc2UpCi17Ci0g
ICAgU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlID0gd2Via2l0X25ldHdvcmtfcmVzcG9uc2VfZ2V0
X21lc3NhZ2UocmVzcG9uc2UpOwotICAgIGlmIChzb3VwTWVzc2FnZSkKLSAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Uoc291cE1lc3NhZ2UpOwotCi0gICAgcmV0dXJuIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UoKTsKLX0KLQotV2ViS2l0TmV0d29ya1Jlc3BvbnNlKiBr
aXROZXcoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzb3VyY2VSZXNwb25zZSkK
LXsKLSAgICBHUmVmUHRyPFNvdXBNZXNzYWdlPiBzb3VwTWVzc2FnZShhZG9wdEdSZWYocmVzb3Vy
Y2VSZXNwb25zZS50b1NvdXBNZXNzYWdlKCkpKTsKLSAgICBpZiAoc291cE1lc3NhZ2UpCi0gICAg
ICAgIHJldHVybiBXRUJLSVRfTkVUV09SS19SRVNQT05TRShnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfTkVUV09SS19SRVNQT05TRSwgIm1lc3NhZ2UiLCBzb3VwTWVzc2FnZS5nZXQoKSwgTlVMTCkp
OwotCi0gICAgcmV0dXJuIFdFQktJVF9ORVRXT1JLX1JFU1BPTlNFKGdfb2JqZWN0X25ldyhXRUJL
SVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFLCAidXJpIiwgcmVzb3VyY2VSZXNwb25zZS51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBOVUxMKSk7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2UuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzU5YjMzMi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0bmV0d29ya3Jlc3BvbnNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IENvbGxhYm9yYSBMdGQuCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgot
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0
bmV3dG9ya3Jlc3BvbnNlX2gKLSNkZWZpbmUgd2Via2l0bmV3dG9ya3Jlc3BvbnNlX2gKLQotI2lu
Y2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0jaW5jbHVkZSA8bGlic291cC9zb3VwLmg+Ci0KLSNpbmNs
dWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotCi1HX0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUg
V0VCS0lUX1RZUEVfTkVUV09SS19SRVNQT05TRSAgICAgICAgICAgICh3ZWJraXRfbmV0d29ya19y
ZXNwb25zZV9nZXRfdHlwZSgpKQotI2RlZmluZSBXRUJLSVRfTkVUV09SS19SRVNQT05TRShvYmop
ICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQ
RV9ORVRXT1JLX1JFU1BPTlNFLCBXZWJLaXROZXR3b3JrUmVzcG9uc2UpKQotI2RlZmluZSBXRUJL
SVRfTkVUV09SS19SRVNQT05TRV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19D
QVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFU1BPTlNFLCBXZWJLaXROZXR3b3Jr
UmVzcG9uc2VDbGFzcykpCi0jZGVmaW5lIFdFQktJVF9JU19ORVRXT1JLX1JFU1BPTlNFKG9iaikg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX05F
VFdPUktfUkVTUE9OU0UpKQotI2RlZmluZSBXRUJLSVRfSVNfTkVUV09SS19SRVNQT05TRV9DTEFT
UyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9O
RVRXT1JLX1JFU1BPTlNFKSkKLSNkZWZpbmUgV0VCS0lUX05FVFdPUktfUkVTUE9OU0VfR0VUX0NM
QVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVf
TkVUV09SS19SRVNQT05TRSwgV2ViS2l0TmV0d29ya1Jlc3BvbnNlQ2xhc3MpKQotCi10eXBlZGVm
IHN0cnVjdCBfV2ViS2l0TmV0d29ya1Jlc3BvbnNlUHJpdmF0ZSBXZWJLaXROZXR3b3JrUmVzcG9u
c2VQcml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdE5ldHdvcmtSZXNwb25zZSB7Ci0gICAgR09iamVj
dCBwYXJlbnRfaW5zdGFuY2U7Ci0KLSAgICAvKjwgcHJpdmF0ZSA+Ki8KLSAgICBXZWJLaXROZXR3
b3JrUmVzcG9uc2VQcml2YXRlICpwcml2OwotfTsKLQotc3RydWN0IF9XZWJLaXROZXR3b3JrUmVz
cG9uc2VDbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIC8qIFBh
ZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDApICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDMpICh2b2lkKTsKLX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF9uZXR3b3JrX3Jl
c3BvbnNlX2dldF90eXBlICh2b2lkKTsKLQotV0VCS0lUX0FQSSBXZWJLaXROZXR3b3JrUmVzcG9u
c2UgKgotd2Via2l0X25ldHdvcmtfcmVzcG9uc2VfbmV3ICAgICAgKGNvbnN0IGdjaGFyICAgICAg
ICAgICp1cmkpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX3Nl
dF91cmkgIChXZWJLaXROZXR3b3JrUmVzcG9uc2UgKnJlc3BvbnNlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiAgICAgICAgICB1cmkpOwotCi1XRUJLSVRf
QVBJIGNvbnN0IGdjaGFyICoKLXdlYmtpdF9uZXR3b3JrX3Jlc3BvbnNlX2dldF91cmkgIChXZWJL
aXROZXR3b3JrUmVzcG9uc2UgKnJlc3BvbnNlKTsKLQotV0VCS0lUX0FQSSBTb3VwTWVzc2FnZSAq
Ci13ZWJraXRfbmV0d29ya19yZXNwb25zZV9nZXRfbWVzc2FnZShXZWJLaXROZXR3b3JrUmVzcG9u
c2UqIHJlc3BvbnNlKTsKLQotV0VCS0lUX0FQSSBjb25zdCBjaGFyICoKLXdlYmtpdF9uZXR3b3Jr
X3Jlc3BvbnNlX2dldF9zdWdnZXN0ZWRfZmlsZW5hbWUoV2ViS2l0TmV0d29ya1Jlc3BvbnNlICpy
ZXNwb25zZSk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRuZXR3b3JrcmVzcG9uc2Vwcml2YXRlLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiMzhhNTAuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGUuaAorKysgL2Rldi9udWxs
CkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkg
SG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWlj
aGFlbCBDLiBBbG9uem8KLSAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICog
Q29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0bmV0d29ya3Jlc3Bv
bnNlcHJpdmF0ZV9oCi0jZGVmaW5lIHdlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGVfaAotCi0j
aW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSBjb3JlKFdlYktpdE5ldHdvcmtSZXNwb25zZSopOwotV2Vi
S2l0TmV0d29ya1Jlc3BvbnNlKiBraXROZXcoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHNlY3VyaXR5b3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRzZWN1cml0eW9yaWdpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxNzRi
YTUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5
b3JpZ2luLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQyNSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA5IE1hcnRpbiBSb2JpbnNvbiwgSmFuIE1pY2hhZWwgQy4gQWxvbnpvCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbi5oIgotCi0jaW5j
bHVkZSAiRGF0YWJhc2VNYW5hZ2VyLmgiCi0jaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUu
aCIKLSNpbmNsdWRlICJ3ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCIKLSNpbmNsdWRlIDxn
bGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotLyoqCi0gKiBTRUNUSU9OOndlYmtpdHNlY3VyaXR5
b3JpZ2luCi0gKiBAc2hvcnRfZGVzY3JpcHRpb246IEEgc2VjdXJpdHkgYm91bmRhcnkgZm9yIHdl
YiBzaXRlcwotICoKLSAqICNXZWJLaXRTZWN1cml0eU9yaWdpbiBpcyBhIHJlcHJlc2VudGF0aW9u
IG9mIGEgc2VjdXJpdHkgZG9tYWluIGRlZmluZWQKLSAqIGJ5IHdlYiBzaXRlcy4gQW4gb3JpZ2lu
IGNvbnNpc3RzIG9mIGEgaG9zdCBuYW1lLCBhIHByb3RvY29sLCBhbmQgYSBwb3J0Ci0gKiBudW1i
ZXIuIFdlYiBzaXRlcyB3aXRoIHRoZSBzYW1lIHNlY3VyaXR5IG9yaWdpbiBjYW4gYWNjZXNzIGVh
Y2ggb3RoZXIncwotICogcmVzb3VyY2VzIGZvciBjbGllbnQtc2lkZSBzY3JpcHRpbmcgb3IgZGF0
YWJhc2UgYWNjZXNzLgotICoKLSAqIFVzZSAjd2Via2l0X3dlYl9mcmFtZV9nZXRfc2VjdXJpdHlf
b3JpZ2luIHRvIGdldCB0aGUgc2VjdXJpdHkgb3JpZ2luIG9mIGEKLSAqICNXZWJLaXRXZWJGcmFt
ZS4KLSAqCi0gKiBEYXRhYmFzZSBxdW90YXMgYW5kIHVzYWdlcyBhcmUgYWxzbyBkZWZpbmVkIHBl
ciBzZWN1cml0eSBvcmlnaW4uIFRoZQotICogY3VtdWxhdGl2ZSBkaXNrIHVzYWdlIG9mIGFuIG9y
aWdpbidzIGRhdGFiYXNlcyBtYXkgYmUgcmV0cmlldmVkIHdpdGgKLSAqICN3ZWJraXRfc2VjdXJp
dHlfb3JpZ2luX2dldF93ZWJfZGF0YWJhc2VfdXNhZ2UuIEFuIG9yaWdpbidzIHF1b3RhIGNhbiBi
ZQotICogYWRqdXN0ZWQgd2l0aCAjd2Via2l0X3NlY3VyaXR5X29yaWdpbl9zZXRfd2ViX2RhdGFi
YXNlX3F1b3RhLgotICovCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLWVudW0gewotICAg
IFBST1BfMCwKLQotICAgIFBST1BfUFJPVE9DT0wsCi0gICAgUFJPUF9IT1NULAotICAgIFBST1Bf
UE9SVCwKLSAgICBQUk9QX0RBVEFCQVNFX1VTQUdFLAotICAgIFBST1BfREFUQUJBU0VfUVVPVEEK
LX07Ci0KLUdfREVGSU5FX1RZUEUoV2ViS2l0U2VjdXJpdHlPcmlnaW4sIHdlYmtpdF9zZWN1cml0
eV9vcmlnaW4sIEdfVFlQRV9PQkpFQ1QpCi0KLXN0YXRpYyB2b2lkIHdlYmtpdF9zZWN1cml0eV9v
cmlnaW5fZmluYWxpemUoR09iamVjdCogb2JqZWN0KQotewotICAgIFdlYktpdFNlY3VyaXR5T3Jp
Z2luKiBzZWN1cml0eU9yaWdpbiA9IFdFQktJVF9TRUNVUklUWV9PUklHSU4ob2JqZWN0KTsKLSAg
ICBXZWJLaXRTZWN1cml0eU9yaWdpblByaXZhdGUqIHByaXYgPSBzZWN1cml0eU9yaWdpbi0+cHJp
djsKLQotICAgIGdfZnJlZShwcml2LT5wcm90b2NvbCk7Ci0gICAgZ19mcmVlKHByaXYtPmhvc3Qp
OwotCi0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3NlY3VyaXR5X29yaWdpbl9wYXJlbnRfY2xh
c3MpLT5maW5hbGl6ZShvYmplY3QpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfc2VjdXJpdHlf
b3JpZ2luX2Rpc3Bvc2UoR09iamVjdCogb2JqZWN0KQotewotICAgIFdlYktpdFNlY3VyaXR5T3Jp
Z2luKiBzZWN1cml0eU9yaWdpbiA9IFdFQktJVF9TRUNVUklUWV9PUklHSU4ob2JqZWN0KTsKLSAg
ICBXZWJLaXRTZWN1cml0eU9yaWdpblByaXZhdGUqIHByaXYgPSBzZWN1cml0eU9yaWdpbi0+cHJp
djsKLQotICAgIGlmICghcHJpdi0+ZGlzcG9zZWQpIHsKLSAgICAgICAgcHJpdi0+Y29yZU9yaWdp
bi0+ZGVyZWYoKTsKLSAgICAgICAgZ19oYXNoX3RhYmxlX2Rlc3Ryb3kocHJpdi0+d2ViRGF0YWJh
c2VzKTsKLSAgICAgICAgcHJpdi0+ZGlzcG9zZWQgPSB0cnVlOwotICAgIH0KLQotICAgIEdfT0JK
RUNUX0NMQVNTKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShv
YmplY3QpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX3NldF9wcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
R1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luID0gV0VCS0lUX1NFQ1VSSVRZX09SSUdJTihvYmplY3QpOwotCi0gICAgc3dpdGNoIChw
cm9wSWQpIHsKLSAgICBjYXNlIFBST1BfREFUQUJBU0VfUVVPVEE6Ci0gICAgICAgIHdlYmtpdF9z
ZWN1cml0eV9vcmlnaW5fc2V0X3dlYl9kYXRhYmFzZV9xdW90YShzZWN1cml0eU9yaWdpbiwgZ192
YWx1ZV9nZXRfdWludDY0KHZhbHVlKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwg
cHNwZWMpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9z
ZWN1cml0eV9vcmlnaW5fZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElk
LCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRTZWN1cml0
eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4gPSBXRUJLSVRfU0VDVVJJVFlfT1JJR0lOKG9iamVjdCk7
Ci0KLSAgICBzd2l0Y2ggKHByb3BJZCkgewotICAgIGNhc2UgUFJPUF9QUk9UT0NPTDoKLSAgICAg
ICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9w
cm90b2NvbChzZWN1cml0eU9yaWdpbikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1Bf
SE9TVDoKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJraXRfc2VjdXJpdHlf
b3JpZ2luX2dldF9ob3N0KHNlY3VyaXR5T3JpZ2luKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgUFJPUF9QT1JUOgotICAgICAgICBnX3ZhbHVlX3NldF91aW50KHZhbHVlLCB3ZWJraXRfc2Vj
dXJpdHlfb3JpZ2luX2dldF9wb3J0KHNlY3VyaXR5T3JpZ2luKSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgUFJPUF9EQVRBQkFTRV9VU0FHRToKLSAgICAgICAgZ192YWx1ZV9zZXRfdWludDY0
KHZhbHVlLCB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF93ZWJfZGF0YWJhc2VfdXNhZ2Uoc2Vj
dXJpdHlPcmlnaW4pKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0RBVEFCQVNFX1FV
T1RBOgotICAgICAgICBnX3ZhbHVlX3NldF91aW50NjQodmFsdWUsIHdlYmtpdF9zZWN1cml0eV9v
cmlnaW5fZ2V0X3dlYl9kYXRhYmFzZV9xdW90YShzZWN1cml0eU9yaWdpbikpOwotICAgICAgICBi
cmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVS
VFlfSUQob2JqZWN0LCBwcm9wSWQsIHBzcGVjKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQot
Ci1zdGF0aWMgR0hhc2hUYWJsZSogd2Via2l0X3NlY3VyaXR5X29yaWdpbnMoKQotewotICAgIHN0
YXRpYyBHSGFzaFRhYmxlKiBzZWN1cml0eU9yaWdpbnMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwo
Z19kaXJlY3RfaGFzaCwgZ19kaXJlY3RfZXF1YWwsIE5VTEwsIGdfb2JqZWN0X3VucmVmKTsKLSAg
ICByZXR1cm4gc2VjdXJpdHlPcmlnaW5zOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfc2VjdXJp
dHlfb3JpZ2luX2NsYXNzX2luaXQoV2ViS2l0U2VjdXJpdHlPcmlnaW5DbGFzcyoga2xhc3MpCi17
Ci0gICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7
Ci0gICAgZ29iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0X3NlY3VyaXR5X29yaWdpbl9kaXNw
b3NlOwotICAgIGdvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfc2VjdXJpdHlfb3JpZ2lu
X2ZpbmFsaXplOwotICAgIGdvYmplY3RDbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X3NlY3Vy
aXR5X29yaWdpbl9zZXRfcHJvcGVydHk7Ci0gICAgZ29iamVjdENsYXNzLT5nZXRfcHJvcGVydHkg
PSB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9wcm9wZXJ0eTsKLQotICAgICAvKioKLSAgICAg
ICogV2ViS2l0U2VjdXJpdHlPcmlnaW46cHJvdG9jb2w6Ci0gICAgICAqCi0gICAgICAqIFRoZSBw
cm90b2NvbCBvZiB0aGUgc2VjdXJpdHkgb3JpZ2luLgotICAgICAgKgotICAgICAgKiBTaW5jZTog
MS4xLjE0Ci0gICAgICAqLwotICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdv
YmplY3RDbGFzcywgUFJPUF9QUk9UT0NPTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJwcm90b2NvbCIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJQcm90b2NvbCIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XygiVGhlIHByb3RvY29sIG9mIHRoZSBzZWN1cml0eSBvcmlnaW4iKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRf
UEFSQU1fUkVBREFCTEUpKTsKLQotICAgICAvKioKLSAgICAgICogV2ViS2l0U2VjdXJpdHlPcmln
aW46aG9zdDoKLSAgICAgICoKLSAgICAgICogVGhlIGhvc3Qgb2YgdGhlIHNlY3VyaXR5IG9yaWdp
bi4KLSAgICAgICoKLSAgICAgICogU2luY2U6IDEuMS4xNAotICAgICAgKi8KLSAgICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsIFBST1BfSE9TVCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJob3N0
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF8oIkhvc3QiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIlRoZSBob3N0IG9mIHRoZSBzZWN1cml0eSBvcmlnaW4iKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V
TEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgICAvKioKLSAgICAgICogV2ViS2l0
U2VjdXJpdHlPcmlnaW46cG9ydDoKLSAgICAgICoKLSAgICAgICogVGhlIHBvcnQgb2YgdGhlIHNl
Y3VyaXR5IG9yaWdpbi4KLSAgICAgICoKLSAgICAgICogU2luY2U6IDEuMS4xNAotICAgICAgKi8K
LSAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsIFBST1Bf
UE9SVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNf
dWludCgicG9ydCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXygiUG9ydCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBwb3J0IG9mIHRoZSBzZWN1cml0eSBvcmlnaW4i
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAwLCBHX01BWFVTSE9SVCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgICAgLyoq
Ci0gICAgICAqIFdlYktpdFNlY3VyaXR5T3JpZ2luOndlYi1kYXRhYmFzZS11c2FnZToKLSAgICAg
ICoKLSAgICAgICogVGhlIGN1bXVsYXRpdmUgc2l6ZSBvZiBhbGwgd2ViIGRhdGFiYXNlcyBpbiB0
aGUgc2VjdXJpdHkgb3JpZ2luIGluIGJ5dGVzLgotICAgICAgKgotICAgICAgKiBTaW5jZTogMS4x
LjE0Ci0gICAgICAqLwotICAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2Jq
ZWN0Q2xhc3MsIFBST1BfREFUQUJBU0VfVVNBR0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfcGFyYW1fc3BlY191aW50NjQoIndlYi1kYXRhYmFzZS11c2FnZSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XygiV2ViIERhdGFiYXNlIFVzYWdlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGN1bXVsYXRpdmUgc2l6ZSBvZiBhbGwg
d2ViIGRhdGFiYXNlcyBpbiB0aGUgc2VjdXJpdHkgb3JpZ2luIiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgR19NQVhVSU5UNjQs
IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0gICAgICAvKioKLSAgICAgICogV2ViS2l0
U2VjdXJpdHlPcmlnaW46d2ViLWRhdGFiYXNlLXF1b3RhOgotICAgICAgKgotICAgICAgKiBUaGUg
d2ViIGRhdGFiYXNlIHFvdXRhIG9mIHRoZSBzZWN1cml0eSBvcmlnaW4gaW4gYnl0ZXMuCi0gICAg
ICAqCi0gICAgICAqIFNpbmNlOiAxLjEuMTQKLSAgICAgICovCi0gICAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywgUFJPUF9EQVRBQkFTRV9RVU9UQSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3VpbnQ2NCgi
d2ViLWRhdGFiYXNlLXF1b3RhIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfKCJXZWIgRGF0YWJhc2UgUXVvdGEiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUg
d2ViIGRhdGFiYXNlIHF1b3RhIG9mIHRoZSBzZWN1cml0eSBvcmlnaW4gaW4gYnl0ZXMiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LCBHX01BWFVJTlQ2NCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICBnX3R5
cGVfY2xhc3NfYWRkX3ByaXZhdGUoa2xhc3MsIHNpemVvZihXZWJLaXRTZWN1cml0eU9yaWdpblBy
aXZhdGUpKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3NlY3VyaXR5X29yaWdpbl9pbml0KFdl
YktpdFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbikKLXsKLSAgICBXZWJLaXRTZWN1cml0
eU9yaWdpblByaXZhdGUqIHByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2VjdXJp
dHlPcmlnaW4sIFdFQktJVF9UWVBFX1NFQ1VSSVRZX09SSUdJTiwgV2ViS2l0U2VjdXJpdHlPcmln
aW5Qcml2YXRlKTsKLSAgICBwcml2LT53ZWJEYXRhYmFzZXMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1
bGwoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWwsIGdfZnJlZSwgZ19vYmplY3RfdW5yZWYpOwotICAg
IHNlY3VyaXR5T3JpZ2luLT5wcml2ID0gcHJpdjsKLX0KLQotLyoqCi0gKiB3ZWJraXRfc2VjdXJp
dHlfb3JpZ2luX2dldF9wcm90b2NvbDoKLSAqIEBzZWN1cml0eU9yaWdpbjogYSAjV2ViS2l0U2Vj
dXJpdHlPcmlnaW4KLSAqCi0gKiBSZXR1cm5zIHRoZSBwcm90b2NvbCBmb3IgdGhlIHNlY3VyaXR5
IG9yaWdpbi4KLSAqCi0gKiBSZXR1cm5zOiB0aGUgcHJvdG9jb2wgZm9yIHRoZSBzZWN1cml0eSBv
cmlnaW4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKiovCi1jb25zdCBnY2hhciogd2Via2l0X3Nl
Y3VyaXR5X29yaWdpbl9nZXRfcHJvdG9jb2woV2ViS2l0U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5
T3JpZ2luKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRUNVUklUWV9P
UklHSU4oc2VjdXJpdHlPcmlnaW4pLCBOVUxMKTsKLQotICAgIFdlYktpdFNlY3VyaXR5T3JpZ2lu
UHJpdmF0ZSogcHJpdiA9IHNlY3VyaXR5T3JpZ2luLT5wcml2OwotICAgIFdURjo6U3RyaW5nIHBy
b3RvY29sID0gIHByaXYtPmNvcmVPcmlnaW4tPnByb3RvY29sKCk7Ci0KLSAgICBpZiAoIXByaXYt
PnByb3RvY29sKQotICAgICAgICBwcml2LT5wcm90b2NvbCA9IGdfc3RyZHVwKHByb3RvY29sLnV0
ZjgoKS5kYXRhKCkpOwotCi0gICAgcmV0dXJuIHByaXYtPnByb3RvY29sOwotfQotCi0vKioKLSAq
IHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X2hvc3Q6Ci0gKiBAc2VjdXJpdHlPcmlnaW46IGEg
I1dlYktpdFNlY3VyaXR5T3JpZ2luCi0gKgotICogUmV0dXJucyB0aGUgaG9zdG5hbWUgZm9yIHRo
ZSBzZWN1cml0eSBvcmlnaW4uCi0gKgotICogUmV0dXJuczogdGhlIGhvc3RuYW1lIGZvciB0aGUg
c2VjdXJpdHkgb3JpZ2luCi0gKgotICogU2luY2U6IDEuMS4xNAotICoqLwotY29uc3QgZ2NoYXIq
IHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X2hvc3QoV2ViS2l0U2VjdXJpdHlPcmlnaW4qIHNl
Y3VyaXR5T3JpZ2luKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TRUNV
UklUWV9PUklHSU4oc2VjdXJpdHlPcmlnaW4pLCBOVUxMKTsKLQotICAgIFdlYktpdFNlY3VyaXR5
T3JpZ2luUHJpdmF0ZSogcHJpdiA9IHNlY3VyaXR5T3JpZ2luLT5wcml2OwotICAgIFdURjo6U3Ry
aW5nIGhvc3QgPSAgcHJpdi0+Y29yZU9yaWdpbi0+aG9zdCgpOwotCi0gICAgaWYgKCFwcml2LT5o
b3N0KQotICAgICAgICBwcml2LT5ob3N0ID0gZ19zdHJkdXAoaG9zdC51dGY4KCkuZGF0YSgpKTsK
LQotICAgIHJldHVybiBwcml2LT5ob3N0OwotfQotCi0vKioKLSAqIHdlYmtpdF9zZWN1cml0eV9v
cmlnaW5fZ2V0X3BvcnQ6Ci0gKiBAc2VjdXJpdHlPcmlnaW46IGEgI1dlYktpdFNlY3VyaXR5T3Jp
Z2luCi0gKgotICogUmV0dXJucyB0aGUgcG9ydCBmb3IgdGhlIHNlY3VyaXR5IG9yaWdpbi4KLSAq
Ci0gKiBSZXR1cm5zOiB0aGUgcG9ydCBmb3IgdGhlIHNlY3VyaXR5IG9yaWdpbgotICoKLSAqIFNp
bmNlOiAxLjEuMTQKLSAqKi8KLWd1aW50IHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3BvcnQo
V2ViS2l0U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKQotewotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19TRUNVUklUWV9PUklHSU4oc2VjdXJpdHlPcmlnaW4pLCAwKTsK
LQotICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiBjb3JlT3JpZ2luID0gY29yZShzZWN1cml0
eU9yaWdpbik7Ci0gICAgcmV0dXJuIGNvcmVPcmlnaW4tPnBvcnQoKTsKLX0KLQotLyoqCi0gKiB3
ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF93ZWJfZGF0YWJhc2VfdXNhZ2U6Ci0gKiBAc2VjdXJp
dHlPcmlnaW46IGEgI1dlYktpdFNlY3VyaXR5T3JpZ2luCi0gKgotICogUmV0dXJucyB0aGUgY3Vt
dWxhdGl2ZSBzaXplIG9mIGFsbCBXZWIgRGF0YWJhc2UgZGF0YWJhc2UncyBpbiB0aGUgb3JpZ2lu
Ci0gKiBpbiBieXRlcy4KLSAqCi0gKiBSZXR1cm5zOiB0aGUgY3VtdWxhdGl2ZSBzaXplIG9mIGFs
bCBkYXRhYmFzZXMKLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKiovCi1ndWludDY0IHdlYmtpdF9z
ZWN1cml0eV9vcmlnaW5fZ2V0X3dlYl9kYXRhYmFzZV91c2FnZShXZWJLaXRTZWN1cml0eU9yaWdp
biogc2VjdXJpdHlPcmlnaW4pCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lT
X1NFQ1VSSVRZX09SSUdJTihzZWN1cml0eU9yaWdpbiksIDApOwotCi0jaWYgRU5BQkxFKFNRTF9E
QVRBQkFTRSkKLSAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogY29yZU9yaWdpbiA9IGNvcmUo
c2VjdXJpdHlPcmlnaW4pOwotICAgIHJldHVybiBXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6Om1h
bmFnZXIoKS51c2FnZUZvck9yaWdpbihjb3JlT3JpZ2luKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7
Ci0jZW5kaWYKLX0KLQotLyoqCi0gKiB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF93ZWJfZGF0
YWJhc2VfcXVvdGE6Ci0gKiBAc2VjdXJpdHlPcmlnaW46IGEgI1dlYktpdFNlY3VyaXR5T3JpZ2lu
Ci0gKgotICogUmV0dXJucyB0aGUgcXVvdGEgZm9yIFdlYiBEYXRhYmFzZSBzdG9yYWdlIG9mIHRo
ZSBzZWN1cml0eSBvcmlnaW4KLSAqIGluIGJ5dGVzLgotICoKLSAqIFJldHVybnM6IHRoZSBXZWIg
RGF0YWJhc2UgcXVvdGEKLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKiovCi1ndWludDY0IHdlYmtp
dF9zZWN1cml0eV9vcmlnaW5fZ2V0X3dlYl9kYXRhYmFzZV9xdW90YShXZWJLaXRTZWN1cml0eU9y
aWdpbiogc2VjdXJpdHlPcmlnaW4pCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1NFQ1VSSVRZX09SSUdJTihzZWN1cml0eU9yaWdpbiksIDApOwotCi0jaWYgRU5BQkxFKFNR
TF9EQVRBQkFTRSkKLSAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogY29yZU9yaWdpbiA9IGNv
cmUoc2VjdXJpdHlPcmlnaW4pOwotICAgIHJldHVybiBXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6
Om1hbmFnZXIoKS5xdW90YUZvck9yaWdpbihjb3JlT3JpZ2luKTsKLSNlbHNlCi0gICAgcmV0dXJu
IDA7Ci0jZW5kaWYKLX0KLQotLyoqCi0gKiB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX3NldF93ZWJf
ZGF0YWJhc2VfcXVvdGE6Ci0gKiBAc2VjdXJpdHlPcmlnaW46IGEgI1dlYktpdFNlY3VyaXR5T3Jp
Z2luCi0gKiBAcXVvdGE6IGEgbmV3IFdlYiBEYXRhYmFzZSBxdW90YSBpbiBieXRlcwotICoKLSAq
IEFkanVzdCB0aGUgcXVvdGEgZm9yIFdlYiBEYXRhYmFzZSBzdG9yYWdlIG9mIHRoZSBzZWN1cml0
eSBvcmlnaW4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKiovCi12b2lkIHdlYmtpdF9zZWN1cml0
eV9vcmlnaW5fc2V0X3dlYl9kYXRhYmFzZV9xdW90YShXZWJLaXRTZWN1cml0eU9yaWdpbiogc2Vj
dXJpdHlPcmlnaW4sIGd1aW50NjQgcXVvdGEpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfU0VDVVJJVFlfT1JJR0lOKHNlY3VyaXR5T3JpZ2luKSk7Ci0KLSNpZiBFTkFCTEUoU1FM
X0RBVEFCQVNFKQotICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiBjb3JlT3JpZ2luID0gY29y
ZShzZWN1cml0eU9yaWdpbik7Ci0gICAgV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2Vy
KCkuc2V0UXVvdGEoY29yZU9yaWdpbiwgcXVvdGEpOwotI2VuZGlmCi19Ci0KLS8qKgotICogd2Vi
a2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfYWxsX3dlYl9kYXRhYmFzZXM6Ci0gKiBAc2VjdXJpdHlP
cmlnaW46IGEgI1dlYktpdFNlY3VyaXR5T3JpZ2luCi0gKgotICogUmV0dXJucyBhIGxpc3Qgb2Yg
YWxsIFdlYiBEYXRhYmFzZXMgaW4gdGhlIHNlY3VyaXR5IG9yaWdpbi4KLSAqCi0gKiBSZXR1cm5z
OiAodHJhbnNmZXIgY29udGFpbmVyKSAoZWxlbWVudC10eXBlIFdlYktpdFdlYkRhdGFiYXNlKTog
YQotICogI0dMaXN0IG9mIGRhdGFiYXNlcyBpbiB0aGUgc2VjdXJpdHkgb3JpZ2luLgotICoKLSAq
IFNpbmNlOiAxLjEuMTQKLSAqKi8KLUdMaXN0KiB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9h
bGxfd2ViX2RhdGFiYXNlcyhXZWJLaXRTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pCi17
Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1NFQ1VSSVRZX09SSUdJTihzZWN1
cml0eU9yaWdpbiksIE5VTEwpOwotICAgIEdMaXN0KiBkYXRhYmFzZXMgPSBOVUxMOwotCi0jaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogY29yZU9y
aWdpbiA9IGNvcmUoc2VjdXJpdHlPcmlnaW4pOwotICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gZGF0
YWJhc2VOYW1lczsKLQotICAgIGlmICghV2ViQ29yZTo6RGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2Vy
KCkuZGF0YWJhc2VOYW1lc0Zvck9yaWdpbihjb3JlT3JpZ2luLCBkYXRhYmFzZU5hbWVzKSkKLSAg
ICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGF0YWJh
c2VOYW1lcy5zaXplKCk7ICsraSkgewotICAgICAgICBXZWJLaXRXZWJEYXRhYmFzZSogZGF0YWJh
c2UgPSB3ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF93ZWJfZGF0YWJhc2Uoc2VjdXJpdHlPcmln
aW4sIGRhdGFiYXNlTmFtZXNbaV0udXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIGRhdGFiYXNlcyA9
IGdfbGlzdF9hcHBlbmQoZGF0YWJhc2VzLCBkYXRhYmFzZSk7Ci0gICAgfQotI2VuZGlmCi0KLSAg
ICByZXR1cm4gZGF0YWJhc2VzOwotfQotCi1XZWJLaXRXZWJEYXRhYmFzZSogd2Via2l0X3NlY3Vy
aXR5X29yaWdpbl9nZXRfd2ViX2RhdGFiYXNlKFdlYktpdFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0
eU9yaWdpbiwgY29uc3QgZ2NoYXIqIGRhdGFiYXNlTmFtZSkKLXsKLSAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfU0VDVVJJVFlfT1JJR0lOKHNlY3VyaXR5T3JpZ2luKSwgTlVMTCk7
Ci0KLSAgICBXZWJLaXRTZWN1cml0eU9yaWdpblByaXZhdGUqIHByaXYgPSBzZWN1cml0eU9yaWdp
bi0+cHJpdjsKLSAgICBHSGFzaFRhYmxlKiBkYXRhYmFzZUhhc2ggPSBwcml2LT53ZWJEYXRhYmFz
ZXM7Ci0gICAgV2ViS2l0V2ViRGF0YWJhc2UqIGRhdGFiYXNlID0gKFdlYktpdFdlYkRhdGFiYXNl
KikgZ19oYXNoX3RhYmxlX2xvb2t1cChkYXRhYmFzZUhhc2gsIGRhdGFiYXNlTmFtZSk7Ci0KLSAg
ICBpZiAoIWRhdGFiYXNlKSB7Ci0gICAgICAgIGRhdGFiYXNlID0gIFdFQktJVF9XRUJfREFUQUJB
U0UoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9EQVRBQkFTRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzZWN1cml0eS1vcmlnaW4iLCBzZWN1cml0eU9yaWdp
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiwgZGF0YWJh
c2VOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpKTsK
LSAgICAgICAgZ19oYXNoX3RhYmxlX2luc2VydChkYXRhYmFzZUhhc2gsIGdfc3RyZHVwKGRhdGFi
YXNlTmFtZSksIGRhdGFiYXNlKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZGF0YWJhc2U7Ci19Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogY29yZShXZWJL
aXRTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pCi17Ci0gICAgQVNTRVJUKHNlY3VyaXR5
T3JpZ2luKTsKLQotICAgIHJldHVybiBzZWN1cml0eU9yaWdpbi0+cHJpdi0+Y29yZU9yaWdpbi5n
ZXQoKTsKLX0KLQotV2ViS2l0U2VjdXJpdHlPcmlnaW4qIGtpdChXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiogY29yZU9yaWdpbikKLXsKLSAgICBBU1NFUlQoY29yZU9yaWdpbik7Ci0KLSAgICBHSGFz
aFRhYmxlKiB0YWJsZSA9IHdlYmtpdF9zZWN1cml0eV9vcmlnaW5zKCk7Ci0gICAgV2ViS2l0U2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiA9IChXZWJLaXRTZWN1cml0eU9yaWdpbiopIGdfaGFzaF90YWJs
ZV9sb29rdXAodGFibGUsIGNvcmVPcmlnaW4pOwotCi0gICAgaWYgKCFvcmlnaW4pIHsKLSAgICAg
ICAgb3JpZ2luID0gV0VCS0lUX1NFQ1VSSVRZX09SSUdJTihnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfU0VDVVJJVFlfT1JJR0lOLCBOVUxMKSk7Ci0gICAgICAgIG9yaWdpbi0+cHJpdi0+Y29yZU9y
aWdpbiA9IGNvcmVPcmlnaW47Ci0gICAgICAgIGdfaGFzaF90YWJsZV9pbnNlcnQodGFibGUsIGNv
cmVPcmlnaW4sIG9yaWdpbik7Ci0gICAgfQotCi0gICAgcmV0dXJuIG9yaWdpbjsKLX0KLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2lu
LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDMyNzkwOS4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c2VjdXJpdHlvcmlnaW4uaAorKysgL2Rldi9udWxsCkBA
IC0xLDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgTWFydGluIFJvYmluc29u
LCBKYW4gTWljaGFlbCBDLiBBbG9uem8KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJraXRzZWN1cml0eW9yaWdpbl9oCi0j
ZGVmaW5lIHdlYmtpdHNlY3VyaXR5b3JpZ2luX2gKLQotI2luY2x1ZGUgIndlYmtpdHdlYmRhdGFi
YXNlLmgiCi0KLUdfQkVHSU5fREVDTFMKLQotI2RlZmluZSBXRUJLSVRfVFlQRV9TRUNVUklUWV9P
UklHSU4gICAgICAgICAgICAgKHdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3R5cGUoKSkKLSNk
ZWZpbmUgV0VCS0lUX1NFQ1VSSVRZX09SSUdJTihvYmopICAgICAgICAgICAgIChHX1RZUEVfQ0hF
Q0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfU0VDVVJJVFlfT1JJR0lOLCBXZWJL
aXRTZWN1cml0eU9yaWdpbikpCi0jZGVmaW5lIFdFQktJVF9TRUNVUklUWV9PUklHSU5fQ0xBU1Mo
a2xhc3MpICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBF
X1NFQ1VSSVRZX09SSUdJTiwgV2ViS2l0U2VjdXJpdHlPcmlnaW5DbGFzcykpCi0jZGVmaW5lIFdF
QktJVF9JU19TRUNVUklUWV9PUklHSU4ob2JqKSAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RB
TkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1NFQ1VSSVRZX09SSUdJTikpCi0jZGVmaW5lIFdF
QktJVF9JU19TRUNVUklUWV9PUklHSU5fQ0xBU1Moa2xhc3MpICAoR19UWVBFX0NIRUNLX0NMQVNT
X1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1NFQ1VSSVRZX09SSUdJTikpCi0jZGVmaW5lIFdF
QktJVF9TRUNVUklUWV9PUklHSU5fR0VUX0NMQVNTKG9iaikgICAoR19UWVBFX0lOU1RBTkNFX0dF
VF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1NFQ1VSSVRZX09SSUdJTiwgV2ViS2l0U2VjdXJp
dHlPcmlnaW5DbGFzcykpCi0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRTZWN1cml0eU9yaWdpblBy
aXZhdGUgV2ViS2l0U2VjdXJpdHlPcmlnaW5Qcml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdFNlY3Vy
aXR5T3JpZ2luIHsKLSAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKLQotICAgIC8qPCBwcml2
YXRlID4qLwotICAgIFdlYktpdFNlY3VyaXR5T3JpZ2luUHJpdmF0ZSogcHJpdjsKLX07Ci0KLXN0
cnVjdCBfV2ViS2l0U2VjdXJpdHlPcmlnaW5DbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVu
dF9jbGFzczsKLQotICAgIC8qIFBhZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KLSAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKLSAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDQpICh2b2lkKTsKLX07Ci0KLVdFQktJVF9BUEkgR1R5
cGUKLXdlYmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3R5cGUgKHZvaWQpOwotCi1XRUJLSVRfQVBJ
IGNvbnN0IGdjaGFyKgotd2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfcHJvdG9jb2wgICAgICAg
ICAgIChXZWJLaXRTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pOwotCi1XRUJLSVRfQVBJ
IGNvbnN0IGdjaGFyKgotd2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfaG9zdCAgICAgICAgICAg
ICAgIChXZWJLaXRTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pOwotCi1XRUJLSVRfQVBJ
IGd1aW50Ci13ZWJraXRfc2VjdXJpdHlfb3JpZ2luX2dldF9wb3J0ICAgICAgICAgICAgICAgKFdl
YktpdFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbik7Ci0KLVdFQktJVF9BUEkgZ3VpbnQ2
NAotd2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfd2ViX2RhdGFiYXNlX3VzYWdlIChXZWJLaXRT
ZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pOwotCi1XRUJLSVRfQVBJIGd1aW50NjQKLXdl
YmtpdF9zZWN1cml0eV9vcmlnaW5fZ2V0X3dlYl9kYXRhYmFzZV9xdW90YSAoV2ViS2l0U2VjdXJp
dHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfc2Vj
dXJpdHlfb3JpZ2luX3NldF93ZWJfZGF0YWJhc2VfcXVvdGEgKFdlYktpdFNlY3VyaXR5T3JpZ2lu
KiBzZWN1cml0eU9yaWdpbiwgZ3VpbnQ2NCBxdW90YSk7Ci0KLVdFQktJVF9BUEkgR0xpc3QgKgot
d2Via2l0X3NlY3VyaXR5X29yaWdpbl9nZXRfYWxsX3dlYl9kYXRhYmFzZXMgIChXZWJLaXRTZWN1
cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4pOwotCi1HX0VORF9ERUNMUwotCi0jZW5kaWYgLyog
X19XRUJLSVRfU0VDVVJJVFlfT1JJR0lOX0hfXyAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2lucHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHNlY3VyaXR5b3JpZ2lucHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhYjNkN2M3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0x
LDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2Vy
IEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBD
LiBBbG9uem8KLSAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJp
Z2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0c2VjdXJpdHlvcmlnaW5wcml2
YXRlX2gKLSNkZWZpbmUgd2Via2l0c2VjdXJpdHlvcmlnaW5wcml2YXRlX2gKLQotI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAid2Via2l0c2VjdXJpdHlvcmlnaW4uaCIKLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYktpdFNlY3VyaXR5T3JpZ2luKiBraXQoV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4qKTsKLVdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiBjb3JlKFdlYktpdFNl
Y3VyaXR5T3JpZ2luKik7Ci0KLX0KLQotZXh0ZXJuICJDIiB7Ci0KLXN0cnVjdCBfV2ViS2l0U2Vj
dXJpdHlPcmlnaW5Qcml2YXRlIHsKLSAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
IGNvcmVPcmlnaW47Ci0gICAgZ2NoYXIqIHByb3RvY29sOwotICAgIGdjaGFyKiBob3N0OwotICAg
IEdIYXNoVGFibGUqIHdlYkRhdGFiYXNlczsKLQotICAgIGdib29sZWFuIGRpc3Bvc2VkOwotfTsK
LQotV0VCS0lUX0FQSSBXZWJLaXRXZWJEYXRhYmFzZSogd2Via2l0X3NlY3VyaXR5X29yaWdpbl9n
ZXRfd2ViX2RhdGFiYXNlKFdlYktpdFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgY2hhciopOwotCi19
Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNv
dXBhdXRoZGlhbG9nLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzb3VwYXV0
aGRpYWxvZy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiYTAxZGMuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDE2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJ3ZWJraXRzb3Vw
YXV0aGRpYWxvZy5oIgotCi0jaW5jbHVkZSAiQXV0aGVudGljYXRpb25DbGllbnQuaCIKLSNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIndlYmtpdGF1dGhlbnRpY2F0aW9uZGlh
bG9nLmgiCi0jaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLS8qKgotICogU0VDVElPTjp3
ZWJraXRzb3VwYXV0aGRpYWxvZwotICogQHNob3J0X2Rlc2NyaXB0aW9uOiBBICNTb3VwU2Vzc2lv
bkZlYXR1cmUgdG8gcHJvdmlkZSBhIHNpbXBsZQotICogYXV0aGVudGljYXRpb24gZGlhbG9nIGZv
ciBIVFRQIGJhc2ljIGF1dGggc3VwcG9ydC4KLSAqCi0gKiAjV2ViS2l0U291cEF1dGhEaWFsb2cg
aXMgYSAjU291cFNlc3Npb25GZWF0dXJlIHRoYXQgeW91IGNhbiBhdHRhY2ggdG8geW91cgotICog
I1NvdXBTZXNzaW9uIHRvIHByb3ZpZGUgYSBzaW1wbGUgYXV0aGVudGljYXRpb24gZGlhbG9nIHdo
aWxlCi0gKiBoYW5kbGluZyBIVFRQIGJhc2ljIGF1dGguCi0gKi8KLQotCi0vLyBUaGlzIGNsYXNz
IGV4aXN0cyBvbmx5IGZvciBBUEkgY29tcGF0aWJpbGl0eSByZWFzb25zLiBXZWJLaXRTb3VwQXV0
aERpYWxvZyB3YXMgZXhwb3NlZAotLy8gaW4gdGhlIHB1YmxpYyBBUEksIHNvIHdlIG11c3QgcHJv
dmlkZSB0aGlzICJmYWtlIiBBdXRoZW50aWNhdGlvbkNsaWVudCBpbiBvcmRlciB0bwotLy8gY29u
dGludWUgdXNpbmcgR3RrQXV0aGVudGljYXRpb25EaWFsb2cgd2l0aCB0aGUgbmV3IGF1dGhlbnRp
Y2F0aW9uIGFyY2hpdGVjdHVyZS4KLWNsYXNzIFdlYktpdFNvdXBBdXRoRGlhbG9nQXV0aGVudGlj
YXRpb25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DbGllbnQsIHB1Ymxp
YyBSZWZDb3VudGVkPFdlYktpdFNvdXBBdXRoRGlhbG9nQXV0aGVudGljYXRpb25DbGllbnQ+IHsK
LXVzaW5nIFJlZkNvdW50ZWQ8V2ViS2l0U291cEF1dGhEaWFsb2dBdXRoZW50aWNhdGlvbkNsaWVu
dD46OnJlZjsKLXVzaW5nIFJlZkNvdW50ZWQ8V2ViS2l0U291cEF1dGhEaWFsb2dBdXRoZW50aWNh
dGlvbkNsaWVudD46OmRlcmVmOwotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQot
ICAgIHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51
ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVu
Z2UpCi0gICAgewotICAgICAgICBzb3VwX3Nlc3Npb25fdW5wYXVzZV9tZXNzYWdlKGNoYWxsZW5n
ZS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291cE1lc3NhZ2UoKSk7Ci0gICAgfQotCi0gICAg
dmlydHVhbCB2b2lkIHJlY2VpdmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYgY2hhbGxlbmdlLCBjb25zdCBDcmVkZW50aWFsJiBjcmVkZW50aWFsKQotICAgIHsKLSAg
ICAgICAgc291cF9hdXRoX2F1dGhlbnRpY2F0ZShjaGFsbGVuZ2Uuc291cEF1dGgoKSwgY3JlZGVu
dGlhbC51c2VyKCkudXRmOCgpLmRhdGEoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5k
YXRhKCkpOwotICAgICAgICBzb3VwX3Nlc3Npb25fdW5wYXVzZV9tZXNzYWdlKGNoYWxsZW5nZS5z
b3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291cE1lc3NhZ2UoKSk7Ci0gICAgfQotCi0gICAgdmly
dHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UpCi0gICAgewotICAgICAgICBzb3VwX3Nlc3Npb25fdW5wYXVzZV9tZXNz
YWdlKGNoYWxsZW5nZS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291cE1lc3NhZ2UoKSk7Ci0g
ICAgfQotCi0gICAgLy8gVGhpcyBzZWVtcyBuZWNlc3NhcnkgdG8gbWFrZSB0aGUgY29tcGlsZXIg
aGFwcHkuIEJvdGggQXV0aGVudGljYXRpb25DbGllbnQgYW5kCi0gICAgLy8gUmVmQ291bnRlZDxU
PiBleHBvc2UgYSByZWYvZGVyZWYgbWV0aG9kLCB3aGljaCBpbnRlcmZlcmVzIHdpdGggdGhlIHVz
ZSBvZiBhIFJlZlB0ci4KLSAgICB2b2lkIGRlcmVmV2ViS2l0U291cEF1dGhEaWFsb2dBdXRoZW50
aWNhdGlvbkNsaWVudCgpCi0gICAgewotICAgICAgICBkZXJlZigpOwotICAgIH0KLQotcHJpdmF0
ZToKLSAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IHJlZigpOyB9
Ci0gICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IGRlcmVmKCk7
IH0KLX07Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9zb3VwX2F1dGhfZGlhbG9nX3Nlc3Npb25fZmVh
dHVyZV9pbml0KFNvdXBTZXNzaW9uRmVhdHVyZUludGVyZmFjZSosIGdwb2ludGVyKTsKLXN0YXRp
YyB2b2lkIGF0dGFjaChTb3VwU2Vzc2lvbkZlYXR1cmUqLCBTb3VwU2Vzc2lvbiopOwotc3RhdGlj
IHZvaWQgZGV0YWNoKFNvdXBTZXNzaW9uRmVhdHVyZSosIFNvdXBTZXNzaW9uKik7Ci0KLWVudW0g
ewotICAgIENVUlJFTlRfVE9QTEVWRUwsCi0gICAgTEFTVF9TSUdOQUwKLX07Ci0KLXN0YXRpYyBn
dWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9OwotCi1HX0RFRklORV9UWVBFX1dJVEhf
Q09ERShXZWJLaXRTb3VwQXV0aERpYWxvZywgd2Via2l0X3NvdXBfYXV0aF9kaWFsb2csIEdfVFlQ
RV9PQkpFQ1QsCi0gICAgICAgICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0Uo
U09VUF9UWVBFX1NFU1NJT05fRkVBVFVSRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB3ZWJraXRfc291cF9hdXRoX2RpYWxvZ19zZXNzaW9uX2ZlYXR1cmVf
aW5pdCkpCi0KLXN0YXRpYyB2b2lkIHdlYmtpdF9zb3VwX2F1dGhfZGlhbG9nX2NsYXNzX2luaXQo
V2ViS2l0U291cEF1dGhEaWFsb2dDbGFzcyoga2xhc3MpCi17Ci0gICAgR09iamVjdENsYXNzKiBv
YmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKLQotICAgIC8qKgotICAgICAqIFdl
YktpdFNvdXBBdXRoRGlhbG9nOjpjdXJyZW50LXRvcGxldmVsOgotICAgICAqIEBhdXRoRGlhbG9n
OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIEBtZXNz
YWdlOiB0aGUgI1NvdXBNZXNzYWdlIGJlaW5nIHVzZWQgaW4gdGhlIGF1dGhlbnRpY2F0aW9uIHBy
b2Nlc3MKLSAgICAgKgotICAgICAqIFRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQgYnkgdGhlIEBhdXRo
RGlhbG9nIHdoZW4gaXQgbmVlZHMgdG8ga25vdwotICAgICAqIHRoZSBjdXJyZW50IHRvcGxldmVs
IHdpZGdldCBpbiBvcmRlciB0byBjb3JyZWN0bHkgc2V0IHRoZQotICAgICAqIHRyYW5zaWVuY3kg
Zm9yIHRoZSBhdXRoZW50aWNhdGlvbiBkaWFsb2cuCi0gICAgICoKLSAgICAgKiBSZXR1cm4gdmFs
dWU6ICh0cmFuc2ZlciBub25lKTogdGhlIGN1cnJlbnQgdG9wbGV2ZWwgI0d0a1dpZGdldCBvciAl
TlVMTCBpZiB0aGVyZSdzIG5vbmUKLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEuMQotICAgICAq
LwotICAgIHNpZ25hbHNbQ1VSUkVOVF9UT1BMRVZFTF0gPSBnX3NpZ25hbF9uZXcoImN1cnJlbnQt
dG9wbGV2ZWwiLAotICAgICAgICBHX09CSkVDVF9DTEFTU19UWVBFKG9iamVjdENsYXNzKSwKLSAg
ICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRT
b3VwQXV0aERpYWxvZ0NsYXNzLCBjdXJyZW50X3RvcGxldmVsKSwKLSAgICAgICAgMCwgMCwKLSAg
ICAgICAgd2Via2l0X21hcnNoYWxfT0JKRUNUX19PQkpFQ1QsCi0gICAgICAgIEdUS19UWVBFX1dJ
REdFVCwgMSwKLSAgICAgICAgU09VUF9UWVBFX01FU1NBR0UpOwotfQotCi1zdGF0aWMgdm9pZCB3
ZWJraXRfc291cF9hdXRoX2RpYWxvZ19pbml0KFdlYktpdFNvdXBBdXRoRGlhbG9nKikKLXsKLX0K
LQotc3RhdGljIHZvaWQgd2Via2l0X3NvdXBfYXV0aF9kaWFsb2dfc2Vzc2lvbl9mZWF0dXJlX2lu
aXQoU291cFNlc3Npb25GZWF0dXJlSW50ZXJmYWNlICpmZWF0dXJlSW50ZXJmYWNlLCBncG9pbnRl
cikKLXsKLSAgICBmZWF0dXJlSW50ZXJmYWNlLT5hdHRhY2ggPSBhdHRhY2g7Ci0gICAgZmVhdHVy
ZUludGVyZmFjZS0+ZGV0YWNoID0gZGV0YWNoOwotfQotCi1zdGF0aWMgdm9pZCBzZXNzaW9uQXV0
aGVudGljYXRlKFNvdXBTZXNzaW9uKiBzZXNzaW9uLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgU291
cEF1dGgqIGF1dGgsIGdib29sZWFuIHJldHJ5aW5nLCBTb3VwU2Vzc2lvbkZlYXR1cmUqIG1hbmFn
ZXIpCi17Ci0gICAgR3RrV2luZG93KiB0b3BsZXZlbCA9IDA7Ci0gICAgZ19zaWduYWxfZW1pdCht
YW5hZ2VyLCBzaWduYWxzW0NVUlJFTlRfVE9QTEVWRUxdLCAwLCBtZXNzYWdlLCAmdG9wbGV2ZWwp
OwotCi0gICAgV2ViS2l0U291cEF1dGhEaWFsb2dBdXRoZW50aWNhdGlvbkNsaWVudCogY2xpZW50
ID0gbmV3IFdlYktpdFNvdXBBdXRoRGlhbG9nQXV0aGVudGljYXRpb25DbGllbnQoKTsKLSAgICBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2Uoc2Vzc2lvbiwgbWVzc2FnZSwgYXV0aCwg
cmV0cnlpbmcsIGNsaWVudCk7Ci0gICAgc291cF9zZXNzaW9uX3VucGF1c2VfbWVzc2FnZShzZXNz
aW9uLCBtZXNzYWdlKTsKLQotICAgIC8vIEEgUmVmUHRyIHdvdWxkIGJlIGJldHRlciBoZXJlLCBi
dXQgaXQgc2VlbXMgdGhhdCBhY2Nlc3NpbmcgUmVmQ291bnRlZDo6ZGVyZWYgZnJvbSB0aGlzIGNv
bnRleHQgaXMKLSAgICAvLyBpbXBvc3NpYmxlIHdpdGggZ2NjLCBkdWUgdG8gV2ViS2l0U291cEF1
dGhEaWFsb2dBdXRoZW50aWNhdGlvbkNsaWVudCdzIHR3byBzdXBlcmNsYXNzZXMuCi0gICAgY2xp
ZW50LT5kZXJlZldlYktpdFNvdXBBdXRoRGlhbG9nQXV0aGVudGljYXRpb25DbGllbnQoKTsKLQot
ICAgIEd0a1dpZGdldCogYXV0aERpYWxvZyA9IGNyZWF0ZUF1dGhlbnRpY2F0aW9uRGlhbG9nKHRv
cGxldmVsLCBjaGFsbGVuZ2UsIERpc2FsbG93UGVyc2lzdGVudFN0b3JhZ2UpOwotICAgIGd0a193
aWRnZXRfc2hvdyhhdXRoRGlhbG9nKTsKLX0KLQotc3RhdGljIHZvaWQgYXR0YWNoKFNvdXBTZXNz
aW9uRmVhdHVyZSogbWFuYWdlciwgU291cFNlc3Npb24qIHNlc3Npb24pCi17Ci0gICAgZ19zaWdu
YWxfY29ubmVjdChzZXNzaW9uLCAiYXV0aGVudGljYXRlIiwgR19DQUxMQkFDSyhzZXNzaW9uQXV0
aGVudGljYXRlKSwgbWFuYWdlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIGRldGFjaChTb3VwU2Vzc2lv
bkZlYXR1cmUqIG1hbmFnZXIsIFNvdXBTZXNzaW9uKiBzZXNzaW9uKQotewotICAgIGdfc2lnbmFs
X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhzZXNzaW9uLCByZWludGVycHJldF9jYXN0PGdw
b2ludGVyPihzZXNzaW9uQXV0aGVudGljYXRlKSwgbWFuYWdlcik7Ci19Ci0KLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNvdXBhdXRoZGlhbG9nLmggYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTZmOTcyYS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0c291cGF1dGhkaWFsb2cuaAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJr
aXRzb3VwYXV0aGRpYWxvZ19oCi0jZGVmaW5lIHdlYmtpdHNvdXBhdXRoZGlhbG9nX2gKLQotI2lu
Y2x1ZGUgPGd0ay9ndGsuaD4KLSNkZWZpbmUgTElCU09VUF9JX0hBVkVfUkVBRF9CVUdfNTk0Mzc3
X0FORF9LTk9XX1NPVVBfUEFTU1dPUkRfTUFOQUdFUl9NSUdIVF9HT19BV0FZCi0jaW5jbHVkZSA8
bGlic291cC9zb3VwLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KLQotR19C
RUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9UWVBFX1NPVVBfQVVUSF9ESUFMT0cgICAgICAg
ICAgICAod2Via2l0X3NvdXBfYXV0aF9kaWFsb2dfZ2V0X3R5cGUgKCkpCi0jZGVmaW5lIFdFQktJ
VF9TT1VQX0FVVEhfRElBTE9HKG9iamVjdCkgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNF
X0NBU1QgKChvYmplY3QpLCBXRUJLSVRfVFlQRV9TT1VQX0FVVEhfRElBTE9HLCBXZWJLaXRTb3Vw
QXV0aERpYWxvZykpCi0jZGVmaW5lIFdFQktJVF9TT1VQX0FVVEhfRElBTE9HX0NMQVNTKGtsYXNz
KSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChrbGFzcyksIFdFQktJVF9UWVBFX1NPVVBf
QVVUSF9ESUFMT0csIFdlYktpdFNvdXBBdXRoRGlhbG9nKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1NP
VVBfQVVUSF9ESUFMT0cob2JqZWN0KSAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAo
KG9iamVjdCksIFdFQktJVF9UWVBFX1NPVVBfQVVUSF9ESUFMT0cpKQotI2RlZmluZSBXRUJLSVRf
SVNfU09VUF9BVVRIX0RJQUxPR19DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBF
ICgoa2xhc3MpLCBXRUJLSVRfVFlQRV9TT1VQX0FVVEhfRElBTE9HKSkKLSNkZWZpbmUgV0VCS0lU
X1NPVVBfQVVUSF9ESUFMT0dfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTICgob2JqKSwgV0VCS0lUX1RZUEVfU09VUF9BVVRIX0RJQUxPRywgV2ViS2l0U291cEF1dGhE
aWFsb2cpKQotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7
Ci19IFdlYktpdFNvdXBBdXRoRGlhbG9nOwotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgR09iamVj
dENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIEd0a1dpZGdldCogKCpjdXJyZW50X3RvcGxldmVs
KSAoV2ViS2l0U291cEF1dGhEaWFsb2cqIGF1dGhEaWFsb2csIFNvdXBNZXNzYWdlKiBtZXNzYWdl
KTsKLX0gV2ViS2l0U291cEF1dGhEaWFsb2dDbGFzczsKLQotV0VCS0lUX0FQSSBHVHlwZQotd2Vi
a2l0X3NvdXBfYXV0aF9kaWFsb2dfZ2V0X3R5cGUgKHZvaWQpOwotCi1HX0VORF9ERUNMUwotCi0j
ZW5kaWYgLyogd2Via2l0c291cGF1dGhkaWFsb2dfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMGVkNzMxNS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0c3BlbGxjaGVja2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBACi0vKgot
ICogIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgotICoKLSAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwot
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIndlYmtpdHNwZWxsY2hl
Y2tlci5oIgotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0c3BlbGxjaGVja2VyCi0gKiBAc2hvcnRf
ZGVzY3JpcHRpb246IHRoZSBzcGVsbCBjaGVja2luZyBBUEkgZm9yIFdlYktpdAotICoKLSAqICNX
ZWJLaXRTcGVsbENoZWNrZXIgcHJvdmlkZXMgQVBJcyBmb3IgdGhlIHNwZWxsIGNoZWNraW5nCi0g
KiBmdW5jdGlvbmFsaXR5IHVzZWQgaW50ZXJuYWxseSBieSBXZWJLaXQgdG8gcGVyZm9ybSBzcGVs
bCBjaGVja2luZwotICogaW4gZWRpdGFibGUgYXJlYXMuIFRoaXMgY2FuIGJlIHVzZWQsIGZvciBl
eGFtcGxlLCBieSBicm93c2VycyB0bwotICogaW1wbGVtZW50IGN1c3RvbSBzcGVsbCBjaGVja2lu
ZyBjb250ZXh0IG1lbnVzIG9yIHNvcGhpc3RpY2F0ZWQKLSAqIGF1dG8tY29ycmVjdCBmZWF0dXJl
cy4KLSAqLwotCi1HX0RFRklORV9JTlRFUkZBQ0UoV2ViS2l0U3BlbGxDaGVja2VyLCB3ZWJraXRf
c3BlbGxfY2hlY2tlciwgR19UWVBFX09CSkVDVCk7Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9zcGVs
bF9jaGVja2VyX2RlZmF1bHRfaW5pdChXZWJLaXRTcGVsbENoZWNrZXJJbnRlcmZhY2UqKQotewot
fQotCi0vKioKLSAqIHdlYmtpdF9zcGVsbF9jaGVja2VyX2NoZWNrX3NwZWxsaW5nX29mX3N0cmlu
ZzoKLSAqIEBjaGVja2VyOiBhICNXZWJLaXRTcGVsbENoZWNrZXIKLSAqIEBzdHJpbmc6IHRoZSBz
dHJpbmcgdG8gY2hlY2sgZm9yIG1pc3NwZWxsaW5ncwotICogQG1pc3NwZWxsaW5nX2xvY2F0aW9u
OiAob3V0KSAoYWxsb3ctbm9uZSk6IGEgcG9pbnRlciB0byBhbiBpbnRlZ2VyIHRvIHN0b3JlIHRo
ZSBsb2NhdGlvbiBvZiB0aGUgZmlyc3QgbWlzc3BlbGxpbmcKLSAqIEBtaXNzcGVsbGluZ19sZW5n
dGg6IChvdXQpIChhbGxvdy1ub25lKTogYSBwb2ludGVyIHRvIGFuIGludGVnZXIgdG8gc3RvcmUg
dGhlIGxlbmd0aCBvZiB0aGUgZmlyc3QgbWlzc3BlbGxpbmcKLSAqCi0gKiBDaGVja3MgQHN0cmlu
ZyBmb3IgbWlzc3BlbGxpbmdzIHVzaW5nIEBjaGVja2VyLCBzdG9yaW5nIHRoZQotICogbG9jYXRp
b24gYW5kIGxlbmd0aCBvZiB0aGUgZmlyc3QgbWlzc3BlbGxpbmcgaW4KLSAqIEBtaXNzcGVsbGlu
Z19sb2NhdGlvbiBhbmQgQG1pc3NwZWxsaW5nX2xlbmd0aCByZXNwZWN0aXZlbHkuCi0gKgotICog
U2luY2U6IDEuNS4xCi0gKiovCi12b2lkIHdlYmtpdF9zcGVsbF9jaGVja2VyX2NoZWNrX3NwZWxs
aW5nX29mX3N0cmluZyhXZWJLaXRTcGVsbENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0IGNoYXIqIHN0
cmluZywgaW50KiBtaXNzcGVsbGluZ19sb2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ19sZW5ndGgp
Ci17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfU1BFTExfQ0hFQ0tFUihjaGVja2Vy
KSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChzdHJpbmcpOwotCi0gICAgV2ViS2l0U3BlbGxDaGVj
a2VySW50ZXJmYWNlKiBpbnRlcmZhY2UgPSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9HRVRfSUZBQ0Uo
Y2hlY2tlcik7Ci0gICAgaWYgKGludGVyZmFjZS0+Y2hlY2tfc3BlbGxpbmdfb2Zfc3RyaW5nKQot
ICAgICAgICBpbnRlcmZhY2UtPmNoZWNrX3NwZWxsaW5nX29mX3N0cmluZyhjaGVja2VyLCBzdHJp
bmcsIG1pc3NwZWxsaW5nX2xvY2F0aW9uLCBtaXNzcGVsbGluZ19sZW5ndGgpOwotfQotCi0vKioK
LSAqIHdlYmtpdF9zcGVsbF9jaGVja2VyX2dldF9ndWVzc2VzX2Zvcl93b3JkOgotICogQGNoZWNr
ZXI6IGEgI1dlYktpdFNwZWxsQ2hlY2tlcgotICogQHdvcmQ6IHRoZSBtaXNzcGVsbGVkIHdvcmQK
LSAqIEBjb250ZXh0OiAoYWxsb3ctbm9uZSk6IHRoZSBzdXJyb3VuZGluZyBjb250ZXh0IG9mIHRo
ZSBtaXNzcGVsbGVkIHdvcmQKLSAqCi0gKiBSZXR1cm5zIGEgJU5VTEwtdGVybWluYXRlZCBhcnJh
eSBvZiBndWVzc2VzIGZvciBjb3JyZWN0aW9ucyBvZiB0aGUKLSAqIG1pc3NwZWxsZWQgd29yZCBA
d29yZC4KLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IGEgbmV3bHkgYWxsb2NhdGVk
ICVOVUxMLXRlcm1pbmF0ZWQgYXJyYXkKLSAqIG9mIHN1Z2dlc3RlZCBjb3JyZWN0aW9ucyBmb3Ig
YSBtaXNzcGVsbGVkIHdvcmQgQHdvcmQuIEZyZWUgaXQgd2l0aAotICogJWdfc3RyZnJlZXYgd2hl
biBkb25lIHdpdGggaXQuCi0gKgotICogU2luY2U6IDEuNS4xCi0gKiovCi1jaGFyKiogd2Via2l0
X3NwZWxsX2NoZWNrZXJfZ2V0X2d1ZXNzZXNfZm9yX3dvcmQoV2ViS2l0U3BlbGxDaGVja2VyKiBj
aGVja2VyLCBjb25zdCBjaGFyKiB3b3JkLCBjb25zdCBjaGFyKiBjb250ZXh0KQotewotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TUEVMTF9DSEVDS0VSKGNoZWNrZXIpLCAwKTsK
LSAgICBnX3JldHVybl92YWxfaWZfZmFpbCh3b3JkLCAwKTsKLQotICAgIFdlYktpdFNwZWxsQ2hl
Y2tlckludGVyZmFjZSogaW50ZXJmYWNlID0gV0VCS0lUX1NQRUxMX0NIRUNLRVJfR0VUX0lGQUNF
KGNoZWNrZXIpOwotICAgIGlmIChpbnRlcmZhY2UtPmdldF9ndWVzc2VzX2Zvcl93b3JkKQotICAg
ICAgICByZXR1cm4gaW50ZXJmYWNlLT5nZXRfZ3Vlc3Nlc19mb3Jfd29yZChjaGVja2VyLCB3b3Jk
LCBjb250ZXh0KTsKLQotICAgIHJldHVybiAwOwotfQotCi0vKioKLSAqIHdlYmtpdF9zcGVsbF9j
aGVja2VyX3VwZGF0ZV9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXM6Ci0gKiBAY2hlY2tlcjogYSAj
V2ViS2l0U3BlbGxDaGVja2VyCi0gKiBAbGFuZ3VhZ2VzOiAoYWxsb3ctbm9uZSk6IGEgc3RyaW5n
IG9mIGxhbmd1YWdlcyB0byB1c2UgZm9yIEBjaGVja2VyCi0gKgotICogU2V0cyBAbGFuZ3VhZ2Vz
IGFzIHRoZSBsaXN0IG9mIGxhbmd1YWdlcyB0byB1c2UgYnkgQGNoZWNrZXIuIFRoZQotICogYWNj
ZXB0ZWQgZm9ybWF0IGlzIGEgbGlzdCBvZiBjb21tYSAoJywnKSBzZXBhcmF0ZWQgbGFuZ3VhZ2Ug
Y29kZXMKLSAqIG9mIHRoZSBmb3JtICdlbl9VUycsIGllLCBsYW5ndWFnZV9WQVJJQU5ULgotICoK
LSAqIFNpbmNlOiAxLjUuMQotICoqLwotdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl91cGRhdGVf
c3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKFdlYktpdFNwZWxsQ2hlY2tlciogY2hlY2tlciwgY29u
c3QgY2hhciogbGFuZ3VhZ2VzKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1NQ
RUxMX0NIRUNLRVIoY2hlY2tlcikpOwotCi0gICAgV2ViS2l0U3BlbGxDaGVja2VySW50ZXJmYWNl
KiBpbnRlcmZhY2UgPSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9HRVRfSUZBQ0UoY2hlY2tlcik7Ci0g
ICAgaWYgKGludGVyZmFjZS0+dXBkYXRlX3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcykKLSAgICAg
ICAgaW50ZXJmYWNlLT51cGRhdGVfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKGNoZWNrZXIsIGxh
bmd1YWdlcyk7Ci19Ci0KLS8qKgotICogd2Via2l0X3NwZWxsX2NoZWNrZXJfZ2V0X2F1dG9jb3Jy
ZWN0X3N1Z2dlc3Rpb25zX2Zvcl9taXNzcGVsbGVkX3dvcmQ6Ci0gKiBAY2hlY2tlcjogYSAjV2Vi
S2l0U3BlbGxDaGVja2VyCi0gKiBAd29yZDogYSBtaXNzcGVsbGVkIHdvcmQKLSAqCi0gKiBSZXR1
cm5zIGEgc3VnZ2VzdGlvbiBmb3IgYSB3b3JkIHRvIHVzZSBpbiBhbiAiYXV0b2NvcnJlY3QiIGZl
YXR1cmUuCi0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiB0aGUgc3VnZ2VzdGlvbiBm
b3IgdGhlIGF1dG9jb3JyZWN0aW9uIG9mCi0gKiBAd29yZAotICoKLSAqIFNpbmNlOiAxLjUuMQot
ICoqLwotY2hhciogd2Via2l0X3NwZWxsX2NoZWNrZXJfZ2V0X2F1dG9jb3JyZWN0X3N1Z2dlc3Rp
b25zX2Zvcl9taXNzcGVsbGVkX3dvcmQoV2ViS2l0U3BlbGxDaGVja2VyKiBjaGVja2VyLCBjb25z
dCBjaGFyKiB3b3JkKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TUEVM
TF9DSEVDS0VSKGNoZWNrZXIpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCh3b3JkLCAw
KTsKLQotICAgIFdlYktpdFNwZWxsQ2hlY2tlckludGVyZmFjZSogaW50ZXJmYWNlID0gV0VCS0lU
X1NQRUxMX0NIRUNLRVJfR0VUX0lGQUNFKGNoZWNrZXIpOwotICAgIGlmIChpbnRlcmZhY2UtPmdl
dF9hdXRvY29ycmVjdF9zdWdnZXN0aW9uc19mb3JfbWlzc3BlbGxlZF93b3JkKQotICAgICAgICBy
ZXR1cm4gaW50ZXJmYWNlLT5nZXRfYXV0b2NvcnJlY3Rfc3VnZ2VzdGlvbnNfZm9yX21pc3NwZWxs
ZWRfd29yZChjaGVja2VyLCB3b3JkKTsKLQotICAgIHJldHVybiAwOwotfQotCi0vKioKLSAqIHdl
YmtpdF9zcGVsbF9jaGVja2VyX2xlYXJuX3dvcmQ6Ci0gKiBAY2hlY2tlcjogYSAjV2ViS2l0U3Bl
bGxDaGVja2VyCi0gKiBAd29yZDogdGhlIHdvcmQgdG8gbGVhcm4KLSAqCi0gKiBJbnN0cnVjdHMg
dGhlIEBjaGVja2VyIHRvIGFkZCBAd29yZCB0byBpdHMgZGljdGlvbmFyeSBhcyBhIHByb3Blcmx5
Ci0gKiBzcGVsbGVkIHdvcmQuIFRoZSB3b3JkIHdpbGwgYmUgbGVhcm5lZCBwZXJtYW5lbnRseSBp
biB0aGUgdXNlcidzCi0gKiBwZXJzb25hbCBkaWN0aW9uYXJ5LgotICoKLSAqIFNpbmNlOiAxLjUu
MQotICoqLwotdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9sZWFybl93b3JkKFdlYktpdFNwZWxs
Q2hlY2tlciogY2hlY2tlciwgY29uc3QgY2hhciogd29yZCkKLXsKLSAgICBnX3JldHVybl9pZl9m
YWlsKFdFQktJVF9JU19TUEVMTF9DSEVDS0VSKGNoZWNrZXIpKTsKLSAgICBnX3JldHVybl9pZl9m
YWlsKHdvcmQpOwotCi0gICAgV2ViS2l0U3BlbGxDaGVja2VySW50ZXJmYWNlKiBpbnRlcmZhY2Ug
PSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9HRVRfSUZBQ0UoY2hlY2tlcik7Ci0gICAgaWYgKGludGVy
ZmFjZS0+bGVhcm5fd29yZCkKLSAgICAgICAgaW50ZXJmYWNlLT5sZWFybl93b3JkKGNoZWNrZXIs
IHdvcmQpOwotfQotCi0vKioKLSAqIHdlYmtpdF9zcGVsbF9jaGVja2VyX2lnbm9yZV93b3JkOgot
ICogQGNoZWNrZXI6IGEgI1dlYktpdFNwZWxsQ2hlY2tlcgotICogQHdvcmQ6IHRoZSB3b3JkIHRv
IGlnbm9yZQotICoKLSAqIEluc3RydWN0cyB0aGUgQGNoZWNrZXIgdG8gaWdub3JlIEB3b3JkIGFz
IGEgbWlzc3BlbGxpbmcgZm9yIHRoaXMKLSAqIHNlc3Npb24uCi0gKgotICogU2luY2U6IDEuNS4x
Ci0gKiovCi12b2lkIHdlYmtpdF9zcGVsbF9jaGVja2VyX2lnbm9yZV93b3JkKFdlYktpdFNwZWxs
Q2hlY2tlciogY2hlY2tlciwgY29uc3QgY2hhciogd29yZCkKLXsKLSAgICBnX3JldHVybl9pZl9m
YWlsKFdFQktJVF9JU19TUEVMTF9DSEVDS0VSKGNoZWNrZXIpKTsKLSAgICBnX3JldHVybl9pZl9m
YWlsKHdvcmQpOwotCi0gICAgV2ViS2l0U3BlbGxDaGVja2VySW50ZXJmYWNlKiBpbnRlcmZhY2Ug
PSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9HRVRfSUZBQ0UoY2hlY2tlcik7Ci0gICAgaWYgKGludGVy
ZmFjZS0+aWdub3JlX3dvcmQpCi0gICAgICAgIGludGVyZmFjZS0+aWdub3JlX3dvcmQoY2hlY2tl
ciwgd29yZCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
c3BlbGxjaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVj
a2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkZjk1NjEuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEg
Uy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
LwotCi0jaWZuZGVmIHdlYmtpdHNwZWxsY2hlY2tlcl9oCi0jZGVmaW5lIHdlYmtpdHNwZWxsY2hl
Y2tlcl9oCi0KLSNpbmNsdWRlICJ3ZWJraXRkZWZpbmVzLmgiCi0jaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9UWVBFX1NQRUxMX0NIRUNL
RVIgICAgICAgICAgICh3ZWJraXRfc3BlbGxfY2hlY2tlcl9nZXRfdHlwZSgpKQotI2RlZmluZSBX
RUJLSVRfU1BFTExfQ0hFQ0tFUihvYmopICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNF
X0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1NQRUxMX0NIRUNLRVIsIFdlYktpdFNwZWxsQ2hlY2tl
cikpCi0jZGVmaW5lIFdFQktJVF9JU19TUEVMTF9DSEVDS0VSKG9iaikgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIFdFQktJVF9UWVBFX1NQRUxMX0NIRUNLRVIpKQot
I2RlZmluZSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9HRVRfSUZBQ0Uob2JqKSAoR19UWVBFX0lOU1RB
TkNFX0dFVF9JTlRFUkZBQ0UgKChvYmopLCBXRUJLSVRfVFlQRV9TUEVMTF9DSEVDS0VSLCBXZWJL
aXRTcGVsbENoZWNrZXJJbnRlcmZhY2UpKQotCi1zdHJ1Y3QgX1dlYktpdFNwZWxsQ2hlY2tlcklu
dGVyZmFjZSB7Ci0gICAgR1R5cGVJbnRlcmZhY2UgZ19pZmFjZTsKLQotICAgIHZvaWQgICAoKmNo
ZWNrX3NwZWxsaW5nX29mX3N0cmluZykgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U3Bl
bGxDaGVja2VyKiBjaGVja2VyLCBjb25zdCBjaGFyKiBzdHJpbmcsIGludCogbWlzc3BlbGxpbmdf
bG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdfbGVuZ3RoKTsKLSAgICBjaGFyKiogKCpnZXRfZ3Vl
c3Nlc19mb3Jfd29yZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFNwZWxsQ2hl
Y2tlciogY2hlY2tlciwgY29uc3QgY2hhciogd29yZCwgY29uc3QgY2hhciogY29udGV4dCk7Ci0g
ICAgdm9pZCAgICgqdXBkYXRlX3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcykgICAgICAgICAgICAg
ICAgIChXZWJLaXRTcGVsbENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0IGNoYXIqIGxhbmd1YWdlcyk7
Ci0gICAgY2hhciogICgqZ2V0X2F1dG9jb3JyZWN0X3N1Z2dlc3Rpb25zX2Zvcl9taXNzcGVsbGVk
X3dvcmQpIChXZWJLaXRTcGVsbENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0IGNoYXIqIHdvcmQpOwot
ICAgIHZvaWQgICAoKmxlYXJuX3dvcmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0U3BlbGxDaGVja2VyKiBjaGVja2VyLCBjb25zdCBjaGFyKiB3b3JkKTsKLSAg
ICB2b2lkICAgKCppZ25vcmVfd29yZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFNwZWxsQ2hlY2tlciogY2hlY2tlciwgY29uc3QgY2hhciogd29yZCk7Ci19Owot
Ci1XRUJLSVRfQVBJIEdUeXBlICAgd2Via2l0X3NwZWxsX2NoZWNrZXJfZ2V0X3R5cGUgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpIEdfR05VQ19DT05TVDsKLQot
V0VCS0lUX0FQSSB2b2lkICAgIHdlYmtpdF9zcGVsbF9jaGVja2VyX2NoZWNrX3NwZWxsaW5nX29m
X3N0cmluZyAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRTcGVsbENoZWNrZXIgKmNoZWNr
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAq
c3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAg
ICAgKm1pc3NwZWxsaW5nX2xvY2F0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgICAgICAgICAgICAgICAgKm1pc3NwZWxsaW5nX2xlbmd0aCk7Ci0KLVdFQktJVF9BUEkg
Y2hhcioqICB3ZWJraXRfc3BlbGxfY2hlY2tlcl9nZXRfZ3Vlc3Nlc19mb3Jfd29yZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0U3BlbGxDaGVja2VyICpjaGVja2VyLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgKndvcmQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAqY29udGV4dCk7
Ci0KLVdFQktJVF9BUEkgdm9pZCAgICB3ZWJraXRfc3BlbGxfY2hlY2tlcl91cGRhdGVfc3BlbGxf
Y2hlY2tpbmdfbGFuZ3VhZ2VzICAgICAgICAgICAgICAgICAoV2ViS2l0U3BlbGxDaGVja2VyICpj
aGVja2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAg
ICAgKmxhbmd1YWdlcyk7Ci0KLVdFQktJVF9BUEkgY2hhciogICB3ZWJraXRfc3BlbGxfY2hlY2tl
cl9nZXRfYXV0b2NvcnJlY3Rfc3VnZ2VzdGlvbnNfZm9yX21pc3NwZWxsZWRfd29yZCAoV2ViS2l0
U3BlbGxDaGVja2VyICpjaGVja2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyICAgICAgICAgKndvcmQpOwotCi1XRUJLSVRfQVBJIHZvaWQgICAgd2Via2l0X3Nw
ZWxsX2NoZWNrZXJfbGVhcm5fd29yZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFNwZWxsQ2hlY2tlciAqY2hlY2tlciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICp3b3JkKTsKLQotV0VCS0lUX0FQSSB2b2lkICAg
IHdlYmtpdF9zcGVsbF9jaGVja2VyX2lnbm9yZV93b3JkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRTcGVsbENoZWNrZXIgKmNoZWNrZXIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAqd29yZCk7Ci0KLUdfRU5EX0RF
Q0xTCi0KLSNlbmRpZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDJjZjE1YjEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNw
ZWxsY2hlY2tlcmVuY2hhbnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTM1ICswLDAgQEAKLS8q
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBTLkwuCi0gKgotICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
Ci0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAid2Via2l0c3BlbGxj
aGVja2VyZW5jaGFudC5oIgotCi0jaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCi0KLSNpbmNsdWRlICJU
ZXh0Q2hlY2tlckVuY2hhbnQuaCIKLSNpbmNsdWRlICJ3ZWJraXRzcGVsbGNoZWNrZXIuaCIKLSNp
bmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLS8qKgotICog
U0VDVElPTjp3ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50Ci0gKiBAc2hvcnRfZGVzY3JpcHRpb246
IHRoZSBkZWZhdWx0IHNwZWxsIGNoZWNraW5nIGltcGxlbWVudGF0aW9uIGZvciBXZWJLaXRHVEsr
LgotICoKLSAqICNXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50IGlzIHRoZSBkZWZhdWx0IHNwZWxs
IGNoZWNraW5nIGltcGxlbWVudGF0aW9uIGZvcgotICogV2ViS2l0R1RLKy4gSXQgdXNlcyB0aGUg
RW5jaGFudCBkaWN0aW9uYXJpZXMgaW5zdGFsbGVkIG9uIHRoZSBzeXN0ZW0gdG8KLSAqIGNvcnJl
Y3Qgc3BlbGxpbmcuCi0gKi8KLQotc3RydWN0IF9XZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJp
dmF0ZSB7Ci0gICAgT3duUHRyPFRleHRDaGVja2VyRW5jaGFudD4gdGV4dENoZWNrZXJFbmNoYW50
OwotfTsKLQotc3RhdGljIHZvaWQgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9zcGVsbF9j
aGVja2VyX2ludGVyZmFjZV9pbml0KFdlYktpdFNwZWxsQ2hlY2tlckludGVyZmFjZSogY2hlY2tl
ckludGVyZmFjZSk7Ci0KLUdfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdFNwZWxsQ2hlY2tl
ckVuY2hhbnQsIHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnQsIEdfVFlQRV9PQkpFQ1QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX1RZUEVf
U1BFTExfQ0hFQ0tFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X3NwZWxsX2NoZWNrZXJfaW50ZXJmYWNl
X2luaXQpKQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X2ZpbmFs
aXplKEdPYmplY3QqIG9iamVjdCkKLXsKLSAgICBXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJp
dmF0ZSogcHJpdiA9IFdFQktJVF9TUEVMTF9DSEVDS0VSX0VOQ0hBTlQob2JqZWN0KS0+cHJpdjsK
LSAgICBwcml2LT5+V2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudFByaXZhdGUoKTsKLX0KLQotc3Rh
dGljIHZvaWQgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9jbGFzc19pbml0KFdlYktpdFNw
ZWxsQ2hlY2tlckVuY2hhbnRDbGFzcyoga2xhc3MpCi17Ci0gICAgR09iamVjdENsYXNzKiBvYmpl
Y3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKLSAgICBvYmplY3RDbGFzcy0+ZmluYWxp
emUgPSB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X2ZpbmFsaXplOwotICAgIGdfdHlwZV9j
bGFzc19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9mKFdlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQ
cml2YXRlKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRf
aW5pdChXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50KiBjaGVja2VyKQotewotICAgIFdlYktpdFNw
ZWxsQ2hlY2tlckVuY2hhbnRQcml2YXRlKiBwcml2ID0gR19UWVBFX0lOU1RBTkNFX0dFVF9QUklW
QVRFKGNoZWNrZXIsIFdFQktJVF9UWVBFX1NQRUxMX0NIRUNLRVJfRU5DSEFOVCwgV2ViS2l0U3Bl
bGxDaGVja2VyRW5jaGFudFByaXZhdGUpOwotICAgIGNoZWNrZXItPnByaXYgPSBwcml2OwotICAg
IG5ldyAocHJpdikgV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudFByaXZhdGUoKTsKLQotICAgIHBy
aXYtPnRleHRDaGVja2VyRW5jaGFudCA9IFRleHRDaGVja2VyRW5jaGFudDo6Y3JlYXRlKCk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhXZWJLaXRTcGVsbENoZWNrZXIq
IGNoZWNrZXIsIGNvbnN0IGNoYXIqIHN0cmluZywgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBp
bnQqIG1pc3NwZWxsaW5nTGVuZ3RoKQotewotICAgIFdlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQ
cml2YXRlKiBwcml2ID0gV0VCS0lUX1NQRUxMX0NIRUNLRVJfRU5DSEFOVChjaGVja2VyKS0+cHJp
djsKLSAgICBwcml2LT50ZXh0Q2hlY2tlckVuY2hhbnQtPmNoZWNrU3BlbGxpbmdPZlN0cmluZyhT
dHJpbmc6OmZyb21VVEY4KHN0cmluZyksICptaXNzcGVsbGluZ0xvY2F0aW9uLCAqbWlzc3BlbGxp
bmdMZW5ndGgpOwotfQotCi1zdGF0aWMgY2hhcioqIGdldEd1ZXNzZXNGb3JXb3JkKFdlYktpdFNw
ZWxsQ2hlY2tlciogY2hlY2tlciwgY29uc3QgY2hhciogd29yZCwgY29uc3QgY2hhciogLyogY29u
dGV4dCAqLykKLXsKLSAgICBXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSogcHJpdiA9
IFdFQktJVF9TUEVMTF9DSEVDS0VSX0VOQ0hBTlQoY2hlY2tlciktPnByaXY7Ci0KLSAgICBWZWN0
b3I8U3RyaW5nPiBndWVzc2VzID0gcHJpdi0+dGV4dENoZWNrZXJFbmNoYW50LT5nZXRHdWVzc2Vz
Rm9yV29yZChTdHJpbmc6OmZyb21VVEY4KHdvcmQpKTsKLQotICAgIGlmIChndWVzc2VzLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpbnQgaSA9IDA7Ci0gICAgaW50IG51bWJl
ck9mR3Vlc3NlcyA9IGd1ZXNzZXMuc2l6ZSgpOwotICAgIGNoYXIqKiBndWVzc2VzQXJyYXkgPSBz
dGF0aWNfY2FzdDxjaGFyKio+KGdfbWFsbG9jMCgobnVtYmVyT2ZHdWVzc2VzICsgMSkgKiBzaXpl
b2YoY2hhciopKSk7Ci0gICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXRl
ciA9IGd1ZXNzZXMuYmVnaW4oKTsgaXRlciAhPSBndWVzc2VzLmVuZCgpOyArK2l0ZXIpCi0gICAg
ICAgIGd1ZXNzZXNBcnJheVtpKytdID0gZ19zdHJkdXAoaXRlci0+dXRmOCgpLmRhdGEoKSk7Ci0g
ICAgZ3Vlc3Nlc0FycmF5W2ldID0gMDsKLQotICAgIHJldHVybiBndWVzc2VzQXJyYXk7Ci19Ci0K
LXN0YXRpYyB2b2lkIHVwZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMoV2ViS2l0U3BlbGxDaGVj
a2VyKiBjaGVja2VyLCBjb25zdCBjaGFyKiBsYW5ndWFnZXMpCi17Ci0gICAgV2ViS2l0U3BlbGxD
aGVja2VyRW5jaGFudFByaXZhdGUqIHByaXYgPSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9FTkNIQU5U
KGNoZWNrZXIpLT5wcml2OwotCi0gICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzVmVjdG9yOwot
ICAgIFN0cmluZzo6ZnJvbVVURjgobGFuZ3VhZ2VzKS5zcGxpdChzdGF0aWNfY2FzdDxVQ2hhcj4o
JywnKSwgbGFuZ3VhZ2VzVmVjdG9yKTsKLSAgICBwcml2LT50ZXh0Q2hlY2tlckVuY2hhbnQtPnVw
ZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMobGFuZ3VhZ2VzVmVjdG9yKTsKLX0KLQotc3RhdGlj
IGNoYXIqIGdldEF1dG9jb3JyZWN0U3VnZ2VzdGlvbnNGb3JNaXNzcGVsbGVkV29yZChXZWJLaXRT
cGVsbENoZWNrZXIqLCBjb25zdCBjaGFyKiAvKiB3b3JkICovKQotewotICAgIHJldHVybiAwOwot
fQotCi1zdGF0aWMgdm9pZCBsZWFybldvcmQoV2ViS2l0U3BlbGxDaGVja2VyKiBjaGVja2VyLCBj
b25zdCBjaGFyKiB3b3JkKQotewotICAgIFdlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQcml2YXRl
KiBwcml2ID0gV0VCS0lUX1NQRUxMX0NIRUNLRVJfRU5DSEFOVChjaGVja2VyKS0+cHJpdjsKLSAg
ICBwcml2LT50ZXh0Q2hlY2tlckVuY2hhbnQtPmxlYXJuV29yZChTdHJpbmc6OmZyb21VVEY4KHdv
cmQpKTsKLX0KLQotc3RhdGljIHZvaWQgaWdub3JlV29yZChXZWJLaXRTcGVsbENoZWNrZXIqIGNo
ZWNrZXIsIGNvbnN0IGNoYXIqIHdvcmQpCi17Ci0gICAgV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFu
dFByaXZhdGUqIHByaXYgPSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9FTkNIQU5UKGNoZWNrZXIpLT5w
cml2OwotICAgIHByaXYtPnRleHRDaGVja2VyRW5jaGFudC0+aWdub3JlV29yZChTdHJpbmc6OmZy
b21VVEY4KHdvcmQpKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5j
aGFudF9zcGVsbF9jaGVja2VyX2ludGVyZmFjZV9pbml0KFdlYktpdFNwZWxsQ2hlY2tlckludGVy
ZmFjZSogY2hlY2tlckludGVyZmFjZSkKLXsKLSAgICBjaGVja2VySW50ZXJmYWNlLT5jaGVja19z
cGVsbGluZ19vZl9zdHJpbmcgPSBjaGVja1NwZWxsaW5nT2ZTdHJpbmc7Ci0gICAgY2hlY2tlcklu
dGVyZmFjZS0+Z2V0X2d1ZXNzZXNfZm9yX3dvcmQgPSBnZXRHdWVzc2VzRm9yV29yZDsKLSAgICBj
aGVja2VySW50ZXJmYWNlLT51cGRhdGVfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzID0gdXBkYXRl
U3BlbGxDaGVja2luZ0xhbmd1YWdlczsKLSAgICBjaGVja2VySW50ZXJmYWNlLT5nZXRfYXV0b2Nv
cnJlY3Rfc3VnZ2VzdGlvbnNfZm9yX21pc3NwZWxsZWRfd29yZCA9IGdldEF1dG9jb3JyZWN0U3Vn
Z2VzdGlvbnNGb3JNaXNzcGVsbGVkV29yZDsKLSAgICBjaGVja2VySW50ZXJmYWNlLT5sZWFybl93
b3JkID0gbGVhcm5Xb3JkOwotICAgIGNoZWNrZXJJbnRlcmZhY2UtPmlnbm9yZV93b3JkID0gaWdu
b3JlV29yZDsKLX0KLQotI2VuZGlmIC8qIEVOQUJMRShTUEVMTENIRUNLKSAqLwotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5o
IGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTJlMWJjYS4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEg
Uy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
LwotCi0jaWZuZGVmIHdlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnRfaAotI2RlZmluZSB3ZWJraXRz
cGVsbGNoZWNrZXJlbmNoYW50X2gKLQotI2lmIEVOQUJMRShTUEVMTENIRUNLKQotCi0jaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotCi1H
X0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUgV0VCS0lUX1RZUEVfU1BFTExfQ0hFQ0tFUl9FTkNIQU5U
ICAgICAgICAgICAgKHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfZ2V0X3R5cGUoKSkKLSNk
ZWZpbmUgV0VCS0lUX1NQRUxMX0NIRUNLRVJfRU5DSEFOVChvYmopICAgICAgICAgICAgKEdfVFlQ
RV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9TUEVMTF9DSEVDS0VSX0VO
Q0hBTlQsIFdlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnQpKQotI2RlZmluZSBXRUJLSVRfU1BFTExf
Q0hFQ0tFUl9FTkNIQU5UX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1Qo
KGtsYXNzKSwgIFdFQktJVF9UWVBFX1NQRUxMX0NIRUNLRVJfRU5DSEFOVCwgV2ViS2l0U3BlbGxD
aGVja2VyRW5jaGFudENsYXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1NQRUxMX0NIRUNLRVJfRU5D
SEFOVChvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJL
SVRfVFlQRV9TUEVMTF9DSEVDS0VSX0VOQ0hBTlQpKQotI2RlZmluZSBXRUJLSVRfSVNfU1BFTExf
Q0hFQ0tFUl9FTkNIQU5UX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIFdFQktJVF9UWVBFX1NQRUxMX0NIRUNLRVJfRU5DSEFOVCkpCi0jZGVmaW5lIFdFQktJ
VF9TUEVMTF9DSEVDS0VSX0VOQ0hBTlRfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0Vf
R0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfU1BFTExfQ0hFQ0tFUl9FTkNIQU5ULCBXZWJL
aXRTcGVsbENoZWNrZXJFbmNoYW50Q2xhc3MpKQotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0U3Bl
bGxDaGVja2VyRW5jaGFudCBXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50OwotdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRDbGFzcyBXZWJLaXRTcGVsbENoZWNrZXJFbmNo
YW50Q2xhc3M7Ci10eXBlZGVmIHN0cnVjdCBfV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudFByaXZh
dGUgV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudFByaXZhdGU7Ci0KLXN0cnVjdCBfV2ViS2l0U3Bl
bGxDaGVja2VyRW5jaGFudCB7Ci0gICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7Ci0KLSAgICAv
KjwgcHJpdmF0ZSA+Ki8KLSAgICBXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSAqcHJp
djsKLX07Ci0KLXN0cnVjdCBfV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudENsYXNzIHsKLSAgICBH
T2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwotfTsKLQotV0VCS0lUX0FQSSBHVHlwZSB3ZWJraXRf
c3BlbGxfY2hlY2tlcl9lbmNoYW50X2dldF90eXBlKHZvaWQpOwotCi1HX0VORF9ERUNMUwotCi0j
ZW5kaWYgLyogRU5BQkxFKFNQRUxMQ0hFQ0spICovCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHZlcnNpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2Mjc1MGY1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR2
ZXJzaW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AaW1lbmRpby5jb20+Ci0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJ3ZWJraXR2ZXJzaW9uLmgiCi0KLS8qKgotICogd2Vi
a2l0X21ham9yX3ZlcnNpb246Ci0gKgotICogVGhlIG1ham9yIHZlcnNpb24gbnVtYmVyIG9mIHRo
ZSBXZWJLaXQgdGhhdCBpcyBsaW5rZWQgYWdhaW5zdC4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6IFRo
ZSBtYWpvciB2ZXJzaW9uCi0gKgotICogU2luY2U6IDEuMC4xCi0gKi8KLWd1aW50IHdlYmtpdF9t
YWpvcl92ZXJzaW9uKCkKLXsKLSAgICByZXR1cm4gV0VCS0lUX01BSk9SX1ZFUlNJT047Ci19Ci0K
LS8qKgotICogd2Via2l0X21pbm9yX3ZlcnNpb246Ci0gKgotICogVGhlIG1pbm9yIHZlcnNpb24g
bnVtYmVyIG9mIHRoZSBXZWJLaXQgdGhhdCBpcyBsaW5rZWQgYWdhaW5zdC4KLSAqCi0gKiBSZXR1
cm4gdmFsdWU6IFRoZSBtaW5vciB2ZXJzaW9uCi0gKgotICogU2luY2U6IDEuMC4xCi0gKi8KLWd1
aW50IHdlYmtpdF9taW5vcl92ZXJzaW9uKCkKLXsKLSAgICByZXR1cm4gV0VCS0lUX01JTk9SX1ZF
UlNJT047Ci19Ci0KLS8qKgotICogd2Via2l0X21pY3JvX3ZlcnNpb246Ci0gKgotICogVGhlIG1p
Y3JvIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBXZWJLaXQgdGhhdCBpcyBsaW5rZWQgYWdhaW5zdC4K
LSAqCi0gKiBSZXR1cm4gdmFsdWU6IFRoZSBtaWNybyB2ZXJzaW9uCi0gKgotICogU2luY2U6IDEu
MC4xCi0gKi8KLWd1aW50IHdlYmtpdF9taWNyb192ZXJzaW9uKCkKLXsKLSAgICByZXR1cm4gV0VC
S0lUX01JQ1JPX1ZFUlNJT047Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0dmVyc2lvbi5oLmluIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZl
cnNpb24uaC5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2M4OTMyNS4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmVyc2lvbi5oLmluCisrKyAv
ZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJp
c3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KLSAqCi0gKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJraXR2ZXJzaW9u
X2gKLSNkZWZpbmUgd2Via2l0dmVyc2lvbl9oCi0KLSNpbmNsdWRlIDxnbGliLmg+Ci0jaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdF
QktJVF9NQUpPUl9WRVJTSU9OIChAUFJPSkVDVF9WRVJTSU9OX1BBVENIQCkKLSNkZWZpbmUgV0VC
S0lUX01JTk9SX1ZFUlNJT04gKEBQUk9KRUNUX1ZFUlNJT05fTUlOT1JAKQotI2RlZmluZSBXRUJL
SVRfTUlDUk9fVkVSU0lPTiAoQFBST0pFQ1RfVkVSU0lPTl9QQVRDSEApCi0jZGVmaW5lIFdFQktJ
VF9VU0VSX0FHRU5UX01BSk9SX1ZFUlNJT04gKEBXRUJLSVRfVVNFUl9BR0VOVF9NQUpPUl9WRVJT
SU9OQCkKLSNkZWZpbmUgV0VCS0lUX1VTRVJfQUdFTlRfTUlOT1JfVkVSU0lPTiAoQFdFQktJVF9V
U0VSX0FHRU5UX01JTk9SX1ZFUlNJT05AKQotCi0vKioKLSAqIFdFQktJVEdUS19BUElfVkVSU0lP
TjogKHNraXApCi0gKi8KLSNkZWZpbmUgV0VCS0lUR1RLX0FQSV9WRVJTSU9OIChAV0VCS0lUR1RL
X0FQSV9WRVJTSU9OQCkKLQotI2RlZmluZSBXRUJLSVRfQ0hFQ0tfVkVSU0lPTihtYWpvciwgbWlu
b3IsIG1pY3JvKSBcCi0gIChXRUJLSVRfTUFKT1JfVkVSU0lPTiA+IChtYWpvcikgfHwgXAotICAo
V0VCS0lUX01BSk9SX1ZFUlNJT04gPT0gKG1ham9yKSAmJiBXRUJLSVRfTUlOT1JfVkVSU0lPTiA+
IChtaW5vcikpIHx8IFwKLSAgKFdFQktJVF9NQUpPUl9WRVJTSU9OID09IChtYWpvcikgJiYgV0VC
S0lUX01JTk9SX1ZFUlNJT04gPT0gKG1pbm9yKSAmJiBcCi0gIFdFQktJVF9NSUNST19WRVJTSU9O
ID49IChtaWNybykpKQotCi1XRUJLSVRfQVBJIGd1aW50Ci13ZWJraXRfbWFqb3JfdmVyc2lvbiAo
dm9pZCk7Ci0KLVdFQktJVF9BUEkgZ3VpbnQKLXdlYmtpdF9taW5vcl92ZXJzaW9uICh2b2lkKTsK
LQotV0VCS0lUX0FQSSBndWludAotd2Via2l0X21pY3JvX3ZlcnNpb24gKHZvaWQpOwotCi1XRUJL
SVRfQVBJIGdib29sZWFuCi13ZWJraXRfY2hlY2tfdmVyc2lvbiAoZ3VpbnQgbWFqb3IsIGd1aW50
IG1pbm9yLCBndWludCBtaWNybyk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ3YTUxYi4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDU3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEpvb25l
IEh1ciA8am9vbmVAa2xkcC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQ29sbGFib3JhIEx0
ZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIndlYmtpdHZpZXdwb3J0YXR0cmlidXRl
cy5oIgotCi0jaW5jbHVkZSAiQ2hyb21lLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJNYWluRnJhbWUuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAid2Via2l0Z2xv
YmFsc3ByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRl
LmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKLSNpbmNsdWRlIDxnbGliL2dp
MThuLWxpYi5oPgotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzCi0g
KiBAc2hvcnRfZGVzY3JpcHRpb246IFJlcHJlc2VudHMgdGhlIHZpZXdwb3J0IHByb3BlcnRpZXMg
b2YgYSB3ZWIgcGFnZQotICogQHNlZV9hbHNvOiAjV2ViS2l0V2ViVmlldzo6dmlld3BvcnQtYXR0
cmlidXRlcy1yZWNvbXB1dGUtcmVxdWVzdGVkLCAjV2ViS2l0V2ViVmlldzo6dmlld3BvcnQtYXR0
cmlidXRlcy1jaGFuZ2VkCi0gKgotICogI1dlYktpdFZpZXdwb3J0QXR0cmlidXRlcyBvZmZlcnMg
dGhlIHZpZXdwb3J0IHByb3BlcnRpZXMgdG8gdXNlciBhZ2VudHMgdG8KLSAqIGNvbnRyb2wgdGhl
IHZpZXdwb3J0IGxheW91dC4gSXQgY29udGFpbnMgdGhlIHZpZXdwb3J0IHNpemUsIGluaXRpYWwg
c2NhbGUgd2l0aCBsaW1pdHMsCi0gKiBhbmQgaW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciBhIHVz
ZXIgaXMgYWJsZSB0byBzY2FsZSB0aGUgY29udGVudHMgaW4gdGhlIHZpZXdwb3J0LgotICogVGhp
cyBtYWtlcyBhIHdlYiBwYWdlIGZpdCB0aGUgZGV2aWNlIHNjcmVlbi4KLSAqCi0gKiBUaGUgI1dl
YktpdFdlYlZpZXc6OnZpZXdwb3J0LWF0dHJpYnV0ZXMtY2hhbmdlZCBzaWduYWwgd2lsbCBiZSBl
bWl0dGVkIHdpdGggI1dlYktpdFZpZXdwb3J0QXR0cmlidXRlcwotICogd2hlbiB0aGUgdmlld3Bv
cnQgYXR0cmlidXRlcyBhcmUgdXBkYXRlZCBpbiB0aGUgY2FzZSBvZiBsb2FkaW5nIHdlYiBwYWdl
cyBjb250YWluCi0gKiB0aGUgdmlld3BvcnQgcHJvcGVydGllcyBhbmQgY2FsbGluZyB3ZWJraXRf
dmlld3BvcnRfYXR0cmlidXRlc19yZWNvbXB1dGUuCi0gKgotICogSWYgdGhlIGRldmljZSBzaXpl
LCBhdmFpbGFibGUgc2l6ZSwgZGVza3RvcCB3aWR0aCwgb3IgZGV2aWNlIERQSSBuZWVkcyB0byBi
ZSBjaGFuZ2VkIGR1ZSB0bwotICogYSBjb25zZXF1ZW5jZSBvZiBhbiBleHBsaWNpdCBicm93c2Vy
IHJlcXVlc3QgKGNhdXNlZCBieSBzY3JlZW4gcm90YXRpb24sIHJlc2l6aW5nLCBvciBzaW1pbGFy
IHJlYXNvbnMpLAotICogWW91IHNob3VsZCBjYWxsICN3ZWJraXRfdmlld3BvcnRfYXR0cmlidXRl
c19yZWNvbXB1dGUgdG8gcmVjb21wdXRlIHRoZSB2aWV3cG9ydCBwcm9wZXJ0aWVzIGFuZAotICog
b3ZlcnJpZGUgdGhvc2UgdmFsdWVzIGluIHRoZSBoYW5kbGVyIG9mICNXZWJLaXRXZWJWaWV3Ojp2
aWV3cG9ydC1hdHRyaWJ1dGVzLXJlY29tcHV0ZS1yZXF1ZXN0ZWQgc2lnbmFsLgotICoKLSAqIEZv
ciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSB2aWV3cG9ydCBwcm9wZXJ0aWVzLCByZWZlciB0byB0
aGUgU2FmYXJpIHJlZmVyZW5jZSBsaWJyYXJ5IGF0Ci0gKiBodHRwOi8vZGV2ZWxvcGVyLmFwcGxl
LmNvbS9zYWZhcmkvbGlicmFyeS9kb2N1bWVudGF0aW9uL2FwcGxlYXBwbGljYXRpb25zL3JlZmVy
ZW5jZS9zYWZhcmlodG1scmVmL2FydGljbGVzL21ldGF0YWdzLmh0bWwKLSAqCi0gKiA8aW5mb3Jt
YWxleGFtcGxlPjxwcm9ncmFtbGlzdGluZz4KLSAqIC88IS0tIC0tPiogQ29ubmVjdCB0byB0aGUg
dmlld3BvcnQtYXR0cmlidXRlcy1jaGFuZ2VzIHNpZ25hbCAqPCEtLSAtLT4vCi0gKiBXZWJLaXRW
aWV3cG9ydEF0dHJpYnV0ZXMqIGF0dHJpYnV0ZXMgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdw
b3J0X2F0dHJpYnV0ZXMgKHdlYl92aWV3KTsKLSAqIGdfc2lnbmFsX2Nvbm5lY3QgKHdlYl92aWV3
LCAidmlld3BvcnQtYXR0cmlidXRlcy1yZWNvbXB1dGUtcmVxdWVzdGVkIiwgR19DQUxMQkFDSyAo
dmlld3BvcnRfcmVjb21wdXRlX2NiKSwgd2luZG93KTsKLSAqIGdfc2lnbmFsX2Nvbm5lY3QgKHdl
Yl92aWV3LCAidmlld3BvcnQtYXR0cmlidXRlcy1jaGFuZ2VkIiwgR19DQUxMQkFDSyAodmlld3Bv
cnRfY2hhbmdlZF9jYiksIHdpbmRvdyk7Ci0gKiBnX3NpZ25hbF9jb25uZWN0IChhdHRyaWJ1dGVz
LCAibm90aWZ5Ojp2YWxpZCIsIEdfQ0FMTEJBQ0sgKHZpZXdwb3J0X3ZhbGlkX2NoYW5nZWRfY2Ip
LCB3ZWJfdmlldyk7Ci0gKgotICogLzwhLS0gLS0+KiBIYW5kbGUgdGhlIHZpZXdwb3J0LWF0dHJp
YnV0ZXMtcmVjb21wdXRlLXJlcXVlc3RlZCBzaWduYWwgdG8gb3ZlcnJpZGUgdGhlIGRldmljZSB3
aWR0aCAqPCEtLSAtLT4vCi0gKiBzdGF0aWMgdm9pZAotICogdmlld3BvcnRfcmVjb21wdXRlX2Ni
IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzKiBhdHRy
aWJ1dGVzLCBHdGtXaWRnZXQqIHdpbmRvdykKLSAqIHsKLSAqICAgICBpbnQgb3ZlcnJpZGVfYXZh
aWxhYmxlX3dpZHRoID0gNDgwOwotICogICAgIGdfb2JqZWN0X3NldCAoR19PQkpFQ1QoYXR0cmli
dXRlcyksICJhdmFpbGFibGUtd2lkdGgiLCBvdmVycmlkZV9hdmFpbGFibGVfd2lkdGgsIE5VTEwp
OwotICogfQotICoKLSAqIC88IS0tIC0tPiogSGFuZGxlIHRoZSB2aWV3cG9ydC1hdHRyaWJ1dGVz
LWNoYW5nZWQgc2lnbmFsIHRvIHJlY29tcHV0ZSB0aGUgaW5pdGlhbCBzY2FsZSBmYWN0b3IgKjwh
LS0gLS0+LwotICogc3RhdGljIHZvaWQKLSAqIHZpZXdwb3J0X2NoYW5nZWRfY2IgKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3LCBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMqIGF0dHJpYnV0ZXMsIGdw
b2ludGVyIGRhdGEpCi0gKiB7Ci0gKiAgICAgZ2Zsb2F0IGluaXRpYWxTY2FsZTsKLSAqICAgICBn
X29iamVjdF9nZXQgKEdfT0JKRUNUIChhdHJpYnV0ZXMpLCAiaW5pdGlhbC1zY2FsZS1mYWN0b3Ii
LCAmaW5pdGlhbFNjYWxlLCBOVUxMKTsKLSAqICAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3pvb21f
bGV2ZWwgKHdlYl92aWV3LCBpbml0aWFsU2NhbGUpOwotICogfQotICoKLSAqIC88IS0tIC0tPiog
SGFuZGxlIHRoZSBub3RpZnk6OnZhbGlkIHNpZ25hbCB0byBpbml0aWFsaXplIHRoZSB6b29tIGxl
dmVsICo8IS0tIC0tPi8KLSAqIHN0YXRpYyB2b2lkCi0gKiB2aWV3cG9ydF92YWxpZF9jaGFuZ2Vk
X2NiIChXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMqIGF0dHJpYnV0ZXMsIEdQYXJhbVNwZWMqIHBz
cGVjLCBXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldykKLSAqIHsKLSAqICAgICBnYm9vbGVhbiBpc192
YWxpZDsKLSAqICAgICBnX29iamVjdF9nZXQgKGF0dHJpYnV0ZXMsICJ2YWxpZCIsICZpc192YWxp
ZCwgTlVMTCk7Ci0gKiAgICAgaWYgKCFpc192YWxpZCkKLSAqICAgICAgICAgd2Via2l0X3dlYl92
aWV3X3NldF96b29tX2xldmVsICh3ZWJfdmlldywgMS4wKTsKLSAqIH0KLSAqIDwvcHJvZ3JhbWxp
c3Rpbmc+PC9pbmZvcm1hbGV4YW1wbGU+Ci0gKi8KLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1lbnVtIHsKLSAgICBQUk9QXzAsCi0KLSAgICBQ
Uk9QX0RFVklDRV9XSURUSCwKLSAgICBQUk9QX0RFVklDRV9IRUlHSFQsCi0gICAgUFJPUF9BVkFJ
TEFCTEVfV0lEVEgsCi0gICAgUFJPUF9BVkFJTEFCTEVfSEVJR0hULAotICAgIFBST1BfREVTS1RP
UF9XSURUSCwKLSAgICBQUk9QX0RFVklDRV9EUEksCi0gICAgUFJPUF9XSURUSCwKLSAgICBQUk9Q
X0hFSUdIVCwKLSAgICBQUk9QX0lOSVRJQUxfU0NBTEVfRkFDVE9SLAotICAgIFBST1BfTUlOSU1V
TV9TQ0FMRV9GQUNUT1IsCi0gICAgUFJPUF9NQVhJTVVNX1NDQUxFX0ZBQ1RPUiwKLSAgICBQUk9Q
X0RFVklDRV9QSVhFTF9SQVRJTywKLSAgICBQUk9QX1VTRVJfU0NBTEFCTEUsCi0gICAgUFJPUF9W
QUxJRAotfTsKLQotR19ERUZJTkVfVFlQRShXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMsIHdlYmtp
dF92aWV3cG9ydF9hdHRyaWJ1dGVzLCBHX1RZUEVfT0JKRUNUKTsKLQotc3RhdGljIHZvaWQgd2Vi
a2l0X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3Vp
bnQgcHJvcGVydHlJRCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKTsKLXN0
YXRpYyB2b2lkIHdlYmtpdF92aWV3cG9ydF9hdHRyaWJ1dGVzX3NldF9wcm9wZXJ0eShHT2JqZWN0
KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SUQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNw
ZWMqIHBhcmFtU3BlYyk7Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF92aWV3cG9ydF9hdHRyaWJ1dGVz
X2NsYXNzX2luaXQoV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzQ2xhc3MqIGtjbGFzcykKLXsKLSAg
ICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtjbGFzcyk7Ci0g
ICAgZ29iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfdmlld3BvcnRfYXR0cmlidXRl
c19nZXRfcHJvcGVydHk7Ci0gICAgZ29iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRf
dmlld3BvcnRfYXR0cmlidXRlc19zZXRfcHJvcGVydHk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJL
aXRWaWV3cG9ydEF0dHJpYnV0czpkZXZpY2Utd2lkdGg6Ci0gICAgICoKLSAgICAgKiBUaGUgd2lk
dGggb2YgdGhlIHNjcmVlbi4gVGhpcyB2YWx1ZSBpcyBhbHdheXMgYXV0b21hdGljYWxseQotICAg
ICAqIHByZS1jb21wdXRlZCBkdXJpbmcgYSB2aWV3cG9ydCBhdHRyaWJ1dGVzIHJlY29tcHV0YXRp
b24sIGFuZAotICAgICAqIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBoYW5kbGVyIG9mCi0gICAg
ICogV2ViS2l0V2ViVmlldzo6dmlld3BvcnQtYXR0cmlidXRlcy1yZWNvbXB1dGUtcmVxdWVzdGVk
LiBZb3UKLSAgICAgKiBzaG91bGQgbm90IGRvIHRoYXQgdW5sZXNzIHlvdSBoYXZlIGEgdmVyeSBn
b29kIHJlYXNvbi4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjMuOAotICAgICAqLwotICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9ERVZJQ0VfV0lEVEgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfaW50KAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImRldmljZS13aWR0aCIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfKCJEZXZpY2UgV2lkdGgiKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIlRoZSB3aWR0aCBvZiB0aGUgc2NyZWVuLiIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdfTUFYSU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
V1JJVEUpKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFZpZXdwb3J0QXR0cmlidXRzOmRldmlj
ZS1oZWlnaHQ6Ci0gICAgICoKLSAgICAgKiBUaGUgaGVpZ2h0IG9mIHRoZSBzY3JlZW4uIFRoaXMg
dmFsdWUgaXMgYWx3YXlzIGF1dG9tYXRpY2FsbHkKLSAgICAgKiBwcmUtY29tcHV0ZWQgZHVyaW5n
IGEgdmlld3BvcnQgYXR0cmlidXRlcyByZWNvbXB1dGF0aW9uLCBhbmQKLSAgICAgKiBjYW4gYmUg
b3ZlcnJpZGVuIGJ5IHRoZSBoYW5kbGVyIG9mCi0gICAgICogV2ViS2l0V2ViVmlldzo6dmlld3Bv
cnQtYXR0cmlidXRlcy1yZWNvbXB1dGUtcmVxdWVzdGVkLiBZb3UKLSAgICAgKiBzaG91bGQgbm90
IGRvIHRoYXQgdW5sZXNzIHlvdSBoYXZlIGEgdmVyeSBnb29kIHJlYXNvbi4KLSAgICAgKgotICAg
ICAqIFNpbmNlOiAxLjMuOAotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ29iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UFJPUF9ERVZJQ0VfSEVJR0hULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX2ludCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk
ZXZpY2UtaGVpZ2h0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkRl
dmljZSBIZWlnaHQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRo
ZSBoZWlnaHQgb2YgdGhlIHNjcmVlbi4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01BWElOVCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICAvKioK
LSAgICAgKiBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0czphdmFpbGFibGUtd2lkdGg6Ci0gICAgICoK
LSAgICAgKiBUaGUgd2lkdGggb2YgdGhlIGN1cnJlbnQgdmlzaWJsZSBhcmVhLiBUaGlzIHdpbGwg
dXN1YWxseSBiZSB0aGUKLSAgICAgKiBzYW1lIGFzIHRoZSBzcGFjZSBhbGxvY2F0ZWQgdG8gdGhl
IHdpZGdldCwgYnV0IGluIHNvbWUgY2FzZXMKLSAgICAgKiB5b3UgbWF5IGhhdmUgZGVjaWRlZCB0
byBtYWtlIHRoZSB3aWRnZXQgYmlnZ2VyIHRoYW4gdGhlIHZpc2libGUKLSAgICAgKiBhcmVhLiBU
aGlzIHZhbHVlIGlzIGJ5IGRlZmF1bHQgaW5pdGlhbGl6ZWQgdG8gdGhlIHNpemUKLSAgICAgKiBh
bGxvY2F0ZWQgYnkgdGhlIHdpZGdldCwgYnV0IHlvdSBjYW4gb3ZlcnJpZGUgaXQgaW4gdGhlIGhh
bmRsZXIKLSAgICAgKiBvZiBXZWJLaXRXZWJWaWV3Ojp2aWV3cG9ydC1hdHRyaWJ1dGVzLXJlY29t
cHV0ZS1yZXF1ZXN0ZWQgdG8KLSAgICAgKiBsZXQgdGhlIGVuZ2luZSBrbm93IHdoYXQgdGhlIHZp
c2libGUgYXJlYSBpcy4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjMuOAotICAgICAqLwotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9BVkFJTEFCTEVfV0lEVEgsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfaW50KAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImF2YWlsYWJsZS13aWR0aCIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJBdmFpbGFibGUgV2lkdGgiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSB3aWR0aCBvZiB0aGUgdmlzaWJsZSBh
cmVhLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUFYSU5ULAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFZpZXdw
b3J0QXR0cmlidXRzOmF2YWlsYWJsZS1oZWlnaHQ6Ci0gICAgICoKLSAgICAgKiBUaGUgaGVpZ2h0
IG9mIHRoZSBjdXJyZW50IHZpc2libGUgYXJlYS4gVGhpcyB3aWxsIHVzdWFsbHkgYmUgdGhlCi0g
ICAgICogc2FtZSBhcyB0aGUgc3BhY2UgYWxsb2NhdGVkIHRvIHRoZSB3aWRnZXQsIGJ1dCBpbiBz
b21lIGNhc2VzCi0gICAgICogeW91IG1heSBoYXZlIGRlY2lkZWQgdG8gbWFrZSB0aGUgd2lkZ2V0
IGJpZ2dlciB0aGFuIHRoZSB2aXNpYmxlCi0gICAgICogYXJlYS4gVGhpcyB2YWx1ZSBpcyBieSBk
ZWZhdWx0IGluaXRpYWxpemVkIHRvIHRoZSBzaXplCi0gICAgICogYWxsb2NhdGVkIGJ5IHRoZSB3
aWRnZXQsIGJ1dCB5b3UgY2FuIG92ZXJyaWRlIGl0IGluIHRoZSBoYW5kbGVyCi0gICAgICogb2Yg
V2ViS2l0V2ViVmlldzo6dmlld3BvcnQtYXR0cmlidXRlcy1yZWNvbXB1dGUtcmVxdWVzdGVkIHRv
Ci0gICAgICogbGV0IHRoZSBlbmdpbmUga25vdyB3aGF0IHRoZSB2aXNpYmxlIGFyZWEgaXMuCi0g
ICAgICoKLSAgICAgKiBTaW5jZTogMS4zLjgKLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBST1BfQVZBSUxBQkxFX0hFSUdIVCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19pbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYXZhaWxhYmxlLWhlaWdodCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfKCJBdmFpbGFibGUgSGVpZ2h0IiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJUaGUgaGVpZ2h0IG9mIHRoZSB2aXNpYmxlIGFyZWEuIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR19NQVhJTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURXUklURSkpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dHM6
ZGVza3RvcC13aWR0aDoKLSAgICAgKgotICAgICAqIFRoZSB3aWR0aCBvZiB2aWV3cG9ydCB0aGF0
IHdvcmtzIHdlbGwgZm9yIG1vc3Qgd2ViIHBhZ2VzIGRlc2lnbmVkIGZvcgotICAgICAqIGRlc2t0
b3AuIFRoaXMgdmFsdWUgaXMgaW5pdGlhbGl6ZWQgdG8gOTgwIHBpeGVscyBieSBkZWZhdWx0IGFu
ZCB1c2VkCi0gICAgICogZHVyaW5nIGEgdmlld3BvcnQgYXR0cmlidXRlcyByZWNvbXB1dGF0aW9u
LiBBbHNvLCBpdCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IAotICAgICAqIHRoZSBoYW5kbGVyIG9mIFdl
YktpdFdlYlZpZXc6OnZpZXdwb3J0LWF0dHJpYnV0ZXMtcmVjb21wdXRlLXJlcXVlc3RlZC4KLSAg
ICAgKiBZb3Ugc2hvdWxkIG5vdCBkbyB0aGF0IHVubGVzcyB5b3UgaGF2ZSBhIHZlcnkgZ29vZCBy
ZWFzb24uCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4zLjgKLSAgICAgKi8KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBST1BfREVTS1RPUF9XSURUSCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19pbnQoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZGVza3RvcC13aWR0aCIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJEZXNrdG9wIFdpZHRoIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJUaGUgd2lkdGggb2Ygdmlld3BvcnQgdGhhdCB3b3JrcyB3ZWxsIGZv
ciBtb3N0IHdlYiBwYWdlcyBkZXNpZ25lZCBmb3IgZGVza3RvcC4iKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHX01BWElOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk4MCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJ
VEUpKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFZpZXdwb3J0QXR0cmlidXRzOmRldmljZS1k
cGk6Ci0gICAgICoKLSAgICAgKiBUaGUgbnVtYmVyIG9mIGRvdHMgcGVyIGluY2ggb2YgdGhlIHNj
cmVlbi4gVGhpcyB2YWx1ZSBpcwotICAgICAqIGluaXRpYWxpemVkIHRvIDE2MCBkcGkgYnkgZGVm
YXVsdCBhbmQgdXNlZCBkdXJpbmcgYSB2aWV3cG9ydAotICAgICAqIGF0dHJpYnV0ZXMgcmVjb21w
dXRhdGlvbiwgYmVjYXVzZSBpdCBpcyB0aGUgZHBpIG9mIHRoZSBvcmlnaW5hbAotICAgICAqIGlQ
aG9uZSBhbmQgQW5kcm9pZCBkZXZpY2VzLiBBbHNvLCBpdCBjYW4gYmUgb3ZlcnJpZGVuIGJ5IHRo
ZQotICAgICAqIGhhbmRsZXIgb2YgV2ViS2l0V2ViVmlldzo6dmlld3BvcnQtYXR0cmlidXRlcy1y
ZWNvbXB1dGUtcmVxdWVzdGVkLgotICAgICAqIFlvdSBzaG91bGQgbm90IGRvIHRoYXQgdW5sZXNz
IHlvdSBoYXZlIGEgdmVyeSBnb29kIHJlYXNvbi4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjMu
OAotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENs
YXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9ERVZJQ0VfRFBJ
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXZpY2UtZHBpIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkRldmljZSBEUEkiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBudW1iZXIgb2YgZG90cyBwZXIgaW5j
aCBvZiB0aGUgc2NyZWVuLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUFYSU5ULAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYwLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwotCi0gICAgLyoqCi0gICAg
ICogV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dHM6d2lkdGg6Ci0gICAgICoKLSAgICAgKiBUaGUgd2lk
dGggb2YgdGhlIHZpZXdwb3J0LiBCZWZvcmUgZ2V0dGluZyB0aGlzIHByb3BlcnR5LAotICAgICAq
IHlvdSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0ICNXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMgaXMg
dmFsaWQuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4zLjgKLSAgICAgKi8KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBST1BfV0lEVEgsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfaW50KAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIndpZHRoIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IldpZHRoIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgd2lk
dGggb2YgdGhlIHZpZXdwb3J0LiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUFYSU5ULAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgLyoqCi0gICAg
ICogV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dHM6aGVpZ2h0OgotICAgICAqCi0gICAgICogVGhlIGhl
aWdodCBvZiB0aGUgdmlld3BvcnQuIEJlZm9yZSBnZXR0aW5nIHRoaXMgcHJvcGVydHksCi0gICAg
ICogeW91IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgI1dlYktpdFZpZXdwb3J0QXR0cmlidXRlcyBp
cyB2YWxpZC4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjMuOAotICAgICAqLwotICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUFJPUF9IRUlHSFQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfaW50KAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImhlaWdodCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfKCJIZWlnaHQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRo
ZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0LiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUFYSU5U
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgLyoq
Ci0gICAgICogV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dHM6aW5pdGlhbC1zY2FsZS1mYWN0b3I6Ci0g
ICAgICoKLSAgICAgKiBUaGUgaW5pdGlhbCBzY2FsZSBvZiB0aGUgdmlld3BvcnQuIEJlZm9yZSBn
ZXR0aW5nIHRoaXMgcHJvcGVydHksCi0gICAgICogeW91IG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQg
I1dlYktpdFZpZXdwb3J0QXR0cmlidXRlcyBpcyB2YWxpZC4KLSAgICAgKgotICAgICAqIFNpbmNl
OiAxLjMuOAotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29i
amVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9JTklU
SUFMX1NDQUxFX0ZBQ1RPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf
cGFyYW1fc3BlY19mbG9hdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJp
bml0aWFsLXNjYWxlLWZhY3RvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfKCJJbml0aWFsIFNjYWxlIEZhY3RvciIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiVGhlIGluaXRpYWwgc2NhbGUgb2YgdGhlIHZpZXdwb3J0LiIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHX01BWEZMT0FULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFZpZXdwb3J0QXR0cmlidXRz
Om1pbmltdW0tc2NhbGUtZmFjdG9yOgotICAgICAqCi0gICAgICogVGhlIG1pbmltdW0gc2NhbGUg
b2YgdGhlIHZpZXdwb3J0LiBCZWZvcmUgZ2V0dGluZyB0aGlzIHByb3BlcnR5LAotICAgICAqIHlv
dSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0ICNXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMgaXMgdmFs
aWQuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4zLjgKLSAgICAgKi8KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBST1BfTUlOSU1VTV9TQ0FMRV9GQUNUT1IsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfZmxvYXQoCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibWluaW11bS1zY2FsZS1mYWN0b3IiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTWluaW11bSBTY2FsZSBGYWN0b3IiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBtaW5pbXVtIHNjYWxlIG9m
IHRoZSB2aWV3cG9ydC4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0x
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NQVhGTE9BVCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICAvKioKLSAgICAg
KiBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0czptYXhpbXVtLXNjYWxlLWZhY3RvcjoKLSAgICAgKgot
ICAgICAqIFRoZSBtYXhpbXVtIHNjYWxlIG9mIHRoZSB2aWV3cG9ydC4gQmVmb3JlIGdldHRpbmcg
dGhpcyBwcm9wZXJ0eSwKLSAgICAgKiB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCAjV2ViS2l0
Vmlld3BvcnRBdHRyaWJ1dGVzIGlzIHZhbGlkLgotICAgICAqCi0gICAgICogU2luY2U6IDEuMy44
Ci0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xh
c3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX01BWElNVU1fU0NB
TEVfRkFDVE9SLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9z
cGVjX2Zsb2F0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1heGltdW0t
c2NhbGUtZmFjdG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIk1h
eGltdW0gU2NhbGUgRmFjdG9yIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfKCJUaGUgbWF4aW11bSBzY2FsZSBvZiB0aGUgdmlld3BvcnQuIiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAtMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdfTUFYRkxPQVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt
MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
QUJMRSkpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dHM6ZGV2aWNl
LXBpeGVsLXJhdGlvOgotICAgICAqCi0gICAgICogVGhlIGRldmljZSBwaXhlbCByYXRpbyBvZiB0
aGUgdmlld3BvcnQuIEJlZm9yZSBnZXR0aW5nIHRoaXMgcHJvcGVydHksCi0gICAgICogeW91IG5l
ZWQgdG8gbWFrZSBzdXJlIHRoYXQgI1dlYktpdFZpZXdwb3J0QXR0cmlidXRlcyBpcyB2YWxpZC4K
LSAgICAgKgotICAgICAqIFNpbmNlOiAxLjMuOAotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9ERVZJQ0VfUElYRUxfUkFUSU8sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfZmxvYXQoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZGV2aWNlLXBpeGVsLXJhdGlvIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIkRldmljZSBQaXhlbCBSYXRpbyIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGRldmljZSBwaXhlbCByYXRpbyBvZiB0aGUg
dmlld3BvcnQuIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUFYRkxPQVQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgLyoqCi0gICAgICogV2Vi
S2l0Vmlld3BvcnRBdHRyaWJ1dHM6dXNlci1zY2FsYWJsZToKLSAgICAgKgotICAgICAqIERldGVy
bWluZXMgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIHpvb20gaW4gYW5kIG91dC4KLSAgICAg
KiBCZWZvcmUgZ2V0dGluZyB0aGlzIHByb3BlcnR5LCB5b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhh
dAotICAgICAqICNXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMgaXMgdmFsaWQuCi0gICAgICoKLSAg
ICAgKiBTaW5jZTogMS4zLjgKLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBST1BfVVNFUl9TQ0FMQUJMRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfcGFyYW1fc3BlY19ib29sZWFuKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInVzZXItc2NhbGFibGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XygiVXNlciBTY2FsYWJsZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XygiRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBjYW4gem9vbSBpbiBhbmQgb3V0
LiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0g
ICAgLyoqCi0gICAgICogV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dHM6dmFsaWQ6Ci0gICAgICoKLSAg
ICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBhdHRyaWJ1dGVzIGFyZSB2YWxpZC4K
LSAgICAgKiAjV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzIGFyZSBvbmx5IHZhbGlkIG9uIHBhZ2Vz
Ci0gICAgICogd2hpY2ggaGF2ZSBhIHZpZXdwb3J0IG1ldGEgdGFnLCBhbmQgaGF2ZSBhbHJlYWR5
Ci0gICAgICogaGFkIHRoZSBhdHRyaWJ1dGVzIGNhbGN1bGF0ZWQuCi0gICAgICoKLSAgICAgKiBT
aW5jZTogMS4zLjgKLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KGdvYmplY3RDbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1Bf
VkFMSUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNf
Ym9vbGVhbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWxpZCIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJWYWxpZCIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCB0
aGUgYXR0cmlidXRlcyBhcmUgdmFsaWQsIGFuZCBjYW4gYmUgdXNlZC4iKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX3R5cGVfY2xhc3Nf
YWRkX3ByaXZhdGUoa2NsYXNzLCBzaXplb2YoV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzUHJpdmF0
ZSkpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfdmlld3BvcnRfYXR0cmlidXRlc19pbml0KFdl
YktpdFZpZXdwb3J0QXR0cmlidXRlcyogdmlld3BvcnQpCi17Ci0gICAgdmlld3BvcnQtPnByaXYg
PSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUodmlld3BvcnQsIFdFQktJVF9UWVBFX1ZJRVdQ
T1JUX0FUVFJJQlVURVMsIFdlYktpdFZpZXdwb3J0QXR0cmlidXRlc1ByaXZhdGUpOwotCi0gICAg
dmlld3BvcnQtPnByaXYtPmRldmljZVdpZHRoID0gMDsKLSAgICB2aWV3cG9ydC0+cHJpdi0+ZGV2
aWNlSGVpZ2h0ID0gMDsKLSAgICB2aWV3cG9ydC0+cHJpdi0+YXZhaWxhYmxlV2lkdGggPSAwOwot
ICAgIHZpZXdwb3J0LT5wcml2LT5hdmFpbGFibGVIZWlnaHQgPSAwOwotICAgIHZpZXdwb3J0LT5w
cml2LT5kZXNrdG9wV2lkdGggPSA5ODA7IC8vIFRoaXMgdmFsdWUgd29ya3Mgd2VsbCBmb3IgbW9z
dCB3ZWIgcGFnZXMgZGVzaWduZWQgZm9yIGRlc2t0b3AgYnJvd3NlcnMuCi0gICAgdmlld3BvcnQt
PnByaXYtPmRldmljZURQSSA9IDE2MDsgLy8gSXQgaXMgdGhlIGRwaSBvZiB0aGUgb3JpZ2luYWwg
aVBob25lIGFuZCBBbmRyb2lkIGRldmljZXMuCi0gICAgdmlld3BvcnQtPnByaXYtPndpZHRoID0g
MDsKLSAgICB2aWV3cG9ydC0+cHJpdi0+aGVpZ2h0ID0gMDsKLSAgICB2aWV3cG9ydC0+cHJpdi0+
aW5pdGlhbFNjYWxlRmFjdG9yID0gLTE7Ci0gICAgdmlld3BvcnQtPnByaXYtPm1pbmltdW1TY2Fs
ZUZhY3RvciA9IC0xOwotICAgIHZpZXdwb3J0LT5wcml2LT5tYXhpbXVtU2NhbGVGYWN0b3IgPSAt
MTsKLSAgICB2aWV3cG9ydC0+cHJpdi0+ZGV2aWNlUGl4ZWxSYXRpbyA9IC0xOwotICAgIHZpZXdw
b3J0LT5wcml2LT51c2VyU2NhbGFibGUgPSBUUlVFOwotICAgIHZpZXdwb3J0LT5wcml2LT5pc1Zh
bGlkID0gRkFMU0U7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF92aWV3cG9ydF9hdHRyaWJ1dGVz
X2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SUQsIEdWYWx1ZSog
dmFsdWUsIEdQYXJhbVNwZWMqIHBhcmFtU3BlYykKLXsKLSAgICBXZWJLaXRWaWV3cG9ydEF0dHJp
YnV0ZXMqIHZpZXdwb3J0QXR0cmlidXRlcyA9IFdFQktJVF9WSUVXUE9SVF9BVFRSSUJVVEVTKG9i
amVjdCk7Ci0gICAgV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzUHJpdmF0ZSogcHJpdiA9IHZpZXdw
b3J0QXR0cmlidXRlcy0+cHJpdjsKLQotICAgIHN3aXRjaCAocHJvcGVydHlJRCkgewotICAgIGNh
c2UgUFJPUF9ERVZJQ0VfV0lEVEg6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgcHJp
di0+ZGV2aWNlV2lkdGgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfREVWSUNFX0hF
SUdIVDoKLSAgICAgICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCBwcml2LT5kZXZpY2VIZWlnaHQp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfQVZBSUxBQkxFX1dJRFRIOgotICAgICAg
ICBnX3ZhbHVlX3NldF9pbnQodmFsdWUsIHByaXYtPmF2YWlsYWJsZVdpZHRoKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBQUk9QX0FWQUlMQUJMRV9IRUlHSFQ6Ci0gICAgICAgIGdfdmFsdWVf
c2V0X2ludCh2YWx1ZSwgcHJpdi0+YXZhaWxhYmxlSGVpZ2h0KTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBQUk9QX0RFU0tUT1BfV0lEVEg6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1
ZSwgcHJpdi0+ZGVza3RvcFdpZHRoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0RF
VklDRV9EUEk6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgcHJpdi0+ZGV2aWNlRFBJ
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1dJRFRIOgotICAgICAgICBnX3ZhbHVl
X3NldF9pbnQodmFsdWUsIHByaXYtPndpZHRoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
Uk9QX0hFSUdIVDoKLSAgICAgICAgZ192YWx1ZV9zZXRfaW50KHZhbHVlLCBwcml2LT5oZWlnaHQp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfSU5JVElBTF9TQ0FMRV9GQUNUT1I6Ci0g
ICAgICAgIGdfdmFsdWVfc2V0X2Zsb2F0KHZhbHVlLCBwcml2LT5pbml0aWFsU2NhbGVGYWN0b3Ip
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTUlOSU1VTV9TQ0FMRV9GQUNUT1I6Ci0g
ICAgICAgIGdfdmFsdWVfc2V0X2Zsb2F0KHZhbHVlLCBwcml2LT5taW5pbXVtU2NhbGVGYWN0b3Ip
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTUFYSU1VTV9TQ0FMRV9GQUNUT1I6Ci0g
ICAgICAgIGdfdmFsdWVfc2V0X2Zsb2F0KHZhbHVlLCBwcml2LT5tYXhpbXVtU2NhbGVGYWN0b3Ip
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfREVWSUNFX1BJWEVMX1JBVElPOgotICAg
ICAgICBnX3ZhbHVlX3NldF9mbG9hdCh2YWx1ZSwgcHJpdi0+ZGV2aWNlUGl4ZWxSYXRpbyk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9VU0VSX1NDQUxBQkxFOgotICAgICAgICBnX3Zh
bHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT51c2VyU2NhbGFibGUpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIFBST1BfVkFMSUQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFs
dWUsIHByaXYtPmlzVmFsaWQpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlELCBw
YXJhbVNwZWMpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtp
dF92aWV3cG9ydF9hdHRyaWJ1dGVzX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50
IHByb3BlcnR5SUQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBhcmFtU3BlYykK
LXsKLSAgICBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMqIHZpZXdwb3J0QXR0cmlidXRlcyA9IFdF
QktJVF9WSUVXUE9SVF9BVFRSSUJVVEVTKG9iamVjdCk7Ci0gICAgV2ViS2l0Vmlld3BvcnRBdHRy
aWJ1dGVzUHJpdmF0ZSogcHJpdiA9IHZpZXdwb3J0QXR0cmlidXRlcy0+cHJpdjsKLQotICAgIHN3
aXRjaCAocHJvcGVydHlJRCkgewotICAgIGNhc2UgUFJPUF9ERVZJQ0VfV0lEVEg6Ci0gICAgICAg
IHByaXYtPmRldmljZVdpZHRoID0gZ192YWx1ZV9nZXRfaW50KHZhbHVlKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBQUk9QX0RFVklDRV9IRUlHSFQ6Ci0gICAgICAgIHByaXYtPmRldmljZUhl
aWdodCA9IGdfdmFsdWVfZ2V0X2ludCh2YWx1ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UFJPUF9BVkFJTEFCTEVfV0lEVEg6Ci0gICAgICAgIHByaXYtPmF2YWlsYWJsZVdpZHRoID0gZ192
YWx1ZV9nZXRfaW50KHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0FWQUlM
QUJMRV9IRUlHSFQ6Ci0gICAgICAgIHByaXYtPmF2YWlsYWJsZUhlaWdodCA9IGdfdmFsdWVfZ2V0
X2ludCh2YWx1ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9ERVNLVE9QX1dJRFRI
OgotICAgICAgICBwcml2LT5kZXNrdG9wV2lkdGggPSBnX3ZhbHVlX2dldF9pbnQodmFsdWUpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfREVWSUNFX0RQSToKLSAgICAgICAgcHJpdi0+
ZGV2aWNlRFBJID0gZ192YWx1ZV9nZXRfaW50KHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVj
dCwgcHJvcGVydHlJRCwgcGFyYW1TcGVjKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi12
b2lkIHdlYmtpdFZpZXdwb3J0QXR0cmlidXRlc1JlY29tcHV0ZShXZWJLaXRWaWV3cG9ydEF0dHJp
YnV0ZXMqIHZpZXdwb3J0QXR0cmlidXRlcykKLXsKLSAgICBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0
ZXNQcml2YXRlKiBwcml2ID0gdmlld3BvcnRBdHRyaWJ1dGVzLT5wcml2OwotICAgIFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcgPSBwcml2LT53ZWJWaWV3OwotCi0gICAgSW50UmVjdCB3aW5kb3dSZWN0
KHdlYlZpZXctPnByaXYtPmNvcmVQYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCkpOwotICAgIHBy
aXYtPmRldmljZVdpZHRoID0gd2luZG93UmVjdC53aWR0aCgpOwotICAgIHByaXYtPmRldmljZUhl
aWdodCA9IHdpbmRvd1JlY3QuaGVpZ2h0KCk7Ci0KLSAgICBJbnRSZWN0IHJlY3Qod2ViVmlldy0+
cHJpdi0+Y29yZVBhZ2UtPmNocm9tZSgpLnBhZ2VSZWN0KCkpOwotICAgIHByaXYtPmF2YWlsYWJs
ZVdpZHRoID0gcmVjdC53aWR0aCgpOwotICAgIHByaXYtPmF2YWlsYWJsZUhlaWdodCA9IHJlY3Qu
aGVpZ2h0KCk7Ci0KLSAgICAvLyBGaXJzdCBvZiBhbGwsIHdlIGdpdmUgdGhlIGFwcGxpY2F0aW9u
IGFuIG9wcG9ydHVuaXR5IHRvIG92ZXJyaWRlIHNvbWUgb2YgdGhlIHZhbHVlcy4KLSAgICBnX3Np
Z25hbF9lbWl0X2J5X25hbWUod2ViVmlldywgInZpZXdwb3J0LWF0dHJpYnV0ZXMtcmVjb21wdXRl
LXJlcXVlc3RlZCIsIHZpZXdwb3J0QXR0cmlidXRlcyk7Ci0KLSAgICBWaWV3cG9ydEFyZ3VtZW50
cyBhcmd1bWVudHMgPSB3ZWJWaWV3LT5wcml2LT5jb3JlUGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1l
bnQoKS0+dmlld3BvcnRBcmd1bWVudHMoKTsKLQotICAgIGZsb2F0IGRldmljZVBpeGVsUmF0aW8g
PSBwcml2LT5kZXZpY2VEUEkgLyBWaWV3cG9ydEFyZ3VtZW50czo6ZGVwcmVjYXRlZFRhcmdldERQ
STsKLSAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IGNvbXB1dGVWaWV3cG9ydEF0
dHJpYnV0ZXMoYXJndW1lbnRzLCBwcml2LT5kZXNrdG9wV2lkdGgsIHByaXYtPmRldmljZVdpZHRo
LCBwcml2LT5kZXZpY2VIZWlnaHQsIGRldmljZVBpeGVsUmF0aW8sIEludFNpemUocHJpdi0+YXZh
aWxhYmxlV2lkdGgsIHByaXYtPmF2YWlsYWJsZUhlaWdodCkpOwotICAgIHJlc3RyaWN0TWluaW11
bVNjYWxlRmFjdG9yVG9WaWV3cG9ydFNpemUoYXR0cmlidXRlcywgSW50U2l6ZShwcml2LT5hdmFp
bGFibGVXaWR0aCwgcHJpdi0+YXZhaWxhYmxlSGVpZ2h0KSwgZGV2aWNlUGl4ZWxSYXRpbyk7Ci0g
ICAgcmVzdHJpY3RTY2FsZUZhY3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoYXR0
cmlidXRlcyk7Ci0KLSAgICBwcml2LT53aWR0aCA9IGF0dHJpYnV0ZXMubGF5b3V0U2l6ZS53aWR0
aCgpOwotICAgIHByaXYtPmhlaWdodCA9IGF0dHJpYnV0ZXMubGF5b3V0U2l6ZS5oZWlnaHQoKTsK
LSAgICBwcml2LT5pbml0aWFsU2NhbGVGYWN0b3IgPSBhdHRyaWJ1dGVzLmluaXRpYWxTY2FsZTsK
LSAgICBwcml2LT5taW5pbXVtU2NhbGVGYWN0b3IgPSBhdHRyaWJ1dGVzLm1pbmltdW1TY2FsZTsK
LSAgICBwcml2LT5tYXhpbXVtU2NhbGVGYWN0b3IgPSBhdHRyaWJ1dGVzLm1heGltdW1TY2FsZTsK
LSAgICBwcml2LT5kZXZpY2VQaXhlbFJhdGlvID0gZGV2aWNlUGl4ZWxSYXRpbzsKLSAgICBwcml2
LT51c2VyU2NhbGFibGUgPSBzdGF0aWNfY2FzdDxib29sPihhcmd1bWVudHMudXNlclpvb20pOwot
Ci0gICAgaWYgKCFwcml2LT5pc1ZhbGlkKSB7Ci0gICAgICAgIHByaXYtPmlzVmFsaWQgPSBUUlVF
OwotICAgICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qodmlld3BvcnRBdHRyaWJ1dGVzKSwg
InZhbGlkIik7Ci0gICAgfQotCi0gICAgLy8gTm93IGxldCB0aGUgYXBwbGljYXRpb24ga25vdyBp
dCBpcyBzYWZlIHRvIHVzZSB0aGUgbmV3IHZhbHVlcy4KLSAgICBnX3NpZ25hbF9lbWl0X2J5X25h
bWUod2ViVmlldywgInZpZXdwb3J0LWF0dHJpYnV0ZXMtY2hhbmdlZCIsIHZpZXdwb3J0QXR0cmli
dXRlcyk7Ci19Ci0KLS8qKgotICogd2Via2l0X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfcmVjb21wdXRl
OgotICogQHZpZXdwb3J0QXR0cmlidXRlczogYSAjV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzCi0g
KgotICogUmVjb21wdXRlIHRoZSBvcHRpbWFsIHZpZXdwb3J0IGF0dHJpYnV0ZXMgYW5kIGVtaXQg
dGhlIHZpZXdwb3J0LWF0dHJpYnV0ZS1jaGFuZ2VkIHNpZ25hbC4KLSAqIFRoZSB2aWV3cG9ydC1h
dHRyaWJ1dGVzLXJlY29tcHV0ZS1yZXF1ZXN0ZWQgc2lnbmFsIGFsc28gd2lsbCBiZSBoYW5kbGVk
IHRvIG92ZXJyaWRlCi0gKiB0aGUgZGV2aWNlIHNpemUsIGF2YWlsYWJsZSBzaXplLCBkZXNrdG9w
IHdpZHRoLCBvciBkZXZpY2UgRFBJLgotICoKLSAqIFNpbmNlOiAxLjMuOAotICovCi12b2lkIHdl
YmtpdF92aWV3cG9ydF9hdHRyaWJ1dGVzX3JlY29tcHV0ZShXZWJLaXRWaWV3cG9ydEF0dHJpYnV0
ZXMqIHZpZXdwb3J0QXR0cmlidXRlcykKLXsKLSAgICBpZiAoIXZpZXdwb3J0QXR0cmlidXRlcy0+
cHJpdi0+aXNWYWxpZCkKLSAgICAgICAgcmV0dXJuOwotICAgIHdlYmtpdFZpZXdwb3J0QXR0cmli
dXRlc1JlY29tcHV0ZSh2aWV3cG9ydEF0dHJpYnV0ZXMpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5oIGIvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0YXR0cmlidXRlcy5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3ZDkwYzFiLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDYy
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSm9vbmUgSHVyIDxqb29uZUBrbGRw
Lm9yZz4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
Ki8KLQotI2lmbmRlZiB3ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNfaAotI2RlZmluZSB3ZWJraXR2
aWV3cG9ydGF0dHJpYnV0ZXNfaAotCi0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLSNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotCi1HX0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUgV0VC
S0lUX1RZUEVfVklFV1BPUlRfQVRUUklCVVRFUyAgICAgICAgICAgICh3ZWJraXRfdmlld3BvcnRf
YXR0cmlidXRlc19nZXRfdHlwZSgpKQotI2RlZmluZSBXRUJLSVRfVklFV1BPUlRfQVRUUklCVVRF
UyhvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJL
SVRfVFlQRV9WSUVXUE9SVF9BVFRSSUJVVEVTLCBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMpKQot
I2RlZmluZSBXRUJLSVRfVklFV1BPUlRfQVRUUklCVVRFU19DTEFTUyhrbGFzcykgICAgKEdfVFlQ
RV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9WSUVXUE9SVF9BVFRSSUJV
VEVTLCBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXNDbGFzcykpCi0jZGVmaW5lIFdFQktJVF9JU19W
SUVXUE9SVF9BVFRSSUJVVEVTKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZ
UEUoKG9iaiksIFdFQktJVF9UWVBFX1ZJRVdQT1JUX0FUVFJJQlVURVMpKQotI2RlZmluZSBXRUJL
SVRfSVNfVklFV1BPUlRfQVRUUklCVVRFU19DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFT
U19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9WSUVXUE9SVF9BVFRSSUJVVEVTKSkKLSNkZWZp
bmUgV0VCS0lUX1ZJRVdQT1JUX0FUVFJJQlVURVNfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5T
VEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfVklFV1BPUlRfQVRUUklCVVRFUywg
V2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzQ2xhc3MpKQotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0
Vmlld3BvcnRBdHRyaWJ1dGVzUHJpdmF0ZSBXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXNQcml2YXRl
OwotCi1zdHJ1Y3QgX1dlYktpdFZpZXdwb3J0QXR0cmlidXRlcyB7Ci0gICAgR09iamVjdCBwYXJl
bnRfaW5zdGFuY2U7Ci0KLSAgICAvKjwgcHJpdmF0ZSA+Ki8KLSAgICBXZWJLaXRWaWV3cG9ydEF0
dHJpYnV0ZXNQcml2YXRlICpwcml2OwotfTsKLQotc3RydWN0IF9XZWJLaXRWaWV3cG9ydEF0dHJp
YnV0ZXNDbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIC8qIFBh
ZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDApICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDMpICh2b2lkKTsKLX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF92aWV3cG9ydF9h
dHRyaWJ1dGVzX2dldF90eXBlICAgICAgICAgICAgICAgICAodm9pZCk7Ci0KLVdFQktJVF9BUEkg
dm9pZAotd2Via2l0X3ZpZXdwb3J0X2F0dHJpYnV0ZXNfcmVjb21wdXRlKFdlYktpdFZpZXdwb3J0
QXR0cmlidXRlcyogdmlld3BvcnRBdHRyaWJ1dGVzKTsKLQotR19FTkRfREVDTFMKLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRhdHRy
aWJ1dGVzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHZpZXdwb3J0
YXR0cmlidXRlc3ByaXZhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2UzOThk
Ny4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0dmlld3BvcnRh
dHRyaWJ1dGVzcHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhl
cgotICogQ29weXJpZ2h0IChDKSAyMDA4IEphbiBNaWNoYWVsIEMuIEFsb256bwotICogQ29weXJp
Z2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlh
IFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0g
Ki8KLQotI2lmbmRlZiB3ZWJraXR2aWV3cG9ydGF0dHJpYnV0ZXNwcml2YXRlX2gKLSNkZWZpbmUg
d2Via2l0dmlld3BvcnRhdHRyaWJ1dGVzcHJpdmF0ZV9oCi0KLSNpbmNsdWRlIDx3ZWJraXQvd2Vi
a2l0dmlld3BvcnRhdHRyaWJ1dGVzLmg+Ci0KLWV4dGVybiAiQyIgewotCi1zdHJ1Y3QgX1dlYktp
dFZpZXdwb3J0QXR0cmlidXRlc1ByaXZhdGUgewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXc7
Ci0gICAgaW50IGRldmljZVdpZHRoOwotICAgIGludCBkZXZpY2VIZWlnaHQ7Ci0gICAgaW50IGF2
YWlsYWJsZVdpZHRoOwotICAgIGludCBhdmFpbGFibGVIZWlnaHQ7Ci0gICAgaW50IGRlc2t0b3BX
aWR0aDsKLSAgICBpbnQgZGV2aWNlRFBJOwotCi0gICAgaW50IHdpZHRoOwotICAgIGludCBoZWln
aHQ7Ci0gICAgZmxvYXQgaW5pdGlhbFNjYWxlRmFjdG9yOwotICAgIGZsb2F0IG1pbmltdW1TY2Fs
ZUZhY3RvcjsKLSAgICBmbG9hdCBtYXhpbXVtU2NhbGVGYWN0b3I7Ci0gICAgZmxvYXQgZGV2aWNl
UGl4ZWxSYXRpbzsKLSAgICBnYm9vbGVhbiB1c2VyU2NhbGFibGU7Ci0gICAgZ2Jvb2xlYW4gaXNW
YWxpZDsKLX07Ci0KLQotdm9pZCB3ZWJraXRWaWV3cG9ydEF0dHJpYnV0ZXNSZWNvbXB1dGUoV2Vi
S2l0Vmlld3BvcnRBdHRyaWJ1dGVzKik7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MjljMDE5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsNDgzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwg
Qy4gQWxvbnpvCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oIgotCi0jaW5jbHVk
ZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiQmFja0ZvcndhcmRMaXN0Lmgi
Ci0jaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAi
UGFnZUdyb3VwLmgiCi0jaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKLSNpbmNsdWRl
ICJ3ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3Rwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vi
aGlzdG9yeWl0ZW0uaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGUuaCIK
LSNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3LmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlld3ByaXZh
dGUuaCIKLSNpbmNsdWRlIDxnbGliLmg+Ci0KLS8qKgotICogU0VDVElPTjp3ZWJraXR3ZWJiYWNr
Zm9yd2FyZGxpc3QKLSAqIEBzaG9ydF9kZXNjcmlwdGlvbjogVGhlIGhpc3Rvcnkgb2YgYSAjV2Vi
S2l0V2ViVmlldwotICogQHNlZV9hbHNvOiAjV2ViS2l0V2ViVmlldywgI1dlYktpdFdlYkhpc3Rv
cnlJdGVtCi0gKgotICogPGluZm9ybWFsZXhhbXBsZT48cHJvZ3JhbWxpc3Rpbmc+Ci0gKiAvPCEt
LSAtLT4qIEdldCB0aGUgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0IGZyb20gdGhlIFdlYktpdFdl
YlZpZXcgKjwhLS0gLS0+LwotICogV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0ICpiYWNrX2Zvcndh
cmRfbGlzdCA9IHdlYmtpdF93ZWJfdmlld19nZXRfYmFja19mb3J3YXJkX2xpc3QgKG15X3dlYl92
aWV3KTsKLSAqIFdlYktpdFdlYkhpc3RvcnlJdGVtICppdGVtID0gd2Via2l0X3dlYl9iYWNrX2Zv
cndhcmRfbGlzdF9nZXRfY3VycmVudF9pdGVtIChiYWNrX2ZvcndhcmRfbGlzdCk7Ci0gKgotICog
LzwhLS0gLS0+KiBEbyBzb21ldGhpbmcgd2l0aCBhIFdlYktpdFdlYkhpc3RvcnlJdGVtICo8IS0t
IC0tPi8KLSAqIGdfcHJpbnQoIiVwIiwgaXRlbSk7Ci0gKgotICogLzwhLS0gLS0+KiBDb250cm9s
IHNvbWUgcGFyYW1ldGVycyAqPCEtLSAtLT4vCi0gKiBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3Qg
KmJhY2tfZm9yd2FyZF9saXN0ID0gd2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlz
dCAobXlfd2ViX3ZpZXcpOwotICogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9zZXRfbGlt
aXQgKGJhY2tfZm9yd2FyZF9saXN0LCAzMCk7Ci0gKiA8L3Byb2dyYW1saXN0aW5nPjwvaW5mb3Jt
YWxleGFtcGxlPgotICoKLSAqLwotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1zdHJ1Y3Qg
X1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUgewotICAgIFdlYkNvcmU6OkJhY2tGb3J3
YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0OwotICAgIGdib29sZWFuIGRpc3Bvc2VkOwotfTsKLQot
R19ERUZJTkVfVFlQRShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QsIHdlYmtpdF93ZWJfYmFja19m
b3J3YXJkX2xpc3QsIEdfVFlQRV9PQkpFQ1QpOwotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2Jh
Y2tfZm9yd2FyZF9saXN0X2Rpc3Bvc2UoR09iamVjdCogb2JqZWN0KQotewotICAgIFdlYktpdFdl
YkJhY2tGb3J3YXJkTGlzdCogbGlzdCA9IFdFQktJVF9XRUJfQkFDS19GT1JXQVJEX0xJU1Qob2Jq
ZWN0KTsKLSAgICBXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdCA9IGNv
cmUobGlzdCk7Ci0gICAgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZSogcHJpdiA9IGxp
c3QtPnByaXY7Ci0KLSAgICBpZiAoIXByaXYtPmRpc3Bvc2VkKSB7Ci0gICAgICAgIHByaXYtPmRp
c3Bvc2VkID0gdHJ1ZTsKLQotICAgICAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbVZlY3RvciBpdGVt
cyA9IGJhY2tGb3J3YXJkTGlzdC0+ZW50cmllcygpOwotICAgICAgICBHSGFzaFRhYmxlKiB0YWJs
ZSA9IHdlYmtpdF9oaXN0b3J5X2l0ZW1zKCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBpdGVtcy5zaXplKCk7IGkrKykKLSAgICAgICAgICAgIGdfaGFzaF90YWJsZV9yZW1vdmUo
dGFibGUsIGl0ZW1zW2ldLmdldCgpKTsKLSAgICB9Ci0KLSAgICBHX09CSkVDVF9DTEFTUyh3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsK
LX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jbGFzc19pbml0
KFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdENsYXNzKiBrbGFzcykKLXsKLSAgICBHT2JqZWN0Q2xh
c3MqIG9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKLQotICAgIG9iamVjdF9j
bGFzcy0+ZGlzcG9zZSA9IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZGlzcG9zZTsKLQot
ICAgIHdlYmtpdEluaXQoKTsKLQotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShrbGFzcywg
c2l6ZW9mKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUpKTsKLX0KLQotc3RhdGljIHZv
aWQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9pbml0KFdlYktpdFdlYkJhY2tGb3J3YXJk
TGlzdCogd2ViQmFja0ZvcndhcmRMaXN0KQotewotICAgIHdlYkJhY2tGb3J3YXJkTGlzdC0+cHJp
diA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSh3ZWJCYWNrRm9yd2FyZExpc3QsIFdFQktJ
VF9UWVBFX1dFQl9CQUNLX0ZPUldBUkRfTElTVCwgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJp
dmF0ZSk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9uZXdfd2l0
aF93ZWJfdmlldzogKHNraXApCi0gKiBAd2ViX3ZpZXc6IHRoZSBiYWNrIGZvcndhcmQgbGlzdCdz
ICNXZWJLaXRXZWJWaWV3Ci0gKgotICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiB0aGUgYmFjayBm
b3J3YXJkIGxpc3Qgd2l0aCBhIGNvbnRyb2xsaW5nICNXZWJLaXRXZWJWaWV3Ci0gKgotICogUmV0
dXJuIHZhbHVlOiBhICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QKLSAqCi0gKiBEZXByZWNhdGVk
OiAxLjMuNDogSW5zdGFuY2VzIG9mICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QgYXJlCi0gKiBj
cmVhdGVkIGFuZCBvd25lZCBieSAjV2ViS2l0V2ViVmlldyBpbnN0YW5jZXMgb25seS4KLSAqLwot
V2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X25l
d193aXRoX3dlYl92aWV3KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBOVUxMKTsKLQotICAgIFdl
YktpdFdlYkJhY2tGb3J3YXJkTGlzdCogd2ViQmFja0ZvcndhcmRMaXN0OwotCi0gICAgd2ViQmFj
a0ZvcndhcmRMaXN0ID0gV0VCS0lUX1dFQl9CQUNLX0ZPUldBUkRfTElTVChnX29iamVjdF9uZXco
V0VCS0lUX1RZUEVfV0VCX0JBQ0tfRk9SV0FSRF9MSVNULCBOVUxMKSk7Ci0gICAgV2ViS2l0V2Vi
QmFja0ZvcndhcmRMaXN0UHJpdmF0ZSogcHJpdiA9IHdlYkJhY2tGb3J3YXJkTGlzdC0+cHJpdjsK
LQotICAgIHByaXYtPmJhY2tGb3J3YXJkTGlzdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkJhY2tG
b3J3YXJkTGlzdCo+KGNvcmUod2ViVmlldyktPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpOwotICAg
IHByaXYtPmJhY2tGb3J3YXJkTGlzdC0+c2V0RW5hYmxlZChUUlVFKTsKLQotICAgIHJldHVybiB3
ZWJCYWNrRm9yd2FyZExpc3Q7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRf
bGlzdF9nb19mb3J3YXJkOgotICogQHdlYl9iYWNrX2ZvcndhcmRfbGlzdDogYSAjV2ViS2l0V2Vi
QmFja0ZvcndhcmRMaXN0Ci0gKgotICogU3RlcHMgZm9yd2FyZCBpbiB0aGUgYmFjayBmb3J3YXJk
IGxpc3QKLSAqLwotdm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dvX2ZvcndhcmQo
V2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm9yd2FyZExpc3QpCi17Ci0gICAgZ19y
ZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUKHdlYkJhY2tGb3J3
YXJkTGlzdCkpOwotCi0gICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExp
c3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Ci0gICAgaWYgKGJhY2tGb3J3YXJkTGlzdC0+
ZW5hYmxlZCgpKQotICAgICAgICBiYWNrRm9yd2FyZExpc3QtPmdvRm9yd2FyZCgpOwotfQotCi0v
KioKLSAqIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ29fYmFjazoKLSAqIEB3ZWJfYmFj
a19mb3J3YXJkX2xpc3Q6IGEgI1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdAotICoKLSAqIFN0ZXBz
IGJhY2t3YXJkIGluIHRoZSBiYWNrIGZvcndhcmQgbGlzdAotICovCi12b2lkIHdlYmtpdF93ZWJf
YmFja19mb3J3YXJkX2xpc3RfZ29fYmFjayhXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJh
Y2tGb3J3YXJkTGlzdCkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQkFD
S19GT1JXQVJEX0xJU1Qod2ViQmFja0ZvcndhcmRMaXN0KSk7Ci0KLSAgICBXZWJDb3JlOjpCYWNr
Rm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdCA9IGNvcmUod2ViQmFja0ZvcndhcmRMaXN0KTsK
LSAgICBpZiAoYmFja0ZvcndhcmRMaXN0LT5lbmFibGVkKCkpCi0gICAgICAgIGJhY2tGb3J3YXJk
TGlzdC0+Z29CYWNrKCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlz
dF9jb250YWluc19pdGVtOgotICogQHdlYl9iYWNrX2ZvcndhcmRfbGlzdDogYSAjV2ViS2l0V2Vi
QmFja0ZvcndhcmRMaXN0Ci0gKiBAaGlzdG9yeV9pdGVtOiAodHlwZSBXZWJLaXQuV2ViSGlzdG9y
eUl0ZW0pICh0cmFuc2ZlciBub25lKTogdGhlICNXZWJLaXRXZWJIaXN0b3J5SXRlbSB0byBjaGVj
awotICoKLSAqIENoZWNrcyBpZiBAd2ViX2hpc3RvcnlfaXRlbSBpcyBpbiB0aGUgYmFjayBmb3J3
YXJkIGxpc3QKLSAqCi0gKiBSZXR1cm4gdmFsdWU6ICVUUlVFIGlmIEB3ZWJfaGlzdG9yeV9pdGVt
IGlzIGluIHRoZSBiYWNrIGZvcndhcmQgbGlzdCwgJUZBTFNFIGlmIGl0IGRvZXNuJ3QKLSAqLwot
Z2Jvb2xlYW4gd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jb250YWluc19pdGVtKFdlYktp
dFdlYkJhY2tGb3J3YXJkTGlzdCogd2ViQmFja0ZvcndhcmRMaXN0LCBXZWJLaXRXZWJIaXN0b3J5
SXRlbSogd2ViSGlzdG9yeUl0ZW0pCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVCh3ZWJCYWNrRm9yd2FyZExpc3QpLCBGQUxTRSk7Ci0g
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9ISVNUT1JZX0lURU0od2ViSGlz
dG9yeUl0ZW0pLCBGQUxTRSk7Ci0KLSAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaGlzdG9yeUl0
ZW0gPSBjb3JlKHdlYkhpc3RvcnlJdGVtKTsKLQotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGhp
c3RvcnlJdGVtICE9IE5VTEwsIEZBTFNFKTsKLQotICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlz
dCogYmFja0ZvcndhcmRMaXN0ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwotCi0gICAgcmV0
dXJuIChiYWNrRm9yd2FyZExpc3QtPmVuYWJsZWQoKSA/IGJhY2tGb3J3YXJkTGlzdC0+Y29udGFp
bnNJdGVtKGhpc3RvcnlJdGVtKSA6IEZBTFNFKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2Jh
Y2tfZm9yd2FyZF9saXN0X2dvX3RvX2l0ZW06Ci0gKiBAd2ViX2JhY2tfZm9yd2FyZF9saXN0OiBh
ICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QKLSAqIEBoaXN0b3J5X2l0ZW06ICh0eXBlIFdlYktp
dC5XZWJIaXN0b3J5SXRlbSkgKHRyYW5zZmVyIG5vbmUpOiB0aGUgI1dlYktpdFdlYkhpc3RvcnlJ
dGVtIHRvIGdvIHRvCi0gKgotICogR28gdG8gdGhlIHNwZWNpZmllZCBAd2ViX2hpc3RvcnlfaXRl
bSBpbiB0aGUgYmFjayBmb3J3YXJkIGxpc3QKLSAqLwotdm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9y
d2FyZF9saXN0X2dvX3RvX2l0ZW0oV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm9y
d2FyZExpc3QsIFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSkKLXsKLSAgICBn
X3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQkFDS19GT1JXQVJEX0xJU1Qod2ViQmFja0Zv
cndhcmRMaXN0KSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJU1RPUllf
SVRFTSh3ZWJIaXN0b3J5SXRlbSkpOwotCi0gICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGhpc3Rv
cnlJdGVtID0gY29yZSh3ZWJIaXN0b3J5SXRlbSk7Ci0gICAgV2ViQ29yZTo6QmFja0ZvcndhcmRM
aXN0KiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Ci0KLSAgICBp
ZiAoYmFja0ZvcndhcmRMaXN0LT5lbmFibGVkKCkgJiYgaGlzdG9yeUl0ZW0pCi0gICAgICAgIGJh
Y2tGb3J3YXJkTGlzdC0+Z29Ub0l0ZW0oaGlzdG9yeUl0ZW0pOwotfQotCi0vKioKLSAqIHdlYmtp
dF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGlzdF93aXRoX2xpbWl0OgotICog
QHdlYl9iYWNrX2ZvcndhcmRfbGlzdDogYSAjV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0Ci0gKiBA
bGltaXQ6IHRoZSBudW1iZXIgb2YgaXRlbXMgdG8gcmV0cmlldmUKLSAqCi0gKiBSZXR1cm5zIGEg
bGlzdCBvZiBpdGVtcyB0aGF0IHN1Y2NlZWQgdGhlIGN1cnJlbnQgaXRlbSwgbGltaXRlZCBieSBA
bGltaXQKLSAqCi0gKiBSZXR1cm4gdmFsdWU6IChlbGVtZW50LXR5cGUgV2ViS2l0LldlYkhpc3Rv
cnlJdGVtKSAodHJhbnNmZXIgY29udGFpbmVyKTogYSAjR0xpc3Qgb2YgaXRlbXMgc3VjY2VlZGlu
ZyB0aGUgY3VycmVudCBpdGVtLCBsaW1pdGVkIGJ5IEBsaW1pdAotICovCi1HTGlzdCogd2Via2l0
X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9saXN0X3dpdGhfbGltaXQoV2ViS2l0
V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm9yd2FyZExpc3QsIGdpbnQgbGltaXQpCi17Ci0g
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVCh3
ZWJCYWNrRm9yd2FyZExpc3QpLCBOVUxMKTsKLQotICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlz
dCogYmFja0ZvcndhcmRMaXN0ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwotICAgIGlmICgh
YmFja0ZvcndhcmRMaXN0IHx8ICFiYWNrRm9yd2FyZExpc3QtPmVuYWJsZWQoKSkKLSAgICAgICAg
cmV0dXJuIE5VTEw7Ci0KLSAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbVZlY3RvciBpdGVtczsKLSAg
ICBHTGlzdCogZm9yd2FyZEl0ZW1zID0geyAwIH07Ci0KLSAgICBiYWNrRm9yd2FyZExpc3QtPmZv
cndhcmRMaXN0V2l0aExpbWl0KGxpbWl0LCBpdGVtcyk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgV2ViS2l0V2ViSGlzdG9yeUl0
ZW0qIHdlYkhpc3RvcnlJdGVtID0ga2l0KGl0ZW1zW2ldKTsKLSAgICAgICAgZm9yd2FyZEl0ZW1z
ID0gZ19saXN0X3ByZXBlbmQoZm9yd2FyZEl0ZW1zLCB3ZWJIaXN0b3J5SXRlbSk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIGZvcndhcmRJdGVtczsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2JhY2tf
Zm9yd2FyZF9saXN0X2dldF9iYWNrX2xpc3Rfd2l0aF9saW1pdDoKLSAqIEB3ZWJfYmFja19mb3J3
YXJkX2xpc3Q6IGEgI1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdAotICogQGxpbWl0OiB0aGUgbnVt
YmVyIG9mIGl0ZW1zIHRvIHJldHJpZXZlCi0gKgotICogUmV0dXJucyBhIGxpc3Qgb2YgaXRlbXMg
dGhhdCBwcmVjZWRlIHRoZSBjdXJyZW50IGl0ZW0sIGxpbWl0ZWQgYnkgQGxpbWl0Ci0gKgotICog
UmV0dXJuIHZhbHVlOiAoZWxlbWVudC10eXBlIFdlYktpdC5XZWJIaXN0b3J5SXRlbSkgKHRyYW5z
ZmVyIGNvbnRhaW5lcik6IGEgI0dMaXN0IG9mIGl0ZW1zIHByZWNlZGluZyB0aGUgY3VycmVudCBp
dGVtLCBsaW1pdGVkIGJ5IEBsaW1pdAotICovCi1HTGlzdCogd2Via2l0X3dlYl9iYWNrX2Zvcndh
cmRfbGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0
KiB3ZWJCYWNrRm9yd2FyZExpc3QsIGdpbnQgbGltaXQpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVCh3ZWJCYWNrRm9yd2FyZExpc3Qp
LCBOVUxMKTsKLQotICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0
ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwotICAgIGlmICghYmFja0ZvcndhcmRMaXN0IHx8
ICFiYWNrRm9yd2FyZExpc3QtPmVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAg
ICBXZWJDb3JlOjpIaXN0b3J5SXRlbVZlY3RvciBpdGVtczsKLSAgICBHTGlzdCogYmFja0l0ZW1z
ID0geyAwIH07Ci0KLSAgICBiYWNrRm9yd2FyZExpc3QtPmJhY2tMaXN0V2l0aExpbWl0KGxpbWl0
LCBpdGVtcyk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyBp
KyspIHsKLSAgICAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0ga2l0
KGl0ZW1zW2ldKTsKLSAgICAgICAgYmFja0l0ZW1zID0gZ19saXN0X3ByZXBlbmQoYmFja0l0ZW1z
LCB3ZWJIaXN0b3J5SXRlbSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGJhY2tJdGVtczsKLX0KLQot
LyoqCi0gKiB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2l0ZW06Ci0gKiBA
d2ViX2JhY2tfZm9yd2FyZF9saXN0OiBhICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QKLSAqCi0g
KiBSZXR1cm5zIHRoZSBpdGVtIHRoYXQgcHJlY2VkZXMgdGhlIGN1cnJlbnQgaXRlbQotICoKLSAq
IFJldHVybiB2YWx1ZTogKHR5cGUgV2ViS2l0LldlYkhpc3RvcnlJdGVtKSAodHJhbnNmZXIgbm9u
ZSk6IHRoZSAjV2ViS2l0V2ViSGlzdG9yeUl0ZW0gcHJlY2VkaW5nIHRoZSBjdXJyZW50IGl0ZW0K
LSAqLwotV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rf
Z2V0X2JhY2tfaXRlbShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJkTGlz
dCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9SV0FS
RF9MSVNUKHdlYkJhY2tGb3J3YXJkTGlzdCksIE5VTEwpOwotCi0gICAgV2ViQ29yZTo6QmFja0Zv
cndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Ci0g
ICAgaWYgKCFiYWNrRm9yd2FyZExpc3QgfHwgIWJhY2tGb3J3YXJkTGlzdC0+ZW5hYmxlZCgpKQot
ICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBoaXN0b3J5
SXRlbSA9IGJhY2tGb3J3YXJkTGlzdC0+YmFja0l0ZW0oKTsKLQotICAgIHJldHVybiAoaGlzdG9y
eUl0ZW0gPyBraXQoaGlzdG9yeUl0ZW0pIDogTlVMTCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dl
Yl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfY3VycmVudF9pdGVtOgotICogQHdlYl9iYWNrX2Zvcndh
cmRfbGlzdDogYSAjV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0Ci0gKgotICogUmV0dXJucyB0aGUg
Y3VycmVudCBpdGVtLgotICoKLSAqIFJldHVybnMgYSBOVUxMIHZhbHVlIGlmIHRoZSBiYWNrIGZv
cndhcmQgbGlzdCBpcyBlbXB0eQotICoKLSAqIFJldHVybiB2YWx1ZTogKHR5cGUgV2ViS2l0Lldl
Ykhpc3RvcnlJdGVtKSAodHJhbnNmZXIgbm9uZSk6IGEgI1dlYktpdFdlYkhpc3RvcnlJdGVtCi0g
Ki8KLVdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dl
dF9jdXJyZW50X2l0ZW0oV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm9yd2FyZExp
c3QpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldB
UkRfTElTVCh3ZWJCYWNrRm9yd2FyZExpc3QpLCBOVUxMKTsKLQotICAgIFdlYkNvcmU6OkJhY2tG
b3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwot
ICAgIGlmICghYmFja0ZvcndhcmRMaXN0IHx8ICFiYWNrRm9yd2FyZExpc3QtPmVuYWJsZWQoKSkK
LSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaGlzdG9y
eUl0ZW0gPSBiYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCk7Ci0KLSAgICByZXR1cm4gKGhp
c3RvcnlJdGVtID8ga2l0KGhpc3RvcnlJdGVtKSA6IE5VTEwpOwotfQotCi0vKioKLSAqIHdlYmtp
dF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfaXRlbToKLSAqIEB3ZWJfYmFja19m
b3J3YXJkX2xpc3Q6IGEgI1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdAotICoKLSAqIFJldHVybnMg
dGhlIGl0ZW0gdGhhdCBzdWNjZWVkcyB0aGUgY3VycmVudCBpdGVtLgotICoKLSAqIFJldHVybnMg
YSBOVUxMIHZhbHVlIGlmIHRoZXJlIG5vdGhpbmcgdGhhdCBzdWNjZWVkcyB0aGUgY3VycmVudCBp
dGVtCi0gKgotICogUmV0dXJuIHZhbHVlOiAodHlwZSBXZWJLaXQuV2ViSGlzdG9yeUl0ZW0pICh0
cmFuc2ZlciBub25lKTogYSAjV2ViS2l0V2ViSGlzdG9yeUl0ZW0KLSAqLwotV2ViS2l0V2ViSGlz
dG9yeUl0ZW0qIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfaXRlbShX
ZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJkTGlzdCkKLXsKLSAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUKHdlYkJhY2tG
b3J3YXJkTGlzdCksIE5VTEwpOwotCi0gICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBiYWNr
Rm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Ci0gICAgaWYgKCFiYWNrRm9y
d2FyZExpc3QgfHwgIWJhY2tGb3J3YXJkTGlzdC0+ZW5hYmxlZCgpKQotICAgICAgICByZXR1cm4g
TlVMTDsKLQotICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBoaXN0b3J5SXRlbSA9IGJhY2tGb3J3
YXJkTGlzdC0+Zm9yd2FyZEl0ZW0oKTsKLQotICAgIHJldHVybiAoaGlzdG9yeUl0ZW0gPyBraXQo
aGlzdG9yeUl0ZW0pIDogTlVMTCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9iYWNrX2Zvcndh
cmRfbGlzdF9nZXRfbnRoX2l0ZW06Ci0gKiBAd2ViX2JhY2tfZm9yd2FyZF9saXN0OiBhICNXZWJL
aXRXZWJCYWNrRm9yd2FyZExpc3QKLSAqIEBpbmRleDogdGhlIGluZGV4IG9mIHRoZSBpdGVtCi0g
KgotICogUmV0dXJucyB0aGUgaXRlbSBhdCBhIGdpdmVuIGluZGV4IHJlbGF0aXZlIHRvIHRoZSBj
dXJyZW50IGl0ZW0uCi0gKgotICogUmV0dXJuIHZhbHVlOiAodHlwZSBXZWJLaXQuV2ViSGlzdG9y
eUl0ZW0pICh0cmFuc2ZlciBub25lKTogdGhlICNXZWJLaXRXZWJIaXN0b3J5SXRlbSBsb2NhdGVk
IGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgaXRlbQotICov
Ci1XZWJLaXRXZWJIaXN0b3J5SXRlbSogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRf
bnRoX2l0ZW0oV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm9yd2FyZExpc3QsIGdp
bnQgaW5kZXgpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9CQUNL
X0ZPUldBUkRfTElTVCh3ZWJCYWNrRm9yd2FyZExpc3QpLCBOVUxMKTsKLQotICAgIFdlYkNvcmU6
OkJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExp
c3QpOwotICAgIGlmICghYmFja0ZvcndhcmRMaXN0KQotICAgICAgICByZXR1cm4gTlVMTDsKLQot
ICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBoaXN0b3J5SXRlbSA9IGJhY2tGb3J3YXJkTGlzdC0+
aXRlbUF0SW5kZXgoaW5kZXgpOwotCi0gICAgcmV0dXJuIChoaXN0b3J5SXRlbSA/IGtpdChoaXN0
b3J5SXRlbSkgOiBOVUxMKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9s
aXN0X2dldF9iYWNrX2xlbmd0aDoKLSAqIEB3ZWJfYmFja19mb3J3YXJkX2xpc3Q6IGEgI1dlYktp
dFdlYkJhY2tGb3J3YXJkTGlzdAotICoKLSAqIFJldHVybnMgdGhlIG51bWJlciBvZiBpdGVtcyB0
aGF0IHByZWNlZCB0aGUgY3VycmVudCBpdGVtLgotICoKLSAqIFJldHVybiB2YWx1ZTogYSAjZ2lu
dCBjb3JyZXNwb25kaW5nIHRvIHRoZSBudW1iZXIgb2YgaXRlbXMgcHJlY2VkaW5nIHRoZSBjdXJy
ZW50IGl0ZW0KLSAqLwotZ2ludCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNr
X2xlbmd0aChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJkTGlzdCkKLXsK
LSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9SV0FSRF9MSVNU
KHdlYkJhY2tGb3J3YXJkTGlzdCksIDApOwotCi0gICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0
KiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Ci0gICAgaWYgKCFi
YWNrRm9yd2FyZExpc3QgfHwgIWJhY2tGb3J3YXJkTGlzdC0+ZW5hYmxlZCgpKQotICAgICAgICBy
ZXR1cm4gMDsKLQotICAgIHJldHVybiBiYWNrRm9yd2FyZExpc3QtPmJhY2tMaXN0Q291bnQoKTsK
LX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xl
bmd0aDoKLSAqIEB3ZWJfYmFja19mb3J3YXJkX2xpc3Q6IGEgI1dlYktpdFdlYkJhY2tGb3J3YXJk
TGlzdAotICoKLSAqIFJldHVybnMgdGhlIG51bWJlciBvZiBpdGVtcyB0aGF0IHN1Y2NlZWQgdGhl
IGN1cnJlbnQgaXRlbS4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6IGEgI2dpbnQgY29ycmVzcG9uZGlu
ZyB0byB0aGUgbnViZXIgb2YgaXRlbXMgc3VjY2VlZGluZyB0aGUgY3VycmVudCBpdGVtCi0gKi8K
LWdpbnQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9sZW5ndGgoV2Vi
S2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm9yd2FyZExpc3QpCi17Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVCh3ZWJCYWNrRm9y
d2FyZExpc3QpLCAwKTsKLQotICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCogYmFja0Zvcndh
cmRMaXN0ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwotICAgIGlmICghYmFja0ZvcndhcmRM
aXN0IHx8ICFiYWNrRm9yd2FyZExpc3QtPmVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICByZXR1cm4gYmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkTGlzdENvdW50KCk7Ci19Ci0KLS8q
KgotICogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbGltaXQ6Ci0gKiBAd2ViX2Jh
Y2tfZm9yd2FyZF9saXN0OiBhICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QKLSAqCi0gKiBSZXR1
cm5zIHRoZSBtYXhpbXVtIGxpbWl0IG9mIHRoZSBiYWNrIGZvcndhcmQgbGlzdC4KLSAqCi0gKiBS
ZXR1cm4gdmFsdWU6IGEgI2dpbnQgaW5kaWNhdGluZyB0aGUgbnVtYmVyIG9mICNXZWJLaXRXZWJI
aXN0b3J5SXRlbSB0aGUgYmFjayBmb3J3YXJkIGxpc3QgY2FuIGhvbGQKLSAqLwotZ2ludCB3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9saW1pdChXZWJLaXRXZWJCYWNrRm9yd2FyZExp
c3QqIHdlYkJhY2tGb3J3YXJkTGlzdCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfSVNfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUKHdlYkJhY2tGb3J3YXJkTGlzdCksIDApOwotCi0g
ICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJh
Y2tGb3J3YXJkTGlzdCk7Ci0gICAgaWYgKCFiYWNrRm9yd2FyZExpc3QgfHwgIWJhY2tGb3J3YXJk
TGlzdC0+ZW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBiYWNrRm9y
d2FyZExpc3QtPmNhcGFjaXR5KCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9iYWNrX2Zvcndh
cmRfbGlzdF9zZXRfbGltaXQ6Ci0gKiBAd2ViX2JhY2tfZm9yd2FyZF9saXN0OiBhICNXZWJLaXRX
ZWJCYWNrRm9yd2FyZExpc3QKLSAqIEBsaW1pdDogdGhlIGxpbWl0IHRvIHNldCB0aGUgYmFjayBm
b3J3YXJkIGxpc3QgdG8KLSAqCi0gKiBTZXRzIHRoZSBtYXhpbXVtIGxpbWl0IG9mIHRoZSBiYWNr
IGZvcndhcmQgbGlzdC4gSWYgdGhlIGJhY2sgZm9yd2FyZCBsaXN0Ci0gKiBleGNlZWRzIGl0cyBj
YXBhY2l0eSwgaXRlbXMgd2lsbCBiZSByZW1vdmVkIGV2ZXJ5dGltZSBhIG5ldyBpdGVtIGhhcyBi
ZWVuCi0gKiBhZGRlZC4KLSAqLwotdm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X3Nl
dF9saW1pdChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJkTGlzdCwgZ2lu
dCBsaW1pdCkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQkFDS19GT1JX
QVJEX0xJU1Qod2ViQmFja0ZvcndhcmRMaXN0KSk7Ci0KLSAgICBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZExpc3QqIGJhY2tGb3J3YXJkTGlzdCA9IGNvcmUod2ViQmFja0ZvcndhcmRMaXN0KTsKLSAgICBp
ZiAoYmFja0ZvcndhcmRMaXN0KQotICAgICAgICBiYWNrRm9yd2FyZExpc3QtPnNldENhcGFjaXR5
KGxpbWl0KTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9p
dGVtOgotICogQHdlYl9iYWNrX2ZvcndhcmRfbGlzdDogYSAjV2ViS2l0V2ViQmFja0ZvcndhcmRM
aXN0Ci0gKiBAaGlzdG9yeV9pdGVtOiAodHlwZSBXZWJLaXQuV2ViSGlzdG9yeUl0ZW0pICh0cmFu
c2ZlciBub25lKTogdGhlICNXZWJLaXRXZWJIaXN0b3J5SXRlbSB0byBhZGQKLSAqCi0gKiBBZGRz
IHRoZSBpdGVtIHRvIHRoZSAjV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0LgotICoKLSAqIFRoZSBA
d2ViQmFja0ZvcndhcmRMaXN0IHdpbGwgYWRkIGEgcmVmZXJlbmNlIHRvIHRoZSBAd2ViSGlzdG9y
eUl0ZW0sIHNvIHlvdQotICogZG9uJ3QgbmVlZCB0byBrZWVwIGEgcmVmZXJlbmNlIG9uY2UgeW91
J3ZlIGFkZGVkIGl0IHRvIHRoZSBsaXN0LgotICoKLSAqIFNpbmNlOiAxLjEuMQotICovCi12b2lk
IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRkX2l0ZW0oV2ViS2l0V2ViQmFja0Zvcndh
cmRMaXN0ICp3ZWJCYWNrRm9yd2FyZExpc3QsIFdlYktpdFdlYkhpc3RvcnlJdGVtICp3ZWJIaXN0
b3J5SXRlbSkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQkFDS19GT1JX
QVJEX0xJU1Qod2ViQmFja0ZvcndhcmRMaXN0KSk7Ci0KLSAgICBnX29iamVjdF9yZWYod2ViSGlz
dG9yeUl0ZW0pOwotCi0gICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExp
c3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Ci0gICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0q
IGhpc3RvcnlJdGVtID0gY29yZSh3ZWJIaXN0b3J5SXRlbSk7Ci0KLSAgICBiYWNrRm9yd2FyZExp
c3QtPmFkZEl0ZW0oaGlzdG9yeUl0ZW0pOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfYmFja19m
b3J3YXJkX2xpc3RfY2xlYXI6Ci0gKiBAd2ViX2JhY2tfZm9yd2FyZF9saXN0OiB0aGUgI1dlYktp
dFdlYkJhY2tGb3J3YXJkTGlzdCB0byBiZSBjbGVhcmVkCi0gKgotICogQ2xlYXJzIHRoZSBAd2Vi
QmFja0ZvcndhcmRMaXN0IGJ5IHJlbW92aW5nIGFsbCBpdHMgZWxlbWVudHMuIE5vdGUgdGhhdCBu
b3QgZXZlbgotICogdGhlIGN1cnJlbnQgcGFnZSBpcyBrZXB0IGluIGxpc3Qgd2hlbiBjbGVhcmVk
IHNvIHlvdSB3b3VsZCBoYXZlIHRvIGFkZCBpdCBsYXRlci4KLSAqIFRoaXMgbWV0aG9kIGFsc28g
Y2xlYXJzIHRoZSBsaXN0IG9mIHZpc2l0ZWQgbGlua3Mgd2hpY2ggbWVhbnMgdGhhdCBhbGwgbGlu
a3Mgd2lsbAotICogYXBwZWFyIHVudmlzaXRlZC4KLSAqCi0gKiBTaW5jZTogMS4zLjEKLSAqKi8K
LXZvaWQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jbGVhcihXZWJLaXRXZWJCYWNrRm9y
d2FyZExpc3QqIHdlYkJhY2tGb3J3YXJkTGlzdCkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdF
QktJVF9JU19XRUJfQkFDS19GT1JXQVJEX0xJU1Qod2ViQmFja0ZvcndhcmRMaXN0KSk7Ci0KLSAg
ICBXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdCA9IGNvcmUod2ViQmFj
a0ZvcndhcmRMaXN0KTsKLSAgICBpZiAoIWJhY2tGb3J3YXJkTGlzdCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgV2ViQ29yZTo6UGFnZSogcGFnZSA9IGJhY2tGb3J3YXJkTGlzdC0+cGFnZSgpOwot
ICAgIGlmIChwYWdlICYmIHBhZ2UtPmdyb3VwUHRyKCkpCi0gICAgICAgIHBhZ2UtPmdyb3VwUHRy
KCktPnJlbW92ZVZpc2l0ZWRMaW5rcygpOwotCi0gICAgaWYgKCFiYWNrRm9yd2FyZExpc3QtPmVu
YWJsZWQoKSB8fCAhYmFja0ZvcndhcmRMaXN0LT5lbnRyaWVzKCkuc2l6ZSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICAvLyBDbGVhciB0aGUgY3VycmVudCBsaXN0IGJ5IHNldHRpbmcgY2FwYWNp
dHkgdG8gMAotICAgIGludCBjYXBhY2l0eSA9IGJhY2tGb3J3YXJkTGlzdC0+Y2FwYWNpdHkoKTsK
LSAgICBiYWNrRm9yd2FyZExpc3QtPnNldENhcGFjaXR5KDApOwotICAgIGJhY2tGb3J3YXJkTGlz
dC0+c2V0Q2FwYWNpdHkoY2FwYWNpdHkpOwotfQotCi1XZWJDb3JlOjpCYWNrRm9yd2FyZExpc3Qq
IFdlYktpdDo6Y29yZShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJkTGlz
dCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9SV0FS
RF9MSVNUKHdlYkJhY2tGb3J3YXJkTGlzdCksIE5VTEwpOwotCi0gICAgcmV0dXJuIHdlYkJhY2tG
b3J3YXJkTGlzdC0+cHJpdiA/IHdlYkJhY2tGb3J3YXJkTGlzdC0+cHJpdi0+YmFja0ZvcndhcmRM
aXN0IDogMDsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJiYWNrZm9yd2FyZGxpc3QuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJi
YWNrZm9yd2FyZGxpc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNlNTZjOS4u
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2Zvcndh
cmRsaXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8gPGptYWxvbnpvQHVucGx1Z2dhYmxlLmNv
bT4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8K
LQotI2lmbmRlZiB3ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3RfaAotI2RlZmluZSB3ZWJraXR3ZWJi
YWNrZm9yd2FyZGxpc3RfaAotCi0jaW5jbHVkZSA8Z2xpYi5oPgotI2luY2x1ZGUgPGdsaWItb2Jq
ZWN0Lmg+Ci0KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotI2luY2x1ZGUgPHdl
YmtpdC93ZWJraXR3ZWJoaXN0b3J5aXRlbS5oPgotCi1HX0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUg
V0VCS0lUX1RZUEVfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUICAgICAgICAgICAgKHdlYmtpdF93ZWJf
YmFja19mb3J3YXJkX2xpc3RfZ2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9CQUNLX0ZP
UldBUkRfTElTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChv
YmopLCBXRUJLSVRfVFlQRV9XRUJfQkFDS19GT1JXQVJEX0xJU1QsIFdlYktpdFdlYkJhY2tGb3J3
YXJkTGlzdCkpCi0jZGVmaW5lIFdFQktJVF9XRUJfQkFDS19GT1JXQVJEX0xJU1RfQ0xBU1Moa2xh
c3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VC
X0JBQ0tfRk9SV0FSRF9MSVNULCBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RDbGFzcykpCi0jZGVm
aW5lIFdFQktJVF9JU19XRUJfQkFDS19GT1JXQVJEX0xJU1Qob2JqKSAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0JBQ0tfRk9SV0FSRF9M
SVNUKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVF9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfQkFD
S19GT1JXQVJEX0xJU1QpKQotI2RlZmluZSBXRUJLSVRfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUX0dF
VF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9U
WVBFX1dFQl9CQUNLX0ZPUldBUkRfTElTVCwgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0Q2xhc3Mp
KQotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZSBXZWJL
aXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdFdlYkJhY2tGb3J3
YXJkTGlzdCB7Ci0gICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7Ci0KLSAgICAvKjwgcHJpdmF0
ZSA+Ki8KLSAgICBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlICpwcml2OwotfTsKLQot
c3RydWN0IF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RDbGFzcyB7Ci0gICAgR09iamVjdENsYXNz
IHBhcmVudF9jbGFzczsKLQotICAgIC8qIFBhZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8K
LSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtp
dF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lk
KTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKLX07Ci0KLVdFQktJVF9B
UEkgR1R5cGUKLXdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X3R5cGUgKHZvaWQpOwot
Ci0jaWYgIWRlZmluZWQoV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCkKLVdFQktJVF9BUEkgV2Vi
S2l0V2ViQmFja0ZvcndhcmRMaXN0ICoKLXdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfbmV3
X3dpdGhfd2ViX3ZpZXcgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldyk7Ci0jZW5k
aWYKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dvX2Zv
cndhcmQgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0ICp3ZWJfYmFj
a19mb3J3YXJkX2xpc3QpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfYmFja19mb3J3
YXJkX2xpc3RfZ29fYmFjayAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJCYWNrRm9yd2Fy
ZExpc3QgKndlYl9iYWNrX2ZvcndhcmRfbGlzdCk7Ci0KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdl
YmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY29udGFpbnNfaXRlbSAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QgKndlYl9iYWNrX2ZvcndhcmRfbGlzdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRX
ZWJIaXN0b3J5SXRlbSAgICAgKmhpc3RvcnlfaXRlbSk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Vi
a2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nb190b19pdGVtICAgICAgICAgICAgICAgICAgKFdl
YktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViX2JhY2tfZm9yd2FyZF9saXN0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdl
Ykhpc3RvcnlJdGVtICAgICAqaGlzdG9yeV9pdGVtKTsKLQotV0VCS0lUX0FQSSBHTGlzdCAqCi13
ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3Rfd2l0aF9saW1pdCAo
V2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0ICp3ZWJfYmFja19mb3J3YXJkX2xpc3QsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCAg
ICAgICAgICAgICAgICAgICAgICBsaW1pdCk7Ci0KLVdFQktJVF9BUEkgR0xpc3QgKgotd2Via2l0
X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQgICAgKFdlYktp
dFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViX2JhY2tfZm9yd2FyZF9saXN0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgICAgICAg
ICAgICAgICAgICAgICAgbGltaXQpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYkhpc3RvcnlJdGVt
ICoKLXdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfaXRlbSAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QgKndlYl9iYWNrX2ZvcndhcmRfbGlzdCk7Ci0K
LVdFQktJVF9BUEkgV2ViS2l0V2ViSGlzdG9yeUl0ZW0gKgotd2Via2l0X3dlYl9iYWNrX2Zvcndh
cmRfbGlzdF9nZXRfY3VycmVudF9pdGVtICAgICAgICAgICAgKFdlYktpdFdlYkJhY2tGb3J3YXJk
TGlzdCAqd2ViX2JhY2tfZm9yd2FyZF9saXN0KTsKLQotV0VCS0lUX0FQSSBXZWJLaXRXZWJIaXN0
b3J5SXRlbSAqCi13ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2l0ZW0g
ICAgICAgICAgICAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0ICp3ZWJfYmFja19mb3J3YXJkX2xp
c3QpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYkhpc3RvcnlJdGVtICoKLXdlYmtpdF93ZWJfYmFj
a19mb3J3YXJkX2xpc3RfZ2V0X250aF9pdGVtICAgICAgICAgICAgICAgIChXZWJLaXRXZWJCYWNr
Rm9yd2FyZExpc3QgKndlYl9iYWNrX2ZvcndhcmRfbGlzdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAg
ICAgICAgIGluZGV4KTsKLQotV0VCS0lUX0FQSSBnaW50Ci13ZWJraXRfd2ViX2JhY2tfZm9yd2Fy
ZF9saXN0X2dldF9iYWNrX2xlbmd0aCAgICAgICAgICAgICAoV2ViS2l0V2ViQmFja0ZvcndhcmRM
aXN0ICp3ZWJfYmFja19mb3J3YXJkX2xpc3QpOwotCi1XRUJLSVRfQVBJIGdpbnQKLXdlYmtpdF93
ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGVuZ3RoICAgICAgICAgIChXZWJLaXRX
ZWJCYWNrRm9yd2FyZExpc3QgKndlYl9iYWNrX2ZvcndhcmRfbGlzdCk7Ci0KLVdFQktJVF9BUEkg
Z2ludAotd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbGltaXQgICAgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViX2JhY2tfZm9yd2FyZF9saXN0KTsK
LQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X3NldF9saW1p
dCAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0ICp3ZWJfYmFja19m
b3J3YXJkX2xpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ2ludCAgICAgICAgICAgICAgICAgICAgICBsaW1pdCk7Ci0KLVdFQktJ
VF9BUEkgdm9pZAotd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9hZGRfaXRlbSAgICAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqd2ViX2JhY2tfZm9yd2FyZF9s
aXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtICAgICAqaGlzdG9yeV9pdGVtKTsKLQotV0VCS0lU
X0FQSSB2b2lkCi13ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2NsZWFyICAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0ICp3ZWJfYmFja19mb3J3YXJkX2xp
c3QpOwotCi1HX0VORF9ERUNMUwotCi0KLSNlbmRpZiAvKiB3ZWJraXR3ZWJiYWNrZm9yd2FyZGxp
c3RfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJh
Y2tmb3J3YXJkbGlzdHByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJiYWNrZm9yd2FyZGxpc3Rwcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDc2NjZlYzIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YmJhY2tmb3J3YXJkbGlzdHByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIg
RnJleXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KLSAq
IENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDEw
IElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0cHJpdmF0ZV9oCi0j
ZGVmaW5lIHdlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdHByaXZhdGVfaAotCi0jaW5jbHVkZSAiQmFj
a0ZvcndhcmRMaXN0LmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJDb3JlOjpCYWNrRm9y
d2FyZExpc3QqIGNvcmUoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0Kik7Ci0KLX0KLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YWJhc2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFiYXNlLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg0YmE3Yy4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YWJhc2UuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsNTI1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgTWFydGluIFJvYmluc29u
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJkYXRhYmFzZS5oIgotCi0j
aW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCi0jaW5jbHVkZSAiRGF0YWJhc2VNYW5hZ2VyLmgi
Ci0jaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIkdyb3VwU2V0dGluZ3MuaCIKLSNp
bmNsdWRlICJQYWdlR3JvdXAuaCIKLSNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgot
I2luY2x1ZGUgIndlYmtpdHNlY3VyaXR5b3JpZ2lucHJpdmF0ZS5oIgotI2luY2x1ZGUgPGdsaWIv
Z2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi0vKioKLSAqIFNF
Q1RJT046d2Via2l0d2ViZGF0YWJhc2UKLSAqIEBzaG9ydF9kZXNjcmlwdGlvbjogQSBXZWJLaXQg
d2ViIGFwcGxpY2F0aW9uIGRhdGFiYXNlCi0gKgotICogI1dlYktpdFdlYkRhdGFiYXNlIGlzIGEg
cmVwcmVzZW50YXRpb24gb2YgYSBXZWIgRGF0YWJhc2UgZGF0YWJhc2UuIFRoZQotICogcHJvcG9z
ZWQgV2ViIERhdGFiYXNlIHN0YW5kYXJkIGludHJvZHVjZXMgc3VwcG9ydCBmb3IgU1FMIGRhdGFi
YXNlcyB0aGF0IHdlYgotICogc2l0ZXMgY2FuIGNyZWF0ZSBhbmQgYWNjZXNzIG9uIGEgbG9jYWwg
Y29tcHV0ZXIgdGhyb3VnaCBKYXZhU2NyaXB0LgotICoKLSAqIFRvIGdldCBhY2Nlc3MgdG8gYWxs
IGRhdGFiYXNlcyBkZWZpbmVkIGJ5IGEgc2VjdXJpdHkgb3JpZ2luLCB1c2UKLSAqICN3ZWJraXRf
c2VjdXJpdHlfb3JpZ2luX2dldF9kYXRhYmFzZXMuIEVhY2ggZGF0YWJhc2UgaGFzIGEgY2Fub25p
Y2FsCi0gKiBuYW1lLCBhcyB3ZWxsIGFzIGEgdXNlci1mcmllbmRseSBkaXNwbGF5IG5hbWUuCi0g
KgotICogV2ViS2l0IHVzZXMgU1FMaXRlIHRvIGNyZWF0ZSBhbmQgYWNjZXNzIHRoZSBsb2NhbCBT
UUwgZGF0YWJhc2VzLiBUaGUgbG9jYXRpb24KLSAqIG9mIGEgI1dlYktpdFdlYkRhdGFiYXNlIGNh
biBiZSBhY2Nlc3NlZCB3dGggI3dlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X2ZpbGVuYW1lLgotICog
WW91IGNhbiBjb25maWd1cmUgdGhlIGxvY2F0aW9uIG9mIGFsbCBkYXRhYmFzZXMgd2l0aAotICog
I3dlYmtpdF9zZXRfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGguCi0gKgotICogRm9yIGVhY2ggZGF0
YWJhc2UgdGhlIHdlYiBzaXRlIGNhbiBkZWZpbmUgYW4gZXN0aW1hdGVkIHNpemUgd2hpY2ggY2Fu
IGJlCi0gKiBhY2Nlc3NlZCB3aXRoICN3ZWJraXRfd2ViX2RhdGFiYXNlX2dldF9leHBlY3RlZF9z
aXplLiBUaGUgY3VycmVudCBzaXplIG9mIHRoZQotICogZGF0YWJhc2UgaW4gYnl0ZXMgaXMgcmV0
dXJuZWQgYnkgI3dlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X3NpemUuCi0gKgotICogRm9yIG1vcmUg
aW5mb3JtYXRpb24gcmVmZXIgdG8gdGhlIFdlYiBEYXRhYmFzZSBzcGVjaWZpY2F0aW9uIHByb3Bv
c2FsIGF0Ci0gKiBodHRwOi8vZGV2LnczLm9yZy9odG1sNS93ZWJkYXRhYmFzZQotICovCi0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLWVudW0gewotICAgIFBST1BfMCwKLQotICAgIFBST1Bf
U0VDVVJJVFlfT1JJR0lOLAotICAgIFBST1BfTkFNRSwKLSAgICBQUk9QX0RJU1BMQVlfTkFNRSwK
LSAgICBQUk9QX0VYUEVDVEVEX1NJWkUsCi0gICAgUFJPUF9TSVpFLAotICAgIFBST1BfUEFUSAot
fTsKLQotR19ERUZJTkVfVFlQRShXZWJLaXRXZWJEYXRhYmFzZSwgd2Via2l0X3dlYl9kYXRhYmFz
ZSwgR19UWVBFX09CSkVDVCkKLQotc3RydWN0IF9XZWJLaXRXZWJEYXRhYmFzZVByaXZhdGUgewot
ICAgIFdlYktpdFNlY3VyaXR5T3JpZ2luKiBvcmlnaW47Ci0gICAgZ2NoYXIqIG5hbWU7Ci0gICAg
Z2NoYXIqIGRpc3BsYXlOYW1lOwotICAgIGdjaGFyKiBmaWxlbmFtZTsKLX07Ci0KLXN0YXRpYyBD
U3RyaW5nIGdXZWJLaXRXZWJEYXRhYmFzZVBhdGg7Ci1zdGF0aWMgZ3VpbnQ2NCB3ZWJraXRfZGVm
YXVsdF9kYXRhYmFzZV9xdW90YSA9IDUgKiAxMDI0ICogMTAyNDsKLQotc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl9kYXRhYmFzZV9zZXRfc2VjdXJpdHlfb3JpZ2luKFdlYktpdFdlYkRhdGFiYXNlKiB3
ZWJEYXRhYmFzZSwgV2ViS2l0U2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5X29yaWdpbik7Ci0KLXN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfZGF0YWJhc2Vfc2V0X25hbWUoV2ViS2l0V2ViRGF0YWJhc2Uq
IHdlYkRhdGFiYXNlLCBjb25zdCBnY2hhciogbmFtZSk7Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfZGF0YWJhc2VfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQotewotICAgIFdlYktpdFdlYkRh
dGFiYXNlKiB3ZWJEYXRhYmFzZSA9IFdFQktJVF9XRUJfREFUQUJBU0Uob2JqZWN0KTsKLSAgICBX
ZWJLaXRXZWJEYXRhYmFzZVByaXZhdGUqIHByaXYgPSB3ZWJEYXRhYmFzZS0+cHJpdjsKLQotICAg
IGdfZnJlZShwcml2LT5uYW1lKTsKLSAgICBnX2ZyZWUocHJpdi0+ZGlzcGxheU5hbWUpOwotICAg
IGdfZnJlZShwcml2LT5maWxlbmFtZSk7Ci0KLSAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2Vi
X2RhdGFiYXNlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfZGF0YWJhc2VfZGlzcG9zZShHT2JqZWN0KiBvYmplY3QpCi17Ci0gICAg
V2ViS2l0V2ViRGF0YWJhc2UqIHdlYkRhdGFiYXNlID0gV0VCS0lUX1dFQl9EQVRBQkFTRShvYmpl
Y3QpOwotICAgIFdlYktpdFdlYkRhdGFiYXNlUHJpdmF0ZSogcHJpdiA9IHdlYkRhdGFiYXNlLT5w
cml2OwotCi0gICAgaWYgKHByaXYtPm9yaWdpbikgewotICAgICAgICBnX29iamVjdF91bnJlZihw
cml2LT5vcmlnaW4pOwotICAgICAgICBwcml2LT5vcmlnaW4gPSBOVUxMOwotICAgIH0KLQotICAg
IEdfT0JKRUNUX0NMQVNTKHdlYmtpdF93ZWJfZGF0YWJhc2VfcGFyZW50X2NsYXNzKS0+ZGlzcG9z
ZShvYmplY3QpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2RhdGFiYXNlX3NldF9wcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwg
R1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0V2ViRGF0YWJhc2UqIHdlYkRhdGFiYXNl
ID0gV0VCS0lUX1dFQl9EQVRBQkFTRShvYmplY3QpOwotCi0gICAgc3dpdGNoIChwcm9wSWQpIHsK
LSAgICBjYXNlIFBST1BfU0VDVVJJVFlfT1JJR0lOOgotICAgICAgICB3ZWJraXRfd2ViX2RhdGFi
YXNlX3NldF9zZWN1cml0eV9vcmlnaW4od2ViRGF0YWJhc2UsIFdFQktJVF9TRUNVUklUWV9PUklH
SU4oZ192YWx1ZV9nZXRfb2JqZWN0KHZhbHVlKSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFBST1BfTkFNRToKLSAgICAgICAgd2Via2l0X3dlYl9kYXRhYmFzZV9zZXRfbmFtZSh3ZWJEYXRh
YmFzZSwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3Qs
IHByb3BJZCwgcHNwZWMpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcElkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRX
ZWJEYXRhYmFzZSogd2ViRGF0YWJhc2UgPSBXRUJLSVRfV0VCX0RBVEFCQVNFKG9iamVjdCk7Ci0g
ICAgV2ViS2l0V2ViRGF0YWJhc2VQcml2YXRlKiBwcml2ID0gd2ViRGF0YWJhc2UtPnByaXY7Ci0K
LSAgICBzd2l0Y2ggKHByb3BJZCkgewotICAgIGNhc2UgUFJPUF9TRUNVUklUWV9PUklHSU46Ci0g
ICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgcHJpdi0+b3JpZ2luKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBQUk9QX05BTUU6Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2
YWx1ZSwgd2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfbmFtZSh3ZWJEYXRhYmFzZSkpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFBST1BfRElTUExBWV9OQU1FOgotICAgICAgICBnX3ZhbHVlX3Nl
dF9zdHJpbmcodmFsdWUsIHdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X2Rpc3BsYXlfbmFtZSh3ZWJE
YXRhYmFzZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRVhQRUNURURfU0laRToK
LSAgICAgICAgZ192YWx1ZV9zZXRfdWludDY0KHZhbHVlLCB3ZWJraXRfd2ViX2RhdGFiYXNlX2dl
dF9leHBlY3RlZF9zaXplKHdlYkRhdGFiYXNlKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UFJPUF9TSVpFOgotICAgICAgICBnX3ZhbHVlX3NldF91aW50NjQodmFsdWUsIHdlYmtpdF93ZWJf
ZGF0YWJhc2VfZ2V0X3NpemUod2ViRGF0YWJhc2UpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQUk9QX1BBVEg6Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgd2Via2l0X3dl
Yl9kYXRhYmFzZV9nZXRfZmlsZW5hbWUod2ViRGF0YWJhc2UpKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9i
amVjdCwgcHJvcElkLCBwc3BlYyk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9kYXRhYmFzZV9jbGFzc19pbml0KFdlYktpdFdlYkRhdGFiYXNlQ2xh
c3MqIGtsYXNzKQotewotICAgIEdPYmplY3RDbGFzcyogZ29iamVjdENsYXNzID0gR19PQkpFQ1Rf
Q0xBU1Moa2xhc3MpOwotICAgIGdvYmplY3RDbGFzcy0+ZGlzcG9zZSA9IHdlYmtpdF93ZWJfZGF0
YWJhc2VfZGlzcG9zZTsKLSAgICBnb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0X3dlYl9k
YXRhYmFzZV9maW5hbGl6ZTsKLSAgICBnb2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtp
dF93ZWJfZGF0YWJhc2Vfc2V0X3Byb3BlcnR5OwotICAgIGdvYmplY3RDbGFzcy0+Z2V0X3Byb3Bl
cnR5ID0gd2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfcHJvcGVydHk7Ci0KLSAgICAgLyoqCi0gICAg
ICAqIFdlYktpdFdlYkRhdGFiYXNlOnNlY3VyaXR5LW9yaWdpbjoKLSAgICAgICoKLSAgICAgICog
VGhlIHNlY3VyaXR5IG9yaWdpbiBvZiB0aGUgZGF0YWJhc2UuCi0gICAgICAqCi0gICAgICAqIFNp
bmNlOiAxLjEuMTQKLSAgICAgICovCi0gICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoZ29iamVjdENsYXNzLCBQUk9QX1NFQ1VSSVRZX09SSUdJTiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KCJzZWN1cml0eS1vcmlnaW4i
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiU2VjdXJpdHkgT3JpZ2luIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgc2VjdXJpdHkgb3JpZ2luIG9mIHRoZSBk
YXRhYmFzZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV0VCS0lUX1RZUEVfU0VDVVJJVFlfT1JJR0lOLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdQYXJhbUZsYWdzKSAo
R19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZKSkpOwotCi0gICAgIC8q
KgotICAgICAgKiBXZWJLaXRXZWJEYXRhYmFzZTpuYW1lOgotICAgICAgKgotICAgICAgKiBUaGUg
bmFtZSBvZiB0aGUgV2ViIERhdGFiYXNlIGRhdGFiYXNlLgotICAgICAgKgotICAgICAgKiBTaW5j
ZTogMS4xLjE0Ci0gICAgICAqLwotICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KGdvYmplY3RDbGFzcywgUFJPUF9OQU1FLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoIm5hbWUiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTmFtZSIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIG5h
bWUgb2YgdGhlIFdlYiBEYXRhYmFzZSBkYXRhYmFzZSIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykg
KEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpKTsKLQotICAgICAv
KioKLSAgICAgICogV2ViS2l0V2ViRGF0YWJhc2U6ZGlzcGxheS1uYW1lOgotICAgICAgKgotICAg
ICAgKiBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBXZWIgRGF0YWJhc2UgZGF0YWJhc2UuCi0gICAg
ICAqCi0gICAgICAqIFNpbmNlOiAxLjEuMTQKLSAgICAgICovCi0gICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLCBQUk9QX0RJU1BMQVlfTkFNRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJkaXNw
bGF5LW5hbWUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXygiRGlzcGxheSBOYW1lIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgZGlzcGxheSBuYW1lIG9mIHRo
ZSBXZWIgU3RvcmFnZSBkYXRhYmFzZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OwotCi0gICAgIC8qKgotICAgICAqIFdlYktpdFdlYkRhdGFiYXNlOmV4cGVjdGVkLXNpemU6Ci0g
ICAgICoKLSAgICAgKiBUaGUgZXhwZWN0ZWQgc2l6ZSBvZiB0aGUgZGF0YWJhc2UgaW4gYnl0ZXMg
YXMgZGVmaW5lZCBieSB0aGUgd2ViIGF1dGhvci4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEu
MTQKLSAgICAgKi8KLSAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0
Q2xhc3MsIFBST1BfRVhQRUNURURfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfdWludDY0KCJleHBlY3RlZC1zaXplIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkV4cGVjdGVk
IFNpemUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF8oIlRoZSBleHBlY3RlZCBzaXplIG9mIHRoZSBXZWIgRGF0YWJhc2UgZGF0YWJh
c2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDAsIEdfTUFYVUlOVDY0LCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0gICAg
IC8qKgotICAgICAqIFdlYktpdFdlYkRhdGFiYXNlOnNpemU6Ci0gICAgICoKLSAgICAgKiBUaGUg
Y3VycmVudCBzaXplIG9mIHRoZSBkYXRhYmFzZSBpbiBieXRlcy4KLSAgICAgKgotICAgICAqIFNp
bmNlOiAxLjEuMTQKLSAgICAgKi8KLSAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eShnb2JqZWN0Q2xhc3MsIFBST1BfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfdWludDY0KCJzaXplIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlNpemUiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBj
dXJyZW50IHNpemUgb2YgdGhlIFdlYiBEYXRhYmFzZSBkYXRhYmFzZSIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgR19NQVhVSU5U
NjQsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLSAgICAgLyoqCi0gICAgICAqIFdlYktp
dFdlYkRhdGFiYXNlOmZpbGVuYW1lOgotICAgICAgKgotICAgICAgKiBUaGUgYWJzb2x1dGUgZmls
ZW5hbWUgb2YgdGhlIFdlYiBEYXRhYmFzZSBkYXRhYmFzZS4KLSAgICAgICoKLSAgICAgICogU2lu
Y2U6IDEuMS4xNAotICAgICAgKi8KLSAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eShnb2JqZWN0Q2xhc3MsIFBST1BfUEFUSCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJmaWxlbmFtZSIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJGaWxlbmFtZSIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XygiVGhlIGFic29sdXRlIGZpbGVuYW1lIG9mIHRoZSBXZWIgU3RvcmFnZSBkYXRhYmFzZSIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ190eXBlX2NsYXNzX2FkZF9w
cml2YXRlKGtsYXNzLCBzaXplb2YoV2ViS2l0V2ViRGF0YWJhc2VQcml2YXRlKSk7Ci19Ci0KLXN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfZGF0YWJhc2VfaW5pdChXZWJLaXRXZWJEYXRhYmFzZSogd2Vi
RGF0YWJhc2UpCi17Ci0gICAgd2ViRGF0YWJhc2UtPnByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VU
X1BSSVZBVEUod2ViRGF0YWJhc2UsIFdFQktJVF9UWVBFX1dFQl9EQVRBQkFTRSwgV2ViS2l0V2Vi
RGF0YWJhc2VQcml2YXRlKTsKLX0KLQotLy8gSW50ZXJuYWwgdXNlIG9ubHkKLXN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfZGF0YWJhc2Vfc2V0X3NlY3VyaXR5X29yaWdpbihXZWJLaXRXZWJEYXRhYmFz
ZSAqd2ViRGF0YWJhc2UsIFdlYktpdFNlY3VyaXR5T3JpZ2luICpzZWN1cml0eU9yaWdpbikKLXsK
LSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfREFUQUJBU0Uod2ViRGF0YWJhc2Up
KTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19TRUNVUklUWV9PUklHSU4oc2VjdXJp
dHlPcmlnaW4pKTsKLQotICAgIFdlYktpdFdlYkRhdGFiYXNlUHJpdmF0ZSogcHJpdiA9IHdlYkRh
dGFiYXNlLT5wcml2OwotCi0gICAgaWYgKHByaXYtPm9yaWdpbikKLSAgICAgICAgZ19vYmplY3Rf
dW5yZWYocHJpdi0+b3JpZ2luKTsKLQotICAgIGdfb2JqZWN0X3JlZihzZWN1cml0eU9yaWdpbik7
Ci0gICAgcHJpdi0+b3JpZ2luID0gc2VjdXJpdHlPcmlnaW47Ci19Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfZGF0YWJhc2Vfc2V0X25hbWUoV2ViS2l0V2ViRGF0YWJhc2UqIHdlYkRhdGFiYXNl
LCBjb25zdCBnY2hhciogbmFtZSkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19X
RUJfREFUQUJBU0Uod2ViRGF0YWJhc2UpKTsKLQotICAgIFdlYktpdFdlYkRhdGFiYXNlUHJpdmF0
ZSogcHJpdiA9IHdlYkRhdGFiYXNlLT5wcml2OwotICAgIGdfZnJlZShwcml2LT5uYW1lKTsKLSAg
ICBwcml2LT5uYW1lID0gZ19zdHJkdXAobmFtZSk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9k
YXRhYmFzZV9nZXRfc2VjdXJpdHlfb3JpZ2luOgotICogQHdlYkRhdGFiYXNlOiBhICNXZWJLaXRX
ZWJEYXRhYmFzZQotICoKLSAqIFJldHVybnMgdGhlIHNlY3VyaXR5IG9yaWdpbiBvZiB0aGUgI1dl
YktpdFdlYkRhdGFiYXNlLgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogdGhlIHNl
Y3VyaXR5IG9yaWdpbiBvZiB0aGUgZGF0YWJhc2UKLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKiov
Ci1XZWJLaXRTZWN1cml0eU9yaWdpbiogd2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfc2VjdXJpdHlf
b3JpZ2luKFdlYktpdFdlYkRhdGFiYXNlKiB3ZWJEYXRhYmFzZSkKLXsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0RBVEFCQVNFKHdlYkRhdGFiYXNlKSwgTlVMTCk7Ci0g
ICAgV2ViS2l0V2ViRGF0YWJhc2VQcml2YXRlKiBwcml2ID0gd2ViRGF0YWJhc2UtPnByaXY7Ci0K
LSAgICByZXR1cm4gcHJpdi0+b3JpZ2luOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZGF0YWJh
c2VfZ2V0X25hbWU6Ci0gKiBAd2ViRGF0YWJhc2U6IGEgI1dlYktpdFdlYkRhdGFiYXNlCi0gKgot
ICogUmV0dXJucyB0aGUgY2Fub25pY2FsIG5hbWUgb2YgdGhlICNXZWJLaXRXZWJEYXRhYmFzZS4K
LSAqCi0gKiBSZXR1cm5zOiB0aGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UKLSAqCi0gKiBTaW5jZTog
MS4xLjE0Ci0gKiovCi1jb25zdCBnY2hhciogd2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfbmFtZShX
ZWJLaXRXZWJEYXRhYmFzZSogd2ViRGF0YWJhc2UpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9EQVRBQkFTRSh3ZWJEYXRhYmFzZSksIE5VTEwpOwotICAgIFdlYktp
dFdlYkRhdGFiYXNlUHJpdmF0ZSogcHJpdiA9IHdlYkRhdGFiYXNlLT5wcml2OwotCi0gICAgcmV0
dXJuIHByaXYtPm5hbWU7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfZGlz
cGxheV9uYW1lOgotICogQHdlYkRhdGFiYXNlOiBhICNXZWJLaXRXZWJEYXRhYmFzZQotICoKLSAq
IFJldHVybnMgdGhlIG5hbWUgb2YgdGhlICNXZWJLaXRXZWJEYXRhYmFzZSBhcyBzZWVuIGJ5IHRo
ZSB1c2VyLgotICoKLSAqIFJldHVybnM6IHRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSBhcyBzZWVu
IGJ5IHRoZSB1c2VyLgotICoKLSAqIFNpbmNlOiAxLjEuMTQKLSAqKi8KLWNvbnN0IGdjaGFyKiB3
ZWJraXRfd2ViX2RhdGFiYXNlX2dldF9kaXNwbGF5X25hbWUoV2ViS2l0V2ViRGF0YWJhc2UqIHdl
YkRhdGFiYXNlKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfREFU
QUJBU0Uod2ViRGF0YWJhc2UpLCBOVUxMKTsKLQotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0g
ICAgV2ViS2l0V2ViRGF0YWJhc2VQcml2YXRlKiBwcml2ID0gd2ViRGF0YWJhc2UtPnByaXY7Ci0g
ICAgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzIGRldGFpbHMgPSBXZWJDb3JlOjpEYXRhYmFzZU1h
bmFnZXI6Om1hbmFnZXIoKS5kZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihwcml2LT5uYW1lLCBjb3Jl
KHByaXYtPm9yaWdpbikpOwotICAgIFdURjo6U3RyaW5nIGRpc3BsYXlOYW1lID0gIGRldGFpbHMu
ZGlzcGxheU5hbWUoKTsKLQotICAgIGlmIChkaXNwbGF5TmFtZS5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiAiIjsKLQotICAgIGdfZnJlZShwcml2LT5kaXNwbGF5TmFtZSk7Ci0gICAgcHJpdi0+
ZGlzcGxheU5hbWUgPSBnX3N0cmR1cChkaXNwbGF5TmFtZS51dGY4KCkuZGF0YSgpKTsKLSAgICBy
ZXR1cm4gcHJpdi0+ZGlzcGxheU5hbWU7Ci0jZWxzZQotICAgIHJldHVybiAiIjsKLSNlbmRpZgot
fQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X2V4cGVjdGVkX3NpemU6Ci0gKiBA
d2ViRGF0YWJhc2U6IGEgI1dlYktpdFdlYkRhdGFiYXNlCi0gKgotICogUmV0dXJucyB0aGUgZXhw
ZWN0ZWQgc2l6ZSBvZiB0aGUgI1dlYktpdFdlYkRhdGFiYXNlIGluIGJ5dGVzIGFzIGRlZmluZWQg
YnkgdGhlCi0gKiB3ZWIgYXV0aG9yLiBUaGUgV2ViIERhdGFiYXNlIHN0YW5kYXJkIGFsbG93cyB3
ZWIgYXV0aG9ycyB0byBzcGVjaWZ5IGFuIGV4cGVjdGVkCi0gKiBzaXplIG9mIHRoZSBkYXRhYmFz
ZSB0byBvcHRpbWl6ZSB0aGUgdXNlciBleHBlcmllbmNlLgotICoKLSAqIFJldHVybnM6IHRoZSBl
eHBlY3RlZCBzaXplIG9mIHRoZSBkYXRhYmFzZSBpbiBieXRlcwotICoKLSAqIFNpbmNlOiAxLjEu
MTQKLSAqKi8KLWd1aW50NjQgd2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfZXhwZWN0ZWRfc2l6ZShX
ZWJLaXRXZWJEYXRhYmFzZSogd2ViRGF0YWJhc2UpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9EQVRBQkFTRSh3ZWJEYXRhYmFzZSksIDApOwotCi0jaWYgRU5BQkxF
KFNRTF9EQVRBQkFTRSkKLSAgICBXZWJLaXRXZWJEYXRhYmFzZVByaXZhdGUqIHByaXYgPSB3ZWJE
YXRhYmFzZS0+cHJpdjsKLSAgICBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMgZGV0YWlscyA9IFdl
YkNvcmU6OkRhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLmRldGFpbHNGb3JOYW1lQW5kT3JpZ2lu
KHByaXYtPm5hbWUsIGNvcmUocHJpdi0+b3JpZ2luKSk7Ci0gICAgcmV0dXJuIGRldGFpbHMuZXhw
ZWN0ZWRVc2FnZSgpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQotCi0vKioKLSAq
IHdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X3NpemU6Ci0gKiBAd2ViRGF0YWJhc2U6IGEgI1dlYktp
dFdlYkRhdGFiYXNlCi0gKgotICogUmV0dXJucyB0aGUgYWN0dWFsIHNpemUgb2YgdGhlICNXZWJL
aXRXZWJEYXRhYmFzZSBzcGFjZSBvbiBkaXNrIGluIGJ5dGVzLgotICoKLSAqIFJldHVybnM6IHRo
ZSBhY3R1YWwgc2l6ZSBvZiB0aGUgZGF0YWJhc2UgaW4gYnl0ZXMKLSAqCi0gKiBTaW5jZTogMS4x
LjE0Ci0gKiovCi1ndWludDY0IHdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X3NpemUoV2ViS2l0V2Vi
RGF0YWJhc2UqIHdlYkRhdGFiYXNlKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfREFUQUJBU0Uod2ViRGF0YWJhc2UpLCAwKTsKLQotI2lmIEVOQUJMRShTUUxfREFU
QUJBU0UpCi0gICAgV2ViS2l0V2ViRGF0YWJhc2VQcml2YXRlKiBwcml2ID0gd2ViRGF0YWJhc2Ut
PnByaXY7Ci0gICAgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzIGRldGFpbHMgPSBXZWJDb3JlOjpE
YXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5kZXRhaWxzRm9yTmFtZUFuZE9yaWdpbihwcml2LT5u
YW1lLCBjb3JlKHByaXYtPm9yaWdpbikpOwotICAgIHJldHVybiBkZXRhaWxzLmN1cnJlbnRVc2Fn
ZSgpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQotCi0vKioKLSAqIHdlYmtpdF93
ZWJfZGF0YWJhc2VfZ2V0X2ZpbGVuYW1lOgotICogQHdlYkRhdGFiYXNlOiBhICNXZWJLaXRXZWJE
YXRhYmFzZQotICoKLSAqIFJldHVybnMgdGhlIGFic29sdXRlIGZpbGVuYW1lIHRvIHRoZSAjV2Vi
S2l0V2ViRGF0YWJhc2UgZmlsZSBvbiBkaXNrLgotICoKLSAqIFJldHVybnM6IHRoZSBhYnNvbHV0
ZSBmaWxlbmFtZSBvZiB0aGUgZGF0YWJhc2UKLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKiovCi1j
b25zdCBnY2hhciogd2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfZmlsZW5hbWUoV2ViS2l0V2ViRGF0
YWJhc2UqIHdlYkRhdGFiYXNlKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19XRUJfREFUQUJBU0Uod2ViRGF0YWJhc2UpLCBOVUxMKTsKLQotI2lmIEVOQUJMRShTUUxfREFU
QUJBU0UpCi0gICAgV2ViS2l0V2ViRGF0YWJhc2VQcml2YXRlKiBwcml2ID0gd2ViRGF0YWJhc2Ut
PnByaXY7Ci0gICAgV1RGOjpTdHJpbmcgY29yZU5hbWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgo
cHJpdi0+bmFtZSk7Ci0gICAgV1RGOjpTdHJpbmcgY29yZVBhdGggPSBXZWJDb3JlOjpEYXRhYmFz
ZU1hbmFnZXI6Om1hbmFnZXIoKS5mdWxsUGF0aEZvckRhdGFiYXNlKGNvcmUocHJpdi0+b3JpZ2lu
KSwgY29yZU5hbWUpOwotCi0gICAgaWYgKGNvcmVQYXRoLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0
dXJuIiI7Ci0KLSAgICBnX2ZyZWUocHJpdi0+ZmlsZW5hbWUpOwotICAgIHByaXYtPmZpbGVuYW1l
ID0gZ19zdHJkdXAoY29yZVBhdGgudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHByaXYtPmZp
bGVuYW1lOwotCi0jZWxzZQotICAgIHJldHVybiAiIjsKLSNlbmRpZgotfQotCi0vKioKLSAqIHdl
YmtpdF93ZWJfZGF0YWJhc2VfcmVtb3ZlOgotICogQHdlYkRhdGFiYXNlOiBhICNXZWJLaXRXZWJE
YXRhYmFzZQotICoKLSAqIFJlbW92ZXMgdGhlICNXZWJLaXRXZWJEYXRhYmFzZSBmcm9tIGl0cyBz
ZWN1cml0eSBvcmlnaW4gYW5kIGRlc3Ryb3lzIGFsbCBkYXRhCi0gKiBzdG9yZWQgaW4gdGhlIGRh
dGFiYXNlLgotICoKLSAqIFNpbmNlOiAxLjEuMTQKLSAqKi8KLXZvaWQgd2Via2l0X3dlYl9kYXRh
YmFzZV9yZW1vdmUoV2ViS2l0V2ViRGF0YWJhc2UqIHdlYkRhdGFiYXNlKQotewotICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9EQVRBQkFTRSh3ZWJEYXRhYmFzZSkpOwotCi0jaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBXZWJLaXRXZWJEYXRhYmFzZVByaXZhdGUqIHByaXYg
PSB3ZWJEYXRhYmFzZS0+cHJpdjsKLSAgICBXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6Om1hbmFn
ZXIoKS5kZWxldGVEYXRhYmFzZShjb3JlKHByaXYtPm9yaWdpbiksIHByaXYtPm5hbWUpOwotI2Vu
ZGlmCi19Ci0KLS8qKgotICogd2Via2l0X3JlbW92ZV9hbGxfd2ViX2RhdGFiYXNlczoKLSAqCi0g
KiBSZW1vdmVzIGFsbCB3ZWIgZGF0YWJhc2VzIGZyb20gdGhlIGN1cnJlbnQgZGF0YWJhc2UgZGly
ZWN0b3J5IHBhdGguCi0gKgotICogU2luY2U6IDEuMS4xNAotICoqLwotdm9pZCB3ZWJraXRfcmVt
b3ZlX2FsbF93ZWJfZGF0YWJhc2VzKCkKLXsKLSNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAg
IFdlYkNvcmU6OkRhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLmRlbGV0ZUFsbERhdGFiYXNlcygp
OwotI2VuZGlmCi19Ci0KLS8qKgotICogd2Via2l0X2dldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5
X3BhdGg6Ci0gKgotICogUmV0dXJucyB0aGUgY3VycmVudCBwYXRoIHRvIHRoZSBkaXJlY3Rvcnkg
V2ViS2l0IHdpbGwgd3JpdGUgV2ViCi0gKiBEYXRhYmFzZSBhbmQgSW5kZXhlZCBEYXRhYmFzZSBk
YXRhYmFzZXMuIEJ5IGRlZmF1bHQgdGhpcyBwYXRoIHdpbGwKLSAqIGJlIGluIHRoZSB1c2VyIGRh
dGEgZGlyZWN0b3J5LgotICoKLSAqIFJldHVybnM6IHRoZSBjdXJyZW50IGRhdGFiYXNlIGRpcmVj
dG9yeSBwYXRoIGluIHRoZSBmaWxlc3lzdGVtIGVuY29kaW5nCi0gKgotICogU2luY2U6IDEuMS4x
NAotICoqLwotY29uc3QgZ2NoYXIqIHdlYmtpdF9nZXRfd2ViX2RhdGFiYXNlX2RpcmVjdG9yeV9w
YXRoKCkKLXsKLSAgICByZXR1cm4gZ1dlYktpdFdlYkRhdGFiYXNlUGF0aC5kYXRhKCk7Ci19Ci0K
LS8qKgotICogd2Via2l0X3NldF93ZWJfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGg6Ci0gKiBAcGF0
aDogdGhlIG5ldyBkYXRhYmFzZSBkaXJlY3RvcnkgcGF0aCBpbiB0aGUgZmlsZXN5c3RlbSBlbmNv
ZGluZwotICoKLSAqIFNldHMgdGhlIGN1cnJlbnQgcGF0aCB0byB0aGUgZGlyZWN0b3J5IFdlYktp
dCB3aWxsIHdyaXRlIFdlYgotICogRGF0YWJhc2UgYW5kIEluZGV4ZWQgRGF0YWJhc2UgZGF0YWJh
c2VzLgotICoKLSAqIFNpbmNlOiAxLjEuMTQKLSAqKi8KLXZvaWQgd2Via2l0X3NldF93ZWJfZGF0
YWJhc2VfZGlyZWN0b3J5X3BhdGgoY29uc3QgZ2NoYXIqIHBhdGgpCi17Ci0gICAgZ1dlYktpdFdl
YkRhdGFiYXNlUGF0aCA9IHBhdGg7Ci0KLSAgICBTdHJpbmcgcGF0aFN0cmluZyA9IFdlYkNvcmU6
OmZpbGVuYW1lVG9TdHJpbmcocGF0aCk7Ci0jaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICBX
ZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5zZXREYXRhYmFzZURpcmVjdG9yeVBh
dGgocGF0aFN0cmluZyk7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQot
ICAgIFdlYkNvcmU6OlBhZ2VHcm91cDo6cGFnZUdyb3VwKHdlYmtpdFBhZ2VHcm91cE5hbWUoKSkt
Pmdyb3VwU2V0dGluZ3MoKS5zZXRJbmRleGVkREJEYXRhYmFzZVBhdGgocGF0aFN0cmluZyk7Ci0j
ZW5kaWYKLQotfQotCi0vKioKLSAqIHdlYmtpdF9nZXRfZGVmYXVsdF93ZWJfZGF0YWJhc2VfcXVv
dGE6Ci0gKgotICogUmV0dXJucyB0aGUgZGVmYXVsdCBxdW90YSBmb3IgV2ViIERhdGFiYXNlIGRh
dGFiYXNlcy4gQnkgZGVmYXVsdAotICogdGhpcyB2YWx1ZSBpcyA1TUIuCi0gKgotICogUmV0dXJu
czogdGhlIGN1cnJlbnQgZGVmYXVsdCBkYXRhYmFzZSBxdW90YSBpbiBieXRlcwotICoKLSAqIFNp
bmNlOiAxLjEuMTQKLSAqKi8KLWd1aW50NjQgd2Via2l0X2dldF9kZWZhdWx0X3dlYl9kYXRhYmFz
ZV9xdW90YSgpCi17Ci0gICAgcmV0dXJuIHdlYmtpdF9kZWZhdWx0X2RhdGFiYXNlX3F1b3RhOwot
fQotCi0vKioKLSAqIHdlYmtpdF9zZXRfZGVmYXVsdF93ZWJfZGF0YWJhc2VfcXVvdGE6Ci0gKiBA
ZGVmYXVsdFF1b3RhOiB0aGUgbmV3IGRlZmF1bHQgZGF0YWJhc2UgcXVvdGEKLSAqCi0gKiBTZXRz
IHRoZSBkZWZhdWx0IHF1b3RhIGZvciBXZWIgRGF0YWJhc2UgZGF0YWJhc2VzLgotICoKLSAqIFNp
bmNlOiAxLjEuMTQKLSAqKi8KLXZvaWQgd2Via2l0X3NldF9kZWZhdWx0X3dlYl9kYXRhYmFzZV9x
dW90YShndWludDY0IGRlZmF1bHRRdW90YSkKLXsKLSAgICB3ZWJraXRfZGVmYXVsdF9kYXRhYmFz
ZV9xdW90YSA9IGRlZmF1bHRRdW90YTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJkYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYmRhdGFiYXNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMDVkNjUu
LjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFiYXNl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IE1hcnRpbiBSb2JpbnNvbgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIHdlYmtpdHdlYmRhdGFiYXNlX2gKLSNkZWZpbmUg
d2Via2l0d2ViZGF0YWJhc2VfaAotCi0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLQotI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+Ci0KLUdfQkVHSU5fREVDTFMKLQotI2RlZmluZSBX
RUJLSVRfVFlQRV9XRUJfREFUQUJBU0UgICAgICAgICAgICAgKHdlYmtpdF93ZWJfZGF0YWJhc2Vf
Z2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9EQVRBQkFTRShvYmopICAgICAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0RBVEFC
QVNFLCBXZWJLaXRXZWJEYXRhYmFzZSkpCi0jZGVmaW5lIFdFQktJVF9XRUJfREFUQUJBU0VfQ0xB
U1Moa2xhc3MpICAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9U
WVBFX1dFQl9EQVRBQkFTRSwgV2ViS2l0V2ViRGF0YWJhc2VDbGFzcykpCi0jZGVmaW5lIFdFQktJ
VF9JU19XRUJfREFUQUJBU0Uob2JqKSAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZ
UEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9EQVRBQkFTRSkpCi0jZGVmaW5lIFdFQktJVF9JU19X
RUJfREFUQUJBU0VfQ0xBU1Moa2xhc3MpICAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNz
KSwgIFdFQktJVF9UWVBFX1dFQl9EQVRBQkFTRSkpCi0jZGVmaW5lIFdFQktJVF9XRUJfREFUQUJB
U0VfR0VUX0NMQVNTKG9iaikgICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdF
QktJVF9UWVBFX1dFQl9EQVRBQkFTRSwgV2ViS2l0V2ViRGF0YWJhc2VDbGFzcykpCi0KLXR5cGVk
ZWYgc3RydWN0IF9XZWJLaXRXZWJEYXRhYmFzZVByaXZhdGUgV2ViS2l0V2ViRGF0YWJhc2VQcml2
YXRlOwotCi1zdHJ1Y3QgX1dlYktpdFdlYkRhdGFiYXNlIHsKLSAgICBHT2JqZWN0IHBhcmVudF9p
bnN0YW5jZTsKLQotICAgIC8qPCBwcml2YXRlID4qLwotICAgIFdlYktpdFdlYkRhdGFiYXNlUHJp
dmF0ZSogcHJpdjsKLX07Ci0KLXN0cnVjdCBfV2ViS2l0V2ViRGF0YWJhc2VDbGFzcyB7Ci0gICAg
R09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIC8qIFBhZGRpbmcgZm9yIGZ1dHVyZSBl
eHBhbnNpb24gKi8KLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDMpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDQpICh2b2lkKTsKLX07
Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X3R5cGUgICAgICAg
ICAgICAodm9pZCk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0U2VjdXJpdHlPcmlnaW4gKgotd2Via2l0
X3dlYl9kYXRhYmFzZV9nZXRfc2VjdXJpdHlfb3JpZ2luIChXZWJLaXRXZWJEYXRhYmFzZSogd2Vi
RGF0YWJhc2UpOwotCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgotd2Via2l0X3dlYl9kYXRhYmFz
ZV9nZXRfbmFtZSAgICAgICAgICAgIChXZWJLaXRXZWJEYXRhYmFzZSogd2ViRGF0YWJhc2UpOwot
Ci1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyKgotd2Via2l0X3dlYl9kYXRhYmFzZV9nZXRfZGlzcGxh
eV9uYW1lICAgIChXZWJLaXRXZWJEYXRhYmFzZSogd2ViRGF0YWJhc2UpOwotCi1XRUJLSVRfQVBJ
IGd1aW50NjQKLXdlYmtpdF93ZWJfZGF0YWJhc2VfZ2V0X2V4cGVjdGVkX3NpemUgICAoV2ViS2l0
V2ViRGF0YWJhc2UqIHdlYkRhdGFiYXNlKTsKLQotV0VCS0lUX0FQSSBndWludDY0Ci13ZWJraXRf
d2ViX2RhdGFiYXNlX2dldF9zaXplICAgICAgICAgICAgKFdlYktpdFdlYkRhdGFiYXNlKiB3ZWJE
YXRhYmFzZSk7Ci0KLVdFQktJVF9BUEkgY29uc3QgZ2NoYXIqCi13ZWJraXRfd2ViX2RhdGFiYXNl
X2dldF9maWxlbmFtZSAgICAgICAgKFdlYktpdFdlYkRhdGFiYXNlKiB3ZWJEYXRhYmFzZSk7Ci0K
LVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl9kYXRhYmFzZV9yZW1vdmUgICAgICAgICAgICAg
IChXZWJLaXRXZWJEYXRhYmFzZSogd2ViRGF0YWJhc2UpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdl
YmtpdF9yZW1vdmVfYWxsX3dlYl9kYXRhYmFzZXMgICAgICAgICAodm9pZCk7Ci0KLVdFQktJVF9B
UEkgY29uc3QgZ2NoYXIqCi13ZWJraXRfZ2V0X3dlYl9kYXRhYmFzZV9kaXJlY3RvcnlfcGF0aCAg
KHZvaWQpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF9zZXRfd2ViX2RhdGFiYXNlX2RpcmVj
dG9yeV9wYXRoICAoY29uc3QgZ2NoYXIqIHBhdGgpOwotCi1XRUJLSVRfQVBJIGd1aW50NjQKLXdl
YmtpdF9nZXRfZGVmYXVsdF93ZWJfZGF0YWJhc2VfcXVvdGEgICAodm9pZCk7Ci0KLVdFQktJVF9B
UEkgdm9pZAotd2Via2l0X3NldF9kZWZhdWx0X3dlYl9kYXRhYmFzZV9xdW90YSAgIChndWludDY0
IGRlZmF1bHRRdW90YSk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZiAvKiB3ZWJraXR3ZWJkYXRh
YmFzZV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
ZGF0YXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNv
dXJjZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyNzI1YmYuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2UuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkg
SmFuIE1pY2hhZWwgQy4gQWxvbnpvCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJ3ZWJr
aXR3ZWJkYXRhc291cmNlLmgiCi0KLSNpbmNsdWRlICJBcmNoaXZlUmVzb3VyY2UuaCIKLSNpbmNs
dWRlICJEb2N1bWVudExvYWRlckd0ay5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCi0jaW5j
bHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHdGsuaCIKLSNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRl
ICJSZXNvdXJjZUJ1ZmZlci5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgotI2luY2x1ZGUgIlN1YnN0aXR1dGVEYXRhLmgiCi0jaW5jbHVk
ZSAicnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmgiCi0jaW5jbHVkZSAid2Via2l0Z2xvYmFs
c3ByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXRuZXR3b3JrcmVxdWVzdHByaXZhdGUuaCIKLSNp
bmNsdWRlICJ3ZWJraXR3ZWJkYXRhc291cmNlcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdl
YmZyYW1lcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlLmgiCi0jaW5jbHVk
ZSAid2Via2l0d2Vidmlld3ByaXZhdGUuaCIKLSNpbmNsdWRlIDxnbGliLmg+Ci0jaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotLyoq
Ci0gKiBTRUNUSU9OOndlYmtpdHdlYmRhdGFzb3VyY2UKLSAqIEBzaG9ydF9kZXNjcmlwdGlvbjog
RW5jYXBzdWxhdGVzIHRoZSBjb250ZW50IHRvIGJlIGRpc3BsYXllZCBpbiBhICNXZWJLaXRXZWJG
cmFtZS4KLSAqIEBzZWVfYWxzbzogI1dlYktpdFdlYkZyYW1lCi0gKgotICogRGF0YSBzb3VyY2Ug
ZW5jYXBzdWxhdGVzIHRoZSBjb250ZW50IG9mIGEgI1dlYktpdFdlYkZyYW1lLiBBCi0gKiAjV2Vi
S2l0V2ViRnJhbWUgaGFzIGEgbWFpbiByZXNvdXJjZSBhbmQgc3VicmVzb3VyY2VzIGFuZCB0aGUg
ZGF0YSBzb3VyY2UKLSAqIHByb3ZpZGVzIGFjY2VzcyB0byB0aGVzZSByZXNvdXJjZXMuIFdoZW4g
YSByZXF1ZXN0IGdldHMgbG9hZGVkIGluaXRpYWxseSwKLSAqIGl0IGlzIHNldCB0byBhIHByb3Zp
c2lvbmFsIHN0YXRlLiBUaGUgYXBwbGljYXRpb24gY2FuIHJlcXVlc3QgZm9yIHRoZQotICogcmVx
dWVzdCB0aGF0IGluaXRpYXRlZCB0aGUgbG9hZCBieSBhc2tpbmcgZm9yIHRoZSBwcm92aXNpb25h
bCBkYXRhIHNvdXJjZQotICogYW5kIGludm9raW5nIHRoZSB3ZWJraXRfd2ViX2RhdGFfc291cmNl
X2dldF9pbml0aWFsX3JlcXVlc3QgbWV0aG9kIG9mCi0gKiAjV2ViS2l0V2ViRGF0YVNvdXJjZS4g
VGhpcyBkYXRhIHNvdXJjZSBtYXkgbm90IGhhdmUgZW5vdWdoIGRhdGEgYW5kIHNvbWUKLSAqIG1l
dGhvZHMgbWF5IHJldHVybiBlbXB0eSB2YWx1ZXMuIFRvIGdldCBhICJmdWxsIiBkYXRhIHNvdXJj
ZSB3aXRoIHRoZSBkYXRhCi0gKiBhbmQgcmVzb3VyY2VzIGxvYWRlZCwgeW91IG5lZWQgdG8gZ2V0
IHRoZSBub24tcHJvdmlzaW9uYWwgZGF0YSBzb3VyY2UKLSAqIHRocm91Z2ggI1dlYktpdFdlYkZy
YW1lJ3Mgd2Via2l0X3dlYl9mcmFtZV9nZXRfZGF0YV9zb3VyY2UgbWV0aG9kLiBUaGlzCi0gKiBk
YXRhIHNvdXJjZSB3aWxsIGhhdmUgdGhlIGRhdGEgYWZ0ZXIgZXZlcnl0aGluZyB3YXMgbG9hZGVk
LiBNYWtlIHN1cmUgdGhhdAotICogdGhlIGRhdGEgc291cmNlIHdhcyBmaW5pc2hlZCBsb2FkaW5n
IGJlZm9yZSB1c2luZyBhbnkgb2YgaXRzIG1ldGhvZHMuIFlvdQotICogY2FuIGRvIHRoaXMgdmlh
IHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfaXNfbG9hZGluZy4KLSAqLwotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLXN0cnVjdCBfV2ViS2l0V2Vi
RGF0YVNvdXJjZVByaXZhdGUgewotICAgIFdlYktpdDo6RG9jdW1lbnRMb2FkZXIqIGxvYWRlcjsK
LQotICAgIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiBpbml0aWFsUmVxdWVzdDsKLSAgICBXZWJLaXRO
ZXR3b3JrUmVxdWVzdCogbmV0d29ya1JlcXVlc3Q7Ci0gICAgV2ViS2l0V2ViUmVzb3VyY2UqIG1h
aW5yZXNvdXJjZTsKLQotICAgIEdTdHJpbmcqIGRhdGE7Ci0KLSAgICBnY2hhciogdGV4dEVuY29k
aW5nOwotICAgIGdjaGFyKiB1bnJlYWNoYWJsZVVSTDsKLX07Ci0KLUdfREVGSU5FX1RZUEUoV2Vi
S2l0V2ViRGF0YVNvdXJjZSwgd2Via2l0X3dlYl9kYXRhX3NvdXJjZSwgR19UWVBFX09CSkVDVCk7
Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfZGlzcG9zZShHT2JqZWN0KiBv
YmplY3QpCi17Ci0gICAgV2ViS2l0V2ViRGF0YVNvdXJjZSogd2ViRGF0YVNvdXJjZSA9IFdFQktJ
VF9XRUJfREFUQV9TT1VSQ0Uob2JqZWN0KTsKLSAgICBXZWJLaXRXZWJEYXRhU291cmNlUHJpdmF0
ZSogcHJpdiA9IHdlYkRhdGFTb3VyY2UtPnByaXY7Ci0KLSAgICBBU1NFUlQocHJpdi0+bG9hZGVy
KTsKLSAgICBBU1NFUlQoIXByaXYtPmxvYWRlci0+aXNMb2FkaW5nKCkpOwotICAgIHByaXYtPmxv
YWRlci0+ZGV0YWNoRGF0YVNvdXJjZSgpOwotICAgIHByaXYtPmxvYWRlci0+ZGVyZWYoKTsKLQot
ICAgIGlmIChwcml2LT5pbml0aWFsUmVxdWVzdCkgewotICAgICAgICBnX29iamVjdF91bnJlZihw
cml2LT5pbml0aWFsUmVxdWVzdCk7Ci0gICAgICAgIHByaXYtPmluaXRpYWxSZXF1ZXN0ID0gTlVM
TDsKLSAgICB9Ci0KLSAgICBpZiAocHJpdi0+bmV0d29ya1JlcXVlc3QpIHsKLSAgICAgICAgZ19v
YmplY3RfdW5yZWYocHJpdi0+bmV0d29ya1JlcXVlc3QpOwotICAgICAgICBwcml2LT5uZXR3b3Jr
UmVxdWVzdCA9IE5VTEw7Ci0gICAgfQotCi0gICAgaWYgKHByaXYtPm1haW5yZXNvdXJjZSkgewot
ICAgICAgICBnX29iamVjdF91bnJlZihwcml2LT5tYWlucmVzb3VyY2UpOwotICAgICAgICBwcml2
LT5tYWlucmVzb3VyY2UgPSBOVUxMOwotICAgIH0KLQotICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtp
dF93ZWJfZGF0YV9zb3VyY2VfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3QpOwotfQotCi1z
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX2RhdGFfc291cmNlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVj
dCkKLXsKLSAgICBXZWJLaXRXZWJEYXRhU291cmNlKiBkYXRhU291cmNlID0gV0VCS0lUX1dFQl9E
QVRBX1NPVVJDRShvYmplY3QpOwotICAgIFdlYktpdFdlYkRhdGFTb3VyY2VQcml2YXRlKiBwcml2
ID0gZGF0YVNvdXJjZS0+cHJpdjsKLQotICAgIGdfZnJlZShwcml2LT51bnJlYWNoYWJsZVVSTCk7
Ci0gICAgZ19mcmVlKHByaXYtPnRleHRFbmNvZGluZyk7Ci0KLSAgICBpZiAocHJpdi0+ZGF0YSkg
ewotICAgICAgICBnX3N0cmluZ19mcmVlKHByaXYtPmRhdGEsIFRSVUUpOwotICAgICAgICBwcml2
LT5kYXRhID0gTlVMTDsKLSAgICB9Ci0KLSAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX2Rh
dGFfc291cmNlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfY2xhc3NfaW5pdChXZWJLaXRXZWJEYXRhU291cmNl
Q2xhc3MqIGtsYXNzKQotewotICAgIEdPYmplY3RDbGFzcyogZ29iamVjdF9jbGFzcyA9IEdfT0JK
RUNUX0NMQVNTKGtsYXNzKTsKLSAgICBnb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gd2Via2l0X3dl
Yl9kYXRhX3NvdXJjZV9kaXNwb3NlOwotICAgIGdvYmplY3RfY2xhc3MtPmZpbmFsaXplID0gd2Vi
a2l0X3dlYl9kYXRhX3NvdXJjZV9maW5hbGl6ZTsKLQotICAgIHdlYmtpdEluaXQoKTsKLQotICAg
IGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShnb2JqZWN0X2NsYXNzLCBzaXplb2YoV2ViS2l0V2Vi
RGF0YVNvdXJjZVByaXZhdGUpKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9kYXRhX3Nv
dXJjZV9pbml0KFdlYktpdFdlYkRhdGFTb3VyY2UqIHdlYkRhdGFTb3VyY2UpCi17Ci0gICAgd2Vi
RGF0YVNvdXJjZS0+cHJpdiA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSh3ZWJEYXRhU291
cmNlLCBXRUJLSVRfVFlQRV9XRUJfREFUQV9TT1VSQ0UsIFdlYktpdFdlYkRhdGFTb3VyY2VQcml2
YXRlKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX25ldzoKLSAqCi0gKiBD
cmVhdGVzIGEgbmV3ICNXZWJLaXRXZWJEYXRhU291cmNlIGluc3RhbmNlLiBUaGUgVVJMIG9mIHRo
ZQotICogI1dlYktpdFdlYkRhdGFTb3VyY2Ugd2lsbCBiZSBzZXQgdG8gImFib3V0OmJsYW5rIi4K
LSAqCi0gKiBSZXR1cm5zOiBhIG5ldyAjV2ViS2l0V2ViRGF0YVNvdXJjZS4KLSAqCi0gKiBTaW5j
ZTogMS4xLjE0Ci0gKi8KLVdlYktpdFdlYkRhdGFTb3VyY2UqIHdlYmtpdF93ZWJfZGF0YV9zb3Vy
Y2VfbmV3KCkKLXsKLSAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCA9IHdlYmtpdF9u
ZXR3b3JrX3JlcXVlc3RfbmV3KCJhYm91dDpibGFuayIpOwotICAgIFdlYktpdFdlYkRhdGFTb3Vy
Y2UqIGRhdGFzb3VyY2UgPSB3ZWJraXRfd2ViX2RhdGFfc291cmNlX25ld193aXRoX3JlcXVlc3Qo
cmVxdWVzdCk7Ci0gICAgZ19vYmplY3RfdW5yZWYocmVxdWVzdCk7Ci0KLSAgICByZXR1cm4gZGF0
YXNvdXJjZTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX25ld193aXRoX3Jl
cXVlc3Q6Ci0gKiBAcmVxdWVzdDogdGhlICNXZWJLaXROZXR3b3JrUmVxdWVzdCB0byB1c2UgdG8g
Y3JlYXRlIHRoaXMgZGF0YSBzb3VyY2UKLSAqCi0gKiBDcmVhdGVzIGEgbmV3ICNXZWJLaXRXZWJE
YXRhU291cmNlIGZyb20gYSAjV2ViS2l0TmV0d29ya1JlcXVlc3QuIE5vcm1hbGx5LAotICogI1dl
YktpdFdlYkZyYW1lIG9iamVjdHMgY3JlYXRlIHRoZWlyIGRhdGEgc291cmNlcyBzbyB5b3Ugd2ls
bCBhbG1vc3QgbmV2ZXIKLSAqIHdhbnQgdG8gaW52b2tlIHRoaXMgbWV0aG9kIGRpcmVjdGx5Lgot
ICoKLSAqIFJldHVybnM6IGEgbmV3ICNXZWJLaXRXZWJEYXRhU291cmNlCi0gKgotICogU2luY2U6
IDEuMS4xNAotICovCi1XZWJLaXRXZWJEYXRhU291cmNlKiB3ZWJraXRfd2ViX2RhdGFfc291cmNl
X25ld193aXRoX3JlcXVlc3QoV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAg
QVNTRVJUKHJlcXVlc3QpOwotCi0gICAgY29uc3QgZ2NoYXIqIHVyaSA9IHdlYmtpdF9uZXR3b3Jr
X3JlcXVlc3RfZ2V0X3VyaShyZXF1ZXN0KTsKLQotICAgIFJlc291cmNlUmVxdWVzdCByZXNvdXJj
ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KFVSTChVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkp
KSkpOwotICAgIFdlYktpdFdlYkRhdGFTb3VyY2UqIGRhdGFzb3VyY2UgPSBraXROZXcoV2ViS2l0
OjpEb2N1bWVudExvYWRlcjo6Y3JlYXRlKHJlc291cmNlUmVxdWVzdCwgU3Vic3RpdHV0ZURhdGEo
KSkpOwotCi0gICAgV2ViS2l0V2ViRGF0YVNvdXJjZVByaXZhdGUqIHByaXYgPSBkYXRhc291cmNl
LT5wcml2OwotICAgIHByaXYtPmluaXRpYWxSZXF1ZXN0ID0gcmVxdWVzdDsKLQotICAgIHJldHVy
biBkYXRhc291cmNlOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X3dl
Yl9mcmFtZToKLSAqIEBkYXRhX3NvdXJjZTogYSAjV2ViS2l0V2ViRGF0YVNvdXJjZQotICoKLSAq
IFJldHVybnMgdGhlICNXZWJLaXRXZWJGcmFtZSB0aGF0IHJlcHJlc2VudHMgdGhpcyBkYXRhIHNv
dXJjZQotICoKLSAqIFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiB0aGUgI1dlYktpdFdl
YkZyYW1lIHRoYXQgcmVwcmVzZW50cwotICogdGhlIEBkYXRhX3NvdXJjZS4gVGhlICNXZWJLaXRX
ZWJGcmFtZSBpcyBvd25lZCBieSBXZWJLaXQgYW5kIHNob3VsZAotICogbm90IGJlIGZyZWVkIG9y
IGRlc3Ryb3llZC4gIFRoaXMgd2lsbCByZXR1cm4gJU5VTEwgaWYgdGhlCi0gKiBAZGF0YV9zb3Vy
Y2UgaXMgbm90IGF0dGFjaGVkIHRvIGEgZnJhbWUuCi0gKgotICogU2luY2U6IDEuMS4xNAotICov
Ci1XZWJLaXRXZWJGcmFtZSogd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9nZXRfd2ViX2ZyYW1lKFdl
YktpdFdlYkRhdGFTb3VyY2UqIHdlYkRhdGFTb3VyY2UpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9EQVRBX1NPVVJDRSh3ZWJEYXRhU291cmNlKSwgTlVMTCk7Ci0K
LSAgICBXZWJLaXRXZWJEYXRhU291cmNlUHJpdmF0ZSogcHJpdiA9IHdlYkRhdGFTb3VyY2UtPnBy
aXY7Ci0gICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gcHJpdi0+bG9hZGVyLT5mcmFtZUxv
YWRlcigpOwotCi0gICAgaWYgKCFmcmFtZUxvYWRlcikKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0K
LSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudCY+KGZyYW1l
TG9hZGVyLT5jbGllbnQoKSkud2ViRnJhbWUoKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2Rh
dGFfc291cmNlX2dldF9pbml0aWFsX3JlcXVlc3Q6Ci0gKiBAZGF0YV9zb3VyY2U6IGEgI1dlYktp
dFdlYkRhdGFTb3VyY2UKLSAqCi0gKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5h
bCByZXF1ZXN0IHRoYXQgd2FzIHVzZWQgdG8gbG9hZCB0aGUgd2ViCi0gKiBjb250ZW50LiBUaGUg
I1dlYktpdE5ldHdvcmtSZXF1ZXN0IHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kIGlzIHRoZSByZXF1
ZXN0Ci0gKiBwcmlvciB0byB0aGUgImNvbW1pdHRlZCIgbG9hZCBzdGF0ZS4gU2VlIHdlYmtpdF93
ZWJfZGF0YV9zb3VyY2VfZ2V0X3JlcXVlc3QKLSAqIGZvciBnZXR0aW5nIHRoZSAiY29tbWl0dGVk
IiByZXF1ZXN0LgotICoKLSAqIFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiB0aGUgb3Jp
Z2luYWwgI1dlYktpdE5ldHdvcmtSZXF1ZXN0Ci0gKgotICogU2luY2U6IDEuMS4xNAotICovCi1X
ZWJLaXROZXR3b3JrUmVxdWVzdCogd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9nZXRfaW5pdGlhbF9y
ZXF1ZXN0KFdlYktpdFdlYkRhdGFTb3VyY2UqIHdlYkRhdGFTb3VyY2UpCi17Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9EQVRBX1NPVVJDRSh3ZWJEYXRhU291cmNlKSwg
TlVMTCk7Ci0KLSAgICBXZWJLaXRXZWJEYXRhU291cmNlUHJpdmF0ZSogcHJpdiA9IHdlYkRhdGFT
b3VyY2UtPnByaXY7Ci0gICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBwcml2LT5sb2FkZXIt
Pm9yaWdpbmFsUmVxdWVzdCgpOwotCi0gICAgaWYgKHByaXYtPmluaXRpYWxSZXF1ZXN0KQotICAg
ICAgICBnX29iamVjdF91bnJlZihwcml2LT5pbml0aWFsUmVxdWVzdCk7Ci0KLSAgICBwcml2LT5p
bml0aWFsUmVxdWVzdCA9IGtpdE5ldyhyZXF1ZXN0KTsKLSAgICByZXR1cm4gcHJpdi0+aW5pdGlh
bFJlcXVlc3Q7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9nZXRfcmVxdWVz
dDoKLSAqIEBkYXRhX3NvdXJjZTogYSAjV2ViS2l0V2ViRGF0YVNvdXJjZQotICoKLSAqIFJldHVy
bnMgYSAjV2ViS2l0TmV0d29ya1JlcXVlc3QgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhpcwot
ICogI1dlYktpdFdlYkRhdGFTb3VyY2UuIFRoZSAjV2ViS2l0TmV0d29ya1JlcXVlc3QgcmV0dXJu
ZWQgYnkgdGhpcyBtZXRob2QgaXMKLSAqIHRoZSByZXF1ZXN0IHRoYXQgd2FzICJjb21taXR0ZWQi
LCBhbmQgaGVuY2UsIGRpZmZlcmVudCBmcm9tIHRoZSByZXF1ZXN0IHlvdQotICogZ2V0IGZyb20g
dGhlIHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X2luaXRpYWxfcmVxdWVzdCBtZXRob2QuCi0g
KgotICogUmV0dXJuIHZhbHVlOiAodHJhbnNmZXIgbm9uZSk6IHRoZSAjV2ViS2l0TmV0d29ya1Jl
cXVlc3QgdGhhdAotICogY3JlYXRlZCB0aGUgQGRhdGFfc291cmNlIG9yICVOVUxMIGlmIHRoZSBA
ZGF0YV9zb3VyY2UgaXMgbm90Ci0gKiBhdHRhY2hlZCB0byB0aGUgZnJhbWUgb3IgdGhlIGZyYW1l
IGhhc24ndCBiZWVuIGxvYWRlZC4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLVdlYktpdE5l
dHdvcmtSZXF1ZXN0KiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF9yZXF1ZXN0KFdlYktpdFdl
YkRhdGFTb3VyY2UqIHdlYkRhdGFTb3VyY2UpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0lTX1dFQl9EQVRBX1NPVVJDRSh3ZWJEYXRhU291cmNlKSwgTlVMTCk7Ci0KLSAgICBX
ZWJLaXRXZWJEYXRhU291cmNlUHJpdmF0ZSogcHJpdiA9IHdlYkRhdGFTb3VyY2UtPnByaXY7Ci0g
ICAgRnJhbWVMb2FkZXIqIGZyYW1lTG9hZGVyID0gcHJpdi0+bG9hZGVyLT5mcmFtZUxvYWRlcigp
OwotICAgIGlmICghZnJhbWVMb2FkZXIgfHwgIWZyYW1lTG9hZGVyLT5mcmFtZUhhc0xvYWRlZCgp
KQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0g
cHJpdi0+bG9hZGVyLT5yZXF1ZXN0KCk7Ci0KLSAgICAgaWYgKHByaXYtPm5ldHdvcmtSZXF1ZXN0
KQotICAgICAgICAgZ19vYmplY3RfdW5yZWYocHJpdi0+bmV0d29ya1JlcXVlc3QpOwotCi0gICAg
IHByaXYtPm5ldHdvcmtSZXF1ZXN0ID0ga2l0TmV3KHJlcXVlc3QpOwotICAgICByZXR1cm4gcHJp
di0+bmV0d29ya1JlcXVlc3Q7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9n
ZXRfZW5jb2Rpbmc6Ci0gKiBAZGF0YV9zb3VyY2U6IGEgI1dlYktpdFdlYkRhdGFTb3VyY2UKLSAq
Ci0gKiBSZXR1cm5zIHRoZSB0ZXh0IGVuY29kaW5nIG5hbWUgYXMgc2V0IGluIHRoZSAjV2ViS2l0
V2ViVmlldywgb3IgaWYgbm90LCB0aGUKLSAqIHRleHQgZW5jb2Rpbmcgb2YgdGhlIHJlc3BvbnNl
LgotICoKLSAqIFJldHVybiB2YWx1ZTogdGhlIGVuY29kaW5nIG5hbWUgb2YgdGhlICNXZWJLaXRX
ZWJWaWV3IG9yIG9mIHRoZSByZXNwb25zZS4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLWNv
bnN0IGdjaGFyKiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF9lbmNvZGluZyhXZWJLaXRXZWJE
YXRhU291cmNlKiB3ZWJEYXRhU291cmNlKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9JU19XRUJfREFUQV9TT1VSQ0Uod2ViRGF0YVNvdXJjZSksIE5VTEwpOwotCi0gICAgV2Vi
S2l0V2ViRGF0YVNvdXJjZVByaXZhdGUqIHByaXYgPSB3ZWJEYXRhU291cmNlLT5wcml2OwotICAg
IFN0cmluZyB0ZXh0RW5jb2RpbmdOYW1lID0gcHJpdi0+bG9hZGVyLT5vdmVycmlkZUVuY29kaW5n
KCk7Ci0KLSAgICBpZiAoIXRleHRFbmNvZGluZ05hbWUpCi0gICAgICAgIHRleHRFbmNvZGluZ05h
bWUgPSBwcml2LT5sb2FkZXItPnJlc3BvbnNlKCkudGV4dEVuY29kaW5nTmFtZSgpOwotCi0gICAg
Q1N0cmluZyBlbmNvZGluZyA9IHRleHRFbmNvZGluZ05hbWUudXRmOCgpOwotICAgIGdfZnJlZShw
cml2LT50ZXh0RW5jb2RpbmcpOwotICAgIHByaXYtPnRleHRFbmNvZGluZyA9IGdfc3RyZHVwKGVu
Y29kaW5nLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHByaXYtPnRleHRFbmNvZGluZzsKLX0KLQotLyoq
Ci0gKiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX2lzX2xvYWRpbmc6Ci0gKiBAZGF0YV9zb3VyY2U6
IGEgI1dlYktpdFdlYkRhdGFTb3VyY2UKLSAqCi0gKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGRh
dGEgc291cmNlIGlzIGluIHRoZSBwcm9jZXNzIG9mIGxvYWRpbmcgaXRzIGNvbnRlbnQuCi0gKgot
ICogUmV0dXJuIHZhbHVlOiAlVFJVRSBpZiB0aGUgQGRhdGFfc291cmNlIGlzIHN0aWxsIGxvYWRp
bmcsICVGQUxTRSBvdGhlcndpc2UKLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLWdib29sZWFu
IHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfaXNfbG9hZGluZyhXZWJLaXRXZWJEYXRhU291cmNlKiB3
ZWJEYXRhU291cmNlKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJf
REFUQV9TT1VSQ0Uod2ViRGF0YVNvdXJjZSksIEZBTFNFKTsKLQotICAgIFdlYktpdFdlYkRhdGFT
b3VyY2VQcml2YXRlKiBwcml2ID0gd2ViRGF0YVNvdXJjZS0+cHJpdjsKLQotICAgIHJldHVybiBw
cml2LT5sb2FkZXItPmlzTG9hZGluZ0luQVBJU2Vuc2UoKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRf
d2ViX2RhdGFfc291cmNlX2dldF9kYXRhOgotICogQGRhdGFfc291cmNlOiBhICNXZWJLaXRXZWJE
YXRhU291cmNlCi0gKgotICogUmV0dXJucyB0aGUgcmF3IGRhdGEgdGhhdCByZXByZXNlbnRzIHRo
ZSB0aGUgZnJhbWUncyBjb250ZW50LlRoZSBkYXRhIHdpbGwKLSAqIGJlIGluY29tcGxldGUgdW50
aWwgdGhlIGRhdGEgaGFzIGZpbmlzaGVkIGxvYWRpbmcuIFJldHVybnMgJU5VTEwgaWYgdGhlIHdl
YgotICogZnJhbWUgaGFzbid0IGxvYWRlZCBhbnkgZGF0YS4gVXNlIHdlYmtpdF93ZWJfZGF0YV9z
b3VyY2VfaXNfbG9hZGluZyB0byB0ZXN0Ci0gKiBpZiBkYXRhIHNvdXJjZSBpcyBpbiB0aGUgcHJv
Y2VzcyBvZiBsb2FkaW5nLgotICoKLSAqIFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiBh
ICNHU3RyaW5nIHdoaWNoIGNvbnRhaW5zIHRoZSByYXcKLSAqIGRhdGEgdGhhdCByZXByZXNlbnRz
IHRoZSBAZGF0YV9zb3VyY2Ugb3IgJU5VTEwgaWYgdGhlIEBkYXRhX3NvdXJjZQotICogaGFzbid0
IGxvYWRlZCBhbnkgZGF0YS4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLUdTdHJpbmcqIHdl
YmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X2RhdGEoV2ViS2l0V2ViRGF0YVNvdXJjZSogd2ViRGF0
YVNvdXJjZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0RBVEFf
U09VUkNFKHdlYkRhdGFTb3VyY2UpLCBOVUxMKTsKLQotICAgIFdlYktpdFdlYkRhdGFTb3VyY2VQ
cml2YXRlKiBwcml2ID0gd2ViRGF0YVNvdXJjZS0+cHJpdjsKLQotICAgIFJlZlB0cjxSZXNvdXJj
ZUJ1ZmZlcj4gbWFpblJlc291cmNlRGF0YSA9IHByaXYtPmxvYWRlci0+bWFpblJlc291cmNlRGF0
YSgpOwotCi0gICAgaWYgKCFtYWluUmVzb3VyY2VEYXRhKQotICAgICAgICByZXR1cm4gTlVMTDsK
LQotICAgIGlmIChwcml2LT5kYXRhKSB7Ci0gICAgICAgIGdfc3RyaW5nX2ZyZWUocHJpdi0+ZGF0
YSwgVFJVRSk7Ci0gICAgICAgIHByaXYtPmRhdGEgPSBOVUxMOwotICAgIH0KLQotICAgIHByaXYt
PmRhdGEgPSBnX3N0cmluZ19uZXdfbGVuKG1haW5SZXNvdXJjZURhdGEtPmRhdGEoKSwgbWFpblJl
c291cmNlRGF0YS0+c2l6ZSgpKTsKLSAgICByZXR1cm4gcHJpdi0+ZGF0YTsKLX0KLQotLyoqCi0g
KiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF9tYWluX3Jlc291cmNlOgotICogQGRhdGFfc291
cmNlOiBhICNXZWJLaXRXZWJEYXRhU291cmNlCi0gKgotICogUmV0dXJucyB0aGUgbWFpbiByZXNv
dXJjZSBvZiB0aGUgQGRhdGFfc291cmNlCi0gKgotICogUmV0dXJuIHZhbHVlOiAodHJhbnNmZXIg
bm9uZSk6IGEgbmV3ICNXZWJLaXRXZWJSZXNvdXJjZQotICogcmVwcmVzZW50aW5nIHRoZSBtYWlu
IHJlc291cmNlIG9mIHRoZSBAZGF0YV9zb3VyY2UuCi0gKgotICogU2luY2U6IDEuMS4xNAotICov
Ci1XZWJLaXRXZWJSZXNvdXJjZSogd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9nZXRfbWFpbl9yZXNv
dXJjZShXZWJLaXRXZWJEYXRhU291cmNlKiB3ZWJEYXRhU291cmNlKQotewotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfREFUQV9TT1VSQ0Uod2ViRGF0YVNvdXJjZSksIE5V
TEwpOwotCi0gICAgV2ViS2l0V2ViRGF0YVNvdXJjZVByaXZhdGUqIHByaXYgPSB3ZWJEYXRhU291
cmNlLT5wcml2OwotCi0gICAgaWYgKHByaXYtPm1haW5yZXNvdXJjZSkKLSAgICAgICAgcmV0dXJu
IHByaXYtPm1haW5yZXNvdXJjZTsKLQotICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHdl
YmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X3dlYl9mcmFtZSh3ZWJEYXRhU291cmNlKTsKLSAgICBX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZSh3ZWJGcmFtZSk7Ci0KLSAg
ICBwcml2LT5tYWlucmVzb3VyY2UgPSBXRUJLSVRfV0VCX1JFU09VUkNFKGdfb2JqZWN0X3JlZih3
ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fcmVzb3VyY2Uod2ViVmlldykpKTsKLQotICAgIHJldHVy
biBwcml2LT5tYWlucmVzb3VyY2U7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9kYXRhX3NvdXJj
ZV9nZXRfdW5yZWFjaGFibGVfdXJpOgotICogQGRhdGFfc291cmNlOiBhICNXZWJLaXRXZWJEYXRh
U291cmNlCi0gKgotICogUmV0dXJuIHRoZSB1bnJlYWNoYWJsZSBVUkkgb2YgQGRhdGFfc291cmNl
LiBUaGUgQGRhdGFfc291cmNlIHdpbGwgaGF2ZSBhbgotICogdW5yZWFjaGFibGUgVVJMIGlmIGl0
IHdhcyBjcmVhdGVkIHVzaW5nICNXZWJLaXRXZWJGcmFtZSdzCi0gKiB3ZWJraXRfd2ViX2ZyYW1l
X2xvYWRfYWx0ZXJuYXRlX2h0bWxfc3RyaW5nIG1ldGhvZC4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6
IHRoZSB1bnJlYWNoYWJsZSBVUkwgb2YgQGRhdGFfc291cmNlIG9yICVOVUxMIGlmIHRoZXJlIGlz
IG5vIHVucmVhY2hhYmxlIFVSTC4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLWNvbnN0IGdj
aGFyKiB3ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF91bnJlYWNoYWJsZV91cmkoV2ViS2l0V2Vi
RGF0YVNvdXJjZSogd2ViRGF0YVNvdXJjZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfSVNfV0VCX0RBVEFfU09VUkNFKHdlYkRhdGFTb3VyY2UpLCBOVUxMKTsKLQotICAgIFdl
YktpdFdlYkRhdGFTb3VyY2VQcml2YXRlKiBwcml2ID0gd2ViRGF0YVNvdXJjZS0+cHJpdjsKLSAg
ICBjb25zdCBVUkwmIHVucmVhY2hhYmxlVVJMID0gcHJpdi0+bG9hZGVyLT51bnJlYWNoYWJsZVVS
TCgpOwotCi0gICAgaWYgKHVucmVhY2hhYmxlVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
IE5VTEw7Ci0KLSAgICBnX2ZyZWUocHJpdi0+dW5yZWFjaGFibGVVUkwpOwotICAgIHByaXYtPnVu
cmVhY2hhYmxlVVJMID0gZ19zdHJkdXAodW5yZWFjaGFibGVVUkwuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7Ci0gICAgcmV0dXJuIHByaXYtPnVucmVhY2hhYmxlVVJMOwotfQotCi0vKioKLSAqIHdl
YmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X3N1YnJlc291cmNlczoKLSAqIEBkYXRhX3NvdXJjZTog
YSAjV2ViS2l0V2ViRGF0YVNvdXJjZQotICoKLSAqIEdpdmVzIHlvdSBhICNHTGlzdCBvZiAjV2Vi
S2l0V2ViUmVzb3VyY2Ugb2JqZWN0cyB0aGF0IGNvbXBvc2UgdGhlCi0gKiAjV2ViS2l0V2ViVmll
dyB0byB3aGljaCB0aGlzICNXZWJLaXRXZWJEYXRhU291cmNlIGlzIGF0dGFjaGVkLgotICoKLSAq
IFJldHVybiB2YWx1ZTogKGVsZW1lbnQtdHlwZSBXZWJLaXRXZWJSZXNvdXJjZSkgKHRyYW5zZmVy
IGNvbnRhaW5lcik6Ci0gKiBhICNHTGlzdCBvZiAjV2ViS2l0V2ViUmVzb3VyY2Ugb2JqZWN0czsg
dGhlIG9iamVjdHMgYXJlIG93bmVkIGJ5Ci0gKiBXZWJLaXQsIGJ1dCB0aGUgR0xpc3QgbXVzdCBi
ZSBmcmVlZC4KLSAqCi0gKiBTaW5jZTogMS4xLjE1Ci0gKi8KLUdMaXN0KiB3ZWJraXRfd2ViX2Rh
dGFfc291cmNlX2dldF9zdWJyZXNvdXJjZXMoV2ViS2l0V2ViRGF0YVNvdXJjZSogd2ViRGF0YVNv
dXJjZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0RBVEFfU09V
UkNFKHdlYkRhdGFTb3VyY2UpLCBOVUxMKTsKLQotICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFt
ZSA9IHdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X3dlYl9mcmFtZSh3ZWJEYXRhU291cmNlKTsK
LSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gZ2V0Vmlld0Zyb21GcmFtZSh3ZWJGcmFtZSk7
Ci0KLSAgICByZXR1cm4gd2Via2l0X3dlYl92aWV3X2dldF9zdWJyZXNvdXJjZXMod2ViVmlldyk7
Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJLaXRXZWJEYXRhU291cmNlKiBraXROZXco
UGFzc1JlZlB0cjxXZWJLaXQ6OkRvY3VtZW50TG9hZGVyPiBsb2FkZXIpCi17Ci0gICAgV2ViS2l0
V2ViRGF0YVNvdXJjZSogd2ViRGF0YVNvdXJjZSA9IFdFQktJVF9XRUJfREFUQV9TT1VSQ0UoZ19v
YmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9EQVRBX1NPVVJDRSwgTlVMTCkpOwotICAgIFdlYktp
dFdlYkRhdGFTb3VyY2VQcml2YXRlKiBwcml2ID0gd2ViRGF0YVNvdXJjZS0+cHJpdjsKLSAgICBw
cml2LT5sb2FkZXIgPSBsb2FkZXIubGVha1JlZigpOwotCi0gICAgcmV0dXJuIHdlYkRhdGFTb3Vy
Y2U7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJkYXRhc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZGF0YXNv
dXJjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODQzMGUwLi4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhc291cmNlLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw5NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEphbiBN
aWNoYWVsIEMuIEFsb256bwotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIHdlYmtpdHdlYmRhdGFzb3VyY2VfaAotI2RlZmluZSB3
ZWJraXR3ZWJkYXRhc291cmNlX2gKLQotI2luY2x1ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDxnbGli
LW9iamVjdC5oPgotCi0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KLSNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0d2ViZnJhbWUuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0bmV0d29y
a3JlcXVlc3QuaD4KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9UWVBFX1dFQl9E
QVRBX1NPVVJDRSAgICAgICAgICAgICh3ZWJraXRfd2ViX2RhdGFfc291cmNlX2dldF90eXBlKCkp
Ci0jZGVmaW5lIFdFQktJVF9XRUJfREFUQV9TT1VSQ0Uob2JqKSAgICAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0RBVEFfU09VUkNFLCBX
ZWJLaXRXZWJEYXRhU291cmNlKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9EQVRBX1NPVVJDRV9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9XRUJfREFUQV9TT1VSQ0UsIFdlYktpdFdlYkRhdGFTb3VyY2VDbGFzcykpCi0jZGVmaW5lIFdF
QktJVF9JU19XRUJfREFUQV9TT1VSQ0Uob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFO
Q0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0RBVEFfU09VUkNFKSkKLSNkZWZpbmUgV0VC
S0lUX0lTX1dFQl9EQVRBX1NPVVJDRV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19U
WVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfREFUQV9TT1VSQ0UpKQotI2RlZmluZSBXRUJL
SVRfV0VCX0RBVEFfU09VUkNFX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9D
TEFTUygob2JqKSwgIFdFQktJVF9UWVBFX1dFQl9EQVRBX1NPVVJDRSwgV2ViS2l0V2ViRGF0YVNv
dXJjZUNsYXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkRhdGFTb3VyY2VQcml2YXRl
IFdlYktpdFdlYkRhdGFTb3VyY2VQcml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdFdlYkRhdGFTb3Vy
Y2UgewotICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwotCi0gICAgLyo8IHByaXZhdGUgPiov
Ci0gICAgV2ViS2l0V2ViRGF0YVNvdXJjZVByaXZhdGUgKnByaXY7Ci19OwotCi1zdHJ1Y3QgX1dl
YktpdFdlYkRhdGFTb3VyY2VDbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsK
LQotICAgIC8qIFBhZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KLSAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDApICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2
b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKLX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtp
dF93ZWJfZGF0YV9zb3VyY2VfZ2V0X3R5cGUgKHZvaWQpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdl
YkRhdGFTb3VyY2UgKgotd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9uZXcgICAgICAgICAgICAgICAg
ICAgICh2b2lkKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRXZWJEYXRhU291cmNlICoKLXdlYmtpdF93
ZWJfZGF0YV9zb3VyY2VfbmV3X3dpdGhfcmVxdWVzdCAgICAgICAoV2ViS2l0TmV0d29ya1JlcXVl
c3QgKnJlcXVlc3QpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1lICoKLXdlYmtpdF93ZWJf
ZGF0YV9zb3VyY2VfZ2V0X3dlYl9mcmFtZSAgICAgICAgICAoV2ViS2l0V2ViRGF0YVNvdXJjZSAg
KmRhdGFfc291cmNlKTsKLQotV0VCS0lUX0FQSSBXZWJLaXROZXR3b3JrUmVxdWVzdCAqCi13ZWJr
aXRfd2ViX2RhdGFfc291cmNlX2dldF9pbml0aWFsX3JlcXVlc3QgICAgKFdlYktpdFdlYkRhdGFT
b3VyY2UgICpkYXRhX3NvdXJjZSk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0TmV0d29ya1JlcXVlc3Qg
Kgotd2Via2l0X3dlYl9kYXRhX3NvdXJjZV9nZXRfcmVxdWVzdCAgICAgICAgICAgIChXZWJLaXRX
ZWJEYXRhU291cmNlICAqZGF0YV9zb3VyY2UpOwotCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoK
LXdlYmtpdF93ZWJfZGF0YV9zb3VyY2VfZ2V0X2VuY29kaW5nICAgICAgICAgICAoV2ViS2l0V2Vi
RGF0YVNvdXJjZSAgKmRhdGFfc291cmNlKTsKLQotV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0
X3dlYl9kYXRhX3NvdXJjZV9pc19sb2FkaW5nICAgICAgICAgICAgIChXZWJLaXRXZWJEYXRhU291
cmNlICAqZGF0YV9zb3VyY2UpOwotCi1XRUJLSVRfQVBJIEdTdHJpbmcgKgotd2Via2l0X3dlYl9k
YXRhX3NvdXJjZV9nZXRfZGF0YSAgICAgICAgICAgICAgIChXZWJLaXRXZWJEYXRhU291cmNlICAq
ZGF0YV9zb3VyY2UpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYlJlc291cmNlICoKLXdlYmtpdF93
ZWJfZGF0YV9zb3VyY2VfZ2V0X21haW5fcmVzb3VyY2UgICAgICAoV2ViS2l0V2ViRGF0YVNvdXJj
ZSAgKmRhdGFfc291cmNlKTsKLQotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfd2Vi
X2RhdGFfc291cmNlX2dldF91bnJlYWNoYWJsZV91cmkgICAgKFdlYktpdFdlYkRhdGFTb3VyY2Ug
ICpkYXRhX3NvdXJjZSk7Ci0KLVdFQktJVF9BUEkgR0xpc3QqCi13ZWJraXRfd2ViX2RhdGFfc291
cmNlX2dldF9zdWJyZXNvdXJjZXMgICAgICAgKFdlYktpdFdlYkRhdGFTb3VyY2UgICpkYXRhX3Nv
dXJjZSk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZiAvKiB3ZWJraXR3ZWJkYXRhc291cmNlX2gg
Ki8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJkYXRhc291
cmNlcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3Vy
Y2Vwcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlMjUzZmEuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmRhdGFzb3VyY2Vwcml2
YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpvCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Q29sbGFib3JhIEx0ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVm
IHdlYmtpdHdlYmRhdGFzb3VyY2Vwcml2YXRlX2gKLSNkZWZpbmUgd2Via2l0d2ViZGF0YXNvdXJj
ZXByaXZhdGVfaAotCi0jaW5jbHVkZSAid2Via2l0d2ViZGF0YXNvdXJjZS5oIgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYktpdFdlYkRhdGFTb3Vy
Y2UqIGtpdE5ldyhQYXNzUmVmUHRyPFdlYktpdDo6RG9jdW1lbnRMb2FkZXI+KTsKLQotfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzdkNTJmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjE1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggSG9sZ2VyIEhhbnMg
UGV0ZXIgRnJleXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4KLSAqIENvcHlyaWdodCAo
QykgMjAwOCBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KLSAqIENvcHly
aWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IE51YW50
aSBMdGQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgSmFuIEFsb256byA8am1hbG9uem9AZ21haWwu
Y29tPgotICogQ29weXJpZ2h0IChDKSAyMDA5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSA8Z25zQGdu
b21lLm9yZz4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmZyYW1lLmgi
Ci0KLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCi0jaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJv
bGxlci5oIgotI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRG
cmFnbWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnRMb2FkZXJHdGsuaCIKLSNpbmNsdWRlICJFZGl0b3IuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRS
ZXF1ZXN0LmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudEd0ay5oIgotI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCi0jaW5jbHVkZSAiRnJh
bWVUcmVlLmgiCi0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiR0NDb250cm9sbGVy
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiR3RrVXRpbGl0aWVz
LmgiCi0jaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgotI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVy
RWxlbWVudC5oIgotI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpTRE9NV2lu
ZG93LmgiCi0jaW5jbHVkZSAiSlNFbGVtZW50LmgiCi0jaW5jbHVkZSAiTWFpbkZyYW1lLmgiCi0j
aW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0Q2Fpcm8uaCIKLSNpbmNsdWRlICJQcmludENvbnRleHQu
aCIKLSNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5oIgotI2luY2x1ZGUgIlJlbmRlclRyZWVBc1Rl
eHQuaCIKLSNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQu
aCIKLSNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiU3Vic3RpdHV0ZURh
dGEuaCIKLSNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKLSNpbmNsdWRlICJXZWJLaXRBY2Nlc3Np
YmxlV3JhcHBlckF0ay5oIgotI2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oIgot
I2luY2x1ZGUgIldlYktpdERPTVJhbmdlUHJpdmF0ZS5oIgotI2luY2x1ZGUgIm1hcmt1cC5oIgot
I2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgotI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2
YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgotI2luY2x1ZGUgIndlYmtpdG5ldHdv
cmtyZXNwb25zZS5oIgotI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0cHJpdmF0ZS5oIgot
I2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXNwb25zZXByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJr
aXRzZWN1cml0eW9yaWdpbnByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZh
dGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgotI2luY2x1ZGUgIndlYmtpdHdl
YnZpZXcuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgotI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KLSNpbmNsdWRlIDxhdGsvYXRrLmg+Ci0jaW5jbHVkZSA8
Z2xpYi9naTE4bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLQotLyoq
Ci0gKiBTRUNUSU9OOndlYmtpdHdlYmZyYW1lCi0gKiBAc2hvcnRfZGVzY3JpcHRpb246IFRoZSBj
b250ZW50IG9mIGEgI1dlYktpdFdlYlZpZXcKLSAqCi0gKiBBICNXZWJLaXRXZWJWaWV3IGNvbnRh
aW5zIGEgbWFpbiAjV2ViS2l0V2ViRnJhbWUuIEEgI1dlYktpdFdlYkZyYW1lCi0gKiBjb250YWlu
cyB0aGUgY29udGVudCBvZiBvbmUgVVJJLiBUaGUgVVJJIGFuZCBuYW1lIG9mIHRoZSBmcmFtZSBj
YW4KLSAqIGJlIHJldHJpZXZlZCwgdGhlIGxvYWQgc3RhdHVzIGFuZCBwcm9ncmVzcyBjYW4gYmUg
b2JzZXJ2ZWQgdXNpbmcgdGhlCi0gKiBzaWduYWxzIGFuZCBjYW4gYmUgY29udHJvbGxlZCB1c2lu
ZyB0aGUgbWV0aG9kcyBvZiB0aGUgI1dlYktpdFdlYkZyYW1lLgotICogQSAjV2ViS2l0V2ViRnJh
bWUgY2FuIGhhdmUgYW55IG51bWJlciBvZiBjaGlsZHJlbiBhbmQgb25lIGNoaWxkIGNhbgotICog
YmUgZm91bmQgYnkgdXNpbmcgI3dlYmtpdF93ZWJfZnJhbWVfZmluZF9mcmFtZS4KLSAqCi0gKiA8
aW5mb3JtYWxleGFtcGxlPjxwcm9ncmFtbGlzdGluZz4KLSAqIC88IS0tIC0tPiogR2V0IHRoZSBm
cmFtZSBmcm9tIHRoZSAjV2ViS2l0V2ViVmlldyAqPCEtLSAtLT4vCi0gKiBXZWJLaXRXZWJGcmFt
ZSAqZnJhbWUgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUgKFdFQktJVF9XRUJfVklF
VyhteV92aWV3KSk7Ci0gKiBnX3ByaW50ICgiVGhlIFVSSSBvZiB0aGlzIGZyYW1lIGlzICclcyci
LCB3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkgKGZyYW1lKSk7Ci0gKiA8L3Byb2dyYW1saXN0aW5n
PjwvaW5mb3JtYWxleGFtcGxlPgotICovCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci11c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLWVudW0gewotICAg
IENMRUFSRUQsCi0gICAgTE9BRF9DT01NSVRURUQsCi0gICAgTE9BRF9ET05FLAotICAgIFRJVExF
X0NIQU5HRUQsCi0gICAgSE9WRVJJTkdfT1ZFUl9MSU5LLAotICAgIFNDUk9MTEJBUlNfUE9MSUNZ
X0NIQU5HRUQsCi0gICAgLy8gUmVzb3VyY2UgbG9hZGluZyBzaWduYWxzCi0gICAgUkVTT1VSQ0Vf
UkVRVUVTVF9TVEFSVElORywKLSAgICBSRVNPVVJDRV9SRVNQT05TRV9SRUNFSVZFRCwKLSAgICBS
RVNPVVJDRV9MT0FEX0ZJTklTSEVELAotICAgIFJFU09VUkNFX0NPTlRFTlRfTEVOR1RIX1JFQ0VJ
VkVELAotICAgIFJFU09VUkNFX0xPQURfRkFJTEVELAotICAgIElOU0VDVVJFX0NPTlRFTlRfUlVO
LAotCi0gICAgTEFTVF9TSUdOQUwKLX07Ci0KLWVudW0gewotICAgIFBST1BfMCwKLQotICAgIFBS
T1BfTkFNRSwKLSAgICBQUk9QX1RJVExFLAotICAgIFBST1BfVVJJLAotICAgIFBST1BfTE9BRF9T
VEFUVVMsCi0gICAgUFJPUF9IT1JJWk9OVEFMX1NDUk9MTEJBUl9QT0xJQ1ksCi0gICAgUFJPUF9W
RVJUSUNBTF9TQ1JPTExCQVJfUE9MSUNZCi19OwotCi1zdGF0aWMgZ3VpbnQgd2Via2l0X3dlYl9m
cmFtZV9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKLQotR19ERUZJTkVfVFlQRShXZWJL
aXRXZWJGcmFtZSwgd2Via2l0X3dlYl9mcmFtZSwgR19UWVBFX09CSkVDVCkKLQotc3RhdGljIHZv
aWQgd2Via2l0X3dlYl9mcmFtZV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wZXJ0eUlkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwYXJhbVNwZWMpCi17Ci0gICAg
V2ViS2l0V2ViRnJhbWUqIGZyYW1lID0gV0VCS0lUX1dFQl9GUkFNRShvYmplY3QpOwotCi0gICAg
c3dpdGNoIChwcm9wZXJ0eUlkKSB7Ci0gICAgY2FzZSBQUk9QX05BTUU6Ci0gICAgICAgIGdfdmFs
dWVfc2V0X3N0cmluZyh2YWx1ZSwgd2Via2l0X3dlYl9mcmFtZV9nZXRfbmFtZShmcmFtZSkpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfVElUTEU6Ci0gICAgICAgIGdfdmFsdWVfc2V0
X3N0cmluZyh2YWx1ZSwgd2Via2l0X3dlYl9mcmFtZV9nZXRfdGl0bGUoZnJhbWUpKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1VSSToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5n
KHZhbHVlLCB3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkoZnJhbWUpKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBQUk9QX0xPQURfU1RBVFVTOgotICAgICAgICBnX3ZhbHVlX3NldF9lbnVtKHZh
bHVlLCB3ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1cyhmcmFtZSkpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFBST1BfSE9SSVpPTlRBTF9TQ1JPTExCQVJfUE9MSUNZOgotICAgICAg
ICBnX3ZhbHVlX3NldF9lbnVtKHZhbHVlLCB3ZWJraXRfd2ViX2ZyYW1lX2dldF9ob3Jpem9udGFs
X3Njcm9sbGJhcl9wb2xpY3koZnJhbWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X1ZFUlRJQ0FMX1NDUk9MTEJBUl9QT0xJQ1k6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2VudW0odmFs
dWUsIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3koZnJhbWUp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9J
TlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJZCwgcGFyYW1TcGVjKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotfQotCi0vLyBDYWxsZWQgZnJvbSB0aGUgRnJhbWVMb2FkZXJDbGll
bnQgd2hlbiBpdCBpcyBkZXN0cm95ZWQuIE5vcm1hbGx5Ci0vLyB0aGUgdW5yZWYgaW4gdGhlIEZy
YW1lTG9hZGVyQ2xpZW50IGlzIGRlc3Ryb3lpbmcgdGhpcyBvYmplY3QgYXMKLS8vIHdlbGwgYnV0
IGR1ZSByZWZlcmVuY2UgY291bnRpbmcgYSB1c2VyIG1pZ2h0IGhhdmUgYWRkZWQgYSByZWZlcmVu
Y2UuLi4KLXZvaWQgd2Via2l0X3dlYl9mcmFtZV9jb3JlX2ZyYW1lX2dvbmUoV2ViS2l0V2ViRnJh
bWUqIGZyYW1lKQotewotICAgIEFTU0VSVChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSk7Ci0g
ICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7Ci0gICAgaWYgKHBy
aXYtPmNvcmVGcmFtZSkKLSAgICAgICAgRE9NT2JqZWN0Q2FjaGU6OmNsZWFyQnlGcmFtZShwcml2
LT5jb3JlRnJhbWUpOwotICAgIHByaXYtPmNvcmVGcmFtZSA9IDA7Ci19Ci0KLXN0YXRpYyBXZWJL
aXRXZWJEYXRhU291cmNlKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9kYXRhX3NvdXJjZV9mcm9tX2Nv
cmVfbG9hZGVyKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIpCi17Ci0gICAgcmV0dXJu
IGxvYWRlciA/IHN0YXRpY19jYXN0PFdlYktpdDo6RG9jdW1lbnRMb2FkZXIqPihsb2FkZXIpLT5k
YXRhU291cmNlKCkgOiAwOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2ZpbmFs
aXplKEdPYmplY3QqIG9iamVjdCkKLXsKLSAgICBXZWJLaXRXZWJGcmFtZSogZnJhbWUgPSBXRUJL
SVRfV0VCX0ZSQU1FKG9iamVjdCk7Ci0gICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0g
ZnJhbWUtPnByaXY7Ci0KLSAgICBpZiAocHJpdi0+Y29yZUZyYW1lKSB7Ci0gICAgICAgIERPTU9i
amVjdENhY2hlOjpjbGVhckJ5RnJhbWUocHJpdi0+Y29yZUZyYW1lKTsKLSAgICAgICAgcHJpdi0+
Y29yZUZyYW1lLT5sb2FkZXIoKS5jYW5jZWxBbmRDbGVhcigpOwotICAgICAgICBwcml2LT5jb3Jl
RnJhbWUgPSAwOwotICAgIH0KLQotICAgIGdfZnJlZShwcml2LT5uYW1lKTsKLSAgICBnX2ZyZWUo
cHJpdi0+dGl0bGUpOwotICAgIGdfZnJlZShwcml2LT51cmkpOwotCi0gICAgR19PQkpFQ1RfQ0xB
U1Mod2Via2l0X3dlYl9mcmFtZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwotfQot
Ci1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2NsYXNzX2luaXQoV2ViS2l0V2ViRnJhbWVD
bGFzcyogZnJhbWVDbGFzcykKLXsKLSAgICB3ZWJraXRJbml0KCk7Ci0KLSAgICAvKgotICAgICAq
IHNpZ25hbHMKLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbQ0xFQVJFRF0g
PSBnX3NpZ25hbF9uZXcoImNsZWFyZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFt
ZUNsYXNzKSwKLSAgICAgICAgKEdTaWduYWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAg
ICAgMCwKLSAgICAgICAgMCwKLSAgICAgICAgMCwKLSAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFs
X1ZPSURfX1ZPSUQsCi0gICAgICAgIEdfVFlQRV9OT05FLCAwKTsKLQotICAgIC8qKgotICAgICAq
IFdlYktpdFdlYkZyYW1lOjpsb2FkLWNvbW1pdHRlZDoKLSAgICAgKiBAd2ViX2ZyYW1lOiB0aGUg
b2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqCi0gICAgICogRW1p
dHRlZCB3aGVuIGZyYW1lIGxvYWRpbmcgaXMgZG9uZS4KLSAgICAgKgotICAgICAqIERlcHJlY2F0
ZWQ6IFVzZSB0aGUgImxvYWQtc3RhdHVzIiBwcm9wZXJ0eSBpbnN0ZWFkLgotICAgICAqLwotICAg
IHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tMT0FEX0NPTU1JVFRFRF0gPSBnX3NpZ25hbF9uZXco
ImxvYWQtY29tbWl0dGVkIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFzcyks
Ci0gICAgICAgIChHU2lnbmFsRmxhZ3MpR19TSUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIDAsCi0g
ICAgICAgIDAsCi0gICAgICAgIDAsCi0gICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19W
T0lELAotICAgICAgICBHX1RZUEVfTk9ORSwgMCk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRX
ZWJGcmFtZTo6dGl0bGUtY2hhbmdlZDoKLSAgICAgKiBAZnJhbWU6IHRoZSBvYmplY3Qgb24gd2hp
Y2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQHRpdGxlOiB0aGUgbmV3IHRpdGxlCi0g
ICAgICoKLSAgICAgKiBXaGVuIGEgI1dlYktpdFdlYkZyYW1lIGNoYW5nZXMgdGhlIGRvY3VtZW50
IHRpdGxlIHRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQuCi0gICAgICoKLSAgICAgKiBEZXByZWNhdGVk
OiAxLjEuMTg6IFVzZSAibm90aWZ5Ojp0aXRsZSIgaW5zdGVhZC4KLSAgICAgKi8KLSAgICB3ZWJr
aXRfd2ViX2ZyYW1lX3NpZ25hbHNbVElUTEVfQ0hBTkdFRF0gPSBnX3NpZ25hbF9uZXcoInRpdGxl
LWNoYW5nZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKLSAgICAg
ICAgKEdTaWduYWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAg
MCwKLSAgICAgICAgMCwKLSAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fU1RSSU5HLAotICAg
ICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAgICAgR19UWVBFX1NUUklORyk7Ci0KLSAgICB3ZWJr
aXRfd2ViX2ZyYW1lX3NpZ25hbHNbSE9WRVJJTkdfT1ZFUl9MSU5LXSA9IGdfc2lnbmFsX25ldygi
aG92ZXJpbmctb3Zlci1saW5rIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFz
cyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpR19TSUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIDAs
Ci0gICAgICAgIDAsCi0gICAgICAgIDAsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX1NU
UklOR19TVFJJTkcsCi0gICAgICAgIEdfVFlQRV9OT05FLCAyLAotICAgICAgICBHX1RZUEVfU1RS
SU5HLCBHX1RZUEVfU1RSSU5HKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYkZyYW1lOjpz
Y3JvbGxiYXJzLXBvbGljeS1jaGFuZ2VkOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3
aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCi0gICAgICoKLSAgICAgKiBTaWduYWwgZW1pdHRlZCB3
aGVuIHBvbGljeSBmb3Igb25lIG9yIGJvdGggb2YgdGhlIHNjcm9sbGJhcnMgb2YKLSAgICAgKiB0
aGUgdmlldyBoYXMgY2hhbmdlZC4gVGhlIGRlZmF1bHQgaGFuZGxlciB3aWxsIGFwcGx5IHRoZSBu
ZXcKLSAgICAgKiBwb2xpY3kgdG8gdGhlIGNvbnRhaW5lciB0aGF0IGhvbGRzIHRoZSAjV2ViS2l0
V2ViRnJhbWUgaWYgaXQgaXMKLSAgICAgKiBhICNHdGtTY3JvbGxlZFdpbmRvdyBhbmQgdGhlIGZy
YW1lIGlzIHRoZSBtYWluIGZyYW1lLiBJZiB5b3UgZG8KLSAgICAgKiBub3Qgd2FudCB0aGlzIHRv
IGJlIGhhbmRsZWQgYXV0b21hdGljYWxseSwgeW91IG5lZWQgdG8gaGFuZGxlCi0gICAgICogdGhp
cyBzaWduYWwuCi0gICAgICoKLSAgICAgKiBUaGUgZXhjZXB0aW9uIHRvIHRoaXMgcnVsZSBpcyB0
aGF0IHBvbGljaWVzIHRvIGRpc2FibGUgdGhlCi0gICAgICogc2Nyb2xsYmFycyBhcmUgYXBwbGll
ZCBhcyAlR1RLX1BPTElDWV9BVVRPTUFUSUMgaW5zdGVhZCwgc2luY2UKLSAgICAgKiB0aGUgc2l6
ZSByZXF1ZXN0IG9mIHRoZSB3aWRnZXQgd291bGQgZm9yY2UgYnJvd3NlciB3aW5kb3dzIHRvCi0g
ICAgICogbm90IGJlIHJlc2l6YWJsZS4KLSAgICAgKgotICAgICAqIFlvdSBjYW4gb2J0YWluIHRo
ZSBuZXcgcG9saWNpZXMgZnJvbSB0aGUKLSAgICAgKiBXZWJLaXRXZWJGcmFtZTpob3Jpem9udGFs
LXNjcm9sbGJhci1wb2xpY3kgYW5kCi0gICAgICogV2ViS2l0V2ViRnJhbWU6dmVydGljYWwtc2Ny
b2xsYmFyLXBvbGljeSBwcm9wZXJ0aWVzLgotICAgICAqCi0gICAgICogUmV0dXJuIHZhbHVlOiAl
VFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlCi0g
ICAgICogZXZlbnQuICVGQUxTRSB0byBwcm9wYWdhdGUgdGhlIGV2ZW50IGZ1cnRoZXIuCi0gICAg
ICoKLSAgICAgKiBTaW5jZTogMS4xLjE0Ci0gICAgICovCi0gICAgd2Via2l0X3dlYl9mcmFtZV9z
aWduYWxzW1NDUk9MTEJBUlNfUE9MSUNZX0NIQU5HRURdID0gZ19zaWduYWxfbmV3KCJzY3JvbGxi
YXJzLXBvbGljeS1jaGFuZ2VkIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFz
cyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxf
QUNUSU9OKSwKLSAgICAgICAgMCwKLSAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9o
YW5kbGVkLAotICAgICAgICAwLAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19WT0lE
LAotICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMCk7Ci0KLQotICAgIC8qKgotICAgICAqIFdlYktp
dFdlYkZyYW1lOjpyZXNvdXJjZS1yZXF1ZXN0LXN0YXJ0aW5nOgotICAgICAqIEB3ZWJfZnJhbWU6
IHRoZSAjV2ViS2l0V2ViRnJhbWUgd2hvc2UgbG9hZCBkaXNwYXRjaGVkIHRoaXMgcmVxdWVzdAot
ICAgICAqIEB3ZWJfcmVzb3VyY2U6IGFuIGVtcHR5ICNXZWJLaXRXZWJSZXNvdXJjZSBvYmplY3QK
LSAgICAgKiBAcmVxdWVzdDogdGhlICNXZWJLaXROZXR3b3JrUmVxdWVzdCB0aGF0IHdpbGwgYmUg
ZGlzcGF0Y2hlZAotICAgICAqIEByZXNwb25zZTogdGhlICNXZWJLaXROZXR3b3JrUmVzcG9uc2Ug
cmVwcmVzZW50aW5nIHRoZSByZWRpcmVjdAotICAgICAqIHJlc3BvbnNlLCBpZiBhbnkKLSAgICAg
KgotICAgICAqIEVtaXR0ZWQgd2hlbiBhIHJlcXVlc3QgaXMgYWJvdXQgdG8gYmUgc2VudC4gWW91
IGNhbiBtb2RpZnkgdGhlCi0gICAgICogcmVxdWVzdCB3aGlsZSBoYW5kbGluZyB0aGlzIHNpZ25h
bC4gWW91IGNhbiBzZXQgdGhlIFVSSSBpbiB0aGUKLSAgICAgKiAjV2ViS2l0TmV0d29ya1JlcXVl
c3Qgb2JqZWN0IGl0c2VsZiwgYW5kIGFkZC9yZW1vdmUvcmVwbGFjZQotICAgICAqIGhlYWRlcnMg
dXNpbmcgdGhlICNTb3VwTWVzc2FnZSBvYmplY3QgaXQgY2FycmllcywgaWYgaXQgaXMKLSAgICAg
KiBwcmVzZW50LiBTZWUgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfbWVzc2FnZSgpLiBTZXR0
aW5nIHRoZQotICAgICAqIHJlcXVlc3QgVVJJIHRvICJhYm91dDpibGFuayIgd2lsbCBlZmZlY3Rp
dmVseSBjYXVzZSB0aGUgcmVxdWVzdAotICAgICAqIHRvIGxvYWQgbm90aGluZywgYW5kIGNhbiBi
ZSB1c2VkIHRvIGRpc2FibGUgdGhlIGxvYWRpbmcgb2YKLSAgICAgKiBzcGVjaWZpYyByZXNvdXJj
ZXMuCi0gICAgICoKLSAgICAgKiBOb3RpY2UgdGhhdCBpbmZvcm1hdGlvbiBhYm91dCBhbiBldmVu
dHVhbCByZWRpcmVjdCBpcyBhdmFpbGFibGUKLSAgICAgKiBpbiBAcmVzcG9uc2UncyAjU291cE1l
c3NhZ2UsIG5vdCBpbiB0aGUgI1NvdXBNZXNzYWdlIGNhcnJpZWQgYnkKLSAgICAgKiB0aGUgQHJl
cXVlc3QuIElmIEByZXNwb25zZSBpcyAlTlVMTCwgdGhlbiB0aGlzIGlzIG5vdCBhCi0gICAgICog
cmVkaXJlY3RlZCByZXF1ZXN0LgotICAgICAqCi0gICAgICogVGhlICNXZWJLaXRXZWJSZXNvdXJj
ZSBvYmplY3Qgd2lsbCBiZSB0aGUgc2FtZSB0aHJvdWdob3V0IGFsbAotICAgICAqIHRoZSBsaWZl
dGltZSBvZiB0aGUgcmVzb3VyY2UsIGJ1dCB0aGUgY29udGVudHMgbWF5IGNoYW5nZQotICAgICAq
IGJldHdlZW4gc2lnbmFsIGVtaXNzaW9ucy4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjcuNQot
ICAgICAqLwotICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNPVVJDRV9SRVFVRVNUX1NU
QVJUSU5HXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZyIsCi0gICAg
ICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAotICAgICAgICBHX1NJR05BTF9SVU5f
TEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAgMCwgMCwKLSAgICAgICAgd2Via2l0X21hcnNoYWxf
Vk9JRF9fT0JKRUNUX09CSkVDVF9PQkpFQ1QsCi0gICAgICAgIEdfVFlQRV9OT05FLCAzLAotICAg
ICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCi0gICAgICAgIFdFQktJVF9UWVBFX05FVFdP
UktfUkVRVUVTVCwKLSAgICAgICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVNQT05TRSk7Ci0KLSAg
ICAvKioKLSAgICAgKiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtcmVzcG9uc2UtcmVjZWl2ZWQ6
Ci0gICAgICogQHdlYl9mcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2Fz
IHJlY2VpdmVkIGZvcgotICAgICAqIEB3ZWJfcmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3Vy
Y2UgYmVpbmcgbG9hZGVkCi0gICAgICogQHJlc3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNw
b25zZSB0aGF0IHdhcyByZWNlaXZlZC4KLSAgICAgKgotICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUg
cmVzcG9uc2UgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLgotICAgICAqCi0gICAgICogU2lu
Y2U6IDEuNy41Ci0gICAgICovCi0gICAgd2Via2l0X3dlYl9mcmFtZV9zaWduYWxzW1JFU09VUkNF
X1JFU1BPTlNFX1JFQ0VJVkVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtcmVzcG9uc2UtcmVj
ZWl2ZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFtZUNsYXNzKSwKLSAgICAgICAg
R19TSUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIDAsCi0gICAgICAgIDAsIDAsCi0gICAgICAgIHdl
YmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1QsCi0gICAgICAgIEdfVFlQRV9OT05FLCAy
LAotICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsCi0gICAgICAgIFdFQktJVF9UWVBF
X05FVFdPUktfUkVTUE9OU0UpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViRnJhbWU6OnJl
c291cmNlLWxvYWQtZmluaXNoZWQ6Ci0gICAgICogQHdlYl9mcmFtZTogdGhlICNXZWJLaXRXZWJG
cmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgotICAgICAqIEB3ZWJfcmVzb3VyY2U6
IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCi0gICAgICoKLSAgICAgKiBFbWl0
dGVkIHdoZW4gYWxsIHRoZSBkYXRhIGZvciB0aGUgcmVzb3VyY2Ugd2FzIGxvYWRlZC4KLSAgICAg
KgotICAgICAqIFNpbmNlOiAxLjcuNQotICAgICAqLwotICAgIHdlYmtpdF93ZWJfZnJhbWVfc2ln
bmFsc1tSRVNPVVJDRV9MT0FEX0ZJTklTSEVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtbG9h
ZC1maW5pc2hlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGZyYW1lQ2xhc3MpLAotICAg
ICAgICBHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAgMCwgMCwKLSAgICAg
ICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKLSAgICAgICAgR19UWVBFX05PTkUs
IDEsCi0gICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJDRSk7Ci0KLSAgICAvKioKLSAgICAg
KiBXZWJLaXRXZWJGcmFtZTo6cmVzb3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2ZWQ6Ci0gICAg
ICogQHdlYl9mcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2Vp
dmVkIGZvcgotICAgICAqIEB3ZWJfcmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhh
dCB3YXMgbG9hZGVkCi0gICAgICogQGxlbmd0aF9yZWNlaXZlZDogdGhlIGFtb3VudCBvZiBkYXRh
IHJlY2VpdmVkIHNpbmNlIHRoZSBsYXN0IHNpZ25hbCBlbWlzc2lvbgotICAgICAqCi0gICAgICog
RW1pdHRlZCB3aGVuIG5ldyByZXNvdXJjZSBkYXRhIGhhcyBiZWVuIHJlY2VpdmVkLiBUaGUKLSAg
ICAgKiBAbGVuZ3RoX3JlY2VpdmVkIHZhcmlhYmxlIHN0b3JlcyB0aGUgYW1vdW50IG9mIGJ5dGVz
IHJlY2VpdmVkCi0gICAgICogc2luY2UgdGhlIGxhc3QgdGltZSB0aGlzIHNpZ25hbCB3YXMgZW1p
dHRlZC4gVGhpcyBpcyB1c2VmdWwgdG8KLSAgICAgKiBwcm92aWRlIHByb2dyZXNzIGluZm9ybWF0
aW9uIGFib3V0IHRoZSByZXNvdXJjZSBsb2FkIG9wZXJhdGlvbi4KLSAgICAgKgotICAgICAqIFNp
bmNlOiAxLjcuNQotICAgICAqLwotICAgIHdlYmtpdF93ZWJfZnJhbWVfc2lnbmFsc1tSRVNPVVJD
RV9DT05URU5UX0xFTkdUSF9SRUNFSVZFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLWNvbnRl
bnQtbGVuZ3RoLXJlY2VpdmVkIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MoZnJhbWVDbGFz
cyksCi0gICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAgICAwLCAw
LAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfSU5ULAotICAgICAgICBHX1RZ
UEVfTk9ORSwgMiwKLSAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAotICAgICAgICBH
X1RZUEVfSU5UKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYkZyYW1lOjpyZXNvdXJjZS1s
b2FkLWZhaWxlZDoKLSAgICAgKiBAd2ViX2ZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoZSBy
ZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9yCi0gICAgICogQHdlYl9yZXNvdXJjZTogdGhlICNXZWJL
aXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKLSAgICAgKiBAZXJyb3I6IHRoZSAjR0Vycm9y
IHRoYXQgd2FzIHRyaWdnZXJlZAotICAgICAqCi0gICAgICogSW52b2tlZCB3aGVuIGEgcmVzb3Vy
Y2UgZmFpbGVkIHRvIGxvYWQuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS43LjUKLSAgICAgKi8K
LSAgICB3ZWJraXRfd2ViX2ZyYW1lX3NpZ25hbHNbUkVTT1VSQ0VfTE9BRF9GQUlMRURdID0gZ19z
aWduYWxfbmV3KCJyZXNvdXJjZS1sb2FkLWZhaWxlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NM
QVNTKGZyYW1lQ2xhc3MpLAotICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwK
LSAgICAgICAgMCwgMCwKLSAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX1BPSU5U
RVIsCi0gICAgICAgIEdfVFlQRV9OT05FLCAyLAotICAgICAgICBXRUJLSVRfVFlQRV9XRUJfUkVT
T1VSQ0UsCi0gICAgICAgIEdfVFlQRV9QT0lOVEVSKTsKLQotICAgIC8qKgotICAgICAqIFdlYktp
dFdlYkZyYW1lOjppbnNlY3VyZS1jb250ZW50LXJ1bjoKLSAgICAgKiBAd2ViX2ZyYW1lOiB0aGUg
I1dlYktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9yLgotICAgICAqIEBz
ZWN1cml0eV9vcmlnaW46IHRoZSAjV2ViS2l0U2VjdXJpdHlPcmlnaW4uCi0gICAgICogQHVybDog
dGhlIHVybCBvZiB0aGUgaW5zZWN1cmUgY29udGVudC4KLSAgICAgKgotICAgICAqIEludm9rZWQg
d2hlbiBpbnNlY3VyZSBjb250ZW50IGlzIHJ1biBmcm9tIGEgc2VjdXJlIHBhZ2UuIFRoaXMgaGFw
cGVucwotICAgICAqIHdoZW4gYSBwYWdlIGxvYWRlZCB2aWEgSFRUUFMgbG9hZHMgYSBzdHlsZXNo
ZWV0LCBzY3JpcHQsIGltYWdlIG9yCi0gICAgICogaWZyYW1lIGZyb20gYW4gdW5lbmNyeXB0ZWQg
SFRUUCBVUkwuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4xMC4wCi0gICAgICovCi0gICAgd2Vi
a2l0X3dlYl9mcmFtZV9zaWduYWxzW0lOU0VDVVJFX0NPTlRFTlRfUlVOXSA9IGdfc2lnbmFsX25l
dygiaW5zZWN1cmUtY29udGVudC1ydW4iLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhmcmFt
ZUNsYXNzKSwKLSAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIDAsCi0gICAgICAg
IDAsIDAsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZPSURfX09CSkVDVF9TVFJJTkcsCi0gICAg
ICAgIEdfVFlQRV9OT05FLCAyLAotICAgICAgICBXRUJLSVRfVFlQRV9TRUNVUklUWV9PUklHSU4s
Ci0gICAgICAgIEdfVFlQRV9TVFJJTkcpOwotCi0gICAgLyoKLSAgICAgKiBpbXBsZW1lbnRhdGlv
bnMgb2YgdmlydHVhbCBtZXRob2RzCi0gICAgICovCi0gICAgR09iamVjdENsYXNzKiBvYmplY3RD
bGFzcyA9IEdfT0JKRUNUX0NMQVNTKGZyYW1lQ2xhc3MpOwotICAgIG9iamVjdENsYXNzLT5maW5h
bGl6ZSA9IHdlYmtpdF93ZWJfZnJhbWVfZmluYWxpemU7Ci0gICAgb2JqZWN0Q2xhc3MtPmdldF9w
cm9wZXJ0eSA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Byb3BlcnR5OwotCi0gICAgLyoKLSAgICAg
KiBwcm9wZXJ0aWVzCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eShvYmplY3RDbGFzcywgUFJPUF9OQU1FLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygibmFtZSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIk5hbWUiKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIG5hbWUg
b2YgdGhlIGZyYW1lIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9USVRMRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoInRpdGxl
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiVGl0bGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiVGhlIGRvY3VtZW50IHRpdGxlIG9mIHRoZSBmcmFtZSIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
RUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkob2JqZWN0Q2xhc3MsIFBST1BfVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygidXJpIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVVJJIiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBjdXJy
ZW50IFVSSSBvZiB0aGUgY29udGVudHMgZGlzcGxheWVkIGJ5IHRoZSBmcmFtZSIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0V2ViRnJhbWU6bG9h
ZC1zdGF0dXM6Ci0gICAgKgotICAgICogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBzdGF0dXMgb2Yg
dGhlIGxvYWQuCi0gICAgKgotICAgICogU2luY2U6IDEuMS43Ci0gICAgKi8KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX0xPQURfU1RBVFVTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2VudW0oImxv
YWQtc3RhdHVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJMb2FkIFN0YXR1cyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBzdGF0dXMgb2Yg
dGhlIGxvYWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV0VCS0lUX1RZUEVfTE9BRF9TVEFUVVMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfTE9BRF9GSU5JU0hFRCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJ
VF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViRnJhbWU6aG9y
aXpvbnRhbC1zY3JvbGxiYXItcG9saWN5OgotICAgICAqCi0gICAgICogRGV0ZXJtaW5lcyB0aGUg
Y3VycmVudCBwb2xpY3kgZm9yIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBvZgotICAgICAqIHRo
ZSBmcmFtZS4gRm9yIHRoZSBtYWluIGZyYW1lLCBtYWtlIHN1cmUgdG8gc2V0IHRoZSBzYW1lIHBv
bGljeQotICAgICAqIG9uIHRoZSBzY3JvbGxhYmxlIHdpZGdldCBjb250YWluaW5nIHRoZSAjV2Vi
S2l0V2ViVmlldywgdW5sZXNzCi0gICAgICogeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLgot
ICAgICAqCi0gICAgICogU2luY2U6IDEuMS4xNAotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfSE9SSVpPTlRBTF9TQ1JPTExCQVJf
UE9MSUNZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVj
X2VudW0oImhvcml6b250YWwtc2Nyb2xsYmFyLXBvbGljeSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJIb3Jpem9udGFsIFNjcm9sbGJh
ciBQb2xpY3kiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF8oIkRldGVybWluZXMgdGhlIGN1cnJlbnQgcG9saWN5IGZvciB0aGUgaG9yaXpv
bnRhbCBzY3JvbGxiYXIgb2YgdGhlIGZyYW1lLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1RZUEVfUE9MSUNZX1RZUEUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfUE9M
SUNZX0FVVE9NQVRJQywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgLyoqCi0gICAgICog
V2ViS2l0V2ViRnJhbWU6dmVydGljYWwtc2Nyb2xsYmFyLXBvbGljeToKLSAgICAgKgotICAgICAq
IERldGVybWluZXMgdGhlIGN1cnJlbnQgcG9saWN5IGZvciB0aGUgdmVydGljYWwgc2Nyb2xsYmFy
IG9mCi0gICAgICogdGhlIGZyYW1lLiBGb3IgdGhlIG1haW4gZnJhbWUsIG1ha2Ugc3VyZSB0byBz
ZXQgdGhlIHNhbWUgcG9saWN5Ci0gICAgICogb24gdGhlIHNjcm9sbGFibGUgd2lkZ2V0IGNvbnRh
aW5pbmcgdGhlICNXZWJLaXRXZWJWaWV3LCB1bmxlc3MKLSAgICAgKiB5b3Uga25vdyB3aGF0IHlv
dSBhcmUgZG9pbmcuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4xLjE0Ci0gICAgICovCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9WRVJUSUNB
TF9TQ1JPTExCQVJfUE9MSUNZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX2VudW0oInZlcnRpY2FsLXNjcm9sbGJhci1wb2xpY3kiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVmVydGljYWwg
U2Nyb2xsYmFyIFBvbGljeSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXygiRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwb2xpY3kgZm9yIHRo
ZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgb2YgdGhlIGZyYW1lLiIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1RZUEVfUE9MSUNZX1RZUEUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
VEtfUE9MSUNZX0FVVE9NQVRJQywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ190eXBl
X2NsYXNzX2FkZF9wcml2YXRlKGZyYW1lQ2xhc3MsIHNpemVvZihXZWJLaXRXZWJGcmFtZVByaXZh
dGUpKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9mcmFtZV9pbml0KFdlYktpdFdlYkZy
YW1lKiBmcmFtZSkKLXsKLSAgICBXZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBHX1RZUEVf
SU5TVEFOQ0VfR0VUX1BSSVZBVEUoZnJhbWUsIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwgV2ViS2l0
V2ViRnJhbWVQcml2YXRlKTsKLQotICAgIC8vIFRPRE86IE1vdmUgY29uc3RydWN0b3IgY29kZSBo
ZXJlLgotICAgIGZyYW1lLT5wcml2ID0gcHJpdjsKLX0KLQotCi0vKioKLSAqIHdlYmtpdF93ZWJf
ZnJhbWVfbmV3OgotICogQHdlYl92aWV3OiB0aGUgY29udHJvbGxpbmcgI1dlYktpdFdlYlZpZXcK
LSAqCi0gKiBDcmVhdGVzIGEgbmV3ICNXZWJLaXRXZWJGcmFtZSBpbml0aWFsaXplZCB3aXRoIGEg
Y29udHJvbGxpbmcgI1dlYktpdFdlYlZpZXcuCi0gKgotICogUmV0dXJuczogYSBuZXcgI1dlYktp
dFdlYkZyYW1lCi0gKgotICogRGVwcmVjYXRlZDogMS4wLjI6ICNXZWJLaXRXZWJGcmFtZSBjYW4g
b25seSBiZSB1c2VkIHRvIGluc3BlY3QgZXhpc3RpbmcKLSAqIGZyYW1lcy4KLSAqKi8KLVdlYktp
dFdlYkZyYW1lKiB3ZWJraXRfd2ViX2ZyYW1lX25ldyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQot
ewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwg
MCk7Ci0KLSAgICBXZWJLaXRXZWJGcmFtZSogZnJhbWUgPSBXRUJLSVRfV0VCX0ZSQU1FKGdfb2Jq
ZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfRlJBTUUsIE5VTEwpKTsKLSAgICBXZWJLaXRXZWJGcmFt
ZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSog
dmlld1ByaXYgPSB3ZWJWaWV3LT5wcml2OwotCi0gICAgcHJpdi0+d2ViVmlldyA9IHdlYlZpZXc7
Ci0gICAgcHJpdi0+Y29yZUZyYW1lID0gJnZpZXdQcml2LT5jb3JlUGFnZS0+bWFpbkZyYW1lKCk7
Ci0gICAgc3RhdGljX2Nhc3Q8V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudCo+KCZ2aWV3UHJpdi0+
Y29yZVBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLmNsaWVudCgpKS0+c2V0V2ViRnJhbWUoZnJh
bWUpOwotICAgIHByaXYtPmNvcmVGcmFtZS0+aW5pdCgpOwotCi0gICAgcHJpdi0+b3JpZ2luID0g
MDsKLQotICAgIHJldHVybiBmcmFtZTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF90aXRsZToKLSAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKLSAqCi0gKiBSZXR1cm5zIHRo
ZSBAZnJhbWUncyBkb2N1bWVudCB0aXRsZQotICoKLSAqIFJldHVybiB2YWx1ZTogdGhlIHRpdGxl
IG9mIEBmcmFtZQotICovCi1jb25zdCBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9nZXRfdGl0bGUo
V2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfRlJBTUUoZnJhbWUpLCAwKTsKLQotICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSog
cHJpdiA9IGZyYW1lLT5wcml2OwotICAgIHJldHVybiBwcml2LT50aXRsZTsKLX0KLQotLyoqCi0g
KiB3ZWJraXRfd2ViX2ZyYW1lX2dldF91cmk6Ci0gKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1l
Ci0gKgotICogUmV0dXJucyB0aGUgY3VycmVudCBVUkkgb2YgdGhlIGNvbnRlbnRzIGRpc3BsYXll
ZCBieSB0aGUgQGZyYW1lCi0gKgotICogUmV0dXJuIHZhbHVlOiB0aGUgVVJJIG9mIEBmcmFtZQot
ICovCi1jb25zdCBnY2hhciogd2Via2l0X3dlYl9mcmFtZV9nZXRfdXJpKFdlYktpdFdlYkZyYW1l
KiBmcmFtZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1F
KGZyYW1lKSwgMCk7Ci0KLSAgICBXZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+
cHJpdjsKLSAgICByZXR1cm4gcHJpdi0+dXJpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X3dlYl92aWV3OgotICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQotICoKLSAqIFJl
dHVybnMgdGhlICNXZWJLaXRXZWJWaWV3IHRoYXQgbWFuYWdlcyB0aGlzICNXZWJLaXRXZWJGcmFt
ZS4KLSAqCi0gKiBUaGUgI1dlYktpdFdlYlZpZXcgcmV0dXJuZWQgbWFuYWdlcyB0aGUgZW50aXJl
IGhpZXJhcmNoeSBvZiAjV2ViS2l0V2ViRnJhbWUKLSAqIG9iamVjdHMgdGhhdCBjb250YWlucyBA
ZnJhbWUuCi0gKgotICogUmV0dXJuIHZhbHVlOiAodHJhbnNmZXIgbm9uZSk6IHRoZSAjV2ViS2l0
V2ViVmlldyB0aGF0IG1hbmFnZXMgQGZyYW1lCi0gKi8KLVdlYktpdFdlYlZpZXcqIHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKLXsKLSAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgMCk7Ci0KLSAgICBX
ZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKLSAgICByZXR1cm4gcHJp
di0+d2ViVmlldzsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9uYW1lOgotICog
QGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQotICoKLSAqIFJldHVybnMgdGhlIEBmcmFtZSdzIG5h
bWUKLSAqCi0gKiBSZXR1cm4gdmFsdWU6IHRoZSBuYW1lIG9mIEBmcmFtZS4gVGhpcyBtZXRob2Qg
d2lsbCByZXR1cm4gTlVMTCBpZgotICogdGhlICNXZWJLaXRXZWJGcmFtZSBpcyBpbnZhbGlkIG9y
IGFuIGVtcHR5IHN0cmluZyBpZiBpdCBpcyBub3QgYmFja2VkCi0gKiBieSBhIGxpdmUgV2ViQ29y
ZSBmcmFtZS4KLSAqLwotY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X25hbWUoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19XRUJfRlJBTUUoZnJhbWUpLCAwKTsKLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFt
ZSk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiAiIjsKLQotICAgIFdlYktp
dFdlYkZyYW1lUHJpdmF0ZSogcHJpdiA9IGZyYW1lLT5wcml2OwotICAgIENTdHJpbmcgZnJhbWVO
YW1lID0gY29yZUZyYW1lLT50cmVlKCkudW5pcXVlTmFtZSgpLnN0cmluZygpLnV0ZjgoKTsKLSAg
ICBpZiAoIWdfc3RyY21wMChmcmFtZU5hbWUuZGF0YSgpLCBwcml2LT5uYW1lKSkKLSAgICAgICAg
cmV0dXJuIHByaXYtPm5hbWU7Ci0KLSAgICBnX2ZyZWUocHJpdi0+bmFtZSk7Ci0gICAgcHJpdi0+
bmFtZSA9IGdfc3RyZHVwKGZyYW1lTmFtZS5kYXRhKCkpOwotICAgIHJldHVybiBwcml2LT5uYW1l
OwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3BhcmVudDoKLSAqIEBmcmFtZTog
YSAjV2ViS2l0V2ViRnJhbWUKLSAqCi0gKiBSZXR1cm5zIHRoZSBAZnJhbWUncyBwYXJlbnQgZnJh
bWUsIG9yICVOVUxMIGlmIGl0IGhhcyBub25lLgotICoKLSAqIFJldHVybiB2YWx1ZTogKHRyYW5z
ZmVyIG5vbmUpOiB0aGUgcGFyZW50ICNXZWJLaXRXZWJGcmFtZSBvciAlTlVMTCBpbiBjYXNlIHRo
ZXJlIGlzIG5vbmUKLSAqLwotV2ViS2l0V2ViRnJhbWUqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Bh
cmVudChXZWJLaXRXZWJGcmFtZSogZnJhbWUpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSksIDApOwotCi0gICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoZnJhbWUpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm4gMDsKLQot
ICAgIHJldHVybiBraXQoY29yZUZyYW1lLT50cmVlKCkucGFyZW50KCkpOwotfQotCi0vKioKLSAq
IHdlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmk6Ci0gKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1l
Ci0gKiBAdXJpOiBhbiBVUkkgc3RyaW5nCi0gKgotICogUmVxdWVzdHMgbG9hZGluZyBvZiB0aGUg
c3BlY2lmaWVkIFVSSSBzdHJpbmcuCi0gKgotICogU2luY2U6IDEuMS4xCi0gKi8KLXZvaWQgd2Vi
a2l0X3dlYl9mcmFtZV9sb2FkX3VyaShXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNvbnN0IGdjaGFy
KiB1cmkpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1l
KSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCh1cmkpOwotCi0gICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoZnJhbWUpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBjb3JlRnJhbWUtPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdChjb3JlRnJhbWUsIFJl
c291cmNlUmVxdWVzdChVUkwoVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodXJpKSkpKSk7Ci19Ci0K
LXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKFdlYktpdFdlYkZyYW1lKiBm
cmFtZSwgY29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNvbnN0IGdjaGFyKiBtaW1lVHlwZSwgY29uc3Qg
Z2NoYXIqIGVuY29kaW5nLCBjb25zdCBnY2hhciogYmFzZVVSTCwgY29uc3QgZ2NoYXIqIHVucmVh
Y2hhYmxlVVJMKQotewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKLSAgICBB
U1NFUlQoY29yZUZyYW1lKTsKLQotICAgIFVSTCBiYXNlS1VSTCA9IGJhc2VVUkwgPyBVUkwoVVJM
KCksIFN0cmluZzo6ZnJvbVVURjgoYmFzZVVSTCkpIDogYmxhbmtVUkwoKTsKLQotICAgIFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KGJhc2VLVVJMKTsKLQotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IHNoYXJlZEJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGNvbnRlbnQsIHN0cmxlbihjb250
ZW50KSk7Ci0gICAgU3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoc2hhcmVkQnVmZmVyLnJl
bGVhc2UoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW1lVHlwZSA/IFN0
cmluZzo6ZnJvbVVURjgobWltZVR5cGUpIDogU3RyaW5nOjpmcm9tVVRGOCgidGV4dC9odG1sIiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcgPyBTdHJpbmc6OmZy
b21VVEY4KGVuY29kaW5nKSA6IFN0cmluZzo6ZnJvbVVURjgoIlVURi04IiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVVJMKFVSTCgpLCBTdHJpbmc6OmZyb21VVEY4KHVucmVh
Y2hhYmxlVVJMKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJMKFVSTCgp
LCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hhYmxlVVJMKSkpOwotCi0gICAgY29yZUZyYW1lLT5s
b2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoY29yZUZyYW1lLCByZXF1ZXN0LCBzdWJzdGl0
dXRlRGF0YSkpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9zdHJpbmc6Ci0g
KiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCi0gKiBAY29udGVudDogYW4gVVJJIHN0cmluZwot
ICogQG1pbWVfdHlwZTogdGhlIE1JTUUgdHlwZSwgb3IgJU5VTEwKLSAqIEBlbmNvZGluZzogdGhl
IGVuY29kaW5nLCBvciAlTlVMTAotICogQGJhc2VfdXJpOiB0aGUgYmFzZSBVUkkgZm9yIHJlbGF0
aXZlIGxvY2F0aW9ucwotICoKLSAqIFJlcXVlc3RzIGxvYWRpbmcgb2YgdGhlIGdpdmVuIEBjb250
ZW50IHdpdGggdGhlIHNwZWNpZmllZCBAbWltZV90eXBlLAotICogQGVuY29kaW5nIGFuZCBAYmFz
ZV91cmkuCi0gKgotICogSWYgQG1pbWVfdHlwZSBpcyAlTlVMTCwgInRleHQvaHRtbCIgaXMgYXNz
dW1lZC4KLSAqCi0gKiBJZiBAZW5jb2RpbmcgaXMgJU5VTEwsICJVVEYtOCIgaXMgYXNzdW1lZC4K
LSAqCi0gKiBTaW5jZTogMS4xLjEKLSAqLwotdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX2xvYWRfc3Ry
aW5nKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNvbnN0IGdj
aGFyKiBjb250ZW50TWltZVR5cGUsIGNvbnN0IGdjaGFyKiBjb250ZW50RW5jb2RpbmcsIGNvbnN0
IGdjaGFyKiBiYXNlVXJpKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9G
UkFNRShmcmFtZSkpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udGVudCk7Ci0KLSAgICB3ZWJr
aXRfd2ViX2ZyYW1lX2xvYWRfZGF0YShmcmFtZSwgY29udGVudCwgY29udGVudE1pbWVUeXBlLCBj
b250ZW50RW5jb2RpbmcsIGJhc2VVcmksIDApOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZnJh
bWVfbG9hZF9hbHRlcm5hdGVfc3RyaW5nOgotICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQot
ICogQGNvbnRlbnQ6IHRoZSBhbHRlcm5hdGUgY29udGVudCB0byBkaXNwbGF5IGFzIHRoZSBtYWlu
IHBhZ2Ugb2YgdGhlIEBmcmFtZQotICogQGJhc2VfdXJsOiB0aGUgYmFzZSBVUkkgZm9yIHJlbGF0
aXZlIGxvY2F0aW9ucwotICogQHVucmVhY2hhYmxlX3VybDogdGhlIFVSTCBmb3IgdGhlIGFsdGVy
bmF0ZSBwYWdlIGNvbnRlbnQKLSAqCi0gKiBSZXF1ZXN0IGxvYWRpbmcgb2YgYW4gYWx0ZXJuYXRl
IGNvbnRlbnQgZm9yIGEgVVJMIHRoYXQgaXMgdW5yZWFjaGFibGUuCi0gKiBVc2luZyB0aGlzIG1l
dGhvZCB3aWxsIHByZXNlcnZlIHRoZSBiYWNrLWZvcndhcmQgbGlzdC4gVGhlIFVSSSBwYXNzZWQg
aW4KLSAqIEBiYXNlX3VybCBoYXMgdG8gYmUgYW4gYWJzb2x1dGUgVVJJLgotICoKLSAqIFNpbmNl
OiAxLjEuNgotICovCi12b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9hbHRlcm5hdGVfc3RyaW5n
KFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNvbnN0IGdjaGFy
KiBiYXNlVVJMLCBjb25zdCBnY2hhciogdW5yZWFjaGFibGVVUkwpCi17Ci0gICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSk7Ci0gICAgZ19yZXR1cm5faWZfZmFp
bChjb250ZW50KTsKLQotICAgIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9kYXRhKGZyYW1lLCBjb250
ZW50LCAwLCAwLCBiYXNlVVJMLCB1bnJlYWNoYWJsZVVSTCk7Ci19Ci0KLS8qKgotICogd2Via2l0
X3dlYl9mcmFtZV9sb2FkX3JlcXVlc3Q6Ci0gKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCi0g
KiBAcmVxdWVzdDogYSAjV2ViS2l0TmV0d29ya1JlcXVlc3QKLSAqCi0gKiBDb25uZWN0cyB0byBh
IGdpdmVuIFVSSSBieSBpbml0aWF0aW5nIGFuIGFzeW5jaHJvbm91cyBjbGllbnQgcmVxdWVzdC4K
LSAqCi0gKiBDcmVhdGVzIGEgcHJvdmlzaW9uYWwgZGF0YSBzb3VyY2UgdGhhdCB3aWxsIHRyYW5z
aXRpb24gdG8gYSBjb21taXR0ZWQgZGF0YQotICogc291cmNlIG9uY2UgYW55IGRhdGEgaGFzIGJl
ZW4gcmVjZWl2ZWQuIFVzZSB3ZWJraXRfd2ViX2ZyYW1lX3N0b3BfbG9hZGluZygpIHRvCi0gKiBz
dG9wIHRoZSBsb2FkLiBUaGlzIGZ1bmN0aW9uIGlzIHR5cGljYWxseSBpbnZva2VkIG9uIHRoZSBt
YWluIGZyYW1lLgotICovCi12b2lkIHdlYmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0KFdlYktp
dFdlYkZyYW1lKiBmcmFtZSwgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAg
Z19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSk7Ci0gICAgZ19yZXR1
cm5faWZfZmFpbChXRUJLSVRfSVNfTkVUV09SS19SRVFVRVNUKHJlcXVlc3QpKTsKLQotICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVl
c3QoY29yZUZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBjb3JlKHJlcXVlc3Qp
KSk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9mcmFtZV9zdG9wX2xvYWRpbmc6Ci0gKiBAZnJh
bWU6IGEgI1dlYktpdFdlYkZyYW1lCi0gKgotICogU3RvcHMgYW55IHBlbmRpbmcgbG9hZHMgb24g
QGZyYW1lJ3MgZGF0YSBzb3VyY2UsIGFuZCB0aG9zZSBvZiBpdHMgY2hpbGRyZW4uCi0gKi8KLXZv
aWQgd2Via2l0X3dlYl9mcmFtZV9zdG9wX2xvYWRpbmcoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQot
ewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSkpOwotCi0g
ICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOwotICAgIGlmICghY29yZUZyYW1lKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBjb3JlRnJhbWUtPmxvYWRlcigpLnN0b3BBbGxMb2FkZXJz
KCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9mcmFtZV9yZWxvYWQ6Ci0gKiBAZnJhbWU6IGEg
I1dlYktpdFdlYkZyYW1lCi0gKgotICogUmVsb2FkcyB0aGUgaW5pdGlhbCByZXF1ZXN0LgotICov
Ci12b2lkIHdlYmtpdF93ZWJfZnJhbWVfcmVsb2FkKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKLXsK
LSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpKTsKLQotICAg
IEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgY29yZUZyYW1lLT5sb2FkZXIoKS5yZWxvYWQoKTsKLX0KLQot
LyoqCi0gKiB3ZWJraXRfd2ViX2ZyYW1lX2ZpbmRfZnJhbWU6Ci0gKiBAZnJhbWU6IGEgI1dlYktp
dFdlYkZyYW1lCi0gKiBAbmFtZTogdGhlIG5hbWUgb2YgdGhlIGZyYW1lIHRvIGJlIGZvdW5kCi0g
KgotICogRm9yIHByZS1kZWZpbmVkIG5hbWVzLCByZXR1cm5zIEBmcmFtZSBpZiBAbmFtZSBpcyAi
X3NlbGYiIG9yICJfY3VycmVudCIsCi0gKiByZXR1cm5zIEBmcmFtZSdzIHBhcmVudCBmcmFtZSBp
ZiBAbmFtZSBpcyAiX3BhcmVudCIsIGFuZCByZXR1cm5zIHRoZSBtYWluCi0gKiBmcmFtZSBpZiBA
bmFtZSBpcyAiX3RvcCIuIEFsc28gcmV0dXJucyBAZnJhbWUgaWYgaXQgaXMgdGhlIG1haW4gZnJh
bWUgYW5kCi0gKiBAbmFtZSBpcyBlaXRoZXIgIl9wYXJlbnQiIG9yICJfdG9wIi4gRm9yIG90aGVy
IG5hbWVzLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMKLSAqIHRoZSBmaXJzdCBmcmFtZSB0aGF0IG1h
dGNoZXMgQG5hbWUuIFRoaXMgZnVuY3Rpb24gc2VhcmNoZXMgQGZyYW1lIGFuZCBpdHMKLSAqIGRl
c2NlbmRlbnRzIGZpcnN0LCB0aGVuIEBmcmFtZSdzIHBhcmVudCBhbmQgaXRzIGNoaWxkcmVuIG1v
dmluZyB1cCB0aGUKLSAqIGhpZXJhcmNoeSB1bnRpbCBhIG1hdGNoIGlzIGZvdW5kLiBJZiBubyBt
YXRjaCBpcyBmb3VuZCBpbiBAZnJhbWUncwotICogaGllcmFyY2h5LCB0aGlzIGZ1bmN0aW9uIHdp
bGwgc2VhcmNoIGZvciBhIG1hdGNoaW5nIGZyYW1lIGluIG90aGVyIG1haW4KLSAqIGZyYW1lIGhp
ZXJhcmNoaWVzLiBSZXR1cm5zICVOVUxMIGlmIG5vIG1hdGNoIGlzIGZvdW5kLgotICoKLSAqIFJl
dHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiB0aGUgZm91bmQgI1dlYktpdFdlYkZyYW1lIG9y
ICVOVUxMIGluIGNhc2Ugbm9uZSBpcyBmb3VuZAotICovCi1XZWJLaXRXZWJGcmFtZSogd2Via2l0
X3dlYl9mcmFtZV9maW5kX2ZyYW1lKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIq
IG5hbWUpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShm
cmFtZSksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKG5hbWUsIDApOwotCi0gICAgRnJh
bWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIFN0cmluZyBuYW1lU3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChu
YW1lKTsKLSAgICByZXR1cm4ga2l0KGNvcmVGcmFtZS0+dHJlZSgpLmZpbmQoQXRvbWljU3RyaW5n
KG5hbWVTdHJpbmcpKSk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFs
X2NvbnRleHQ6Ci0gKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCi0gKgotICogR2V0cyB0aGUg
Z2xvYmFsIEphdmFTY3JpcHQgZXhlY3V0aW9uIGNvbnRleHQuIFVzZSB0aGlzIGZ1bmN0aW9uIHRv
IGJyaWRnZQotICogYmV0d2VlbiB0aGUgV2ViS2l0IGFuZCBKYXZhU2NyaXB0Q29yZSBBUElzLgot
ICoKLSAqIFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiB0aGUgZ2xvYmFsIEphdmFTY3Jp
cHQgY29udGV4dCAjSlNHbG9iYWxDb250ZXh0UmVmCi0gKi8KLUpTR2xvYmFsQ29udGV4dFJlZiB3
ZWJraXRfd2ViX2ZyYW1lX2dldF9nbG9iYWxfY29udGV4dChXZWJLaXRXZWJGcmFtZSogZnJhbWUp
Ci17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9GUkFNRShmcmFtZSks
IDApOwotCi0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOwotICAgIGlmICghY29y
ZUZyYW1lKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiB0b0dsb2JhbFJlZihjb3Jl
RnJhbWUtPnNjcmlwdCgpLmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSktPmds
b2JhbEV4ZWMoKSk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZGF0YV9zb3Vy
Y2U6Ci0gKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCi0gKgotICogUmV0dXJucyB0aGUgY29t
bWl0dGVkIGRhdGEgc291cmNlLgotICoKLSAqIFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUp
OiB0aGUgY29tbWl0dGVkICNXZWJLaXRXZWJEYXRhU291cmNlLgotICoKLSAqIFNpbmNlOiAxLjEu
MTQKLSAqLwotV2ViS2l0V2ViRGF0YVNvdXJjZSogd2Via2l0X3dlYl9mcmFtZV9nZXRfZGF0YV9z
b3VyY2UoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCAwKTsKLQotICAgIEZyYW1lKiBjb3JlRnJhbWUg
PSBjb3JlKGZyYW1lKTsKLSAgICByZXR1cm4gd2Via2l0X3dlYl9mcmFtZV9nZXRfZGF0YV9zb3Vy
Y2VfZnJvbV9jb3JlX2xvYWRlcihjb3JlRnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkp
OwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Byb3Zpc2lvbmFsX2RhdGFfc291
cmNlOgotICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQotICoKLSAqIFlvdSB1c2UgdGhlIHdl
YmtpdF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0IG1ldGhvZCB0byBpbml0aWF0ZSBhIHJlcXVlc3Qg
dGhhdAotICogY3JlYXRlcyBhIHByb3Zpc2lvbmFsIGRhdGEgc291cmNlLiBUaGUgcHJvdmlzaW9u
YWwgZGF0YSBzb3VyY2Ugd2lsbAotICogdHJhbnNpdGlvbiB0byBhIGNvbW1pdHRlZCBkYXRhIHNv
dXJjZSBvbmNlIGFueSBkYXRhIGhhcyBiZWVuIHJlY2VpdmVkLiBVc2UKLSAqIHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X2RhdGFfc291cmNlIHRvIGdldCB0aGUgY29tbWl0dGVkIGRhdGEgc291cmNlLgot
ICoKLSAqIFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiB0aGUgcHJvdmlzaW9uYWwgI1dl
YktpdFdlYkRhdGFTb3VyY2Ugb3IgJU5VTEwgaWYgYSBsb2FkCi0gKiByZXF1ZXN0IGlzIG5vdCBp
biBwcm9ncmVzcy4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLVdlYktpdFdlYkRhdGFTb3Vy
Y2UqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Byb3Zpc2lvbmFsX2RhdGFfc291cmNlKFdlYktpdFdl
YkZyYW1lKiBmcmFtZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X0ZSQU1FKGZyYW1lKSwgMCk7Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7
Ci0gICAgcmV0dXJuIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RhdGFfc291cmNlX2Zyb21fY29yZV9s
b2FkZXIoY29yZUZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkpOwot
fQotCi1zdGF0aWMgdm9pZCBiZWdpbl9wcmludF9jYWxsYmFjayhHdGtQcmludE9wZXJhdGlvbiog
b3AsIEd0a1ByaW50Q29udGV4dCogY29udGV4dCwgZ3BvaW50ZXIgdXNlcl9kYXRhKQotewotICAg
IFByaW50Q29udGV4dCogcHJpbnRDb250ZXh0ID0gcmVpbnRlcnByZXRfY2FzdDxQcmludENvbnRl
eHQqPih1c2VyX2RhdGEpOwotCi0gICAgZmxvYXQgd2lkdGggPSBndGtfcHJpbnRfY29udGV4dF9n
ZXRfd2lkdGgoY29udGV4dCk7Ci0gICAgZmxvYXQgaGVpZ2h0ID0gZ3RrX3ByaW50X2NvbnRleHRf
Z2V0X2hlaWdodChjb250ZXh0KTsKLSAgICBGbG9hdFJlY3QgcHJpbnRSZWN0ID0gRmxvYXRSZWN0
KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwotCi0gICAgcHJpbnRDb250ZXh0LT5iZWdpbih3aWR0aCk7
Ci0KLSAgICAvLyBUT0RPOiBNYXJnaW4gYWRqdXN0bWVudHMgYW5kIGhlYWRlci9mb290ZXIgc3Vw
cG9ydAotICAgIGZsb2F0IGhlYWRlckhlaWdodCA9IDA7Ci0gICAgZmxvYXQgZm9vdGVySGVpZ2h0
ID0gMDsKLSAgICBmbG9hdCBwYWdlSGVpZ2h0OyAvLyBoZWlnaHQgb2YgdGhlIHBhZ2UgYWRqdXN0
ZWQgYnkgbWFyZ2lucwotICAgIHByaW50Q29udGV4dC0+Y29tcHV0ZVBhZ2VSZWN0cyhwcmludFJl
Y3QsIGhlYWRlckhlaWdodCwgZm9vdGVySGVpZ2h0LCAxLjAsIHBhZ2VIZWlnaHQpOwotICAgIGd0
a19wcmludF9vcGVyYXRpb25fc2V0X25fcGFnZXMob3AsIHByaW50Q29udGV4dC0+cGFnZUNvdW50
KCkpOwotfQotCi1zdGF0aWMgdm9pZCBkcmF3X3BhZ2VfY2FsbGJhY2soR3RrUHJpbnRPcGVyYXRp
b24qLCBHdGtQcmludENvbnRleHQqIGd0a1ByaW50Q29udGV4dCwgZ2ludCBwYWdlTnVtYmVyLCBQ
cmludENvbnRleHQqIGNvcmVQcmludENvbnRleHQpCi17Ci0gICAgaWYgKHBhZ2VOdW1iZXIgPj0g
c3RhdGljX2Nhc3Q8Z2ludD4oY29yZVByaW50Q29udGV4dC0+cGFnZUNvdW50KCkpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBjYWlyb190KiBjciA9IGd0a19wcmludF9jb250ZXh0X2dldF9jYWly
b19jb250ZXh0KGd0a1ByaW50Q29udGV4dCk7Ci0gICAgZmxvYXQgcGFnZVdpZHRoID0gZ3RrX3By
aW50X2NvbnRleHRfZ2V0X3dpZHRoKGd0a1ByaW50Q29udGV4dCk7Ci0KLSAgICBQbGF0Zm9ybUNv
bnRleHRDYWlybyBwbGF0Zm9ybUNvbnRleHQoY3IpOwotICAgIEdyYXBoaWNzQ29udGV4dCBncmFw
aGljc0NvbnRleHQoJnBsYXRmb3JtQ29udGV4dCk7Ci0gICAgY29yZVByaW50Q29udGV4dC0+c3Bv
b2xQYWdlKGdyYXBoaWNzQ29udGV4dCwgcGFnZU51bWJlciwgcGFnZVdpZHRoKTsKLX0KLQotc3Rh
dGljIHZvaWQgZW5kX3ByaW50X2NhbGxiYWNrKEd0a1ByaW50T3BlcmF0aW9uKiwgR3RrUHJpbnRD
b250ZXh0KiwgZ3BvaW50ZXIgdXNlcl9kYXRhKQotewotICAgIFByaW50Q29udGV4dCogcHJpbnRD
b250ZXh0ID0gcmVpbnRlcnByZXRfY2FzdDxQcmludENvbnRleHQqPih1c2VyX2RhdGEpOwotICAg
IHByaW50Q29udGV4dC0+ZW5kKCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9mcmFtZV9wcmlu
dF9mdWxsOgotICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZSB0byBiZSBwcmludGVkCi0gKiBA
b3BlcmF0aW9uOiB0aGUgI0d0a1ByaW50T3BlcmF0aW9uIHRvIGJlIGNhcnJpZWQKLSAqIEBhY3Rp
b246IHRoZSAjR3RrUHJpbnRPcGVyYXRpb25BY3Rpb24gdG8gYmUgcGVyZm9ybWVkCi0gKiBAZXJy
b3I6ICNHRXJyb3IgZm9yIGVycm9yIHJldHVybgotICoKLSAqIFByaW50cyB0aGUgZ2l2ZW4gI1dl
YktpdFdlYkZyYW1lLCB1c2luZyB0aGUgZ2l2ZW4gI0d0a1ByaW50T3BlcmF0aW9uCi0gKiBhbmQg
I0d0a1ByaW50T3BlcmF0aW9uQWN0aW9uLiBUaGlzIGZ1bmN0aW9uIHdyYXBzIGEgY2FsbCB0bwot
ICogZ3RrX3ByaW50X29wZXJhdGlvbl9ydW4oKSBmb3IgcHJpbnRpbmcgdGhlIGNvbnRlbnRzIG9m
IHRoZQotICogI1dlYktpdFdlYkZyYW1lLgotICoKLSAqIFJldHVybnM6IFRoZSAjR3RrUHJpbnRP
cGVyYXRpb25SZXN1bHQgc3BlY2lmeWluZyB0aGUgcmVzdWx0IG9mIHRoaXMgb3BlcmF0aW9uLgot
ICoKLSAqIFNpbmNlOiAxLjEuNQotICovCi1HdGtQcmludE9wZXJhdGlvblJlc3VsdCB3ZWJraXRf
d2ViX2ZyYW1lX3ByaW50X2Z1bGwoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBHdGtQcmludE9wZXJh
dGlvbiogb3BlcmF0aW9uLCBHdGtQcmludE9wZXJhdGlvbkFjdGlvbiBhY3Rpb24sIEdFcnJvcioq
IGVycm9yKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUo
ZnJhbWUpLCBHVEtfUFJJTlRfT1BFUkFUSU9OX1JFU1VMVF9FUlJPUik7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoR1RLX0lTX1BSSU5UX09QRVJBVElPTihvcGVyYXRpb24pLCBHVEtfUFJJTlRf
T1BFUkFUSU9OX1JFU1VMVF9FUlJPUik7Ci0KLSAgICBHdGtXaWRnZXQqIHRvcExldmVsID0gZ3Rr
X3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJf
dmlldyhmcmFtZSkpKTsKLSAgICBpZiAoIXdpZGdldElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyh0
b3BMZXZlbCkpCi0gICAgICAgIHRvcExldmVsID0gMDsKLQotICAgIEZyYW1lKiBjb3JlRnJhbWUg
PSBjb3JlKGZyYW1lKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIEdUS19Q
UklOVF9PUEVSQVRJT05fUkVTVUxUX0VSUk9SOwotCi0gICAgUHJpbnRDb250ZXh0IHByaW50Q29u
dGV4dChjb3JlRnJhbWUpOwotCi0gICAgZ19zaWduYWxfY29ubmVjdChvcGVyYXRpb24sICJiZWdp
bi1wcmludCIsIEdfQ0FMTEJBQ0soYmVnaW5fcHJpbnRfY2FsbGJhY2spLCAmcHJpbnRDb250ZXh0
KTsKLSAgICBnX3NpZ25hbF9jb25uZWN0KG9wZXJhdGlvbiwgImRyYXctcGFnZSIsIEdfQ0FMTEJB
Q0soZHJhd19wYWdlX2NhbGxiYWNrKSwgJnByaW50Q29udGV4dCk7Ci0gICAgZ19zaWduYWxfY29u
bmVjdChvcGVyYXRpb24sICJlbmQtcHJpbnQiLCBHX0NBTExCQUNLKGVuZF9wcmludF9jYWxsYmFj
ayksICZwcmludENvbnRleHQpOwotCi0gICAgcmV0dXJuIGd0a19wcmludF9vcGVyYXRpb25fcnVu
KG9wZXJhdGlvbiwgYWN0aW9uLCBHVEtfV0lORE9XKHRvcExldmVsKSwgZXJyb3IpOwotfQotCi0v
KioKLSAqIHdlYmtpdF93ZWJfZnJhbWVfcHJpbnQ6Ci0gKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZy
YW1lCi0gKgotICogUHJpbnRzIHRoZSBnaXZlbiAjV2ViS2l0V2ViRnJhbWUsIGJ5IHByZXNlbnRp
bmcgYSBwcmludCBkaWFsb2cgdG8gdGhlCi0gKiB1c2VyLiBJZiB5b3UgbmVlZCBtb3JlIGNvbnRy
b2wgb3ZlciB0aGUgcHJpbnRpbmcgcHJvY2Vzcywgc2VlCi0gKiB3ZWJraXRfd2ViX2ZyYW1lX3By
aW50X2Z1bGwoKS4KLSAqCi0gKiBTaW5jZTogMS4xLjUKLSAqLwotdm9pZCB3ZWJraXRfd2ViX2Zy
YW1lX3ByaW50KFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKLXsKLSAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpKTsKLQotICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0
ZSogcHJpdiA9IGZyYW1lLT5wcml2OwotICAgIEd0a1ByaW50T3BlcmF0aW9uKiBvcGVyYXRpb24g
PSBndGtfcHJpbnRfb3BlcmF0aW9uX25ldygpOwotICAgIEdFcnJvciogZXJyb3IgPSAwOwotCi0g
ICAgd2Via2l0X3dlYl9mcmFtZV9wcmludF9mdWxsKGZyYW1lLCBvcGVyYXRpb24sIEdUS19QUklO
VF9PUEVSQVRJT05fQUNUSU9OX1BSSU5UX0RJQUxPRywgJmVycm9yKTsKLSAgICBnX29iamVjdF91
bnJlZihvcGVyYXRpb24pOwotCi0gICAgaWYgKGVycm9yKSB7Ci0gICAgICAgIEd0a1dpZGdldCog
d2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChwcml2LT53ZWJWaWV3
KSk7Ci0gICAgICAgIEd0a1dpZGdldCogZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldyh3
aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3cod2luZG93KSA/IEdUS19XSU5ET1cod2luZG93
KSA6IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfTUVTU0FHRV9FUlJPUiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19CVVRUT05TX0NM
T1NFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IiVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotCi0gICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7Ci0K
LSAgICAgICAgZ19zaWduYWxfY29ubmVjdChkaWFsb2csICJyZXNwb25zZSIsIEdfQ0FMTEJBQ0so
Z3RrX3dpZGdldF9kZXN0cm95KSwgTlVMTCk7Ci0gICAgICAgIGd0a193aWRnZXRfc2hvdyhkaWFs
b2cpOwotICAgIH0KLX0KLQotZ2NoYXIqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Jlc3BvbnNlX21p
bWVfdHlwZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCi17Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9
IGNvcmUoZnJhbWUpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBkb2NMb2FkZXIgPSBj
b3JlRnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7Ci0gICAgU3RyaW5nIG1pbWVUeXBl
ID0gZG9jTG9hZGVyLT5yZXNwb25zZU1JTUVUeXBlKCk7Ci0gICAgcmV0dXJuIGdfc3RyZHVwKG1p
bWVUeXBlLnV0ZjgoKS5kYXRhKCkpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0
X2xvYWRfc3RhdHVzOgotICogQGZyYW1lOiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogRGV0ZXJt
aW5lcyB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGxvYWQuCi0gKgotICogUmV0dXJuczogVGhl
ICNXZWJLaXRMb2FkU3RhdHVzIHNwZWNpZnlpbmcgdGhlIHN0YXR1cyBvZiB0aGUgY3VycmVudCBs
b2FkLgotICoKLSAqIFNpbmNlOiAxLjEuNwotICovCi1XZWJLaXRMb2FkU3RhdHVzIHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X2xvYWRfc3RhdHVzKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKLXsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSwgV0VCS0lUX0xP
QURfRklOSVNIRUQpOwotCi0gICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUt
PnByaXY7Ci0gICAgcmV0dXJuIHByaXYtPmxvYWRTdGF0dXM7Ci19Ci0KLUd0a1BvbGljeVR5cGUg
d2Via2l0X3dlYl9mcmFtZV9nZXRfaG9yaXpvbnRhbF9zY3JvbGxiYXJfcG9saWN5KFdlYktpdFdl
YkZyYW1lKiBmcmFtZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X0ZSQU1FKGZyYW1lKSwgR1RLX1BPTElDWV9BVVRPTUFUSUMpOwotCi0gICAgRnJhbWUqIGNvcmVG
cmFtZSA9IGNvcmUoZnJhbWUpOwotICAgIEZyYW1lVmlldyogdmlldyA9IGNvcmVGcmFtZS0+dmll
dygpOwotICAgIGlmICghdmlldykKLSAgICAgICAgcmV0dXJuIEdUS19QT0xJQ1lfQVVUT01BVElD
OwotCi0gICAgU2Nyb2xsYmFyTW9kZSBoTW9kZSA9IHZpZXctPmhvcml6b250YWxTY3JvbGxiYXJN
b2RlKCk7Ci0KLSAgICBpZiAoaE1vZGUgPT0gU2Nyb2xsYmFyQWx3YXlzT24pCi0gICAgICAgIHJl
dHVybiBHVEtfUE9MSUNZX0FMV0FZUzsKLQotICAgIGlmIChoTW9kZSA9PSBTY3JvbGxiYXJBbHdh
eXNPZmYpCi0gICAgICAgIHJldHVybiBHVEtfUE9MSUNZX05FVkVSOwotCi0gICAgcmV0dXJuIEdU
S19QT0xJQ1lfQVVUT01BVElDOwotfQotCi1HdGtQb2xpY3lUeXBlIHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3koV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewot
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfRlJBTUUoZnJhbWUpLCBHVEtf
UE9MSUNZX0FVVE9NQVRJQyk7Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7
Ci0gICAgRnJhbWVWaWV3KiB2aWV3ID0gY29yZUZyYW1lLT52aWV3KCk7Ci0gICAgaWYgKCF2aWV3
KQotICAgICAgICByZXR1cm4gR1RLX1BPTElDWV9BVVRPTUFUSUM7Ci0KLSAgICBTY3JvbGxiYXJN
b2RlIHZNb2RlID0gdmlldy0+dmVydGljYWxTY3JvbGxiYXJNb2RlKCk7Ci0KLSAgICBpZiAodk1v
ZGUgPT0gU2Nyb2xsYmFyQWx3YXlzT24pCi0gICAgICAgIHJldHVybiBHVEtfUE9MSUNZX0FMV0FZ
UzsKLQotICAgIGlmICh2TW9kZSA9PSBTY3JvbGxiYXJBbHdheXNPZmYpCi0gICAgICAgIHJldHVy
biBHVEtfUE9MSUNZX05FVkVSOwotCi0gICAgcmV0dXJuIEdUS19QT0xJQ1lfQVVUT01BVElDOwot
fQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3NlY3VyaXR5X29yaWdpbjoKLSAqIEBm
cmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKLSAqCi0gKiBSZXR1cm5zIHRoZSBAZnJhbWUncyBzZWN1
cml0eSBvcmlnaW4uCi0gKgotICogUmV0dXJuIHZhbHVlOiAodHJhbnNmZXIgbm9uZSk6IHRoZSBz
ZWN1cml0eSBvcmlnaW4gb2YgQGZyYW1lCi0gKgotICogU2luY2U6IDEuMS4xNAotICovCi1XZWJL
aXRTZWN1cml0eU9yaWdpbiogd2Via2l0X3dlYl9mcmFtZV9nZXRfc2VjdXJpdHlfb3JpZ2luKFdl
YktpdFdlYkZyYW1lKiBmcmFtZSkKLXsKLSAgICBXZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYg
PSBmcmFtZS0+cHJpdjsKLSAgICBpZiAoIXByaXYtPmNvcmVGcmFtZSB8fCAhcHJpdi0+Y29yZUZy
YW1lLT5kb2N1bWVudCgpIHx8ICFwcml2LT5jb3JlRnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgaWYgKHByaXYtPm9yaWdpbiAmJiBw
cml2LT5vcmlnaW4tPnByaXYtPmNvcmVPcmlnaW4uZ2V0KCkgPT0gcHJpdi0+Y29yZUZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKQotICAgICAgICByZXR1cm4gcHJpdi0+b3JpZ2lu
OwotCi0gICAgaWYgKHByaXYtPm9yaWdpbikKLSAgICAgICAgZ19vYmplY3RfdW5yZWYocHJpdi0+
b3JpZ2luKTsKLQotICAgIHByaXYtPm9yaWdpbiA9IGtpdChwcml2LT5jb3JlRnJhbWUtPmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOwotICAgIHJldHVybiBwcml2LT5vcmlnaW47Ci19Ci0K
LS8qKgotICogd2Via2l0X3dlYl9mcmFtZV9nZXRfbmV0d29ya19yZXNwb25zZToKLSAqIEBmcmFt
ZTogYSAjV2ViS2l0V2ViRnJhbWUKLSAqCi0gKiBSZXR1cm5zIGEgI1dlYktpdE5ldHdvcmtSZXNw
b25zZSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSByZXNwb25zZQotICogdGhhdCB3YXMgZ2l2ZW4g
dG8gdGhlIHJlcXVlc3QgZm9yIHRoZSBnaXZlbiBmcmFtZSwgb3IgTlVMTCBpZiB0aGUKLSAqIGZy
YW1lIHdhcyBub3QgY3JlYXRlZCBieSBhIGxvYWQuIFlvdSBtdXN0IHVucmVmIHRoZSBvYmplY3Qg
d2hlbiB5b3UKLSAqIGFyZSBkb25lIHdpdGggaXQuCi0gKgotICogUmV0dXJuIHZhbHVlOiAodHJh
bnNmZXIgZnVsbCk6IGEgI1dlYktpdE5ldHdvcmtSZXNwb25zZSBvYmplY3QKLSAqCi0gKiBTaW5j
ZTogMS4xLjE4Ci0gKi8KLVdlYktpdE5ldHdvcmtSZXNwb25zZSogd2Via2l0X3dlYl9mcmFtZV9n
ZXRfbmV0d29ya19yZXNwb25zZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCi17Ci0gICAgRnJhbWUq
IGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICBy
ZXR1cm4gMDsKLQotICAgIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBjb3JlRnJh
bWUtPmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCk7Ci0gICAgaWYgKCFsb2FkZXIpCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGtpdE5ldyhsb2FkZXItPnJlc3BvbnNlKCkp
OwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfZnJhbWVfcmVwbGFjZV9zZWxlY3Rpb246Ci0gKiBA
ZnJhbWU6IGEgI1dlYktpdFdlRnJhbWUKLSAqIEB0ZXh0OiB0aGUgdGV4dCB0byBpbnNlcnQgaW4g
cGxhY2Ugb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCi0gKgotICogUmVwbGFjZXMgdGhlIGN1cnJl
bnQgc2VsZWN0aW9uIGluIEBmcmFtZSwgaWYgYW55LCB3aXRoIEB0ZXh0LgotICoKLSAqIFNpbmNl
OiAxLjUuMQotICoqLwotdm9pZCB3ZWJraXRfd2ViX2ZyYW1lX3JlcGxhY2Vfc2VsZWN0aW9uKFdl
YktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciogdGV4dCkKLXsKLSAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShmcmFtZSk7Ci0gICAgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCA9IGZhbHNl
OwotICAgIGJvb2wgc21hcnRSZXBsYWNlID0gdHJ1ZTsKLSAgICBjb3JlRnJhbWUtPmVkaXRvcigp
LnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0ZXh0LCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRS
ZXBsYWNlKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9yYW5nZV9mb3Jfd29y
ZF9hcm91bmRfY2FyZXQ6Ci0gKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCi0gKgotICogUmV0
dXJucyBhICNXZWJLaXRET01SYW5nZSBmb3IgdGhlIHdvcmQgd2hlcmUgdGhlIGNhcmV0IGlzIGN1
cnJlbnRseQotICogcG9zaXRpb25lZC4KLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IGEgI1dlYktpdERPTVJhbmdlIHNwYW5uaW5nIHRoZSB3b3JkIHdoZXJlIHRoZSBjYXJldAotICog
Y3VycmVudGx5IGlzIHBvc2l0aW9uZWQuIElmIHRoZXJlIGlzIG5vIGNhcmV0ICVOVUxMIHdpbGwg
YmUKLSAqIHJldHVybmVkLgotICoKLSAqIFNpbmNlOiAxLjUuMS4KLSAqKi8KLVdlYktpdERPTVJh
bmdlKiB3ZWJraXRfd2ViX2ZyYW1lX2dldF9yYW5nZV9mb3Jfd29yZF9hcm91bmRfY2FyZXQoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19XRUJfRlJBTUUoZnJhbWUpLCAwKTsKLQotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZy
YW1lKTsKLSAgICBGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uID0gY29yZUZyYW1lLT5zZWxlY3Rp
b24oKTsKLSAgICBpZiAoc2VsZWN0aW9uLmlzTm9uZSgpIHx8IHNlbGVjdGlvbi5pc1JhbmdlKCkp
Ci0gICAgICAgIHJldHVybiAwOwotICAgIFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlv
bihzZWxlY3Rpb24uc2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCkpOwotICAgIHZpc2libGVTZWxl
Y3Rpb24uZXhwYW5kVXNpbmdHcmFudWxhcml0eShXb3JkR3JhbnVsYXJpdHkpOwotCi0gICAgcmV0
dXJuIGtpdCh2aXNpYmxlU2VsZWN0aW9uLmZpcnN0UmFuZ2UoKS5nZXQoKSk7Ci19Ci0KLS8qKgot
ICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50OgotICogQGZyYW1lOiBhICNXZWJL
aXRXZWJGcmFtZQotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogdGhlICNXZWJLaXRE
T01Eb2N1bWVudCBjdXJyZW50bHkgbG9hZGVkCi0gKiBpbiB0aGUgQGZyYW1lIG9yICVOVUxMIGlm
IG5vIGRvY3VtZW50IGlzIGxvYWRlZAotICoKLSAqIFNpbmNlOiAxLjEwCi0gKiovCi1XZWJLaXRE
T01Eb2N1bWVudCogd2Via2l0X3dlYl9mcmFtZV9nZXRfZG9tX2RvY3VtZW50KFdlYktpdFdlYkZy
YW1lKiBmcmFtZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZS
QU1FKGZyYW1lKSwgMCk7Ci0KLSAgICBGcmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7Ci0g
ICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgRG9jdW1lbnQqIGRv
YyA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvYykKLSAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICByZXR1cm4ga2l0KGRvYyk7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1X
ZWJLaXRXZWJWaWV3KiBnZXRWaWV3RnJvbUZyYW1lKFdlYktpdFdlYkZyYW1lKiBmcmFtZSkKLXsK
LSAgICBXZWJLaXRXZWJGcmFtZVByaXZhdGUqIHByaXYgPSBmcmFtZS0+cHJpdjsKLSAgICByZXR1
cm4gcHJpdi0+d2ViVmlldzsKLX0KLQotV2ViQ29yZTo6RnJhbWUqIGNvcmUoV2ViS2l0V2ViRnJh
bWUqIGZyYW1lKQotewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAg
V2ViS2l0V2ViRnJhbWVQcml2YXRlKiBwcml2ID0gZnJhbWUtPnByaXY7Ci0gICAgcmV0dXJuIHBy
aXYgPyBwcml2LT5jb3JlRnJhbWUgOiAwOwotfQotCi1XZWJLaXRXZWJGcmFtZSoga2l0KFdlYkNv
cmU6OkZyYW1lKiBjb3JlRnJhbWUpCi17Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdDo6RnJhbWVMb2FkZXJDbGll
bnQmPihjb3JlRnJhbWUtPmxvYWRlcigpLmNsaWVudCgpKS53ZWJGcmFtZSgpOwotfQotCi19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWUuaCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJmcmFtZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0MDRiMjlmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJmcmFtZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTg5ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAqIENv
cHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIHdlYmtp
dHdlYmZyYW1lX2gKLSNkZWZpbmUgd2Via2l0d2ViZnJhbWVfaAotCi0jaW5jbHVkZSA8Z2xpYi1v
YmplY3QuaD4KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNCYXNlLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KLSNpbmNsdWRlIDx3
ZWJraXQvd2Via2l0bmV0d29ya3JlcXVlc3QuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vi
ZGF0YXNvdXJjZS5oPgotI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb20uaD4KLQotR19CRUdJ
Tl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9UWVBFX1dFQl9GUkFNRSAgICAgICAgICAgICh3ZWJr
aXRfd2ViX2ZyYW1lX2dldF90eXBlKCkpCi0jZGVmaW5lIFdFQktJVF9XRUJfRlJBTUUob2JqKSAg
ICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVf
V0VCX0ZSQU1FLCBXZWJLaXRXZWJGcmFtZSkpCi0jZGVmaW5lIFdFQktJVF9XRUJfRlJBTUVfQ0xB
U1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZ
UEVfV0VCX0ZSQU1FLCBXZWJLaXRXZWJGcmFtZUNsYXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1dF
Ql9GUkFNRShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBX
RUJLSVRfVFlQRV9XRUJfRlJBTUUpKQotI2RlZmluZSBXRUJLSVRfSVNfV0VCX0ZSQU1FX0NMQVNT
KGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dF
Ql9GUkFNRSkpCi0jZGVmaW5lIFdFQktJVF9XRUJfRlJBTUVfR0VUX0NMQVNTKG9iaikgIChHX1RZ
UEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLCBXZWJL
aXRXZWJGcmFtZUNsYXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkZyYW1lUHJpdmF0
ZSBXZWJLaXRXZWJGcmFtZVByaXZhdGU7Ci0KLXN0cnVjdCBfV2ViS2l0V2ViRnJhbWUgewotICAg
IEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwotCi0gICAgLyo8IHByaXZhdGUgPiovCi0gICAgV2Vi
S2l0V2ViRnJhbWVQcml2YXRlICpwcml2OwotfTsKLQotc3RydWN0IF9XZWJLaXRXZWJGcmFtZUNs
YXNzIHsKLSAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwotCi0gICAgLyo8IHB1YmxpYyA+
Ki8KLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2
b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDQpICh2b2lkKTsKLSAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDUpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDYp
ICh2b2lkKTsKLX07Ci0KLS8qKgotICogV2ViS2l0TG9hZFN0YXR1czoKLSAqIEBXRUJLSVRfTE9B
RF9QUk9WSVNJT05BTDogTm8gZGF0YSBoYXMgYmVlbiByZWNlaXZlZCB5ZXQsIGVtcHR5Ci0gKiBz
dHJ1Y3R1cmVzIGhhdmUgYmVlbiBhbGxvY2F0ZWQgdG8gcGVyZm9ybSB0aGUgbG9hZDsgdGhlIGxv
YWQgbWF5Ci0gKiBzdGlsbCBmYWlsIGZvciB0cmFuc3BvcnQgaXNzdWVzIHN1Y2ggYXMgbm90IGJl
aW5nIGFibGUgdG8gcmVzb2x2ZSBhCi0gKiBuYW1lLCBvciBjb25uZWN0IHRvIGEgcG9ydC4KLSAq
IEBXRUJLSVRfTE9BRF9DT01NSVRURUQ6IFRoZSBmaXJzdCBkYXRhIGNodW5rIGhhcyBhcnJpdmVk
LCBtZWFuaW5nCi0gKiB0aGF0IHRoZSBuZWNlc3NhcnkgdHJhbnNwb3J0IHJlcXVpcmVtZW50cyBh
cmUgc3RhYmlsaXNoZWQsIGFuZCB0aGUKLSAqIGxvYWQgaXMgYmVpbmcgcGVyZm9ybWVkLgotICog
QFdFQktJVF9MT0FEX0ZJUlNUX1ZJU1VBTExZX05PTl9FTVBUWV9MQVlPVVQ6IFRoZSBmaXJzdCBs
YXlvdXQgd2l0aAotICogYWN0dWFsIHZpc2libGUgY29udGVudCBoYXBwZW5lZDsgb25lIG9yIG1v
cmUgbGF5b3V0cyBtYXkgaGF2ZQotICogaGFwcGVuZWQgYmVmb3JlIHRoYXQgY2F1c2VkIG5vdGhp
bmcgdG8gYmUgdmlzaWJsZSBvbiB0aGUgc2NyZWVuLAotICogYmVjYXVzZSB0aGUgZGF0YSBhdmFp
bGFibGUgYXQgdGhlIHRpbWUgd2FzIG5vdCBzaWduaWZpY2FudCBlbm91Z2guCi0gKiBAV0VCS0lU
X0xPQURfRklOSVNIRUQ6IFRoaXMgc3RhdGUgbWVhbnMgdGhhdCBldmVyeXRoaW5nIHRoYXQgd2Fz
Ci0gKiByZXF1aXJlZCB0byBkaXNwbGF5IHRoZSBwYWdlIGhhcyBiZWVuIGxvYWRlZC4KLSAqIEBX
RUJLSVRfTE9BRF9GQUlMRUQ6IFRoaXMgc3RhdGUgbWVhbnMgdGhhdCBzb21lIGVycm9yIG9jY3Vy
cmVkCi0gKiBkdXJpbmcgdGhlIHBhZ2UgbG9hZCB0aGF0IHByZXZlbnRlZCBpdCBmcm9tIGJlaW5n
IGNvbXBsZXRlZC4gWW91Ci0gKiBjYW4gY29ubmVjdCB0byB0aGUgI1dlYktpdFdlYlZpZXc6Omxv
YWQtZXJyb3Igc2lnbmFsIGlmIHlvdSB3YW50IHRvCi0gKiBrbm93IHByZWNpc2VseSB3aGF0IGtp
bmQgb2YgZXJyb3Igb2NjdXJyZWQuCi0gKi8KLXR5cGVkZWYgZW51bSB7Ci0gICAgV0VCS0lUX0xP
QURfUFJPVklTSU9OQUwsCi0gICAgV0VCS0lUX0xPQURfQ09NTUlUVEVELAotICAgIFdFQktJVF9M
T0FEX0ZJTklTSEVELAotICAgIFdFQktJVF9MT0FEX0ZJUlNUX1ZJU1VBTExZX05PTl9FTVBUWV9M
QVlPVVQsCi0gICAgV0VCS0lUX0xPQURfRkFJTEVECi19IFdlYktpdExvYWRTdGF0dXM7Ci0KLVdF
QktJVF9BUEkgR1R5cGUKLXdlYmtpdF93ZWJfZnJhbWVfZ2V0X3R5cGUgICAgICAgICAgICh2b2lk
KTsKLQotI2lmbmRlZiBXRUJLSVRfRElTQUJMRV9ERVBSRUNBVEVECi1XRUJLSVRfQVBJIFdlYktp
dFdlYkZyYW1lICoKLXdlYmtpdF93ZWJfZnJhbWVfbmV3ICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwotI2VuZGlmCi0KLVdFQktJVF9BUEkgV2ViS2l0V2Vi
VmlldyAqCi13ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyAgICAgICAoV2ViS2l0V2ViRnJh
bWUgICAgICAgKmZyYW1lKTsKLQotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfd2Vi
X2ZyYW1lX2dldF9uYW1lICAgICAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsK
LQotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfd2ViX2ZyYW1lX2dldF90aXRsZSAg
ICAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKLQotV0VCS0lUX0FQSSBjb25z
dCBnY2hhciAqCi13ZWJraXRfd2ViX2ZyYW1lX2dldF91cmkgICAgICAgICAgICAoV2ViS2l0V2Vi
RnJhbWUgICAgICAgKmZyYW1lKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRXZWJGcmFtZSoKLXdlYmtp
dF93ZWJfZnJhbWVfZ2V0X3BhcmVudCAgICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJh
bWUpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfZnJhbWVfbG9hZF91cmkgICAgICAg
ICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKnVyaSk7Ci0KLVdFQktJVF9BUEkg
dm9pZAotd2Via2l0X3dlYl9mcmFtZV9sb2FkX3N0cmluZyAgICAgICAgKFdlYktpdFdlYkZyYW1l
ICAgICAgICpmcmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnY2hhciAgICAgICAgICAqY29udGVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqbWltZV90eXBlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICplbmNvZGluZywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAq
YmFzZV91cmkpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfZnJhbWVfbG9hZF9hbHRl
cm5hdGVfc3RyaW5nIChXZWJLaXRXZWJGcmFtZSAgICAqZnJhbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgKmNvbnRlbnQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgKmJh
c2VfdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdj
aGFyICAgICAgICp1bnJlYWNoYWJsZV91cmwpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93
ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0ICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0TmV0d29ya1JlcXVl
c3QgKnJlcXVlc3QpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfZnJhbWVfc3RvcF9s
b2FkaW5nICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwotCi1XRUJLSVRfQVBJ
IHZvaWQKLXdlYmtpdF93ZWJfZnJhbWVfcmVsb2FkICAgICAgICAgICAgIChXZWJLaXRXZWJGcmFt
ZSAgICAgICAqZnJhbWUpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1lICoKLXdlYmtpdF93
ZWJfZnJhbWVfZmluZF9mcmFtZSAgICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAg
ICAgKm5hbWUpOwotCi1XRUJLSVRfQVBJIEpTR2xvYmFsQ29udGV4dFJlZgotd2Via2l0X3dlYl9m
cmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQgKFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7Ci0K
LVdFQktJVF9BUEkgR3RrUHJpbnRPcGVyYXRpb25SZXN1bHQKLXdlYmtpdF93ZWJfZnJhbWVfcHJp
bnRfZnVsbCAgICAgICAgIChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR3RrUHJpbnRPcGVyYXRpb24gICAgKm9wZXJhdGlv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtQcmludE9wZXJhdGlv
bkFjdGlvbiBhY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vy
cm9yICAgICAgICAgICAgICAqKmVycm9yKTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2Vi
X2ZyYW1lX3ByaW50ICAgICAgICAgICAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsK
LQotV0VCS0lUX0FQSSBXZWJLaXRMb2FkU3RhdHVzCi13ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2Fk
X3N0YXR1cyAgICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKLQotV0VCS0lUX0FQSSBH
dGtQb2xpY3lUeXBlCi13ZWJraXRfd2ViX2ZyYW1lX2dldF9ob3Jpem9udGFsX3Njcm9sbGJhcl9w
b2xpY3kgKFdlYktpdFdlYkZyYW1lICAgICAgICAqZnJhbWUpOwotCi1XRUJLSVRfQVBJIEd0a1Bv
bGljeVR5cGUKLXdlYmtpdF93ZWJfZnJhbWVfZ2V0X3ZlcnRpY2FsX3Njcm9sbGJhcl9wb2xpY3kg
ICAoV2ViS2l0V2ViRnJhbWUgICAgICAgICpmcmFtZSk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0V2Vi
RGF0YVNvdXJjZSAqCi13ZWJraXRfd2ViX2ZyYW1lX2dldF9kYXRhX3NvdXJjZSAgICAgICAgICAg
ICAoV2ViS2l0V2ViRnJhbWUgICAgICAgKmZyYW1lKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRXZWJE
YXRhU291cmNlICoKLXdlYmtpdF93ZWJfZnJhbWVfZ2V0X3Byb3Zpc2lvbmFsX2RhdGFfc291cmNl
IChXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUpOwotCi1XRUJLSVRfQVBJIFdlYktpdFNlY3Vy
aXR5T3JpZ2luKgotd2Via2l0X3dlYl9mcmFtZV9nZXRfc2VjdXJpdHlfb3JpZ2luICAgICAgICAg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0TmV0d29y
a1Jlc3BvbnNlKgotd2Via2l0X3dlYl9mcmFtZV9nZXRfbmV0d29ya19yZXNwb25zZSAgICAgICAg
KFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0
X3dlYl9mcmFtZV9yZXBsYWNlX3NlbGVjdGlvbiAgICAgICAgICAgKFdlYktpdFdlYkZyYW1lICAg
ICAgICAqZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAgICAgICAgICAgICp0ZXh0KTsKLQotV0VCS0lUX0FQSSBXZWJLaXRET01S
YW5nZSoKLXdlYmtpdF93ZWJfZnJhbWVfZ2V0X3JhbmdlX2Zvcl93b3JkX2Fyb3VuZF9jYXJldCAo
V2ViS2l0V2ViRnJhbWUgICAgKmZyYW1lKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVu
dCoKLXdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9kb2N1bWVudCAgICAgICAgICAgIChXZWJLaXRX
ZWJGcmFtZSAgICAgICAgKmZyYW1lKTsKLQotR19FTkRfREVDTFMKLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWVwcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViZnJhbWVwcml2YXRlLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwMjEwZDguLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEs
NTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBIb2xnZXIg
SGFucyBQZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDA4IEphbiBNaWNoYWVsIEMu
IEFsb256bwotICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJraXR3ZWJmcmFtZXByaXZhdGVfaAot
I2RlZmluZSB3ZWJraXR3ZWJmcmFtZXByaXZhdGVfaAotCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNp
bmNsdWRlICJ3ZWJraXR3ZWJmcmFtZS5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViS2l0
V2ViVmlldyogZ2V0Vmlld0Zyb21GcmFtZShXZWJLaXRXZWJGcmFtZSopOwotCi1XZWJDb3JlOjpG
cmFtZSogY29yZShXZWJLaXRXZWJGcmFtZSopOwotV2ViS2l0V2ViRnJhbWUqIGtpdChXZWJDb3Jl
OjpGcmFtZSopOwotCi19Ci0KLWV4dGVybiAiQyIgewotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0
V2ViRnJhbWVQcml2YXRlIFdlYktpdFdlYkZyYW1lUHJpdmF0ZTsKLXN0cnVjdCBfV2ViS2l0V2Vi
RnJhbWVQcml2YXRlIHsKLSAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lOwotICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXc7Ci0KLSAgICBnY2hhciogbmFtZTsKLSAgICBnY2hhciogdGl0bGU7
Ci0gICAgZ2NoYXIqIHVyaTsKLSAgICBXZWJLaXRMb2FkU3RhdHVzIGxvYWRTdGF0dXM7Ci0gICAg
V2ViS2l0U2VjdXJpdHlPcmlnaW4qIG9yaWdpbjsKLX07Ci0KLXZvaWQgd2Via2l0X3dlYl9mcmFt
ZV9jb3JlX2ZyYW1lX2dvbmUoV2ViS2l0V2ViRnJhbWUqKTsKLQotLy8gRklYTUU6IG1vdmUgdGhp
cyBmdW5jdGlvbmFsaXR5IGludG8gJ1dlYktpdFdlYkRhdGFTb3VyY2UnPwotV0VCS0lUX0FQSSBn
Y2hhciogd2Via2l0X3dlYl9mcmFtZV9nZXRfcmVzcG9uc2VfbWltZV90eXBlKFdlYktpdFdlYkZy
YW1lKik7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYmhpc3RvcnlpdGVtLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQw
MGY3MC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlz
dG9yeWl0ZW0uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTMyICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDgsIDIwMDkgSmFuIE1pY2hhZWwgQy4gQWxvbnpvCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIndlYmtp
dHdlYmhpc3RvcnlpdGVtLmgiCi0KLSNpbmNsdWRlICJIaXN0b3J5SXRlbS5oIgotI2luY2x1ZGUg
IlVSTC5oIgotI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Vi
a2l0d2ViaGlzdG9yeWl0ZW1wcml2YXRlLmgiCi0jaW5jbHVkZSA8Z2xpYi5oPgotI2luY2x1ZGUg
PGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0d2ViaGlz
dG9yeWl0ZW0KLSAqIEBzaG9ydF9kZXNjcmlwdGlvbjogT25lIGl0ZW0gb2YgdGhlICNXZWJLaXRX
ZWJCYWNrRm9yd2FyZExpc3QgYW5kIG9yIGdsb2JhbCBoaXN0b3J5Ci0gKiBAc2VlX2Fsc286ICNX
ZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QKLSAqCi0gKiBBIGhpc3RvcnkgaXRlbSBjb25zaXN0cyBv
dXQgb2YgYSB0aXRsZSBhbmQgYSB1cmkuIEl0IGNhbiBiZSBwYXJ0IG9mIHRoZQotICogI1dlYktp
dFdlYkJhY2tGb3J3YXJkTGlzdCBhbmQgdGhlIGdsb2JhbCBoaXN0b3J5LiBUaGUgZ2xvYmFsIGhp
c3RvcnkgaXMgdXNlZAotICogZm9yIGNvbG9yaW5nIHRoZSBsaW5rcyBvZiB2aXNpdGVkIHNpdGVz
LiAgI1dlYktpdFdlYkhpc3RvcnlJdGVtJ3MgY29uc3RydWN0ZWQgd2l0aAotICogI3dlYmtpdF93
ZWJfaGlzdG9yeV9pdGVtX25ldyBhbmQgI3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRo
X2RhdGEgYXJlCi0gKiBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIHRoZSBnbG9iYWwgaGlzdG9yeS4K
LSAqCi0gKiA8aW5mb3JtYWxleGFtcGxlPjxwcm9ncmFtbGlzdGluZz4KLSAqIC88IS0tIC0tPiog
SW5qZWN0IGEgdmlzaXRlZCBwYWdlIGludG8gdGhlIGdsb2JhbCBoaXN0b3J5ICo8IS0tIC0tPi8K
LSAqIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2RhdGEoImh0dHA6Ly93d3cuZ25v
bWUub3JnLyIsICJHTk9NRTogVGhlIEZyZWUgU29mdHdhcmUgRGVza3RvcCBQcm9qZWN0Iik7Ci0g
KiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0aF9kYXRhKCJodHRwOi8vd3d3LndlYmtp
dC5vcmcvIiwgIlRoZSBXZWJLaXQgT3BlbiBTb3VyY2UgUHJvamVjdCIpOwotICogPC9wcm9ncmFt
bGlzdGluZz48L2luZm9ybWFsZXhhbXBsZT4KLSAqCi0gKi8KLQotdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKLQotc3RydWN0IF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGUgewotICAgIFdlYkNv
cmU6Okhpc3RvcnlJdGVtKiBoaXN0b3J5SXRlbTsKLQotICAgIFdURjo6Q1N0cmluZyB0aXRsZTsK
LSAgICBXVEY6OkNTdHJpbmcgYWx0ZXJuYXRlVGl0bGU7Ci0gICAgV1RGOjpDU3RyaW5nIHVyaTsK
LSAgICBXVEY6OkNTdHJpbmcgb3JpZ2luYWxVcmk7Ci0KLSAgICBnYm9vbGVhbiBkaXNwb3NlZDsK
LX07Ci0KLWVudW0gewotICAgIFBST1BfMCwKLQotICAgIFBST1BfVElUTEUsCi0gICAgUFJPUF9B
TFRFUk5BVEVfVElUTEUsCi0gICAgUFJPUF9VUkksCi0gICAgUFJPUF9PUklHSU5BTF9VUkksCi0g
ICAgUFJPUF9MQVNUX1ZJU0lURURfVElNRQotfTsKLQotR19ERUZJTkVfVFlQRShXZWJLaXRXZWJI
aXN0b3J5SXRlbSwgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW0sIEdfVFlQRV9PQkpFQ1QpOwotCi1z
dGF0aWMgdm9pZCB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9zZXRfcHJvcGVydHkoR09iamVjdCog
b2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBw
c3BlYyk7Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9wcm9wZXJ0
eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNw
ZWMqIHBzcGVjKTsKLQotR0hhc2hUYWJsZSogd2Via2l0X2hpc3RvcnlfaXRlbXMoKQotewotICAg
IHN0YXRpYyBHSGFzaFRhYmxlKiBoaXN0b3J5SXRlbXMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwo
Z19kaXJlY3RfaGFzaCwgZ19kaXJlY3RfZXF1YWwsIE5VTEwsIGdfb2JqZWN0X3VucmVmKTsKLSAg
ICByZXR1cm4gaGlzdG9yeUl0ZW1zOwotfQotCi12b2lkIHdlYmtpdF9oaXN0b3J5X2l0ZW1fYWRk
KFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSwgV2ViQ29yZTo6SGlzdG9yeUl0
ZW0qIGhpc3RvcnlJdGVtKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9I
SVNUT1JZX0lURU0od2ViSGlzdG9yeUl0ZW0pKTsKLQotICAgIEdIYXNoVGFibGUqIHRhYmxlID0g
d2Via2l0X2hpc3RvcnlfaXRlbXMoKTsKLSAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KHRhYmxlLCBo
aXN0b3J5SXRlbSwgd2ViSGlzdG9yeUl0ZW0pOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X2hpc3RvcnlfaXRlbV9kaXNwb3NlKEdPYmplY3QqIG9iamVjdCkKLXsKLSAgICBXZWJLaXRXZWJI
aXN0b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0gPSBXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShvYmpl
Y3QpOwotICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSogcHJpdiA9IHdlYkhpc3RvcnlJ
dGVtLT5wcml2OwotCi0gICAgaWYgKCFwcml2LT5kaXNwb3NlZCkgewotICAgICAgICBXZWJDb3Jl
OjpIaXN0b3J5SXRlbSogaXRlbSA9IGNvcmUod2ViSGlzdG9yeUl0ZW0pOwotICAgICAgICBpdGVt
LT5kZXJlZigpOwotICAgICAgICBwcml2LT5kaXNwb3NlZCA9IHRydWU7Ci0gICAgfQotCi0gICAg
R19PQkpFQ1RfQ0xBU1Mod2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fcGFyZW50X2NsYXNzKS0+ZGlz
cG9zZShvYmplY3QpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9m
aW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdl
Ykhpc3RvcnlJdGVtID0gV0VCS0lUX1dFQl9ISVNUT1JZX0lURU0ob2JqZWN0KTsKLSAgICBXZWJL
aXRXZWJIaXN0b3J5SXRlbVByaXZhdGUqIHByaXYgPSB3ZWJIaXN0b3J5SXRlbS0+cHJpdjsKLQot
ICAgIHByaXYtPnRpdGxlID0gV1RGOjpDU3RyaW5nKCk7Ci0gICAgcHJpdi0+YWx0ZXJuYXRlVGl0
bGUgPSBXVEY6OkNTdHJpbmcoKTsKLSAgICBwcml2LT51cmkgPSBXVEY6OkNTdHJpbmcoKTsKLSAg
ICBwcml2LT5vcmlnaW5hbFVyaSA9IFdURjo6Q1N0cmluZygpOwotCi0gICAgR19PQkpFQ1RfQ0xB
U1Mod2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0
KTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fY2xhc3NfaW5pdChX
ZWJLaXRXZWJIaXN0b3J5SXRlbUNsYXNzKiBrbGFzcykKLXsKLSAgICBHT2JqZWN0Q2xhc3MqIGdv
YmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7Ci0KLSAgICBnb2JqZWN0X2NsYXNz
LT5kaXNwb3NlID0gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZGlzcG9zZTsKLSAgICBnb2JqZWN0
X2NsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2ZpbmFsaXplOwotICAg
IGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX3Nl
dF9wcm9wZXJ0eTsKLSAgICBnb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfd2Vi
X2hpc3RvcnlfaXRlbV9nZXRfcHJvcGVydHk7Ci0KLSAgICB3ZWJraXRJbml0KCk7Ci0KLSAgICAv
KioKLSAgICAqIFdlYktpdFdlYkhpc3RvcnlJdGVtOnRpdGxlOgotICAgICoKLSAgICAqIFRoZSB0
aXRsZSBvZiB0aGUgaGlzdG9yeSBpdGVtLgotICAgICoKLSAgICAqIFNpbmNlOiAxLjAuMgotICAg
ICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9USVRMRSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGl0bGUiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXygiVGl0bGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF8oIlRoZSB0aXRsZSBvZiB0aGUgaGlzdG9yeSBpdGVtIiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICAvKioKLSAgICAqIFdl
YktpdFdlYkhpc3RvcnlJdGVtOmFsdGVybmF0ZS10aXRsZToKLSAgICAqCi0gICAgKiBUaGUgYWx0
ZXJuYXRlIHRpdGxlIG9mIHRoZSBoaXN0b3J5IGl0ZW0uCi0gICAgKgotICAgICogU2luY2U6IDEu
MC4yCi0gICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3Rf
Y2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0FMVEVSTkFU
RV9USVRMRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3Bl
Y19zdHJpbmcoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWx0ZXJuYXRl
LXRpdGxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkFsdGVybmF0
ZSBUaXRsZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGFs
dGVybmF0ZSB0aXRsZSBvZiB0aGUgaGlzdG9yeSBpdGVtIiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwotCi0gICAgLyoqCi0gICAgKiBXZWJLaXRXZWJI
aXN0b3J5SXRlbTp1cmk6Ci0gICAgKgotICAgICogVGhlIFVSSSBvZiB0aGUgaGlzdG9yeSBpdGVt
LgotICAgICoKLSAgICAqIFNpbmNlOiAxLjAuMgotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9VUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInVyaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJVUkkiKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBVUkkgb2YgdGhlIGhp
c3RvcnkgaXRlbSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJM
RSkpOwotCi0gICAgLyoqCi0gICAgKiBXZWJLaXRXZWJIaXN0b3J5SXRlbTpvcmlnaW5hbC11cmk6
Ci0gICAgKgotICAgICogVGhlIG9yaWdpbmFsIFVSSSBvZiB0aGUgaGlzdG9yeSBpdGVtLgotICAg
ICoKLSAgICAqIFNpbmNlOiAxLjAuMgotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUFJPUF9PUklHSU5BTF9VUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm9yaWdpbmFsLXVyaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfKCJPcmlnaW5hbCBVUkkiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIlRoZSBvcmlnaW5hbCBVUkkgb2YgdGhlIGhpc3RvcnkgaXRlbSIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAvKioKLSAgICAqIFdlYktp
dFdlYkhpc3RvcnlJdGVtOmxhc3QtdmlzaXRlZC10aW1lOgotICAgICoKLSAgICAqIFRoZSB0aW1l
IGF0IHdoaWNoIHRoZSBoaXN0b3J5IGl0ZW0gd2FzIGxhc3QgdmlzaXRlZC4KLSAgICAqCi0gICAg
KiBTaW5jZTogMS4wLjIKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS
T1BfTEFTVF9WSVNJVEVEX1RJTUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnX3BhcmFtX3NwZWNfZG91YmxlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImxhc3QtdmlzaXRlZC10aW1lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF8oIkxhc3QgdmlzaXRlZCBUaW1lIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfKCJUaGUgdGltZSBhdCB3aGljaCB0aGUgaGlzdG9yeSBpdGVtIHdhcyBsYXN0IHZp
c2l0ZWQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIEdfTUFYRE9V
QkxFLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURBQkxFKSk7Ci0KLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUoZ29iamVjdF9jbGFz
cywgc2l6ZW9mKFdlYktpdFdlYkhpc3RvcnlJdGVtUHJpdmF0ZSkpOwotfQotCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9pbml0KFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJI
aXN0b3J5SXRlbSkKLXsKLSAgICB3ZWJIaXN0b3J5SXRlbS0+cHJpdiA9IEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSh3ZWJIaXN0b3J5SXRlbSwgV0VCS0lUX1RZUEVfV0VCX0hJU1RPUllfSVRF
TSwgV2ViS2l0V2ViSGlzdG9yeUl0ZW1Qcml2YXRlKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0
X3dlYl9oaXN0b3J5X2l0ZW1fc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJv
cF9pZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAgV2Vi
S2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0gV0VCS0lUX1dFQl9ISVNUT1JZX0lU
RU0ob2JqZWN0KTsKLQotICAgIHN3aXRjaChwcm9wX2lkKSB7Ci0gICAgY2FzZSBQUk9QX0FMVEVS
TkFURV9USVRMRToKLSAgICAgICAgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fc2V0X2FsdGVybmF0
ZV90aXRsZSh3ZWJIaXN0b3J5SXRlbSwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q
Uk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKLXsKLSAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0gPSBX
RUJLSVRfV0VCX0hJU1RPUllfSVRFTShvYmplY3QpOwotCi0gICAgc3dpdGNoIChwcm9wX2lkKSB7
Ci0gICAgY2FzZSBQUk9QX1RJVExFOgotICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUs
IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90aXRsZSh3ZWJIaXN0b3J5SXRlbSkpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfQUxURVJOQVRFX1RJVExFOgotICAgICAgICBnX3Zh
bHVlX3NldF9zdHJpbmcodmFsdWUsIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF9hbHRlcm5h
dGVfdGl0bGUod2ViSGlzdG9yeUl0ZW0pKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X1VSSToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJraXRfd2ViX2hpc3Rv
cnlfaXRlbV9nZXRfdXJpKHdlYkhpc3RvcnlJdGVtKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgUFJPUF9PUklHSU5BTF9VUkk6Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwg
d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X29yaWdpbmFsX3VyaSh3ZWJIaXN0b3J5SXRlbSkp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTEFTVF9WSVNJVEVEX1RJTUU6Ci0gICAg
ICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2YWx1ZSwgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0
X2xhc3RfdmlzaXRlZF90aW1lKHdlYkhpc3RvcnlJdGVtKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGRlZmF1bHQ6Ci0gICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmpl
Y3QsIHByb3BfaWQsIHBzcGVjKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi0vKiBIZWxw
ZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbmV3IFdlYkhpc3RvcnlJdGVtIGluc3RhbmNlIHdoZW4g
bmVlZGVkICovCi1XZWJLaXRXZWJIaXN0b3J5SXRlbSogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1f
bmV3X3dpdGhfY29yZV9pdGVtKFBhc3NSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+IGhpc3Rv
cnlJdGVtKQotewotICAgIHJldHVybiBraXQoaGlzdG9yeUl0ZW0pOwotfQotCi0KLS8qKgotICog
d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3OgotICoKLSAqIENyZWF0ZXMgYSBuZXcgI1dlYktp
dFdlYkhpc3RvcnlJdGVtIGluc3RhbmNlCi0gKgotICogUmV0dXJuIHZhbHVlOiB0aGUgbmV3ICNX
ZWJLaXRXZWJIaXN0b3J5SXRlbQotICovCi1XZWJLaXRXZWJIaXN0b3J5SXRlbSogd2Via2l0X3dl
Yl9oaXN0b3J5X2l0ZW1fbmV3KCkKLXsKLSAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2ViSGlz
dG9yeUl0ZW0gPSBXRUJLSVRfV0VCX0hJU1RPUllfSVRFTShnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfV0VCX0hJU1RPUllfSVRFTSwgTlVMTCkpOwotICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtUHJp
dmF0ZSogcHJpdiA9IHdlYkhpc3RvcnlJdGVtLT5wcml2OwotCi0gICAgUmVmUHRyPFdlYkNvcmU6
Okhpc3RvcnlJdGVtPiBpdGVtID0gV2ViQ29yZTo6SGlzdG9yeUl0ZW06OmNyZWF0ZSgpOwotICAg
IHByaXYtPmhpc3RvcnlJdGVtID0gaXRlbS5yZWxlYXNlKCkubGVha1JlZigpOwotICAgIHdlYmtp
dF9oaXN0b3J5X2l0ZW1fYWRkKHdlYkhpc3RvcnlJdGVtLCBwcml2LT5oaXN0b3J5SXRlbSk7Ci0K
LSAgICByZXR1cm4gd2ViSGlzdG9yeUl0ZW07Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9oaXN0
b3J5X2l0ZW1fbmV3X3dpdGhfZGF0YToKLSAqIEB1cmk6IHRoZSBVUkkgb2YgdGhlIHBhZ2UKLSAq
IEB0aXRsZTogdGhlIHRpdGxlIG9mIHRoZSBwYWdlCi0gKgotICogQ3JlYXRlcyBhIG5ldyAjV2Vi
S2l0V2ViSGlzdG9yeUl0ZW0gd2l0aCB0aGUgZ2l2ZW4gVVJJIGFuZCB0aXRsZQotICoKLSAqIFJl
dHVybiB2YWx1ZTogdGhlIG5ldyAjV2ViS2l0V2ViSGlzdG9yeUl0ZW0KLSAqLwotV2ViS2l0V2Vi
SGlzdG9yeUl0ZW0qIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2RhdGEoY29uc3Qg
Z2NoYXIqIHVyaSwgY29uc3QgZ2NoYXIqIHRpdGxlKQotewotICAgIFdlYktpdFdlYkhpc3RvcnlJ
dGVtKiB3ZWJIaXN0b3J5SXRlbSA9IFdFQktJVF9XRUJfSElTVE9SWV9JVEVNKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9XRUJfSElTVE9SWV9JVEVNLCBOVUxMKSk7Ci0gICAgV2ViS2l0V2ViSGlz
dG9yeUl0ZW1Qcml2YXRlKiBwcml2ID0gd2ViSGlzdG9yeUl0ZW0tPnByaXY7Ci0KLSAgICBXZWJD
b3JlOjpVUkwgaGlzdG9yeVVyaShXZWJDb3JlOjpVUkwoKSwgdXJpKTsKLSAgICBXVEY6OlN0cmlu
ZyBoaXN0b3J5VGl0bGUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodGl0bGUpOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4gaXRlbSA9IFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpjcmVh
dGUoaGlzdG9yeVVyaSwgaGlzdG9yeVRpdGxlKTsKLSAgICBwcml2LT5oaXN0b3J5SXRlbSA9IGl0
ZW0ucmVsZWFzZSgpLmxlYWtSZWYoKTsKLSAgICB3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZCh3ZWJI
aXN0b3J5SXRlbSwgcHJpdi0+aGlzdG9yeUl0ZW0pOwotCi0gICAgcmV0dXJuIHdlYkhpc3RvcnlJ
dGVtOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90aXRsZToKLSAq
IEB3ZWJfaGlzdG9yeV9pdGVtOiBhICNXZWJLaXRXZWJIaXN0b3J5SXRlbQotICoKLSAqIFJldHVy
bnM6IHRoZSBwYWdlIHRpdGxlIG9mIEB3ZWJfaGlzdG9yeV9pdGVtCi0gKi8KLWNvbnN0IGdjaGFy
KiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdGl0bGUoV2ViS2l0V2ViSGlzdG9yeUl0ZW0q
IHdlYkhpc3RvcnlJdGVtKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfSElTVE9SWV9JVEVNKHdlYkhpc3RvcnlJdGVtKSwgTlVMTCk7Ci0KLSAgICBXZWJDb3JlOjpI
aXN0b3J5SXRlbSogaXRlbSA9IGNvcmUod2ViSGlzdG9yeUl0ZW0pOwotCi0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoaXRlbSwgTlVMTCk7Ci0KLSAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZh
dGUqIHByaXYgPSB3ZWJIaXN0b3J5SXRlbS0+cHJpdjsKLSAgICBwcml2LT50aXRsZSA9IGl0ZW0t
PnRpdGxlKCkudXRmOCgpOwotCi0gICAgcmV0dXJuIHByaXYtPnRpdGxlLmRhdGEoKTsKLX0KLQot
LyoqCi0gKiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfYWx0ZXJuYXRlX3RpdGxlOgotICog
QHdlYl9oaXN0b3J5X2l0ZW06IGEgI1dlYktpdFdlYkhpc3RvcnlJdGVtCi0gKgotICogUmV0dXJu
cyB0aGUgYWx0ZXJuYXRlIHRpdGxlIG9mIEB3ZWJfaGlzdG9yeV9pdGVtCi0gKgotICogUmV0dXJu
IHZhbHVlOiB0aGUgYWx0ZXJuYXRlIHRpdGxlIG9mIEB3ZWJfaGlzdG9yeV9pdGVtCi0gKi8KLWNv
bnN0IGdjaGFyKiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfYWx0ZXJuYXRlX3RpdGxlKFdl
YktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSkKLXsKLSAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRFTSh3ZWJIaXN0b3J5SXRlbSksIE5VTEwp
OwotCi0gICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0gPSBjb3JlKHdlYkhpc3RvcnlJdGVt
KTsKLQotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGl0ZW0sIE5VTEwpOwotCi0gICAgV2ViS2l0
V2ViSGlzdG9yeUl0ZW1Qcml2YXRlKiBwcml2ID0gd2ViSGlzdG9yeUl0ZW0tPnByaXY7Ci0gICAg
cHJpdi0+YWx0ZXJuYXRlVGl0bGUgPSBpdGVtLT5hbHRlcm5hdGVUaXRsZSgpLnV0ZjgoKTsKLQot
ICAgIHJldHVybiBwcml2LT5hbHRlcm5hdGVUaXRsZS5kYXRhKCk7Ci19Ci0KLS8qKgotICogd2Vi
a2l0X3dlYl9oaXN0b3J5X2l0ZW1fc2V0X2FsdGVybmF0ZV90aXRsZToKLSAqIEB3ZWJfaGlzdG9y
eV9pdGVtOiBhICNXZWJLaXRXZWJIaXN0b3J5SXRlbQotICogQHRpdGxlOiB0aGUgYWx0ZXJuYXRl
IHRpdGxlIGZvciBAdGhpcyBoaXN0b3J5IGl0ZW0KLSAqCi0gKiBTZXRzIGFuIGFsdGVybmF0ZSB0
aXRsZSBmb3IgQHdlYl9oaXN0b3J5X2l0ZW0KLSAqLwotdm9pZCB3ZWJraXRfd2ViX2hpc3Rvcnlf
aXRlbV9zZXRfYWx0ZXJuYXRlX3RpdGxlKFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJIaXN0b3J5
SXRlbSwgY29uc3QgZ2NoYXIqIHRpdGxlKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9ISVNUT1JZX0lURU0od2ViSGlzdG9yeUl0ZW0pKTsKLSAgICBnX3JldHVybl9pZl9m
YWlsKHRpdGxlKTsKLQotICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtID0gY29yZSh3ZWJI
aXN0b3J5SXRlbSk7Ci0KLSAgICBpdGVtLT5zZXRBbHRlcm5hdGVUaXRsZShXVEY6OlN0cmluZzo6
ZnJvbVVURjgodGl0bGUpKTsKLSAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViSGlzdG9y
eUl0ZW0pLCAiYWx0ZXJuYXRlLXRpdGxlIik7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9oaXN0
b3J5X2l0ZW1fZ2V0X3VyaToKLSAqIEB3ZWJfaGlzdG9yeV9pdGVtOiBhICNXZWJLaXRXZWJIaXN0
b3J5SXRlbQotICoKLSAqIFJldHVybnMgdGhlIFVSSSBvZiBAdGhpcwotICoKLSAqIFJldHVybiB2
YWx1ZTogdGhlIFVSSSBvZiBAd2ViX2hpc3RvcnlfaXRlbQotICovCi1jb25zdCBnY2hhciogd2Vi
a2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3VyaShXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2ViSGlz
dG9yeUl0ZW0pCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9ISVNU
T1JZX0lURU0od2ViSGlzdG9yeUl0ZW0pLCBOVUxMKTsKLQotICAgIFdlYkNvcmU6Okhpc3RvcnlJ
dGVtKiBpdGVtID0gY29yZShXRUJLSVRfV0VCX0hJU1RPUllfSVRFTSh3ZWJIaXN0b3J5SXRlbSkp
OwotCi0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoaXRlbSwgTlVMTCk7Ci0KLSAgICBXZWJLaXRX
ZWJIaXN0b3J5SXRlbVByaXZhdGUqIHByaXYgPSB3ZWJIaXN0b3J5SXRlbS0+cHJpdjsKLSAgICBw
cml2LT51cmkgPSBpdGVtLT51cmxTdHJpbmcoKS51dGY4KCk7Ci0KLSAgICByZXR1cm4gcHJpdi0+
dXJpLmRhdGEoKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfb3Jp
Z2luYWxfdXJpOgotICogQHdlYl9oaXN0b3J5X2l0ZW06IGEgI1dlYktpdFdlYkhpc3RvcnlJdGVt
Ci0gKgotICogUmV0dXJucyB0aGUgb3JpZ2luYWwgVVJJIG9mIEB3ZWJfaGlzdG9yeV9pdGVtLgot
ICoKLSAqIFJldHVybiB2YWx1ZTogdGhlIG9yaWdpbmFsIFVSSSBvZiBAd2ViX2hpc3RvcnlfaXRl
bQotICovCi1jb25zdCBnY2hhciogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X29yaWdpbmFs
X3VyaShXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0pCi17Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9ISVNUT1JZX0lURU0od2ViSGlzdG9yeUl0ZW0p
LCBOVUxMKTsKLQotICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtID0gY29yZShXRUJLSVRf
V0VCX0hJU1RPUllfSVRFTSh3ZWJIaXN0b3J5SXRlbSkpOwotCi0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoaXRlbSwgTlVMTCk7Ci0KLSAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGUqIHBy
aXYgPSB3ZWJIaXN0b3J5SXRlbS0+cHJpdjsKLSAgICBwcml2LT5vcmlnaW5hbFVyaSA9IGl0ZW0t
Pm9yaWdpbmFsVVJMU3RyaW5nKCkudXRmOCgpOwotCi0gICAgcmV0dXJuIHdlYkhpc3RvcnlJdGVt
LT5wcml2LT5vcmlnaW5hbFVyaS5kYXRhKCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9oaXN0
b3J5X2l0ZW1fZ2V0X2xhc3RfdmlzaXN0ZWRfdGltZSA6Ci0gKiBAd2ViX2hpc3RvcnlfaXRlbTog
YSAjV2ViS2l0V2ViSGlzdG9yeUl0ZW0KLSAqCi0gKiBSZXR1cm5zIHRoZSBsYXN0IHRpbWUgQHdl
Yl9oaXN0b3J5X2l0ZW0gd2FzIHZpc2l0ZWQKLSAqCi0gKiBSZXR1cm4gdmFsdWU6IHRoZSB0aW1l
IGluIHNlY29uZHMgdGhpcyBAd2ViX2hpc3RvcnlfaXRlbSB3YXMgbGFzdCB2aXNpdGVkCi0gKi8K
LWdkb3VibGUgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X2xhc3RfdmlzaXRlZF90aW1lKFdl
YktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSkKLXsKLSAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRFTSh3ZWJIaXN0b3J5SXRlbSksIDApOwot
Ci0gICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0gPSBjb3JlKFdFQktJVF9XRUJfSElTVE9S
WV9JVEVNKHdlYkhpc3RvcnlJdGVtKSk7Ci0KLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChpdGVt
LCAwKTsKLQotICAgIC8vIEZJWE1FOiBIaXN0b3J5SXRlbSBpbiBXZWJDb3JlIGRvZXNuJ3QgaW1w
bGVtZW50IHZpc2l0IHN0YXRzIGFueW1vcmUuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNzY3My4KLSAgICByZXR1cm4gMDsKLX0KLQotLyoqCi0gKiB3
ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9jb3B5OgotICogQHdlYl9oaXN0b3J5X2l0ZW06IGEgI1dl
YktpdFdlYkhpc3RvcnlJdGVtCi0gKgotICogTWFrZXMgYSBjb3B5IG9mIHRoZSBpdGVtIGZvciB1
c2Ugd2l0aCBvdGhlciBXZWJWaWV3IG9iamVjdHMuCi0gKgotICogU2luY2U6IDEuMS4xOAotICoK
LSAqIFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIGZ1bGwpOiB0aGUgbmV3ICNXZWJLaXRXZWJIaXN0
b3J5SXRlbS4KLSAqLwotV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYmtpdF93ZWJfaGlzdG9yeV9p
dGVtX2NvcHkoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHNlbGYpCi17Ci0gICAgV2ViS2l0V2ViSGlz
dG9yeUl0ZW1Qcml2YXRlKiBzZWxmUHJpdmF0ZSA9IHNlbGYtPnByaXY7Ci0KLSAgICBXZWJLaXRX
ZWJIaXN0b3J5SXRlbSogaXRlbSA9IFdFQktJVF9XRUJfSElTVE9SWV9JVEVNKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9XRUJfSElTVE9SWV9JVEVNLCAwKSk7Ci0gICAgV2ViS2l0V2ViSGlzdG9y
eUl0ZW1Qcml2YXRlKiBwcml2ID0gaXRlbS0+cHJpdjsKLQotICAgIHByaXYtPnRpdGxlID0gc2Vs
ZlByaXZhdGUtPnRpdGxlOwotICAgIHByaXYtPmFsdGVybmF0ZVRpdGxlID0gc2VsZlByaXZhdGUt
PmFsdGVybmF0ZVRpdGxlOwotICAgIHByaXYtPnVyaSA9IHNlbGZQcml2YXRlLT51cmk7Ci0gICAg
cHJpdi0+b3JpZ2luYWxVcmkgPSBzZWxmUHJpdmF0ZS0+b3JpZ2luYWxVcmk7Ci0KLSAgICBwcml2
LT5oaXN0b3J5SXRlbSA9IHNlbGZQcml2YXRlLT5oaXN0b3J5SXRlbS0+Y29weSgpLmxlYWtSZWYo
KTsKLQotICAgIHJldHVybiBpdGVtOwotfQotCi0vKiBwcml2YXRlIG1ldGhvZHMgKi8KLQotZ2No
YXIqIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2dldF90YXJnZXQoV2ViS2l0V2ViSGlzdG9yeUl0
ZW0qIHdlYkhpc3RvcnlJdGVtKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9J
U19XRUJfSElTVE9SWV9JVEVNKHdlYkhpc3RvcnlJdGVtKSwgTlVMTCk7Ci0KLSAgICBXZWJDb3Jl
OjpIaXN0b3J5SXRlbSogaXRlbSA9IGNvcmUod2ViSGlzdG9yeUl0ZW0pOwotCi0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoaXRlbSwgTlVMTCk7Ci0KLSAgICBXVEY6OkNTdHJpbmcgdCA9IGl0ZW0t
PnRhcmdldCgpLnV0ZjgoKTsKLSAgICByZXR1cm4gZ19zdHJkdXAodC5kYXRhKCkpOwotfQotCi1n
Ym9vbGVhbiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9pc190YXJnZXRfaXRlbShXZWJLaXRXZWJI
aXN0b3J5SXRlbSogd2ViSGlzdG9yeUl0ZW0pCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0lTX1dFQl9ISVNUT1JZX0lURU0od2ViSGlzdG9yeUl0ZW0pLCBmYWxzZSk7Ci0KLSAg
ICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbSA9IGNvcmUod2ViSGlzdG9yeUl0ZW0pOwotCi0g
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoaXRlbSwgZmFsc2UpOwotCi0gICAgcmV0dXJuIGl0ZW0t
PmlzVGFyZ2V0SXRlbSgpOwotfQotCi1HTGlzdCogd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0
X2NoaWxkcmVuKFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSkKLXsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRFTSh3ZWJIaXN0b3J5
SXRlbSksIE5VTEwpOwotCi0gICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0gPSBjb3JlKHdl
Ykhpc3RvcnlJdGVtKTsKLQotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGl0ZW0sIE5VTEwpOwot
Ci0gICAgY29uc3QgV2ViQ29yZTo6SGlzdG9yeUl0ZW1WZWN0b3ImIGNoaWxkcmVuID0gaXRlbS0+
Y2hpbGRyZW4oKTsKLSAgICBpZiAoIWNoaWxkcmVuLnNpemUoKSkKLSAgICAgICAgcmV0dXJuIE5V
TEw7Ci0KLSAgICB1bnNpZ25lZCBzaXplID0gY2hpbGRyZW4uc2l6ZSgpOwotICAgIEdMaXN0KiBr
aWRzID0gTlVMTDsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAg
ICAgICBraWRzID0gZ19saXN0X3ByZXBlbmQoa2lkcywga2l0KGNoaWxkcmVuW2ldLmdldCgpKSk7
Ci0KLSAgICByZXR1cm4gZ19saXN0X3JldmVyc2Uoa2lkcyk7Ci19Ci0KLVdlYkNvcmU6Okhpc3Rv
cnlJdGVtKiBXZWJLaXQ6OmNvcmUoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVt
KQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfSElTVE9SWV9JVEVN
KHdlYkhpc3RvcnlJdGVtKSwgTlVMTCk7Ci0KLSAgICByZXR1cm4gd2ViSGlzdG9yeUl0ZW0tPnBy
aXYtPmhpc3RvcnlJdGVtOwotfQotCi1XZWJLaXRXZWJIaXN0b3J5SXRlbSogV2ViS2l0OjpraXQo
UGFzc1JlZlB0cjxXZWJDb3JlOjpIaXN0b3J5SXRlbT4gaGlzdG9yeUl0ZW0pCi17Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoaGlzdG9yeUl0ZW0sIE5VTEwpOwotCi0gICAgUmVmUHRyPFdlYkNv
cmU6Okhpc3RvcnlJdGVtPiBpdGVtID0gaGlzdG9yeUl0ZW07Ci0gICAgR0hhc2hUYWJsZSogdGFi
bGUgPSB3ZWJraXRfaGlzdG9yeV9pdGVtcygpOwotICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3
ZWJIaXN0b3J5SXRlbSA9IChXZWJLaXRXZWJIaXN0b3J5SXRlbSopIGdfaGFzaF90YWJsZV9sb29r
dXAodGFibGUsIGl0ZW0uZ2V0KCkpOwotCi0gICAgaWYgKCF3ZWJIaXN0b3J5SXRlbSkgewotICAg
ICAgICB3ZWJIaXN0b3J5SXRlbSA9IFdFQktJVF9XRUJfSElTVE9SWV9JVEVNKGdfb2JqZWN0X25l
dyhXRUJLSVRfVFlQRV9XRUJfSElTVE9SWV9JVEVNLCBOVUxMKSk7Ci0gICAgICAgIFdlYktpdFdl
Ykhpc3RvcnlJdGVtUHJpdmF0ZSogcHJpdiA9IHdlYkhpc3RvcnlJdGVtLT5wcml2OwotCi0gICAg
ICAgIHByaXYtPmhpc3RvcnlJdGVtID0gaXRlbS5yZWxlYXNlKCkubGVha1JlZigpOwotICAgICAg
ICB3ZWJraXRfaGlzdG9yeV9pdGVtX2FkZCh3ZWJIaXN0b3J5SXRlbSwgcHJpdi0+aGlzdG9yeUl0
ZW0pOwotICAgIH0KLQotICAgIHJldHVybiB3ZWJIaXN0b3J5SXRlbTsKLX0KLQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtLmggYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDJjNjk5ZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW0uaAorKysgL2Rldi9udWxsCkBAIC0xLDkwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpvCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwot
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNp
Zm5kZWYgd2Via2l0d2ViaGlzdG9yeWl0ZW1faAotI2RlZmluZSB3ZWJraXR3ZWJoaXN0b3J5aXRl
bV9oCi0KLSNpbmNsdWRlIDxnbGliLmg+Ci0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLQotI2lu
Y2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+Ci0KLUdfQkVHSU5fREVDTFMKLQotI2RlZmlu
ZSBXRUJLSVRfVFlQRV9XRUJfSElTVE9SWV9JVEVNICAgICAgICAgICAgKHdlYmtpdF93ZWJfaGlz
dG9yeV9pdGVtX2dldF90eXBlKCkpCi0jZGVmaW5lIFdFQktJVF9XRUJfSElTVE9SWV9JVEVNKG9i
aikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9U
WVBFX1dFQl9ISVNUT1JZX0lURU0sIFdlYktpdFdlYkhpc3RvcnlJdGVtKSkKLSNkZWZpbmUgV0VC
S0lUX1dFQl9ISVNUT1JZX0lURU1fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
Q0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VCX0hJU1RPUllfSVRFTSwgV2ViS2l0V2ViSGlz
dG9yeUl0ZW1DbGFzcykpCi0jZGVmaW5lIFdFQktJVF9JU19XRUJfSElTVE9SWV9JVEVNKG9iaikg
ICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1dF
Ql9ISVNUT1JZX0lURU0pKQotI2RlZmluZSBXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRFTV9DTEFT
UyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9X
RUJfSElTVE9SWV9JVEVNKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9ISVNUT1JZX0lURU1fR0VUX0NM
QVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVf
V0VCX0hJU1RPUllfSVRFTSwgV2ViS2l0V2ViSGlzdG9yeUl0ZW1DbGFzcykpCi0KLXR5cGVkZWYg
c3RydWN0IF9XZWJLaXRXZWJIaXN0b3J5SXRlbVByaXZhdGUgV2ViS2l0V2ViSGlzdG9yeUl0ZW1Q
cml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdFdlYkhpc3RvcnlJdGVtIHsKLSAgICBHT2JqZWN0IHBh
cmVudF9pbnN0YW5jZTsKLQotICAgIC8qPCBwcml2YXRlID4qLwotICAgIFdlYktpdFdlYkhpc3Rv
cnlJdGVtUHJpdmF0ZSAqcHJpdjsKLX07Ci0KLXN0cnVjdCBfV2ViS2l0V2ViSGlzdG9yeUl0ZW1D
bGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIC8qIFBhZGRpbmcg
Zm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2
b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMp
ICh2b2lkKTsKLX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF93ZWJfaGlzdG9yeV9pdGVt
X2dldF90eXBlICh2b2lkKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRXZWJIaXN0b3J5SXRlbSAqCi13
ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXcgKHZvaWQpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdl
Ykhpc3RvcnlJdGVtICoKLXdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2RhdGEgICAg
ICAgICAoY29uc3QgZ2NoYXIgICAgICAgICAgKnVyaSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKnRpdGxlKTsKLQot
V0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRfdGl0
bGUgICAgICAgICAgICAgKFdlYktpdFdlYkhpc3RvcnlJdGVtICp3ZWJfaGlzdG9yeV9pdGVtKTsK
LQotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9nZXRf
YWx0ZXJuYXRlX3RpdGxlICAgKFdlYktpdFdlYkhpc3RvcnlJdGVtICp3ZWJfaGlzdG9yeV9pdGVt
KTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9zZXRfYWx0ZXJu
YXRlX3RpdGxlICAgKFdlYktpdFdlYkhpc3RvcnlJdGVtICp3ZWJfaGlzdG9yeV9pdGVtLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAg
ICAgICAgICAqdGl0bGUpOwotCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKLXdlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX2dldF91cmkgICAgICAgICAgICAgICAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0g
KndlYl9oaXN0b3J5X2l0ZW0pOwotCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKLXdlYmtpdF93
ZWJfaGlzdG9yeV9pdGVtX2dldF9vcmlnaW5hbF91cmkgICAgICAoV2ViS2l0V2ViSGlzdG9yeUl0
ZW0gKndlYl9oaXN0b3J5X2l0ZW0pOwotCi1XRUJLSVRfQVBJIGdkb3VibGUKLXdlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX2dldF9sYXN0X3Zpc2l0ZWRfdGltZSAoV2ViS2l0V2ViSGlzdG9yeUl0ZW0g
KndlYl9oaXN0b3J5X2l0ZW0pOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYkhpc3RvcnlJdGVtKgot
d2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fY29weSAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJI
aXN0b3J5SXRlbSAqd2ViX2hpc3RvcnlfaXRlbSk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZiAv
KiB3ZWJraXR3ZWJoaXN0b3J5aXRlbV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW1wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViaGlzdG9yeWl0ZW1wcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDBiYmU5MDcuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYmhpc3RvcnlpdGVtcHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBIb2xnZXIgSGFu
cyBQZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDA4IEphbiBNaWNoYWVsIEMuIEFs
b256bwotICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGVf
aAotI2RlZmluZSB3ZWJraXR3ZWJoaXN0b3J5aXRlbXByaXZhdGVfaAotCi0jaW5jbHVkZSAiSGlz
dG9yeUl0ZW0uaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYkNvcmU6Okhpc3RvcnlJdGVt
KiBjb3JlKFdlYktpdFdlYkhpc3RvcnlJdGVtKik7Ci1XZWJLaXRXZWJIaXN0b3J5SXRlbSoga2l0
KFBhc3NSZWZQdHI8V2ViQ29yZTo6SGlzdG9yeUl0ZW0+KTsKLQotfQotCi1leHRlcm4gIkMiIHsK
LQotR0hhc2hUYWJsZSogd2Via2l0X2hpc3RvcnlfaXRlbXMoKTsKLQotV2ViS2l0V2ViSGlzdG9y
eUl0ZW0qIHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVfaXRlbShQYXNzUmVm
UHRyPFdlYkNvcmU6Okhpc3RvcnlJdGVtPik7Ci0KLVdFQktJVF9BUEkgZ2NoYXIqIHdlYmtpdF93
ZWJfaGlzdG9yeV9pdGVtX2dldF90YXJnZXQoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKTsKLQotV0VC
S0lUX0FQSSBnYm9vbGVhbiB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9pc190YXJnZXRfaXRlbShX
ZWJLaXRXZWJIaXN0b3J5SXRlbSopOwotCi1XRUJLSVRfQVBJIEdMaXN0KiB3ZWJraXRfd2ViX2hp
c3RvcnlfaXRlbV9nZXRfY2hpbGRyZW4oV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKTsKLQotfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNw
ZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyYjVmY2YuLjAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw1NjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBHdXN0YXZv
IE5vcm9uaGEgU2lsdmEKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBIb2xnZXIgSGFucyBQ
ZXRlciBGcmV5dGhlcgotICogQ29weXJpZ2h0IChDKSAyMDA5IENvbGxhYm9yYSBMdGQuCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJpbnNwZWN0b3IuaCIKLQotI2luY2x1
ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIgotI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKLSNp
bmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50R3RrLmgi
Ci0jaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIkludFBvaW50LmgiCi0jaW5jbHVkZSAiUGFnZS5o
IgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCi0jaW5jbHVkZSAiUmVuZGVyVmlldy5oIgotI2lu
Y2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0Z2xvYmFsc3By
aXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXRtYXJzaGFsLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vi
aW5zcGVjdG9ycHJpdmF0ZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0KLS8qKgot
ICogU0VDVElPTjp3ZWJraXR3ZWJpbnNwZWN0b3IKLSAqIEBzaG9ydF9kZXNjcmlwdGlvbjogQWNj
ZXNzIHRvIHRoZSBXZWJLaXQgSW5zcGVjdG9yCi0gKgotICogVGhlIFdlYktpdCBJbnNwZWN0b3Ig
aXMgYSBncmFwaGljYWwgdG9vbCB0byBpbnNwZWN0IGFuZCBjaGFuZ2UKLSAqIHRoZSBjb250ZW50
IG9mIGEgI1dlYktpdFdlYlZpZXcuIEl0IGFsc28gaW5jbHVkZXMgYW4gaW50ZXJhY3RpdmUKLSAq
IEphdmFTY3JpcHREZWJ1Z2dlci4gVXNpbmcgdGhpcyBjbGFzcyBvbmUgY2FuIGdldCBhIEd0a1dp
ZGdldCB3aGljaAotICogY2FuIGJlIGVtYmVkZGVkIGludG8gYW4gYXBwbGljYXRpb24gdG8gc2hv
dyB0aGUgaW5zcGVjdG9yLgotICoKLSAqIFRoZSBpbnNwZWN0b3IgaXMgYXZhaWxhYmxlIHdoZW4g
dGhlICNXZWJLaXRXZWJTZXR0aW5ncyBvZiB0aGUKLSAqICNXZWJLaXRXZWJWaWV3IGhhcyBzZXQg
dGhlICNXZWJLaXRXZWJTZXR0aW5nczplbmFibGUtZGV2ZWxvcGVyLWV4dHJhcwotICogdG8gdHJ1
ZSBvdGhlcndpc2Ugbm8gaW5zcGVjdG9yIGlzIGF2YWlsYWJsZS4KLSAqCi0gKiA8aW5mb3JtYWxl
eGFtcGxlPjxwcm9ncmFtbGlzdGluZz4KLSAqIC88IS0tIC0tPiogRW5hYmxlIHRoZSBkZXZlbG9w
ZXIgZXh0cmFzICo8IS0tIC0tPi8KLSAqIFdlYktpdFdlYlNldHRpbmdzICpzZXR0aW5nID0gd2Vi
a2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyAoV0VCS0lUX1dFQl9WSUVXKG15X3dlYnZpZXcpKTsK
LSAqIGdfb2JqZWN0X3NldCAoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLWRldmVsb3Blci1l
eHRyYXMiLCBUUlVFLCBOVUxMKTsKLSAqCi0gKiAvPCEtLSAtLT4qIGxvYWQgc29tZSBkYXRhIG9y
IHJlbG9hZCB0byBiZSBhYmxlIHRvIGluc3BlY3QgdGhlIHBhZ2UqPCEtLSAtLT4vCi0gKiB3ZWJr
aXRfd2ViX3ZpZXdfb3BlbiAoV0VCS0lUX1dFQl9WSUVXKG15X3dlYnZpZXcpLCAiaHR0cDovL3d3
dy5nbm9tZS5vcmciKTsKLSAqCi0gKiAvPCEtLSAtLT4qIEVtYmVkIHRoZSBpbnNwZWN0b3Igc29t
ZXdoZXJlICo8IS0tIC0tPi8KLSAqIFdlYktpdFdlYkluc3BlY3RvciAqaW5zcGVjdG9yID0gd2Vi
a2l0X3dlYl92aWV3X2dldF9pbnNwZWN0b3IgKFdFQktJVF9XRUJfVklFVyhteV93ZWJ2aWV3KSk7
Ci0gKiBnX3NpZ25hbF9jb25uZWN0IChHX09CSkVDVCAoaW5zcGVjdG9yKSwgImluc3BlY3Qtd2Vi
LXZpZXciLCBHX0NBTExCQUNLKGNyZWF0ZV9ndGtfd2luZG93X2Fyb3VuZF9pdCksIE5VTEwpOwot
ICogZ19zaWduYWxfY29ubmVjdCAoR19PQkpFQ1QgKGluc3BlY3RvciksICJzaG93LXdpbmRvdyIs
IEdfQ0FMTEJBQ0soc2hvd19pbnBlY3Rvcl93aW5kb3cpLCBOVUxMKSk7Ci0gKiBnX3NpZ25hbF9j
b25uZWN0IChHX09CSkVDVCAoaW5zcGVjdG9yKSwgIm5vdGlmeTo6aW5zcGVjdGVkLXVyaSIsIEdf
Q0FMTEJBQ0soaW5zcGVjdGVkX3VyaV9jaGFuZ2VkX2RvX3N0dWZmKSwgTlVMTCk7Ci0gKiA8L3By
b2dyYW1saXN0aW5nPjwvaW5mb3JtYWxleGFtcGxlPgotICovCi0KLXVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotZW51bSB7Ci0gICAgSU5TUEVDVF9X
RUJfVklFVywKLSAgICBTSE9XX1dJTkRPVywKLSAgICBBVFRBQ0hfV0lORE9XLAotICAgIERFVEFD
SF9XSU5ET1csCi0gICAgQ0xPU0VfV0lORE9XLAotICAgIEZJTklTSEVELAotICAgIExBU1RfU0lH
TkFMCi19OwotCi1zdGF0aWMgZ3VpbnQgd2Via2l0X3dlYl9pbnNwZWN0b3Jfc2lnbmFsc1tMQVNU
X1NJR05BTF0gPSB7IDAsIH07Ci0KLWVudW0gewotICAgIFBST1BfMCwKLQotICAgIFBST1BfV0VC
X1ZJRVcsCi0gICAgUFJPUF9JTlNQRUNURURfVVJJLAotICAgIFBST1BfSkFWQVNDUklQVF9QUk9G
SUxJTkdfRU5BQkxFRCwKLSAgICBQUk9QX1RJTUVMSU5FX1BST0ZJTElOR19FTkFCTEVECi19Owot
Ci1HX0RFRklORV9UWVBFKFdlYktpdFdlYkluc3BlY3Rvciwgd2Via2l0X3dlYl9pbnNwZWN0b3Is
IEdfVFlQRV9PQkpFQ1QpCi0KLXN0cnVjdCBfV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZSB7Ci0g
ICAgV2ViQ29yZTo6UGFnZSogcGFnZTsKLSAgICBXZWJLaXRXZWJWaWV3KiBpbnNwZWN0b3Jfdmll
dzsKLSAgICBnY2hhciogaW5zcGVjdGVkX3VyaTsKLX07Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfaW5zcGVjdG9yX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCk7Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfaW5zcGVjdG9yX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHBy
b3BfaWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKTsKLQotc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcF9pZCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpOwotCi1zdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0X2luc3BlY3Rfd2ViX3ZpZXdfcmVxdWVzdF9oYW5kbGVkKEdTaWdu
YWxJbnZvY2F0aW9uSGludCosIEdWYWx1ZSogcmV0dXJuQWNjdSwgY29uc3QgR1ZhbHVlKiBoYW5k
bGVyUmV0dXJuLCBncG9pbnRlcikKLXsKLSAgICBnYm9vbGVhbiBjb250aW51ZUVtaXNzaW9uID0g
VFJVRTsKLSAgICBncG9pbnRlciBuZXdXZWJWaWV3ID0gZ192YWx1ZV9nZXRfb2JqZWN0KGhhbmRs
ZXJSZXR1cm4pOwotICAgIGdfdmFsdWVfc2V0X29iamVjdChyZXR1cm5BY2N1LCBuZXdXZWJWaWV3
KTsKLQotICAgIGlmIChuZXdXZWJWaWV3KQotICAgICAgICBjb250aW51ZUVtaXNzaW9uID0gRkFM
U0U7Ci0KLSAgICByZXR1cm4gY29udGludWVFbWlzc2lvbjsKLX0KLQotc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl9pbnNwZWN0b3JfY2xhc3NfaW5pdChXZWJLaXRXZWJJbnNwZWN0b3JDbGFzcyoga2xh
c3MpCi17Ci0gICAgR09iamVjdENsYXNzKiBnb2JqZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1Mo
a2xhc3MpOwotICAgIGdvYmplY3RfY2xhc3MtPmZpbmFsaXplID0gd2Via2l0X3dlYl9pbnNwZWN0
b3JfZmluYWxpemU7Ci0gICAgZ29iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X3dl
Yl9pbnNwZWN0b3Jfc2V0X3Byb3BlcnR5OwotICAgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0
eSA9IHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF9wcm9wZXJ0eTsKLQotICAgIC8qKgotICAgICAq
IFdlYktpdFdlYkluc3BlY3Rvcjo6aW5zcGVjdC13ZWItdmlldzoKLSAgICAgKiBAd2ViX2luc3Bl
Y3RvcjogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKLSAgICAgKiBA
d2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyB3aGljaCB3aWxsIGJlIGluc3BlY3RlZAotICAg
ICAqCi0gICAgICogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyB0aGUgJ2luc3BlY3Qn
IGNvbnRleHQgbWVudSBpdGVtCi0gICAgICogdG8gaW5zcGVjdCBhIHdlYiB2aWV3LiBUaGUgYXBw
bGljYXRpb24gd2hpY2ggaXMgaW50ZXJlc3RlZCBpbgotICAgICAqIHRoZSBpbnNwZWN0b3Igc2hv
dWxkIGNyZWF0ZSBhIHdpbmRvdywgb3Igb3RoZXJ3aXNlIGFkZCB0aGUKLSAgICAgKiAjV2ViS2l0
V2ViVmlldyBpdCBjcmVhdGVzIHRvIGFuIGV4aXN0aW5nIHdpbmRvdy4KLSAgICAgKgotICAgICAq
IFlvdSBkb24ndCBuZWVkIHRvIGhhbmRsZSB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZQotICAg
ICAqICNXZWJLaXRXZWJWaWV3IGluc3RhbmNlIHlvdSBjcmVhdGU7IHRoZSB3aWRnZXQgdG8gd2hp
Y2ggeW91IGFkZAotICAgICAqIGl0IHdpbGwgZG8gdGhhdC4KLSAgICAgKgotICAgICAqIFJldHVy
biB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiBhIG5ld2x5IGFsbG9jYXRlZCAjV2ViS2l0V2ViVmll
dyBvciAlTlVMTAotICAgICAqCi0gICAgICogU2luY2U6IDEuMC4zCi0gICAgICovCi0gICAgd2Vi
a2l0X3dlYl9pbnNwZWN0b3Jfc2lnbmFsc1tJTlNQRUNUX1dFQl9WSUVXXSA9IGdfc2lnbmFsX25l
dygiaW5zcGVjdC13ZWItdmlldyIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKGtsYXNzKSwK
LSAgICAgICAgKEdTaWduYWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAg
ICAgICAgd2Via2l0X2luc3BlY3Rfd2ViX3ZpZXdfcmVxdWVzdF9oYW5kbGVkLAotICAgICAgICBO
VUxMLAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9PQkpFQ1RfX09CSkVDVCwKLSAgICAgICAgV0VC
S0lUX1RZUEVfV0VCX1ZJRVcgLCAxLAotICAgICAgICBXRUJLSVRfVFlQRV9XRUJfVklFVyk7Ci0K
LSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJJbnNwZWN0b3I6OnNob3ctd2luZG93OgotICAgICAq
IEB3ZWJfaW5zcGVjdG9yOiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRl
ZAotICAgICAqIEByZXR1cm46ICVUUlVFIGlmIHRoZSBzaWduYWwgaGFzIGJlZW4gaGFuZGxlZAot
ICAgICAqCi0gICAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnNwZWN0b3Igd2luZG93IHNob3VsZCBi
ZSBkaXNwbGF5ZWQuIE5vdGljZQotICAgICAqIHRoYXQgdGhlIHdpbmRvdyBtdXN0IGhhdmUgYmVl
biBjcmVhdGVkIGFscmVhZHkgYnkgaGFuZGxpbmcKLSAgICAgKiAjV2ViS2l0V2ViSW5zcGVjdG9y
OjppbnNwZWN0LXdlYi12aWV3LgotICAgICAqCi0gICAgICogU2luY2U6IDEuMC4zCi0gICAgICov
Ci0gICAgd2Via2l0X3dlYl9pbnNwZWN0b3Jfc2lnbmFsc1tTSE9XX1dJTkRPV10gPSBnX3NpZ25h
bF9uZXcoInNob3ctd2luZG93IiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Moa2xhc3MpLAot
ICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAg
ICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0gICAgICAgIE5VTEwsCi0g
ICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1ZPSUQsCi0gICAgICAgIEdfVFlQRV9CT09M
RUFOICwgMCk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJJbnNwZWN0b3I6OmF0dGFjaC13
aW5kb3c6Ci0gICAgICogQHdlYl9pbnNwZWN0b3I6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNp
Z25hbCBpcyBlbWl0dGVkCi0gICAgICogQHJldHVybjogJVRSVUUgaWYgdGhlIHNpZ25hbCBoYXMg
YmVlbiBoYW5kbGVkCi0gICAgICoKLSAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIGluc3BlY3RvciBz
aG91bGQgYXBwZWFyIGF0IHRoZSBzYW1lIHdpbmRvdyBhcwotICAgICAqIHRoZSAjV2ViS2l0V2Vi
VmlldyBiZWluZyBpbnNwZWN0ZWQuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4wLjMKLSAgICAg
Ki8KLSAgICB3ZWJraXRfd2ViX2luc3BlY3Rvcl9zaWduYWxzW0FUVEFDSF9XSU5ET1ddID0gZ19z
aWduYWxfbmV3KCJhdHRhY2gtd2luZG93IiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Moa2xh
c3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAw
LAotICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0gICAgICAgIE5V
TEwsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1ZPSUQsCi0gICAgICAgIEdfVFlQ
RV9CT09MRUFOICwgMCk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJJbnNwZWN0b3I6OmRl
dGFjaC13aW5kb3c6Ci0gICAgICogQHdlYl9pbnNwZWN0b3I6IHRoZSBvYmplY3Qgb24gd2hpY2gg
dGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQHJldHVybjogJVRSVUUgaWYgdGhlIHNpZ25h
bCBoYXMgYmVlbiBoYW5kbGVkCi0gICAgICoKLSAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIGluc3Bl
Y3RvciBzaG91bGQgYXBwZWFyIGluIGEgc2VwYXJhdGUgd2luZG93LgotICAgICAqCi0gICAgICog
U2luY2U6IDEuMC4zCi0gICAgICovCi0gICAgd2Via2l0X3dlYl9pbnNwZWN0b3Jfc2lnbmFsc1tE
RVRBQ0hfV0lORE9XXSA9IGdfc2lnbmFsX25ldygiZGV0YWNoLXdpbmRvdyIsCi0gICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKGtsYXNzKSwKLSAgICAgICAgKEdTaWduYWxGbGFncylHX1NJR05BTF9S
VU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9o
YW5kbGVkLAotICAgICAgICBOVUxMLAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19W
T0lELAotICAgICAgICBHX1RZUEVfQk9PTEVBTiAsIDApOwotCi0gICAgLyoqCi0gICAgICogV2Vi
S2l0V2ViSW5zcGVjdG9yOjpjbG9zZS13aW5kb3c6Ci0gICAgICogQHdlYl9pbnNwZWN0b3I6IHRo
ZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQHJldHVybjog
JVRSVUUgaWYgdGhlIHNpZ25hbCBoYXMgYmVlbiBoYW5kbGVkCi0gICAgICoKLSAgICAgKiBFbWl0
dGVkIHdoZW4gdGhlIGluc3BlY3RvciB3aW5kb3cgc2hvdWxkIGJlIGNsb3NlZC4gWW91IGNhbgot
ICAgICAqIGRlc3Ryb3kgdGhlIHdpbmRvdyBvciBoaWRlIGl0IHNvIHRoYXQgaXQgY2FuIGJlIGRp
c3BsYXllZCBhZ2FpbgotICAgICAqIGJ5IGhhbmRsaW5nICNXZWJLaXRXZWJJbnNwZWN0b3I6OnNo
b3ctd2luZG93IGxhdGVyIG9uLgotICAgICAqCi0gICAgICogTm90aWNlIHRoYXQgdGhlIGluc3Bl
Y3RlZCAjV2ViS2l0V2ViVmlldyBtYXkgbm8gbG9uZ2VyIGV4aXN0Ci0gICAgICogd2hlbiB0aGlz
IHNpZ25hbCBpcyBlbWl0dGVkLgotICAgICAqCi0gICAgICogTm90aWNlLCB0b28sIHRoYXQgaWYg
eW91IGRlY2lkZSB0byBkZXN0cm95IHRoZSB3aW5kb3csCi0gICAgICogI1dlYktpdFdlYkluc3Bl
Y3Rvcjo6aW5zcGVjdC13ZWItdmlldyB3aWxsIGJlIGVtbWl0ZWQgYWdhaW4sIHdoZW4gdGhlIHVz
ZXIKLSAgICAgKiBpbnNwZWN0cyBhbiBlbGVtZW50LgotICAgICAqCi0gICAgICogU2luY2U6IDEu
MC4zCi0gICAgICovCi0gICAgd2Via2l0X3dlYl9pbnNwZWN0b3Jfc2lnbmFsc1tDTE9TRV9XSU5E
T1ddID0gZ19zaWduYWxfbmV3KCJjbG9zZS13aW5kb3ciLAotICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyhrbGFzcyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpR19TSUdOQUxfUlVOX0xBU1QsCi0g
ICAgICAgIDAsCi0gICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKLSAg
ICAgICAgTlVMTCwKLSAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fVk9JRCwKLSAgICAg
ICAgR19UWVBFX0JPT0xFQU4gLCAwKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYkluc3Bl
Y3Rvcjo6ZmluaXNoZWQ6Ci0gICAgICogQHdlYl9pbnNwZWN0b3I6IHRoZSBvYmplY3Qgb24gd2hp
Y2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICoKLSAgICAgKiBFbWl0dGVkIHdoZW4gdGhl
IGluc3BlY3Rpb24gaXMgZG9uZS4gWW91IHNob3VsZCByZWxlYXNlIHlvdXIKLSAgICAgKiByZWZl
cmVuY2VzIG9uIHRoZSBpbnNwZWN0b3IgYXQgdGhpcyB0aW1lLiBUaGUgaW5zcGVjdGVkCi0gICAg
ICogI1dlYktpdFdlYlZpZXcgbWF5IG5vIGxvbmdlciBleGlzdCB3aGVuIHRoaXMgc2lnbmFsIGlz
IGVtaXR0ZWQuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4wLjMKLSAgICAgKi8KLSAgICB3ZWJr
aXRfd2ViX2luc3BlY3Rvcl9zaWduYWxzW0ZJTklTSEVEXSA9IGdfc2lnbmFsX25ldygiZmluaXNo
ZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyhrbGFzcyksCi0gICAgICAgIChHU2lnbmFs
RmxhZ3MpR19TSUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIDAsCi0gICAgICAgIE5VTEwsCi0gICAg
ICAgIE5VTEwsCi0gICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAotICAgICAg
ICBHX1RZUEVfTk9ORSAsIDApOwotCi0gICAgLyoKLSAgICAgKiBwcm9wZXJ0aWVzCi0gICAgICov
Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJJbnNwZWN0b3I6d2ViLXZpZXc6Ci0gICAgICoK
LSAgICAgKiBUaGUgV2ViIFZpZXcgdGhhdCByZW5kZXJzIHRoZSBXZWIgSW5zcGVjdG9yIGl0c2Vs
Zi4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjAuMwotICAgICAqLwotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywgUFJPUF9XRUJfVklFVywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoIndlYi12
aWV3IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXygiV2ViIFZpZXciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiVGhlIFdlYiBWaWV3IHRoYXQgcmVuZGVycyB0aGUgV2Vi
IEluc3BlY3RvciBpdHNlbGYiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1ZJRVcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEQUJMRSkpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViSW5zcGVjdG9yOmluc3BlY3Rl
ZC11cmk6Ci0gICAgICoKLSAgICAgKiBUaGUgVVJJIHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGlu
c3BlY3RlZC4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjAuMwotICAgICAqLwotICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywgUFJPUF9JTlNQRUNURURf
VVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0
cmluZygiaW5zcGVjdGVkLXVyaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIkluc3BlY3RlZCBVUkkiKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIFVSSSB0aGF0
IGlzIGN1cnJlbnRseSBiZWluZyBpbnNwZWN0ZWQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURB
QkxFKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYkluc3BlY3RvcjpqYXZhc2NyaXB0LXBy
b2ZpbGluZy1lbmFibGVkOgotICAgICoKLSAgICAqIFRoaXMgaXMgZW5hYmxpbmcgSmF2YVNjcmlw
dCBwcm9maWxpbmcgaW4gdGhlIEluc3BlY3Rvci4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4xLjEK
LSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFz
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfSkFWQVNDUklQVF9Q
Uk9GSUxJTkdfRU5BQkxFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf
cGFyYW1fc3BlY19ib29sZWFuKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJqYXZhc2NyaXB0LXByb2ZpbGluZy1lbmFibGVkIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfKCJFbmFibGUgSmF2YVNjcmlwdCBwcm9maWxpbmciKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJQcm9maWxlIHRoZSBleGVj
dXRlZCBKYXZhU2NyaXB0LiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJ
VF9QQVJBTV9SRUFEV1JJVEUpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0V2ViSW5zcGVjdG9y
OnRpbWVsaW5lLXByb2ZpbGluZy1lbmFibGVkOgotICAgICoKLSAgICAqIFRoaXMgaXMgZW5hYmxp
bmcgVGltZWxpbmUgcHJvZmlsaW5nIGluIHRoZSBJbnNwZWN0b3IuCi0gICAgKgotICAgICogU2lu
Y2U6IDEuMS4xNwotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShn
b2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9U
SU1FTElORV9QUk9GSUxJTkdfRU5BQkxFRCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ0aW1lbGluZS1wcm9maWxpbmctZW5hYmxlZCIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5hYmxlIFRpbWVsaW5lIHByb2ZpbGluZyIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlByb2ZpbGUgdGhl
IFdlYkNvcmUgaW5zdHJ1bWVudGF0aW9uLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKLQotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJp
dmF0ZShrbGFzcywgc2l6ZW9mKFdlYktpdFdlYkluc3BlY3RvclByaXZhdGUpKTsKLX0KLQotc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfaW5pdChXZWJLaXRXZWJJbnNwZWN0b3IqIHdl
Yl9pbnNwZWN0b3IpCi17Ci0gICAgd2ViX2luc3BlY3Rvci0+cHJpdiA9IEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSh3ZWJfaW5zcGVjdG9yLCBXRUJLSVRfVFlQRV9XRUJfSU5TUEVDVE9SLCBX
ZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9p
bnNwZWN0b3JfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQotewotICAgIFdlYktpdFdlYkluc3Bl
Y3Rvciogd2ViX2luc3BlY3RvciA9IFdFQktJVF9XRUJfSU5TUEVDVE9SKG9iamVjdCk7Ci0gICAg
V2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZSogcHJpdiA9IHdlYl9pbnNwZWN0b3ItPnByaXY7Ci0K
LSAgICBpZiAocHJpdi0+aW5zcGVjdG9yX3ZpZXcpCi0gICAgICAgIGdfb2JqZWN0X3VucmVmKHBy
aXYtPmluc3BlY3Rvcl92aWV3KTsKLQotICAgIGlmIChwcml2LT5pbnNwZWN0ZWRfdXJpKQotICAg
ICAgICBnX2ZyZWUocHJpdi0+aW5zcGVjdGVkX3VyaSk7Ci0KLSAgICBHX09CSkVDVF9DTEFTUyh3
ZWJraXRfd2ViX2luc3BlY3Rvcl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwotfQot
Ci1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRfcHJvcGVydHkoR09iamVjdCog
b2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBw
c3BlYykKLXsKLSAgICBXZWJLaXRXZWJJbnNwZWN0b3IqIHdlYl9pbnNwZWN0b3IgPSBXRUJLSVRf
V0VCX0lOU1BFQ1RPUihvYmplY3QpOwotICAgIFdlYktpdFdlYkluc3BlY3RvclByaXZhdGUqIHBy
aXYgPSB3ZWJfaW5zcGVjdG9yLT5wcml2OwotCi0gICAgc3dpdGNoKHByb3BfaWQpIHsKLSAgICBj
YXNlIFBST1BfSkFWQVNDUklQVF9QUk9GSUxJTkdfRU5BQkxFRDogewotICAgICAgICBib29sIGVu
YWJsZWQgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKLSAgICAgICAgcHJpdi0+cGFnZS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldFByb2ZpbGVyRW5hYmxlZChlbmFibGVkKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgUFJPUF9USU1FTElORV9QUk9GSUxJTkdfRU5BQkxF
RDogewotICAgICAgICBnX21lc3NhZ2UoIlBST1BfVElNRUxJTkVfUFJPRklMSU5HX0VOQUJMRUQg
aGFzIGJlZW4gZGVwcmVjYXRlZFxuIik7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBkZWZh
dWx0OgotICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBw
cm9wX2lkLCBwc3BlYyk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQg
d2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQg
cHJvcF9pZCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0
V2ViSW5zcGVjdG9yKiB3ZWJfaW5zcGVjdG9yID0gV0VCS0lUX1dFQl9JTlNQRUNUT1Iob2JqZWN0
KTsKLSAgICBXZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlKiBwcml2ID0gd2ViX2luc3BlY3Rvci0+
cHJpdjsKLQotICAgIHN3aXRjaCAocHJvcF9pZCkgewotICAgIGNhc2UgUFJPUF9XRUJfVklFVzoK
LSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCBwcml2LT5pbnNwZWN0b3Jfdmlldyk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9JTlNQRUNURURfVVJJOgotICAgICAgICBn
X3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHByaXYtPmluc3BlY3RlZF91cmkpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFBST1BfSkFWQVNDUklQVF9QUk9GSUxJTkdfRU5BQkxFRDoKLSAgICAg
ICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+cGFnZS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLnByb2ZpbGVyRW5hYmxlZCgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X1RJTUVMSU5FX1BST0ZJTElOR19FTkFCTEVEOgotICAgICAgICBnX21lc3NhZ2UoIlBST1BfVElN
RUxJTkVfUFJPRklMSU5HX0VOQUJMRUQgaGFzIGJlZW4gZGVwcmVjYXRlZFxuIik7Ci0gICAgICAg
IGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q
RVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQot
fQotCi0vLyBpbnRlcm5hbCB1c2Ugb25seQotdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRf
d2ViX3ZpZXcoV2ViS2l0V2ViSW5zcGVjdG9yICp3ZWJfaW5zcGVjdG9yLCBXZWJLaXRXZWJWaWV3
ICp3ZWJfdmlldykKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfSU5TUEVD
VE9SKHdlYl9pbnNwZWN0b3IpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJf
VklFVyh3ZWJfdmlldykpOwotCi0gICAgV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZSogcHJpdiA9
IHdlYl9pbnNwZWN0b3ItPnByaXY7Ci0KLSAgICBpZiAocHJpdi0+aW5zcGVjdG9yX3ZpZXcpCi0g
ICAgICAgIGdfb2JqZWN0X3VucmVmKHByaXYtPmluc3BlY3Rvcl92aWV3KTsKLQotICAgIGdfb2Jq
ZWN0X3JlZih3ZWJfdmlldyk7Ci0gICAgcHJpdi0+aW5zcGVjdG9yX3ZpZXcgPSB3ZWJfdmlldzsK
LX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfd2ViX3ZpZXc6Ci0gKiBAd2Vi
X2luc3BlY3RvcjogYSAjV2ViS2l0V2ViSW5zcGVjdG9yCi0gKgotICogT2J0YWlucyB0aGUgI1dl
YktpdFdlYlZpZXcgdGhhdCBpcyB1c2VkIHRvIHJlbmRlciB0aGUKLSAqIGluc3BlY3Rvci4gVGhl
ICNXZWJLaXRXZWJWaWV3IGluc3RhbmNlIGlzIGNyZWF0ZWQgYnkgdGhlCi0gKiBhcHBsaWNhdGlv
biwgYnkgaGFuZGxpbmcgdGhlICNXZWJLaXRXZWJJbnNwZWN0b3I6Omluc3BlY3Qtd2ViLXZpZXcg
c2lnbmFsLiBUaGlzIG1lYW5zCi0gKiB0aGF0IHRoaXMgbWV0aG9kIG1heSByZXR1cm4gJU5VTEwg
aWYgdGhlIHVzZXIgaGFzbid0IGluc3BlY3RlZAotICogYW55dGhpbmcuCi0gKgotICogUmV0dXJu
czogKHRyYW5zZmVyIG5vbmUpOiB0aGUgI1dlYktpdFdlYlZpZXcgaW5zdGFuY2UgdGhhdCBpcyB1
c2VkCi0gKiB0byByZW5kZXIgdGhlIGluc3BlY3RvciBvciAlTlVMTCBpZiBpdCBpcyBub3QgeWV0
IGNyZWF0ZWQuCi0gKgotICogU2luY2U6IDEuMC4zCi0gKiovCi1XZWJLaXRXZWJWaWV3KiB3ZWJr
aXRfd2ViX2luc3BlY3Rvcl9nZXRfd2ViX3ZpZXcoV2ViS2l0V2ViSW5zcGVjdG9yICp3ZWJfaW5z
cGVjdG9yKQotewotICAgIFdlYktpdFdlYkluc3BlY3RvclByaXZhdGUqIHByaXYgPSB3ZWJfaW5z
cGVjdG9yLT5wcml2OwotCi0gICAgcmV0dXJuIHByaXYtPmluc3BlY3Rvcl92aWV3OwotfQotCi0v
LyBpbnRlcm5hbCB1c2Ugb25seQotdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9zZXRfaW5zcGVj
dGVkX3VyaShXZWJLaXRXZWJJbnNwZWN0b3IqIHdlYl9pbnNwZWN0b3IsIGNvbnN0IGdjaGFyKiBp
bnNwZWN0ZWRfdXJpKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9JTlNQ
RUNUT1Iod2ViX2luc3BlY3RvcikpOwotCi0gICAgV2ViS2l0V2ViSW5zcGVjdG9yUHJpdmF0ZSog
cHJpdiA9IHdlYl9pbnNwZWN0b3ItPnByaXY7Ci0KLSAgICBnX2ZyZWUocHJpdi0+aW5zcGVjdGVk
X3VyaSk7Ci0gICAgcHJpdi0+aW5zcGVjdGVkX3VyaSA9IGdfc3RyZHVwKGluc3BlY3RlZF91cmkp
OwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dldF9pbnNwZWN0ZWRfdXJpOgot
ICogQHdlYl9pbnNwZWN0b3I6IGEgI1dlYktpdFdlYkluc3BlY3RvcgotICoKLSAqIE9idGFpbnMg
dGhlIFVSSSB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBpbnNwZWN0ZWQuCi0gKgotICogUmV0dXJu
czogYSBwb2ludGVyIHRvIHRoZSBVUkkgYXMgYW4gaW50ZXJuYWxseSBhbGxvY2F0ZWQgc3RyaW5n
OyBpdAotICogc2hvdWxkIG5vdCBiZSBmcmVlZCwgbW9kaWZpZWQgb3Igc3RvcmVkLgotICoKLSAq
IFNpbmNlOiAxLjAuMwotICoqLwotY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfaW5zcGVjdG9yX2dl
dF9pbnNwZWN0ZWRfdXJpKFdlYktpdFdlYkluc3BlY3RvciAqd2ViX2luc3BlY3RvcikKLXsKLSAg
ICBXZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlKiBwcml2ID0gd2ViX2luc3BlY3Rvci0+cHJpdjsK
LQotICAgIHJldHVybiBwcml2LT5pbnNwZWN0ZWRfdXJpOwotfQotCi12b2lkCi13ZWJraXRfd2Vi
X2luc3BlY3Rvcl9zZXRfaW5zcGVjdG9yX2NsaWVudChXZWJLaXRXZWJJbnNwZWN0b3IqIHdlYl9p
bnNwZWN0b3IsIFdlYkNvcmU6OlBhZ2UqIHBhZ2UpCi17Ci0gICAgV2ViS2l0V2ViSW5zcGVjdG9y
UHJpdmF0ZSogcHJpdiA9IHdlYl9pbnNwZWN0b3ItPnByaXY7Ci0KLSAgICBwcml2LT5wYWdlID0g
cGFnZTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9zaG93OgotICogQHdlYl9p
bnNwZWN0b3I6IHRoZSAjV2ViS2l0V2ViSW5zcGVjdG9yIHRoYXQgd2lsbCBiZSBzaG93bgotICoK
LSAqIENhdXNlcyB0aGUgV2ViIEluc3BlY3RvciB0byBiZSBzaG93bi4KLSAqCi0gKiBTaW5jZTog
MS4xLjE3Ci0gKi8KLXZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3Jfc2hvdyhXZWJLaXRXZWJJbnNw
ZWN0b3IqIHdlYkluc3BlY3RvcikKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19X
RUJfSU5TUEVDVE9SKHdlYkluc3BlY3RvcikpOwotCi0gICAgV2ViS2l0V2ViSW5zcGVjdG9yUHJp
dmF0ZSogcHJpdiA9IHdlYkluc3BlY3Rvci0+cHJpdjsKLQotICAgIEZyYW1lJiBmcmFtZSA9IHBy
aXYtPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIEZy
YW1lVmlldyogdmlldyA9IGZyYW1lLnZpZXcoKTsKLQotICAgIGlmICghdmlldykKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgcHJpdi0+cGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNob3coKTsK
LX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9pbnNwZWN0X25vZGU6Ci0gKiBAd2Vi
X2luc3BlY3RvcjogdGhlICNXZWJLaXRXZWJJbnNwZWN0b3IgdGhhdCB3aWxsIGRvIHRoZSBpbnNw
ZWN0aW9uCi0gKiBAbm9kZTogdGhlICNXZWJLaXRET01Ob2RlIHRvIGluc3BlY3QKLSAqCi0gKiBD
YXVzZXMgdGhlIFdlYiBJbnNwZWN0b3IgdG8gaW5zcGVjdCB0aGUgZ2l2ZW4gbm9kZS4KLSAqCi0g
KiBTaW5jZTogMS4zLjcKLSAqLwotdm9pZCB3ZWJraXRfd2ViX2luc3BlY3Rvcl9pbnNwZWN0X25v
ZGUoV2ViS2l0V2ViSW5zcGVjdG9yKiB3ZWJJbnNwZWN0b3IsIFdlYktpdERPTU5vZGUqIG5vZGUp
Ci17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0lOU1BFQ1RPUih3ZWJJbnNw
ZWN0b3IpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShub2RlKSk7
Ci0KLSAgICB3ZWJJbnNwZWN0b3ItPnByaXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5p
bnNwZWN0KGNvcmUobm9kZSkpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfaW5zcGVjdG9yX2lu
c3BlY3RfY29vcmRpbmF0ZXM6Ci0gKiBAd2ViX2luc3BlY3RvcjogdGhlICNXZWJLaXRXZWJJbnNw
ZWN0b3IgdGhhdCB3aWxsIGRvIHRoZSBpbnNwZWN0aW9uCi0gKiBAeDogdGhlIFggY29vcmRpbmF0
ZSBvZiB0aGUgbm9kZSB0byBiZSBpbnNwZWN0ZWQKLSAqIEB5OiB0aGUgWSBjb29yZGluYXRlIG9m
IHRoZSBub2RlIHRvIGJlIGluc3BlY3RlZAotICoKLSAqIENhdXNlcyB0aGUgV2ViIEluc3BlY3Rv
ciB0byBpbnNwZWN0IHRoZSBub2RlIHRoYXQgaXMgbG9jYXRlZCBhdCB0aGUKLSAqIGdpdmVuIGNv
b3JkaW5hdGVzIG9mIHRoZSB3aWRnZXQuIFRoZSBjb29yZGluYXRlcyBzaG91bGQgYmUgcmVsYXRp
dmUKLSAqIHRvIHRoZSAjV2ViS2l0V2ViVmlldyB3aWRnZXQsIG5vdCB0byB0aGUgc2Nyb2xsYWJs
ZSBjb250ZW50LCBhbmQKLSAqIG1heSBiZSBvYnRhaW5lZCBmcm9tIGEgI0dka0V2ZW50IGRpcmVj
dGx5LgotICoKLSAqIFRoaXMgbWVhbnMgQHgsIGFuZCBAeSBiZWluZyB6ZXJvIGRvZXNuJ3QgZ3Vh
cmFudGVlIHlvdSB3aWxsIGhpdCB0aGUKLSAqIGxlZnQtbW9zdCB0b3AgY29ybmVyIG9mIHRoZSBj
b250ZW50LCBzaW5jZSB0aGUgY29udGVudHMgbWF5IGhhdmUKLSAqIGJlZW4gc2Nyb2xsZWQuCi0g
KgotICogU2luY2U6IDEuMS4xNwotICovCi12b2lkIHdlYmtpdF93ZWJfaW5zcGVjdG9yX2luc3Bl
Y3RfY29vcmRpbmF0ZXMoV2ViS2l0V2ViSW5zcGVjdG9yKiB3ZWJJbnNwZWN0b3IsIGdkb3VibGUg
eCwgZ2RvdWJsZSB5KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9JTlNQ
RUNUT1Iod2ViSW5zcGVjdG9yKSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCh4ID49IDAgJiYgeSA+
PSAwKTsKLQotICAgIFdlYktpdFdlYkluc3BlY3RvclByaXZhdGUqIHByaXYgPSB3ZWJJbnNwZWN0
b3ItPnByaXY7Ci0KLSAgICBGcmFtZSYgZnJhbWUgPSBwcml2LT5wYWdlLT5mb2N1c0NvbnRyb2xs
ZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS52
aWV3KCk7Ci0KLSAgICBpZiAoIXZpZXcpCi0gICAgICAgIHJldHVybjsKLQotICAgIEhpdFRlc3RS
ZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVlc3Q6
OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRlbnQpOwotICAgIElu
dFBvaW50IGRvY3VtZW50UG9pbnQgPSB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKEludFBvaW50KHN0
YXRpY19jYXN0PGludD4oeCksIHN0YXRpY19jYXN0PGludD4oeSkpKTsKLSAgICBIaXRUZXN0UmVz
dWx0IHJlc3VsdChkb2N1bWVudFBvaW50KTsKLQotICAgIGZyYW1lLmNvbnRlbnRSZW5kZXJlcigp
LT5sYXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7Ci0gICAgcHJpdi0+cGFnZS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLmluc3BlY3QocmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKTsK
LX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2luc3BlY3Rvcl9jbG9zZToKLSAqIEB3ZWJfaW5zcGVj
dG9yOiB0aGUgI1dlYktpdFdlYkluc3BlY3RvciB0aGF0IHdpbGwgYmUgY2xvc2VkCi0gKgotICog
Q2F1c2VzIHRoZSBXZWIgSW5zcGVjdG9yIHRvIGJlIGNsb3NlZC4KLSAqCi0gKiBTaW5jZTogMS4x
LjE3Ci0gKi8KLXZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfY2xvc2UoV2ViS2l0V2ViSW5zcGVj
dG9yKiB3ZWJJbnNwZWN0b3IpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VC
X0lOU1BFQ1RPUih3ZWJJbnNwZWN0b3IpKTsKLQotICAgIFdlYktpdFdlYkluc3BlY3RvclByaXZh
dGUqIHByaXYgPSB3ZWJJbnNwZWN0b3ItPnByaXY7Ci0gICAgcHJpdi0+cGFnZS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLmNsb3NlKCk7Ci19Ci0KLXZvaWQgd2Via2l0X3dlYl9pbnNwZWN0b3JfZXhl
Y3V0ZV9zY3JpcHQoV2ViS2l0V2ViSW5zcGVjdG9yKiB3ZWJJbnNwZWN0b3IsIGNvbnN0IGdjaGFy
KiBzY3JpcHQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0lOU1BFQ1RP
Uih3ZWJJbnNwZWN0b3IpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHNjcmlwdCk7Ci0KLSAgICBX
ZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlKiBwcml2ID0gd2ViSW5zcGVjdG9yLT5wcml2OwotICAg
IHByaXYtPnBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5ldmFsdWF0ZUZvclRlc3RJbkZyb250
ZW5kKHNjcmlwdCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0d2ViaW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2ViaW5z
cGVjdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhZjRhYWMuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmluc3BlY3Rvci5oCisrKyAv
ZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBHdXN0
YXZvIE5vcm9uaGEgU2lsdmEKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJraXR3ZWJpbnNwZWN0b3JfaAotI2RlZmluZSB3
ZWJraXR3ZWJpbnNwZWN0b3JfaAotCi0jaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KLQotI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+Ci0jaW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRv
bS5oPgotCi1HX0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCX0lOU1BFQ1RP
UiAgICAgICAgICAgICh3ZWJraXRfd2ViX2luc3BlY3Rvcl9nZXRfdHlwZSgpKQotI2RlZmluZSBX
RUJLSVRfV0VCX0lOU1BFQ1RPUihvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5D
RV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfSU5TUEVDVE9SLCBXZWJLaXRXZWJJbnNwZWN0
b3IpKQotI2RlZmluZSBXRUJLSVRfV0VCX0lOU1BFQ1RPUl9DTEFTUyhrbGFzcykgICAgKEdfVFlQ
RV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfSU5TUEVDVE9SLCBX
ZWJLaXRXZWJJbnNwZWN0b3JDbGFzcykpCi0jZGVmaW5lIFdFQktJVF9JU19XRUJfSU5TUEVDVE9S
KG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9U
WVBFX1dFQl9JTlNQRUNUT1IpKQotI2RlZmluZSBXRUJLSVRfSVNfV0VCX0lOU1BFQ1RPUl9DTEFT
UyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9X
RUJfSU5TUEVDVE9SKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9JTlNQRUNUT1JfR0VUX0NMQVNTKG9i
aikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfV0VCX0lO
U1BFQ1RPUiwgV2ViS2l0V2ViSW5zcGVjdG9yQ2xhc3MpKQotCi10eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0V2ViSW5zcGVjdG9yUHJpdmF0ZSBXZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlOwotCi1zdHJ1
Y3QgX1dlYktpdFdlYkluc3BlY3RvciB7Ci0gICAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7Ci0K
LSAgICBXZWJLaXRXZWJJbnNwZWN0b3JQcml2YXRlKiBwcml2OwotfTsKLQotc3RydWN0IF9XZWJL
aXRXZWJJbnNwZWN0b3JDbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQot
ICAgIC8qIFBhZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KLSAgICB2b2lkICgqX3dlYmtp
dF9yZXNlcnZlZDEpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lk
KTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKLSAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDQpICh2b2lkKTsKLX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF93
ZWJfaW5zcGVjdG9yX2dldF90eXBlICh2b2lkKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRXZWJWaWV3
Kgotd2Via2l0X3dlYl9pbnNwZWN0b3JfZ2V0X3dlYl92aWV3ICAgICAgICAoV2ViS2l0V2ViSW5z
cGVjdG9yICp3ZWJfaW5zcGVjdG9yKTsKLQotV0VCS0lUX0FQSSBjb25zdCBnY2hhcioKLXdlYmtp
dF93ZWJfaW5zcGVjdG9yX2dldF9pbnNwZWN0ZWRfdXJpICAgKFdlYktpdFdlYkluc3BlY3RvciAq
d2ViX2luc3BlY3Rvcik7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl9pbnNwZWN0b3Jf
aW5zcGVjdF9ub2RlICAgICAgICAoV2ViS2l0V2ViSW5zcGVjdG9yICp3ZWJfaW5zcGVjdG9yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0RE9NTm9kZSAg
ICAgICpub2RlKTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX2luc3BlY3Rvcl9pbnNw
ZWN0X2Nvb3JkaW5hdGVzIChXZWJLaXRXZWJJbnNwZWN0b3IgKndlYl9pbnNwZWN0b3IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZG91YmxlICAgICAgICAgICAg
eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkb3VibGUgICAg
ICAgICAgICB5KTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX2luc3BlY3Rvcl9zaG93
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJJbnNwZWN0b3IgKndlYl9pbnNwZWN0b3IpOwotCi1X
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfaW5zcGVjdG9yX2Nsb3NlICAgICAgICAgICAgICAg
KFdlYktpdFdlYkluc3BlY3RvciAqd2ViX2luc3BlY3Rvcik7Ci1HX0VORF9ERUNMUwotCi0jZW5k
aWYgLyogd2Via2l0d2ViaW5zcGVjdG9yX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJpbnNwZWN0b3Jwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViaW5zcGVjdG9ycHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2NzI1NGE5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJpbnNwZWN0b3Jwcml2YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5zIFBl
dGVyIEZyZXl0aGVyCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpv
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KLSAqIENvcHlyaWdodCAoQykg
MjAxMCBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIHdlYmtpdHdlYmluc3BlY3RvcnByaXZhdGVfaAotI2Rl
ZmluZSB3ZWJraXR3ZWJpbnNwZWN0b3Jwcml2YXRlX2gKLQotZXh0ZXJuICJDIiB7Ci0KLXZvaWQg
d2Via2l0X3dlYl9pbnNwZWN0b3Jfc2V0X2luc3BlY3Rvcl9jbGllbnQoV2ViS2l0V2ViSW5zcGVj
dG9yKiwgV2ViQ29yZTo6UGFnZSopOwotCi12b2lkIHdlYmtpdF93ZWJfaW5zcGVjdG9yX3NldF93
ZWJfdmlldyhXZWJLaXRXZWJJbnNwZWN0b3IqLCBXZWJLaXRXZWJWaWV3Kik7Ci0KLXZvaWQgd2Vi
a2l0X3dlYl9pbnNwZWN0b3Jfc2V0X2luc3BlY3RlZF91cmkoV2ViS2l0V2ViSW5zcGVjdG9yKiwg
Y29uc3QgZ2NoYXIqKTsKLQotV0VCS0lUX0FQSSB2b2lkIHdlYmtpdF93ZWJfaW5zcGVjdG9yX2V4
ZWN1dGVfc2NyaXB0KFdlYktpdFdlYkluc3BlY3RvciosIGNvbnN0IGdjaGFyKiBzY3JpcHQpOwot
Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYm5hdmlnYXRpb25hY3Rpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
ZDZmMGM4Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJu
YXZpZ2F0aW9uYWN0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQwNyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJ3ZWJraXR3ZWJuYXZpZ2F0aW9uYWN0aW9uLmgiCi0KLSNpbmNsdWRlICJGcmFt
ZUxvYWRlclR5cGVzLmgiCi0jaW5jbHVkZSAid2Via2l0ZW51bXR5cGVzLmgiCi0jaW5jbHVkZSAi
d2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKLSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2lu
Y2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0KLXN0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fc2V0X3RhcmdldF9mcmFtZShXZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uLCBjb25zdCBnY2hhciogdGFyZ2V0
RnJhbWUpOwotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbgotICog
QHNob3J0X2Rlc2NyaXB0aW9uOiBPYmplY3QgdXNlZCB0byByZXBvcnQgZGV0YWlscyBvZiBuYXZp
Z2F0aW9uIGFjdGlvbnMKLSAqCi0gKiAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiBpcyB1c2Vk
IGluIHNpZ25hbHMgdG8gcHJvdmlkZSBkZXRhaWxzIGFib3V0Ci0gKiB3aGF0IGxlZCB0aGUgbmF2
aWdhdGlvbiB0byBoYXBwZW4uIFRoaXMgaW5jbHVkZXMsIGZvciBpbnN0YW5jZSwgaWYgdGhlIHVz
ZXIKLSAqIGNsaWNrZWQgYSBsaW5rIHRvIHN0YXJ0IHRoYXQgbmF2aWdhdGlvbiwgYW5kIHdoYXQg
bW91c2UgYnV0dG9uIHdhcyB1c2VkLgotICovCi0KLXN0cnVjdCBfV2ViS2l0V2ViTmF2aWdhdGlv
bkFjdGlvblByaXZhdGUgewotICAgIFdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24gcmVhc29uOwot
ICAgIGdjaGFyKiBvcmlnaW5hbFVyaTsKLSAgICBnaW50IGJ1dHRvbjsKLSAgICBnaW50IG1vZGlm
aWVyX3N0YXRlOwotICAgIGdjaGFyKiB0YXJnZXRGcmFtZTsKLX07Ci0KLWVudW0gIHsKLSAgICBQ
Uk9QXzAsCi0KLSAgICBQUk9QX1JFQVNPTiwKLSAgICBQUk9QX09SSUdJTkFMX1VSSSwKLSAgICBQ
Uk9QX0JVVFRPTiwKLSAgICBQUk9QX01PRElGSUVSX1NUQVRFLAotICAgIFBST1BfVEFSR0VUX0ZS
QU1FCi19OwotCi1HX0RFRklORV9UWVBFKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24sIHdlYmtp
dF93ZWJfbmF2aWdhdGlvbl9hY3Rpb24sIEdfVFlQRV9PQkpFQ1QpCi0KLQotc3RhdGljIHZvaWQg
d2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0
LCBndWludCBwcm9wZXJ0eUlkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsK
LSAgICBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uID0gV0VCS0lU
X1dFQl9OQVZJR0FUSU9OX0FDVElPTihvYmplY3QpOwotCi0gICAgc3dpdGNoKHByb3BlcnR5SWQp
IHsKLSAgICBjYXNlIFBST1BfUkVBU09OOgotICAgICAgICBnX3ZhbHVlX3NldF9lbnVtKHZhbHVl
LCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9yZWFzb24obmF2aWdhdGlvbkFjdGlv
bikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfT1JJR0lOQUxfVVJJOgotICAgICAg
ICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25f
Z2V0X29yaWdpbmFsX3VyaShuYXZpZ2F0aW9uQWN0aW9uKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUFJPUF9CVVRUT046Ci0gICAgICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgd2Via2l0
X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0dG9uKG5hdmlnYXRpb25BY3Rpb24pKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX01PRElGSUVSX1NUQVRFOgotICAgICAgICBnX3Zh
bHVlX3NldF9pbnQodmFsdWUsIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X21vZGlm
aWVyX3N0YXRlKG5hdmlnYXRpb25BY3Rpb24pKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
Uk9QX1RBUkdFVF9GUkFNRToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJr
aXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF90YXJnZXRfZnJhbWUobmF2aWdhdGlvbkFjdGlv
bikpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBHX09CSkVDVF9XQVJO
X0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2Fj
dGlvbl9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25z
dCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRXZWJOYXZp
Z2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uID0gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX0FD
VElPTihvYmplY3QpOwotICAgIFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKiBwcml2
ID0gbmF2aWdhdGlvbkFjdGlvbi0+cHJpdjsKLQotICAgIHN3aXRjaChwcm9wZXJ0eUlkKSB7Ci0g
ICAgY2FzZSBQUk9QX1JFQVNPTjoKLSAgICAgICAgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlv
bl9zZXRfcmVhc29uKG5hdmlnYXRpb25BY3Rpb24sIChXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29u
KWdfdmFsdWVfZ2V0X2VudW0odmFsdWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X09SSUdJTkFMX1VSSToKLSAgICAgICAgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRf
b3JpZ2luYWxfdXJpKG5hdmlnYXRpb25BY3Rpb24sIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfQlVUVE9OOgotICAgICAgICBwcml2LT5i
dXR0b24gPSBnX3ZhbHVlX2dldF9pbnQodmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFBST1BfTU9ESUZJRVJfU1RBVEU6Ci0gICAgICAgIHByaXYtPm1vZGlmaWVyX3N0YXRlID0gZ192
YWx1ZV9nZXRfaW50KHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1RBUkdF
VF9GUkFNRToKLSAgICAgICAgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfdGFyZ2V0
X2ZyYW1lKG5hdmlnYXRpb25BY3Rpb24sIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpOwotICAg
ICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURf
UFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9pbml0
KFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25BY3Rpb24pCi17Ci0gICAgbmF2
aWdhdGlvbkFjdGlvbi0+cHJpdiA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShuYXZpZ2F0
aW9uQWN0aW9uLCBXRUJLSVRfVFlQRV9XRUJfTkFWSUdBVElPTl9BQ1RJT04sIFdlYktpdFdlYk5h
dmlnYXRpb25BY3Rpb25Qcml2YXRlKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9uYXZp
Z2F0aW9uX2FjdGlvbl9maW5hbGl6ZShHT2JqZWN0KiBvYmopCi17Ci0gICAgV2ViS2l0V2ViTmF2
aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbiA9IFdFQktJVF9XRUJfTkFWSUdBVElPTl9B
Q1RJT04ob2JqKTsKLSAgICBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZSogcHJpdiA9
IG5hdmlnYXRpb25BY3Rpb24tPnByaXY7Ci0KLSAgICBnX2ZyZWUocHJpdi0+b3JpZ2luYWxVcmkp
OwotICAgIGdfZnJlZShwcml2LT50YXJnZXRGcmFtZSk7Ci0KLSAgICBHX09CSkVDVF9DTEFTUyh3
ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iaik7
Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fY2xhc3NfaW5p
dChXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uQ2xhc3MqIHJlcXVlc3RDbGFzcykKLXsKLSAgICBH
T2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKTsK
LQotICAgIG9iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfd2ViX25hdmlnYXRpb25f
YWN0aW9uX2dldF9wcm9wZXJ0eTsKLSAgICBvYmplY3RDbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Vi
a2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9zZXRfcHJvcGVydHk7Ci0gICAgb2JqZWN0Q2xhc3Mt
PmZpbmFsaXplID0gd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9maW5hbGl6ZTsKLQotICAg
IC8qKgotICAgICAqIFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb246cmVhc29uOgotICAgICAqCi0g
ICAgICogVGhlIHJlYXNvbiB3aHkgdGhpcyBuYXZpZ2F0aW9uIGlzIG9jY3VyaW5nLgotICAgICAq
Ci0gICAgICogU2luY2U6IDEuMC4zCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9SRUFTT04sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfZW51bSgicmVhc29uIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlJlYXNvbiIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi
VGhlIHJlYXNvbiB3aHkgdGhpcyBuYXZpZ2F0aW9uIGlzIG9jY3VycmluZyIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVf
V0VCX05BVklHQVRJT05fUkVBU09OLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9PVEhFUiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChH
UGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUKSkp
OwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbjpvcmlnaW5hbC11
cmk6Ci0gICAgICoKLSAgICAgKiBUaGUgVVJJIHRoYXQgd2FzIHJlcXVlc3RlZCBhcyB0aGUgdGFy
Z2V0IGZvciB0aGUgbmF2aWdhdGlvbi4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjAuMwotICAg
ICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBS
T1BfT1JJR0lOQUxfVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19w
YXJhbV9zcGVjX3N0cmluZygib3JpZ2luYWwtdXJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiT3JpZ2luYWwgVVJJIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRo
ZSBVUkkgdGhhdCB3YXMgcmVxdWVzdGVkIGFzIHRoZSB0YXJnZXQgZm9yIHRoZSBuYXZpZ2F0aW9u
IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoR1BhcmFtRmxhZ3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NP
TlNUUlVDVCkpKTsKLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uOmJ1
dHRvbjoKLSAgICAgKgotICAgICAqIFRoZSBHVEsrIGlkZW50aWZpZXIgZm9yIHRoZSBtb3VzZSBi
dXR0b24gdXNlZCB0byBjbGljay4gTm90aWNlIHRoYXQgR1RLKyBidXR0b24gdmFsdWVzCi0gICAg
ICogYXJlIDEsIDIgYW5kIDMgZm9yIGxlZnQsIG1pZGRsZSBhbmQgcmlnaHQgYnV0dG9ucywgc28g
dGhleSBhcmUgRE9NIGJ1dHRvbiB2YWx1ZXMgKzEuIElmIHRoZSBhY3Rpb24gd2FzIG5vdAotICAg
ICAqIGluaXRpYXRlZCBieSBhIG1vdXNlIGNsaWNrIHRoZSB2YWx1ZSB3aWxsIGJlIC0xLgotICAg
ICAqCi0gICAgICogU2luY2U6IDEuMC4zCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9CVVRUT04sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfaW50KCJidXR0b24iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJCdXR0b24iKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi
VGhlIGJ1dHRvbiB1c2VkIHRvIGNsaWNrIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHX01BWElOVCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BB
UkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7Ci0KLSAgICAvKioKLSAg
ICAgKiBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uOm1vZGlmaWVyLXN0YXRlOgotICAgICAqCi0g
ICAgICogVGhlIHN0YXRlIG9mIHRoZSBtb2RpZmllciBrZXlzIHdoZW4gdGhlIGFjdGlvbiB3YXMg
cmVxdWVzdGVkLgotICAgICAqCi0gICAgICogU2luY2U6IDEuMC4zCi0gICAgICovCi0gICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9NT0RJRklFUl9T
VEFURSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19p
bnQoIm1vZGlmaWVyLXN0YXRlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXygiTW9kaWZpZXIgc3RhdGUiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQSBiaXRtYXNrIHJlcHJlc2Vu
dGluZyB0aGUgc3RhdGUgb2YgdGhlIG1vZGlmaWVyIGtleXMiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NQVhJTlQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHUGFyYW1GbGFncyko
V0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7Ci0KLSAg
ICAvKioKLSAgICAgKiBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uOnRhcmdldC1mcmFtZToKLSAg
ICAgKgotICAgICAqIFRoZSB0YXJnZXQgZnJhbWUgZm9yIHRoZSBuYXZpZ2F0aW9uLgotICAgICAq
Ci0gICAgICogU2luY2U6IDEuMS4xMwotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfVEFSR0VUX0ZSQU1FLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygidGFyZ2V0LWZyYW1l
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiVGFyZ2V0IGZyYW1lIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSB0YXJnZXQgZnJhbWUgZm9yIHRoZSBuYXZpZ2F0
aW9uIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFS
QU1fQ09OU1RSVUNUX09OTFkpKSk7Ci0KLQotCi0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRl
KHJlcXVlc3RDbGFzcywgc2l6ZW9mKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKSk7
Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfcmVhc29uOgot
ICogQG5hdmlnYXRpb25BY3Rpb246IGEgI1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24KLSAqCi0g
KiBSZXR1cm5zIHRoZSByZWFzb24gd2h5IFdlYktpdCBpcyByZXF1ZXN0aW5nIGEgbmF2aWdhdGlv
bi4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6IGEgI1dlYktpdFdlYk5hdmlnYXRpb25SZWFzb24KLSAq
Ci0gKiBTaW5jZTogMS4wLjMKLSAqLwotV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiB3ZWJraXRf
d2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9yZWFzb24oV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlv
biogbmF2aWdhdGlvbkFjdGlvbikKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
SVNfV0VCX05BVklHQVRJT05fQUNUSU9OKG5hdmlnYXRpb25BY3Rpb24pLCBXRUJLSVRfV0VCX05B
VklHQVRJT05fUkVBU09OX09USEVSKTsKLQotICAgIHJldHVybiBuYXZpZ2F0aW9uQWN0aW9uLT5w
cml2LT5yZWFzb247Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9z
ZXRfcmVhc29uOgotICogQG5hdmlnYXRpb25BY3Rpb246IGEgI1dlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb24KLSAqIEByZWFzb246IGEgI1dlYktpdFdlYk5hdmlnYXRpb25SZWFzb24KLSAqCi0gKiBT
ZXRzIHRoZSByZWFzb24gd2h5IFdlYktpdCBpcyByZXF1ZXN0aW5nIGEgbmF2aWdhdGlvbi4KLSAq
Ci0gKiBTaW5jZTogMS4wLjMKLSAqLwotdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9u
X3NldF9yZWFzb24oV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbiwg
V2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiByZWFzb24pCi17Ci0gICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfV0VCX05BVklHQVRJT05fQUNUSU9OKG5hdmlnYXRpb25BY3Rpb24pKTsKLQot
ICAgIGlmIChuYXZpZ2F0aW9uQWN0aW9uLT5wcml2LT5yZWFzb24gPT0gcmVhc29uKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBuYXZpZ2F0aW9uQWN0aW9uLT5wcml2LT5yZWFzb24gPSByZWFzb247
Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKG5hdmlnYXRpb25BY3Rpb24pLCAicmVhc29u
Iik7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfb3JpZ2lu
YWxfdXJpOgotICogQG5hdmlnYXRpb25BY3Rpb246IGEgI1dlYktpdFdlYk5hdmlnYXRpb25BY3Rp
b24KLSAqCi0gKiBSZXR1cm5zIHRoZSBVUkkgdGhhdCB3YXMgb3JpZ2luYWxseSByZXF1ZXN0ZWQu
IFRoaXMgbWF5IGRpZmZlciBmcm9tIHRoZQotICogbmF2aWdhdGlvbiB0YXJnZXQsIGZvciBpbnN0
YW5jZSBiZWNhdXNlIG9mIGEgcmVkaXJlY3QuCi0gKgotICogUmV0dXJuIHZhbHVlOiB0aGUgb3Jp
Z2luYWxseSByZXF1ZXN0ZWQgVVJJCi0gKgotICogU2luY2U6IDEuMC4zCi0gKi8KLWNvbnN0IGdj
aGFyKiB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9vcmlnaW5hbF91cmkoV2ViS2l0
V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbikKLXsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX05BVklHQVRJT05fQUNUSU9OKG5hdmlnYXRpb25BY3Rp
b24pLCBOVUxMKTsKLQotICAgIHJldHVybiBuYXZpZ2F0aW9uQWN0aW9uLT5wcml2LT5vcmlnaW5h
bFVyaTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF9vcmln
aW5hbF91cmk6Ci0gKiBAbmF2aWdhdGlvbkFjdGlvbjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFj
dGlvbgotICogQG9yaWdpbmFsVXJpOiBhIFVSSQotICoKLSAqIFNldHMgdGhlIFVSSSB0aGF0IHdh
cyBvcmlnaW5hbGx5IHJlcXVlc3RlZC4gVGhpcyBtYXkgZGlmZmVyIGZyb20gdGhlCi0gKiBuYXZp
Z2F0aW9uIHRhcmdldCwgZm9yIGluc3RhbmNlIGJlY2F1c2Ugb2YgYSByZWRpcmVjdC4KLSAqCi0g
KiBTaW5jZTogMS4wLjMKLSAqLwotdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3Nl
dF9vcmlnaW5hbF91cmkoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlv
biwgY29uc3QgZ2NoYXIqIG9yaWdpbmFsVXJpKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0lTX1dFQl9OQVZJR0FUSU9OX0FDVElPTihuYXZpZ2F0aW9uQWN0aW9uKSk7Ci0gICAgZ19y
ZXR1cm5faWZfZmFpbChvcmlnaW5hbFVyaSk7Ci0KLSAgICBpZiAobmF2aWdhdGlvbkFjdGlvbi0+
cHJpdi0+b3JpZ2luYWxVcmkgJiYKLSAgICAgICAgKCFzdHJjbXAobmF2aWdhdGlvbkFjdGlvbi0+
cHJpdi0+b3JpZ2luYWxVcmksIG9yaWdpbmFsVXJpKSkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGdfZnJlZShuYXZpZ2F0aW9uQWN0aW9uLT5wcml2LT5vcmlnaW5hbFVyaSk7Ci0gICAgbmF2aWdh
dGlvbkFjdGlvbi0+cHJpdi0+b3JpZ2luYWxVcmkgPSBnX3N0cmR1cChvcmlnaW5hbFVyaSk7Ci0g
ICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKG5hdmlnYXRpb25BY3Rpb24pLCAib3JpZ2luYWwt
dXJpIik7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfYnV0
dG9uOgotICogQG5hdmlnYXRpb25BY3Rpb246IGEgI1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24K
LSAqCi0gKiBUaGUgR1RLKyBpZGVudGlmaWVyIGZvciB0aGUgbW91c2UgYnV0dG9uIHVzZWQgdG8g
Y2xpY2suIE5vdGljZSB0aGF0IEdUSysgYnV0dG9uIHZhbHVlcwotICogYXJlIDEsIDIgYW5kIDMg
Zm9yIGxlZnQsIG1pZGRsZSBhbmQgcmlnaHQgYnV0dG9ucywgc28gdGhleSBhcmUgRE9NIGJ1dHRv
biB2YWx1ZXMgKzEuIElmIHRoZSBhY3Rpb24gd2FzIG5vdAotICogaW5pdGlhdGVkIGJ5IGEgbW91
c2UgY2xpY2sgdGhlIHZhbHVlIHdpbGwgYmUgLTEuCi0gKgotICogUmV0dXJuIHZhbHVlOiB0aGUg
bW91c2UgYnV0dG9uIHVzZWQgdG8gY2xpY2sKLSAqCi0gKiBTaW5jZTogMS4wLjMKLSAqLwotZ2lu
dCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF9idXR0b24oV2ViS2l0V2ViTmF2aWdh
dGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbikKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX05BVklHQVRJT05fQUNUSU9OKG5hdmlnYXRpb25BY3Rpb24pLCAtMSk7
Ci0KLSAgICByZXR1cm4gbmF2aWdhdGlvbkFjdGlvbi0+cHJpdi0+YnV0dG9uOwotfQotCi0vKioK
LSAqIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X21vZGlmaWVyX3N0YXRlOgotICog
QG5hdmlnYXRpb25BY3Rpb246IGEgI1dlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24KLSAqCi0gKiBS
ZXR1cm5zIGEgYml0bWFzayB3aXRoIHRoZSB0aGUgc3RhdGUgb2YgdGhlIG1vZGlmaWVyIGtleXMu
Ci0gKgotICogUmV0dXJuIHZhbHVlOiBhIGJpdG1hc2sgd2l0aCB0aGUgc3RhdGUgb2YgdGhlIG1v
ZGlmaWVyIGtleXMKLSAqCi0gKiBTaW5jZTogMS4wLjMKLSAqLwotZ2ludCB3ZWJraXRfd2ViX25h
dmlnYXRpb25fYWN0aW9uX2dldF9tb2RpZmllcl9zdGF0ZShXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0
aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfTkFWSUdBVElPTl9BQ1RJT04obmF2aWdhdGlvbkFjdGlvbiksIDApOwotCi0gICAg
cmV0dXJuIG5hdmlnYXRpb25BY3Rpb24tPnByaXYtPm1vZGlmaWVyX3N0YXRlOwotfQotCi0vKioK
LSAqIHdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X3RhcmdldF9mcmFtZToKLSAqIEBu
YXZpZ2F0aW9uQWN0aW9uOiBhICNXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uCi0gKgotICogUmV0
dXJucyB0aGUgdGFyZ2V0IGZyYW1lIG9mIHRoZSBhY3Rpb24uCi0gKgotICogUmV0dXJuIHZhbHVl
OiB0aGUgdGFyZ2V0IGZyYW1lIG9mIHRoZSBhY3Rpb24gb3IgTlVMTAotICogaWYgdGhlcmUgaXMg
bm8gdGFyZ2V0LgotICoKLSAqIFNpbmNlOiAxLjEuMTMKLSAqLwotY29uc3QgZ2NoYXIqIHdlYmtp
dF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X3RhcmdldF9mcmFtZShXZWJLaXRXZWJOYXZpZ2F0
aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfTkFWSUdBVElPTl9BQ1RJT04obmF2aWdhdGlvbkFjdGlvbiksIE5VTEwp
OwotCi0gICAgcmV0dXJuIG5hdmlnYXRpb25BY3Rpb24tPnByaXYtPnRhcmdldEZyYW1lOwotfQot
Ci1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX3NldF90YXJnZXRfZnJh
bWUoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2aWdhdGlvbkFjdGlvbiwgY29uc3QgZ2No
YXIqIHRhcmdldEZyYW1lKQotewotICAgIGlmICghZ19zdHJjbXAwKG5hdmlnYXRpb25BY3Rpb24t
PnByaXYtPnRhcmdldEZyYW1lLCB0YXJnZXRGcmFtZSkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGdfZnJlZShuYXZpZ2F0aW9uQWN0aW9uLT5wcml2LT50YXJnZXRGcmFtZSk7Ci0gICAgbmF2aWdh
dGlvbkFjdGlvbi0+cHJpdi0+dGFyZ2V0RnJhbWUgPSBnX3N0cmR1cCh0YXJnZXRGcmFtZSk7Ci0g
ICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKG5hdmlnYXRpb25BY3Rpb24pLCAidGFyZ2V0LWZy
YW1lIik7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJLaXRXZWJOYXZpZ2F0aW9uUmVh
c29uIGtpdChXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQotewotICAgIHN3aXRjaCh0eXBl
KSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkOgotICAgICAg
ICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQ7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ6Ci0gICAgICAgIHJldHVy
biBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVEOwotICAgIGNhc2Ug
V2ViQ29yZTo6TmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDoKLSAgICAgICAgcmV0dXJuIFdFQktJ
VF9XRUJfTkFWSUdBVElPTl9SRUFTT05fQkFDS19GT1JXQVJEOwotICAgIGNhc2UgV2ViQ29yZTo6
TmF2aWdhdGlvblR5cGVSZWxvYWQ6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfV0VCX05BVklHQVRJ
T05fUkVBU09OX1JFTE9BRDsKLSAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlRm9ybVJl
c3VibWl0dGVkOgotICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9G
T1JNX1JFU1VCTUlUVEVEOwotICAgIGNhc2UgV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVPdGhlcjoK
LSAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fT1RIRVI7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBX
RUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0xJTktfQ0xJQ0tFRDsKLSAgICB9Ci19Ci0KLVdl
YkNvcmU6Ok5hdmlnYXRpb25UeXBlIGNvcmUoV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiB0eXBl
KQotewotICAgIHN3aXRjaCh0eXBlKSB7Ci0gICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05f
UkVBU09OX0xJTktfQ0xJQ0tFRDoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmlnYXRpb25U
eXBlTGlua0NsaWNrZWQ7Ci0gICAgY2FzZSBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0ZP
Uk1fU1VCTUlUVEVEOgotICAgICAgICByZXR1cm4gV2ViQ29yZTo6TmF2aWdhdGlvblR5cGVGb3Jt
U3VibWl0dGVkOwotICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9CQUNLX0ZP
UldBUkQ6Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJk
OwotICAgIGNhc2UgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9SRUxPQUQ6Ci0gICAgICAg
IHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZVJlbG9hZDsKLSAgICBjYXNlIFdFQktJVF9X
RUJfTkFWSUdBVElPTl9SRUFTT05fRk9STV9SRVNVQk1JVFRFRDoKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6Ok5hdmlnYXRpb25UeXBlRm9ybVJlc3VibWl0dGVkOwotICAgIGNhc2UgV0VCS0lUX1dF
Ql9OQVZJR0FUSU9OX1JFQVNPTl9PVEhFUjoKLSAgICAgICAgcmV0dXJuIFdlYkNvcmU6Ok5hdmln
YXRpb25UeXBlT3RoZXI7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUxpbmtDbGlja2VkOwot
ICAgIH0KLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYm5hdmlnYXRpb25hY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJuYXZpZ2F0aW9uYWN0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzMTc3
NDkuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmln
YXRpb25hY3Rpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgd2Via2l0d2VibmF2aWdhdGlv
bmFjdGlvbl9oCi0jZGVmaW5lIHdlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb25faAotCi0jaW5jbHVk
ZSA8Z2xpYi1vYmplY3QuaD4KLQotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+Ci0K
LUdfQkVHSU5fREVDTFMKLQotLyoqCi0gKiBXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uOgotICog
QFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05fTElOS19DTElDS0VEOiBUaGUgbmF2aWdhdGlv
biB3YXMgdHJpZ2dlcmVkIGJ5IGNsaWNraW5nIGEgbGluay4KLSAqIEBXRUJLSVRfV0VCX05BVklH
QVRJT05fUkVBU09OX0ZPUk1fU1VCTUlUVEVEOiBUaGUgbmF2aWdhdGlvbiB3YXMgdHJpZ2dlcmVk
IGJ5IHN1Ym1pdHRpbmcgYSBmb3JtLgotICogQFdFQktJVF9XRUJfTkFWSUdBVElPTl9SRUFTT05f
QkFDS19GT1JXQVJEOiBUaGUgbmF2aWdhdGlvbiB3YXMgdHJpZ2dlcmVkIGJ5IG5hdmlnYXRpbmcg
Zm9yd2FyZCBvciBiYWNrd2FyZC4KLSAqIEBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX1JF
TE9BRDogVGhlIG5hdmlnYXRpb24gd2FzIHRyaWdnZXJlZCBieSByZWxvYWRpbmcuCi0gKiBAV0VC
S0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9GT1JNX1JFU1VCTUlUVEVEOiBUaGUgbmF2aWdhdGlv
biB3YXMgdHJpZ2dlcmVkIGJ5IHJlc3VibWl0dGluZyBhIGZvcm0uCi0gKiBAV0VCS0lUX1dFQl9O
QVZJR0FUSU9OX1JFQVNPTl9PVEhFUjogVGhlIG5hdmlnYXRpb24gd2FzIHRyaWdnZXJlZCBieSBz
b21lIG90aGVyIGFjdGlvbi4KLSAqCi0gKiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlbm90ZSB0aGUg
dmFyaW91cyBuYXZpZ2F0aW9uIHJlYXNvbnMuCi0gKi8KLXR5cGVkZWYgZW51bSB7Ci0gICAgV0VC
S0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9MSU5LX0NMSUNLRUQsCi0gICAgV0VCS0lUX1dFQl9O
QVZJR0FUSU9OX1JFQVNPTl9GT1JNX1NVQk1JVFRFRCwKLSAgICBXRUJLSVRfV0VCX05BVklHQVRJ
T05fUkVBU09OX0JBQ0tfRk9SV0FSRCwKLSAgICBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09O
X1JFTE9BRCwKLSAgICBXRUJLSVRfV0VCX05BVklHQVRJT05fUkVBU09OX0ZPUk1fUkVTVUJNSVRU
RUQsCi0gICAgV0VCS0lUX1dFQl9OQVZJR0FUSU9OX1JFQVNPTl9PVEhFUiwKLX0gV2ViS2l0V2Vi
TmF2aWdhdGlvblJlYXNvbjsKLQotI2RlZmluZSBXRUJLSVRfVFlQRV9XRUJfTkFWSUdBVElPTl9B
Q1RJT04gICAgICAgICAgICAod2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfdHlwZSgp
KQotI2RlZmluZSBXRUJLSVRfV0VCX05BVklHQVRJT05fQUNUSU9OKG9iaikgICAgICAgICAgICAo
R19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9OQVZJR0FU
SU9OX0FDVElPTiwgV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbikpCi0jZGVmaW5lIFdFQktJVF9X
RUJfTkFWSUdBVElPTl9BQ1RJT05fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
Q0FTVCgoa2xhc3MpLCBXRUJLSVRfVFlQRV9XRUJfTkFWSUdBVElPTl9BQ1RJT04sIFdlYktpdFdl
Yk5hdmlnYXRpb25BY3Rpb25DbGFzcykpCi0jZGVmaW5lIFdFQktJVF9JU19XRUJfTkFWSUdBVElP
Tl9BQ1RJT04ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
V0VCS0lUX1RZUEVfV0VCX05BVklHQVRJT05fQUNUSU9OKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1dF
Ql9OQVZJR0FUSU9OX0FDVElPTl9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBF
KChrbGFzcyksIFdFQktJVF9UWVBFX1dFQl9OQVZJR0FUSU9OX0FDVElPTikpCi0jZGVmaW5lIFdF
QktJVF9XRUJfTkFWSUdBVElPTl9BQ1RJT05fR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFO
Q0VfR0VUX0NMQVNTKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfTkFWSUdBVElPTl9BQ1RJT04sIFdl
YktpdFdlYk5hdmlnYXRpb25BY3Rpb25DbGFzcykpCi0KLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uIFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb247Ci10eXBlZGVmIHN0
cnVjdCBfV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbkNsYXNzIFdlYktpdFdlYk5hdmlnYXRpb25B
Y3Rpb25DbGFzczsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJp
dmF0ZSBXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZTsKLQotc3RydWN0IF9XZWJLaXRX
ZWJOYXZpZ2F0aW9uQWN0aW9uIHsKLSAgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKLQotICAg
IC8qPCBwcml2YXRlID4qLwotICAgIFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb25Qcml2YXRlKiBw
cml2OwotfTsKLQotc3RydWN0IF9XZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uQ2xhc3MgewotICAg
IEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Ci0KLSAgICAvKiBQYWRkaW5nIGZvciBmdXR1cmUg
ZXhwYW5zaW9uICovCi0gICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7Ci0gICAg
dm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7Ci0gICAgdm9pZCAoKl93ZWJraXRfcmVz
ZXJ2ZWQyKSAodm9pZCk7Ci0gICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Ci19
OwotCi1XRUJLSVRfQVBJIEdUeXBlCi13ZWJraXRfd2ViX25hdmlnYXRpb25fYWN0aW9uX2dldF90
eXBlKHZvaWQpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYk5hdmlnYXRpb25SZWFzb24KLXdlYmtp
dF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fZ2V0X3JlYXNvbihXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0
aW9uKiBuYXZpZ2F0aW9uQWN0aW9uKTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX25h
dmlnYXRpb25fYWN0aW9uX3NldF9yZWFzb24oV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbiogbmF2
aWdhdGlvbkFjdGlvbiwgV2ViS2l0V2ViTmF2aWdhdGlvblJlYXNvbiByZWFzb24pOwotCi1XRUJL
SVRfQVBJIGNvbnN0IGdjaGFyKgotd2Via2l0X3dlYl9uYXZpZ2F0aW9uX2FjdGlvbl9nZXRfb3Jp
Z2luYWxfdXJpKFdlYktpdFdlYk5hdmlnYXRpb25BY3Rpb24qIG5hdmlnYXRpb25BY3Rpb24pOwot
Ci1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfbmF2aWdhdGlvbl9hY3Rpb25fc2V0X29yaWdp
bmFsX3VyaShXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZpZ2F0aW9uQWN0aW9uLCBjb25z
dCBnY2hhciogb3JpZ2luYWxVcmkpOwotCi1XRUJLSVRfQVBJIGdpbnQKLXdlYmtpdF93ZWJfbmF2
aWdhdGlvbl9hY3Rpb25fZ2V0X2J1dHRvbihXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZp
Z2F0aW9uQWN0aW9uKTsKLQotV0VCS0lUX0FQSSBnaW50Ci13ZWJraXRfd2ViX25hdmlnYXRpb25f
YWN0aW9uX2dldF9tb2RpZmllcl9zdGF0ZShXZWJLaXRXZWJOYXZpZ2F0aW9uQWN0aW9uKiBuYXZp
Z2F0aW9uQWN0aW9uKTsKLQotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfd2ViX25h
dmlnYXRpb25fYWN0aW9uX2dldF90YXJnZXRfZnJhbWUoV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlv
biogbmF2aWdhdGlvbkFjdGlvbik7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYm5hdmlnYXRpb25hY3Rpb25wcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlv
bnByaXZhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTY1Nzk5ZC4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VibmF2aWdhdGlvbmFjdGlv
bnByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAqIENv
cHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KLSAqIENvcHlyaWdodCAoQykg
MjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwot
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNp
Zm5kZWYgd2Via2l0d2VibmF2aWdhdGlvbmFjdGlvbnByaXZhdGVfaAotI2RlZmluZSB3ZWJraXR3
ZWJuYXZpZ2F0aW9uYWN0aW9ucHJpdmF0ZV9oCi0KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2Vi
bmF2aWdhdGlvbmFjdGlvbi5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViS2l0V2ViTmF2
aWdhdGlvblJlYXNvbiBraXQoV2ViQ29yZTo6TmF2aWdhdGlvblR5cGUpOwotV2ViQ29yZTo6TmF2
aWdhdGlvblR5cGUgY29yZShXZWJLaXRXZWJOYXZpZ2F0aW9uUmVhc29uKTsKLQotfQotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW4u
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbi5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3MTYyZGEuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwy
ODcgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KLSAqICBD
b3B5cmlnaHQgKEMpIDIwMTEgR3VzdGF2byBOb3JvbmhhIFNpbHZhIDxnbnNAZ25vbWUub3JnPgot
ICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0g
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIndlYmtpdHdlYnBsdWdpbi5oIgotCi0jaW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgot
I2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0d2VicGx1
Z2lucHJpdmF0ZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8d3Rm
L2dvYmplY3QvR1VuaXF1ZVB0ci5oPgotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0d2VicGx1Z2lu
Ci0gKiBAc2hvcnRfZGVzY3JpcHRpb246IFJlcHJlc2VudHMgYSBwbHVnaW4sIGVuYWJsaW5nIGZp
bmUtZ3JhaW5lZCBjb250cm9sCi0gKiBAc2VlX2Fsc286ICNXZWJLaXRXZWJQbHVnaW5EYXRhYmFz
ZQotICoKLSAqIFRoaXMgb2JqZWN0IHJlcHJlc2VudHMgYSBzaW5nbGUgcGx1Z2luLCBmb3VuZCBi
eSBXZWJLaXRHVEsrIHdoaWxlCi0gKiBzY2FubmluZyB0aGUgdmFyaW91cyB1c3VhbCBkaXJlY3Rv
cmllcy4gVGhpcyBvYmplY3QgY2FuIGJlIHVzZWQgdG8KLSAqIGdldCBtb3JlIGluZm9ybWF0aW9u
IGFib3V0IGEgcGx1Z2luLCBhbmQgZW5hYmxlL2Rpc2FibGUgaXQsCi0gKiBhbGxvd2luZyBmaW5l
LWdyYWluZWQgY29udHJvbCBvZiBwbHVnaW5zLiBUaGUgbGlzdCBvZiBhdmFpbGFibGUKLSAqIHBs
dWdpbnMgY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlICNXZWJLaXRXZWJQbHVnaW5EYXRhYmFzZSBv
YmplY3QuCi0gKi8KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLWVudW0gewotICAgIFBS
T1BfMCwKLQotICAgIFBST1BfRU5BQkxFRAotfTsKLQotR19ERUZJTkVfVFlQRShXZWJLaXRXZWJQ
bHVnaW4sIHdlYmtpdF93ZWJfcGx1Z2luLCBHX1RZUEVfT0JKRUNUKQotCi1zdGF0aWMgdm9pZCBm
cmVlTUlNRVR5cGUoV2ViS2l0V2ViUGx1Z2luTUlNRVR5cGUqIG1pbWVUeXBlKQotewotICAgIGlm
IChtaW1lVHlwZS0+bmFtZSkKLSAgICAgICAgZ19mcmVlKG1pbWVUeXBlLT5uYW1lKTsKLSAgICBp
ZiAobWltZVR5cGUtPmRlc2NyaXB0aW9uKQotICAgICAgICBnX2ZyZWUobWltZVR5cGUtPmRlc2Ny
aXB0aW9uKTsKLSAgICBpZiAobWltZVR5cGUtPmV4dGVuc2lvbnMpCi0gICAgICAgIGdfc3RyZnJl
ZXYobWltZVR5cGUtPmV4dGVuc2lvbnMpOwotICAgIGdfc2xpY2VfZnJlZShXZWJLaXRXZWJQbHVn
aW5NSU1FVHlwZSwgbWltZVR5cGUpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3BsdWdp
bl9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgV2ViS2l0V2ViUGx1Z2luKiBwbHVn
aW4gPSBXRUJLSVRfV0VCX1BMVUdJTihvYmplY3QpOwotICAgIFdlYktpdFdlYlBsdWdpblByaXZh
dGUqIHByaXYgPSBwbHVnaW4tPnByaXY7Ci0KLSAgICBnX3NsaXN0X2ZvcmVhY2gocHJpdi0+bWlt
ZVR5cGVzLCAoR0Z1bmMpZnJlZU1JTUVUeXBlLCAwKTsKLSAgICBnX3NsaXN0X2ZyZWUocHJpdi0+
bWltZVR5cGVzKTsKLQotICAgIGRlbGV0ZSBwbHVnaW4tPnByaXY7Ci0KLSAgICBHX09CSkVDVF9D
TEFTUyh3ZWJraXRfd2ViX3BsdWdpbl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwot
fQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3BsdWdpbl9nZXRfcHJvcGVydHkoR09iamVjdCog
b2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwYXJhbVNw
ZWMpCi17Ci0gICAgV2ViS2l0V2ViUGx1Z2luKiBwbHVnaW4gPSBXRUJLSVRfV0VCX1BMVUdJTihv
YmplY3QpOwotCi0gICAgc3dpdGNoIChwcm9wX2lkKSB7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRUQ6
Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfcGx1Z2luX2dl
dF9lbmFibGVkKHBsdWdpbikpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwYXJh
bVNwZWMpOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9wbHVnaW5fc2V0X3By
b3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uc3QgR1ZhbHVlKiB2YWx1
ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQotewotICAgIFdlYktpdFdlYlBsdWdpbiogcGx1Z2lu
ID0gV0VCS0lUX1dFQl9QTFVHSU4ob2JqZWN0KTsKLQotICAgIHN3aXRjaCAocHJvcF9pZCkgewot
ICAgIGNhc2UgUFJPUF9FTkFCTEVEOgotICAgICAgICB3ZWJraXRfd2ViX3BsdWdpbl9zZXRfZW5h
YmxlZChwbHVnaW4sIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lE
KG9iamVjdCwgcHJvcF9pZCwgcGFyYW1TcGVjKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfcGx1Z2luX2NsYXNzX2luaXQoV2ViS2l0V2ViUGx1Z2luQ2xhc3MqIGtsYXNzKQot
ewotICAgIHdlYmtpdEluaXQoKTsKLQotICAgIEdPYmplY3RDbGFzcyogZ29iamVjdENsYXNzID0g
cmVpbnRlcnByZXRfY2FzdDxHT2JqZWN0Q2xhc3MqPihrbGFzcyk7Ci0KLSAgICBnb2JqZWN0Q2xh
c3MtPmZpbmFsaXplID0gd2Via2l0X3dlYl9wbHVnaW5fZmluYWxpemU7Ci0gICAgZ29iamVjdENs
YXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfd2ViX3BsdWdpbl9nZXRfcHJvcGVydHk7Ci0gICAg
Z29iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRfd2ViX3BsdWdpbl9zZXRfcHJvcGVy
dHk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFRCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFi
bGVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF8oIkVuYWJsZWQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIHBsdWdpbiBpcyBlbmFibGVkIiks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKLX0KLQotc3RhdGljIHZvaWQgd2Vi
a2l0X3dlYl9wbHVnaW5faW5pdChXZWJLaXRXZWJQbHVnaW4gKnBsdWdpbikKLXsKLSAgICBwbHVn
aW4tPnByaXYgPSBuZXcgV2ViS2l0V2ViUGx1Z2luUHJpdmF0ZSgpOwotICAgIHBsdWdpbi0+cHJp
di0+bWltZVR5cGVzID0gMDsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRXZWJQbHVn
aW4qIGtpdE5ldyhXZWJDb3JlOjpQbHVnaW5QYWNrYWdlKiBwYWNrYWdlKQotewotICAgIFdlYktp
dFdlYlBsdWdpbiogcGx1Z2luID0gV0VCS0lUX1dFQl9QTFVHSU4oZ19vYmplY3RfbmV3KFdFQktJ
VF9UWVBFX1dFQl9QTFVHSU4sIDApKTsKLQotICAgIHBsdWdpbi0+cHJpdi0+Y29yZVBsdWdpbiA9
IHBhY2thZ2U7Ci0KLSAgICByZXR1cm4gcGx1Z2luOwotfQotfQotCi0vKioKLSAqIHdlYmtpdF93
ZWJfcGx1Z2luX2dldF9uYW1lOgotICogQHBsdWdpbjogYSAjV2ViS2l0V2ViUGx1Z2luCi0gKgot
ICogUmV0dXJuczogdGhlIG5hbWUgc3RyaW5nIGZvciBAcGx1Z2luLgotICoKLSAqIFNpbmNlOiAx
LjMuOAotICovCi1jb25zdCBjaGFyKiB3ZWJraXRfd2ViX3BsdWdpbl9nZXRfbmFtZShXZWJLaXRX
ZWJQbHVnaW4qIHBsdWdpbikKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX1BMVUdJTihwbHVnaW4pLCAwKTsKLQotICAgIFdlYktpdFdlYlBsdWdpblByaXZhdGUqIHBy
aXYgPSBwbHVnaW4tPnByaXY7Ci0KLSAgICBpZiAoIXByaXYtPm5hbWUubGVuZ3RoKCkpCi0gICAg
ICAgIHByaXYtPm5hbWUgPSBwcml2LT5jb3JlUGx1Z2luLT5uYW1lKCkudXRmOCgpOwotCi0gICAg
cmV0dXJuIHByaXYtPm5hbWUuZGF0YSgpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfcGx1Z2lu
X2dldF9kZXNjcmlwdGlvbjoKLSAqIEBwbHVnaW46IGEgI1dlYktpdFdlYlBsdWdpbgotICoKLSAq
IFJldHVybnM6IHRoZSBkZXNjcmlwdGlvbiBzdHJpbmcgZm9yIEBwbHVnaW4uCi0gKgotICogU2lu
Y2U6IDEuMy44Ci0gKi8KLWNvbnN0IGNoYXIqIHdlYmtpdF93ZWJfcGx1Z2luX2dldF9kZXNjcmlw
dGlvbihXZWJLaXRXZWJQbHVnaW4qIHBsdWdpbikKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX1BMVUdJTihwbHVnaW4pLCAwKTsKLQotICAgIFdlYktpdFdlYlBsdWdp
blByaXZhdGUqIHByaXYgPSBwbHVnaW4tPnByaXY7Ci0KLSAgICBpZiAoIXByaXYtPmRlc2NyaXB0
aW9uLmxlbmd0aCgpKQotICAgICAgICBwcml2LT5kZXNjcmlwdGlvbiA9IHByaXYtPmNvcmVQbHVn
aW4tPmRlc2NyaXB0aW9uKCkudXRmOCgpOwotCi0gICAgcmV0dXJuIHByaXYtPmRlc2NyaXB0aW9u
LmRhdGEoKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3BsdWdpbl9nZXRfcGF0aDoKLSAqIEBw
bHVnaW46IGEgI1dlYktpdFdlYlBsdWdpbgotICoKLSAqIFJldHVybnM6IHRoZSBhYnNvbHV0ZSBw
YXRoIHRvIEBwbHVnaW4gaW4gc3lzdGVtIGZpbGVuYW1lIGVuY29kaW5nCi0gKiBvciAlTlVMTCBv
biBmYWlsdXJlIHRvIGNvbnZlcnQgdGhlIGZpbGVuYW1lIGZyb20gVVRGLTguCi0gKgotICogU2lu
Y2U6IDEuNC4wCi0gKi8KLWNvbnN0IGNoYXIqIHdlYmtpdF93ZWJfcGx1Z2luX2dldF9wYXRoKFdl
YktpdFdlYlBsdWdpbiogcGx1Z2luKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfUExVR0lOKHBsdWdpbiksIDApOwotCi0gICAgV2ViS2l0V2ViUGx1Z2luUHJpdmF0
ZSogcHJpdiA9IHBsdWdpbi0+cHJpdjsKLQotICAgIGlmIChwcml2LT5wYXRoKQotICAgICAgICBy
ZXR1cm4gcHJpdi0+cGF0aC5nZXQoKTsKLQotICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJv
cjsKLSAgICBwcml2LT5wYXRoLnJlc2V0KGdfZmlsZW5hbWVfZnJvbV91dGY4KHByaXYtPmNvcmVQ
bHVnaW4tPnBhdGgoKS51dGY4KCkuZGF0YSgpLCAtMSwgMCwgMCwgJmVycm9yLm91dFB0cigpKSk7
Ci0KLSAgICBpZiAoIWVycm9yKQotICAgICAgICByZXR1cm4gcHJpdi0+cGF0aC5nZXQoKTsKLQot
ICAgIC8vIEluIHRoZSB1bmxpa2VseSBjYXNlIHRoZSBjb252ZXJ0aW9uIGZhaWxzLCByZXBvcnQg
dGhlIGVycm9yIGFuZCBtYWtlIHN1cmUgd2UgZnJlZQotICAgIC8vIGFueSBwYXJ0aWFsIGNvbnZl
cnRpb24gdGhhdCBlbmRlZCB1cCBpbiB0aGUgdmFyaWFibGUuCi0gICAgcHJpdi0+cGF0aC5yZXNl
dCgpOwotCi0gICAgZ193YXJuaW5nKCJGYWlsZWQgdG8gY29udmVydCAnJXMnIHRvIHN5c3RlbSBm
aWxlbmFtZSBlbmNvZGluZzogJXMiLCBwcml2LT5jb3JlUGx1Z2luLT5wYXRoKCkudXRmOCgpLmRh
dGEoKSwgZXJyb3ItPm1lc3NhZ2UpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLQotLyoqCi0gKiB3
ZWJraXRfd2ViX3BsdWdpbl9nZXRfbWltZXR5cGVzOiAoc2tpcCkKLSAqIEBwbHVnaW46IGEgI1dl
YktpdFdlYlBsdWdpbgotICoKLSAqIFJldHVybnMgYWxsIHRoZSAjV2ViS2l0V2ViUGx1Z2luTUlN
RVR5cGUgdGhhdCBAcGx1Z2luIGlzIGhhbmRsaW5nCi0gKiBhdCB0aGUgbW9tZW50LgotICoKLSAq
IFJldHVybnM6ICBhICNHU0xpc3Qgb2YgI1dlYktpdFdlYlBsdWdpbk1JTUVUeXBlCi0gKgotICog
U2luY2U6IDEuMy44Ci0gKi8KLUdTTGlzdCogd2Via2l0X3dlYl9wbHVnaW5fZ2V0X21pbWV0eXBl
cyhXZWJLaXRXZWJQbHVnaW4qIHBsdWdpbikKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfSVNfV0VCX1BMVUdJTihwbHVnaW4pLCAwKTsKLQotICAgIFdlYktpdFdlYlBsdWdpblBy
aXZhdGUqIHByaXYgPSBwbHVnaW4tPnByaXY7Ci0KLSAgICBpZiAocHJpdi0+bWltZVR5cGVzKQot
ICAgICAgICByZXR1cm4gcHJpdi0+bWltZVR5cGVzOwotCi0gICAgY29uc3QgTUlNRVRvRGVzY3Jp
cHRpb25zTWFwJiBtaW1lVG9EZXNjcmlwdGlvbnMgPSBwcml2LT5jb3JlUGx1Z2luLT5taW1lVG9E
ZXNjcmlwdGlvbnMoKTsKLSAgICBNSU1FVG9EZXNjcmlwdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IG1pbWVUb0Rlc2NyaXB0aW9ucy5lbmQoKTsKLQotICAgIGZvciAoTUlNRVRvRGVzY3Jp
cHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1pbWVUb0Rlc2NyaXB0aW9ucy5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgV2ViS2l0V2ViUGx1Z2luTUlNRVR5cGUqIG1p
bWVUeXBlID0gZ19zbGljZV9uZXcwKFdlYktpdFdlYlBsdWdpbk1JTUVUeXBlKTsKLSAgICAgICAg
bWltZVR5cGUtPm5hbWUgPSBnX3N0cmR1cChpdC0+a2V5LnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICBtaW1lVHlwZS0+ZGVzY3JpcHRpb24gPSBnX3N0cmR1cChpdC0+dmFsdWUudXRmOCgpLmRhdGEo
KSk7Ci0KLSAgICAgICAgVmVjdG9yPFN0cmluZz4gZXh0ZW5zaW9ucyA9IHByaXYtPmNvcmVQbHVn
aW4tPm1pbWVUb0V4dGVuc2lvbnMoKS5nZXQoaXQtPmtleSk7Ci0gICAgICAgIG1pbWVUeXBlLT5l
eHRlbnNpb25zID0gc3RhdGljX2Nhc3Q8Z2NoYXIqKj4oZ19tYWxsb2MwKHNpemVvZihjaGFyKikg
KiAoZXh0ZW5zaW9ucy5zaXplKCkgKyAxKSkpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgZXh0ZW5zaW9ucy5zaXplKCk7IGkrKykKLSAgICAgICAgICAgIG1pbWVUeXBlLT5leHRl
bnNpb25zW2ldID0gZ19zdHJkdXAoZXh0ZW5zaW9uc1tpXS51dGY4KCkuZGF0YSgpKTsKLQotICAg
ICAgICBwcml2LT5taW1lVHlwZXMgPSBnX3NsaXN0X2FwcGVuZChwcml2LT5taW1lVHlwZXMsIG1p
bWVUeXBlKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJpdi0+bWltZVR5cGVzOwotfQotCi0vKioK
LSAqIHdlYmtpdF93ZWJfcGx1Z2luX3NldF9lbmFibGVkOgotICogQHBsdWdpbjogYSAjV2ViS2l0
V2ViUGx1Z2luCi0gKiBAZW5hYmxlZDogd2hldGhlciB0byBlbmFibGUgdGhlIHBsdWdpbgotICoK
LSAqIFNldHMgdGhlIGVuYWJsZWQgc3RhdHVzIG9mIHRoZSBAcGx1Z2luLgotICoKLSAqIFNpbmNl
OiAxLjMuOAotICovCi12b2lkIHdlYmtpdF93ZWJfcGx1Z2luX3NldF9lbmFibGVkKFdlYktpdFdl
YlBsdWdpbiogcGx1Z2luLCBnYm9vbGVhbiBlbmFibGVkKQotewotICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9QTFVHSU4ocGx1Z2luKSk7Ci0gICAgV2ViS2l0V2ViUGx1Z2luUHJp
dmF0ZSogcHJpdiA9IHBsdWdpbi0+cHJpdjsKLQotICAgIEFTU0VSVChwcml2LT5jb3JlUGx1Z2lu
KTsKLSAgICBpZiAocHJpdi0+Y29yZVBsdWdpbi0+aXNFbmFibGVkKCkgPT0gZW5hYmxlZCkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgcHJpdi0+Y29yZVBsdWdpbi0+c2V0RW5hYmxlZChlbmFibGVk
KTsKLQotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVChwbHVnaW4pLCAiZW5hYmxlZCIpOwot
fQotCi0vKioKLSAqIHdlYmtpdF93ZWJfcGx1Z2luX2dldF9lbmFibGVkOgotICogQHBsdWdpbjog
YSAjV2ViS2l0V2ViUGx1Z2luCi0gKgotICogUmV0dXJuczogJVRSVUUgaWYgdGhlIHBsdWdpbiBp
cyBlbmFibGVkLCAlRkFMU0Ugb3RoZXJ3aXNlCi0gKgotICogU2luY2U6IDEuMy44Ci0gKi8KLWdi
b29sZWFuIHdlYmtpdF93ZWJfcGx1Z2luX2dldF9lbmFibGVkKFdlYktpdFdlYlBsdWdpbiogcGx1
Z2luKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUExVR0lOKHBs
dWdpbiksIEZBTFNFKTsKLQotICAgIEFTU0VSVChwbHVnaW4tPnByaXYtPmNvcmVQbHVnaW4pOwot
ICAgIHJldHVybiBwbHVnaW4tPnByaXYtPmNvcmVQbHVnaW4tPmlzRW5hYmxlZCgpOwotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbi5oIGIvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbi5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxZDJkZjQ4Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJwbHVnaW4uaAorKysgL2Rldi9udWxsCkBAIC0xLDkxICswLDAgQEAKLS8q
Ci0gKiAgQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwuCi0gKgotICogIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
Ci0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx
ICBVU0EKLSAqLwotCi0jaWZuZGVmIHdlYmtpdHdlYnBsdWdpbl9oCi0jZGVmaW5lIHdlYmtpdHdl
YnBsdWdpbl9oCi0KLSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotCi0jaW5jbHVkZSA8d2Via2l0
L3dlYmtpdGRlZmluZXMuaD4KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9UWVBF
X1dFQl9QTFVHSU4gICAgICAgICAgICAod2Via2l0X3dlYl9wbHVnaW5fZ2V0X3R5cGUoKSkKLSNk
ZWZpbmUgV0VCS0lUX1dFQl9QTFVHSU4ob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX1BMVUdJTiwgV2ViS2l0V2ViUGx1Z2lu
KSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9QTFVHSU5fQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCBXRUJLSVRfVFlQRV9XRUJfUExVR0lOLCBXZWJLaXRXZWJQ
bHVnaW5DbGFzcykpCi0jZGVmaW5lIFdFQktJVF9JU19XRUJfUExVR0lOKG9iaikgICAgICAgICAo
R19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9QTFVHSU4p
KQotI2RlZmluZSBXRUJLSVRfSVNfV0VCX1BMVUdJTl9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksIFdFQktJVF9UWVBFX1dFQl9QTFVHSU4pKQotI2RlZmluZSBX
RUJLSVRfV0VCX1BMVUdJTl9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xB
U1MoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9QTFVHSU4sIFdlYktpdFdlYlBsdWdpbkNsYXNzKSkK
LQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlBsdWdpblByaXZhdGUgV2ViS2l0V2ViUGx1Z2lu
UHJpdmF0ZTsKLQotLyoqCi0gKiBXZWJLaXRXZWJQbHVnaW5NSU1FVHlwZToKLSAqIEBuYW1lOiB0
aGUgbmFtZSBvZiB0aGUgTUlNRSB0eXBlLgotICogQGRlc2NyaXB0aW9uOiB0aGUgZGVzY3JpcHRp
b24gb2YgdGhlIE1JTUUgdHlwZS4KLSAqIEBleHRlbnNpb25zOiBhICVOVUxMLXRlcm1pbmF0ZWQg
YXJyYXkgd2l0aCB0aGUgZXh0ZW5zaW9ucwotICogYXNzb2NpYXRlZCB3aXRoIHRoaXMgTUlNRSB0
eXBlLgotICoKLSAqIEEgc3RydWN0dXJlIHJlcHJlc2VudGluZyBvbmUgb2YgdGhlIE1JTUUgdHlw
ZXMgYXNzb2NpYXRlZCB3aXRoIGEKLSAqIHBsdWdpbi4gQSAjR1NMaXN0IG9mIHRoZXNlIG9iamVj
dHMgd2lsbCBiZSByZXR1cm5lZCBieQotICogI3dlYmtpdF93ZWJfcGx1Z2luX2dldF9taW1ldHlw
ZXMsIHVzZQotICogI3dlYmtpdF93ZWJfcGx1Z2luX21pbWVfdHlwZV9saXN0X2ZyZWUgdG8gZnJl
ZSBpdC4KLSAqCi0gKiBTaW5jZTogMS4zLjgKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdl
YlBsdWdpbk1JTUVUeXBlIHsKLSAgICBjaGFyKiBuYW1lOwotICAgIGNoYXIqIGRlc2NyaXB0aW9u
OwotICAgIGNoYXIqKiBleHRlbnNpb25zOwotfSBXZWJLaXRXZWJQbHVnaW5NSU1FVHlwZTsKLQot
c3RydWN0IF9XZWJLaXRXZWJQbHVnaW5DbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudENs
YXNzOwotfTsKLQotc3RydWN0IF9XZWJLaXRXZWJQbHVnaW4gewotICAgIEdPYmplY3QgcGFyZW50
SW5zdGFuY2U7Ci0KLSAgICBXZWJLaXRXZWJQbHVnaW5Qcml2YXRlKiBwcml2OwotfTsKLQotV0VC
S0lUX0FQSSBHVHlwZQotd2Via2l0X3dlYl9wbHVnaW5fZ2V0X3R5cGUgICAgICAgICh2b2lkKSBH
X0dOVUNfQ09OU1Q7Ci0KLVdFQktJVF9BUEkgY29uc3QgY2hhcioKLXdlYmtpdF93ZWJfcGx1Z2lu
X2dldF9uYW1lICAgICAgICAoV2ViS2l0V2ViUGx1Z2luICpwbHVnaW4pOwotCi1XRUJLSVRfQVBJ
IGNvbnN0IGNoYXIqCi13ZWJraXRfd2ViX3BsdWdpbl9nZXRfZGVzY3JpcHRpb24gKFdlYktpdFdl
YlBsdWdpbiAqcGx1Z2luKTsKLQotV0VCS0lUX0FQSSBjb25zdCBjaGFyKgotd2Via2l0X3dlYl9w
bHVnaW5fZ2V0X3BhdGggICAgICAgIChXZWJLaXRXZWJQbHVnaW4gKnBsdWdpbik7Ci0KLVdFQktJ
VF9BUEkgR1NMaXN0Kgotd2Via2l0X3dlYl9wbHVnaW5fZ2V0X21pbWV0eXBlcyAgIChXZWJLaXRX
ZWJQbHVnaW4gKnBsdWdpbik7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl9wbHVnaW5f
c2V0X2VuYWJsZWQgICAgIChXZWJLaXRXZWJQbHVnaW4gKnBsdWdpbiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgIGVuYWJsZWQpOwotCi1XRUJLSVRf
QVBJIGdib29sZWFuCi13ZWJraXRfd2ViX3BsdWdpbl9nZXRfZW5hYmxlZCAgICAgKFdlYktpdFdl
YlBsdWdpbiAqcGx1Z2luKTsKLQotR19FTkRfREVDTFMKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luZGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBsdWdpbmRhdGFiYXNlLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWI5ZDA2My4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luZGF0YWJhc2UuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsMTUyICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwu
Ci0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
LSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAid2Via2l0d2VicGx1Z2luZGF0YWJhc2UuaCIKLQotI2luY2x1ZGUgIlBsdWdpbkRh
dGFiYXNlLmgiCi0jaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKLSNpbmNsdWRlICJ3
ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZXByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJwbHVn
aW5wcml2YXRlLmgiCi0KLS8qKgotICogU0VDVElPTjp3ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZQot
ICogQHNob3J0X2Rlc2NyaXB0aW9uOiBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGx1
Z2lucyB0aGUgZW5naW5lIGtub3dzIGFib3V0Ci0gKiBAc2VlX2Fsc286ICNXZWJLaXRXZWJQbHVn
aW4KLSAqCi0gKiBUaGlzIG9iamVjdCBhbGxvd3MgeW91IHRvIHF1ZXJ5IGluZm9ybWF0aW9uIGFi
b3V0IHRoZSBwbHVnaW5zIGZvdW5kCi0gKiBieSB0aGUgZW5naW5lIHdoaWxlIHNjYW5uaW5nIHRo
ZSB1c3VhbCBkaXJlY3Rvcmllcy4gWW91IGNhbiB0aGVuCi0gKiB1c2UgdGhlICNXZWJLaXRXZWJQ
bHVnaW4gb2JqZWN0cyB0byBnZXQgbW9yZSBpbmZvcm1hdGlvbiBvcgotICogZW5hYmxlL2Rpc2Fi
bGUgaW5kaXZpZHVhbCBwbHVnaW5zLgotICovCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotR19ERUZJTkVfVFlQRShXZWJLaXRXZWJQbHVnaW5E
YXRhYmFzZSwgd2Via2l0X3dlYl9wbHVnaW5fZGF0YWJhc2UsIEdfVFlQRV9PQkpFQ1QpCi0KLXN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfcGx1Z2luX2RhdGFiYXNlX2Rpc3Bvc2UoR09iamVjdCogb2Jq
ZWN0KQotewotICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF93ZWJfcGx1Z2luX2RhdGFiYXNlX3Bh
cmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9wbHVnaW5fZGF0YWJhc2VfY2xhc3NfaW5pdChXZWJLaXRXZWJQbHVnaW5EYXRhYmFzZUNsYXNz
KiBrbGFzcykKLXsKLSAgICB3ZWJraXRJbml0KCk7Ci0KLSAgICBHT2JqZWN0Q2xhc3MqIGdvYmpl
Y3RDbGFzcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8R09iamVjdENsYXNzKj4oa2xhc3MpOwotCi0gICAg
Z29iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0X3dlYl9wbHVnaW5fZGF0YWJhc2VfZGlzcG9z
ZTsKLQotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9mKFdlYktpdFdl
YlBsdWdpbkRhdGFiYXNlUHJpdmF0ZSkpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Bs
dWdpbl9kYXRhYmFzZV9pbml0KFdlYktpdFdlYlBsdWdpbkRhdGFiYXNlKiBkYXRhYmFzZSkKLXsK
LSAgICBXZWJLaXRXZWJQbHVnaW5EYXRhYmFzZVByaXZhdGUqIHByaXYgPSBHX1RZUEVfSU5TVEFO
Q0VfR0VUX1BSSVZBVEUoZGF0YWJhc2UsIFdFQktJVF9UWVBFX1dFQl9QTFVHSU5fREFUQUJBU0Us
IFdlYktpdFdlYlBsdWdpbkRhdGFiYXNlUHJpdmF0ZSk7Ci0gICAgZGF0YWJhc2UtPnByaXYgPSBw
cml2OwotCi0gICAgcHJpdi0+Y29yZURhdGFiYXNlID0gUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxl
ZFBsdWdpbnMoKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3BsdWdpbl9kYXRhYmFzZV9wbHVn
aW5zX2xpc3RfZnJlZToKLSAqIEBsaXN0OiAoZWxlbWVudC10eXBlIFdlYktpdFdlYlBsdWdpbik6
IGEgI0dTTGlzdCBvZiAjV2ViS2l0V2ViUGx1Z2luCi0gKgotICogRnJlZXMgQGxpc3QuCi0gKgot
ICogU2luY2U6IDEuMy44Ci0gKi8KLXZvaWQgd2Via2l0X3dlYl9wbHVnaW5fZGF0YWJhc2VfcGx1
Z2luc19saXN0X2ZyZWUoR1NMaXN0KiBsaXN0KQotewotICAgIGlmICghbGlzdCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgZm9yIChHU0xpc3QqIHAgPSBsaXN0OyBwOyBwID0gcC0+bmV4dCkKLSAg
ICAgICAgZ19vYmplY3RfdW5yZWYocC0+ZGF0YSk7Ci0KLSAgICBnX3NsaXN0X2ZyZWUobGlzdCk7
Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9wbHVnaW5fZGF0YWJhc2VfZ2V0X3BsdWdpbnM6Ci0g
KiBAZGF0YWJhc2U6IGEgI1dlYktpdFdlYlBsdWdpbkRhdGFiYXNlCi0gKgotICogUmV0dXJucyBh
bGwgI1dlYktpdFdlYlBsdWdpbiBhdmFpbGFibGUgaW4gQGRhdGFiYXNlLgotICogVGhlIHJldHVy
bmVkIGxpc3QgbXVzdCBiZSBmcmVlZCB3aXRoIHdlYmtpdF93ZWJfcGx1Z2luX2RhdGFiYXNlX3Bs
dWdpbnNfbGlzdF9mcmVlKCkKLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCkgKGVsZW1l
bnQtdHlwZSBXZWJLaXRXZWJQbHVnaW4pOiBhICNHU0xpc3Qgb2YgI1dlYktpdFdlYlBsdWdpbgot
ICoKLSAqIFNpbmNlOiAxLjMuOAotICovCi1HU0xpc3QqIHdlYmtpdF93ZWJfcGx1Z2luX2RhdGFi
YXNlX2dldF9wbHVnaW5zKFdlYktpdFdlYlBsdWdpbkRhdGFiYXNlKiBkYXRhYmFzZSkKLXsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1BMVUdJTl9EQVRBQkFTRShkYXRh
YmFzZSksIDApOwotCi0gICAgR1NMaXN0KiBnUGx1Z2lucyA9IDA7Ci0gICAgY29uc3QgVmVjdG9y
PFBsdWdpblBhY2thZ2UqPiYgcGx1Z2lucyA9IGRhdGFiYXNlLT5wcml2LT5jb3JlRGF0YWJhc2Ut
PnBsdWdpbnMoKTsKLQotICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGx1Z2lucy5z
aXplKCk7ICsraSkgewotICAgICAgICBQbHVnaW5QYWNrYWdlKiBwbHVnaW4gPSBwbHVnaW5zW2ld
OwotICAgICAgICBnUGx1Z2lucyA9IGdfc2xpc3RfYXBwZW5kKGdQbHVnaW5zLCBraXROZXcocGx1
Z2luKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGdQbHVnaW5zOwotfQotCi0vKioKLSAqIHdlYmtp
dF93ZWJfcGx1Z2luX2RhdGFiYXNlX2dldF9wbHVnaW5fZm9yX21pbWV0eXBlOgotICogQGRhdGFi
YXNlOiBhICNXZWJLaXRXZWJQbHVnaW5EYXRhYmFzZQotICogQG1pbWVfdHlwZTogYSBtaW1lIHR5
cGUKLSAqCi0gKiBSZXR1cm5zIHRoZSAjV2ViS2l0V2ViUGx1Z2luIHRoYXQgaXMgaGFuZGxpbmcg
QG1pbWVUeXBlIGluIHRoZQotICogQGRhdGFiYXNlLCBvciAlTlVMTCBpZiB0aGVyZSdzIG5vbmUg
ZG9pbmcgc28uCi0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBhICNXZWJLaXRXZWJQ
bHVnaW4KLSAqCi0gKiBTaW5jZTogMS4zLjgKLSAqLwotV2ViS2l0V2ViUGx1Z2luKiB3ZWJraXRf
d2ViX3BsdWdpbl9kYXRhYmFzZV9nZXRfcGx1Z2luX2Zvcl9taW1ldHlwZShXZWJLaXRXZWJQbHVn
aW5EYXRhYmFzZSogZGF0YWJhc2UsIGNvbnN0IGNoYXIqIG1pbWVUeXBlKQotewotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUExVR0lOX0RBVEFCQVNFKGRhdGFiYXNlKSwg
MCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwobWltZVR5cGUsIDApOwotCi0gICAgcmV0dXJu
IGtpdE5ldyhkYXRhYmFzZS0+cHJpdi0+Y29yZURhdGFiYXNlLT5wbHVnaW5Gb3JNSU1FVHlwZSht
aW1lVHlwZSkpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfcGx1Z2luX2RhdGFiYXNlX3JlZnJl
c2g6Ci0gKiBAZGF0YWJhc2U6IGEgI1dlYktpdFdlYlBsdWdpbkRhdGFiYXNlCi0gKgotICogUmVm
cmVzaGVzIEBkYXRhYmFzZSBhZGRpbmcgbmV3IHBsdWdpbnMgdGhhdCBhcmUgbm93IGluIHVzZSBh
bmQKLSAqIHJlbW92aW5nIHRob3NlIHRoYXQgaGF2ZSBiZWVuIGRpc2FibGVkIG9yIGFyZSBvdGhl
cndpc2Ugbm8gbG9uZ2VyCi0gKiBhdmFpbGFibGUuCi0gKgotICogU2luY2U6IDEuMy44Ci0gKi8K
LXZvaWQgd2Via2l0X3dlYl9wbHVnaW5fZGF0YWJhc2VfcmVmcmVzaChXZWJLaXRXZWJQbHVnaW5E
YXRhYmFzZSogZGF0YWJhc2UpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VC
X1BMVUdJTl9EQVRBQkFTRShkYXRhYmFzZSkpOwotCi0gICAgZGF0YWJhc2UtPnByaXYtPmNvcmVE
YXRhYmFzZS0+cmVmcmVzaCgpOwotfQotCi1XZWJLaXRXZWJQbHVnaW5EYXRhYmFzZSogd2Via2l0
X3dlYl9wbHVnaW5fZGF0YWJhc2VfbmV3KHZvaWQpCi17Ci0gICAgcmV0dXJuIFdFQktJVF9XRUJf
UExVR0lOX0RBVEFCQVNFKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfUExVR0lOX0RBVEFC
QVNFLCAwKSk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2VicGx1Z2luZGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJw
bHVnaW5kYXRhYmFzZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWE4YTE1Li4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRh
YmFzZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMTAgSWdhbGlhIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNp
Zm5kZWYgd2Via2l0d2VicGx1Z2luZGF0YWJhc2VfaAotI2RlZmluZSB3ZWJraXR3ZWJwbHVnaW5k
YXRhYmFzZV9oCi0KLSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotCi0jaW5jbHVkZSA8d2Via2l0
L3dlYmtpdGRlZmluZXMuaD4KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9UWVBF
X1dFQl9QTFVHSU5fREFUQUJBU0UgICAgICAgICAgICAod2Via2l0X3dlYl9wbHVnaW5fZGF0YWJh
c2VfZ2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9QTFVHSU5fREFUQUJBU0Uob2JqKSAg
ICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVf
V0VCX1BMVUdJTl9EQVRBQkFTRSwgV2ViS2l0V2ViUGx1Z2luRGF0YWJhc2UpKQotI2RlZmluZSBX
RUJLSVRfV0VCX1BMVUdJTl9EQVRBQkFTRV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19D
TEFTU19DQVNUKChrbGFzcyksIFdFQktJVF9UWVBFX1dFQl9QTFVHSU5fREFUQUJBU0UsIFdlYktp
dFdlYlBsdWdpbkRhdGFiYXNlQ2xhc3MpKQotI2RlZmluZSBXRUJLSVRfSVNfV0VCX1BMVUdJTl9E
QVRBQkFTRShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBX
RUJLSVRfVFlQRV9XRUJfUExVR0lOX0RBVEFCQVNFKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1dFQl9Q
TFVHSU5fREFUQUJBU0VfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xh
c3MpLCBXRUJLSVRfVFlQRV9XRUJfUExVR0lOX0RBVEFCQVNFKSkKLSNkZWZpbmUgV0VCS0lUX1dF
Ql9QTFVHSU5fREFUQUJBU0VfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfUExVR0lOX0RBVEFCQVNFLCBXZWJLaXRXZWJQbHVn
aW5EYXRhYmFzZUNsYXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlBsdWdpbkRhdGFi
YXNlUHJpdmF0ZSBXZWJLaXRXZWJQbHVnaW5EYXRhYmFzZVByaXZhdGU7Ci0KLXN0cnVjdCBfV2Vi
S2l0V2ViUGx1Z2luRGF0YWJhc2VDbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudENsYXNz
OwotfTsKLQotc3RydWN0IF9XZWJLaXRXZWJQbHVnaW5EYXRhYmFzZSB7Ci0gICAgR09iamVjdCBw
YXJlbnRJbnN0YW5jZTsKLQotICAgIFdlYktpdFdlYlBsdWdpbkRhdGFiYXNlUHJpdmF0ZSogcHJp
djsKLX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF93ZWJfcGx1Z2luX2RhdGFiYXNlX2dl
dF90eXBlICAgICAgICAgICAgICAgICh2b2lkKSBHX0dOVUNfQ09OU1Q7Ci0KLVdFQktJVF9BUEkg
dm9pZAotd2Via2l0X3dlYl9wbHVnaW5fZGF0YWJhc2VfcGx1Z2luc19saXN0X2ZyZWUgICAgICAg
KEdTTGlzdCAgICAgICAgICAgICAgICAgICpsaXN0KTsKLQotV0VCS0lUX0FQSSBHU0xpc3QqCi13
ZWJraXRfd2ViX3BsdWdpbl9kYXRhYmFzZV9nZXRfcGx1Z2lucyAgICAgICAgICAgICAoV2ViS2l0
V2ViUGx1Z2luRGF0YWJhc2UgKmRhdGFiYXNlKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRXZWJQbHVn
aW4qCi13ZWJraXRfd2ViX3BsdWdpbl9kYXRhYmFzZV9nZXRfcGx1Z2luX2Zvcl9taW1ldHlwZSAo
V2ViS2l0V2ViUGx1Z2luRGF0YWJhc2UgKmRhdGFiYXNlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICAgICpt
aW1lX3R5cGUpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfcGx1Z2luX2RhdGFiYXNl
X3JlZnJlc2ggICAgICAgICAgICAgICAgIChXZWJLaXRXZWJQbHVnaW5EYXRhYmFzZSAqZGF0YWJh
c2UpOwotCi1HX0VORF9ERUNMUwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZXByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5kYXRhYmFzZXByaXZhdGUuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTk5YWVkZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2VicGx1Z2luZGF0YWJhc2Vwcml2YXRlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LSNpZm5kZWYgd2Via2l0d2VicGx1Z2luZGF0YWJhc2Vwcml2YXRlX2gKLSNkZWZpbmUgd2Via2l0
d2VicGx1Z2luZGF0YWJhc2Vwcml2YXRlX2gKLQotI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFBsdWdpbkRhdGFiYXNlOwotfQotCi1leHRlcm4g
IkMiIHsKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlBsdWdpbkRhdGFiYXNlUHJpdmF0ZSBX
ZWJLaXRXZWJQbHVnaW5EYXRhYmFzZVByaXZhdGU7Ci1zdHJ1Y3QgX1dlYktpdFdlYlBsdWdpbkRh
dGFiYXNlUHJpdmF0ZSB7Ci0gICAgV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2UqIGNvcmVEYXRhYmFz
ZTsKLX07Ci0KLVdlYktpdFdlYlBsdWdpbkRhdGFiYXNlKiB3ZWJraXRfd2ViX3BsdWdpbl9kYXRh
YmFzZV9uZXcoKTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJwbHVnaW5wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2VicGx1Z2lucHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlZDIxNzc5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJwbHVnaW5wcml2YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICog
IENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
Ci0gKi8KLQotI2lmbmRlZiB3ZWJraXR3ZWJwbHVnaW5wcml2YXRlX2gKLSNkZWZpbmUgd2Via2l0
d2VicGx1Z2lucHJpdmF0ZV9oCi0KLSNpbmNsdWRlICJ3ZWJraXR3ZWJwbHVnaW4uaCIKLSNpbmNs
dWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dVbmlxdWVQdHIuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNs
YXNzIFBsdWdpblBhY2thZ2U7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotV2ViS2l0V2ViUGx1
Z2luKiBraXROZXcoV2ViQ29yZTo6UGx1Z2luUGFja2FnZSogcGFja2FnZSk7Ci19Ci0KLWV4dGVy
biAiQyIgewotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViUGx1Z2luUHJpdmF0ZSBXZWJLaXRX
ZWJQbHVnaW5Qcml2YXRlOwotc3RydWN0IF9XZWJLaXRXZWJQbHVnaW5Qcml2YXRlIHsKLSAgICBS
ZWZQdHI8V2ViQ29yZTo6UGx1Z2luUGFja2FnZT4gY29yZVBsdWdpbjsKLSAgICBDU3RyaW5nIG5h
bWU7Ci0gICAgQ1N0cmluZyBkZXNjcmlwdGlvbjsKLSAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGg7
Ci0gICAgR1NMaXN0KiBtaW1lVHlwZXM7Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0NmRiYjcuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDEzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBM
dGQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJwb2xpY3lkZWNpc2lv
bi5oIgotCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKLSNpbmNsdWRlICJGcmFtZUxv
YWRlclR5cGVzLmgiCi0jaW5jbHVkZSAid2Via2l0d2ViZnJhbWVwcml2YXRlLmgiCi0jaW5jbHVk
ZSAid2Via2l0d2VicG9saWN5ZGVjaXNpb25wcml2YXRlLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotLyoqCi0gKiBTRUNUSU9OOndlYmtp
dHdlYnBvbGljeWRlY2lzaW9uCi0gKiBAc2hvcnRfZGVzY3JpcHRpb246IExpYXNvbiBiZXR3ZWVu
IFdlYktpdCBhbmQgdGhlIGFwcGxpY2F0aW9uIHJlZ2FyZGluZyBhc3luY2hyb25vdXMgcG9saWN5
IGRlY2lzaW9ucwotICoKLSAqICNXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbiBvYmplY3RzIGFyZSBn
aXZlbiB0byB0aGUgYXBwbGljYXRpb24gb24KLSAqIHNpZ25hbCBlbWlzc2lvbnMgdGhhdCBkZWFs
IHdpdGggcG9saWN5IGRlY2lzaW9ucywgc3VjaCBhcyBpZiBhIG5ldwotICogd2luZG93IHNob3Vs
ZCBiZSBvcGVuZWQsIG9yIGlmIGEgZ2l2ZW4gbmF2aWdhdGlvbiBzaG91bGQgYmUKLSAqIGFsbG93
ZWQuIFRoZSBhcHBsaWNhdGlvbiB1c2VzIGl0IHRvIHRlbGwgdGhlIGVuZ2luZSB3aGF0IHRvIGRv
LgotICovCi0KLUdfREVGSU5FX1RZUEUoV2ViS2l0V2ViUG9saWN5RGVjaXNpb24sIHdlYmtpdF93
ZWJfcG9saWN5X2RlY2lzaW9uLCBHX1RZUEVfT0JKRUNUKTsKLQotc3RydWN0IF9XZWJLaXRXZWJQ
b2xpY3lEZWNpc2lvblByaXZhdGUgewotICAgIFdlYktpdFdlYkZyYW1lKiBmcmFtZTsKLSAgICBG
cmFtZVBvbGljeUZ1bmN0aW9uIGZyYW1lUG9saWN5RnVuY3Rpb247Ci0gICAgZ2Jvb2xlYW4gaXND
YW5jZWxsZWQ7Ci19OwotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9j
bGFzc19pbml0KFdlYktpdFdlYlBvbGljeURlY2lzaW9uQ2xhc3MqIGRlY2lzaW9uQ2xhc3MpCi17
Ci0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGRlY2lzaW9uQ2xhc3MsIHNpemVvZihXZWJL
aXRXZWJQb2xpY3lEZWNpc2lvblByaXZhdGUpKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9wb2xpY3lfZGVjaXNpb25faW5pdChXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbiogZGVjaXNpb24p
Ci17Ci0gICAgZGVjaXNpb24tPnByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoZGVj
aXNpb24sIFdFQktJVF9UWVBFX1dFQl9QT0xJQ1lfREVDSVNJT04sIFdlYktpdFdlYlBvbGljeURl
Y2lzaW9uUHJpdmF0ZSk7Ci19Ci0KLVdlYktpdFdlYlBvbGljeURlY2lzaW9uKiB3ZWJraXRfd2Vi
X3BvbGljeV9kZWNpc2lvbl9uZXcoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBXZWJDb3JlOjpGcmFt
ZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGZy
YW1lLCBOVUxMKTsKLQotICAgIFdlYktpdFdlYlBvbGljeURlY2lzaW9uKiBkZWNpc2lvbiA9IFdF
QktJVF9XRUJfUE9MSUNZX0RFQ0lTSU9OKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfUE9M
SUNZX0RFQ0lTSU9OLCBOVUxMKSk7Ci0gICAgV2ViS2l0V2ViUG9saWN5RGVjaXNpb25Qcml2YXRl
KiBwcml2ID0gZGVjaXNpb24tPnByaXY7Ci0KLSAgICBwcml2LT5mcmFtZSA9IGZyYW1lOwotICAg
IHByaXYtPmZyYW1lUG9saWN5RnVuY3Rpb24gPSBmdW5jdGlvbjsKLSAgICBwcml2LT5pc0NhbmNl
bGxlZCA9IEZBTFNFOwotCi0gICAgcmV0dXJuIGRlY2lzaW9uOwotfQotCi0vKioKLSAqIHdlYmtp
dF93ZWJfcG9saWN5X2RlY2lzaW9uX3VzZToKLSAqIEBkZWNpc2lvbjogYSAjV2ViS2l0V2ViUG9s
aWN5RGVjaXNpb24KLSAqCi0gKiBXaWxsIHNlbmQgdGhlIFVTRSBkZWNpc2lvbiB0byB0aGUgcG9s
aWN5IGltcGxlbWVudGVyLgotICoKLSAqIFNpbmNlOiAxLjAuMwotICovCi12b2lkIHdlYmtpdF93
ZWJfcG9saWN5X2RlY2lzaW9uX3VzZShXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbiogZGVjaXNpb24p
Ci17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1BPTElDWV9ERUNJU0lPTihk
ZWNpc2lvbikpOwotCi0gICAgV2ViS2l0V2ViUG9saWN5RGVjaXNpb25Qcml2YXRlKiBwcml2ID0g
ZGVjaXNpb24tPnByaXY7Ci0KLSAgICBpZiAoIXByaXYtPmlzQ2FuY2VsbGVkKQotICAgICAgICBw
cml2LT5mcmFtZVBvbGljeUZ1bmN0aW9uKFdlYkNvcmU6OlBvbGljeVVzZSk7Ci19Ci0KLS8qKgot
ICogd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25faWdub3JlOgotICogQGRlY2lzaW9uOiBhICNX
ZWJLaXRXZWJQb2xpY3lEZWNpc2lvbgotICoKLSAqIFdpbGwgc2VuZCB0aGUgSUdOT1JFIGRlY2lz
aW9uIHRvIHRoZSBwb2xpY3kgaW1wbGVtZW50ZXIuCi0gKgotICogU2luY2U6IDEuMC4zCi0gKi8K
LXZvaWQgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25faWdub3JlKFdlYktpdFdlYlBvbGljeURl
Y2lzaW9uKiBkZWNpc2lvbikKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJf
UE9MSUNZX0RFQ0lTSU9OKGRlY2lzaW9uKSk7Ci0KLSAgICBXZWJLaXRXZWJQb2xpY3lEZWNpc2lv
blByaXZhdGUqIHByaXYgPSBkZWNpc2lvbi0+cHJpdjsKLQotICAgIGlmICghcHJpdi0+aXNDYW5j
ZWxsZWQpCi0gICAgICAgIHByaXYtPmZyYW1lUG9saWN5RnVuY3Rpb24oV2ViQ29yZTo6UG9saWN5
SWdub3JlKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9kb3dubG9h
ZDoKLSAqIEBkZWNpc2lvbjogYSAjV2ViS2l0V2ViUG9saWN5RGVjaXNpb24KLSAqCi0gKiBXaWxs
IHNlbmQgdGhlIERPV05MT0FEIGRlY2lzaW9uIHRvIHRoZSBwb2xpY3kgaW1wbGVtZW50ZXIuCi0g
KgotICogU2luY2U6IDEuMC4zCi0gKi8KLXZvaWQgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25f
ZG93bmxvYWQoV2ViS2l0V2ViUG9saWN5RGVjaXNpb24qIGRlY2lzaW9uKQotewotICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9QT0xJQ1lfREVDSVNJT04oZGVjaXNpb24pKTsKLQot
ICAgIFdlYktpdFdlYlBvbGljeURlY2lzaW9uUHJpdmF0ZSogcHJpdiA9IGRlY2lzaW9uLT5wcml2
OwotCi0gICAgaWYgKCFwcml2LT5pc0NhbmNlbGxlZCkKLSAgICAgICAgcHJpdi0+ZnJhbWVQb2xp
Y3lGdW5jdGlvbihXZWJDb3JlOjpQb2xpY3lEb3dubG9hZCk7Ci19Ci0KLXZvaWQgd2Via2l0X3dl
Yl9wb2xpY3lfZGVjaXNpb25fY2FuY2VsKFdlYktpdFdlYlBvbGljeURlY2lzaW9uKiBkZWNpc2lv
bikKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfUE9MSUNZX0RFQ0lTSU9O
KGRlY2lzaW9uKSk7Ci0KLSAgICBXZWJLaXRXZWJQb2xpY3lEZWNpc2lvblByaXZhdGUqIHByaXYg
PSBkZWNpc2lvbi0+cHJpdjsKLQotICAgIHByaXYtPmlzQ2FuY2VsbGVkID0gVFJVRTsKLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lv
bi5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNjE4MzcuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9y
YSBMdGQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICovCi0KLSNpZm5kZWYgd2Via2l0d2VicG9saWN5ZGVjaXNpb25faAotI2RlZmluZSB3ZWJraXR3
ZWJwb2xpY3lkZWNpc2lvbl9oCi0KLSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUg
PHN0ZGludC5oPgotI2luY2x1ZGUgIndlYmtpdGRlZmluZXMuaCIKLQotR19CRUdJTl9ERUNMUwot
Ci0jZGVmaW5lIFdFQktJVF9UWVBFX1dFQl9QT0xJQ1lfREVDSVNJT04gICAgICAgICAgICAod2Vi
a2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fZ2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9Q
T0xJQ1lfREVDSVNJT04ob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FT
VCgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX1BPTElDWV9ERUNJU0lPTiwgV2ViS2l0V2ViUG9saWN5
RGVjaXNpb24pKQotI2RlZmluZSBXRUJLSVRfV0VCX1BPTElDWV9ERUNJU0lPTl9DTEFTUyhrbGFz
cykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJf
UE9MSUNZX0RFQ0lTSU9OLCBXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbkNsYXNzKSkKLSNkZWZpbmUg
V0VCS0lUX0lTX1dFQl9QT0xJQ1lfREVDSVNJT04ob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX1BPTElDWV9ERUNJU0lPTikpCi0j
ZGVmaW5lIFdFQktJVF9JU19XRUJfUE9MSUNZX0RFQ0lTSU9OX0NMQVNTKGtsYXNzKSAoR19UWVBF
X0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9QT0xJQ1lfREVDSVNJ
T04pKQotI2RlZmluZSBXRUJLSVRfV0VCX1BPTElDWV9ERUNJU0lPTl9HRVRfQ0xBU1Mob2JqKSAg
KEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9XRUJfUE9MSUNZ
X0RFQ0lTSU9OLCBXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbkNsYXNzKSkKLQotdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdFdlYlBvbGljeURlY2lzaW9uUHJpdmF0ZSBXZWJLaXRXZWJQb2xpY3lEZWNpc2lv
blByaXZhdGU7Ci1zdHJ1Y3QgX1dlYktpdFdlYlBvbGljeURlY2lzaW9uIHsKLSAgICBHT2JqZWN0
IHBhcmVudF9pbnN0YW5jZTsKLQotICAgIC8qPCBwcml2YXRlID4qLwotICAgIFdlYktpdFdlYlBv
bGljeURlY2lzaW9uUHJpdmF0ZSogcHJpdjsKLX07Ci0KLXN0cnVjdCBfV2ViS2l0V2ViUG9saWN5
RGVjaXNpb25DbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIC8q
IFBhZGRpbmcgZm9yIGZ1dHVyZSBleHBhbnNpb24gKi8KLSAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDApICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKLSAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDMpICh2b2lkKTsKLX07Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF93ZWJfcG9s
aWN5X2RlY2lzaW9uX2dldF90eXBlICh2b2lkKTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRf
d2ViX3BvbGljeV9kZWNpc2lvbl91c2UgKFdlYktpdFdlYlBvbGljeURlY2lzaW9uKiBkZWNpc2lv
bik7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25faWdub3Jl
IChXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbiogZGVjaXNpb24pOwotCi1XRUJLSVRfQVBJIHZvaWQK
LXdlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX2Rvd25sb2FkIChXZWJLaXRXZWJQb2xpY3lEZWNp
c2lvbiogZGVjaXNpb24pOwotCi1HX0VORF9ERUNMUwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbnByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbnByaXZhdGUu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQyNjRhYi4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicG9saWN5ZGVjaXNpb25wcml2YXRlLmgK
KysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpvCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFi
b3JhIEx0ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIHdlYmtp
dHdlYnBvbGljeWRlY2lzaW9ucHJpdmF0ZV9oCi0jZGVmaW5lIHdlYmtpdHdlYnBvbGljeWRlY2lz
aW9ucHJpdmF0ZV9oCi0KLSNpbmNsdWRlICJ3ZWJraXR3ZWJwb2xpY3lkZWNpc2lvbi5oIgotCi1l
eHRlcm4gIkMiIHsKLQotV2ViS2l0V2ViUG9saWN5RGVjaXNpb24qIHdlYmtpdF93ZWJfcG9saWN5
X2RlY2lzaW9uX25ldyhXZWJLaXRXZWJGcmFtZSosIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rp
b24pOwotCi12b2lkIHdlYmtpdF93ZWJfcG9saWN5X2RlY2lzaW9uX2NhbmNlbChXZWJLaXRXZWJQ
b2xpY3lEZWNpc2lvbiopOwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ1Zjg3ODIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnJlc291cmNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ4NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5IEphbiBNaWNoYWVsIEMuIEFsb256bwotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAid2Via2l0d2VicmVzb3VyY2UuaCIKLQotI2luY2x1ZGUgIkFyY2hpdmVSZXNv
dXJjZS5oIgotI2luY2x1ZGUgIlVSTC5oIgotI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgotI2lu
Y2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgotI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRl
LmgiCi0jaW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgotI2luY2x1ZGUgIndlYmtpdG5ldHdvcmty
ZXNwb25zZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnJlc291cmNlcHJpdmF0ZS5oIgotI2luY2x1
ZGUgPGdsaWIuaD4KLSNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgotI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0d2VicmVzb3VyY2UK
LSAqIEBzaG9ydF9kZXNjcmlwdGlvbjogUmVwcmVzZW50cyBhIGRvd25sb2FkZWQgVVJJLgotICog
QHNlZV9hbHNvOiAjV2ViS2l0V2ViRGF0YVNvdXJjZQotICoKLSAqIEEgd2ViIHJlc291cmNlIGVu
Y2Fwc3VsYXRlcyB0aGUgZGF0YSBvZiB0aGUgZG93bmxvYWQgYXMgd2VsbCBhcyB0aGUgVVJJLAot
ICogTUlNRSB0eXBlIGFuZCBmcmFtZSBuYW1lIG9mIHRoZSByZXNvdXJjZS4KLSAqLwotCi11c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotZW51bSB7Ci0gICAgLy8gUmVzb3VyY2UgbG9hZGluZwot
ICAgIFJFU1BPTlNFX1JFQ0VJVkVELAotICAgIExPQURfRklOSVNIRUQsCi0gICAgQ09OVEVOVF9M
RU5HVEhfUkVDRUlWRUQsCi0gICAgTE9BRF9GQUlMRUQsCi0KLSAgICBMQVNUX1NJR05BTAotfTsK
LQotZW51bSB7Ci0gICAgUFJPUF8wLAotICAgIFBST1BfVVJJLAotICAgIFBST1BfTUlNRV9UWVBF
LAotICAgIFBST1BfRU5DT0RJTkcsCi0gICAgUFJPUF9GUkFNRV9OQU1FCi19OwotCi1zdGF0aWMg
Z3VpbnQgd2Via2l0X3dlYl9yZXNvdXJjZV9zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsK
LQotR19ERUZJTkVfVFlQRShXZWJLaXRXZWJSZXNvdXJjZSwgd2Via2l0X3dlYl9yZXNvdXJjZSwg
R19UWVBFX09CSkVDVCk7Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3By
b3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhbHVlKiB2YWx1ZSwgR1Bh
cmFtU3BlYyogcHNwZWMpOwotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9zZXRfcHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUqIHZhbHVl
LCBHUGFyYW1TcGVjKiBwc3BlYyk7Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2Vf
Y2xlYW51cChXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCi17Ci0gICAgV2ViS2l0V2Vi
UmVzb3VyY2VQcml2YXRlKiBwcml2ID0gd2ViUmVzb3VyY2UtPnByaXY7Ci0KLSAgICBnX2ZyZWUo
cHJpdi0+dXJpKTsKLSAgICBwcml2LT51cmkgPSBOVUxMOwotCi0gICAgZ19mcmVlKHByaXYtPm1p
bWVUeXBlKTsKLSAgICBwcml2LT5taW1lVHlwZSA9IE5VTEw7Ci0KLSAgICBnX2ZyZWUocHJpdi0+
dGV4dEVuY29kaW5nKTsKLSAgICBwcml2LT50ZXh0RW5jb2RpbmcgPSBOVUxMOwotCi0gICAgZ19m
cmVlKHByaXYtPmZyYW1lTmFtZSk7Ci0gICAgcHJpdi0+ZnJhbWVOYW1lID0gTlVMTDsKLQotICAg
IGlmIChwcml2LT5kYXRhKQotICAgICAgICBnX3N0cmluZ19mcmVlKHByaXYtPmRhdGEsIFRSVUUp
OwotICAgIHByaXYtPmRhdGEgPSBOVUxMOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Jl
c291cmNlX2Rpc3Bvc2UoR09iamVjdCogb2JqZWN0KQotewotICAgIFdlYktpdFdlYlJlc291cmNl
KiB3ZWJSZXNvdXJjZSA9IFdFQktJVF9XRUJfUkVTT1VSQ0Uob2JqZWN0KTsKLSAgICBXZWJLaXRX
ZWJSZXNvdXJjZVByaXZhdGUqIHByaXYgPSB3ZWJSZXNvdXJjZS0+cHJpdjsKLQotICAgIGlmIChw
cml2LT5yZXNvdXJjZSkgewotICAgICAgICBwcml2LT5yZXNvdXJjZS0+ZGVyZWYoKTsKLSAgICAg
ICAgcHJpdi0+cmVzb3VyY2UgPSAwOwotICAgIH0KLQotICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtp
dF93ZWJfcmVzb3VyY2VfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3QpOwotfQotCi1zdGF0
aWMgdm9pZCB3ZWJraXRfd2ViX3Jlc291cmNlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKLXsK
LSAgICBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSBXRUJLSVRfV0VCX1JFU09VUkNF
KG9iamVjdCk7Ci0KLSAgICB3ZWJraXRfd2ViX3Jlc291cmNlX2NsZWFudXAod2ViUmVzb3VyY2Up
OwotCi0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3dlYl9yZXNvdXJjZV9wYXJlbnRfY2xhc3Mp
LT5maW5hbGl6ZShvYmplY3QpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Jlc291cmNl
X2NsYXNzX2luaXQoV2ViS2l0V2ViUmVzb3VyY2VDbGFzcyogd2ViUmVzb3VyY2VDbGFzcykKLXsK
LSAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyh3ZWJSZXNv
dXJjZUNsYXNzKTsKLQotICAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRfd2ViX3Jl
c291cmNlX2Rpc3Bvc2U7Ci0gICAgZ29iamVjdF9jbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfd2Vi
X3Jlc291cmNlX2ZpbmFsaXplOwotICAgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdl
YmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3Byb3BlcnR5OwotICAgIGdvYmplY3RfY2xhc3MtPnNldF9w
cm9wZXJ0eSA9IHdlYmtpdF93ZWJfcmVzb3VyY2Vfc2V0X3Byb3BlcnR5OwotCi0gICAgLyoqCi0g
ICAgICogV2ViS2l0V2ViUmVzb3VyY2U6OnJlc3BvbnNlLXJlY2VpdmVkOgotICAgICAqIEB3ZWJf
cmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCi0gICAgICogQHJl
c3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0aGF0IHdhcyByZWNlaXZlZAotICAg
ICAqCi0gICAgICogRW1pdHRlZCB3aGVuIHRoZSByZXNwb25zZSBpcyByZWNlaXZlZCBmcm9tIHRo
ZSBzZXJ2ZXIuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS43LjUKLSAgICAgKi8KLSAgICB3ZWJr
aXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbUkVTUE9OU0VfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3
KCJyZXNwb25zZS1yZWNlaXZlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlJlc291
cmNlQ2xhc3MpLAotICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAg
ICAgMCwgMCwKLSAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKLSAgICAg
ICAgR19UWVBFX05PTkUsIDEsCi0gICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0Up
OwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViUmVzb3VyY2U6OmxvYWQtZmFpbGVkOgotICAg
ICAqIEB3ZWJfcmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVk
Ci0gICAgICogQGVycm9yOiB0aGUgI0dFcnJvciB0aGF0IHdhcyB0cmlnZ2VyZWQKLSAgICAgKgot
ICAgICAqIEludm9rZWQgd2hlbiB0aGUgQHdlYl9yZXNvdXJjZSBmYWlsZWQgdG8gbG9hZAotICAg
ICAqCi0gICAgICogU2luY2U6IDEuNy41Ci0gICAgICovCi0gICAgd2Via2l0X3dlYl9yZXNvdXJj
ZV9zaWduYWxzW0xPQURfRkFJTEVEXSA9IGdfc2lnbmFsX25ldygibG9hZC1mYWlsZWQiLAotICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJSZXNvdXJjZUNsYXNzKSwKLSAgICAgICAgR19TSUdO
QUxfUlVOX0xBU1QsCi0gICAgICAgIDAsCi0gICAgICAgIDAsIDAsCi0gICAgICAgIGdfY2Nsb3N1
cmVfbWFyc2hhbF9WT0lEX19QT0lOVEVSLAotICAgICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAg
ICAgR19UWVBFX1BPSU5URVIpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViUmVzb3VyY2U6
OmxvYWQtZmluaXNoZWQ6Ci0gICAgICogQHdlYl9yZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNv
dXJjZSBiZWluZyBsb2FkZWQKLSAgICAgKgotICAgICAqIEVtaXR0ZWQgd2hlbiBhbGwgdGhlIGRh
dGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS43
LjUKLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3Jlc291cmNlX3NpZ25hbHNbTE9BRF9GSU5JU0hF
RF0gPSBnX3NpZ25hbF9uZXcoImxvYWQtZmluaXNoZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyh3ZWJSZXNvdXJjZUNsYXNzKSwKLSAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCi0gICAg
ICAgIDAsCi0gICAgICAgIDAsIDAsCi0gICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19W
T0lELAotICAgICAgICBHX1RZUEVfTk9ORSwgMCk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRX
ZWJSZXNvdXJjZTo6Y29udGVudC1sZW5ndGgtcmVjZWl2ZWQ6Ci0gICAgICogQHdlYl9yZXNvdXJj
ZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKLSAgICAgKiBAbGVuZ3Ro
X3JlY2VpdmVkOiB0aGUgYW1vdW50IG9mIGRhdGEgcmVjZWl2ZWQgc2luY2UgdGhlIGxhc3Qgc2ln
bmFsIGVtaXNzaW9uCi0gICAgICoKLSAgICAgKiBFbWl0dGVkIHdoZW4gbmV3IHJlc291cmNlIGRh
dGEgaGFzIGJlZW4gcmVjZWl2ZWQuIFRoZQotICAgICAqIEBsZW5ndGhfcmVjZWl2ZWQgdmFyaWFi
bGUgc3RvcmVzIHRoZSBhbW91bnQgb2YgYnl0ZXMgcmVjZWl2ZWQKLSAgICAgKiBzaW5jZSB0aGUg
bGFzdCB0aW1lIHRoaXMgc2lnbmFsIHdhcyBlbWl0dGVkLiBUaGlzIGlzIHVzZWZ1bCB0bwotICAg
ICAqIHByb3ZpZGUgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlc291cmNlIGxvYWQg
b3BlcmF0aW9uLgotICAgICAqCi0gICAgICogU2luY2U6IDEuNy41Ci0gICAgICovCi0gICAgd2Vi
a2l0X3dlYl9yZXNvdXJjZV9zaWduYWxzW0NPTlRFTlRfTEVOR1RIX1JFQ0VJVkVEXSA9IGdfc2ln
bmFsX25ldygiY29udGVudC1sZW5ndGgtcmVjZWl2ZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyh3ZWJSZXNvdXJjZUNsYXNzKSwKLSAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCi0gICAg
ICAgIDAsCi0gICAgICAgIDAsIDAsCi0gICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19J
TlQsCi0gICAgICAgIEdfVFlQRV9OT05FLCAxLAotICAgICAgICBHX1RZUEVfSU5UKTsKLQotICAg
IC8qKgotICAgICAqIFdlYktpdFdlYlJlc291cmNlOnVyaToKLSAgICAgKgotICAgICAqIFRoZSBV
Ukkgb2YgdGhlIHdlYiByZXNvdXJjZQotICAgICAqCi0gICAgICogU2luY2U6IDEuMS4xNAotICAg
ICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfVVJJLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1cmkiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiVVJJIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfKCJUaGUgVVJJIG9mIHRoZSByZXNvdXJjZSIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChHUGFyYW1GbGFncykoV0VCS0lUX1BBUkFNX1JFQURXUklURXxHX1BBUkFNX0NPTlNUUlVDVF9P
TkxZKSkpOwotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlJlc291cmNlOm1pbWUtdHlwZToKLSAg
ICAgKgotICAgICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhlIHdlYiByZXNvdXJjZS4KLSAgICAgKgot
ICAgICAqIFNpbmNlOiAxLjEuMTQKLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBQUk9QX01JTUVfVFlQRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfcGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibWltZS10eXBlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIk1J
TUUgVHlwZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIE1J
TUUgdHlwZSBvZiB0aGUgcmVzb3VyY2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRf
UEFSQU1fUkVBREFCTEUpKTsKLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTplbmNv
ZGluZzoKLSAgICAgKgotICAgICAqIFRoZSBlbmNvZGluZyBuYW1lIHRvIHdoaWNoIHRoZSB3ZWIg
cmVzb3VyY2Ugd2FzIGVuY29kZWQgaW4uCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4xLjE0Ci0g
ICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkNPRElORywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5jb2RpbmciLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5jb2RpbmciKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSB0ZXh0IGVuY29kaW5nIG5hbWUgb2YgdGhlIHJl
c291cmNlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7
Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJSZXNvdXJjZTpmcmFtZS1uYW1lOgotICAgICAq
Ci0gICAgICogVGhlIGZyYW1lIG5hbWUgZm9yIHRoZSB3ZWIgcmVzb3VyY2UuCi0gICAgICoKLSAg
ICAgKiBTaW5jZTogMS4xLjE0Ci0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUFJPUF9GUkFNRV9OQU1FLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJmcmFtZS1uYW1lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkZy
YW1lIE5hbWUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBm
cmFtZSBuYW1lIG9mIHRoZSByZXNvdXJjZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJ
VF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGdvYmpl
Y3RfY2xhc3MsIHNpemVvZihXZWJLaXRXZWJSZXNvdXJjZVByaXZhdGUpKTsKLX0KLQotc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBn
dWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBX
ZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSBXRUJLSVRfV0VCX1JFU09VUkNFKG9iamVj
dCk7Ci0KLSAgICBzd2l0Y2ggKHByb3BfaWQpIHsKLSAgICBjYXNlIFBST1BfVVJJOgotICAgICAg
ICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaSh3
ZWJSZXNvdXJjZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTUlNRV9UWVBFOgot
ICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0
X21pbWVfdHlwZSh3ZWJSZXNvdXJjZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1Bf
RU5DT0RJTkc6Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwgd2Via2l0X3dlYl9y
ZXNvdXJjZV9nZXRfZW5jb2Rpbmcod2ViUmVzb3VyY2UpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBQUk9QX0ZSQU1FX05BTUU6Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2YWx1ZSwg
d2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfZnJhbWVfbmFtZSh3ZWJSZXNvdXJjZSkpOwotICAgICAg
ICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJP
UEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0K
LX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9zZXRfcHJvcGVydHkoR09iamVj
dCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKLXsKLSAgICBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSBXRUJLSVRf
V0VCX1JFU09VUkNFKG9iamVjdCk7Ci0KLSAgICBzd2l0Y2ggKHByb3BfaWQpIHsKLSAgICBjYXNl
IFBST1BfVVJJOgotICAgICAgICBnX2ZyZWUod2ViUmVzb3VyY2UtPnByaXYtPnVyaSk7Ci0gICAg
ICAgIHdlYlJlc291cmNlLT5wcml2LT51cmkgPSBnX3ZhbHVlX2R1cF9zdHJpbmcodmFsdWUpOwot
ICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFM
SURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9pbml0KFdlYktpdFdl
YlJlc291cmNlKiB3ZWJSZXNvdXJjZSkKLXsKLSAgICB3ZWJSZXNvdXJjZS0+cHJpdiA9IEdfVFlQ
RV9JTlNUQU5DRV9HRVRfUFJJVkFURSh3ZWJSZXNvdXJjZSwgV0VCS0lUX1RZUEVfV0VCX1JFU09V
UkNFLCBXZWJLaXRXZWJSZXNvdXJjZVByaXZhdGUpOwotfQotCi0vLyBpbnRlcm5hbCB1c2Ugb25s
eQotV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdF93ZWJfcmVzb3VyY2VfbmV3X3dpdGhfY29yZV9y
ZXNvdXJjZShQYXNzUmVmUHRyPEFyY2hpdmVSZXNvdXJjZT4gcmVzb3VyY2UpCi17Ci0gICAgV2Vi
S2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlID0gV0VCS0lUX1dFQl9SRVNPVVJDRShnX29iamVj
dF9uZXcoV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLCBOVUxMKSk7Ci0gICAgV2ViS2l0V2ViUmVz
b3VyY2VQcml2YXRlKiBwcml2ID0gd2ViUmVzb3VyY2UtPnByaXY7Ci0gICAgcHJpdi0+cmVzb3Vy
Y2UgPSByZXNvdXJjZS5sZWFrUmVmKCk7Ci0KLSAgICByZXR1cm4gd2ViUmVzb3VyY2U7Ci19Ci0K
LXZvaWQgd2Via2l0X3dlYl9yZXNvdXJjZV9pbml0X3dpdGhfY29yZV9yZXNvdXJjZShXZWJLaXRX
ZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UsIFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiByZXNv
dXJjZSkKLXsKLSAgICBBU1NFUlQocmVzb3VyY2UpOwotCi0gICAgV2ViS2l0V2ViUmVzb3VyY2VQ
cml2YXRlKiBwcml2ID0gd2ViUmVzb3VyY2UtPnByaXY7Ci0KLSAgICBpZiAocHJpdi0+cmVzb3Vy
Y2UpCi0gICAgICAgIHByaXYtPnJlc291cmNlLT5kZXJlZigpOwotCi0gICAgcHJpdi0+cmVzb3Vy
Y2UgPSByZXNvdXJjZS5sZWFrUmVmKCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9yZXNvdXJj
ZV9uZXc6Ci0gKiBAZGF0YTogdGhlIGRhdGEgdG8gaW5pdGlhbGl6ZSB0aGUgI1dlYktpdFdlYlJl
c291cmNlCi0gKiBAc2l6ZTogdGhlIGxlbmd0aCBvZiBAZGF0YQotICogQHVyaTogdGhlIFVSSSBv
ZiB0aGUgI1dlYktpdFdlYlJlc291cmNlCi0gKiBAbWltZV90eXBlOiB0aGUgTUlNRSB0eXBlIG9m
IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UKLSAqIEBlbmNvZGluZzogdGhlIHRleHQgZW5jb2Rpbmcg
bmFtZSBvZiB0aGUgI1dlYktpdFdlYlJlc291cmNlCi0gKiBAZnJhbWVfbmFtZTogdGhlIGZyYW1l
IG5hbWUgb2YgdGhlICNXZWJLaXRXZWJSZXNvdXJjZQotICoKLSAqIFJldHVybnMgYSBuZXcgI1dl
YktpdFdlYlJlc291cmNlLiBUaGUgQGVuY29kaW5nIGNhbiBiZSAlTlVMTC4gVGhlCi0gKiBAZnJh
bWVfbmFtZSBhcmd1bWVudCBjYW4gYmUgdXNlZCBpZiB0aGUgcmVzb3VyY2UgcmVwcmVzZW50cyBj
b250ZW50cyBvZiBhbgotICogZW50aXJlIEhUTUwgZnJhbWUsIG90aGVyd2lzZSBwYXNzICVOVUxM
LgotICoKLSAqIFJldHVybiB2YWx1ZTogYSBuZXcgI1dlYktpdFdlYlJlc291cmNlCi0gKgotICog
U2luY2U6IDEuMS4xNAotICovCi1XZWJLaXRXZWJSZXNvdXJjZSogd2Via2l0X3dlYl9yZXNvdXJj
ZV9uZXcoY29uc3QgZ2NoYXIqIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3NzaXplIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIqIHVyaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogbWltZVR5cGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIqIGVuY29kaW5nLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyKiBmcmFtZU5h
bWUpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoZGF0YSwgTlVMTCk7Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwodXJpLCBOVUxMKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChtaW1l
VHlwZSwgTlVMTCk7Ci0KLSAgICBpZiAoc2l6ZSA8IDApCi0gICAgICAgIHNpemUgPSBzdHJsZW4o
ZGF0YSk7Ci0KLSAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShkYXRhLCBzaXplKTsKLSAgICBXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2Ug
PSB3ZWJraXRfd2ViX3Jlc291cmNlX25ld193aXRoX2NvcmVfcmVzb3VyY2UoQXJjaGl2ZVJlc291
cmNlOjpjcmVhdGUoYnVmZmVyLCBVUkwoVVJMKCksIFN0cmluZzo6ZnJvbVVURjgodXJpKSksIFN0
cmluZzo6ZnJvbVVURjgobWltZVR5cGUpLCBTdHJpbmc6OmZyb21VVEY4KGVuY29kaW5nKSwgU3Ry
aW5nOjpmcm9tVVRGOChmcmFtZU5hbWUpKSk7Ci0KLSAgICByZXR1cm4gd2ViUmVzb3VyY2U7Ci19
Ci0KLS8qKgotICogd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfZGF0YToKLSAqIEB3ZWJfcmVzb3Vy
Y2U6IGEgI1dlYktpdFdlYlJlc291cmNlCi0gKgotICogUmV0dXJucyB0aGUgZGF0YSBvZiB0aGUg
QHdlYlJlc291cmNlLgotICoKLSAqIFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiBhICNH
U3RyaW5nIGNvbnRhaW5pbmcgdGhlIGNoYXJhY3RlcgotICogZGF0YSBvZiB0aGUgQHdlYlJlc291
cmNlLiAgVGhlIHN0cmluZyBpcyBvd25lZCBieSBXZWJLaXQgYW5kIHNob3VsZAotICogbm90IGJl
IGZyZWVkIG9yIGRlc3Ryb3llZC4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLUdTdHJpbmcq
IHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X2RhdGEoV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291
cmNlKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUkVTT1VSQ0Uo
d2ViUmVzb3VyY2UpLCBOVUxMKTsKLQotICAgIFdlYktpdFdlYlJlc291cmNlUHJpdmF0ZSogcHJp
diA9IHdlYlJlc291cmNlLT5wcml2OwotCi0gICAgaWYgKCFwcml2LT5yZXNvdXJjZSkKLSAgICAg
ICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBpZiAoIXByaXYtPmRhdGEpCi0gICAgICAgIHByaXYtPmRh
dGEgPSBnX3N0cmluZ19uZXdfbGVuKHByaXYtPnJlc291cmNlLT5kYXRhKCktPmRhdGEoKSwgcHJp
di0+cmVzb3VyY2UtPmRhdGEoKS0+c2l6ZSgpKTsKLQotICAgIHJldHVybiBwcml2LT5kYXRhOwot
fQotCi0vKioKLSAqIHdlYmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaToKLSAqIEB3ZWJfcmVzb3Vy
Y2U6IGEgI1dlYktpdFdlYlJlc291cmNlCi0gKgotICogUmV0dXJuIHZhbHVlOiB0aGUgVVJJIG9m
IHRoZSByZXNvdXJjZQotICoKLSAqIFNpbmNlOiAxLjEuMTQKLSAqLwotY29uc3QgZ2NoYXIqIHdl
YmtpdF93ZWJfcmVzb3VyY2VfZ2V0X3VyaShXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2Up
Ci17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9SRVNPVVJDRSh3ZWJS
ZXNvdXJjZSksIE5VTEwpOwotCi0gICAgV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlKiBwcml2ID0g
d2ViUmVzb3VyY2UtPnByaXY7Ci0KLQotICAgIC8vIFdlIG1heSBoYXZlIGFuIFVSSSB3aXRob3V0
IGhhdmluZyBhIHJlc291cmNlIGFzc2lnbmVkIHRvIHVzIChlLmcuLCBpZiB0aGUKLSAgICAvLyBG
cmFtZUxvYWRlckNsaWVudCBvbmx5IGhhZCBhIFJlc291cmNlUmVxdWVzdCB3aGVuIHdlIGdvdCBj
cmVhdGVkCi0gICAgaWYgKHByaXYtPnVyaSkKLSAgICAgICAgcmV0dXJuIHByaXYtPnVyaTsKLQot
ICAgIGlmICghcHJpdi0+cmVzb3VyY2UpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcHJp
di0+dXJpID0gZ19zdHJkdXAocHJpdi0+cmVzb3VyY2UtPnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwotCi0gICAgcmV0dXJuIHByaXYtPnVyaTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2Vi
X3Jlc291cmNlX2dldF9taW1lX3R5cGU6Ci0gKiBAd2ViX3Jlc291cmNlOiBhICNXZWJLaXRXZWJS
ZXNvdXJjZQotICoKLSAqIFJldHVybiB2YWx1ZTogdGhlIE1JTUUgdHlwZSBvZiB0aGUgcmVzb3Vy
Y2UKLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLWNvbnN0IGdjaGFyKiB3ZWJraXRfd2ViX3Jl
c291cmNlX2dldF9taW1lX3R5cGUoV2ViS2l0V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlKQotewot
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUkVTT1VSQ0Uod2ViUmVzb3Vy
Y2UpLCBOVUxMKTsKLQotICAgIFdlYktpdFdlYlJlc291cmNlUHJpdmF0ZSogcHJpdiA9IHdlYlJl
c291cmNlLT5wcml2OwotICAgIGlmICghcHJpdi0+cmVzb3VyY2UpCi0gICAgICAgIHJldHVybiBO
VUxMOwotCi0gICAgaWYgKCFwcml2LT5taW1lVHlwZSkKLSAgICAgICAgcHJpdi0+bWltZVR5cGUg
PSBnX3N0cmR1cChwcml2LT5yZXNvdXJjZS0+bWltZVR5cGUoKS51dGY4KCkuZGF0YSgpKTsKLQot
ICAgIHJldHVybiBwcml2LT5taW1lVHlwZTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3Jlc291
cmNlX2dldF9lbmNvZGluZzoKLSAqIEB3ZWJfcmVzb3VyY2U6IGEgI1dlYktpdFdlYlJlc291cmNl
Ci0gKgotICogUmV0dXJuIHZhbHVlOiB0aGUgZW5jb2RpbmcgbmFtZSBvZiB0aGUgcmVzb3VyY2UK
LSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLWNvbnN0IGdjaGFyKiB3ZWJraXRfd2ViX3Jlc291
cmNlX2dldF9lbmNvZGluZyhXZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UpCi17Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9SRVNPVVJDRSh3ZWJSZXNvdXJjZSks
IE5VTEwpOwotCi0gICAgV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlKiBwcml2ID0gd2ViUmVzb3Vy
Y2UtPnByaXY7Ci0gICAgaWYgKCFwcml2LT5yZXNvdXJjZSkKLSAgICAgICAgcmV0dXJuIE5VTEw7
Ci0KLSAgICBpZiAoIXByaXYtPnRleHRFbmNvZGluZykKLSAgICAgICAgcHJpdi0+dGV4dEVuY29k
aW5nID0gZ19zdHJkdXAocHJpdi0+cmVzb3VyY2UtPnRleHRFbmNvZGluZygpLnV0ZjgoKS5kYXRh
KCkpOwotCi0gICAgcmV0dXJuIHByaXYtPnRleHRFbmNvZGluZzsKLX0KLQotLyoqCi0gKiB3ZWJr
aXRfd2ViX3Jlc291cmNlX2dldF9mcmFtZV9uYW1lOgotICogQHdlYl9yZXNvdXJjZTogYSAjV2Vi
S2l0V2ViUmVzb3VyY2UKLSAqCi0gKiBSZXR1cm4gdmFsdWU6IHRoZSBmcmFtZSBuYW1lIG9mIHRo
ZSByZXNvdXJjZS4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLWNvbnN0IGdjaGFyKiB3ZWJr
aXRfd2ViX3Jlc291cmNlX2dldF9mcmFtZV9uYW1lKFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNv
dXJjZSkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1JFU09VUkNF
KHdlYlJlc291cmNlKSwgTlVMTCk7Ci0KLSAgICBXZWJLaXRXZWJSZXNvdXJjZVByaXZhdGUqIHBy
aXYgPSB3ZWJSZXNvdXJjZS0+cHJpdjsKLSAgICBpZiAoIXByaXYtPnJlc291cmNlKQotICAgICAg
ICByZXR1cm4gTlVMTDsKLQotICAgIGlmICghcHJpdi0+ZnJhbWVOYW1lKQotICAgICAgICBwcml2
LT5mcmFtZU5hbWUgPSBnX3N0cmR1cChwcml2LT5yZXNvdXJjZS0+ZnJhbWVOYW1lKCkudXRmOCgp
LmRhdGEoKSk7Ci0KLSAgICByZXR1cm4gcHJpdi0+ZnJhbWVOYW1lOwotfQotCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVzb3VyY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJyZXNvdXJjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyMDUyY2Y0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJyZXNvdXJjZS5oCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOSBKYW4gTWljaGFlbCBDLiBBbG9uem8KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJr
aXR3ZWJyZXNvdXJjZV9oCi0jZGVmaW5lIHdlYmtpdHdlYnJlc291cmNlX2gKLQotI2luY2x1ZGUg
PGdsaWIuaD4KLSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotCi0jaW5jbHVkZSA8d2Via2l0L3dl
YmtpdGRlZmluZXMuaD4KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9UWVBFX1dF
Ql9SRVNPVVJDRSAgICAgICAgICAgICh3ZWJraXRfd2ViX3Jlc291cmNlX2dldF90eXBlKCkpCi0j
ZGVmaW5lIFdFQktJVF9XRUJfUkVTT1VSQ0Uob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tf
SU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLCBXZWJLaXRXZWJS
ZXNvdXJjZSkpCi0jZGVmaW5lIFdFQktJVF9XRUJfUkVTT1VSQ0VfQ0xBU1Moa2xhc3MpICAgIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNF
LCBXZWJLaXRXZWJSZXNvdXJjZUNsYXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1dFQl9SRVNPVVJD
RShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRf
VFlQRV9XRUJfUkVTT1VSQ0UpKQotI2RlZmluZSBXRUJLSVRfSVNfV0VCX1JFU09VUkNFX0NMQVNT
KGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dF
Ql9SRVNPVVJDRSkpCi0jZGVmaW5lIFdFQktJVF9XRUJfUkVTT1VSQ0VfR0VUX0NMQVNTKG9iaikg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfV0VCX1JFU09V
UkNFLCBXZWJLaXRXZWJSZXNvdXJjZUNsYXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdl
YlJlc291cmNlUHJpdmF0ZSBXZWJLaXRXZWJSZXNvdXJjZVByaXZhdGU7Ci0KLXN0cnVjdCBfV2Vi
S2l0V2ViUmVzb3VyY2UgewotICAgIEdPYmplY3QgcGFyZW50X2luc3RhbmNlOwotCi0gICAgLyo8
IHByaXZhdGUgPiovCi0gICAgV2ViS2l0V2ViUmVzb3VyY2VQcml2YXRlICpwcml2OwotfTsKLQot
c3RydWN0IF9XZWJLaXRXZWJSZXNvdXJjZUNsYXNzIHsKLSAgICBHT2JqZWN0Q2xhc3MgcGFyZW50
X2NsYXNzOwotCi0gICAgLyogUGFkZGluZyBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLwotICAgIHZv
aWQgKCpfd2Via2l0X3Jlc2VydmVkMCkgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2Vy
dmVkMSkgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwotICAg
IHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOwotfTsKLQotV0VCS0lUX0FQSSBHVHlw
ZQotd2Via2l0X3dlYl9yZXNvdXJjZV9nZXRfdHlwZSAodm9pZCk7Ci0KLVdFQktJVF9BUEkgV2Vi
S2l0V2ViUmVzb3VyY2UgKgotd2Via2l0X3dlYl9yZXNvdXJjZV9uZXcgICAgICAgICAgICAgICAg
ICAgIChjb25zdCBnY2hhciAgICAgICAgKmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdzc2l6ZSAgICAgICAgICAgICBzaXplLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgKnVyaSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg
ICAgICAgICptaW1lX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAqZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAqZnJhbWVfbmFtZSk7
Ci0KLVdFQktJVF9BUEkgR1N0cmluZyAqCi13ZWJraXRfd2ViX3Jlc291cmNlX2dldF9kYXRhICAg
ICAgICAgICAgICAgKFdlYktpdFdlYlJlc291cmNlICAqd2ViX3Jlc291cmNlKTsKLQotV0VCS0lU
X0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfd2ViX3Jlc291cmNlX2dldF91cmkgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYlJlc291cmNlICAqd2ViX3Jlc291cmNlKTsKLQotV0VCS0lUX0FQSSBj
b25zdCBnY2hhciAqCi13ZWJraXRfd2ViX3Jlc291cmNlX2dldF9taW1lX3R5cGUgICAgICAgICAg
KFdlYktpdFdlYlJlc291cmNlICAqd2ViX3Jlc291cmNlKTsKLQotV0VCS0lUX0FQSSBjb25zdCBn
Y2hhciAqCi13ZWJraXRfd2ViX3Jlc291cmNlX2dldF9lbmNvZGluZyAgICAgICAgICAgKFdlYktp
dFdlYlJlc291cmNlICAqd2ViX3Jlc291cmNlKTsKLQotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAq
Ci13ZWJraXRfd2ViX3Jlc291cmNlX2dldF9mcmFtZV9uYW1lICAgICAgICAgKFdlYktpdFdlYlJl
c291cmNlICAqd2ViX3Jlc291cmNlKTsKLQotR19FTkRfREVDTFMKLQotI2VuZGlmIC8qIHdlYmtp
dHdlYnJlc291cmNlX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJyZXNvdXJjZXByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJyZXNvdXJjZXByaXZhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmFl
M2QwNS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2VicmVz
b3VyY2Vwcml2YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDggSmFuIE1pY2hhZWwgQy4gQWxvbnpvCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5M
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
LSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwot
Ci0jaWZuZGVmIHdlYmtpdHdlYnJlc291cmNlcHJpdmF0ZV9oCi0jZGVmaW5lIHdlYmtpdHdlYnJl
c291cmNlcHJpdmF0ZV9oCi0KLSNpbmNsdWRlICJBcmNoaXZlUmVzb3VyY2UuaCIKLSNpbmNsdWRl
ICJ3ZWJraXR3ZWJyZXNvdXJjZS5oIgotCi1leHRlcm4gIkMiIHsKLQotc3RydWN0IF9XZWJLaXRX
ZWJSZXNvdXJjZVByaXZhdGUgewotICAgIFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZSogcmVzb3Vy
Y2U7Ci0KLSAgICBnY2hhciogdXJpOwotICAgIGdjaGFyKiBtaW1lVHlwZTsKLSAgICBnY2hhciog
dGV4dEVuY29kaW5nOwotICAgIGdjaGFyKiBmcmFtZU5hbWU7Ci0KLSAgICBHU3RyaW5nKiBkYXRh
OwotfTsKLQotV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdF93ZWJfcmVzb3VyY2VfbmV3X3dpdGhf
Y29yZV9yZXNvdXJjZShQYXNzUmVmUHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pOwotCi12
b2lkIHdlYmtpdF93ZWJfcmVzb3VyY2VfaW5pdF93aXRoX2NvcmVfcmVzb3VyY2UoV2ViS2l0V2Vi
UmVzb3VyY2UqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pOwotCi19Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNl
dHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzMDQ4ZmYuLjAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDE2NzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBDaHJpc3Rp
YW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBO
dWFudGkgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBKYW4gTWljaGFlbCBBbG9uem8KLSAqIENvcHlyaWdodCAoQykgMjAwOSBNb3ZpYWwg
Q3JlYXRpdmUgVGVjaG5vbG9naWVzIEluYy4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBJZ2FsaWEg
Uy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vic2V0dGluZ3MuaCIK
LQotI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvci5oIgotI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIK
LSNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgotI2luY2x1ZGUg
IlVzZXJBZ2VudEd0ay5oIgotI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgotI2luY2x1ZGUg
IndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0dmVyc2lvbi5oIgotI2lu
Y2x1ZGUgIndlYmtpdHdlYnNldHRpbmdzcHJpdmF0ZS5oIgotI2luY2x1ZGUgPGdsaWIvZ2kxOG4t
bGliLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL2dv
YmplY3QvR1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgotCi0vKioKLSAqIFNFQ1RJT046d2Vi
a2l0d2Vic2V0dGluZ3MKLSAqIEBzaG9ydF9kZXNjcmlwdGlvbjogQ29udHJvbCB0aGUgYmVoYXZp
b3VyIG9mIGEgI1dlYktpdFdlYlZpZXcKLSAqCi0gKiAjV2ViS2l0V2ViU2V0dGluZ3MgY2FuIGJl
IGFwcGxpZWQgdG8gYSAjV2ViS2l0V2ViVmlldyB0byBjb250cm9sIHRleHQgZW5jb2RpbmcsCi0g
KiBjb2xvciwgZm9udCBzaXplcywgcHJpbnRpbmcgbW9kZSwgc2NyaXB0IHN1cHBvcnQsIGxvYWRp
bmcgb2YgaW1hZ2VzIGFuZCB2YXJpb3VzIG90aGVyIHRoaW5ncy4KLSAqIEFmdGVyIGNyZWF0aW9u
LCBhICNXZWJLaXRXZWJTZXR0aW5ncyBvYmplY3QgY29udGFpbnMgZGVmYXVsdCBzZXR0aW5ncy4K
LSAqCi0gKiA8aW5mb3JtYWxleGFtcGxlPjxwcm9ncmFtbGlzdGluZz4KLSAqIC88IS0tIC0tPiog
Q3JlYXRlIGEgbmV3IHdlYnNldHRpbmdzIGFuZCBkaXNhYmxlIGphdmEgc2NyaXB0ICo8IS0tIC0t
Pi8KLSAqIFdlYktpdFdlYlNldHRpbmdzICpzZXR0aW5ncyA9IHdlYmtpdF93ZWJfc2V0dGluZ3Nf
bmV3ICgpOwotICogZ19vYmplY3Rfc2V0IChHX09CSkVDVChzZXR0aW5ncyksICJlbmFibGUtc2Ny
aXB0cyIsIEZBTFNFLCBOVUxMKTsKLSAqCi0gKiAvPCEtLSAtLT4qIEFwcGx5IHRoZSByZXN1bHQg
KjwhLS0gLS0+LwotICogd2Via2l0X3dlYl92aWV3X3NldF9zZXR0aW5ncyAoV0VCS0lUX1dFQl9W
SUVXKG15X3dlYnZpZXcpLCBzZXR0aW5ncyk7Ci0gKiA8L3Byb2dyYW1saXN0aW5nPjwvaW5mb3Jt
YWxleGFtcGxlPgotICovCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1HX0RFRklORV9U
WVBFKFdlYktpdFdlYlNldHRpbmdzLCB3ZWJraXRfd2ViX3NldHRpbmdzLCBHX1RZUEVfT0JKRUNU
KQotCi1lbnVtIHsKLSAgICBQUk9QXzAsCi0KLSAgICBQUk9QX0RFRkFVTFRfRU5DT0RJTkcsCi0g
ICAgUFJPUF9DVVJTSVZFX0ZPTlRfRkFNSUxZLAotICAgIFBST1BfREVGQVVMVF9GT05UX0ZBTUlM
WSwKLSAgICBQUk9QX0ZBTlRBU1lfRk9OVF9GQU1JTFksCi0gICAgUFJPUF9NT05PU1BBQ0VfRk9O
VF9GQU1JTFksCi0gICAgUFJPUF9TQU5TX1NFUklGX0ZPTlRfRkFNSUxZLAotICAgIFBST1BfU0VS
SUZfRk9OVF9GQU1JTFksCi0gICAgUFJPUF9ERUZBVUxUX0ZPTlRfU0laRSwKLSAgICBQUk9QX0RF
RkFVTFRfTU9OT1NQQUNFX0ZPTlRfU0laRSwKLSAgICBQUk9QX01JTklNVU1fRk9OVF9TSVpFLAot
ICAgIFBST1BfTUlOSU1VTV9MT0dJQ0FMX0ZPTlRfU0laRSwKLSAgICBQUk9QX0VORk9SQ0VfOTZf
RFBJLAotICAgIFBST1BfQVVUT19MT0FEX0lNQUdFUywKLSAgICBQUk9QX0FVVE9fU0hSSU5LX0lN
QUdFUywKLSAgICBQUk9QX1JFU1BFQ1RfSU1BR0VfT1JJRU5UQVRJT04sCi0gICAgUFJPUF9QUklO
VF9CQUNLR1JPVU5EUywKLSAgICBQUk9QX0VOQUJMRV9TQ1JJUFRTLAotICAgIFBST1BfRU5BQkxF
X1BMVUdJTlMsCi0gICAgUFJPUF9SRVNJWkFCTEVfVEVYVF9BUkVBUywKLSAgICBQUk9QX1VTRVJf
U1RZTEVTSEVFVF9VUkksCi0gICAgUFJPUF9aT09NX1NURVAsCi0gICAgUFJPUF9FTkFCTEVfREVW
RUxPUEVSX0VYVFJBUywKLSAgICBQUk9QX0VOQUJMRV9QUklWQVRFX0JST1dTSU5HLAotICAgIFBS
T1BfRU5BQkxFX1NQRUxMX0NIRUNLSU5HLAotICAgIFBST1BfU1BFTExfQ0hFQ0tJTkdfTEFOR1VB
R0VTLAotICAgIFBST1BfRU5BQkxFX0NBUkVUX0JST1dTSU5HLAotICAgIFBST1BfRU5BQkxFX0hU
TUw1X0RBVEFCQVNFLAotICAgIFBST1BfRU5BQkxFX0hUTUw1X0xPQ0FMX1NUT1JBR0UsCi0gICAg
UFJPUF9IVE1MNV9MT0NBTF9TVE9SQUdFX0RBVEFCQVNFX1BBVEgsCi0gICAgUFJPUF9FTkFCTEVf
WFNTX0FVRElUT1IsCi0gICAgUFJPUF9FTkFCTEVfU1BBVElBTF9OQVZJR0FUSU9OLAotICAgIFBS
T1BfRU5BQkxFX0ZSQU1FX0ZMQVRURU5JTkcsCi0gICAgUFJPUF9VU0VSX0FHRU5ULAotICAgIFBS
T1BfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFksCi0gICAgUFJPUF9K
QVZBU0NSSVBUX0NBTl9BQ0NFU1NfQ0xJUEJPQVJELAotICAgIFBST1BfRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OX0NBQ0hFLAotICAgIFBST1BfRURJVElOR19CRUhBVklPUiwKLSAgICBQ
Uk9QX0VOQUJMRV9VTklWRVJTQUxfQUNDRVNTX0ZST01fRklMRV9VUklTLAotICAgIFBST1BfRU5B
QkxFX0ZJTEVfQUNDRVNTX0ZST01fRklMRV9VUklTLAotICAgIFBST1BfRU5BQkxFX0RPTV9QQVNU
RSwKLSAgICBQUk9QX1RBQl9LRVlfQ1lDTEVTX1RIUk9VR0hfRUxFTUVOVFMsCi0gICAgUFJPUF9F
TkFCTEVfREVGQVVMVF9DT05URVhUX01FTlUsCi0gICAgUFJPUF9FTkFCTEVfU0lURV9TUEVDSUZJ
Q19RVUlSS1MsCi0gICAgUFJPUF9FTkFCTEVfUEFHRV9DQUNIRSwKLSAgICBQUk9QX0FVVE9fUkVT
SVpFX1dJTkRPVywKLSAgICBQUk9QX0VOQUJMRV9KQVZBX0FQUExFVCwKLSAgICBQUk9QX0VOQUJM
RV9IWVBFUkxJTktfQVVESVRJTkcsCi0gICAgUFJPUF9FTkFCTEVfRlVMTFNDUkVFTiwKLSAgICBQ
Uk9QX0VOQUJMRV9ETlNfUFJFRkVUQ0hJTkcsCi0gICAgUFJPUF9FTkFCTEVfV0VCR0wsCi0gICAg
UFJPUF9FTkFCTEVfTUVESUFfU1RSRUFNLAotICAgIFBST1BfRU5BQkxFX1dFQl9BVURJTywKLSAg
ICBQUk9QX0VOQUJMRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORywKLSAgICBQUk9QX0VOQUJMRV9T
TU9PVEhfU0NST0xMSU5HLAotICAgIFBST1BfTUVESUFfUExBWUJBQ0tfUkVRVUlSRVNfVVNFUl9H
RVNUVVJFLAotICAgIFBST1BfTUVESUFfUExBWUJBQ0tfQUxMT1dTX0lOTElORSwKLSAgICBQUk9Q
X0VOQUJMRV9SVU5OSU5HX09GX0lOU0VDVVJFX0NPTlRFTlQsCi0gICAgUFJPUF9FTkFCTEVfRElT
UExBWV9PRl9JTlNFQ1VSRV9DT05URU5ULAotICAgIFBST1BfRU5BQkxFX01FRElBX1NPVVJDRQot
fTsKLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19maW5hbGl6ZShHT2JqZWN0KiBv
YmplY3QpOwotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eShH
T2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJh
bVNwZWMqIHBzcGVjKTsKLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19nZXRfcHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFy
YW1TcGVjKiBwc3BlYyk7Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0dGluZ3NfY2xhc3Nf
aW5pdChXZWJLaXRXZWJTZXR0aW5nc0NsYXNzKiBrbGFzcykKLXsKLSAgICBHT2JqZWN0Q2xhc3Mq
IGdvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7Ci0gICAgZ29iamVjdF9jbGFz
cy0+ZmluYWxpemUgPSB3ZWJraXRfd2ViX3NldHRpbmdzX2ZpbmFsaXplOwotICAgIGdvYmplY3Rf
Y2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfc2V0dGluZ3Nfc2V0X3Byb3BlcnR5Owot
ICAgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0
X3Byb3BlcnR5OwotCi0gICAgd2Via2l0SW5pdCgpOwotCi0gICAgR1BhcmFtRmxhZ3MgZmxhZ3Mg
PSAoR1BhcmFtRmxhZ3MpKFdFQktJVF9QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX0NPTlNUUlVD
VCk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3Ms
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0RFRkFVTFRfRU5DT0RJ
TkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3Ry
aW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlZmF1bHQtZW5jb2Rp
bmciLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRGVmYXVsdCBFbmNv
ZGluZyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGRlZmF1
bHQgZW5jb2RpbmcgdXNlZCB0byBkaXNwbGF5IHRleHQuIiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaXNvLTg4NTktMSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmbGFncykpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJP
UF9DVVJTSVZFX0ZPTlRfRkFNSUxZLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjdXJzaXZlLWZvbnQtZmFtaWx5IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF8oIkN1cnNpdmUgRm9udCBGYW1pbHkiKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIlRoZSBkZWZhdWx0IEN1cnNpdmUgZm9udCBmYW1pbHkgdXNlZCB0byBk
aXNwbGF5IHRleHQuIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2Vy
aWYiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfREVGQVVMVF9GT05UX0ZBTUlMWSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdC1mb250LWZhbWlseSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJEZWZhdWx0IEZvbnQgRmFt
aWx5IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgZGVmYXVs
dCBmb250IGZhbWlseSB1c2VkIHRvIGRpc3BsYXkgdGV4dC4iKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzYW5zLXNlcmlmIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
Uk9QX0ZBTlRBU1lfRk9OVF9GQU1JTFksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImZhbnRhc3ktZm9udC1mYW1pbHkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiRmFudGFzeSBGb250IEZhbWlseSIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiVGhlIGRlZmF1bHQgRmFudGFzeSBmb250IGZhbWlseSB1c2VkIHRv
IGRpc3BsYXkgdGV4dC4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
ZXJpZiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0g
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9NT05PU1BBQ0VfRk9OVF9GQU1JTFks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5n
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vbm9zcGFjZS1mb250LWZh
bWlseSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJNb25vc3BhY2Ug
Rm9udCBGYW1pbHkiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRo
ZSBkZWZhdWx0IGZvbnQgZmFtaWx5IHVzZWQgdG8gZGlzcGxheSBtb25vc3BhY2UgdGV4dC4iKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb25vc3BhY2UiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBST1BfU0FOU19TRVJJRl9GT05UX0ZBTUlMWSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic2Fucy1zZXJpZi1mb250LWZhbWlseSIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJTYW5zIFNlcmlmIEZvbnQgRmFtaWx5
IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgZGVmYXVsdCBT
YW5zIFNlcmlmIGZvbnQgZmFtaWx5IHVzZWQgdG8gZGlzcGxheSB0ZXh0LiIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNhbnMtc2VyaWYiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFBST1BfU0VSSUZfRk9OVF9GQU1JTFksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInNlcmlmLWZvbnQtZmFtaWx5IiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIlNlcmlmIEZvbnQgRmFtaWx5IiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfKCJUaGUgZGVmYXVsdCBTZXJpZiBmb250IGZhbWlseSB1c2VkIHRv
IGRpc3BsYXkgdGV4dC4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
ZXJpZiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0g
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9ERUZBVUxUX0ZPTlRfU0laRSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19pbnQoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdC1mb250LXNpemUiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRGVmYXVsdCBGb250IFNpemUiKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBkZWZhdWx0IGZvbnQg
c2l6ZSB1c2VkIHRvIGRpc3BsYXkgdGV4dC4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDUsIEdfTUFYSU5ULCAxMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZsYWdzKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdv
YmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0RF
RkFVTFRfTU9OT1NQQUNFX0ZPTlRfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19pbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGVmYXVsdC1tb25vc3BhY2UtZm9udC1zaXplIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIkRlZmF1bHQgTW9ub3NwYWNlIEZvbnQgU2l6ZSIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGRlZmF1bHQgZm9udCBzaXplIHVz
ZWQgdG8gZGlzcGxheSBtb25vc3BhY2UgdGV4dC4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDUsIEdfTUFYSU5ULCAxMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9Q
X01JTklNVU1fRk9OVF9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX2ludCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJt
aW5pbXVtLWZvbnQtc2l6ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJNaW5pbXVtIEZvbnQgU2l6ZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiVGhlIG1pbmltdW0gZm9udCBzaXplIHVzZWQgdG8gZGlzcGxheSB0ZXh0LiIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgR19NQVhJTlQsIDUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUFJPUF9NSU5JTVVNX0xPR0lDQUxfRk9OVF9TSVpFLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2ludCgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJtaW5pbXVtLWxvZ2ljYWwtZm9udC1zaXplIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIk1pbmltdW0gTG9naWNhbCBGb250
IFNpemUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRoZSBtaW5p
bXVtIGxvZ2ljYWwgZm9udCBzaXplIHVzZWQgdG8gZGlzcGxheSB0ZXh0LiIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgR19NQVhJTlQsIDUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgLyoqCi0gICAgKiBXZWJLaXRX
ZWJTZXR0aW5nczplbmZvcmNlLTk2LWRwaToKLSAgICAqCi0gICAgKiBFbmZvcmNlIGEgcmVzb2x1
dGlvbiBvZiA5NiBEUEkuIFRoaXMgaXMgbWVhbnQgZm9yIGNvbXBhdGliaWxpdHkKLSAgICAqIHdp
dGggd2ViIHBhZ2VzIHdoaWNoIGNvcGUgYmFkbHkgd2l0aCBkaWZmZXJlbnQgc2NyZWVuIHJlc29s
dXRpb25zCi0gICAgKiBhbmQgZm9yIGF1dG9tYXRlZCB0ZXN0aW5nLgotICAgICogV2ViIGJyb3dz
ZXJzIGFuZCBhcHBsaWNhdGlvbnMgdGhhdCB0eXBpY2FsbHkgZGlzcGxheSBhcmJpdHJhcnkKLSAg
ICAqIGNvbnRlbnQgZnJvbSB0aGUgd2ViIHNob3VsZCBwcm92aWRlIGEgcHJlZmVyZW5jZSBmb3Ig
dGhpcy4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4wLjMKLSAgICAqLwotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBST1BfRU5GT1JDRV85Nl9EUEksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJlbmZvcmNlLTk2LWRwaSIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfKCJFbmZvcmNlIDk2IERQSSIpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXygiRW5mb3JjZSBhIHJlc29sdXRpb24gb2YgOTYgRFBJIiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQUk9QX0FVVE9fTE9BRF9JTUFHRVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJhdXRvLWxvYWQtaW1hZ2VzIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIkF1dG8gTG9hZCBJbWFnZXMiKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIkxvYWQgaW1hZ2VzIGF1dG9tYXRpY2FsbHkuIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBST1BfQVVUT19TSFJJTktfSU1BR0VTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYXV0by1zaHJpbmstaW1hZ2VzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF8oIkF1dG8gU2hyaW5rIEltYWdlcyIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiQXV0b21hdGljYWxseSBzaHJpbmsgc3RhbmRhbG9uZSBpbWFnZXMg
dG8gZml0LiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQUk9QX1JFU1BFQ1RfSU1BR0VfT1JJRU5UQVRJT04sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNwZWN0LWltYWdlLW9yaWVudGF0
aW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlJlc3BlY3QgSW1h
Z2UgT3JpZW50YXRpb24iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IldoZXRoZXIgV2ViS2l0IHNob3VsZCByZXNwZWN0IGltYWdlIG9yaWVudGF0aW9uLiIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUFJPUF9QUklOVF9CQUNLR1JPVU5EUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInByaW50LWJhY2tncm91bmRzIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIlByaW50IEJhY2tncm91bmRzIiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIGJhY2tncm91bmQgaW1hZ2VzIHNob3VsZCBiZSBw
cmludGVkLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9TQ1JJUFRTLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZW5hYmxlLXNjcmlwdHMiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXygiRW5hYmxlIFNjcmlwdHMiKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBlbWJlZGRlZCBzY3JpcHRpbmcgbGFuZ3Vh
Z2VzLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9QTFVHSU5TLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZW5hYmxlLXBsdWdpbnMiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXygiRW5hYmxlIFBsdWdpbnMiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBlbWJlZGRlZCBwbHVnaW4gb2JqZWN0cy4iKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9SRVNJWkFCTEVfVEVYVF9BUkVBUywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInJlc2l6YWJsZS10ZXh0LWFyZWFzIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF8oIlJlc2l6YWJsZSBUZXh0IEFyZWFzIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIHRleHQgYXJlYXMgYXJlIHJl
c2l6YWJsZS4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUFJPUF9VU0VSX1NUWUxFU0hFRVRfVVJJLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygidXNlci1zdHls
ZXNoZWV0LXVyaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJVc2Vy
IFN0eWxlc2hlZXQgVVJJIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJUaGUgVVJJIG9mIGEgc3R5bGVzaGVldCB0aGF0IGlzIGFwcGxpZWQgdG8gZXZlcnkgcGFnZS4i
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgLyoqCi0gICAgKiBXZWJLaXRX
ZWJTZXR0aW5nczp6b29tLXN0ZXA6Ci0gICAgKgotICAgICogVGhlIHZhbHVlIGJ5IHdoaWNoIHRo
ZSB6b29tIGxldmVsIGlzIGNoYW5nZWQgd2hlbiB6b29taW5nIGluIG9yIG91dC4KLSAgICAqCi0g
ICAgKiBTaW5jZTogMS4wLjEKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBST1BfWk9PTV9TVEVQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19w
YXJhbV9zcGVjX2Zsb2F0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInpv
b20tc3RlcCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJab29tIFN0
ZXBwaW5nIFZhbHVlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJU
aGUgdmFsdWUgYnkgd2hpY2ggdGhlIHpvb20gbGV2ZWwgaXMgY2hhbmdlZCB3aGVuIHpvb21pbmcg
aW4gb3Igb3V0LiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wZiwg
R19NQVhGTE9BVCwgMC4xZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZs
YWdzKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlNldHRpbmdzOmVuYWJsZS1kZXZlbG9w
ZXItZXh0cmFzOgotICAgICoKLSAgICAqIFdoZXRoZXIgZGV2ZWxvcGVyIGV4dGVuc2lvbnMgc2hv
dWxkIGJlIGVuYWJsZWQuIFRoaXMgZW5hYmxlcywKLSAgICAqIGZvciBub3csIHRoZSBXZWIgSW5z
cGVjdG9yLCB3aGljaCBjYW4gYmUgY29udHJvbGxlZCB1c2luZyB0aGUKLSAgICAqICNXZWJLaXRX
ZWJJbnNwZWN0b3IgaW5zdGFuY2UgaGVsZCBieSB0aGUgI1dlYktpdFdlYlZpZXcgdGhpcwotICAg
ICogc2V0dGluZyBpcyBlbmFibGVkIGZvci4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4wLjMKLSAg
ICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFX0RFVkVMT1BF
Ul9FWFRSQVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3Nw
ZWNfYm9vbGVhbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmFibGUt
ZGV2ZWxvcGVyLWV4dHJhcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJFbmFibGUgRGV2ZWxvcGVyIEV4dHJhcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiRW5hYmxlcyBzcGVjaWFsIGV4dGVuc2lvbnMgdGhhdCBoZWxwIGRldmVsb3Bl
cnMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgotICAgICog
V2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLXByaXZhdGUtYnJvd3Npbmc6Ci0gICAgKgotICAgICog
V2hldGhlciB0byBlbmFibGUgcHJpdmF0ZSBicm93c2luZyBtb2RlLiBQcml2YXRlIGJyb3dzaW5n
IG1vZGUgcHJldmVudHMKLSAgICAqIFdlYktpdCBmcm9tIHVwZGF0aW5nIHRoZSBnbG9iYWwgaGlz
dG9yeSBhbmQgc3RvcmluZyBhbnkgc2Vzc2lvbgotICAgICogaW5mb3JtYXRpb24gZS5nLiwgb24t
ZGlzayBjYWNoZSwgYXMgd2VsbCBhcyBzdXBwcmVzc2luZyBhbnkgbWVzc2FnZXMKLSAgICAqIGZy
b20gYmVpbmcgcHJpbnRlZCBpbnRvIHRoZSAoamF2YXNjcmlwdCkgY29uc29sZS4KLSAgICAqCi0g
ICAgKiBUaGlzIGlzIGN1cnJlbnRseSBleHBlcmltZW50YWwgZm9yIFdlYktpdEd0ay4KLSAgICAq
Ci0gICAgKiBTaW5jZTogMS4xLjIKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxf
cHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBST1BfRU5BQkxFX1BSSVZBVEVfQlJPV1NJTkcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJlbmFibGUtcHJpdmF0ZS1icm93c2luZyIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfKCJFbmFibGUgUHJpdmF0ZSBCcm93c2luZyIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5hYmxlcyBwcml2YXRlIGJyb3dz
aW5nIG1vZGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgot
ICAgICogV2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLXNwZWxsLWNoZWNraW5nOgotICAgICoKLSAg
ICAqIFdoZXRoZXIgdG8gZW5hYmxlIHNwZWxsIGNoZWNraW5nIHdoaWxlIHR5cGluZy4KLSAgICAq
Ci0gICAgKiBTaW5jZTogMS4xLjYKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxf
cHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFBST1BfRU5BQkxFX1NQRUxMX0NIRUNLSU5HLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZW5hYmxlLXNwZWxsLWNoZWNraW5nIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBTcGVsbCBDaGVja2luZyIpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5hYmxlcyBzcGVsbCBjaGVja2luZyB3aGls
ZSB0eXBpbmciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgot
ICAgICogV2ViS2l0V2ViU2V0dGluZ3M6c3BlbGwtY2hlY2tpbmctbGFuZ3VhZ2VzOgotICAgICoK
LSAgICAqIFRoZSBsYW5ndWFnZXMgdG8gYmUgdXNlZCBmb3Igc3BlbGwgY2hlY2tpbmcsIHNlcGFy
YXRlZCBieSBjb21tYXMuCi0gICAgKgotICAgICogVGhlIGxvY2FsZSBzdHJpbmcgdHlwaWNhbGx5
IGlzIGluIHRoZSBmb3JtIGxhbmdfQ09VTlRSWSwgd2hlcmUgbGFuZwotICAgICogaXMgYW4gSVNP
LTYzOSBsYW5ndWFnZSBjb2RlLCBhbmQgQ09VTlRSWSBpcyBhbiBJU08tMzE2NiBjb3VudHJ5IGNv
ZGUuCi0gICAgKiBGb3IgaW5zdGFuY2UsIHN2X0ZJIGZvciBTd2VkaXNoIGFzIHdyaXR0ZW4gaW4g
RmlubGFuZCBvciBwdF9CUgotICAgICogZm9yIFBvcnR1Z3Vlc2UgYXMgd3JpdHRlbiBpbiBCcmF6
aWwuCi0gICAgKgotICAgICogSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIHZhbHVl
IHJldHVybmVkIGJ5Ci0gICAgKiBndGtfZ2V0X2RlZmF1bHRfbGFuZ3VhZ2Ugd2lsbCBiZSB1c2Vk
LgotICAgICoKLSAgICAqIFNpbmNlOiAxLjEuNgotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9TUEVMTF9DSEVDS0lOR19MQU5HVUFHRVMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInNwZWxsLWNoZWNraW5nLWxhbmd1YWdlcyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJMYW5ndWFnZXMgdG8gdXNlIGZvciBz
cGVsbCBjaGVja2luZyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi
Q29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgbGFuZ3VhZ2VzIHRvIHVzZSBmb3Igc3BlbGwgY2hlY2tp
bmciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgLyoqCi0gICAgKiBXZWJL
aXRXZWJTZXR0aW5nczplbmFibGUtY2FyZXQtYnJvd3Npbmc6Ci0gICAgKgotICAgICogV2hldGhl
ciB0byBlbmFibGUgY2FyZXQgYnJvd3NpbmcgbW9kZS4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4x
LjYKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9j
bGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFX0NB
UkVUX0JST1dTSU5HLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJh
bV9zcGVjX2Jvb2xlYW4oImVuYWJsZS1jYXJldC1icm93c2luZyIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJFbmFibGUgQ2FyZXQg
QnJvd3NpbmciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIGFjY2Vzc2liaWxpdHkgZW5oYW5jZWQg
a2V5Ym9hcmQgbmF2aWdhdGlvbiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotICAgIC8qKgotICAgICog
V2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLWh0bWw1LWRhdGFiYXNlOgotICAgICoKLSAgICAqIFdo
ZXRoZXIgdG8gZW5hYmxlIEhUTUw1IGNsaWVudC1zaWRlIFNRTCBkYXRhYmFzZSBzdXBwb3J0LiBD
bGllbnQtc2lkZQotICAgICogU1FMIGRhdGFiYXNlIGFsbG93cyB3ZWIgcGFnZXMgdG8gc3RvcmUg
c3RydWN0dXJlZCBkYXRhIGFuZCBiZSBhYmxlIHRvCi0gICAgKiB1c2UgU1FMIHRvIG1hbmlwdWxh
dGUgdGhhdCBkYXRhIGFzeW5jaHJvbm91c2x5LgotICAgICoKLSAgICAqIFNpbmNlOiAxLjEuOAot
ICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkFCTEVfSFRNTDVf
REFUQUJBU0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3Nw
ZWNfYm9vbGVhbigiZW5hYmxlLWh0bWw1LWRhdGFiYXNlIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBIVE1MNSBEYXRh
YmFzZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiV2hldGhlciB0byBlbmFibGUgSFRNTDUgZGF0YWJhc2Ugc3VwcG9ydCIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VFJVRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZsYWdzKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlNldHRpbmdzOmVuYWJs
ZS1odG1sNS1sb2NhbC1zdG9yYWdlOgotICAgICoKLSAgICAqIFdoZXRoZXIgdG8gZW5hYmxlIEhU
TUw1IGxvY2FsU3RvcmFnZSBzdXBwb3J0LiBsb2NhbFN0b3JhZ2UgcHJvdmlkZXMKLSAgICAqIHNp
bXBsZSBzeW5jaHJvbm91cyBzdG9yYWdlIGFjY2Vzcy4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4x
LjgKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9j
bGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFX0hU
TUw1X0xPQ0FMX1NUT1JBR0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLWh0bWw1LWxvY2FsLXN0b3JhZ2UiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5h
YmxlIEhUTUw1IExvY2FsIFN0b3JhZ2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIEhUTUw1IExv
Y2FsIFN0b3JhZ2Ugc3VwcG9ydCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0gICAgLyoqCi0gICAgKiBX
ZWJLaXRXZWJTZXR0aW5nczpodG1sNS1sb2NhbC1zdG9yYWdlLWRhdGFiYXNlLXBhdGg6Ci0gICAg
KgotICAgICogUGF0aCB0byBzdG9yZSBwZXJzaXN0ZW50IEhUTUw1IGxvY2FsU3RvcmFnZSBkYXRh
YmFzZXMsIHdoaWNoIGFyZSBlbmFibGVkIGJ5Ci0gICAgKiAiZW5hYmxlLWh0bWw1LWxvY2FsLXN0
b3JhZ2UiLiBUaGUgZGVmYXVsdCBwYXRoIGlzICRYREdfREFUQV9IT01FL3dlYmtpdC9kYXRhYmFz
ZXMvLgotICAgICoKLSAgICAqIFNpbmNlOiAxLjUuMgotICAgICovCi0gICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gbG9jYWxTdG9yYWdlUGF0aChnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9k
aXIoKSwgIndlYmtpdCIsICJkYXRhYmFzZXMiLCBOVUxMKSk7Ci0gICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9IVE1MNV9MT0NBTF9TVE9SQUdFX0RBVEFCQVNFX1BBVEgsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKCJodG1s
NS1sb2NhbC1zdG9yYWdlLWRhdGFiYXNlLXBhdGgiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJMb2NhbCBTdG9yYWdlIERhdGFiYXNl
IFBhdGgiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiVGhlIHBhdGggdG8gd2hlcmUgSFRNTDUgTG9jYWwgU3RvcmFnZSBkYXRhYmFz
ZXMgYXJlIHN0b3JlZC4iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlUGF0aC5nZXQoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLSAgICAv
KioKLSAgICAqIFdlYktpdFdlYlNldHRpbmdzOmVuYWJsZS14c3MtYXVkaXRvcjoKLSAgICAqCi0g
ICAgKiBXaGV0aGVyIHRvIGVuYWJsZSB0aGUgWFNTIEF1ZGl0b3IuIFRoaXMgZmVhdHVyZSBmaWx0
ZXJzIHNvbWUga2luZHMgb2YKLSAgICAqIHJlZmxlY3RpdmUgWFNTIGF0dGFja3Mgb24gdnVsbmVy
YWJsZSB3ZWIgc2l0ZXMuCi0gICAgKgotICAgICogU2luY2U6IDEuMS4xMQotICAgICovCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkFCTEVfWFNTX0FVRElUT1IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5h
YmxlLXhzcy1hdWRpdG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBYU1MgQXVkaXRvciIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiV2hldGhlciB0
byBlbmFibGUgdGhlIFhTUyBhdWRpdG9yIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLSAgICAvKioKLSAg
ICAqIFdlYktpdFdlYlNldHRpbmdzOmVuYWJsZS1zcGF0aWFsLW5hdmlnYXRpb246Ci0gICAgKgot
ICAgICogV2hldGhlciB0byBlbmFibGUgdGhlIFNwYXRpYWwgTmF2aWdhdGlvbi4gVGhpcyBmZWF0
dXJlIGNvbnNpc3RzIGluIHRoZSBhYmlsaXR5Ci0gICAgKiB0byBuYXZpZ2F0ZSBiZXR3ZWVuIGZv
Y3VzYWJsZSBlbGVtZW50cyBpbiBhIFdlYiBwYWdlLCBzdWNoIGFzIGh5cGVybGlua3MgYW5kCi0g
ICAgKiBmb3JtIGNvbnRyb2xzLCBieSB1c2luZyBMZWZ0LCBSaWdodCwgVXAgYW5kIERvd24gYXJy
b3cga2V5cy4gRm9yIGV4YW1wbGUsIGlmCi0gICAgKiBhbiB1c2VyIHByZXNzZXMgdGhlIFJpZ2h0
IGtleSwgaGV1cmlzdGljcyBkZXRlcm1pbmUgd2hldGhlciB0aGVyZSBpcyBhbiBlbGVtZW50Ci0g
ICAgKiBoZSBtaWdodCBiZSB0cnlpbmcgdG8gcmVhY2ggdG93YXJkcyB0aGUgcmlnaHQsIGFuZCBp
ZiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsCi0gICAgKiB3aGljaCBlbGVtZW50IGhlIHBy
b2JhYmx5IHdhbnRzLgotICAgICoKLSAgICAqIFNpbmNlOiAxLjEuMjMKLSAgICAqLwotICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFX1NQQVRJQUxfTkFWSUdBVElPTiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFu
KCJlbmFibGUtc3BhdGlhbC1uYXZpZ2F0aW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBTcGF0aWFsIE5hdmlnYXRp
b24iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF8oIldoZXRoZXIgdG8gZW5hYmxlIFNwYXRpYWwgTmF2aWdhdGlvbiIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmbGFncykpOwotICAgIC8qKgotICAgICogV2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLWZyYW1l
LWZsYXR0ZW5pbmc6Ci0gICAgKgotICAgICogV2hldGhlciB0byBlbmFibGUgdGhlIEZyYW1lIEZs
YXR0ZW5pbmcuIFdpdGggdGhpcyBzZXR0aW5nIGVhY2ggc3ViZnJhbWUgaXMgZXhwYW5kZWQKLSAg
ICAqIHRvIGl0cyBjb250ZW50cywgd2hpY2ggd2lsbCBmbGF0dGVuIGFsbCB0aGUgZnJhbWVzIHRv
IGJlY29tZSBvbmUgc2Nyb2xsYWJsZSBwYWdlLgotICAgICogT24gdG91Y2ggZGV2aWNlcywgaXQg
aXMgZGVzaXJlZCB0byBub3QgaGF2ZSBhbnkgc2Nyb2xsYWJsZSBzdWIgcGFydHMgb2YgdGhlIHBh
Z2UgYXMKLSAgICAqIGl0IHJlc3VsdHMgaW4gYSBjb25mdXNpbmcgdXNlciBleHBlcmllbmNlLCB3
aXRoIHNjcm9sbGluZyBzb21ldGltZXMgc2Nyb2xsaW5nIHN1YiBwYXJ0cwotICAgICogYW5kIGF0
IG90aGVyIHRpbWVzIHNjcm9sbGluZyB0aGUgcGFnZSBpdHNlbGYuIEZvciB0aGlzIHJlYXNvbiBp
ZnJhbWVzIGFuZCBmcmFtZXNldHMgYXJlCi0gICAgKiBiYXJlbHkgdXNhYmxlIG9uIHRvdWNoIGRl
dmljZXMuCi0gICAgKgotICAgICogU2luY2U6IDEuMy41Ci0gICAgKi8KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9GUkFNRV9GTEFUVEVOSU5HLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImVuYWJsZS1m
cmFtZS1mbGF0dGVuaW5nIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBGcmFtZSBGbGF0dGVuaW5nIiksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0
aGVyIHRvIGVuYWJsZSBGcmFtZSBGbGF0dGVuaW5nIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0gICAg
LyoqCi0gICAgICogV2ViS2l0V2ViU2V0dGluZ3M6dXNlci1hZ2VudDoKLSAgICAgKgotICAgICAq
IFRoZSBVc2VyLUFnZW50IHN0cmluZyB1c2VkIGJ5IFdlYktpdEd0ay4KLSAgICAgKgotICAgICAq
IFRoaXMgd2lsbCByZXR1cm4gYSBkZWZhdWx0IFVzZXItQWdlbnQgc3RyaW5nIGlmIGEgY3VzdG9t
IHN0cmluZyB3YXNuJ3QKLSAgICAgKiBwcm92aWRlZCBieSB0aGUgYXBwbGljYXRpb24uIFNldHRp
bmcgdGhpcyBwcm9wZXJ0eSB0byBhIE5VTEwgdmFsdWUgb3IKLSAgICAgKiBhbiBlbXB0eSBzdHJp
bmcgd2lsbCByZXN1bHQgaW4gdGhlIFVzZXItQWdlbnQgc3RyaW5nIGJlaW5nIHJlc2V0IHRvIHRo
ZQotICAgICAqIGRlZmF1bHQgdmFsdWUuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4xLjExCi0g
ICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNz
LCBQUk9QX1VTRVJfQUdFTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfc3RyaW5nKCJ1c2VyLWFnZW50IiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVXNlciBBZ2VudCIpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUg
VXNlci1BZ2VudCBzdHJpbmcgdXNlZCBieSBXZWJLaXRHdGsiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsIC8vIEFuIGVtcHR5IHN0
cmluZyBtZWFucyB0aGUgZGVmYXVsdCB1c2VyLWFnZW50LgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgLyoqCi0g
ICAgKiBXZWJLaXRXZWJTZXR0aW5nczpqYXZhc2NyaXB0LWNhbi1vcGVuLXdpbmRvd3MtYXV0b21h
dGljYWxseToKLSAgICAqCi0gICAgKiBXaGV0aGVyIEphdmFTY3JpcHQgY2FuIG9wZW4gcG9wdXAg
d2luZG93cyBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgdXNlcgotICAgICogaW50ZXJ2ZW50aW9uLgot
ICAgICoKLSAgICAqIFNpbmNlOiAxLjEuMTEKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBST1BfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVh
bigiamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzLWF1dG9tYXRpY2FsbHkiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiSmF2YVNj
cmlwdCBjYW4gb3BlbiB3aW5kb3dzIGF1dG9tYXRpY2FsbHkiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgSmF2YVNj
cmlwdCBjYW4gb3BlbiB3aW5kb3dzIGF1dG9tYXRpY2FsbHkiKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsK
LQotICAgIC8qKgotICAgICogV2ViS2l0V2ViU2V0dGluZ3M6amF2YXNjcmlwdC1jYW4tYWNjZXNz
LWNsaXBib2FyZDoKLSAgICAqCi0gICAgKiBXaGV0aGVyIEphdmFTY3JpcHQgY2FuIGFjY2VzcyBD
bGlwYm9hcmQuCi0gICAgKgotICAgICogU2luY2U6IDEuMy4wCi0gICAgKi8KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQUk9QX0pBVkFTQ1JJUFRfQ0FOX0FDQ0VTU19DTElQQk9BUkQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVh
bigiamF2YXNjcmlwdC1jYW4tYWNjZXNzLWNsaXBib2FyZCIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJKYXZhU2NyaXB0IGNhbiBh
Y2Nlc3MgQ2xpcGJvYXJkIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIEphdmFTY3JpcHQgY2FuIGFjY2VzcyBDbGlw
Ym9hcmQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0V2ViU2V0
dGluZ3M6ZW5hYmxlLW9mZmxpbmUtd2ViLWFwcGxpY2F0aW9uLWNhY2hlOgotICAgICoKLSAgICAq
IFdoZXRoZXIgdG8gZW5hYmxlIEhUTUw1IG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9uIGNhY2hlIHN1
cHBvcnQuIE9mZmxpbmUKLSAgICAqIFdlYiBBcHBsaWNhdGlvbiBDYWNoZSBlbnN1cmVzIHdlYiBh
cHBsaWNhdGlvbnMgYXJlIGF2YWlsYWJsZSBldmVuIHdoZW4KLSAgICAqIHRoZSB1c2VyIGlzIG5v
dCBjb25uZWN0ZWQgdG8gdGhlIG5ldHdvcmsuCi0gICAgKgotICAgICogU2luY2U6IDEuMS4xMwot
ICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05fQ0FDSEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLW9mZmxpbmUtd2ViLWFwcGxpY2F0aW9u
LWNhY2hlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF8oIkVuYWJsZSBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbiBjYWNoZSIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi
V2hldGhlciB0byBlbmFibGUgb2ZmbGluZSB3ZWIgYXBwbGljYXRpb24gY2FjaGUiKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmbGFncykpOwotCi0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlNldHRpbmdzOmVkaXRpbmct
YmVoYXZpb3I6Ci0gICAgKgotICAgICogVGhpcyBzZXR0aW5nIGNvbnRyb2xzIHZhcmlvdXMgZWRp
dGluZyBiZWhhdmlvcnMgdGhhdCBkaWZmZXIKLSAgICAqIGJldHdlZW4gcGxhdGZvcm1zIGFuZCB0
aGF0IGhhdmUgYmVlbiBjb21iaW5lZCBpbiB0d28gZ3JvdXBzLAotICAgICogJ01hYycgYW5kICdX
aW5kb3dzJy4gU29tZSBleGFtcGxlczoKLSAgICAqCi0gICAgKiAgMSkgQ2xpY2tpbmcgYmVsb3cg
dGhlIGxhc3QgbGluZSBvZiBhbiBlZGl0YWJsZSBhcmVhIHB1dHMgdGhlCi0gICAgKiBjYXJldCBh
dCB0aGUgZW5kIG9mIHRoZSBsYXN0IGxpbmUgb24gTWFjLCBidXQgaW4gdGhlIG1pZGRsZSBvZgot
ICAgICogdGhlIGxhc3QgbGluZSBvbiBXaW5kb3dzLgotICAgICoKLSAgICAqICAyKSBQdXNoaW5n
IGRvd24gdGhlIGFycm93IGtleSBvbiB0aGUgbGFzdCBsaW5lIHB1dHMgdGhlIGNhcmV0Ci0gICAg
KiAgYXQgdGhlIGVuZCBvZiB0aGUgbGFzdCBsaW5lIG9uIE1hYywgYnV0IGRvZXMgbm90aGluZyBv
bgotICAgICogIFdpbmRvd3MuIEEgc2ltaWxhciBjYXNlIGV4aXN0cyBvbiB0aGUgdG9wIGxpbmUu
Ci0gICAgKgotICAgICogU2luY2U6IDEuMS4xMwotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9FRElUSU5HX0JFSEFWSU9SLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2VudW0oImVkaXRpbmctYmVoYXZpb3IiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRWRp
dGluZyBiZWhhdmlvciIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiVGhlIGJlaGF2aW9yIG1vZGUgdG8gdXNlIGluIGVkaXRpbmcgbW9k
ZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV0VCS0lUX1RZUEVfRURJVElOR19CRUhBVklPUiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX1VO
SVgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmbGFncykpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLXVu
aXZlcnNhbC1hY2Nlc3MtZnJvbS1maWxlLXVyaXM6Ci0gICAgICoKLSAgICAgKiBXaGV0aGVyIHRv
IGFsbG93IGZpbGVzIGxvYWRlZCB0aHJvdWdoIGZpbGU6Ly8gVVJJcyB1bml2ZXJzYWwgYWNjZXNz
IHRvCi0gICAgICogYWxsIHBhZ2VzLgotICAgICAqCi0gICAgICogU2luY2U6IDEuMS4xMwotICAg
ICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFX1VOSVZFUlNB
TF9BQ0NFU1NfRlJPTV9GSUxFX1VSSVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLXVuaXZlcnNhbC1hY2Nlc3MtZnJvbS1m
aWxlLXVyaXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXygiRW5hYmxlIHVuaXZlcnNhbCBhY2Nlc3MgZnJvbSBmaWxlIFVSSXMiKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIldoZXRoZXIgdG8gYWxsb3cgdW5pdmVyc2FsIGFjY2VzcyBmcm9tIGZpbGUgVVJJcyIpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RkFMU0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmbGFncykpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViU2V0dGluZ3M6ZW5h
YmxlLWRvbS1wYXN0ZToKLSAgICAgKgotICAgICAqIFdoZXRoZXIgdG8gZW5hYmxlIERPTSBwYXN0
ZS4gSWYgc2V0IHRvICVUUlVFLCBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKQotICAgICAq
IHdpbGwgY29ycmVjdGx5IGV4ZWN1dGUgYW5kIHBhc3RlIGNvbnRlbnQgb2YgdGhlIGNsaXBib2Fy
ZC4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEuMTYKLSAgICAgKi8KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9ET01fUEFTVEUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLWRvbS1wYXN0
ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfKCJFbmFibGUgRE9NIHBhc3RlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIHRvIGVuYWJsZSBET00gcGFz
dGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmxhZ3MpKTsKLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlNldHRpbmdz
OnRhYi1rZXktY3ljbGVzLXRocm91Z2gtZWxlbWVudHM6Ci0gICAgKgotICAgICogV2hldGhlciB0
aGUgdGFiIGtleSBjeWNsZXMgdGhyb3VnaCBlbGVtZW50cyBvbiB0aGUgcGFnZS4KLSAgICAqCi0g
ICAgKiBJZiBAZmxhZyBpcyAlVFJVRSwgcHJlc3NpbmcgdGhlIHRhYiBrZXkgd2lsbCBmb2N1cyB0
aGUgbmV4dCBlbGVtZW50IGluCi0gICAgKiB0aGUgQHdlYl92aWV3LiBJZiBAZmxhZyBpcyAlRkFM
U0UsIHRoZSBAd2ViX3ZpZXcgd2lsbCBpbnRlcnByZXQgdGFiCi0gICAgKiBrZXkgcHJlc3NlcyBh
cyBub3JtYWwga2V5IHByZXNzZXMuIElmIHRoZSBzZWxlY3RlZCBlbGVtZW50IGlzIGVkaXRhYmxl
LCB0aGUKLSAgICAqIHRhYiBrZXkgd2lsbCBjYXVzZSB0aGUgaW5zZXJ0aW9uIG9mIGEgdGFiIGNo
YXJhY3Rlci4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4xLjE3Ci0gICAgKi8KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQUk9QX1RBQl9LRVlfQ1lDTEVTX1RIUk9VR0hfRUxFTUVOVFMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVh
bigidGFiLWtleS1jeWNsZXMtdGhyb3VnaC1lbGVtZW50cyIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUYWIga2V5IGN5Y2xlcyB0
aHJvdWdoIGVsZW1lbnRzIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIHRoZSB0YWIga2V5IGN5Y2xlcyB0aHJvdWdo
IGVsZW1lbnRzIG9uIHRoZSBwYWdlLiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICAvKioKLSAg
ICAgKiBXZWJLaXRXZWJTZXR0aW5nczplbmFibGUtZGVmYXVsdC1jb250ZXh0LW1lbnU6Ci0gICAg
ICoKLSAgICAgKiBXaGV0aGVyIHJpZ2h0LWNsaWNrcyBzaG91bGQgYmUgaGFuZGxlZCBhdXRvbWF0
aWNhbGx5IHRvIGNyZWF0ZSwKLSAgICAgKiBhbmQgZGlzcGxheSB0aGUgY29udGV4dCBtZW51LiBU
dXJuaW5nIHRoaXMgb2ZmIHdpbGwgbWFrZQotICAgICAqIFdlYktpdEdUSysgbm90IGVtaXQgdGhl
IHBvcHVsYXRlLXBvcHVwIHNpZ25hbC4gTm90aWNlIHRoYXQgdGhlCi0gICAgICogZGVmYXVsdCBi
dXR0b24gcHJlc3MgZXZlbnQgaGFuZGxlciBtYXkgc3RpbGwgaGFuZGxlIHJpZ2h0Ci0gICAgICog
Y2xpY2tzIGZvciBvdGhlciByZWFzb25zLCBzdWNoIGFzIGluLXBhZ2UgY29udGV4dCBtZW51cywg
b3IKLSAgICAgKiByaWdodC1jbGlja3MgdGhhdCBhcmUgaGFuZGxlZCBieSB0aGUgcGFnZSBpdHNl
bGYuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4xLjE4Ci0gICAgICoKLSAgICAgKiBEZXByZWNh
dGVkOiAxLjEwOiBVc2UgI1dlYktpdFdlYlZpZXc6OmNvbnRleHQtbWVudSBzaWduYWwgaW5zdGVh
ZC4KLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3Rf
Y2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9E
RUZBVUxUX0NPTlRFWFRfTUVOVSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdfcGFyYW1fc3BlY19ib29sZWFuKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImVuYWJsZS1kZWZhdWx0LWNvbnRleHQtbWVudSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfKCJFbmFibGUgRGVmYXVsdCBDb250ZXh0IE1lbnUiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZXMgdGhlIGhhbmRsaW5nIG9mIHJp
Z2h0LWNsaWNrcyBmb3IgdGhlIGNyZWF0aW9uIG9mIHRoZSBkZWZhdWx0IGNvbnRleHQgbWVudSIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJL
aXRXZWJTZXR0aW5nczo6ZW5hYmxlLXNpdGUtc3BlY2lmaWMtcXVpcmtzOgotICAgICAqCi0gICAg
ICogV2hldGhlciB0byB0dXJuIG9uIHNpdGUtc3BlY2lmaWMgaGFja3MuICBUdXJuaW5nIHRoaXMg
b24gd2lsbAotICAgICAqIHRlbGwgV2ViS2l0R1RLKyB0byB1c2Ugc29tZSBzaXRlLXNwZWNpZmlj
IHdvcmthcm91bmRzIGZvcgotICAgICAqIGJldHRlciB3ZWIgY29tcGF0aWJpbGl0eS4gIEZvciBl
eGFtcGxlLCBvbGRlciB2ZXJzaW9ucyBvZgotICAgICAqIE1lZGlhV2lraSB3aWxsIGluY29ycmVj
dGx5IHNlbmQgV2ViS2l0IGEgY3NzIGZpbGUgd2l0aCBLSFRNTAotICAgICAqIHdvcmthcm91bmRz
LiAgQnkgdHVybmluZyBvbiBzaXRlLXNwZWNpZmljIHF1aXJrcywgV2ViS2l0IHdpbGwKLSAgICAg
KiBzcGVjaWFsLWNhc2UgdGhpcyBhbmQgb3RoZXIgY2FzZXMgdG8gbWFrZSB0aGUgc2l0ZXMgd29y
ay4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEuMTgKLSAgICAgKi8KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9TSVRFX1NQRUNJRklDX1FVSVJLUywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuYWJsZS1zaXRlLXNwZWNpZmljLXF1
aXJrcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJFbmFibGUgU2l0
ZSBTcGVjaWZpYyBRdWlya3MiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIkVuYWJsZXMgdGhlIHNpdGUtc3BlY2lmaWMgY29tcGF0aWJpbGl0eSB3b3JrYXJvdW5kcyIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgLyoqCi0gICAgKiBXZWJL
aXRXZWJTZXR0aW5nczplbmFibGUtcGFnZS1jYWNoZToKLSAgICAqCi0gICAgKiBFbmFibGUgb3Ig
ZGlzYWJsZSB0aGUgcGFnZSBjYWNoZS4gRGlzYWJsaW5nIHRoZSBwYWdlIGNhY2hlIGlzCi0gICAg
KiBnZW5lcmFsbHkgb25seSB1c2VmdWwgZm9yIHNwZWNpYWwgY2lyY3Vtc3RhbmNlcyBsaWtlIGxv
dy1tZW1vcnkKLSAgICAqIHNjZW5hcmlvcyBvciBzcGVjaWFsIHB1cnBvc2UgYXBwbGljYXRpb25z
IGxpa2Ugc3RhdGljIEhUTUwKLSAgICAqIHZpZXdlcnMuIFRoaXMgc2V0dGluZyBvbmx5IGNvbnRy
b2xzIHRoZSBQYWdlIENhY2hlLCB0aGlzIGNhY2hlCi0gICAgKiBpcyBkaWZmZXJlbnQgdGhhbiB0
aGUgZGlzay1iYXNlZCBvciBtZW1vcnktYmFzZWQgdHJhZGl0aW9uYWwKLSAgICAqIHJlc291cmNl
IGNhY2hlcywgaXRzIHBvaW50IGlzIHRvIG1ha2UgZ29pbmcgYmFjayBhbmQgZm9ydGgKLSAgICAq
IGJldHdlZW4gcGFnZXMgbXVjaCBmYXN0ZXIuIEZvciBkZXRhaWxzIGFib3V0IHRoZSBkaWZmZXJl
bnQgdHlwZXMKLSAgICAqIG9mIGNhY2hlcyBhbmQgdGhlaXIgcHVycG9zZXMgc2VlOgotICAgICog
aHR0cDovL3dlYmtpdC5vcmcvYmxvZy80Mjcvd2Via2l0LXBhZ2UtY2FjaGUtaS10aGUtYmFzaWNz
LwotICAgICoKLSAgICAqIFNpbmNlOiAxLjEuMTgKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBST1BfRU5BQkxFX1BBR0VfQ0FDSEUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLXBhZ2UtY2FjaGUi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiRW5hYmxlIHBhZ2UgY2FjaGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIHBhZ2UgY2FjaGUgc2hv
dWxkIGJlIHVzZWQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0
V2ViU2V0dGluZ3M6YXV0by1yZXNpemUtd2luZG93OgotICAgICoKLSAgICAqIFdlYiBwYWdlcyBj
YW4gcmVxdWVzdCB0byBtb2RpZnkgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZQotICAgICog
d2luZG93IGNvbnRhaW5pbmcgdGhlICNXZWJLaXRXZWJWaWV3IHRocm91Z2ggdmFyaW91cyBET00g
bWV0aG9kcwotICAgICogKHJlc2l6ZVRvLCBtb3ZlVG8sIHJlc2l6ZUJ5LCBtb3ZlQnkpLiBCeSBk
ZWZhdWx0IFdlYktpdCB3aWxsIG5vdAotICAgICogaG9ub3IgdGhpcyByZXF1ZXN0cywgYnV0IHlv
dSBjYW4gc2V0IHRoaXMgcHJvcGVydHkgdG8gJVRSVUUgaWYKLSAgICAqIHlvdSdkIGxpa2UgaXQg
dG8gZG8gc28uIElmIHlvdSB3aXNoIHRvIGhhbmRsZSB0aGlzIG1hbnVhbGx5LCB5b3UKLSAgICAq
IGNhbiBjb25uZWN0IHRvIHRoZSBub3RpZnkgc2lnbmFsIGZvciB0aGUKLSAgICAqICNXZWJLaXRX
ZWJXaW5kb3dGZWF0dXJlcyBvZiB5b3VyICNXZWJLaXRXZWJWaWV3LgotICAgICoKLSAgICAqIFNp
bmNlOiAxLjEuMjIKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
Z29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1Bf
QVVUT19SRVNJWkVfV0lORE9XLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z19wYXJhbV9zcGVjX2Jvb2xlYW4oImF1dG8tcmVzaXplLXdpbmRvdyIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJBdXRvIFJlc2l6
ZSBXaW5kb3ciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIkF1dG9tYXRpY2FsbHkgcmVzaXplIHRoZSB0b3BsZXZlbCB3aW5kb3cg
d2hlbiBhIHBhZ2UgcmVxdWVzdHMgaXQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgot
ICAgICAqIFdlYktpdFdlYlNldHRpbmdzOmVuYWJsZS1maWxlLWFjY2Vzcy1mcm9tLWZpbGUtdXJp
czoKLSAgICAgKgotICAgICAqIEJvb2xlYW4gcHJvcGVydHkgdG8gY29udHJvbCBmaWxlIGFjY2Vz
cyBmb3IgZmlsZTovLyBVUklzLiBJZiB0aGlzCi0gICAgICogb3B0aW9uIGlzIGVuYWJsZWQgZXZl
cnkgZmlsZTovLyB3aWxsIGhhdmUgaXRzIG93biBzZWN1cml0eSB1bmlxdWUgZG9tYWluLgotICAg
ICAqCi0gICAgICogU2luY2U6IDEuMS4yMgotICAgICAqLwotICAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9FTkFCTEVfRklMRV9BQ0NFU1NfRlJPTV9GSUxFX1VSSVMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImVu
YWJsZS1maWxlLWFjY2Vzcy1mcm9tLWZpbGUtdXJpcyIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuYWJsZSBmaWxlIGFjY2VzcyBm
cm9tIGZpbGUgVVJJcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkNvbnRyb2xzIGZpbGUgYWNjZXNzIGZvciBmaWxlOi8vIFVSSXMu
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAvKioKLSAgICAqIFdlYktpdFdlYlNldHRpbmdz
OmVuYWJsZS1qYXZhLWFwcGxldDoKLSAgICAqCi0gICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzdXBw
b3J0IGZvciB0aGUgSmF2YSAmbHQ7YXBwbGV0Jmd0OyB0YWcuIEtlZXAgaW4KLSAgICAqIG1pbmQg
dGhhdCBKYXZhIGNvbnRlbnQgY2FuIGJlIHN0aWxsIHNob3duIGluIHRoZSBwYWdlIHRocm91Z2gK
LSAgICAqICZsdDtvYmplY3QmZ3Q7IG9yICZsdDtlbWJlZCZndDssIHdoaWNoIGFyZSB0aGUgcHJl
ZmVycmVkIHRhZ3MgZm9yIHRoaXMgdGFzay4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4xLjIyCi0g
ICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3Ms
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9KQVZBX0FQ
UExFVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19i
b29sZWFuKCJlbmFibGUtamF2YS1hcHBsZXQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5hYmxlIEphdmEgQXBwbGV0IiksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJXaGV0aGVyIEphdmEgQXBwbGV0IHN1cHBvcnQgdGhyb3VnaCA8YXBwbGV0PiBzaG91bGQgYmUg
ZW5hYmxlZCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlNl
dHRpbmdzOmVuYWJsZS1oeXBlcmxpbmstYXVkaXRpbmc6Ci0gICAgKgotICAgICogRW5hYmxlIG9y
IGRpc2FibGUgc3VwcG9ydCBmb3IgJmx0O2EgcGluZyZndDsuCi0gICAgKgotICAgICogU2luY2U6
IDEuMi41Ci0gICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmpl
Y3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VOQUJM
RV9IWVBFUkxJTktfQVVESVRJTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZW5hYmxlLWh5cGVybGluay1hdWRpdGluZyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJF
bmFibGUgSHlwZXJsaW5rIEF1ZGl0aW5nIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIDxhIHBpbmc+IHNob3VsZCBi
ZSBhYmxlIHRvIHNlbmQgcGluZ3MiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgotICAg
ICogV2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLWZ1bGxzY3JlZW46Ci0gICAgKgotICAgICoKLSAg
ICAqIFdoZXRoZXIgdG8gZW5hYmxlIHRoZSBKYXZhc2NyaXB0IEZ1bGxzY3JlZW4gQVBJLiBUaGUg
QVBJCi0gICAgKiBhbGxvd3MgYW55IEhUTUwgZWxlbWVudCB0byByZXF1ZXN0IGZ1bGxzY3JlZW4g
ZGlzcGxheS4gU2VlIGFsc28KLSAgICAqIHRoZSBjdXJyZW50IGRyYWZ0IG9mIHRoZSBzcGVjOgot
ICAgICogaHR0cDovL3d3dy53My5vcmcvVFIvZnVsbHNjcmVlbi8KLSAgICAqCi0gICAgKiBTaW5j
ZTogMi40Ci0gICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmpl
Y3RfY2xhc3MsCi0gICAgICAgIFBST1BfRU5BQkxFX0ZVTExTQ1JFRU4sCi0gICAgICAgIGdfcGFy
YW1fc3BlY19ib29sZWFuKCJlbmFibGUtZnVsbHNjcmVlbiIsCi0gICAgICAgICAgICBfKCJFbmFi
bGUgRnVsbHNjcmVlbiIpLAotICAgICAgICAgICAgXygiV2hldGhlciB0byBlbmFibGUgdGhlIEph
dmFzY3JpcHQgRnVsbHNjcmVlbiBBUEkiKSwKLSAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAg
ICBmbGFncykpOwotCi0gICAgLyoqCi0gICAgKiBXZWJLaXRXZWJTZXR0aW5nczplbmFibGUtd2Vi
Z2w6Ci0gICAgKgotICAgICogRW5hYmxlIG9yIGRpc2FibGUgc3VwcG9ydCBmb3IgV2ViR0wgb24g
cGFnZXMuIFdlYkdMIGlzIGFuIGV4cGVyaW1lbnRhbAotICAgICogcHJvcG9zYWwgZm9yIGFsbG93
aW5nIHdlYiBwYWdlcyB0byB1c2UgT3BlbkdMIEVTLWxpa2UgY2FsbHMgZGlyZWN0bHkuIFRoZQot
ICAgICogc3RhbmRhcmQgaXMgY3VycmVudGx5IGEgd29yay1pbi1wcm9ncmVzcyBieSB0aGUgS2hy
b25vcyBHcm91cC4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4zLjE0Ci0gICAgKi8KLSAgICBnX29i
amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VOQUJMRV9XRUJHTCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtd2ViZ2wi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiRW5hYmxlIFdlYkdMIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIFdlYkdMIGNvbnRlbnQgc2hvdWxkIGJl
IHJlbmRlcmVkIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdl
YlNldHRpbmdzOmVuYWJsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZzoKLSAgICAqCi0gICAgKiBF
bmFibGUgb3IgZGlzYWJsZSBzdXBwb3J0IGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBvbiBw
YWdlcy4gQWNjZWxlcmF0ZWQKLSAgICAqIGNvbXBvc2l0aW5nIHVzZXMgdGhlIEdQVSB0byByZW5k
ZXIgYW5pbWF0aW9ucyBvbiBwYWdlcyBzbW9vdGhseSBhbmQgYWxzbyBhbGxvd3MKLSAgICAqIHBy
b3BlciByZW5kZXJpbmcgb2YgM0QgQ1NTIHRyYW5zZm9ybXMuCi0gICAgKgotICAgICogU2luY2U6
IDEuNy41Ci0gICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmpl
Y3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0VOQUJM
RV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRp
bmciLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXygiRW5hYmxlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIGFj
Y2VsZXJhdGVkIGNvbXBvc2l0aW5nIHNob3VsZCBiZSBlbmFibGVkIiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdz
KSk7Ci0gICAgLyoqCi0gICAgKiBXZWJLaXRXZWJTZXR0aW5nczplbmFibGUtd2ViYXVkaW86Ci0g
ICAgKgotICAgICogRW5hYmxlIG9yIGRpc2FibGUgc3VwcG9ydCBmb3IgV2ViQXVkaW8gb24gcGFn
ZXMuIFdlYkF1ZGlvIGlzIGFuCi0gICAgKiBleHBlcmltZW50YWwgcHJvcG9zYWwgZm9yIGFsbG93
aW5nIHdlYiBwYWdlcyB0byBnZW5lcmF0ZSBBdWRpbwotICAgICogV0FWRSBkYXRhIGZyb20gSmF2
YVNjcmlwdC4gVGhlIHN0YW5kYXJkIGlzIGN1cnJlbnRseSBhCi0gICAgKiB3b3JrLWluLXByb2dy
ZXNzIGJ5IHRoZSBXM0MgQXVkaW8gV29ya2luZyBHcm91cC4KLSAgICAqCi0gICAgKiBTZWUgYWxz
byBodHRwczovL2R2Y3MudzMub3JnL2hnL2F1ZGlvL3Jhdy1maWxlL3RpcC93ZWJhdWRpby9zcGVj
aWZpY2F0aW9uLmh0bWwKLSAgICAqCi0gICAgKiBTaW5jZTogVE9ETwotICAgICovCi0gICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkFCTEVfV0VCX0FVRElPLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImVuYWJsZS13
ZWJhdWRpbyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfKCJFbmFibGUgV2ViQXVkaW8iKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgV2ViQXVkaW8gY29u
dGVudCBzaG91bGQgYmUgaGFuZGxlZCIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0KLSAgICAvKioK
LSAgICAqIFdlYktpdFdlYlNldHRpbmdzOmVuYWJsZS1kbnMtcHJlZmV0Y2hpbmc6Ci0gICAgKgot
ICAgICogV2hldGhlciB3ZWJraXQgcHJlZmV0Y2hlcyBkb21haW4gbmFtZXMuICBUaGlzIGlzIGEg
c2VwYXJhdGUga25vYiBmcm9tIHByaXZhdGUgYnJvd3NpbmcuCi0gICAgKiBXaGV0aGVyIHByaXZh
dGUgYnJvd3Npbmcgc2hvdWxkIHNldCB0aGlzIG9yIG5vdCBpcyB1cCBmb3IgZGViYXRlLCBmb3Ig
bm93IGl0IGRvZXNuJ3QuCi0gICAgKgotICAgICogU2luY2U6IDEuMy4xMy4KLSAgICAqLwotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFX0ROU19QUkVGRVRDSElORywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFu
KCJlbmFibGUtZG5zLXByZWZldGNoaW5nIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldlYktpdCBwcmVmZXRjaGVzIGRvbWFpbiBu
YW1lcyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiV2hldGhlciBXZWJLaXQgcHJlZmV0Y2hlcyBkb21haW4gbmFtZXMiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRS
VUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmbGFncykpOwotICAgIC8qKgotICAgICogV2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLW1l
ZGlhLXN0cmVhbToKLSAgICAqCi0gICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzdXBwb3J0IGZvciBN
ZWRpYSBTdHJlYW0gb24gcGFnZXMuIE1lZGlhIFN0cmVhbSBpcwotICAgICogYW4gZXhwZXJpbWVu
dGFsIHByb3Bvc2FsIGZvciBhbGxvd2luZyB3ZWIgcGFnZXMgdG8gYWNjZXNzIGxvY2FsIHZpZGVv
IGFuZAotICAgICogYXVkaW8gaW5wdXQgZGV2aWNlcy4gIFRoZSBzdGFuZGFyZCBpcyBjdXJyZW50
bHkgYSB3b3JrLWluLXByb2dyZXNzIGFzIHBhcnQKLSAgICAqIG9mIHRoZSBXZWIgQXBwbGljYXRp
b25zIDEuMCBzcGVjaWZpY2F0aW9uIGZyb20gV0hBVFdHLgotICAgICoKLSAgICAqIFNlZSBhbHNv
IGh0dHA6Ly93d3cudzMub3JnL1RSL21lZGlhY2FwdHVyZS1zdHJlYW1zLwotICAgICoKLSAgICAq
IFNpbmNlOiAxLjEwLjAKLSAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS
T1BfRU5BQkxFX01FRElBX1NUUkVBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtbWVkaWEtc3RyZWFtIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJs
ZSBNZWRpYSBTdHJlYW0iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgTWVkaWEgU3RyZWFtIHNob3VsZCBiZSBlbmFi
bGVkIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlNldHRp
bmdzOmVuYWJsZS1zbW9vdGgtc2Nyb2xsaW5nOgotICAgICoKLSAgICAqIEVuYWJsZSBvciBkaXNh
YmxlIHN1cHBvcnQgZm9yIHNtb290aCBzY3JvbGxpbmcuIFRoZSBjdXJyZW50IGltcGxlbWVudGF0
aW9uIHJlbGllcyB1cG9uCi0gICAgKiBDUFUgd29yayB0byBwcm9kdWNlIGEgc21vb3RoIHNjcm9s
bGluZyBleHBlcmllbmNlLgotICAgICoKLSAgICAqIFNpbmNlOiAxLjkuMAotICAgICovCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9FTkFCTEVfU01PT1RIX1NDUk9MTElORywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFu
KCJlbmFibGUtc21vb3RoLXNjcm9sbGluZyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJFbmFibGUgc21vb3RoIHNjcm9sbGluZyIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiV2hldGhlciB0byBlbmFibGUgc21vb3RoIHNjcm9sbGluZyIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFn
cykpOwotCi0gICAgLyoqCi0gICAgKiBXZWJLaXRXZWJTZXR0aW5nczptZWRpYS1wbGF5YmFjay1y
ZXF1aXJlcy11c2VyLWdlc3R1cmU6Ci0gICAgKgotICAgICogV2hldGhlciBhIHVzZXIgZ2VzdHVy
ZSAoc3VjaCBhcyBjbGlja2luZyB0aGUgcGxheSBidXR0b24pIHdvdWxkCi0gICAgKiBiZSByZXF1
aXJlZCB0byBzdGFydCBtZWRpYSBwbGF5YmFjayBvciBsb2FkIG1lZGlhLiBUaGlzIGlzIG9mZgot
ICAgICogYnkgZGVmYXVsdCwgc28gbWVkaWEgcGxheWJhY2sgY291bGQgc3RhcnQgYXV0b21hdGlj
YWxseS4gU2V0dGluZwotICAgICogaXQgb24gcmVxdWlyZXMgYSBnZXN0dXJlIGJ5IHRoZSB1c2Vy
IHRvIHN0YXJ0IHBsYXliYWNrLCBvciB0byBsb2FkCi0gICAgKiB0aGUgbWVkaWEuCi0gICAgKgot
ICAgICogU2luY2U6IDEuMTAuMAotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUFJPUF9NRURJQV9QTEFZQkFDS19SRVFVSVJFU19VU0VSX0dFU1RVUkUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigibWVkaWEtcGxh
eWJhY2stcmVxdWlyZXMtdXNlci1nZXN0dXJlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIk1lZGlhIHBsYXliYWNrIHJlcXVpcmVz
IHVzZXIgZ2VzdHVyZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXygiV2hldGhlciBtZWRpYSBwbGF5YmFjayByZXF1aXJlcyB1c2Vy
IGdlc3R1cmUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0V2Vi
U2V0dGluZ3M6bWVkaWEtcGxheWJhY2stYWxsb3dzLWlubGluZToKLSAgICAqCi0gICAgKiBXaGV0
aGVyIG1lZGlhIHBsYXliYWNrIGlzIGZ1bGwtc2NyZWVuIG9ubHkgb3IgaW5saW5lIHBsYXliYWNr
IGlzIGFsbG93ZWQuCi0gICAgKiBUaGlzIGlzIHRydWUgYnkgZGVmYXVsdCwgc28gbWVkaWEgcGxh
eWJhY2sgY2FuIGJlIGlubGluZS4gU2V0dGluZyBpdCB0bwotICAgICogZmFsc2UgYWxsb3dzIHNw
ZWNpZnlpbmcgdGhhdCBtZWRpYSBwbGF5YmFjayBzaG91bGQgYmUgYWx3YXlzIGZ1bGxzY3JlZW4u
Ci0gICAgKgotICAgICogU2luY2U6IDEuMTAuMAotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUFJPUF9NRURJQV9QTEFZQkFDS19BTExPV1NfSU5MSU5FLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oIm1lZGlhLXBs
YXliYWNrLWFsbG93cy1pbmxpbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXygiTWVkaWEgcGxheWJhY2sgYWxsb3dzIGlubGluZSIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXygiV2hldGhlciBtZWRpYSBwbGF5YmFjayBhbGxvd3MgaW5saW5lIiksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxh
Z3MpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLWRpc3BsYXkt
b2YtaW5zZWN1cmUtY29udGVudDoKLSAgICAqCi0gICAgKiBXaGV0aGVyIHBhZ2VzIGxvYWRlZCB2
aWEgSFRUUFMgc2hvdWxkIGxvYWQgc3VicmVzb3VyY2VzIHN1Y2ggYXMKLSAgICAqIGltYWdlcyBh
bmQgZnJhbWVzIGZyb20gbm9uLUhUVFBTIFVSTHMuCi0gICAgKgotICAgICogU2luY2U6IDIuMAot
ICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNz
LAotICAgICAgICBQUk9QX0VOQUJMRV9ESVNQTEFZX09GX0lOU0VDVVJFX0NPTlRFTlQsCi0gICAg
ICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtZGlzcGxheS1vZi1pbnNlY3VyZS1jb250
ZW50IiwKLSAgICAgICAgICAgIF8oIkVuYWJsZSBkaXNwbGF5IG9mIGluc2VjdXJlIGNvbnRlbnQi
KSwKLSAgICAgICAgICAgIF8oIldoZXRoZXIgbm9uLUhUVFBTIHJlc291cmNlcyBjYW4gZGlzcGxh
eSBvbiBIVFRQUyBwYWdlcy4iKSwKLSAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAgICBmbGFn
cykpOwotCi0gICAgLyoqCi0gICAgKiBXZWJLaXRXZWJTZXR0aW5nczplbmFibGUtcnVubmluZy1v
Zi1pbnNlY3VyZS1jb250ZW50OgotICAgICoKLSAgICAqIFdoZXRoZXIgcGFnZXMgbG9hZGVkIHZp
YSBIVFRQUyBzaG91bGQgcnVuIHN1YnJlc291cmNlcyBzdWNoIGFzCi0gICAgKiBDU1MsIHNjcmlw
dHMsIGFuZCBwbHVnaW5zIGZyb20gbm9uLUhUVFBTIFVSTHMuCi0gICAgKgotICAgICogU2luY2U6
IDIuMAotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0
X2NsYXNzLAotICAgICAgICBQUk9QX0VOQUJMRV9SVU5OSU5HX09GX0lOU0VDVVJFX0NPTlRFTlQs
Ci0gICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFibGUtcnVubmluZy1vZi1pbnNlY3Vy
ZS1jb250ZW50IiwKLSAgICAgICAgICAgIF8oIkVuYWJsZSBydW5uaW5nIG9mIGluc2VjdXJlIGNv
bnRlbnQiKSwKLSAgICAgICAgICAgIF8oIldoZXRoZXIgbm9uLUhUVFBTIHJlc291cmNlcyBjYW4g
cnVuIG9uIEhUVFBTIHBhZ2VzLiIpLAotICAgICAgICAgICAgVFJVRSwKLSAgICAgICAgICAgIGZs
YWdzKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlNldHRpbmdzOmVuYWJsZS1tZWRpYXNv
dXJjZToKLSAgICAqCi0gICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzdXBwb3J0IGZvciBNZWRpYVNv
dXJjZSBvbiBwYWdlcy4gTWVkaWFTb3VyY2UgaXMgYW4KLSAgICAqIGV4cGVyaW1lbnRhbCBwcm9w
b3NhbCB3aGljaCBleHRlbmRzIEhUTUxNZWRpYUVsZW1lbnQgdG8gYWxsb3cKLSAgICAqIEphdmFT
Y3JpcHQgdG8gZ2VuZXJhdGUgbWVkaWEgc3RyZWFtcyBmb3IgcGxheWJhY2suICBUaGUgc3RhbmRh
cmQgaXMKLSAgICAqIGN1cnJlbnRseSBhIHdvcmstaW4tcHJvZ3Jlc3MgYnkgdGhlIFczQyBIVE1M
IE1lZGlhIFRhc2sgRm9yY2UuCi0gICAgKgotICAgICogU2VlIGFsc28gaHR0cDovL3d3dy53My5v
cmcvVFIvbWVkaWEtc291cmNlLwotICAgICoKLSAgICAqIFNpbmNlOiAyLjQKLSAgICAqLwotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAg
UFJPUF9FTkFCTEVfTUVESUFfU09VUkNFLAotICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigi
ZW5hYmxlLW1lZGlhc291cmNlIiwKLSAgICAgICAgICAgIF8oIkVuYWJsZSBNZWRpYVNvdXJjZSIp
LAotICAgICAgICAgICAgXygiV2hldGhlciBNZWRpYVNvdXJjZSBzaG91bGQgYmUgZW5hYmxlZC4i
KSwKLSAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgZmxhZ3MpKTsKLX0KLQotc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19pbml0KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJfc2V0
dGluZ3MpCi17Ci0gICAgd2ViX3NldHRpbmdzLT5wcml2ID0gbmV3IFdlYktpdFdlYlNldHRpbmdz
UHJpdmF0ZTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl9zZXR0aW5nc19maW5hbGl6ZShH
T2JqZWN0KiBvYmplY3QpCi17Ci0gICAgZGVsZXRlIFdFQktJVF9XRUJfU0VUVElOR1Mob2JqZWN0
KS0+cHJpdjsKLSAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfd2ViX3NldHRpbmdzX3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfc2V0
dGluZ3Nfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uc3Qg
R1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0V2ViU2V0dGlu
Z3MqIHdlYl9zZXR0aW5ncyA9IFdFQktJVF9XRUJfU0VUVElOR1Mob2JqZWN0KTsKLSAgICBXZWJL
aXRXZWJTZXR0aW5nc1ByaXZhdGUqIHByaXYgPSB3ZWJfc2V0dGluZ3MtPnByaXY7Ci0KLSAgICBz
d2l0Y2gocHJvcF9pZCkgewotICAgIGNhc2UgUFJPUF9ERUZBVUxUX0VOQ09ESU5HOgotICAgICAg
ICBwcml2LT5kZWZhdWx0RW5jb2RpbmcgPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfQ1VSU0lWRV9GT05UX0ZBTUlMWToKLSAgICAgICAg
cHJpdi0+Y3Vyc2l2ZUZvbnRGYW1pbHkgPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfREVGQVVMVF9GT05UX0ZBTUlMWToKLSAgICAgICAg
cHJpdi0+ZGVmYXVsdEZvbnRGYW1pbHkgPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRkFOVEFTWV9GT05UX0ZBTUlMWToKLSAgICAgICAg
cHJpdi0+ZmFudGFzeUZvbnRGYW1pbHkgPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTU9OT1NQQUNFX0ZPTlRfRkFNSUxZOgotICAgICAg
ICBwcml2LT5tb25vc3BhY2VGb250RmFtaWx5ID0gZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1NBTlNfU0VSSUZfRk9OVF9GQU1JTFk6Ci0g
ICAgICAgIHByaXYtPnNhbnNTZXJpZkZvbnRGYW1pbHkgPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFs
dWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfU0VSSUZfRk9OVF9GQU1JTFk6Ci0g
ICAgICAgIHByaXYtPnNlcmlmRm9udEZhbWlseSA9IGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9ERUZBVUxUX0ZPTlRfU0laRToKLSAgICAg
ICAgcHJpdi0+ZGVmYXVsdEZvbnRTaXplID0gZ192YWx1ZV9nZXRfaW50KHZhbHVlKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0RFRkFVTFRfTU9OT1NQQUNFX0ZPTlRfU0laRToKLSAg
ICAgICAgcHJpdi0+ZGVmYXVsdE1vbm9zcGFjZUZvbnRTaXplID0gZ192YWx1ZV9nZXRfaW50KHZh
bHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX01JTklNVU1fRk9OVF9TSVpFOgot
ICAgICAgICBwcml2LT5taW5pbXVtRm9udFNpemUgPSBnX3ZhbHVlX2dldF9pbnQodmFsdWUpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTUlOSU1VTV9MT0dJQ0FMX0ZPTlRfU0laRToK
LSAgICAgICAgcHJpdi0+bWluaW11bUxvZ2ljYWxGb250U2l6ZSA9IGdfdmFsdWVfZ2V0X2ludCh2
YWx1ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkZPUkNFXzk2X0RQSToKLSAg
ICAgICAgcHJpdi0+ZW5mb3JjZTk2RFBJID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9BVVRPX0xPQURfSU1BR0VTOgotICAgICAgICBw
cml2LT5hdXRvTG9hZEltYWdlcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFBST1BfQVVUT19TSFJJTktfSU1BR0VTOgotICAgICAgICBwcml2
LT5hdXRvU2hyaW5rSW1hZ2VzID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgUFJPUF9SRVNQRUNUX0lNQUdFX09SSUVOVEFUSU9OOgotICAgICAg
ICBwcml2LT5yZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFs
dWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfUFJJTlRfQkFDS0dST1VORFM6Ci0g
ICAgICAgIHByaXYtPnByaW50QmFja2dyb3VuZHMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVl
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9TQ1JJUFRTOgotICAgICAg
ICBwcml2LT5lbmFibGVTY3JpcHRzID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfUExVR0lOUzoKLSAgICAgICAgcHJpdi0+
ZW5hYmxlUGx1Z2lucyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIFBST1BfUkVTSVpBQkxFX1RFWFRfQVJFQVM6Ci0gICAgICAgIHByaXYtPnJl
c2l6YWJsZVRleHRBcmVhcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFBST1BfVVNFUl9TVFlMRVNIRUVUX1VSSToKLSAgICAgICAgcHJpdi0+
dXNlclN0eWxlc2hlZXRVUkkgPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFBST1BfWk9PTV9TVEVQOgotICAgICAgICBwcml2LT56b29tU3RlcCA9
IGdfdmFsdWVfZ2V0X2Zsb2F0KHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X0VOQUJMRV9ERVZFTE9QRVJfRVhUUkFTOgotICAgICAgICBwcml2LT5lbmFibGVEZXZlbG9wZXJF
eHRyYXMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBQUk9QX0VOQUJMRV9QUklWQVRFX0JST1dTSU5HOgotICAgICAgICBwcml2LT5lbmFibGVQ
cml2YXRlQnJvd3NpbmcgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9DQVJFVF9CUk9XU0lORzoKLSAgICAgICAgcHJpdi0+
ZW5hYmxlQ2FyZXRCcm93c2luZyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX0hUTUw1X0RBVEFCQVNFOgotICAgICAgICBw
cml2LT5lbmFibGVIVE1MNURhdGFiYXNlID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfSFRNTDVfTE9DQUxfU1RPUkFHRToK
LSAgICAgICAgcHJpdi0+ZW5hYmxlSFRNTDVMb2NhbFN0b3JhZ2UgPSBnX3ZhbHVlX2dldF9ib29s
ZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0hUTUw1X0xPQ0FMX1NU
T1JBR0VfREFUQUJBU0VfUEFUSDoKLSAgICAgICAgcHJpdi0+aHRtbDVMb2NhbFN0b3JhZ2VEYXRh
YmFzZVBhdGggPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFBST1BfRU5BQkxFX1NQRUxMX0NIRUNLSU5HOgotICAgICAgICBwcml2LT5lbmFibGVT
cGVsbENoZWNraW5nID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUFJPUF9TUEVMTF9DSEVDS0lOR19MQU5HVUFHRVM6Ci0gICAgICAgIHByaXYt
PnNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMgPSBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX1hTU19BVURJVE9SOgotICAgICAgICBw
cml2LT5lbmFibGVYU1NBdWRpdG9yID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfU1BBVElBTF9OQVZJR0FUSU9OOgotICAg
ICAgICBwcml2LT5lbmFibGVTcGF0aWFsTmF2aWdhdGlvbiA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4o
dmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX0ZSQU1FX0ZMQVRU
RU5JTkc6Ci0gICAgICAgIHByaXYtPmVuYWJsZUZyYW1lRmxhdHRlbmluZyA9IGdfdmFsdWVfZ2V0
X2Jvb2xlYW4odmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfVVNFUl9BR0VO
VDoKLSAgICAgICAgaWYgKCFnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpIHx8ICFzdHJsZW4oZ192
YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSkpCi0gICAgICAgICAgICBwcml2LT51c2VyQWdlbnQgPSBz
dGFuZGFyZFVzZXJBZ2VudCgpLnV0ZjgoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcHJp
di0+dXNlckFnZW50ID0gZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBQUk9QX0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZ
OgotICAgICAgICBwcml2LT5qYXZhc2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0g
Z192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJP
UF9KQVZBU0NSSVBUX0NBTl9BQ0NFU1NfQ0xJUEJPQVJEOgotICAgICAgICBwcml2LT5qYXZhc2Ny
aXB0Q2FuQWNjZXNzQ2xpcGJvYXJkID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05f
Q0FDSEU6Ci0gICAgICAgIHByaXYtPmVuYWJsZU9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlID0g
Z192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJP
UF9FRElUSU5HX0JFSEFWSU9SOgotICAgICAgICBwcml2LT5lZGl0aW5nQmVoYXZpb3IgPSBzdGF0
aWNfY2FzdDxXZWJLaXRFZGl0aW5nQmVoYXZpb3I+KGdfdmFsdWVfZ2V0X2VudW0odmFsdWUpKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9VTklWRVJTQUxfQUNDRVNTX0ZS
T01fRklMRV9VUklTOgotICAgICAgICBwcml2LT5lbmFibGVVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSSXMgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBQUk9QX0VOQUJMRV9GSUxFX0FDQ0VTU19GUk9NX0ZJTEVfVVJJUzoKLSAgICAgICAgcHJp
di0+ZW5hYmxlRmlsZUFjY2Vzc0Zyb21GaWxlVVJJcyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFs
dWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX0RPTV9QQVNURToKLSAg
ICAgICAgcHJpdi0+ZW5hYmxlRE9NUGFzdGUgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1RBQl9LRVlfQ1lDTEVTX1RIUk9VR0hfRUxF
TUVOVFM6Ci0gICAgICAgIHByaXYtPnRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyA9IGdfdmFs
dWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5B
QkxFX0RFRkFVTFRfQ09OVEVYVF9NRU5VOgotICAgICAgICBwcml2LT5lbmFibGVEZWZhdWx0Q29u
dGV4dE1lbnUgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBQUk9QX0VOQUJMRV9TSVRFX1NQRUNJRklDX1FVSVJLUzoKLSAgICAgICAgcHJpdi0+
ZW5hYmxlU2l0ZVNwZWNpZmljUXVpcmtzID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfUEFHRV9DQUNIRToKLSAgICAgICAg
cHJpdi0+ZW5hYmxlUGFnZUNhY2hlID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9BVVRPX1JFU0laRV9XSU5ET1c6Ci0gICAgICAgIHBy
aXYtPmF1dG9SZXNpemVXaW5kb3cgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9KQVZBX0FQUExFVDoKLSAgICAgICAgcHJp
di0+ZW5hYmxlSmF2YUFwcGxldCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX0hZUEVSTElOS19BVURJVElORzoKLSAgICAg
ICAgcHJpdi0+ZW5hYmxlSHlwZXJsaW5rQXVkaXRpbmcgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZh
bHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9GVUxMU0NSRUVOOgot
ICAgICAgICBwcml2LT5lbmFibGVGdWxsc2NyZWVuID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1
ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfRE5TX1BSRUZFVENISU5H
OgotICAgICAgICBwcml2LT5lbmFibGVETlNQcmVmZXRjaGluZyA9IGdfdmFsdWVfZ2V0X2Jvb2xl
YW4odmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX1dFQkdMOgot
ICAgICAgICBwcml2LT5lbmFibGVXZWJnbCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX01FRElBX1NUUkVBTToKLSAgICAg
ICAgcHJpdi0+ZW5hYmxlTWVkaWFTdHJlYW0gPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9XRUJfQVVESU86Ci0gICAgICAg
IHByaXYtPmVuYWJsZVdlYkF1ZGlvID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfQUNDRUxFUkFURURfQ09NUE9TSVRJTkc6
Ci0gICAgICAgIHByaXYtPmVuYWJsZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBnX3ZhbHVlX2dl
dF9ib29sZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9T
TU9PVEhfU0NST0xMSU5HOgotICAgICAgICBwcml2LT5lbmFibGVTbW9vdGhTY3JvbGxpbmcgPSBn
X3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X01FRElBX1BMQVlCQUNLX1JFUVVJUkVTX1VTRVJfR0VTVFVSRToKLSAgICAgICAgcHJpdi0+bWVk
aWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVl
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX01FRElBX1BMQVlCQUNLX0FMTE9XU19J
TkxJTkU6Ci0gICAgICAgIHByaXYtPm1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUgPSBnX3ZhbHVl
X2dldF9ib29sZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJM
RV9ESVNQTEFZX09GX0lOU0VDVVJFX0NPTlRFTlQ6Ci0gICAgICAgIHByaXYtPmVuYWJsZURpc3Bs
YXlPZkluc2VjdXJlQ29udGVudCA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX1JVTk5JTkdfT0ZfSU5TRUNVUkVfQ09OVEVO
VDoKLSAgICAgICAgcHJpdi0+ZW5hYmxlUnVubmluZ09mSW5zZWN1cmVDb250ZW50ID0gZ192YWx1
ZV9nZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFC
TEVfTUVESUFfU09VUkNFOgotICAgICAgICBwcml2LT5lbmFibGVNZWRpYVNvdXJjZSA9IGdfdmFs
dWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBw
c3BlYyk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl9zZXR0aW5nc19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBH
VmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRXZWJTZXR0aW5n
cyogd2ViX3NldHRpbmdzID0gV0VCS0lUX1dFQl9TRVRUSU5HUyhvYmplY3QpOwotICAgIFdlYktp
dFdlYlNldHRpbmdzUHJpdmF0ZSogcHJpdiA9IHdlYl9zZXR0aW5ncy0+cHJpdjsKLQotICAgIHN3
aXRjaCAocHJvcF9pZCkgewotICAgIGNhc2UgUFJPUF9ERUZBVUxUX0VOQ09ESU5HOgotICAgICAg
ICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHByaXYtPmRlZmF1bHRFbmNvZGluZy5kYXRhKCkp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfQ1VSU0lWRV9GT05UX0ZBTUlMWToKLSAg
ICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBwcml2LT5jdXJzaXZlRm9udEZhbWlseS5k
YXRhKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfREVGQVVMVF9GT05UX0ZBTUlM
WToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBwcml2LT5kZWZhdWx0Rm9udEZh
bWlseS5kYXRhKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRkFOVEFTWV9GT05U
X0ZBTUlMWToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBwcml2LT5mYW50YXN5
Rm9udEZhbWlseS5kYXRhKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTU9OT1NQ
QUNFX0ZPTlRfRkFNSUxZOgotICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcodmFsdWUsIHByaXYt
Pm1vbm9zcGFjZUZvbnRGYW1pbHkuZGF0YSgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
Uk9QX1NBTlNfU0VSSUZfRk9OVF9GQU1JTFk6Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyh2
YWx1ZSwgcHJpdi0+c2Fuc1NlcmlmRm9udEZhbWlseS5kYXRhKCkpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFBST1BfU0VSSUZfRk9OVF9GQU1JTFk6Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0
cmluZyh2YWx1ZSwgcHJpdi0+c2VyaWZGb250RmFtaWx5LmRhdGEoKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUFJPUF9ERUZBVUxUX0ZPTlRfU0laRToKLSAgICAgICAgZ192YWx1ZV9zZXRf
aW50KHZhbHVlLCBwcml2LT5kZWZhdWx0Rm9udFNpemUpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFBST1BfREVGQVVMVF9NT05PU1BBQ0VfRk9OVF9TSVpFOgotICAgICAgICBnX3ZhbHVlX3Nl
dF9pbnQodmFsdWUsIHByaXYtPmRlZmF1bHRNb25vc3BhY2VGb250U2l6ZSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgUFJPUF9NSU5JTVVNX0ZPTlRfU0laRToKLSAgICAgICAgZ192YWx1ZV9z
ZXRfaW50KHZhbHVlLCBwcml2LT5taW5pbXVtRm9udFNpemUpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFBST1BfTUlOSU1VTV9MT0dJQ0FMX0ZPTlRfU0laRToKLSAgICAgICAgZ192YWx1ZV9z
ZXRfaW50KHZhbHVlLCBwcml2LT5taW5pbXVtTG9naWNhbEZvbnRTaXplKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBQUk9QX0VORk9SQ0VfOTZfRFBJOgotICAgICAgICBnX3ZhbHVlX3NldF9i
b29sZWFuKHZhbHVlLCBwcml2LT5lbmZvcmNlOTZEUEkpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFBST1BfQVVUT19MT0FEX0lNQUdFUzoKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2
YWx1ZSwgcHJpdi0+YXV0b0xvYWRJbWFnZXMpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBS
T1BfQVVUT19TSFJJTktfSU1BR0VTOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVl
LCBwcml2LT5hdXRvU2hyaW5rSW1hZ2VzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X1JFU1BFQ1RfSU1BR0VfT1JJRU5UQVRJT046Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4o
dmFsdWUsIHByaXYtPnJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBQUk9QX1BSSU5UX0JBQ0tHUk9VTkRTOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29s
ZWFuKHZhbHVlLCBwcml2LT5wcmludEJhY2tncm91bmRzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBQUk9QX0VOQUJMRV9TQ1JJUFRTOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZh
bHVlLCBwcml2LT5lbmFibGVTY3JpcHRzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X0VOQUJMRV9QTFVHSU5TOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2
LT5lbmFibGVQbHVnaW5zKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1JFU0laQUJM
RV9URVhUX0FSRUFTOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5y
ZXNpemFibGVUZXh0QXJlYXMpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfVVNFUl9T
VFlMRVNIRUVUX1VSSToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBwcml2LT51
c2VyU3R5bGVzaGVldFVSSS5kYXRhKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1Bf
Wk9PTV9TVEVQOgotICAgICAgICBnX3ZhbHVlX3NldF9mbG9hdCh2YWx1ZSwgcHJpdi0+em9vbVN0
ZXApOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX0RFVkVMT1BFUl9FWFRS
QVM6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmVuYWJsZURldmVs
b3BlckV4dHJhcyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfUFJJVkFU
RV9CUk9XU0lORzoKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+ZW5h
YmxlUHJpdmF0ZUJyb3dzaW5nKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJM
RV9DQVJFVF9CUk9XU0lORzoKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJp
di0+ZW5hYmxlQ2FyZXRCcm93c2luZyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9F
TkFCTEVfSFRNTDVfREFUQUJBU0U6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUs
IHByaXYtPmVuYWJsZUhUTUw1RGF0YWJhc2UpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBS
T1BfRU5BQkxFX0hUTUw1X0xPQ0FMX1NUT1JBR0U6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xl
YW4odmFsdWUsIHByaXYtPmVuYWJsZUhUTUw1TG9jYWxTdG9yYWdlKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBQUk9QX0hUTUw1X0xPQ0FMX1NUT1JBR0VfREFUQUJBU0VfUEFUSDoKLSAgICAg
ICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBwcml2LT5odG1sNUxvY2FsU3RvcmFnZURhdGFi
YXNlUGF0aC5kYXRhKCkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX1NQ
RUxMX0NIRUNLSU5HOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5l
bmFibGVTcGVsbENoZWNraW5nKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1NQRUxM
X0NIRUNLSU5HX0xBTkdVQUdFUzoKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCBw
cml2LT5zcGVsbENoZWNraW5nTGFuZ3VhZ2VzLmRhdGEoKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUFJPUF9FTkFCTEVfWFNTX0FVRElUT1I6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xl
YW4odmFsdWUsIHByaXYtPmVuYWJsZVhTU0F1ZGl0b3IpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFBST1BfRU5BQkxFX1NQQVRJQUxfTkFWSUdBVElPTjoKLSAgICAgICAgZ192YWx1ZV9zZXRf
Ym9vbGVhbih2YWx1ZSwgcHJpdi0+ZW5hYmxlU3BhdGlhbE5hdmlnYXRpb24pOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX0ZSQU1FX0ZMQVRURU5JTkc6Ci0gICAgICAgIGdf
dmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmVuYWJsZUZyYW1lRmxhdHRlbmluZyk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9VU0VSX0FHRU5UOgotICAgICAgICBnX3ZhbHVl
X3NldF9zdHJpbmcodmFsdWUsIHByaXYtPnVzZXJBZ2VudC5kYXRhKCkpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIFBST1BfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FM
TFk6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmphdmFzY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBS
T1BfSkFWQVNDUklQVF9DQU5fQUNDRVNTX0NMSVBCT0FSRDoKLSAgICAgICAgZ192YWx1ZV9zZXRf
Ym9vbGVhbih2YWx1ZSwgcHJpdi0+amF2YXNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05f
Q0FDSEU6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmVuYWJsZU9m
ZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9Q
X0VESVRJTkdfQkVIQVZJT1I6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2VudW0odmFsdWUsIHByaXYt
PmVkaXRpbmdCZWhhdmlvcik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVf
VU5JVkVSU0FMX0FDQ0VTU19GUk9NX0ZJTEVfVVJJUzoKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9v
bGVhbih2YWx1ZSwgcHJpdi0+ZW5hYmxlVW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUklzKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9GSUxFX0FDQ0VTU19GUk9NX0ZJTEVf
VVJJUzoKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+ZW5hYmxlRmls
ZUFjY2Vzc0Zyb21GaWxlVVJJcyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFC
TEVfRE9NX1BBU1RFOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5l
bmFibGVET01QYXN0ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9UQUJfS0VZX0NZ
Q0xFU19USFJPVUdIX0VMRU1FTlRTOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVl
LCBwcml2LT50YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFBST1BfRU5BQkxFX0RFRkFVTFRfQ09OVEVYVF9NRU5VOgotICAgICAgICBnX3ZhbHVl
X3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5lbmFibGVEZWZhdWx0Q29udGV4dE1lbnUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX1NJVEVfU1BFQ0lGSUNfUVVJUktTOgot
ICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5lbmFibGVTaXRlU3BlY2lm
aWNRdWlya3MpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX1BBR0VfQ0FD
SEU6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmVuYWJsZVBhZ2VD
YWNoZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9BVVRPX1JFU0laRV9XSU5ET1c6
Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmF1dG9SZXNpemVXaW5k
b3cpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX0pBVkFfQVBQTEVUOgot
ICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5lbmFibGVKYXZhQXBwbGV0
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9IWVBFUkxJTktfQVVESVRJ
Tkc6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmVuYWJsZUh5cGVy
bGlua0F1ZGl0aW5nKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9GVUxM
U0NSRUVOOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5lbmFibGVG
dWxsc2NyZWVuKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9ETlNfUFJF
RkVUQ0hJTkc6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmVuYWJs
ZUROU1ByZWZldGNoaW5nKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJMRV9X
RUJHTDoKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+ZW5hYmxlV2Vi
Z2wpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX01FRElBX1NUUkVBTToK
LSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+ZW5hYmxlTWVkaWFTdHJl
YW0pOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX1dFQl9BVURJTzoKLSAg
ICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+ZW5hYmxlV2ViQXVkaW8pOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxFX0FDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5lbmFibGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJM
RV9TTU9PVEhfU0NST0xMSU5HOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBw
cml2LT5lbmFibGVTbW9vdGhTY3JvbGxpbmcpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBS
T1BfTUVESUFfUExBWUJBQ0tfUkVRVUlSRVNfVVNFUl9HRVNUVVJFOgotICAgICAgICBnX3ZhbHVl
X3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVy
ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9NRURJQV9QTEFZQkFDS19BTExPV1Nf
SU5MSU5FOgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5tZWRpYVBs
YXliYWNrQWxsb3dzSW5saW5lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0VOQUJM
RV9ESVNQTEFZX09GX0lOU0VDVVJFX0NPTlRFTlQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xl
YW4odmFsdWUsIHByaXYtPmVuYWJsZURpc3BsYXlPZkluc2VjdXJlQ29udGVudCk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgUFJPUF9FTkFCTEVfUlVOTklOR19PRl9JTlNFQ1VSRV9DT05URU5U
OgotICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5lbmFibGVSdW5uaW5n
T2ZJbnNlY3VyZUNvbnRlbnQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfRU5BQkxF
X01FRElBX1NPVVJDRToKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+
ZW5hYmxlTWVkaWFTb3VyY2UpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3Bl
Yyk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3NldHRp
bmdzX25ldzoKLSAqCi0gKiBDcmVhdGVzIGEgbmV3ICNXZWJLaXRXZWJTZXR0aW5ncyBpbnN0YW5j
ZSB3aXRoIGRlZmF1bHQgdmFsdWVzLiBJdCBtdXN0Ci0gKiBiZSBtYW51YWxseSBhdHRhY2hlZCB0
byBhIFdlYlZpZXcuCi0gKgotICogUmV0dXJuczogYSBuZXcgI1dlYktpdFdlYlNldHRpbmdzIGlu
c3RhbmNlCi0gKiovCi1XZWJLaXRXZWJTZXR0aW5ncyogd2Via2l0X3dlYl9zZXR0aW5nc19uZXco
KQotewotICAgIHJldHVybiBXRUJLSVRfV0VCX1NFVFRJTkdTKGdfb2JqZWN0X25ldyhXRUJLSVRf
VFlQRV9XRUJfU0VUVElOR1MsIE5VTEwpKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3NldHRp
bmdzX2NvcHk6Ci0gKiBAd2ViX3NldHRpbmdzOiBhICNXZWJLaXRXZWJTZXR0aW5ncyB0byBjb3B5
LgotICoKLSAqIENvcGllcyBhbiBleGlzdGluZyAjV2ViS2l0V2ViU2V0dGluZ3MgaW5zdGFuY2Uu
Ci0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBhIG5ldyAjV2ViS2l0V2ViU2V0dGlu
Z3MgaW5zdGFuY2UKLSAqKi8KLVdlYktpdFdlYlNldHRpbmdzKiB3ZWJraXRfd2ViX3NldHRpbmdz
X2NvcHkoV2ViS2l0V2ViU2V0dGluZ3MqIG9yaWdpbmFsKQotewotICAgIHVuc2lnbmVkIG51bWJl
ck9mUHJvcGVydGllcyA9IDA7Ci0gICAgR1VuaXF1ZVB0cjxHUGFyYW1TcGVjKj4gcHJvcGVydGll
cyhnX29iamVjdF9jbGFzc19saXN0X3Byb3BlcnRpZXMoCi0gICAgICAgIEdfT0JKRUNUX0NMQVNT
KFdFQktJVF9XRUJfU0VUVElOR1NfR0VUX0NMQVNTKG9yaWdpbmFsKSksICZudW1iZXJPZlByb3Bl
cnRpZXMpKTsKLSAgICBHVW5pcXVlUHRyPEdQYXJhbWV0ZXI+IHBhcmFtZXRlcnMoZ19uZXcwKEdQ
YXJhbWV0ZXIsIG51bWJlck9mUHJvcGVydGllcykpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBudW1iZXJPZlByb3BlcnRpZXM7IGkrKykgewotICAgICAgICBHUGFyYW1TcGVjKiBwcm9w
ZXJ0eSA9IHByb3BlcnRpZXMuZ2V0KClbaV07Ci0gICAgICAgIEdQYXJhbWV0ZXIqIHBhcmFtZXRl
ciA9IHBhcmFtZXRlcnMuZ2V0KCkgKyBpOwotCi0gICAgICAgIGlmICghKHByb3BlcnR5LT5mbGFn
cyAmIChHX1BBUkFNX0NPTlNUUlVDVCB8IEdfUEFSQU1fUkVBRFdSSVRFKSkpCi0gICAgICAgICAg
ICBjb250aW51ZTsKLQotICAgICAgICBwYXJhbWV0ZXItPm5hbWUgPSBwcm9wZXJ0eS0+bmFtZTsK
LSAgICAgICAgZ192YWx1ZV9pbml0KCZwYXJhbWV0ZXItPnZhbHVlLCBwcm9wZXJ0eS0+dmFsdWVf
dHlwZSk7Ci0gICAgICAgIGdfb2JqZWN0X2dldF9wcm9wZXJ0eShHX09CSkVDVChvcmlnaW5hbCks
IHByb3BlcnR5LT5uYW1lLCAmcGFyYW1ldGVyLT52YWx1ZSk7Ci0gICAgfQotCi0gICAgcmV0dXJu
IFdFQktJVF9XRUJfU0VUVElOR1MoZ19vYmplY3RfbmV3dihXRUJLSVRfVFlQRV9XRUJfU0VUVElO
R1MsIG51bWJlck9mUHJvcGVydGllcywgcGFyYW1ldGVycy5nZXQoKSkpOwotCi19Ci0KLS8qKgot
ICogd2Via2l0X3dlYl9zZXR0aW5nc19hZGRfZXh0cmFfcGx1Z2luX2RpcmVjdG9yeToKLSAqIEB3
ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICogQGRpcmVjdG9yeTogdGhlIGRpcmVjdG9yeSB0
byBhZGQKLSAqCi0gKiBBZGRzIHRoZSBAZGlyZWN0b3J5IHRvIHBhdGhzIHdoZXJlIEB3ZWJfdmll
dyB3aWxsIHNlYXJjaCBmb3IgcGx1Z2lucy4KLSAqCi0gKiBTaW5jZTogMS4wLjMKLSAqLwotdm9p
ZCB3ZWJraXRfd2ViX3NldHRpbmdzX2FkZF9leHRyYV9wbHVnaW5fZGlyZWN0b3J5KFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBkaXJlY3RvcnkpCi17Ci0gICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIFBsdWdpbkRhdGFiYXNl
OjppbnN0YWxsZWRQbHVnaW5zKCktPmFkZEV4dHJhUGx1Z2luRGlyZWN0b3J5KGZpbGVuYW1lVG9T
dHJpbmcoZGlyZWN0b3J5KSk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl9zZXR0aW5nc19nZXRf
dXNlcl9hZ2VudDoKLSAqIEB3ZWJfc2V0dGluZ3M6IGEgI1dlYktpdFdlYlNldHRpbmdzCi0gKgot
ICogUmV0dXJuczogdGhlIFVzZXItQWdlbnQgc3RyaW5nIGN1cnJlbnRseSB1c2VkIGJ5IHRoZSB3
ZWIgdmlldyhzKSBhc3NvY2lhdGVkCi0gKiB3aXRoIHRoZSBAd2ViX3NldHRpbmdzLgotICoKLSAq
IFNpbmNlOiAxLjEuMTEKLSAqLwotY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0
X3VzZXJfYWdlbnQoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRpbmdzKQotewotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfU0VUVElOR1Mod2ViU2V0dGluZ3MpLCAwKTsK
LSAgICByZXR1cm4gd2ViU2V0dGluZ3MtPnByaXYtPnVzZXJBZ2VudC5kYXRhKCk7Ci19Ci0KLXN0
YXRpYyB2b2lkIGluaXRpYWxpemVEb21haW5zTGlzdChIYXNoU2V0PFN0cmluZz4mIGdvb2dsZURv
bWFpbnMpCi17Ci0gICAgLy8gR29vZ2xlIHNlYXJjaCBkb21haW5zLgotICAgIGdvb2dsZURvbWFp
bnMuYWRkKCJiaXoiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY29tIik7Ci0gICAgZ29vZ2xl
RG9tYWlucy5hZGQoIm5ldCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJvcmciKTsKLSAgICBn
b29nbGVEb21haW5zLmFkZCgiYWUiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiYWciKTsKLSAg
ICBnb29nbGVEb21haW5zLmFkZCgiYW0iKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiYXQiKTsK
LSAgICBnb29nbGVEb21haW5zLmFkZCgiYXoiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiYmUi
KTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiYmkiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgi
Y2EiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY2MiKTsKLSAgICBnb29nbGVEb21haW5zLmFk
ZCgiY2QiKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY2ciKTsKLSAgICBnb29nbGVEb21haW5z
LmFkZCgiY2giKTsKLSAgICBnb29nbGVEb21haW5zLmFkZCgiY2wiKTsKLSAgICBnb29nbGVEb21h
aW5zLmFkZCgiY29tLmJyIik7Ci0gICAgZ29vZ2xlRG9tYWlucy5hZGQoImNvbS5kbyIpOwotICAg
IGdvb2dsZURvbWFpbnMuYWRkKCJjby51ayIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJjby5r
ciIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJjby5qcCIpOwotICAgIGdvb2dsZURvbWFpbnMu
YWRkKCJkZSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJkaiIpOwotICAgIGdvb2dsZURvbWFp
bnMuYWRkKCJkayIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJlZSIpOwotICAgIGdvb2dsZURv
bWFpbnMuYWRkKCJlcyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJmaSIpOwotICAgIGdvb2ds
ZURvbWFpbnMuYWRkKCJmbSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJmciIpOwotICAgIGdv
b2dsZURvbWFpbnMuYWRkKCJnZyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJnbCIpOwotICAg
IGdvb2dsZURvbWFpbnMuYWRkKCJnbSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJncyIpOwot
ICAgIGdvb2dsZURvbWFpbnMuYWRkKCJobiIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJodSIp
OwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJpZSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJp
dCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJqZSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRk
KCJreiIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJsaSIpOwotICAgIGdvb2dsZURvbWFpbnMu
YWRkKCJsdCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJsdSIpOwotICAgIGdvb2dsZURvbWFp
bnMuYWRkKCJsdiIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJtYSIpOwotICAgIGdvb2dsZURv
bWFpbnMuYWRkKCJtcyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJtdSIpOwotICAgIGdvb2ds
ZURvbWFpbnMuYWRkKCJtdyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJubCIpOwotICAgIGdv
b2dsZURvbWFpbnMuYWRkKCJubyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJudSIpOwotICAg
IGdvb2dsZURvbWFpbnMuYWRkKCJwbCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJwbiIpOwot
ICAgIGdvb2dsZURvbWFpbnMuYWRkKCJwdCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJydSIp
OwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJydyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJz
aCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJzayIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRk
KCJzbSIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJzdCIpOwotICAgIGdvb2dsZURvbWFpbnMu
YWRkKCJ0ZCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJ0ayIpOwotICAgIGdvb2dsZURvbWFp
bnMuYWRkKCJ0cCIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJ0diIpOwotICAgIGdvb2dsZURv
bWFpbnMuYWRkKCJ1cyIpOwotICAgIGdvb2dsZURvbWFpbnMuYWRkKCJ1eiIpOwotICAgIGdvb2ds
ZURvbWFpbnMuYWRkKCJ3cyIpOwotfQotCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplT3RoZXJHb29n
bGVEb21haW5zKFZlY3RvcjxTdHJpbmc+JiBvdGhlckdvb2dsZURvbWFpbnMpCi17Ci0gICAgb3Ro
ZXJHb29nbGVEb21haW5zLmFwcGVuZCgiZ21haWwuY29tIik7Ci0gICAgb3RoZXJHb29nbGVEb21h
aW5zLmFwcGVuZCgieW91dHViZS5jb20iKTsKLSAgICBvdGhlckdvb2dsZURvbWFpbnMuYXBwZW5k
KCJnc3RhdGljLmNvbSIpOwotICAgIG90aGVyR29vZ2xlRG9tYWlucy5hcHBlbmQoInl0aW1nLmNv
bSIpOwotfQotCi1zdGF0aWMgYm9vbCBpc0dvb2dsZURvbWFpbihTdHJpbmcgaG9zdCkKLXsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBnb29nbGVEb21haW5zOwot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8U3RyaW5nPj4gb3RoZXJHb29nbGVEb21h
aW5zOwotCi0gICAgaWYgKGdvb2dsZURvbWFpbnMuZ2V0KCkuaXNFbXB0eSgpKQotICAgICAgICBp
bml0aWFsaXplRG9tYWluc0xpc3QoZ29vZ2xlRG9tYWlucy5nZXQoKSk7Ci0KLSAgICBpZiAob3Ro
ZXJHb29nbGVEb21haW5zLmdldCgpLmlzRW1wdHkoKSkKLSAgICAgICAgaW5pdGlhbGl6ZU90aGVy
R29vZ2xlRG9tYWlucyhvdGhlckdvb2dsZURvbWFpbnMuZ2V0KCkpOwotCi0gICAgLy8gRmlyc3Qg
Y2hlY2sgaWYgdGhpcyBpcyBvbmUgb2YgdGhlIHZhcmlvdXMgZ29vZ2xlLmNvbSBpbnRlcm5hdGlv
bmFsIGRvbWFpbnMuCi0gICAgaW50IHBvc2l0aW9uID0gaG9zdC5maW5kKCIuZ29vZ2xlLiIpOwot
ICAgIGlmIChwb3NpdGlvbiA+IDAgJiYgZ29vZ2xlRG9tYWlucy5nZXQoKS5jb250YWlucyhob3N0
LnN1YnN0cmluZyhwb3NpdGlvbiArIHNpemVvZigiLmdvb2dsZS4iKSAtIDEpKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICAvLyBUaGVuIHdlIGNoZWNrIHRoZSBwb3NzaWJpbGl0eSBvZiBp
dCBiZWluZyBvbmUgb2YgdGhlIG90aGVyLCAuY29tLW9ubHkgZ29vZ2xlIGRvbWFpbnMuCi0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG90aGVyR29vZ2xlRG9tYWlucy5nZXQoKS5zaXplKCk7
IGkrKykgewotICAgICAgICBpZiAoaG9zdC5lbmRzV2l0aChvdGhlckdvb2dsZURvbWFpbnMuZ2V0
KCkuYXQoaSkpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi1zdGF0aWMgU3RyaW5nIHVzZXJBZ2VudEZvclVSTChjb25zdCBVUkwmIHVy
bCkKLXsKLSAgICAvLyBGb3IgR29vZ2xlIGRvbWFpbnMsIGRyb3AgdGhlIGJyb3dzZXIncyBjdXN0
b20gVXNlciBBZ2VudCBzdHJpbmcsIGFuZCB1c2UgdGhlCi0gICAgLy8gc3RhbmRhcmQgb25lLCBz
byB0aGV5IGRvbid0IGdpdmUgdXMgYSBicm9rZW4gZXhwZXJpZW5jZS4KLSAgICBpZiAoaXNHb29n
bGVEb21haW4odXJsLmhvc3QoKSkpCi0gICAgICAgIHJldHVybiBzdGFuZGFyZFVzZXJBZ2VudCgp
OwotCi0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi0vKgotICogUHJpdmF0ZSB1c2FnZSBvbmx5
LgotICogd2Via2l0V2ViU2V0dGluZ3NVc2VyQWdlbnRGb3JVUkk6Ci0gKiBAd2ViX3NldHRpbmdz
OiB0aGUgI1dlYktpdFdlYlNldHRpbmdzIG9iamVjdCB0byBxdWVyeQotICogQHVyaTogdGhlIFVS
SSB3ZSB3YW50IHRvIGtub3cgdGhlIFVzZXItQWdlbnQgZm9yCi0gKgotICogU29tZSB3ZWIgc2l0
ZXMgaGF2ZSBiZWVuIHVzaW5nIFVzZXItQWdlbnQgcGFyc2luZyBoZWF2aWx5IHRvIGRlY2lkZQot
ICogdGhlIGtpbmQgb2YgY29udGVudCB0aGF0IGlzIHNlbnQgdG8gdGhlIGJyb3dzZXIuIFdoZW4K
LSAqIFdlYktpdFdlYlNldHRpbmdzOmVuYWJsZS1zaXRlLXNwZWNpZmljLXF1aXJrcyBpcyBlbmFi
bGVkIFdlYktpdEdUSysKLSAqIHdpbGwgdXNlIGl0cyBrbm93bGVkZ2Ugb2Ygc2l0ZXMgZG9pbmcg
YmFkIHRoaW5ncyBhbmQgbGllIHRvIHRoZW0gYnkKLSAqIHNlbmRpbmcgZWl0aGVyIHRoZSBkZWZh
dWx0IFVzZXItQWdlbnQsIGkuZS4gbm90IHVzaW5nIHRoZSBvbmUKLSAqIHNwZWNpZmllZCBieSB0
aGUgYnJvd3NlciBpbiBXZWJLaXRXZWJTZXR0aW5nczp1c2VyLWFnZW50LCBvciB0aGUKLSAqIFNh
ZmFyaSBvbmUgKGluY2x1ZGluZyBseWluZyBhYm91dCB0aGUgdW5kZXJseWluZyBvcGVyYXRpbmcg
c3lzdGVtKS4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGFsbG93cyB0aGUgYnJvd3NlciB0byBmaWd1
cmUgb3V0IHdoYXQgVXNlci1BZ2VudCBpcwotICogZ29pbmcgdG8gYmUgc2VudCB0byBhIHBhcnRp
Y3VsYXIgVVJJLgotICoKLSAqIFBsZWFzZSBub3RlIHRoYXQgaWYgV2ViS2l0V2ViU2V0dGluZ3M6
dXNlLXNpdGUtc3BlY2lmaWMtcXVpcmtzIGlzCi0gKiB0dXJuZWQgb2ZmIGNhbGxpbmcgdGhpcyBm
dW5jdGlvbiBpcyB0aGUgc2FtZSBhcyBjYWxsaW5nCi0gKiB3ZWJraXRfd2ViX3NldHRpbmdzX2dl
dF91c2VyX2FnZW50KCksIGV4Y2VwdCB5b3UgaGF2ZSB0byBmcmVlIHRoZQotICogcmVzdWx0Lgot
ICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogYSBuZXdseSBhbGxvY2F0ZWQgc3RyaW5n
IGNvbnRhaW5pbmcgdGhlCi0gKiBVc2VyLUFnZW50IHRoYXQgd2lsbCBiZSBzZW50IGZvciB0aGUg
Z2l2ZW4gVVJJLgotICovCi1jaGFyKiB3ZWJraXRXZWJTZXR0aW5nc1VzZXJBZ2VudEZvclVSSShX
ZWJLaXRXZWJTZXR0aW5ncyogd2ViU2V0dGluZ3MsIGNvbnN0IGNoYXIqIHVyaSkKLXsKLSAgICBp
ZiAod2ViU2V0dGluZ3MtPnByaXYtPmVuYWJsZVNpdGVTcGVjaWZpY1F1aXJrcykgewotICAgICAg
ICBTdHJpbmcgdXNlckFnZW50U3RyaW5nID0gdXNlckFnZW50Rm9yVVJMKFdlYkNvcmU6OlVSTChX
ZWJDb3JlOjpVUkwoKSwgU3RyaW5nOjpmcm9tVVRGOCh1cmkpKSk7Ci0gICAgICAgIGlmICghdXNl
ckFnZW50U3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBnX3N0cmR1cCh1c2Vy
QWdlbnRTdHJpbmcudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGdfc3RyZHVw
KHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3VzZXJfYWdlbnQod2ViU2V0dGluZ3MpKTsKLX0KLQot
bmFtZXNwYWNlIFdlYktpdCB7Ci0KLWlubGluZSBXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBl
IGNvcmUoV2ViS2l0RWRpdGluZ0JlaGF2aW9yIHR5cGUpCi17Ci0gICAgc3dpdGNoICh0eXBlKSB7
Ci0gICAgY2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9NQUM6Ci0gICAgICAgIHJldHVybiBF
ZGl0aW5nTWFjQmVoYXZpb3I7Ci0gICAgY2FzZSBXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5E
T1dTOgotICAgICAgICByZXR1cm4gRWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKLSAgICBjYXNlIFdF
QktJVF9FRElUSU5HX0JFSEFWSU9SX1VOSVg6Ci0gICAgICAgIHJldHVybiBFZGl0aW5nVW5peEJl
aGF2aW9yOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICByZXR1cm4gRWRpdGluZ01hY0JlaGF2aW9yOwotICAgIH0KLX0KLQotfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTQ2MjEyYi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vic2V0dGluZ3MuaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIER5d2FuIDxjaHJpc3RpYW5AaW1lbmRp
by5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgSmFuIE1pY2hhZWwgQWxvbnpvIDxqbWFsb256
b0BnbWFpbC5jb20KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJraXR3ZWJzZXR0aW5nc19oCi0jZGVmaW5lIHdlYmtpdHdl
YnNldHRpbmdzX2gKLQotI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Ci0KLSNpbmNsdWRlIDx3ZWJr
aXQvd2Via2l0ZGVmaW5lcy5oPgotCi1HX0JFR0lOX0RFQ0xTCi0KLSNkZWZpbmUgV0VCS0lUX1RZ
UEVfV0VCX1NFVFRJTkdTICAgICAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3NfZ2V0X3R5cGUo
KSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9TRVRUSU5HUyhvYmopICAgICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfU0VUVElOR1MsIFdlYktp
dFdlYlNldHRpbmdzKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9TRVRUSU5HU19DTEFTUyhrbGFzcykg
ICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfU0VU
VElOR1MsIFdlYktpdFdlYlNldHRpbmdzQ2xhc3MpKQotI2RlZmluZSBXRUJLSVRfSVNfV0VCX1NF
VFRJTkdTKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdF
QktJVF9UWVBFX1dFQl9TRVRUSU5HUykpCi0jZGVmaW5lIFdFQktJVF9JU19XRUJfU0VUVElOR1Nf
Q0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZ
UEVfV0VCX1NFVFRJTkdTKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9TRVRUSU5HU19HRVRfQ0xBU1Mo
b2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9XRUJf
U0VUVElOR1MsIFdlYktpdFdlYlNldHRpbmdzQ2xhc3MpKQotCi0vKioKLSAqIFdlYktpdEVkaXRp
bmdCZWhhdmlvcjoKLSAqIEBXRUJLSVRfRURJVElOR19CRUhBVklPUl9NQUM6IEVkaXRpbmcgYmVo
YXZpb3IgbWltaWNraW5nIE9TIFggdXNlciBpbnRlcmZhY2VzLgotICogQFdFQktJVF9FRElUSU5H
X0JFSEFWSU9SX1dJTkRPV1M6IEVkaXRpbmcgYmVoYXZpb3IgbWltaWNraW5nIFdpbmRvd3MgdXNl
ciBpbnRlcmZhY2VzLgotICogQFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX1VOSVg6IEVkaXRpbmcg
YmVoYXZpb3IgbWltaWNraW5nIGZyZWUgZGVza3RvcCB1c2VyIGludGVyZmFjZXMuCi0gKgotICog
RW51bSB2YWx1ZXMgdXNlZCBmb3IgZGV0ZXJtaW5pbmcgdGhlIGVkaXRpbmcgYmVoYXZpb3Igb2Yg
ZWRpdGFibGUgZWxlbWVudHMuCi0gKgotICoqLwotdHlwZWRlZiBlbnVtIHsKLSAgICBXRUJLSVRf
RURJVElOR19CRUhBVklPUl9NQUMsCi0gICAgV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfV0lORE9X
UywKLSAgICBXRUJLSVRfRURJVElOR19CRUhBVklPUl9VTklYCi19IFdlYktpdEVkaXRpbmdCZWhh
dmlvcjsKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlNldHRpbmdzUHJpdmF0ZSBXZWJLaXRX
ZWJTZXR0aW5nc1ByaXZhdGU7Ci0KLXN0cnVjdCBfV2ViS2l0V2ViU2V0dGluZ3MgewotICAgIEdP
YmplY3QgcGFyZW50X2luc3RhbmNlOwotCi0gICAgLyo8IHByaXZhdGUgPiovCi0gICAgV2ViS2l0
V2ViU2V0dGluZ3NQcml2YXRlICpwcml2OwotfTsKLQotc3RydWN0IF9XZWJLaXRXZWJTZXR0aW5n
c0NsYXNzIHsKLSAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwotCi0gICAgLyogUGFkZGlu
ZyBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkg
KHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwotICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVk
NCkgKHZvaWQpOwotfTsKLQotV0VCS0lUX0FQSSBHVHlwZQotd2Via2l0X3dlYl9zZXR0aW5nc19n
ZXRfdHlwZSAgICAgICAgICAodm9pZCk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0V2ViU2V0dGluZ3Mg
Kgotd2Via2l0X3dlYl9zZXR0aW5nc19uZXcgICAgICAgICAgICAgICAodm9pZCk7Ci0KLVdFQktJ
VF9BUEkgV2ViS2l0V2ViU2V0dGluZ3MgKgotd2Via2l0X3dlYl9zZXR0aW5nc19jb3B5ICAgICAg
ICAgICAgICAoV2ViS2l0V2ViU2V0dGluZ3MgKndlYl9zZXR0aW5ncyk7Ci0KLVdFQktJVF9BUEkg
Y29uc3QgZ2NoYXIgKgotd2Via2l0X3dlYl9zZXR0aW5nc19nZXRfdXNlcl9hZ2VudCAgICAoV2Vi
S2l0V2ViU2V0dGluZ3MgKndlYl9zZXR0aW5ncyk7Ci0KLUdfRU5EX0RFQ0xTCi0KLSNlbmRpZiAv
KiB3ZWJraXR3ZWJzZXR0aW5nc19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGI1ZTQ2ZjguLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnNldHRpbmdzcHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJl
eXRoZXIKLSAqIENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KLSAqIENv
cHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIEln
YWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgotICovCi0KLSNpZm5kZWYgd2Via2l0d2Vic2V0dGluZ3Nwcml2YXRlX2gKLSNkZWZpbmUgd2Vi
a2l0d2Vic2V0dGluZ3Nwcml2YXRlX2gKLQotI2luY2x1ZGUgIndlYmtpdHdlYnNldHRpbmdzLmgi
Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi1leHRlcm4gIkMiIHsKLQotc3RydWN0
IF9XZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUgewotICAgIENTdHJpbmcgZGVmYXVsdEVuY29kaW5n
OwotICAgIENTdHJpbmcgY3Vyc2l2ZUZvbnRGYW1pbHk7Ci0gICAgQ1N0cmluZyBkZWZhdWx0Rm9u
dEZhbWlseTsKLSAgICBDU3RyaW5nIGZhbnRhc3lGb250RmFtaWx5OwotICAgIENTdHJpbmcgbW9u
b3NwYWNlRm9udEZhbWlseTsKLSAgICBDU3RyaW5nIHNhbnNTZXJpZkZvbnRGYW1pbHk7Ci0gICAg
Q1N0cmluZyBzZXJpZkZvbnRGYW1pbHk7Ci0gICAgZ3VpbnQgZGVmYXVsdEZvbnRTaXplOwotICAg
IGd1aW50IGRlZmF1bHRNb25vc3BhY2VGb250U2l6ZTsKLSAgICBndWludCBtaW5pbXVtRm9udFNp
emU7Ci0gICAgZ3VpbnQgbWluaW11bUxvZ2ljYWxGb250U2l6ZTsKLSAgICBnYm9vbGVhbiBlbmZv
cmNlOTZEUEk7Ci0gICAgZ2Jvb2xlYW4gYXV0b0xvYWRJbWFnZXM7Ci0gICAgZ2Jvb2xlYW4gYXV0
b1Nocmlua0ltYWdlczsKLSAgICBnYm9vbGVhbiByZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsKLSAg
ICBnYm9vbGVhbiBwcmludEJhY2tncm91bmRzOwotICAgIGdib29sZWFuIGVuYWJsZVNjcmlwdHM7
Ci0gICAgZ2Jvb2xlYW4gZW5hYmxlUGx1Z2luczsKLSAgICBnYm9vbGVhbiByZXNpemFibGVUZXh0
QXJlYXM7Ci0gICAgQ1N0cmluZyB1c2VyU3R5bGVzaGVldFVSSTsKLSAgICBnZmxvYXQgem9vbVN0
ZXA7Ci0gICAgZ2Jvb2xlYW4gZW5hYmxlRGV2ZWxvcGVyRXh0cmFzOwotICAgIGdib29sZWFuIGVu
YWJsZVByaXZhdGVCcm93c2luZzsKLSAgICBnYm9vbGVhbiBlbmFibGVTcGVsbENoZWNraW5nOwot
ICAgIENTdHJpbmcgc3BlbGxDaGVja2luZ0xhbmd1YWdlczsKLSAgICBnYm9vbGVhbiBlbmFibGVD
YXJldEJyb3dzaW5nOwotICAgIGdib29sZWFuIGVuYWJsZUhUTUw1RGF0YWJhc2U7Ci0gICAgZ2Jv
b2xlYW4gZW5hYmxlSFRNTDVMb2NhbFN0b3JhZ2U7Ci0gICAgQ1N0cmluZyBodG1sNUxvY2FsU3Rv
cmFnZURhdGFiYXNlUGF0aDsKLSAgICBnYm9vbGVhbiBlbmFibGVYU1NBdWRpdG9yOwotICAgIGdi
b29sZWFuIGVuYWJsZVNwYXRpYWxOYXZpZ2F0aW9uOwotICAgIGdib29sZWFuIGVuYWJsZUZyYW1l
RmxhdHRlbmluZzsKLSAgICBDU3RyaW5nIHVzZXJBZ2VudDsKLSAgICBnYm9vbGVhbiBqYXZhc2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OwotICAgIGdib29sZWFuIGphdmFzY3JpcHRD
YW5BY2Nlc3NDbGlwYm9hcmQ7Ci0gICAgZ2Jvb2xlYW4gZW5hYmxlT2ZmbGluZVdlYkFwcGxpY2F0
aW9uQ2FjaGU7Ci0gICAgV2ViS2l0RWRpdGluZ0JlaGF2aW9yIGVkaXRpbmdCZWhhdmlvcjsKLSAg
ICBnYm9vbGVhbiBlbmFibGVVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSSXM7Ci0gICAgZ2Jvb2xl
YW4gZW5hYmxlRmlsZUFjY2Vzc0Zyb21GaWxlVVJJczsKLSAgICBnYm9vbGVhbiBlbmFibGVET01Q
YXN0ZTsKLSAgICBnYm9vbGVhbiB0YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHM7Ci0gICAgZ2Jv
b2xlYW4gZW5hYmxlRGVmYXVsdENvbnRleHRNZW51OwotICAgIGdib29sZWFuIGVuYWJsZVNpdGVT
cGVjaWZpY1F1aXJrczsKLSAgICBnYm9vbGVhbiBlbmFibGVQYWdlQ2FjaGU7Ci0gICAgZ2Jvb2xl
YW4gYXV0b1Jlc2l6ZVdpbmRvdzsKLSAgICBnYm9vbGVhbiBlbmFibGVKYXZhQXBwbGV0OwotICAg
IGdib29sZWFuIGVuYWJsZUh5cGVybGlua0F1ZGl0aW5nOwotICAgIGdib29sZWFuIGVuYWJsZUZ1
bGxzY3JlZW47Ci0gICAgZ2Jvb2xlYW4gZW5hYmxlRE5TUHJlZmV0Y2hpbmc7Ci0gICAgZ2Jvb2xl
YW4gZW5hYmxlV2ViZ2w7Ci0gICAgZ2Jvb2xlYW4gZW5hYmxlTWVkaWFTdHJlYW07Ci0gICAgZ2Jv
b2xlYW4gZW5hYmxlV2ViQXVkaW87Ci0gICAgZ2Jvb2xlYW4gZW5hYmxlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZzsKLSAgICBnYm9vbGVhbiBlbmFibGVTbW9vdGhTY3JvbGxpbmc7Ci0gICAgZ2Jvb2xl
YW4gbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmU7Ci0gICAgZ2Jvb2xlYW4gbWVkaWFQ
bGF5YmFja0FsbG93c0lubGluZTsKLSAgICBnYm9vbGVhbiBlbmFibGVEaXNwbGF5T2ZJbnNlY3Vy
ZUNvbnRlbnQ7Ci0gICAgZ2Jvb2xlYW4gZW5hYmxlUnVubmluZ09mSW5zZWN1cmVDb250ZW50Owot
ICAgIGdib29sZWFuIGVuYWJsZU1lZGlhU291cmNlOwotfTsKLQotV0VCS0lUX0FQSSB2b2lkIHdl
YmtpdF93ZWJfc2V0dGluZ3NfYWRkX2V4dHJhX3BsdWdpbl9kaXJlY3RvcnkoV2ViS2l0V2ViVmll
dyosIGNvbnN0IGdjaGFyKiBkaXJlY3RvcnkpOwotCi1XRUJLSVRfQVBJIGNoYXIqIHdlYmtpdFdl
YlNldHRpbmdzVXNlckFnZW50Rm9yVVJJKFdlYktpdFdlYlNldHRpbmdzKiwgY29uc3QgZ2NoYXIq
IHVyaSk7Ci0KLUdTTGlzdCogd2Via2l0V2ViVmlld0dldEVuY2hhbnREaWN0cyhXZWJLaXRXZWJW
aWV3Kik7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyNDA1NTAuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsNTYyMyArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAwNywgMjAw
OCBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgotICogIENvcHlyaWdodCAoQykgMjAwNywgMjAw
OCwgMjAwOSBDaHJpc3RpYW4gRHl3YW4gPGNocmlzdGlhbkBpbWVuZGlvLmNvbT4KLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDcgWGFuIExvcGV6IDx4YW5AZ25vbWUub3JnPgotICogIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOCBBbHAgVG9rZXIgPGFscEBhdG9rZXIuY29tPgotICogIENvcHlyaWdodCAo
QykgMjAwOCBKYW4gQWxvbnpvIDxqbWFsb256b0B1bnBsdWdnYWJsZS5jb20+Ci0gKiAgQ29weXJp
Z2h0IChDKSAyMDA4IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSA8Z25zQGdub21lLm9yZz4KLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDggTnVhbnRpIEx0ZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MDksIDIwMTAgQ29sbGFib3JhIEx0ZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIw
MTIgSWdhbGlhIFMuTC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDkgTW92aWFsIENyZWF0aXZlIFRl
Y2hub2xvZ2llcyBJbmMuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA5IEJvYmJ5IFBvd2VycwotICog
IENvcHlyaWdodCAoQykgMjAxMCBKb29uZSBIdXIgPGpvb25lQGtsZHAub3JnPgotICogIENvcHly
aWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICogIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAid2Via2l0d2Vidmlldy5oIgotCi0jaW5j
bHVkZSAiQVhPYmplY3RDYWNoZS5oIgotI2luY2x1ZGUgIkFyY2hpdmVSZXNvdXJjZS5oIgotI2lu
Y2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkJhY2tGb3J3YXJkTGlz
dC5oIgotI2luY2x1ZGUgIkJhdHRlcnlDbGllbnRHdGsuaCIKLSNpbmNsdWRlICJDYWlyb1V0aWxp
dGllcy5oIgotI2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkNocm9tZUNsaWVudEd0ay5o
IgotI2luY2x1ZGUgIkNsaXBib2FyZFV0aWxpdGllc0d0ay5oIgotI2luY2x1ZGUgIkNvbnRleHRN
ZW51LmgiCi0jaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRHdGsuaCIKLSNpbmNsdWRlICJDb250
ZXh0TWVudUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJDdXJzb3IuaCIKLSNpbmNsdWRlICJEYXRh
YmFzZU1hbmFnZXIuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCi0jaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKLSNpbmNsdWRlICJEcmFnQ2xpZW50
R3RrLmgiCi0jaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJEcmFnRGF0YS5o
IgotI2luY2x1ZGUgIkRyYWdTZXNzaW9uLmgiCi0jaW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgiCi0jaW5jbHVkZSAiRWRpdG9yLmgiCi0jaW5jbHVkZSAiRWRpdG9yQ2xpZW50R3Rr
LmgiCi0jaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCi0jaW5jbHVkZSAiRmxvYXRRdWFkLmgiCi0j
aW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEd0ay5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlw
ZXMuaCIKLSNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJHVW5pcXVlUHRyR3RrLmgi
Ci0jaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRHdGsuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlv
bkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJH
dGtVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCi0jaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCi0jaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIKLSNpbmNsdWRlICJIaXRUZXN0
UmVzdWx0LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50R3RrLmgiCi0jaW5jbHVkZSAiTWFp
bkZyYW1lLmgiCi0jaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKLSNpbmNsdWRlICJNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNs
dWRlICJQYWdlQ2FjaGUuaCIKLSNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCi0jaW5jbHVkZSAiUGFz
dGVib2FyZEhlbHBlci5oIgotI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgotI2lu
Y2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgotI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5o
IgotI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlckNsaWVudEd0ay5oIgotI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIKLSNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCi0jaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKLSNp
bmNsdWRlICJ3ZWJraXRkb3dubG9hZC5oIgotI2luY2x1ZGUgIndlYmtpdGRvd25sb2FkcHJpdmF0
ZS5oIgotI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgotI2luY2x1ZGUgIndlYmtpdGZhdmlj
b25kYXRhYmFzZS5oIgotI2luY2x1ZGUgIndlYmtpdGdlb2xvY2F0aW9ucG9saWN5ZGVjaXNpb24u
aCIKLSNpbmNsdWRlICJ3ZWJraXRnbG9iYWxzcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdGhp
dHRlc3RyZXN1bHRwcml2YXRlLmgiCi0jaW5jbHVkZSAid2Via2l0aWNvbmRhdGFiYXNlLmgiCi0j
aW5jbHVkZSAid2Via2l0bWFyc2hhbC5oIgotI2luY2x1ZGUgIndlYmtpdG5ldHdvcmtyZXF1ZXN0
LmgiCi0jaW5jbHVkZSAid2Via2l0bmV0d29ya3Jlc3BvbnNlLmgiCi0jaW5jbHVkZSAid2Via2l0
dmlld3BvcnRhdHRyaWJ1dGVzLmgiCi0jaW5jbHVkZSAid2Via2l0dmlld3BvcnRhdHRyaWJ1dGVz
cHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmJhY2tmb3J3YXJkbGlzdC5oIgotI2luY2x1
ZGUgIndlYmtpdHdlYmZyYW1lcHJpdmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYmhpc3Rvcnlp
dGVtLmgiCi0jaW5jbHVkZSAid2Via2l0d2ViaGlzdG9yeWl0ZW1wcml2YXRlLmgiCi0jaW5jbHVk
ZSAid2Via2l0d2ViaW5zcGVjdG9yLmgiCi0jaW5jbHVkZSAid2Via2l0d2ViaW5zcGVjdG9ycHJp
dmF0ZS5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmgiCi0jaW5jbHVkZSAi
d2Via2l0d2VicmVzb3VyY2UuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJyZXNvdXJjZXByaXZhdGUu
aCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJzZXR0aW5nc3ByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJr
aXR3ZWJwbHVnaW5kYXRhYmFzZXByaXZhdGUuaCIKLSNpbmNsdWRlICJ3ZWJraXR3ZWJ3aW5kb3dm
ZWF0dXJlcy5oIgotI2luY2x1ZGUgIndlYmtpdHdlYnZpZXdwcml2YXRlLmgiCi0jaW5jbHVkZSA8
YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KLSNpbmNsdWRlIDxnZGsvZ2Rra2V5c3ltcy5oPgotI2lu
Y2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+Ci0jaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0j
aW5jbHVkZSAiRGV2aWNlTW90aW9uQ2xpZW50R3RrLmgiCi0jaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25DbGllbnRHdGsuaCIKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oV0FZTEFORCkgJiYgZGVm
aW5lZChHREtfV0lORE9XSU5HX1dBWUxBTkQpCi0jaW5jbHVkZSA8Z2RrL2dka3dheWxhbmQuaD4K
LSNlbmRpZgotCi0vKioKLSAqIFNFQ1RJT046d2Via2l0d2VidmlldwotICogQHNob3J0X2Rlc2Ny
aXB0aW9uOiBUaGUgY2VudHJhbCBjbGFzcyBvZiB0aGUgV2ViS2l0R1RLKyBBUEkKLSAqIEBzZWVf
YWxzbzogI1dlYktpdFdlYlNldHRpbmdzLCAjV2ViS2l0V2ViRnJhbWUKLSAqCi0gKiAjV2ViS2l0
V2ViVmlldyBpcyB0aGUgY2VudHJhbCBjbGFzcyBvZiB0aGUgV2ViS2l0R1RLKyBBUEkuIEl0IGlz
IGEKLSAqICNHdGtXaWRnZXQgaW1wbGVtZW50aW5nIHRoZSBzY3JvbGxpbmcgaW50ZXJmYWNlIHdo
aWNoIG1lYW5zIHlvdSBjYW4KLSAqIGVtYmVkIGluIGEgI0d0a1Njcm9sbGVkV2luZG93LiBJdCBp
cyByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgdGhlCi0gKiBkcmF3aW5nIG9mIHRoZSBjb250ZW50
LCBmb3J3YXJkaW5nIG9mIGV2ZW50cy4gWW91IGNhbiBsb2FkIGFueSBVUkkKLSAqIGludG8gdGhl
ICNXZWJLaXRXZWJWaWV3IG9yIGFueSBraW5kIG9mIGRhdGEgc3RyaW5nLiBXaXRoICNXZWJLaXRX
ZWJTZXR0aW5ncwotICogeW91IGNhbiBjb250cm9sIHZhcmlvdXMgYXNwZWN0cyBvZiB0aGUgcmVu
ZGVyaW5nIGFuZCBsb2FkaW5nIG9mIHRoZSBjb250ZW50LgotICogRWFjaCAjV2ViS2l0V2ViVmll
dyBoYXMgZXhhY3RseSBvbmUgI1dlYktpdFdlYkZyYW1lIGFzIG1haW4gZnJhbWUuIEEKLSAqICNX
ZWJLaXRXZWJGcmFtZSBjYW4gaGF2ZSBuIGNoaWxkcmVuLgotICoKLSAqIDxwcm9ncmFtbGlzdGlu
Zz4KLSAqIC88IS0tIC0tPiogQ3JlYXRlIHRoZSB3aWRnZXRzICo8IS0tIC0tPi8KLSAqIEd0a1dp
ZGdldCAqbWFpbl93aW5kb3cgPSBndGtfd2luZG93X25ldyAoR1RLX1dJTkRPV19UT1BMRVZFTCk7
Ci0gKiBHdGtXaWRnZXQgKnNjcm9sbGVkX3dpbmRvdyA9IGd0a19zY3JvbGxlZF93aW5kb3dfbmV3
IChOVUxMLCBOVUxMKTsKLSAqIEd0a1dpZGdldCAqd2ViX3ZpZXcgPSB3ZWJraXRfd2ViX3ZpZXdf
bmV3ICgpOwotICoKLSAqIC88IS0tIC0tPiogUGxhY2UgdGhlIFdlYktpdFdlYlZpZXcgaW4gdGhl
IEd0a1Njcm9sbGVkV2luZG93ICo8IS0tIC0tPi8KLSAqIGd0a19jb250YWluZXJfYWRkIChHVEtf
Q09OVEFJTkVSIChzY3JvbGxlZF93aW5kb3cpLCB3ZWJfdmlldyk7Ci0gKiBndGtfY29udGFpbmVy
X2FkZCAoR1RLX0NPTlRBSU5FUiAobWFpbl93aW5kb3cpLCBzY3JvbGxlZF93aW5kb3cpOwotICoK
LSAqIC88IS0tIC0tPiogT3BlbiBhIHdlYnBhZ2UgKjwhLS0gLS0+LwotICogd2Via2l0X3dlYl92
aWV3X2xvYWRfdXJpIChXRUJLSVRfV0VCX1ZJRVcgKHdlYl92aWV3KSwgImh0dHA6Ly93d3cuZ25v
bWUub3JnIik7Ci0gKgotICogLzwhLS0gLS0+KiBTaG93IHRoZSByZXN1bHQgKjwhLS0gLS0+Lwot
ICogZ3RrX3dpbmRvd19zZXRfZGVmYXVsdF9zaXplIChHVEtfV0lORE9XIChtYWluX3dpbmRvdyks
IDgwMCwgNjAwKTsKLSAqIGd0a193aWRnZXRfc2hvd19hbGwgKG1haW5fd2luZG93KTsKLSAqIDwv
cHJvZ3JhbWxpc3Rpbmc+Ci0gKi8KLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLXVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwotCi1lbnVtIHsKLSAgICAvKiBub3JtYWwgc2lnbmFscyAqLwotICAg
IE5BVklHQVRJT05fUkVRVUVTVEVELAotICAgIE5FV19XSU5ET1dfUE9MSUNZX0RFQ0lTSU9OX1JF
UVVFU1RFRCwKLSAgICBOQVZJR0FUSU9OX1BPTElDWV9ERUNJU0lPTl9SRVFVRVNURUQsCi0gICAg
TUlNRV9UWVBFX1BPTElDWV9ERUNJU0lPTl9SRVFVRVNURUQsCi0gICAgQ1JFQVRFX1dFQl9WSUVX
LAotICAgIFdFQl9WSUVXX1JFQURZLAotICAgIFdJTkRPV19PQkpFQ1RfQ0xFQVJFRCwKLSAgICBM
T0FEX1NUQVJURUQsCi0gICAgTE9BRF9DT01NSVRURUQsCi0gICAgTE9BRF9QUk9HUkVTU19DSEFO
R0VELAotICAgIExPQURfRVJST1IsCi0gICAgTE9BRF9GSU5JU0hFRCwKLSAgICBUSVRMRV9DSEFO
R0VELAotICAgIEhPVkVSSU5HX09WRVJfTElOSywKLSAgICBQT1BVTEFURV9QT1BVUCwKLSAgICBT
VEFUVVNfQkFSX1RFWFRfQ0hBTkdFRCwKLSAgICBJQ09OX0xPQURFRCwKLSAgICBTRUxFQ1RJT05f
Q0hBTkdFRCwKLSAgICBDT05TT0xFX01FU1NBR0UsCi0gICAgU0NSSVBUX0FMRVJULAotICAgIFND
UklQVF9DT05GSVJNLAotICAgIFNDUklQVF9QUk9NUFQsCi0gICAgU0VMRUNUX0FMTCwKLSAgICBD
T1BZX0NMSVBCT0FSRCwKLSAgICBQQVNURV9DTElQQk9BUkQsCi0gICAgQ1VUX0NMSVBCT0FSRCwK
LSAgICBET1dOTE9BRF9SRVFVRVNURUQsCi0gICAgTU9WRV9DVVJTT1IsCi0gICAgUFJJTlRfUkVR
VUVTVEVELAotICAgIFBMVUdJTl9XSURHRVQsCi0gICAgQ0xPU0VfV0VCX1ZJRVcsCi0gICAgVU5E
TywKLSAgICBSRURPLAotICAgIERBVEFCQVNFX1FVT1RBX0VYQ0VFREVELAotICAgIFJFU09VUkNF
X1JFUVVFU1RfU1RBUlRJTkcsCi0gICAgRE9DVU1FTlRfTE9BRF9GSU5JU0hFRCwKLSAgICBHRU9M
T0NBVElPTl9QT0xJQ1lfREVDSVNJT05fUkVRVUVTVEVELAotICAgIEdFT0xPQ0FUSU9OX1BPTElD
WV9ERUNJU0lPTl9DQU5DRUxMRUQsCi0gICAgT05MT0FEX0VWRU5ULAotICAgIEZSQU1FX0NSRUFU
RUQsCi0gICAgU0hPVUxEX0JFR0lOX0VESVRJTkcsCi0gICAgU0hPVUxEX0VORF9FRElUSU5HLAot
ICAgIFNIT1VMRF9JTlNFUlRfTk9ERSwKLSAgICBTSE9VTERfSU5TRVJUX1RFWFQsCi0gICAgU0hP
VUxEX0RFTEVURV9SQU5HRSwKLSAgICBTSE9VTERfU0hPV19ERUxFVEVfSU5URVJGQUNFX0ZPUl9F
TEVNRU5ULAotICAgIFNIT1VMRF9DSEFOR0VfU0VMRUNURURfUkFOR0UsCi0gICAgU0hPVUxEX0FQ
UExZX1NUWUxFLAotICAgIEVESVRJTkdfQkVHQU4sCi0gICAgVVNFUl9DSEFOR0VEX0NPTlRFTlRT
LAotICAgIEVESVRJTkdfRU5ERUQsCi0gICAgVklFV1BPUlRfQVRUUklCVVRFU19SRUNPTVBVVEVf
UkVRVUVTVEVELAotICAgIFZJRVdQT1JUX0FUVFJJQlVURVNfQ0hBTkdFRCwKLSAgICBSRVNPVVJD
RV9SRVNQT05TRV9SRUNFSVZFRCwKLSAgICBSRVNPVVJDRV9MT0FEX0ZJTklTSEVELAotICAgIFJF
U09VUkNFX0NPTlRFTlRfTEVOR1RIX1JFQ0VJVkVELAotICAgIFJFU09VUkNFX0xPQURfRkFJTEVE
LAotICAgIEVOVEVSSU5HX0ZVTExTQ1JFRU4sCi0gICAgTEVBVklOR19GVUxMU0NSRUVOLAotICAg
IENPTlRFWFRfTUVOVSwKLSAgICBSVU5fRklMRV9DSE9PU0VSLAotCi0gICAgTEFTVF9TSUdOQUwK
LX07Ci0KLWVudW0gewotICAgIFBST1BfMCwKLQotICAgIFBST1BfVElUTEUsCi0gICAgUFJPUF9V
UkksCi0gICAgUFJPUF9DT1BZX1RBUkdFVF9MSVNULAotICAgIFBST1BfUEFTVEVfVEFSR0VUX0xJ
U1QsCi0gICAgUFJPUF9FRElUQUJMRSwKLSAgICBQUk9QX1NFVFRJTkdTLAotICAgIFBST1BfV0VC
X0lOU1BFQ1RPUiwKLSAgICBQUk9QX1ZJRVdQT1JUX0FUVFJJQlVURVMsCi0gICAgUFJPUF9XSU5E
T1dfRkVBVFVSRVMsCi0gICAgUFJPUF9UUkFOU1BBUkVOVCwKLSAgICBQUk9QX1pPT01fTEVWRUws
Ci0gICAgUFJPUF9GVUxMX0NPTlRFTlRfWk9PTSwKLSAgICBQUk9QX0xPQURfU1RBVFVTLAotICAg
IFBST1BfUFJPR1JFU1MsCi0gICAgUFJPUF9FTkNPRElORywKLSAgICBQUk9QX0NVU1RPTV9FTkNP
RElORywKLSAgICBQUk9QX0lDT05fVVJJLAotICAgIFBST1BfSU1fQ09OVEVYVCwKLSNpZmRlZiBH
VEtfQVBJX1ZFUlNJT05fMgotICAgIFBST1BfVklFV19NT0RFLAotI2Vsc2UKLSAgICBQUk9QX1ZJ
RVdfTU9ERSwKLSAgICBQUk9QX0hBREpVU1RNRU5ULAotICAgIFBST1BfVkFESlVTVE1FTlQsCi0g
ICAgUFJPUF9IU0NST0xMX1BPTElDWSwKLSAgICBQUk9QX1ZTQ1JPTExfUE9MSUNZLAotI2VuZGlm
Ci0KLSAgICAvLyBVbmRvY3VtZW50ZWQuIExlYXZlIHRoZXNlIHByb3BlcnRpZXMgYXQgdGhlIGVu
ZCBvZiB0aGUgbGlzdAotICAgIC8vIHNvIHRoYXQgd2UgY2FuIHJlbW92ZSB0aGVtIHdpdGhvdXQg
YnJlYWtpbmcgQUJJIGNvbXBhdGliaWxpdHkuCi0gICAgUFJPUF9TRUxGX1NDUk9MTElORwotfTsK
LQotc3RhdGljIGd1aW50IHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsg
MCwgfTsKLQotI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi1HX0RFRklORV9UWVBFKFdlYktpdFdl
YlZpZXcsIHdlYmtpdF93ZWJfdmlldywgR1RLX1RZUEVfQ09OVEFJTkVSKQotI2Vsc2UKLUdfREVG
SU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdFdlYlZpZXcsIHdlYmtpdF93ZWJfdmlldywgR1RLX1RZ
UEVfQ09OVEFJTkVSLAotICAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJG
QUNFKEdUS19UWVBFX1NDUk9MTEFCTEUsIDApKQotI2VuZGlmCi0KLXN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkoV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRpbmdz
LCBHUGFyYW1TcGVjKiBwc3BlYywgV2ViS2l0V2ViVmlldyogd2ViVmlldyk7Ci1zdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X3dpbmRvd19mZWF0dXJlcyhXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyogd2ViV2luZG93RmVhdHVyZXMpOwotc3RhdGlj
IHZvaWQgd2Via2l0V2ViVmlld0RpcmVjdGlvbkNoYW5nZWQoV2ViS2l0V2ViVmlldyosIEd0a1Rl
eHREaXJlY3Rpb24gcHJldmlvdXNEaXJlY3Rpb24sIGdwb2ludGVyKTsKLQotc3RhdGljIGlubGlu
ZSBXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyB0b1dlYktpdFdlYlZpZXdUYXJnZXRJbmZvKFBhc3Rl
Ym9hcmRIZWxwZXI6OlBhc3RlYm9hcmRUYXJnZXRUeXBlIGZsYWdzKQotewotICAgIHN3aXRjaCAo
ZmxhZ3MpIHsKLSAgICBjYXNlIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVNYXJrdXA6Ci0g
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTDsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlVGV4dDoKLSAgICAg
ICAgcmV0dXJuIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19URVhUOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIFBhc3RlYm9hcmRIZWxwZXI6OlRhcmdldFR5cGVJbWFnZToKLSAgICAgICAg
cmV0dXJuIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19JTUFHRTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlVVJJTGlzdDoKLSAgICAgICAg
cmV0dXJuIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19VUklfTElTVDsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBQYXN0ZWJvYXJkSGVscGVyOjpUYXJnZXRUeXBlTmV0c2NhcGVVUkw6Ci0g
ICAgICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fTkVUU0NBUEVfVVJMOwot
ICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19IVE1MOwotICAg
IH0KLX0KLQotc3RhdGljIEd0a1RhcmdldExpc3QqIGNvcHlHdGtUYXJnZXRMaXN0Q29udmVydGlu
Z1dlYkNvcmVFbnVtVmFsdWVzVG9XZWJLaXRFbnVtVmFsdWVzKEd0a1RhcmdldExpc3QqIGNvcmVH
dGtUYXJnZXRMaXN0KQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVHdGtUYXJnZXRM
aXN0LCBudWxscHRyKTsKLQotICAgIEd0a1RhcmdldExpc3QqIHRhcmdldExpc3RXaXRoV2ViS2l0
RW51bVZhbHVlcyA9IG51bGxwdHI7Ci0gICAgaW50IHRhYmxlU2l6ZSA9IDA7Ci0gICAgR3RrVGFy
Z2V0RW50cnkqIHRhYmxlKGd0a190YXJnZXRfdGFibGVfbmV3X2Zyb21fbGlzdChjb3JlR3RrVGFy
Z2V0TGlzdCwgJnRhYmxlU2l6ZSkpOwotCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0YWJsZVNp
emU7IGkrKykKLSAgICAgICAgdGFibGVbaV0uZmxhZ3MgPSB0b1dlYktpdFdlYlZpZXdUYXJnZXRJ
bmZvKHN0YXRpY19jYXN0PFBhc3RlYm9hcmRIZWxwZXI6OlBhc3RlYm9hcmRUYXJnZXRUeXBlPih0
YWJsZVtpXS5mbGFncykpOwotCi0gICAgdGFyZ2V0TGlzdFdpdGhXZWJLaXRFbnVtVmFsdWVzID0g
Z3RrX3RhcmdldF9saXN0X25ldyh0YWJsZSwgdGFibGVTaXplKTsKLSAgICBndGtfdGFyZ2V0X3Rh
YmxlX2ZyZWUodGFibGUsIHRhYmxlU2l6ZSk7Ci0KLSAgICByZXR1cm4gdGFyZ2V0TGlzdFdpdGhX
ZWJLaXRFbnVtVmFsdWVzOwotfQotCi0jaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCi1zdGF0aWMg
dm9pZCBQb3B1cE1lbnVQb3NpdGlvbkZ1bmMoR3RrTWVudSogbWVudSwgZ2ludCAqeCwgZ2ludCAq
eSwgZ2Jvb2xlYW4gKnB1c2hJbiwgZ3BvaW50ZXIgdXNlckRhdGEpCi17Ci0gICAgV2ViS2l0V2Vi
VmlldyogdmlldyA9IFdFQktJVF9XRUJfVklFVyh1c2VyRGF0YSk7Ci0gICAgV2ViS2l0V2ViVmll
d1ByaXZhdGUqIHByaXYgPSB2aWV3LT5wcml2OwotICAgIEdka1NjcmVlbiogc2NyZWVuID0gZ3Rr
X3dpZGdldF9nZXRfc2NyZWVuKEdUS19XSURHRVQodmlldykpOwotICAgIEd0a1JlcXVpc2l0aW9u
IG1lbnVTaXplOwotCi0jaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKLSAgICBndGtfd2lkZ2V0X3Np
emVfcmVxdWVzdChHVEtfV0lER0VUKG1lbnUpLCAmbWVudVNpemUpOwotI2Vsc2UKLSAgICBndGtf
d2lkZ2V0X2dldF9wcmVmZXJyZWRfc2l6ZShHVEtfV0lER0VUKG1lbnUpLCAmbWVudVNpemUsIE5V
TEwpOwotI2VuZGlmCi0KLSAgICAqeCA9IHByaXYtPmxhc3RQb3B1cFhQb3NpdGlvbjsKLSAgICBp
ZiAoKCp4ICsgbWVudVNpemUud2lkdGgpID49IGdka19zY3JlZW5fZ2V0X3dpZHRoKHNjcmVlbikp
Ci0gICAgICAqeCAtPSBtZW51U2l6ZS53aWR0aDsKLQotICAgICp5ID0gcHJpdi0+bGFzdFBvcHVw
WVBvc2l0aW9uOwotICAgIGlmICgoKnkgKyBtZW51U2l6ZS5oZWlnaHQpID49IGdka19zY3JlZW5f
Z2V0X2hlaWdodChzY3JlZW4pKQotICAgICAgKnkgLT0gbWVudVNpemUuaGVpZ2h0OwotCi0gICAg
KnB1c2hJbiA9IEZBTFNFOwotfQotI2VuZGlmCi0KLXN0YXRpYyBOb2RlKiBnZXRGb2N1c2VkTm9k
ZShGcmFtZSogZnJhbWUpCi17Ci0gICAgaWYgKERvY3VtZW50KiBkb2MgPSBmcmFtZS0+ZG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGRvYy0+Zm9jdXNlZEVsZW1lbnQoKTsKLSAgICByZXR1cm4g
MDsKLX0KLQotI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotc3RhdGljIHZvaWQgY29udGV4dE1l
bnVJdGVtQWN0aXZhdGVkKEd0a01lbnVJdGVtKiBpdGVtLCBDb250ZXh0TWVudUNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIpCi17Ci0gICAgQ29udGV4dE1lbnVJdGVtIGNvbnRleHRJdGVtKGl0ZW0pOwot
ICAgIGNvbnRyb2xsZXItPmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKCZjb250ZXh0SXRlbSk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGNvbnRleHRNZW51Q29ubmVjdEFjdGl2YXRlKEd0a01lbnVJdGVtKiBp
dGVtLCBDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIpCi17Ci0gICAgaWYgKEdUS19J
U19TRVBBUkFUT1JfTUVOVV9JVEVNKGl0ZW0pKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAo
R3RrV2lkZ2V0KiBtZW51ID0gZ3RrX21lbnVfaXRlbV9nZXRfc3VibWVudShpdGVtKSkgewotICAg
ICAgICBndGtfY29udGFpbmVyX2ZvcmVhY2goR1RLX0NPTlRBSU5FUihtZW51KSwgKEd0a0NhbGxi
YWNrKWNvbnRleHRNZW51Q29ubmVjdEFjdGl2YXRlLCBjb250cm9sbGVyKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGdfc2lnbmFsX2Nvbm5lY3QoaXRlbSwgImFjdGl2YXRlIiwgR19D
QUxMQkFDSyhjb250ZXh0TWVudUl0ZW1BY3RpdmF0ZWQpLCBjb250cm9sbGVyKTsKLX0KLQotc3Rh
dGljIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMgcHJlcGFyZU1vdXNlRXZlbnRGb3JGcmFt
ZShGcmFtZSogZnJhbWUsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCi17Ci0gICAg
SGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlfCBIaXRUZXN0UmVx
dWVzdDo6RGlzYWxsb3dTaGFkb3dDb250ZW50KTsKLSAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1l
LT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoZXZlbnQucG9zaXRpb24oKSk7Ci0gICAgcmV0dXJu
IGZyYW1lLT5kb2N1bWVudCgpLT5wcmVwYXJlTW91c2VFdmVudChyZXF1ZXN0LCBwb2ludCwgZXZl
bnQpOwotfQotCi0vLyBDaGVjayBlbmFibGUtZGVmYXVsdC1jb250ZXh0LW1lbnUgc2V0dGluZyBm
b3IgY29tcGF0aWJpbGl0eS4KLXN0YXRpYyBib29sIGRlZmF1bHRDb250ZXh0TWVudUVuYWJsZWQo
V2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBnYm9vbGVhbiBlbmFibGVEZWZhdWx0Q29u
dGV4dE1lbnU7Ci0gICAgZ19vYmplY3RfZ2V0KHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3Mo
d2ViVmlldyksICJlbmFibGUtZGVmYXVsdC1jb250ZXh0LW1lbnUiLCAmZW5hYmxlRGVmYXVsdENv
bnRleHRNZW51LCBOVUxMKTsKLSAgICByZXR1cm4gZW5hYmxlRGVmYXVsdENvbnRleHRNZW51Owot
fQotCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2ZvcndhcmRfY29udGV4dF9tZW51
X2V2ZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQsIGJvb2wgdHJpZ2dlcmVkV2l0aEtleWJvYXJkKQotewotICAgIFBhZ2UqIHBhZ2UgPSBj
b3JlKHdlYlZpZXcpOwotICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNsZWFyQ29u
dGV4dE1lbnUoKTsKLSAgICBGcmFtZSogZm9jdXNlZEZyYW1lOwotICAgIEZyYW1lKiBtYWluRnJh
bWUgPSAmcGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgZ2Jvb2xlYW4gbW91c2VQcmVzc0V2ZW50UmVz
dWx0ID0gRkFMU0U7Ci0gICAgR1JlZlB0cjxXZWJLaXRIaXRUZXN0UmVzdWx0PiBoaXRUZXN0UmVz
dWx0OwotCi0gICAgaWYgKCFtYWluRnJhbWUtPnZpZXcoKSkKLSAgICAgICAgcmV0dXJuIEZBTFNF
OwotCi0gICAgbWFpbkZyYW1lLT52aWV3KCktPnNldEN1cnNvcihwb2ludGVyQ3Vyc29yKCkpOwot
ICAgIGlmIChwYWdlLT5zdWJmcmFtZUNvdW50KCkpIHsKLSAgICAgICAgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyBtZXYgPSBwcmVwYXJlTW91c2VFdmVudEZvckZyYW1lKG1haW5GcmFtZSwg
ZXZlbnQpOwotICAgICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBFdmVudEhhbmRsZXI6OnN1YmZy
YW1lRm9ySGl0VGVzdFJlc3VsdChtZXYpOwotICAgICAgICBpZiAoIXRhcmdldEZyYW1lKQotICAg
ICAgICAgICAgdGFyZ2V0RnJhbWUgPSBtYWluRnJhbWU7Ci0KLSAgICAgICAgZm9jdXNlZEZyYW1l
ID0gJnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgICAg
ICBpZiAodGFyZ2V0RnJhbWUgIT0gZm9jdXNlZEZyYW1lKSB7Ci0gICAgICAgICAgICBwYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUodGFyZ2V0RnJhbWUpOwotICAgICAgICAg
ICAgZm9jdXNlZEZyYW1lID0gdGFyZ2V0RnJhbWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGZv
Y3VzZWRGcmFtZSA9PSBtYWluRnJhbWUpCi0gICAgICAgICAgICBoaXRUZXN0UmVzdWx0ID0gYWRv
cHRHUmVmKGtpdChtZXYuaGl0VGVzdFJlc3VsdCgpKSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGZv
Y3VzZWRGcmFtZSA9IG1haW5GcmFtZTsKLQotICAgIGlmIChmb2N1c2VkRnJhbWUtPnZpZXcoKSAm
JiBmb2N1c2VkRnJhbWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChldmVu
dCkpCi0gICAgICAgIG1vdXNlUHJlc3NFdmVudFJlc3VsdCA9IFRSVUU7Ci0KLSAgICBib29sIGhh
bmRsZWRFdmVudCA9IGZvY3VzZWRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51
RXZlbnQoZXZlbnQpOwotICAgIGlmICghaGFuZGxlZEV2ZW50KQotICAgICAgICByZXR1cm4gRkFM
U0U7Ci0KLSAgICAvLyBJZiBjb3JlTWVudSBpcyBOVUxMLCB0aGlzIG1lYW5zIFdlYkNvcmUgZGVj
aWRlZCB0byBub3QgY3JlYXRlCi0gICAgLy8gdGhlIGRlZmF1bHQgY29udGV4dCBtZW51OyB0aGlz
IG1heSBoYXBwZW4gd2hlbiB0aGUgcGFnZSBpcwotICAgIC8vIGhhbmRsaW5nIHRoZSByaWdodC1j
bGljayBmb3IgcmVhc29ucyBvdGhlciB0aGFuIHRoZSBjb250ZXh0IG1lbnUuCi0gICAgQ29udGV4
dE1lbnUqIGNvcmVNZW51ID0gcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuY29udGV4dE1l
bnUoKTsKLSAgICBpZiAoIWNvcmVNZW51KQotICAgICAgICByZXR1cm4gbW91c2VQcmVzc0V2ZW50
UmVzdWx0OwotCi0gICAgR3RrTWVudSogZGVmYXVsdE1lbnUgPSBjb3JlTWVudS0+cGxhdGZvcm1E
ZXNjcmlwdGlvbigpOwotICAgIEFTU0VSVChkZWZhdWx0TWVudSk7Ci0KLSAgICAvLyBXZSBjb25u
ZWN0IHRoZSAiYWN0aXZhdGUiIHNpZ25hbCBoZXJlIHJhdGhlciB0aGFuIGluIENvbnRleHRNZW51
R3RrIHRvIGF2b2lkCi0gICAgLy8gYSBsYXllcmluZyB2aW9sYXRpb24uIENvbnRleHRNZW51R3Rr
IHNob3VsZCBub3Qga25vdyBhYm91dCB0aGUgQ29udGV4dE1lbnVDb250cm9sbGVyLgotICAgIGd0
a19jb250YWluZXJfZm9yZWFjaChHVEtfQ09OVEFJTkVSKGRlZmF1bHRNZW51KSwgcmVpbnRlcnBy
ZXRfY2FzdDxHdGtDYWxsYmFjaz4oY29udGV4dE1lbnVDb25uZWN0QWN0aXZhdGUpLCAmcGFnZS0+
Y29udGV4dE1lbnVDb250cm9sbGVyKCkpOwotCi0gICAgaWYgKCFoaXRUZXN0UmVzdWx0KSB7Ci0g
ICAgICAgIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMgbWV2ID0gcHJlcGFyZU1vdXNlRXZl
bnRGb3JGcmFtZShmb2N1c2VkRnJhbWUsIGV2ZW50KTsKLSAgICAgICAgaGl0VGVzdFJlc3VsdCA9
IGFkb3B0R1JlZihraXQobWV2LmhpdFRlc3RSZXN1bHQoKSkpOwotICAgIH0KLQotICAgIGdib29s
ZWFuIGhhbmRsZWQ7Ci0gICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXdf
c2lnbmFsc1tDT05URVhUX01FTlVdLCAwLCBkZWZhdWx0TWVudSwgaGl0VGVzdFJlc3VsdC5nZXQo
KSwgdHJpZ2dlcmVkV2l0aEtleWJvYXJkLCAmaGFuZGxlZCk7Ci0gICAgaWYgKGhhbmRsZWQpCi0g
ICAgICAgIHJldHVybiBUUlVFOwotCi0gICAgLy8gUmV0dXJuIG5vdyBpZiBkZWZhdWx0IGNvbnRl
eHQgbWVudSBpcyBkaXNhYmxlZCBieSBlbmFibGUtZGVmYXVsdC1jb250ZXh0LW1lbnUgc2V0dGlu
Zy4KLSAgICAvLyBDaGVjayBlbmFibGUtZGVmYXVsdC1jb250ZXh0LW1lbnUgc2V0dGluZyBmb3Ig
Y29tcGF0aWJpbGl0eS4KLSAgICBpZiAoIWRlZmF1bHRDb250ZXh0TWVudUVuYWJsZWQod2ViVmll
dykpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIC8vIEVtaXQgcG9wdWxhdGUtcG9wdXAg
c2lnbmFsIGZvciBjb21wYXRpYmlsaXR5LgotICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgd2Vi
a2l0X3dlYl92aWV3X3NpZ25hbHNbUE9QVUxBVEVfUE9QVVBdLCAwLCBkZWZhdWx0TWVudSk7Ci0K
LSAgICAvLyBJZiB0aGUgY29udGV4dCBtZW51IGlzIG5vdyBlbXB0eSwgZG9uJ3Qgc2hvdyBpdC4K
LSAgICBHVW5pcXVlUHRyPEdMaXN0PiBpdGVtcyhndGtfY29udGFpbmVyX2dldF9jaGlsZHJlbihH
VEtfQ09OVEFJTkVSKGRlZmF1bHRNZW51KSkpOwotICAgIGlmICghaXRlbXMpCi0gICAgICAgIHJl
dHVybiBGQUxTRTsKLQotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+
cHJpdjsKLSAgICBwcml2LT5jdXJyZW50TWVudSA9IGRlZmF1bHRNZW51OwotICAgIHByaXYtPmxh
c3RQb3B1cFhQb3NpdGlvbiA9IGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueCgpOwotICAgIHByaXYt
Pmxhc3RQb3B1cFlQb3NpdGlvbiA9IGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCkueSgpOwotCi0gICAg
Z3RrX21lbnVfcG9wdXAoZGVmYXVsdE1lbnUsIDAsIDAsICZQb3B1cE1lbnVQb3NpdGlvbkZ1bmMs
IHdlYlZpZXcsIGV2ZW50LmJ1dHRvbigpICsgMSwgZ3RrX2dldF9jdXJyZW50X2V2ZW50X3RpbWUo
KSk7Ci0gICAgcmV0dXJuIFRSVUU7Ci19Ci0KLXN0YXRpYyBjb25zdCBpbnQgZ0NvbnRleHRNZW51
TWFyZ2luID0gMTsKLXN0YXRpYyBJbnRQb2ludCBnZXRMb2NhdGlvbkZvcktleWJvYXJkR2VuZXJh
dGVkQ29udGV4dE1lbnUoRnJhbWUqIGZyYW1lKQotewotICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxl
Y3Rpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCk7Ci0gICAgaWYgKCFzZWxlY3Rpb24uc2VsZWN0aW9u
KCkuaXNOb25PcnBoYW5lZENhcmV0T3JSYW5nZSgpCi0gICAgICAgIHx8IChzZWxlY3Rpb24uc2Vs
ZWN0aW9uKCkuaXNDYXJldCgpICYmICFzZWxlY3Rpb24uc2VsZWN0aW9uKCkuaXNDb250ZW50RWRp
dGFibGUoKSkpIHsKLSAgICAgICAgaWYgKE5vZGUqIGZvY3VzZWROb2RlID0gZ2V0Rm9jdXNlZE5v
ZGUoZnJhbWUpKQotICAgICAgICAgICAgcmV0dXJuIGZvY3VzZWROb2RlLT5waXhlbFNuYXBwZWRC
b3VuZGluZ0JveCgpLmxvY2F0aW9uKCk7Ci0KLSAgICAgICAgLy8gVGhlcmUgd2FzIG5vIHNlbGVj
dGlvbiBhbmQgbm8gZm9jdXNlZCBub2RlLCBzbyBqdXN0IHB1dCB0aGUgY29udGV4dAotICAgICAg
ICAvLyBtZW51IGludG8gdGhlIGNvcm5lciBvZiB0aGUgdmlldywgb2Zmc2V0IHNsaWdodGx5Lgot
ICAgICAgICByZXR1cm4gSW50UG9pbnQoZ0NvbnRleHRNZW51TWFyZ2luLCBnQ29udGV4dE1lbnVN
YXJnaW4pOwotICAgIH0KLQotICAgIC8vIHNlbGVjdGlvbi0+c2VsZWN0aW9uKCkuZmlyc3RSYW5n
ZSBjYW4gcmV0dXJuIDAgaGVyZSwgYnV0IGlmIHRoYXQgd2FzIHRoZSBjYXNlCi0gICAgLy8gc2Vs
ZWN0aW9uLT5zZWxlY3Rpb24oKS5pc05vbk9ycGhhbmVkQ2FyZXRPclJhbmdlKCkgd291bGQgaGF2
ZSByZXR1cm5lZCBmYWxzZQotICAgIC8vIGFib3ZlLCBzbyB3ZSBkbyBub3QgaGF2ZSB0byBjaGVj
ayBpdC4KLSAgICBJbnRSZWN0IGZpcnN0UmVjdCA9IGZyYW1lLT5lZGl0b3IoKS5maXJzdFJlY3RG
b3JSYW5nZShzZWxlY3Rpb24uc2VsZWN0aW9uKCkuZmlyc3RSYW5nZSgpLmdldCgpKTsKLSAgICBy
ZXR1cm4gSW50UG9pbnQoZmlyc3RSZWN0LngoKSwgZmlyc3RSZWN0Lm1heFkoKSk7Ci19Ci0KLXN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfcG9wdXBfbWVudV9oYW5kbGVyKEd0a1dpZGdl
dCogd2lkZ2V0KQotewotICAgIEZyYW1lJiBmcmFtZSA9IGNvcmUoV0VCS0lUX1dFQl9WSUVXKHdp
ZGdldCkpLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBJbnRQ
b2ludCBsb2NhdGlvbiA9IGdldExvY2F0aW9uRm9yS2V5Ym9hcmRHZW5lcmF0ZWRDb250ZXh0TWVu
dSgmZnJhbWUpOwotCi0gICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUudmlldygpOwotICAgIGlm
ICghdmlldykKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAgLy8gTmV2ZXIgbGV0IHRoZSBj
b250ZXh0IG1lbnUgdG91Y2ggdGhlIHZlcnkgZWRnZSBvZiB0aGUgdmlldy4KLSAgICBsb2NhdGlv
biA9IHZpZXctPmNvbnRlbnRzVG9XaW5kb3cobG9jYXRpb24pOwotICAgIGxvY2F0aW9uLmV4cGFu
ZGVkVG8oSW50UG9pbnQoZ0NvbnRleHRNZW51TWFyZ2luLCBnQ29udGV4dE1lbnVNYXJnaW4pKTsK
LSAgICBsb2NhdGlvbi5zaHJ1bmtUbyhJbnRQb2ludCh2aWV3LT53aWR0aCgpIC0gZ0NvbnRleHRN
ZW51TWFyZ2luLCB2aWV3LT5oZWlnaHQoKSAtIGdDb250ZXh0TWVudU1hcmdpbikpOwotCi0gICAg
SW50UG9pbnQgZ2xvYmFsUG9pbnQoY29udmVydFdpZGdldFBvaW50VG9TY3JlZW5Qb2ludCh3aWRn
ZXQsIGxvY2F0aW9uKSk7Ci0gICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGxvY2F0aW9uLCBn
bG9iYWxQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMCwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGd0a19nZXRfY3VycmVudF9ldmVudF90aW1lKCkp
OwotICAgIHJldHVybiB3ZWJraXRfd2ViX3ZpZXdfZm9yd2FyZF9jb250ZXh0X21lbnVfZXZlbnQo
V0VCS0lUX1dFQl9WSUVXKHdpZGdldCksIGV2ZW50LCB0cnVlKTsKLX0KLSNlbmRpZiAvLyBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKLQotc3RhdGljIHZvaWQgc2V0SG9yaXpvbnRhbEFkanVzdG1lbnQo
V2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCogYWRqdXN0bWVudCkKLXsKLSAg
ICAvLyBUaGlzIG1heSBiZSBjYWxsZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gZGVzdHJveWVk
LCBpbiB3aGljaCBjYXNlIHdlIGRvIG5vdGhpbmcuCi0gICAgUGFnZSogcGFnZSA9IGNvcmUod2Vi
Vmlldyk7Ci0gICAgaWYgKHBhZ2UpCi0gICAgICAgIHN0YXRpY19jYXN0PFdlYktpdDo6Q2hyb21l
Q2xpZW50Jj4ocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkpLmFkanVzdG1lbnRXYXRjaGVyKCktPnNl
dEhvcml6b250YWxBZGp1c3RtZW50KGFkanVzdG1lbnQpOwotfQotCi1zdGF0aWMgdm9pZCBzZXRW
ZXJ0aWNhbEFkanVzdG1lbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrQWRqdXN0bWVudCog
YWRqdXN0bWVudCkKLXsKLSAgICAvLyBUaGlzIG1heSBiZSBjYWxsZWQgYWZ0ZXIgdGhlIHBhZ2Ug
aGFzIGJlZW4gZGVzdHJveWVkLCBpbiB3aGljaCBjYXNlIHdlIGRvIG5vdGhpbmcuCi0gICAgUGFn
ZSogcGFnZSA9IGNvcmUod2ViVmlldyk7Ci0gICAgaWYgKHBhZ2UpCi0gICAgICAgIHN0YXRpY19j
YXN0PFdlYktpdDo6Q2hyb21lQ2xpZW50Jj4ocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkpLmFkanVz
dG1lbnRXYXRjaGVyKCktPnNldFZlcnRpY2FsQWRqdXN0bWVudChhZGp1c3RtZW50KTsKLX0KLQot
I2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotc3RhdGljIEd0a0FkanVzdG1lbnQqIGdldEhvcml6
b250YWxBZGp1c3RtZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgUGFnZSogcGFn
ZSA9IGNvcmUod2ViVmlldyk7Ci0gICAgaWYgKHBhZ2UpCi0gICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxXZWJLaXQ6OkNocm9tZUNsaWVudCY+KHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpKS5hZGp1
c3RtZW50V2F0Y2hlcigpLT5ob3Jpem9udGFsQWRqdXN0bWVudCgpOwotICAgIHJldHVybiAwOwot
fQotCi1zdGF0aWMgR3RrQWRqdXN0bWVudCogZ2V0VmVydGljYWxBZGp1c3RtZW50KFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgUGFnZSogcGFnZSA9IGNvcmUod2ViVmlldyk7Ci0gICAg
aWYgKHBhZ2UpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJLaXQ6OkNocm9tZUNsaWVu
dCY+KHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpKS5hZGp1c3RtZW50V2F0Y2hlcigpLT52ZXJ0aWNh
bEFkanVzdG1lbnQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgc2V0SG9yaXpv
bnRhbFNjcm9sbFBvbGljeShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHdGtTY3JvbGxhYmxlUG9s
aWN5IHBvbGljeSkKLXsKLSAgICB3ZWJWaWV3LT5wcml2LT5ob3Jpem9udGFsU2Nyb2xsaW5nUG9s
aWN5ID0gcG9saWN5OwotICAgIGd0a193aWRnZXRfcXVldWVfcmVzaXplKEdUS19XSURHRVQod2Vi
VmlldykpOwotfQotCi1zdGF0aWMgdm9pZCBzZXRWZXJ0aWNhbFNjcm9sbFBvbGljeShXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBHdGtTY3JvbGxhYmxlUG9saWN5IHBvbGljeSkKLXsKLSAgICB3ZWJW
aWV3LT5wcml2LT52ZXJ0aWNhbFNjcm9sbGluZ1BvbGljeSA9IHBvbGljeTsKLSAgICBndGtfd2lk
Z2V0X3F1ZXVlX3Jlc2l6ZShHVEtfV0lER0VUKHdlYlZpZXcpKTsKLX0KLQotc3RhdGljIEd0a1Nj
cm9sbGFibGVQb2xpY3kgZ2V0SG9yaXpvbnRhbFNjcm9sbFBvbGljeShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQotewotICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT5ob3Jpem9udGFsU2Nyb2xsaW5n
UG9saWN5OwotfQotCi1zdGF0aWMgR3RrU2Nyb2xsYWJsZVBvbGljeSBnZXRWZXJ0aWNhbFNjcm9s
bFBvbGljeShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIHJldHVybiB3ZWJWaWV3LT5w
cml2LT52ZXJ0aWNhbFNjcm9sbGluZ1BvbGljeTsKLX0KLQotI2VuZGlmCi0KLXN0YXRpYyB2b2lk
IHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9w
X2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKG9iamVjdCk7Ci0KLSAgICBzd2l0Y2gocHJv
cF9pZCkgewotICAgIGNhc2UgUFJPUF9USVRMRToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5n
KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxlKHdlYlZpZXcpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBQUk9QX1VSSToKLSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVl
LCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaSh3ZWJWaWV3KSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUFJPUF9DT1BZX1RBUkdFVF9MSVNUOgotICAgICAgICBnX3ZhbHVlX3NldF9ib3hlZCh2
YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KHdlYlZpZXcpKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1BBU1RFX1RBUkdFVF9MSVNUOgotICAgICAgICBn
X3ZhbHVlX3NldF9ib3hlZCh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9wYXN0ZV90YXJnZXRf
bGlzdCh3ZWJWaWV3KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9FRElUQUJMRToK
LSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9l
ZGl0YWJsZSh3ZWJWaWV3KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9TRVRUSU5H
UzoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X3NldHRpbmdzKHdlYlZpZXcpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1dFQl9J
TlNQRUNUT1I6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X3dlYl92
aWV3X2dldF9pbnNwZWN0b3Iod2ViVmlldykpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBS
T1BfVklFV1BPUlRfQVRUUklCVVRFUzoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVl
LCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdwb3J0X2F0dHJpYnV0ZXMod2ViVmlldykpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfV0lORE9XX0ZFQVRVUkVTOgotICAgICAgICBnX3Zh
bHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X2ZlYXR1cmVz
KHdlYlZpZXcpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1RSQU5TUEFSRU5UOgot
ICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Ry
YW5zcGFyZW50KHdlYlZpZXcpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1pPT01f
TEVWRUw6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Zsb2F0KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3pvb21fbGV2ZWwod2ViVmlldykpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1Bf
RlVMTF9DT05URU5UX1pPT006Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdl
YmtpdF93ZWJfdmlld19nZXRfZnVsbF9jb250ZW50X3pvb20od2ViVmlldykpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFBST1BfRU5DT0RJTkc6Ci0gICAgICAgIGdfdmFsdWVfc2V0X3N0cmlu
Zyh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9lbmNvZGluZyh3ZWJWaWV3KSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgUFJPUF9DVVNUT01fRU5DT0RJTkc6Ci0gICAgICAgIGdfdmFsdWVf
c2V0X3N0cmluZyh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9jdXN0b21fZW5jb2Rpbmcod2Vi
VmlldykpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTE9BRF9TVEFUVVM6Ci0gICAg
ICAgIGdfdmFsdWVfc2V0X2VudW0odmFsdWUsIHdlYmtpdF93ZWJfdmlld19nZXRfbG9hZF9zdGF0
dXMod2ViVmlldykpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfUFJPR1JFU1M6Ci0g
ICAgICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9wcm9n
cmVzcyh3ZWJWaWV3KSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9JQ09OX1VSSToK
LSAgICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2lj
b25fdXJpKHdlYlZpZXcpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0lNX0NPTlRF
WFQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2ViVmlldy0+cHJpdi0+aW1G
aWx0ZXIuY29udGV4dCgpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1ZJRVdfTU9E
RToKLSAgICAgICAgZ192YWx1ZV9zZXRfZW51bSh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF92
aWV3X21vZGUod2ViVmlldykpOwotICAgICAgICBicmVhazsKLSNpZm5kZWYgR1RLX0FQSV9WRVJT
SU9OXzIKLSAgICBjYXNlIFBST1BfSEFESlVTVE1FTlQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29i
amVjdCh2YWx1ZSwgZ2V0SG9yaXpvbnRhbEFkanVzdG1lbnQod2ViVmlldykpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFBST1BfVkFESlVTVE1FTlQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29i
amVjdCh2YWx1ZSwgZ2V0VmVydGljYWxBZGp1c3RtZW50KHdlYlZpZXcpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBQUk9QX0hTQ1JPTExfUE9MSUNZOgotICAgICAgICBnX3ZhbHVlX3NldF9l
bnVtKHZhbHVlLCBnZXRIb3Jpem9udGFsU2Nyb2xsUG9saWN5KHdlYlZpZXcpKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBQUk9QX1ZTQ1JPTExfUE9MSUNZOgotICAgICAgICBnX3ZhbHVlX3Nl
dF9lbnVtKHZhbHVlLCBnZXRWZXJ0aWNhbFNjcm9sbFBvbGljeSh3ZWJWaWV3KSk7Ci0gICAgICAg
IGJyZWFrOwotI2VuZGlmCi0gICAgY2FzZSBQUk9QX1NFTEZfU0NST0xMSU5HOgotICAgICAgICBn
X3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJWaWV3LT5wcml2LT5zZWxmU2Nyb2xsaW5nKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZB
TElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwotICAgIH0KLX0KLQotc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BfaWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVjKQotewot
ICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcob2JqZWN0KTsKLQot
ICAgIHN3aXRjaChwcm9wX2lkKSB7Ci0gICAgY2FzZSBQUk9QX0VESVRBQkxFOgotICAgICAgICB3
ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKHdlYlZpZXcsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4o
dmFsdWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1NFVFRJTkdTOgotICAgICAg
ICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3NldHRpbmdzKHdlYlZpZXcsIFdFQktJVF9XRUJfU0VUVElO
R1MoZ192YWx1ZV9nZXRfb2JqZWN0KHZhbHVlKSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFBST1BfV0lORE9XX0ZFQVRVUkVTOgotICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3dpbmRv
d19mZWF0dXJlcyh3ZWJWaWV3LCBXRUJLSVRfV0VCX1dJTkRPV19GRUFUVVJFUyhnX3ZhbHVlX2dl
dF9vYmplY3QodmFsdWUpKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9UUkFOU1BB
UkVOVDoKLSAgICAgICAgd2Via2l0X3dlYl92aWV3X3NldF90cmFuc3BhcmVudCh3ZWJWaWV3LCBn
X3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJP
UF9aT09NX0xFVkVMOgotICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3pvb21fbGV2ZWwod2Vi
VmlldywgZ192YWx1ZV9nZXRfZmxvYXQodmFsdWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQUk9QX0ZVTExfQ09OVEVOVF9aT09NOgotICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2Z1
bGxfY29udGVudF96b29tKHdlYlZpZXcsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0NVU1RPTV9FTkNPRElORzoKLSAgICAgICAgd2Vi
a2l0X3dlYl92aWV3X3NldF9jdXN0b21fZW5jb2Rpbmcod2ViVmlldywgZ192YWx1ZV9nZXRfc3Ry
aW5nKHZhbHVlKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9WSUVXX01PREU6Ci0g
ICAgICAgIHdlYmtpdF93ZWJfdmlld19zZXRfdmlld19tb2RlKHdlYlZpZXcsIHN0YXRpY19jYXN0
PFdlYktpdFdlYlZpZXdWaWV3TW9kZT4oZ192YWx1ZV9nZXRfZW51bSh2YWx1ZSkpKTsKLSAgICAg
ICAgYnJlYWs7Ci0jaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCi0gICAgY2FzZSBQUk9QX0hBREpV
U1RNRU5UOgotICAgICAgICBzZXRIb3Jpem9udGFsQWRqdXN0bWVudCh3ZWJWaWV3LCBzdGF0aWNf
Y2FzdDxHdGtBZGp1c3RtZW50Kj4oZ192YWx1ZV9nZXRfb2JqZWN0KHZhbHVlKSkpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFBST1BfVkFESlVTVE1FTlQ6Ci0gICAgICAgIHNldFZlcnRpY2Fs
QWRqdXN0bWVudCh3ZWJWaWV3LCBzdGF0aWNfY2FzdDxHdGtBZGp1c3RtZW50Kj4oZ192YWx1ZV9n
ZXRfb2JqZWN0KHZhbHVlKSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfSFNDUk9M
TF9QT0xJQ1k6Ci0gICAgICAgIHNldEhvcml6b250YWxTY3JvbGxQb2xpY3kod2ViVmlldywgc3Rh
dGljX2Nhc3Q8R3RrU2Nyb2xsYWJsZVBvbGljeT4oZ192YWx1ZV9nZXRfZW51bSh2YWx1ZSkpKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1ZTQ1JPTExfUE9MSUNZOgotICAgICAgICBz
ZXRWZXJ0aWNhbFNjcm9sbFBvbGljeSh3ZWJWaWV3LCBzdGF0aWNfY2FzdDxHdGtTY3JvbGxhYmxl
UG9saWN5PihnX3ZhbHVlX2dldF9lbnVtKHZhbHVlKSkpOwotICAgICAgICBicmVhazsKLSNlbmRp
ZgotICAgIGNhc2UgUFJPUF9TRUxGX1NDUk9MTElORzoKLSAgICAgICAgd2ViVmlldy0+cHJpdi0+
c2VsZlNjcm9sbGluZyA9IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwotICAgICAgICBicmVh
azsKLSAgICBkZWZhdWx0OgotICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlf
SUQob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7Ci0gICAgfQotfQotCi0jaWZkZWYgR1RLX0FQSV9W
RVJTSU9OXzIKLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50KEd0
a1dpZGdldCogd2lkZ2V0LCBHZGtFdmVudEV4cG9zZSogZXZlbnQpCi17Ci0gICAgaW50IHJlY3RD
b3VudDsKLSAgICBHVW5pcXVlT3V0UHRyPEdka1JlY3RhbmdsZT4gcmVjdHM7Ci0gICAgZ2RrX3Jl
Z2lvbl9nZXRfcmVjdGFuZ2xlcyhldmVudC0+cmVnaW9uLCAmcmVjdHMub3V0UHRyKCksICZyZWN0
Q291bnQpOwotCi0gICAgUmVmUHRyPGNhaXJvX3Q+IGNyID0gYWRvcHRSZWYoZ2RrX2NhaXJvX2Ny
ZWF0ZShldmVudC0+d2luZG93KSk7Ci0KLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9
IFdFQktJVF9XRUJfVklFVyh3aWRnZXQpLT5wcml2OwotI2lmIFVTRShURVhUVVJFX01BUFBFUikK
LSAgICBHZGtSZWN0YW5nbGUgY2xpcFJlY3Q7Ci0gICAgZ2RrX3JlZ2lvbl9nZXRfY2xpcGJveChl
dmVudC0+cmVnaW9uLCAmY2xpcFJlY3QpOwotICAgIGlmIChwcml2LT5hY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC0+cmVuZGVyTGF5ZXJzVG9XaW5kb3coY3IuZ2V0KCksIGNsaXBSZWN0KSkg
ewotICAgICAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3Mp
LT5leHBvc2VfZXZlbnQod2lkZ2V0LCBldmVudCk7Ci0gICAgICAgIHJldHVybiBGQUxTRTsKLSAg
ICB9Ci0jZW5kaWYKLQotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVjdENvdW50OyBpKyspIHsK
LSAgICAgICAgY29weVJlY3RGcm9tQ2Fpcm9TdXJmYWNlVG9Db250ZXh0KFdFQktJVF9XRUJfVklF
Vyh3aWRnZXQpLT5wcml2LT5iYWNraW5nU3RvcmUtPmNhaXJvU3VyZmFjZSgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3IuZ2V0KCksIEludFNpemUoKSwgSW50
UmVjdChyZWN0cy5nZXQoKVtpXSkpOwotICAgIH0KLQotICAgIC8vIENoYWluaW5nIHVwIHRvIHRo
ZSBwYXJlbnQgZm9yY2VzIGNoaWxkIHdpZGdldHMgdG8gYmUgZHJhd24uCi0gICAgR1RLX1dJREdF
VF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfcGFyZW50X2NsYXNzKS0+ZXhwb3NlX2V2ZW50KHdpZGdl
dCwgZXZlbnQpOwotICAgIHJldHVybiBGQUxTRTsKLX0KLSNlbHNlCi1zdGF0aWMgZ2Jvb2xlYW4g
d2Via2l0X3dlYl92aWV3X2RyYXcoR3RrV2lkZ2V0KiB3aWRnZXQsIGNhaXJvX3QqIGNyKQotewot
ICAgIEdka1JlY3RhbmdsZSBjbGlwUmVjdDsKLSAgICBpZiAoIWdka19jYWlyb19nZXRfY2xpcF9y
ZWN0YW5nbGUoY3IsICZjbGlwUmVjdCkpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIFdl
YktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gV0VCS0lUX1dFQl9WSUVXKHdpZGdldCktPnByaXY7
Ci0jaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQotICAgIGlmIChwcml2LT5hY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC0+cmVuZGVyTGF5ZXJzVG9XaW5kb3coY3IsIGNsaXBSZWN0KSkgewotICAg
ICAgICBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5kcmF3
KHdpZGdldCwgY3IpOwotICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgfQotI2VuZGlmCi0KLSAg
ICBjYWlyb19yZWN0YW5nbGVfbGlzdF90KiByZWN0TGlzdCA9IGNhaXJvX2NvcHlfY2xpcF9yZWN0
YW5nbGVfbGlzdChjcik7Ci0gICAgaWYgKHJlY3RMaXN0LT5zdGF0dXMgfHwgIXJlY3RMaXN0LT5u
dW1fcmVjdGFuZ2xlcykgewotICAgICAgICBjYWlyb19yZWN0YW5nbGVfbGlzdF9kZXN0cm95KHJl
Y3RMaXN0KTsKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgIH0KLQotICAgIFZlY3RvcjxJbnRS
ZWN0PiByZWN0czsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHJlY3RMaXN0LT5udW1fcmVjdGFu
Z2xlczsgaSsrKSB7Ci0gICAgICAgIGNvcHlSZWN0RnJvbUNhaXJvU3VyZmFjZVRvQ29udGV4dChw
cml2LT5iYWNraW5nU3RvcmUtPmNhaXJvU3VyZmFjZSgpLCBjciwgSW50U2l6ZSgpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jbG9zaW5nSW50UmVjdChGbG9h
dFJlY3QocmVjdExpc3QtPnJlY3RhbmdsZXNbaV0pKSk7Ci0gICAgfQotICAgIGNhaXJvX3JlY3Rh
bmdsZV9saXN0X2Rlc3Ryb3kocmVjdExpc3QpOwotCi0gICAgLy8gQ2hhaW5pbmcgdXAgdG8gdGhl
IHBhcmVudCBmb3JjZXMgY2hpbGQgd2lkZ2V0cyB0byBiZSBkcmF3bi4KLSAgICBHVEtfV0lER0VU
X0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5kcmF3KHdpZGdldCwgY3IpOwot
ICAgIHJldHVybiBGQUxTRTsKLX0KLSNlbmRpZiAvLyBHVEtfQVBJX1ZFUlNJT05fMgotCi1zdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2tleV9wcmVzc19ldmVudChHdGtXaWRnZXQqIHdp
ZGdldCwgR2RrRXZlbnRLZXkqIGV2ZW50KQotewotICAgIGlmIChXRUJLSVRfV0VCX1ZJRVcod2lk
Z2V0KS0+cHJpdi0+aW1GaWx0ZXIuZmlsdGVyS2V5RXZlbnQoZXZlbnQpKQotICAgICAgICByZXR1
cm4gVFJVRTsKLSAgICByZXR1cm4gR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfd2ViX3ZpZXdfcGFy
ZW50X2NsYXNzKS0+a2V5X3ByZXNzX2V2ZW50KHdpZGdldCwgZXZlbnQpOwotfQotCi1zdGF0aWMg
Z2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2tleV9yZWxlYXNlX2V2ZW50KEd0a1dpZGdldCogd2lk
Z2V0LCBHZGtFdmVudEtleSogZXZlbnQpCi17Ci0gICAgaWYgKFdFQktJVF9XRUJfVklFVyh3aWRn
ZXQpLT5wcml2LT5pbUZpbHRlci5maWx0ZXJLZXlFdmVudChldmVudCkpCi0gICAgICAgIHJldHVy
biBUUlVFOwotICAgIHJldHVybiBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJl
bnRfY2xhc3MpLT5rZXlfcmVsZWFzZV9ldmVudCh3aWRnZXQsIGV2ZW50KTsKLX0KLQotc3RhdGlj
IGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19idXR0b25fcHJlc3NfZXZlbnQoR3RrV2lkZ2V0KiB3
aWRnZXQsIEdka0V2ZW50QnV0dG9uKiBldmVudCkKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdpZGdldCk7Ci0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUq
IHByaXYgPSB3ZWJWaWV3LT5wcml2OwotCi0gICAgLy8gRklYTUU6IG5lZWQgdG8ga2VlcCB0cmFj
ayBvZiBzdWJmcmFtZSBmb2N1cyBmb3Iga2V5IGV2ZW50cwotICAgIGd0a193aWRnZXRfZ3JhYl9m
b2N1cyh3aWRnZXQpOwotCi0gICAgaWYgKCFwcml2LT5jbGlja0NvdW50ZXIuc2hvdWxkUHJvY2Vz
c0J1dHRvbkV2ZW50KGV2ZW50KSkKLSAgICAgICAgcmV0dXJuIFRSVUU7Ci0KLSAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgcGxhdGZvcm1FdmVudChldmVudCk7Ci0gICAgaW50IGNvdW50ID0gcHJpdi0+
Y2xpY2tDb3VudGVyLmNsaWNrQ291bnRGb3JHZGtCdXR0b25FdmVudCh3aWRnZXQsIGV2ZW50KTsK
LSAgICBwbGF0Zm9ybUV2ZW50LnNldENsaWNrQ291bnQoY291bnQpOwotCi0jaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCi0gICAgaWYgKGV2ZW50LT5idXR0b24gPT0gMykKLSAgICAgICAgcmV0dXJu
IHdlYmtpdF93ZWJfdmlld19mb3J3YXJkX2NvbnRleHRfbWVudV9ldmVudCh3ZWJWaWV3LCBQbGF0
Zm9ybU1vdXNlRXZlbnQoZXZlbnQpLCBmYWxzZSk7Ci0jZW5kaWYKLQotICAgIEZyYW1lJiBmcmFt
ZSA9IGNvcmUod2ViVmlldyktPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUudmlldygpKQot
ICAgICAgICByZXR1cm4gRkFMU0U7Ci0KLSAgICBwcml2LT5pbUZpbHRlci5ub3RpZnlNb3VzZUJ1
dHRvblByZXNzKCk7Ci0gICAgZ2Jvb2xlYW4gcmVzdWx0ID0gZnJhbWUuZXZlbnRIYW5kbGVyKCku
aGFuZGxlTW91c2VQcmVzc0V2ZW50KHBsYXRmb3JtRXZlbnQpOwotCi0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19idXR0b25fcmVsZWFzZV9l
dmVudChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRXZlbnRCdXR0b24qIGV2ZW50KQotewotICAgIFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKLQotICAgIEZy
YW1lJiBtYWluRnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKTsKLSAgICBpZiAobWFp
bkZyYW1lLnZpZXcoKSkKLSAgICAgICAgbWFpbkZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1v
dXNlUmVsZWFzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudChldmVudCkpOwotCi0gICAgLyogV2Ug
YWx3YXlzIHJldHVybiBGQUxTRSBoZXJlIGJlY2F1c2UgV2ViS2l0IGNhbiwgZm9yIHRoZSBzYW1l
IGNsaWNrLCBkZWNpZGUKLSAgICAgKiB0byBub3QgaGFuZGxlIHByZXNzLWV2ZW50IGJ1dCBoYW5k
bGUgcmVsZWFzZS1ldmVudCwgd2hpY2ggY2FuIHRvdGFsbHkgY29uZnVzZQotICAgICAqIHNvbWUg
R1RLKyBjb250YWluZXJzIHdoZW4gdGhlcmUgYXJlIG5vIG90aGVyIGV2ZW50cyBpbiBiZXR3ZWVu
LiBUaGlzIHdheSB3ZQotICAgICAqIGd1YXJhbnRlZSB0aGF0IHRoaXMgY2FzZSBuZXZlciBoYXBw
ZW5zLCBhbmQgdGhhdCBpZiBwcmVzcy1ldmVudCBnb2VzIHRocm91Z2gKLSAgICAgKiByZWxlYXNl
LWV2ZW50IGFsc28gZ29lcyB0aHJvdWdoLgotICAgICAqLwotCi0gICAgcmV0dXJuIEZBTFNFOwot
fQotCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X21vdGlvbl9ldmVudChHdGtXaWRn
ZXQqIHdpZGdldCwgR2RrRXZlbnRNb3Rpb24qIGV2ZW50KQotewotICAgIFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKLQotICAgIEZyYW1lJiBmcmFtZSA9
IGNvcmUod2ViVmlldyktPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUudmlldygpKQotICAg
ICAgICByZXR1cm4gRkFMU0U7Ci0KLSAgICByZXR1cm4gZnJhbWUuZXZlbnRIYW5kbGVyKCkubW91
c2VNb3ZlZChQbGF0Zm9ybU1vdXNlRXZlbnQoZXZlbnQpKTsKLX0KLQotc3RhdGljIGdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19zY3JvbGxfZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50
U2Nyb2xsKiBldmVudCkKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dF
Ql9WSUVXKHdpZGdldCk7Ci0KLSAgICBGcmFtZSYgZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5tYWlu
RnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lLnZpZXcoKSkKLSAgICAgICAgcmV0dXJuIEZBTFNFOwot
Ci0gICAgUGxhdGZvcm1XaGVlbEV2ZW50IHdoZWVsRXZlbnQoZXZlbnQpOwotICAgIHJldHVybiBm
cmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwotfQotCi0j
aWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zaXpl
X3JlcXVlc3QoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a1JlcXVpc2l0aW9uKiByZXF1aXNpdGlvbikK
LXsKLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyA9IFdFQktJVF9XRUJfVklFVyh3aWRnZXQp
OwotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9m
cmFtZSh3ZWJfdmlldykpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBGcmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKLSAgICBpZiAoIXZpZXcp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIHJlcXVpc2l0aW9uLT53aWR0aCA9IHZpZXctPmNvbnRl
bnRzV2lkdGgoKTsKLSAgICByZXF1aXNpdGlvbi0+aGVpZ2h0ID0gdmlldy0+Y29udGVudHNIZWln
aHQoKTsKLX0KLSNlbHNlCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ByZWZlcnJl
ZF93aWR0aChHdGtXaWRnZXQqIHdpZGdldCwgZ2ludCogbWluaW11bSwgZ2ludCogbmF0dXJhbCkK
LXsKLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyA9IFdFQktJVF9XRUJfVklFVyh3aWRnZXQp
OwotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9m
cmFtZSh3ZWJfdmlldykpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBGcmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKLSAgICBpZiAoIXZpZXcp
Ci0gICAgICAgIHJldHVybjsKLQotICAgICptaW5pbXVtID0gKm5hdHVyYWwgPSB2aWV3LT5jb250
ZW50c1dpZHRoKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19nZXRfcHJlZmVy
cmVkX2hlaWdodChHdGtXaWRnZXQqIHdpZGdldCwgZ2ludCogbWluaW11bSwgZ2ludCogbmF0dXJh
bCkKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyA9IFdFQktJVF9XRUJfVklFVyh3aWRn
ZXQpOwotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKHdlYmtpdF93ZWJfdmlld19nZXRfbWFp
bl9mcmFtZSh3ZWJfdmlldykpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBGcmFtZVZpZXcqIHZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKTsKLSAgICBpZiAoIXZp
ZXcpCi0gICAgICAgIHJldHVybjsKLQotICAgICptaW5pbXVtID0gKm5hdHVyYWwgPSB2aWV3LT5j
b250ZW50c0hlaWdodCgpOwotfQotI2VuZGlmCi0KLXN0YXRpYyB2b2lkIHVwZGF0ZUNoaWxkQWxs
b2NhdGlvbkZyb21QZW5kaW5nQWxsb2NhdGlvbihHdGtXaWRnZXQqIGNoaWxkLCB2b2lkKikKLXsK
LSAgICBpZiAoIWd0a193aWRnZXRfZ2V0X3Zpc2libGUoY2hpbGQpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBHdGtBbGxvY2F0aW9uKiBhbGxvY2F0aW9uID0gc3RhdGljX2Nhc3Q8R3RrQWxsb2Nh
dGlvbio+KGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImRlbGF5ZWQtYWxsb2Nh
dGlvbiIpKTsKLSAgICBpZiAoIWFsbG9jYXRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIGdf
b2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKGNoaWxkKSwgImRlbGF5ZWQtYWxsb2NhdGlvbiIsIDAp
OwotICAgIGd0a193aWRnZXRfc2l6ZV9hbGxvY2F0ZShjaGlsZCwgYWxsb2NhdGlvbik7Ci0gICAg
KmFsbG9jYXRpb24gPSBJbnRSZWN0KCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlc2l6ZVdlYlZpZXdG
cm9tQWxsb2NhdGlvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHdGtBbGxvY2F0aW9uKiBhbGxv
Y2F0aW9uLCBib29sIHNpemVDaGFuZ2VkKQotewotICAgIFBhZ2UqIHBhZ2UgPSBjb3JlKHdlYlZp
ZXcpOwotICAgIEludFNpemUgb2xkU2l6ZTsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IHBh
Z2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKLSAgICBpZiAoc2l6ZUNoYW5nZWQgJiYgZnJhbWVWaWV3
KSB7Ci0gICAgICAgIG9sZFNpemUgPSBmcmFtZVZpZXctPnNpemUoKTsKLSAgICAgICAgZnJhbWVW
aWV3LT5yZXNpemUoYWxsb2NhdGlvbi0+d2lkdGgsIGFsbG9jYXRpb24tPmhlaWdodCk7Ci0gICAg
fQotCi0gICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwoR1RLX0NPTlRBSU5FUih3ZWJWaWV3KSwgdXBk
YXRlQ2hpbGRBbGxvY2F0aW9uRnJvbVBlbmRpbmdBbGxvY2F0aW9uLCAwKTsKLQotICAgIGlmICgh
c2l6ZUNoYW5nZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYktpdDo6Q2hyb21lQ2xpZW50
JiBjaHJvbWVDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkNocm9tZUNsaWVudCY+KHBhZ2Ut
PmNocm9tZSgpLmNsaWVudCgpKTsKLSAgICBjaHJvbWVDbGllbnQud2lkZ2V0U2l6ZUNoYW5nZWQo
b2xkU2l6ZSwgSW50U2l6ZShhbGxvY2F0aW9uLT53aWR0aCwgYWxsb2NhdGlvbi0+aGVpZ2h0KSk7
Ci0gICAgY2hyb21lQ2xpZW50LmFkanVzdG1lbnRXYXRjaGVyKCktPnVwZGF0ZUFkanVzdG1lbnRz
RnJvbVNjcm9sbGJhcnMoKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3NpemVf
YWxsb2NhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a0FsbG9jYXRpb24qIGFsbG9jYXRpb24pCi17
Ci0gICAgR3RrQWxsb2NhdGlvbiBvbGRBbGxvY2F0aW9uOwotICAgIGd0a193aWRnZXRfZ2V0X2Fs
bG9jYXRpb24od2lkZ2V0LCAmb2xkQWxsb2NhdGlvbik7Ci0gICAgYm9vbCBzaXplQ2hhbmdlZCA9
IGFsbG9jYXRpb24tPndpZHRoICE9IG9sZEFsbG9jYXRpb24ud2lkdGggfHwgYWxsb2NhdGlvbi0+
aGVpZ2h0ICE9IG9sZEFsbG9jYXRpb24uaGVpZ2h0OwotCi0gICAgR1RLX1dJREdFVF9DTEFTUyh3
ZWJraXRfd2ViX3ZpZXdfcGFyZW50X2NsYXNzKS0+c2l6ZV9hbGxvY2F0ZSh3aWRnZXQsIGFsbG9j
YXRpb24pOwotCi0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3
aWRnZXQpOwotICAgIGlmIChzaXplQ2hhbmdlZCAmJiAhZ3RrX3dpZGdldF9nZXRfbWFwcGVkKHdp
ZGdldCkpIHsKLSAgICAgICAgd2ViVmlldy0+cHJpdi0+bmVlZHNSZXNpemVPbk1hcCA9IHRydWU7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgcmVzaXplV2ViVmlld0Zyb21BbGxvY2F0aW9u
KHdlYlZpZXcsIGFsbG9jYXRpb24sIHNpemVDaGFuZ2VkKTsKLX0KLQotc3RhdGljIHZvaWQgd2Vi
a2l0V2ViVmlld01hcChHdGtXaWRnZXQqIHdpZGdldCkKLXsKLSAgICBHVEtfV0lER0VUX0NMQVNT
KHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5tYXAod2lkZ2V0KTsKLQotICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKLSAgICBpZiAoIXdl
YlZpZXctPnByaXYtPm5lZWRzUmVzaXplT25NYXApCi0gICAgICAgIHJldHVybjsKLQotICAgIEd0
a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKLSAgICBndGtfd2lkZ2V0X2dldF9hbGxvY2F0aW9uKHdp
ZGdldCwgJmFsbG9jYXRpb24pOwotICAgIHJlc2l6ZVdlYlZpZXdGcm9tQWxsb2NhdGlvbih3ZWJW
aWV3LCAmYWxsb2NhdGlvbiwgdHJ1ZSk7Ci0gICAgd2ViVmlldy0+cHJpdi0+bmVlZHNSZXNpemVP
bk1hcCA9IGZhbHNlOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ3JhYl9mb2N1
cyhHdGtXaWRnZXQqIHdpZGdldCkKLXsKLQotICAgIGlmIChndGtfd2lkZ2V0X2lzX3NlbnNpdGl2
ZSh3aWRnZXQpKSB7Ci0gICAgICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VC
X1ZJRVcod2lkZ2V0KTsKLSAgICAgICAgRm9jdXNDb250cm9sbGVyJiBmb2N1c0NvbnRyb2xsZXIg
PSBjb3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKTsKLQotICAgICAgICBmb2N1c0NvbnRy
b2xsZXIuc2V0QWN0aXZlKHRydWUpOwotCi0gICAgICAgIGlmIChmb2N1c0NvbnRyb2xsZXIuZm9j
dXNlZEZyYW1lKCkpCi0gICAgICAgICAgICBmb2N1c0NvbnRyb2xsZXIuc2V0Rm9jdXNlZCh0cnVl
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZm9jdXNDb250cm9sbGVyLnNldEZvY3VzZWRG
cmFtZSgmY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCkpOwotICAgIH0KLQotICAgIHJldHVybiBH
VEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5ncmFiX2ZvY3Vz
KHdpZGdldCk7Ci19Ci0KLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZm9jdXNfaW5f
ZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50Rm9jdXMqIGV2ZW50KQotewotICAgIC8v
IFRPRE86IEltcHJvdmUgZm9jdXMgaGFuZGxpbmcgYXMgc3VnZ2VzdGVkIGluCi0gICAgLy8gaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MTAKLSAgICBHdGtXaWRnZXQq
IHRvcGxldmVsID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwod2lkZ2V0KTsKLSAgICBpZiAoIXdp
ZGdldElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyh0b3BsZXZlbCkgfHwgIWd0a193aW5kb3dfaGFz
X3RvcGxldmVsX2ZvY3VzKEdUS19XSU5ET1codG9wbGV2ZWwpKSkKLSAgICAgICAgcmV0dXJuIEdU
S19XSURHRVRfQ0xBU1Mod2Via2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmZvY3VzX2luX2V2
ZW50KHdpZGdldCwgZXZlbnQpOwotCi0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJ
VF9XRUJfVklFVyh3aWRnZXQpOwotICAgIEZvY3VzQ29udHJvbGxlciYgZm9jdXNDb250cm9sbGVy
ID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCk7Ci0KLSAgICBmb2N1c0NvbnRyb2xs
ZXIuc2V0QWN0aXZlKHRydWUpOwotICAgIGlmIChmb2N1c0NvbnRyb2xsZXIuZm9jdXNlZEZyYW1l
KCkpCi0gICAgICAgIGZvY3VzQ29udHJvbGxlci5zZXRGb2N1c2VkKHRydWUpOwotICAgIGVsc2UK
LSAgICAgICAgZm9jdXNDb250cm9sbGVyLnNldEZvY3VzZWRGcmFtZSgmY29yZSh3ZWJWaWV3KS0+
bWFpbkZyYW1lKCkpOwotCi0gICAgaWYgKGZvY3VzQ29udHJvbGxlci5mb2N1c2VkRnJhbWUoKS0+
ZWRpdG9yKCkuY2FuRWRpdCgpKQotICAgICAgICB3ZWJWaWV3LT5wcml2LT5pbUZpbHRlci5ub3Rp
ZnlGb2N1c2VkSW4oKTsKLSAgICByZXR1cm4gR1RLX1dJREdFVF9DTEFTUyh3ZWJraXRfd2ViX3Zp
ZXdfcGFyZW50X2NsYXNzKS0+Zm9jdXNfaW5fZXZlbnQod2lkZ2V0LCBldmVudCk7Ci19Ci0KLXN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZm9jdXNfb3V0X2V2ZW50KEd0a1dpZGdldCog
d2lkZ2V0LCBHZGtFdmVudEZvY3VzKiBldmVudCkKLXsKLSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdpZGdldCk7Ci0KLSAgICAvLyBXZSBtYXkgaGl0IHRoaXMg
Y29kZSB3aGlsZSBkZXN0cm95aW5nIHRoZSB3aWRnZXQsIGFuZCB3ZSBtaWdodAotICAgIC8vIG5v
IGxvbmdlciBoYXZlIGEgcGFnZSwgdGhlbi4KLSAgICBpZiAoUGFnZSogcGFnZSA9IGNvcmUod2Vi
VmlldykpIHsKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0QWN0aXZlKGZhbHNl
KTsKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZChmYWxzZSk7Ci0g
ICAgfQotCi0gICAgd2ViVmlldy0+cHJpdi0+aW1GaWx0ZXIubm90aWZ5Rm9jdXNlZE91dCgpOwot
ICAgIHJldHVybiBHVEtfV0lER0VUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3Mp
LT5mb2N1c19vdXRfZXZlbnQod2lkZ2V0LCBldmVudCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtp
dF93ZWJfdmlld19yZWFsaXplKEd0a1dpZGdldCogd2lkZ2V0KQotewotICAgIGd0a193aWRnZXRf
c2V0X3JlYWxpemVkKHdpZGdldCwgVFJVRSk7Ci0KLSAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRp
b247Ci0gICAgZ3RrX3dpZGdldF9nZXRfYWxsb2NhdGlvbih3aWRnZXQsICZhbGxvY2F0aW9uKTsK
LQotICAgIEdka1dpbmRvd0F0dHIgYXR0cmlidXRlczsKLSAgICBhdHRyaWJ1dGVzLndpbmRvd190
eXBlID0gR0RLX1dJTkRPV19DSElMRDsKLSAgICBhdHRyaWJ1dGVzLnggPSBhbGxvY2F0aW9uLng7
Ci0gICAgYXR0cmlidXRlcy55ID0gYWxsb2NhdGlvbi55OwotICAgIGF0dHJpYnV0ZXMud2lkdGgg
PSBhbGxvY2F0aW9uLndpZHRoOwotICAgIGF0dHJpYnV0ZXMuaGVpZ2h0ID0gYWxsb2NhdGlvbi5o
ZWlnaHQ7Ci0gICAgYXR0cmlidXRlcy53Y2xhc3MgPSBHREtfSU5QVVRfT1VUUFVUOwotICAgIGF0
dHJpYnV0ZXMudmlzdWFsID0gZ3RrX3dpZGdldF9nZXRfdmlzdWFsKHdpZGdldCk7Ci0jaWZkZWYg
R1RLX0FQSV9WRVJTSU9OXzIKLSAgICBhdHRyaWJ1dGVzLmNvbG9ybWFwID0gZ3RrX3dpZGdldF9n
ZXRfY29sb3JtYXAod2lkZ2V0KTsKLSNlbmRpZgotICAgIGF0dHJpYnV0ZXMuZXZlbnRfbWFzayA9
IEdES19WSVNJQklMSVRZX05PVElGWV9NQVNLCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCBHREtfRVhQT1NVUkVfTUFTSwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgR0RLX0JV
VFRPTl9QUkVTU19NQVNLCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHREtfQlVUVE9O
X1JFTEVBU0VfTUFTSwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgR0RLX1NDUk9MTF9N
QVNLCi0jaWYgR1RLX0NIRUNLX1ZFUlNJT04oMywgMywgMTgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCBHREtfU01PT1RIX1NDUk9MTF9NQVNLCi0jZW5kaWYKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IEdES19QT0lOVEVSX01PVElPTl9NQVNLCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCBHREtfS0VZX1BSRVNTX01BU0sKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IEdES19LRVlfUkVMRUFTRV9NQVNLCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCBHREtfQlVUVE9OX01PVElPTl9NQVNLCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBH
REtfQlVUVE9OMV9NT1RJT05fTUFTSwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgR0RL
X0JVVFRPTjJfTU9USU9OX01BU0sKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEdES19C
VVRUT04zX01PVElPTl9NQVNLOwotCi0gICAgZ2ludCBhdHRyaWJ1dGVzX21hc2sgPSBHREtfV0Ff
WCB8IEdES19XQV9ZIHwgR0RLX1dBX1ZJU1VBTDsKLSNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgot
ICAgIGF0dHJpYnV0ZXNfbWFzayB8PSBHREtfV0FfQ09MT1JNQVA7Ci0jZW5kaWYKLSAgICBHZGtX
aW5kb3cqIHdpbmRvdyA9IGdka193aW5kb3dfbmV3KGd0a193aWRnZXRfZ2V0X3BhcmVudF93aW5k
b3cod2lkZ2V0KSwgJmF0dHJpYnV0ZXMsIGF0dHJpYnV0ZXNfbWFzayk7Ci0KLSAgICBndGtfd2lk
Z2V0X3NldF93aW5kb3cod2lkZ2V0LCB3aW5kb3cpOwotICAgIGdka193aW5kb3dfc2V0X3VzZXJf
ZGF0YSh3aW5kb3csIHdpZGdldCk7Ci0KLSNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotICAgIGd0
a193aWRnZXRfc3R5bGVfYXR0YWNoKHdpZGdldCk7Ci0gICAgZ3RrX3N0eWxlX3NldF9iYWNrZ3Jv
dW5kKGd0a193aWRnZXRfZ2V0X3N0eWxlKHdpZGdldCksIHdpbmRvdywgR1RLX1NUQVRFX05PUk1B
TCk7Ci0jZWxzZQotICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9iYWNrZ3JvdW5kKGd0a193aWRn
ZXRfZ2V0X3N0eWxlX2NvbnRleHQod2lkZ2V0KSwgd2luZG93KTsKLSNlbmRpZgotfQotCi0jaWZk
ZWYgR1RLX0FQSV9WRVJTSU9OXzIKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfc2Ny
b2xsX2FkanVzdG1lbnRzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEd0a0FkanVzdG1lbnQqIGhv
cml6b250YWxBZGp1c3RtZW50LCBHdGtBZGp1c3RtZW50KiB2ZXJ0aWNhbEFkanVzdG1lbnQpCi17
Ci0gICAgc2V0SG9yaXpvbnRhbEFkanVzdG1lbnQod2ViVmlldywgaG9yaXpvbnRhbEFkanVzdG1l
bnQpOwotICAgIHNldFZlcnRpY2FsQWRqdXN0bWVudCh3ZWJWaWV3LCB2ZXJ0aWNhbEFkanVzdG1l
bnQpOwotfQotI2VuZGlmCi0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jb250YWluZXJf
YWRkKEd0a0NvbnRhaW5lciogY29udGFpbmVyLCBHdGtXaWRnZXQqIHdpZGdldCkKLXsKLSAgICBX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKGNvbnRhaW5lcik7Ci0gICAg
V2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwotCi0gICAgcHJpdi0+
Y2hpbGRyZW4uYWRkKHdpZGdldCk7Ci0gICAgZ3RrX3dpZGdldF9zZXRfcGFyZW50KHdpZGdldCwg
R1RLX1dJREdFVChjb250YWluZXIpKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X2NvbnRhaW5lcl9yZW1vdmUoR3RrQ29udGFpbmVyKiBjb250YWluZXIsIEd0a1dpZGdldCogd2lk
Z2V0KQotewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcoY29u
dGFpbmVyKTsKLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7
Ci0KLSAgICBpZiAocHJpdi0+Y2hpbGRyZW4uY29udGFpbnMod2lkZ2V0KSkgewotICAgICAgICBn
dGtfd2lkZ2V0X3VucGFyZW50KHdpZGdldCk7Ci0gICAgICAgIHByaXYtPmNoaWxkcmVuLnJlbW92
ZSh3aWRnZXQpOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NvbnRh
aW5lcl9mb3JhbGwoR3RrQ29udGFpbmVyKiBjb250YWluZXIsIGdib29sZWFuLCBHdGtDYWxsYmFj
ayBjYWxsYmFjaywgZ3BvaW50ZXIgY2FsbGJhY2tEYXRhKQotewotICAgIFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcoY29udGFpbmVyKTsKLSAgICBXZWJLaXRXZWJWaWV3
UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0KLSAgICBIYXNoU2V0PEd0a1dpZGdldCo+
IGNoaWxkcmVuID0gcHJpdi0+Y2hpbGRyZW47Ci0gICAgSGFzaFNldDxHdGtXaWRnZXQqPjo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gY2hpbGRyZW4uZW5kKCk7Ci0gICAgZm9yIChIYXNoU2V0PEd0a1dp
ZGdldCo+Ojpjb25zdF9pdGVyYXRvciBjdXJyZW50ID0gY2hpbGRyZW4uYmVnaW4oKTsgY3VycmVu
dCAhPSBlbmQ7ICsrY3VycmVudCkKLSAgICAgICAgKCpjYWxsYmFjaykoKmN1cnJlbnQsIGNhbGxi
YWNrRGF0YSk7Ci19Ci0KLXN0YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJraXRfd2ViX3ZpZXdfcmVh
bF9jcmVhdGVfd2ViX3ZpZXcoV2ViS2l0V2ViVmlldyosIFdlYktpdFdlYkZyYW1lKikKLXsKLSAg
ICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19yZWFsX3dl
Yl92aWV3X3JlYWR5KFdlYktpdFdlYlZpZXcqKQotewotICAgIHJldHVybiBGQUxTRTsKLX0KLQot
c3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19yZWFsX2Nsb3NlX3dlYl92aWV3KFdlYktp
dFdlYlZpZXcqKQotewotICAgIHJldHVybiBGQUxTRTsKLX0KLQotc3RhdGljIFdlYktpdE5hdmln
YXRpb25SZXNwb25zZSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9uYXZpZ2F0aW9uX3JlcXVlc3RlZChX
ZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUqLCBXZWJLaXROZXR3b3JrUmVxdWVzdCopCi17
Ci0gICAgcmV0dXJuIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQVDsKLX0KLQotc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3JlYWxfd2luZG93X29iamVjdF9jbGVhcmVkKFdlYktp
dFdlYlZpZXcqLCBXZWJLaXRXZWJGcmFtZSosIEpTR2xvYmFsQ29udGV4dFJlZiwgSlNPYmplY3RS
ZWYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotc3RhdGljIGdjaGFyKiB3ZWJraXRf
d2ViX3ZpZXdfcmVhbF9jaG9vc2VfZmlsZShXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUq
LCBjb25zdCBnY2hhciogb2xkX25hbWUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gZ19zdHJkdXAob2xkX25hbWUpOwotfQotCi10eXBlZGVmIGVudW0gewotICAgIFdFQktJ
VF9TQ1JJUFRfRElBTE9HX0FMRVJULAotICAgIFdFQktJVF9TQ1JJUFRfRElBTE9HX0NPTkZJUk0s
Ci0gICAgV0VCS0lUX1NDUklQVF9ESUFMT0dfUFJPTVBUCi0gfSBXZWJLaXRTY3JpcHREaWFsb2dU
eXBlOwotCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X3NjcmlwdF9kaWFsb2coV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciog
bWVzc2FnZSwgV2ViS2l0U2NyaXB0RGlhbG9nVHlwZSB0eXBlLCBjb25zdCBnY2hhciogZGVmYXVs
dFZhbHVlLCBnY2hhcioqIHZhbHVlKQotewotICAgIEd0a01lc3NhZ2VUeXBlIG1lc3NhZ2VUeXBl
OwotICAgIEd0a0J1dHRvbnNUeXBlIGJ1dHRvbnM7Ci0gICAgZ2ludCBkZWZhdWx0UmVzcG9uc2U7
Ci0gICAgR3RrV2lkZ2V0KiB3aW5kb3c7Ci0gICAgR3RrV2lkZ2V0KiBkaWFsb2c7Ci0gICAgR3Rr
V2lkZ2V0KiBlbnRyeSA9IDA7Ci0gICAgZ2Jvb2xlYW4gZGlkQ29uZmlybSA9IEZBTFNFOwotCi0g
ICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJQUxPR19BTEVSVDoK
LSAgICAgICAgbWVzc2FnZVR5cGUgPSBHVEtfTUVTU0FHRV9XQVJOSU5HOwotICAgICAgICBidXR0
b25zID0gR1RLX0JVVFRPTlNfQ0xPU0U7Ci0gICAgICAgIGRlZmF1bHRSZXNwb25zZSA9IEdUS19S
RVNQT05TRV9DTE9TRTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJ
QUxPR19DT05GSVJNOgotICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19NRVNTQUdFX1FVRVNUSU9O
OwotICAgICAgICBidXR0b25zID0gR1RLX0JVVFRPTlNfT0tfQ0FOQ0VMOwotICAgICAgICBkZWZh
dWx0UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfT0s7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
V0VCS0lUX1NDUklQVF9ESUFMT0dfUFJPTVBUOgotICAgICAgICBtZXNzYWdlVHlwZSA9IEdUS19N
RVNTQUdFX1FVRVNUSU9OOwotICAgICAgICBidXR0b25zID0gR1RLX0JVVFRPTlNfT0tfQ0FOQ0VM
OwotICAgICAgICBkZWZhdWx0UmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfT0s7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdfd2FybmluZygiVW5rbm93biB2YWx1ZSBmb3Ig
V2ViS2l0U2NyaXB0RGlhbG9nVHlwZS4iKTsKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgIH0K
LQotICAgIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQod2ViVmll
dykpOwotICAgIGRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxvZ19uZXcod2lkZ2V0SXNPbnNjcmVl
blRvcGxldmVsV2luZG93KHdpbmRvdykgPyBHVEtfV0lORE9XKHdpbmRvdykgOiAwLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX0RJQUxPR19ERVNUUk9ZX1dJVEhfUEFS
RU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVR5cGUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25zLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIiVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2UpOwotICAgIGdjaGFyKiB0aXRsZSA9IGdfc3RyY29uY2F0KCJKYXZh
U2NyaXB0IC0gIiwgd2Via2l0X3dlYl9mcmFtZV9nZXRfdXJpKGZyYW1lKSwgTlVMTCk7Ci0gICAg
Z3RrX3dpbmRvd19zZXRfdGl0bGUoR1RLX1dJTkRPVyhkaWFsb2cpLCB0aXRsZSk7Ci0gICAgZ19m
cmVlKHRpdGxlKTsKLQotICAgIGlmICh0eXBlID09IFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01Q
VCkgewotICAgICAgICBlbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsKLSAgICAgICAgZ3RrX2VudHJ5
X3NldF90ZXh0KEdUS19FTlRSWShlbnRyeSksIGRlZmF1bHRWYWx1ZSk7Ci0gICAgICAgIGd0a19j
b250YWluZXJfYWRkKEdUS19DT05UQUlORVIoZ3RrX2RpYWxvZ19nZXRfY29udGVudF9hcmVhKEdU
S19ESUFMT0coZGlhbG9nKSkpLCBlbnRyeSk7Ci0gICAgICAgIGd0a19lbnRyeV9zZXRfYWN0aXZh
dGVzX2RlZmF1bHQoR1RLX0VOVFJZKGVudHJ5KSwgVFJVRSk7Ci0gICAgICAgIGd0a193aWRnZXRf
c2hvdyhlbnRyeSk7Ci0gICAgfQotCi0gICAgZ3RrX2RpYWxvZ19zZXRfZGVmYXVsdF9yZXNwb25z
ZShHVEtfRElBTE9HKGRpYWxvZyksIGRlZmF1bHRSZXNwb25zZSk7Ci0gICAgZ2ludCByZXNwb25z
ZSA9IGd0a19kaWFsb2dfcnVuKEdUS19ESUFMT0coZGlhbG9nKSk7Ci0KLSAgICBzd2l0Y2ggKHJl
c3BvbnNlKSB7Ci0gICAgY2FzZSBHVEtfUkVTUE9OU0VfT0s6Ci0gICAgICAgIGRpZENvbmZpcm0g
PSBUUlVFOwotICAgICAgICBpZiAoZW50cnkpCi0gICAgICAgICAgICAqdmFsdWUgPSBnX3N0cmR1
cChndGtfZW50cnlfZ2V0X3RleHQoR1RLX0VOVFJZKGVudHJ5KSkpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEdUS19SRVNQT05TRV9DQU5DRUw6Ci0gICAgICAgIGRpZENvbmZpcm0gPSBGQUxT
RTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICB9Ci0gICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19X
SURHRVQoZGlhbG9nKSk7Ci0gICAgcmV0dXJuIGRpZENvbmZpcm07Ci19Ci0KLXN0YXRpYyBnYm9v
bGVhbiB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9zY3JpcHRfYWxlcnQoV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciogbWVzc2FnZSkKLXsKLSAg
ICB3ZWJraXRfd2ViX3ZpZXdfc2NyaXB0X2RpYWxvZyh3ZWJWaWV3LCBmcmFtZSwgbWVzc2FnZSwg
V0VCS0lUX1NDUklQVF9ESUFMT0dfQUxFUlQsIDAsIDApOwotICAgIHJldHVybiBUUlVFOwotfQot
Ci1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X3JlYWxfc2NyaXB0X2NvbmZpcm0oV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBnY2hhciog
bWVzc2FnZSwgZ2Jvb2xlYW4qIGRpZENvbmZpcm0pCi17Ci0gICAgKmRpZENvbmZpcm0gPSB3ZWJr
aXRfd2ViX3ZpZXdfc2NyaXB0X2RpYWxvZyh3ZWJWaWV3LCBmcmFtZSwgbWVzc2FnZSwgV0VCS0lU
X1NDUklQVF9ESUFMT0dfQ09ORklSTSwgMCwgMCk7Ci0gICAgcmV0dXJuIFRSVUU7Ci19Ci0KLXN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9zY3JpcHRfcHJvbXB0KFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgZ2NoYXIqIG1lc3Nh
Z2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUsIGdjaGFyKiogdmFsdWUpCi17Ci0gICAgaWYg
KCF3ZWJraXRfd2ViX3ZpZXdfc2NyaXB0X2RpYWxvZyh3ZWJWaWV3LCBmcmFtZSwgbWVzc2FnZSwg
V0VCS0lUX1NDUklQVF9ESUFMT0dfUFJPTVBULCBkZWZhdWx0VmFsdWUsIHZhbHVlKSkKLSAgICAg
ICAgKnZhbHVlID0gTlVMTDsKLSAgICByZXR1cm4gVFJVRTsKLX0KLQotc3RhdGljIGdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19yZWFsX2NvbnNvbGVfbWVzc2FnZShXZWJLaXRXZWJWaWV3KiwgY29u
c3QgZ2NoYXIqIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmUsIGNvbnN0IGdjaGFyKiBzb3VyY2VJZCkK
LXsKLSAgICBnX21lc3NhZ2UoImNvbnNvbGUgbWVzc2FnZTogJXMgQCVkOiAlc1xuIiwgc291cmNl
SWQsIGxpbmUsIG1lc3NhZ2UpOwotICAgIHJldHVybiBUUlVFOwotfQotCi1zdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX3ZpZXdfcmVhbF9zZWxlY3RfYWxsKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17
Ci0gICAgRnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCkuZm9j
dXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgZnJhbWUuZWRpdG9yKCkuY29tbWFuZCgiU2VsZWN0QWxs
IikuZXhlY3V0ZSgpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jdXRf
Y2xpcGJvYXJkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgRnJhbWUmIGZyYW1lID0g
Y29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0g
ICAgZnJhbWUuZWRpdG9yKCkuY29tbWFuZCgiQ3V0IikuZXhlY3V0ZSgpOwotfQotCi1zdGF0aWMg
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jb3B5X2NsaXBib2FyZChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQotewotICAgIEZyYW1lJiBmcmFtZSA9IGNvcmUod2ViVmlldyktPmZvY3VzQ29udHJv
bGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIGZyYW1lLmVkaXRvcigpLmNvbW1hbmQo
IkNvcHkiKS5leGVjdXRlKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19yZWFs
X3VuZG8oV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBGcmFtZSYgZnJhbWUgPSBjb3Jl
KHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBm
cmFtZS5lZGl0b3IoKS5jb21tYW5kKCJVbmRvIikuZXhlY3V0ZSgpOwotfQotCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9yZWRvKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0g
ICAgRnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNl
ZE9yTWFpbkZyYW1lKCk7Ci0gICAgZnJhbWUuZWRpdG9yKCkuY29tbWFuZCgiUmVkbyIpLmV4ZWN1
dGUoKTsKLX0KLQotc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19yZWFsX21vdmVfY3Vy
c29yIChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHdGtNb3ZlbWVudFN0ZXAgc3RlcCwgZ2ludCBj
b3VudCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcgKHdl
YlZpZXcpLCBGQUxTRSk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc3RlcCA9PSBHVEtfTU9W
RU1FTlRfVklTVUFMX1BPU0lUSU9OUyB8fAotICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAg
PT0gR1RLX01PVkVNRU5UX0RJU1BMQVlfTElORVMgfHwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGVwID09IEdUS19NT1ZFTUVOVF9QQUdFUyB8fAotICAgICAgICAgICAgICAgICAgICAgICAg
IHN0ZXAgPT0gR1RLX01PVkVNRU5UX0JVRkZFUl9FTkRTLCBGQUxTRSk7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoY291bnQgPT0gMSB8fCBjb3VudCA9PSAtMSwgRkFMU0UpOwotCi0gICAgU2Ny
b2xsRGlyZWN0aW9uIGRpcmVjdGlvbjsKLSAgICBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0
eTsKLQotICAgIHN3aXRjaCAoc3RlcCkgewotICAgIGNhc2UgR1RLX01PVkVNRU5UX0RJU1BMQVlf
TElORVM6Ci0gICAgICAgIGdyYW51bGFyaXR5ID0gU2Nyb2xsQnlMaW5lOwotICAgICAgICBpZiAo
Y291bnQgPT0gMSkKLSAgICAgICAgICAgIGRpcmVjdGlvbiA9IFNjcm9sbERvd247Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGRpcmVjdGlvbiA9IFNjcm9sbFVwOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEdUS19NT1ZFTUVOVF9WSVNVQUxfUE9TSVRJT05TOgotICAgICAgICBncmFudWxh
cml0eSA9IFNjcm9sbEJ5TGluZTsKLSAgICAgICAgaWYgKGNvdW50ID09IDEpCi0gICAgICAgICAg
ICBkaXJlY3Rpb24gPSBTY3JvbGxSaWdodDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZGly
ZWN0aW9uID0gU2Nyb2xsTGVmdDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHVEtfTU9WRU1F
TlRfUEFHRVM6Ci0gICAgICAgIGdyYW51bGFyaXR5ID0gU2Nyb2xsQnlQYWdlOwotICAgICAgICBp
ZiAoY291bnQgPT0gMSkKLSAgICAgICAgICAgIGRpcmVjdGlvbiA9IFNjcm9sbERvd247Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGRpcmVjdGlvbiA9IFNjcm9sbFVwOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEdUS19NT1ZFTUVOVF9CVUZGRVJfRU5EUzoKLSAgICAgICAgZ3JhbnVsYXJp
dHkgPSBTY3JvbGxCeURvY3VtZW50OwotICAgICAgICBpZiAoY291bnQgPT0gMSkKLSAgICAgICAg
ICAgIGRpcmVjdGlvbiA9IFNjcm9sbERvd247Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRp
cmVjdGlvbiA9IFNjcm9sbFVwOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAg
ICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
Ci0gICAgRnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCkuZm9j
dXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZS5ldmVudEhhbmRsZXIoKS5zY3JvbGxP
dmVyZmxvdyhkaXJlY3Rpb24sIGdyYW51bGFyaXR5KSkKLSAgICAgICAgZnJhbWUudmlldygpLT5z
Y3JvbGwoZGlyZWN0aW9uLCBncmFudWxhcml0eSk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQot
c3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X3JlYWxfcGFzdGVfY2xpcGJvYXJkKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgRnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9j
dXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgZnJhbWUuZWRpdG9yKCku
Y29tbWFuZCgiUGFzdGUiKS5leGVjdXRlKCk7Ci19Ci0KLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRf
d2ViX3ZpZXdfcmVhbF9zaG91bGRfYWxsb3dfZWRpdGluZ19hY3Rpb24oV2ViS2l0V2ViVmlldyop
Ci17Ci0gICAgcmV0dXJuIFRSVUU7Ci19Ci0KLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3Zp
ZXdfcmVhbF9lbnRlcmluZ19mdWxsc2NyZWVuKFdlYktpdFdlYlZpZXcqKQotewotICAgIHJldHVy
biBGQUxTRTsKLX0KLQotc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19yZWFsX2xlYXZp
bmdfZnVsbHNjcmVlbihXZWJLaXRXZWJWaWV3KikKLXsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0K
LXN0YXRpYyB2b2lkIGZpbGVDaG9vc2VyRGlhbG9nUmVzcG9uc2VDYWxsYmFjayhHdGtEaWFsb2cq
IGRpYWxvZywgZ2ludCByZXNwb25zZUlELCBXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QqIHJlcXVl
c3QpCi17Ci0gICAgR1JlZlB0cjxXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3Q+IGFkb3B0ZWRSZXF1
ZXN0ID0gYWRvcHRHUmVmKHJlcXVlc3QpOwotICAgIGlmIChyZXNwb25zZUlEID09IEdUS19SRVNQ
T05TRV9BQ0NFUFQpIHsKLSAgICAgICAgR1VuaXF1ZVB0cjxHU0xpc3Q+IGZpbGVzTGlzdChndGtf
ZmlsZV9jaG9vc2VyX2dldF9maWxlbmFtZXMoR1RLX0ZJTEVfQ0hPT1NFUihkaWFsb2cpKSk7Ci0g
ICAgICAgIEdSZWZQdHI8R1B0ckFycmF5PiBmaWxlc0FycmF5ID0gYWRvcHRHUmVmKGdfcHRyX2Fy
cmF5X25ldygpKTsKLSAgICAgICAgZm9yIChHU0xpc3QqIGZpbGUgPSBmaWxlc0xpc3QuZ2V0KCk7
IGZpbGU7IGZpbGUgPSBnX3NsaXN0X25leHQoZmlsZSkpCi0gICAgICAgICAgICBnX3B0cl9hcnJh
eV9hZGQoZmlsZXNBcnJheS5nZXQoKSwgZmlsZS0+ZGF0YSk7Ci0gICAgICAgIGdfcHRyX2FycmF5
X2FkZChmaWxlc0FycmF5LmdldCgpLCAwKTsKLSAgICAgICAgd2Via2l0X2ZpbGVfY2hvb3Nlcl9y
ZXF1ZXN0X3NlbGVjdF9maWxlcyhhZG9wdGVkUmVxdWVzdC5nZXQoKSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBnY2hhciogY29uc3QqPihmaWxlc0FycmF5LT5wZGF0YSkpOwotICAgIH0KLQotICAg
IGd0a193aWRnZXRfZGVzdHJveShHVEtfV0lER0VUKGRpYWxvZykpOwotfQotCi1zdGF0aWMgZ2Jv
b2xlYW4gd2Via2l0V2ViVmlld1JlYWxSdW5GaWxlQ2hvb3NlcihXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3LCBXZWJLaXRGaWxlQ2hvb3NlclJlcXVlc3QqIHJlcXVlc3QpCi17Ci0gICAgR3RrV2lkZ2V0
KiB0b3BsZXZlbCA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQod2ViVmlldykp
OwotICAgIGlmICghd2lkZ2V0SXNPbnNjcmVlblRvcGxldmVsV2luZG93KHRvcGxldmVsKSkKLSAg
ICAgICAgdG9wbGV2ZWwgPSAwOwotCi0gICAgZ2Jvb2xlYW4gYWxsb3dzTXVsdGlwbGVTZWxlY3Rp
b24gPSB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3RfZ2V0X3NlbGVjdF9tdWx0aXBsZShyZXF1
ZXN0KTsKLSAgICBHdGtXaWRnZXQqIGRpYWxvZyA9IGd0a19maWxlX2Nob29zZXJfZGlhbG9nX25l
dyhhbGxvd3NNdWx0aXBsZVNlbGVjdGlvbiA/IF8oIlNlbGVjdCBGaWxlcyIpIDogXygiU2VsZWN0
IEZpbGUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0b3BsZXZlbCA/IEdUS19XSU5ET1codG9wbGV2ZWwpIDogMCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVEtfRklMRV9DSE9PU0VSX0FD
VElPTl9PUEVOLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdUS19TVE9DS19DQU5DRUwsIEdUS19SRVNQT05TRV9DQU5DRUwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RLX1NUT0NLX09QRU4s
IEdUS19SRVNQT05TRV9BQ0NFUFQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0KLSAgICBpZiAoR3RrRmlsZUZpbHRlciogZmlsdGVy
ID0gd2Via2l0X2ZpbGVfY2hvb3Nlcl9yZXF1ZXN0X2dldF9taW1lX3R5cGVzX2ZpbHRlcihyZXF1
ZXN0KSkKLSAgICAgICAgZ3RrX2ZpbGVfY2hvb3Nlcl9zZXRfZmlsdGVyKEdUS19GSUxFX0NIT09T
RVIoZGlhbG9nKSwgZmlsdGVyKTsKLSAgICBndGtfZmlsZV9jaG9vc2VyX3NldF9zZWxlY3RfbXVs
dGlwbGUoR1RLX0ZJTEVfQ0hPT1NFUihkaWFsb2cpLCBhbGxvd3NNdWx0aXBsZVNlbGVjdGlvbik7
Ci0KLSAgICBpZiAoY29uc3QgZ2NoYXIqIGNvbnN0KiBzZWxlY3RlZEZpbGVzID0gd2Via2l0X2Zp
bGVfY2hvb3Nlcl9yZXF1ZXN0X2dldF9zZWxlY3RlZF9maWxlcyhyZXF1ZXN0KSkKLSAgICAgICAg
Z3RrX2ZpbGVfY2hvb3Nlcl9zZWxlY3RfZmlsZW5hbWUoR1RLX0ZJTEVfQ0hPT1NFUihkaWFsb2cp
LCBzZWxlY3RlZEZpbGVzWzBdKTsKLQotICAgIGdfc2lnbmFsX2Nvbm5lY3QoZGlhbG9nLCAicmVz
cG9uc2UiLCBHX0NBTExCQUNLKGZpbGVDaG9vc2VyRGlhbG9nUmVzcG9uc2VDYWxsYmFjayksIGdf
b2JqZWN0X3JlZihyZXF1ZXN0KSk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGRpYWxvZyk7Ci0KLSAg
ICByZXR1cm4gVFJVRTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Rpc3Bvc2Uo
R09iamVjdCogb2JqZWN0KQotewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRf
V0VCX1ZJRVcob2JqZWN0KTsKLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZp
ZXctPnByaXY7Ci0gICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2VQdHIgPSBwcml2LT5jb3JlUGFn
ZTsKLQotICAgIHByaXYtPmRpc3Bvc2luZyA9IFRSVUU7Ci0KLSAgICAvLyBNYWtlIHN1cmUgR3Rr
QWRqdXN0bWVudFdhdGNoZXIgd29uJ3QgYmUgcmVhY3RpbmcgdG8gYWRqdXN0bWVudCBjaGFuZ2Vz
IGFmdGVyIHRoZQotICAgIC8vIFdlYlZpZXcgaXMgZGVzdHJveWVkLgotICAgIHNldEhvcml6b250
YWxBZGp1c3RtZW50KHdlYlZpZXcsIDApOwotICAgIHNldFZlcnRpY2FsQWRqdXN0bWVudCh3ZWJW
aWV3LCAwKTsKLQotICAgIC8vIFRoZXNlIHNtYXJ0IHBvaW50ZXJzIGFyZSBjbGVhcmVkIG1hbnVh
bGx5LCBiZWNhdXNlIHNvbWUgY2xlYW51cCBvcGVyYXRpb25zIGFyZQotICAgIC8vIHZlcnkgc2Vu
c2l0aXZlIHRvIHRoZWlyIHZhbHVlLiBXZSBtYXkgY3Jhc2ggaWYgdGhlc2UgYXJlIGRvbmUgaW4g
dGhlIHdyb25nIG9yZGVyLgotICAgIHByaXYtPmJhY2tGb3J3YXJkTGlzdC5jbGVhcigpOwotCi0g
ICAgaWYgKHByaXYtPmNvcmVQYWdlKSB7Ci0gICAgICAgIHdlYmtpdF93ZWJfdmlld19zdG9wX2xv
YWRpbmcoV0VCS0lUX1dFQl9WSUVXKG9iamVjdCkpOwotICAgICAgICBjb3JlKHByaXYtPm1haW5G
cmFtZSktPmxvYWRlcigpLmRldGFjaEZyb21QYXJlbnQoKTsKLSAgICAgICAgcHJpdi0+Y29yZVBh
Z2UgPSAwOwotICAgIH0KLQotICAgIGlmIChwcml2LT53ZWJTZXR0aW5ncykgewotICAgICAgICBn
X3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMocHJpdi0+d2ViU2V0dGluZ3MuZ2V0
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3Rp
ZnkpLCB3ZWJWaWV3KTsKLSAgICAgICAgcHJpdi0+d2ViU2V0dGluZ3MuY2xlYXIoKTsKLSAgICB9
Ci0KLSAgICBpZiAocHJpdi0+Y3VycmVudE1lbnUpIHsKLSAgICAgICAgZ3RrX3dpZGdldF9kZXN0
cm95KEdUS19XSURHRVQocHJpdi0+Y3VycmVudE1lbnUpKTsKLSAgICAgICAgcHJpdi0+Y3VycmVu
dE1lbnUgPSAwOwotICAgIH0KLQotICAgIHByaXYtPndlYkluc3BlY3Rvci5jbGVhcigpOwotICAg
IHByaXYtPnZpZXdwb3J0QXR0cmlidXRlcy5jbGVhcigpOwotICAgIHByaXYtPndlYldpbmRvd0Zl
YXR1cmVzLmNsZWFyKCk7Ci0gICAgcHJpdi0+bWFpblJlc291cmNlLmNsZWFyKCk7Ci0gICAgcHJp
di0+c3ViUmVzb3VyY2VzLmNsZWFyKCk7Ci0gICAgcHJpdi0+dGFyZ2V0TGlzdC5jbGVhcigpOwot
Ci0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmRpc3Bv
c2Uob2JqZWN0KTsKLQotICAgIC8vIFdlIG5lZWQgdG8gcnVuIHRoZSBwYXJlbnQncyBkaXNwb3Nl
IGJlZm9yZSBkZXN0cm95aW5nIHRoZSBQYWdlCi0gICAgLy8gcG9pbnRlci4gT3RoZXJ3aXNlIHdl
J3JlIHRyaWdnZXJpbmcgdGhlIGRlbGV0aW9uIG9mCi0gICAgLy8gSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQgYmVmb3JlIGl0IGNhbiBjbGVhbiB1cCBpdHNlbGYuCi0gICAgZGVsZXRlIGNvcmVQYWdl
UHRyOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZmluYWxpemUoR09iamVjdCog
b2JqZWN0KQotewotICAgIC8vIFdlIG5lZWQgdG8gbWFudWFsbHkgY2FsbCB0aGUgZGVzdHJ1Y3Rv
ciBoZXJlLCBzaW5jZSB0aGlzIG9iamVjdCdzIG1lbW9yeSBpcyBtYW5hZ2VkCi0gICAgLy8gYnkg
R0xpYi4gVGhpcyBjYWxscyBhbGwgQysrIG1lbWJlcnMnIGRlc3RydWN0b3JzIGFuZCBwcmV2ZW50
cyBtZW1vcnkgbGVha3MuCi0gICAgV0VCS0lUX1dFQl9WSUVXKG9iamVjdCktPnByaXYtPn5XZWJL
aXRXZWJWaWV3UHJpdmF0ZSgpOwotICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF93ZWJfdmlld19w
YXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwotfQotCi1zdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0X3NpZ25hbF9hY2N1bXVsYXRvcl9vYmplY3RfaGFuZGxlZChHU2lnbmFsSW52b2NhdGlvbkhp
bnQqLCBHVmFsdWUqIHJldHVybkFjY3UsIGNvbnN0IEdWYWx1ZSogaGFuZGxlclJldHVybiwgZ3Bv
aW50ZXIpCi17Ci0gICAgZ3BvaW50ZXIgbmV3V2ViVmlldyA9IGdfdmFsdWVfZ2V0X29iamVjdCho
YW5kbGVyUmV0dXJuKTsKLSAgICBnX3ZhbHVlX3NldF9vYmplY3QocmV0dXJuQWNjdSwgbmV3V2Vi
Vmlldyk7Ci0KLSAgICAvLyBDb250aW51ZSBpZiB3ZSBkb24ndCBoYXZlIGEgbmV3V2ViVmlldwot
ICAgIHJldHVybiAhbmV3V2ViVmlldzsKLX0KLQotc3RhdGljIGdib29sZWFuIHdlYmtpdF9uYXZp
Z2F0aW9uX3JlcXVlc3RfaGFuZGxlZChHU2lnbmFsSW52b2NhdGlvbkhpbnQqLCBHVmFsdWUqIHJl
dHVybkFjY3UsIGNvbnN0IEdWYWx1ZSogaGFuZGxlclJldHVybiwgZ3BvaW50ZXIpCi17Ci0gICAg
V2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlIG5hdmlnYXRpb25SZXNwb25zZSA9IChXZWJLaXROYXZp
Z2F0aW9uUmVzcG9uc2UpZ192YWx1ZV9nZXRfZW51bShoYW5kbGVyUmV0dXJuKTsKLSAgICBnX3Zh
bHVlX3NldF9lbnVtKHJldHVybkFjY3UsIG5hdmlnYXRpb25SZXNwb25zZSk7Ci0KLSAgICBpZiAo
bmF2aWdhdGlvblJlc3BvbnNlICE9IFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQVCkK
LSAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAgcmV0dXJuIFRSVUU7Ci19Ci0KLSNpZiBIQVZF
KEFDQ0VTU0lCSUxJVFkpCi1zdGF0aWMgQXRrT2JqZWN0KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Fj
Y2Vzc2libGUoR3RrV2lkZ2V0KiB3aWRnZXQpCi17Ci0gICAgV2ViS2l0V2ViVmlldyogd2ViVmll
dyA9IFdFQktJVF9XRUJfVklFVyh3aWRnZXQpOwotICAgIGlmICghY29yZSh3ZWJWaWV3KSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoIUFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlF
bmFibGVkKCkpCi0gICAgICAgIEFYT2JqZWN0Q2FjaGU6OmVuYWJsZUFjY2Vzc2liaWxpdHkoKTsK
LQotICAgIEZyYW1lJiBjb3JlRnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKTsKLQot
ICAgIERvY3VtZW50KiBkb2MgPSBjb3JlRnJhbWUuZG9jdW1lbnQoKTsKLSAgICBpZiAoIWRvYykK
LSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290QWNjZXNz
aWJsZSA9IGRvYy0+YXhPYmplY3RDYWNoZSgpLT5yb290T2JqZWN0KCk7Ci0gICAgaWYgKCFyb290
QWNjZXNzaWJsZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBdGtPYmplY3QqIGF4Um9vdCA9
IHJvb3RBY2Nlc3NpYmxlLT53cmFwcGVyKCk7Ci0gICAgaWYgKCFheFJvb3QgfHwgIUFUS19JU19P
QkpFQ1QoYXhSb290KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAvLyBFbnN1cmUgdGhlIHBh
cmVudCBpcyBzZXQgdG8gbWFrZSB0b3AtZG93biBhbmQgYm90dG9tLXVwIG5hdmlnYXRpb24gd29y
ay4KLSAgICBHdGtXaWRnZXQqIHBhcmVudFdpZGdldCA9IGd0a193aWRnZXRfZ2V0X3BhcmVudCh3
aWRnZXQpOwotICAgIEF0a09iamVjdCogYXhQYXJlbnQgPSBwYXJlbnRXaWRnZXQgPyBndGtfd2lk
Z2V0X2dldF9hY2Nlc3NpYmxlKHBhcmVudFdpZGdldCkgOiAwOwotICAgIGlmIChheFBhcmVudCkK
LSAgICAgICAgYXRrX29iamVjdF9zZXRfcGFyZW50KGF4Um9vdCwgYXhQYXJlbnQpOwotCi0gICAg
cmV0dXJuIGF4Um9vdDsKLX0KLSNlbmRpZgotCi1zdGF0aWMgZG91YmxlIHNjcmVlbkRQSShHZGtT
Y3JlZW4qIHNjcmVlbikKLXsKLSAgICAvLyBnZGtfc2NyZWVuX2dldF9yZXNvbHV0aW9uKCkgcmV0
dXJucyAtMSB3aGVuIG5vIERQSSBpcyBzZXQuCi0gICAgZG91YmxlIGRwaSA9IGdka19zY3JlZW5f
Z2V0X3Jlc29sdXRpb24oc2NyZWVuKTsKLSAgICBpZiAoZHBpICE9IC0xKQotICAgICAgICByZXR1
cm4gZHBpOwotCi0gICAgc3RhdGljIGNvbnN0IGRvdWJsZSBrTWlsbGltZXRyZXNQZXJJbmNoID0g
MjUuNDsKLSAgICBkb3VibGUgZGlhZ29uYWxTaXplSW5QaXhlbHMgPSBoeXBvdChnZGtfc2NyZWVu
X2dldF93aWR0aChzY3JlZW4pLCBnZGtfc2NyZWVuX2dldF9oZWlnaHQoc2NyZWVuKSk7Ci0gICAg
ZG91YmxlIGRpYWdvbmFsU2l6ZUluSW5jaGVzID0gaHlwb3QoZ2RrX3NjcmVlbl9nZXRfd2lkdGhf
bW0oc2NyZWVuKSwgZ2RrX3NjcmVlbl9nZXRfaGVpZ2h0X21tKHNjcmVlbikpIC8ga01pbGxpbWV0
cmVzUGVySW5jaDsKLSAgICByZXR1cm4gZGlhZ29uYWxTaXplSW5QaXhlbHMgLyBkaWFnb25hbFNp
emVJbkluY2hlczsKLX0KLQotc3RhdGljIGdkb3VibGUgd2ViVmlld0dldERQSShXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQotewotICAgIGlmICh3ZWJWaWV3LT5wcml2LT53ZWJTZXR0aW5ncy0+cHJp
di0+ZW5mb3JjZTk2RFBJKQotICAgICAgICByZXR1cm4gOTY7Ci0KLSAgICBzdGF0aWMgY29uc3Qg
ZG91YmxlIGRlZmF1bHREUEkgPSA5NjsKLSAgICBHZGtTY3JlZW4qIHNjcmVlbiA9IGd0a193aWRn
ZXRfaGFzX3NjcmVlbihHVEtfV0lER0VUKHdlYlZpZXcpKSA/IGd0a193aWRnZXRfZ2V0X3NjcmVl
bihHVEtfV0lER0VUKHdlYlZpZXcpKSA6IGdka19zY3JlZW5fZ2V0X2RlZmF1bHQoKTsKLSAgICBy
ZXR1cm4gc2NyZWVuID8gc2NyZWVuRFBJKHNjcmVlbikgOiBkZWZhdWx0RFBJOwotfQotCi1zdGF0
aWMgaW5saW5lIGdpbnQgd2ViVmlld0NvbnZlcnRGb250U2l6ZVRvUGl4ZWxzKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIGRvdWJsZSBmb250U2l6ZSkKLXsKLSAgICByZXR1cm4gZm9udFNpemUgLyA3
Mi4wICogd2ViVmlld0dldERQSSh3ZWJWaWV3KTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X3NjcmVlbl9jaGFuZ2VkKEd0a1dpZGdldCogd2lkZ2V0LCBHZGtTY3JlZW4qKQotewot
ICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKLSAg
ICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0KLSAgICBpZiAo
cHJpdi0+ZGlzcG9zaW5nKQotICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJLaXRXZWJTZXR0aW5n
cyogd2ViU2V0dGluZ3MgPSBwcml2LT53ZWJTZXR0aW5ncy5nZXQoKTsKLSAgICBTZXR0aW5ncyYg
c2V0dGluZ3MgPSBjb3JlKHdlYlZpZXcpLT5zZXR0aW5ncygpOwotICAgIGd1aW50IGRlZmF1bHRG
b250U2l6ZSwgZGVmYXVsdE1vbm9zcGFjZUZvbnRTaXplLCBtaW5pbXVtRm9udFNpemUsIG1pbmlt
dW1Mb2dpY2FsRm9udFNpemU7Ci0KLSAgICBnX29iamVjdF9nZXQod2ViU2V0dGluZ3MsCi0gICAg
ICAgICAgICAgICAgICJkZWZhdWx0LWZvbnQtc2l6ZSIsICZkZWZhdWx0Rm9udFNpemUsCi0gICAg
ICAgICAgICAgICAgICJkZWZhdWx0LW1vbm9zcGFjZS1mb250LXNpemUiLCAmZGVmYXVsdE1vbm9z
cGFjZUZvbnRTaXplLAotICAgICAgICAgICAgICAgICAibWluaW11bS1mb250LXNpemUiLCAmbWlu
aW11bUZvbnRTaXplLAotICAgICAgICAgICAgICAgICAibWluaW11bS1sb2dpY2FsLWZvbnQtc2l6
ZSIsICZtaW5pbXVtTG9naWNhbEZvbnRTaXplLAotICAgICAgICAgICAgICAgICBOVUxMKTsKLQot
ICAgIHNldHRpbmdzLnNldERlZmF1bHRGb250U2l6ZSh3ZWJWaWV3Q29udmVydEZvbnRTaXplVG9Q
aXhlbHMod2ViVmlldywgZGVmYXVsdEZvbnRTaXplKSk7Ci0gICAgc2V0dGluZ3Muc2V0RGVmYXVs
dEZpeGVkRm9udFNpemUod2ViVmlld0NvbnZlcnRGb250U2l6ZVRvUGl4ZWxzKHdlYlZpZXcsIGRl
ZmF1bHRNb25vc3BhY2VGb250U2l6ZSkpOwotICAgIHNldHRpbmdzLnNldE1pbmltdW1Gb250U2l6
ZSh3ZWJWaWV3Q29udmVydEZvbnRTaXplVG9QaXhlbHMod2ViVmlldywgbWluaW11bUZvbnRTaXpl
KSk7Ci0gICAgc2V0dGluZ3Muc2V0TWluaW11bUxvZ2ljYWxGb250U2l6ZSh3ZWJWaWV3Q29udmVy
dEZvbnRTaXplVG9QaXhlbHMod2ViVmlldywgbWluaW11bUxvZ2ljYWxGb250U2l6ZSkpOwotfQot
Ci0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19k
cmFnX2VuZChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGNvbnRleHQpCi17Ci0g
ICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3aWRnZXQpOwotICAg
IGlmICghd2ViVmlldy0+cHJpdi0+ZHJhZ0FuZERyb3BIZWxwZXIuaGFuZGxlRHJhZ0VuZChjb250
ZXh0KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3
KS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0KLSAgICAvLyBTeW50
aGVzaXplIGEgYnV0dG9uIHJlbGVhc2UgZXZlbnQgdG8gc2VuZCB3aXRoIHRoZSBkcmFnIGVuZCBh
Y3Rpb24uCi0gICAgR1VuaXF1ZVB0cjxHZGtFdmVudD4gZXZlbnQoZ2RrX2V2ZW50X25ldyhHREtf
QlVUVE9OX1JFTEVBU0UpKTsKLSAgICBpbnQgeCwgeSwgeFJvb3QsIHlSb290OwotICAgIEdka01v
ZGlmaWVyVHlwZSBtb2RpZmllcnMgPSBzdGF0aWNfY2FzdDxHZGtNb2RpZmllclR5cGU+KDApOwot
I2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi0gICAgR2RrRGlzcGxheSogZGlzcGxheSA9IGdka19k
aXNwbGF5X2dldF9kZWZhdWx0KCk7Ci0gICAgZ2RrX2Rpc3BsYXlfZ2V0X3BvaW50ZXIoZGlzcGxh
eSwgMCwgJnhSb290LCAmeVJvb3QsICZtb2RpZmllcnMpOwotICAgIGV2ZW50LT5idXR0b24ud2lu
ZG93ID0gZ2RrX2Rpc3BsYXlfZ2V0X3dpbmRvd19hdF9wb2ludGVyKGRpc3BsYXksICZ4LCAmeSk7
Ci0jZWxzZQotICAgIEdka0RldmljZSogZGV2aWNlID0gZ2RrX2RyYWdfY29udGV4dF9nZXRfZGV2
aWNlKGNvbnRleHQpOwotICAgIGV2ZW50LT5idXR0b24ud2luZG93ID0gZ2RrX2RldmljZV9nZXRf
d2luZG93X2F0X3Bvc2l0aW9uKGRldmljZSwgJngsICZ5KTsKLSAgICBnZGtfZGV2aWNlX2dldF9w
b3NpdGlvbihkZXZpY2UsIDAsICZ4Um9vdCwgJnlSb290KTsKLSNlbmRpZgotCi0gICAgaWYgKGV2
ZW50LT5idXR0b24ud2luZG93KQotICAgICAgICBnX29iamVjdF9yZWYoZXZlbnQtPmJ1dHRvbi53
aW5kb3cpOwotICAgIGV2ZW50LT5idXR0b24ueCA9IHg7Ci0gICAgZXZlbnQtPmJ1dHRvbi55ID0g
eTsKLSAgICBldmVudC0+YnV0dG9uLnhfcm9vdCA9IHhSb290OwotICAgIGV2ZW50LT5idXR0b24u
eV9yb290ID0geVJvb3Q7Ci0gICAgZXZlbnQtPmJ1dHRvbi5zdGF0ZSA9IG1vZGlmaWVyczsKLQot
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBwbGF0Zm9ybUV2ZW50KCZldmVudC0+YnV0dG9uKTsKLSAg
ICBmcmFtZS5ldmVudEhhbmRsZXIoKS5kcmFnU291cmNlRW5kZWRBdChwbGF0Zm9ybUV2ZW50LCBn
ZGtEcmFnQWN0aW9uVG9EcmFnT3BlcmF0aW9uKGdka19kcmFnX2NvbnRleHRfZ2V0X3NlbGVjdGVk
X2FjdGlvbihjb250ZXh0KSkpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZHJh
Z19kYXRhX2dldChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGNvbnRleHQsIEd0
a1NlbGVjdGlvbkRhdGEqIHNlbGVjdGlvbkRhdGEsIGd1aW50IGluZm8sIGd1aW50KQotewotICAg
IFdFQktJVF9XRUJfVklFVyh3aWRnZXQpLT5wcml2LT5kcmFnQW5kRHJvcEhlbHBlci5oYW5kbGVH
ZXREcmFnRGF0YShjb250ZXh0LCBzZWxlY3Rpb25EYXRhLCBpbmZvKTsKLX0KLQotc3RhdGljIHZv
aWQgZHJhZ0V4aXRlZENhbGxiYWNrKEd0a1dpZGdldCogd2lkZ2V0LCBEcmFnRGF0YSYgZHJhZ0Rh
dGEsIGJvb2wgZHJvcEhhcHBlbmVkKQotewotICAgIC8vIERvbid0IGNhbGwgZHJhZ0V4aXRlZCBp
ZiB3ZSBoYXZlIGp1c3QgcmVjZWl2ZWQgYSBkcmFnLWRyb3Agc2lnbmFsLiBUaGlzCi0gICAgLy8g
aGFwcGVucyBpbiB0aGUgY2FzZSBvZiBhIHN1Y2Nlc3NmdWwgZHJvcCBvbnRvIHRoZSB2aWV3Lgot
ICAgIGlmICghZHJvcEhhcHBlbmVkKQotICAgICAgICBjb3JlKFdFQktJVF9XRUJfVklFVyh3aWRn
ZXQpKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRXhpdGVkKGRyYWdEYXRhKTsKLSAgICBjb3JlKFdF
QktJVF9XRUJfVklFVyh3aWRnZXQpKS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRW5kZWQoKTsKLX0K
LQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2RyYWdfbGVhdmUoR3RrV2lkZ2V0KiB3aWRn
ZXQsIEdka0RyYWdDb250ZXh0KiBjb250ZXh0LCBndWludCAvKiB0aW1lICovKQotewotICAgIFdF
QktJVF9XRUJfVklFVyh3aWRnZXQpLT5wcml2LT5kcmFnQW5kRHJvcEhlbHBlci5oYW5kbGVEcmFn
TGVhdmUoY29udGV4dCwgZHJhZ0V4aXRlZENhbGxiYWNrKTsKLX0KLQotc3RhdGljIGdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19kcmFnX21vdGlvbihHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0Nv
bnRleHQqIGNvbnRleHQsIGdpbnQgeCwgZ2ludCB5LCBndWludCB0aW1lKQotewotICAgIFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKLSAgICBJbnRQb2lu
dCBwb3NpdGlvbih4LCB5KTsKLSAgICBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0ID0gd2ViVmll
dy0+cHJpdi0+ZHJhZ0FuZERyb3BIZWxwZXIuaGFuZGxlRHJhZ01vdGlvbihjb250ZXh0LCBwb3Np
dGlvbiwgdGltZSk7Ci0gICAgaWYgKCFkYXRhT2JqZWN0KQotICAgICAgICByZXR1cm4gVFJVRTsK
LQotICAgIERyYWdEYXRhIGRyYWdEYXRhKGRhdGFPYmplY3QsIHBvc2l0aW9uLCBjb252ZXJ0V2lk
Z2V0UG9pbnRUb1NjcmVlblBvaW50KHdpZGdldCwgcG9zaXRpb24pLCBnZGtEcmFnQWN0aW9uVG9E
cmFnT3BlcmF0aW9uKGdka19kcmFnX2NvbnRleHRfZ2V0X2FjdGlvbnMoY29udGV4dCkpKTsKLSAg
ICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IGNvcmUod2ViVmlldyktPmRyYWdDb250cm9sbGVy
KCkuZHJhZ1VwZGF0ZWQoZHJhZ0RhdGEpLm9wZXJhdGlvbjsKLSAgICBnZGtfZHJhZ19zdGF0dXMo
Y29udGV4dCwgZHJhZ09wZXJhdGlvblRvU2luZ2xlR2RrRHJhZ0FjdGlvbihvcGVyYXRpb24pLCB0
aW1lKTsKLSAgICByZXR1cm4gVFJVRTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X2RyYWdfZGF0YV9yZWNlaXZlZChHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGNv
bnRleHQsIGdpbnQgLyogeCAqLywgZ2ludCAvKiB5ICovLCBHdGtTZWxlY3Rpb25EYXRhKiBzZWxl
Y3Rpb25EYXRhLCBndWludCBpbmZvLCBndWludCB0aW1lKQotewotICAgIFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KTsKLSAgICBJbnRQb2ludCBwb3NpdGlv
bjsKLSAgICBEYXRhT2JqZWN0R3RrKiBkYXRhT2JqZWN0ID0gd2ViVmlldy0+cHJpdi0+ZHJhZ0Fu
ZERyb3BIZWxwZXIuaGFuZGxlRHJhZ0RhdGFSZWNlaXZlZChjb250ZXh0LCBzZWxlY3Rpb25EYXRh
LCBpbmZvLCBwb3NpdGlvbik7Ci0gICAgaWYgKCFkYXRhT2JqZWN0KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBEcmFnRGF0YSBkcmFnRGF0YShkYXRhT2JqZWN0LCBwb3NpdGlvbiwgY29udmVydFdp
ZGdldFBvaW50VG9TY3JlZW5Qb2ludCh3aWRnZXQsIHBvc2l0aW9uKSwgZ2RrRHJhZ0FjdGlvblRv
RHJhZ09wZXJhdGlvbihnZGtfZHJhZ19jb250ZXh0X2dldF9hY3Rpb25zKGNvbnRleHQpKSk7Ci0g
ICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBjb3JlKHdlYlZpZXcpLT5kcmFnQ29udHJvbGxl
cigpLmRyYWdFbnRlcmVkKGRyYWdEYXRhKS5vcGVyYXRpb247Ci0gICAgZ2RrX2RyYWdfc3RhdHVz
KGNvbnRleHQsIGRyYWdPcGVyYXRpb25Ub1NpbmdsZUdka0RyYWdBY3Rpb24ob3BlcmF0aW9uKSwg
dGltZSk7Ci19Ci0KLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZHJhZ19kcm9wKEd0
a1dpZGdldCogd2lkZ2V0LCBHZGtEcmFnQ29udGV4dCogY29udGV4dCwgZ2ludCB4LCBnaW50IHks
IGd1aW50IHRpbWUpCi17Ci0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJf
VklFVyh3aWRnZXQpOwotICAgIERhdGFPYmplY3RHdGsqIGRhdGFPYmplY3QgPSB3ZWJWaWV3LT5w
cml2LT5kcmFnQW5kRHJvcEhlbHBlci5oYW5kbGVEcmFnRHJvcChjb250ZXh0KTsKLSAgICBpZiAo
IWRhdGFPYmplY3QpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIEludFBvaW50IHBvc2l0
aW9uKHgsIHkpOwotICAgIERyYWdEYXRhIGRyYWdEYXRhKGRhdGFPYmplY3QsIHBvc2l0aW9uLCBj
b252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVlblBvaW50KHdpZGdldCwgcG9zaXRpb24pLCBnZGtEcmFn
QWN0aW9uVG9EcmFnT3BlcmF0aW9uKGdka19kcmFnX2NvbnRleHRfZ2V0X2FjdGlvbnMoY29udGV4
dCkpKTsKLSAgICBjb3JlKHdlYlZpZXcpLT5kcmFnQ29udHJvbGxlcigpLnBlcmZvcm1EcmFnKGRy
YWdEYXRhKTsKLSAgICBndGtfZHJhZ19maW5pc2goY29udGV4dCwgVFJVRSwgRkFMU0UsIHRpbWUp
OwotICAgIHJldHVybiBUUlVFOwotfQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0K
LXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfcXVlcnlfdG9vbHRpcChHdGtXaWRnZXQg
KndpZGdldCwgZ2ludCAvKiB4ICovLCBnaW50IC8qIHkgKi8sIGdib29sZWFuIGtleWJvYXJkX21v
ZGUsIEd0a1Rvb2x0aXAgKnRvb2x0aXApCi17Ci0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHBy
aXYgPSBXRUJLSVRfV0VCX1ZJRVcod2lkZ2V0KS0+cHJpdjsKLQotICAgIGlmIChrZXlib2FyZF9t
b2RlKSB7Ci0gICAgICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVco
d2lkZ2V0KTsKLQotICAgICAgICAvLyBHZXQgdGhlIHRpdGxlIG9mIHRoZSBjdXJyZW50IGZvY3Vz
ZWQgZWxlbWVudC4KLSAgICAgICAgRnJhbWUmIGNvcmVGcmFtZSA9IGNvcmUod2ViVmlldyktPmZv
Y3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotCi0gICAgICAgIE5vZGUqIG5v
ZGUgPSBnZXRGb2N1c2VkTm9kZSgmY29yZUZyYW1lKTsKLSAgICAgICAgaWYgKCFub2RlKQotICAg
ICAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAgICAgIGZvciAoTm9kZSogdGl0bGVOb2RlID0g
bm9kZTsgdGl0bGVOb2RlOyB0aXRsZU5vZGUgPSB0aXRsZU5vZGUtPnBhcmVudE5vZGUoKSkgewot
ICAgICAgICAgICAgaWYgKHRpdGxlTm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgICAg
ICAgICAgU3RyaW5nIHRpdGxlID0gdG9FbGVtZW50KHRpdGxlTm9kZSktPnRpdGxlKCk7Ci0gICAg
ICAgICAgICAgICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKEZyYW1lVmlldyogdmlldyA9IGNvcmVGcmFtZS52aWV3KCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIEdka1JlY3RhbmdsZSBhcmVhID0gdmlldy0+Y29udGVudHNUb1dpbmRvdyhub2Rl
LT5waXhlbFNuYXBwZWRCb3VuZGluZ0JveCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGd0
a190b29sdGlwX3NldF90aXBfYXJlYSh0b29sdGlwLCAmYXJlYSk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZ3RrX3Rvb2x0aXBfc2V0X3RleHQodG9vbHRpcCwg
dGl0bGUudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRSVUU7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAg
cmV0dXJuIEZBTFNFOwotICAgIH0KLQotICAgIGlmIChwcml2LT50b29sdGlwVGV4dC5sZW5ndGgo
KSA+IDApIHsKLSAgICAgICAgaWYgKCFrZXlib2FyZF9tb2RlKSB7Ci0gICAgICAgICAgICBpZiAo
IXByaXYtPnRvb2x0aXBBcmVhLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIEdka1JlY3Rh
bmdsZSBhcmVhID0gcHJpdi0+dG9vbHRpcEFyZWE7Ci0gICAgICAgICAgICAgICAgZ3RrX3Rvb2x0
aXBfc2V0X3RpcF9hcmVhKHRvb2x0aXAsICZhcmVhKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgICAgIGd0a190b29sdGlwX3NldF90aXBfYXJlYSh0b29sdGlwLCAwKTsKLSAgICAg
ICAgfQotICAgICAgICBndGtfdG9vbHRpcF9zZXRfdGV4dCh0b29sdGlwLCBwcml2LT50b29sdGlw
VGV4dC5kYXRhKCkpOwotICAgICAgICByZXR1cm4gVFJVRTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
RkFMU0U7Ci19Ci0KLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfc2hvd19oZWxwKEd0
a1dpZGdldCogd2lkZ2V0LCBHdGtXaWRnZXRIZWxwVHlwZSBoZWxwX3R5cGUpCi17Ci0gICAgaWYg
KGhlbHBfdHlwZSA9PSBHVEtfV0lER0VUX0hFTFBfVE9PTFRJUCkKLSAgICAgICAgZ3RrX3dpZGdl
dF9zZXRfaGFzX3Rvb2x0aXAod2lkZ2V0LCBUUlVFKTsKLQotICAgIHJldHVybiBHVEtfV0lER0VU
X0NMQVNTKHdlYmtpdF93ZWJfdmlld19wYXJlbnRfY2xhc3MpLT5zaG93X2hlbHAod2lkZ2V0LCBo
ZWxwX3R5cGUpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChX
ZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKLXsKLSAgICBHdGtCaW5kaW5nU2V0KiBi
aW5kaW5nX3NldDsKLQotICAgIHdlYmtpdEluaXQoKTsKLQotICAgIC8qCi0gICAgICogU2lnbmFs
cwotICAgICAqLwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6Y3JlYXRlLXdlYi12
aWV3OgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlz
IGVtaXR0ZWQKLSAgICAgKiBAZnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUKLSAgICAgKgotICAg
ICAqIEVtaXR0ZWQgd2hlbiB0aGUgY3JlYXRpb24gb2YgYSBuZXcgd2luZG93IGlzIHJlcXVlc3Rl
ZC4KLSAgICAgKiBJZiB0aGlzIHNpZ25hbCBpcyBoYW5kbGVkIHRoZSBzaWduYWwgaGFuZGxlciBz
aG91bGQgcmV0dXJuIHRoZQotICAgICAqIG5ld2x5IGNyZWF0ZWQgI1dlYktpdFdlYlZpZXcuCi0g
ICAgICoKLSAgICAgKiBUaGUgbmV3ICNXZWJLaXRXZWJWaWV3IHNob3VsZCBub3QgYmUgZGlzcGxh
eWVkIHRvIHRoZSB1c2VyCi0gICAgICogdW50aWwgdGhlICNXZWJLaXRXZWJWaWV3Ojp3ZWItdmll
dy1yZWFkeSBzaWduYWwgaXMgZW1pdHRlZC4KLSAgICAgKgotICAgICAqIFRoZSBzaWduYWwgaGFu
ZGxlcnMgc2hvdWxkIG5vdCB0cnkgdG8gZGVhbCB3aXRoIHRoZSByZWZlcmVuY2UgY291bnQgZm9y
Ci0gICAgICogdGhlIG5ldyAjV2ViS2l0V2ViVmlldy4gVGhlIHdpZGdldCB0byB3aGljaCB0aGUg
d2lkZ2V0IGlzIGFkZGVkIHdpbGwKLSAgICAgKiBoYW5kbGUgdGhhdC4KLSAgICAgKgotICAgICAq
IFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIGZ1bGwpOiBhIG5ld2x5IGFsbG9jYXRlZCAjV2ViS2l0
V2ViVmlldywgb3IgJU5VTEwKLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjAuMwotICAgICAqLwot
ICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0NSRUFURV9XRUJfVklFV10gPSBnX3NpZ25hbF9u
ZXcoImNyZWF0ZS13ZWItdmlldyIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdD
bGFzcyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpR19TSUdOQUxfUlVOX0xBU1QsCi0gICAgICAg
IEdfU1RSVUNUX09GRlNFVCAoV2ViS2l0V2ViVmlld0NsYXNzLCBjcmVhdGVfd2ViX3ZpZXcpLAot
ICAgICAgICB3ZWJraXRfc2lnbmFsX2FjY3VtdWxhdG9yX29iamVjdF9oYW5kbGVkLAotICAgICAg
ICBOVUxMLAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9PQkpFQ1RfX09CSkVDVCwKLSAgICAgICAg
V0VCS0lUX1RZUEVfV0VCX1ZJRVcgLCAxLAotICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUp
OwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6d2ViLXZpZXctcmVhZHk6Ci0gICAg
ICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAot
ICAgICAqCi0gICAgICogRW1pdHRlZCBhZnRlciAjV2ViS2l0V2ViVmlldzo6Y3JlYXRlLXdlYi12
aWV3IHdoZW4gdGhlIG5ldyAjV2ViS2l0V2ViVmlldwotICAgICAqIHNob3VsZCBiZSBkaXNwbGF5
ZWQgdG8gdGhlIHVzZXIuIFdoZW4gdGhpcyBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIGFsbCB0
aGUgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRoZSB3aW5kb3cgc2hvdWxkIGxvb2ssIGluY2x1ZGlu
ZwotICAgICAqIHNpemUsIHBvc2l0aW9uLCB3aGV0aGVyIHRoZSBsb2NhdGlvbiwgc3RhdHVzIGFu
ZCBzY3JvbGwgYmFycwotICAgICAqIHNob3VsZCBiZSBkaXNwbGF5ZWQsIGlzIGFscmVhZHkgc2V0
IG9uIHRoZQotICAgICAqICNXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyBvYmplY3QgY29udGFpbmVk
IGJ5IHRoZSAjV2ViS2l0V2ViVmlldy4KLSAgICAgKgotICAgICAqIE5vdGljZSB0aGF0IHNvbWUg
b2YgdGhhdCBpbmZvcm1hdGlvbiBtYXkgY2hhbmdlIGR1cmluZyB0aGUgbGlmZQotICAgICAqIHRp
bWUgb2YgdGhlIHdpbmRvdywgc28geW91IG1heSB3YW50IHRvIGNvbm5lY3QgdG8gdGhlIDo6bm90
aWZ5Ci0gICAgICogc2lnbmFsIG9mIHRoZSAjV2ViS2l0V2ViV2luZG93RmVhdHVyZXMgb2JqZWN0
IHRvIGhhbmRsZSB0aG9zZS4KLSAgICAgKgotICAgICAqIFJldHVybiB2YWx1ZTogJVRSVUUgdG8g
c3RvcCBoYW5kbGVycyBmcm9tIGJlaW5nIGludm9rZWQgZm9yIHRoZSBldmVudCBvcgotICAgICAq
ICVGQUxTRSB0byBwcm9wYWdhdGUgdGhlIGV2ZW50IGZ1cnRlcgotICAgICAqCi0gICAgICogU2lu
Y2U6IDEuMC4zCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbV0VCX1ZJRVdf
UkVBRFldID0gZ19zaWduYWxfbmV3KCJ3ZWItdmlldy1yZWFkeSIsCi0gICAgICAgIEdfVFlQRV9G
Uk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpR19TSUdOQUxf
UlVOX0xBU1QsCi0gICAgICAgIEdfU1RSVUNUX09GRlNFVCAoV2ViS2l0V2ViVmlld0NsYXNzLCB3
ZWJfdmlld19yZWFkeSksCi0gICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxl
ZCwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fVk9JRCwK
LSAgICAgICAgR19UWVBFX0JPT0xFQU4sIDApOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2Vi
Vmlldzo6Y2xvc2Utd2ViLXZpZXc6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdo
aWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqCi0gICAgICogRW1pdHRlZCB3aGVuIGNs
b3NpbmcgYSAjV2ViS2l0V2ViVmlldyBpcyByZXF1ZXN0ZWQuIFRoaXMgb2NjdXJzIHdoZW4gYQot
ICAgICAqIGNhbGwgaXMgbWFkZSBmcm9tIEphdmFTY3JpcHQncyB3aW5kb3cuY2xvc2UgZnVuY3Rp
b24uIFRoZSBkZWZhdWx0Ci0gICAgICogc2lnbmFsIGhhbmRsZXIgZG9lcyBub3QgZG8gYW55dGhp
bmcuIEl0IGlzIHRoZSBvd25lcidzIHJlc3BvbnNpYmlsaXR5Ci0gICAgICogdG8gaGlkZSBvciBk
ZWxldGUgdGhlIHdlYiB2aWV3LCBpZiBuZWNlc3NhcnkuCi0gICAgICoKLSAgICAgKiBSZXR1cm4g
dmFsdWU6ICVUUlVFIHRvIHN0b3AgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZva2VkIGZvciB0aGUg
ZXZlbnQgb3IKLSAgICAgKiAlRkFMU0UgdG8gcHJvcGFnYXRlIHRoZSBldmVudCBmdXJ0ZXIKLSAg
ICAgKgotICAgICAqIFNpbmNlOiAxLjEuMTEKLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdf
c2lnbmFsc1tDTE9TRV9XRUJfVklFV10gPSBnX3NpZ25hbF9uZXcoImNsb3NlLXdlYi12aWV3IiwK
LSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgKEdTaWdu
YWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgR19TVFJVQ1RfT0ZGU0VUIChXZWJL
aXRXZWJWaWV3Q2xhc3MsIGNsb3NlX3dlYl92aWV3KSwKLSAgICAgICAgZ19zaWduYWxfYWNjdW11
bGF0b3JfdHJ1ZV9oYW5kbGVkLAotICAgICAgICBOVUxMLAotICAgICAgICB3ZWJraXRfbWFyc2hh
bF9CT09MRUFOX19WT0lELAotICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMCk7Ci0KLSAgICAvKioK
LSAgICAgKiBXZWJLaXRXZWJWaWV3OjpuYXZpZ2F0aW9uLXJlcXVlc3RlZDoKLSAgICAgKiBAd2Vi
X3ZpZXc6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICog
QGZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHRoYXQgcmVxdWlyZWQgdGhlIG5hdmlnYXRpb24K
LSAgICAgKiBAcmVxdWVzdDogYSAjV2ViS2l0TmV0d29ya1JlcXVlc3QKLSAgICAgKgotICAgICAq
IEVtaXR0ZWQgd2hlbiBAZnJhbWUgcmVxdWVzdHMgYSBuYXZpZ2F0aW9uIHRvIGFub3RoZXIgcGFn
ZS4KLSAgICAgKgotICAgICAqIFJldHVybiB2YWx1ZTogYSAjV2ViS2l0TmF2aWdhdGlvblJlc3Bv
bnNlCi0gICAgICoKLSAgICAgKiBEZXByZWNhdGVkOiBVc2UgV2ViS2l0V2ViVmlldzo6bmF2aWdh
dGlvbi1wb2xpY3ktZGVjaXNpb24tcmVxdWVzdGVkCi0gICAgICogaW5zdGVhZAotICAgICAqLwot
ICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW05BVklHQVRJT05fUkVRVUVTVEVEXSA9IGdfc2ln
bmFsX25ldygibmF2aWdhdGlvbi1yZXF1ZXN0ZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFT
Uyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9MQVNU
LAotICAgICAgICBHX1NUUlVDVF9PRkZTRVQgKFdlYktpdFdlYlZpZXdDbGFzcywgbmF2aWdhdGlv
bl9yZXF1ZXN0ZWQpLAotICAgICAgICB3ZWJraXRfbmF2aWdhdGlvbl9yZXF1ZXN0X2hhbmRsZWQs
Ci0gICAgICAgIE5VTEwsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0VOVU1fX09CSkVDVF9PQkpF
Q1QsCi0gICAgICAgIFdFQktJVF9UWVBFX05BVklHQVRJT05fUkVTUE9OU0UsIDIsCi0gICAgICAg
IFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKLSAgICAgICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVFV
RVNUKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZpZXc6Om5ldy13aW5kb3ctcG9saWN5
LWRlY2lzaW9uLXJlcXVlc3RlZDoKLSAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24gd2hp
Y2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQGZyYW1lOiB0aGUgI1dlYktpdFdlYkZy
YW1lIHRoYXQgcmVxdWlyZWQgdGhlIG5hdmlnYXRpb24KLSAgICAgKiBAcmVxdWVzdDogYSAjV2Vi
S2l0TmV0d29ya1JlcXVlc3QKLSAgICAgKiBAbmF2aWdhdGlvbl9hY3Rpb246IGEgI1dlYktpdFdl
Yk5hdmlnYXRpb25BY3Rpb24KLSAgICAgKiBAcG9saWN5X2RlY2lzaW9uOiBhICNXZWJLaXRXZWJQ
b2xpY3lEZWNpc2lvbgotICAgICAqCi0gICAgICogRW1pdHRlZCB3aGVuIEBmcmFtZSByZXF1ZXN0
cyBvcGVuaW5nIGEgbmV3IHdpbmRvdy4gV2l0aCB0aGlzCi0gICAgICogc2lnbmFsIHRoZSBicm93
c2VyIGNhbiB1c2UgdGhlIGNvbnRleHQgb2YgdGhlIHJlcXVlc3QgdG8gZGVjaWRlCi0gICAgICog
YWJvdXQgdGhlIG5ldyB3aW5kb3cuIElmIHRoZSByZXF1ZXN0IGlzIG5vdCBoYW5kbGVkIHRoZSBk
ZWZhdWx0Ci0gICAgICogYmVoYXZpb3IgaXMgdG8gYWxsb3cgb3BlbmluZyB0aGUgbmV3IHdpbmRv
dyB0byBsb2FkIHRoZSBVUkksCi0gICAgICogd2hpY2ggd2lsbCBjYXVzZSBhIGNyZWF0ZS13ZWIt
dmlldyBzaWduYWwgZW1pc3Npb24gd2hlcmUgdGhlCi0gICAgICogYnJvd3NlciBoYW5kbGVzIHRo
ZSBuZXcgd2luZG93IGFjdGlvbiBidXQgd2l0aG91dCBpbmZvcm1hdGlvbgotICAgICAqIG9mIHRo
ZSBjb250ZXh0IHRoYXQgY2F1c2VkIHRoZSBuYXZpZ2F0aW9uLiBUaGUgZm9sbG93aW5nCi0gICAg
ICogbmF2aWdhdGlvbi1wb2xpY3ktZGVjaXNpb24tcmVxdWVzdGVkIGVtaXNzaW9ucyB3aWxsIGxv
YWQgdGhlCi0gICAgICogcGFnZSBhZnRlciB0aGUgY3JlYXRpb24gb2YgdGhlIG5ldyB3aW5kb3cg
anVzdCB3aXRoIHRoZQotICAgICAqIGluZm9ybWF0aW9uIG9mIHRoaXMgbmV3IG5hdmlnYXRpb24g
Y29udGV4dCwgd2l0aG91dCBhbnkKLSAgICAgKiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYWN0aW9u
IHRoYXQgbWFkZSB0aGlzIG5ldyB3aW5kb3cgdG8gYmUKLSAgICAgKiBvcGVuZWQuCi0gICAgICoK
LSAgICAgKiBOb3RpY2UgdGhhdCBpZiB5b3UgcmV0dXJuIFRSVUUsIG1lYW5pbmcgdGhhdCB5b3Ug
aGFuZGxlZCB0aGUKLSAgICAgKiBzaWduYWwsIHlvdSBhcmUgZXhwZWN0ZWQgdG8gaGF2ZSBkZWNp
ZGVkIHdoYXQgdG8gZG8sIGJ5IGNhbGxpbmcKLSAgICAgKiB3ZWJraXRfd2ViX3BvbGljeV9kZWNp
c2lvbl9pZ25vcmUoKSwKLSAgICAgKiB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl91c2UoKSwg
b3IKLSAgICAgKiB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9kb3dubG9hZCgpIG9uIHRoZSBA
cG9saWN5X2RlY2lzaW9uCi0gICAgICogb2JqZWN0LgotICAgICAqCi0gICAgICogUmV0dXJuIHZh
bHVlOiAlVFJVRSBpZiBhIGRlY2lzaW9uIHdhcyBtYWRlLCAlRkFMU0UgdG8gaGF2ZSB0aGUKLSAg
ICAgKiBkZWZhdWx0IGJlaGF2aW9yIGFwcGx5Ci0gICAgICoKLSAgICAgKiBTaW5jZTogMS4xLjQK
LSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tORVdfV0lORE9XX1BPTElDWV9E
RUNJU0lPTl9SRVFVRVNURURdID0gZ19zaWduYWxfbmV3KCJuZXctd2luZG93LXBvbGljeS1kZWNp
c2lvbi1yZXF1ZXN0ZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3Mp
LAotICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAot
ICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0gICAgICAgIE5VTEws
Ci0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09CSkVDVF9PQkpFQ1RfT0JKRUNUX09C
SkVDVCwKLSAgICAgICAgR19UWVBFX0JPT0xFQU4sIDQsCi0gICAgICAgIFdFQktJVF9UWVBFX1dF
Ql9GUkFNRSwKLSAgICAgICAgV0VCS0lUX1RZUEVfTkVUV09SS19SRVFVRVNULAotICAgICAgICBX
RUJLSVRfVFlQRV9XRUJfTkFWSUdBVElPTl9BQ1RJT04sCi0gICAgICAgIFdFQktJVF9UWVBFX1dF
Ql9QT0xJQ1lfREVDSVNJT04pOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6bmF2
aWdhdGlvbi1wb2xpY3ktZGVjaXNpb24tcmVxdWVzdGVkOgotICAgICAqIEB3ZWJfdmlldzogdGhl
IG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKLSAgICAgKiBAZnJhbWU6IHRo
ZSAjV2ViS2l0V2ViRnJhbWUgdGhhdCByZXF1aXJlZCB0aGUgbmF2aWdhdGlvbgotICAgICAqIEBy
ZXF1ZXN0OiBhICNXZWJLaXROZXR3b3JrUmVxdWVzdAotICAgICAqIEBuYXZpZ2F0aW9uX2FjdGlv
bjogYSAjV2ViS2l0V2ViTmF2aWdhdGlvbkFjdGlvbgotICAgICAqIEBwb2xpY3lfZGVjaXNpb246
IGEgI1dlYktpdFdlYlBvbGljeURlY2lzaW9uCi0gICAgICoKLSAgICAgKiBFbWl0dGVkIHdoZW4g
QGZyYW1lIHJlcXVlc3RzIGEgbmF2aWdhdGlvbiB0byBhbm90aGVyIHBhZ2UuCi0gICAgICogSWYg
dGhpcyBzaWduYWwgaXMgbm90IGhhbmRsZWQsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIGFs
bG93IHRoZQotICAgICAqIG5hdmlnYXRpb24uCi0gICAgICoKLSAgICAgKiBOb3RpY2UgdGhhdCBp
ZiB5b3UgcmV0dXJuIFRSVUUsIG1lYW5pbmcgdGhhdCB5b3UgaGFuZGxlZCB0aGUKLSAgICAgKiBz
aWduYWwsIHlvdSBhcmUgZXhwZWN0ZWQgdG8gaGF2ZSBkZWNpZGVkIHdoYXQgdG8gZG8sIGJ5IGNh
bGxpbmcKLSAgICAgKiB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9pZ25vcmUoKSwKLSAgICAg
KiB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl91c2UoKSwgb3IKLSAgICAgKiB3ZWJraXRfd2Vi
X3BvbGljeV9kZWNpc2lvbl9kb3dubG9hZCgpIG9uIHRoZSBAcG9saWN5X2RlY2lzaW9uCi0gICAg
ICogb2JqZWN0LgotICAgICAqCi0gICAgICogUmV0dXJuIHZhbHVlOiAlVFJVRSBpZiBhIGRlY2lz
aW9uIHdhcyBtYWRlLCAlRkFMU0UgdG8gaGF2ZSB0aGUKLSAgICAgKiBkZWZhdWx0IGJlaGF2aW9y
IGFwcGx5Ci0gICAgICoKLSAgICAgKiBTaW5jZTogMS4wLjMKLSAgICAgKi8KLSAgICB3ZWJraXRf
d2ViX3ZpZXdfc2lnbmFsc1tOQVZJR0FUSU9OX1BPTElDWV9ERUNJU0lPTl9SRVFVRVNURURdID0g
Z19zaWduYWxfbmV3KCJuYXZpZ2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLAotICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZs
YWdzKUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAgICBnX3NpZ25hbF9hY2N1
bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0gICAgICAgIE5VTEwsCi0gICAgICAgIHdlYmtpdF9tYXJz
aGFsX0JPT0xFQU5fX09CSkVDVF9PQkpFQ1RfT0JKRUNUX09CSkVDVCwKLSAgICAgICAgR19UWVBF
X0JPT0xFQU4sIDQsCi0gICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKLSAgICAgICAgV0VC
S0lUX1RZUEVfTkVUV09SS19SRVFVRVNULAotICAgICAgICBXRUJLSVRfVFlQRV9XRUJfTkFWSUdB
VElPTl9BQ1RJT04sCi0gICAgICAgIFdFQktJVF9UWVBFX1dFQl9QT0xJQ1lfREVDSVNJT04pOwot
Ci0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6bWltZS10eXBlLXBvbGljeS1kZWNpc2lv
bi1yZXF1ZXN0ZWQ6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBz
aWduYWwgaXMgZW1pdHRlZAotICAgICAqIEBmcmFtZTogdGhlICNXZWJLaXRXZWJGcmFtZSB0aGF0
IHJlcXVpcmVkIHRoZSBwb2xpY3kgZGVjaXNpb24KLSAgICAgKiBAcmVxdWVzdDogYSBXZWJLaXRO
ZXR3b3JrUmVxdWVzdAotICAgICAqIEBtaW1ldHlwZTogdGhlIE1JTUUgdHlwZSBhdHRlbXB0ZWQg
dG8gbG9hZAotICAgICAqIEBwb2xpY3lfZGVjaXNpb246IGEgI1dlYktpdFdlYlBvbGljeURlY2lz
aW9uCi0gICAgICoKLSAgICAgKiBEZWNpZGUgd2hldGhlciBvciBub3QgdG8gZGlzcGxheSB0aGUg
Z2l2ZW4gTUlNRSB0eXBlLiAgSWYgdGhpcwotICAgICAqIHNpZ25hbCBpcyBub3QgaGFuZGxlZCwg
dGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gc2hvdyB0aGUKLSAgICAgKiBjb250ZW50IG9mIHRo
ZSByZXF1ZXN0ZWQgVVJJIGlmIFdlYktpdCBjYW4gc2hvdyB0aGlzIE1JTUUKLSAgICAgKiB0eXBl
IGFuZCB0aGUgY29udGVudCBkaXNwb3NpdGlvbiBpcyBub3QgYSBkb3dubG9hZDsgaWYgV2ViS2l0
Ci0gICAgICogaXMgbm90IGFibGUgdG8gc2hvdyB0aGUgTUlNRSB0eXBlIG5vdGhpbmcgaGFwcGVu
cy4KLSAgICAgKgotICAgICAqIE5vdGljZSB0aGF0IGlmIHlvdSByZXR1cm4gVFJVRSwgbWVhbmlu
ZyB0aGF0IHlvdSBoYW5kbGVkIHRoZQotICAgICAqIHNpZ25hbCwgeW91IGFyZSBleHBlY3RlZCB0
byBiZSBhd2FyZSBvZiB0aGUgIkNvbnRlbnQtRGlzcG9zaXRpb24iCi0gICAgICogaGVhZGVyLiBB
IHZhbHVlIG9mICJhdHRhY2htZW50IiB1c3VhbGx5IGluZGljYXRlcyBhIGRvd25sb2FkCi0gICAg
ICogcmVnYXJkbGVzcyBvZiB0aGUgTUlNRSB0eXBlLCBzZWUgYWxzbwotICAgICAqIHNvdXBfbWVz
c2FnZV9oZWFkZXJzX2dldF9jb250ZW50X2Rpc3Bvc2l0aW9uKCkuIEFuZCB5b3UgbXVzdCBjYWxs
Ci0gICAgICogd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25faWdub3JlKCksCi0gICAgICogd2Vi
a2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fdXNlKCksIG9yCi0gICAgICogd2Via2l0X3dlYl9wb2xp
Y3lfZGVjaXNpb25fZG93bmxvYWQoKSBvbiB0aGUgQHBvbGljeV9kZWNpc2lvbgotICAgICAqIG9i
amVjdC4KLSAgICAgKgotICAgICAqIFJldHVybiB2YWx1ZTogJVRSVUUgaWYgYSBkZWNpc2lvbiB3
YXMgbWFkZSwgJUZBTFNFIHRvIGhhdmUgdGhlCi0gICAgICogZGVmYXVsdCBiZWhhdmlvciBhcHBs
eQotICAgICAqCi0gICAgICogU2luY2U6IDEuMC4zCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92
aWV3X3NpZ25hbHNbTUlNRV9UWVBFX1BPTElDWV9ERUNJU0lPTl9SRVFVRVNURURdID0gZ19zaWdu
YWxfbmV3KCJtaW1lLXR5cGUtcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCIsCi0gICAgICAgIEdf
VFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpR19T
SUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIDAsCi0gICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9y
X3RydWVfaGFuZGxlZCwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgd2Via2l0X21hcnNoYWxfQk9P
TEVBTl9fT0JKRUNUX09CSkVDVF9TVFJJTkdfT0JKRUNULAotICAgICAgICBHX1RZUEVfQk9PTEVB
TiwgNCwKLSAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAotICAgICAgICBXRUJLSVRfVFlQ
RV9ORVRXT1JLX1JFUVVFU1QsCi0gICAgICAgIEdfVFlQRV9TVFJJTkcsCi0gICAgICAgIFdFQktJ
VF9UWVBFX1dFQl9QT0xJQ1lfREVDSVNJT04pOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2Vi
Vmlldzo6d2luZG93LW9iamVjdC1jbGVhcmVkOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVj
dCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKLSAgICAgKiBAZnJhbWU6IHRoZSAjV2Vi
S2l0V2ViRnJhbWUgdG8gd2hpY2ggQHdpbmRvd19vYmplY3QgYmVsb25ncwotICAgICAqIEBjb250
ZXh0OiB0aGUgI0pTR2xvYmFsQ29udGV4dFJlZiBob2xkaW5nIHRoZSBnbG9iYWwgb2JqZWN0IGFu
ZCBvdGhlcgotICAgICAqIGV4ZWN1dGlvbiBzdGF0ZTsgZXF1aXZhbGVudCB0byB0aGUgcmV0dXJu
IHZhbHVlIG9mCi0gICAgICogd2Via2l0X3dlYl9mcmFtZV9nZXRfZ2xvYmFsX2NvbnRleHQoQGZy
YW1lKQotICAgICAqIEB3aW5kb3dfb2JqZWN0OiB0aGUgI0pTT2JqZWN0UmVmIHJlcHJlc2VudGlu
ZyB0aGUgZnJhbWUncyBKYXZhU2NyaXB0Ci0gICAgICogd2luZG93IG9iamVjdAotICAgICAqCi0g
ICAgICogRW1pdHRlZCB3aGVuIHRoZSBKYXZhU2NyaXB0IHdpbmRvdyBvYmplY3QgaW4gYSAjV2Vi
S2l0V2ViRnJhbWUgaGFzIGJlZW4KLSAgICAgKiBjbGVhcmVkIGluIHByZXBhcmF0aW9uIGZvciBh
IG5ldyBsb2FkLiBUaGlzIGlzIHRoZSBwcmVmZXJyZWQgcGxhY2UgdG8KLSAgICAgKiBzZXQgY3Vz
dG9tIHByb3BlcnRpZXMgb24gdGhlIHdpbmRvdyBvYmplY3QgdXNpbmcgdGhlIEphdmFTY3JpcHRD
b3JlIEFQSS4KLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tXSU5ET1dfT0JK
RUNUX0NMRUFSRURdID0gZ19zaWduYWxfbmV3KCJ3aW5kb3ctb2JqZWN0LWNsZWFyZWQiLAotICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZs
YWdzKUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICBHX1NUUlVDVF9PRkZTRVQgKFdlYktpdFdl
YlZpZXdDbGFzcywgd2luZG93X29iamVjdF9jbGVhcmVkKSwKLSAgICAgICAgTlVMTCwKLSAgICAg
ICAgTlVMTCwKLSAgICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX1BPSU5URVJfUE9J
TlRFUiwKLSAgICAgICAgR19UWVBFX05PTkUsIDMsCi0gICAgICAgIFdFQktJVF9UWVBFX1dFQl9G
UkFNRSwKLSAgICAgICAgR19UWVBFX1BPSU5URVIsCi0gICAgICAgIEdfVFlQRV9QT0lOVEVSKTsK
LQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZpZXc6OmRvd25sb2FkLXJlcXVlc3RlZDoKLSAg
ICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVk
Ci0gICAgICogQGRvd25sb2FkOiBhICNXZWJLaXREb3dubG9hZCBvYmplY3QgdGhhdCBsZXRzIHlv
dSBjb250cm9sIHRoZQotICAgICAqIGRvd25sb2FkIHByb2Nlc3MKLSAgICAgKgotICAgICAqIEEg
bmV3IERvd25sb2FkIGlzIGJlaW5nIHJlcXVlc3RlZC4gQnkgZGVmYXVsdCwgaWYgdGhlIHNpZ25h
bCBpcwotICAgICAqIG5vdCBoYW5kbGVkLCB0aGUgZG93bmxvYWQgaXMgY2FuY2VsbGVkLiBJZiB5
b3UgaGFuZGxlIHRoZSBkb3dubG9hZAotICAgICAqIGFuZCBjYWxsIHdlYmtpdF9kb3dubG9hZF9z
ZXRfZGVzdGluYXRpb25fdXJpKCksIGl0IHdpbGwgYmUKLSAgICAgKiBzdGFydGVkIGZvciB5b3Uu
IElmIHlvdSBuZWVkIHRvIHNldCB0aGUgZGVzdGluYXRpb24gYXN5bmNocm9ub3VzbHkKLSAgICAg
KiB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBzdGFydGluZyBvciBjYW5jZWxsaW5nIGl0IHlvdXJz
ZWxmLgotICAgICAqCi0gICAgICogSWYgeW91IGludGVuZCB0byBoYW5kbGUgZG93bmxvYWRzIHlv
dXJzZWxmIHJhdGhlciB0aGFuIHVzaW5nCi0gICAgICogdGhlICNXZWJLaXREb3dubG9hZCBoZWxw
ZXIgb2JqZWN0IHlvdSBtdXN0IGhhbmRsZSB0aGlzIHNpZ25hbCwKLSAgICAgKiBhbmQgcmV0dXJu
ICVGQUxTRS4KLSAgICAgKgotICAgICAqIEFsc28sIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBkZWZh
dWx0IHBvbGljeSBmb3IgV2ViS2l0R1RLKyBpcyB0bwotICAgICAqIGlnbm9yZSBmaWxlcyB3aXRo
IGEgTUlNRSB0eXBlIHRoYXQgaXQgZG9lcyBub3Qga25vdyBob3cgdG8KLSAgICAgKiBoYW5kbGUs
IHdoaWNoIG1lYW5zIHRoaXMgc2lnbmFsIHdvbid0IGJlIGVtaXR0ZWQgaW4gdGhlIGRlZmF1bHQK
LSAgICAgKiBzZXR1cC4gT25lIHdheSB0byB0cmlnZ2VyIGRvd25sb2FkcyBpcyB0byBjb25uZWN0
IHRvCi0gICAgICogV2ViS2l0V2ViVmlldzo6bWltZS10eXBlLXBvbGljeS1kZWNpc2lvbi1yZXF1
ZXN0ZWQgYW5kIGNhbGwKLSAgICAgKiB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9kb3dubG9h
ZCgpIG9uIHRoZQotICAgICAqICNXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbiBpbiB0aGUgcGFyYW1l
dGVyIGxpc3QgZm9yIHRoZSBraW5kIG9mCi0gICAgICogZmlsZXMgeW91IHdhbnQgeW91ciBhcHBs
aWNhdGlvbiB0byBkb3dubG9hZCAoYSBjb21tb24gc29sdXRpb24KLSAgICAgKiBpcyB0byBkb3du
bG9hZCBhbnl0aGluZyB0aGF0IFdlYktpdCBjYW4ndCBoYW5kbGUsIHdoaWNoIHlvdSBjYW4KLSAg
ICAgKiBmaWd1cmUgb3V0IGJ5IHVzaW5nIHdlYmtpdF93ZWJfdmlld19jYW5fc2hvd19taW1lX3R5
cGUoKSkuCi0gICAgICoKLSAgICAgKiBSZXR1cm4gdmFsdWU6IFRSVUUgaWYgdGhlIGRvd25sb2Fk
IHNob3VsZCBiZSBwZXJmb3JtZWQsICVGQUxTRSB0bwotICAgICAqIGNhbmNlbCBpdAotICAgICAq
Ci0gICAgICogU2luY2U6IDEuMS4yCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25h
bHNbRE9XTkxPQURfUkVRVUVTVEVEXSA9IGdfc2lnbmFsX25ldygiZG93bmxvYWQtcmVxdWVzdGVk
IiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgKEdT
aWduYWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAgZ19zaWdu
YWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLAotICAgICAgICBOVUxMLAotICAgICAgICB3ZWJr
aXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1QsCi0gICAgICAgIEdfVFlQRV9CT09MRUFOLCAxLAot
ICAgICAgICBXRUJLSVRfVFlQRV9ET1dOTE9BRCk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRX
ZWJWaWV3Ojpsb2FkLXN0YXJ0ZWQ6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdo
aWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIEBmcmFtZTogdGhlIGZyYW1lIGdvaW5n
IHRvIGRvIHRoZSBsb2FkCi0gICAgICoKLSAgICAgKiBXaGVuIGEgI1dlYktpdFdlYkZyYW1lIGJl
Z2lucyB0byBsb2FkIHRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQuCi0gICAgICoKLSAgICAgKiBEZXBy
ZWNhdGVkOiBVc2UgdGhlICJsb2FkLXN0YXR1cyIgcHJvcGVydHkgaW5zdGVhZC4KLSAgICAgKi8K
LSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMT0FEX1NUQVJURURdID0gZ19zaWduYWxfbmV3
KCJsb2FkLXN0YXJ0ZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3Mp
LAotICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAot
ICAgICAgICBOVUxMLAotICAgICAgICBOVUxMLAotICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxf
Vk9JRF9fT0JKRUNULAotICAgICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAgICAgV0VCS0lUX1RZ
UEVfV0VCX0ZSQU1FKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZpZXc6OmxvYWQtY29t
bWl0dGVkOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFs
IGlzIGVtaXR0ZWQKLSAgICAgKiBAZnJhbWU6IHRoZSBtYWluIGZyYW1lIHRoYXQgcmVjZWl2ZWQg
dGhlIGZpcnN0IGRhdGEKLSAgICAgKgotICAgICAqIFdoZW4gYSAjV2ViS2l0V2ViRnJhbWUgbG9h
ZGVkIHRoZSBmaXJzdCBkYXRhIHRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQuCi0gICAgICoKLSAgICAg
KiBEZXByZWNhdGVkOiBVc2UgdGhlICJsb2FkLXN0YXR1cyIgcHJvcGVydHkgaW5zdGVhZC4KLSAg
ICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMT0FEX0NPTU1JVFRFRF0gPSBnX3Np
Z25hbF9uZXcoImxvYWQtY29tbWl0dGVkIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2Vi
Vmlld0NsYXNzKSwKLSAgICAgICAgKEdTaWduYWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKLSAg
ICAgICAgMCwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgZ19jY2xvc3Vy
ZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKLSAgICAgICAgR19UWVBFX05PTkUsIDEsCi0gICAgICAg
IFdFQktJVF9UWVBFX1dFQl9GUkFNRSk7Ci0KLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZp
ZXc6OmxvYWQtcHJvZ3Jlc3MtY2hhbmdlZDoKLSAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0
V2ViVmlldwotICAgICAqIEBwcm9ncmVzczogdGhlIGdsb2JhbCBwcm9ncmVzcwotICAgICAqCi0g
ICAgICogRGVwcmVjYXRlZDogVXNlIHRoZSAicHJvZ3Jlc3MiIHByb3BlcnR5IGluc3RlYWQuCi0g
ICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbTE9BRF9QUk9HUkVTU19DSEFOR0VE
XSA9IGdfc2lnbmFsX25ldygibG9hZC1wcm9ncmVzcy1jaGFuZ2VkIiwKLSAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgKEdTaWduYWxGbGFncylHX1NJR05B
TF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgTlVMTCwKLSAg
ICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX0lOVCwKLSAgICAgICAgR19UWVBFX05PTkUs
IDEsCi0gICAgICAgIEdfVFlQRV9JTlQpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmll
dzo6bG9hZC1lcnJvcjoKLSAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhl
IHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQHdlYl9mcmFtZTogdGhlICNXZWJLaXRXZWJGcmFt
ZQotICAgICAqIEB1cmk6IHRoZSBVUkkgdGhhdCB0cmlnZ2VyZWQgdGhlIGVycm9yCi0gICAgICog
QHdlYl9lcnJvcjogdGhlICNHRXJyb3IgdGhhdCB3YXMgdHJpZ2dlcmVkCi0gICAgICoKLSAgICAg
KiBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBsb2FkaW5nLiBCeSBkZWZhdWx0LCBpZiB0aGUgc2ln
bmFsIGlzIG5vdAotICAgICAqIGhhbmRsZWQsIHRoZSBAd2ViX3ZpZXcgd2lsbCBkaXNwbGF5IGEg
c3RvY2sgZXJyb3IgcGFnZS4gWW91IG5lZWQgdG8KLSAgICAgKiBoYW5kbGUgdGhlIHNpZ25hbCBp
ZiB5b3Ugd2FudCB0byBwcm92aWRlIHlvdXIgb3duIGVycm9yIHBhZ2UuCi0gICAgICoKLSAgICAg
KiBTaW5jZTogMS4xLjYKLSAgICAgKgotICAgICAqIFJldHVybiB2YWx1ZTogJVRSVUUgdG8gc3Rv
cCBvdGhlciBoYW5kbGVycyBmcm9tIGJlaW5nIGludm9rZWQgZm9yIHRoZQotICAgICAqIGV2ZW50
LiAlRkFMU0UgdG8gcHJvcGFnYXRlIHRoZSBldmVudCBmdXJ0aGVyLgotICAgICAqLwotICAgIHdl
YmtpdF93ZWJfdmlld19zaWduYWxzW0xPQURfRVJST1JdID0gZ19zaWduYWxfbmV3KCJsb2FkLWVy
cm9yIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAg
KEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QpLAotICAgICAgICAwLAotICAgICAgICBn
X3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0gICAgICAgIE5VTEwsCi0gICAgICAg
IHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09CSkVDVF9TVFJJTkdfQk9YRUQsCi0gICAgICAgIEdf
VFlQRV9CT09MRUFOLCAzLAotICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsCi0gICAgICAg
IEdfVFlQRV9TVFJJTkcsCi0gICAgICAgIEdfVFlQRV9FUlJPUik7Ci0KLSAgICAvKioKLSAgICAg
KiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWZpbmlzaGVkOgotICAgICAqIEB3ZWJfdmlldzogdGhlICNX
ZWJLaXRXZWJWaWV3Ci0gICAgICogQGZyYW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lCi0gICAgICoK
LSAgICAgKiBEZXByZWNhdGVkOiBVc2UgdGhlICJsb2FkLXN0YXR1cyIgcHJvcGVydHkgaW5zdGVh
ZC4KLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMT0FEX0ZJTklTSEVEXSA9
IGdfc2lnbmFsX25ldygibG9hZC1maW5pc2hlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KHdlYlZpZXdDbGFzcyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpR19TSUdOQUxfUlVOX0xBU1Qs
Ci0gICAgICAgIDAsCi0gICAgICAgIE5VTEwsCi0gICAgICAgIE5VTEwsCi0gICAgICAgIGdfY2Ns
b3N1cmVfbWFyc2hhbF9WT0lEX19PQkpFQ1QsCi0gICAgICAgIEdfVFlQRV9OT05FLCAxLAotICAg
ICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2Vi
Vmlldzo6b25sb2FkLWV2ZW50OgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBvbiB3aGlj
aCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKLSAgICAgKiBAZnJhbWU6IHRoZSBmcmFtZQotICAgICAq
Ci0gICAgICogV2hlbiBhICNXZWJLaXRXZWJGcmFtZSByZWNlaXZlcyBhbiBvbmxvYWQgZXZlbnQg
dGhpcyBzaWduYWwgaXMgZW1pdHRlZC4KLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2ln
bmFsc1tPTkxPQURfRVZFTlRdID0gZ19zaWduYWxfbmV3KCJvbmxvYWQtZXZlbnQiLAotICAgICAg
ICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdz
KUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAgICBOVUxMLAotICAgICAgICBO
VUxMLAotICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fT0JKRUNULAotICAgICAgICBH
X1RZUEVfTk9ORSwgMSwKLSAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FKTsKLQotICAgIC8q
KgotICAgICAqIFdlYktpdFdlYlZpZXc6OnRpdGxlLWNoYW5nZWQ6Ci0gICAgICogQHdlYl92aWV3
OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIEBmcmFt
ZTogdGhlIG1haW4gZnJhbWUKLSAgICAgKiBAdGl0bGU6IHRoZSBuZXcgdGl0bGUKLSAgICAgKgot
ICAgICAqIFdoZW4gYSAjV2ViS2l0V2ViRnJhbWUgY2hhbmdlcyB0aGUgZG9jdW1lbnQgdGl0bGUg
dGhpcyBzaWduYWwgaXMgZW1pdHRlZC4KLSAgICAgKgotICAgICAqIERlcHJlY2F0ZWQ6IDEuMS40
OiBVc2UgIm5vdGlmeTo6dGl0bGUiIGluc3RlYWQuCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92
aWV3X3NpZ25hbHNbVElUTEVfQ0hBTkdFRF0gPSBnX3NpZ25hbF9uZXcoInRpdGxlLWNoYW5nZWQi
LAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1Np
Z25hbEZsYWdzKUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAgICBOVUxMLAot
ICAgICAgICBOVUxMLAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfU1RSSU5H
LAotICAgICAgICBHX1RZUEVfTk9ORSwgMiwKLSAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1F
LAotICAgICAgICBHX1RZUEVfU1RSSU5HKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZp
ZXc6OmhvdmVyaW5nLW92ZXItbGluazoKLSAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24g
d2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQHRpdGxlOiB0aGUgbGluaydzIHRp
dGxlCi0gICAgICogQHVyaTogdGhlIFVSSSB0aGUgbGluayBwb2ludHMgdG8KLSAgICAgKgotICAg
ICAqIFdoZW4gdGhlIGN1cnNvciBpcyBvdmVyIGEgbGluaywgdGhpcyBzaWduYWwgaXMgZW1pdHRl
ZC4KLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tIT1ZFUklOR19PVkVSX0xJ
TktdID0gZ19zaWduYWxfbmV3KCJob3ZlcmluZy1vdmVyLWxpbmsiLAotICAgICAgICBHX1RZUEVf
RlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFM
X1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAgICBOVUxMLAotICAgICAgICBOVUxMLAotICAg
ICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19TVFJJTkdfU1RSSU5HLAotICAgICAgICBHX1RZUEVf
Tk9ORSwgMiwKLSAgICAgICAgR19UWVBFX1NUUklORywKLSAgICAgICAgR19UWVBFX1NUUklORyk7
Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJWaWV3Ojpwb3B1bGF0ZS1wb3B1cDoKLSAgICAg
KiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0g
ICAgICogQG1lbnU6IHRoZSBjb250ZXh0IG1lbnUKLSAgICAgKgotICAgICAqIFdoZW4gYSBjb250
ZXh0IG1lbnUgaXMgYWJvdXQgdG8gYmUgZGlzcGxheWVkIHRoaXMgc2lnbmFsIGlzIGVtaXR0ZWQu
Ci0gICAgICoKLSAgICAgKiBBZGQgbWVudSBpdGVtcyB0byAjbWVudSB0byBleHRlbmQgdGhlIGNv
bnRleHQgbWVudS4KLSAgICAgKgotICAgICAqIERlcHJlY2F0ZWQ6IDEuMTA6IFVzZSAjV2ViS2l0
V2ViVmlldzo6Y29udGV4dC1tZW51IHNpZ25hbCBpbnN0ZWFkLgotICAgICAqLwotICAgIHdlYmtp
dF93ZWJfdmlld19zaWduYWxzW1BPUFVMQVRFX1BPUFVQXSA9IGdfc2lnbmFsX25ldygicG9wdWxh
dGUtcG9wdXAiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAg
ICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAg
ICBOVUxMLAotICAgICAgICBOVUxMLAotICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9f
T0JKRUNULAotICAgICAgICBHX1RZUEVfTk9ORSwgMSwKLSAgICAgICAgR1RLX1RZUEVfTUVOVSk7
Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJWaWV3OjpwcmludC1yZXF1ZXN0ZWQ6Ci0gICAg
ICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IGluIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAot
ICAgICAqIEB3ZWJfZnJhbWU6IHRoZSBmcmFtZSB0aGF0IGlzIHJlcXVlc3RpbmcgdG8gYmUgcHJp
bnRlZAotICAgICAqCi0gICAgICogRW1pdHRlZCB3aGVuIHByaW50aW5nIGlzIHJlcXVlc3RlZCBi
eSB0aGUgZnJhbWUsIHVzdWFsbHkKLSAgICAgKiBiZWNhdXNlIG9mIGEgamF2YXNjcmlwdCBjYWxs
LiBXaGVuIGhhbmRsaW5nIHRoaXMgc2lnbmFsIHlvdQotICAgICAqIHNob3VsZCBjYWxsIHdlYmtp
dF93ZWJfZnJhbWVfcHJpbnRfZnVsbCgpIG9yCi0gICAgICogd2Via2l0X3dlYl9mcmFtZV9wcmlu
dCgpIHRvIGRvIHRoZSBhY3R1YWwgcHJpbnRpbmcuCi0gICAgICoKLSAgICAgKiBUaGUgZGVmYXVs
dCBoYW5kbGVyIHdpbGwgcHJlc2VudCBhIHByaW50IGRpYWxvZyBhbmQgY2FycnkgYQotICAgICAq
IHByaW50IG9wZXJhdGlvbi4gTm90aWNlIHRoYXQgdGhpcyBtZWFucyB0aGF0IGlmIHlvdSBpbnRl
bmQgdG8KLSAgICAgKiBpZ25vcmUgYSBwcmludCByZXF1ZXN0IHlvdSBtdXN0IGNvbm5lY3QgdG8g
dGhpcyBzaWduYWwsIGFuZAotICAgICAqIHJldHVybiAlVFJVRS4KLSAgICAgKgotICAgICAqIFJl
dHVybiB2YWx1ZTogJVRSVUUgaWYgdGhlIHByaW50IHJlcXVlc3QgaGFzIGJlZW4gaGFuZGxlZCwg
JUZBTFNFIGlmCi0gICAgICogdGhlIGRlZmF1bHQgaGFuZGxlciBzaG91bGQgcnVuCi0gICAgICoK
LSAgICAgKiBTaW5jZTogMS4xLjUKLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFs
c1tQUklOVF9SRVFVRVNURURdID0gZ19zaWduYWxfbmV3KCJwcmludC1yZXF1ZXN0ZWQiLAotICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZs
YWdzKUdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAgICBnX3NpZ25hbF9hY2N1
bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0gICAgICAgIE5VTEwsCi0gICAgICAgIHdlYmtpdF9tYXJz
aGFsX0JPT0xFQU5fX09CSkVDVCwKLSAgICAgICAgR19UWVBFX0JPT0xFQU4sIDEsCi0gICAgICAg
IFdFQktJVF9UWVBFX1dFQl9GUkFNRSk7Ci0KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tT
VEFUVVNfQkFSX1RFWFRfQ0hBTkdFRF0gPSBnX3NpZ25hbF9uZXcoInN0YXR1cy1iYXItdGV4dC1j
aGFuZ2VkIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAg
ICAgKEdTaWduYWxGbGFncylHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAg
TlVMTCwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1NU
UklORywKLSAgICAgICAgR19UWVBFX05PTkUsIDEsCi0gICAgICAgIEdfVFlQRV9TVFJJTkcpOwot
Ci0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6aWNvbi1sb2FkZWQ6Ci0gICAgICogQHdl
Yl92aWV3OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAq
IEBpY29uX3VyaTogdGhlIFVSSSBmb3IgdGhlIGljb24KLSAgICAgKgotICAgICAqIFRoaXMgc2ln
bmFsIGlzIGVtaXR0ZWQgd2hlbiB0aGUgbWFpbiBmcmFtZSBoYXMgZ290IGEgZmF2aWNvbi4KLSAg
ICAgKiBTZWUgV2ViS2l0SWNvbkRhdGFiYXNlOjppY29uLWxvYWRlZCBpZiB5b3Ugd2FudCB0byBr
ZWVwIHRyYWNrIG9mCi0gICAgICogaWNvbnMgZm9yIGNoaWxkIGZyYW1lcy4KLSAgICAgKgotICAg
ICAqIFNpbmNlOiAxLjEuMTgKLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tJ
Q09OX0xPQURFRF0gPSBnX3NpZ25hbF9uZXcoImljb24tbG9hZGVkIiwKLSAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgKEdTaWduYWxGbGFncylHX1NJR05B
TF9SVU5fTEFTVCwKLSAgICAgICAgMCwKLSAgICAgICAgTlVMTCwKLSAgICAgICAgTlVMTCwKLSAg
ICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1NUUklORywKLSAgICAgICAgR19UWVBFX05P
TkUsIDEsCi0gICAgICAgIEdfVFlQRV9TVFJJTkcpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0
V2ViVmlldzo6Y29uc29sZS1tZXNzYWdlOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCBv
biB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKLSAgICAgKiBAbWVzc2FnZTogdGhlIG1lc3Nh
Z2UgdGV4dAotICAgICAqIEBsaW5lOiB0aGUgbGluZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJlZAot
ICAgICAqIEBzb3VyY2VfaWQ6IHRoZSBzb3VyY2UgaWQKLSAgICAgKgotICAgICAqIEEgSmF2YVNj
cmlwdCBjb25zb2xlIG1lc3NhZ2Ugd2FzIGNyZWF0ZWQuCi0gICAgICoKLSAgICAgKiBSZXR1cm4g
dmFsdWU6ICVUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZva2VkIGZv
ciB0aGUKLSAgICAgKiBldmVudC4gJUZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVydGhl
ci4KLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tDT05TT0xFX01FU1NBR0Vd
ID0gZ19zaWduYWxfbmV3KCJjb25zb2xlLW1lc3NhZ2UiLAotICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9M
QVNULAotICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBjb25zb2xl
X21lc3NhZ2UpLAotICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0g
ICAgICAgIE5VTEwsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1NUUklOR19JTlRf
U1RSSU5HLAotICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMywKLSAgICAgICAgR19UWVBFX1NUUklO
RywgR19UWVBFX0lOVCwgR19UWVBFX1NUUklORyk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRX
ZWJWaWV3OjpzY3JpcHQtYWxlcnQ6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdo
aWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZy
YW1lCi0gICAgICogQG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQKLSAgICAgKgotICAgICAqIEEg
SmF2YVNjcmlwdCBhbGVydCBkaWFsb2cgd2FzIGNyZWF0ZWQuCi0gICAgICoKLSAgICAgKiBSZXR1
cm4gdmFsdWU6ICVUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZva2Vk
IGZvciB0aGUKLSAgICAgKiBldmVudC4gJUZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVy
dGhlci4KLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tTQ1JJUFRfQUxFUlRd
ID0gZ19zaWduYWxfbmV3KCJzY3JpcHQtYWxlcnQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFT
Uyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9MQVNU
LAotICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBzY3JpcHRfYWxl
cnQpLAotICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0gICAgICAg
IE5VTEwsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09CSkVDVF9TVFJJTkcsCi0g
ICAgICAgIEdfVFlQRV9CT09MRUFOLCAyLAotICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUs
IEdfVFlQRV9TVFJJTkcpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6c2NyaXB0
LWNvbmZpcm06Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IG9uIHdoaWNoIHRoZSBzaWdu
YWwgaXMgZW1pdHRlZAotICAgICAqIEBmcmFtZTogdGhlIHJlbGV2YW50IGZyYW1lCi0gICAgICog
QG1lc3NhZ2U6IHRoZSBtZXNzYWdlIHRleHQKLSAgICAgKiBAY29uZmlybWVkOiBhIHBvaW50ZXIg
dG8gYSAjZ2Jvb2xlYW4gd2hlcmUgdGhlIGNhbGxiYWNrIHNob3VsZCBzdG9yZQotICAgICAqIHdo
ZXRoZXIgdGhlIHVzZXIgY29uZmlybWVkIHRoZSBkaWFsb2csIHdoZW4gaGFuZGxpbmcgdGhpcyBz
aWduYWwKLSAgICAgKgotICAgICAqIEEgSmF2YVNjcmlwdCBjb25maXJtIGRpYWxvZyB3YXMgY3Jl
YXRlZCwgcHJvdmlkaW5nIFllcyBhbmQgTm8gYnV0dG9ucy4KLSAgICAgKgotICAgICAqIFJldHVy
biB2YWx1ZTogJVRSVUUgdG8gc3RvcCBvdGhlciBoYW5kbGVycyBmcm9tIGJlaW5nIGludm9rZWQg
Zm9yIHRoZQotICAgICAqIGV2ZW50LiAlRkFMU0UgdG8gcHJvcGFnYXRlIHRoZSBldmVudCBmdXJ0
aGVyLgotICAgICAqLwotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1NDUklQVF9DT05GSVJN
XSA9IGdfc2lnbmFsX25ldygic2NyaXB0LWNvbmZpcm0iLAotICAgICAgICBHX1RZUEVfRlJPTV9D
TEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKUdfU0lHTkFMX1JVTl9M
QVNULAotICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBzY3JpcHRf
Y29uZmlybSksCi0gICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwKLSAg
ICAgICAgTlVMTCwKLSAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX1NUUklO
R19QT0lOVEVSLAotICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMywKLSAgICAgICAgV0VCS0lUX1RZ
UEVfV0VCX0ZSQU1FLCBHX1RZUEVfU1RSSU5HLCBHX1RZUEVfUE9JTlRFUik7Ci0KLSAgICAvKioK
LSAgICAgKiBXZWJLaXRXZWJWaWV3OjpzY3JpcHQtcHJvbXB0OgotICAgICAqIEB3ZWJfdmlldzog
dGhlIG9iamVjdCBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKLSAgICAgKiBAZnJhbWU6
IHRoZSByZWxldmFudCBmcmFtZQotICAgICAqIEBtZXNzYWdlOiB0aGUgbWVzc2FnZSB0ZXh0Ci0g
ICAgICogQGRlZmF1bHQ6IHRoZSBkZWZhdWx0IHZhbHVlCi0gICAgICogQHRleHQ6IFRvIGJlIGZp
bGxlZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb3IgTlVMTCBpZiB0aGUgZGlhbG9nIHdhcyBjYW5j
ZWxsZWQuCi0gICAgICoKLSAgICAgKiBBIEphdmFTY3JpcHQgcHJvbXB0IGRpYWxvZyB3YXMgY3Jl
YXRlZCwgcHJvdmlkaW5nIGFuIGVudHJ5IHRvIGlucHV0IHRleHQuCi0gICAgICoKLSAgICAgKiBS
ZXR1cm4gdmFsdWU6ICVUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZv
a2VkIGZvciB0aGUKLSAgICAgKiBldmVudC4gJUZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQg
ZnVydGhlci4KLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tTQ1JJUFRfUFJP
TVBUXSA9IGdfc2lnbmFsX25ldygic2NyaXB0LXByb21wdCIsCi0gICAgICAgIEdfVFlQRV9GUk9N
X0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpR19TSUdOQUxfUlVO
X0xBU1QsCi0gICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIHNjcmlw
dF9wcm9tcHQpLAotICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsCi0g
ICAgICAgIE5VTEwsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09CSkVDVF9TVFJJ
TkdfU1RSSU5HX1NUUklORywKLSAgICAgICAgR19UWVBFX0JPT0xFQU4sIDQsCi0gICAgICAgIFdF
QktJVF9UWVBFX1dFQl9GUkFNRSwgR19UWVBFX1NUUklORywgR19UWVBFX1NUUklORywgR19UWVBF
X1BPSU5URVIpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6c2VsZWN0LWFsbDoK
LSAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAot
ICAgICAqCi0gICAgICogVGhlICNXZWJLaXRXZWJWaWV3OjpzZWxlY3QtYWxsIHNpZ25hbCBpcyBh
IGtleWJpbmRpbmcgc2lnbmFsIHdoaWNoIGdldHMgZW1pdHRlZCB0bwotICAgICAqIHNlbGVjdCB0
aGUgY29tcGxldGUgY29udGVudHMgb2YgdGhlIHRleHQgdmlldy4KLSAgICAgKgotICAgICAqIFRo
ZSBkZWZhdWx0IGJpbmRpbmdzIGZvciB0aGlzIHNpZ25hbCBpcyBDdHJsLWEuCi0gICAgICovCi0g
ICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbOjpTRUxFQ1RfQUxMXSA9IGdfc2lnbmFsX25ldygi
c2VsZWN0LWFsbCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0g
ICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9O
KSwKLSAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdlYktpdFdlYlZpZXdDbGFzcywgc2VsZWN0X2Fs
bCksCi0gICAgICAgIE5VTEwsIE5VTEwsCi0gICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lE
X19WT0lELAotICAgICAgICBHX1RZUEVfTk9ORSwgMCk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJL
aXRXZWJWaWV3OjpjdXQtY2xpcGJvYXJkOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3
aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCi0gICAgICoKLSAgICAgKiBUaGUgI1dlYktpdFdlYlZp
ZXc6OmN1dC1jbGlwYm9hcmQgc2lnbmFsIGlzIGEga2V5YmluZGluZyBzaWduYWwgd2hpY2ggZ2V0
cyBlbWl0dGVkIHRvCi0gICAgICogY3V0IHRoZSBzZWxlY3Rpb24gdG8gdGhlIGNsaXBib2FyZC4K
LSAgICAgKgotICAgICAqIFRoZSBkZWZhdWx0IGJpbmRpbmdzIGZvciB0aGlzIHNpZ25hbCBhcmUg
Q3RybC14IGFuZCBTaGlmdC1EZWxldGUuCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3Np
Z25hbHNbQ1VUX0NMSVBCT0FSRF0gPSBnX3NpZ25hbF9uZXcoImN1dC1jbGlwYm9hcmQiLAotICAg
ICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZs
YWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgIEdfU1RS
VUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIGN1dF9jbGlwYm9hcmQpLAotICAgICAgICBO
VUxMLCBOVUxMLAotICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKLSAgICAg
ICAgR19UWVBFX05PTkUsIDApOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6Y29w
eS1jbGlwYm9hcmQ6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVk
IHRoZSBzaWduYWwKLSAgICAgKgotICAgICAqIFRoZSAjV2ViS2l0V2ViVmlldzo6Y29weS1jbGlw
Ym9hcmQgc2lnbmFsIGlzIGEga2V5YmluZGluZyBzaWduYWwgd2hpY2ggZ2V0cyBlbWl0dGVkIHRv
Ci0gICAgICogY29weSB0aGUgc2VsZWN0aW9uIHRvIHRoZSBjbGlwYm9hcmQuCi0gICAgICoKLSAg
ICAgKiBUaGUgZGVmYXVsdCBiaW5kaW5ncyBmb3IgdGhpcyBzaWduYWwgYXJlIEN0cmwtYyBhbmQg
Q3RybC1JbnNlcnQuCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbQ09QWV9D
TElQQk9BUkRdID0gZ19zaWduYWxfbmV3KCJjb3B5LWNsaXBib2FyZCIsCi0gICAgICAgIEdfVFlQ
RV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lH
TkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgR19TVFJVQ1RfT0ZGU0VU
KFdlYktpdFdlYlZpZXdDbGFzcywgY29weV9jbGlwYm9hcmQpLAotICAgICAgICBOVUxMLCBOVUxM
LAotICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKLSAgICAgICAgR19UWVBF
X05PTkUsIDApOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6cGFzdGUtY2xpcGJv
YXJkOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2ln
bmFsCi0gICAgICoKLSAgICAgKiBUaGUgI1dlYktpdFdlYlZpZXc6OnBhc3RlLWNsaXBib2FyZCBz
aWduYWwgaXMgYSBrZXliaW5kaW5nIHNpZ25hbCB3aGljaCBnZXRzIGVtaXR0ZWQgdG8KLSAgICAg
KiBwYXN0ZSB0aGUgY29udGVudHMgb2YgdGhlIGNsaXBib2FyZCBpbnRvIHRoZSBXZWIgdmlldy4K
LSAgICAgKgotICAgICAqIFRoZSBkZWZhdWx0IGJpbmRpbmdzIGZvciB0aGlzIHNpZ25hbCBhcmUg
Q3RybC12IGFuZCBTaGlmdC1JbnNlcnQuCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3Np
Z25hbHNbUEFTVEVfQ0xJUEJPQVJEXSA9IGdfc2lnbmFsX25ldygicGFzdGUtY2xpcGJvYXJkIiwK
LSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgKEdTaWdu
YWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAotICAgICAgICBH
X1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBwYXN0ZV9jbGlwYm9hcmQpLAotICAg
ICAgICBOVUxMLCBOVUxMLAotICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwK
LSAgICAgICAgR19UWVBFX05PTkUsIDApOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmll
dzo6dW5kbzoKLSAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhl
IHNpZ25hbAotICAgICAqCi0gICAgICogVGhlICNXZWJLaXRXZWJWaWV3Ojp1bmRvIHNpZ25hbCBp
cyBhIGtleWJpbmRpbmcgc2lnbmFsIHdoaWNoIGdldHMgZW1pdHRlZCB0bwotICAgICAqIHVuZG8g
dGhlIGxhc3QgZWRpdGluZyBjb21tYW5kLgotICAgICAqCi0gICAgICogVGhlIGRlZmF1bHQgYmlu
ZGluZyBmb3IgdGhpcyBzaWduYWwgaXMgQ3RybC16Ci0gICAgICoKLSAgICAgKiBTaW5jZTogMS4x
LjE0Ci0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbVU5ET10gPSBnX3NpZ25h
bF9uZXcoInVuZG8iLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAot
ICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElP
TiksCi0gICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIHVuZG8pLAot
ICAgICAgICBOVUxMLCBOVUxMLAotICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9J
RCwKLSAgICAgICAgR19UWVBFX05PTkUsIDApOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2Vi
Vmlldzo6cmVkbzoKLSAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQg
dGhlIHNpZ25hbAotICAgICAqCi0gICAgICogVGhlICNXZWJLaXRXZWJWaWV3OjpyZWRvIHNpZ25h
bCBpcyBhIGtleWJpbmRpbmcgc2lnbmFsIHdoaWNoIGdldHMgZW1pdHRlZCB0bwotICAgICAqIHJl
ZG8gdGhlIGxhc3QgZWRpdGluZyBjb21tYW5kLgotICAgICAqCi0gICAgICogVGhlIGRlZmF1bHQg
YmluZGluZyBmb3IgdGhpcyBzaWduYWwgaXMgQ3RybC1TaGlmdC16Ci0gICAgICoKLSAgICAgKiBT
aW5jZTogMS4xLjE0Ci0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUkVET10g
PSBnX3NpZ25hbF9uZXcoInJlZG8iLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3
Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lH
TkFMX0FDVElPTiksCi0gICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3Ms
IHJlZG8pLAotICAgICAgICBOVUxMLCBOVUxMLAotICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxf
Vk9JRF9fVk9JRCwKLSAgICAgICAgR19UWVBFX05PTkUsIDApOwotCi0gICAgLyoqCi0gICAgICog
V2ViS2l0V2ViVmlldzo6bW92ZS1jdXJzb3I6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0
IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKLSAgICAgKiBAc3RlcDogdGhlIHR5cGUgb2YgbW92
ZW1lbnQsIG9uZSBvZiAjR3RrTW92ZW1lbnRTdGVwCi0gICAgICogQGNvdW50OiBhbiBpbnRlZ2Vy
IGluZGljYXRpbmcgdGhlIHN1YnR5cGUgb2YgbW92ZW1lbnQuIEN1cnJlbnRseQotICAgICAqICAg
ICAgICAgdGhlIHBlcm1pdHRlZCB2YWx1ZXMgYXJlICcxJyA9IGZvcndhcmQsICctMScgPSBiYWNr
d2FyZHMuCi0gICAgICoKLSAgICAgKiBUaGUgI1dlYktpdFdlYlZpZXc6Om1vdmUtY3Vyc29yIHdp
bGwgYmUgZW1pdHRlZCB0byBhcHBseSB0aGUKLSAgICAgKiBjdXJzb3IgbW92ZW1lbnQgZGVzY3Jp
YmVkIGJ5IGl0cyBwYXJhbWV0ZXJzIHRvIHRoZSBAdmlldy4KLSAgICAgKgotICAgICAqIFJldHVy
biB2YWx1ZTogJVRSVUUgb3IgJUZBTFNFCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4xLjQKLSAg
ICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tNT1ZFX0NVUlNPUl0gPSBnX3NpZ25h
bF9uZXcoIm1vdmUtY3Vyc29yIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0Ns
YXNzKSwKLSAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05B
TF9BQ1RJT04pLAotICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBt
b3ZlX2N1cnNvciksCi0gICAgICAgIE5VTEwsIE5VTEwsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFs
X0JPT0xFQU5fX0VOVU1fSU5ULAotICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKLSAgICAgICAg
R1RLX1RZUEVfTU9WRU1FTlRfU1RFUCwKLSAgICAgICAgR19UWVBFX0lOVCk7Ci0KLSAgICAvKioK
LSAgICAgKiBXZWJLaXRXZWJWaWV3OjpjcmVhdGUtcGx1Z2luLXdpZGdldDoKLSAgICAgKiBAd2Vi
X3ZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAotICAgICAqIEBtaW1l
X3R5cGU6IHRoZSBtaW1ldHlwZSBvZiB0aGUgcmVxdWVzdGVkIG9iamVjdAotICAgICAqIEB1cmk6
IHRoZSBVUkkgdG8gbG9hZAotICAgICAqIEBwYXJhbTogYSAjR0hhc2hUYWJsZSB3aXRoIGFkZGl0
aW9uYWwgYXR0cmlidXRlcyAoc3RyaW5ncykKLSAgICAgKgotICAgICAqIFRoZSAjV2ViS2l0V2Vi
Vmlldzo6Y3JlYXRlLXBsdWdpbi13aWRnZXQgc2lnbmFsIHdpbGwgYmUgZW1pdHRlZCB0bwotICAg
ICAqIGNyZWF0ZSBhIHBsdWdpbiB3aWRnZXQgZm9yIGVtYmVkIG9yIG9iamVjdCBIVE1MIHRhZ3Mu
IFRoaXMKLSAgICAgKiBhbGxvd3MgdG8gZW1iZWQgYSBHdGtXaWRnZXQgYXMgYSBwbHVnaW4gaW50
byBIVE1MIGNvbnRlbnQuIEluCi0gICAgICogY2FzZSBvZiBhIHRleHR1YWwgc2VsZWN0aW9uIG9m
IHRoZSBHdGtXaWRnZXQgV2ViQ29yZSB3aWxsIGF0dGVtcHQKLSAgICAgKiB0byBzZXQgdGhlIHBy
b3BlcnR5IHZhbHVlIG9mICJ3ZWJraXQtd2lkZ2V0LWlzLXNlbGVjdGVkIi4gVGhpcyBjYW4KLSAg
ICAgKiBiZSB1c2VkIHRvIGRyYXcgYSB2aXN1YWwgaW5kaWNhdG9yIG9mIHRoZSBzZWxlY3Rpb24u
Ci0gICAgICoKLSAgICAgKiBSZXR1cm4gdmFsdWU6ICh0cmFuc2ZlciBmdWxsKTogYSBuZXcgI0d0
a1dpZGdldCwgb3IgJU5VTEwKLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEuOAotICAgICAqLwot
ICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1BMVUdJTl9XSURHRVRdID0gZ19zaWduYWxfbmV3
KCJjcmVhdGUtcGx1Z2luLXdpZGdldCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZp
ZXdDbGFzcyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpIChHX1NJR05BTF9SVU5fTEFTVCB8IEdf
U0lHTkFMX0FDVElPTiksCi0gICAgICAgIDAsCi0gICAgICAgIHdlYmtpdF9zaWduYWxfYWNjdW11
bGF0b3Jfb2JqZWN0X2hhbmRsZWQsCi0gICAgICAgIE5VTEwsCi0gICAgICAgIHdlYmtpdF9tYXJz
aGFsX09CSkVDVF9fU1RSSU5HX1NUUklOR19QT0lOVEVSLAotICAgICAgICBHVEtfVFlQRV9XSURH
RVQsIDMsCi0gICAgICAgIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9TVFJJTkcsIEdfVFlQRV9IQVNI
X1RBQkxFKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZpZXc6OmRhdGFiYXNlLXF1b3Rh
LWV4Y2VlZGVkOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3aGljaCByZWNlaXZlZCB0
aGUgc2lnbmFsCi0gICAgICogQGZyYW1lOiB0aGUgcmVsZXZhbnQgZnJhbWUKLSAgICAgKiBAZGF0
YWJhc2U6IHRoZSAjV2ViS2l0V2ViRGF0YWJhc2Ugd2hpY2ggZXhjZWVkZWQgdGhlIHF1b3RhIG9m
IGl0cyAjV2ViS2l0U2VjdXJpdHlPcmlnaW4KLSAgICAgKgotICAgICAqIFRoZSAjV2ViS2l0V2Vi
Vmlldzo6ZGF0YWJhc2UtcXVvdGEtZXhjZWVkZWQgc2lnbmFsIHdpbGwgYmUgZW1pdHRlZCB3aGVu
Ci0gICAgICogYSBXZWIgRGF0YWJhc2UgZXhjZWVkcyB0aGUgcXVvdGEgb2YgaXRzIHNlY3VyaXR5
IG9yaWdpbi4gVGhpcyBzaWduYWwKLSAgICAgKiBtYXkgYmUgdXNlZCB0byBpbmNyZWFzZSB0aGUg
c2l6ZSBvZiB0aGUgcXVvdGEgYmVmb3JlIHRoZSBvcmlnaW5hdGluZwotICAgICAqIG9wZXJhdGlv
biBmYWlscy4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEuMTQKLSAgICAgKi8KLSAgICB3ZWJr
aXRfd2ViX3ZpZXdfc2lnbmFsc1tEQVRBQkFTRV9RVU9UQV9FWENFRURFRF0gPSBnX3NpZ25hbF9u
ZXcoImRhdGFiYXNlLXF1b3RhLWV4Y2VlZGVkIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mo
d2ViVmlld0NsYXNzKSwKLSAgICAgICAgKEdTaWduYWxGbGFncykgKEdfU0lHTkFMX1JVTl9MQVNU
IHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgMCwKLSAgICAgICAgTlVMTCwgTlVMTCwKLSAg
ICAgICAgd2Via2l0X21hcnNoYWxfVk9JRF9fT0JKRUNUX09CSkVDVCwKLSAgICAgICAgR19UWVBF
X05PTkUsIDIsCi0gICAgICAgIEdfVFlQRV9PQkpFQ1QsIEdfVFlQRV9PQkpFQ1QpOwotCi0gICAg
LyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6cmVzb3VyY2UtcmVxdWVzdC1zdGFydGluZzoKLSAg
ICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZWQgdGhlIHNpZ25hbAotICAg
ICAqIEB3ZWJfZnJhbWU6IHRoZSAjV2ViS2l0V2ViRnJhbWUgd2hvc2UgbG9hZCBkaXNwYXRjaGVk
IHRoaXMgcmVxdWVzdAotICAgICAqIEB3ZWJfcmVzb3VyY2U6IGFuIGVtcHR5ICNXZWJLaXRXZWJS
ZXNvdXJjZSBvYmplY3QKLSAgICAgKiBAcmVxdWVzdDogdGhlICNXZWJLaXROZXR3b3JrUmVxdWVz
dCB0aGF0IHdpbGwgYmUgZGlzcGF0Y2hlZAotICAgICAqIEByZXNwb25zZTogdGhlICNXZWJLaXRO
ZXR3b3JrUmVzcG9uc2UgcmVwcmVzZW50aW5nIHRoZSByZWRpcmVjdAotICAgICAqIHJlc3BvbnNl
LCBpZiBhbnkKLSAgICAgKgotICAgICAqIEVtaXR0ZWQgd2hlbiBhIHJlcXVlc3QgaXMgYWJvdXQg
dG8gYmUgc2VudC4gWW91IGNhbiBtb2RpZnkgdGhlCi0gICAgICogcmVxdWVzdCB3aGlsZSBoYW5k
bGluZyB0aGlzIHNpZ25hbC4gWW91IGNhbiBzZXQgdGhlIFVSSSBpbiB0aGUKLSAgICAgKiAjV2Vi
S2l0TmV0d29ya1JlcXVlc3Qgb2JqZWN0IGl0c2VsZiwgYW5kIGFkZC9yZW1vdmUvcmVwbGFjZQot
ICAgICAqIGhlYWRlcnMgdXNpbmcgdGhlICNTb3VwTWVzc2FnZSBvYmplY3QgaXQgY2Fycmllcywg
aWYgaXQgaXMKLSAgICAgKiBwcmVzZW50LiBTZWUgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRf
bWVzc2FnZSgpLiBTZXR0aW5nIHRoZQotICAgICAqIHJlcXVlc3QgVVJJIHRvICJhYm91dDpibGFu
ayIgd2lsbCBlZmZlY3RpdmVseSBjYXVzZSB0aGUgcmVxdWVzdAotICAgICAqIHRvIGxvYWQgbm90
aGluZywgYW5kIGNhbiBiZSB1c2VkIHRvIGRpc2FibGUgdGhlIGxvYWRpbmcgb2YKLSAgICAgKiBz
cGVjaWZpYyByZXNvdXJjZXMuCi0gICAgICoKLSAgICAgKiBOb3RpY2UgdGhhdCBpbmZvcm1hdGlv
biBhYm91dCBhbiBldmVudHVhbCByZWRpcmVjdCBpcyBhdmFpbGFibGUKLSAgICAgKiBpbiBAcmVz
cG9uc2UncyAjU291cE1lc3NhZ2UsIG5vdCBpbiB0aGUgI1NvdXBNZXNzYWdlIGNhcnJpZWQgYnkK
LSAgICAgKiB0aGUgQHJlcXVlc3QuIElmIEByZXNwb25zZSBpcyAlTlVMTCwgdGhlbiB0aGlzIGlz
IG5vdCBhCi0gICAgICogcmVkaXJlY3RlZCByZXF1ZXN0LgotICAgICAqCi0gICAgICogVGhlICNX
ZWJLaXRXZWJSZXNvdXJjZSBvYmplY3Qgd2lsbCBiZSB0aGUgc2FtZSB0aHJvdWdob3V0IGFsbAot
ICAgICAqIHRoZSBsaWZldGltZSBvZiB0aGUgcmVzb3VyY2UsIGJ1dCB0aGUgY29udGVudHMgbWF5
IGNoYW5nZSBmcm9tCi0gICAgICogaW5iZXR3ZWVuIHNpZ25hbCBlbWlzc2lvbnMuCi0gICAgICoK
LSAgICAgKiBTaW5jZTogMS4xLjE0Ci0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25h
bHNbUkVTT1VSQ0VfUkVRVUVTVF9TVEFSVElOR10gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLXJl
cXVlc3Qtc3RhcnRpbmciLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3Mp
LAotICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FD
VElPTiksCi0gICAgICAgIDAsCi0gICAgICAgIE5VTEwsIE5VTEwsCi0gICAgICAgIHdlYmtpdF9t
YXJzaGFsX1ZPSURfX09CSkVDVF9PQkpFQ1RfT0JKRUNUX09CSkVDVCwKLSAgICAgICAgR19UWVBF
X05PTkUsIDQsCi0gICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKLSAgICAgICAgV0VCS0lU
X1RZUEVfV0VCX1JFU09VUkNFLAotICAgICAgICBXRUJLSVRfVFlQRV9ORVRXT1JLX1JFUVVFU1Qs
Ci0gICAgICAgIFdFQktJVF9UWVBFX05FVFdPUktfUkVTUE9OU0UpOwotCi0gICAgLyoqCi0gICAg
ICogV2ViS2l0V2ViVmlldzo6Z2VvbG9jYXRpb24tcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZDoK
LSAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0
dGVkCi0gICAgICogQGZyYW1lOiB0aGUgZnJhbWUgdGhhdCByZXF1ZXN0cyBwZXJtaXNzaW9uCi0g
ICAgICogQHBvbGljeV9kZWNpc2lvbjogYSBXZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9u
Ci0gICAgICoKLSAgICAgKiBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW4gYSBAZnJhbWUgd2Fu
dHMgdG8gb2J0YWluIHRoZSB1c2VyJ3MKLSAgICAgKiBsb2NhdGlvbi4gVGhlIGRlY2lzaW9uIGNh
biBiZSBtYWRlIGFzeW5jaHJvbm91c2x5LCBidXQgeW91IG11c3QKLSAgICAgKiBjYWxsIGdfb2Jq
ZWN0X3JlZigpIHRoZSBAcG9saWN5X2RlY2lzaW9uLCBhbmQgcmV0dXJuICVUUlVFIGlmCi0gICAg
ICogeW91IGFyZSBnb2luZyB0byBoYW5kbGUgdGhlIHJlcXVlc3QuIFRvIGFjdHVhbGx5IG1ha2Ug
dGhlCi0gICAgICogZGVjaXNpb24geW91IG5lZWQgdG8gY2FsbCB3ZWJraXRfZ2VvbG9jYXRpb25f
cG9saWN5X2FsbG93KCkgb3IKLSAgICAgKiB3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2Rlbnko
KSBvbiBAcG9saWN5X2RlY2lzaW9uLgotICAgICAqCi0gICAgICogU2luY2U6IDEuMS4yMwotICAg
ICAqLwotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0dFT0xPQ0FUSU9OX1BPTElDWV9ERUNJ
U0lPTl9SRVFVRVNURURdID0gZ19zaWduYWxfbmV3KCJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNp
b24tcmVxdWVzdGVkIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwK
LSAgICAgICAgKEdTaWduYWxGbGFncykoR19TSUdOQUxfUlVOX0xBU1QpLAotICAgICAgICAwLAot
ICAgICAgICBOVUxMLCBOVUxMLAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpF
Q1RfT0JKRUNULAotICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKLSAgICAgICAgV0VCS0lUX1RZ
UEVfV0VCX0ZSQU1FLAotICAgICAgICBXRUJLSVRfVFlQRV9HRU9MT0NBVElPTl9QT0xJQ1lfREVD
SVNJT04pOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6Z2VvbG9jYXRpb24tcG9s
aWN5LWRlY2lzaW9uLWNhbmNlbGxlZDoKLSAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgb24g
d2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQGZyYW1lOiB0aGUgZnJhbWUgdGhh
dCBjYW5jZWxzIGdlb2xvY2F0aW9uIHJlcXVlc3QuCi0gICAgICoKLSAgICAgKiBXaGVuIGEgQGZy
YW1lIHdhbnRzIHRvIGNhbmNlbCBnZW9sb2NhdGlvbiBwZXJtaXNzaW9uIGl0IGhhZCByZXF1ZXN0
ZWQKLSAgICAgKiBiZWZvcmUuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4xLjIzCi0gICAgICov
Ci0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbR0VPTE9DQVRJT05fUE9MSUNZX0RFQ0lTSU9O
X0NBTkNFTExFRF0gPSBnX3NpZ25hbF9uZXcoImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1j
YW5jZWxsZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAg
ICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCksCi0gICAgICAgIDAsCi0gICAg
ICAgIE5VTEwsIE5VTEwsCi0gICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19PQkpFQ1Qs
Ci0gICAgICAgIEdfVFlQRV9OT05FLCAxLAotICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUp
OwotCi0gICAgLyoKLSAgICAgKiBET00tcmVsYXRlZCBzaWduYWxzLiBUaGVzZSBzaWduYWxzIGFy
ZSBleHBlcmltZW50YWwsIGZvciBub3csCi0gICAgICogYW5kIG1heSBjaGFuZ2UgQVBJIGFuZCBB
QkkuIFRoZWlyIGNvbW1lbnRzIGxhY2sgb25lICogb24KLSAgICAgKiBwdXJwb3NlLCB0byBtYWtl
IHRoZW0gbm90IGJlIGNhdGNoZWQgYnkgZ3RrLWRvYy4KLSAgICAgKi8KLQotICAgIC8qKgotICAg
ICAqIFdlYktpdFdlYlZpZXc6OmRvY3VtZW50LWxvYWQtZmluaXNoZWQ6Ci0gICAgICogQHdlYl92
aWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKLSAgICAgKiBAd2ViX2Zy
YW1lOiB0aGUgI1dlYktpdFdlYkZyYW1lIHdob3NlIGxvYWQgZGlzcGF0Y2hlZCB0aGlzIHJlcXVl
c3QKLSAgICAgKgotICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgRE9NIGRvY3VtZW50IG9iamVjdCBs
b2FkIGlzIGZpbmlzaGVkIGZvciB0aGUKLSAgICAgKiBnaXZlbiBmcmFtZS4KLSAgICAgKi8KLSAg
ICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tET0NVTUVOVF9MT0FEX0ZJTklTSEVEXSA9IGdfc2ln
bmFsX25ldygiZG9jdW1lbnQtbG9hZC1maW5pc2hlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NM
QVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIChHU2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9M
QVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgMCwKLSAgICAgICAgTlVMTCwgTlVMTCwK
LSAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09CSkVDVCwKLSAgICAgICAgR19UWVBF
X05PTkUsIDEsCi0gICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSk7Ci0KLSAgICAvKioKLSAg
ICAgKiBXZWJLaXRXZWJWaWV3OjpmcmFtZS1jcmVhdGVkOgotICAgICAqIEB3ZWJfdmlldzogdGhl
IG9iamVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCi0gICAgICogQHdlYl9mcmFtZTogdGhl
ICNXZWJLaXRXZWJGcmFtZSB3aGljaCB3YXMganVzdCBjcmVhdGVkLgotICAgICAqCi0gICAgICog
RW1pdHRlZCB3aGVuIGEgV2ViS2l0V2ViVmlldyBoYXMgY3JlYXRlZCBhIG5ldyBmcmFtZS4gVGhp
cyBzaWduYWwgd2lsbAotICAgICAqIGJlIGVtaXR0ZWQgZm9yIGFsbCBzdWItZnJhbWVzIGNyZWF0
ZWQgZHVyaW5nIHBhZ2UgbG9hZC4gSXQgd2lsbCBub3QgYmUKLSAgICAgKiBlbWl0dGVkIGZvciB0
aGUgbWFpbiBmcmFtZSwgd2hpY2ggb3JpZ2luYXRlcyBpbiB0aGUgV2ViS2l0V2ViVmlldyBjb25z
dHJ1Y3RvcgotICAgICAqIGFuZCBtYXkgYmUgYWNjZXNzZWQgYXQgYW55IHRpbWUgdXNpbmcgd2Vi
a2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lLgotICAgICAqCi0gICAgICogU2luY2U6IDEuMy40
Ci0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbRlJBTUVfQ1JFQVRFRF0gPSBn
X3NpZ25hbF9uZXcoImZyYW1lLWNyZWF0ZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3
ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8
IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgIDAsCi0gICAgICAgIE5VTEwsIE5VTEwsCi0gICAg
ICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19PQkpFQ1QsCi0gICAgICAgIEdfVFlQRV9OT05F
LCAxLAotICAgICAgICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUpOwotCi0gICAgIC8qKgotICAgICAq
IFdlYktpdFdlYlZpZXc6OnJ1bi1maWxlLWNob29zZXI6Ci0gICAgICogQHdlYl92aWV3OiB0aGUg
I1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQHJl
cXVlc3Q6IGEgI1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdAotICAgICAqCi0gICAgICogVGhpcyBz
aWduYWwgaXMgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIGludGVyYWN0cyB3aXRoIGEgJmx0O2lucHV0
Ci0gICAgICogdHlwZT0nZmlsZScgLyZndDsgSFRNTCBlbGVtZW50LCByZXF1ZXN0aW5nIGZyb20g
V2ViS2l0IHRvIHNob3cKLSAgICAgKiBhIGRpYWxvZyB0byBzZWxlY3Qgb25lIG9yIG1vcmUgZmls
ZXMgdG8gYmUgdXBsb2FkZWQuIFRvIGxldCB0aGUKLSAgICAgKiBhcHBsaWNhdGlvbiBrbm93IHRo
ZSBkZXRhaWxzIG9mIHRoZSBmaWxlIGNob29zZXIsIGFzIHdlbGwgYXMgdG8KLSAgICAgKiBhbGxv
dyB0aGUgY2xpZW50IGFwcGxpY2F0aW9uIHRvIGVpdGhlciBjYW5jZWwgdGhlIHJlcXVlc3Qgb3IK
LSAgICAgKiBwZXJmb3JtIGFuIGFjdHVhbCBzZWxlY3Rpb24gb2YgZmlsZXMsIHRoZSBzaWduYWwg
d2lsbCBwYXNzIGFuCi0gICAgICogaW5zdGFuY2Ugb2YgdGhlICNXZWJLaXRGaWxlQ2hvb3NlclJl
cXVlc3QgaW4gdGhlIEByZXF1ZXN0Ci0gICAgICogYXJndW1lbnQuCi0gICAgICoKLSAgICAgKiBU
aGUgZGVmYXVsdCBzaWduYWwgaGFuZGxlciB3aWxsIGFzeW5jaHJvbm91c2x5IHJ1biBhIHJlZ3Vs
YXIKLSAgICAgKiAjR3RrRmlsZUNob29zZXJEaWFsb2cgZm9yIHRoZSB1c2VyIHRvIGludGVyYWN0
IHdpdGguCi0gICAgICoKLSAgICAgKiBJZiB0aGlzIHNpZ25hbCBpcyB0byBiZSBoYW5kbGVkIGFz
eW5jaHJvbm91c2x5LCB5b3UgbXVzdAotICAgICAqIGNhbGwgZ19vYmplY3RfcmVmKCkgb24gdGhl
IEByZXF1ZXN0LCBhbmQgcmV0dXJuICVUUlVFIHRvIGluZGljYXRlCi0gICAgICogdGhhdCB0aGUg
cmVxdWVzdCBpcyBiZWluZyBoYW5kbGVkLiBXaGVuIHlvdSBhcmUgcmVhZHkgdG8gY29tcGxldGUg
dGhlCi0gICAgICogcmVxdWVzdCwgY2FsbCB3ZWJraXRfZmlsZV9jaG9vc2VyX3JlcXVlc3Rfc2Vs
ZWN0X2ZpbGVzKCkuCi0gICAgICoKLSAgICAgKiBSZXR1cm5zOiAlVFJVRSB0byBzdG9wIG90aGVy
IGhhbmRsZXJzIGZyb20gYmVpbmcgaW52b2tlZCBmb3IgdGhlIGV2ZW50LgotICAgICAqICAgJUZB
TFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZlbnQgZnVydGhlci4KLSAgICAgKgotICAgICAqLwotICAg
IHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1JVTl9GSUxFX0NIT09TRVJdID0gZ19zaWduYWxfbmV3
KCJydW4tZmlsZS1jaG9vc2VyIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0Ns
YXNzKSwKLSAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCi0gICAgICAgIEdfU1RSVUNUX09GRlNF
VChXZWJLaXRXZWJWaWV3Q2xhc3MsIHJ1bl9maWxlX2Nob29zZXIpLAotICAgICAgICBnX3NpZ25h
bF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsIDAgLyogYWNjdW11bGF0b3IgZGF0YSAqLywKLSAg
ICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNULAotICAgICAgICBHX1RZUEVfQk9P
TEVBTiwgMSwgLyogbnVtYmVyIG9mIHBhcmFtZXRlcnMgKi8KLSAgICAgICAgV0VCS0lUX1RZUEVf
RklMRV9DSE9PU0VSX1JFUVVFU1QpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6
c2hvdWxkLWJlZ2luLWVkaXRpbmc6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZp
ZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICogQHJhbmdlOiBhICNXZWJL
aXRET01SYW5nZQotICAgICAqCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNb
U0hPVUxEX0JFR0lOX0VESVRJTkddID0gZ19zaWduYWxfbmV3KCJzaG91bGQtYmVnaW4tZWRpdGlu
ZyIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIHN0
YXRpY19jYXN0PEdTaWduYWxGbGFncz4oR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJ
T04pLAotICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBzaG91bGRf
YWxsb3dfZWRpdGluZ19hY3Rpb24pLAotICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl9maXJz
dF93aW5zLCAwLAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1QsCi0gICAg
ICAgIEdfVFlQRV9CT09MRUFOLCAxLAotICAgICAgICBXRUJLSVRfVFlQRV9ET01fUkFOR0UpOwot
Ci0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6c2hvdWxkLWVuZC1lZGl0aW5nOgotICAg
ICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMg
ZW1pdHRlZAotICAgICAqIEByYW5nZTogYSAjV2ViS2l0RE9NUmFuZ2UKLSAgICAgKgotICAgICAq
LwotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1NIT1VMRF9FTkRfRURJVElOR10gPSBnX3Np
Z25hbF9uZXcoInNob3VsZC1lbmQtZWRpdGluZyIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNT
KHdlYlZpZXdDbGFzcyksCi0gICAgICAgIHN0YXRpY19jYXN0PEdTaWduYWxGbGFncz4oR19TSUdO
QUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAotICAgICAgICBHX1NUUlVDVF9PRkZTRVQo
V2ViS2l0V2ViVmlld0NsYXNzLCBzaG91bGRfYWxsb3dfZWRpdGluZ19hY3Rpb24pLAotICAgICAg
ICBnX3NpZ25hbF9hY2N1bXVsYXRvcl9maXJzdF93aW5zLCAwLAotICAgICAgICB3ZWJraXRfbWFy
c2hhbF9CT09MRUFOX19PQkpFQ1QsCi0gICAgICAgIEdfVFlQRV9CT09MRUFOLCAxLAotICAgICAg
ICBXRUJLSVRfVFlQRV9ET01fUkFOR0UpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmll
dzo6c2hvdWxkLWluc2VydC1ub2RlOgotICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJW
aWV3IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIEBub2RlOiBhICNXZWJL
aXRET01Ob2RlCi0gICAgICogQHJhbmdlOiBhICNXZWJLaXRET01SYW5nZQotICAgICAqIEBhY3Rp
b246IGEgI1dlYktpdEluc2VydEFjdGlvbgotICAgICAqCi0gICAgICovCi0gICAgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbU0hPVUxEX0lOU0VSVF9OT0RFXSA9IGdfc2lnbmFsX25ldygic2hvdWxk
LWluc2VydC1ub2RlIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8R1NpZ25hbEZsYWdzPihHX1NJR05BTF9SVU5fTEFTVCB8IEdf
U0lHTkFMX0FDVElPTiksCi0gICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xh
c3MsIHNob3VsZF9hbGxvd19lZGl0aW5nX2FjdGlvbiksCi0gICAgICAgIGdfc2lnbmFsX2FjY3Vt
dWxhdG9yX2ZpcnN0X3dpbnMsIDAsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09C
SkVDVF9PQkpFQ1RfRU5VTSwKLSAgICAgICAgR19UWVBFX0JPT0xFQU4sIDMsCi0gICAgICAgIFdF
QktJVF9UWVBFX0RPTV9OT0RFLAotICAgICAgICBXRUJLSVRfVFlQRV9ET01fUkFOR0UsCi0gICAg
ICAgIFdFQktJVF9UWVBFX0lOU0VSVF9BQ1RJT04pOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0
V2ViVmlldzo6c2hvdWxkLWluc2VydC10ZXh0OgotICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJL
aXRXZWJWaWV3IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIEBzdHJpbmc6
IGEgc3RyaW5nCi0gICAgICogQHJhbmdlOiBhICNXZWJLaXRET01SYW5nZQotICAgICAqIEBhY3Rp
b246IGEgI1dlYktpdEluc2VydEFjdGlvbgotICAgICAqCi0gICAgICovCi0gICAgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbU0hPVUxEX0lOU0VSVF9URVhUXSA9IGdfc2lnbmFsX25ldygic2hvdWxk
LWluc2VydC10ZXh0IiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8R1NpZ25hbEZsYWdzPihHX1NJR05BTF9SVU5fTEFTVCB8IEdf
U0lHTkFMX0FDVElPTiksCi0gICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xh
c3MsIHNob3VsZF9hbGxvd19lZGl0aW5nX2FjdGlvbiksCi0gICAgICAgIGdfc2lnbmFsX2FjY3Vt
dWxhdG9yX2ZpcnN0X3dpbnMsIDAsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX1NU
UklOR19PQkpFQ1RfRU5VTSwKLSAgICAgICAgR19UWVBFX0JPT0xFQU4sIDMsCi0gICAgICAgIEdf
VFlQRV9TVFJJTkcsCi0gICAgICAgIFdFQktJVF9UWVBFX0RPTV9SQU5HRSwKLSAgICAgICAgV0VC
S0lUX1RZUEVfSU5TRVJUX0FDVElPTik7Ci0KLSAgICAvLyBPbmx5IGV4aXN0cyBmb3IgR1RLKyBB
UEkgY29tcGF0aWJpbGl0eS4KLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJWaWV3OjpzaG91bGQt
ZGVsZXRlLXJhbmdlOgotICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3IG9uIHdo
aWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIEByYW5nZTogYSAjV2ViS2l0RE9NUmFu
Z2UKLSAgICAgKgotICAgICAqLwotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1NIT1VMRF9E
RUxFVEVfUkFOR0VdID0gZ19zaWduYWxfbmV3KCJzaG91bGQtZGVsZXRlLXJhbmdlIiwKLSAgICAg
ICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8
R1NpZ25hbEZsYWdzPihHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAg
ICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIHNob3VsZF9hbGxvd19lZGl0
aW5nX2FjdGlvbiksCi0gICAgICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX2ZpcnN0X3dpbnMsIDAs
Ci0gICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09CSkVDVCwKLSAgICAgICAgR19UWVBF
X0JPT0xFQU4sIDEsCi0gICAgICAgIFdFQktJVF9UWVBFX0RPTV9SQU5HRSk7Ci0KLSAgICAvKioK
LSAgICAgKiBXZWJLaXRXZWJWaWV3OjpzaG91bGQtc2hvdy1kZWxldGUtaW50ZXJmYWNlLWZvci1l
bGVtZW50OgotICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3IG9uIHdoaWNoIHRo
ZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqIEBlbGVtZW50OiBhICNXZWJLaXRET01IVE1MRWxl
bWVudAotICAgICAqCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbU0hPVUxE
X1NIT1dfREVMRVRFX0lOVEVSRkFDRV9GT1JfRUxFTUVOVF0gPSBnX3NpZ25hbF9uZXcoInNob3Vs
ZC1zaG93LWRlbGV0ZS1pbnRlcmZhY2UtZm9yLWVsZW1lbnQiLAotICAgICAgICBHX1RZUEVfRlJP
TV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICBzdGF0aWNfY2FzdDxHU2lnbmFsRmxhZ3M+
KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgMCwKLSAgICAg
ICAgZ19zaWduYWxfYWNjdW11bGF0b3JfZmlyc3Rfd2lucywgMCwKLSAgICAgICAgd2Via2l0X21h
cnNoYWxfQk9PTEVBTl9fT0JKRUNULAotICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMSwKLSAgICAg
ICAgV0VCS0lUX1RZUEVfRE9NX0hUTUxfRUxFTUVOVCk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJL
aXRXZWJWaWV3OjpzaG91bGQtY2hhbmdlLXNlbGVjdGVkLXJhbmdlOgotICAgICAqIEB3ZWJfdmll
dzogdGhlICNXZWJLaXRXZWJWaWV3IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAg
ICAqIEBmcm9tUmFuZ2U6IGEgI1dlYktpdERPTVJhbmdlCi0gICAgICogQHRvUmFuZ2U6IGEgI1dl
YktpdERPTVJhbmdlCi0gICAgICogQGFmZmluaXR5OiBhICNXZWJLaXRTZWxlY3Rpb25BZmZpbml0
eQotICAgICAqIEBzdGlsbFNlbGVjdGluZzogYm9vbAotICAgICAqCi0gICAgICovCi0gICAgd2Vi
a2l0X3dlYl92aWV3X3NpZ25hbHNbU0hPVUxEX0NIQU5HRV9TRUxFQ1RFRF9SQU5HRV0gPSBnX3Np
Z25hbF9uZXcoInNob3VsZC1jaGFuZ2Utc2VsZWN0ZWQtcmFuZ2UiLAotICAgICAgICBHX1RZUEVf
RlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICBzdGF0aWNfY2FzdDxHU2lnbmFsRmxh
Z3M+KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgR19TVFJV
Q1RfT0ZGU0VUKFdlYktpdFdlYlZpZXdDbGFzcywgc2hvdWxkX2FsbG93X2VkaXRpbmdfYWN0aW9u
KSwKLSAgICAgICAgZ19zaWduYWxfYWNjdW11bGF0b3JfZmlyc3Rfd2lucywgMCwKLSAgICAgICAg
d2Via2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX09CSkVDVF9FTlVNX0JPT0xFQU4sCi0gICAg
ICAgIEdfVFlQRV9CT09MRUFOLCA0LAotICAgICAgICBXRUJLSVRfVFlQRV9ET01fUkFOR0UsCi0g
ICAgICAgIFdFQktJVF9UWVBFX0RPTV9SQU5HRSwKLSAgICAgICAgV0VCS0lUX1RZUEVfU0VMRUNU
SU9OX0FGRklOSVRZLAotICAgICAgICBHX1RZUEVfQk9PTEVBTik7Ci0KLSAgICAvKioKLSAgICAg
KiBXZWJLaXRXZWJWaWV3OjpzaG91bGQtYXBwbHktc3R5bGU6Ci0gICAgICogQHdlYl92aWV3OiB0
aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCi0gICAgICog
QHNldDogYSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgotICAgICAqIEByYW5nZTogYSAj
V2ViS2l0RE9NUmFuZ2UKLSAgICAgKgotICAgICAqLwotICAgIHdlYmtpdF93ZWJfdmlld19zaWdu
YWxzW1NIT1VMRF9BUFBMWV9TVFlMRV0gPSBnX3NpZ25hbF9uZXcoInNob3VsZC1hcHBseS1zdHls
ZSIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIHN0
YXRpY19jYXN0PEdTaWduYWxGbGFncz4oR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJ
T04pLAotICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNzLCBzaG91bGRf
YWxsb3dfZWRpdGluZ19hY3Rpb24pLAotICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl9maXJz
dF93aW5zLCAwLAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19PQkpFQ1RfT0JKRUNU
LAotICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKLSAgICAgICAgV0VCS0lUX1RZUEVfRE9NX0NT
U19TVFlMRV9ERUNMQVJBVElPTiwKLSAgICAgICAgV0VCS0lUX1RZUEVfRE9NX1JBTkdFKTsKLQot
ICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZpZXc6OmVkaXRpbmctYmVnYW46Ci0gICAgICogQHdl
Yl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVk
Ci0gICAgICoKLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tFRElUSU5HX0JF
R0FOXSA9IGdfc2lnbmFsX25ldygiZWRpdGluZy1iZWdhbiIsCi0gICAgICAgIEdfVFlQRV9GUk9N
X0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIHN0YXRpY19jYXN0PEdTaWduYWxGbGFncz4o
R19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJR05BTF9BQ1RJT04pLAotICAgICAgICAwLAotICAgICAg
ICAwLCAwLAotICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKLSAgICAgICAg
R19UWVBFX05PTkUsIDApOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6dXNlci1j
aGFuZ2VkLWNvbnRlbnRzOgotICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3IG9u
IHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqCi0gICAgICovCi0gICAgd2Via2l0
X3dlYl92aWV3X3NpZ25hbHNbVVNFUl9DSEFOR0VEX0NPTlRFTlRTXSA9IGdfc2lnbmFsX25ldygi
dXNlci1jaGFuZ2VkLWNvbnRlbnRzIiwKLSAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmll
d0NsYXNzKSwKLSAgICAgICAgc3RhdGljX2Nhc3Q8R1NpZ25hbEZsYWdzPihHX1NJR05BTF9SVU5f
TEFTVCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgIDAsCi0gICAgICAgIDAsIDAsCi0gICAg
ICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19WT0lELAotICAgICAgICBHX1RZUEVfTk9ORSwg
MCk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJWaWV3OjplZGl0aW5nLWVuZGVkOgotICAg
ICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMg
ZW1pdHRlZAotICAgICAqCi0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbRURJ
VElOR19FTkRFRF0gPSBnX3NpZ25hbF9uZXcoImVkaXRpbmctZW5kZWQiLAotICAgICAgICBHX1RZ
UEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICBzdGF0aWNfY2FzdDxHU2lnbmFs
RmxhZ3M+KEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAgICAgMCwK
LSAgICAgICAgMCwgMCwKLSAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX1ZPSUQsCi0g
ICAgICAgIEdfVFlQRV9OT05FLCAwKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZpZXc6
OnNlbGVjdGlvbi1jaGFuZ2VkOgotICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3
IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAotICAgICAqCi0gICAgICovCi0gICAgd2Vi
a2l0X3dlYl92aWV3X3NpZ25hbHNbU0VMRUNUSU9OX0NIQU5HRURdID0gZ19zaWduYWxfbmV3KCJz
ZWxlY3Rpb24tY2hhbmdlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFz
cyksCi0gICAgICAgIHN0YXRpY19jYXN0PEdTaWduYWxGbGFncz4oR19TSUdOQUxfUlVOX0xBU1Qg
fCBHX1NJR05BTF9BQ1RJT04pLAotICAgICAgICAwLAotICAgICAgICAwLCAwLAotICAgICAgICBn
X2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKLSAgICAgICAgR19UWVBFX05PTkUsIDApOwot
Ci0gICAgLyoKLSAgICAgKiBXZWJLaXRXZWJWaWV3Ojp2aWV3cG9ydC1hdHRyaWJ1dGVzLXJlY29t
cHV0ZS1yZXF1ZXN0ZWQ6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IHdoaWNoIHJlY2Vp
dmVkIHRoZSBzaWduYWwKLSAgICAgKiBAdmlld3BvcnRfYXR0cmlidXRlczogdGhlICNXZWJLaXRW
aWV3cG9ydEF0dHJpYnV0ZXMgd2hpY2ggaGFzIHRoZSB2aWV3cG9ydCBhdHRyaWJ1dGVzLgotICAg
ICAqCi0gICAgICogVGhlICNXZWJLaXRXZWJWaWV3Ojp2aWV3cG9ydC1hdHRyaWJ1dGVzLXJlY29t
cHV0ZS1yZXF1ZXN0ZWQKLSAgICAgKiBzaWduYWwgd2lsbCBiZSBlbWl0dGVkIHdoZW4gYSBwYWdl
IHdpdGggYSB2aWV3cG9ydCBtZXRhIHRhZwotICAgICAqIGxvYWRzIGFuZCB3aGVuIHdlYmtpdF92
aWV3cG9ydF9hdHRyaWJ1dGVzX3JlY29tcHV0ZSBpcyBjYWxsZWQuCi0gICAgICoKLSAgICAgKiBU
aGUgI1dlYktpdFZpZXdwb3J0QXR0cmlidXRlcyB3aWxsIGhhdmUgZGV2aWNlIHNpemUsIGF2YWls
YWJsZSBzaXplLAotICAgICAqIGRlc2t0b3Agd2lkdGgsIGFuZCBkZXZpY2UgRFBJIHByZS1maWxs
ZWQgYnkgdmFsdWVzIHRoYXQgbWFrZSBzZW5zZQotICAgICAqIGZvciB0aGUgY3VycmVudCBzY3Jl
ZW4gYW5kIHdpZGdldCwgYnV0IHlvdSBjYW4gb3ZlcnJpZGUgdGhvc2UgdmFsdWVzCi0gICAgICog
aWYgeW91IGhhdmUgc3BlY2lhbCByZXF1aXJlbWVudHMgKGZvciBpbnN0YW5jZSwgaWYgeW91IG1h
ZGUgeW91cgotICAgICAqIHdpZGdldCBiaWdnZXIgdGhhbiB0aGUgYXZhaWxhYmxlIHZpc2libGUg
YXJlYSwgeW91IHNob3VsZCBvdmVycmlkZQotICAgICAqIHRoZSBhdmFpbGFibGUtd2lkdGggYW5k
IGF2YWlsYWJsZS1oZWlnaHQgcHJvcGVydGllcyB0byB0aGUgYWN0dWFsCi0gICAgICogdmlzaWJs
ZSBhcmVhKS4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjMuOAotICAgICAqLwotICAgIHdlYmtp
dF93ZWJfdmlld19zaWduYWxzW1ZJRVdQT1JUX0FUVFJJQlVURVNfUkVDT01QVVRFX1JFUVVFU1RF
RF0gPSBnX3NpZ25hbF9uZXcoInZpZXdwb3J0LWF0dHJpYnV0ZXMtcmVjb21wdXRlLXJlcXVlc3Rl
ZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIChH
U2lnbmFsRmxhZ3MpKEdfU0lHTkFMX1JVTl9MQVNUIHwgR19TSUdOQUxfQUNUSU9OKSwKLSAgICAg
ICAgMCwKLSAgICAgICAgMCwgMCwKLSAgICAgICAgZ19jY2xvc3VyZV9tYXJzaGFsX1ZPSURfX09C
SkVDVCwKLSAgICAgICAgR19UWVBFX05PTkUsIDEsCi0gICAgICAgICAgICBXRUJLSVRfVFlQRV9W
SUVXUE9SVF9BVFRSSUJVVEVTKTsKLQotICAgIC8qCi0gICAgICogV2ViS2l0V2ViVmlldzo6dmll
d3BvcnQtYXR0cmlidXRlcy1jaGFuZ2VkOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVjdCB3
aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCi0gICAgICogQHZpZXdwb3J0X2F0dHJpYnV0ZXM6IHRo
ZSAjV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzIHdoaWNoIGhhcyB0aGUgdmlld3BvcnQgYXR0cmli
dXRlcy4KLSAgICAgKgotICAgICAqIFRoZSAjV2ViS2l0V2ViVmlldzo6dmlld3BvcnQtYXR0cmli
dXRlcy1jaGFuZ2VkIHNpZ25hbCB3aWxsIGJlIGVtaXR0ZWQKLSAgICAgKiBhZnRlciB0aGUgZW1p
c3Npb24gb2YgI1dlYktpdFdlYlZpZXc6OnZpZXdwb3J0LWF0dHJpYnV0ZXMtcmVjb21wdXRlLXJl
cXVlc3RlZAotICAgICAqIGFuZCB0aGUgc3Vic2VxdWVudCB2aWV3cG9ydCBhdHRyaWJ1dGUgcmVj
b21wdXRhdGlvbi4gQXQgdGhpcyBwb2ludCwKLSAgICAgKiBpZiB0aGUgI1dlYktpdFZpZXdwb3J0
QXR0cmlidXRlcyBhcmUgdmFsaWQsIHRoZSB2aWV3cG9ydCBhdHRyaWJ1dGVzIGFyZSBhdmFpbGFi
bGUuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4zLjgKLSAgICAgKi8KLSAgICB3ZWJraXRfd2Vi
X3ZpZXdfc2lnbmFsc1tWSUVXUE9SVF9BVFRSSUJVVEVTX0NIQU5HRURdID0gZ19zaWduYWxfbmV3
KCJ2aWV3cG9ydC1hdHRyaWJ1dGVzLWNoYW5nZWQiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFT
Uyh3ZWJWaWV3Q2xhc3MpLAotICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFT
VCB8IEdfU0lHTkFMX0FDVElPTiksCi0gICAgICAgIDAsCi0gICAgICAgIDAsIDAsCi0gICAgICAg
IGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19PQkpFQ1QsCi0gICAgICAgIEdfVFlQRV9OT05FLCAx
LAotICAgICAgICBXRUJLSVRfVFlQRV9WSUVXUE9SVF9BVFRSSUJVVEVTKTsKLQotICAgIC8qKgot
ICAgICAqIFdlYktpdFdlYlZpZXc6OmVudGVyaW5nLWZ1bGxzY3JlZW46Ci0gICAgICogQHdlYl92
aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkLgot
ICAgICAqIEBlbGVtZW50OiB0aGUgI1dlYktpdERPTUhUTUxFbGVtZW50IHdoaWNoIGhhcyByZXF1
ZXN0ZWQgZnVsbCBzY3JlZW4gZGlzcGxheS4KLSAgICAgKgotICAgICAqIEVtaXR0ZWQgd2hlbiBK
YXZhU2NyaXB0IGNvZGUgY2FsbHMKLSAgICAgKiA8ZnVuY3Rpb24+ZWxlbWVudC53ZWJraXRSZXF1
ZXN0RnVsbFNjcmVlbjwvZnVuY3Rpb24+LiBJZiB0aGUKLSAgICAgKiBzaWduYWwgaXMgbm90IGhh
bmRsZWQgdGhlIFdlYlZpZXcgd2lsbCBwcm9jZWVkIHRvIGZ1bGwgc2NyZWVuCi0gICAgICogaXRz
IHRvcCBsZXZlbCB3aW5kb3cuIFRoaXMgc2lnbmFsIGNhbiBiZSB1c2VkIGJ5IGNsaWVudCBjb2Rl
IHRvCi0gICAgICogcmVxdWVzdCBwZXJtaXNzaW9uIHRvIHRoZSB1c2VyIHByaW9yIGRvaW5nIHRo
ZSBmdWxsIHNjcmVlbgotICAgICAqIHRyYW5zaXRpb24gYW5kIGV2ZW50dWFsbHkgcHJlcGFyZSB0
aGUgdG9wLWxldmVsIHdpbmRvdwotICAgICAqIChlLmcuIGhpZGUgc29tZSB3aWRnZXRzIHRoYXQg
d291bGQgb3RoZXJ3aXNlIGJlIHBhcnQgb2YgdGhlCi0gICAgICogZnVsbCBzY3JlZW4gd2luZG93
KS4KLSAgICAgKgotICAgICAqIFJldHVybnM6ICVUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMg
ZnJvbSBiZWluZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuCi0gICAgICogICAgJUZBTFNFIHRvIGNv
bnRpbnVlIGVtaXNzaW9uIG9mIHRoZSBldmVudC4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjku
MAotICAgICAqLwotICAgIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0VOVEVSSU5HX0ZVTExTQ1JF
RU5dID0gZ19zaWduYWxfbmV3KCJlbnRlcmluZy1mdWxsc2NyZWVuIiwKLSAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCi0g
ICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIGVudGVyaW5nX2Z1bGxz
Y3JlZW4pLAotICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsIDAsCi0g
ICAgICAgIHdlYmtpdF9tYXJzaGFsX0JPT0xFQU5fX09CSkVDVCwKLSAgICAgICAgR19UWVBFX0JP
T0xFQU4sIDEsIFdFQktJVF9UWVBFX0RPTV9IVE1MX0VMRU1FTlQpOwotCi0KLSAgICAvKioKLSAg
ICAgKiBXZWJLaXRXZWJWaWV3OjpsZWF2aW5nLWZ1bGxzY3JlZW46Ci0gICAgICogQHdlYl92aWV3
OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkLgotICAg
ICAqIEBlbGVtZW50OiB0aGUgI1dlYktpdERPTUhUTUxFbGVtZW50IHdoaWNoIGlzIGN1cnJlbnRs
eSBkaXNwbGF5ZWQgZnVsbCBzY3JlZW4uCi0gICAgICoKLSAgICAgKiBFbWl0dGVkIHdoZW4gdGhl
IFdlYlZpZXcgaXMgYWJvdXQgdG8gcmVzdG9yZSBpdHMgdG9wIGxldmVsCi0gICAgICogd2luZG93
IG91dCBvZiBpdHMgZnVsbCBzY3JlZW4gc3RhdGUuIFRoaXMgc2lnbmFsIGNhbiBiZSB1c2VkIGJ5
Ci0gICAgICogY2xpZW50IGNvZGUgdG8gcmVzdG9yZSB3aWRnZXRzIGhpZGRlbiBkdXJpbmcgdGhl
Ci0gICAgICogZW50ZXJpbmctZnVsbHNjcmVlbiBzdGFnZSBmb3IgaW5zdGFuY2UuCi0gICAgICoK
LSAgICAgKiBSZXR1cm5zOiAlVFJVRSB0byBzdG9wIG90aGVyIGhhbmRsZXJzIGZyb20gYmVpbmcg
aW52b2tlZCBmb3IgdGhlIGV2ZW50LgotICAgICAqICAgICVGQUxTRSB0byBjb250aW51ZSBlbWlz
c2lvbiBvZiB0aGUgZXZlbnQuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS45LjAKLSAgICAgKi8K
LSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tMRUFWSU5HX0ZVTExTQ1JFRU5dID0gZ19zaWdu
YWxfbmV3KCJsZWF2aW5nLWZ1bGxzY3JlZW4iLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3
ZWJWaWV3Q2xhc3MpLAotICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgR19TVFJV
Q1RfT0ZGU0VUKFdlYktpdFdlYlZpZXdDbGFzcywgbGVhdmluZ19mdWxsc2NyZWVuKSwKLSAgICAg
ICAgZ19zaWduYWxfYWNjdW11bGF0b3JfdHJ1ZV9oYW5kbGVkLCAwLAotICAgICAgICB3ZWJraXRf
bWFyc2hhbF9CT09MRUFOX19PQkpFQ1QsCi0gICAgICAgIEdfVFlQRV9CT09MRUFOLCAxLCBXRUJL
SVRfVFlQRV9ET01fSFRNTF9FTEVNRU5UKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZp
ZXc6OnJlc291cmNlLXJlc3BvbnNlLXJlY2VpdmVkOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9i
amVjdCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCi0gICAgICogQHdlYl9mcmFtZTogdGhlICNX
ZWJLaXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgotICAgICAqIEB3ZWJf
cmVzb3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgYmVpbmcgbG9hZGVkCi0gICAgICogQHJl
c3BvbnNlOiB0aGUgI1dlYktpdE5ldHdvcmtSZXNwb25zZSB0aGF0IHdhcyByZWNlaXZlZAotICAg
ICAqCi0gICAgICogRW1pdHRlZCB3aGVuIHRoZSBmaXJzdCBieXRlIG9mIGRhdGEgYXJyaXZlcwot
ICAgICAqCi0gICAgICogU2luY2U6IDEuNy41Ci0gICAgICovCi0gICAgd2Via2l0X3dlYl92aWV3
X3NpZ25hbHNbUkVTT1VSQ0VfUkVTUE9OU0VfUkVDRUlWRURdID0gZ19zaWduYWxfbmV3KCJyZXNv
dXJjZS1yZXNwb25zZS1yZWNlaXZlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZp
ZXdDbGFzcyksCi0gICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAg
ICAwLCAwLAotICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNUX09CSkVD
VCwKLSAgICAgICAgR19UWVBFX05PTkUsIDMsCi0gICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFN
RSwKLSAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JFU09VUkNFLAotICAgICAgICBXRUJLSVRfVFlQ
RV9ORVRXT1JLX1JFU1BPTlNFKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZpZXc6OnJl
c291cmNlLWxvYWQtZmluaXNoZWQ6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2JqZWN0IHdoaWNo
IHJlY2VpdmVkIHRoZSBzaWduYWwKLSAgICAgKiBAd2ViX2ZyYW1lOiB0aGUgI1dlYktpdFdlYkZy
YW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9yCi0gICAgICogQHdlYl9yZXNvdXJjZTog
dGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKLSAgICAgKgotICAgICAqIEVt
aXR0ZWQgd2hlbiBhbGwgdGhlIGRhdGEgZm9yIHRoZSByZXNvdXJjZSB3YXMgbG9hZGVkCi0gICAg
ICoKLSAgICAgKiBTaW5jZTogMS43LjUKLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2ln
bmFsc1tSRVNPVVJDRV9MT0FEX0ZJTklTSEVEXSA9IGdfc2lnbmFsX25ldygicmVzb3VyY2UtbG9h
ZC1maW5pc2hlZCIsCi0gICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0g
ICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAgICAwLCAwLAotICAg
ICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNULAotICAgICAgICBHX1RZUEVf
Tk9ORSwgMiwKLSAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0ZSQU1FLAotICAgICAgICBXRUJLSVRf
VFlQRV9XRUJfUkVTT1VSQ0UpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmlldzo6cmVz
b3VyY2UtY29udGVudC1sZW5ndGgtcmVjZWl2ZWQ6Ci0gICAgICogQHdlYl92aWV3OiB0aGUgb2Jq
ZWN0IHdoaWNoIHJlY2VpdmVkIHRoZSBzaWduYWwKLSAgICAgKiBAd2ViX2ZyYW1lOiB0aGUgI1dl
YktpdFdlYkZyYW1lIHRoZSByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZm9yCi0gICAgICogQHdlYl9y
ZXNvdXJjZTogdGhlICNXZWJLaXRXZWJSZXNvdXJjZSB0aGF0IHdhcyBsb2FkZWQKLSAgICAgKiBA
bGVuZ3RoX3JlY2VpdmVkOiB0aGUgYW1vdW50IG9mIGRhdGEgcmVjZWl2ZWQgc2luY2UgdGhlIGxh
c3Qgc2lnbmFsIGVtaXNzaW9uCi0gICAgICoKLSAgICAgKiBFbWl0dGVkIHdoZW4gbmV3IHJlc291
cmNlIGRhdGEgaGFzIGJlZW4gcmVjZWl2ZWQuIFRoZQotICAgICAqIEBsZW5ndGhfcmVjZWl2ZWQg
dmFyaWFibGUgc3RvcmVzIHRoZSBhbW91bnQgb2YgYnl0ZXMgcmVjZWl2ZWQKLSAgICAgKiBzaW5j
ZSB0aGUgbGFzdCB0aW1lIHRoaXMgc2lnbmFsIHdhcyBlbWl0dGVkLiBUaGlzIGlzIHVzZWZ1bCB0
bwotICAgICAqIHByb3ZpZGUgcHJvZ3Jlc3MgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlc291cmNl
IGxvYWQgb3BlcmF0aW9uLgotICAgICAqCi0gICAgICogU2luY2U6IDEuNy41Ci0gICAgICovCi0g
ICAgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbUkVTT1VSQ0VfQ09OVEVOVF9MRU5HVEhfUkVDRUlW
RURdID0gZ19zaWduYWxfbmV3KCJyZXNvdXJjZS1jb250ZW50LWxlbmd0aC1yZWNlaXZlZCIsCi0g
ICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCi0gICAgICAgIEdfU0lHTkFM
X1JVTl9MQVNULAotICAgICAgICAwLAotICAgICAgICAwLCAwLAotICAgICAgICB3ZWJraXRfbWFy
c2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNUX0lOVCwKLSAgICAgICAgR19UWVBFX05PTkUsIDMsCi0g
ICAgICAgIFdFQktJVF9UWVBFX1dFQl9GUkFNRSwKLSAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1JF
U09VUkNFLAotICAgICAgICBHX1RZUEVfSU5UKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdl
YlZpZXc6OnJlc291cmNlLWxvYWQtZmFpbGVkOgotICAgICAqIEB3ZWJfdmlldzogdGhlIG9iamVj
dCB3aGljaCByZWNlaXZlZCB0aGUgc2lnbmFsCi0gICAgICogQHdlYl9mcmFtZTogdGhlICNXZWJL
aXRXZWJGcmFtZSB0aGUgcmVzcG9uc2Ugd2FzIHJlY2VpdmVkIGZvcgotICAgICAqIEB3ZWJfcmVz
b3VyY2U6IHRoZSAjV2ViS2l0V2ViUmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkCi0gICAgICogQGVy
cm9yOiB0aGUgI0dFcnJvciB0aGF0IHdhcyB0cmlnZ2VyZWQKLSAgICAgKgotICAgICAqIEludm9r
ZWQgd2hlbiBhIHJlc291cmNlIGZhaWxlZCB0byBsb2FkCi0gICAgICoKLSAgICAgKiBTaW5jZTog
MS43LjUKLSAgICAgKi8KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tSRVNPVVJDRV9MT0FE
X0ZBSUxFRF0gPSBnX3NpZ25hbF9uZXcoInJlc291cmNlLWxvYWQtZmFpbGVkIiwKLSAgICAgICAg
R19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKLSAgICAgICAgR19TSUdOQUxfUlVOX0xB
U1QsCi0gICAgICAgIDAsCi0gICAgICAgIDAsIDAsCi0gICAgICAgIHdlYmtpdF9tYXJzaGFsX1ZP
SURfX09CSkVDVF9PQkpFQ1RfQk9YRUQsCi0gICAgICAgIEdfVFlQRV9OT05FLCAzLAotICAgICAg
ICBXRUJLSVRfVFlQRV9XRUJfRlJBTUUsCi0gICAgICAgIFdFQktJVF9UWVBFX1dFQl9SRVNPVVJD
RSwKLSAgICAgICAgR19UWVBFX0VSUk9SKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYlZp
ZXc6OmNvbnRleHQtbWVudToKLSAgICAgKiBAd2ViX3ZpZXc6IHRoZSBvYmplY3Qgd2hpY2ggcmVj
ZWl2ZWQgdGhlIHNpZ25hbAotICAgICAqIEBkZWZhdWx0X21lbnU6IHRoZSBkZWZhdWx0IGNvbnRl
eHQgbWVudQotICAgICAqIEBoaXRfdGVzdF9yZXN1bHQ6IGEgI1dlYktpdEhpdFRlc3RSZXN1bHQg
d2l0aCB0aGUgY29udGV4dCBvZiB0aGUgY3VycmVudCBwb3NpdGlvbi4KLSAgICAgKiBAdHJpZ2dl
cmVkX3dpdGhfa2V5Ym9hcmQ6ICVUUlVFIGlmIHRoZSBjb250ZXh0IG1lbnUgd2FzIHRyaWdnZXJl
ZCB1c2luZyB0aGUga2V5Ym9hcmQKLSAgICAgKgotICAgICAqIEVtbWl0ZWQgd2hlbiBhIGNvbnRl
eHQgbWVudSBpcyBhYm91dCB0byBiZSBkaXNwbGF5ZWQgdG8gZ2l2ZSB0aGUgYXBwbGljYXRpb24K
LSAgICAgKiBhIGNoYW5jZSB0byBjcmVhdGUgYW5kIGhhbmRsZSBpdHMgb3duIGNvbnRleHQgbWVu
dS4gSWYgeW91IG9ubHkgd2FudCB0byBhZGQgY3VzdG9tCi0gICAgICogb3B0aW9ucyB0byB0aGUg
ZGVmYXVsdCBjb250ZXh0IG1lbnUgeW91IGNhbiBzaW1wbHkgbW9kaWZ5IHRoZSBnaXZlbiBAZGVm
YXVsdF9tZW51LgotICAgICAqCi0gICAgICogV2hlbiBAdHJpZ2dlcmVkX3dpdGhfa2V5Ym9hcmQg
aXMgJVRSVUUgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBnaXZlbiBAaGl0X3Rlc3RfcmVzdWx0IHNo
b3VsZCBiZQotICAgICAqIHVzZWQgdG8gcG9zaXRpb24gdGhlIHBvcHVwIG1lbnUuIFdoZW4gdGhl
IGNvbnRleHQgbWVudSBoYXMgYmVlbiB0cmlnZ2VyZWQgYnkgYQotICAgICAqIG1vdXNlIGV2ZW50
IHlvdSBjb3VsZCBlaXRoZXIgdXNlIHRoZSBAaGl0X3Rlc3RfcmVzdWx0IGNvb3JkaW5hdGVzIG9y
IHBhc3MgJU5VTEwKLSAgICAgKiB0byB0aGUgI0d0a01lbnVQb3NpdGlvbkZ1bmMgcGFyYW1ldGVy
IG9mIGd0a19tZW51X3BvcHVwKCkgZnVuY3Rpb24uCi0gICAgICogTm90ZSB0aGF0IGNvb3JkaW5h
dGVzIG9mIEBoaXRfdGVzdF9yZXN1bHQgYXJlIHJlbGF0aXZlIHRvIEB3ZWJfdmlldyB3aW5kb3cu
Ci0gICAgICoKLSAgICAgKiBJZiB5b3VyIGFwcGxpY2F0aW9uIHdpbGwgY3JlYXRlIGFuZCBkaXNw
bGF5IGl0cyBvd24gcG9wdXAgbWVudSwgJVRSVUUgc2hvdWxkIGJlIHJldHVybmVkLgotICAgICAq
IE5vdGUgdGhhdCB3aGVuIHRoZSBjb250ZXh0IG1lbnUgaXMgaGFuZGxlZCBieSB0aGUgYXBwbGlj
YXRpb24sIHRoZSAjV2ViS2l0V2ViU2V0dGluZ3M6ZW5hYmxlLWRlZmF1bHQtY29udGV4dC1tZW51
Ci0gICAgICogc2V0dGluZyB3aWxsIGJlIGlnbm9yZWQgYW5kIHRoZSAjV2ViS2l0V2ViVmlldzo6
cG9wdWxhdGUtcG9wdXAgc2lnbmFsIHdvbid0IGJlIGVtaXR0ZWQuCi0gICAgICogSWYgeW91IGRv
bid0IHdhbnQgYW55IGNvbnRleHQgbWVudSB0byBiZSBzaG93biwgeW91IGNhbiBzaW1wbHkgY29u
bmVjdCB0byB0aGlzIHNpZ25hbAotICAgICAqIGFuZCByZXR1cm4gJVRSVUUgd2l0aG91dCBkb2lu
ZyBhbnl0aGluZyBlbHNlLgotICAgICAqCi0gICAgICogU2luY2U6IDEuMTAKLSAgICAgKi8KLSAg
ICB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tDT05URVhUX01FTlVdID0gZ19zaWduYWxfbmV3KCJj
b250ZXh0LW1lbnUiLAotICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAot
ICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKLSAgICAgICAgMCwgMCwgMCwKLSAgICAgICAgd2Vi
a2l0X21hcnNoYWxfQk9PTEVBTl9fT0JKRUNUX09CSkVDVF9CT09MRUFOLAotICAgICAgICBHX1RZ
UEVfQk9PTEVBTiwgMywKLSAgICAgICAgR1RLX1RZUEVfV0lER0VULAotICAgICAgICBXRUJLSVRf
VFlQRV9ISVRfVEVTVF9SRVNVTFQsCi0gICAgICAgIEdfVFlQRV9CT09MRUFOKTsKLQotICAgIC8q
Ci0gICAgICogaW1wbGVtZW50YXRpb25zIG9mIHZpcnR1YWwgbWV0aG9kcwotICAgICAqLwotICAg
IHdlYlZpZXdDbGFzcy0+Y3JlYXRlX3dlYl92aWV3ID0gd2Via2l0X3dlYl92aWV3X3JlYWxfY3Jl
YXRlX3dlYl92aWV3OwotICAgIHdlYlZpZXdDbGFzcy0+d2ViX3ZpZXdfcmVhZHkgPSB3ZWJraXRf
d2ViX3ZpZXdfcmVhbF93ZWJfdmlld19yZWFkeTsKLSAgICB3ZWJWaWV3Q2xhc3MtPmNsb3NlX3dl
Yl92aWV3ID0gd2Via2l0X3dlYl92aWV3X3JlYWxfY2xvc2Vfd2ViX3ZpZXc7Ci0gICAgd2ViVmll
d0NsYXNzLT5uYXZpZ2F0aW9uX3JlcXVlc3RlZCA9IHdlYmtpdF93ZWJfdmlld19yZWFsX25hdmln
YXRpb25fcmVxdWVzdGVkOwotICAgIHdlYlZpZXdDbGFzcy0+d2luZG93X29iamVjdF9jbGVhcmVk
ID0gd2Via2l0X3dlYl92aWV3X3JlYWxfd2luZG93X29iamVjdF9jbGVhcmVkOwotICAgIHdlYlZp
ZXdDbGFzcy0+Y2hvb3NlX2ZpbGUgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9jaG9vc2VfZmlsZTsK
LSAgICB3ZWJWaWV3Q2xhc3MtPnNjcmlwdF9hbGVydCA9IHdlYmtpdF93ZWJfdmlld19yZWFsX3Nj
cmlwdF9hbGVydDsKLSAgICB3ZWJWaWV3Q2xhc3MtPnNjcmlwdF9jb25maXJtID0gd2Via2l0X3dl
Yl92aWV3X3JlYWxfc2NyaXB0X2NvbmZpcm07Ci0gICAgd2ViVmlld0NsYXNzLT5zY3JpcHRfcHJv
bXB0ID0gd2Via2l0X3dlYl92aWV3X3JlYWxfc2NyaXB0X3Byb21wdDsKLSAgICB3ZWJWaWV3Q2xh
c3MtPmNvbnNvbGVfbWVzc2FnZSA9IHdlYmtpdF93ZWJfdmlld19yZWFsX2NvbnNvbGVfbWVzc2Fn
ZTsKLSAgICB3ZWJWaWV3Q2xhc3MtPnNlbGVjdF9hbGwgPSB3ZWJraXRfd2ViX3ZpZXdfcmVhbF9z
ZWxlY3RfYWxsOwotICAgIHdlYlZpZXdDbGFzcy0+Y3V0X2NsaXBib2FyZCA9IHdlYmtpdF93ZWJf
dmlld19yZWFsX2N1dF9jbGlwYm9hcmQ7Ci0gICAgd2ViVmlld0NsYXNzLT5jb3B5X2NsaXBib2Fy
ZCA9IHdlYmtpdF93ZWJfdmlld19yZWFsX2NvcHlfY2xpcGJvYXJkOwotICAgIHdlYlZpZXdDbGFz
cy0+cGFzdGVfY2xpcGJvYXJkID0gd2Via2l0X3dlYl92aWV3X3JlYWxfcGFzdGVfY2xpcGJvYXJk
OwotICAgIHdlYlZpZXdDbGFzcy0+dW5kbyA9IHdlYmtpdF93ZWJfdmlld19yZWFsX3VuZG87Ci0g
ICAgd2ViVmlld0NsYXNzLT5yZWRvID0gd2Via2l0X3dlYl92aWV3X3JlYWxfcmVkbzsKLSAgICB3
ZWJWaWV3Q2xhc3MtPm1vdmVfY3Vyc29yID0gd2Via2l0X3dlYl92aWV3X3JlYWxfbW92ZV9jdXJz
b3I7Ci0gICAgd2ViVmlld0NsYXNzLT5zaG91bGRfYWxsb3dfZWRpdGluZ19hY3Rpb24gPSB3ZWJr
aXRfd2ViX3ZpZXdfcmVhbF9zaG91bGRfYWxsb3dfZWRpdGluZ19hY3Rpb247Ci0gICAgd2ViVmll
d0NsYXNzLT5lbnRlcmluZ19mdWxsc2NyZWVuID0gd2Via2l0X3dlYl92aWV3X3JlYWxfZW50ZXJp
bmdfZnVsbHNjcmVlbjsKLSAgICB3ZWJWaWV3Q2xhc3MtPmxlYXZpbmdfZnVsbHNjcmVlbiA9IHdl
YmtpdF93ZWJfdmlld19yZWFsX2xlYXZpbmdfZnVsbHNjcmVlbjsKLSAgICB3ZWJWaWV3Q2xhc3Mt
PnJ1bl9maWxlX2Nob29zZXIgPSB3ZWJraXRXZWJWaWV3UmVhbFJ1bkZpbGVDaG9vc2VyOwotCi0g
ICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHdlYlZpZXdDbGFz
cyk7Ci0gICAgb2JqZWN0Q2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRfd2ViX3ZpZXdfZGlzcG9zZTsK
LSAgICBvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfd2ViX3ZpZXdfZmluYWxpemU7Ci0g
ICAgb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfdmlld19nZXRfcHJvcGVy
dHk7Ci0gICAgb2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdF93ZWJfdmlld19zZXRf
cHJvcGVydHk7Ci0KLSAgICBHdGtXaWRnZXRDbGFzcyogd2lkZ2V0Q2xhc3MgPSBHVEtfV0lER0VU
X0NMQVNTKHdlYlZpZXdDbGFzcyk7Ci0gICAgd2lkZ2V0Q2xhc3MtPnJlYWxpemUgPSB3ZWJraXRf
d2ViX3ZpZXdfcmVhbGl6ZTsKLSNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotICAgIHdpZGdldENs
YXNzLT5leHBvc2VfZXZlbnQgPSB3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50OwotI2Vsc2UK
LSAgICB3aWRnZXRDbGFzcy0+ZHJhdyA9IHdlYmtpdF93ZWJfdmlld19kcmF3OwotI2VuZGlmCi0g
ICAgd2lkZ2V0Q2xhc3MtPmtleV9wcmVzc19ldmVudCA9IHdlYmtpdF93ZWJfdmlld19rZXlfcHJl
c3NfZXZlbnQ7Ci0gICAgd2lkZ2V0Q2xhc3MtPmtleV9yZWxlYXNlX2V2ZW50ID0gd2Via2l0X3dl
Yl92aWV3X2tleV9yZWxlYXNlX2V2ZW50OwotICAgIHdpZGdldENsYXNzLT5idXR0b25fcHJlc3Nf
ZXZlbnQgPSB3ZWJraXRfd2ViX3ZpZXdfYnV0dG9uX3ByZXNzX2V2ZW50OwotICAgIHdpZGdldENs
YXNzLT5idXR0b25fcmVsZWFzZV9ldmVudCA9IHdlYmtpdF93ZWJfdmlld19idXR0b25fcmVsZWFz
ZV9ldmVudDsKLSAgICB3aWRnZXRDbGFzcy0+bW90aW9uX25vdGlmeV9ldmVudCA9IHdlYmtpdF93
ZWJfdmlld19tb3Rpb25fZXZlbnQ7Ci0gICAgd2lkZ2V0Q2xhc3MtPnNjcm9sbF9ldmVudCA9IHdl
YmtpdF93ZWJfdmlld19zY3JvbGxfZXZlbnQ7Ci0gICAgd2lkZ2V0Q2xhc3MtPnNpemVfYWxsb2Nh
dGUgPSB3ZWJraXRfd2ViX3ZpZXdfc2l6ZV9hbGxvY2F0ZTsKLSNpZmRlZiBHVEtfQVBJX1ZFUlNJ
T05fMgotICAgIHdpZGdldENsYXNzLT5zaXplX3JlcXVlc3QgPSB3ZWJraXRfd2ViX3ZpZXdfc2l6
ZV9yZXF1ZXN0OwotI2Vsc2UKLSAgICB3aWRnZXRDbGFzcy0+Z2V0X3ByZWZlcnJlZF93aWR0aCA9
IHdlYmtpdF93ZWJfdmlld19nZXRfcHJlZmVycmVkX3dpZHRoOwotICAgIHdpZGdldENsYXNzLT5n
ZXRfcHJlZmVycmVkX2hlaWdodCA9IHdlYmtpdF93ZWJfdmlld19nZXRfcHJlZmVycmVkX2hlaWdo
dDsKLSNlbmRpZgotI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQotICAgIHdpZGdldENsYXNzLT5w
b3B1cF9tZW51ID0gd2Via2l0X3dlYl92aWV3X3BvcHVwX21lbnVfaGFuZGxlcjsKLSNlbHNlCi0g
ICAgd2lkZ2V0Q2xhc3MtPnBvcHVwX21lbnUgPSBOVUxMOwotI2VuZGlmCi0gICAgd2lkZ2V0Q2xh
c3MtPmdyYWJfZm9jdXMgPSB3ZWJraXRfd2ViX3ZpZXdfZ3JhYl9mb2N1czsKLSAgICB3aWRnZXRD
bGFzcy0+Zm9jdXNfaW5fZXZlbnQgPSB3ZWJraXRfd2ViX3ZpZXdfZm9jdXNfaW5fZXZlbnQ7Ci0g
ICAgd2lkZ2V0Q2xhc3MtPmZvY3VzX291dF9ldmVudCA9IHdlYmtpdF93ZWJfdmlld19mb2N1c19v
dXRfZXZlbnQ7Ci0jaWYgSEFWRShBQ0NFU1NJQklMSVRZKQotICAgIHdpZGdldENsYXNzLT5nZXRf
YWNjZXNzaWJsZSA9IHdlYmtpdF93ZWJfdmlld19nZXRfYWNjZXNzaWJsZTsKLSNlbmRpZgotICAg
IHdpZGdldENsYXNzLT5zY3JlZW5fY2hhbmdlZCA9IHdlYmtpdF93ZWJfdmlld19zY3JlZW5fY2hh
bmdlZDsKLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHdpZGdldENsYXNzLT5kcmFnX2Vu
ZCA9IHdlYmtpdF93ZWJfdmlld19kcmFnX2VuZDsKLSAgICB3aWRnZXRDbGFzcy0+ZHJhZ19kYXRh
X2dldCA9IHdlYmtpdF93ZWJfdmlld19kcmFnX2RhdGFfZ2V0OwotICAgIHdpZGdldENsYXNzLT5k
cmFnX21vdGlvbiA9IHdlYmtpdF93ZWJfdmlld19kcmFnX21vdGlvbjsKLSAgICB3aWRnZXRDbGFz
cy0+ZHJhZ19sZWF2ZSA9IHdlYmtpdF93ZWJfdmlld19kcmFnX2xlYXZlOwotICAgIHdpZGdldENs
YXNzLT5kcmFnX2Ryb3AgPSB3ZWJraXRfd2ViX3ZpZXdfZHJhZ19kcm9wOwotICAgIHdpZGdldENs
YXNzLT5kcmFnX2RhdGFfcmVjZWl2ZWQgPSB3ZWJraXRfd2ViX3ZpZXdfZHJhZ19kYXRhX3JlY2Vp
dmVkOwotI2Vsc2UKLSAgICB3aWRnZXRDbGFzcy0+ZHJhZ19lbmQgPSBOVUxMOwotICAgIHdpZGdl
dENsYXNzLT5kcmFnX2RhdGFfZ2V0ID0gTlVMTDsKLSAgICB3aWRnZXRDbGFzcy0+ZHJhZ19tb3Rp
b24gPSBOVUxMOwotICAgIHdpZGdldENsYXNzLT5kcmFnX2xlYXZlID0gTlVMTDsKLSAgICB3aWRn
ZXRDbGFzcy0+ZHJhZ19kcm9wID0gTlVMTDsKLSAgICB3aWRnZXRDbGFzcy0+ZHJhZ19kYXRhX3Jl
Y2VpdmVkID0gTlVMTDsKLSNlbmRpZgotICAgIHdpZGdldENsYXNzLT5xdWVyeV90b29sdGlwID0g
d2Via2l0X3dlYl92aWV3X3F1ZXJ5X3Rvb2x0aXA7Ci0gICAgd2lkZ2V0Q2xhc3MtPnNob3dfaGVs
cCA9IHdlYmtpdF93ZWJfdmlld19zaG93X2hlbHA7Ci0gICAgd2lkZ2V0Q2xhc3MtPm1hcCA9IHdl
YmtpdFdlYlZpZXdNYXA7Ci0KLSAgICBHdGtDb250YWluZXJDbGFzcyogY29udGFpbmVyQ2xhc3Mg
PSBHVEtfQ09OVEFJTkVSX0NMQVNTKHdlYlZpZXdDbGFzcyk7Ci0gICAgY29udGFpbmVyQ2xhc3Mt
PmFkZCA9IHdlYmtpdF93ZWJfdmlld19jb250YWluZXJfYWRkOwotICAgIGNvbnRhaW5lckNsYXNz
LT5yZW1vdmUgPSB3ZWJraXRfd2ViX3ZpZXdfY29udGFpbmVyX3JlbW92ZTsKLSAgICBjb250YWlu
ZXJDbGFzcy0+Zm9yYWxsID0gd2Via2l0X3dlYl92aWV3X2NvbnRhaW5lcl9mb3JhbGw7Ci0KLSAg
ICAvKgotICAgICAqIG1ha2UgdXMgc2Nyb2xsYWJsZSAoZS5nLiBhZGRhYmxlIHRvIGEgR3RrU2Ny
b2xsZWRXaW5kb3cpCi0gICAgICovCi0jaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKLSAgICB3ZWJW
aWV3Q2xhc3MtPnNldF9zY3JvbGxfYWRqdXN0bWVudHMgPSB3ZWJraXRfd2ViX3ZpZXdfc2V0X3Nj
cm9sbF9hZGp1c3RtZW50czsKLSAgICBHVEtfV0lER0VUX0NMQVNTKHdlYlZpZXdDbGFzcyktPnNl
dF9zY3JvbGxfYWRqdXN0bWVudHNfc2lnbmFsID0gZ19zaWduYWxfbmV3KCJzZXQtc2Nyb2xsLWFk
anVzdG1lbnRzIiwKLSAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyks
Ci0gICAgICAgICAgICAoR1NpZ25hbEZsYWdzKShHX1NJR05BTF9SVU5fTEFTVCB8IEdfU0lHTkFM
X0FDVElPTiksCi0gICAgICAgICAgICBHX1NUUlVDVF9PRkZTRVQoV2ViS2l0V2ViVmlld0NsYXNz
LCBzZXRfc2Nyb2xsX2FkanVzdG1lbnRzKSwKLSAgICAgICAgICAgIE5VTEwsIE5VTEwsCi0gICAg
ICAgICAgICB3ZWJraXRfbWFyc2hhbF9WT0lEX19PQkpFQ1RfT0JKRUNULAotICAgICAgICAgICAg
R19UWVBFX05PTkUsIDIsCi0gICAgICAgICAgICBHVEtfVFlQRV9BREpVU1RNRU5ULCBHVEtfVFlQ
RV9BREpVU1RNRU5UKTsKLSNlbHNlCi0gICAgZ19vYmplY3RfY2xhc3Nfb3ZlcnJpZGVfcHJvcGVy
dHkob2JqZWN0Q2xhc3MsIFBST1BfSEFESlVTVE1FTlQsICJoYWRqdXN0bWVudCIpOwotICAgIGdf
b2JqZWN0X2NsYXNzX292ZXJyaWRlX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX1ZBREpVU1RN
RU5ULCAidmFkanVzdG1lbnQiKTsKLSAgICBnX29iamVjdF9jbGFzc19vdmVycmlkZV9wcm9wZXJ0
eShvYmplY3RDbGFzcywgUFJPUF9IU0NST0xMX1BPTElDWSwgImhzY3JvbGwtcG9saWN5Iik7Ci0g
ICAgZ19vYmplY3RfY2xhc3Nfb3ZlcnJpZGVfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfVlND
Uk9MTF9QT0xJQ1ksICJ2c2Nyb2xsLXBvbGljeSIpOwotI2VuZGlmCi0KLSAgICAvKgotICAgICAq
IEtleSBiaW5kaW5ncwotICAgICAqLwotCi0gICAgYmluZGluZ19zZXQgPSBndGtfYmluZGluZ19z
ZXRfYnlfY2xhc3Mod2ViVmlld0NsYXNzKTsKLQotICAgIGd0a19iaW5kaW5nX2VudHJ5X2FkZF9z
aWduYWwoYmluZGluZ19zZXQsIEdES19hLCBHREtfQ09OVFJPTF9NQVNLLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInNlbGVjdF9hbGwiLCAwKTsKLQotICAgIC8qIEN1dC9jb3B5
L3Bhc3RlICovCi0KLSAgICBndGtfYmluZGluZ19lbnRyeV9hZGRfc2lnbmFsKGJpbmRpbmdfc2V0
LCBHREtfeCwgR0RLX0NPTlRST0xfTUFTSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjdXRfY2xpcGJvYXJkIiwgMCk7Ci0gICAgZ3RrX2JpbmRpbmdfZW50cnlfYWRkX3NpZ25h
bChiaW5kaW5nX3NldCwgR0RLX2MsIEdES19DT05UUk9MX01BU0ssCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiY29weV9jbGlwYm9hcmQiLCAwKTsKLSAgICBndGtfYmluZGluZ19l
bnRyeV9hZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfdiwgR0RLX0NPTlRST0xfTUFTSywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXN0ZV9jbGlwYm9hcmQiLCAwKTsKLSAg
ICBndGtfYmluZGluZ19lbnRyeV9hZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfeiwgR0RLX0NP
TlRST0xfTUFTSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmRvIiwgMCk7
Ci0gICAgZ3RrX2JpbmRpbmdfZW50cnlfYWRkX3NpZ25hbChiaW5kaW5nX3NldCwgR0RLX3osIHN0
YXRpY19jYXN0PEdka01vZGlmaWVyVHlwZT4oR0RLX0NPTlRST0xfTUFTSyB8IEdES19TSElGVF9N
QVNLKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWRvIiwgMCk7Ci0KLSAg
ICBndGtfYmluZGluZ19lbnRyeV9hZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfRGVsZXRlLCBH
REtfU0hJRlRfTUFTSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjdXRfY2xp
cGJvYXJkIiwgMCk7Ci0gICAgZ3RrX2JpbmRpbmdfZW50cnlfYWRkX3NpZ25hbChiaW5kaW5nX3Nl
dCwgR0RLX0luc2VydCwgR0RLX0NPTlRST0xfTUFTSywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJjb3B5X2NsaXBib2FyZCIsIDApOwotICAgIGd0a19iaW5kaW5nX2VudHJ5X2Fk
ZF9zaWduYWwoYmluZGluZ19zZXQsIEdES19JbnNlcnQsIEdES19TSElGVF9NQVNLLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhc3RlX2NsaXBib2FyZCIsIDApOwotCi0gICAg
LyogTW92ZW1lbnQgKi8KLQotICAgIGd0a19iaW5kaW5nX2VudHJ5X2FkZF9zaWduYWwoYmluZGlu
Z19zZXQsIEdES19Eb3duLCBzdGF0aWNfY2FzdDxHZGtNb2RpZmllclR5cGU+KDApLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdmUtY3Vyc29yIiwgMiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9FTlVNLCBHVEtfTU9WRU1FTlRfRElTUExBWV9M
SU5FUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9JTlQsIDEpOwot
ICAgIGd0a19iaW5kaW5nX2VudHJ5X2FkZF9zaWduYWwoYmluZGluZ19zZXQsIEdES19VcCwgc3Rh
dGljX2Nhc3Q8R2RrTW9kaWZpZXJUeXBlPigwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJtb3ZlLWN1cnNvciIsIDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHX1RZUEVfRU5VTSwgR1RLX01PVkVNRU5UX0RJU1BMQVlfTElORVMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHX1RZUEVfSU5ULCAtMSk7Ci0gICAgZ3RrX2JpbmRpbmdfZW50
cnlfYWRkX3NpZ25hbChiaW5kaW5nX3NldCwgR0RLX1JpZ2h0LCBzdGF0aWNfY2FzdDxHZGtNb2Rp
ZmllclR5cGU+KDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdmUtY3Vy
c29yIiwgMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9FTlVNLCBH
VEtfTU9WRU1FTlRfVklTVUFMX1BPU0lUSU9OUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdfVFlQRV9JTlQsIDEpOwotICAgIGd0a19iaW5kaW5nX2VudHJ5X2FkZF9zaWduYWwo
YmluZGluZ19zZXQsIEdES19MZWZ0LCBzdGF0aWNfY2FzdDxHZGtNb2RpZmllclR5cGU+KDApLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vdmUtY3Vyc29yIiwgMiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9FTlVNLCBHVEtfTU9WRU1FTlRfVklT
VUFMX1BPU0lUSU9OUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9J
TlQsIC0xKTsKLSAgICBndGtfYmluZGluZ19lbnRyeV9hZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBH
REtfc3BhY2UsIHN0YXRpY19jYXN0PEdka01vZGlmaWVyVHlwZT4oMCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibW92ZS1jdXJzb3IiLCAyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR19UWVBFX0VOVU0sIEdUS19NT1ZFTUVOVF9QQUdFUywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9JTlQsIDEpOwotICAgIGd0a19iaW5kaW5n
X2VudHJ5X2FkZF9zaWduYWwoYmluZGluZ19zZXQsIEdES19zcGFjZSwgR0RLX1NISUZUX01BU0ss
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW92ZS1jdXJzb3IiLCAyLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0VOVU0sIEdUS19NT1ZFTUVOVF9Q
QUdFUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9JTlQsIC0xKTsK
LSAgICBndGtfYmluZGluZ19lbnRyeV9hZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfUGFnZV9E
b3duLCBzdGF0aWNfY2FzdDxHZGtNb2RpZmllclR5cGU+KDApLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm1vdmUtY3Vyc29yIiwgMiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdfVFlQRV9FTlVNLCBHVEtfTU9WRU1FTlRfUEFHRVMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHX1RZUEVfSU5ULCAxKTsKLSAgICBndGtfYmluZGluZ19lbnRy
eV9hZGRfc2lnbmFsKGJpbmRpbmdfc2V0LCBHREtfUGFnZV9VcCwgc3RhdGljX2Nhc3Q8R2RrTW9k
aWZpZXJUeXBlPigwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3ZlLWN1
cnNvciIsIDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVfRU5VTSwg
R1RLX01PVkVNRU5UX1BBR0VTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19U
WVBFX0lOVCwgLTEpOwotICAgIGd0a19iaW5kaW5nX2VudHJ5X2FkZF9zaWduYWwoYmluZGluZ19z
ZXQsIEdES19FbmQsIHN0YXRpY19jYXN0PEdka01vZGlmaWVyVHlwZT4oMCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAibW92ZS1jdXJzb3IiLCAyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR19UWVBFX0VOVU0sIEdUS19NT1ZFTUVOVF9CVUZGRVJfRU5EUywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9JTlQsIDEpOwotICAgIGd0
a19iaW5kaW5nX2VudHJ5X2FkZF9zaWduYWwoYmluZGluZ19zZXQsIEdES19Ib21lLCBzdGF0aWNf
Y2FzdDxHZGtNb2RpZmllclR5cGU+KDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIm1vdmUtY3Vyc29yIiwgMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf
VFlQRV9FTlVNLCBHVEtfTU9WRU1FTlRfQlVGRkVSX0VORFMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHX1RZUEVfSU5ULCAtMSk7Ci0KLSAgICAvKgotICAgICAqIHByb3BlcnRp
ZXMKLSAgICAgKi8KLQotICAgIC8qKgotICAgICogV2ViS2l0V2ViVmlldzp0aXRsZToKLSAgICAq
Ci0gICAgKiBSZXR1cm5zOiB0aGUgQHdlYl92aWV3J3MgZG9jdW1lbnQgdGl0bGUuCi0gICAgKgot
ICAgICogU2luY2U6IDEuMS40Ci0gICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX1RJVExFLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygidGl0bGUiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaXRsZSIpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJS
ZXR1cm5zIHRoZSBAd2ViX3ZpZXcncyBkb2N1bWVudCB0aXRsZSIpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0V2ViVmlldzp1cmk6Ci0gICAg
KgotICAgICogUmV0dXJuczogdGhlIGN1cnJlbnQgVVJJIG9mIHRoZSBjb250ZW50cyBkaXNwbGF5
ZWQgYnkgdGhlIEB3ZWJfdmlldy4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4xLjQKLSAgICAqLwot
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfVVJJ
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmlu
ZygidXJpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiVVJJIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF8oIlJldHVybnMgdGhlIGN1cnJlbnQgVVJJIG9mIHRoZSBjb250
ZW50cyBkaXNwbGF5ZWQgYnkgdGhlIEB3ZWJfdmlldyIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0V2ViVmlldzpjb3B5LXRhcmdldC1saXN0
OgotICAgICoKLSAgICAqIFRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyB3ZWIgdmlldyBzdXBwb3J0
cyBmb3IgY2xpcGJvYXJkIGNvcHlpbmcuCi0gICAgKgotICAgICogU2luY2U6IDEuMC4yCi0gICAg
Ki8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9Q
X0NPUFlfVEFSR0VUX0xJU1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
X3BhcmFtX3NwZWNfYm94ZWQoImNvcHktdGFyZ2V0LWxpc3QiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkNvcHkgdGFyZ2V0IGxpc3Qi
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfKCJUaGUgbGlzdCBvZiB0YXJnZXRzIHRoaXMgd2ViIHZpZXcgc3VwcG9ydHMgZm9yIGNsaXBi
b2FyZCBjb3B5aW5nIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR1RLX1RZUEVfVEFSR0VUX0xJU1QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxF
KSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlZpZXc6cGFzdGUtdGFyZ2V0LWxpc3Q6Ci0g
ICAgKgotICAgICogVGhlIGxpc3Qgb2YgdGFyZ2V0cyB0aGlzIHdlYiB2aWV3IHN1cHBvcnRzIGZv
ciBjbGlwYm9hcmQgcGFzdGluZy4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4wLjIKLSAgICAqLwot
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfUEFT
VEVfVEFSR0VUX0xJU1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3Bh
cmFtX3NwZWNfYm94ZWQoInBhc3RlLXRhcmdldC1saXN0IiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJQYXN0ZSB0YXJnZXQgbGlzdCIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIlRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyB3ZWIgdmlldyBzdXBwb3J0cyBmb3IgY2xpcGJv
YXJkIHBhc3RpbmciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHVEtfVFlQRV9UQVJHRVRfTElTVCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUp
KTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBS
T1BfU0VUVElOR1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt
X3NwZWNfb2JqZWN0KCJzZXR0aW5ncyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlNldHRpbmdzIiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkFuIGFzc29jaWF0ZWQg
V2ViS2l0V2ViU2V0dGluZ3MgaW5zdGFuY2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX1NFVFRJTkdTLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
RUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlZpZXc6
d2ViLWluc3BlY3RvcjoKLSAgICAqCi0gICAgKiBUaGUgYXNzb2NpYXRlZCBXZWJLaXRXZWJJbnNw
ZWN0b3IgaW5zdGFuY2UuCi0gICAgKgotICAgICogU2luY2U6IDEuMC4zCi0gICAgKi8KLSAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX1dFQl9JTlNQ
RUNUT1IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNf
b2JqZWN0KCJ3ZWItaW5zcGVjdG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXygiV2ViIEluc3BlY3RvciIpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJUaGUgYXNzb2Np
YXRlZCBXZWJLaXRXZWJJbnNwZWN0b3IgaW5zdGFuY2UiKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1RZUEVfV0VCX0lOU1BF
Q1RPUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdl
YlZpZXc6dmlld3BvcnQtYXR0cmlidXRlczoKLSAgICAqCi0gICAgKiBUaGUgYXNzb2NpYXRlZCAj
V2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzIGluc3RhbmNlLgotICAgICoKLSAgICAqIFNpbmNlOiAx
LjMuOAotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RD
bGFzcywgUFJPUF9WSUVXUE9SVF9BVFRSSUJVVEVTLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgidmlld3BvcnQtYXR0cmlidXRlcyIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o
IlZpZXdwb3J0IEF0dHJpYnV0ZXMiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXygiVGhlIGFzc29jaWF0ZWQgV2ViS2l0Vmlld3BvcnRB
dHRyaWJ1dGVzIGluc3RhbmNlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9UWVBFX1ZJRVdQT1JUX0FUVFJJQlVURVMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgLyoqCi0gICAgKiBXZWJLaXRXZWJWaWV3Ondp
bmRvdy1mZWF0dXJlczoKLSAgICAqCi0gICAgKiBBbiBhc3NvY2lhdGVkIFdlYktpdFdlYldpbmRv
d0ZlYXR1cmVzIGluc3RhbmNlLgotICAgICoKLSAgICAqIFNpbmNlOiAxLjAuMwotICAgICovCi0g
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9XSU5E
T1dfRkVBVFVSRVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt
X3NwZWNfb2JqZWN0KCJ3aW5kb3ctZmVhdHVyZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV2luZG93IEZlYXR1cmVzIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFuIGFz
c29jaWF0ZWQgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMgaW5zdGFuY2UiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfVFlQRV9X
RUJfV0lORE9XX0ZFQVRVUkVTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICBnX29i
amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX0VESVRBQkxFLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4o
ImVkaXRhYmxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF8oIkVkaXRhYmxlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIGNvbnRlbnQgY2FuIGJlIG1v
ZGlmaWVkIGJ5IHRoZSB1c2VyIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsK
LQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1Bf
VFJBTlNQQVJFTlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt
X3NwZWNfYm9vbGVhbigidHJhbnNwYXJlbnQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiVHJhbnNwYXJlbnQiKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIldoZXRo
ZXIgY29udGVudCBoYXMgYSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJ
VF9QQVJBTV9SRUFEV1JJVEUpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0V2ViVmlldzp6b29t
LWxldmVsOgotICAgICoKLSAgICAqIFRoZSBsZXZlbCBvZiB6b29tIG9mIHRoZSBjb250ZW50Lgot
ICAgICoKLSAgICAqIFNpbmNlOiAxLjAuMQotICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9aT09NX0xFVkVMLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Zsb2F0KCJ6b29tLWxldmVsIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
KCJab29tIGxldmVsIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXygiVGhlIGxldmVsIG9mIHpvb20gb2YgdGhlIGNvbnRlbnQiKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01J
TkZMT0FULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEdfTUFYRkxPQVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMS4wZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICAv
KioKLSAgICAqIFdlYktpdFdlYlZpZXc6ZnVsbC1jb250ZW50LXpvb206Ci0gICAgKgotICAgICog
V2hldGhlciB0aGUgZnVsbCBjb250ZW50IGlzIHNjYWxlZCB3aGVuIHpvb21pbmcuCi0gICAgKgot
ICAgICogU2luY2U6IDEuMC4xCi0gICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX0ZVTExfQ09OVEVOVF9aT09NLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oImZ1bGwtY29udGVu
dC16b29tIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF8oIkZ1bGwgY29udGVudCB6b29tIiksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJXaGV0aGVyIHRoZSBmdWxsIGNv
bnRlbnQgaXMgc2NhbGVkIHdoZW4gem9vbWluZyIpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
RFdSSVRFKSk7Ci0KLSAgICAvKioKLSAgICAgKiBXZWJLaXRXZWJWaWV3OmVuY29kaW5nOgotICAg
ICAqCi0gICAgICogVGhlIGRlZmF1bHQgZW5jb2Rpbmcgb2YgdGhlIHdlYiB2aWV3LgotICAgICAq
Ci0gICAgICogU2luY2U6IDEuMS4yCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9FTkNPRElORywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoImVuY29kaW5nIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiRW5j
b2RpbmciKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXygiVGhlIGRlZmF1bHQgZW5jb2Rpbmcgb2YgdGhlIHdlYiB2aWV3IiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViVmll
dzpjdXN0b20tZW5jb2Rpbmc6Ci0gICAgICoKLSAgICAgKiBUaGUgY3VzdG9tIGVuY29kaW5nIG9m
IHRoZSB3ZWIgdmlldy4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjEuMgotICAgICAqLwotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfQ1VTVE9N
X0VOQ09ESU5HLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9z
cGVjX3N0cmluZygiY3VzdG9tLWVuY29kaW5nIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQ3VzdG9tIEVuY29kaW5nIiksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlRo
ZSBjdXN0b20gZW5jb2Rpbmcgb2YgdGhlIHdlYiB2aWV3IiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEV1JJVEUpKTsKLQotICAgIC8qKgotICAgICogV2ViS2l0V2ViVmlldzpsb2FkLXN0YXR1czoK
LSAgICAqCi0gICAgKiBEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGUgbG9hZC4K
LSAgICAqCi0gICAgKiBDb25uZWN0IHRvICJub3RpZnk6OmxvYWQtc3RhdHVzIiB0byBtb25pdG9y
IGxvYWRpbmcuCi0gICAgKgotICAgICogU29tZSB2ZXJzaW9ucyBvZiBXZWJLaXRHVEsrIGVtaXR0
ZWQgdGhpcyBzaWduYWwgZm9yIHRoZSBkZWZhdWx0Ci0gICAgKiBlcnJvciBwYWdlLCB3aGlsZSBs
b2FkaW5nIGl0LiBUaGlzIGJlaGF2aW9yIHdhcyBjb25zaWRlcmVkIGJhZCwKLSAgICAqIGJlY2F1
c2UgaXQgd2FzIGVzc2VudGlhbGx5IGV4cG9zaW5nIGFuIGltcGxlbWVudGF0aW9uCi0gICAgKiBk
ZXRhaWwuIEZyb20gMS4xLjE5IG9ud2FyZHMgdGhpcyBzaWduYWwgaXMgbm8gbG9uZ2VyIGVtaXR0
ZWQgZm9yCi0gICAgKiB0aGUgZGVmYXVsdCBlcnJvciBwYWdlcywgYnV0IGtlZXAgaW4gbWluZCB0
aGF0IGlmIHlvdSBvdmVycmlkZQotICAgICogdGhlIGVycm9yIHBhZ2VzIGJ5IHVzaW5nIHdlYmtp
dF93ZWJfZnJhbWVfbG9hZF9hbHRlcm5hdGVfc3RyaW5nKCkKLSAgICAqIHRoZSBzaWduYWxzIHdp
bGwgYmUgZW1pdHRlZC4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4xLjcKLSAgICAqLwotICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfTE9BRF9TVEFU
VVMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfZW51
bSgibG9hZC1zdGF0dXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkxvYWQgU3RhdHVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHN0YXR1
cyBvZiB0aGUgbG9hZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXRUJLSVRfVFlQRV9MT0FEX1NUQVRVUywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9MT0FEX0ZJTklTSEVE
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICAvKioKLSAgICAqIFdlYktpdFdlYlZpZXc6
cHJvZ3Jlc3M6Ci0gICAgKgotICAgICogRGV0ZXJtaW5lcyB0aGUgY3VycmVudCBwcm9ncmVzcyBv
ZiB0aGUgbG9hZC4KLSAgICAqCi0gICAgKiBTaW5jZTogMS4xLjcKLSAgICAqLwotICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfUFJPR1JFU1MsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfZG91YmxlKCJw
cm9ncmVzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJQcm9ncmVzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJEZXRlcm1pbmVzIHRoZSBjdXJyZW50IHByb2dyZXNzIG9m
IHRoZSBsb2FkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMC4wLCAxLjAsIDEuMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAg
ICAvKioKLSAgICAgKiBXZWJLaXRXZWJWaWV3Omljb24tdXJpOgotICAgICAqCi0gICAgICogVGhl
IFVSSSBmb3IgdGhlIGZhdmljb24gZm9yIHRoZSAjV2ViS2l0V2ViVmlldy4KLSAgICAgKgotICAg
ICAqIFNpbmNlOiAxLjEuMTgKLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX0lDT05fVVJJLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygiaWNvbi11cmkiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJJY29uIFVS
SSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfKCJUaGUgVVJJIGZvciB0aGUgZmF2aWNvbiBmb3IgdGhlICNXZWJLaXRXZWJWaWV3LiIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLSAgICAvKioKLSAgICAqIFdlYktpdFdl
YlZpZXc6aW0tY29udGV4dDoKLSAgICAqCi0gICAgKiBUaGUgR3RrSU1NdWx0aWNvbnRleHQgZm9y
IHRoZSAjV2ViS2l0V2ViVmlldy4KLSAgICAqCi0gICAgKiBUaGlzIGlzIHRoZSBpbnB1dCBtZXRo
b2QgY29udGV4dCB1c2VkIGZvciBhbGwgdGV4dCBlbnRyeSB3aWRnZXRzIGluc2lkZQotICAgICog
dGhlICNXZWJLaXRXZWJWaWV3LiBJdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBjb250ZXh0IG1l
bnUgaXRlbXMgZm9yCi0gICAgKiBjb250cm9sbGluZyB0aGUgYWN0aXZlIGlucHV0IG1ldGhvZC4K
LSAgICAqCi0gICAgKiBTaW5jZTogMS4xLjIwCi0gICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX0lNX0NPTlRFWFQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KCJpbS1jb250ZXh0
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIklNIENvbnRleHQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiVGhlIEd0a0lNTXVsdGlDb250ZXh0IGZvciB0aGUgI1dlYktpdFdl
YlZpZXcuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR1RLX1RZUEVfSU1fQ09OVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0K
LSAgICAvKioKLSAgICAqIFdlYktpdFdlYlZpZXc6dmlldy1tb2RlOgotICAgICoKLSAgICAqIFRo
ZSAidmlldy1tb2RlIiBtZWRpYSBmZWF0dXJlIGZvciB0aGUgI1dlYktpdFdlYlZpZXcuCi0gICAg
KgotICAgICogVGhlICJ2aWV3LW1vZGUiIG1lZGlhIGZlYXR1cmUgaXMgYWRkaXRpb25hbCBpbmZv
cm1hdGlvbiBmb3Igd2ViCi0gICAgKiBhcHBsaWNhdGlvbnMgYWJvdXQgaG93IHRoZSBhcHBsaWNh
dGlvbiBpcyBydW5uaW5nLCB3aGVuIGl0IGNvbWVzCi0gICAgKiB0byB1c2VyIGV4cGVyaWVuY2Uu
IFdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgaW5zaWRlIGEKLSAgICAqIHJlZ3Vs
YXIgYnJvd3NlciB3aW5kb3csIGluIGEgZGVkaWNhdGVkIHdpbmRvdywgZnVsbHNjcmVlbiwgZm9y
Ci0gICAgKiBpbnN0YW5jZS4KLSAgICAqCi0gICAgKiBUaGlzIHByb3BlcnR5IHN0b3JlcyBhICVX
ZWJLaXRXZWJWaWV3Vmlld01vZGUgdmFsdWUgdGhhdCBtYXRjaGVzCi0gICAgKiB0aGUgInZpZXct
bW9kZSIgbWVkaWEgZmVhdHVyZSB0aGUgd2ViIGFwcGxpY2F0aW9uIHdpbGwgc2VlLgotICAgICoK
LSAgICAqIFNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi92aWV3LW1vZGUvIGZvciBtb3JlIGluZm9y
bWF0aW9uLgotICAgICoKLSAgICAqIFNpbmNlOiAxLjMuNAotICAgICovCi0gICAgZ19vYmplY3Rf
Y2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9WSUVXX01PREUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfZW51bSgidmlldy1t
b2RlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJWaWV3IE1vZGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlRoZSB2aWV3LW1vZGUgbWVkaWEgZmVhdHVyZSBmb3IgdGhlICNXZWJL
aXRXZWJWaWV3LiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXRUJLSVRfVFlQRV9XRUJfVklFV19WSUVXX01PREUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfV0VCX1ZJRVdf
VklFV19NT0RFX1dJTkRPV0VELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwotCi0gICAgLy8gVGhp
cyBwcm9wZXJ0eSBzaG91bGQgYmUgdW5kb2N1bWVudGVkIGZvciBub3cuIEl0J3Mgb25seSB1c2Vk
IGJ5IERSVC4KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNz
LCBQUk9QX1NFTEZfU0NST0xMSU5HLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oInNlbGYtc2Nyb2xsaW5nIiwgIlNlbGYtc2Nyb2xsaW5n
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJXaGV0aGVyIG9yIG5vdCB0aGlzIFdlYlZpZXcgZHJhd3MgaXRzIG93biBzY3JvbGxiYXJz
LiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX0NPTlNUUlVDVF9P
TkxZIHwgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpKTsKLQotICAgIGdfdHlwZV9jbGFzc19hZGRf
cHJpdmF0ZSh3ZWJWaWV3Q2xhc3MsIHNpemVvZihXZWJLaXRXZWJWaWV3UHJpdmF0ZSkpOwotfQot
Ci1zdGF0aWMgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nU2V0dGluZyhTZXR0aW5n
cyYgc2V0dGluZ3MsIGJvb2wgdmFsdWUpCi17Ci0jaWYgUExBVEZPUk0oV0FZTEFORCkgJiYgZGVm
aW5lZChHREtfV0lORE9XSU5HX1dBWUxBTkQpCi0gICAgR2RrRGlzcGxheSogZGlzcGxheSA9IGdk
a19kaXNwbGF5X21hbmFnZXJfZ2V0X2RlZmF1bHRfZGlzcGxheShnZGtfZGlzcGxheV9tYW5hZ2Vy
X2dldCgpKTsKLSAgICBpZiAoR0RLX0lTX1dBWUxBTkRfRElTUExBWShkaXNwbGF5KSkgewotICAg
ICAgICBpZiAoIXNldHRpbmdzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkgJiYgIXZh
bHVlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHN0YXRpYyBib29sIHVuc3VwcG9y
dGVkQUNXYXJuaW5nU2hvd24gPSBmYWxzZTsKLSAgICAgICAgaWYgKCF1bnN1cHBvcnRlZEFDV2Fy
bmluZ1Nob3duKSB7Ci0gICAgICAgICAgICBnX3dhcm5pbmcoIkFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nIGlzIG5vdCBzdXBwb3J0ZWQgdW5kZXIgV2F5bGFuZCBkaXNwbGF5cywgZGlzYWJsaW5nLiIp
OwotICAgICAgICAgICAgdW5zdXBwb3J0ZWRBQ1dhcm5pbmdTaG93biA9IHRydWU7Ci0gICAgICAg
IH0KLSAgICAgICAgc2V0dGluZ3Muc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoZmFs
c2UpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KLSAgICBzZXR0aW5ncy5zZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh2YWx1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsK
LSAgICBXZWJLaXRXZWJTZXR0aW5nc1ByaXZhdGUqIHNldHRpbmdzUHJpdmF0ZSA9IHdlYlZpZXct
PnByaXYtPndlYlNldHRpbmdzLT5wcml2OwotICAgIFNldHRpbmdzJiBjb3JlU2V0dGluZ3MgPSBj
b3JlKHdlYlZpZXcpLT5zZXR0aW5ncygpOwotCi0gICAgY29yZVNldHRpbmdzLnNldERlZmF1bHRU
ZXh0RW5jb2RpbmdOYW1lKHNldHRpbmdzUHJpdmF0ZS0+ZGVmYXVsdEVuY29kaW5nLmRhdGEoKSk7
Ci0gICAgY29yZVNldHRpbmdzLnNldEN1cnNpdmVGb250RmFtaWx5KHNldHRpbmdzUHJpdmF0ZS0+
Y3Vyc2l2ZUZvbnRGYW1pbHkuZGF0YSgpKTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0U3RhbmRhcmRG
b250RmFtaWx5KHNldHRpbmdzUHJpdmF0ZS0+ZGVmYXVsdEZvbnRGYW1pbHkuZGF0YSgpKTsKLSAg
ICBjb3JlU2V0dGluZ3Muc2V0RmFudGFzeUZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5mYW50
YXN5Rm9udEZhbWlseS5kYXRhKCkpOwotICAgIGNvcmVTZXR0aW5ncy5zZXRGaXhlZEZvbnRGYW1p
bHkoc2V0dGluZ3NQcml2YXRlLT5tb25vc3BhY2VGb250RmFtaWx5LmRhdGEoKSk7Ci0gICAgY29y
ZVNldHRpbmdzLnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoc2V0dGluZ3NQcml2YXRlLT5zYW5zU2Vy
aWZGb250RmFtaWx5LmRhdGEoKSk7Ci0gICAgY29yZVNldHRpbmdzLnNldFNlcmlmRm9udEZhbWls
eShzZXR0aW5nc1ByaXZhdGUtPnNlcmlmRm9udEZhbWlseS5kYXRhKCkpOwotICAgIGNvcmVTZXR0
aW5ncy5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoc2V0dGluZ3NQcml2YXRlLT5hdXRvTG9h
ZEltYWdlcyk7Ci0gICAgY29yZVNldHRpbmdzLnNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9G
aXQoc2V0dGluZ3NQcml2YXRlLT5hdXRvU2hyaW5rSW1hZ2VzKTsKLSAgICBjb3JlU2V0dGluZ3Mu
c2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oc2V0dGluZ3NQcml2YXRlLT5yZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbik7Ci0gICAgY29yZVNldHRpbmdzLnNldFNob3VsZFByaW50QmFja2dy
b3VuZHMoc2V0dGluZ3NQcml2YXRlLT5wcmludEJhY2tncm91bmRzKTsKLSAgICBjb3JlU2V0dGlu
Z3Muc2V0U2NyaXB0RW5hYmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZVNjcmlwdHMpOwotICAg
IGNvcmVTZXR0aW5ncy5zZXRQbHVnaW5zRW5hYmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZVBs
dWdpbnMpOwotICAgIGNvcmVTZXR0aW5ncy5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoc2V0dGlu
Z3NQcml2YXRlLT5yZXNpemFibGVUZXh0QXJlYXMpOwotICAgIGNvcmVTZXR0aW5ncy5zZXRVc2Vy
U3R5bGVTaGVldExvY2F0aW9uKFVSTChVUkwoKSwgc2V0dGluZ3NQcml2YXRlLT51c2VyU3R5bGVz
aGVldFVSSS5kYXRhKCkpKTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0RGV2ZWxvcGVyRXh0cmFzRW5h
YmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZURldmVsb3BlckV4dHJhcyk7Ci0gICAgY29yZSh3
ZWJWaWV3KS0+ZW5hYmxlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nKHNldHRpbmdzUHJpdmF0ZS0+ZW5h
YmxlUHJpdmF0ZUJyb3dzaW5nKTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0Q2FyZXRCcm93c2luZ0Vu
YWJsZWQoc2V0dGluZ3NQcml2YXRlLT5lbmFibGVDYXJldEJyb3dzaW5nKTsKLSAgICBjb3JlU2V0
dGluZ3Muc2V0TG9jYWxTdG9yYWdlRW5hYmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZUhUTUw1
TG9jYWxTdG9yYWdlKTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQ
YXRoKHNldHRpbmdzUHJpdmF0ZS0+aHRtbDVMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGguZGF0YSgp
KTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0WFNTQXVkaXRvckVuYWJsZWQoc2V0dGluZ3NQcml2YXRl
LT5lbmFibGVYU1NBdWRpdG9yKTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0U3BhdGlhbE5hdmlnYXRp
b25FbmFibGVkKHNldHRpbmdzUHJpdmF0ZS0+ZW5hYmxlU3BhdGlhbE5hdmlnYXRpb24pOwotICAg
IGNvcmVTZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHNldHRpbmdzUHJpdmF0ZS0+
ZW5hYmxlRnJhbWVGbGF0dGVuaW5nKTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0SmF2YVNjcmlwdENh
bk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShzZXR0aW5nc1ByaXZhdGUtPmphdmFzY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkpOwotICAgIGNvcmVTZXR0aW5ncy5zZXRKYXZhU2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkKHNldHRpbmdzUHJpdmF0ZS0+amF2YXNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZCk7Ci0gICAgY29yZVNldHRpbmdzLnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
RW5hYmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZU9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
KTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yVHlwZShzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3JUeXBlPihzZXR0aW5nc1ByaXZhdGUtPmVkaXRpbmdCZWhh
dmlvcikpOwotICAgIGNvcmVTZXR0aW5ncy5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMcyhzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZVVuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJJcyk7
Ci0gICAgY29yZVNldHRpbmdzLnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhzZXR0aW5n
c1ByaXZhdGUtPmVuYWJsZUZpbGVBY2Nlc3NGcm9tRmlsZVVSSXMpOwotICAgIGNvcmVTZXR0aW5n
cy5zZXRET01QYXN0ZUFsbG93ZWQoc2V0dGluZ3NQcml2YXRlLT5lbmFibGVET01QYXN0ZSk7Ci0g
ICAgY29yZVNldHRpbmdzLnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKHNldHRpbmdzUHJpdmF0
ZS0+ZW5hYmxlU2l0ZVNwZWNpZmljUXVpcmtzKTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0VXNlc1Bh
Z2VDYWNoZShzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZVBhZ2VDYWNoZSk7Ci0gICAgY29yZVNldHRp
bmdzLnNldEphdmFFbmFibGVkKHNldHRpbmdzUHJpdmF0ZS0+ZW5hYmxlSmF2YUFwcGxldCk7Ci0g
ICAgY29yZVNldHRpbmdzLnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChzZXR0aW5nc1ByaXZh
dGUtPmVuYWJsZUh5cGVybGlua0F1ZGl0aW5nKTsKLSAgICBjb3JlU2V0dGluZ3Muc2V0RE5TUHJl
ZmV0Y2hpbmdFbmFibGVkKHNldHRpbmdzUHJpdmF0ZS0+ZW5hYmxlRE5TUHJlZmV0Y2hpbmcpOwot
ICAgIGNvcmVTZXR0aW5ncy5zZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShzZXR0
aW5nc1ByaXZhdGUtPm1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKTsKLSAgICBjb3Jl
U2V0dGluZ3Muc2V0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZShzZXR0aW5nc1ByaXZhdGUtPm1l
ZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUpOwotICAgIGNvcmVTZXR0aW5ncy5zZXRBbGxvd0Rpc3Bs
YXlPZkluc2VjdXJlQ29udGVudChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZURpc3BsYXlPZkluc2Vj
dXJlQ29udGVudCk7Ci0gICAgY29yZVNldHRpbmdzLnNldEFsbG93UnVubmluZ09mSW5zZWN1cmVD
b250ZW50KHNldHRpbmdzUHJpdmF0ZS0+ZW5hYmxlUnVubmluZ09mSW5zZWN1cmVDb250ZW50KTsK
LQotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2Vy
KCkuc2V0SXNBdmFpbGFibGUoc2V0dGluZ3NQcml2YXRlLT5lbmFibGVIVE1MNURhdGFiYXNlKTsK
LSNlbmRpZgotCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGNvcmVTZXR0aW5ncy5z
ZXRGdWxsU2NyZWVuRW5hYmxlZChzZXR0aW5nc1ByaXZhdGUtPmVuYWJsZUZ1bGxzY3JlZW4pOwot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoU1BFTExDSEVDSykKLSAgICBpZiAoc2V0dGluZ3NQcml2YXRl
LT5lbmFibGVTcGVsbENoZWNraW5nKSB7Ci0gICAgICAgIFdlYktpdDo6RWRpdG9yQ2xpZW50KiBj
bGllbnQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkVkaXRvckNsaWVudCo+KGNvcmUod2ViVmlldykt
PmVkaXRvckNsaWVudCgpKTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8V2ViS2l0OjpUZXh0Q2hlY2tl
ckNsaWVudEd0ayo+KGNsaWVudC0+dGV4dENoZWNrZXIoKSktPnVwZGF0ZVNwZWxsQ2hlY2tpbmdM
YW5ndWFnZShzZXR0aW5nc1ByaXZhdGUtPnNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMuZGF0YSgpKTsK
LSAgICB9Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShXRUJHTCkKLSAgICBjb3JlU2V0dGluZ3Muc2V0
V2ViR0xFbmFibGVkKHNldHRpbmdzUHJpdmF0ZS0+ZW5hYmxlV2ViZ2wpOwotI2VuZGlmCi0KLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0TWVkaWFTdHJlYW1FbmFibGVkKHNldHRpbmdzUHJpdmF0
ZS0+ZW5hYmxlTWVkaWFTdHJlYW0pOwotI2VuZGlmCi0KLSAgICB1cGRhdGVBY2NlbGVyYXRlZENv
bXBvc2l0aW5nU2V0dGluZyhjb3JlU2V0dGluZ3MsIHNldHRpbmdzUHJpdmF0ZS0+ZW5hYmxlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZyk7Ci0gICAgY2hhciogZGVidWdWaXN1YWxzRW52aXJvbm1lbnQg
PSBnZXRlbnYoIldFQktJVF9TSE9XX0NPTVBPU0lUSU5HX0RFQlVHX1ZJU1VBTFMiKTsKLSAgICBi
b29sIHNob3dEZWJ1Z1Zpc3VhbHMgPSBkZWJ1Z1Zpc3VhbHNFbnZpcm9ubWVudCAmJiAhc3RyY21w
KGRlYnVnVmlzdWFsc0Vudmlyb25tZW50LCAiMSIpOwotICAgIGNvcmVTZXR0aW5ncy5zZXRTaG93
RGVidWdCb3JkZXJzKHNob3dEZWJ1Z1Zpc3VhbHMpOwotICAgIGNvcmVTZXR0aW5ncy5zZXRTaG93
UmVwYWludENvdW50ZXIoc2hvd0RlYnVnVmlzdWFscyk7Ci0KLSNpZiBFTkFCTEUoV0VCX0FVRElP
KQotICAgIGNvcmVTZXR0aW5ncy5zZXRXZWJBdWRpb0VuYWJsZWQoc2V0dGluZ3NQcml2YXRlLT5l
bmFibGVXZWJBdWRpbyk7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQot
ICAgIGNvcmVTZXR0aW5ncy5zZXRTY3JvbGxBbmltYXRvckVuYWJsZWQoc2V0dGluZ3NQcml2YXRl
LT5lbmFibGVTbW9vdGhTY3JvbGxpbmcpOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoQ1NTX1JFR0lP
TlMpCi0gICAgV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRDU1NSZWdpb25zRW5hYmxlZCh0cnVlKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKE1FRElB
X1NPVVJDRSkKLSAgICBjb3JlU2V0dGluZ3Muc2V0TWVkaWFTb3VyY2VFbmFibGVkKHNldHRpbmdz
UHJpdmF0ZS0+ZW5hYmxlTWVkaWFTb3VyY2UpOwotI2VuZGlmCi0KLSAgICAvLyBVc2UgbW9jayBz
Y3JvbGxiYXJzIGlmIGluIER1bXBSZW5kZXJUcmVlIG1vZGUgKGkuZS4gdGVzdGluZyBsYXlvdXQg
dGVzdHMpLgotICAgIGNvcmVTZXR0aW5ncy5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpOwotCi0gICAg
aWYgKFBhZ2UqIHBhZ2UgPSBjb3JlKHdlYlZpZXcpKQotICAgICAgICBwYWdlLT5zZXRUYWJLZXlD
eWNsZXNUaHJvdWdoRWxlbWVudHMoc2V0dGluZ3NQcml2YXRlLT50YWJLZXlDeWNsZXNUaHJvdWdo
RWxlbWVudHMpOwotCi0gICAgd2Via2l0X3dlYl92aWV3X3NjcmVlbl9jaGFuZ2VkKEdUS19XSURH
RVQod2ViVmlldyksIE5VTEwpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0
dGluZ3Nfbm90aWZ5KFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncywgR1BhcmFtU3BlYyog
cHNwZWMsIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgU2V0dGluZ3MmIHNldHRpbmdz
ID0gY29yZSh3ZWJWaWV3KS0+c2V0dGluZ3MoKTsKLQotICAgIGNvbnN0IGdjaGFyKiBuYW1lID0g
Z19pbnRlcm5fc3RyaW5nKHBzcGVjLT5uYW1lKTsKLSAgICBHVmFsdWUgdmFsdWUgPSB7IDAsIHsg
eyAwIH0gfSB9OwotICAgIGdfdmFsdWVfaW5pdCgmdmFsdWUsIHBzcGVjLT52YWx1ZV90eXBlKTsK
LSAgICBnX29iamVjdF9nZXRfcHJvcGVydHkoR19PQkpFQ1Qod2ViU2V0dGluZ3MpLCBuYW1lLCAm
dmFsdWUpOwotCi0gICAgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJkZWZhdWx0LWVuY29k
aW5nIikpCi0gICAgICAgIHNldHRpbmdzLnNldERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lKGdfdmFs
dWVfZ2V0X3N0cmluZygmdmFsdWUpKTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0
cmluZygiY3Vyc2l2ZS1mb250LWZhbWlseSIpKQotICAgICAgICBzZXR0aW5ncy5zZXRDdXJzaXZl
Rm9udEZhbWlseShnX3ZhbHVlX2dldF9zdHJpbmcoJnZhbHVlKSk7Ci0gICAgZWxzZSBpZiAobmFt
ZSA9PSBnX2ludGVybl9zdHJpbmcoImRlZmF1bHQtZm9udC1mYW1pbHkiKSkKLSAgICAgICAgc2V0
dGluZ3Muc2V0U3RhbmRhcmRGb250RmFtaWx5KGdfdmFsdWVfZ2V0X3N0cmluZygmdmFsdWUpKTsK
LSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygiZmFudGFzeS1mb250LWZhbWls
eSIpKQotICAgICAgICBzZXR0aW5ncy5zZXRGYW50YXN5Rm9udEZhbWlseShnX3ZhbHVlX2dldF9z
dHJpbmcoJnZhbHVlKSk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoIm1v
bm9zcGFjZS1mb250LWZhbWlseSIpKQotICAgICAgICBzZXR0aW5ncy5zZXRGaXhlZEZvbnRGYW1p
bHkoZ192YWx1ZV9nZXRfc3RyaW5nKCZ2YWx1ZSkpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19p
bnRlcm5fc3RyaW5nKCJzYW5zLXNlcmlmLWZvbnQtZmFtaWx5IikpCi0gICAgICAgIHNldHRpbmdz
LnNldFNhbnNTZXJpZkZvbnRGYW1pbHkoZ192YWx1ZV9nZXRfc3RyaW5nKCZ2YWx1ZSkpOwotICAg
IGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJzZXJpZi1mb250LWZhbWlseSIpKQot
ICAgICAgICBzZXR0aW5ncy5zZXRTZXJpZkZvbnRGYW1pbHkoZ192YWx1ZV9nZXRfc3RyaW5nKCZ2
YWx1ZSkpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJkZWZhdWx0LWZv
bnQtc2l6ZSIpKQotICAgICAgICBzZXR0aW5ncy5zZXREZWZhdWx0Rm9udFNpemUod2ViVmlld0Nv
bnZlcnRGb250U2l6ZVRvUGl4ZWxzKHdlYlZpZXcsIGdfdmFsdWVfZ2V0X2ludCgmdmFsdWUpKSk7
Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImRlZmF1bHQtbW9ub3NwYWNl
LWZvbnQtc2l6ZSIpKQotICAgICAgICBzZXR0aW5ncy5zZXREZWZhdWx0Rml4ZWRGb250U2l6ZSh3
ZWJWaWV3Q29udmVydEZvbnRTaXplVG9QaXhlbHMod2ViVmlldywgZ192YWx1ZV9nZXRfaW50KCZ2
YWx1ZSkpKTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygibWluaW11bS1m
b250LXNpemUiKSkKLSAgICAgICAgc2V0dGluZ3Muc2V0TWluaW11bUZvbnRTaXplKHdlYlZpZXdD
b252ZXJ0Rm9udFNpemVUb1BpeGVscyh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9pbnQoJnZhbHVlKSkp
OwotICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJtaW5pbXVtLWxvZ2ljYWwt
Zm9udC1zaXplIikpCi0gICAgICAgIHNldHRpbmdzLnNldE1pbmltdW1Mb2dpY2FsRm9udFNpemUo
d2ViVmlld0NvbnZlcnRGb250U2l6ZVRvUGl4ZWxzKHdlYlZpZXcsIGdfdmFsdWVfZ2V0X2ludCgm
dmFsdWUpKSk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImVuZm9yY2Ut
OTYtZHBpIikpCi0gICAgICAgIHdlYmtpdF93ZWJfdmlld19zY3JlZW5fY2hhbmdlZChHVEtfV0lE
R0VUKHdlYlZpZXcpLCBOVUxMKTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmlu
ZygiYXV0by1sb2FkLWltYWdlcyIpKQotICAgICAgICBzZXR0aW5ncy5zZXRMb2Fkc0ltYWdlc0F1
dG9tYXRpY2FsbHkoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKLSAgICBlbHNlIGlmIChu
YW1lID09IGdfaW50ZXJuX3N0cmluZygiYXV0by1zaHJpbmstaW1hZ2VzIikpCi0gICAgICAgIHNl
dHRpbmdzLnNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoZ192YWx1ZV9nZXRfYm9vbGVh
bigmdmFsdWUpKTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygicmVzcGVj
dC1pbWFnZS1vcmllbnRhdGlvbiIpKQotICAgICAgICBzZXR0aW5ncy5zZXRTaG91bGRSZXNwZWN0
SW1hZ2VPcmllbnRhdGlvbihnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwotICAgIGVsc2Ug
aWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJwcmludC1iYWNrZ3JvdW5kcyIpKQotICAgICAg
ICBzZXR0aW5ncy5zZXRTaG91bGRQcmludEJhY2tncm91bmRzKGdfdmFsdWVfZ2V0X2Jvb2xlYW4o
JnZhbHVlKSk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImVuYWJsZS1z
Y3JpcHRzIikpCi0gICAgICAgIHNldHRpbmdzLnNldFNjcmlwdEVuYWJsZWQoZ192YWx1ZV9nZXRf
Ym9vbGVhbigmdmFsdWUpKTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygi
ZW5hYmxlLXBsdWdpbnMiKSkKLSAgICAgICAgc2V0dGluZ3Muc2V0UGx1Z2luc0VuYWJsZWQoZ192
YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJu
X3N0cmluZygiZW5hYmxlLWRucy1wcmVmZXRjaGluZyIpKQotICAgICAgICBzZXR0aW5ncy5zZXRE
TlNQcmVmZXRjaGluZ0VuYWJsZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKLSAgICBl
bHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygicmVzaXphYmxlLXRleHQtYXJlYXMiKSkK
LSAgICAgICAgc2V0dGluZ3Muc2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGdfdmFsdWVfZ2V0X2Jv
b2xlYW4oJnZhbHVlKSk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoInVz
ZXItc3R5bGVzaGVldC11cmkiKSkKLSAgICAgICAgc2V0dGluZ3Muc2V0VXNlclN0eWxlU2hlZXRM
b2NhdGlvbihVUkwoVVJMKCksIGdfdmFsdWVfZ2V0X3N0cmluZygmdmFsdWUpKSk7Ci0gICAgZWxz
ZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImVuYWJsZS1kZXZlbG9wZXItZXh0cmFzIikp
Ci0gICAgICAgIHNldHRpbmdzLnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZ192YWx1ZV9nZXRf
Ym9vbGVhbigmdmFsdWUpKTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygi
ZW5hYmxlLXByaXZhdGUtYnJvd3NpbmciKSkKLSAgICAgICAgY29yZSh3ZWJWaWV3KS0+ZW5hYmxl
TGVnYWN5UHJpdmF0ZUJyb3dzaW5nKGdfdmFsdWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7Ci0gICAg
ZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImVuYWJsZS1jYXJldC1icm93c2luZyIp
KQotICAgICAgICBzZXR0aW5ncy5zZXRDYXJldEJyb3dzaW5nRW5hYmxlZChnX3ZhbHVlX2dldF9i
b29sZWFuKCZ2YWx1ZSkpOwotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgZWxzZSBpZiAo
bmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImVuYWJsZS1odG1sNS1kYXRhYmFzZSIpKSB7Ci0gICAg
ICAgIERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLnNldElzQXZhaWxhYmxlKGdfdmFsdWVfZ2V0
X2Jvb2xlYW4oJnZhbHVlKSk7Ci0gICAgfQotI2VuZGlmCi0gICAgZWxzZSBpZiAobmFtZSA9PSBn
X2ludGVybl9zdHJpbmcoImVuYWJsZS1odG1sNS1sb2NhbC1zdG9yYWdlIikpCi0gICAgICAgIHNl
dHRpbmdzLnNldExvY2FsU3RvcmFnZUVuYWJsZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUp
KTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygiaHRtbDUtbG9jYWwtc3Rv
cmFnZS1kYXRhYmFzZS1wYXRoIikpCi0gICAgICAgIHNldHRpbmdzLnNldExvY2FsU3RvcmFnZURh
dGFiYXNlUGF0aChnX3ZhbHVlX2dldF9zdHJpbmcoJnZhbHVlKSk7Ci0gICAgZWxzZSBpZiAobmFt
ZSA9PSBnX2ludGVybl9zdHJpbmcoImVuYWJsZS14c3MtYXVkaXRvciIpKQotICAgICAgICBzZXR0
aW5ncy5zZXRYU1NBdWRpdG9yRW5hYmxlZChnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwot
ICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJlbmFibGUtc3BhdGlhbC1uYXZp
Z2F0aW9uIikpCi0gICAgICAgIHNldHRpbmdzLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChn
X3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRl
cm5fc3RyaW5nKCJlbmFibGUtZnJhbWUtZmxhdHRlbmluZyIpKQotICAgICAgICBzZXR0aW5ncy5z
ZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGdfdmFsdWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7Ci0g
ICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImphdmFzY3JpcHQtY2FuLW9wZW4t
d2luZG93cy1hdXRvbWF0aWNhbGx5IikpCi0gICAgICAgIHNldHRpbmdzLnNldEphdmFTY3JpcHRD
YW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsK
LSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygiamF2YXNjcmlwdC1jYW4tYWNj
ZXNzLWNsaXBib2FyZCIpKQotICAgICAgICBzZXR0aW5ncy5zZXRKYXZhU2NyaXB0Q2FuQWNjZXNz
Q2xpcGJvYXJkKGdfdmFsdWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7Ci0gICAgZWxzZSBpZiAobmFt
ZSA9PSBnX2ludGVybl9zdHJpbmcoImVuYWJsZS1vZmZsaW5lLXdlYi1hcHBsaWNhdGlvbi1jYWNo
ZSIpKQotICAgICAgICBzZXR0aW5ncy5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJs
ZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdf
aW50ZXJuX3N0cmluZygiZWRpdGluZy1iZWhhdmlvciIpKQotICAgICAgICBzZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3JUeXBlKHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvclR5
cGU+KGdfdmFsdWVfZ2V0X2VudW0oJnZhbHVlKSkpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19p
bnRlcm5fc3RyaW5nKCJlbmFibGUtdW5pdmVyc2FsLWFjY2Vzcy1mcm9tLWZpbGUtdXJpcyIpKQot
ICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhnX3Zh
bHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5f
c3RyaW5nKCJlbmFibGUtZmlsZS1hY2Nlc3MtZnJvbS1maWxlLXVyaXMiKSkKLSAgICAgICAgc2V0
dGluZ3Muc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGdfdmFsdWVfZ2V0X2Jvb2xlYW4o
JnZhbHVlKSk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJpbmcoImVuYWJsZS1k
b20tcGFzdGUiKSkKLSAgICAgICAgc2V0dGluZ3Muc2V0RE9NUGFzdGVBbGxvd2VkKGdfdmFsdWVf
Z2V0X2Jvb2xlYW4oJnZhbHVlKSk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9zdHJp
bmcoInRhYi1rZXktY3ljbGVzLXRocm91Z2gtZWxlbWVudHMiKSkgewotICAgICAgICBQYWdlKiBw
YWdlID0gY29yZSh3ZWJWaWV3KTsKLSAgICAgICAgaWYgKHBhZ2UpCi0gICAgICAgICAgICBwYWdl
LT5zZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFs
dWUpKTsKLSAgICB9IGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJlbmFibGUtc2l0
ZS1zcGVjaWZpYy1xdWlya3MiKSkKLSAgICAgICAgc2V0dGluZ3Muc2V0TmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKLSAgICBlbHNlIGlmIChuYW1l
ID09IGdfaW50ZXJuX3N0cmluZygiZW5hYmxlLXBhZ2UtY2FjaGUiKSkKLSAgICAgICAgc2V0dGlu
Z3Muc2V0VXNlc1BhZ2VDYWNoZShnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwotICAgIGVs
c2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJlbmFibGUtamF2YS1hcHBsZXQiKSkKLSAg
ICAgICAgc2V0dGluZ3Muc2V0SmF2YUVuYWJsZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUp
KTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygiZW5hYmxlLWh5cGVybGlu
ay1hdWRpdGluZyIpKQotICAgICAgICBzZXR0aW5ncy5zZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJs
ZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKLSAgICBlbHNlIGlmIChuYW1lID09IGdf
aW50ZXJuX3N0cmluZygibWVkaWEtcGxheWJhY2stcmVxdWlyZXMtdXNlci1nZXN0dXJlIikpCi0g
ICAgICAgIHNldHRpbmdzLnNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKGdfdmFs
dWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVybl9z
dHJpbmcoIm1lZGlhLXBsYXliYWNrLWFsbG93cy1pbmxpbmUiKSkKLSAgICAgICAgc2V0dGluZ3Mu
c2V0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZShnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkp
OwotCi0jaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCi0gICAgZWxzZSBpZiAobmFtZSA9PSBnX2ludGVy
bl9zdHJpbmcoInNwZWxsLWNoZWNraW5nLWxhbmd1YWdlcyIpKSB7Ci0gICAgICAgIGdib29sZWFu
IGVuYWJsZVNwZWxsQ2hlY2tpbmc7Ci0gICAgICAgIGdfb2JqZWN0X2dldChHX09CSkVDVCh3ZWJT
ZXR0aW5ncyksICJlbmFibGUtc3BlbGwtY2hlY2tpbmciLCAmZW5hYmxlU3BlbGxDaGVja2luZywg
TlVMTCk7Ci0gICAgICAgIGlmIChlbmFibGVTcGVsbENoZWNraW5nKSB7Ci0gICAgICAgICAgICBX
ZWJLaXQ6OkVkaXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpFZGl0b3JD
bGllbnQqPihjb3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgICAgICAgICBzdGF0
aWNfY2FzdDxXZWJLaXQ6OlRleHRDaGVja2VyQ2xpZW50R3RrKj4oY2xpZW50LT50ZXh0Q2hlY2tl
cigpKS0+dXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlKGdfdmFsdWVfZ2V0X3N0cmluZygmdmFs
dWUpKTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQkdMKQotICAg
IGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJlbmFibGUtd2ViZ2wiKSkKLSAgICAg
ICAgc2V0dGluZ3Muc2V0V2ViR0xFbmFibGVkKGdfdmFsdWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7
Ci0jZW5kaWYKLQotICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJlbmFibGUt
YWNjZWxlcmF0ZWQtY29tcG9zaXRpbmciKSkKLSAgICAgICAgdXBkYXRlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ1NldHRpbmcoc2V0dGluZ3MsIGdfdmFsdWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7Ci0K
LSNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3Ry
aW5nKCJlbmFibGUtd2ViYXVkaW8iKSkKLSAgICAgICAgc2V0dGluZ3Muc2V0V2ViQXVkaW9FbmFi
bGVkKGdfdmFsdWVfZ2V0X2Jvb2xlYW4oJnZhbHVlKSk7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShT
TU9PVEhfU0NST0xMSU5HKQotICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJl
bmFibGUtc21vb3RoLXNjcm9sbGluZyIpKQotICAgICAgICBzZXR0aW5ncy5zZXRTY3JvbGxBbmlt
YXRvckVuYWJsZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKLSNlbmRpZgotCi0jaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmlu
ZygiZW5hYmxlLW1lZGlhc291cmNlIikpCi0gICAgICAgIHNldHRpbmdzLnNldE1lZGlhU291cmNl
RW5hYmxlZChnX3ZhbHVlX2dldF9ib29sZWFuKCZ2YWx1ZSkpOwotI2VuZGlmCi0KLSAgICBlbHNl
IGlmICghZ19vYmplY3RfY2xhc3NfZmluZF9wcm9wZXJ0eShHX09CSkVDVF9HRVRfQ0xBU1Mod2Vi
U2V0dGluZ3MpLCBuYW1lKSkKLSAgICAgICAgZ193YXJuaW5nKCJVbmV4cGVjdGVkIHNldHRpbmcg
JyVzJyIsIG5hbWUpOwotICAgIGdfdmFsdWVfdW5zZXQoJnZhbHVlKTsKLX0KLQotc3RhdGljIHZv
aWQgd2Via2l0X3dlYl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBX
ZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSh3
ZWJWaWV3LCBXRUJLSVRfVFlQRV9XRUJfVklFVywgV2ViS2l0V2ViVmlld1ByaXZhdGUpOwotICAg
IHdlYlZpZXctPnByaXYgPSBwcml2OwotICAgIC8vIFRoaXMgaXMgdGhlIHBsYWNlbWVudCBuZXcg
c3ludGF4OiBodHRwOi8vd3d3LnBhcmFzaGlmdC5jb20vYysrLWZhcS1saXRlL2R0b3JzLmh0bWwj
ZmFxLTExLjEwCi0gICAgLy8gSXQgYWxsb3dzIHVzIHRvIGNhbGwgYSBjb25zdHJ1Y3RvciBvbiBt
YW51YWxseSBhbGxvY2F0ZWQgbG9jYXRpb25zIGluIG1lbW9yeS4gV2UgbXVzdCB1c2UgaXQKLSAg
ICAvLyBpbiB0aGlzIGNhc2UsIGJlY2F1c2UgR0xpYiBtYW5hZ2VzIHRoZSBtZW1vcnkgZm9yIHRo
ZSBwcml2YXRlIGRhdGEgc2VjdGlvbiwgYnV0IHdlIHdpc2ggaXQKLSAgICAvLyB0byBjb250YWlu
IEMrKyBvYmplY3QgbWVtYmVycy4gVGhlIHVzZSBvZiBwbGFjZW1lbnQgbmV3IGNhbGxzIHRoZSBj
b25zdHJ1Y3RvciBvbiBhbGwgQysrIGRhdGEKLSAgICAvLyBtZW1iZXJzLCB3aGljaCBlbnN1cmVz
IHRoZXkgYXJlIGluaXRpYWxpemVkIHByb3Blcmx5LgotICAgIG5ldyAocHJpdikgV2ViS2l0V2Vi
Vmlld1ByaXZhdGUoKTsKLQotICAgIHByaXYtPmltRmlsdGVyLnNldFdlYlZpZXcod2ViVmlldyk7
Ci0KLSAgICBQYWdlOjpQYWdlQ2xpZW50cyBwYWdlQ2xpZW50czsKLSAgICBwYWdlQ2xpZW50cy5j
aHJvbWVDbGllbnQgPSBuZXcgV2ViS2l0OjpDaHJvbWVDbGllbnQod2ViVmlldyk7Ci0jaWYgRU5B
QkxFKENPTlRFWFRfTUVOVVMpCi0gICAgcGFnZUNsaWVudHMuY29udGV4dE1lbnVDbGllbnQgPSBu
ZXcgV2ViS2l0OjpDb250ZXh0TWVudUNsaWVudCh3ZWJWaWV3KTsKLSNlbmRpZgotICAgIHBhZ2VD
bGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJLaXQ6OkVkaXRvckNsaWVudCh3ZWJWaWV3KTsK
LSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBu
ZXcgV2ViS2l0OjpEcmFnQ2xpZW50KHdlYlZpZXcpOwotI2VuZGlmCi0gICAgcGFnZUNsaWVudHMu
aW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYktpdDo6SW5zcGVjdG9yQ2xpZW50KHdlYlZpZXcpOwot
ICAgIHBhZ2VDbGllbnRzLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IG5ldyBXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OwotICAgIHBhZ2VDbGllbnRzLnByb2dyZXNzVHJhY2tlckNsaWVudCA9
IG5ldyBXZWJLaXQ6OlByb2dyZXNzVHJhY2tlckNsaWVudCh3ZWJWaWV3KTsKLQotICAgIHByaXYt
PmNvcmVQYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOwotCi0gICAgcHJpdi0+Y29yZVBhZ2Ut
PmFkZExheW91dE1pbGVzdG9uZXMoRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0KTsKLQot
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKLSAgICBpZiAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpIHsKLSAgICAgICAgcHJpdi0+Z2VvbG9jYXRp
b25DbGllbnRNb2NrID0gc3RkOjptYWtlX3VuaXF1ZTxHZW9sb2NhdGlvbkNsaWVudE1vY2s+KCk7
Ci0gICAgICAgIFdlYkNvcmU6OnByb3ZpZGVHZW9sb2NhdGlvblRvKHByaXYtPmNvcmVQYWdlLCBw
cml2LT5nZW9sb2NhdGlvbkNsaWVudE1vY2suZ2V0KCkpOwotICAgICAgICBwcml2LT5nZW9sb2Nh
dGlvbkNsaWVudE1vY2suZ2V0KCktPnNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVy
Ojpmcm9tKHByaXYtPmNvcmVQYWdlKSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIFdlYkNvcmU6OnBy
b3ZpZGVHZW9sb2NhdGlvblRvKHByaXYtPmNvcmVQYWdlLCBuZXcgV2ViS2l0OjpHZW9sb2NhdGlv
bkNsaWVudCh3ZWJWaWV3KSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQotICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VNb3Rpb25Ubyhwcml2LT5jb3JlUGFnZSwgbmV3
IERldmljZU1vdGlvbkNsaWVudEd0ayk7Ci0gICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVu
dGF0aW9uVG8ocHJpdi0+Y29yZVBhZ2UsIG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0ayk7
Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgcHJpdi0+dXNlck1lZGlh
Q2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxVc2VyTWVkaWFDbGllbnRHdGs+KCk7Ci0gICAgV2Vi
Q29yZTo6cHJvdmlkZVVzZXJNZWRpYVRvKHByaXYtPmNvcmVQYWdlLCBwcml2LT51c2VyTWVkaWFD
bGllbnQuZ2V0KCkpOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpCi0gICAgV2ViQ29yZTo6cHJvdmlkZU5hdmlnYXRvckNvbnRlbnRVdGlsc1RvKHByaXYtPmNv
cmVQYWdlLCBzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdDo6TmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50PigpKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQotICAgIFdlYkNv
cmU6OnByb3ZpZGVCYXR0ZXJ5VG8ocHJpdi0+Y29yZVBhZ2UsIG5ldyBCYXR0ZXJ5Q2xpZW50R3Rr
KTsKLSNlbmRpZgotCi0gICAgaWYgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcFJlbmRl
clRyZWVNb2RlRW5hYmxlZCgpKSB7Ci0gICAgICAgIC8vIFNldCBzb21lIHRlc3Rpbmctc3BlY2lm
aWMgc2V0dGluZ3MKLSAgICAgICAgcHJpdi0+Y29yZVBhZ2UtPnNldHRpbmdzKCkuc2V0SW50ZXJh
Y3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQodHJ1ZSk7Ci0gICAgICAgIHByaXYtPmNvcmVQYWdl
LT5zZXR0aW5ncygpLnNldFZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKC0xKTsK
LSAgICB9Ci0KLSAgICAvLyBQYWdlcyB3aXRoaW4gYSBzYW1lIHNlc3Npb24gbmVlZCB0byBiZSBs
aW5rZWQgdG9nZXRoZXIgb3RoZXJ3aXNlIHNvbWUgZnVuY3Rpb25hbGl0aWVzIHN1Y2gKLSAgICAv
LyBhcyB2aXNpdGVkIGxpbmsgY29sb3JhdGlvbiAoYWNyb3NzIHBhZ2VzKSBhbmQgY2hhbmdpbmcg
cG9wdXAgd2luZG93IGxvY2F0aW9uIHdpbGwgbm90IHdvcmsuCi0gICAgLy8gVG8ga2VlcCB0aGUg
ZGVmYXVsdCBiZWhhdmlvciBzaW1wbGUgKGFuZCBiZWNhdXNlIG5vIFBhZ2VHcm91cCBBUEkgZXhp
c3QgaW4gV2ViS2l0R1RLIGF0IHRoZQotICAgIC8vIHRpbWUgb2Ygd3JpdGluZyB0aGlzIGNvbW1l
bnQpLCB3ZSBzaW1wbHkgc2V0IGFsbCB0aGUgcGFnZXMgdG8gdGhlIHNhbWUgZ3JvdXAuCi0gICAg
cHJpdi0+Y29yZVBhZ2UtPnNldEdyb3VwTmFtZSh3ZWJraXRQYWdlR3JvdXBOYW1lKCkpOwotCi0g
ICAgLy8gV2UgYWxzbyBhZGQgYSBzaW1wbGUgd3JhcHBlciBjbGFzcyB0byBwcm92aWRlIHRoZSBw
dWJsaWMKLSAgICAvLyBpbnRlcmZhY2UgZm9yIHRoZSBXZWIgSW5zcGVjdG9yLgotICAgIHByaXYt
PndlYkluc3BlY3RvciA9IGFkb3B0R1JlZihXRUJLSVRfV0VCX0lOU1BFQ1RPUihnX29iamVjdF9u
ZXcoV0VCS0lUX1RZUEVfV0VCX0lOU1BFQ1RPUiwgTlVMTCkpKTsKLSAgICB3ZWJraXRfd2ViX2lu
c3BlY3Rvcl9zZXRfaW5zcGVjdG9yX2NsaWVudChwcml2LT53ZWJJbnNwZWN0b3IuZ2V0KCksIHBy
aXYtPmNvcmVQYWdlKTsKLQotICAgIC8vIEFuZCBvdXIgVmlld3BvcnRBdHRyaWJ1dGVzIGZyaWVu
ZC4KLSAgICBwcml2LT52aWV3cG9ydEF0dHJpYnV0ZXMgPSBhZG9wdEdSZWYoV0VCS0lUX1ZJRVdQ
T1JUX0FUVFJJQlVURVMoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1ZJRVdQT1JUX0FUVFJJQlVU
RVMsIE5VTEwpKSk7Ci0gICAgcHJpdi0+dmlld3BvcnRBdHRyaWJ1dGVzLT5wcml2LT53ZWJWaWV3
ID0gd2ViVmlldzsKLQotICAgIGd0a193aWRnZXRfc2V0X2Nhbl9mb2N1cyhHVEtfV0lER0VUKHdl
YlZpZXcpLCBUUlVFKTsKLQotICAgIHByaXYtPm1haW5GcmFtZSA9IFdFQktJVF9XRUJfRlJBTUUo
d2Via2l0X3dlYl9mcmFtZV9uZXcod2ViVmlldykpOwotICAgIHByaXYtPmxhc3RQb3B1cFhQb3Np
dGlvbiA9IHByaXYtPmxhc3RQb3B1cFlQb3NpdGlvbiA9IC0xOwotCi0gICAgcHJpdi0+YmFja0Zv
cndhcmRMaXN0ID0gYWRvcHRHUmVmKHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfbmV3X3dp
dGhfd2ViX3ZpZXcod2ViVmlldykpOwotCi0gICAgcHJpdi0+em9vbUZ1bGxDb250ZW50ID0gRkFM
U0U7Ci0KLSAgICBwcml2LT53ZWJTZXR0aW5ncyA9IGFkb3B0R1JlZih3ZWJraXRfd2ViX3NldHRp
bmdzX25ldygpKTsKLSAgICB3ZWJraXRfd2ViX3ZpZXdfdXBkYXRlX3NldHRpbmdzKHdlYlZpZXcp
OwotICAgIGdfc2lnbmFsX2Nvbm5lY3QocHJpdi0+d2ViU2V0dGluZ3MuZ2V0KCksICJub3RpZnki
LCBHX0NBTExCQUNLKHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3RpZnkpLCB3ZWJWaWV3KTsK
LQotICAgIHByaXYtPndlYldpbmRvd0ZlYXR1cmVzID0gYWRvcHRHUmVmKHdlYmtpdF93ZWJfd2lu
ZG93X2ZlYXR1cmVzX25ldygpKTsKLQotICAgIHByaXYtPnN1YlJlc291cmNlcyA9IGFkb3B0R1Jl
ZihnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWwsIGdfZnJlZSwg
Z19vYmplY3RfdW5yZWYpKTsKLQotICAgIHByaXYtPnRhcmdldExpc3QgPSBhZG9wdEdSZWYoY29w
eUd0a1RhcmdldExpc3RDb252ZXJ0aW5nV2ViQ29yZUVudW1WYWx1ZXNUb1dlYktpdEVudW1WYWx1
ZXMoUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+dGFyZ2V0TGlz
dCgpKSk7Ci0KLSNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIHByaXYtPmRyYWdBbmREcm9w
SGVscGVyLnNldFdpZGdldChHVEtfV0lER0VUKHdlYlZpZXcpKTsKLSAgICBndGtfZHJhZ19kZXN0
X3NldChHVEtfV0lER0VUKHdlYlZpZXcpLCBzdGF0aWNfY2FzdDxHdGtEZXN0RGVmYXVsdHM+KDAp
LCAwLCAwLCBzdGF0aWNfY2FzdDxHZGtEcmFnQWN0aW9uPihHREtfQUNUSU9OX0NPUFkgfCBHREtf
QUNUSU9OX0NPUFkgfCBHREtfQUNUSU9OX01PVkUgfCBHREtfQUNUSU9OX0xJTksgfCBHREtfQUNU
SU9OX1BSSVZBVEUpKTsKLSAgICBndGtfZHJhZ19kZXN0X3NldF90YXJnZXRfbGlzdChHVEtfV0lE
R0VUKHdlYlZpZXcpLCBwcml2LT50YXJnZXRMaXN0LmdldCgpKTsKLSNlbmRpZgotCi0gICAgcHJp
di0+c2VsZlNjcm9sbGluZyA9IGZhbHNlOwotICAgIHByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4
dD4od2ViVmlldyk7Ci0KLSAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlZpZXcsICJkaXJlY3Rpb24t
Y2hhbmdlZCIsIEdfQ0FMTEJBQ0sod2Via2l0V2ViVmlld0RpcmVjdGlvbkNoYW5nZWQpLCAwKTsK
LX0KLQotR3RrV2lkZ2V0KiB3ZWJraXRfd2ViX3ZpZXdfbmV3KHZvaWQpCi17Ci0gICAgV2ViS2l0
V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfV0VCX1ZJRVcsIE5VTEwpKTsKLQotICAgIHJldHVybiBHVEtfV0lER0VUKHdlYlZpZXcpOwot
fQotCi12b2lkIHdlYmtpdFdlYlZpZXdSdW5GaWxlQ2hvb3NlclJlcXVlc3QoV2ViS2l0V2ViVmll
dyogd2ViVmlldywgV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0KiByZXF1ZXN0KQotewotICAgIGdi
b29sZWFuIHJldHVyblZhbHVlOwotICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbUlVOX0ZJTEVfQ0hPT1NFUl0sIDAsIHJlcXVlc3QsICZyZXR1cm5WYWx1
ZSk7Ci19Ci0KLS8vIGZvciBpbnRlcm5hbCB1c2Ugb25seQotdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
bm90aWZ5X3JlYWR5KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotCi0gICAgZ2Jvb2xlYW4gaXNIYW5k
bGVkID0gRkFMU0U7Ci0gICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXdf
c2lnbmFsc1tXRUJfVklFV19SRUFEWV0sIDAsICZpc0hhbmRsZWQpOwotfQotCi12b2lkIHdlYmtp
dF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2FkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktp
dE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Ci0KLSAgICBXZWJLaXREb3dubG9hZCogZG93bmxvYWQ7
Ci0KLSAgICBpZiAoaGFuZGxlKQotICAgICAgICBkb3dubG9hZCA9IHdlYmtpdF9kb3dubG9hZF9u
ZXdfd2l0aF9oYW5kbGUocmVxdWVzdCwgaGFuZGxlLCByZXNwb25zZSk7Ci0gICAgZWxzZQotICAg
ICAgICBkb3dubG9hZCA9IHdlYmtpdF9kb3dubG9hZF9uZXcocmVxdWVzdCk7Ci0KLSAgICBnYm9v
bGVhbiBoYW5kbGVkOwotICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgd2Via2l0X3dlYl92aWV3
X3NpZ25hbHNbRE9XTkxPQURfUkVRVUVTVEVEXSwgMCwgZG93bmxvYWQsICZoYW5kbGVkKTsKLQot
ICAgIGlmICghaGFuZGxlZCkgewotICAgICAgICB3ZWJraXRfZG93bmxvYWRfY2FuY2VsKGRvd25s
b2FkKTsKLSAgICAgICAgZ19vYmplY3RfdW5yZWYoZG93bmxvYWQpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgLyogU3RhcnQgdGhlIGRvd25sb2FkIG5vdyBpZiBpdCBoYXMgYSBkZXN0
aW5hdGlvbiBVUkksIG90aGVyd2lzZSBpdAotICAgICAgICBtYXkgYmUgaGFuZGxlZCBhc3luY2hy
b25vdXNseSBieSB0aGUgYXBwbGljYXRpb24uICovCi0gICAgaWYgKHdlYmtpdF9kb3dubG9hZF9n
ZXRfZGVzdGluYXRpb25fdXJpKGRvd25sb2FkKSkKLSAgICAgICAgd2Via2l0X2Rvd25sb2FkX3N0
YXJ0KGRvd25sb2FkKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfc2V0X3NldHRpbmdz
OgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKiBAc2V0dGluZ3M6ICh0cmFuc2Zl
ciBub25lKTogdGhlICNXZWJLaXRXZWJTZXR0aW5ncyB0byBiZSBzZXQKLSAqCi0gKiBSZXBsYWNl
cyB0aGUgI1dlYktpdFdlYlNldHRpbmdzIGluc3RhbmNlIHRoYXQgaXMgY3VycmVudGx5IGF0dGFj
aGVkCi0gKiB0byBAd2ViX3ZpZXcgd2l0aCBAc2V0dGluZ3MuIFRoZSByZWZlcmVuY2UgaGVsZCBi
eSB0aGUgQHdlYl92aWV3IG9uCi0gKiB0aGUgb2xkICNXZWJLaXRXZWJTZXR0aW5ncyBpbnN0YW5j
ZSBpcyBkcm9wcGVkLCBhbmQgdGhlIHJlZmVyZW5jZQotICogY291bnQgb2YgQHNldHRpbmdzIGlz
IGluc2NyZWFzZWQuCi0gKgotICogVGhlIHNldHRpbmdzIGFyZSBhdXRvbWF0aWNhbGx5IGFwcGxp
ZWQgdG8gQHdlYl92aWV3LgotICovCi12b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfc2V0dGluZ3Mo
V2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0V2ViU2V0dGluZ3MqIHdlYlNldHRpbmdzKQot
ewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKLSAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfU0VUVElOR1Mod2ViU2V0dGluZ3MpKTsK
LQotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKLSAgICBn
X3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMocHJpdi0+d2ViU2V0dGluZ3MuZ2V0
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHdlYmtpdF93ZWJfdmlld19zZXR0aW5nc19ub3Rp
ZnkpLCB3ZWJWaWV3KTsKLQotICAgIHByaXYtPndlYlNldHRpbmdzID0gd2ViU2V0dGluZ3M7Ci0g
ICAgd2Via2l0X3dlYl92aWV3X3VwZGF0ZV9zZXR0aW5ncyh3ZWJWaWV3KTsKLSAgICBnX3NpZ25h
bF9jb25uZWN0KHdlYlNldHRpbmdzLCAibm90aWZ5IiwgR19DQUxMQkFDSyh3ZWJraXRfd2ViX3Zp
ZXdfc2V0dGluZ3Nfbm90aWZ5KSwgd2ViVmlldyk7Ci0gICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JK
RUNUKHdlYlZpZXcpLCAic2V0dGluZ3MiKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3NldHRpbmdzOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogT2J0
YWlucyB0aGUgI1dlYktpdFdlYlNldHRpbmdzIGFzc29jaWF0ZWQgd2l0aCB0aGUKLSAqICNXZWJL
aXRXZWJWaWV3LiBUaGUgI1dlYktpdFdlYlZpZXcgYWx3YXlzIGhhcyBhbiBhc3NvY2lhdGVkCi0g
KiBpbnN0YW5jZSBvZiAjV2ViS2l0V2ViU2V0dGluZ3MuIFRoZSByZWZlcmVuY2UgdGhhdCBpcyBy
ZXR1cm5lZCBieQotICogdGhpcyBjYWxsIGlzIG93bmVkIGJ5IHRoZSAjV2ViS2l0V2ViVmlldy4g
WW91IG1heSBuZWVkIHRvIGluY3JlYXNlCi0gKiBpdHMgcmVmZXJlbmNlIGNvdW50IGlmIHlvdSBp
bnRlbmQgdG8ga2VlcCBpdCBhbGl2ZSBmb3IgbG9uZ2VyIHRoYW4KLSAqIHRoZSAjV2ViS2l0V2Vi
Vmlldy4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6ICh0cmFuc2ZlciBub25lKTogdGhlICNXZWJLaXRX
ZWJTZXR0aW5ncyBpbnN0YW5jZQotICovCi1XZWJLaXRXZWJTZXR0aW5ncyogd2Via2l0X3dlYl92
aWV3X2dldF9zZXR0aW5ncyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgMCk7Ci0gICAgcmV0dXJu
IHdlYlZpZXctPnByaXYtPndlYlNldHRpbmdzLmdldCgpOwotfQotCi0vKioKLSAqIHdlYmtpdF93
ZWJfdmlld19nZXRfaW5zcGVjdG9yOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0g
KgotICogT2J0YWlucyB0aGUgI1dlYktpdFdlYkluc3BlY3RvciBhc3NvY2lhdGVkIHdpdGggdGhl
Ci0gKiAjV2ViS2l0V2ViVmlldy4gRXZlcnkgI1dlYktpdFdlYlZpZXcgb2JqZWN0IGhhcyBhCi0g
KiAjV2ViS2l0V2ViSW5zcGVjdG9yIG9iamVjdCBhdHRhY2hlZCB0byBpdCBhcyBzb29uIGFzIGl0
IGlzIGNyZWF0ZWQsCi0gKiBzbyB0aGlzIGZ1bmN0aW9uIHdpbGwgb25seSByZXR1cm4gTlVMTCBp
ZiB0aGUgYXJndW1lbnQgaXMgbm90IGEKLSAqIHZhbGlkICNXZWJLaXRXZWJWaWV3LgotICoKLSAq
IFJldHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiB0aGUgI1dlYktpdFdlYkluc3BlY3RvciBp
bnN0YW5jZS4KLSAqCi0gKiBTaW5jZTogMS4wLjMKLSAqLwotV2ViS2l0V2ViSW5zcGVjdG9yKiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2luc3BlY3RvcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewot
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgMCk7
Ci0gICAgcmV0dXJuIHdlYlZpZXctPnByaXYtPndlYkluc3BlY3Rvci5nZXQoKTsKLX0KLQotLyoq
Ci0gKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdwb3J0X2F0dHJpYnV0ZXM6Ci0gKiBAd2ViX3Zp
ZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqCi0gKiBPYnRhaW5zIHRoZSAjV2ViS2l0Vmlld3BvcnRB
dHRyaWJ1dGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUKLSAqICNXZWJLaXRXZWJWaWV3LiBFdmVyeSAj
V2ViS2l0V2ViVmlldyBvYmplY3QgaGFzIGEKLSAqICNXZWJLaXRWaWV3cG9ydEF0dHJpYnV0ZXMg
b2JqZWN0IGF0dGFjaGVkIHRvIGl0IGFzIHNvb24gYXMgaXQgaXMKLSAqIGNyZWF0ZWQsIHNvIHRo
aXMgZnVuY3Rpb24gd2lsbCBvbmx5IHJldHVybiBOVUxMIGlmIHRoZSBhcmd1bWVudCBpcwotICog
bm90IGEgdmFsaWQgI1dlYktpdFdlYlZpZXcuIERvIG5vdGUgaG93ZXZlciB0aGF0IHRoZSB2aWV3
cG9ydAotICogYXR0cmlidXRlcyBvYmplY3Qgb25seSBjb250YWlucyB2YWxpZCBpbmZvcm1hdGlv
biB3aGVuIHRoZSBjdXJyZW50Ci0gKiBwYWdlIGhhcyBhIHZpZXdwb3J0IG1ldGEgdGFnLiBZb3Ug
Y2FuIGNoZWNrIHdoZXRoZXIgdGhlIGRhdGEgc2hvdWxkCi0gKiBiZSB1c2VkIGJ5IGNoZWNraW5n
IHRoZSAjV2ViS2l0Vmlld3BvcnRBdHRyaWJ1dGVzOnZhbGlkIHByb3BlcnR5LgotICoKLSAqIFJl
dHVybiB2YWx1ZTogKHRyYW5zZmVyIG5vbmUpOiB0aGUgI1dlYktpdFZpZXdwb3J0QXR0cmlidXRl
cyBpbnN0YW5jZS4KLSAqCi0gKiBTaW5jZTogMS4zLjgKLSAqLwotV2ViS2l0Vmlld3BvcnRBdHRy
aWJ1dGVzKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdwb3J0X2F0dHJpYnV0ZXMoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X1ZJRVcod2ViVmlldyksIDApOwotICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT52aWV3cG9ydEF0
dHJpYnV0ZXMuZ2V0KCk7Ci19Ci0KLS8vIGludGVybmFsCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfc2V0X3dpbmRvd19mZWF0dXJlcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRX
ZWJXaW5kb3dGZWF0dXJlcyogd2ViV2luZG93RmVhdHVyZXMpCi17Ci0gICAgaWYgKCF3ZWJXaW5k
b3dGZWF0dXJlcykKLSAgICAgIHJldHVybjsKLSAgICBpZiAod2Via2l0X3dlYl93aW5kb3dfZmVh
dHVyZXNfZXF1YWwod2ViVmlldy0+cHJpdi0+d2ViV2luZG93RmVhdHVyZXMuZ2V0KCksIHdlYldp
bmRvd0ZlYXR1cmVzKSkKLSAgICAgIHJldHVybjsKLSAgICB3ZWJWaWV3LT5wcml2LT53ZWJXaW5k
b3dGZWF0dXJlcyA9IHdlYldpbmRvd0ZlYXR1cmVzOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJf
dmlld19nZXRfd2luZG93X2ZlYXR1cmVzOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3
Ci0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiB0aGUgaW5zdGFuY2Ugb2YgI1dlYktp
dFdlYldpbmRvd0ZlYXR1cmVzIGhlbGQgYnkgdGhlIGdpdmVuCi0gKiAjV2ViS2l0V2ViVmlldy4K
LSAqCi0gKiBTaW5jZTogMS4wLjMKLSAqLwotV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqIHdlYmtp
dF93ZWJfdmlld19nZXRfd2luZG93X2ZlYXR1cmVzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17
Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCAw
KTsKLSAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+d2ViV2luZG93RmVhdHVyZXMuZ2V0KCk7Ci19
Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2dldF90aXRsZToKLSAqIEB3ZWJfdmlldzogYSAj
V2ViS2l0V2ViVmlldwotICoKLSAqIFJldHVybnMgdGhlIEB3ZWJfdmlldydzIGRvY3VtZW50IHRp
dGxlCi0gKgotICogU2luY2U6IDEuMS40Ci0gKgotICogUmV0dXJuIHZhbHVlOiB0aGUgdGl0bGUg
b2YgQHdlYl92aWV3Ci0gKi8KLWNvbnN0IGdjaGFyKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxl
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBOVUxMKTsKLQotICAgIFdlYktpdFdlYlZpZXdQcml2
YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKLSAgICByZXR1cm4gcHJpdi0+bWFpbkZyYW1lLT5w
cml2LT50aXRsZTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaToKLSAqIEB3
ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIFJldHVybnMgdGhlIGN1cnJlbnQgVVJJ
IG9mIHRoZSBjb250ZW50cyBkaXNwbGF5ZWQgYnkgdGhlIEB3ZWJfdmlldwotICoKLSAqIFNpbmNl
OiAxLjEuNAotICoKLSAqIFJldHVybiB2YWx1ZTogdGhlIFVSSSBvZiBAd2ViX3ZpZXcKLSAqLwot
Y29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfdmlld19nZXRfdXJpKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZp
ZXcpLCBOVUxMKTsKLQotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+
cHJpdjsKLSAgICByZXR1cm4gcHJpdi0+bWFpbkZyYW1lLT5wcml2LT51cmk7Ci19Ci0KLS8qKgot
ICogd2Via2l0X3dlYl92aWV3X3NldF9tYWludGFpbnNfYmFja19mb3J3YXJkX2xpc3Q6Ci0gKiBA
d2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqIEBmbGFnOiB0byB0ZWxsIHRoZSB2aWV3IHRv
IG1haW50YWluIGEgYmFjayBvciBmb3J3YXJkIGxpc3QKLSAqCi0gKiBTZXQgdGhlIHZpZXcgdG8g
bWFpbnRhaW4gYSBiYWNrIG9yIGZvcndhcmQgbGlzdCBvZiBoaXN0b3J5IGl0ZW1zLgotICovCi12
b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfbWFpbnRhaW5zX2JhY2tfZm9yd2FyZF9saXN0KFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIGZsYWcpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotCi0gICAgc3RhdGljX2Nhc3Q8QmFja0Zv
cndhcmRMaXN0Kj4oY29yZSh3ZWJWaWV3KS0+YmFja0ZvcndhcmQoKS5jbGllbnQoKSktPnNldEVu
YWJsZWQoZmxhZyk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2Zvcndh
cmRfbGlzdDoKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIE9idGFpbnMg
dGhlICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiAj
V2ViS2l0V2ViVmlldy4gVGhlCi0gKiAjV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0IGlzIG93bmVk
IGJ5IHRoZSAjV2ViS2l0V2ViVmlldy4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6ICh0cmFuc2ZlciBu
b25lKTogdGhlICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QKLSAqLwotV2ViS2l0V2ViQmFja0Zv
cndhcmRMaXN0KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2JhY2tfZm9yd2FyZF9saXN0KFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9WSUVXKHdlYlZpZXcpLCAwKTsKLSAgICBpZiAoIWNvcmUod2ViVmlldykgfHwgIXN0YXRpY19j
YXN0PEJhY2tGb3J3YXJkTGlzdCo+KGNvcmUod2ViVmlldyktPmJhY2tGb3J3YXJkKCkuY2xpZW50
KCkpLT5lbmFibGVkKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB3ZWJWaWV3LT5w
cml2LT5iYWNrRm9yd2FyZExpc3QuZ2V0KCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3
X2dvX3RvX2JhY2tfZm9yd2FyZF9pdGVtOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3
Ci0gKiBAaXRlbTogYSAjV2ViS2l0V2ViSGlzdG9yeUl0ZW0qCi0gKgotICogR28gdG8gdGhlIHNw
ZWNpZmllZCAjV2ViS2l0V2ViSGlzdG9yeUl0ZW0KLSAqCi0gKiBSZXR1cm4gdmFsdWU6ICVUUlVF
IGlmIGxvYWRpbmcgb2YgaXRlbSBpcyBzdWNjZXNzZnVsLCAlRkFMU0UgaWYgbm90Ci0gKi8KLWdi
b29sZWFuIHdlYmtpdF93ZWJfdmlld19nb190b19iYWNrX2ZvcndhcmRfaXRlbShXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJIaXN0b3J5SXRlbSogaXRlbSkKLXsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJU1RPUllfSVRFTShpdGVtKSwgRkFM
U0UpOwotCi0gICAgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QgPSB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2JhY2tfZm9yd2FyZF9saXN0KHdlYlZpZXcpOwotICAgIGlmICgh
d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jb250YWluc19pdGVtKGJhY2tGb3J3YXJkTGlz
dCwgaXRlbSkpCi0gICAgICAgIHJldHVybiBGQUxTRTsKLQotICAgIGNvcmUod2ViVmlldyktPmdv
VG9JdGVtKGNvcmUoaXRlbSksIEZyYW1lTG9hZFR5cGVJbmRleGVkQmFja0ZvcndhcmQpOwotICAg
IHJldHVybiBUUlVFOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfdmlld19nb19iYWNrOgotICog
QHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogTG9hZHMgdGhlIHByZXZpb3VzIGhp
c3RvcnkgaXRlbS4KLSAqLwotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ29fYmFjayhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpKTsKLQotICAgIGNvcmUod2ViVmlldyktPmJhY2tGb3J3YXJkKCkuZ29CYWNrKCk7
Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2dvX2JhY2tfb3JfZm9yd2FyZDoKLSAqIEB3
ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICogQHN0ZXBzOiB0aGUgbnVtYmVyIG9mIHN0ZXBz
Ci0gKgotICogTG9hZHMgdGhlIGhpc3RvcnkgaXRlbSB0aGF0IGlzIHRoZSBudW1iZXIgb2YgQHN0
ZXBzIGF3YXkgZnJvbSB0aGUgY3VycmVudAotICogaXRlbS4gTmVnYXRpdmUgdmFsdWVzIHJlcHJl
c2VudCBzdGVwcyBiYWNrd2FyZCB3aGlsZSBwb3NpdGl2ZSB2YWx1ZXMKLSAqIHJlcHJlc2VudCBz
dGVwcyBmb3J3YXJkLgotICovCi12b2lkIHdlYmtpdF93ZWJfdmlld19nb19iYWNrX29yX2Zvcndh
cmQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2ludCBzdGVwcykKLXsKLSAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Ci0KLSAgICBjb3JlKHdlYlZpZXcp
LT5iYWNrRm9yd2FyZCgpLmdvQmFja09yRm9yd2FyZChzdGVwcyk7Ci19Ci0KLS8qKgotICogd2Vi
a2l0X3dlYl92aWV3X2dvX2ZvcndhcmQ6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcK
LSAqCi0gKiBMb2FkcyB0aGUgbmV4dCBoaXN0b3J5IGl0ZW0uCi0gKi8KLXZvaWQgd2Via2l0X3dl
Yl92aWV3X2dvX2ZvcndhcmQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Ci0KLSAgICBjb3JlKHdlYlZp
ZXcpLT5iYWNrRm9yd2FyZCgpLmdvRm9yd2FyZCgpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJf
dmlld19jYW5fZ29fYmFjazoKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAq
IERldGVybWluZXMgd2hldGhlciAjd2ViX3ZpZXcgaGFzIGEgcHJldmlvdXMgaGlzdG9yeSBpdGVt
LgotICoKLSAqIFJldHVybiB2YWx1ZTogJVRSVUUgaWYgYWJsZSB0byBtb3ZlIGJhY2ssICVGQUxT
RSBvdGhlcndpc2UKLSAqLwotZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7Ci0KLSAgICBpZiAoIWNvcmUod2ViVmlldykg
fHwgIWNvcmUod2ViVmlldyktPmJhY2tGb3J3YXJkKCkuY2FuR29CYWNrT3JGb3J3YXJkKC0xKSkK
LSAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAgcmV0dXJuIFRSVUU7Ci19Ci0KLS8qKgotICog
d2Via2l0X3dlYl92aWV3X2Nhbl9nb19iYWNrX29yX2ZvcndhcmQ6Ci0gKiBAd2ViX3ZpZXc6IGEg
I1dlYktpdFdlYlZpZXcKLSAqIEBzdGVwczogdGhlIG51bWJlciBvZiBzdGVwcwotICoKLSAqIERl
dGVybWluZXMgd2hldGhlciAjd2ViX3ZpZXcgaGFzIGEgaGlzdG9yeSBpdGVtIG9mIEBzdGVwcy4g
TmVnYXRpdmUgdmFsdWVzCi0gKiByZXByZXNlbnQgc3RlcHMgYmFja3dhcmQgd2hpbGUgcG9zaXRp
dmUgdmFsdWVzIHJlcHJlc2VudCBzdGVwcyBmb3J3YXJkLgotICoKLSAqIFJldHVybiB2YWx1ZTog
JVRSVUUgaWYgYWJsZSB0byBtb3ZlIGJhY2sgb3IgZm9yd2FyZCB0aGUgZ2l2ZW4gbnVtYmVyIG9m
Ci0gKiBzdGVwcywgJUZBTFNFIG90aGVyd2lzZQotICovCi1nYm9vbGVhbiB3ZWJraXRfd2ViX3Zp
ZXdfY2FuX2dvX2JhY2tfb3JfZm9yd2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnaW50IHN0
ZXBzKQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJW
aWV3KSwgRkFMU0UpOwotCi0gICAgcmV0dXJuIGNvcmUod2ViVmlldyktPmJhY2tGb3J3YXJkKCku
Y2FuR29CYWNrT3JGb3J3YXJkKHN0ZXBzKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdf
Y2FuX2dvX2ZvcndhcmQ6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqCi0gKiBE
ZXRlcm1pbmVzIHdoZXRoZXIgI3dlYl92aWV3IGhhcyBhIG5leHQgaGlzdG9yeSBpdGVtLgotICoK
LSAqIFJldHVybiB2YWx1ZTogJVRSVUUgaWYgYWJsZSB0byBtb3ZlIGZvcndhcmQsICVGQUxTRSBv
dGhlcndpc2UKLSAqLwotZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2Nhbl9nb19mb3J3YXJkKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7Ci0KLSAgICBQYWdlKiBwYWdlID0gY29yZSh3
ZWJWaWV3KTsKLQotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotCi0gICAg
aWYgKCFwYWdlLT5iYWNrRm9yd2FyZCgpLmZvcndhcmRJdGVtKCkpCi0gICAgICAgIHJldHVybiBG
QUxTRTsKLQotICAgIHJldHVybiBUUlVFOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfdmlld19v
cGVuOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKiBAdXJpOiBhbiBVUkkKLSAq
Ci0gKiBSZXF1ZXN0cyBsb2FkaW5nIG9mIHRoZSBzcGVjaWZpZWQgVVJJIHN0cmluZy4KLSAqCi0g
KiBEZXByZWNhdGVkOiAxLjEuMTogVXNlIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaSgpIGluc3Rl
YWQuCi0gICovCi12b2lkIHdlYmtpdF93ZWJfdmlld19vcGVuKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIGNvbnN0IGdjaGFyKiB1cmkpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNf
V0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwodXJpKTsKLQotICAgIC8v
IFdlIHVzZWQgdG8gc3VwcG9ydCBsb2NhbCBwYXRocywgdW5saWtlIHRoZSBuZXdlcgotICAgIC8v
IGZ1bmN0aW9uIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaQotICAgIGlmIChnX3BhdGhfaXNfYWJz
b2x1dGUodXJpKSkgewotICAgICAgICBnY2hhciogZmlsZVVyaSA9IGdfZmlsZW5hbWVfdG9fdXJp
KHVyaSwgTlVMTCwgTlVMTCk7Ci0gICAgICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaSh3ZWJW
aWV3LCBmaWxlVXJpKTsKLSAgICAgICAgZ19mcmVlKGZpbGVVcmkpOwotICAgIH0KLSAgICBlbHNl
Ci0gICAgICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaSh3ZWJWaWV3LCB1cmkpOwotfQotCi12
b2lkIHdlYmtpdF93ZWJfdmlld19yZWxvYWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Ci0KLSAgICBj
b3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5yZWxvYWQoKTsKLX0KLQotLyoqCi0g
KiB3ZWJraXRfd2ViX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZToKLSAqIEB3ZWJfdmlldzogYSAj
V2ViS2l0V2ViVmlldwotICoKLSAqIFJlbG9hZHMgdGhlIEB3ZWJfdmlldyB3aXRob3V0IHVzaW5n
IGFueSBjYWNoZWQgZGF0YS4KLSAqCi0gKiBTaW5jZTogMS4wLjMKLSAqLwotdm9pZCB3ZWJraXRf
d2ViX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewot
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKLQotICAg
IGNvcmUod2ViVmlldyktPm1haW5GcmFtZSgpLmxvYWRlcigpLnJlbG9hZCh0cnVlKTsKLX0KLQot
LyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfbG9hZF91cmk6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktp
dFdlYlZpZXcKLSAqIEB1cmk6IGFuIFVSSSBzdHJpbmcKLSAqCi0gKiBSZXF1ZXN0cyBsb2FkaW5n
IG9mIHRoZSBzcGVjaWZpZWQgVVJJIHN0cmluZy4KLSAqCi0gKiBTaW5jZTogMS4xLjEKLSAqLwot
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfbG9hZF91cmkoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29u
c3QgZ2NoYXIqIHVyaSkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklF
Vyh3ZWJWaWV3KSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCh1cmkpOwotCi0gICAgV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lID0gd2ViVmlldy0+cHJpdi0+bWFpbkZyYW1lOwotICAgIHdlYmtpdF93ZWJf
ZnJhbWVfbG9hZF91cmkoZnJhbWUsIHVyaSk7Ci19Ci0KLS8qKgotICAqIHdlYmtpdF93ZWJfdmll
d19sb2FkX3N0cmluZzoKLSAgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAgKiBAY29u
dGVudDogYW4gVVJJIHN0cmluZwotICAqIEBtaW1lX3R5cGU6IHRoZSBNSU1FIHR5cGUsIG9yICVO
VUxMCi0gICogQGVuY29kaW5nOiB0aGUgZW5jb2RpbmcsIG9yICVOVUxMCi0gICogQGJhc2VfdXJp
OiB0aGUgYmFzZSBVUkkgZm9yIHJlbGF0aXZlIGxvY2F0aW9ucwotICAqCi0gICogUmVxdWVzdHMg
bG9hZGluZyBvZiB0aGUgZ2l2ZW4gQGNvbnRlbnQgd2l0aCB0aGUgc3BlY2lmaWVkIEBtaW1lX3R5
cGUsCi0gICogQGVuY29kaW5nIGFuZCBAYmFzZV91cmkuCi0gICoKLSAgKiBJZiBAbWltZV90eXBl
IGlzICVOVUxMLCAidGV4dC9odG1sIiBpcyBhc3N1bWVkLgotICAqCi0gICogSWYgQGVuY29kaW5n
IGlzICVOVUxMLCAiVVRGLTgiIGlzIGFzc3VtZWQuCi0gICovCi12b2lkIHdlYmtpdF93ZWJfdmll
d19sb2FkX3N0cmluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogY29udGVu
dCwgY29uc3QgZ2NoYXIqIG1pbWVUeXBlLCBjb25zdCBnY2hhciogZW5jb2RpbmcsIGNvbnN0IGdj
aGFyKiBiYXNlVXJpKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKGNvbnRlbnQpOwotCi0gICAgV2ViS2l0
V2ViRnJhbWUqIGZyYW1lID0gd2ViVmlldy0+cHJpdi0+bWFpbkZyYW1lOwotICAgIHdlYmtpdF93
ZWJfZnJhbWVfbG9hZF9zdHJpbmcoZnJhbWUsIGNvbnRlbnQsIG1pbWVUeXBlLCBlbmNvZGluZywg
YmFzZVVyaSk7Ci19Ci0vKioKLSAqIHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWxfc3RyaW5nOgot
ICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKiBAY29udGVudDogYW4gVVJJIHN0cmlu
ZwotICogQGJhc2VfdXJpOiB0aGUgYmFzZSBVUkkgZm9yIHJlbGF0aXZlIGxvY2F0aW9ucwotICoK
LSAqIFJlcXVlc3RzIGxvYWRpbmcgb2YgdGhlIGdpdmVuIEBjb250ZW50IHdpdGggdGhlIHNwZWNp
ZmllZCBAYmFzZV91cmkuCi0gKgotICogRGVwcmVjYXRlZDogMS4xLjE6IFVzZSB3ZWJraXRfd2Vi
X3ZpZXdfbG9hZF9zdHJpbmcoKSBpbnN0ZWFkLgotICovCi12b2lkIHdlYmtpdF93ZWJfdmlld19s
b2FkX2h0bWxfc3RyaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBjb250
ZW50LCBjb25zdCBnY2hhciogYmFzZVVyaSkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJ
VF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChjb250ZW50KTsK
LQotICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3N0cmluZyh3ZWJWaWV3LCBjb250ZW50LCBOVUxM
LCBOVUxMLCBiYXNlVXJpKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9yZXF1
ZXN0OgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKiBAcmVxdWVzdDogYSAjV2Vi
S2l0TmV0d29ya1JlcXVlc3QKLSAqCi0gKiBSZXF1ZXN0cyBsb2FkaW5nIG9mIHRoZSBzcGVjaWZp
ZWQgYXN5bmNocm9ub3VzIGNsaWVudCByZXF1ZXN0LgotICoKLSAqIENyZWF0ZXMgYSBwcm92aXNp
b25hbCBkYXRhIHNvdXJjZSB0aGF0IHdpbGwgdHJhbnNpdGlvbiB0byBhIGNvbW1pdHRlZCBkYXRh
Ci0gKiBzb3VyY2Ugb25jZSBhbnkgZGF0YSBoYXMgYmVlbiByZWNlaXZlZC4gVXNlIHdlYmtpdF93
ZWJfdmlld19zdG9wX2xvYWRpbmcoKSB0bwotICogc3RvcCB0aGUgbG9hZC4KLSAqCi0gKiBTaW5j
ZTogMS4xLjEKLSAqLwotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9yZXF1ZXN0KFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQotewotICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKLSAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19ORVRXT1JLX1JFUVVFU1QocmVxdWVzdCkpOwotCi0gICAgV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lID0gd2ViVmlldy0+cHJpdi0+bWFpbkZyYW1lOwotICAgIHdlYmtp
dF93ZWJfZnJhbWVfbG9hZF9yZXF1ZXN0KGZyYW1lLCByZXF1ZXN0KTsKLX0KLQotLyoqCi0gKiB3
ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJW
aWV3Ci0gKgotICogU3RvcHMgYW55IG9uZ29pbmcgbG9hZCBpbiB0aGUgQHdlYl92aWV3LgotICoq
Lwotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykp
OwotCi0gICAgY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuc3RvcEZvclVzZXJD
YW5jZWwoKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQ6Ci0gKiBA
d2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqIEB0ZXh0OiBhIHN0cmluZyB0byBsb29rIGZv
cgotICogQGZvcndhcmQ6IHdoZXRoZXIgdG8gZmluZCBmb3J3YXJkIG9yIG5vdAotICogQGNhc2Vf
c2Vuc2l0aXZlOiB3aGV0aGVyIHRvIHJlc3BlY3QgdGhlIGNhc2Ugb2YgdGV4dAotICogQHdyYXA6
IHdoZXRoZXIgdG8gY29udGludWUgbG9va2luZyBhdCB0aGUgYmVnaW5uaW5nIGFmdGVyIHJlYWNo
aW5nIHRoZSBlbmQKLSAqCi0gKiBMb29rcyBmb3IgYSBzcGVjaWZpZWQgc3RyaW5nIGluc2lkZSAj
d2ViX3ZpZXcuCi0gKgotICogUmV0dXJuIHZhbHVlOiAlVFJVRSBvbiBzdWNjZXNzIG9yICVGQUxT
RSBvbiBmYWlsdXJlCi0gKi8KLWdib29sZWFuIHdlYmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dChX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNl
U2Vuc2l0aXZlLCBnYm9vbGVhbiBmb3J3YXJkLCBnYm9vbGVhbiBzaG91bGRXcmFwKQotewotICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0Up
OwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgRkFMU0UpOwotCi0gICAgRmluZE9w
dGlvbnMgb3B0aW9ucyA9IChjYXNlU2Vuc2l0aXZlID8gMCA6IENhc2VJbnNlbnNpdGl2ZSkgfCAo
Zm9yd2FyZCA/IDAgOiBCYWNrd2FyZHMpIHwgKHNob3VsZFdyYXAgPyBXcmFwQXJvdW5kIDogMCk7
Ci0gICAgcmV0dXJuIGNvcmUod2ViVmlldyktPmZpbmRTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOChz
dHJpbmcpLCBvcHRpb25zKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfbWFya190ZXh0
X21hdGNoZXM6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqIEBzdHJpbmc6IGEg
c3RyaW5nIHRvIGxvb2sgZm9yCi0gKiBAY2FzZV9zZW5zaXRpdmU6IHdoZXRoZXIgdG8gcmVzcGVj
dCB0aGUgY2FzZSBvZiB0ZXh0Ci0gKiBAbGltaXQ6IHRoZSBtYXhpbXVtIG51bWJlciBvZiBzdHJp
bmdzIHRvIGxvb2sgZm9yIG9yIDAgZm9yIGFsbAotICoKLSAqIEF0dGVtcHRzIHRvIGhpZ2hsaWdo
dCBhbGwgb2NjdXJhbmNlcyBvZiAjc3RyaW5nIGluc2lkZSAjd2ViX3ZpZXcuCi0gKgotICogUmV0
dXJuIHZhbHVlOiB0aGUgbnVtYmVyIG9mIHN0cmluZ3MgaGlnaGxpZ2h0ZWQKLSAqLwotZ3VpbnQg
d2Via2l0X3dlYl92aWV3X21hcmtfdGV4dF9tYXRjaGVzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IGNvbnN0IGdjaGFyKiBzdHJpbmcsIGdib29sZWFuIGNhc2VTZW5zaXRpdmUsIGd1aW50IGxpbWl0
KQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3
KSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc3RyaW5nLCAwKTsKLQotICAgIFRleHRD
YXNlU2Vuc2l0aXZpdHkgY2FzZVNlbnNpdGl2aXR5ID0gY2FzZVNlbnNpdGl2ZSA/IFRleHRDYXNl
U2Vuc2l0aXZlIDogVGV4dENhc2VJbnNlbnNpdGl2ZTsKLQotICAgIHJldHVybiBjb3JlKHdlYlZp
ZXcpLT5tYXJrQWxsTWF0Y2hlc0ZvclRleHQoU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpLCBjYXNl
U2Vuc2l0aXZpdHksIGZhbHNlLCBsaW1pdCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3
X3NldF9oaWdobGlnaHRfdGV4dF9tYXRjaGVzOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJW
aWV3Ci0gKiBAaGlnaGxpZ2h0OiB3aGV0aGVyIHRvIGhpZ2hsaWdodCB0ZXh0IG1hdGNoZXMKLSAq
Ci0gKiBIaWdobGlnaHRzIHRleHQgbWF0Y2hlcyBwcmV2aW91c2x5IG1hcmtlZCBieSB3ZWJraXRf
d2ViX3ZpZXdfbWFya190ZXh0X21hdGNoZXMuCi0gKi8KLXZvaWQgd2Via2l0X3dlYl92aWV3X3Nl
dF9oaWdobGlnaHRfdGV4dF9tYXRjaGVzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFu
IHNob3VsZEhpZ2hsaWdodCkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJf
VklFVyh3ZWJWaWV3KSk7Ci0KLSAgICBGcmFtZSogZnJhbWUgPSAmY29yZSh3ZWJWaWV3KS0+bWFp
bkZyYW1lKCk7Ci0gICAgZG8gewotICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuc2V0TWFya2VkVGV4
dE1hdGNoZXNBcmVIaWdobGlnaHRlZChzaG91bGRIaWdobGlnaHQpOwotICAgICAgICBmcmFtZSA9
IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0V2l0aFdyYXAoZmFsc2UpOwotICAgIH0gd2hpbGUg
KGZyYW1lKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hl
czoKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIFJlbW92ZXMgaGlnaGxp
Z2h0aW5nIHByZXZpb3VzbHkgc2V0IGJ5IHdlYmtpdF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hl
cy4KLSAqLwotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9W
SUVXKHdlYlZpZXcpKTsKLQotICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT51bm1hcmtBbGxUZXh0
TWF0Y2hlcygpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZToK
LSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIFJldHVybnMgdGhlIG1haW4g
ZnJhbWUgZm9yIHRoZSBAd2ViX3ZpZXcuCi0gKgotICogUmV0dXJuIHZhbHVlOiAodHJhbnNmZXIg
bm9uZSk6IHRoZSBtYWluICNXZWJLaXRXZWJGcmFtZSBmb3IgQHdlYl92aWV3Ci0gKi8KLVdlYktp
dFdlYkZyYW1lKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUoV2ViS2l0V2ViVmlldyog
d2ViVmlldykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVco
d2ViVmlldyksIE5VTEwpOwotCi0gICAgcmV0dXJuIHdlYlZpZXctPnByaXYtPm1haW5GcmFtZTsK
LX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ZvY3VzZWRfZnJhbWU6Ci0gKiBAd2Vi
X3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqCi0gKiBSZXR1cm5zIHRoZSBmcmFtZSB0aGF0IGhh
cyBmb2N1cyBvciBhbiBhY3RpdmUgdGV4dCBzZWxlY3Rpb24uCi0gKgotICogUmV0dXJuIHZhbHVl
OiAodHJhbnNmZXIgbm9uZSk6IFRoZSBmb2N1c2VkICNXZWJLaXRXZWJGcmFtZSBvciAlTlVMTCBp
ZiBubyBmcmFtZSBpcyBmb2N1c2VkCi0gKi8KLVdlYktpdFdlYkZyYW1lKiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2ZvY3VzZWRfZnJhbWUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIE5VTEwpOwotCi0g
ICAgRnJhbWUqIGZvY3VzZWRGcmFtZSA9IGNvcmUod2ViVmlldyktPmZvY3VzQ29udHJvbGxlcigp
LmZvY3VzZWRGcmFtZSgpOwotICAgIHJldHVybiBraXQoZm9jdXNlZEZyYW1lKTsKLX0KLQotdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9zY3JpcHQoV2ViS2l0V2ViVmlldyogd2ViVmlldywg
Y29uc3QgZ2NoYXIqIHNjcmlwdCkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19X
RUJfVklFVyh3ZWJWaWV3KSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChzY3JpcHQpOwotCi0gICAg
Y29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXhlY3V0ZVNjcmlwdChTdHJpbmc6
OmZyb21VVEY4KHNjcmlwdCksIHRydWUpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfdmlld19j
YW5fY3V0X2NsaXBib2FyZDoKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAq
IERldGVybWluZXMgd2hldGhlciBvciBub3QgaXQgaXMgY3VycmVudGx5IHBvc3NpYmxlIHRvIGN1
dCB0byB0aGUgY2xpcGJvYXJkLgotICoKLSAqIFJldHVybiB2YWx1ZTogJVRSVUUgaWYgYSBzZWxl
Y3Rpb24gY2FuIGJlIGN1dCwgJUZBTFNFIGlmIG5vdAotICovCi1nYm9vbGVhbiB3ZWJraXRfd2Vi
X3ZpZXdfY2FuX2N1dF9jbGlwYm9hcmQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsK
LQotICAgIEZyYW1lJiBmcmFtZSA9IGNvcmUod2ViVmlldyktPmZvY3VzQ29udHJvbGxlcigpLmZv
Y3VzZWRPck1haW5GcmFtZSgpOwotICAgIHJldHVybiBmcmFtZS5lZGl0b3IoKS5jYW5DdXQoKSB8
fCBmcmFtZS5lZGl0b3IoKS5jYW5ESFRNTEN1dCgpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJf
dmlld19jYW5fY29weV9jbGlwYm9hcmQ6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcK
LSAqCi0gKiBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IGl0IGlzIGN1cnJlbnRseSBwb3NzaWJs
ZSB0byBjb3B5IHRvIHRoZSBjbGlwYm9hcmQuCi0gKgotICogUmV0dXJuIHZhbHVlOiAlVFJVRSBp
ZiBhIHNlbGVjdGlvbiBjYW4gYmUgY29waWVkLCAlRkFMU0UgaWYgbm90Ci0gKi8KLWdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19jYW5fY29weV9jbGlwYm9hcmQoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmll
dyksIEZBTFNFKTsKLQotICAgIEZyYW1lJiBmcmFtZSA9IGNvcmUod2ViVmlldyktPmZvY3VzQ29u
dHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIHJldHVybiBmcmFtZS5lZGl0b3Io
KS5jYW5Db3B5KCkgfHwgZnJhbWUuZWRpdG9yKCkuY2FuREhUTUxDb3B5KCk7Ci19Ci0KLS8qKgot
ICogd2Via2l0X3dlYl92aWV3X2Nhbl9wYXN0ZV9jbGlwYm9hcmQ6Ci0gKiBAd2ViX3ZpZXc6IGEg
I1dlYktpdFdlYlZpZXcKLSAqCi0gKiBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IGl0IGlzIGN1
cnJlbnRseSBwb3NzaWJsZSB0byBwYXN0ZSBmcm9tIHRoZSBjbGlwYm9hcmQuCi0gKgotICogUmV0
dXJuIHZhbHVlOiAlVFJVRSBpZiBhIHNlbGVjdGlvbiBjYW4gYmUgcGFzdGVkLCAlRkFMU0UgaWYg
bm90Ci0gKi8KLWdib29sZWFuIHdlYmtpdF93ZWJfdmlld19jYW5fcGFzdGVfY2xpcGJvYXJkKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7Ci0KLSAgICBGcmFtZSYgZnJhbWUgPSBjb3Jl
KHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBy
ZXR1cm4gZnJhbWUuZWRpdG9yKCkuY2FuUGFzdGUoKSB8fCBmcmFtZS5lZGl0b3IoKS5jYW5ESFRN
TFBhc3RlKCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2N1dF9jbGlwYm9hcmQ6Ci0g
KiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqCi0gKiBDdXRzIHRoZSBjdXJyZW50IHNl
bGVjdGlvbiBpbnNpZGUgdGhlIEB3ZWJfdmlldyB0byB0aGUgY2xpcGJvYXJkLgotICovCi12b2lk
IHdlYmtpdF93ZWJfdmlld19jdXRfY2xpcGJvYXJkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17
Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotCi0g
ICAgaWYgKHdlYmtpdF93ZWJfdmlld19jYW5fY3V0X2NsaXBib2FyZCh3ZWJWaWV3KSkKLSAgICAg
ICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tDVVRfQ0xJ
UEJPQVJEXSwgMCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2NvcHlfY2xpcGJvYXJk
OgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogQ29waWVzIHRoZSBjdXJy
ZW50IHNlbGVjdGlvbiBpbnNpZGUgdGhlIEB3ZWJfdmlldyB0byB0aGUgY2xpcGJvYXJkLgotICov
Ci12b2lkIHdlYmtpdF93ZWJfdmlld19jb3B5X2NsaXBib2FyZChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcp
KTsKLQotICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfY2FuX2NvcHlfY2xpcGJvYXJkKHdlYlZpZXcp
KQotICAgICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHdlYmtpdF93ZWJfdmlld19zaWduYWxz
W0NPUFlfQ0xJUEJPQVJEXSwgMCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X3Bhc3Rl
X2NsaXBib2FyZDoKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIFBhc3Rl
cyB0aGUgY3VycmVudCBjb250ZW50cyBvZiB0aGUgY2xpcGJvYXJkIHRvIHRoZSBAd2ViX3ZpZXcu
Ci0gKi8KLXZvaWQgd2Via2l0X3dlYl92aWV3X3Bhc3RlX2NsaXBib2FyZChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpKTsKLQotICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfY2FuX3Bhc3RlX2NsaXBib2FyZCh3
ZWJWaWV3KSkKLSAgICAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXdf
c2lnbmFsc1tQQVNURV9DTElQQk9BUkRdLCAwKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3Zp
ZXdfZGVsZXRlX3NlbGVjdGlvbjoKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoK
LSAqIERlbGV0ZXMgdGhlIGN1cnJlbnQgc2VsZWN0aW9uIGluc2lkZSB0aGUgQHdlYl92aWV3Lgot
ICovCi12b2lkIHdlYmtpdF93ZWJfdmlld19kZWxldGVfc2VsZWN0aW9uKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2Vi
VmlldykpOwotCi0gICAgRnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9s
bGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgZnJhbWUuZWRpdG9yKCkucGVyZm9ybURl
bGV0ZSgpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfdmlld19oYXNfc2VsZWN0aW9uOgotICog
QHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRl
eHQgd2FzIHNlbGVjdGVkLgotICoKLSAqIFJldHVybiB2YWx1ZTogJVRSVUUgaWYgdGhlcmUgaXMg
c2VsZWN0ZWQgdGV4dCwgJUZBTFNFIGlmIG5vdAotICovCi1nYm9vbGVhbiB3ZWJraXRfd2ViX3Zp
ZXdfaGFzX3NlbGVjdGlvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOwotCi0gICAg
cmV0dXJuICFjb3JlKHdlYlZpZXcpLT5zZWxlY3Rpb24oKS5pc05vbmUoKTsKLX0KLQotLyoqCi0g
KiB3ZWJraXRfd2ViX3ZpZXdfc2VsZWN0X2FsbDoKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2Vi
VmlldwotICoKLSAqIEF0dGVtcHRzIHRvIHNlbGVjdCBldmVyeXRoaW5nIGluc2lkZSB0aGUgQHdl
Yl92aWV3LgotICovCi12b2lkIHdlYmtpdF93ZWJfdmlld19zZWxlY3RfYWxsKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVco
d2ViVmlldykpOwotCi0gICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCB3ZWJraXRfd2ViX3ZpZXdf
c2lnbmFsc1s6OlNFTEVDVF9BTExdLCAwKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2VkaXRhYmxlOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogUmV0
dXJucyB3aGV0aGVyIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZWRpdCB0aGUgZG9jdW1lbnQuCi0g
KgotICogUmV0dXJucyAlVFJVRSBpZiBAd2ViX3ZpZXcgYWxsb3dzIHRoZSB1c2VyIHRvIGVkaXQg
dGhlIEhUTUwgZG9jdW1lbnQsICVGQUxTRSBpZgotICogaXQgZG9lc24ndC4gWW91IGNhbiBjaGFu
Z2UgQHdlYl92aWV3J3MgZG9jdW1lbnQgcHJvZ3JhbW1hdGljYWxseSByZWdhcmRsZXNzIG9mCi0g
KiB0aGlzIHNldHRpbmcuCi0gKgotICogUmV0dXJuIHZhbHVlOiBhICNnYm9vbGVhbiBpbmRpY2F0
aW5nIHRoZSBlZGl0YWJsZSBzdGF0ZQotICovCi1nYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2VkaXRhYmxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7Ci0KLSAgICByZXR1cm4g
Y29yZSh3ZWJWaWV3KS0+aXNFZGl0YWJsZSgpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfdmll
d19zZXRfZWRpdGFibGU6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqIEBmbGFn
OiBhICNnYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBlZGl0YWJsZSBzdGF0ZQotICoKLSAqIFNldHMg
d2hldGhlciBAd2ViX3ZpZXcgYWxsb3dzIHRoZSB1c2VyIHRvIGVkaXQgaXRzIEhUTUwgZG9jdW1l
bnQuCi0gKgotICogSWYgQGZsYWcgaXMgJVRSVUUsIEB3ZWJfdmlldyBhbGxvd3MgdGhlIHVzZXIg
dG8gZWRpdCB0aGUgZG9jdW1lbnQuIElmIEBmbGFnIGlzCi0gKiAlRkFMU0UsIGFuIGVsZW1lbnQg
aW4gQHdlYl92aWV3J3MgZG9jdW1lbnQgY2FuIG9ubHkgYmUgZWRpdGVkIGlmIHRoZQotICogQ09O
VEVOVEVESVRBQkxFIGF0dHJpYnV0ZSBoYXMgYmVlbiBzZXQgb24gdGhlIGVsZW1lbnQgb3Igb25l
IG9mIGl0cyBwYXJlbnQKLSAqIGVsZW1lbnRzLiBZb3UgY2FuIGNoYW5nZSBAd2ViX3ZpZXcncyBk
b2N1bWVudCBwcm9ncmFtbWF0aWNhbGx5IHJlZ2FyZGxlc3Mgb2YKLSAqIHRoaXMgc2V0dGluZy4g
QnkgZGVmYXVsdCBhICNXZWJLaXRXZWJWaWV3IGlzIG5vdCBlZGl0YWJsZS4KLQotICogTm9ybWFs
bHksIGFuIEhUTUwgZG9jdW1lbnQgaXMgbm90IGVkaXRhYmxlIHVubGVzcyB0aGUgZWxlbWVudHMg
d2l0aGluIHRoZQotICogZG9jdW1lbnQgYXJlIGVkaXRhYmxlLiBUaGlzIGZ1bmN0aW9uIHByb3Zp
ZGVzIGEgbG93LWxldmVsIHdheSB0byBtYWtlIHRoZQotICogY29udGVudHMgb2YgYSAjV2ViS2l0
V2ViVmlldyBlZGl0YWJsZSB3aXRob3V0IGFsdGVyaW5nIHRoZSBkb2N1bWVudCBvciBET00KLSAq
IHN0cnVjdHVyZS4KLSAqLwotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIGZsYWcpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotCi0gICAgZmxhZyA9IGZsYWcgIT0gRkFM
U0U7Ci0gICAgaWYgKGZsYWcgPT0gd2Via2l0X3dlYl92aWV3X2dldF9lZGl0YWJsZSh3ZWJWaWV3
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29yZSh3ZWJWaWV3KS0+c2V0RWRpdGFibGUoZmxh
Zyk7Ci0KLSAgICBpZiAoZmxhZykgewotICAgICAgICBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUo
KS5lZGl0b3IoKS5hcHBseUVkaXRpbmdTdHlsZVRvQm9keUVsZW1lbnQoKTsKLSAgICAgICAgLy8g
VE9ETzogSWYgdGhlIFdlYktpdFdlYlZpZXcgaXMgbWFkZSBlZGl0YWJsZSBhbmQgdGhlIHNlbGVj
dGlvbiBpcyBlbXB0eSwgc2V0IGl0IHRvIHNvbWV0aGluZy4KLSAgICAgICAgLy9pZiAoIXdlYmtp
dF93ZWJfdmlld19nZXRfc2VsZWN0ZWRfZG9tX3JhbmdlKHdlYlZpZXcpKQotICAgICAgICAvLyAg
ICBtYWluRnJhbWUtPnNldFNlbGVjdGlvbkZyb21Ob25lKCk7Ci0gICAgfQotICAgIGdfb2JqZWN0
X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwgImVkaXRhYmxlIik7Ci19Ci0KLS8qKgotICogd2Vi
a2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0OgotICogQHdlYl92aWV3OiBhICNXZWJL
aXRXZWJWaWV3Ci0gKgotICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBsaXN0IG9mIHRhcmdl
dHMgdGhpcyAjV2ViS2l0V2ViVmlldyBjYW4KLSAqIHByb3ZpZGUgZm9yIGNsaXBib2FyZCBjb3B5
aW5nIGFuZCBhcyBETkQgc291cmNlLiBUaGUgdGFyZ2V0cyBpbiB0aGUgbGlzdCBhcmUKLSAqIGFk
ZGVkIHdpdGggdmFsdWVzIGZyb20gdGhlICNXZWJLaXRXZWJWaWV3VGFyZ2V0SW5mbyBlbnVtLAot
ICogdXNpbmcgZ3RrX3RhcmdldF9saXN0X2FkZCgpIGFuZAotICogZ3RrX3RhcmdldF9saXN0X2Fk
ZF90ZXh0X3RhcmdldHMoKS4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6IHRoZSAjR3RrVGFyZ2V0TGlz
dAotICoqLwotR3RrVGFyZ2V0TGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9s
aXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0
TGlzdCA9IGFkb3B0R1JlZihjb3B5R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZh
bHVlc1RvV2ViS2l0RW51bVZhbHVlcyhQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2Fy
ZEhlbHBlcigpLT50YXJnZXRMaXN0KCkpKTsKLSAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dGFy
Z2V0TGlzdC5nZXQoKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bhc3RlX3Rh
cmdldF9saXN0OgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogVGhpcyBm
dW5jdGlvbiByZXR1cm5zIHRoZSBsaXN0IG9mIHRhcmdldHMgdGhpcyAjV2ViS2l0V2ViVmlldyBj
YW4KLSAqIHByb3ZpZGUgZm9yIGNsaXBib2FyZCBwYXN0aW5nIGFuZCBhcyBETkQgZGVzdGluYXRp
b24uIFRoZSB0YXJnZXRzIGluIHRoZSBsaXN0IGFyZQotICogYWRkZWQgd2l0aCB2YWx1ZXMgZnJv
bSB0aGUgI1dlYktpdFdlYlZpZXdUYXJnZXRJbmZvIGVudW0sCi0gKiB1c2luZyBndGtfdGFyZ2V0
X2xpc3RfYWRkKCkgYW5kCi0gKiBndGtfdGFyZ2V0X2xpc3RfYWRkX3RleHRfdGFyZ2V0cygpLgot
ICoKLSAqIFJldHVybiB2YWx1ZTogdGhlICNHdGtUYXJnZXRMaXN0Ci0gKiovCi1HdGtUYXJnZXRM
aXN0KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Bhc3RlX3RhcmdldF9saXN0KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCi17Ci0gICAgd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdCA9IGFkb3B0R1JlZihj
b3B5R3RrVGFyZ2V0TGlzdENvbnZlcnRpbmdXZWJDb3JlRW51bVZhbHVlc1RvV2ViS2l0RW51bVZh
bHVlcyhQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBlcigpLT50YXJnZXRM
aXN0KCkpKTsKLSAgICByZXR1cm4gd2ViVmlldy0+cHJpdi0+dGFyZ2V0TGlzdC5nZXQoKTsKLX0K
LQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfY2FuX3Nob3dfbWltZV90eXBlOgotICogQHdlYl92
aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKiBAbWltZV90eXBlOiBhIE1JTUUgdHlwZQotICoKLSAq
IFRoaXMgZnVuY3Rpb25zIHJldHVybnMgd2hldGhlciBvciBub3QgYSBNSU1FIHR5cGUgY2FuIGJl
IGRpc3BsYXllZCB1c2luZyB0aGlzIHZpZXcuCi0gKgotICogUmV0dXJuIHZhbHVlOiBhICNnYm9v
bGVhbiBpbmRpY2F0aW5nIGlmIHRoZSBNSU1FIHR5cGUgY2FuIGJlIGRpc3BsYXllZAotICoKLSAq
IFNpbmNlOiAxLjAuMwotICoqLwotCi1nYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfY2FuX3Nob3df
bWltZV90eXBlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBtaW1lVHlwZSkK
LXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyks
IEZBTFNFKTsKLQotICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUod2Via2l0X3dlYl92aWV3X2dldF9t
YWluX2ZyYW1lKHdlYlZpZXcpKTsKLSAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgp
LmNhblNob3dNSU1FVHlwZShTdHJpbmc6OmZyb21VVEY4KG1pbWVUeXBlKSk7Ci19Ci0KLS8qKgot
ICogd2Via2l0X3dlYl92aWV3X2dldF90cmFuc3BhcmVudDoKLSAqIEB3ZWJfdmlldzogYSAjV2Vi
S2l0V2ViVmlldwotICoKLSAqIFJldHVybnMgd2hldGhlciB0aGUgI1dlYktpdFdlYlZpZXcgaGFz
IGEgdHJhbnNwYXJlbnQgYmFja2dyb3VuZC4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6ICVGQUxTRSB3
aGVuIHRoZSAjV2ViS2l0V2ViVmlldyBkcmF3cyBhIHNvbGlkIGJhY2tncm91bmQKLSAqICh0aGUg
ZGVmYXVsdCksIG90aGVyd2lzZSAlVFJVRS4KLSAqLwotZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3
X2dldF90cmFuc3BhcmVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOwotCi0gICAg
V2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwotICAgIHJldHVybiBw
cml2LT50cmFuc3BhcmVudDsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfc2V0X3RyYW5z
cGFyZW50OgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKiBAZmxhZzogd2hldGhl
ciBvciBub3QgQHdlYl92aWV3IHNob3VsZCBiZSB0cmFuc3BhcmVudAotICoKLSAqIFNldHMgd2hl
dGhlciB0aGUgI1dlYktpdFdlYlZpZXcgaGFzIGEgdHJhbnNwYXJlbnQgYmFja2dyb3VuZC4KLSAq
Ci0gKiBQYXNzICVGQUxTRSB0byBoYXZlIHRoZSAjV2ViS2l0V2ViVmlldyBkcmF3IGEgc29saWQg
YmFja2dyb3VuZAotICogKHRoZSBkZWZhdWx0KSwgb3RoZXJ3aXNlICVUUlVFLgotICovCi12b2lk
IHdlYmtpdF93ZWJfdmlld19zZXRfdHJhbnNwYXJlbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywg
Z2Jvb2xlYW4gZmxhZykKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklF
Vyh3ZWJWaWV3KSk7Ci0KLSAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXct
PnByaXY7Ci0gICAgcHJpdi0+dHJhbnNwYXJlbnQgPSBmbGFnOwotCi0gICAgLy8gVE9ETzogVGhp
cyBuZWVkcyB0byBiZSBtYWRlIHBlcnNpc3RlbnQgb3IgaXQgY291bGQgYmVjb21lIGEgcHJvYmxl
bSB3aGVuCi0gICAgLy8gdGhlIG1haW4gZnJhbWUgaXMgcmVwbGFjZWQuCi0gICAgY29yZSh3ZWJW
aWV3KS0+bWFpbkZyYW1lKCkudmlldygpLT5zZXRUcmFuc3BhcmVudChmbGFnKTsKLSAgICBnX29i
amVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJ0cmFuc3BhcmVudCIpOwotfQotCi0vKioK
LSAqIHdlYmtpdF93ZWJfdmlld19nZXRfem9vbV9sZXZlbDoKLSAqIEB3ZWJfdmlldzogYSAjV2Vi
S2l0V2ViVmlldwotICoKLSAqIFJldHVybnMgdGhlIHpvb20gbGV2ZWwgb2YgQHdlYl92aWV3LCBp
LmUuIHRoZSBmYWN0b3IgYnkgd2hpY2ggZWxlbWVudHMgaW4KLSAqIHRoZSBwYWdlIGFyZSBzY2Fs
ZWQgd2l0aCByZXNwZWN0IHRvIHRoZWlyIG9yaWdpbmFsIHNpemUuCi0gKiBJZiB0aGUgImZ1bGwt
Y29udGVudC16b29tIiBwcm9wZXJ0eSBpcyBzZXQgdG8gJUZBTFNFICh0aGUgZGVmYXVsdCkKLSAq
IHRoZSB6b29tIGxldmVsIGNoYW5nZXMgdGhlIHRleHQgc2l6ZSwgb3IgaWYgJVRSVUUsIHNjYWxl
cyBhbGwKLSAqIGVsZW1lbnRzIGluIHRoZSBwYWdlLgotICoKLSAqIFJldHVybiB2YWx1ZTogdGhl
IHpvb20gbGV2ZWwgb2YgQHdlYl92aWV3Ci0gKgotICogU2luY2U6IDEuMC4xCi0gKi8KLWdmbG9h
dCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3pvb21fbGV2ZWwoV2ViS2l0V2ViVmlldyogd2ViVmlldykK
LXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyks
IDEuMGYpOwotCi0gICAgRnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7
Ci0gICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwotICAgIHJl
dHVybiBwcml2LT56b29tRnVsbENvbnRlbnQgPyBmcmFtZS5wYWdlWm9vbUZhY3RvcigpIDogZnJh
bWUudGV4dFpvb21GYWN0b3IoKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2Fw
cGx5X3pvb21fbGV2ZWwoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2Zsb2F0IHpvb21MZXZlbCkK
LXsKLSAgICBGcmFtZSYgZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKTsKLQotICAg
IFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKLSAgICBpZiAocHJp
di0+em9vbUZ1bGxDb250ZW50KQotICAgICAgICBmcmFtZS5zZXRQYWdlWm9vbUZhY3Rvcih6b29t
TGV2ZWwpOwotICAgIGVsc2UKLSAgICAgICAgZnJhbWUuc2V0VGV4dFpvb21GYWN0b3Ioem9vbUxl
dmVsKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfc2V0X3pvb21fbGV2ZWw6Ci0gKiBA
d2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqIEB6b29tX2xldmVsOiB0aGUgbmV3IHpvb20g
bGV2ZWwKLSAqCi0gKiBTZXRzIHRoZSB6b29tIGxldmVsIG9mIEB3ZWJfdmlldywgaS5lLiB0aGUg
ZmFjdG9yIGJ5IHdoaWNoIGVsZW1lbnRzIGluCi0gKiB0aGUgcGFnZSBhcmUgc2NhbGVkIHdpdGgg
cmVzcGVjdCB0byB0aGVpciBvcmlnaW5hbCBzaXplLgotICogSWYgdGhlICJmdWxsLWNvbnRlbnQt
em9vbSIgcHJvcGVydHkgaXMgc2V0IHRvICVGQUxTRSAodGhlIGRlZmF1bHQpCi0gKiB0aGUgem9v
bSBsZXZlbCBjaGFuZ2VzIHRoZSB0ZXh0IHNpemUsIG9yIGlmICVUUlVFLCBzY2FsZXMgYWxsCi0g
KiBlbGVtZW50cyBpbiB0aGUgcGFnZS4KLSAqCi0gKiBTaW5jZTogMS4wLjEKLSAqLwotdm9pZCB3
ZWJraXRfd2ViX3ZpZXdfc2V0X3pvb21fbGV2ZWwoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2Zs
b2F0IHpvb21MZXZlbCkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklF
Vyh3ZWJWaWV3KSk7Ci0KLSAgICB3ZWJraXRfd2ViX3ZpZXdfYXBwbHlfem9vbV9sZXZlbCh3ZWJW
aWV3LCB6b29tTGV2ZWwpOwotICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwg
Inpvb20tbGV2ZWwiKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfem9vbV9pbjoKLSAq
IEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIEluY3JlYXNlcyB0aGUgem9vbSBs
ZXZlbCBvZiBAd2ViX3ZpZXcuIFRoZSBjdXJyZW50IHpvb20KLSAqIGxldmVsIGlzIGluY3JlbWVu
dGVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUgInpvb20tc3RlcCIKLSAqIHByb3BlcnR5IG9mIHRoZSAj
V2ViS2l0V2ViU2V0dGluZ3MgYXNzb2NpYXRlZCB3aXRoIEB3ZWJfdmlldy4KLSAqCi0gKiBTaW5j
ZTogMS4wLjEKLSAqLwotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfem9vbV9pbihXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpKTsKLQotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJp
djsKLSAgICBnZmxvYXQgem9vbU11bHRpcGxpZXJSYXRpbzsKLSAgICBnX29iamVjdF9nZXQocHJp
di0+d2ViU2V0dGluZ3MuZ2V0KCksICJ6b29tLXN0ZXAiLCAmem9vbU11bHRpcGxpZXJSYXRpbywg
TlVMTCk7Ci0KLSAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3pvb21fbGV2ZWwod2ViVmlldywgd2Vi
a2l0X3dlYl92aWV3X2dldF96b29tX2xldmVsKHdlYlZpZXcpICsgem9vbU11bHRpcGxpZXJSYXRp
byk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X3pvb21fb3V0OgotICogQHdlYl92aWV3
OiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogRGVjcmVhc2VzIHRoZSB6b29tIGxldmVsIG9mIEB3
ZWJfdmlldy4gVGhlIGN1cnJlbnQgem9vbQotICogbGV2ZWwgaXMgZGVjcmVtZW50ZWQgYnkgdGhl
IHZhbHVlIG9mIHRoZSAiem9vbS1zdGVwIgotICogcHJvcGVydHkgb2YgdGhlICNXZWJLaXRXZWJT
ZXR0aW5ncyBhc3NvY2lhdGVkIHdpdGggQHdlYl92aWV3LgotICoKLSAqIFNpbmNlOiAxLjAuMQot
ICovCi12b2lkIHdlYmtpdF93ZWJfdmlld196b29tX291dChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsK
LQotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKLSAgICBn
ZmxvYXQgem9vbU11bHRpcGxpZXJSYXRpbzsKLSAgICBnX29iamVjdF9nZXQocHJpdi0+d2ViU2V0
dGluZ3MuZ2V0KCksICJ6b29tLXN0ZXAiLCAmem9vbU11bHRpcGxpZXJSYXRpbywgTlVMTCk7Ci0K
LSAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3pvb21fbGV2ZWwod2ViVmlldywgd2Via2l0X3dlYl92
aWV3X2dldF96b29tX2xldmVsKHdlYlZpZXcpIC0gem9vbU11bHRpcGxpZXJSYXRpbyk7Ci19Ci0K
LS8qKgotICogd2Via2l0X3dlYl92aWV3X2dldF9mdWxsX2NvbnRlbnRfem9vbToKLSAqIEB3ZWJf
dmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIFJldHVybnMgd2hldGhlciB0aGUgem9vbSBs
ZXZlbCBhZmZlY3RzIG9ubHkgdGV4dCBvciBhbGwgZWxlbWVudHMuCi0gKgotICogUmV0dXJuIHZh
bHVlOiAlRkFMU0UgaWYgb25seSB0ZXh0IHNob3VsZCBiZSBzY2FsZWQgKHRoZSBkZWZhdWx0KSwK
LSAqICVUUlVFIGlmIHRoZSBmdWxsIGNvbnRlbnQgb2YgdGhlIHZpZXcgc2hvdWxkIGJlIHNjYWxl
ZC4KLSAqCi0gKiBTaW5jZTogMS4wLjEKLSAqLwotZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2dl
dF9mdWxsX2NvbnRlbnRfem9vbShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOwotCi0g
ICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwotICAgIHJldHVy
biBwcml2LT56b29tRnVsbENvbnRlbnQ7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X3Nl
dF9mdWxsX2NvbnRlbnRfem9vbToKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICog
QGZ1bGxfY29udGVudF96b29tOiAlRkFMU0UgaWYgb25seSB0ZXh0IHNob3VsZCBiZSBzY2FsZWQg
KHRoZSBkZWZhdWx0KSwKLSAqICVUUlVFIGlmIHRoZSBmdWxsIGNvbnRlbnQgb2YgdGhlIHZpZXcg
c2hvdWxkIGJlIHNjYWxlZC4KLSAqCi0gKiBTZXRzIHdoZXRoZXIgdGhlIHpvb20gbGV2ZWwgYWZm
ZWN0cyBvbmx5IHRleHQgb3IgYWxsIGVsZW1lbnRzLgotICoKLSAqIFNpbmNlOiAxLjAuMQotICov
Ci12b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfZnVsbF9jb250ZW50X3pvb20oV2ViS2l0V2ViVmll
dyogd2ViVmlldywgZ2Jvb2xlYW4gem9vbUZ1bGxDb250ZW50KQotewotICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKLQotICAgIFdlYktpdFdlYlZpZXdQ
cml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKLSAgICBpZiAocHJpdi0+em9vbUZ1bGxDb250
ZW50ID09IHpvb21GdWxsQ29udGVudCkKLSAgICAgIHJldHVybjsKLQotICAgIEZyYW1lJiBmcmFt
ZSA9IGNvcmUod2ViVmlldyktPm1haW5GcmFtZSgpOwotCi0gICAgZ2Zsb2F0IHpvb21MZXZlbCA9
IHByaXYtPnpvb21GdWxsQ29udGVudCA/IGZyYW1lLnBhZ2Vab29tRmFjdG9yKCkgOiBmcmFtZS50
ZXh0Wm9vbUZhY3RvcigpOwotCi0gICAgcHJpdi0+em9vbUZ1bGxDb250ZW50ID0gem9vbUZ1bGxD
b250ZW50OwotICAgIGlmIChwcml2LT56b29tRnVsbENvbnRlbnQpCi0gICAgICAgIGZyYW1lLnNl
dFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoem9vbUxldmVsLCAxKTsKLSAgICBlbHNlCi0gICAgICAg
IGZyYW1lLnNldFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMoMSwgem9vbUxldmVsKTsKLQotICAgIGdf
b2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwgImZ1bGwtY29udGVudC16b29tIik7Ci19
Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2dldF9sb2FkX3N0YXR1czoKLSAqIEB3ZWJfdmll
dzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIERldGVybWluZXMgdGhlIGN1cnJlbnQgc3RhdHVz
IG9mIHRoZSBsb2FkLgotICoKLSAqIFJldHVybnM6IGEgI1dlYktpdExvYWRTdGF0dXMgc3BlY2lm
eWluZyB0aGUgc3RhdHVzIG9mIHRoZSBjdXJyZW50IGxvYWQKLSAqCi0gKiBTaW5jZTogMS4xLjcK
LSAqLwotV2ViS2l0TG9hZFN0YXR1cyB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2xvYWRfc3RhdHVzKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBXRUJLSVRfTE9BRF9GSU5JU0hFRCk7Ci0KLSAgICBXZWJL
aXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0gICAgcmV0dXJuIHByaXYt
PmxvYWRTdGF0dXM7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2dldF9wcm9ncmVzczoK
LSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIERldGVybWluZXMgdGhlIGN1
cnJlbnQgcHJvZ3Jlc3Mgb2YgdGhlIGxvYWQuCi0gKgotICogUmV0dXJuczogYSBnZG91YmxlIHJl
cHJlc2VudGluZyB0aGUgc3RhdHVzIG9mIHRoZSBjdXJyZW50IGxvYWQuIFRoaXMgdmFsdWUKLSAq
ICB3aWxsIGJlIGluIHRoZSByYW5nZSBbMCwgMV0uCi0gKgotICogU2luY2U6IDEuMS43Ci0gKi8K
LWdkb3VibGUgd2Via2l0X3dlYl92aWV3X2dldF9wcm9ncmVzcyhXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJW
aWV3KSwgMS4wKTsKLQotICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT5wcm9ncmVzcygpLmVzdGlt
YXRlZFByb2dyZXNzKCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2dldF9lbmNvZGlu
ZzoKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwotICoKLSAqIFJldHVybnMgdGhlIGRl
ZmF1bHQgZW5jb2Rpbmcgb2YgdGhlICNXZWJLaXRXZWJWaWV3LgotICoKLSAqIFJldHVybiB2YWx1
ZTogdGhlIGRlZmF1bHQgZW5jb2RpbmcKLSAqCi0gKiBTaW5jZTogMS4xLjEKLSAqLwotY29uc3Qg
Z2NoYXIqIHdlYmtpdF93ZWJfdmlld19nZXRfZW5jb2RpbmcoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmll
dyksIE5VTEwpOwotICAgIFN0cmluZyBlbmNvZGluZyA9IGNvcmUod2ViVmlldyktPm1haW5GcmFt
ZSgpLmRvY3VtZW50KCktPmVuY29kaW5nKCk7Ci0gICAgaWYgKGVuY29kaW5nLmlzRW1wdHkoKSkK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgd2ViVmlldy0+cHJpdi0+ZW5jb2RpbmcgPSBlbmNvZGlu
Zy51dGY4KCk7Ci0gICAgcmV0dXJuIHdlYlZpZXctPnByaXYtPmVuY29kaW5nLmRhdGEoKTsKLX0K
LQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfc2V0X2N1c3RvbV9lbmNvZGluZzoKLSAqIEB3ZWJf
dmlldzogYSAjV2ViS2l0V2ViVmlldwotICogQGVuY29kaW5nOiB0aGUgbmV3IGVuY29kaW5nLCBv
ciAlTlVMTCB0byByZXN0b3JlIHRoZSBkZWZhdWx0IGVuY29kaW5nCi0gKgotICogU2V0cyB0aGUg
Y3VycmVudCAjV2ViS2l0V2ViVmlldyBlbmNvZGluZywgd2l0aG91dCBtb2RpZnlpbmcgdGhlIGRl
ZmF1bHQgb25lLAotICogYW5kIHJlbG9hZHMgdGhlIHBhZ2UuCi0gKgotICogU2luY2U6IDEuMS4x
Ci0gKi8KLXZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9jdXN0b21fZW5jb2RpbmcoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgY29uc3QgY2hhciogZW5jb2RpbmcpCi17Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotCi0gICAgY29yZSh3ZWJWaWV3KS0+
bWFpbkZyYW1lKCkubG9hZGVyKCkucmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcoU3RyaW5nOjpm
cm9tVVRGOChlbmNvZGluZykpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfdmlld19nZXRfY3Vz
dG9tX2VuY29kaW5nOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogUmV0
dXJucyB0aGUgY3VycmVudCBlbmNvZGluZyBvZiB0aGUgI1dlYktpdFdlYlZpZXcsIG5vdCB0aGUg
ZGVmYXVsdC1lbmNvZGluZwotICogb2YgV2ViS2l0V2ViU2V0dGluZ3MuCi0gKgotICogUmV0dXJu
IHZhbHVlOiBhIHN0cmluZyBjb250YWluaW5nIHRoZSBjdXJyZW50IGN1c3RvbSBlbmNvZGluZyBm
b3IgQHdlYl92aWV3LCBvciAlTlVMTCBpZiB0aGVyZSdzIG5vbmUgc2V0LgotICoKLSAqIFNpbmNl
OiAxLjEuMQotICovCi1jb25zdCBjaGFyKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2N1c3RvbV9lbmNv
ZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7Ci0gICAgU3RyaW5nIG92ZXJyaWRl
RW5jb2RpbmcgPSBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5kb2N1bWVudExv
YWRlcigpLT5vdmVycmlkZUVuY29kaW5nKCk7Ci0gICAgaWYgKG92ZXJyaWRlRW5jb2RpbmcuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICB3ZWJWaWV3LT5wcml2LT5jdXN0b21FbmNv
ZGluZyA9IG92ZXJyaWRlRW5jb2RpbmcudXRmOCgpOwotICAgIHJldHVybiB3ZWJWaWV3LT5wcml2
LT5jdXN0b21FbmNvZGluZy5kYXRhKCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X3Nl
dF92aWV3X21vZGU6Ci0gKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyB0aGF0IHdpbGwg
aGF2ZSBpdHMgdmlldyBtb2RlIHNldAotICogQG1vZGU6IHRoZSAlV2ViS2l0V2ViVmlld1ZpZXdN
b2RlIHRvIGJlIHNldAotICoKLSAqIFNldHMgdGhlIHZpZXctbW9kZSBwcm9wZXJ0eSBvZiB0aGUg
I1dlYktpdFdlYlZpZXcuIENoZWNrIHRoZQotICogcHJvcGVydHkncyBkb2N1bWVudGF0aW9uIGZv
ciBtb3JlIGluZm9ybWF0aW9uLgotICoKLSAqIFNpbmNlOiAxLjMuNAotICovCi12b2lkIHdlYmtp
dF93ZWJfdmlld19zZXRfdmlld19tb2RlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdl
YlZpZXdWaWV3TW9kZSBtb2RlKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9WSUVXKHdlYlZpZXcpKTsKLQotICAgIFBhZ2UqIHBhZ2UgPSBjb3JlKHdlYlZpZXcpOwotCi0g
ICAgc3dpdGNoIChtb2RlKSB7Ci0gICAgY2FzZSBXRUJLSVRfV0VCX1ZJRVdfVklFV19NT0RFX0ZM
T0FUSU5HOgotICAgICAgICBwYWdlLT5zZXRWaWV3TW9kZShQYWdlOjpWaWV3TW9kZUZsb2F0aW5n
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXRUJLSVRfV0VCX1ZJRVdfVklFV19NT0RFX0ZV
TExTQ1JFRU46Ci0gICAgICAgIHBhZ2UtPnNldFZpZXdNb2RlKFBhZ2U6OlZpZXdNb2RlRnVsbHNj
cmVlbik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV0VCS0lUX1dFQl9WSUVXX1ZJRVdfTU9E
RV9NQVhJTUlaRUQ6Ci0gICAgICAgIHBhZ2UtPnNldFZpZXdNb2RlKFBhZ2U6OlZpZXdNb2RlTWF4
aW1pemVkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXRUJLSVRfV0VCX1ZJRVdfVklFV19N
T0RFX01JTklNSVpFRDoKLSAgICAgICAgcGFnZS0+c2V0Vmlld01vZGUoUGFnZTo6Vmlld01vZGVN
aW5pbWl6ZWQpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBwYWdlLT5z
ZXRWaWV3TW9kZShQYWdlOjpWaWV3TW9kZVdpbmRvd2VkKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfdmlld19nZXRfdmlld19tb2RlOgotICogQHdlYl92
aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgdG8gb2J0YWluIHRoZSB2aWV3IG1vZGUgZnJvbQotICoK
LSAqIEdldHMgdGhlIHZhbHVlIG9mIHRoZSB2aWV3LW1vZGUgcHJvcGVydHkgb2YgdGhlCi0gKiAj
V2ViS2l0V2ViVmlldy4gQ2hlY2sgdGhlIHByb3BlcnR5J3MgZG9jdW1lbnRhdGlvbiBmb3IgbW9y
ZQotICogaW5mb3JtYXRpb24uCi0gKgotICogUmV0dXJuIHZhbHVlOiB0aGUgJVdlYktpdFdlYlZp
ZXdWaWV3TW9kZSBjdXJyZW50bHkgc2V0IGZvciB0aGUKLSAqICNXZWJLaXRXZWJWaWV3LgotICoK
LSAqIFNpbmNlOiAxLjMuNAotICovCi1XZWJLaXRXZWJWaWV3Vmlld01vZGUgd2Via2l0X3dlYl92
aWV3X2dldF92aWV3X21vZGUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIFdFQktJVF9XRUJfVklF
V19WSUVXX01PREVfV0lORE9XRUQpOwotCi0gICAgUGFnZSogcGFnZSA9IGNvcmUod2ViVmlldyk7
Ci0gICAgUGFnZTo6Vmlld01vZGUgbW9kZSA9IHBhZ2UtPnZpZXdNb2RlKCk7Ci0KLSAgICBpZiAo
bW9kZSA9PSBQYWdlOjpWaWV3TW9kZUZsb2F0aW5nKQotICAgICAgICByZXR1cm4gV0VCS0lUX1dF
Ql9WSUVXX1ZJRVdfTU9ERV9GTE9BVElORzsKLQotICAgIGlmIChtb2RlID09IFBhZ2U6OlZpZXdN
b2RlRnVsbHNjcmVlbikKLSAgICAgICAgcmV0dXJuIFdFQktJVF9XRUJfVklFV19WSUVXX01PREVf
RlVMTFNDUkVFTjsKLQotICAgIGlmIChtb2RlID09IFBhZ2U6OlZpZXdNb2RlTWF4aW1pemVkKQot
ICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXX1ZJRVdfTU9ERV9NQVhJTUlaRUQ7Ci0KLSAg
ICBpZiAobW9kZSA9PSBQYWdlOjpWaWV3TW9kZU1pbmltaXplZCkKLSAgICAgICAgcmV0dXJuIFdF
QktJVF9XRUJfVklFV19WSUVXX01PREVfTUlOSU1JWkVEOwotCi0gICAgcmV0dXJuIFdFQktJVF9X
RUJfVklFV19WSUVXX01PREVfV0lORE9XRUQ7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3
X21vdmVfY3Vyc29yOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKiBAc3RlcDog
YSAjR3RrTW92ZW1lbnRTdGVwCi0gKiBAY291bnQ6IGludGVnZXIgZGVzY3JpYmluZyB0aGUgZGly
ZWN0aW9uIG9mIHRoZSBtb3ZlbWVudC4gMSBmb3IgZm9yd2FyZCwgLTEgZm9yIGJhY2t3YXJkcy4K
LSAqCi0gKiBNb3ZlIHRoZSBjdXJzb3IgaW4gQHZpZXcgYXMgZGVzY3JpYmVkIGJ5IEBzdGVwIGFu
ZCBAY291bnQuCi0gKgotICogU2luY2U6IDEuMS40Ci0gKi8KLXZvaWQgd2Via2l0X3dlYl92aWV3
X21vdmVfY3Vyc29yKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEd0a01vdmVtZW50U3RlcCBzdGVw
LCBnaW50IGNvdW50KQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHN0ZXAgPT0gR1RLX01PVkVNRU5UX1ZJ
U1VBTF9QT1NJVElPTlMgfHwKLSAgICAgICAgICAgICAgICAgICAgIHN0ZXAgPT0gR1RLX01PVkVN
RU5UX0RJU1BMQVlfTElORVMgfHwKLSAgICAgICAgICAgICAgICAgICAgIHN0ZXAgPT0gR1RLX01P
VkVNRU5UX1BBR0VTIHx8Ci0gICAgICAgICAgICAgICAgICAgICBzdGVwID09IEdUS19NT1ZFTUVO
VF9CVUZGRVJfRU5EUyk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChjb3VudCA9PSAxIHx8IGNvdW50
ID09IC0xKTsKLQotICAgIGdib29sZWFuIGhhbmRsZWQ7Ci0gICAgZ19zaWduYWxfZW1pdCh3ZWJW
aWV3LCB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tNT1ZFX0NVUlNPUl0sIDAsIHN0ZXAsIGNvdW50
LCAmaGFuZGxlZCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2Nhbl91bmRvOgotICog
QHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0gKgotICogRGV0ZXJtaW5lcyB3aGV0aGVyIG9y
IG5vdCBpdCBpcyBjdXJyZW50bHkgcG9zc2libGUgdG8gdW5kbyB0aGUgbGFzdAotICogZWRpdGlu
ZyBjb21tYW5kIGluIHRoZSB2aWV3LgotICoKLSAqIFJldHVybiB2YWx1ZTogJVRSVUUgaWYgYSB1
bmRvIGNhbiBiZSBkb25lLCAlRkFMU0UgaWYgbm90Ci0gKgotICogU2luY2U6IDEuMS4xNAotICov
Ci1nYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfY2FuX3VuZG8oV2ViS2l0V2ViVmlldyogd2ViVmll
dykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmll
dyksIEZBTFNFKTsKLQotICAgIEZyYW1lJiBmcmFtZSA9IGNvcmUod2ViVmlldyktPmZvY3VzQ29u
dHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIHJldHVybiBmcmFtZS5lZGl0b3Io
KS5jYW5VbmRvKCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X3VuZG86Ci0gKiBAd2Vi
X3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqCi0gKiBVbmRvZXMgdGhlIGxhc3QgZWRpdGluZyBj
b21tYW5kIGluIHRoZSB2aWV3LCBpZiBwb3NzaWJsZS4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0g
Ki8KLXZvaWQgd2Via2l0X3dlYl92aWV3X3VuZG8oV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsK
LSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Ci0KLSAg
ICBpZiAod2Via2l0X3dlYl92aWV3X2Nhbl91bmRvKHdlYlZpZXcpKQotICAgICAgICBnX3NpZ25h
bF9lbWl0KHdlYlZpZXcsIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW1VORE9dLCAwKTsKLX0KLQot
LyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfY2FuX3JlZG86Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktp
dFdlYlZpZXcKLSAqCi0gKiBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IGl0IGlzIGN1cnJlbnRs
eSBwb3NzaWJsZSB0byByZWRvIHRoZSBsYXN0Ci0gKiBlZGl0aW5nIGNvbW1hbmQgaW4gdGhlIHZp
ZXcuCi0gKgotICogUmV0dXJuIHZhbHVlOiAlVFJVRSBpZiBhIHJlZG8gY2FuIGJlIGRvbmUsICVG
QUxTRSBpZiBub3QKLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKi8KLWdib29sZWFuIHdlYmtpdF93
ZWJfdmlld19jYW5fcmVkbyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOwotCi0gICAg
RnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9y
TWFpbkZyYW1lKCk7Ci0gICAgcmV0dXJuIGZyYW1lLmVkaXRvcigpLmNhblJlZG8oKTsKLX0KLQot
LyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfcmVkbzoKLSAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2Vi
VmlldwotICoKLSAqIFJlZG9lcyB0aGUgbGFzdCBlZGl0aW5nIGNvbW1hbmQgaW4gdGhlIHZpZXcs
IGlmIHBvc3NpYmxlLgotICoKLSAqIFNpbmNlOiAxLjEuMTQKLSAqLwotdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfcmVkbyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKLQotICAgIGlmICh3ZWJraXRfd2ViX3Zp
ZXdfY2FuX3JlZG8od2ViVmlldykpCi0gICAgICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgd2Vi
a2l0X3dlYl92aWV3X3NpZ25hbHNbUkVET10sIDApOwotfQotCi0KLS8qKgotICogd2Via2l0X3dl
Yl92aWV3X3NldF92aWV3X3NvdXJjZV9tb2RlOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJW
aWV3Ci0gKiBAdmlld19zb3VyY2VfbW9kZTogdGhlIG1vZGUgdG8gdHVybiBvbiBvciBvZmYgdmll
dyBzb3VyY2UgbW9kZQotICoKLSAqIFNldCB3aGV0aGVyIHRoZSB2aWV3IHNob3VsZCBiZSBpbiB2
aWV3IHNvdXJjZSBtb2RlLiBTZXR0aW5nIHRoaXMgbW9kZSB0bwotICogJVRSVUUgYmVmb3JlIGxv
YWRpbmcgYSBVUkkgd2lsbCBkaXNwbGF5IHRoZSBzb3VyY2Ugb2YgdGhlIHdlYiBwYWdlIGluIGEK
LSAqIG5pY2UgYW5kIHJlYWRhYmxlIGZvcm1hdC4KLSAqCi0gKiBTaW5jZTogMS4xLjE0Ci0gKiBE
ZXByZWNhdGVkOiAyLjYKLSAqLwotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X3ZpZXdfc291cmNl
X21vZGUgKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIC8qIG1vZGUgKi8pCi17Ci0g
ICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotCi0gICAg
Z193YXJuaW5nKCJ3ZWJraXRfd2ViX3ZpZXdfc2V0X3ZpZXdfc291cmNlX21vZGUgaGFzIGJlZW4g
ZGVwcmVjYXRlZCBhbmQgaXMgYSBuby1vcC4iKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X3ZpZXdfc291cmNlX21vZGU6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcK
LSAqCi0gKiBSZXR1cm4gdmFsdWU6ICVUUlVFIGlmIEB3ZWJfdmlldyBpcyBpbiB2aWV3IHNvdXJj
ZSBtb2RlLCAlRkFMU0Ugb3RoZXJ3aXNlLgotICoKLSAqIFNpbmNlOiAxLjEuMTQKLSAqIERlcHJl
Y2F0ZWQ6IDIuNgotICovCi1nYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3ZpZXdfc291cmNl
X21vZGUgKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7Ci0KLSAgICBnX3dhcm5pbmco
IndlYmtpdF93ZWJfdmlld19nZXRfdmlld19zb3VyY2VfbW9kZSBoYXMgYmVlbiBkZXByZWNhdGVk
IGFuZCBhbHdheXMgcmV0dXJucyBGQUxTRS4iKTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLS8v
IEludGVybmFsIHN1YnJlc291cmNlIG1hbmFnZW1lbnQKLXZvaWQgd2Via2l0X3dlYl92aWV3X2Fk
ZF9tYWluX3Jlc291cmNlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGNoYXIqIGlkZW50
aWZpZXIsIFdlYktpdFdlYlJlc291cmNlKiB3ZWJSZXNvdXJjZSkKLXsKLSAgICBXZWJLaXRXZWJW
aWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0KLSAgICBwcml2LT5tYWluUmVzb3Vy
Y2UgPSBhZG9wdEdSZWYod2ViUmVzb3VyY2UpOwotICAgIHByaXYtPm1haW5SZXNvdXJjZUlkZW50
aWZpZXIgPSBpZGVudGlmaWVyOwotfQotCi12b2lkIHdlYmtpdF93ZWJfdmlld19hZGRfcmVzb3Vy
Y2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgY2hhciogaWRlbnRpZmllciwgV2ViS2l0
V2ViUmVzb3VyY2UqIHdlYlJlc291cmNlKQotewotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBw
cml2ID0gd2ViVmlldy0+cHJpdjsKLSAgICBnX2hhc2hfdGFibGVfaW5zZXJ0KHByaXYtPnN1YlJl
c291cmNlcy5nZXQoKSwgZ19zdHJkdXAoaWRlbnRpZmllciksIHdlYlJlc291cmNlKTsKLX0KLQot
dm9pZCB3ZWJraXRXZWJWaWV3UmVtb3ZlU3VicmVzb3VyY2UoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgY29uc3QgY2hhciogaWRlbnRpZmllcikKLXsKLSAgICBBU1NFUlQoaWRlbnRpZmllcik7Ci0K
LSAgICAvLyBEb24ndCByZW1vdmUgdGhlIG1haW4gcmVzb3VyY2UuCi0gICAgY29uc3QgQ1N0cmlu
ZyYgbWFpblJlc291cmNlID0gd2ViVmlldy0+cHJpdi0+bWFpblJlc291cmNlSWRlbnRpZmllcjsK
LSAgICBpZiAoIW1haW5SZXNvdXJjZS5pc051bGwoKSAmJiBnX3N0cl9lcXVhbChpZGVudGlmaWVy
LCBtYWluUmVzb3VyY2UuZGF0YSgpKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGdfaGFzaF90YWJs
ZV9yZW1vdmUod2ViVmlldy0+cHJpdi0+c3ViUmVzb3VyY2VzLmdldCgpLCBpZGVudGlmaWVyKTsK
LX0KLQotV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdF93ZWJfdmlld19nZXRfcmVzb3VyY2UoV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgY2hhciogaWRlbnRpZmllcikKLXsKLSAgICBXZWJLaXRXZWJW
aWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7Ci0gICAgZ3BvaW50ZXIgd2ViUmVzb3Vy
Y2UgPSAwOwotICAgIGdib29sZWFuIHJlc291cmNlRm91bmQgPSBnX2hhc2hfdGFibGVfbG9va3Vw
X2V4dGVuZGVkKHByaXYtPnN1YlJlc291cmNlcy5nZXQoKSwgaWRlbnRpZmllciwgTlVMTCwgJndl
YlJlc291cmNlKTsKLQotICAgIC8vIFRoZSBvbmx5IHJlc291cmNlIHdlIGRvIG5vdCBzdG9yZSBp
biB0aGlzIGhhc2ggdGFibGUgaXMgdGhlCi0gICAgLy8gbWFpbiEgIElmIHdlIGRpZCBub3QgZmlu
ZCBhIHJlcXVlc3QsIGl0IHByb2JhYmx5IG1lYW5zIHRoZSBsb2FkCi0gICAgLy8gaGFzIGJlZW4g
aW50ZXJydXB0ZWQgd2hpbGUgd2hpbGUgYSByZXNvdXJjZSB3YXMgc3RpbGwgYmVpbmcKLSAgICAv
LyBsb2FkZWQuCi0gICAgaWYgKCFyZXNvdXJjZUZvdW5kICYmICFnX3N0cl9lcXVhbChpZGVudGlm
aWVyLCBwcml2LT5tYWluUmVzb3VyY2VJZGVudGlmaWVyLmRhdGEoKSkpCi0gICAgICAgIHJldHVy
biAwOwotCi0gICAgaWYgKCF3ZWJSZXNvdXJjZSkKLSAgICAgICAgcmV0dXJuIHdlYmtpdF93ZWJf
dmlld19nZXRfbWFpbl9yZXNvdXJjZSh3ZWJWaWV3KTsKLQotICAgIHJldHVybiBXRUJLSVRfV0VC
X1JFU09VUkNFKHdlYlJlc291cmNlKTsKLX0KLQotV2ViS2l0V2ViUmVzb3VyY2UqIHdlYmtpdF93
ZWJfdmlld19nZXRfbWFpbl9yZXNvdXJjZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAg
IHJldHVybiB3ZWJWaWV3LT5wcml2LT5tYWluUmVzb3VyY2UuZ2V0KCk7Ci19Ci0KLXZvaWQgd2Vi
a2l0X3dlYl92aWV3X2NsZWFyX3Jlc291cmNlcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewot
ICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKLQotICAgIGlm
IChwcml2LT5zdWJSZXNvdXJjZXMpCi0gICAgICAgIGdfaGFzaF90YWJsZV9yZW1vdmVfYWxsKHBy
aXYtPnN1YlJlc291cmNlcy5nZXQoKSk7Ci19Ci0KLXN0YXRpYyBnYm9vbGVhbiBjbGVhbnVwVGVt
cG9yYXJpbHlDYWNoZWRTdWJyZXNvdXJjZXMoZ3BvaW50ZXIgZGF0YSkKLXsKLSAgICBHTGlzdCog
c3ViUmVzb3VyY2VzID0gc3RhdGljX2Nhc3Q8R0xpc3QqPihkYXRhKTsKLSAgICBnX2xpc3RfZm9y
ZWFjaChzdWJSZXNvdXJjZXMsIHJlaW50ZXJwcmV0X2Nhc3Q8R0Z1bmM+KGdfb2JqZWN0X3VucmVm
KSwgTlVMTCk7Ci0gICAgZ19saXN0X2ZyZWUoc3ViUmVzb3VyY2VzKTsKLSAgICByZXR1cm4gRkFM
U0U7Ci19Ci0KLUdMaXN0KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJlc291cmNlcyhXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7Ci0gICAgR0xpc3QqIHN1YlJlc291cmNlcyA9IDA7Ci0g
ICAgVmVjdG9yPFBhc3NSZWZQdHI8QXJjaGl2ZVJlc291cmNlPiA+IGNvcmVTdWJSZXNvdXJjZXM7
Ci0KLSAgICBjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5kb2N1bWVudExvYWRl
cigpLT5nZXRTdWJyZXNvdXJjZXMoY29yZVN1YlJlc291cmNlcyk7Ci0KLSAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgY29yZVN1YlJlc291cmNlcy5zaXplKCk7IGkrKykgewotICAgICAgICBX
ZWJLaXRXZWJSZXNvdXJjZSogd2ViUmVzb3VyY2UgPSBXRUJLSVRfV0VCX1JFU09VUkNFKGdfb2Jq
ZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfUkVTT1VSQ0UsIE5VTEwpKTsKLSAgICAgICAgd2Via2l0
X3dlYl9yZXNvdXJjZV9pbml0X3dpdGhfY29yZV9yZXNvdXJjZSh3ZWJSZXNvdXJjZSwgY29yZVN1
YlJlc291cmNlc1tpXSk7Ci0gICAgICAgIHN1YlJlc291cmNlcyA9IGdfbGlzdF9hcHBlbmQoc3Vi
UmVzb3VyY2VzLCB3ZWJSZXNvdXJjZSk7Ci0gICAgfQotCi0gICAgaWYgKHN1YlJlc291cmNlcykK
LSAgICAgICAgZ190aW1lb3V0X2FkZCgxLCBjbGVhbnVwVGVtcG9yYXJpbHlDYWNoZWRTdWJyZXNv
dXJjZXMsIGdfbGlzdF9jb3B5KHN1YlJlc291cmNlcykpOwotCi0gICAgcmV0dXJuIHN1YlJlc291
cmNlczsKLX0KLQotLyogRnJvbSBFdmVudEhhbmRsZXIuY3BwICovCi1zdGF0aWMgSW50UG9pbnQg
ZG9jdW1lbnRQb2ludEZvcldpbmRvd1BvaW50KEZyYW1lKiBmcmFtZSwgY29uc3QgSW50UG9pbnQm
IHdpbmRvd1BvaW50KQotewotICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7Ci0g
ICAgLy8gRklYTUU6IElzIGl0IHJlYWxseSBPSyB0byB1c2UgdGhlIHdyb25nIGNvb3JkaW5hdGVz
IGhlcmUgd2hlbiB2aWV3IGlzIDA/Ci0gICAgLy8gSGlzdG9yaWNhbGx5IHRoZSBjb2RlIHdvdWxk
IGp1c3QgY3Jhc2g7IHRoaXMgaXMgY2xlYXJseSBubyB3b3JzZSB0aGFuIHRoYXQuCi0gICAgcmV0
dXJuIHZpZXcgPyB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKHdpbmRvd1BvaW50KSA6IHdpbmRvd1Bv
aW50OwotfQotCi12b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfdG9vbHRpcF90ZXh0KFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGNvbnN0IGNoYXIqIHRvb2x0aXApCi17Ci0gICAgV2ViS2l0V2ViVmll
d1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwotICAgIGlmICh0b29sdGlwICYmICp0b29s
dGlwICE9ICdcMCcpIHsKLSAgICAgICAgcHJpdi0+dG9vbHRpcFRleHQgPSB0b29sdGlwOwotICAg
ICAgICBndGtfd2lkZ2V0X3NldF9oYXNfdG9vbHRpcChHVEtfV0lER0VUKHdlYlZpZXcpLCBUUlVF
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBwcml2LT50b29sdGlwVGV4dCA9ICIiOwotICAgICAg
ICBndGtfd2lkZ2V0X3NldF9oYXNfdG9vbHRpcChHVEtfV0lER0VUKHdlYlZpZXcpLCBGQUxTRSk7
Ci0gICAgfQotCi0gICAgZ3RrX3dpZGdldF90cmlnZ2VyX3Rvb2x0aXBfcXVlcnkoR1RLX1dJREdF
VCh3ZWJWaWV3KSk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2dldF9oaXRfdGVzdF9y
ZXN1bHQ6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqIEBldmVudDogYSAjR2Rr
RXZlbnRCdXR0b24KLSAqCi0gKiBEb2VzIGEgJ2hpdCB0ZXN0JyBpbiB0aGUgY29vcmRpbmF0ZXMg
c3BlY2lmaWVkIGJ5IEBldmVudCB0byBmaWd1cmUKLSAqIG91dCBjb250ZXh0IGluZm9ybWF0aW9u
IGFib3V0IHRoYXQgcG9zaXRpb24gaW4gdGhlIEB3ZWJfdmlldy4KLSAqCi0gKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IGEgbmV3bHkgY3JlYXRlZCAjV2ViS2l0SGl0VGVzdFJlc3VsdCB3aXRo
IHRoZSBjb250ZXh0IG9mIHRoZQotICogc3BlY2lmaWVkIHBvc2l0aW9uLgotICoKLSAqIFNpbmNl
OiAxLjEuMTUKLSAqKi8KLVdlYktpdEhpdFRlc3RSZXN1bHQqIHdlYmtpdF93ZWJfdmlld19nZXRf
aGl0X3Rlc3RfcmVzdWx0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdka0V2ZW50QnV0dG9uKiBl
dmVudCkKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2Vi
VmlldyksIE5VTEwpOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGV2ZW50LCBOVUxMKTsKLQot
ICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50ID0gUGxhdGZvcm1Nb3VzZUV2ZW50KGV2
ZW50KTsKLSAgICBGcmFtZSYgZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIo
KS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRl
c3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFkb3dDb250ZW50
KTsKLSAgICBJbnRQb2ludCBkb2N1bWVudFBvaW50ID0gZG9jdW1lbnRQb2ludEZvcldpbmRvd1Bv
aW50KCZmcmFtZSwgbW91c2VFdmVudC5wb3NpdGlvbigpKTsKLSAgICBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzIG1ldiA9IGZyYW1lLmRvY3VtZW50KCktPnByZXBhcmVNb3VzZUV2ZW50KHJl
cXVlc3QsIGRvY3VtZW50UG9pbnQsIG1vdXNlRXZlbnQpOwotCi0gICAgcmV0dXJuIGtpdChtZXYu
aGl0VGVzdFJlc3VsdCgpKTsKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25f
dXJpOgotICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb2JqZWN0Ci0gKgotICogT2J0
YWlucyB0aGUgVVJJIGZvciB0aGUgZmF2aWNvbiBmb3IgdGhlIGdpdmVuICNXZWJLaXRXZWJWaWV3
LCBvcgotICogJU5VTEwgaWYgdGhlcmUgaXMgbm9uZS4KLSAqCi0gKiBSZXR1cm4gdmFsdWU6IHRo
ZSBVUkkgZm9yIHRoZSBmYXZpY29uLCBvciAlTlVMTAotICoKLSAqIFNpbmNlOiAxLjEuMTgKLSAq
LwotY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl91cmkoV2ViS2l0V2ViVmll
dyogd2ViVmlldykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJ
RVcod2ViVmlldyksIDApOwotICAgIFN0cmluZyBpY29uVVJMID0gaWNvbkRhdGFiYXNlKCkuc3lu
Y2hyb25vdXNJY29uVVJMRm9yUGFnZVVSTChjb3JlKHdlYlZpZXcpLT5tYWluRnJhbWUoKS5kb2N1
bWVudCgpLT51cmwoKS5zdHJpbmcoKSk7Ci0gICAgd2ViVmlldy0+cHJpdi0+aWNvblVSSSA9IGlj
b25VUkwudXRmOCgpOwotICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT5pY29uVVJJLmRhdGEoKTsK
LX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25fcGl4YnVmOgotICogQHdlYl92
aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb2JqZWN0Ci0gKgotICogT2J0YWlucyBhICNHZGtQaXhi
dWYgb2YgdGhlIGZhdmljb24gZm9yIHRoZSBnaXZlbiAjV2ViS2l0V2ViVmlldywgb3IKLSAqIGEg
ZGVmYXVsdCBpY29uIGlmIHRoZXJlIGlzIG5vIGljb24gZm9yIHRoZSBnaXZlbiBwYWdlLiBVc2UK
LSAqIHdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl91cmkoKSBpZiB5b3UgbmVlZCB0byBkaXN0aW5n
dWlzaCB0aGVzZSBjYXNlcy4KLSAqIFVzdWFsbHkgeW91IHdhbnQgdG8gY29ubmVjdCB0byBXZWJL
aXRXZWJWaWV3OjppY29uLWxvYWRlZCBhbmQgY2FsbCB0aGlzCi0gKiBtZXRob2QgaW4gdGhlIGNh
bGxiYWNrLgotICoKLSAqIFRoZSBwaXhidWYgd2lsbCBoYXZlIHRoZSBsYXJnZXN0IHNpemUgcHJv
dmlkZWQgYnkgdGhlIHNlcnZlciBhbmQgc2hvdWxkCi0gKiBiZSByZXNpemVkIGJlZm9yZSBpdCBp
cyBkaXNwbGF5ZWQuCi0gKiBTZWUgYWxzbyB3ZWJraXRfaWNvbl9kYXRhYmFzZV9nZXRfaWNvbl9w
aXhidWYoKS4KLSAqCi0gKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IGEgbmV3IHJlZmVyZW5j
ZSB0byBhICNHZGtQaXhidWYsIG9yICVOVUxMCi0gKgotICogU2luY2U6IDEuMy4xMwotICoKLSAq
IERlcHJlY2F0ZWQ6IDEuODogVXNlIHdlYmtpdF93ZWJfdmlld190cnlfZ2V0X2Zhdmljb25fcGl4
YnVmKCkgaW5zdGVhZC4KLSAqLwotR2RrUGl4YnVmKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25f
cGl4YnVmKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCAwKTsKLQotICAgIGNvbnN0IGdjaGFyKiBw
YWdlVVJJID0gd2Via2l0X3dlYl92aWV3X2dldF91cmkod2ViVmlldyk7Ci0gICAgV2ViS2l0SWNv
bkRhdGFiYXNlKiBkYXRhYmFzZSA9IHdlYmtpdF9nZXRfaWNvbl9kYXRhYmFzZSgpOwotICAgIHJl
dHVybiB3ZWJraXRfaWNvbl9kYXRhYmFzZV9nZXRfaWNvbl9waXhidWYoZGF0YWJhc2UsIHBhZ2VV
UkkpOwotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJfdmlld190cnlfZ2V0X2Zhdmljb25fcGl4YnVm
OgotICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb2JqZWN0Ci0gKiBAd2lkdGg6IHRo
ZSBkZXNpcmVkIHdpZHRoIGZvciB0aGUgaWNvbgotICogQGhlaWdodDogdGhlIGRlc2lyZWQgaGVp
Z2h0IGZvciB0aGUgaWNvbgotICoKLSAqIE9idGFpbnMgYSAjR2RrUGl4YnVmIG9mIHRoZSBmYXZp
Y29uIGZvciB0aGUgZ2l2ZW4KLSAqICNXZWJLaXRXZWJWaWV3LiBUaGlzIHdpbGwgcmV0dXJuICVO
VUxMIGlzIHRoZXJlIGlzIG5vIGljb24gZm9yIHRoZQotICogY3VycmVudCAjV2ViS2l0V2ViVmll
dyBvciBpZiB0aGUgaWNvbiBpcyBpbiB0aGUgZGF0YWJhc2UgYnV0IG5vdAotICogYXZhaWxhYmxl
IGF0IHRoZSBtb21lbnQgb2YgdGhpcyBjYWxsLiBVc2UKLSAqIHdlYmtpdF93ZWJfdmlld19nZXRf
aWNvbl91cmkoKSBpZiB5b3UgbmVlZCB0byBkaXN0aW5ndWlzaCB0aGVzZQotICogY2FzZXMuICBV
c3VhbGx5IHlvdSB3YW50IHRvIGNvbm5lY3QgdG8gV2ViS2l0V2ViVmlldzo6aWNvbi1sb2FkZWQK
LSAqIGFuZCBjYWxsIHRoaXMgbWV0aG9kIGluIHRoZSBjYWxsYmFjay4KLSAqCi0gKiBTZWUgYWxz
byB3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV90cnlfZ2V0X2Zhdmljb25fcGl4YnVmKCkuIENvbnRy
YXJ5Ci0gKiB0byB0aGlzIGZ1bmN0aW9uIHRoZSBpY29uIGRhdGFiYXNlIG9uZSByZXR1cm5zIHRo
ZSBVUkwgb2YgdGhlIHBhZ2UKLSAqIGNvbnRhaW5pbmcgdGhlIGljb24uCi0gKgotICogUmV0dXJu
czogKHRyYW5zZmVyIGZ1bGwpOiBhIG5ldyByZWZlcmVuY2UgdG8gYSAjR2RrUGl4YnVmLCBvciAl
TlVMTAotICoKLSAqIFNpbmNlOiAxLjgKLSAqLwotR2RrUGl4YnVmKiB3ZWJraXRfd2ViX3ZpZXdf
dHJ5X2dldF9mYXZpY29uX3BpeGJ1ZihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBndWludCB3aWR0
aCwgZ3VpbnQgaGVpZ2h0KQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19X
RUJfVklFVyh3ZWJWaWV3KSwgMCk7Ci0KLSAgICBjb25zdCBnY2hhciogcGFnZVVSSSA9IHdlYmtp
dF93ZWJfdmlld19nZXRfdXJpKHdlYlZpZXcpOwotICAgIFdlYktpdEZhdmljb25EYXRhYmFzZSog
ZGF0YWJhc2UgPSB3ZWJraXRfZ2V0X2Zhdmljb25fZGF0YWJhc2UoKTsKLSAgICByZXR1cm4gd2Vi
a2l0X2Zhdmljb25fZGF0YWJhc2VfdHJ5X2dldF9mYXZpY29uX3BpeGJ1ZihkYXRhYmFzZSwgcGFn
ZVVSSSwgd2lkdGgsIGhlaWdodCk7Ci19Ci0KLS8qKgotICogd2Via2l0X3dlYl92aWV3X2dldF9k
b21fZG9jdW1lbnQ6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKLSAqCi0gKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IHRoZSAjV2ViS2l0RE9NRG9jdW1lbnQgY3VycmVudGx5IGxv
YWRlZCBpbgotICogdGhlIG1haW4gZnJhbWUgb2YgdGhlIEB3ZWJfdmlldyBvciAlTlVMTCBpZiBu
byBkb2N1bWVudCBpcyBsb2FkZWQKLSAqCi0gKiBTaW5jZTogMS4zLjEKLSAqKi8KLVdlYktpdERP
TURvY3VtZW50Kgotd2Via2l0X3dlYl92aWV3X2dldF9kb21fZG9jdW1lbnQoV2ViS2l0V2ViVmll
dyogd2ViVmlldykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJ
RVcod2ViVmlldyksIDApOwotCi0gICAgcmV0dXJuIHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2RvbV9k
b2N1bWVudCh3ZWJWaWV3LT5wcml2LT5tYWluRnJhbWUpOwotfQotCi1HdGtNZW51KiB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2NvbnRleHRfbWVudShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQotewotICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgMCk7Ci0K
LSNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKLSAgICBDb250ZXh0TWVudSogbWVudSA9IGNvcmUo
d2ViVmlldyktPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmNvbnRleHRNZW51KCk7Ci0gICAgaWYg
KCFtZW51KQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbWVudS0+cGxhdGZvcm1EZXNj
cmlwdGlvbigpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgotfQotCi0vKioKLSAqIHdl
YmtpdF93ZWJfdmlld19nZXRfc25hcHNob3Q6Ci0gKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZp
ZXcKLSAqCi0gKiBSZXRyaWV2ZXMgYSBzbmFwc2hvdCB3aXRoIHRoZSB2aXNpYmxlIGNvbnRlbnRz
IG9mIEB3ZWJ2aWV3LgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogYSBAY2Fpcm9f
c3VyZmFjZV90Ci0gKgotICogU2luY2U6IDEuMTAKLSAqKi8KLWNhaXJvX3N1cmZhY2VfdCoKLXdl
YmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QoV2ViS2l0V2ViVmlldyogd2ViVmlldykKLXsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIDApOwot
Ci0gICAgRnJhbWUmIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYg
KCFmcmFtZS5jb250ZW50UmVuZGVyZXIoKSB8fCAhZnJhbWUudmlldygpKQotICAgICAgICByZXR1
cm4gMDsKLQotICAgIGZyYW1lLnZpZXcoKS0+dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJl
Y3Vyc2l2ZSgpOwotICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbjsKLSAgICBndGtfd2lkZ2V0
X2dldF9hbGxvY2F0aW9uKEdUS19XSURHRVQod2ViVmlldyksICZhbGxvY2F0aW9uKTsKLSAgICBj
YWlyb19zdXJmYWNlX3QqIHN1cmZhY2UgPSBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlS
T19GT1JNQVRfQVJHQjMyLCBhbGxvY2F0aW9uLndpZHRoLCBhbGxvY2F0aW9uLmhlaWdodCk7Ci0g
ICAgUmVmUHRyPGNhaXJvX3Q+IGNyID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHN1cmZhY2UpKTsK
LSAgICBHcmFwaGljc0NvbnRleHQgZ2MoY3IuZ2V0KCkpOwotCi0gICAgSW50UmVjdCByZWN0ID0g
YWxsb2NhdGlvbjsKLSAgICBnYy5hcHBseURldmljZVNjYWxlRmFjdG9yKGZyYW1lLnBhZ2UoKS0+
ZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0gICAgZ2Muc2F2ZSgpOwotICAgIGdjLmNsaXAocmVjdCk7
Ci0gICAgaWYgKHdlYlZpZXctPnByaXYtPnRyYW5zcGFyZW50KQotICAgICAgICBnYy5jbGVhclJl
Y3QocmVjdCk7Ci0gICAgZnJhbWUudmlldygpLT5wYWludCgmZ2MsIHJlY3QpOwotICAgIGdjLnJl
c3RvcmUoKTsKLQotICAgIHJldHVybiBzdXJmYWNlOwotfQotCi0jaWYgRU5BQkxFKElDT05EQVRB
QkFTRSkKLXZvaWQgd2Via2l0V2ViVmlld0ljb25Mb2FkZWQoV2ViS2l0RmF2aWNvbkRhdGFiYXNl
KiwgY29uc3QgY2hhciogLyogZnJhbWVVUkkgKi8sIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCi17
Ci0gICAgLy8gU2luY2Ugd2UgZGVmaW5pdGVseSBoYXZlIGFuIGljb24gdGhlIFdlYlZpZXcgZG9l
c24ndCBuZWVkIHRvCi0gICAgLy8gbGlzdGVuIGZvciBub3RpZmljYXRpb25zIGFueSBsb25nZXIu
Ci0gICAgd2Via2l0V2ViVmlld1JlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbih3ZWJWaWV3LCBm
YWxzZSk7Ci0KLSAgICAvLyB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ljb25fdXJpKCkgcHJvcGVybHkg
dXBkYXRlcyB0aGUgImljb24tdXJpIiBwcm9wZXJ0eS4KLSAgICBnX29iamVjdF9ub3RpZnkoR19P
QkpFQ1Qod2ViVmlldyksICJpY29uLXVyaSIpOwotICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywg
d2Via2l0X3dlYl92aWV3X3NpZ25hbHNbSUNPTl9MT0FERURdLCAwLCB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2ljb25fdXJpKHdlYlZpZXcpKTsKLX0KLQotdm9pZCB3ZWJraXRXZWJWaWV3UmVnaXN0ZXJG
b3JJY29uTm90aWZpY2F0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wgc2hvdWxkUmVn
aXN0ZXIpCi17Ci0gICAgV2ViS2l0RmF2aWNvbkRhdGFiYXNlKiBkYXRhYmFzZSA9IHdlYmtpdF9n
ZXRfZmF2aWNvbl9kYXRhYmFzZSgpOwotICAgIGlmIChzaG91bGRSZWdpc3RlcikgewotICAgICAg
ICBpZiAoIWdfc2lnbmFsX2hhbmRsZXJfaXNfY29ubmVjdGVkKGRhdGFiYXNlLCB3ZWJWaWV3LT5w
cml2LT5pY29uTG9hZGVkSGFuZGxlcikpCi0gICAgICAgICAgICB3ZWJWaWV3LT5wcml2LT5pY29u
TG9hZGVkSGFuZGxlciA9IGdfc2lnbmFsX2Nvbm5lY3QoZGF0YWJhc2UsICJpY29uLWxvYWRlZCIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR19DQUxMQkFDSyh3ZWJraXRXZWJWaWV3SWNvbkxvYWRlZCksIHdlYlZpZXcpOwot
ICAgIH0gZWxzZQotICAgICAgICBpZiAoZ19zaWduYWxfaGFuZGxlcl9pc19jb25uZWN0ZWQoZGF0
YWJhc2UsIHdlYlZpZXctPnByaXYtPmljb25Mb2FkZWRIYW5kbGVyKSkKLSAgICAgICAgICAgIGdf
c2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdChkYXRhYmFzZSwgd2ViVmlldy0+cHJpdi0+aWNvbkxv
YWRlZEhhbmRsZXIpOwotfQotI2VuZGlmCi0KLXZvaWQgd2Via2l0V2ViVmlld0RpcmVjdGlvbkNo
YW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrVGV4dERpcmVjdGlvbiwgZ3BvaW50ZXIp
Ci17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwot
Ci0gICAgR3RrVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBndGtfd2lkZ2V0X2dldF9kaXJlY3Rp
b24oR1RLX1dJREdFVCh3ZWJWaWV3KSk7Ci0KLSAgICBGcmFtZSogZm9jdXNlZEZyYW1lID0gY29y
ZSh3ZWJWaWV3KS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZEZyYW1lKCk7Ci0gICAgaWYgKCFm
b2N1c2VkRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIEVkaXRvciYgZWRpdG9yID0gZm9j
dXNlZEZyYW1lLT5lZGl0b3IoKTsKLSAgICBpZiAoIWVkaXRvci5jYW5FZGl0KCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7Ci0gICAgY2FzZSBHVEtfVEVYVF9E
SVJfTk9ORToKLSAgICAgICAgZWRpdG9yLnNldEJhc2VXcml0aW5nRGlyZWN0aW9uKE5hdHVyYWxX
cml0aW5nRGlyZWN0aW9uKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHVEtfVEVYVF9ESVJf
TFRSOgotICAgICAgICBlZGl0b3Iuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oTGVmdFRvUmlnaHRX
cml0aW5nRGlyZWN0aW9uKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHVEtfVEVYVF9ESVJf
UlRMOgotICAgICAgICBlZGl0b3Iuc2V0QmFzZVdyaXRpbmdEaXJlY3Rpb24oUmlnaHRUb0xlZnRX
cml0aW5nRGlyZWN0aW9uKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
Z19hc3NlcnRfbm90X3JlYWNoZWQoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLVdlYkNvcmU6OlBhZ2UqIGNvcmUoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKLXsKLSAgICBpZiAoIXdlYlZpZXcpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgV2Vi
S2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSB3ZWJWaWV3LT5wcml2OwotICAgIHJldHVybiBwcml2
ID8gcHJpdi0+Y29yZVBhZ2UgOiAwOwotfQotCi1XZWJLaXRXZWJWaWV3KiBraXQoV2ViQ29yZTo6
UGFnZSogY29yZVBhZ2UpCi17Ci0gICAgaWYgKCFjb3JlUGFnZSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICBXZWJDb3JlOjpDaHJvbWVDbGllbnQmIGNocm9tZUNsaWVudCA9IGNvcmVQYWdlLT5j
aHJvbWUoKS5jbGllbnQoKTsKLSAgICBpZiAoY2hyb21lQ2xpZW50LmlzRW1wdHlDaHJvbWVDbGll
bnQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViS2l0
OjpDaHJvbWVDbGllbnQmPihjaHJvbWVDbGllbnQpLndlYlZpZXcoKTsKLX0KLQotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGNkM2VkZjAuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnZpZXcuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ3MCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA3IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDcsIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KLSAqIENvcHlyaWdodCAo
QykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaWZuZGVmIHdlYmtpdHdlYnZpZXdfaAotI2RlZmluZSB3
ZWJraXR3ZWJ2aWV3X2gKLQotI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDxsaWJzb3Vw
L3NvdXAuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KLSNpbmNsdWRlIDx3
ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgotI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRmaWxlY2hvb3Nl
cnJlcXVlc3QuaD4KLSNpbmNsdWRlIDx3ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0Lmg+
Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYmZyYW1lLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dl
YmtpdHdlYmhpc3RvcnlpdGVtLmg+Ci0jaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYnNldHRpbmdz
Lmg+Ci0jaW5jbHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRvbS5oPgotCi1HX0JFR0lOX0RFQ0xTCi0K
LSNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCX1ZJRVcgICAgICAgICAgICAod2Via2l0X3dlYl92aWV3
X2dldF90eXBlKCkpCi0jZGVmaW5lIFdFQktJVF9XRUJfVklFVyhvYmopICAgICAgICAgICAgKEdf
VFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfVklFVywgV2Vi
S2l0V2ViVmlldykpCi0jZGVmaW5lIFdFQktJVF9XRUJfVklFV19DTEFTUyhrbGFzcykgICAgKEdf
VFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfVklFVywgV2Vi
S2l0V2ViVmlld0NsYXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1dFQl9WSUVXKG9iaikgICAgICAg
ICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9WSUVX
KSkKLSNkZWZpbmUgV0VCS0lUX0lTX1dFQl9WSUVXX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNL
X0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9WSUVXKSkKLSNkZWZpbmUgV0VC
S0lUX1dFQl9WSUVXX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIFdFQktJVF9UWVBFX1dFQl9WSUVXLCBXZWJLaXRXZWJWaWV3Q2xhc3MpKQotCi10eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlld1ByaXZhdGUgV2ViS2l0V2ViVmlld1ByaXZhdGU7Ci0K
LS8qKgotICogV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlOgotICogQFdFQktJVF9OQVZJR0FUSU9O
X1JFU1BPTlNFX0FDQ0VQVDogSW5zdHJ1Y3QgV2ViS2l0IHRvIGFsbG93IHRoZSBuYXZpZ2F0aW9u
LgotICogQFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0lHTk9SRTogSW5zdHJ1Y3QgV2ViS2l0
IHRvIGlnbm9yZSB0aGUgbmF2aWdhdGlvbi4KLSAqIEBXRUJLSVRfTkFWSUdBVElPTl9SRVNQT05T
RV9ET1dOTE9BRDogSW5zdHJ1Y3QgV2ViS2l0IHRvIHN0YXJ0IGEgZG93bmxvYWQgb2YgdGhlIGRl
c3RpbmF0aW9uIGluc3RlYWQuCi0gKgotICogRW51bSB2YWx1ZXMgdXNlZCB0byBkZW5vdGUgdGhl
IHZhcmlvdXMgcmVzcG9uc2VzIHRvIGEgbmF2aWdhdGlvbiBwb2xpY3kgZGVjaXNpb24uCi0gKiov
Ci10eXBlZGVmIGVudW0gewotICAgIFdFQktJVF9OQVZJR0FUSU9OX1JFU1BPTlNFX0FDQ0VQVCwK
LSAgICBXRUJLSVRfTkFWSUdBVElPTl9SRVNQT05TRV9JR05PUkUsCi0gICAgV0VCS0lUX05BVklH
QVRJT05fUkVTUE9OU0VfRE9XTkxPQUQKLX0gV2ViS2l0TmF2aWdhdGlvblJlc3BvbnNlOwotCi0v
KioKLSAqIFdlYktpdFdlYlZpZXdUYXJnZXRJbmZvOgotICogQFdFQktJVF9XRUJfVklFV19UQVJH
RVRfSU5GT19IVE1MOiBSaWNoIG1hcmt1cCBkYXRhCi0gKiBAV0VCS0lUX1dFQl9WSUVXX1RBUkdF
VF9JTkZPX1RFWFQ6IFRleHQgZGF0YQotICogQFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19J
TUFHRTogSW1hZ2UgZGF0YQotICogQFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19VUklfTElT
VDogVVJJIGxpc3QgZGF0YQotICogQFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19ORVRTQ0FQ
RV9VUkw6IEEgc2luZ2xlIFVSTCBpbiB0aGUgTmV0c2NhcGUgcHJvdG9jb2wKLSAqCi0gKiBFbnVt
IHZhbHVlcyB1c2VkIHRvIGRlbm90ZSB0aGUgaW5mbyB2YWx1ZSBvZiB2YXJpb3VzIHNlbGVjdGlv
biB0eXBlcy4gVGhlc2UgY2FuIGJlIHVzZWQKLSAqIHRvIGludGVycHJldCB0aGUgZGF0YSBXZWJL
aXRHVEsrIHB1Ymxpc2hlcyB2aWEgR3RrQ2xpcGJvYXJkIGFuZCBkcmFnLWFuZC1kcm9wLgotICoq
LwotdHlwZWRlZiBlbnVtCi17Ci0gICAgV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX0hUTUws
Ci0gICAgV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZPX1RFWFQsCi0gICAgV0VCS0lUX1dFQl9W
SUVXX1RBUkdFVF9JTkZPX0lNQUdFLAotICAgIFdFQktJVF9XRUJfVklFV19UQVJHRVRfSU5GT19V
UklfTElTVCwKLSAgICBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fTkVUU0NBUEVfVVJMCi19
IFdlYktpdFdlYlZpZXdUYXJnZXRJbmZvOwotCi0vKioKLSAqIFdlYktpdFdlYlZpZXdWaWV3TW9k
ZToKLSAqIEBXRUJLSVRfV0VCX1ZJRVdfVklFV19NT0RFX1dJTkRPV0VEOiBXaW5kb3dlZCB2aWV3
IG1vZGUKLSAqIEBXRUJLSVRfV0VCX1ZJRVdfVklFV19NT0RFX0ZMT0FUSU5HOiBGbG9hdGluZyB2
aWV3IG1vZGUKLSAqIEBXRUJLSVRfV0VCX1ZJRVdfVklFV19NT0RFX0ZVTExTQ1JFRU46IEZ1bGxz
Y3JlZW4gdmlldyBtb2RlCi0gKiBAV0VCS0lUX1dFQl9WSUVXX1ZJRVdfTU9ERV9NQVhJTUlaRUQ6
IE1heGltaXplZCB2aWV3IG1vZGUKLSAqIEBXRUJLSVRfV0VCX1ZJRVdfVklFV19NT0RFX01JTklN
SVpFRDogTWluaW1pemVkIHZpZXcgbW9kZQotICoKLSAqIEVudW0gdmFsdWVzIHVzZWQgdG8gZGVu
b3RlIHRoZSB2YXJpb3VzIHR5cGVzIG9mIHZpZXcgbW9kZXMuIFNlZSB0aGUKLSAqICNXZWJLaXRX
ZWJWaWV3OnZpZXctbW9kZSBwcm9wZXJ0eS4KLSAqKi8KLXR5cGVkZWYgZW51bQotewotICAgIFdF
QktJVF9XRUJfVklFV19WSUVXX01PREVfV0lORE9XRUQsCi0gICAgV0VCS0lUX1dFQl9WSUVXX1ZJ
RVdfTU9ERV9GTE9BVElORywKLSAgICBXRUJLSVRfV0VCX1ZJRVdfVklFV19NT0RFX0ZVTExTQ1JF
RU4sCi0gICAgV0VCS0lUX1dFQl9WSUVXX1ZJRVdfTU9ERV9NQVhJTUlaRUQsCi0gICAgV0VCS0lU
X1dFQl9WSUVXX1ZJRVdfTU9ERV9NSU5JTUlaRUQKLX0gV2ViS2l0V2ViVmlld1ZpZXdNb2RlOwot
Ci0vKioKLSAqIFdlYktpdFNlbGVjdGlvbkFmZmluaXR5OgotICogQFdFQktJVF9TRUxFQ1RJT05f
QUZGSU5JVFlfVVBTVFJFQU06IERvd25zdHJlYW0gc2VsZWN0aW9uIGFmZmluaXR5Ci0gKiBAV0VC
S0lUX1NFTEVDVElPTl9BRkZJTklUWV9ET1dOU1RSRUFNOiBVcHN0cmVhbSBzZWxlY3Rpb24gYWZm
aW5pdHkKLSAqCi0gKiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlbm90ZSBzZWxlY3Rpb24gYWZmaW5p
dHkuCi0gKiovCi10eXBlZGVmIGVudW0KLXsKLSAgICBXRUJLSVRfU0VMRUNUSU9OX0FGRklOSVRZ
X1VQU1RSRUFNLAotICAgIFdFQktJVF9TRUxFQ1RJT05fQUZGSU5JVFlfRE9XTlNUUkVBTSwKLX0g
V2ViS2l0U2VsZWN0aW9uQWZmaW5pdHk7Ci0KLS8qKgotICogV2ViS2l0SW5zZXJ0QWN0aW9uOgot
ICogQFdFQktJVF9JTlNFUlRfQUNUSU9OX1RZUEVEOiBUaGUgaW5zZXJ0IGFjdGlvbiB3YXMgZnJv
bSB0eXBpbmcuCi0gKiBAV0VCS0lUX0lOU0VSVF9BQ1RJT05fUEFTVEVEOiBUaGUgaW5zZXJ0IGFj
dGlvbiB3YXMgZnJvbSBwYXN0aW5nLgotICogQFdFQktJVF9JTlNFUlRfQUNUSU9OX0RST1BQRUQ6
IFRoZSBpbnNlcnQgYWN0aW9uIHdhcyBmcm9tIGRyYWdnaW5nIGFuZCBkcm9wcGluZy4KLSAqCi0g
KiBFbnVtIHZhbHVlcyB1c2VkIHRvIGRlbm90ZSBzb3VyY2Ugb2YgYW4gaW5zZXJ0IGFjdGlvbi4K
LSAqKi8KLXR5cGVkZWYgZW51bQotewotICAgIFdFQktJVF9JTlNFUlRfQUNUSU9OX1RZUEVELAot
ICAgIFdFQktJVF9JTlNFUlRfQUNUSU9OX1BBU1RFRCwKLSAgICBXRUJLSVRfSU5TRVJUX0FDVElP
Tl9EUk9QUEVELAotfSBXZWJLaXRJbnNlcnRBY3Rpb247Ci0KLXN0cnVjdCBfV2ViS2l0V2ViVmll
dyB7Ci0gICAgR3RrQ29udGFpbmVyIHBhcmVudF9pbnN0YW5jZTsKLQotICAgIC8qPCBwcml2YXRl
ID4qLwotICAgIFdlYktpdFdlYlZpZXdQcml2YXRlICpwcml2OwotfTsKLQotc3RydWN0IF9XZWJL
aXRXZWJWaWV3Q2xhc3MgewotICAgIEd0a0NvbnRhaW5lckNsYXNzIHBhcmVudF9jbGFzczsKLQot
ICAgIC8qPCBwdWJsaWMgPiovCi0gICAgLyoKLSAgICAgKiBkZWZhdWx0IGhhbmRsZXIvdmlydHVh
bCBtZXRob2RzCi0gICAgICovCi0gICAgV2ViS2l0V2ViVmlldyAgICAgICAgICAgICogKCogY3Jl
YXRlX3dlYl92aWV3KSAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViS2l0V2ViRnJhbWUgICAgICAgKndlYl9mcmFtZSk7Ci0KLSAgICBnYm9vbGVhbiAgICAgICAg
ICAgICAgICAgICAoKiB3ZWJfdmlld19yZWFkeSkgICAgICAgICAgKFdlYktpdFdlYlZpZXcqIHdl
Yl92aWV3KTsKLQotICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAgICgqIGNsb3NlX3dlYl92
aWV3KSAgICAgICAgIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7Ci0KLSAgICBXZWJLaXROYXZp
Z2F0aW9uUmVzcG9uc2UgICAoKiBuYXZpZ2F0aW9uX3JlcXVlc3RlZCkgICAoV2ViS2l0V2ViVmll
dyAgICAgICAgKndlYl92aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdE5ldHdvcmtSZXF1ZXN0ICpyZXF1ZXN0KTsKLSAgICB2b2lkICAgICAgICAgICAgICAgICAg
ICAgICAoKiB3aW5kb3dfb2JqZWN0X2NsZWFyZWQpICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndl
Yl92aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTR2xvYmFsQ29udGV4
dFJlZiAgICBjb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBKU09iamVjdFJlZiAgICAgICAgICAgd2luZG93X29iamVjdCk7
Ci0gICAgZ2NoYXIgICAgICAgICAgICAgICAgICAgICogKCogY2hvb3NlX2ZpbGUpICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0V2ViRnJhbWUgICAg
ICAgKmZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqb2xkX2ZpbGUpOwotICAgIGdib29s
ZWFuICAgICAgICAgICAgICAgICAgICgqIHNjcmlwdF9hbGVydCkgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgZ2NoYXIgICAgICAgICAgKmFsZXJ0X21lc3NhZ2UpOwotICAgIGdib29sZWFuICAg
ICAgICAgICAgICAgICAgICgqIHNjcmlwdF9jb25maXJtKSAgICAgICAgIChXZWJLaXRXZWJWaWV3
ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYkZyYW1lICAgICAgICpmcmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgICAgICAgICAgKmNvbmZpcm1fbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAg
ICAgKmRpZF9jb25maXJtKTsKLSAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAoKiBzY3Jp
cHRfcHJvbXB0KSAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRXZWJGcmFtZSAgICAgICAqZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICptZXNz
YWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqZGVmYXVsdF92YWx1ZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIqICAg
ICAgICAgICAgICAgKnZhbHVlKTsKLSAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAoKiBj
b25zb2xlX21lc3NhZ2UpICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBnY2hhciAgICAgICAgICAqbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICAg
IGxpbmVfbnVtYmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciogICAgICAgICAgc291cmNlX2lkKTsKLSAgICB2
b2lkICAgICAgICAgICAgICAgICAgICAgICAoKiBzZWxlY3RfYWxsKSAgICAgICAgICAgICAoV2Vi
S2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKLSAgICB2b2lkICAgICAgICAgICAgICAgICAg
ICAgICAoKiBjdXRfY2xpcGJvYXJkKSAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndl
Yl92aWV3KTsKLSAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAoKiBjb3B5X2NsaXBib2Fy
ZCkgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKLSAgICB2b2lkICAg
ICAgICAgICAgICAgICAgICAgICAoKiBwYXN0ZV9jbGlwYm9hcmQpICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgKndlYl92aWV3KTsKLSAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAo
KiBtb3ZlX2N1cnNvcikgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHdGtNb3ZlbWVudFN0ZXAgICAgICAgc3RlcCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCAgICAgICAgICAgICAgICAg
IGNvdW50KTsKLQotICAgIC8qCi0gICAgICogaW50ZXJuYWwKLSAgICAgKi8KLSAgICB2b2lkICAg
ICAgICAgICAgICAgICAgICAgICAoKiBzZXRfc2Nyb2xsX2FkanVzdG1lbnRzKSAoV2ViS2l0V2Vi
VmlldyAgICAgICAgKndlYl92aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHdGtBZGp1c3RtZW50ICAgICAgICAqaGFkanVzdG1l
bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEd0a0FkanVzdG1lbnQgICAgICAgICp2YWRqdXN0bWVudCk7Ci0KLSAgICB2b2lkICAg
ICAgICAgICAgICAgICAgICAgICAoKiB1bmRvKSAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgKndlYl92aWV3KTsKLSAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAo
KiByZWRvKSAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3
KTsKLSAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICAoKiBzaG91bGRfYWxsb3dfZWRpdGlu
Z19hY3Rpb24pIChXZWJLaXRXZWJWaWV3ICAgKndlYl92aWV3KTsKLSAgICBnYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICAoKiBlbnRlcmluZ19mdWxsc2NyZWVuKSAoV2ViS2l0V2ViVmlldyAgICp3
ZWJfdmlldyk7Ci0gICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgKCogbGVhdmluZ19mdWxs
c2NyZWVuKSAoV2ViS2l0V2ViVmlldyAgICp3ZWJfdmlldyk7Ci0gICAgZ2Jvb2xlYW4gICAgICAg
ICAgICAgICAgICAgKCogcnVuX2ZpbGVfY2hvb3NlcikgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYktpdEZpbGVDaG9vc2VyUmVxdWVzdCAqcmVxdWVzdCk7
Ci19OwotCi1XRUJLSVRfQVBJIEdUeXBlCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X3R5cGUgKHZvaWQp
OwotCi1XRUJLSVRfQVBJIEd0a1dpZGdldCAqCi13ZWJraXRfd2ViX3ZpZXdfbmV3ICh2b2lkKTsK
LQotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxlICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKLQot
Ci1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKLXdlYmtpdF93ZWJfdmlld19nZXRfdXJpICAgICAg
ICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwotCi1X
RUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19zZXRfbWFpbnRhaW5zX2JhY2tfZm9yd2Fy
ZF9saXN0IChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgIGZs
YWcpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCAqCi13ZWJraXRfd2Vi
X3ZpZXdfZ2V0X2JhY2tfZm9yd2FyZF9saXN0ICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgKndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X3dlYl92aWV3X2dv
X3RvX2JhY2tfZm9yd2FyZF9pdGVtICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJf
dmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRXZWJIaXN0b3J5SXRlbSAqaXRlbSk7Ci0KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdlYmtp
dF93ZWJfdmlld19jYW5fZ29fYmFjayAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3
ICAgICAgICAqd2ViX3ZpZXcpOwotCi1XRUJLSVRfQVBJIGdib29sZWFuCi13ZWJraXRfd2ViX3Zp
ZXdfY2FuX2dvX2JhY2tfb3JfZm9yd2FyZCAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
KndlYl92aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdpbnQgICAgICAgICAgICAgICAgICBzdGVwcyk7Ci1XRUJLSVRfQVBJIGdib29sZWFuCi13
ZWJraXRfd2ViX3ZpZXdfY2FuX2dvX2ZvcndhcmQgICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgKndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3Zp
ZXdfZ29fYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
KndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfZ29fYmFja19v
cl9mb3J3YXJkICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgICAg
ICAgICAgICAgICAgICBzdGVwcyk7Ci1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19n
b19mb3J3YXJkICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2Vi
X3ZpZXcpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcg
ICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwotCi0j
aWYgIWRlZmluZWQoV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCkKLVdFQktJVF9BUEkgdm9pZAot
d2Via2l0X3dlYl92aWV3X29wZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqdXJpKTsKLQotI2VuZGlmCi0K
LVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3JlbG9hZCAgICAgICAgICAgICAgICAg
ICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkg
dm9pZAotd2Via2l0X3dlYl92aWV3X3JlbG9hZF9ieXBhc3NfY2FjaGUgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0
X3dlYl92aWV3X2xvYWRfdXJpICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqdXJpKTsKLVdFQktJVF9BUEkgdm9pZAot
d2Via2l0X3dlYl92aWV3X2xvYWRfc3RyaW5nICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqY29udGVudCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAg
ICAgICAqbWltZV90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICplbmNvZGluZywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAq
YmFzZV91cmkpOwotCi0jaWYgIWRlZmluZWQoV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCkKLVdF
QktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X2xvYWRfaHRtbF9zdHJpbmcgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqY29u
dGVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBnY2hhciAgICAgICAgICAqYmFzZV91cmkpOwotI2VuZGlmCi0KLVdFQktJVF9BUEkgdm9p
ZAotd2Via2l0X3dlYl92aWV3X2xvYWRfcmVxdWVzdCAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXROZXR3b3JrUmVxdWVzdCAqcmVxdWVzdCk7Ci0KLVdF
QktJVF9BUEkgZ2Jvb2xlYW4KLXdlYmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dCAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAg
KnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2Jvb2xlYW4gICAgICAgICAgICAgIGNhc2Vfc2Vuc2l0aXZlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICBmb3J3
YXJkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi
b29sZWFuICAgICAgICAgICAgICB3cmFwKTsKLQotV0VCS0lUX0FQSSBndWludAotd2Via2l0X3dl
Yl92aWV3X21hcmtfdGV4dF9tYXRjaGVzICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqc3RyaW5nLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICBjYXNl
X3NlbnNpdGl2ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBndWludCAgICAgICAgICAgICAgICAgbGltaXQpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdl
YmtpdF93ZWJfdmlld19zZXRfaGlnaGxpZ2h0X3RleHRfbWF0Y2hlcyAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgIGhpZ2hsaWdodCk7Ci0KLVdFQktJ
VF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3VubWFya190ZXh0X21hdGNoZXMgICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0
V2ViRnJhbWUgKgotd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lICAgICAgICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0
V2ViRnJhbWUgKgotd2Via2l0X3dlYl92aWV3X2dldF9mb2N1c2VkX2ZyYW1lICAgICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgdm9pZAot
d2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfc2NyaXB0ICAgICAgICAgICAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAqc2NyaXB0KTsKLQotV0VCS0lU
X0FQSSBnYm9vbGVhbgotd2Via2l0X3dlYl92aWV3X2Nhbl9jdXRfY2xpcGJvYXJkICAgICAgICAg
ICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KLXdlYmtpdF93ZWJfdmlld19jYW5fY29weV9jbGlwYm9hcmQgICAgICAgICAgICAgIChX
ZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwotCi1XRUJLSVRfQVBJIGdib29sZWFuCi13
ZWJraXRfd2ViX3ZpZXdfY2FuX3Bhc3RlX2NsaXBib2FyZCAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgKndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3Zp
ZXdfY3V0X2NsaXBib2FyZCAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
KndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfY29weV9jbGlw
Ym9hcmQgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsK
LQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfcGFzdGVfY2xpcGJvYXJkICAgICAg
ICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKLQotV0VCS0lUX0FQ
SSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfZGVsZXRlX3NlbGVjdGlvbiAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSBnYm9vbGVhbgot
d2Via2l0X3dlYl92aWV3X2hhc19zZWxlY3Rpb24gICAgICAgICAgICAgICAgICAgKFdlYktpdFdl
YlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92
aWV3X3NlbGVjdF9hbGwgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdlYmtpdF93ZWJfdmlld19nZXRf
ZWRpdGFibGUgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3Zp
ZXcpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAg
ICAgICAgIGZsYWcpOwotCi1XRUJLSVRfQVBJIEd0a1RhcmdldExpc3QgKgotd2Via2l0X3dlYl92
aWV3X2dldF9jb3B5X3RhcmdldF9saXN0ICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgR3RrVGFyZ2V0TGlzdCAqCi13ZWJraXRfd2ViX3Zp
ZXdfZ2V0X3Bhc3RlX3RhcmdldF9saXN0ICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
KndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfc2V0X3NldHRp
bmdzICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFdl
YlNldHRpbmdzICAgICpzZXR0aW5ncyk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0V2ViU2V0dGluZ3Mg
Kgotd2Via2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0V2ViSW5zcGVj
dG9yICoKLXdlYmtpdF93ZWJfdmlld19nZXRfaW5zcGVjdG9yICAgICAgICAgICAgICAgICAgIChX
ZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwotCi1XRUJLSVRfQVBJIFdlYktpdFdlYldp
bmRvd0ZlYXR1cmVzKgotd2Via2l0X3dlYl92aWV3X2dldF93aW5kb3dfZmVhdHVyZXMgICAgICAg
ICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KLXdlYmtpdF93ZWJfdmlld19jYW5fc2hvd19taW1lX3R5cGUgICAgICAgICAgICAgIChX
ZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKm1pbWVfdHlwZSk7
Ci0KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdlYmtpdF93ZWJfdmlld19nZXRfdHJhbnNwYXJlbnQg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwotCi1XRUJL
SVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19zZXRfdHJhbnNwYXJlbnQgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgIGZsYWcp
OwotCi1XRUJLSVRfQVBJIGdmbG9hdAotd2Via2l0X3dlYl92aWV3X2dldF96b29tX2xldmVsICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJ
VF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3NldF96b29tX2xldmVsICAgICAgICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZmxvYXQgICAgICAgICAgICAgICAgem9vbV9s
ZXZlbCk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3pvb21faW4gICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdF
QktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3pvb21fb3V0ICAgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KLXdlYmtpdF93ZWJfdmlld19nZXRfZnVsbF9jb250ZW50X3pvb20gICAgICAgICAgIChX
ZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwotCi1XRUJLSVRfQVBJIHZvaWQKLXdlYmtp
dF93ZWJfdmlld19zZXRfZnVsbF9jb250ZW50X3pvb20gICAgICAgICAgIChXZWJLaXRXZWJWaWV3
ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgIGZ1bGxfY29udGVudF96b29tKTsKLQot
V0VCS0lUX0FQSSBjb25zdCBnY2hhcioKLXdlYmtpdF93ZWJfdmlld19nZXRfZW5jb2RpbmcgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwotCi1XRUJL
SVRfQVBJIHZvaWQKLXdlYmtpdF93ZWJfdmlld19zZXRfY3VzdG9tX2VuY29kaW5nICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgKmVuY29k
aW5nKTsKLQotV0VCS0lUX0FQSSBjb25zdCBjaGFyKgotd2Via2l0X3dlYl92aWV3X2dldF9jdXN0
b21fZW5jb2RpbmcgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7
Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3NldF92aWV3X21vZGUgICAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRXZWJWaWV3Vmlld01v
ZGUgbW9kZSk7Ci0KLVdFQktJVF9BUEkgV2ViS2l0V2ViVmlld1ZpZXdNb2RlCi13ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3ZpZXdfbW9kZSAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgKndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfd2ViX3ZpZXdfbW92ZV9j
dXJzb3IgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEd0a01v
dmVtZW50U3RlcCAgICAgICAgc3RlcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnaW50ICAgICAgICAgICAgICAgICAgIGNvdW50KTsKLQotV0VCS0lU
X0FQSSBXZWJLaXRMb2FkU3RhdHVzCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X2xvYWRfc3RhdHVzICAg
ICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKLQotV0VCS0lU
X0FQSSBnZG91YmxlCi13ZWJraXRfd2ViX3ZpZXdfZ2V0X3Byb2dyZXNzICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSB2b2lk
Ci13ZWJraXRfd2ViX3ZpZXdfdW5kbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgKndlYl92aWV3KTsKLQotV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0
X3dlYl92aWV3X2Nhbl91bmRvICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICp3ZWJfdmlldyk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl92aWV3X3Jl
ZG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJf
dmlldyk7Ci0KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdlYmtpdF93ZWJfdmlld19jYW5fcmVkbyAg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwot
Ci0jaWYgIWRlZmluZWQoV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCkKLVdFQktJVF9BUEkgdm9p
ZAotd2Via2l0X3dlYl92aWV3X3NldF92aWV3X3NvdXJjZV9tb2RlICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcgICAgICAgICp3ZWJfdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICB2aWV3X3NvdXJjZV9tb2Rl
KTsKLQotV0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X3dlYl92aWV3X2dldF92aWV3X3NvdXJj
ZV9tb2RlICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJfdmlldyk7Ci0jZW5k
aWYKLQotV0VCS0lUX0FQSSBXZWJLaXRIaXRUZXN0UmVzdWx0Kgotd2Via2l0X3dlYl92aWV3X2dl
dF9oaXRfdGVzdF9yZXN1bHQgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICp3ZWJf
dmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
ZGtFdmVudEJ1dHRvbiAgICAgICAqZXZlbnQpOwotCi1XRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoK
LXdlYmtpdF93ZWJfdmlld19nZXRfaWNvbl91cmkgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwotCi0jaWYgIWRlZmluZWQoV0VCS0lUX0RJU0FCTEVf
REVQUkVDQVRFRCkKLVdFQktJVF9BUEkgR2RrUGl4YnVmICoKLXdlYmtpdF93ZWJfdmlld19nZXRf
aWNvbl9waXhidWYgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3Zp
ZXcpOwotI2VuZGlmCi0KLVdFQktJVF9BUEkgR2RrUGl4YnVmICoKLXdlYmtpdF93ZWJfdmlld190
cnlfZ2V0X2Zhdmljb25fcGl4YnVmICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2Vi
X3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3VpbnQgICAgICAgICAgICAgICAgIHdpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgICBoZWlnaHQpOwotCi1X
RUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50ICoKLXdlYmtpdF93ZWJfdmlld19nZXRfZG9tX2Rv
Y3VtZW50ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2ViX3ZpZXcpOwot
Ci1XRUJLSVRfQVBJIFdlYktpdFZpZXdwb3J0QXR0cmlidXRlcyoKLXdlYmtpdF93ZWJfdmlld19n
ZXRfdmlld3BvcnRfYXR0cmlidXRlcyAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2Vi
X3ZpZXcpOwotCi1XRUJLSVRfQVBJIGNhaXJvX3N1cmZhY2VfdCoKLXdlYmtpdF93ZWJfdmlld19n
ZXRfc25hcHNob3QgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAqd2Vi
X3ZpZXcpOwotCi1HX0VORF9ERUNMUwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXdwcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdmZjE4ZTkuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXdwcml2YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhl
cgotICogQ29weXJpZ2h0IChDKSAyMDA4IEphbiBNaWNoYWVsIEMuIEFsb256bwotICogQ29weXJp
Z2h0IChDKSAyMDA4LCAyMDEwIENvbGxhYm9yYSBMdGQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
SWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0gKi8KLQotI2lmbmRlZiB3ZWJraXR3ZWJ2aWV3cHJpdmF0ZV9oCi0jZGVmaW5lIHdlYmtp
dHdlYnZpZXdwcml2YXRlX2gKLQotI2luY2x1ZGUgIkFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250
ZXh0LmgiCi0jaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCi0jaW5jbHVkZSAiR3Rr
Q2xpY2tDb3VudGVyLmgiCi0jaW5jbHVkZSAiR3RrRHJhZ0FuZERyb3BIZWxwZXIuaCIKLSNpbmNs
dWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRlICJSZXNv
dXJjZVJlc3BvbnNlLmgiCi0jaW5jbHVkZSAiV2ViVmlld0lucHV0TWV0aG9kRmlsdGVyLmgiCi0j
aW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlLmgiCi0jaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg+Ci0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQot
I2luY2x1ZGUgIlVzZXJNZWRpYUNsaWVudEd0ay5oIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTkFW
SUdBVE9SX0NPTlRFTlRfVVRJTFMpCi0jaW5jbHVkZSAiTmF2aWdhdG9yQ29udGVudFV0aWxzQ2xp
ZW50R3RrLmgiCi0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJDb3JlOjpQYWdlKiBj
b3JlKFdlYktpdFdlYlZpZXcqKTsKLVdlYktpdFdlYlZpZXcqIGtpdChXZWJDb3JlOjpQYWdlKik7
Ci19Ci0KLWV4dGVybiAiQyIgewotCi0jZGVmaW5lIFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFU
RShvYmopICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBF
X1dFQl9WSUVXLCBXZWJLaXRXZWJWaWV3UHJpdmF0ZSkpCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0
V2ViVmlld1ByaXZhdGUgV2ViS2l0V2ViVmlld1ByaXZhdGU7Ci1zdHJ1Y3QgX1dlYktpdFdlYlZp
ZXdQcml2YXRlIHsKLSAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZTsKLSAgICBib29sIGhhc05h
dGl2ZVdpbmRvdzsKLSAgICBPd25QdHI8V2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlPiBiYWNr
aW5nU3RvcmU7Ci0gICAgR1JlZlB0cjxXZWJLaXRXZWJTZXR0aW5ncz4gd2ViU2V0dGluZ3M7Ci0g
ICAgR1JlZlB0cjxXZWJLaXRXZWJJbnNwZWN0b3I+IHdlYkluc3BlY3RvcjsKLSAgICBHUmVmUHRy
PFdlYktpdFZpZXdwb3J0QXR0cmlidXRlcz4gdmlld3BvcnRBdHRyaWJ1dGVzOwotICAgIEdSZWZQ
dHI8V2ViS2l0V2ViV2luZG93RmVhdHVyZXM+IHdlYldpbmRvd0ZlYXR1cmVzOwotCi0gICAgV2Vi
S2l0V2ViRnJhbWUqIG1haW5GcmFtZTsKLSAgICBHUmVmUHRyPFdlYktpdFdlYkJhY2tGb3J3YXJk
TGlzdD4gYmFja0ZvcndhcmRMaXN0OwotCi0gICAgR3RrTWVudSogY3VycmVudE1lbnU7Ci0gICAg
Z2ludCBsYXN0UG9wdXBYUG9zaXRpb247Ci0gICAgZ2ludCBsYXN0UG9wdXBZUG9zaXRpb247Ci0K
LSAgICBIYXNoU2V0PEd0a1dpZGdldCo+IGNoaWxkcmVuOwotICAgIFdlYktpdDo6V2ViVmlld0lu
cHV0TWV0aG9kRmlsdGVyIGltRmlsdGVyOwotCi0gICAgZ2Jvb2xlYW4gdHJhbnNwYXJlbnQ7Ci0g
ICAgYm9vbCBuZWVkc1Jlc2l6ZU9uTWFwOwotCi0jaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCi0g
ICAgLy8gR3RrU2Nyb2xsYWJsZVBvbGljeSBuZWVkcyB0byBiZSBjaGVja2VkIHdoZW4KLSAgICAv
LyBkcml2aW5nIHRoZSBzY3JvbGxhYmxlIGFkanVzdG1lbnQgdmFsdWVzCi0gICAgR3RrU2Nyb2xs
YWJsZVBvbGljeSBob3Jpem9udGFsU2Nyb2xsaW5nUG9saWN5OwotICAgIEd0a1Njcm9sbGFibGVQ
b2xpY3kgdmVydGljYWxTY3JvbGxpbmdQb2xpY3k7Ci0jZW5kaWYKLQotICAgIGdib29sZWFuIHpv
b21GdWxsQ29udGVudDsKLSAgICBXZWJLaXRMb2FkU3RhdHVzIGxvYWRTdGF0dXM7Ci0gICAgQ1N0
cmluZyBlbmNvZGluZzsKLSAgICBDU3RyaW5nIGN1c3RvbUVuY29kaW5nOwotCi0gICAgQ1N0cmlu
ZyBpY29uVVJJOwotCi0gICAgZ2Jvb2xlYW4gZGlzcG9zaW5nOwotCi0gICAgLy8gVGhlc2UgYXJl
IGhvc3RlZCBoZXJlIGJlY2F1c2UgdGhlIERhdGFTb3VyY2Ugb2JqZWN0IGlzCi0gICAgLy8gY3Jl
YXRlZCB0b28gbGF0ZSBpbiB0aGUgZnJhbWUgbG9hZGluZyBwcm9jZXNzLgotICAgIEdSZWZQdHI8
V2ViS2l0V2ViUmVzb3VyY2U+IG1haW5SZXNvdXJjZTsKLSAgICBDU3RyaW5nIG1haW5SZXNvdXJj
ZUlkZW50aWZpZXI7Ci0gICAgR1JlZlB0cjxHSGFzaFRhYmxlPiBzdWJSZXNvdXJjZXM7Ci0gICAg
Q1N0cmluZyB0b29sdGlwVGV4dDsKLSAgICBXZWJDb3JlOjpJbnRSZWN0IHRvb2x0aXBBcmVhOwot
Ci0gICAgV2ViQ29yZTo6R3RrQ2xpY2tDb3VudGVyIGNsaWNrQ291bnRlcjsKLSAgICBXZWJDb3Jl
OjpHdGtEcmFnQW5kRHJvcEhlbHBlciBkcmFnQW5kRHJvcEhlbHBlcjsKLSAgICBib29sIHNlbGZT
Y3JvbGxpbmc7Ci0gICAgR1JlZlB0cjxHdGtUYXJnZXRMaXN0PiB0YXJnZXRMaXN0OwotCi0gICAg
c3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQ+IGFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0OwotCi0jaWYgRU5BQkxFKElDT05EQVRBQkFTRSkK
LSAgICBndWxvbmcgaWNvbkxvYWRlZEhhbmRsZXI7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6VXNlck1lZGlhQ2xpZW50R3Rr
PiB1c2VyTWVkaWFDbGllbnQ7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R2VvbG9jYXRpb25DbGllbnRNb2NrPiBnZW9sb2Nh
dGlvbkNsaWVudE1vY2s7Ci0jZW5kaWYKLX07Ci0KLXZvaWQgd2Via2l0X3dlYl92aWV3X25vdGlm
eV9yZWFkeShXZWJLaXRXZWJWaWV3Kik7Ci0KLXZvaWQgd2Via2l0X3dlYl92aWV3X3JlcXVlc3Rf
ZG93bmxvYWQoV2ViS2l0V2ViVmlldyosIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgPSBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlKCksIFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlKiA9IDApOwotCi12b2lkIHdlYmtpdF93ZWJfdmlld19hZGRf
cmVzb3VyY2UoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIqLCBXZWJLaXRXZWJSZXNvdXJjZSop
Owotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfYWRkX21haW5fcmVzb3VyY2UoV2ViS2l0V2ViVmlldyos
IGNvbnN0IGNoYXIqLCBXZWJLaXRXZWJSZXNvdXJjZSopOwotdm9pZCB3ZWJraXRXZWJWaWV3UmVt
b3ZlU3VicmVzb3VyY2UoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIqKTsKLVdlYktpdFdlYlJl
c291cmNlKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Jlc291cmNlKFdlYktpdFdlYlZpZXcqLCBjaGFy
Kik7Ci1XZWJLaXRXZWJSZXNvdXJjZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWluX3Jlc291cmNl
KFdlYktpdFdlYlZpZXcqKTsKLXZvaWQgd2Via2l0X3dlYl92aWV3X2NsZWFyX3Jlc291cmNlcyhX
ZWJLaXRXZWJWaWV3Kik7Ci1HTGlzdCogd2Via2l0X3dlYl92aWV3X2dldF9zdWJyZXNvdXJjZXMo
V2ViS2l0V2ViVmlldyopOwotCi12b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfdG9vbHRpcF90ZXh0
KFdlYktpdFdlYlZpZXcqLCBjb25zdCBjaGFyKik7Ci1HdGtNZW51KiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2NvbnRleHRfbWVudShXZWJLaXRXZWJWaWV3Kik7Ci0KLXZvaWQgd2Via2l0V2ViVmlld1J1
bkZpbGVDaG9vc2VyUmVxdWVzdChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0RmlsZUNob29zZXJSZXF1
ZXN0Kik7Ci0KLSNpZiBFTkFCTEUoSUNPTkRBVEFCQVNFKQotdm9pZCB3ZWJraXRXZWJWaWV3UmVn
aXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKFdlYktpdFdlYlZpZXcqLCBib29sIHNob3VsZFJlZ2lz
dGVyKTsKLXZvaWQgd2Via2l0V2ViVmlld0ljb25Mb2FkZWQoV2ViS2l0RmF2aWNvbkRhdGFiYXNl
KiwgY29uc3QgY2hhciogZnJhbWVVUkksIFdlYktpdFdlYlZpZXcqKTsKLSNlbmRpZgotfQotCi0j
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ3aW5k
b3dmZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vid2luZG93
ZmVhdHVyZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDFkYjZmLi4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJl
cy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOCBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9tZS5vcmc+Ci0gKiBDb3B5cmln
aHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
ICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAot
ICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIndlYmtpdHdlYndpbmRvd2ZlYXR1cmVzLmgiCi0KLSNpbmNsdWRlICJXaW5k
b3dGZWF0dXJlcy5oIgotI2luY2x1ZGUgIndlYmtpdGdsb2JhbHNwcml2YXRlLmgiCi0jaW5jbHVk
ZSAid2Via2l0d2Vid2luZG93ZmVhdHVyZXNwcml2YXRlLmgiCi0KLS8qKgotICogU0VDVElPTjp3
ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcwotICogQHNob3J0X2Rlc2NyaXB0aW9uOiBXaW5kb3cgcHJv
cGVydGllcyBvZiBhICNXZWJLaXRXZWJWaWV3Ci0gKiBAc2VlX2Fsc286ICNXZWJLaXRXZWJWaWV3
Ojp3ZWItdmlldy1yZWFkeQotICoKLSAqIFRoZSBjb250ZW50IG9mIGEgI1dlYktpdFdlYlZpZXcg
Y2FuIHJlcXVlc3QgdG8gY2hhbmdlIGNlcnRhaW4KLSAqIHByb3BlcnRpZXMgb2YgYSAjV2ViS2l0
V2ViVmlldy4gVGhpcyBjYW4gaW5jbHVkZSB0aGUgeCwgeSBwb3NpdGlvbgotICogb2YgdGhlIHdp
bmRvdywgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYnV0IGFsc28gaWYgYSB0b29sYmFyLAotICogc2Ny
b2xsYmFyLCBzdGF0dXNiYXIsIGxvY2F0aW9uYmFyIHNob3VsZCBiZSB2aXNpYmxlIHRvIHRoZSB1
c2VyLAotICogdGhlIHJlcXVlc3QgdG8gc2hvdyB0aGUgI1dlYktpdFdlYlZpZXcgZnVsbHNjcmVl
bi4KLSAqCi0gKiBJbiB0aGUgbm9ybWFsIGNhc2Ugb25lIHdpbGwgdXNlICN3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X3dpbmRvd19mZWF0dXJlcwotICogdG8gZ2V0IHRoZSAjV2ViS2l0V2ViV2luZG93RmVh
dHVyZXMgYW5kIHRoZW4gbW9uaXRvciB0aGUgcHJvcGVydHkKLSAqIGNoYW5nZXMuIEJlIGF3YXJl
IHRoYXQgdGhlICNXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyBtaWdodCBjaGFuZ2UKLSAqIGJlZm9y
ZSAjV2ViS2l0V2ViVmlldzo6d2ViLXZpZXctcmVhZHkgc2lnbmFsIGlzIGVtaXR0ZWQuCi0gKiBU
byBiZSBzYWZlIGxpc3RlbiB0byB0aGUgbm90aWZ5Ojp3aW5kb3ctZmVhdHVyZXMgc2lnbmFsIG9m
IHRoZSAjV2ViS2l0V2ViVmlldwotICogYW5kIHJlY29ubmVjdCB0aGUgc2lnbmFscyB3aGVuZXZl
ciB0aGUgI1dlYktpdFdlYldpbmRvd0ZlYXR1cmVzIG9mCi0gKiBhICNXZWJLaXRXZWJWaWV3IGNo
YW5nZXMuCi0gKgotICogPGluZm9ybWFsZXhhbXBsZT48cHJvZ3JhbWxpc3Rpbmc+Ci0gKiAvPCEt
LSAtLT4qIEdldCB0aGUgY3VycmVudCBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyAqPCEtLSAtLT4v
Ci0gKiBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlcyAqZmVhdHVyZXMgPSB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X3dpbmRvd19mZWF0dXJlcyAobXlfd2Vidmlldyk7Ci0gKgotICogLzwhLS0gLS0+KiBDb25u
ZWN0IHRvIHRoZSBwcm9wZXJ0eSBjaGFuZ2VzICo8IS0tIC0tPi8KLSAqIGdfc2lnbmFsX2Nvbm5l
Y3QgKEdfT0JKRUNUKGZlYXR1cmVzKSwgIm5vdGlmeTo6bWVudWJhci12aXNpYmxlIiwgR19DQUxM
QkFDSyhtYWtlX21lbnVfYmFyX3Zpc2libGUpLCBOVUxMKTsKLSAqIGdfc2lnbmFsX2Nvbm5lY3Qg
KEdfT0JKRUNUKGZlYXR1cmVzKSwgIm5vdGlmeTo6c3RhdHVzYmFyLXZpc2libGUiLCBHX0NBTExC
QUNLKG1ha2Vfc3RhdHVzX2Jhcl92aXNpYmxlKSwgTlVMTCk7Ci0gKgotICogPC9wcm9ncmFtbGlz
dGluZz48L2luZm9ybWFsZXhhbXBsZT4KLSAqLwotCi1lbnVtIHsKLSAgICBQUk9QXzAsCi0KLSAg
ICBQUk9QX1gsCi0gICAgUFJPUF9ZLAotICAgIFBST1BfV0lEVEgsCi0gICAgUFJPUF9IRUlHSFQs
Ci0gICAgUFJPUF9UT09MQkFSX1ZJU0lCTEUsCi0gICAgUFJPUF9TVEFUVVNCQVJfVklTSUJMRSwK
LSAgICBQUk9QX1NDUk9MTEJBUl9WSVNJQkxFLAotICAgIFBST1BfTUVOVUJBUl9WSVNJQkxFLAot
ICAgIFBST1BfTE9DQVRJT05CQVJfVklTSUJMRSwKLSAgICBQUk9QX0ZVTExTQ1JFRU4sCi19Owot
Ci1HX0RFRklORV9UWVBFKFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzLCB3ZWJraXRfd2ViX3dpbmRv
d19mZWF0dXJlcywgR19UWVBFX09CSkVDVCkKLQotc3RydWN0IF9XZWJLaXRXZWJXaW5kb3dGZWF0
dXJlc1ByaXZhdGUgewotICAgIGdpbnQgeDsKLSAgICBnaW50IHk7Ci0gICAgZ2ludCB3aWR0aDsK
LSAgICBnaW50IGhlaWdodDsKLQotICAgIGdib29sZWFuIHRvb2xiYXJfdmlzaWJsZTsKLSAgICBn
Ym9vbGVhbiBzdGF0dXNiYXJfdmlzaWJsZTsKLSAgICBnYm9vbGVhbiBzY3JvbGxiYXJfdmlzaWJs
ZTsKLSAgICBnYm9vbGVhbiBtZW51YmFyX3Zpc2libGU7Ci0gICAgZ2Jvb2xlYW4gbG9jYXRpb25i
YXJfdmlzaWJsZTsKLQotICAgIGdib29sZWFuIGZ1bGxzY3JlZW47Ci19OwotCi0jZGVmaW5lIFdF
QktJVF9XRUJfV0lORE9XX0ZFQVRVUkVTX0dFVF9QUklWQVRFKG9iaikgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfUFJJVkFURSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX1dJTkRPV19GRUFUVVJFUywgV2Vi
S2l0V2ViV2luZG93RmVhdHVyZXNQcml2YXRlKSkKLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl93
aW5kb3dfZmVhdHVyZXNfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9p
ZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpOwotCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX3dpbmRvd19mZWF0dXJlc19nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0
LCBndWludCBwcm9wX2lkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYyk7Ci0KLXN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX2NsYXNzX2luaXQoV2ViS2l0V2Vi
V2luZG93RmVhdHVyZXNDbGFzcyoga2xhc3MpCi17Ci0gICAgR09iamVjdENsYXNzKiBnb2JqZWN0
X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3MpOwotICAgIGdvYmplY3RfY2xhc3MtPnNldF9w
cm9wZXJ0eSA9IHdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX3NldF9wcm9wZXJ0eTsKLSAgICBn
b2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfd2ViX3dpbmRvd19mZWF0dXJlc19n
ZXRfcHJvcGVydHk7Ci0KLSAgICBHUGFyYW1GbGFncyBmbGFncyA9IChHUGFyYW1GbGFncykoV0VC
S0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUKTsKLQotICAgIHdlYmtpdElu
aXQoKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzOng6Ci0gICAg
ICoKLSAgICAgKiBUaGUgc3RhcnRpbmcgeCBwb3NpdGlvbiBvZiB0aGUgd2luZG93IG9uIHRoZSBz
Y3JlZW4uCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4wLjMKLSAgICAgKi8KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQUk9QX1gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnX3BhcmFtX3NwZWNfaW50KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIngiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIngiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBzdGFydGluZyB4IHBvc2l0aW9u
IG9mIHRoZSB3aW5kb3cgb24gdGhlIHNjcmVlbi4iLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01B
WElOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgotICAgICAqIFdl
YktpdFdlYldpbmRvd0ZlYXR1cmVzOnk6Ci0gICAgICoKLSAgICAgKiBUaGUgc3RhcnRpbmcgeSBw
b3NpdGlvbiBvZiB0aGUgd2luZG93IG9uIHRoZSBzY3JlZW4uCi0gICAgICoKLSAgICAgKiBTaW5j
ZTogMS4wLjMKLSAgICAgKi8KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdv
YmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1ks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfaW50KAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInkiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlRoZSBzdGFydGluZyB5IHBvc2l0aW9uIG9mIHRoZSB3aW5kb3cgb24gdGhlIHNjcmVl
bi4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHX01BWElOVCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxhZ3MpKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzOndpZHRo
OgotICAgICAqCi0gICAgICogVGhlIHdpZHRoIG9mIHRoZSB3aW5kb3cgb24gdGhlIHNjcmVlbi4K
LSAgICAgKgotICAgICAqIFNpbmNlOiAxLjAuMwotICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBST1BfV0lEVEgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnX3BhcmFtX3NwZWNfaW50KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIndpZHRoIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXaWR0aCIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIHdpZHRoIG9mIHRoZSB3
aW5kb3cgb24gdGhlIHNjcmVlbi4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01BWElOVCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYldp
bmRvd0ZlYXR1cmVzOmhlaWdodDoKLSAgICAgKgotICAgICAqIFRoZSBoZWlnaHQgb2YgdGhlIHdp
bmRvdyBvbiB0aGUgc2NyZWVuLgotICAgICAqCi0gICAgICogU2luY2U6IDEuMC4zCi0gICAgICov
Ci0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9IRUlHSFQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfaW50KAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImhlaWdodCIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiSGVpZ2h0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJUaGUgaGVpZ2h0IG9mIHRoZSB3aW5kb3cgb24gdGhlIHNjcmVlbi4iLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHX01BWElOVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC0xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQotICAg
IC8qKgotICAgICAqIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzOnRvb2xiYXItdmlzaWJsZToKLSAg
ICAgKgotICAgICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRvb2xiYXIgc2hvdWxkIGJlIHZpc2li
bGUgZm9yIHRoZSB3aW5kb3cuCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4wLjMKLSAgICAgKi8K
LSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1RPT0xCQVJfVklTSUJMRSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvb2xiYXItdmlzaWJsZSIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVG9vbGJhciBWaXNpYmxlIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb250cm9scyB3aGV0aGVyIHRoZSB0
b29sYmFyIHNob3VsZCBiZSB2aXNpYmxlIGZvciB0aGUgd2luZG93LiIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBUUlVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmxhZ3MpKTsKLQotICAgIC8qKgotICAgICAqIFdlYktpdFdlYldpbmRvd0ZlYXR1
cmVzOnN0YXR1c2Jhci12aXNpYmxlOgotICAgICAqCi0gICAgICogQ29udHJvbHMgd2hldGhlciB0
aGUgc3RhdHVzYmFyIHNob3VsZCBiZSB2aXNpYmxlIGZvciB0aGUgd2luZG93LgotICAgICAqCi0g
ICAgICogU2luY2U6IDEuMC4zCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShnb2JqZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUFJPUF9TVEFUVVNCQVJfVklTSUJMRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInN0YXR1c2Jhci12aXNpYmxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJTdGF0dXNiYXIgVmlzaWJsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiQ29udHJvbHMgd2hldGhlciB0aGUgc3RhdHVzYmFyIHNob3VsZCBiZSB2aXNp
YmxlIGZvciB0aGUgd2luZG93LiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUUlVFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKTsKLQot
ICAgIC8qKgotICAgICAqIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzOnNjcm9sbGJhci12aXNpYmxl
OgotICAgICAqCi0gICAgICogQ29udHJvbHMgd2hldGhlciB0aGUgc2Nyb2xsYmFycyBzaG91bGQg
YmUgdmlzaWJsZSBmb3IgdGhlIHdpbmRvdy4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjAuMwot
ICAgICAqLwotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFz
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfU0NST0xMQkFSX1ZJ
U0lCTEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNf
Ym9vbGVhbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY3JvbGxiYXIt
dmlzaWJsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2Nyb2xsYmFy
IFZpc2libGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRyb2xz
IHdoZXRoZXIgdGhlIHNjcm9sbGJhcnMgc2hvdWxkIGJlIHZpc2libGUgZm9yIHRoZSB3aW5kb3cu
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAgLyoqCi0gICAgICogV2Vi
S2l0V2ViV2luZG93RmVhdHVyZXM6bWVudWJhci12aXNpYmxlOgotICAgICAqCi0gICAgICogQ29u
dHJvbHMgd2hldGhlciB0aGUgbWVudWJhciBzaG91bGQgYmUgdmlzaWJsZSBmb3IgdGhlIHdpbmRv
dy4KLSAgICAgKgotICAgICAqIFNpbmNlOiAxLjAuMwotICAgICAqLwotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBST1BfTUVOVUJBUl9WSVNJQkxFLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibWVudWJhci12aXNpYmxlIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJNZW51YmFyIFZpc2libGUiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkNvbnRyb2xzIHdoZXRoZXIgdGhlIG1lbnViYXIgc2hvdWxkIGJl
IHZpc2libGUgZm9yIHRoZSB3aW5kb3cuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRSVUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykp
OwotCi0gICAgLyoqCi0gICAgICogV2ViS2l0V2ViV2luZG93RmVhdHVyZXM6bG9jYXRpb25iYXIt
dmlzaWJsZToKLSAgICAgKgotICAgICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIGxvY2F0aW9uYmFy
IHNob3VsZCBiZSB2aXNpYmxlIGZvciB0aGUgd2luZG93LgotICAgICAqCi0gICAgICogU2luY2U6
IDEuMC4zCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2Jq
ZWN0X2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9MT0NB
VElPTkJBUl9WSVNJQkxFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19w
YXJhbV9zcGVjX2Jvb2xlYW4oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bG9jYXRpb25iYXItdmlzaWJsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTG9jYXRpb25iYXIgVmlzaWJsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiQ29udHJvbHMgd2hldGhlciB0aGUgbG9jYXRpb25iYXIgc2hvdWxkIGJlIHZpc2libGUg
Zm9yIHRoZSB3aW5kb3cuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRS
VUUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykpOwotCi0gICAg
LyoqCi0gICAgICogV2ViS2l0V2ViV2luZG93RmVhdHVyZXM6ZnVsbHNjcmVlbjoKLSAgICAgKgot
ICAgICAqIENvbnRyb2xzIHdoZXRoZXIgd2luZG93IHdpbGwgYmUgZGlzcGxheWVkIGZ1bGxzY3Jl
ZW4uCi0gICAgICoKLSAgICAgKiBTaW5jZTogMS4wLjMKLSAgICAgKi8KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUk9QX0ZVTExTQ1JFRU4sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJmdWxsc2NyZWVuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJGdWxsc2NyZWVuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJDb250cm9scyB3aGV0aGVyIHdpbmRvdyB3aWxsIGJlIGRpc3BsYXllZCBmdWxsc2NyZWVu
LiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSk7Ci0KLQotICAgIGdfdHlwZV9jbGFz
c19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9mKFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzUHJpdmF0
ZSkpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3dpbmRvd19mZWF0dXJlc19pbml0KFdl
YktpdFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJfd2luZG93X2ZlYXR1cmVzKQotewotICAgIHdlYl93
aW5kb3dfZmVhdHVyZXMtPnByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUod2ViX3dp
bmRvd19mZWF0dXJlcywgV0VCS0lUX1RZUEVfV0VCX1dJTkRPV19GRUFUVVJFUywgV2ViS2l0V2Vi
V2luZG93RmVhdHVyZXNQcml2YXRlKTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X3dlYl93aW5k
b3dfZmVhdHVyZXNfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwg
Y29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0V2Vi
V2luZG93RmVhdHVyZXMqIHdlYl93aW5kb3dfZmVhdHVyZXMgPSBXRUJLSVRfV0VCX1dJTkRPV19G
RUFUVVJFUyhvYmplY3QpOwotICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzUHJpdmF0ZSogcHJp
diA9IHdlYl93aW5kb3dfZmVhdHVyZXMtPnByaXY7Ci0KLSAgICBzd2l0Y2gocHJvcF9pZCkgewot
ICAgIGNhc2UgUFJPUF9YOgotICAgICAgICBwcml2LT54ID0gZ192YWx1ZV9nZXRfaW50KHZhbHVl
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1k6Ci0gICAgICAgIHByaXYtPnkgPSBn
X3ZhbHVlX2dldF9pbnQodmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfV0lE
VEg6Ci0gICAgICAgIHByaXYtPndpZHRoID0gZ192YWx1ZV9nZXRfaW50KHZhbHVlKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0hFSUdIVDoKLSAgICAgICAgcHJpdi0+aGVpZ2h0ID0g
Z192YWx1ZV9nZXRfaW50KHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1RP
T0xCQVJfVklTSUJMRToKLSAgICAgICAgcHJpdi0+dG9vbGJhcl92aXNpYmxlID0gZ192YWx1ZV9n
ZXRfYm9vbGVhbih2YWx1ZSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9TVEFUVVNC
QVJfVklTSUJMRToKLSAgICAgICAgcHJpdi0+c3RhdHVzYmFyX3Zpc2libGUgPSBnX3ZhbHVlX2dl
dF9ib29sZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX1NDUk9MTEJB
Ul9WSVNJQkxFOgotICAgICAgICBwcml2LT5zY3JvbGxiYXJfdmlzaWJsZSA9IGdfdmFsdWVfZ2V0
X2Jvb2xlYW4odmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfTUVOVUJBUl9W
SVNJQkxFOgotICAgICAgICBwcml2LT5tZW51YmFyX3Zpc2libGUgPSBnX3ZhbHVlX2dldF9ib29s
ZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0xPQ0FUSU9OQkFSX1ZJ
U0lCTEU6Ci0gICAgICAgIHByaXYtPmxvY2F0aW9uYmFyX3Zpc2libGUgPSBnX3ZhbHVlX2dldF9i
b29sZWFuKHZhbHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQUk9QX0ZVTExTQ1JFRU46
Ci0gICAgICAgIHByaXYtPmZ1bGxzY3JlZW4gPSBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZB
TElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX2dldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSogdmFsdWUsIEdQ
YXJhbVNwZWMqIHBzcGVjKQotewotICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJfd2lu
ZG93X2ZlYXR1cmVzID0gV0VCS0lUX1dFQl9XSU5ET1dfRkVBVFVSRVMob2JqZWN0KTsKLSAgICBX
ZWJLaXRXZWJXaW5kb3dGZWF0dXJlc1ByaXZhdGUqIHByaXYgPSB3ZWJfd2luZG93X2ZlYXR1cmVz
LT5wcml2OwotCi0gICAgc3dpdGNoIChwcm9wX2lkKSB7Ci0gICAgY2FzZSBQUk9QX1g6Ci0gICAg
ICAgIGdfdmFsdWVfc2V0X2ludCh2YWx1ZSwgcHJpdi0+eCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUFJPUF9ZOgotICAgICAgICBnX3ZhbHVlX3NldF9pbnQodmFsdWUsIHByaXYtPnkpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1BfV0lEVEg6Ci0gICAgICAgIGdfdmFsdWVfc2V0
X2ludCh2YWx1ZSwgcHJpdi0+d2lkdGgpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFBST1Bf
SEVJR0hUOgotICAgICAgICBnX3ZhbHVlX3NldF9pbnQodmFsdWUsIHByaXYtPmhlaWdodCk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUFJPUF9UT09MQkFSX1ZJU0lCTEU6Ci0gICAgICAgIGdf
dmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPnRvb2xiYXJfdmlzaWJsZSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgUFJPUF9TVEFUVVNCQVJfVklTSUJMRToKLSAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgcHJpdi0+c3RhdHVzYmFyX3Zpc2libGUpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFBST1BfU0NST0xMQkFSX1ZJU0lCTEU6Ci0gICAgICAgIGdfdmFsdWVf
c2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPnNjcm9sbGJhcl92aXNpYmxlKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBQUk9QX01FTlVCQVJfVklTSUJMRToKLSAgICAgICAgZ192YWx1ZV9zZXRf
Ym9vbGVhbih2YWx1ZSwgcHJpdi0+bWVudWJhcl92aXNpYmxlKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBQUk9QX0xPQ0FUSU9OQkFSX1ZJU0lCTEU6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jv
b2xlYW4odmFsdWUsIHByaXYtPmxvY2F0aW9uYmFyX3Zpc2libGUpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFBST1BfRlVMTFNDUkVFTjoKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2
YWx1ZSwgcHJpdi0+ZnVsbHNjcmVlbik7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQs
IHBzcGVjKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi0vKioKLSAqIHdlYmtpdF93ZWJf
d2luZG93X2ZlYXR1cmVzX25ldzoKLSAqCi0gKiBDcmVhdGVzIGEgbmV3ICNXZWJLaXRXZWJXaW5k
b3dGZWF0dXJlcyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLiBJdCBtdXN0Ci0gKiBiZSBt
YW51YWxseSBhdHRhY2hlZCB0byBhIFdlYlZpZXcuCi0gKgotICogUmV0dXJuczogYSBuZXcgI1dl
YktpdFdlYldpbmRvd0ZlYXR1cmVzIGluc3RhbmNlCi0gKgotICogU2luY2U6IDEuMC4zCi0gKi8K
LVdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiB3ZWJraXRfd2ViX3dpbmRvd19mZWF0dXJlc19uZXco
KQotewotICAgIHJldHVybiBXRUJLSVRfV0VCX1dJTkRPV19GRUFUVVJFUyhnX29iamVjdF9uZXco
V0VCS0lUX1RZUEVfV0VCX1dJTkRPV19GRUFUVVJFUywgTlVMTCkpOwotfQotCi0vKioKLSAqIHdl
YmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX2VxdWFsOgotICogQGZlYXR1cmVzMTogYSAjV2ViS2l0
V2ViV2luZG93RmVhdHVyZXMgaW5zdGFuY2UKLSAqIEBmZWF0dXJlczI6IGFub3RoZXIgI1dlYktp
dFdlYldpbmRvd0ZlYXR1cmVzIGluc3RhbmNlCi0gKgotICogRGVjaWRlcyBpZiBhICNXZWJLaXRX
ZWJXaW5kb3dGZWF0dXJlcyBpbnN0YW5jZSBlcXVhbHMgYW5vdGhlciwgYXMKLSAqIGluIGhhcyB0
aGUgc2FtZSB2YWx1ZXMuCi0gKgotICogUmV0dXJuczogJVRSVUUgaWYgdGhlIGluc3RhbmNlcyBo
YXZlIHRoZSBzYW1lIHZhbHVlcywgJUZBTFNFCi0gKiBvdGhlcndpc2UKLSAqCi0gKiBTaW5jZTog
MS4wLjMKLSAqLwotZ2Jvb2xlYW4gd2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfZXF1YWwoV2Vi
S2l0V2ViV2luZG93RmVhdHVyZXMqIGZlYXR1cmVzMSwgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMq
IGZlYXR1cmVzMikKLXsKLSAgICBpZiAoZmVhdHVyZXMxID09IGZlYXR1cmVzMikKLSAgICAgICAg
cmV0dXJuIFRSVUU7Ci0gICAgaWYgKCFmZWF0dXJlczEgfHwgIWZlYXR1cmVzMikKLSAgICAgICAg
cmV0dXJuIEZBTFNFOwotCi0gICAgV2ViS2l0V2ViV2luZG93RmVhdHVyZXNQcml2YXRlKiBwcml2
MSA9IGZlYXR1cmVzMS0+cHJpdjsKLSAgICBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlc1ByaXZhdGUq
IHByaXYyID0gZmVhdHVyZXMyLT5wcml2OwotCi0gICAgaWYgKChwcml2MS0+eCA9PSBwcml2Mi0+
eCkKLSAgICAgICAgJiYgKHByaXYxLT55ID09IHByaXYyLT55KQotICAgICAgICAmJiAocHJpdjEt
PndpZHRoID09IHByaXYyLT53aWR0aCkKLSAgICAgICAgJiYgKHByaXYxLT5oZWlnaHQgPT0gcHJp
djItPmhlaWdodCkKLSAgICAgICAgJiYgKHByaXYxLT50b29sYmFyX3Zpc2libGUgPT0gcHJpdjIt
PnRvb2xiYXJfdmlzaWJsZSkKLSAgICAgICAgJiYgKHByaXYxLT5zdGF0dXNiYXJfdmlzaWJsZSA9
PSBwcml2Mi0+c3RhdHVzYmFyX3Zpc2libGUpCi0gICAgICAgICYmIChwcml2MS0+c2Nyb2xsYmFy
X3Zpc2libGUgPT0gcHJpdjItPnNjcm9sbGJhcl92aXNpYmxlKQotICAgICAgICAmJiAocHJpdjEt
Pm1lbnViYXJfdmlzaWJsZSA9PSBwcml2Mi0+bWVudWJhcl92aXNpYmxlKQotICAgICAgICAmJiAo
cHJpdjEtPmxvY2F0aW9uYmFyX3Zpc2libGUgPT0gcHJpdjItPmxvY2F0aW9uYmFyX3Zpc2libGUp
Ci0gICAgICAgICYmIChwcml2MS0+ZnVsbHNjcmVlbiA9PSBwcml2Mi0+ZnVsbHNjcmVlbikpCi0g
ICAgICAgIHJldHVybiBUUlVFOwotICAgIHJldHVybiBGQUxTRTsKLX0KLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLVdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiBraXROZXcoY29uc3QgV2ViQ29yZTo6
V2luZG93RmVhdHVyZXMmIGZlYXR1cmVzKQotewotICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVz
ICp3ZWJXaW5kb3dGZWF0dXJlcyA9IHdlYmtpdF93ZWJfd2luZG93X2ZlYXR1cmVzX25ldygpOwot
Ci0gICAgaWYoZmVhdHVyZXMueFNldCkKLSAgICAgICAgZ19vYmplY3Rfc2V0KHdlYldpbmRvd0Zl
YXR1cmVzLCAieCIsIHN0YXRpY19jYXN0PGludD4oZmVhdHVyZXMueCksIE5VTEwpOwotCi0gICAg
aWYoZmVhdHVyZXMueVNldCkKLSAgICAgICAgZ19vYmplY3Rfc2V0KHdlYldpbmRvd0ZlYXR1cmVz
LCAieSIsIHN0YXRpY19jYXN0PGludD4oZmVhdHVyZXMueSksIE5VTEwpOwotCi0gICAgaWYoZmVh
dHVyZXMud2lkdGhTZXQpCi0gICAgICAgIGdfb2JqZWN0X3NldCh3ZWJXaW5kb3dGZWF0dXJlcywg
IndpZHRoIiwgc3RhdGljX2Nhc3Q8aW50PihmZWF0dXJlcy53aWR0aCksIE5VTEwpOwotCi0gICAg
aWYoZmVhdHVyZXMuaGVpZ2h0U2V0KQotICAgICAgICBnX29iamVjdF9zZXQod2ViV2luZG93RmVh
dHVyZXMsICJoZWlnaHQiLCBzdGF0aWNfY2FzdDxpbnQ+KGZlYXR1cmVzLmhlaWdodCksIE5VTEwp
OwotCi0gICAgZ19vYmplY3Rfc2V0KHdlYldpbmRvd0ZlYXR1cmVzLAotICAgICAgICAgICAgICAg
ICAidG9vbGJhci12aXNpYmxlIiwgZmVhdHVyZXMudG9vbEJhclZpc2libGUsCi0gICAgICAgICAg
ICAgICAgICJzdGF0dXNiYXItdmlzaWJsZSIsIGZlYXR1cmVzLnN0YXR1c0JhclZpc2libGUsCi0g
ICAgICAgICAgICAgICAgICJzY3JvbGxiYXItdmlzaWJsZSIsIGZlYXR1cmVzLnNjcm9sbGJhcnNW
aXNpYmxlLAotICAgICAgICAgICAgICAgICAibWVudWJhci12aXNpYmxlIiwgZmVhdHVyZXMubWVu
dUJhclZpc2libGUsCi0gICAgICAgICAgICAgICAgICJsb2NhdGlvbmJhci12aXNpYmxlIiwgZmVh
dHVyZXMubG9jYXRpb25CYXJWaXNpYmxlLAotICAgICAgICAgICAgICAgICAiZnVsbHNjcmVlbiIs
IGZlYXR1cmVzLmZ1bGxzY3JlZW4sCi0gICAgICAgICAgICAgICAgIE5VTEwpOwotCi0gICAgcmV0
dXJuIHdlYldpbmRvd0ZlYXR1cmVzOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vid2luZG93ZmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhNzkxMTlkLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ3aW5kb3dmZWF0dXJlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGduc0Bnbm9t
ZS5vcmc+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICovCi0KLSNpZm5kZWYgd2Via2l0d2Vid2luZG93ZmVhdHVyZXNfaAotI2RlZmluZSB3ZWJraXR3
ZWJ3aW5kb3dmZWF0dXJlc19oCi0KLSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotCi0jaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdF
QktJVF9UWVBFX1dFQl9XSU5ET1dfRkVBVFVSRVMgICAgICAgICAgICAod2Via2l0X3dlYl93aW5k
b3dfZmVhdHVyZXNfZ2V0X3R5cGUoKSkKLSNkZWZpbmUgV0VCS0lUX1dFQl9XSU5ET1dfRkVBVFVS
RVMob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VC
S0lUX1RZUEVfV0VCX1dJTkRPV19GRUFUVVJFUywgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMpKQot
I2RlZmluZSBXRUJLSVRfV0VCX1dJTkRPV19GRUFUVVJFU19DTEFTUyhrbGFzcykgICAgKEdfVFlQ
RV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9XRUJfV0lORE9XX0ZFQVRV
UkVTLCBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlc0NsYXNzKSkKLSNkZWZpbmUgV0VCS0lUX0lTX1dF
Ql9XSU5ET1dfRkVBVFVSRVMob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX1dJTkRPV19GRUFUVVJFUykpCi0jZGVmaW5lIFdFQktJ
VF9JU19XRUJfV0lORE9XX0ZFQVRVUkVTX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNT
X1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9XSU5ET1dfRkVBVFVSRVMpKQotI2RlZmlu
ZSBXRUJLSVRfV0VCX1dJTkRPV19GRUFUVVJFU19HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9XRUJfV0lORE9XX0ZFQVRVUkVTLCBX
ZWJLaXRXZWJXaW5kb3dGZWF0dXJlc0NsYXNzKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdl
YldpbmRvd0ZlYXR1cmVzUHJpdmF0ZSBXZWJLaXRXZWJXaW5kb3dGZWF0dXJlc1ByaXZhdGU7Ci0K
LXN0cnVjdCBfV2ViS2l0V2ViV2luZG93RmVhdHVyZXMgewotICAgIEdPYmplY3QgcGFyZW50X2lu
c3RhbmNlOwotCi0gICAgLyo8IHByaXZhdGUgPiovCi0gICAgV2ViS2l0V2ViV2luZG93RmVhdHVy
ZXNQcml2YXRlKiBwcml2OwotfTsKLQotc3RydWN0IF9XZWJLaXRXZWJXaW5kb3dGZWF0dXJlc0Ns
YXNzIHsKLSAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwotCi0gICAgLyo8IHByaXZhdGUg
PiovCi0gICAgLyogUGFkZGluZyBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLwotICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikg
KHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOwotICAgIHZvaWQg
KCpfd2Via2l0X3Jlc2VydmVkNCkgKHZvaWQpOwotfTsKLQotV0VCS0lUX0FQSSBHVHlwZQotd2Vi
a2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfZ2V0X3R5cGUgICAgICAgICAgICAodm9pZCk7Ci0KLVdF
QktJVF9BUEkgV2ViS2l0V2ViV2luZG93RmVhdHVyZXMqCi13ZWJraXRfd2ViX3dpbmRvd19mZWF0
dXJlc19uZXcgICAgICAgICAgICAgICAgICh2b2lkKTsKLQotV0VCS0lUX0FQSSBnYm9vbGVhbgot
d2Via2l0X3dlYl93aW5kb3dfZmVhdHVyZXNfZXF1YWwgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
V2luZG93RmVhdHVyZXMqIGZlYXR1cmVzMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYktpdFdlYldpbmRvd0ZlYXR1cmVzKiBmZWF0dXJlczIpOwot
Ci1HX0VORF9ERUNMUwotCi0jZW5kaWYgLyogd2Via2l0d2Vid2luZG93ZmVhdHVyZXNfaCAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYndpbmRvd2ZlYXR1
cmVzcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYndpbmRvd2Zl
YXR1cmVzcHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZWE5MTliLi4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ3aW5kb3dmZWF0
dXJlc3ByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDkgSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKLSAq
IENvcHlyaWdodCAoQykgMjAwOCBKYW4gTWljaGFlbCBDLiBBbG9uem8KLSAqIENvcHlyaWdodCAo
QykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwu
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0K
LSNpZm5kZWYgd2Via2l0d2Vid2luZG93ZmVhdHVyZXNwcml2YXRlX2gKLSNkZWZpbmUgd2Via2l0
d2Vid2luZG93ZmVhdHVyZXNwcml2YXRlX2gKLQotI2luY2x1ZGUgIndlYmtpdHdlYndpbmRvd2Zl
YXR1cmVzLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJLaXRXZWJXaW5kb3dGZWF0dXJl
cyoga2l0TmV3KGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJik7Ci0KLX0KLQotI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay93ZWJraXRtYXJzaGFsLmxpc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI3NDI4OTAuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0bWFy
c2hhbC5saXN0CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotQk9PTEVBTjpFTlVNLElO
VAotQk9PTEVBTjpJTlQsSU5ULFNUUklORwotQk9PTEVBTjpPQkpFQ1QKLUJPT0xFQU46T0JKRUNU
LE9CSkVDVAotQk9PTEVBTjpPQkpFQ1QsT0JKRUNULEJPT0xFQU4KLUJPT0xFQU46T0JKRUNULE9C
SkVDVCxFTlVNCi1CT09MRUFOOk9CSkVDVCxPQkpFQ1QsRU5VTSxCT09MRUFOCi1CT09MRUFOOk9C
SkVDVCxPQkpFQ1QsT0JKRUNULE9CSkVDVAotQk9PTEVBTjpPQkpFQ1QsT0JKRUNULFNUUklORyxP
QkpFQ1QKLUJPT0xFQU46T0JKRUNULFNUUklORwotQk9PTEVBTjpPQkpFQ1QsU1RSSU5HLEJPWEVE
Ci1CT09MRUFOOk9CSkVDVCxTVFJJTkcsUE9JTlRFUgotQk9PTEVBTjpPQkpFQ1QsU1RSSU5HLFNU
UklORyxTVFJJTkcKLUJPT0xFQU46U1RSSU5HLElOVCxTVFJJTkcKLUJPT0xFQU46U1RSSU5HLE9C
SkVDVCxFTlVNCi1CT09MRUFOOlZPSUQKLUVOVU06T0JKRUNULE9CSkVDVAotT0JKRUNUOk9CSkVD
VAotT0JKRUNUOlNUUklORyxTVFJJTkcsUE9JTlRFUgotT0JKRUNUOlZPSUQKLVZPSUQ6T0JKRUNU
LE9CSkVDVAotVk9JRDpPQkpFQ1QsT0JKRUNULElOVAotVk9JRDpPQkpFQ1QsT0JKRUNULE9CSkVD
VAotVk9JRDpPQkpFQ1QsT0JKRUNULFBPSU5URVIKLVZPSUQ6T0JKRUNULE9CSkVDVCxCT1hFRAot
Vk9JRDpPQkpFQ1QsT0JKRUNULE9CSkVDVCxPQkpFQ1QKLVZPSUQ6T0JKRUNULFBPSU5URVIsUE9J
TlRFUgotVk9JRDpPQkpFQ1QsSU5UCi1WT0lEOk9CSkVDVCxQT0lOVEVSCi1WT0lEOk9CSkVDVCxT
VFJJTkcKLVZPSUQ6U1RSSU5HCi1WT0lEOlNUUklORyxTVFJJTkcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UK
aW5kZXggYWVhMDUyNC4uMzQ5M2M0NCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNH
VEsuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKQEAgLTgsNiArOCw3
IEBAIHNldChQUk9KRUNUX1ZFUlNJT05fTUFKT1IgMikKIHNldChQUk9KRUNUX1ZFUlNJT05fTUlO
T1IgMykKIHNldChQUk9KRUNUX1ZFUlNJT05fUEFUQ0ggMykKIHNldChQUk9KRUNUX1ZFUlNJT04g
JHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9LiR7UFJPSkVDVF9WRVJTSU9OX01JTk9SfS4ke1BST0pF
Q1RfVkVSU0lPTl9QQVRDSH0pCitzZXQoV0VCS0lUR1RLX0FQSV9WRVJTSU9OIDMuMCkKIAogIyBM
aWJ0b29sIGxpYnJhcnkgdmVyc2lvbiwgbm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggQVBJIHZlcnNp
b24uCiAjIFNlZSBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGlidG9vbC9tYW51YWwvaHRt
bF9ub2RlL0xpYnRvb2wtdmVyc2lvbmluZy5odG1sCkBAIC0xNSw3ICsxNiw2IEBAIENBTENVTEFU
RV9MSUJSQVJZX1ZFUlNJT05TX0ZST01fTElCVE9PTF9UUklQTEUoV0VCS0lUIDIyIDAgMjIpCiBD
QUxDVUxBVEVfTElCUkFSWV9WRVJTSU9OU19GUk9NX0xJQlRPT0xfVFJJUExFKFdFQktJVDIgMzIg
MCA3KQogQ0FMQ1VMQVRFX0xJQlJBUllfVkVSU0lPTlNfRlJPTV9MSUJUT09MX1RSSVBMRShKQVZB
U0NSSVBUQ09SRSAxNiAyIDE2KQogCi1zZXQoVVNFX0dUSzIgT0ZGIENBQ0hFIEJPT0wgIldoZXRo
ZXIgb3Igbm90IHRvIHVzZSBHVEsrIDIuIFdlYktpdDIgb25seSBzdXBwb3J0cyBHVEsrIDMuIikK
IHNldChFTkFCTEVfQ1JFREVOVElBTF9TVE9SQUdFIE9OIENBQ0hFIEJPT0wgIldoZXRoZXIgb3Ig
bm90IHRvIGVuYWJsZSBzdXBwb3J0IGZvciBjcmVkZW50aWFsIHN0b3JhZ2UgdXNpbmcgbGlic2Vj
cmV0LiIpCiAKICMgRklYTUU6IFdlIHdhbnQgdG8gZXhwb3NlIGZld2VyIG9wdGlvbnMgdG8gZG93
bnN0cmVhbSwgYnV0IGZvciBub3cgZXZlcnl0aGluZyBpcyBwdWJsaWMuCkBAIC05MywxOSArOTMs
MTIgQEAgV0VCS0lUX09QVElPTl9FTkQoKQogCiBzZXQoRU5BQkxFX1dFQkNPUkUgT04pCiBzZXQo
RU5BQkxFX0lOU1BFQ1RPUiBPTikKLXNldChFTkFCTEVfV0VCS0lUIE9OKQotaWYgKE5PVCBVU0Vf
R1RLMikKLSAgICBzZXQoV0VCS0lUR1RLX0FQSV9WRVJTSU9OIDMuMCkKLSAgICBzZXQoR1RLX0FQ
SV9WRVJTSU9OIDMuMCkKLSAgICBzZXQoRU5BQkxFX1BMVUdJTl9QUk9DRVNTIE9OKQotICAgIHNl
dChFTkFCTEVfV0VCS0lUMiBPTikKLSAgICBzZXQoR0RLX1ZFUlNJT05fTUlOX1JFUVVJUkVEIEdE
S19WRVJTSU9OXzNfNikKLWVsc2UgKCkKLSAgICBzZXQoV0VCS0lUR1RLX0FQSV9WRVJTSU9OIDIu
MCkKLSAgICBzZXQoR1RLX0FQSV9WRVJTSU9OIDIuMCkKLSAgICBzZXQoRU5BQkxFX1BMVUdJTl9Q
Uk9DRVNTIE9GRikKLSAgICBzZXQoRU5BQkxFX1dFQktJVDIgT0ZGKQotZW5kaWYgKCkKK3NldChF
TkFCTEVfV0VCS0lUIE9GRikKK3NldChFTkFCTEVfV0VCS0lUMiBPTikKK3NldChFTkFCTEVfUExV
R0lOX1BST0NFU1MgT04pCisKK3NldChHREtfVkVSU0lPTl9NSU5fUkVRVUlSRUQgR0RLX1ZFUlNJ
T05fM182KQorc2V0KEdUS19BUElfVkVSU0lPTiAzLjApCiAKICMgVGhlc2UgYXJlIHVzZWQgdG8g
Z2VuZXJhdGUgdGhlIHBrZy1jb25maWcgZmlsZXMuCiBzZXQocHJlZml4ICR7Q01BS0VfSU5TVEFM
TF9QUkVGSVh9KQotLSAKMS44LjMuMgoK
</data>

          </attachment>
      

    </bug>

</bugzilla>